/* Colores de la temporada y lectura del contenido. */
.season-active{background:var(--season-background)}
.season-active .section-surface,.season-active .category-hero,.season-active .category-content,.season-active .error-page__main{background:radial-gradient(ellipse at 80% 15%,rgba(var(--accent-rgb),.11),transparent 48%),linear-gradient(180deg,var(--season-background),var(--season-surface))}
.season-active .site-header,.season-active .site-header.is-scrolled,.season-active .site-footer{background:var(--season-background)}
.season-active .btn--red,.season-active .part-icon,.season-active .caption-icon,.season-active .hero-strip__icon:not(.hero-strip__icon--wa),.season-active .fact-icon,.season-active .contact-card__icon,.season-active .quote-step.is-active b,.season-active .quote-step.is-complete b,.season-active .faq-item[open] summary::after{color:var(--season-ink)}
.season-active .eyebrow{color:var(--season-secondary)}
.season-active .quote-group legend span{color:#273548}
.season-active .quote-step.is-complete{background:#f1f4f8;color:#273548}
.season-active .quote-preview__status{color:#e2e8f0}
.season-active .quote-preview__help p{color:#d6dce5}
.season-active .quick-picks button svg{color:#45546a}
.season-active .hero,.season-active .category-hero,.season-active .error-page__main{position:relative;isolation:isolate;overflow:hidden}
.season-active .hero>.container,.season-active .category-hero>.container,.season-active .error-page__main>.container{position:relative;z-index:1}
.season-active .category-hero__media{position:relative}
.season-decorated .category-hero__media>picture{filter:brightness(.65) saturate(.8)}
.season-decorated .hero-image-caption{z-index:4}
.season-decorated .hero-badge--top{z-index:4}
.season-message{display:flex;align-items:center;gap:10px;padding:12px 14px;margin-bottom:18px;border:1px solid rgba(var(--accent-rgb),.35);border-radius:14px;background:linear-gradient(135deg,rgba(var(--accent-rgb),.13),rgba(var(--accent-rgb),.025));color:#f7f9fc;max-width:620px;text-align:left;box-shadow:0 12px 32px #0002}
.season-message>span:last-child{min-width:0;overflow-wrap:anywhere}
.season-message__icon{width:32px;height:32px;flex:none;color:var(--season-accent)}
.season-message small{display:block;color:var(--season-secondary);font-size:11px;letter-spacing:.01em;font-weight:700;line-height:1.4;margin-bottom:6px}
.season-message strong{display:block;font-size:13px;font-weight:600;line-height:1.5;text-wrap:pretty}
.season-message__icon svg,.season-scene svg,.season-particle svg,.season-corner svg{display:block;width:100%;height:100%;fill:currentColor;stroke:none}
/* Colores de temporada; cabecera y flotante conservan su verde al final del bloque. */
.season-active .wa-button,.season-active .wa-button:hover,.season-active .whatsapp-fab,.season-active .whatsapp-fab.is-visible:hover{background:linear-gradient(135deg,var(--red-2),var(--red));color:var(--season-ink);box-shadow:0 15px 34px rgba(var(--accent-rgb),.28)}
.season-active .whatsapp-fab::before{border-color:rgba(var(--accent-rgb),.6)}
.season-active .wa-icon,.season-active .btn-wa-inline,.season-active .hero-strip__icon--wa,.season-active .quote-preview__help-icon,.season-active .contact-card__wa,.season-active .whatsapp-fab__icon{position:relative;color:var(--season-accent)}
.season-active .wa-icon img,.season-active .btn-wa-inline img,.season-active .hero-strip__icon--wa img,.season-active .quote-preview__help-icon img,.season-active .contact-card__wa img,.season-active .whatsapp-fab__icon img{opacity:0}
.season-active .wa-icon::after,.season-active .btn-wa-inline::after,.season-active .hero-strip__icon--wa::after,.season-active .quote-preview__help-icon::after,.season-active .contact-card__wa::after,.season-active .whatsapp-fab__icon::after{content:"";position:absolute;inset:0;background:currentColor;-webkit-mask:url('../assets/whatsapp-outline-white.png') center/contain no-repeat;mask:url('../assets/whatsapp-outline-white.png') center/contain no-repeat}
.season-active .wa-button .wa-icon,.season-active .whatsapp-fab__icon{color:var(--season-ink)}
.season-active .btn-wa-inline,.season-active .hero-strip__icon--wa,.season-active .contact-card__wa{color:var(--season-ink);background:linear-gradient(135deg,var(--red-2),var(--red));box-shadow:0 12px 25px rgba(var(--accent-rgb),.22)}
.season-active .btn-wa-inline::after{inset:4px}
.season-active .hero-strip__icon--wa::after,.season-active .contact-card__wa::after{inset:8px}
.season-active .quote-preview__help{border-color:rgba(var(--accent-rgb),.25);background:rgba(var(--accent-rgb),.07)}
/* Encabezado, cotizador y flotante conservan siempre el verde de WhatsApp. */
.season-active .site-header .wa-button,.season-active .site-header .wa-button:hover,.season-active .wa-button--form,.season-active .wa-button--form:hover{background:linear-gradient(180deg,#1fc75b,#18b44e);color:#fff;box-shadow:0 16px 34px rgba(37,211,102,.2)}
.season-active .whatsapp-fab,.season-active .whatsapp-fab.is-visible:hover{background:linear-gradient(180deg,#1fd25f,#16b44c);color:#fff;box-shadow:0 20px 38px rgba(37,211,102,.28)}
.season-active .whatsapp-fab::before{border-color:rgba(37,211,102,.38)}
.season-active .site-header .wa-button .wa-icon img,.season-active .wa-button--form .wa-icon img,.season-active .whatsapp-fab__icon img{opacity:1}
.season-active .site-header .wa-button .wa-icon::after,.season-active .wa-button--form .wa-icon::after,.season-active .whatsapp-fab__icon::after{display:none}
/* Escenarios ilustrados: una composición distinta por temporada. */
.season-showcase{position:absolute;inset:90px 18px 116px;z-index:2;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid rgba(var(--accent-rgb),.28);border-radius:25px;background:linear-gradient(145deg,#081020e8,#081020b8);box-shadow:inset 0 0 60px rgba(var(--accent-rgb),.06),0 18px 40px #0004;pointer-events:none}
.category-hero__media .season-showcase{inset:22px}
.season-showcase--standalone{position:relative;inset:auto;width:min(560px,100%);margin:24px auto 0;min-height:210px}
.season-scene{--scene-color-0:var(--season-accent,#ef163f);--scene-color-1:#f6c75c;--scene-color-2:#c4e0ff;position:relative;width:100%;aspect-ratio:720/420;isolation:isolate;overflow:hidden;border-radius:inherit;color:var(--scene-color-0)}
.season-showcase>.season-scene{z-index:2;flex:none}
.scene-aura{position:absolute;inset:0;background:radial-gradient(ellipse at 48% 48%,rgba(var(--accent-rgb,239,22,63),.19),transparent 65%);opacity:.9}
.scene-landscape{position:absolute;left:-5%;right:-5%;height:29%;bottom:-6%;border-radius:50% 50% 0 0;background:var(--scene-color-0);opacity:.13;transform:rotate(-4deg)}
.scene-landscape--front{bottom:-15%;height:33%;transform:rotate(7deg);background:var(--scene-color-1);opacity:.2}
.scene-land--snow .scene-landscape{background:#d5ebff;opacity:.2;height:27%;bottom:-6%}
.scene-land--snow .scene-landscape--front{background:#fff;opacity:.18;bottom:-17%}
.scene-land--altar .scene-landscape{left:12%;right:12%;height:19%;bottom:6%;border-radius:8px;background:linear-gradient(180deg,#bd7de240,#ed975935);transform:none;opacity:1;box-shadow:0 7px 0 #ffba6633,0 18px 0 #e59b4220}
.scene-land--altar .scene-landscape--front{left:5%;right:5%;height:6%;bottom:0;opacity:.8;box-shadow:none;background:#f0a24344}
.scene-land--garden .scene-landscape{background:#698d58;opacity:.2}
.scene-land--garden .scene-landscape--front{background:var(--scene-color-0);opacity:.13}
.scene-land--night .scene-aura,.scene-land--celebration .scene-aura{background:radial-gradient(ellipse at 50% 70%,#a78bf92b,transparent 65%)}
.scene-land--autumn .scene-aura{background:radial-gradient(ellipse at 60% 75%,#f1b74b33,transparent 70%)}
.scene-land--autumn .scene-landscape{opacity:.18}
.scene-land--romance .scene-aura{background:radial-gradient(ellipse at 50% 55%,#fa718b36,transparent 65%)}
.scene-land--spotlight .scene-aura,.scene-land--neon .scene-aura{background:linear-gradient(115deg,transparent 15%,#fb3e641a 25%,transparent 33%,transparent 65%,#ffd58b1a 76%,transparent 85%)}
.scene-land--digital .scene-aura,.scene-land--workshop .scene-aura{background-image:linear-gradient(#8dc9fa12 1px,transparent 1px),linear-gradient(90deg,#8dc9fa12 1px,transparent 1px),radial-gradient(ellipse at 50% 60%,#55d5eb22,transparent 65%);background-size:32px 32px,32px 32px,100% 100%;transform:perspective(450px) rotateX(12deg)}
.scene-land--school .scene-landscape{height:25%;border-radius:10px;transform:rotate(-6deg);background:repeating-linear-gradient(180deg,#d7edff33 0,#d7edff33 15px,#68a8db33 16px);opacity:.4}
.scene-land--school .scene-landscape--front{display:none}
.scene-land--coast .scene-landscape,.scene-land--coastRoad .scene-landscape{background:#f5d4a1;opacity:.28;height:23%}
.scene-land--coast .scene-landscape--front,.scene-land--coastRoad .scene-landscape--front{background:#4baabb;opacity:.28;bottom:-6%;height:18%}
.scene-land--rain .scene-aura{background:linear-gradient(180deg,#5b8ab128,transparent 70%)}
.scene-land--rain .scene-landscape{opacity:.08}
.scene-figure{position:absolute;display:block;aspect-ratio:1;z-index:3}
.scene-motion{display:block;width:100%;height:100%;transform:rotate(var(--figure-turn,0deg));transform-origin:center;animation-delay:var(--figure-delay,0s)!important;animation-play-state:paused!important}
.scene-figure svg{overflow:visible;filter:drop-shadow(0 7px 8px #0003)}
.scene-motion--float{animation:sceneFloat 5.5s ease-in-out infinite}
.scene-motion--sway{animation:sceneSway 5s ease-in-out infinite;transform-origin:50% 75%}
.scene-motion--bob,.scene-motion--bounce{animation:sceneBob 3.5s ease-in-out infinite}
.scene-motion--spin{animation:sceneSpin 22s linear infinite}
.scene-motion--spinReverse{animation:sceneSpin 18s linear infinite reverse}
.scene-motion--bloom{animation:sceneBloom 5s ease-in-out infinite}
.scene-motion--flutter{animation:sceneFlutter 3s ease-in-out infinite}
.scene-motion--heartbeat{animation:sceneHeartbeat 3s ease-in-out infinite}
.scene-motion--twinkle,.scene-motion--pulse,.scene-motion--glow{animation:sceneGlow 3.8s ease-in-out infinite}
.scene-motion--flame{animation:sceneCandleGlow 3s ease-in-out infinite}
.scene-motion--drive{animation:sceneDrive 4s ease-in-out infinite}
.scene-motion--piston{animation:scenePiston 2.3s ease-in-out infinite}
.scene-motion--cloud{animation:sceneCloud 10s ease-in-out infinite}
.scene-motion--glide{animation:sceneGlide 9s ease-in-out infinite}
.scene-motion--leaf{animation:sceneLeaf 7s ease-in-out infinite}
.scene-motion--drop{animation:sceneDrop 3.5s ease-in-out infinite}
.scene-motion--pages{animation:scenePages 4s ease-in-out infinite}
.season-animated .scene-motion,.theme-card:is(:hover,:focus-visible,[aria-pressed=true]) .scene-motion{animation-play-state:running!important}
.scene-figure[data-motif=butterfly] svg>path:first-child{transform-origin:50% 50%;animation:sceneWing 1.3s ease-in-out infinite paused}
.season-animated .scene-figure[data-motif=butterfly] svg>path:first-child{animation-play-state:running}
.scene-figure[data-motif=candle] svg>path:nth-of-type(2){transform-origin:50% 40%;animation:sceneFlame 2.7s ease-in-out infinite paused}
.season-animated .scene-figure[data-motif=candle] svg>path:nth-of-type(2){animation-play-state:running}
.scene-road{position:absolute;inset:42% 30% -8%;overflow:hidden;clip-path:polygon(43% 0,57% 0,100% 100%,0 100%);background:#637f9d22;z-index:1}
.scene-road::after{content:"";position:absolute;top:-100%;left:48%;width:4%;height:200%;background:repeating-linear-gradient(180deg,#eef6ff55 0 17px,transparent 17px 43px);animation:sceneRoad 2.6s linear infinite paused}
.season-animated .scene-road::after{animation-play-state:running}
.scene-wave{position:absolute;left:-20%;width:140%;height:13%;bottom:calc(-3% + var(--wave-i)*4%);border-radius:50%;background:var(--scene-color-2);opacity:.09;animation:sceneWave 7s ease-in-out infinite paused;animation-delay:calc(var(--wave-i)*-2s)}
.season-animated .scene-wave{animation-play-state:running}
.scene-land--rain .scene-wave{left:20%;width:60%;bottom:calc(3% + var(--wave-i)*4%);height:4%;background:none;border:2px solid #a5d8ff;opacity:.17;animation-name:sceneRipple}
.scene-firework{position:absolute;width:25%;aspect-ratio:1;left:calc(5% + var(--burst-i)*62%);top:calc(4% + var(--burst-i)*8%);color:var(--scene-color-1);z-index:2;animation:sceneFirework 5.7s ease-out infinite paused;animation-delay:calc(var(--burst-i)*-2.6s)}
.scene-firework:nth-of-type(2n){color:var(--scene-color-2)}
.scene-firework__ray{position:absolute;left:50%;top:50%;height:30%;width:2px;background:currentColor;border-radius:4px;transform-origin:50% 0;transform:rotate(calc(var(--ray)*30deg)) translateY(20px)}
.season-animated .scene-firework{animation-play-state:running}
.scene-comet{position:absolute;left:85%;top:-15%;width:17%;aspect-ratio:1;z-index:2;opacity:.7;animation:sceneComet 9s linear infinite paused}
.season-animated .scene-comet{animation-play-state:running}
/* Clima y fiestas: nieve, hojas, pétalos, corazones, lluvia y confeti. */
.season-layer{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;contain:paint;color:var(--season-accent);-webkit-mask-image:linear-gradient(90deg,#0003,#000b 80%);mask-image:linear-gradient(90deg,#0003,#000b 80%)}
.season-showcase>.season-layer{z-index:4;-webkit-mask-image:none;mask-image:none}
.season-particle{position:absolute;left:var(--x);top:var(--y);width:var(--size);opacity:.35;transform:rotate(var(--turn));pointer-events:none}
.season-particle__art{display:block;width:var(--size);height:var(--size)}
.season-showcase .season-particle{opacity:.45}
.season-bit--confetti{width:calc(var(--size)*.4);height:var(--size);border-radius:2px;background:currentColor}
.season-bit--rain{width:2px;height:calc(var(--size)*2);border-radius:4px;background:linear-gradient(transparent,currentColor);transform:rotate(16deg)}
.season-animated .season-particle--snow,.season-animated .season-particle--leaves,.season-animated .season-particle--petals,.season-animated .season-particle--confetti,.season-animated .season-particle--rain{top:0;height:100%;animation:seasonFall var(--duration) linear infinite;animation-delay:var(--delay)}
.season-animated .season-particle--rain{animation-name:seasonRain}
.season-animated .season-particle--leaves .season-particle__art,.season-animated .season-particle--petals .season-particle__art,.season-animated .season-particle--confetti .season-particle__art{animation:seasonTumble 5s ease-in-out infinite;animation-delay:var(--delay)}
.season-animated .season-particle--hearts{top:0;height:100%;animation:seasonRise var(--duration) linear infinite;animation-delay:var(--delay)}
.season-animated .season-particle--spark,.season-animated .season-particle--stars,.season-animated .season-particle--data{animation:seasonSpark 4s ease-in-out infinite;animation-delay:var(--delay)}
.season-animated .season-particle--clouds{opacity:.15;animation:seasonCloud 12s ease-in-out infinite;animation-delay:var(--delay)}
.season-weather--sunbeams::before{content:"";position:absolute;width:80%;aspect-ratio:1;right:-10%;top:-15%;background:repeating-conic-gradient(from 0deg,#ffcc6914 0 10deg,transparent 10deg 30deg);border-radius:50%;-webkit-mask-image:radial-gradient(#000,transparent 65%);mask-image:radial-gradient(#000,transparent 65%)}
.season-animated .season-weather--sunbeams::before{animation:sceneSpin 65s linear infinite}
.season-bunting{position:absolute;top:6px;left:0;right:0;display:flex;justify-content:space-around;gap:18px;border-top:1px solid rgba(var(--accent-rgb),.45);padding-top:4px;opacity:.75}
.season-paper{position:relative;width:34px;height:40px;background:currentColor;clip-path:polygon(0 0,100% 0,100% 88%,80% 100%,60% 88%,40% 100%,20% 88%,0 100%);transform-origin:50% 0}
.season-paper::after{content:"";position:absolute;inset:5px;background:radial-gradient(circle,var(--season-background) 2px,transparent 3px) 0 0/9px 9px}
.season-bunting--pennants .season-paper{clip-path:polygon(0 0,100% 0,50% 100%)}
.season-bunting--pennants .season-paper::after{display:none}
.season-animated .season-paper{animation:seasonFlag 4s ease-in-out infinite;animation-delay:var(--delay)}
.season-light{width:9px;height:16px;background:currentColor;border-radius:3px 3px 50% 50%;box-shadow:0 0 13px currentColor;transform-origin:50% 0}
.season-animated .season-light{animation:seasonLight 3.5s ease-in-out infinite;animation-delay:var(--delay)}
.season-corner{position:absolute;top:13px;right:13px;z-index:2;display:grid;place-items:center;width:42px;height:42px;padding:7px;color:var(--season-secondary);border:1px solid rgba(var(--accent-rgb),.5);border-radius:12px;background:#0b1125db;box-shadow:0 8px 22px #0004;pointer-events:none}
.season-animated .season-corner svg{animation:sceneBob 4s ease-in-out infinite}
.season-animated :is(.season-layer,.season-showcase,.season-corner):not(.season-in-view) *,.season-paused :is(.season-layer,.season-showcase,.season-corner) *{animation-play-state:paused!important}
.season-animated .season-layer:not(.season-in-view)::before,.season-paused .season-layer::before{animation-play-state:paused!important}
.season-animated .season-showcase:not(.season-in-view) .scene-road::after,.season-paused .scene-road::after{animation-play-state:paused!important}
.season-animated .scene-land--digital .scene-aura{animation:sceneGlow 5s ease-in-out infinite}
@keyframes sceneFloat{0%,100%{transform:translateY(0) rotate(var(--figure-turn,0deg))}50%{transform:translateY(-13px) rotate(calc(var(--figure-turn,0deg) + 3deg))}}
@keyframes sceneSway{0%,100%{transform:rotate(calc(var(--figure-turn,0deg) - 5deg))}50%{transform:rotate(calc(var(--figure-turn,0deg) + 5deg))}}
@keyframes sceneBob{0%,100%{transform:translateY(0) rotate(var(--figure-turn,0deg))}50%{transform:translateY(-9px) rotate(var(--figure-turn,0deg))}}
@keyframes sceneSpin{to{transform:rotate(360deg)}}
@keyframes sceneBloom{0%,100%{transform:scale(.95) rotate(var(--figure-turn,0deg))}50%{transform:scale(1.06) rotate(calc(var(--figure-turn,0deg) + 5deg))}}
@keyframes sceneFlutter{0%,100%{transform:translate(0,0) rotate(-5deg)}50%{transform:translate(12px,-14px) rotate(9deg)}}
@keyframes sceneWing{50%{transform:scaleX(.55)}}
@keyframes sceneHeartbeat{0%,42%,100%{transform:scale(1)}17%{transform:scale(1.09)}29%{transform:scale(1.03)}}
@keyframes sceneGlow{0%,100%{opacity:.65}50%{opacity:1}}
@keyframes sceneCandleGlow{0%,100%{filter:drop-shadow(0 -5px 10px #f5bc4944)}50%{filter:drop-shadow(0 -7px 17px #f5bc4977)}}
@keyframes sceneFlame{0%,100%{transform:scale(1) rotate(-3deg)}50%{transform:scale(.95,1.1) rotate(3deg)}}
@keyframes sceneDrive{0%,100%{transform:translateX(-9px) translateY(0) rotate(-1deg)}50%{transform:translateX(9px) translateY(-4px) rotate(1deg)}}
@keyframes scenePiston{50%{transform:translateY(-18px)}}
@keyframes sceneCloud{0%,100%{transform:translateX(-12px)}50%{transform:translateX(18px)}}
@keyframes sceneGlide{0%,100%{transform:translate(-8px,4px)}50%{transform:translate(16px,-12px)}}
@keyframes sceneLeaf{0%,100%{transform:translate(-6px,0) rotate(calc(var(--figure-turn,0deg) - 12deg))}50%{transform:translate(8px,12px) rotate(calc(var(--figure-turn,0deg) + 12deg))}}
@keyframes sceneDrop{0%,100%{transform:translateY(-4px);opacity:.6}50%{transform:translateY(8px);opacity:1}}
@keyframes scenePages{0%,100%{transform:rotate(-3deg) scaleX(1)}50%{transform:rotate(3deg) scaleX(.94)}}
@keyframes sceneRoad{from{transform:translateY(-21px)}to{transform:translateY(21px)}}
@keyframes sceneWave{0%,100%{transform:translateX(-20px) rotate(-1deg)}50%{transform:translateX(20px) rotate(1deg)}}
@keyframes sceneRipple{0%{transform:scale(.6);opacity:0}40%{opacity:.22}100%{transform:scale(1.15);opacity:0}}
@keyframes sceneFirework{0%,8%{transform:scale(.08);opacity:0}16%{opacity:.9}45%{transform:scale(1.12);opacity:0}100%{transform:scale(1.12);opacity:0}}
@keyframes sceneComet{0%,65%{transform:translate(0,0);opacity:0}70%{opacity:.8}89%,100%{transform:translate(-450px,220px);opacity:0}}
@keyframes seasonFall{0%{transform:translate(0,-10%);opacity:0}12%{opacity:.45}88%{opacity:.45}100%{transform:translate(var(--drift),110%);opacity:0}}
@keyframes seasonRain{0%{transform:translate(15px,-5%);opacity:0}15%{opacity:.45}90%{opacity:.3}100%{transform:translate(-100px,110%);opacity:0}}
@keyframes seasonTumble{0%,100%{transform:rotate(var(--turn)) scaleX(1)}50%{transform:rotate(calc(var(--turn) + 95deg)) scaleX(.65)}}
@keyframes seasonRise{0%{transform:translate(0,100%);opacity:0}20%{opacity:.4}80%{opacity:.4}100%{transform:translate(var(--drift),-10%);opacity:0}}
@keyframes seasonSpark{0%,100%{opacity:.15;transform:rotate(var(--turn)) scale(.7)}50%{opacity:.6;transform:rotate(calc(var(--turn) + 25deg)) scale(1.1)}}
@keyframes seasonCloud{0%,100%{transform:translateX(-16px);opacity:.12}50%{transform:translateX(20px);opacity:.24}}
@keyframes seasonFlag{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}
@keyframes seasonLight{0%,100%{opacity:.95;transform:rotate(-4deg)}50%{opacity:.45;transform:rotate(4deg)}}
@media(max-width:720px){
.season-message{padding:12px;margin-bottom:16px}.season-message strong{font-size:12px}
.season-showcase{inset:80px 12px 108px;border-radius:20px}.category-hero__media .season-showcase{inset:15px}
.season-bunting{gap:12px}.season-paper{width:23px;height:30px}.season-particle{opacity:.25}.season-corner{width:38px;height:38px}
}
@media(prefers-reduced-motion:reduce){.season-scene *,.season-scene *::after,.season-layer *,.season-layer::before,.season-corner *{animation:none!important;transition:none!important}}
