/* Aurora Promo — banner zones */
.ap-zone {
	--ap-off: 12px;
	position: relative;
	width: 100%;
	overflow: hidden;
	border-radius: var(--ap-radius, 0);
	isolation: isolate;
	line-height: normal;
	box-sizing: border-box;
	background: var(--ap-bg, transparent);
	container-type: inline-size; /* Text and widgets scale with the zone, not the screen. */
}
.ap-zone *, .ap-zone *::before, .ap-zone *::after { box-sizing: border-box; }
.ap-zone[hidden] { display: none !important; }
.ap-zone.ap-fixed { aspect-ratio: var(--ap-ratio); }
@media (max-width: 767px) {
	.ap-zone.ap-fixed { aspect-ratio: var(--ap-ratio-m, var(--ap-ratio)); }
}
.ap-track { position: relative; width: 100%; height: 100%; }

/* Fade (default): banners stacked */
.ap-banner { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity var(--ap-duration, 600ms) ease, visibility var(--ap-duration, 600ms); }
.ap-banner.ap-on { opacity: 1; visibility: visible; z-index: 1; }
.ap-banner.ap-off { display: none !important; }
.ap-zone:not(.ap-ready) .ap-banner:first-child { opacity: 1; visibility: visible; }
/* Auto height: the visible image defines the height */
.ap-zone.ap-auto .ap-banner { position: relative; display: none; }
.ap-zone.ap-auto .ap-banner.ap-on,
.ap-zone.ap-auto:not(.ap-ready) .ap-banner:first-child { display: block; }

/* Slide */
.ap-effect-slide .ap-track { display: flex; align-items: flex-start; transition: transform var(--ap-duration, 600ms) cubic-bezier(.2, .8, .2, 1); }
.ap-effect-slide .ap-banner,
.ap-zone.ap-auto.ap-effect-slide .ap-banner { position: relative; flex: 0 0 100%; height: 100%; display: block; opacity: 1; visibility: visible; }

/* Selectable banner-to-banner transitions */
.ap-effect-zoom .ap-banner { transform: scale(1.08); transition: opacity var(--ap-duration, 600ms) ease, visibility var(--ap-duration, 600ms), transform var(--ap-duration, 600ms) cubic-bezier(.2, .8, .2, 1); }
.ap-effect-zoom .ap-banner.ap-on { transform: scale(1); }
.ap-effect-flip { perspective: 1200px; }
.ap-effect-flip .ap-banner { transform: rotateY(-16deg) scale(.96); transform-origin: center; backface-visibility: hidden; transition: opacity var(--ap-duration, 600ms) ease, visibility var(--ap-duration, 600ms), transform var(--ap-duration, 600ms) cubic-bezier(.2, .8, .2, 1); }
.ap-effect-flip .ap-banner.ap-on { transform: rotateY(0) scale(1); }
.ap-effect-blur .ap-banner { filter: blur(14px); transform: scale(1.03); transition: opacity var(--ap-duration, 600ms) ease, visibility var(--ap-duration, 600ms), filter var(--ap-duration, 600ms) ease, transform var(--ap-duration, 600ms) ease; }
.ap-effect-blur .ap-banner.ap-on { filter: blur(0); transform: scale(1); }
.ap-effect-rise .ap-banner { transform: translateY(12%); transition: opacity var(--ap-duration, 600ms) ease, visibility var(--ap-duration, 600ms), transform var(--ap-duration, 600ms) cubic-bezier(.2, .8, .2, 1); }
.ap-effect-rise .ap-banner.ap-on { transform: translateY(0); }
.ap-effect-reveal .ap-banner { clip-path: inset(0 100% 0 0); transition: opacity var(--ap-duration, 600ms) ease, visibility var(--ap-duration, 600ms), clip-path var(--ap-duration, 600ms) cubic-bezier(.2, .8, .2, 1); }
.ap-effect-reveal .ap-banner.ap-on { clip-path: inset(0); }

/* One-time entrance animation when the zone enters the viewport */
.ap-zone.ap-ready.ap-enter-fade-up:not(.ap-entered) { opacity: 0; transform: translateY(34px); }
.ap-zone.ap-ready.ap-enter-zoom-in:not(.ap-entered) { opacity: 0; transform: scale(.94); }
.ap-zone.ap-ready.ap-enter-slide-left:not(.ap-entered) { opacity: 0; transform: translateX(-48px); }
.ap-zone.ap-ready.ap-enter-slide-right:not(.ap-entered) { opacity: 0; transform: translateX(48px); }
.ap-zone.ap-enter-fade-up,
.ap-zone.ap-enter-zoom-in,
.ap-zone.ap-enter-slide-left,
.ap-zone.ap-enter-slide-right { transition: opacity var(--ap-duration, 600ms) ease, transform var(--ap-duration, 600ms) cubic-bezier(.2, .8, .2, 1); }
.ap-zone.ap-entered { opacity: 1; transform: none; }

.ap-link { display: block; width: 100%; height: 100%; color: inherit; text-decoration: none; }
.ap-link picture { display: block; width: 100%; height: 100%; }
.ap-img { display: block; width: 100%; height: auto; max-width: none; border: 0; border-radius: 0; }
.ap-fixed .ap-img { height: 100%; object-fit: var(--ap-fit, cover); }
.ap-link[href] .ap-img { transition: transform .5s ease; }
.ap-link[href]:hover .ap-img { transform: scale(1.03); }

/* Absolute positions shared by text, badge, countdown, coupon */
.ap-pos-tl { top: var(--ap-off); left: var(--ap-off); }
.ap-pos-tc { top: var(--ap-off); left: 50%; transform: translateX(-50%); }
.ap-pos-tr { top: var(--ap-off); right: var(--ap-off); }
.ap-pos-ml { top: 50%; left: var(--ap-off); transform: translateY(-50%); }
.ap-pos-mc { top: 50%; left: 50%; transform: translate(-50%, -50%); }
.ap-pos-mr { top: 50%; right: var(--ap-off); transform: translateY(-50%); }
.ap-pos-bl { bottom: var(--ap-off); left: var(--ap-off); }
.ap-pos-bc { bottom: var(--ap-off); left: 50%; transform: translateX(-50%); }
.ap-pos-br { bottom: var(--ap-off); right: var(--ap-off); }
.ap-has-dots { --ap-dots: 22px; }
.ap-banner .ap-pos-bl, .ap-banner .ap-pos-bc, .ap-banner .ap-pos-br { bottom: calc(var(--ap-off) + var(--ap-dots, 0px)); }
/* A coupon sits above a countdown placed at the bottom. */
.ap-banner:has(> .ap-countdown.ap-pos-bl, > .ap-countdown.ap-pos-bc, > .ap-countdown.ap-pos-br) { --ap-cd: 36px; }

/* Text overlay */
.ap-text { position: absolute; z-index: 2; max-width: calc(100% - 2 * var(--ap-off)); display: flex; flex-direction: column; gap: 6px; padding: 6px; }
.ap-text.ap-pos-tc, .ap-text.ap-pos-mc, .ap-text.ap-pos-bc { align-items: center; text-align: center; }
.ap-text.ap-pos-tr, .ap-text.ap-pos-mr, .ap-text.ap-pos-br { align-items: flex-end; text-align: right; }
.ap-theme-light { color: #fff; text-shadow: 0 2px 14px rgba(0, 0, 0, .45); }
.ap-theme-dark { color: #14141f; }
.ap-headline { font-size: clamp(15px, 7cqi, 34px); font-weight: 800; line-height: 1.15; }
.ap-sub { font-size: clamp(11px, 3.6cqi, 17px); opacity: .92; }
.ap-btn { align-self: flex-start; margin-top: 4px; padding: 8px 18px; border-radius: 30px; font-size: 14px; font-weight: 700; text-shadow: none; background: #fff; color: #14141f; transition: transform .2s; }
.ap-text.ap-pos-tc .ap-btn, .ap-text.ap-pos-mc .ap-btn, .ap-text.ap-pos-bc .ap-btn { align-self: center; }
.ap-text.ap-pos-tr .ap-btn, .ap-text.ap-pos-mr .ap-btn, .ap-text.ap-pos-br .ap-btn { align-self: flex-end; }
.ap-theme-dark .ap-btn { background: #14141f; color: #fff; }
.ap-link:hover .ap-btn { transform: translateY(-2px); }

/* Discount badge */
.ap-badge {
	position: absolute;
	z-index: 3;
	padding: 6px 13px;
	border-radius: 30px;
	background: #ff3b5c;
	color: #fff;
	font: 800 clamp(12px, 5cqi, 22px)/1.1 system-ui, -apple-system, "Segoe UI", sans-serif;
	box-shadow: 0 6px 18px rgba(255, 59, 92, .45);
	pointer-events: none;
	animation: ap-pop .6s cubic-bezier(.2, 1.6, .4, 1) both;
}
@keyframes ap-pop { from { opacity: 0; scale: .4; } }

/* Countdown */
.ap-countdown {
	position: absolute;
	z-index: 3;
	padding: 6px 12px;
	border-radius: 30px;
	background: rgba(17, 17, 24, .78);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	color: #fff;
	font: 500 12px/1.3 system-ui, -apple-system, "Segoe UI", sans-serif;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	pointer-events: none;
}
.ap-countdown:empty { display: none; }
.ap-countdown b { font-size: 14px; font-weight: 800; }
.ap-cd-label { opacity: .8; }

/* Coupon */
.ap-coupon {
	position: absolute;
	z-index: 3;
	right: var(--ap-off);
	bottom: calc(var(--ap-off) + var(--ap-dots, 0px) + var(--ap-cd, 0px));
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 10px;
	border: 2px dashed rgba(255, 255, 255, .9);
	border-radius: 10px;
	background: rgba(17, 17, 24, .6);
	color: #fff;
	font: 600 12px/1.2 system-ui, -apple-system, "Segoe UI", sans-serif;
	cursor: pointer;
	transition: background .2s;
}
.ap-coupon b { font-size: 14px; letter-spacing: .06em; }
.ap-coupon:hover, .ap-coupon.ap-copied { background: #18a957; }

/* Navigation */
.ap-arrow {
	position: absolute;
	top: 50%;
	z-index: 4;
	width: 34px;
	height: 34px;
	margin-top: -17px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .9);
	color: #14141f;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	opacity: 0;
	transition: opacity .2s;
	box-shadow: 0 4px 14px rgba(0, 0, 0, .18);
}
.ap-prev { left: 10px; }
.ap-next { right: 10px; }
.ap-next svg { transform: rotate(180deg); }
.ap-zone:hover .ap-arrow, .ap-arrow:focus-visible { opacity: 1; }
@media (hover: none) { .ap-arrow { opacity: .85; } }
.ap-dots { position: absolute; z-index: 4; bottom: 10px; left: 50%; transform: translateX(-50%); display: flex; gap: 6px; }
.ap-dot { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 5px; background: rgba(255, 255, 255, .6); box-shadow: 0 1px 4px rgba(0, 0, 0, .3); cursor: pointer; transition: width .3s, background .3s; }
.ap-dot.ap-on { width: 20px; background: #fff; }

@media (prefers-reduced-motion: reduce) {
	.ap-zone, .ap-banner, .ap-effect-slide .ap-track, .ap-img, .ap-badge { transition: none !important; animation: none !important; transform: none !important; filter: none !important; clip-path: none !important; }
}

/* Narrow zones (e.g. a sidebar banner ~180–320px wide) */
@container (max-width: 340px) {
	.ap-banner { --ap-off: 8px; }
	.ap-cd-label { display: none; }
	.ap-countdown { padding: 4px 9px; font-size: 11px; }
	.ap-countdown b { font-size: 12px; }
	.ap-banner:has(> .ap-countdown.ap-pos-bl, > .ap-countdown.ap-pos-bc, > .ap-countdown.ap-pos-br) { --ap-cd: 30px; }
	.ap-badge { padding: 4px 9px; }
	.ap-btn { padding: 6px 12px; font-size: 12px; }
	.ap-coupon { right: 50%; transform: translateX(50%); gap: 5px; padding: 4px 8px; font-size: 10px; }
	.ap-coupon b { font-size: 12px; }
	.ap-arrow { width: 28px; height: 28px; margin-top: -14px; }
}

/* Coupon stays on one line; top text moves below a top badge. */
.ap-coupon { white-space: nowrap; }
.ap-banner:has(> .ap-badge.ap-pos-tl, > .ap-badge.ap-pos-tc, > .ap-badge.ap-pos-tr) .ap-text.ap-pos-tl,
.ap-banner:has(> .ap-badge.ap-pos-tl, > .ap-badge.ap-pos-tc, > .ap-badge.ap-pos-tr) .ap-text.ap-pos-tc,
.ap-banner:has(> .ap-badge.ap-pos-tl, > .ap-badge.ap-pos-tc, > .ap-badge.ap-pos-tr) .ap-text.ap-pos-tr { top: calc(var(--ap-off) + 38px); }
