/* ==========================================================================
   Familiacanarias · estilos
   Mundo: mañana luminosa sobre el mar de nubes, pueblo costero en fiesta.
   ========================================================================== */

:root{
  --canvas:#EEF5F8;
  --canvas-2:#E3EEF3;
  --panel:#FAFCFD;
  --accent:#FFC21A;
  --accent-hover:#FFB300;
  --accent-deep:#D99A00;
  --accent-muted:rgba(255,194,26,.28);
  --text-secondary:#46606F;
  --text-primary:#0D2B3E;
  --line:#CFDDE5;            /* decoración */
  --border-strong:#6A8494;   /* bordes interactivos, 3.6:1 sobre el lienzo */

  --f-turq:#1FA9A2; --f-coral:#FF6F59; --f-sky:#3C9BDC; --f-sun:#FFC21A; --f-laurel:#4CAF7A; --f-hibisco:#E8649B;

  --t-espectaculos:#FFE3DD; --t-talleres:#D5F1EE; --t-musica:#FFF0C4;
  --t-concursos:#DDEBF8; --t-fiestas:#FBE2EE; --t-aire-libre:#DDF1E5;

  --f-display:"Grandstander", "Trebuchet MS", system-ui, sans-serif;
  --f-body:"Atkinson Hyperlegible Next", system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-mono:"Martian Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

  --ease-out:cubic-bezier(.22,1,.36,1);
  --ease-soft:cubic-bezier(.65,0,.35,1);

  --radius:22px;
  --shadow-soft:0 1px 2px rgba(13,43,62,.06), 0 12px 32px -14px rgba(13,43,62,.22);
  --tshadow:0 1px 2px rgba(250,252,253,.95), 0 2px 14px rgba(250,252,253,.8), 0 8px 40px rgba(250,252,253,.75);
  --gutter:clamp(16px, 4vw, 48px);
}

*,*::before,*::after{box-sizing:border-box}
html{overflow-x:hidden;overflow-x:clip;scroll-behavior:smooth;scroll-padding-top:96px;-webkit-text-size-adjust:100%}
body{
  margin:0;overflow-x:hidden;overflow-x:clip;
  background:var(--canvas);color:var(--text-primary);
  font:400 18px/1.55 var(--f-body);
  -webkit-font-smoothing:antialiased;
  /* (sin fundido de entrada: la página invisible al cargar hacía que Google no midiera la carga) */
}
@keyframes pageIn{from{opacity:0}to{opacity:1}}
img{max-width:100%;display:block}
a{color:inherit}
button{font:inherit;color:inherit}
h1,h2,h3{margin:0;font-family:var(--f-display);font-weight:800;letter-spacing:-.01em;line-height:1.04;text-wrap:balance}
p{margin:0}
.mono{font-family:var(--f-mono);font-weight:400;letter-spacing:.02em}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.skip{position:fixed;left:16px;top:-80px;z-index:100;background:var(--text-primary);color:var(--panel);padding:10px 16px;border-radius:12px;text-decoration:none;transition:top .3s var(--ease-out)}
.skip:focus{top:16px}

:focus-visible{outline:2px solid var(--text-primary);outline-offset:3px;box-shadow:0 0 0 6px var(--accent);border-radius:10px}
main:focus{outline:none}

.wrap{width:min(1180px, 100% - 2*var(--gutter));margin-inline:auto}

/* ---------- Fondo fijo: el cielo que acompaña toda la página ---------- */
.env{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;
  background:linear-gradient(180deg,#E3F0F7 0%,#EEF5F8 45%,#F2F7F6 100%)}
.env-cloud{position:absolute;border-radius:50%;filter:blur(40px);opacity:.75;
  background:radial-gradient(closest-side,rgba(255,255,255,.95),rgba(255,255,255,0));
  animation:drift 120s linear infinite alternate}
.env-cloud.c1{width:60vw;height:30vw;left:-10vw;top:8vh;animation-duration:140s;animation-delay:-30s}
.env-cloud.c2{width:48vw;height:24vw;right:-12vw;top:48vh;animation-duration:110s;animation-delay:-70s}
.env-cloud.c3{width:40vw;height:20vw;left:30vw;top:78vh;animation-duration:160s;animation-delay:-12s;opacity:.55}
@keyframes drift{from{transform:translate3d(-6vw,0,0)}to{transform:translate3d(8vw,-2vh,0)}}
.env-confetti{position:absolute;inset:-20% 0 0 0;opacity:.07;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Crect x='20' y='30' width='7' height='3' rx='1' fill='%23FFC21A' transform='rotate(28 23 31)'/%3E%3Crect x='140' y='18' width='6' height='3' rx='1' fill='%231FA9A2' transform='rotate(-20 143 19)'/%3E%3Crect x='90' y='110' width='7' height='3' rx='1' fill='%23FF6F59' transform='rotate(60 93 111)'/%3E%3Crect x='186' y='150' width='6' height='3' rx='1' fill='%233C9BDC' transform='rotate(12 189 151)'/%3E%3Crect x='40' y='176' width='6' height='3' rx='1' fill='%234CAF7A' transform='rotate(-40 43 177)'/%3E%3C/svg%3E");
  background-size:220px 220px;animation:fall 90s linear infinite;animation-delay:-20s}
@keyframes fall{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,220px,0)}}

/* ---------- Navegación ---------- */
.nav{position:fixed;z-index:50;top:12px;left:50%;transform:translateX(-50%);
  width:min(1180px, 100% - 24px);display:flex;align-items:center;gap:16px;
  padding:8px 8px 8px 18px;border-radius:999px;
  background:rgba(245,249,251,.72);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);
  box-shadow:0 1px 0 rgba(255,255,255,.7) inset, 0 10px 30px -18px rgba(13,43,62,.35)}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--text-primary)}
.brand-mark{width:40px;height:26px;flex:none}
.brand-word{font-family:var(--f-display);font-weight:700;font-size:21px;letter-spacing:-.01em}
.brand-word b{font-weight:800;color:var(--f-turq)}
.nav nav{margin-left:auto}
.nav-links{display:flex;gap:4px;list-style:none;margin:0;padding:0}
.nav-links a{display:inline-block;padding:9px 14px;border-radius:999px;text-decoration:none;font-weight:600;font-size:16px;transition:background .25s var(--ease-out)}
.nav-links a:hover{background:rgba(13,43,62,.07)}
.nav-cta{padding:11px 18px;font-size:15px}
.cta-short{display:none}
@media (max-width:480px){.cta-long{display:none}.cta-short{display:inline}}
@media (max-width:860px){.nav-links{display:none}.nav nav{margin-left:auto}}
@media (max-width:420px){.brand-word{font-size:18px}.brand-mark{width:32px}.nav-cta{padding:10px 14px;font-size:14px}}

/* ---------- Botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;cursor:pointer;
  font:700 16px/1.1 var(--f-body);padding:14px 22px;border-radius:999px;border:2px solid transparent;white-space:nowrap;
  transition:transform .3s var(--ease-out), background-color .3s var(--ease-out), box-shadow .3s var(--ease-out), color .3s var(--ease-out), border-color .3s var(--ease-out)}
.btn-accent{background:var(--accent);color:var(--text-primary);box-shadow:0 4px 0 var(--accent-deep), 0 10px 24px -10px rgba(217,154,0,.8)}
.btn-accent:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 6px 0 var(--accent-deep), 0 16px 30px -12px rgba(217,154,0,.85)}
.btn-accent:active{transform:translateY(2px);box-shadow:0 1px 0 var(--accent-deep)}
.btn-ghost{background:transparent;color:var(--text-primary);border-color:var(--text-primary)}
.btn-ghost:hover{background:var(--text-primary);color:var(--panel);transform:translateY(-2px)}
.btn-wide{width:100%}
@media (pointer:coarse){.btn,.chip-btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  .t-link,.t-cal,.sitio-links a,.foot-links a,.brand{min-height:44px;display:inline-flex;align-items:center}
  .t-cal{padding:0 14px}}

/* ==========================================================================
   HERO
   ========================================================================== */
.hero{position:relative;height:380vh}
.stage{position:sticky;top:0;height:100vh;overflow:hidden;background:#CFE3EF}
.poster,.poster-end{position:absolute;inset:0;background-size:cover;background-position:center}
.poster-end{opacity:0}
#hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:translateZ(0);will-change:transform;transition:opacity .8s var(--ease-out)}
.video-ready #hero-video{opacity:1}
.scrim{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(238,245,248,.62) 0%,rgba(238,245,248,0) 20%),
             radial-gradient(ellipse 120% 90% at 50% 45%,rgba(238,245,248,0) 55%,rgba(238,245,248,.35) 100%)}

.band{position:absolute;opacity:0;pointer-events:none;text-shadow:var(--tshadow)}
.band.on{pointer-events:auto}
.band::before{content:"";position:absolute;inset:-26% -18%;z-index:-1;pointer-events:none;
  opacity:calc(.25 + .75*var(--k,1));
  background:radial-gradient(ellipse 74% 62% at 50% 50%,rgba(246,250,252,.72) 0%,rgba(246,250,252,.46) 46%,rgba(246,250,252,0) 76%)}
.band .btn{text-shadow:none}

.band-1{left:clamp(24px,6vw,110px);top:24vh}
.band-1 .kicker{margin-bottom:18px}
.descend{margin-top:30px;pointer-events:auto;padding:16px 26px;font-size:17px}
.btn-glass{background:rgba(246,250,252,.8);color:var(--text-primary);border:1.5px solid rgba(13,43,62,.28);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);text-shadow:none;box-shadow:0 10px 30px -14px rgba(13,43,62,.45)}
.btn-glass svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;animation:nudgeDown 2.4s var(--ease-soft) infinite;animation-delay:-.4s}
.btn-glass:hover{background:var(--text-primary);color:var(--panel);transform:translateY(-2px)}
@keyframes nudgeDown{0%,100%{transform:translateY(-2px)}50%{transform:translateY(3px)}}
.band-1 .descend{--kd:clamp(0,(var(--k,0) - .55)*3,1);opacity:var(--kd);transform:translateY(calc((1 - var(--kd))*12px))}
.band-1 .descend:hover{transform:translateY(-2px)}
.band-line{font-family:var(--f-display);font-weight:800;font-size:clamp(42px,5.8vw,96px);line-height:1.02;letter-spacing:-.015em;color:var(--text-primary);max-width:12ch}
.chip{display:inline-block;font:600 13px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;
  padding:9px 12px;border-radius:10px;background:rgba(246,250,252,.7);border:1px solid rgba(106,132,148,.35);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);text-shadow:none}

.band-2{left:50%;top:50%;transform:translate(-50%,-50%);text-align:center}
.band-2 .band-line{max-width:14ch;margin-inline:auto}
.band-2::before{inset:-40% -26%}
.blur-pair{position:relative;display:block}
.bp-soft{position:absolute;inset:0;filter:blur(10px);opacity:calc(1 - var(--k,0))}
.bp-sharp{display:block;opacity:var(--k,0);transform:scale(calc(1.04 - .04*var(--k,0)))}

.band-3{left:clamp(20px,5vw,84px);top:50%;transform:translateY(-50%)}
.band-3::before{display:none}
.band-3 .settle-card{transform:translateY(calc((1 - var(--k,1))*28px))}

/* Tarjeta del aterrizaje: un cartel de fiesta colgado con banderines */
.settle-card{position:relative;width:min(540px, 100%);padding:46px 38px 34px;border-radius:28px;
  background:rgba(250,252,253,.84);backdrop-filter:blur(16px) saturate(1.25);-webkit-backdrop-filter:blur(16px) saturate(1.25);
  box-shadow:0 1px 0 rgba(255,255,255,.8) inset, 0 34px 80px -34px rgba(13,43,62,.45);text-shadow:none}
.settle-bunting{position:absolute;left:18px;right:18px;top:-6px;width:calc(100% - 36px);height:44px;overflow:visible}
.settle-title{font-size:clamp(32px,3.5vw,54px);line-height:1.04;max-width:15ch;margin-bottom:16px}
.settle-sub{font-size:19px;color:var(--text-secondary);max-width:36ch;margin-bottom:26px}
.settle-ctas{display:flex;flex-wrap:wrap;gap:12px}
.hero .kicker{font:600 13px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary)}

/* Entradas de texto, todas movidas por --k (0 a 1) */
.split .w{display:inline-block;white-space:nowrap}
.fx-depth .w{--kc:clamp(0,(var(--k,0) - var(--th,0))*2.4,1);opacity:var(--kc);
  transform:translateY(calc((1 - var(--kc))*14px)) scale(calc(.82 + .18*var(--kc)));transform-origin:50% 80%}
.fx-rise .w{--kc:clamp(0,(var(--k,0) - var(--th,0))*3.2,1);opacity:var(--kc);transform:translateY(calc((1 - var(--kc))*22px))}
.band-3 .settle-sub{--ks:clamp(0,(var(--k,1) - .62)*4,1);opacity:var(--ks);transform:translateY(calc((1 - var(--ks))*10px))}
.band-3 .settle-ctas{--kb:clamp(0,(var(--k,1) - .76)*5,1);opacity:var(--kb);transform:translateY(calc((1 - var(--kb))*10px))}
.band-3 .settle-bunting{--kf:clamp(0,(var(--k,1) - .2)*2,1);opacity:var(--kf)}

/* Anillo de carga y señal de "baja" */
.loader{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text-primary);transition:opacity .6s var(--ease-out)}
.ring{width:42px;height:42px;transform:rotate(-90deg)}
.ring-fill{stroke-dashoffset:var(--ld,126);transition:stroke-dashoffset .2s linear}
.loader-label{font-size:11px;text-transform:uppercase;letter-spacing:.14em;padding:5px 8px;border-radius:8px;background:rgba(246,250,252,.6)}
.loader.cue .ring{display:none}
.loader.cue::before{content:"";width:14px;height:14px;border-right:2.5px solid currentColor;border-bottom:2.5px solid currentColor;transform:rotate(45deg);animation:nudge 2.4s var(--ease-soft) infinite;animation-delay:-.6s}
@keyframes nudge{0%,100%{transform:translateY(-3px) rotate(45deg)}50%{transform:translateY(4px) rotate(45deg)}}
.loader.gone{opacity:0}
@media (max-height:560px){.loader{display:none}.band-1{top:18vh}}

/* ---------- Hero estático (las cinco compuertas, idénticas en el JS) ---------- */
.hero-static{display:none}
@media (max-width: 720px), (orientation: portrait) and (max-width: 1024px), (orientation: portrait) and (pointer: coarse), (orientation: landscape) and (pointer: coarse) and (max-height: 560px), (prefers-reduced-motion: reduce){
  .hero{height:auto}
  .stage{display:none}
  .hero-static{display:flex;align-items:flex-end;min-height:100vh;min-height:100svh;padding:120px var(--gutter) 40px;
    background:#CFE3EF url("hero-ending.jpg") 62% center / cover no-repeat}
  .hero-static .settle-card{margin-inline:auto}
  .hero-static .kicker{display:block;margin-bottom:12px}
}
@media (max-width: 720px){
  .hero-static{background-image:url("hero-ending-m.jpg?v=2");background-position:60% 30%;padding-top:48vh}
  .settle-card{padding:40px 22px 24px;border-radius:24px}
  .settle-title{font-size:clamp(30px,8.6vw,40px)}
  .settle-sub{font-size:17px}
  .settle-ctas .btn{flex:1 1 100%}
}

/* ==========================================================================
   SECCIONES
   ========================================================================== */
.sec{position:relative;padding:clamp(96px,12vw,168px) 0 clamp(72px,9vw,128px)}
.h2{font-size:clamp(36px,5vw,68px);max-width:16ch}
.h3{font-size:clamp(22px,2vw,28px);font-weight:700;line-height:1.1}
.lede{font-size:clamp(18px,1.6vw,21px);color:var(--text-secondary);max-width:44ch}
.kicker{font:600 13px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:16px}
.center{text-align:center;margin-inline:auto}

/* Entradas por scroll */
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease-out), transform .9s var(--ease-out)}
.js .reveal.in{opacity:1;transform:none}

/* ---------- Banderines: la firma de la web ---------- */
.bunting{position:absolute;left:0;top:0;width:100%;height:clamp(64px,7vw,104px);overflow:visible;pointer-events:none}
.bunt-cord{fill:none;stroke:#8AA2AF;stroke-width:1.6;stroke-linecap:round;stroke-dasharray:var(--len,1400);stroke-dashoffset:var(--len,1400);transition:stroke-dashoffset 1.6s var(--ease-soft)}
.drawn .bunt-cord{stroke-dashoffset:0}
.flag{opacity:0;transform:translateY(-10px);transition:opacity .6s var(--ease-out), transform .7s var(--ease-out);transition-delay:calc(.5s + var(--i,0)*70ms)}
.drawn .flag{opacity:1;transform:none}
.flag polygon{transform-box:fill-box;transform-origin:50% 0;animation:sway 5.2s var(--ease-soft) infinite;animation-delay:calc(var(--i,0)*-0.73s)}
@keyframes sway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}

/* ---------- AGENDA ---------- */
.agenda-head{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,64px);align-items:center;margin-bottom:40px}
.agenda-intro .lede{margin-top:18px}
.islands{margin:0;position:relative;padding:22px 22px 18px;border-radius:28px;background:rgba(250,252,253,.6);box-shadow:var(--shadow-soft)}
.islands-cap{font-family:var(--f-display);font-weight:700;font-size:20px;margin-bottom:6px}
.islands-map{width:100%;height:auto;overflow:visible;display:block}
.sea-line{stroke:#B9CFDA;stroke-width:2;stroke-dasharray:2 9;stroke-linecap:round}
.isle{cursor:pointer;outline:none}
.isle .hit{fill:transparent;stroke:none;pointer-events:all}
.isle path{fill:#DCE9EF;stroke:var(--text-primary);stroke-width:2.2;stroke-linejoin:round;transition:fill .35s var(--ease-out), transform .45s var(--ease-out);transform-box:fill-box;transform-origin:50% 60%}
.isle text{font-family:var(--f-display);font-weight:700;font-size:19px;fill:var(--text-secondary);transition:fill .3s var(--ease-out)}
.isle .cnt{font-family:var(--f-mono);font-size:13px;font-weight:600;fill:var(--text-secondary)}
.isle-tiny text{font-size:15px}
@media (max-width:640px){.isle text{font-size:24px}.isle-tiny text{font-size:19px}.isle .cnt{font-size:17px}.islands{padding:18px 12px 14px}}
.isle:hover path{fill:#FFF0C4;transform:translateY(-3px)}
.isle:focus-visible path{stroke-width:4;stroke:var(--text-primary);fill:#FFF0C4}
.isle[aria-pressed="true"] path{fill:var(--isle-c,var(--f-sun));transform:translateY(-5px) scale(1.04)}
.isle[aria-pressed="true"] text{fill:var(--text-primary)}
.isle[data-isla="la-palma"]{--isle-c:var(--f-turq)}
.isle[data-isla="el-hierro"]{--isle-c:var(--f-laurel)}
.isle[data-isla="la-gomera"]{--isle-c:var(--f-coral)}
.isle[data-isla="tenerife"]{--isle-c:var(--f-sky)}
.isle[data-isla="gran-canaria"]{--isle-c:var(--f-sun)}
.isle[data-isla="fuerteventura"]{--isle-c:var(--f-coral)}
.isle[data-isla="lanzarote"]{--isle-c:var(--f-turq)}
.isle[data-isla="la-graciosa"]{--isle-c:var(--f-sky)}
.all-isles{position:absolute;right:18px;top:16px}

.filters{display:grid;gap:12px;margin-bottom:26px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.f-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}
.f-label{flex:0 0 76px;font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary)}
.chip-btn{cursor:pointer;background:var(--panel);border:1.5px solid var(--border-strong);border-radius:999px;padding:8px 14px;font-weight:600;font-size:15px;line-height:1.2;
  transition:background-color .25s var(--ease-out), color .25s var(--ease-out), border-color .25s var(--ease-out), transform .25s var(--ease-out)}
.chip-btn:hover{transform:translateY(-1px);border-color:var(--text-primary)}
.chip-btn.is-on{background:var(--text-primary);border-color:var(--text-primary);color:var(--panel)}
@media (max-width:640px){.f-label{flex-basis:100%}.f-row{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;scrollbar-width:none}.f-row .f-label{display:none}.chip-btn{flex:none}}

.count{font-size:13px;color:var(--text-secondary);margin-bottom:16px;letter-spacing:.06em;text-transform:uppercase}
.tickets{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:20px}

/* Cada plan es una entrada con talón */
.ticket{position:relative;display:grid;grid-template-columns:88px minmax(0,1fr);background:var(--panel);border-radius:20px;box-shadow:var(--shadow-soft);
  opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease-out), transform .7s var(--ease-out), box-shadow .35s var(--ease-out);transition-delay:var(--d,0ms)}
.tickets .ticket.in{opacity:1;transform:none}
.tickets.done .ticket.in{transition-delay:0s}
.ticket:hover{box-shadow:0 1px 2px rgba(13,43,62,.06), 0 20px 40px -16px rgba(13,43,62,.3)}
.stub{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:18px 6px;border-radius:20px 0 0 20px;background:var(--tint,#FFF0C4);text-align:center;
  -webkit-mask:radial-gradient(circle 9px at 100% 0,transparent 98%,#000) top/100% 51% no-repeat, radial-gradient(circle 9px at 100% 100%,transparent 98%,#000) bottom/100% 51% no-repeat;
          mask:radial-gradient(circle 9px at 100% 0,transparent 98%,#000) top/100% 51% no-repeat, radial-gradient(circle 9px at 100% 100%,transparent 98%,#000) bottom/100% 51% no-repeat}
.stub::after{content:"";position:absolute;right:0;top:14px;bottom:14px;border-right:2px dashed rgba(13,43,62,.22)}
.stub-dow{font:600 12px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase}
.stub-day{font:800 42px/1 var(--f-display)}
.stub-mon{font:600 12px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase}
.stub-more{font:400 11px/1.2 var(--f-mono);margin-top:6px;opacity:.85}
.t-body{padding:18px 20px 18px 18px;display:flex;flex-direction:column;gap:10px;min-width:0}
.t-type{display:inline-flex;align-items:baseline;gap:8px;font:600 11px/1.45 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary)}
.t-type::before{content:"";flex:none;width:9px;height:9px;border-radius:2px;background:var(--dot,var(--f-sun));transform:translateY(-1px) rotate(45deg)}
.t-title{font:700 22px/1.12 var(--f-display);text-wrap:balance}
.t-meta{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:16px}
.t-meta li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:8px;align-items:baseline}
.t-meta svg{width:18px;height:18px;transform:translateY(3px);fill:none;stroke:var(--text-primary);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.t-meta a{font-weight:600;text-underline-offset:3px}
.t-free{font-weight:700;color:#137A74}
.t-badge{align-self:flex-start;font-size:14px;font-weight:600;line-height:1.35;padding:7px 10px;border-radius:10px;background:#FFE9E4;color:#8A2A1A;border:1px solid #F4B9AD}
.t-desc{font-size:15px;color:var(--text-secondary)}
.t-org{font-size:13px;color:var(--text-secondary)}
.t-actions{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin-top:2px;padding-top:12px;border-top:1px dashed var(--line)}
.t-link{font-weight:700;font-size:15px;text-underline-offset:3px}
.t-cal{cursor:pointer;background:none;border:1.5px solid var(--border-strong);border-radius:999px;padding:7px 12px;font-weight:600;font-size:14px;transition:background-color .25s var(--ease-out), color .25s var(--ease-out)}
.t-cal:hover{background:var(--text-primary);color:var(--panel);border-color:var(--text-primary)}
.empty{padding:36px;border-radius:20px;background:var(--panel);box-shadow:var(--shadow-soft);display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
.empty p{max-width:52ch}
[hidden]{display:none!important}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.more-wrap{display:flex;justify-content:center;margin-top:24px}
.more-wrap .btn{min-width:240px}
.agenda-note{margin-top:26px;font-size:15px;color:var(--text-secondary)}

@media (max-width:960px){.agenda-head{grid-template-columns:1fr}.all-isles{position:static;margin-top:10px}}
@media (max-width:420px){.ticket{grid-template-columns:70px minmax(0,1fr)}.stub-day{font-size:34px}.t-body{padding:16px 14px}}

/* ---------- CÓMO LO HACEMOS ---------- */
.como .h2{margin-bottom:clamp(40px,6vw,72px)}
.steps{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,4vw,56px)}
.steps-path{position:absolute;left:0;right:0;top:14px;width:100%;height:60px;z-index:-1}
.steps-path path{fill:none;stroke:#9FB6C2;stroke-width:2;stroke-dasharray:6 10;stroke-linecap:round;
  clip-path:inset(0 100% 0 0);transition:clip-path 2.2s var(--ease-soft)}
.steps.in .steps-path path{clip-path:inset(0 0 0 0)}
.step{text-align:center}
.step p{max-width:32ch;margin-inline:auto;color:var(--text-secondary)}
.step .h3{margin:6px 0 10px}
.step-ico{width:92px;height:92px;margin:0 auto 14px;border-radius:50%;background:var(--panel);box-shadow:var(--shadow-soft);display:grid;place-items:center}
.step-ico svg{width:48px;height:48px;fill:none;stroke:var(--text-primary);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.step-ico .dot{fill:var(--f-coral);stroke:none;transform-box:fill-box;transform-origin:center;animation:ping 4.8s var(--ease-soft) infinite;animation-delay:-1.2s}
@keyframes ping{0%,70%,100%{transform:scale(1)}80%{transform:scale(1.25)}}
.step-n{font-size:13px;color:var(--text-secondary);letter-spacing:.14em}
.step:nth-child(3){transition-delay:.12s}.step:nth-child(4){transition-delay:.24s}
@media (max-width:760px){.steps{grid-template-columns:1fr;gap:44px}.steps-path{display:none}}

/* ---------- TIPOS DE PLAN ---------- */
.planes-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 40px;margin-bottom:36px}
.mosaic{display:grid;grid-template-columns:1.35fr 1fr 1fr;grid-template-rows:repeat(2,minmax(220px,300px));gap:18px}
.tile{position:relative;display:block;overflow:hidden;border-radius:var(--radius);text-decoration:none;color:var(--text-primary);box-shadow:var(--shadow-soft);background:#CFE3EF}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-out)}
.tile:hover img{transform:scale(1.05)}
.tile-big{grid-row:1 / span 2}
.mosaic .tile:nth-child(4){grid-column:2 / span 2}
.tile-txt{position:absolute;left:14px;right:14px;bottom:14px;padding:14px 16px;border-radius:16px;background:rgba(250,252,253,.88);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:transform .45s var(--ease-out)}
.tile:hover .tile-txt{transform:translateY(-4px)}
.tile-txt p{font-size:15px;color:var(--text-secondary);margin-top:4px}
.tile-big .tile-txt{right:auto;max-width:360px}
.mosaic .tile:nth-child(2){transition-delay:.08s}.mosaic .tile:nth-child(3){transition-delay:.16s}.mosaic .tile:nth-child(4){transition-delay:.24s}
@media (max-width:860px){.mosaic{grid-template-columns:1fr 1fr;grid-template-rows:none;grid-auto-rows:260px}.tile-big{grid-row:auto;grid-column:1 / span 2}.mosaic .tile:nth-child(4){grid-column:1 / span 2}}
@media (max-width:520px){.mosaic{grid-template-columns:1fr;grid-auto-rows:280px}.tile-big,.mosaic .tile:nth-child(4){grid-column:auto}}

/* ---------- SITIOS QUE NUNCA FALLAN ---------- */
.sitios{padding-top:clamp(40px,6vw,80px)}
.sitios-head{max-width:640px;margin-bottom:36px}
.sitios-head .lede{margin-top:16px}
.sitios-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.sitio{display:grid;grid-template-columns:64px minmax(0,1fr);gap:16px;align-items:start;padding:22px 22px 20px;border-radius:22px;background:var(--panel);box-shadow:var(--shadow-soft);
  transition:opacity .9s var(--ease-out), transform .9s var(--ease-out), box-shadow .35s var(--ease-out)}
.sitio:hover{box-shadow:0 1px 2px rgba(13,43,62,.06), 0 20px 40px -16px rgba(13,43,62,.3)}
.sitio-ico{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#FFF4D1;background:color-mix(in srgb, var(--c) 24%, #FAFCFD)}
.sitio-ico svg{width:40px;height:40px;fill:none;stroke:var(--text-primary);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;animation:bob 6s var(--ease-soft) infinite}
.sitio:nth-child(3n+2) .sitio-ico svg{animation-delay:-2s}.sitio:nth-child(3n) .sitio-ico svg{animation-delay:-4s}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.sitio-kind{font-size:11px;text-transform:uppercase;letter-spacing:.06em;line-height:1.45;color:var(--text-secondary)}
.sitio-name{font:700 23px/1.1 var(--f-display);margin:6px 0 8px}
.sitio-desc{font-size:16px;color:var(--text-secondary)}
.sitio-links{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:12px}
.sitio-links a{font-weight:700;font-size:15px;text-underline-offset:3px}
@media (max-width:1000px){.sitios-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.sitios-list{grid-template-columns:1fr}}

/* ---------- ¿ORGANIZAS PLANES? ---------- */
.organiza{padding:0 0 clamp(60px,8vw,100px)}
.org-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px 28px;align-items:center;padding:26px 30px;border-radius:22px;border:2px dashed #9FB6C2;background:rgba(250,252,253,.55)}
.org-card p{color:var(--text-secondary);max-width:56ch}
@media (max-width:760px){.org-card{grid-template-columns:1fr}.org-card .btn{justify-self:start}}

/* ---------- PREGUNTAS ---------- */
.faq-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(24px,5vw,80px);align-items:start}
.faq-title{position:sticky;top:120px}
.faq-list details{border-bottom:1.5px solid var(--line)}
.faq-list details:first-child{border-top:1.5px solid var(--line)}
.faq-list summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:22px 4px;font:700 clamp(19px,1.7vw,22px)/1.3 var(--f-body)}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";font:800 28px/1 var(--f-display);color:var(--f-turq);transition:transform .4s var(--ease-out)}
.faq-list details[open] summary::after{transform:rotate(45deg)}
.faq-list details p{padding:0 4px 24px;color:var(--text-secondary);max-width:58ch}
.faq-list details[open] p{animation:faqIn .5s var(--ease-out)}
@keyframes faqIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media (max-width:860px){.faq-grid{grid-template-columns:1fr}.faq-title{position:static}}

/* ---------- APÚNTATE ---------- */
.apuntate{padding-bottom:clamp(96px,12vw,160px)}
.cta-card{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:center;
  padding:clamp(40px,6vw,76px);border-radius:32px;background:var(--text-primary);color:#EAF3F7;box-shadow:0 40px 90px -40px rgba(13,43,62,.6)}
.cta-card::before{content:"";position:absolute;width:520px;height:520px;right:-160px;top:-220px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(31,169,162,.5),rgba(31,169,162,0));animation:glow 7s var(--ease-soft) infinite;animation-delay:-2s}
@keyframes glow{0%,100%{opacity:.55}50%{opacity:1}}
.cta-card .h2{color:#F5FAFC;max-width:14ch;position:relative}
.cta-card .lede{color:#B9CFDA;margin-top:18px;position:relative}
.cta-form{position:relative;display:grid;gap:10px}
.cta-form label{font-weight:700;font-size:16px;color:#EAF3F7}
.cta-form .opt{font-weight:400;color:#9DB6C3}
.cta-form input[type=email],.cta-form select{width:100%;font:400 18px/1.3 var(--f-body);color:var(--text-primary);background:#F5FAFC;border:2px solid #F5FAFC;border-radius:14px;padding:14px 16px;margin-bottom:8px;transition:border-color .25s var(--ease-out), box-shadow .25s var(--ease-out)}
.cta-form input[type=email]:focus,.cta-form select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px rgba(255,194,26,.35)}
.cta-form .check{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;font-weight:400;font-size:15px;color:#C6D8E1;margin:4px 0 10px}
.cta-form .check input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--accent)}
.cta-form .check a{color:#F5FAFC}
.form-err{color:#FFB4A6;font-weight:600;font-size:15px}
.form-ok{margin-top:6px;padding:14px 16px;border-radius:14px;background:rgba(255,194,26,.14);border:1px solid rgba(255,194,26,.5);color:#FFF4D6;font-weight:600;animation:faqIn .6s var(--ease-out)}
.apuntate .btn-accent:focus-visible{box-shadow:0 0 0 6px #F5FAFC}
@media (max-width:860px){.cta-card{grid-template-columns:1fr}}

/* ---------- Pie ---------- */
.foot{padding:56px 0 64px;background:var(--canvas-2);font-size:15px;color:var(--text-secondary)}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.2fr);gap:32px;align-items:start}
.foot-brand{font-size:26px;color:var(--text-primary);margin-bottom:8px}
.foot-links{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.foot-links a{text-underline-offset:3px;color:var(--text-primary)}
.foot-small{display:grid;gap:6px}
@media (max-width:760px){.foot-grid{grid-template-columns:1fr}}

/* ---------- Privacidad ---------- */
.privacy{max-width:min(560px, 100% - 32px);border:0;border-radius:24px;padding:30px;background:var(--panel);color:var(--text-primary);box-shadow:0 40px 100px -30px rgba(13,43,62,.6)}
.privacy::backdrop{background:rgba(13,43,62,.45);backdrop-filter:blur(4px)}
.privacy p{margin:12px 0;color:var(--text-secondary)}
.privacy form{margin-top:18px}

/* ---------- Enviar un evento ---------- */
.send-dialog{max-width:min(600px, 100% - 32px);max-height:calc(100vh - 32px);overflow:auto}
.ev-form{display:grid;gap:8px;margin:16px 0 12px}
.ev-form label{font-weight:700;font-size:15px;margin-top:6px}
.ev-form .opt{font-weight:400;color:var(--text-secondary)}
.ev-form input{width:100%;font:400 17px/1.3 var(--f-body);color:var(--text-primary);background:#fff;border:1.5px solid var(--border-strong);border-radius:12px;padding:12px 14px;transition:border-color .25s var(--ease-out), box-shadow .25s var(--ease-out)}
.ev-form input:focus{outline:none;border-color:var(--text-primary);box-shadow:0 0 0 4px var(--accent-muted)}
.ev-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ev-row > div{display:grid;gap:8px}
.ev-form .btn-wide{margin-top:12px}
.ev-form .form-err{color:#A3321E}
.ev-ok{padding:12px 14px;border-radius:12px;background:#E3F6F3;border:1px solid #9ED9D2;color:#0F5A55;font-weight:600}
@media (max-width:480px){.ev-row{grid-template-columns:1fr}}

/* ---------- Páginas legales ---------- */
.legal{padding:130px 0 90px}
.legal-body{max-width:760px}
.legal-body h1{margin:8px 0 28px}
.legal-body h2{font:700 24px/1.2 var(--f-display);margin:36px 0 12px}
.legal-body p,.legal-body li{color:var(--text-secondary);max-width:68ch}
.legal-body p + p{margin-top:10px}
.legal-body ul{padding-left:1.2em;margin:0;display:grid;gap:8px}
.legal-body strong{color:var(--text-primary)}
.legal-body a,.foot a.mail{font-weight:600;text-underline-offset:3px;color:var(--text-primary)}
.nav-back{margin-left:auto;padding:10px 16px;font-size:15px}
@media (max-width:420px){.nav-back{padding:9px 12px;font-size:14px}}

/* ---------- Pausas: pestaña oculta y secciones fuera de pantalla ---------- */
body.paused *,body.paused *::before,body.paused *::after{animation-play-state:paused!important}
.sec:not(.live) *,.sec:not(.live) *::before,.sec:not(.live) *::after{animation-play-state:paused!important}

/* ---------- Movimiento reducido: todo en su estado final ---------- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important;transition-delay:0s!important}
  .js .reveal,.ticket,.flag{opacity:1!important;transform:none!important}
  .bunt-cord{stroke-dashoffset:0!important}
  .steps-path path{clip-path:inset(0 0 0 0)!important}
}
.pinned .js .reveal,.pinned .reveal,.pinned .ticket,.pinned .flag{opacity:1!important;transform:none!important;transition:none!important}
.pinned .bunt-cord{stroke-dashoffset:0!important;transition:none!important}
.pinned .steps-path path{clip-path:inset(0 0 0 0)!important;transition:none!important}

/* Móvil en horizontal: el cartel entra en pantalla */
@media (orientation: landscape) and (max-height: 560px){.hero-static{padding-top:88px}.hero-static .settle-card{padding:34px 26px 22px}.hero-static .settle-title{font-size:30px}.hero-static .settle-sub{margin-bottom:16px}}

/* ==========================================================================
   TEMPORADAS: solo con html[data-tema] (Halloween, Navidad, Carnaval, Día de Canarias)
   ========================================================================== */
.tema-deco{position:absolute;pointer-events:none;z-index:0}
.tema-deco svg{display:block;width:100%;height:auto;overflow:visible}
.agenda > .wrap{position:relative;z-index:1}
.tema-esquina{left:0;top:clamp(44px,4.6vw,66px);width:clamp(66px,8vw,112px);color:#2B2340;opacity:.5}
.tema-esquina.der{left:auto;right:0;transform:scaleX(-1)}
.cta-card .tema-esquina{top:0;color:#EAF3F7;opacity:.3}
.cta-card .cta-copy,.cta-card .cta-form{position:relative;z-index:1}
html[data-tema="navidad"] .tema-esquina,html[data-tema="carnaval"] .tema-esquina,html[data-tema="dia-canarias"] .tema-esquina{opacity:.9}
html[data-tema="navidad"] .cta-card .tema-esquina,html[data-tema="carnaval"] .cta-card .tema-esquina,html[data-tema="dia-canarias"] .cta-card .tema-esquina{opacity:.8}

/* Halloween: una araña simpática cuelga de los banderines */
.tema-arana{--hilo:clamp(46px,5.6vw,78px);right:clamp(20px,9vw,150px);top:calc(var(--hilo) + 10px);width:clamp(28px,2.6vw,36px);z-index:2;
  transform-origin:50% calc(-1 * var(--hilo));animation:aranaMece 5.5s var(--ease-soft) infinite}
.tema-arana::before{content:"";position:absolute;left:50%;bottom:calc(100% - 8px);width:1.3px;height:var(--hilo);background:rgba(43,35,64,.5)}
.tema-arana .patas-a,.tema-arana .patas-b{transform-box:fill-box;animation:patas 2.4s var(--ease-soft) infinite}
.tema-arana .patas-a{transform-origin:100% 30%}.tema-arana .patas-b{transform-origin:0 30%;animation-delay:-1.2s}
@keyframes aranaMece{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(10px) rotate(4deg)}}
@keyframes patas{0%,100%{transform:rotate(0)}50%{transform:rotate(-6deg)}}

/* Navidad: gorro en el logo y estrellas que brillan */
.nav .brand{position:relative}
.tema-marca{left:-9px;top:-13px;width:24px;transform:rotate(-16deg)}
.tema-estrella{z-index:2;width:clamp(14px,1.6vw,20px);animation:brilla 3.2s var(--ease-soft) infinite}
.tema-estrella.e1{right:9%;top:clamp(46px,5vw,76px)}
.tema-estrella.e2{right:17%;top:clamp(70px,7.4vw,108px);animation-delay:-1.1s;width:clamp(10px,1.1vw,14px)}
.tema-estrella.e3{right:4%;top:clamp(30px,3.2vw,50px);animation-delay:-2.2s;width:clamp(12px,1.3vw,16px)}
@keyframes brilla{0%,100%{opacity:.35;transform:scale(.8) rotate(0)}50%{opacity:1;transform:scale(1.1) rotate(18deg)}}

/* Apartado especial */
.temporada{padding:clamp(100px,11vw,150px) 0 0}
.temporada > .wrap{position:relative;z-index:1}
.temp-band{border-radius:32px;padding:clamp(22px,4vw,48px);background:var(--temp-bg,#FFF6DC);box-shadow:var(--shadow-soft)}
html[data-tema="halloween"]{--temp-bg:#FFEEDD}
html[data-tema="navidad"]{--temp-bg:#FCEDEE}
html[data-tema="carnaval"]{--temp-bg:#F6EAFB}
html[data-tema="dia-canarias"]{--temp-bg:#E6F1FA}
.temp-head{display:flex;gap:clamp(14px,3vw,28px);align-items:center;margin-bottom:clamp(20px,3vw,32px)}
.temp-head .kicker{margin-bottom:10px}
.temp-head .h2{font-size:clamp(30px,4.2vw,56px);max-width:18ch}
.temp-head .lede{margin-top:12px}
.temp-ico{flex:none;width:clamp(64px,8vw,96px);height:clamp(64px,8vw,96px);border-radius:50%;background:var(--panel);box-shadow:var(--shadow-soft);display:grid;place-items:center}
.temp-ico svg{width:64%;height:64%;animation:bob 6s var(--ease-soft) infinite}
.temporada .empty{background:rgba(250,252,253,.8)}
.nav-temp a{background:var(--temp-bg,#FFF6DC);box-shadow:inset 0 0 0 1.5px rgba(13,43,62,.18)}
@media (max-width:640px){.temp-head{align-items:flex-start}.temp-band{border-radius:24px}}

/* Plan patrocinado: siempre a la vista */
.t-spons{align-self:flex-start;font:600 11px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;padding:5px 8px;border-radius:6px;background:#FFF0C4;color:#6B4E00;border:1px solid #F2D27A}

/* Organizadores y empresas: dos tarjetas */
.org-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.org-grid .org-card{grid-template-columns:1fr;align-content:start;gap:12px}
.org-spons{border-color:#E6C35C;background:rgba(255,244,209,.55)}
.org-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
@media (max-width:760px){.org-grid{grid-template-columns:1fr}}
/* Menú con el enlace de temporada: siempre en una línea */
.nav-links a{white-space:nowrap}
@media (max-width:1180px){html[data-tema] .nav-links a{padding:9px 10px;font-size:15px}}
@media (max-width:1060px){html[data-tema] .nav-links li:nth-child(3){display:none}}

/* ---------- Guías para familias ---------- */
.guia-fecha{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);margin:-12px 0 22px}
.guia-intro{font-size:clamp(18px,1.6vw,20px);color:var(--text-primary)!important}
.guia-item{margin:18px 0 26px;padding:22px 24px;border-radius:22px;background:var(--panel);box-shadow:var(--shadow-soft)}
.guia-item h3{font:700 clamp(21px,2vw,25px)/1.15 var(--f-display);margin:6px 0 10px;color:var(--text-primary)}
.guia-item p + p{margin-top:10px}
.guia-lugar{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary)!important}
.legal-body .guia-datos{margin-top:12px;padding-left:1.1em;gap:6px}
.legal-body .guia-datos li{font-size:16px}
.guia-links{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:12px}
.guia-links a{font-size:15px}
.guia-nota{margin-top:28px!important;padding:14px 16px;border-radius:14px;background:rgba(255,194,26,.16);font-size:15px}
.guia-cta{margin:40px 0 8px;padding:clamp(24px,4vw,36px);border-radius:26px;background:var(--text-primary)}
.guia-cta h2{color:#F5FAFC;margin-top:0!important}
.legal-body .guia-cta p{color:#B9CFDA}
.guia-cta-btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px!important}
.legal-body .guia-cta .btn{color:var(--text-primary);font-weight:700}
.legal-body .guia-cta .btn-ghost{color:#F5FAFC;border-color:#F5FAFC}
.legal-body .guia-cta .btn-ghost:hover{background:#F5FAFC;color:var(--text-primary)}
.legal-body .guia-otras{padding-left:1.1em}

/* Tarjetas de guías en la portada */
.guias{padding-top:clamp(20px,4vw,48px)}
.guias-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.guia-card a{display:flex;flex-direction:column;gap:8px;height:100%;padding:24px;border-radius:22px;background:var(--panel);box-shadow:var(--shadow-soft);text-decoration:none;color:var(--text-primary);transition:transform .35s var(--ease-out), box-shadow .35s var(--ease-out)}
.guia-card a:hover{transform:translateY(-3px);box-shadow:0 1px 2px rgba(13,43,62,.06), 0 20px 40px -16px rgba(13,43,62,.3)}
.guia-card .mono{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary)}
.guia-card h3{font:700 23px/1.12 var(--f-display)}
.guia-card p{font-size:16px;color:var(--text-secondary)}
.guia-card .leer{margin-top:auto;padding-top:6px;font-weight:700;text-decoration:underline;text-underline-offset:3px}
@media (max-width:900px){.guias-list{grid-template-columns:1fr}}

/* Pie: nuestras otras webs */
.foot-otras{margin-top:22px}
.foot-otras-t{font-size:11px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px}
.foot-otras ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.foot-otras li{display:grid;gap:1px}
.foot-otras a{font-weight:700;color:var(--text-primary);text-underline-offset:3px}
.foot-otras span{font-size:14px}

/* ==========================================================================
   TEMPORADAS · más decoración (cielo, luces, personajes, colores)
   ========================================================================== */
.foot{position:relative}
.sitios > .wrap,.guias > .wrap,.faq > .wrap,.foot > .wrap{position:relative;z-index:1}
.tema-esquina-sec{top:clamp(20px,3vw,40px)}
.tema-esquina-pie{top:0}
html[data-tema="halloween"] .tema-esquina-pie{opacity:.35}

/* Cielo: capa fija que no se puede tocar */
.tema-cielo{position:fixed;inset:0;z-index:40;pointer-events:none;overflow:hidden}
.copo,.papel{position:absolute;top:-6vh;display:block;animation:cae var(--dur) linear var(--del) infinite}
.copo{width:calc(18px*var(--esc));filter:drop-shadow(0 0 2px rgba(255,255,255,.9))}
.copo svg{width:100%;height:auto;display:block}
.papel{width:8px;height:12px;border-radius:2px;opacity:.85;box-shadow:0 0 0 1px rgba(13,43,62,.08)}
@keyframes cae{0%{transform:translate(0,0) rotate(0)}100%{transform:translate(var(--dx),112vh) rotate(var(--rot,90deg))}}
.murci{position:absolute;left:-90px;width:calc(64px*var(--esc));animation:vuela var(--dur) linear var(--del) infinite}
.murci svg{width:100%;height:auto;display:block}
.murci .ala{transform-box:fill-box;transform-origin:100% 50%;animation:aletea .35s ease-in-out infinite alternate}
.murci .ala-d{transform-origin:0 50%}
@keyframes aletea{from{transform:scaleY(1)}to{transform:scaleY(.35)}}
@keyframes vuela{0%{transform:translate(0,0)}25%{transform:translate(28vw,-6vh)}50%{transform:translate(56vw,4vh)}75%{transform:translate(84vw,-4vh)}100%{transform:translate(calc(100vw + 180px),2vh)}}

/* Guirnalda de luces que parpadean */
.tema-luces{left:0;right:0;top:0;height:clamp(26px,3vw,36px);z-index:2}
.tema-luces svg{width:100%;height:100%}
.tema-luces .bombilla ellipse{animation:parpadea 2.4s ease-in-out infinite;animation-delay:calc(var(--i)*-.37s)}
@keyframes parpadea{0%,100%{opacity:1;filter:drop-shadow(0 0 4px currentColor)}50%{opacity:.35;filter:none}}
.temporada .tema-luces{top:clamp(52px,6vw,90px)}
.apuntate .tema-luces{top:clamp(66px,7vw,100px)}

/* Personaje que se asoma por el lado de Sitios */
.tema-asoma{left:-6px;top:clamp(140px,16vw,220px);width:clamp(54px,6vw,82px);z-index:2;animation:asoma 7s var(--ease-soft) infinite}
.tema-asoma-regalo{animation:bote 4s var(--ease-soft) infinite}
@keyframes asoma{0%,60%,100%{transform:translateX(-70%) rotate(8deg)}20%,45%{transform:translateX(0) rotate(-4deg)}}
@keyframes bote{0%,100%{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-10px) rotate(4deg)}}

/* Globos que suben junto al especial (Carnaval y Día de Canarias) */
.tema-globo{width:clamp(22px,2.6vw,34px);top:clamp(30px,4vw,70px);z-index:2;animation:globo 6s var(--ease-soft) infinite}
.tema-globo svg{filter:drop-shadow(0 4px 6px rgba(13,43,62,.15))}
.tema-globo.g1{right:6%}.tema-globo.g2{right:11%;animation-delay:-1.5s;top:clamp(50px,6vw,96px)}
.tema-globo.g3{right:16%;animation-delay:-3s}.tema-globo.g4{right:21%;animation-delay:-4.5s;top:clamp(46px,5vw,84px)}
@keyframes globo{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-14px) rotate(4deg)}}

/* Colores de la fiesta en botones, filtros y pie */
html[data-tema="halloween"]{--accent:#FF8A2A;--accent-hover:#FF7A1A;--accent-deep:#B8530A}
html[data-tema="navidad"]{--accent:#E23A4E;--accent-hover:#C8102E;--accent-deep:#8E0B20}
html[data-tema="navidad"] .btn-accent{color:#fff}
html[data-tema="carnaval"]{--accent:#F07AAE;--accent-hover:#E8649B;--accent-deep:#B13C70}
html[data-tema="dia-canarias"]{--accent:#FFCC00;--accent-hover:#F2BF00;--accent-deep:#0768A9}
html[data-tema="halloween"] .chip-btn.is-on{background:#2B2340;border-color:#2B2340}
html[data-tema="navidad"] .chip-btn.is-on{background:#1B7F4B;border-color:#1B7F4B}
html[data-tema="carnaval"] .chip-btn.is-on{background:#6B3FA0;border-color:#6B3FA0}
html[data-tema="dia-canarias"] .chip-btn.is-on{background:#0768A9;border-color:#0768A9}
html[data-tema] .foot{border-top:6px solid transparent;border-image:repeating-linear-gradient(90deg,var(--f1) 0 40px,var(--f2) 40px 80px,var(--f3) 80px 120px) 1}
html[data-tema="halloween"]{--f1:#FF7A1A;--f2:#6B3FA0;--f3:#2B2340}
html[data-tema="navidad"]{--f1:#C8102E;--f2:#FFFFFF;--f3:#1B7F4B}
html[data-tema="carnaval"]{--f1:#E8649B;--f2:#FFC21A;--f3:#1FA9A2}
html[data-tema="dia-canarias"]{--f1:#FFFFFF;--f2:#0768A9;--f3:#FFCC00}
html[data-tema="halloween"] body{background:linear-gradient(180deg,#F3EEF7 0%,var(--canvas) 40%)}
html[data-tema="navidad"] body{background:linear-gradient(180deg,#EEF4F9 0%,var(--canvas) 40%)}
.tema-marca svg{filter:drop-shadow(0 1px 1px rgba(13,43,62,.2))}
html[data-tema="halloween"] .tema-marca,html[data-tema="carnaval"] .tema-marca,html[data-tema="dia-canarias"] .tema-marca{left:-10px;top:-12px;width:22px}

@media (max-width:640px){.tema-asoma{top:110px}.tema-globo.g3,.tema-globo.g4{display:none}}
@media (prefers-reduced-motion: reduce){.tema-cielo{display:none}}

/* Contraste suficiente para el logo del pie */
.foot-brand b{color:#137A74}

/* ---------- Asistente de planes ---------- */
.asis{position:fixed;right:16px;bottom:16px;z-index:60;font-size:16px}
.asis-abrir{display:inline-flex;align-items:center;gap:8px;cursor:pointer;border:0;border-radius:999px;padding:12px 16px;background:var(--text-primary);color:#fff;font-weight:700;box-shadow:0 12px 30px -10px rgba(13,43,62,.6)}
.asis-abrir svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.asis-abrir svg circle{fill:currentColor;stroke:none}
.asis.abierto .asis-abrir{display:none}
.asis-panel{width:min(380px,calc(100vw - 32px));height:min(540px,calc(100vh - 110px));display:flex;flex-direction:column;background:var(--panel);border-radius:22px;box-shadow:0 30px 80px -24px rgba(13,43,62,.55);overflow:hidden}
.asis-panel[hidden]{display:none!important}
.asis-panel header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--text-primary);color:#fff}
.asis-t{font:700 18px/1.2 var(--f-display)}
.asis-cerrar{cursor:pointer;background:none;border:0;color:#fff;font-size:28px;line-height:1;min-width:44px;min-height:44px}
.asis-msgs{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}
.asis-m{max-width:88%;padding:10px 12px;border-radius:16px;line-height:1.45;white-space:pre-line;font-size:15px}
.asis-a{align-self:flex-start;background:var(--canvas-2);color:var(--text-primary)}
.asis-u{align-self:flex-end;background:var(--accent);color:var(--text-primary)}
.asis-a a{font-weight:700}
.asis-esperando{opacity:.7;font-style:italic}
.asis-form{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line)}
.asis-form input{flex:1;min-width:0;font:400 16px/1.3 var(--f-body);border:1.5px solid var(--border-strong);border-radius:12px;padding:10px 12px}
.asis-form .btn{padding:10px 14px;font-size:15px}
.asis-nota{font-size:12px;color:var(--text-secondary);padding:0 12px 10px}
@media (max-width:640px){.asis{right:12px;bottom:12px}.asis-abrir span{display:none}.asis-abrir{padding:14px}}

.asis-lista{margin:8px 0 6px;padding-left:1.1em;display:grid;gap:8px}
.asis-lista small{display:block;color:var(--text-secondary);font-size:13px}
.asis-a a{font-weight:700}

/* ==========================================================================
   FIESTAS A LO GRANDE (html.fg-grande): Halloween y Finaos, Navidad y Reyes,
   Carnaval y Día de Canarias. Ambiente en la portada, cartel, figuras,
   especial convertido en escena, botón sorpresa, distintivos en los planes
   y horizonte sobre el pie. Cada fiesta pone sus colores en variables.
   ========================================================================== */
html[data-tema="halloween"]{--fg-stage:#241044;
  --fg-ambiente:linear-gradient(180deg,rgba(26,10,48,.82) 0%,rgba(46,20,80,.58) 38%,rgba(80,30,96,.42) 68%,rgba(255,110,30,.32) 100%);
  --fg-cartel:#FF8A2A;--fg-cartel-sombra:0 0 18px rgba(255,138,42,.6),0 3px 0 #1A0E30;--fg-letra:"Creepster";
  --fg-fondo:radial-gradient(circle at 90% 8%,rgba(255,214,120,.22) 0,rgba(255,214,120,0) 20%),linear-gradient(180deg,#1A0E30 0%,#2A1748 55%,#3C1F5E 100%);
  --fg-texto:#F4ECFF;--fg-titulo:#FF8A2A;--fg-kicker:#FFB347;--fg-lede:#E6DAF7;--fg-borde:rgba(255,138,42,.4);--fg-brillo:rgba(255,138,42,.55);--fg-sombra-titulo:#120824;
  --fg-boton:#FF8A2A;--fg-boton-hover:#FF9A45;--fg-boton-txt:#1A0E30;--fg-boton-sombra:#B8530A;--fg-msg:#FFD9A8;
  --fg-ico:radial-gradient(circle,#FFC27A 0,#FF8A2A 58%,#C2500C 100%);--fg-chip-bg:#2B2340;--fg-chip-fg:#FFB347}
html[data-tema="navidad"]{--fg-stage:#0B1B3A;
  --fg-ambiente:linear-gradient(180deg,rgba(8,20,48,.82) 0%,rgba(14,34,74,.58) 40%,rgba(30,58,110,.4) 70%,rgba(255,200,120,.26) 100%);
  --fg-cartel:#FFD24A;--fg-cartel-sombra:0 0 18px rgba(255,210,74,.55),0 3px 0 #8E0B20;--fg-letra:"Mountains of Christmas";
  --fg-fondo:radial-gradient(circle at 90% 8%,rgba(255,224,122,.25) 0,rgba(255,224,122,0) 20%),linear-gradient(180deg,#0B1B3A 0%,#13284F 55%,#1C3A66 100%);
  --fg-texto:#EEF4FC;--fg-titulo:#FFD24A;--fg-kicker:#FF9AA5;--fg-lede:#DCE8F7;--fg-borde:rgba(255,210,74,.45);--fg-brillo:rgba(255,210,74,.5);--fg-sombra-titulo:#8E0B20;
  --fg-boton:#E23A4E;--fg-boton-hover:#EC5265;--fg-boton-txt:#FFFFFF;--fg-boton-sombra:#8E0B20;--fg-msg:#FFE7A0;
  --fg-ico:radial-gradient(circle,#FFFFFF 0,#E3F0FA 60%,#B9D3E6 100%);--fg-chip-bg:#C8102E;--fg-chip-fg:#FFFFFF}
html[data-tema="carnaval"]{--fg-stage:#3A0F5C;
  --fg-ambiente:linear-gradient(180deg,rgba(40,8,64,.8) 0%,rgba(110,24,120,.52) 40%,rgba(200,40,120,.36) 72%,rgba(255,190,40,.3) 100%);
  --fg-cartel:#FFE07A;--fg-cartel-sombra:0 0 18px rgba(255,111,181,.7),0 4px 0 #7A1E8C;--fg-letra:"Bungee";
  --fg-fondo:radial-gradient(circle at 85% 10%,rgba(255,111,181,.3) 0,rgba(255,111,181,0) 26%),linear-gradient(135deg,#3A0F5C 0%,#6E1C86 50%,#B42C78 100%);
  --fg-texto:#FFF2FB;--fg-titulo:#FFE07A;--fg-kicker:#7FF0E8;--fg-lede:#FBE3F4;--fg-borde:rgba(255,111,181,.55);--fg-brillo:rgba(255,111,181,.6);--fg-sombra-titulo:#3A0F5C;
  --fg-boton:#FFE07A;--fg-boton-hover:#FFEA9E;--fg-boton-txt:#3A0F5C;--fg-boton-sombra:#C7A024;--fg-msg:#FFE07A;
  --fg-ico:radial-gradient(circle,#FFFFFF 0,#F6EAFB 60%,#D9B8F0 100%);--fg-chip-bg:#6B3FA0;--fg-chip-fg:#FFE07A}
html[data-tema="dia-canarias"]{--fg-stage:#CFE3EF;
  --fg-ambiente:linear-gradient(180deg,rgba(7,104,169,.36) 0%,rgba(7,104,169,.08) 32%,rgba(255,212,0,0) 60%,rgba(255,204,0,.2) 100%);
  --fg-cartel:#FFCC00;--fg-cartel-sombra:0 3px 0 #0768A9,0 0 16px rgba(255,255,255,.9);--fg-letra:"Pacifico";
  --fg-fondo:radial-gradient(circle at 90% 10%,rgba(255,236,140,.55) 0,rgba(255,236,140,0) 22%),linear-gradient(180deg,#0A6FB5 0%,#2E8FD6 55%,#7CC3EE 100%);
  --fg-texto:#FFFFFF;--fg-titulo:#FFCC00;--fg-kicker:#FFFFFF;--fg-lede:#EAF5FD;--fg-borde:rgba(255,204,0,.55);--fg-brillo:rgba(255,255,255,.35);--fg-sombra-titulo:#055A92;
  --fg-boton:#FFCC00;--fg-boton-hover:#FFD83D;--fg-boton-txt:#0B3D63;--fg-boton-sombra:#B38F00;--fg-msg:#FFF3B0;
  --fg-ico:radial-gradient(circle,#FFFFFF 0,#E6F1FA 60%,#BFD9EE 100%);--fg-chip-bg:#0768A9;--fg-chip-fg:#FFE07A}

.fg{position:absolute;pointer-events:none}
.fg svg{display:block;width:100%;height:auto;overflow:visible}
.fg-cartel{font-family:var(--fg-letra),var(--f-display);font-size:clamp(34px,4.4vw,70px);line-height:1;color:var(--fg-cartel);letter-spacing:.02em;
  text-shadow:var(--fg-cartel-sombra);transform:rotate(-5deg);white-space:nowrap;text-align:right}
.fg-cartel span{display:block;margin-top:8px;font:700 clamp(15px,1.4vw,21px)/1 var(--f-display);letter-spacing:.01em;color:#FFF6E8;text-shadow:0 2px 6px rgba(0,0,0,.55)}
html[data-tema="dia-canarias"] .fg-cartel span{color:#0768A9;text-shadow:0 1px 0 #fff,0 0 10px rgba(255,255,255,.9)}
html[data-tema="carnaval"] .fg-cartel{font-size:clamp(28px,3.6vw,58px)}
html[data-tema="navidad"] .fg-cartel{font-weight:700}

/* Portada: cambia el ambiente sobre el mar de nubes */
html.fg-grande .stage{background:var(--fg-stage)}
.fg-ambiente{inset:0;background:var(--fg-ambiente)}
.fg-cielo-portada{top:clamp(80px,12vh,130px);right:clamp(16px,6vw,110px);display:flex;align-items:center;gap:clamp(10px,2vw,30px);flex-direction:row-reverse}
.fg-astro{position:relative;width:clamp(110px,14vw,230px);filter:drop-shadow(0 0 30px rgba(255,214,120,.65)) drop-shadow(0 0 80px rgba(255,190,90,.35))}
.fg-astro-sol{filter:drop-shadow(0 0 30px rgba(255,212,0,.8)) drop-shadow(0 0 90px rgba(255,200,0,.45))}
.fg-astro-sol .rayos,.fg-astro-esp .rayos{transform-origin:60px 60px;animation:gira 40s linear infinite}
@keyframes gira{to{transform:rotate(360deg)}}
.fg-viajero{position:absolute;left:50%;top:22%;width:78%;animation:viajaLuna 14s linear infinite}
.fg-viajero-trineo{width:110%;top:30%}
.fg-viajero-canario{width:40%;top:30%;animation-duration:11s}
@keyframes viajaLuna{0%{transform:translate(120%,30%) scale(.7);opacity:0}8%{opacity:1}55%{transform:translate(-140%,-30%) scale(.8);opacity:1}62%,100%{transform:translate(-190%,-50%) scale(.8);opacity:0}}
/* Fuegos artificiales (Carnaval) */
.fg-fuegos{filter:none;height:clamp(110px,14vw,230px)}
.fuego{position:absolute;display:block;width:60%;opacity:0;animation:fuego 3.6s ease-out infinite}
.fuego svg{width:100%;height:auto}
.fuego.u1{left:0;top:0}.fuego.u2{right:0;top:20%;width:48%;animation-delay:-.9s}
.fuego.u3{left:20%;bottom:0;width:52%;animation-delay:-1.8s}.fuego.u4{right:10%;top:-10%;width:40%;animation-delay:-2.7s}
@keyframes fuego{0%{transform:scale(.15);opacity:0}12%{opacity:1}60%{transform:scale(1);opacity:.9}100%{transform:scale(1.12);opacity:0}}
.fg-tela-portada{top:0;left:0;width:clamp(110px,13vw,200px);color:rgba(255,244,214,.55)}
.fg-figuras{bottom:clamp(16px,4vh,40px);display:flex;align-items:flex-end;gap:clamp(4px,1vw,14px)}
.fg-figuras.izq{left:clamp(14px,4vw,70px)}
.fg-figuras.der{right:clamp(14px,4vw,70px)}
.fg-figura{display:block;width:clamp(46px,5vw,84px);filter:drop-shadow(0 8px 14px rgba(0,0,0,.25))}
.fg-figura.f2{width:clamp(62px,6.6vw,112px)}
.fg-figura.f3{width:clamp(38px,4vw,66px)}
.fg-farol{filter:drop-shadow(0 0 18px rgba(255,138,42,.55))}
.fg-farol .luz{animation:vela 1.6s ease-in-out infinite}
.fg-figura.f2 .luz{animation-delay:-.5s}.fg-figura.f3 .luz{animation-delay:-1.1s}
@keyframes vela{0%,100%{opacity:1}35%{opacity:.62}55%{opacity:.95}75%{opacity:.7}}
.fg-figuras .fg-globo,.fg-figuras .fg-canario,.fg-figuras .fg-mascara{animation:globo 6s var(--ease-soft) infinite}
.fg-figuras .fg-figura.f2.fg-globo{animation-delay:-2s}
html.fg-oscuro .band-line{color:#FFF6E8}
html.fg-oscuro .band{--tshadow:0 2px 3px rgba(12,6,30,.95),0 4px 22px rgba(12,6,30,.75),0 10px 46px rgba(12,6,30,.6)}
html.fg-oscuro .band::before{background:radial-gradient(ellipse 74% 62% at 50% 50%,rgba(14,6,34,.5) 0%,rgba(14,6,34,.28) 46%,rgba(14,6,34,0) 76%)}
html.fg-oscuro .loader{color:#FFF6E8}
html.fg-oscuro .band-1 .btn-glass{color:#FFF6E8;border-color:rgba(255,246,232,.6);background:rgba(20,12,40,.45)}
html.fg-grande .band-1 .chip{background:var(--fg-chip-bg);color:var(--fg-chip-fg);border-color:var(--fg-chip-bg)}

/* Portada fija (móvil y tablet en vertical) */
html.fg-grande .hero-static{position:relative}
html.fg-grande .hero-static .settle-card{z-index:1}
.hero-static .fg-cielo-portada{top:clamp(76px,11vh,120px);right:16px}
.hero-static .fg-astro{width:clamp(96px,26vw,160px)}
.hero-static .fg-cartel{font-size:clamp(28px,7.6vw,44px)}
html[data-tema="carnaval"] .hero-static .fg-cartel{font-size:clamp(22px,6vw,36px)}
.fg-figuras.sobre-tarjeta{top:0;right:26px;bottom:auto;transform:translateY(-82%)}
.fg-figuras.sobre-tarjeta .fg-figura{width:clamp(36px,9vw,50px)}
.fg-figuras.sobre-tarjeta .fg-figura.f2{width:clamp(48px,12vw,64px)}
@media (max-width:640px){.hero-static .fg-cielo-portada{flex-direction:column;align-items:flex-end;gap:8px}}

/* El especial convertido en escena */
html.fg-grande .temp-band{position:relative;overflow:hidden;color:var(--fg-texto);
  padding-bottom:calc(clamp(22px,4vw,48px) + clamp(64px,8vw,104px));background:var(--fg-fondo);
  box-shadow:0 0 0 3px var(--fg-borde),0 40px 90px -40px rgba(20,14,50,.8)}
html.fg-grande .temp-head,html.fg-grande .temporada .tickets,html.fg-grande .temporada .empty{position:relative;z-index:1}
html.fg-grande .temp-head .kicker{color:var(--fg-kicker)}
html.fg-grande #temp-t{font-family:var(--fg-letra),var(--f-display);font-weight:400;letter-spacing:.02em;color:var(--fg-titulo);font-size:clamp(38px,5.4vw,78px);
  text-shadow:0 0 22px var(--fg-brillo),0 4px 0 var(--fg-sombra-titulo)}
html[data-tema="navidad"] #temp-t{font-weight:700}
html[data-tema="carnaval"] #temp-t{font-size:clamp(30px,4.4vw,62px);line-height:1.08}
html[data-tema="dia-canarias"] #temp-t{line-height:1.25}
html.fg-grande #temp-lede{color:var(--fg-lede)}
html.fg-grande .temp-ico{background:var(--fg-ico);box-shadow:0 0 0 6px var(--fg-borde),0 0 46px var(--fg-brillo)}
html.fg-grande .temporada .ticket{color:var(--text-primary);box-shadow:0 0 0 2px var(--fg-borde),0 22px 46px -20px rgba(0,0,0,.6)}
html.fg-grande .temporada .empty{background:rgba(250,252,253,.94);color:var(--text-primary)}
.fg-estrellas{inset:0 0 30% 0}
.fg-estrellas svg{width:100%;height:100%}
.fg-estrellas .tili{animation:tili 3.4s ease-in-out infinite}
@keyframes tili{0%,100%{opacity:1}50%{opacity:.2}}
.fg-astro-esp{top:clamp(18px,3vw,34px);right:clamp(18px,4vw,56px);width:clamp(64px,8vw,120px);filter:drop-shadow(0 0 26px rgba(255,214,120,.6))}
html[data-tema="navidad"] .fg-astro-esp{animation:brilla 4s var(--ease-soft) infinite}
html[data-tema="carnaval"] .fg-astro-esp{height:clamp(64px,8vw,120px);filter:none}
html[data-tema="dia-canarias"] .fg-astro-esp{filter:drop-shadow(0 0 30px rgba(255,212,0,.8))}
.fg-banderitas{left:0;right:0;top:0;height:clamp(26px,3vw,40px)}
.fg-banderitas svg{width:100%;height:100%}
.fg-colgante{z-index:2;width:clamp(26px,2.6vw,36px)}
.fg-colgante .fg-figura{width:100%;filter:none}
.fg-colgante.fg-hilo{--hilo:clamp(60px,9vw,130px);top:var(--hilo);transform-origin:50% calc(-1 * var(--hilo));animation:aranaMece 6s var(--ease-soft) infinite}
.fg-colgante.fg-hilo::before{content:"";position:absolute;left:50%;bottom:calc(100% - 4px);width:1.3px;height:var(--hilo);background:rgba(244,236,255,.55)}
.fg-colgante.fg-flota{top:clamp(40px,6vw,90px);width:clamp(30px,3vw,44px);animation:globo 6s var(--ease-soft) infinite}
.fg-colgante.c1{right:clamp(130px,16vw,240px)}
.fg-colgante.c2{left:68%;animation-delay:-2.4s}
.fg-colgante.fg-hilo.c2{--hilo:clamp(30px,5vw,70px)}
.fg-colgante.c3{left:58%;animation-delay:-4s}
.fg-colgante.fg-hilo.c3{--hilo:clamp(44px,7vw,100px)}
.fg-colgante .fg-arana svg g{stroke:#120824}.fg-colgante .fg-arana ellipse,.fg-colgante .fg-arana circle[r="5.5"]{fill:#120824}
html[data-tema="dia-canarias"] .fg-colgante.fg-flota{width:clamp(40px,4vw,58px)}
/* Lo que flota (globos, canarios) va a la derecha, bajo el astro, sin tapar el título */
.fg-colgante.fg-flota{top:clamp(150px,15vw,220px)}
.fg-colgante.fg-flota.c1{right:4%;left:auto}.fg-colgante.fg-flota.c2{right:10%;left:auto}.fg-colgante.fg-flota.c3{right:16%;left:auto;top:clamp(130px,13vw,190px)}
.fg-horizonte{left:0;right:0;bottom:0;height:clamp(64px,8vw,104px)}
.fg-horizonte svg,.fg-horizonte-pie svg{width:100%;height:100%}
.fg-horizonte .ventanas,.fg-horizonte .ventana,.fg-horizonte-pie .ventana{animation:vela 2.6s ease-in-out infinite}

/* Botón sorpresa (¡Truco o trato!, ¡Abre un regalo!...) */
.fg-sorpresa-zona{margin-top:18px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}
.fg-sorpresa{position:relative;background:var(--fg-boton);color:var(--fg-boton-txt);font-weight:800;padding-left:12px;box-shadow:0 4px 0 var(--fg-boton-sombra),0 0 26px var(--fg-brillo)}
.fg-sorpresa:hover{background:var(--fg-boton-hover);transform:translateY(-2px);box-shadow:0 6px 0 var(--fg-boton-sombra),0 0 34px var(--fg-brillo)}
.fg-sorpresa:active{transform:translateY(2px);box-shadow:0 1px 0 var(--fg-boton-sombra)}
.fg-sorpresa-ico{display:inline-block;width:28px;margin-right:2px}
.fg-sorpresa-ico svg{width:100%;height:auto;display:block}
.fg-sorpresa-msg{font-weight:700;color:var(--fg-msg);min-height:1.2em}
.fg-sorpresa-msg:empty{display:none}
.fg-lluvia{position:absolute;left:50%;top:50%;width:0;height:0;pointer-events:none;z-index:3}
.fg-lluvia > span{position:absolute;left:-12px;top:-6px;width:24px;animation:caramelo 1.2s cubic-bezier(.2,.7,.3,1) forwards}
.fg-lluvia svg{width:100%;height:auto;display:block}
.fg-lluvia i{display:block;width:12px;height:18px;border-radius:2px;margin:auto;box-shadow:0 0 0 1px rgba(0,0,0,.08)}
@keyframes caramelo{0%{transform:translate(0,0) rotate(0) scale(.4);opacity:1}70%{opacity:1}100%{transform:translate(var(--x),calc(var(--y) + 60px)) rotate(var(--r)) scale(1);opacity:0}}
.ticket.fg-elegido{box-shadow:0 0 0 4px var(--fg-boton),0 0 40px var(--fg-brillo)!important;animation:elegido .7s var(--ease-soft) 2}
@keyframes elegido{0%,100%{transform:none}25%{transform:rotate(-1.4deg) scale(1.02)}75%{transform:rotate(1.4deg) scale(1.02)}}

/* Distintivo en los planes de la fiesta (cualquier temporada) */
.t-tema{position:absolute;top:-11px;right:14px;z-index:2;display:inline-flex;align-items:center;gap:6px;padding:5px 11px 5px 6px;border-radius:999px;
  font:700 11px/1 var(--f-mono);letter-spacing:.07em;text-transform:uppercase;background:var(--fg-chip-bg,#2B2340);color:var(--fg-chip-fg,#FFB347);box-shadow:0 6px 14px -6px rgba(13,43,62,.5)}
.t-tema-ico{display:block;width:18px}
.t-tema-ico svg{display:block;width:100%;height:auto}
html.fg-grande .ticket-tema{box-shadow:0 0 0 2px var(--fg-boton),0 18px 36px -16px var(--fg-brillo)}

/* Menú, horizonte del pie, viajeros y detalles */
html.fg-grande .nav-temp a{background:var(--fg-chip-bg);color:var(--fg-chip-fg);box-shadow:0 0 0 2px var(--fg-boton),0 0 16px var(--fg-brillo);display:inline-flex;align-items:center;gap:6px}
.fg-nav-ico{display:inline-block;width:18px}
.fg-nav-ico svg{display:block;width:100%;height:auto}
html[data-tema="halloween"] .tema-esquina{opacity:.7}
.tema-arana.izq{right:auto;left:clamp(20px,9vw,150px)}
.tema-asoma.der{left:auto;right:-6px}
.tema-asoma-fantasma.der{animation:asomaDer 8s var(--ease-soft) infinite}
@keyframes asomaDer{0%,60%,100%{transform:translateX(70%) rotate(-8deg)}20%,45%{transform:translateX(0) rotate(4deg)}}
.faq > .wrap{position:relative;z-index:1}
/* El cielo (murciélagos, nieve, confeti) pasa por detrás de tarjetas y textos: decora sin tapar nada */
html.fg-grande .tema-cielo{z-index:0}
html.fg-grande .como > .wrap,html.fg-grande .planes > .wrap,html.fg-grande .organiza > .wrap,html.fg-grande .apuntate > .wrap{position:relative;z-index:1}
.fg-horizonte-pie{left:0;right:0;top:0;height:clamp(54px,7vw,92px);transform:translateY(-100%);z-index:2}
.fg-viajero-cielo{position:absolute;right:-200px;top:12vh;width:120px;animation:viajeCielo 32s linear 6s infinite;opacity:0}
.fg-vc-trineo{width:170px;top:9vh}
.fg-vc-canario{width:56px;top:16vh;animation-duration:26s}
@keyframes viajeCielo{0%{transform:translate(0,0);opacity:1}25%{transform:translate(-40vw,-4vh)}50%{transform:translate(-80vw,3vh);opacity:1}62%{transform:translate(-115vw,-2vh);opacity:0}100%{transform:translate(-115vw,-2vh);opacity:0}}

@media (max-width:640px){
  .fg-figuras.izq,.fg-figuras.der{display:none}
  .fg-astro-esp{width:48px;top:10px;right:12px}
  html[data-tema="carnaval"] .fg-astro-esp{height:48px}
}
@media (prefers-reduced-motion: reduce){
  .fg-viajero,.fg-viajero-cielo{display:none}
  .fuego{opacity:1;transform:none}
  .fg *,.fg-farol .luz,.fg-estrellas .tili,.fg-colgante,.ticket.fg-elegido,.tema-asoma-fantasma.der,.fuego,.rayos{animation:none!important}
}

/* ---------- Semana Santa, San Juan y Fin de Año ---------- */
html[data-tema="semana-santa"]{--fg-stage:#CFE3EF;
  --fg-ambiente:linear-gradient(180deg,rgba(183,156,235,.34) 0%,rgba(255,224,122,.08) 40%,rgba(255,255,255,0) 60%,rgba(127,209,158,.26) 100%);
  --fg-cartel:#8E5BD8;--fg-cartel-sombra:0 3px 0 #FFFFFF,0 0 16px rgba(255,255,255,.95);--fg-letra:"Chewy";
  --fg-fondo:radial-gradient(circle at 90% 10%,rgba(255,236,140,.6) 0,rgba(255,236,140,0) 22%),linear-gradient(180deg,#EDE3FC 0%,#F6F0FF 45%,#DDF4E4 100%);
  --fg-texto:#2B2340;--fg-titulo:#7B4FC0;--fg-kicker:#2F8F5B;--fg-lede:#4A4366;--fg-borde:rgba(183,156,235,.65);--fg-brillo:rgba(183,156,235,.45);--fg-sombra-titulo:#FFFFFF;
  --fg-boton:#C6AFF0;--fg-boton-hover:#D4C1F4;--fg-boton-txt:#2B2340;--fg-boton-sombra:#7B4FC0;--fg-msg:#7B4FC0;
  --fg-ico:radial-gradient(circle,#FFFFFF 0,#F6F0FF 60%,#DCCDF6 100%);--fg-chip-bg:#8E5BD8;--fg-chip-fg:#FFFFFF;
  --accent:#C6AFF0;--accent-hover:#B79CEB;--accent-deep:#7B4FC0;--temp-bg:#F3ECFE;--f1:#B79CEB;--f2:#FFE07A;--f3:#9FE0B5}
html[data-tema="san-juan"]{--fg-stage:#0E1A3F;
  --fg-ambiente:linear-gradient(180deg,rgba(8,16,44,.84) 0%,rgba(20,34,84,.6) 40%,rgba(60,40,90,.4) 70%,rgba(255,120,40,.38) 100%);
  --fg-cartel:#FFB347;--fg-cartel-sombra:0 0 18px rgba(255,138,42,.65),0 3px 0 #0E1A3F;--fg-letra:"Kaushan Script";
  --fg-fondo:radial-gradient(circle at 88% 10%,rgba(255,230,168,.28) 0,rgba(255,230,168,0) 20%),linear-gradient(180deg,#0E1A3F 0%,#1D2B5E 50%,#4A2F55 82%,#8A4A3A 100%);
  --fg-texto:#F2F5FF;--fg-titulo:#FFB347;--fg-kicker:#FFD27A;--fg-lede:#DCE3F7;--fg-borde:rgba(255,138,42,.45);--fg-brillo:rgba(255,138,42,.55);--fg-sombra-titulo:#0E1A3F;
  --fg-boton:#FF8A2A;--fg-boton-hover:#FF9A45;--fg-boton-txt:#1A1030;--fg-boton-sombra:#B8530A;--fg-msg:#FFD9A8;
  --fg-ico:radial-gradient(circle,#FFE6A8 0,#FFB347 58%,#E2611A 100%);--fg-chip-bg:#1D2B5E;--fg-chip-fg:#FFB347;
  --accent:#FF8A2A;--accent-hover:#FF7A1A;--accent-deep:#B8530A;--temp-bg:#FFEEDD;--f1:#FF8A2A;--f2:#1E4C8F;--f3:#FFC21A}
html[data-tema="fin-de-ano"]{--fg-stage:#0A0F24;
  --fg-ambiente:linear-gradient(180deg,rgba(6,10,28,.86) 0%,rgba(18,24,60,.62) 42%,rgba(40,36,80,.42) 72%,rgba(212,175,55,.3) 100%);
  --fg-cartel:#F5C542;--fg-cartel-sombra:0 0 20px rgba(245,197,66,.6),0 3px 0 #0A0F24;--fg-letra:"Lobster";
  --fg-fondo:radial-gradient(circle at 85% 10%,rgba(245,197,66,.25) 0,rgba(245,197,66,0) 24%),linear-gradient(180deg,#0A0F24 0%,#151B3D 55%,#2A2350 100%);
  --fg-texto:#F4F1E6;--fg-titulo:#F5C542;--fg-kicker:#E6E6E6;--fg-lede:#DADCEB;--fg-borde:rgba(245,197,66,.5);--fg-brillo:rgba(245,197,66,.5);--fg-sombra-titulo:#0A0F24;
  --fg-boton:#F5C542;--fg-boton-hover:#F8D36A;--fg-boton-txt:#0A0F24;--fg-boton-sombra:#A8861E;--fg-msg:#F8E3A0;
  --fg-ico:radial-gradient(circle,#FFFFFF 0,#FFF4D0 60%,#E8D08A 100%);--fg-chip-bg:#1B2550;--fg-chip-fg:#F5C542;
  --accent:#F5C542;--accent-hover:#E8B92E;--accent-deep:#A8861E;--temp-bg:#FFF6D8;--f1:#F5C542;--f2:#1B2550;--f3:#C0C0C0}
html[data-tema="semana-santa"] .chip-btn.is-on{background:#7B4FC0;border-color:#7B4FC0}
html[data-tema="san-juan"] .chip-btn.is-on{background:#1D2B5E;border-color:#1D2B5E}
html[data-tema="fin-de-ano"] .chip-btn.is-on{background:#1B2550;border-color:#1B2550}
html[data-tema="semana-santa"] .tema-esquina,html[data-tema="san-juan"] .tema-esquina,html[data-tema="fin-de-ano"] .tema-esquina{opacity:.9}
html[data-tema="semana-santa"] .tema-marca,html[data-tema="san-juan"] .tema-marca,html[data-tema="fin-de-ano"] .tema-marca{left:-10px;top:-12px;width:22px}
html[data-tema="semana-santa"] .fg-cartel span{color:#2F8F5B;text-shadow:0 1px 0 #fff,0 0 10px rgba(255,255,255,.95)}
html[data-tema="san-juan"] .fg-cartel{font-size:clamp(26px,3.5vw,56px)}
html[data-tema="san-juan"] .hero-static .fg-cartel{font-size:clamp(22px,6vw,34px)}
html[data-tema="semana-santa"] .fg-colgante.fg-hilo::before{background:rgba(43,35,64,.35)}
html[data-tema="semana-santa"] #temp-t{text-shadow:0 0 18px rgba(255,255,255,.9),0 3px 0 #FFFFFF}
/* Chispas de las hogueras que suben (San Juan) y pétalos que caen (Semana Santa) */
.chispa{position:absolute;bottom:-4vh;display:block;width:calc(6px*var(--esc));height:calc(6px*var(--esc));border-radius:50%;box-shadow:0 0 8px 2px currentColor;animation:sube var(--dur) linear var(--del) infinite}
@keyframes sube{0%{transform:translate(0,0);opacity:0}10%{opacity:1}70%{opacity:.8}100%{transform:translate(var(--dx),-110vh);opacity:0}}
.petalo{width:11px;height:13px;border-radius:60% 0 60% 0;opacity:.9}
/* Mariposa que aletea, hoguera que crepita, fuegos junto a la luna */
.fg-viajero-mariposa{width:38%;top:26%;animation-duration:12s}
.fg-viajero-mariposa .ala,.fg-vc-mariposa .ala,.fg-figura.fg-mariposa .ala{transform-box:fill-box;transform-origin:100% 50%;animation:aletea .3s ease-in-out infinite alternate}
.fg-viajero-mariposa .ala-d,.fg-vc-mariposa .ala-d{transform-origin:0 50%}
.fg-vc-mariposa{width:52px;top:18vh;animation-duration:24s}
.fg-hoguera{filter:drop-shadow(0 0 16px rgba(255,138,42,.65))}
.fg-hoguera .llama,.fg-horizonte .llama,.fg-horizonte-pie .llama{transform-box:fill-box;transform-origin:50% 100%;animation:llama 1.1s ease-in-out infinite alternate}
@keyframes llama{from{transform:scaleY(1) skewX(0)}to{transform:scaleY(1.1) skewX(-4deg)}}
.fg-astro-sanjuan .fuego.u1{left:-62%;top:-26%;width:56%}
.fg-astro-sanjuan .fuego.u3{left:-30%;bottom:auto;top:58%;width:44%}
.fg-figuras .fg-huevo,.fg-figuras .fg-huevo2,.fg-figuras .fg-huevo3,.fg-figuras .fg-conejo{animation:bote 4s var(--ease-soft) infinite}
.fg-figuras .fg-figura.f2.fg-huevo2,.fg-figuras .fg-figura.f3{animation-delay:-1.3s}
html[data-tema="fin-de-ano"] .fg-astro-esp{filter:drop-shadow(0 0 26px rgba(245,197,66,.7))}
html[data-tema="semana-santa"] .fg-astro-esp{filter:drop-shadow(0 0 20px rgba(183,156,235,.7));animation:bote 4s var(--ease-soft) infinite}
@media (prefers-reduced-motion: reduce){.chispa,.petalo{display:none}.fg-figuras .fg-figura,.llama{animation:none!important}}
/* Lo que cuelga del especial, siempre a la derecha del título: uno junto al título y otro bajo el astro */
.fg-colgante.fg-hilo.c2{left:auto;right:3%;--hilo:clamp(150px,15vw,200px)}
.fg-colgante.fg-hilo.c3{display:none}
@media (max-width:1100px){.fg-colgante.fg-hilo.c2{display:none}}
