/* Servicio Activo · portada (maqueta cinematográfica v1, 27/09/2026)
   Tokens de ../../marca/tokens.css. Recetas: .claude/skills/web-cinematica/references/recetas.md */

@font-face{font-family:"Archivo";src:url("../fonts/archivo-var-latin.woff2") format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap}
@font-face{font-family:"Archivo";src:url("../fonts/archivo-var-latin-ext.woff2") format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap;unicode-range:U+0100-02BA,U+1E00-1E9F,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113}
@font-face{font-family:"IBM Plex Mono";src:url("../fonts/plex-mono-400-latin.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("../fonts/plex-mono-500-latin.woff2") format("woff2");font-weight:500;font-display:swap}

:root{
  color-scheme:light;
  --paper:#F3F0E8; --surface:#FBFAF6; --ink:#17191C; --ink-2:#4A4F55; --line:#D9D4C7;
  --night:#1C211E; --night-2:#252B27; --ranger:#3E4A3D; --coyote:#B8A27E; --signal:#FF5B14; --signal-ink:#B23C06;
  --on-night:#F3F0E8; --on-night-2:#C9C4B8;
  --display:"Archivo","Arial Narrow",sans-serif; --text:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif; --mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,monospace;
  --gutter:clamp(16px,4vw,48px); --max:78rem; --r-s:4px; --r-m:8px; --r-l:14px;
  --head-h:64px;
}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--night)}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.6 var(--text);-webkit-font-smoothing:antialiased;overflow-x:clip}
img,video,canvas{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:3px solid var(--signal);outline-offset:3px}
h1,h2,h3{font-family:var(--display);font-stretch:68%;font-weight:800;line-height:.92;letter-spacing:-.01em;margin:0;text-wrap:balance}
p{margin:0}
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.label{font:500 .75rem/1.2 var(--mono);text-transform:uppercase;letter-spacing:.09em}
.dot{display:inline-block;width:.55em;height:.55em;border-radius:50%;background:var(--signal);vertical-align:.05em}
.btn{display:inline-flex;align-items:center;gap:.6em;min-height:48px;padding:0 1.25rem;border-radius:var(--r-s);font:600 1rem/1 var(--text);text-decoration:none;border:1.5px solid transparent;transition:background .2s,color .2s}
.btn--primary{background:var(--signal);color:var(--ink)}
.btn--primary:hover{background:#FF7A40}
.btn--ghost{border-color:currentColor;color:var(--on-night)}
.btn--ghost:hover{background:var(--on-night);color:var(--night)}

/* Cabecera */
.head{position:fixed;inset:0 0 auto 0;z-index:50;color:var(--on-night);padding-top:env(safe-area-inset-top,0px);transition:background .3s,color .3s,box-shadow .3s}
.head__in{height:var(--head-h);display:flex;align-items:center;justify-content:space-between;gap:1rem}
.head__logo{display:block;width:180px;color:inherit}
.head__logo svg{width:100%;height:auto}
.head nav{display:flex;gap:1.5rem}
.head nav a{font:500 .8rem/1 var(--mono);text-transform:uppercase;letter-spacing:.08em;text-decoration:none;opacity:.85}
.head nav a:hover{opacity:1;text-decoration:underline;text-underline-offset:.3em}
.head.is-solid{background:var(--paper);color:var(--ink);box-shadow:0 1px 0 var(--line)}
@media (max-width:860px){.head nav{display:none}.head__logo{width:150px}}

/* Portada */
.hero{position:relative;min-height:100svh;background:var(--night);color:var(--on-night);display:grid;grid-template-columns:minmax(0,1fr);overflow:hidden}
.hero__media{position:absolute;inset:0;clip-path:inset(0% 0% 0% 0% round 0px);will-change:clip-path}
.hero__video{width:100%;height:100%;object-fit:cover;object-position:62% 50%}
.hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,33,30,.55) 0%,rgba(28,33,30,.1) 35%,rgba(28,33,30,.35) 62%,rgba(28,33,30,.92) 100%)}
.hero__body{position:relative;align-self:end;display:grid;gap:1.4rem;padding-block:calc(var(--head-h) + 3rem) clamp(2rem,6vh,4.5rem)}
.hero__title{font-size:clamp(3.4rem,1rem + 10.5vw,10.5rem);text-transform:uppercase;max-width:12ch}
.hero__title .line{padding-bottom:.04em}
.hero__lead{max-width:44ch;font-size:clamp(1.05rem,1rem + .35vw,1.3rem);line-height:1.5;color:var(--on-night-2)}
.hero__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem}
.hero__tag{color:var(--coyote)}
.hero__demo{color:var(--on-night-2);border:1px solid rgba(243,240,232,.3);border-radius:var(--r-s);padding:.3rem .5rem}
.hero__actions{display:flex;flex-wrap:wrap;gap:.75rem}
.ficha{text-decoration:none;position:absolute;right:var(--gutter);bottom:clamp(2rem,6vh,4.5rem);width:min(320px,80vw);background:var(--paper);color:var(--ink);border-radius:var(--r-m);padding:1.1rem 1.2rem;display:grid;gap:.7rem;box-shadow:0 20px 60px -20px rgba(0,0,0,.6)}
.ficha h3,.ficha__t{font-size:1.5rem;font-stretch:75%;text-transform:uppercase}
.ficha dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;font:400 .82rem/1.3 var(--mono)}
.ficha dt{color:var(--ink-2)}
.ficha dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.ficha .veredicto{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:.7rem}
.pill{display:inline-block;padding:.3rem .6rem;border-radius:var(--r-s);background:var(--ranger);color:var(--paper);font:500 .72rem/1 var(--mono);text-transform:uppercase;letter-spacing:.08em}
@media (max-width:1100px){.ficha{display:none}}

/* Marquesina */
.ticker{background:var(--signal);color:var(--ink);overflow:hidden;border-block:1px solid var(--ink)}
.ticker__track{display:flex;width:max-content;gap:2.2rem;padding-block:.95rem;animation:ticker 38s linear infinite}
.ticker__track span{display:inline-flex;align-items:center;gap:2.2rem;font:800 clamp(1.3rem,1rem + 1.3vw,2.2rem)/1 var(--display);font-stretch:70%;text-transform:uppercase;white-space:nowrap}
.ticker__track span::after{content:"";width:.5em;height:.5em;border-radius:50%;background:var(--ink)}
@keyframes ticker{to{transform:translateX(-50%)}}
.ticker:hover .ticker__track{animation-play-state:paused}

/* Cómo probamos: secuencia al scroll */
.seq{position:relative;background:var(--night);color:var(--on-night)}
.seq__sticky{position:relative;display:grid;grid-template-columns:minmax(0,1fr);align-items:center;min-height:100svh;overflow:hidden}
.seq__canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.seq__sticky::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(28,33,30,.94) 0%,rgba(28,33,30,.75) 38%,rgba(28,33,30,.05) 75%)}
.seq__text{position:relative;z-index:1;display:grid;gap:2rem;padding-block:6rem}
.seq__text h2{font-size:clamp(2.6rem,1.4rem + 4.5vw,5.5rem);text-transform:uppercase;max-width:10ch}
.seq__steps{list-style:none;margin:0;padding:0;display:grid;gap:1.6rem;max-width:30rem;counter-reset:paso}
.seq__steps li{display:grid;grid-template-columns:3rem 1fr;gap:.2rem 1rem;counter-increment:paso}
.seq__steps li::before{content:counter(paso,decimal-leading-zero);grid-row:span 2;font:500 .9rem/1.6 var(--mono);color:var(--signal);border-top:2px solid var(--signal);padding-top:.35rem}
.seq__steps h3{font-size:clamp(1.6rem,1.2rem + 1.2vw,2.3rem);font-stretch:75%;padding-top:.3rem}
.seq__steps p{color:var(--on-night-2);max-width:38ch}
.seq__progress{display:flex;align-items:center;gap:.8rem;color:var(--coyote)}
.seq__bar{width:160px;height:2px;background:rgba(243,240,232,.2);position:relative;overflow:hidden}
.seq__bar i{position:absolute;inset:0;background:var(--signal);transform-origin:left;transform:scaleX(0)}
.motion .seq{height:320vh}
.motion .seq__sticky{position:sticky;top:0;height:100svh}
/* Con animación: un solo paso a la vista, en el mismo sitio; entra desde abajo y sale hacia arriba */
.motion .seq__steps{display:grid;gap:0;min-height:10.5rem}
.motion .seq__steps li{grid-area:1/1;align-content:start;align-self:start;opacity:0;transform:translateY(28px);transition:opacity .45s ease,transform .6s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.motion .seq__steps li.is-past{transform:translateY(-28px)}
.motion .seq__steps li.is-on{opacity:1;transform:none;pointer-events:auto;transition-delay:.12s}
.seq__count{font-variant-numeric:tabular-nums;color:var(--on-night)}
.seq__count:empty{display:none}

/* Primeras pruebas: raíl horizontal */
.rail{background:var(--paper);padding-block:clamp(4rem,10vh,7rem) clamp(3rem,8vh,5rem);overflow:hidden}
.rail__head{display:grid;grid-template-columns:1fr auto;align-items:end;gap:1rem 2rem;margin-bottom:2.5rem}
.rail__head h2{font-size:clamp(2.4rem,1.2rem + 4.2vw,5rem);text-transform:uppercase;max-width:13ch}
.rail__head p{max-width:36ch;color:var(--ink-2)}
.rail__track{display:flex;gap:1rem;padding-inline:var(--gutter);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:.5rem}
.rail__track::-webkit-scrollbar{display:none}
.card{flex:0 0 min(78vw,330px);scroll-snap-align:start;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);padding:1.25rem;display:grid;grid-template-rows:auto 1fr auto;gap:2.2rem;min-height:300px;text-decoration:none;transition:border-color .2s,transform .2s}
.card:hover{border-color:var(--ink);transform:translateY(-3px)}
.card__top{display:flex;justify-content:space-between;align-items:center;color:var(--ink-2)}
.card__n{font:500 .8rem/1 var(--mono);color:var(--signal-ink)}
.card h3{font-size:clamp(1.7rem,1.4rem + .9vw,2.2rem);font-stretch:72%;text-transform:uppercase;align-self:end}
.card__foot{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;border-top:1px solid var(--line);padding-top:.8rem;font:400 .92rem/1.4 var(--text);color:var(--ink-2)}
.card__foot span[aria-hidden]{font:500 1.2rem/1 var(--mono);color:var(--signal-ink)}
.card__foot b{font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}
.motion-wide .rail__track{overflow:visible;scroll-snap-type:none;width:max-content}
.rail__track{padding-top:3.6rem}
.card--obj{position:relative;isolation:isolate}
.card--obj::before{content:"";position:absolute;inset:0 0 auto;height:10rem;z-index:-1;border-radius:var(--r-m) var(--r-m) 0 0;background:radial-gradient(60% 80% at 70% 0%,rgba(255,91,20,.16),transparent 70%)}
.card--obj .card__top{padding-right:52%}
.card__obj{position:absolute;top:-3.3rem;right:.5rem;width:auto;height:10.5rem;max-width:66%;object-fit:contain;object-position:right bottom;transform:rotate(-5deg);transform-origin:70% 90%;filter:drop-shadow(0 18px 14px rgba(23,25,28,.38)) drop-shadow(0 3px 3px rgba(23,25,28,.25));transition:transform .35s cubic-bezier(.2,.8,.2,1);pointer-events:none}
.card--obj:hover .card__obj{transform:translateY(-8px) rotate(-1deg) scale(1.05)}
@media (prefers-reduced-motion:reduce){.card__obj,.card--obj:hover .card__obj{transition:none;transform:none}}
@media (max-width:640px){.rail__head{grid-template-columns:1fr}}

/* En activo: temas para quien ya lleva el uniforme */
.activo{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.activo__in{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:center;padding-block:clamp(4rem,10vh,7rem)}
.activo__intro{display:grid;gap:1.3rem;justify-items:start}
.activo h2{font-size:clamp(2.4rem,1.2rem + 4.2vw,5rem);text-transform:uppercase;max-width:12ch}
.activo__intro p{max-width:46ch;color:var(--ink-2)}
.activo__temas{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.activo__temas a{display:flex;justify-content:space-between;gap:1rem;padding:1.05rem 0;border-bottom:1px solid var(--line);text-decoration:none;font:700 clamp(1.15rem,1rem + .5vw,1.45rem)/1.2 var(--display);font-stretch:80%;text-transform:uppercase}
.activo__temas a::after{content:"→";color:var(--signal-ink)}
.activo__temas a:hover{color:var(--signal-ink)}
@media (max-width:860px){.activo__in{grid-template-columns:1fr}}

/* Preguntas frecuentes de la portada */
.faq{background:var(--paper);padding-block:clamp(4rem,10vh,7rem)}
.faq__in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:2rem clamp(2rem,5vw,5rem)}
.faq h2{font-size:clamp(2.2rem,1.2rem + 3.5vw,4.2rem);text-transform:uppercase;max-width:10ch}
.faq__lista{border-top:1px solid var(--ink)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;padding:1.1rem 0;font:700 1.15rem/1.3 var(--text);font-stretch:90%}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:500 1.3rem/1 var(--mono);color:var(--signal-ink)}
.faq details[open] summary::after{content:"−"}
.faq details p{padding:0 0 1.2rem;max-width:62ch;color:var(--ink-2)}
@media (max-width:860px){.faq__in{grid-template-columns:1fr}}

/* Turno de noche */
.noche{position:relative;background:var(--night);color:var(--on-night);overflow:hidden}
.noche__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.noche::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 40%,rgba(28,33,30,.1),rgba(28,33,30,.85))}
.noche__in{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr);gap:2rem;padding-block:clamp(6rem,18vh,11rem)}
.noche__quote{font:700 clamp(2rem,1.1rem + 3.6vw,4.4rem)/1.04 var(--display);font-stretch:74%;max-width:20ch;text-wrap:balance}
.noche__quote .w{display:inline-block}
.noche__link{color:var(--coyote);text-underline-offset:.3em}

/* Quiero entrar: shader */
.entrar{position:relative;background:var(--night);color:var(--on-night);overflow:hidden;
  background-image:repeating-radial-gradient(circle at 70% 40%,rgba(184,162,126,.10) 0 1px,transparent 1px 34px)}
.entrar__gl{position:absolute;inset:0;width:100%;height:100%}
.entrar__in{position:relative;z-index:1;display:grid;gap:1.6rem;padding-block:clamp(5rem,14vh,9rem)}
.entrar h2{font-size:clamp(3rem,1.2rem + 7vw,8rem);text-transform:uppercase}
.entrar p{max-width:46ch;color:var(--on-night-2);font-size:1.15rem}
.cuerpos{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:0}
.cuerpos li{border:1px solid rgba(243,240,232,.35);border-radius:var(--r-s);padding:.45rem .7rem;font:500 .78rem/1 var(--mono);text-transform:uppercase;letter-spacing:.06em}
.entrar small{color:var(--coyote);font:400 .78rem/1.4 var(--mono)}

/* Pie */
.pie{background:var(--night);color:var(--on-night-2);border-top:1px solid rgba(243,240,232,.12);padding-block:3.5rem 2rem;font-size:.92rem}
.pie__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem}
.pie__logo{width:200px;color:var(--on-night)}
.pie__h{margin:0 0 .8rem;color:var(--coyote);font:500 .75rem/1 var(--mono);text-transform:uppercase;letter-spacing:.09em}
.pie ul{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.pie a{text-decoration:none}
.pie a:hover{text-decoration:underline}
.pie__afil{max-width:46ch;margin-top:1rem;font-size:.85rem}
.pie__bottom{display:flex;align-items:center;margin-top:3rem;padding-top:1.2rem;border-top:1px solid rgba(243,240,232,.12);font:400 .78rem/1.4 var(--mono)}
.lapera-credit{display:inline-flex;vertical-align:middle;margin-right:.6rem;color:inherit;opacity:.55;transition:opacity .2s}
.lapera-credit:hover,.lapera-credit:focus-visible{opacity:1}
@media (max-width:760px){.pie__grid{grid-template-columns:1fr}}

/* Sin autoplay (iPhone en ahorro de batería): el póster se mueve despacio hasta que se toque la pantalla */
.sin-video > video{animation:deriva 16s ease-in-out infinite alternate;transform-origin:62% 55%}
@keyframes deriva{from{transform:scale(1.02) translate3d(0,0,0)}to{transform:scale(1.14) translate3d(-2%,-1.5%,0)}}

@media (prefers-reduced-motion:reduce){
  .sin-video > video{animation:none}
  .ticker__track{animation:none}
  *{scroll-behavior:auto!important}
}

/* Banner de cookies de LaPera (plantilla-tracking.html) con la paleta de Servicio Activo */
:root{
  --lp-cookie-bg:var(--night);--lp-cookie-text:var(--on-night);--lp-cookie-muted:#C9C4B8;--lp-cookie-border:var(--coyote);
  --lp-cookie-accent:var(--signal-ink);--lp-cookie-surface:var(--surface);--lp-cookie-ink:var(--ink);--lp-cookie-line:var(--line);
  --lp-cookie-stone:var(--ink-2);--lp-cookie-radius:var(--r-s);--lp-cookie-font:var(--text);
}
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:200;background:var(--lp-cookie-bg);color:var(--lp-cookie-text);box-shadow:0 -4px 24px rgba(0,0,0,.18);font-family:var(--lp-cookie-font)}
.cookie-banner-inner{max-width:1248px;margin:0 auto;padding:20px 24px;display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;justify-content:space-between}
.cookie-banner-text{flex:1 1 420px;font-size:14px;line-height:1.5;color:var(--lp-cookie-muted);margin:0}
.cookie-banner-text a{color:var(--lp-cookie-text);text-decoration:underline}
.cookie-banner-btns{display:flex;flex-wrap:wrap;gap:10px}
.cookie-banner .btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;border-radius:var(--lp-cookie-radius);font-weight:600;font-size:15px;text-decoration:none;border:1.5px solid transparent;cursor:pointer;font-family:inherit;transition:background .15s,color .15s,border-color .15s}
.cookie-banner .btn-dark{background:var(--lp-cookie-accent);color:var(--lp-cookie-text);border-color:var(--lp-cookie-accent)}
.cookie-banner .btn-line{background:transparent;border-color:var(--lp-cookie-border);color:var(--lp-cookie-text)}
.cookie-banner .btn-line:hover{background:var(--lp-cookie-text);color:var(--lp-cookie-bg)}

.cookie-settings{position:fixed;inset:0;z-index:210;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;padding:24px}
.cookie-settings-inner{background:var(--lp-cookie-surface);color:var(--lp-cookie-ink);border-radius:var(--lp-cookie-radius);max-width:480px;width:100%;padding:32px;max-height:88vh;overflow:auto;font-family:var(--lp-cookie-font)}
.cookie-settings-inner h2{font-size:22px;margin:0 0 20px}
.cookie-settings-inner .btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;border-radius:var(--lp-cookie-radius);font-weight:600;font-size:15px;cursor:pointer;border:1.5px solid transparent;font-family:inherit}
.cookie-settings-inner .btn-dark{background:var(--lp-cookie-accent);color:#fff}
.cookie-settings-inner .btn-line{background:transparent;border-color:var(--lp-cookie-ink);color:var(--lp-cookie-ink)}
.cookie-cat{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 0;border-top:1px solid var(--lp-cookie-line)}
.cookie-cat p{font-size:14px;color:var(--lp-cookie-stone);margin:4px 0 0}
.cookie-toggle-fixed{font-size:13px;color:var(--lp-cookie-stone);white-space:nowrap;padding-top:2px}
.cookie-switch{position:relative;display:inline-block;width:44px;height:26px;flex-shrink:0}
.cookie-switch input{opacity:0;width:0;height:0}
.cookie-switch span{position:absolute;inset:0;background:var(--lp-cookie-line);border-radius:var(--lp-cookie-radius);transition:background .15s;cursor:pointer}
.cookie-switch span::before{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .15s;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.cookie-switch input:checked + span{background:var(--lp-cookie-accent)}
.cookie-switch input:checked + span::before{transform:translateX(18px)}
.cookie-settings-link{margin:8px 0 20px;font-size:14px}
.cookie-tab{position:fixed;left:20px;bottom:20px;z-index:190;width:44px;height:44px;border-radius:50%;border:1px solid var(--lp-cookie-line);background:var(--lp-cookie-surface);color:var(--lp-cookie-ink);font-size:20px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.15);padding:0}
.cookie-tab:hover{transform:translateY(-2px)}
/* Móvil: banner compacto (una franja baja, ~150px): texto 13px y los tres
   botones en UNA fila. No apilar botones ni dejar que ocupe media pantalla. */
@media (max-width:640px){
  .cookie-banner-inner{padding:12px 16px;gap:10px;flex-direction:column;align-items:stretch}
  .cookie-banner-text{font-size:13px;line-height:1.4;flex-basis:auto}
  .cookie-banner-btns{display:grid;grid-template-columns:1fr 1fr 1.35fr;gap:8px}
  .cookie-banner .btn{min-height:40px;padding:0 8px;font-size:13px;width:100%;white-space:nowrap}
  .cookie-settings-inner{padding:20px}
  .cookie-tab{width:40px;height:40px;font-size:18px}
}
