/* Filmaked · contenido de las páginas (se carga después de marco.css) */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:90px}
body{margin:0;background:var(--fk-noche);color:var(--fk-marfil);font-family:var(--fk-sans);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}
img{display:block;max-width:100%;height:auto}
h1,h2,h3{font-family:var(--fk-serif);font-weight:400;line-height:.98;letter-spacing:-.015em;margin:0;text-wrap:balance}
p{margin:0}
::selection{background:var(--fk-oro);color:var(--fk-noche)}
:focus-visible{outline:2px solid var(--fk-oro);outline-offset:3px;border-radius:3px}
.wrap{max-width:var(--fk-max);margin:0 auto;padding:0 var(--fk-gut)}
.oro .w>span,.oro-t{background:var(--fk-luz);-webkit-background-clip:text;background-clip:text;color:transparent}
.claro .oro-t,.claro .oro .w>span{background:linear-gradient(135deg,#C98A17,#9A5F0C);-webkit-background-clip:text;background-clip:text}

/* grano de película, muy suave, en toda la web */
.grano{position:fixed;inset:-100%;width:300%;height:300%;pointer-events:none;z-index:70;opacity:.045;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grano 1s steps(5) infinite}
@keyframes grano{0%{transform:translate(0,0)}25%{transform:translate(-2%,1%)}50%{transform:translate(1%,-2%)}75%{transform:translate(-1%,2%)}100%{transform:translate(0,0)}}

/* secciones */
.sec{padding:clamp(100px,12vw,190px) 0;position:relative}
.sec.tight{padding:clamp(70px,8vw,120px) 0}
.claro{background:var(--fk-marfil);color:var(--fk-tinta)}
.claro2{background:var(--fk-marfil-2);color:var(--fk-tinta)}
.noche2{background:var(--fk-noche-2)}
.kick{font-size:15px;font-weight:600;color:var(--fk-oro);margin-bottom:22px;display:block}
.claro .kick,.claro2 .kick{color:var(--fk-oro-osc)}
.h2{font-size:clamp(42px,5.6vw,88px);max-width:14em}
.lead{font-size:clamp(18px,1.45vw,21px);line-height:1.6;max-width:34em;margin-top:30px;color:var(--fk-gris-claro)}
.claro .lead,.claro2 .lead{color:var(--fk-tinta-2)}
.crumbs{font-size:14px;color:var(--fk-gris);margin-bottom:30px;display:flex;gap:8px;flex-wrap:wrap}
.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--fk-oro)}
.acts{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px}

/* ---------- portada ---------- */
.hero{position:relative;padding:clamp(150px,19vh,210px) 0 clamp(60px,7vw,100px);overflow:hidden}
.hero::before{content:"";position:absolute;width:70vw;height:70vw;right:-25vw;top:-35vw;border-radius:50%;background:radial-gradient(circle,rgba(230,176,51,.16),transparent 62%);pointer-events:none}
.hero h1{font-size:clamp(54px,8.6vw,150px);line-height:.92;max-width:11em;letter-spacing:-.025em;position:relative}
.hero.svc h1{font-size:clamp(46px,6.4vw,110px)}
.hero .row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:32px 64px;margin-top:44px;position:relative}
.hero .row .lead{margin-top:0}
.hero .meta{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:34px;font-size:14.5px;color:var(--fk-gris);position:relative}
.hero .meta span::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--fk-oro);margin-right:10px;vertical-align:2px}

/* fotograma panorámico: se abre desde una línea y lo cruza un destello de luz de proyector */
.reel{position:relative;margin-top:clamp(50px,7vw,100px);aspect-ratio:2.39/1;border-radius:clamp(10px,1.2vw,18px);overflow:hidden;background:var(--fk-noche-3)}
.js .reel{animation:telon 1.6s var(--fk-io) .3s both}
@keyframes telon{from{clip-path:inset(49.5% 0 49.5% 0 round 2px)}to{clip-path:inset(0 0 0 0 round clamp(10px,1.2vw,18px))}}
.reel .pl{position:absolute;inset:-6%;animation:deriva 24s ease-in-out infinite alternate}
.js .reel .pl{animation:abre 2.4s var(--fk-out) .3s both,deriva 24s ease-in-out 2.7s infinite alternate}
@keyframes abre{from{transform:scale(1.2)}to{transform:scale(1.04) translate(-1.5%,.5%)}}
@keyframes deriva{from{transform:scale(1.04) translate(-1.5%,.5%)}to{transform:scale(1.14) translate(2%,-1.5%)}}
.reel::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(236,193,90,.35) 48%,rgba(212,131,17,.18) 55%,transparent 70%);transform:translateX(-110%);pointer-events:none;mix-blend-mode:screen}
.js .reel::after{animation:destello 2.2s var(--fk-io) 1.5s both}
@keyframes destello{to{transform:translateX(110%)}}
.reel video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.reel .tag{position:absolute;left:clamp(16px,2vw,28px);bottom:clamp(14px,1.8vw,24px);font-size:14px;color:rgba(239,236,231,.9);display:flex;align-items:center;gap:10px;z-index:1}
.reel .tag::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--fk-oro)}

/* aparición al bajar */
.js .rv{opacity:0;transform:translateY(24px);transition:opacity 1s var(--fk-out),transform 1s var(--fk-out);transition-delay:var(--d,0ms)}
.js .rv.on{opacity:1;transform:none}

/* ---------- dos puertas ---------- */
.puertas{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,1.6vw,24px);margin-top:clamp(48px,6vw,80px)}
.puerta{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:clamp(420px,46vw,640px);padding:clamp(28px,3.4vw,52px);border-radius:clamp(14px,1.6vw,24px);overflow:hidden;text-decoration:none;color:var(--fk-marfil);background:var(--fk-noche);isolation:isolate}
.puerta .tx{position:absolute;inset:0;z-index:-2;transform:scale(1.08);transition:transform 1.4s var(--fk-out);opacity:.55}
.puerta::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(14,17,21,.25),rgba(14,17,21,.88) 75%)}
.puerta:hover .tx{transform:scale(1)}
.puerta small{font-size:15px;font-weight:600;color:var(--fk-oro)}
.puerta h3{font-size:clamp(38px,4.2vw,68px);margin-top:14px;max-width:9em}
.puerta p{margin-top:18px;color:var(--fk-gris-claro);max-width:28em;font-size:17px}
.puerta .go{display:inline-flex;align-items:center;gap:12px;margin-top:30px;font-weight:600}
.puerta .go i{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font-style:normal;background:rgba(239,236,231,.12);transition:background-color .3s var(--fk-out),transform .45s var(--fk-out),color .3s}
.puerta:hover .go i{background:var(--fk-oro);color:var(--fk-noche);transform:rotate(-45deg)}
@media (max-width:820px){.puertas{grid-template-columns:1fr}.puerta{min-height:440px}}

/* ---------- tira de película horizontal ---------- */
.tira{position:relative}
.js .tira{height:var(--alto,300vh)}
.tira .pin{overflow:hidden;padding:clamp(90px,10vw,140px) 0 60px}
.js .tira .pin{position:sticky;top:0;height:100vh;height:100svh;display:flex;flex-direction:column;justify-content:center;padding:80px 0 40px}
.tira .cab{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap}
.tira .cnt{font-size:15px;color:var(--fk-gris);font-variant-numeric:tabular-nums}
.tira .track{display:flex;gap:clamp(16px,2vw,28px);margin-top:clamp(36px,5vh,60px);padding:0 var(--fk-gut);will-change:transform}
.fot{flex:none;width:min(62vw,860px)}
.fot .im{position:relative;aspect-ratio:16/9;border-radius:clamp(10px,1.2vw,16px);overflow:hidden;background:var(--fk-noche-3)}
.fot .im .pl{position:absolute;inset:-8%;transform:translateX(var(--px,0));transition:transform .1s linear}
.fot .im b{position:absolute;left:20px;top:18px;font:600 13px/1 var(--fk-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--fk-noche);background:var(--fk-oro);padding:7px 10px;border-radius:999px}
.fot h3{font-size:clamp(28px,2.6vw,42px);margin-top:20px}
.fot p{color:var(--fk-gris-claro);margin-top:8px;max-width:36em;font-size:16.5px}
@media (max-width:820px){
  .js .tira{height:auto}
  .js .tira .pin{position:relative;height:auto;padding:100px 0 60px}
  .tira .track{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:10px;transform:none!important}
  .fot{width:84vw;scroll-snap-align:center}
}

/* ---------- servicios en filas ---------- */
.rows{margin-top:clamp(48px,6vw,90px)}
.rows a{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) auto;gap:16px 48px;align-items:center;padding:clamp(26px,3vw,40px) 0;text-decoration:none;border-top:1px solid color-mix(in srgb,currentColor 13%,transparent);position:relative}
.rows a:last-child{border-bottom:1px solid color-mix(in srgb,currentColor 13%,transparent)}
.rows small{display:block;font-size:14px;font-weight:600;color:var(--fk-oro);margin-bottom:10px}
.claro .rows small,.claro2 .rows small{color:var(--fk-oro-osc)}
.rows h3{font-size:clamp(32px,3.6vw,58px);transition:transform .55s var(--fk-out)}
.rows p{color:var(--fk-gris-claro);font-size:17px}
.claro .rows p,.claro2 .rows p{color:var(--fk-tinta-2)}
.rows .go{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,currentColor 8%,transparent);transition:background-color .3s var(--fk-out),transform .45s var(--fk-out),color .3s}
.rows a:hover h3{transform:translateX(12px)}
.rows a:hover .go{background:var(--fk-oro);color:var(--fk-noche);transform:rotate(-45deg)}
@media (max-width:760px){.rows a{grid-template-columns:1fr auto}.rows p{grid-column:1/-1;grid-row:2}}

/* ---------- dos columnas ---------- */
.split2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,7vw,120px);align-items:start}
.split2.mid{align-items:center}
@media (max-width:900px){.split2{grid-template-columns:1fr}}
.body p+p,.body ul+p,.body p+ul{margin-top:18px}
.body p,.body li{color:var(--fk-gris-claro);font-size:19px;max-width:34em}
.claro .body p,.claro .body li,.claro2 .body p,.claro2 .body li{color:var(--fk-tinta-2)}
.body strong{color:var(--fk-marfil);font-weight:600}
.claro .body strong,.claro2 .body strong{color:var(--fk-tinta)}
.body ul{padding-left:1.1em}
.body li+li{margin-top:8px}
.body li::marker{color:var(--fk-oro)}

/* lo que incluye */
.incl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,1.4vw,22px);margin-top:clamp(40px,5vw,70px)}
.incl div{padding:clamp(24px,2.4vw,36px);border-radius:clamp(12px,1.2vw,18px);background:color-mix(in srgb,currentColor 5%,transparent);transition:background-color .3s var(--fk-out),transform .4s var(--fk-out)}
.incl div:hover{background:color-mix(in srgb,var(--fk-oro) 12%,transparent);transform:translateY(-4px)}
.incl b{display:block;font:400 clamp(26px,2.2vw,34px)/1.05 var(--fk-serif)}
.incl span{display:block;margin-top:12px;color:var(--fk-gris-claro);font-size:16.5px}
.claro .incl span,.claro2 .incl span{color:var(--fk-tinta-2)}
@media (max-width:980px){.incl{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.incl{grid-template-columns:1fr}}

/* proceso */
.flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,3vw,48px);margin-top:clamp(48px,6vw,90px)}
.flow div{position:relative;padding-top:30px}
.flow div::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:color-mix(in srgb,currentColor 13%,transparent)}
.flow div::after{content:"";position:absolute;top:0;left:0;height:2px;width:100%;background:var(--fk-luz);transform:scaleX(0);transform-origin:left;transition:transform 1.3s var(--fk-out);transition-delay:var(--d,0ms)}
.flow div.on::after{transform:none}
.flow b{display:block;font:400 clamp(28px,2.4vw,38px)/1 var(--fk-serif)}
.flow span{display:block;margin-top:14px;color:var(--fk-gris-claro);font-size:16.5px}
.claro .flow span{color:var(--fk-tinta-2)}
@media (max-width:900px){.flow{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.flow{grid-template-columns:1fr}}

/* cifras/argumentos grandes */
.pruebas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,48px);margin-top:clamp(48px,6vw,80px)}
.pruebas b{display:block;font:400 clamp(46px,5vw,80px)/.95 var(--fk-serif)}
.pruebas span{display:block;margin-top:14px;color:var(--fk-gris-claro);font-size:16.5px;max-width:22em}
.claro .pruebas span{color:var(--fk-tinta-2)}
@media (max-width:820px){.pruebas{grid-template-columns:1fr}}

/* preguntas frecuentes */
.faq details{border-top:1px solid color-mix(in srgb,currentColor 13%,transparent)}
.faq details:last-child{border-bottom:1px solid color-mix(in srgb,currentColor 13%,transparent)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;align-items:center;padding:28px 0;font:400 clamp(24px,2.2vw,33px)/1.12 var(--fk-serif);transition:color .2s}
.faq summary:hover{color:var(--fk-oro)}
.claro .faq summary:hover{color:var(--fk-oro-osc)}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{flex:none;width:18px;height:18px;position:relative;transition:transform .4s var(--fk-out)}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:0;right:0;top:50%;height:1.5px;background:currentColor}
.faq summary i::after{transform:rotate(90deg)}
.faq details[open] summary i{transform:rotate(45deg)}
.faq details p{padding:0 0 30px;max-width:46em;color:var(--fk-gris-claro);font-size:18px}
.claro .faq details p{color:var(--fk-tinta-2)}

/* guías */
.guias{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,1.6vw,24px);margin-top:clamp(48px,6vw,80px)}
.guia{display:flex;flex-direction:column;justify-content:space-between;gap:40px;min-height:340px;padding:clamp(28px,3vw,44px);border-radius:clamp(14px,1.6vw,22px);background:var(--fk-noche-3);text-decoration:none;transition:transform .45s var(--fk-out),background-color .3s}
.guia:hover{transform:translateY(-6px);background:#242B35}
.guia small{font-size:14px;font-weight:600;color:var(--fk-oro)}
.guia h3{font-size:clamp(30px,2.8vw,44px);margin-top:14px}
.guia p{color:var(--fk-gris-claro);margin-top:14px;font-size:16.5px}
.guia .go{font-weight:600}
@media (max-width:820px){.guias{grid-template-columns:1fr}}

/* artículo */
.art{max-width:760px}
.art h2{font-size:clamp(32px,3vw,46px);margin:64px 0 18px}
.art h3{font-size:clamp(25px,2.2vw,32px);margin:40px 0 12px}
.art p,.art li{color:var(--fk-tinta-2);font-size:19px;line-height:1.7}
.art p+p{margin-top:18px}
.art ul,.art ol{padding-left:1.2em;margin:18px 0}
.art li+li{margin-top:10px}
.art li::marker{color:var(--fk-oro-osc)}
.art strong{color:var(--fk-tinta)}
.art .nota{margin-top:40px;padding:26px 28px;border-radius:16px;background:var(--fk-marfil-2)}

/* cierre */
.cta{overflow:hidden}
.cta::before{content:"";position:absolute;width:80vw;height:80vw;left:50%;top:40%;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle,rgba(230,176,51,.14),transparent 60%);pointer-events:none}
.cta h2{font-size:clamp(60px,11vw,190px);line-height:.88;position:relative}
.cta .row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:28px;margin-top:44px;position:relative}

/* formulario */
.form{display:grid;gap:18px;max-width:640px}
.form label{display:grid;gap:8px;font-size:15px;font-weight:600}
.form input,.form select,.form textarea{font:400 17px/1.4 var(--fk-sans);padding:16px 18px;border-radius:14px;border:0;background:var(--fk-noche-3);color:var(--fk-marfil);box-shadow:inset 0 0 0 1px transparent;transition:box-shadow .2s var(--fk-out)}
.form textarea{min-height:140px;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;box-shadow:inset 0 0 0 2px var(--fk-oro)}
.form .fine{font-size:14px;color:var(--fk-gris)}

/* legales */
.legal{max-width:760px}
.legal h2{font-size:clamp(28px,2.6vw,38px);margin:48px 0 16px}
.legal p{color:var(--fk-tinta-2);font-size:17px}
.legal p+p{margin-top:14px}
.pend{background:#F6DFA9;color:#5C3906;padding:1px 6px;border-radius:5px}

/* móvil con notificación y tarjeta del club */
.mock{position:relative;width:100%;max-width:560px;margin-left:auto;aspect-ratio:1/1.02;container-type:inline-size}
.mock .ph{position:absolute;right:6cqw;top:0;width:54cqw;aspect-ratio:9/19;border-radius:9cqw;background:#0B0D10;box-shadow:inset 0 0 0 1.2cqw #232A33,0 40cqw 60cqw -34cqw rgba(14,17,21,.6)}
.mock .ph::before{content:"";position:absolute;top:3cqw;left:50%;transform:translateX(-50%);width:15cqw;height:4.2cqw;border-radius:9cqw;background:#000;z-index:2}
.mock .lk{position:absolute;inset:1.8cqw;border-radius:7.4cqw;overflow:hidden;background:radial-gradient(120% 80% at 50% 0%,#3A3024,#14171C 70%);color:#fff;text-align:center}
.mock .lk .h{display:block;margin-top:14cqw;font:300 12.5cqw/1 var(--fk-sans);letter-spacing:-.02em}
.mock .lk .d{display:block;margin-top:1.6cqw;font-size:2.9cqw;opacity:.8}
.mock .nt{position:absolute;left:3.4cqw;right:3.4cqw;top:36cqw;background:rgba(246,243,238,.95);color:var(--fk-tinta);border-radius:4.4cqw;padding:3.2cqw;display:flex;gap:2.4cqw;text-align:left;opacity:0;transform:translateY(-5cqw) scale(.96);transition:opacity .8s var(--fk-out) .5s,transform .8s var(--fk-out) .5s}
.mock.on .nt{opacity:1;transform:none}
.mock .nt i{flex:none;width:7.6cqw;height:7.6cqw;border-radius:2cqw;background:var(--fk-noche);display:grid;place-items:center}
.mock .nt i::after{content:"";width:2cqw;height:2cqw;border-radius:50%;background:var(--fk-oro)}
.mock .nt b{display:block;font-size:2.9cqw;font-weight:600}
.mock .nt span{display:block;font-size:2.7cqw;line-height:1.3;color:var(--fk-tinta-2)}
.mock .cd{position:absolute;left:0;bottom:4cqw;width:68cqw;aspect-ratio:1.586;border-radius:3.6cqw;padding:5cqw;color:#EDE3CF;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 30cqw 40cqw -24cqw rgba(14,10,6,.6);transform:rotate(-4deg) translateY(6cqw);opacity:0;transition:transform 1.2s var(--fk-out),opacity .8s var(--fk-out)}
.mock.on .cd{transform:rotate(-4deg);opacity:1}
.mock .cd .t{display:flex;justify-content:space-between;align-items:flex-start}
.mock .cd .t b{font:400 6cqw/1 var(--fk-serif)}
.mock .cd .t small{display:block;font:500 2.2cqw/1 var(--fk-sans);letter-spacing:.12em;text-transform:uppercase;opacity:.7;margin-top:1.4cqw}
.mock .cd .t span{font-size:2.3cqw;letter-spacing:.08em;opacity:.8}
.mock .st{display:flex;gap:2.2cqw}
.mock .st i{width:7cqw;height:7cqw;border-radius:50%;border:1px solid rgba(237,227,207,.55)}
.mock .st i.f{background:#E6B033;border-color:#E6B033;box-shadow:inset 0 0 0 1.3cqw #1A1714}
.mock .cd .f2{display:flex;justify-content:space-between;font-size:2.3cqw;opacity:.85}
@media (max-width:900px){.mock{margin:0 auto}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .js .rv{transform:none;opacity:1}
  .reel .pl{animation:none!important;transform:scale(1.04)}
  .grano{display:none}
}

/* viñeteado de cine sobre los fotogramas */
.fot .im::after,.reel .vig{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 clamp(60px,9vw,160px) rgba(5,6,8,.7);background:linear-gradient(180deg,rgba(14,17,21,.15),transparent 30%,transparent 70%,rgba(14,17,21,.35))}
.puerta .tx{filter:saturate(.85) brightness(.9)}

/* cifras con contador */
.cifras{background:var(--fk-noche-2)}
.cifras .nums{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,4vw,64px);margin-top:clamp(48px,6vw,90px)}
.cifras b{display:flex;align-items:flex-start;font:400 clamp(90px,13vw,220px)/.85 var(--fk-serif);letter-spacing:-.04em;font-variant-numeric:tabular-nums;background:var(--fk-luz);-webkit-background-clip:text;background-clip:text;color:transparent}
.cifras b i{font-style:normal;font-size:.5em;margin:.1em .04em 0 0}
.cifras .nums>div>span{display:block;margin-top:18px;font-size:18px;color:var(--fk-gris-claro);padding-top:16px;border-top:1px solid rgba(239,236,231,.12)}
@media (max-width:760px){.cifras .nums{grid-template-columns:1fr}}

/* medios reales: vídeo y foto llenan su marco */
.reel .pl,.fot .im .pl{width:100%;height:100%;object-fit:cover;display:block}
.reel img.pl{position:absolute;inset:0;transform-origin:center}
.js .reel img.pl{animation:abre 2.4s var(--fk-out) .3s both,deriva 24s ease-in-out 2.7s infinite alternate}
.reel video.pl{position:absolute;inset:0;animation:none}
.js .reel video.pl{animation:abre 2.4s var(--fk-out) .3s both}
.fot .im .pl{position:absolute;inset:0;transform:scale(1.08) translateX(var(--px,0));transition:none}
.fot .im video.pl{transform:scale(1.02)}
.puerta .tx{width:100%;height:100%;object-fit:cover;opacity:.7}

/* carrusel de clientes */
.clientes{padding:clamp(70px,8vw,120px) 0;background:var(--fk-noche);overflow:hidden}
.clientes h2{font:600 15px/1.2 var(--fk-sans);color:var(--fk-oro);margin-bottom:clamp(30px,4vw,50px)}
.marquee{display:flex;width:max-content;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee ul{display:flex;align-items:center;list-style:none;margin:0;padding:0;animation:desfile 55s linear infinite}
.marquee:hover ul{animation-play-state:paused}
.marquee li{font:400 clamp(34px,4vw,60px)/1 var(--fk-serif);color:var(--fk-gris-claro);white-space:nowrap;padding:0 clamp(22px,2.6vw,40px);transition:color .3s}
.marquee li:hover{color:var(--fk-marfil)}
.marquee li::after{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--fk-oro);margin-left:clamp(44px,5.2vw,80px);vertical-align:middle}
@keyframes desfile{to{transform:translateX(-100%)}}
@media (prefers-reduced-motion:reduce){.marquee{width:auto;-webkit-mask-image:none;mask-image:none}.marquee ul{flex-wrap:wrap;animation:none;padding:0 var(--fk-gut)}.marquee ul+ul{display:none}.marquee li{padding:8px 24px 8px 0}}

/* galería */
.galeria{columns:3 300px;column-gap:clamp(12px,1.2vw,18px);margin-top:clamp(48px,6vw,80px)}
.galeria figure{break-inside:avoid;margin:0 0 clamp(12px,1.2vw,18px);border-radius:clamp(10px,1vw,14px);overflow:hidden;background:var(--fk-noche-3)}
.galeria a{display:block;cursor:zoom-in}
.galeria img{width:100%;height:auto;display:block;transition:transform .9s var(--fk-out),filter .4s}
.galeria a:hover img{transform:scale(1.04);filter:brightness(1.06)}

/* visor de fotos */
.lb{position:fixed;inset:0;z-index:120;background:rgba(8,10,13,.94);display:grid;place-items:center;padding:4vw;opacity:0;pointer-events:none;transition:opacity .3s var(--fk-out)}
.lb.on{opacity:1;pointer-events:auto}
.lb img{max-width:100%;max-height:88vh;border-radius:10px;transform:scale(.96);transition:transform .45s var(--fk-out)}
.lb.on img{transform:none}
.lb button{position:absolute;top:18px;right:20px;background:none;border:0;color:var(--fk-marfil);font:600 15px/1 var(--fk-sans);cursor:pointer;padding:12px}

/* caso */
.caso{background:var(--fk-noche-2)}
.caso .incl{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:980px){.caso .incl{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.caso .incl{grid-template-columns:1fr}}

/* proyecto destacado */
.destacado{background:var(--fk-noche-2)}
.mosaico{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:clamp(12px,1.2vw,18px);margin-top:clamp(48px,6vw,80px)}
.mosaico figure{margin:0;border-radius:clamp(10px,1vw,14px);overflow:hidden;background:var(--fk-noche-3)}
.mosaico .a{grid-row:1/3}
.mosaico a{display:block;height:100%;cursor:zoom-in}
.mosaico img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s var(--fk-out)}
.mosaico a:hover img{transform:scale(1.04)}
@media (max-width:820px){.mosaico{grid-template-columns:1fr;grid-template-rows:auto}.mosaico .a{grid-row:auto}}

/* llamada a la acción a mitad de página */
.cta-medio{padding:0 0 clamp(70px,8vw,120px);background:var(--fk-noche)}
.cta-medio .caja{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:28px 48px;padding:clamp(28px,3.4vw,52px);border-radius:clamp(14px,1.6vw,24px);background:linear-gradient(120deg,rgba(230,176,51,.16),rgba(212,131,17,.06) 60%,transparent),var(--fk-noche-3);box-shadow:inset 0 0 0 1px rgba(230,176,51,.22)}
.cta-medio h2{font-size:clamp(30px,3vw,46px);max-width:16em}
.cta-medio p{margin-top:12px;color:var(--fk-gris-claro);max-width:38em;font-size:17px}
.art .cta-art{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-top:48px}
.art .cta-art p{margin:0}

/* formulario: detalles */
.form .dos{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:620px){.form .dos{grid-template-columns:1fr}}
.form .opc{font-weight:400;color:var(--fk-gris)}
.form .check{display:flex;gap:12px;align-items:flex-start;font-weight:400;font-size:15px;color:var(--fk-gris-claro);line-height:1.45}
.form .check input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--fk-oro);flex:none}
.form .check a{color:var(--fk-marfil)}
.form .trampa{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form [aria-invalid="true"]{box-shadow:inset 0 0 0 2px #E2705A}
.form .acts{gap:12px}
.form .fk-btn[disabled]{opacity:.7;cursor:progress}
.form .aviso{display:none;padding:16px 18px;border-radius:14px;font-size:15.5px;line-height:1.45}
.form .aviso.ok{display:block;background:rgba(230,176,51,.14);color:var(--fk-marfil);box-shadow:inset 0 0 0 1px rgba(230,176,51,.35)}
.form .aviso.error{display:block;background:rgba(226,112,90,.12);color:#F3C2B8;box-shadow:inset 0 0 0 1px rgba(226,112,90,.4)}
