/* Calendario de Adviento — TicketYa Chasma */

.adv-root {
	--adv-red: #D11456;
	--adv-red-2: #A00E42;
	--adv-pink: #E8336F;
	--adv-purple: #7827AB;
	--adv-navy: #1A2341;
	--adv-gold: #F5C24B;
	--adv-green: #22955F;
	--adv-ink: #1A2341;
	--adv-muted: #6B7088;
	box-sizing: border-box;
	font-family: inherit;
	line-height: 1.4;
}
.adv-root *, .adv-root *::before, .adv-root *::after { box-sizing: border-box; }

/* Los temas suelen pisar botones, links y videos: se vuelve a cero dentro del plugin. */
.adv-root button {
	-webkit-appearance: none; appearance: none;
	background: none; border: 0; margin: 0; padding: 0;
	font: inherit; color: inherit; line-height: inherit;
	text-transform: none; letter-spacing: normal; text-shadow: none;
	box-shadow: none; border-radius: 0; min-height: 0; min-width: 0;
	width: auto; height: auto; cursor: pointer;
}
.adv-root button:focus { outline: none; }
.adv-root button:focus-visible, .adv-root a:focus-visible { outline: 3px solid var(--adv-gold); outline-offset: 3px; }
.adv-root svg { display: block; }
.adv-root p, .adv-root h2, .adv-root h3 { margin: 0; padding: 0; }
.adv-root h2, .adv-root h3 { font-family: inherit; letter-spacing: normal; text-transform: none; }

html.adv-noscroll, html.adv-noscroll body { overflow: hidden !important; }

/* ═══════════ Ventana ═══════════ */

.adv-root.adv-modal {
	position: fixed; inset: 0; z-index: 2147483000;
	display: flex; align-items: center; justify-content: center;
	opacity: 0; transition: opacity .25s ease;
}
.adv-root.adv-modal.is-in { opacity: 1; }
.adv-root.adv-modal:focus { outline: none; }
.adv-root .adv-bigicon:focus-visible { outline: none; }
.adv-root .adv-bigicon:focus-visible .adv-svg { filter: drop-shadow(0 0 14px rgba(245, 194, 75, .9)) drop-shadow(0 18px 30px rgba(0, 0, 0, .35)); }

.adv-root .adv-backdrop {
	position: absolute; inset: 0; overflow: hidden;
	background:
		radial-gradient(ellipse at 50% 40%, rgba(120, 39, 171, .55), transparent 65%),
		rgba(16, 20, 42, .88);
	-webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
}
.adv-root .adv-snow i {
	position: absolute; top: -12px; border-radius: 50%; background: #fff;
	animation: adv-snow linear infinite;
}
@keyframes adv-snow {
	from { transform: translate3d(0, -10px, 0); }
	to   { transform: translate3d(30px, 105vh, 0); }
}

.adv-root .adv-stage {
	position: relative; z-index: 1;
	width: 100%; height: 100%;
	display: flex; align-items: center; justify-content: center;
	padding: 16px;
	overflow: auto;
}

.adv-root .adv-close {
	position: absolute; top: 14px; right: 14px; z-index: 2;
	width: 44px; height: 44px; border-radius: 50%;
	background: rgba(255, 255, 255, .14); color: #fff;
	display: flex; align-items: center; justify-content: center;
	transition: background .2s, transform .2s;
}
.adv-root .adv-close:hover { background: rgba(255, 255, 255, .26); transform: rotate(90deg); }
.adv-root .adv-close svg { width: 22px; height: 22px; }

/* ─── Paso 1: el regalo gigante ─── */

.adv-root .adv-giftphase,
.adv-root .adv-hoy-box {
	display: flex; flex-direction: column; align-items: center; text-align: center;
	color: #fff;
}
.adv-root .adv-gp-kicker {
	font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
	color: var(--adv-gold);
}
.adv-root .adv-gp-title { font-size: clamp(24px, 5vw, 36px); font-weight: 800; line-height: 1.15; margin-top: 6px; color: #fff; }
.adv-root .adv-gp-sub { font-size: 15px; opacity: .85; margin-top: 4px; }

.adv-root .adv-bigicon {
	position: relative; display: block;
	width: min(62vw, 270px); aspect-ratio: 1;
	margin: 18px 0 10px;
}
.adv-root .adv-bigicon.is-small { width: min(46vw, 170px); margin: 12px 0 6px; }
.adv-root .adv-bigicon .adv-svg {
	position: relative; width: 100%; height: 100%;
	filter: drop-shadow(0 18px 30px rgba(0, 0, 0, .35));
	animation: adv-idle 2.6s ease-in-out infinite;
	transform-origin: 50% 90%;
}
.adv-root .adv-bigicon:hover .adv-svg { animation-duration: 1.2s; }

/* Rayos de luz detrás */
.adv-root .adv-rays {
	position: absolute; inset: -30%;
	background: repeating-conic-gradient(from 0deg, rgba(245, 194, 75, .35) 0 8deg, transparent 8deg 24deg);
	-webkit-mask: radial-gradient(circle, #000 18%, transparent 62%);
	mask: radial-gradient(circle, #000 18%, transparent 62%);
	border-radius: 50%;
	opacity: .55;
	animation: adv-spin 18s linear infinite;
	pointer-events: none;
}

@keyframes adv-idle {
	0%, 62%, 100% { transform: rotate(0) scale(1); }
	68% { transform: rotate(-5deg) scale(1.03); }
	74% { transform: rotate(5deg) scale(1.03); }
	80% { transform: rotate(-3deg); }
	86% { transform: rotate(2deg); }
}
@keyframes adv-spin { to { transform: rotate(360deg); } }

/* Abriendo */
.adv-root .is-opening .adv-bigicon { cursor: default; }
.adv-root .is-opening .adv-bigicon .adv-svg { animation: adv-shake .42s ease-in-out, adv-gone .35s .78s ease-in forwards; }
/* Tapa / moño / gorro que sale volando (regalo, valija, globo) */
.adv-root .is-opening .adv-lid {
	transform-box: fill-box; transform-origin: 30% 100%;
	animation: adv-lid .55s .36s cubic-bezier(.3, 1.4, .5, 1) forwards;
}
.adv-root .is-opening .adv-glow {
	transform-box: fill-box; transform-origin: 50% 100%;
	animation: adv-glowup .6s .4s ease-out forwards;
}
/* Globo: gira el mundo */
.adv-root .is-opening .adv-land { animation: adv-land 1s .15s ease-in-out forwards; }
@keyframes adv-land { to { transform: translateX(-68px); } }
/* Esfera: se parte en dos */
.adv-root .is-opening .adv-half-l {
	transform-box: fill-box; transform-origin: 100% 0;
	animation: adv-half-l .6s .36s cubic-bezier(.3, 1.2, .5, 1) forwards;
}
.adv-root .is-opening .adv-half-r {
	transform-box: fill-box; transform-origin: 0 0;
	animation: adv-half-r .6s .36s cubic-bezier(.3, 1.2, .5, 1) forwards;
}
@keyframes adv-half-l { to { transform: translate(-26px, 14px) rotate(-38deg); opacity: 0; } }
@keyframes adv-half-r { to { transform: translate(26px, 14px) rotate(38deg); opacity: 0; } }
.adv-root .is-opening .adv-flare {
	transform-box: fill-box; transform-origin: 50% 50%;
	animation: adv-flare .7s .38s ease-out forwards;
}
@keyframes adv-flare {
	0% { opacity: 0; transform: scale(.3); }
	40% { opacity: 1; transform: scale(3); }
	100% { opacity: 0; transform: scale(5); filter: blur(4px); }
}
/* Pasaje: se corta el talón */
.adv-root .is-opening .adv-stub {
	transform-box: fill-box; transform-origin: 0 0;
	animation: adv-stub .6s .34s cubic-bezier(.5, 0, .7, .4) forwards;
}
@keyframes adv-stub { to { transform: translate(16px, 46px) rotate(32deg); opacity: 0; } }
.adv-root .is-opening .adv-tear {
	transform-box: fill-box; transform-origin: 50% 50%;
	animation: adv-tear .6s .36s ease-out forwards;
}
@keyframes adv-tear {
	0% { opacity: 0; transform: scale(1, .6); }
	45% { opacity: 1; transform: scale(5, 1.15); filter: blur(2px); }
	100% { opacity: 0; transform: scale(9, 1.3); filter: blur(5px); }
}
@keyframes adv-glowup {
	0% { opacity: 0; transform: scale(.6, 1); }
	50% { opacity: 1; transform: scale(1.15, 4); filter: blur(2px); }
	100% { opacity: 0; transform: scale(1.4, 7); filter: blur(6px); }
}
.adv-root .is-opening .adv-svg-tree .adv-star {
	transform-box: fill-box; transform-origin: 50% 50%;
	animation: adv-star .8s .2s ease-out forwards;
}
.adv-root .is-opening .adv-svg-tree .adv-orn circle {
	transform-box: fill-box; transform-origin: 50% 50%;
	animation: adv-orn .5s .3s ease-out both;
}
.adv-root .is-opening .adv-rays { animation: adv-flash .95s ease-out forwards; }
.adv-root .is-opening .adv-gp-sub,
.adv-root .is-opening .adv-gp-title,
.adv-root .is-opening .adv-gp-kicker { transition: opacity .3s .6s; opacity: 0; }

@keyframes adv-shake {
	0%, 100% { transform: rotate(0); }
	20% { transform: rotate(-8deg) scale(1.04); }
	40% { transform: rotate(8deg) scale(1.06); }
	60% { transform: rotate(-6deg) scale(1.06); }
	80% { transform: rotate(4deg) scale(1.04); }
}
@keyframes adv-lid {
	to { transform: translate(14px, -70px) rotate(32deg); opacity: 0; }
}
@keyframes adv-star {
	50% { transform: scale(2.2) rotate(110deg); filter: drop-shadow(0 0 12px #FFE9A8); }
	100% { transform: scale(3.2) rotate(220deg); opacity: 0; }
}
@keyframes adv-orn { 50% { transform: scale(1.7); } }
@keyframes adv-gone { to { transform: scale(1.25); opacity: 0; } }
@keyframes adv-flash {
	0% { opacity: .55; transform: scale(1); }
	45% { opacity: 1; transform: scale(1.5) rotate(40deg); }
	100% { opacity: 0; transform: scale(2.2) rotate(80deg); }
}

/* ─── Paso 2: la tarjeta con el video ─── */

.adv-root .adv-card {
	position: relative;
	display: flex; flex-direction: column; gap: 14px;
	width: max-content; max-width: 100%;
	margin: auto;
	padding: 14px;
	background: #fff; color: var(--adv-ink);
	border-radius: 22px;
	box-shadow: 0 30px 80px rgba(0, 0, 0, .45);
}
.adv-root .adv-card.is-pop { animation: adv-pop .5s cubic-bezier(.2, 1.35, .4, 1); }
@keyframes adv-pop { from { transform: scale(.55) translateY(30px); opacity: 0; } }

.adv-root .adv-media {
	display: flex; justify-content: center; align-items: center;
	background: #0D1022; border-radius: 14px; overflow: hidden;
	flex: none;
}
.adv-root video.adv-video {
	display: block; background: #000; max-width: 100%;
	margin: 0; border: 0; border-radius: 0;
}
.adv-root .is-vertical video.adv-video {
	height: min(62vh, 680px); height: min(62dvh, 680px);
	width: auto; aspect-ratio: 9 / 16;
}
.adv-root .is-horizontal video.adv-video {
	width: min(calc(100vw - 60px), 880px);
	height: auto; aspect-ratio: 16 / 9;
}

/* El texto no ensancha la tarjeta: toma el ancho del video. */
.adv-root .adv-info {
	width: 0; min-width: 100%;
	display: flex; flex-direction: column; gap: 8px;
	padding: 2px 6px 6px;
}
.adv-root .adv-kicker { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--adv-red); }
.adv-root .adv-title { font-size: 21px; font-weight: 800; line-height: 1.2; color: var(--adv-ink); }
.adv-root .adv-text { font-size: 15px; color: var(--adv-muted); white-space: pre-line; }
.adv-root .adv-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-top: 6px; }

.adv-root a.adv-btn, .adv-root button.adv-btn {
	display: inline-flex; align-items: center; justify-content: center;
	padding: 12px 22px; border-radius: 999px;
	background: var(--adv-red); color: #fff;
	font-size: 15px; font-weight: 700; text-decoration: none; line-height: 1.1;
	box-shadow: 0 8px 20px rgba(209, 20, 86, .32);
	transition: transform .15s, background .15s;
}
.adv-root a.adv-btn:hover, .adv-root button.adv-btn:hover { background: var(--adv-red-2); color: #fff; transform: translateY(-1px); }
.adv-root .adv-btn.is-light { background: #fff; color: var(--adv-red); box-shadow: none; }
.adv-root .adv-btn.is-light:hover { background: #FFE6EF; color: var(--adv-red-2); }
.adv-root .is-ended a.adv-btn { animation: adv-pulse 1.4s ease-in-out 3; }
@keyframes adv-pulse { 50% { transform: scale(1.07); box-shadow: 0 10px 30px rgba(209, 20, 86, .5); } }

.adv-root a.adv-link { font-size: 14px; font-weight: 700; color: var(--adv-purple); text-decoration: none; }
.adv-root a.adv-link:hover { text-decoration: underline; }

/* Compu: video vertical a la izquierda, texto a la derecha */
@media (min-width: 760px) {
	.adv-root .adv-card.is-vertical { flex-direction: row; align-items: stretch; padding: 16px; gap: 22px; }
	.adv-root .adv-card.is-vertical .adv-info { width: 290px; min-width: 290px; justify-content: center; padding: 10px 10px 10px 0; }
	.adv-root .adv-card.is-vertical video.adv-video { height: min(80vh, 720px); height: min(80dvh, 720px); }
	.adv-root .adv-title { font-size: 24px; }
	.adv-root .adv-stage { padding: 32px; }
}

/* ═══════════ Calendario ═══════════ */

.adv-root.adv-calendario { margin: 0 auto; max-width: 1100px; color: var(--adv-ink); }
.adv-root .adv-cal-loading { padding: 40px 0; text-align: center; color: var(--adv-muted); }
.adv-root .adv-cal-head { text-align: center; margin-bottom: 22px; }
.adv-root .adv-cal-title { font-size: clamp(26px, 4vw, 38px); font-weight: 800; color: var(--adv-ink); line-height: 1.15; }
.adv-root .adv-cal-sub { font-size: 16px; color: var(--adv-muted); margin-top: 6px; }
.adv-root .adv-cal-sub b { color: var(--adv-red); }
.adv-root .adv-progress {
	width: min(320px, 80%); height: 8px; margin: 12px auto 0;
	background: #F1E4EC; border-radius: 99px; overflow: hidden;
}
.adv-root .adv-progress span {
	display: block; height: 100%; border-radius: 99px;
	background: linear-gradient(90deg, var(--adv-red), var(--adv-purple));
	transition: width .6s ease;
}

.adv-root .adv-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 14px;
}
@media (max-width: 480px) {
	.adv-root .adv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
}

.adv-root .adv-tile {
	position: relative; overflow: hidden;
	display: flex; flex-direction: column; justify-content: space-between; align-items: stretch;
	aspect-ratio: 4 / 5;
	padding: 12px;
	border-radius: 18px;
	text-align: left;
	isolation: isolate;
}
.adv-root .adv-tile-date { position: relative; z-index: 2; display: flex; flex-direction: column; line-height: 1; }
.adv-root .adv-tile-date .adv-wd { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; opacity: .85; }
.adv-root .adv-tile-date b { font-size: 36px; font-weight: 800; margin-top: 2px; }

.adv-root .adv-ribbon {
	position: absolute; top: 12px; right: 12px; z-index: 2;
	padding: 4px 9px; border-radius: 99px;
	background: var(--adv-gold); color: var(--adv-navy);
	font-size: 11px; font-weight: 800; letter-spacing: .08em;
}

/* Disponible, sin abrir */
.adv-root .adv-tile.is-ready {
	color: #fff;
	background:
		radial-gradient(circle at 80% 10%, rgba(255, 255, 255, .18), transparent 40%),
		linear-gradient(155deg, var(--adv-red) 0%, #B0127A 55%, var(--adv-purple) 100%);
	box-shadow: 0 10px 24px rgba(160, 14, 66, .28);
	transition: transform .2s, box-shadow .2s;
}
.adv-root .adv-tile.is-ready:hover { transform: translateY(-4px); box-shadow: 0 16px 32px rgba(160, 14, 66, .36); }
.adv-root .adv-tile.is-ready.is-today { box-shadow: 0 0 0 3px var(--adv-gold), 0 12px 30px rgba(160, 14, 66, .4); animation: adv-glow 2s ease-in-out infinite; }
@keyframes adv-glow { 50% { box-shadow: 0 0 0 3px var(--adv-gold), 0 0 34px rgba(245, 194, 75, .65); } }

.adv-root .adv-tile-icon {
	position: absolute; left: 50%; top: 52%; z-index: 1;
	width: 60%; transform: translate(-50%, -50%);
}
.adv-root .adv-tile-icon .adv-svg { width: 100%; height: auto; filter: drop-shadow(0 8px 12px rgba(0, 0, 0, .25)); transform-origin: 50% 90%; }
.adv-root .adv-tile.is-ready .adv-tile-icon .adv-svg { animation: adv-idle 3s ease-in-out infinite; }
.adv-root .adv-tile.is-ready:nth-child(3n) .adv-tile-icon .adv-svg { animation-delay: -.9s; }
.adv-root .adv-tile.is-ready:nth-child(3n+1) .adv-tile-icon .adv-svg { animation-delay: -1.8s; }

.adv-root .adv-chip {
	position: relative; z-index: 2; align-self: center;
	padding: 6px 14px; border-radius: 99px;
	background: #fff; color: var(--adv-red);
	font-size: 13px; font-weight: 800;
}

.adv-root .adv-tile.is-opening .adv-tile-icon .adv-svg { animation: adv-shake .4s ease-in-out, adv-gone .3s .4s forwards; }
.adv-root .adv-tile.is-opening .adv-lid { animation: adv-lid .45s .2s forwards; }
.adv-root .adv-tile.is-opening .adv-half-l { animation: adv-half-l .45s .2s forwards; }
.adv-root .adv-tile.is-opening .adv-half-r { animation: adv-half-r .45s .2s forwards; }
.adv-root .adv-tile.is-opening .adv-stub { animation: adv-stub .45s .2s forwards; }
.adv-root .adv-tile.is-opening .adv-land { animation: adv-land .6s ease-in-out forwards; }
.adv-root .adv-tile.is-opening .adv-svg-tree .adv-star { transform-box: fill-box; transform-origin: 50% 50%; animation: adv-star .6s forwards; }

/* Ya abierto: miniatura del video */
.adv-root .adv-tile.is-opened { color: #fff; background: var(--adv-navy); }
.adv-root .adv-tile-media {
	position: absolute; inset: 0; z-index: 0;
	width: 100%; height: 100%; max-width: none; object-fit: cover;
	border: 0; border-radius: 0; margin: 0;
	transition: transform .4s;
}
.adv-root .adv-tile.is-opened:hover .adv-tile-media { transform: scale(1.06); }
.adv-root .adv-tile-shade {
	position: absolute; inset: 0; z-index: 1;
	background: linear-gradient(180deg, rgba(16, 20, 42, .55) 0%, rgba(16, 20, 42, .05) 35%, rgba(16, 20, 42, .1) 55%, rgba(16, 20, 42, .85) 100%);
}
.adv-root .adv-tile-play {
	position: absolute; left: 50%; top: 50%; z-index: 2;
	width: 46px; height: 46px; margin: -23px 0 0 -23px; padding: 12px 11px 12px 13px;
	border-radius: 50%; background: rgba(255, 255, 255, .92); color: var(--adv-red);
	box-shadow: 0 6px 18px rgba(0, 0, 0, .3);
	transition: transform .2s;
}
.adv-root .adv-tile.is-opened:hover .adv-tile-play { transform: scale(1.12); }
.adv-root .adv-tile-title {
	position: relative; z-index: 2;
	font-size: 13px; font-weight: 700; line-height: 1.25;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}

/* Cerrado */
.adv-root .adv-tile.is-locked {
	color: #9A9DB2;
	background: #F6F3F9;
	border: 1.5px dashed #DCD5E6;
	cursor: not-allowed;
}
.adv-root .adv-tile-lock {
	position: absolute; left: 50%; top: 50%; z-index: 1;
	width: 34px; height: 34px; margin: -17px 0 0 -17px; color: #C9C1D6;
}
.adv-root .adv-tile-note { position: relative; z-index: 2; font-size: 12px; font-weight: 600; text-align: center; }

/* Ya es el día pero falta el video */
.adv-root .adv-tile.is-soon { color: var(--adv-red); background: #FFF1F6; border: 1.5px dashed #F5B8CE; }
.adv-root .adv-tile.is-soon .adv-tile-icon { opacity: .35; filter: grayscale(.4); }

/* ═══════════ [adviento-hoy] ═══════════ */

.adv-root .adv-hoy-box {
	padding: 28px 20px 24px; border-radius: 22px;
	background:
		radial-gradient(circle at 50% 35%, rgba(245, 194, 75, .22), transparent 55%),
		linear-gradient(155deg, var(--adv-red) 0%, #B0127A 55%, var(--adv-purple) 100%);
	box-shadow: 0 14px 34px rgba(160, 14, 66, .25);
	overflow: hidden;
}
.adv-root .adv-hoy-box.is-quiet { padding: 24px 20px; }
.adv-root .adv-hoy-box.is-quiet .adv-gp-title { font-size: clamp(18px, 3vw, 24px); margin: 0; }
.adv-root .adv-hoy-box .adv-actions { justify-content: center; margin-top: 14px; }

/* ═══════════ [adviento-demo] ═══════════ */

.adv-root.adv-demo { max-width: 1100px; margin: 0 auto; display: flex; flex-direction: column; gap: 28px; }
.adv-root .adv-demo-bar {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 16px;
	padding: 12px 16px; border-radius: 16px;
	background: var(--adv-navy); color: #fff; font-size: 14px;
}
.adv-root .adv-demo-tag {
	padding: 3px 10px; border-radius: 99px;
	background: var(--adv-gold); color: var(--adv-navy);
	font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
}
.adv-root .adv-demo-bar label { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; color: #fff; font-weight: 600; }
.adv-root .adv-demo-bar select {
	font: inherit; font-size: 14px; color: var(--adv-navy);
	padding: 7px 10px; border: 0; border-radius: 10px; background: #fff;
	width: auto; max-width: 100%; height: auto; margin: 0;
}
.adv-root button.adv-demo-reset {
	padding: 8px 14px; border-radius: 10px;
	background: var(--adv-red); color: #fff; font-size: 13px; font-weight: 700;
}
.adv-root button.adv-demo-reset:hover { background: var(--adv-red-2); }
.adv-root .adv-demo-hoy { width: 100%; max-width: 560px; margin: 0 auto; }

/* ═══════════ Regalo flotante ═══════════ */

.adv-root.adv-float {
	position: fixed; bottom: 20px; z-index: 99990;
	display: flex; align-items: center; gap: 10px;
	pointer-events: none;
}
.adv-root.adv-float.is-left { left: 20px; }
.adv-root.adv-float.is-right { right: 20px; flex-direction: row-reverse; }
.adv-root.adv-float > * { pointer-events: auto; }

.adv-root .adv-float-btn {
	position: relative; flex: none;
	width: 66px; height: 66px; border-radius: 50%;
	background: #fff;
	box-shadow: 0 8px 24px rgba(26, 35, 65, .28), 0 0 0 3px rgba(209, 20, 86, .15);
	display: flex; align-items: center; justify-content: center;
	transition: transform .2s;
}
.adv-root .adv-float-btn:hover { transform: scale(1.08); }
.adv-root .adv-float-btn .adv-svg { width: 48px; height: 48px; transform-origin: 50% 90%; }
.adv-root .adv-float-btn.has-pending .adv-svg { animation: adv-idle 2.4s ease-in-out infinite; }
.adv-root .adv-float-btn.has-pending { animation: adv-ring 2.4s ease-in-out infinite; }
@keyframes adv-ring { 50% { box-shadow: 0 8px 24px rgba(26, 35, 65, .28), 0 0 0 8px rgba(209, 20, 86, .18); } }

.adv-root .adv-float-badge {
	position: absolute; top: -3px; right: -3px;
	min-width: 23px; height: 23px; padding: 0 6px; border-radius: 99px;
	background: var(--adv-red); color: #fff; border: 2px solid #fff;
	font-size: 12px; font-weight: 800; line-height: 19px; text-align: center;
}

.adv-root .adv-float-label {
	padding: 9px 14px; border-radius: 99px;
	background: var(--adv-navy); color: #fff;
	font-size: 13px; font-weight: 700; white-space: nowrap;
	box-shadow: 0 6px 18px rgba(26, 35, 65, .25);
	opacity: 0; transform: translateX(-8px); visibility: hidden;
	transition: opacity .25s, transform .25s, visibility .25s;
}
.adv-root.adv-float.is-right .adv-float-label { transform: translateX(8px); }
.adv-root.adv-float.is-peek .adv-float-label,
.adv-root.adv-float:hover .adv-float-label { opacity: 1; transform: none; visibility: visible; }

@media (max-width: 600px) {
	.adv-root.adv-float { bottom: 14px; }
	.adv-root.adv-float.is-left { left: 14px; }
	.adv-root.adv-float.is-right { right: 14px; }
	.adv-root .adv-float-btn { width: 58px; height: 58px; }
	.adv-root .adv-float-btn .adv-svg { width: 42px; height: 42px; }
}

/* La esfera cuelga del hilo: se hamaca en vez de sacudirse */
.adv-root .adv-svg-ornament { transform-origin: 50% 2% !important; }
.adv-root .adv-bigicon .adv-svg-ornament,
.adv-root .adv-float-btn.has-pending .adv-svg-ornament,
.adv-root .adv-tile.is-ready:not(.is-opening) .adv-tile-icon .adv-svg-ornament { animation-name: adv-swing; }
@keyframes adv-swing { 0%, 100% { transform: rotate(-6deg); } 50% { transform: rotate(6deg); } }

/* ═══════════ Papelitos ═══════════ */

.adv-confetti { position: fixed; inset: 0; pointer-events: none; z-index: 2147483001; overflow: hidden; }
.adv-confetti i { position: absolute; width: 8px; height: 12px; border-radius: 2px; }

/* ═══════════ Menos movimiento ═══════════ */

@media (prefers-reduced-motion: reduce) {
	.adv-root *, .adv-root *::before, .adv-root *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
	.adv-root .adv-snow { display: none; }
}
