/* ====================================================================
   JOE JIBAJA VEGA — Estilos cinemáticos (paleta VERDE LIMA)
   Extraído de la demo "editorial-blanco" (que por dentro ES la verde).
   Child theme de GeneratePress. Todas las fuentes son self-hosted.
   Rutas relativas desde /assets/css/ → ../fonts/ y ../img/
   ==================================================================== */

/* ====================================================================
   FUENTES SELF-HOSTED (nada de Google Fonts en runtime)
   - Anton: titulares display
   - Space Mono: datos técnicos del hero
   - Manrope (variable): cuerpo cinemático
   - Switzer: cuerpo del hero técnico
   ==================================================================== */
@font-face{font-family:'Anton';src:url('../fonts/anton-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}

@font-face{font-family:'Space Mono';src:url('../fonts/space-mono-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Space Mono';src:url('../fonts/space-mono-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;}

/* Manrope es fuente variable: un único woff2 cubre 300–800 */
@font-face{font-family:'Manrope';src:url('../fonts/manrope-var.woff2') format('woff2');font-weight:300 800;font-style:normal;font-display:swap;}

@font-face{font-family:'Switzer';src:url('../fonts/switzer-400.woff2') format('woff2');font-weight:400;font-display:swap;}
@font-face{font-family:'Switzer';src:url('../fonts/switzer-500.woff2') format('woff2');font-weight:500;font-display:swap;}
@font-face{font-family:'Switzer';src:url('../fonts/switzer-600.woff2') format('woff2');font-weight:600;font-display:swap;}
@font-face{font-family:'Switzer';src:url('../fonts/switzer-700.woff2') format('woff2');font-weight:700;font-display:swap;}

/* ====================================================================
   VARIABLES GLOBALES — paleta unificada en VERDE LIMA sobre fondo oscuro
   El hero técnico y el cuerpo cinemático comparten el mismo acento lima.
   ==================================================================== */
:root{
  /* Hero técnico */
  --bg:#07090A;            /* negro técnico (fondo global) */
  --bg-2:#0B0E0F;
  --ink:#EAF0EC;           /* texto principal */
  --ink-dim:#7E8B82;       /* texto secundario */
  --line:rgba(198,242,78,.16);   /* líneas de retícula (lima) */
  --line-soft:rgba(234,240,236,.08);
  --lime:#C6F24E;          /* ACENTO VERDE LIMA (unificado) */
  --lime-bright:#B4FF39;
  --mono:'Space Mono', ui-monospace, monospace;
  --sans:'Anton', system-ui, sans-serif;
  --body:'Switzer', system-ui, sans-serif;
  --gutter:clamp(16px,4vw,56px);

  /* Cuerpo cinemático — remapeado a la MISMA paleta lima */
  --carbon:#07090A;          /* mismo fondo oscuro que el hero */
  --carbon-2:#0a110c;
  --carbon-3:#101a13;
  --ambar:#C6F24E;           /* antes verde neón → ahora VERDE LIMA */
  --ambar-soft:#B4FF39;
  --blanco:#EAF0EC;
  --humo:#8fa597;            /* gris verdoso para cuerpo secundario */
  --linea:rgba(198,242,78,.18);
  --glow:rgba(198,242,78,.40);
  --display:'Anton', sans-serif;
  --body-cine:'Manrope', sans-serif;
}

/* Reset cinemático contenido al body de este tema. No tocamos el reset
   global de GeneratePress salvo lo imprescindible para el lienzo oscuro. */
.jjv *,.jjv *::before,.jjv *::after{box-sizing:border-box;margin:0;padding:0;}
.jjv html{-webkit-text-size-adjust:100%;}
body.jjv{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--body);
  font-weight:400;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
.jjv img,.jjv video{display:block;max-width:100%;}
.jjv a{color:inherit;text-decoration:none;}
.jjv ::selection{background:var(--lime);color:#07090A;}

/* Scroll suave no nativo (Lenis lo controla) */
html.lenis,html.lenis body{height:auto;}
.lenis.lenis-smooth{scroll-behavior:auto !important;}

/* Grano sutil global (del cuerpo cinemático) */
body.jjv::after{
  content:"";
  position:fixed; inset:0; z-index:9000; pointer-events:none;
  opacity:.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ====================================================================
   UTILIDADES TÉCNICAS (mono, ticks, marcas +) — del hero
   ==================================================================== */
.mono{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);}
.mono-lime{color:var(--lime);}
.tag{
  font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--lime);border:1px solid var(--line);padding:5px 10px;display:inline-flex;gap:8px;align-items:center;
  background:rgba(7,9,10,.6);
}
.tag::before{content:"";width:5px;height:5px;background:var(--lime);display:inline-block;}
.secnum{font-family:var(--mono);font-size:12px;letter-spacing:.2em;color:var(--lime);}

/* Marca "+" reutilizable */
.plus{position:absolute;width:14px;height:14px;pointer-events:none;opacity:.5;}
.plus::before,.plus::after{content:"";position:absolute;background:var(--lime);}
.plus::before{left:50%;top:0;width:1px;height:100%;transform:translateX(-.5px);}
.plus::after{top:50%;left:0;height:1px;width:100%;transform:translateY(-.5px);}

/* ====================================================================
   LOADER ROBUSTO (del hero técnico) — watchdog cierra a 3.5s
   ==================================================================== */
#loader{position:fixed;inset:0;z-index:9999;background:var(--bg);display:flex;
  align-items:center;justify-content:center;flex-direction:column;gap:22px;
  transition:opacity .7s ease,visibility .7s ease;}
#loader.hidden{opacity:0;visibility:hidden;pointer-events:none;}
#loader .ld-mark{font-family:var(--sans);font-size:clamp(40px,9vw,96px);line-height:.9;letter-spacing:.01em;color:var(--ink);}
#loader .ld-mark b{color:var(--lime);}
#loader .ld-bar{width:min(280px,60vw);height:2px;background:var(--line-soft);overflow:hidden;}
#loader .ld-bar i{display:block;height:100%;width:0;background:var(--lime);transition:width .3s ease;}
#loader .ld-meta{display:flex;justify-content:space-between;width:min(280px,60vw);}

/* ====================================================================
   NAVBAR técnico (overlay) — del hero. Se vuelve sólido al hacer scroll.
   ==================================================================== */
.nav{position:fixed;top:0;left:0;width:100%;z-index:200;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px var(--gutter);transition:background .5s ease,padding .5s ease,border-color .5s ease;
  border-bottom:1px solid transparent;}
.nav.over{mix-blend-mode:difference;}     /* sobre el hero: difuminado */
.nav.solid{mix-blend-mode:normal;background:rgba(7,9,10,.82);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  padding-top:12px;padding-bottom:12px;border-bottom:1px solid var(--line);}
.nav .brand{font-family:var(--sans);font-size:clamp(15px,1.5vw,19px);letter-spacing:.02em;color:#fff;}
.nav.solid .brand{color:var(--ink);}
.nav .brand small{font-family:var(--mono);font-size:9px;letter-spacing:.2em;display:block;color:#fff;opacity:.7;}
.nav.solid .brand small{color:var(--ink-dim);opacity:1;}
.nav .links{display:flex;gap:26px;list-style:none;margin:0;padding:0;}
.nav .links a{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#fff;transition:opacity .25s,color .25s;}
.nav.solid .links a{color:var(--ink-dim);}
.nav .links a:hover{opacity:.55;color:var(--lime);}
.nav .links li{margin:0;}
/* Hamburguesa móvil */
.burger{display:none;width:34px;height:20px;position:relative;background:none;border:none;cursor:pointer;z-index:1100;}
.burger span{position:absolute;left:0;width:100%;height:2px;background:#fff;transition:transform .45s ease,opacity .3s ease;}
.nav.solid .burger span{background:var(--ink);}
.burger span:nth-child(1){top:0;}
.burger span:nth-child(2){top:9px;}
.burger span:nth-child(3){top:18px;}
.burger.open span:nth-child(1){transform:translateY(9px) rotate(45deg);}
.burger.open span:nth-child(2){opacity:0;}
.burger.open span:nth-child(3){transform:translateY(-9px) rotate(-45deg);}
@media(max-width:720px){.nav .links{display:none;}.burger{display:block;}}

/* Menú móvil */
.mobile-menu{position:fixed;inset:0;z-index:1050;background:var(--bg);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;
  opacity:0;pointer-events:none;transition:opacity .5s ease;list-style:none;margin:0;padding:0;}
.mobile-menu.open{opacity:1;pointer-events:auto;}
.mobile-menu a{font-family:var(--sans);font-size:2.4rem;letter-spacing:.05em;color:var(--ink);text-transform:uppercase;}
.mobile-menu a:hover{color:var(--lime);}
.mobile-menu li{margin:0;}

/* ====================================================================
   HERO — canvas Three.js full screen + overlay (del hero técnico)
   ==================================================================== */
#hero{position:relative;height:100vh;width:100%;overflow:hidden;background:var(--bg);}
#three-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:1;}
/* Fallback SVG estático si Three no carga */
#hero-fallback{position:absolute;inset:0;z-index:1;display:none;align-items:center;justify-content:center;background:var(--bg);}
#hero-fallback.on{display:flex;}

.hero-overlay{position:absolute;inset:0;z-index:5;pointer-events:none;}
.hero-overlay .corner{position:absolute;font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--ink-dim);text-transform:uppercase;line-height:1.7;}
.hero-overlay .tl{top:84px;left:var(--gutter);}
.hero-overlay .tr{top:84px;right:var(--gutter);text-align:right;}
.hero-overlay .bl{bottom:34px;left:var(--gutter);}

/* Palabra grande que cambia con el progreso */
.hero-word{position:absolute;left:var(--gutter);bottom:clamp(70px,16vh,150px);z-index:6;
  font-family:var(--sans);font-size:clamp(56px,15vw,190px);line-height:.86;letter-spacing:.01em;
  color:var(--ink);pointer-events:none;}
.hero-word .swap{display:inline-block;position:relative;}
.hero-word .sub{display:block;font-family:var(--mono);font-size:clamp(10px,1.2vw,13px);
  letter-spacing:.22em;color:var(--ink-dim);margin-top:14px;text-transform:uppercase;font-weight:400;}

/* Barra de progreso del hero */
.hero-progress{position:absolute;right:var(--gutter);bottom:34px;z-index:6;width:min(240px,40vw);}
.hero-progress .track{height:2px;background:var(--line-soft);position:relative;}
.hero-progress .track i{position:absolute;left:0;top:0;height:100%;width:0;background:var(--lime);}
.hero-progress .lbl{display:flex;justify-content:space-between;margin-top:8px;}
.hero-progress .pct{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--lime);}

/* Scroll to explore */
.scroll-cue{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);z-index:6;
  display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;}
.scroll-cue span{font-family:var(--mono);font-size:10px;letter-spacing:.28em;color:var(--ink-dim);text-transform:uppercase;}
.scroll-cue .ln{width:1px;height:34px;background:linear-gradient(var(--lime),transparent);animation:cue 1.8s ease-in-out infinite;}
@keyframes cue{0%,100%{opacity:.3;transform:scaleY(.6);}50%{opacity:1;transform:scaleY(1);}}

/* ====================================================================
   CUERPO CINEMÁTICO — secciones, proyectos a sangre, video, renders…
   (Recoloreado: var(--ambar) ahora ES verde lima)
   ==================================================================== */
section{position:relative;}
.wrap{padding:clamp(5rem,12vh,9rem) clamp(1.4rem,5vw,4rem);}
.eyebrow{
  display:flex;align-items:center;gap:.9rem;margin-bottom:2rem;
  font-family:var(--body-cine);font-size:.72rem;letter-spacing:.38em;text-transform:uppercase;color:var(--ambar);font-weight:600;}
.eyebrow::before{content:'';width:34px;height:1px;background:var(--ambar);transform:scaleX(0);transform-origin:left;transition:transform .9s cubic-bezier(.22,1,.36,1);}
.eyebrow.drawn::before{transform:scaleX(1);}

/* ===== MANIFIESTO / ESTUDIO ===== */
.manifesto{background:var(--carbon-2);border-top:1px solid var(--linea);}
.manifesto-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:clamp(2rem,5vw,5rem);align-items:end;}
.manifesto-quote{
  font-family:var(--display);font-weight:400;text-transform:uppercase;
  font-size:clamp(1.9rem,4.6vw,4.2rem);line-height:1.02;letter-spacing:.01em;color:var(--blanco);}
.manifesto-quote em{color:var(--ambar);font-style:normal;text-shadow:0 0 40px var(--glow);}
.manifesto-text{margin-top:1.8rem;max-width:46ch;color:var(--humo);font-family:var(--body-cine);font-size:1.02rem;line-height:1.7;}

/* Cifras del estudio */
.stats{display:flex;flex-direction:column;gap:2.2rem;}
.stat{border-left:1px solid var(--linea);padding-left:1.3rem;}
.stat .num{font-family:var(--display);font-size:clamp(2.6rem,5vw,4rem);line-height:1;color:var(--blanco);text-shadow:0 0 34px var(--glow);display:flex;align-items:baseline;gap:.2rem;}
.stat .num .plus{color:var(--ambar);position:static;width:auto;height:auto;opacity:1;}
.stat .num .plus::before,.stat .num .plus::after{content:none;}
.stat .label{margin-top:.6rem;font-family:var(--body-cine);font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--humo);}

/* ===== PROYECTOS — fotos a sangre ===== */
.projects-intro{background:var(--carbon);}
.projects-intro h2{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(2.4rem,8vw,7rem);line-height:.92;color:var(--blanco);text-shadow:0 0 50px rgba(198,242,78,.22);}
.projects-intro p{margin-top:1.4rem;max-width:52ch;color:var(--humo);font-family:var(--body-cine);font-size:1.02rem;}

.project{position:relative;width:100vw;height:92svh;min-height:560px;overflow:hidden;display:flex;align-items:flex-end;}
.project-img{position:absolute;inset:-7% 0;height:114%;overflow:hidden;will-change:transform;}
.project-img img{width:100%;height:100%;object-fit:cover;transform:scale(1.18);filter:saturate(1.05) contrast(1.04);}
.project-shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(7,9,10,.92) 0%,rgba(7,9,10,.25) 55%,rgba(7,9,10,.5) 100%);}
.project-content{position:relative;z-index:3;width:100%;padding:clamp(2rem,6vw,4.5rem) clamp(1.4rem,5vw,4rem);display:flex;flex-direction:column;}
.project-index{font-family:var(--body-cine);font-size:.74rem;letter-spacing:.34em;text-transform:uppercase;color:var(--ambar);font-weight:700;margin-bottom:1.2rem;display:flex;align-items:center;gap:1rem;}
.project-index::after{content:'';flex:0 0 auto;width:54px;height:1px;background:var(--linea);}
.project-name{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(2.6rem,9.5vw,9rem);line-height:.9;letter-spacing:.005em;color:var(--blanco);text-shadow:0 0 64px var(--glow),0 4px 50px rgba(0,0,0,.5);}
.project-meta{display:flex;flex-wrap:wrap;gap:.6rem 2.4rem;margin-top:1.6rem;font-family:var(--body-cine);font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--humo);}
.project-meta span{display:flex;align-items:center;gap:.55rem;}
.project-meta .pip{width:5px;height:5px;background:var(--ambar);border-radius:50%;}
.project .viewfinder{inset:clamp(14px,2vw,26px);z-index:2;}

/* Visor de cámara (del cinemático) */
.viewfinder{position:absolute;inset:clamp(14px,2.4vw,30px);z-index:5;border:1px dashed rgba(234,240,236,.18);pointer-events:none;}
.vf-corner{position:absolute;width:18px;height:18px;border:2px solid var(--ambar);}
.vf-corner.tr{top:-2px;right:-2px;border-left:none;border-bottom:none;}
.vf-corner.bl{bottom:-2px;left:-2px;border-right:none;border-top:none;}

/* ===== VIDEO — OBRA EN MOVIMIENTO ===== */
.videoblock{background:var(--carbon);border-top:1px solid var(--linea);}
.videoblock-head{margin-bottom:2.6rem;}
.videoblock-head h2{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(2.2rem,6vw,5.4rem);line-height:.94;color:var(--blanco);text-shadow:0 0 46px rgba(198,242,78,.22);}
.videoblock-head p{margin-top:1.3rem;max-width:50ch;color:var(--humo);font-family:var(--body-cine);font-size:1.02rem;line-height:1.7;}
.video-frame{position:relative;width:100%;border-radius:18px;overflow:hidden;border:1px solid var(--linea);box-shadow:0 40px 120px -30px rgba(0,0,0,.85),0 0 90px -20px var(--glow);background:var(--carbon-2);will-change:transform;}
.video-frame video{display:block;width:100%;height:auto;max-height:80svh;object-fit:cover;filter:saturate(1.06) contrast(1.03);}
.video-frame .video-shine{position:absolute;inset:0;pointer-events:none;border-radius:18px;box-shadow:inset 0 0 120px 10px rgba(7,9,10,.55);}
.video-tag{position:absolute;top:1.1rem;left:1.1rem;z-index:4;display:flex;align-items:center;gap:.6rem;padding:.55rem 1rem;border-radius:999px;background:rgba(7,9,10,.62);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--linea);font-family:var(--body-cine);font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--blanco);font-weight:600;}
.video-tag .dot{width:8px;height:8px;border-radius:50%;background:var(--ambar);box-shadow:0 0 12px var(--glow);animation:blink 1.4s infinite;}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.25}}

/* ===== RENDERS (tarjetas medianas) ===== */
.renders{background:var(--carbon-2);border-top:1px solid var(--linea);}
.renders-head{margin-bottom:2.8rem;}
.renders-head h2{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(2rem,5.6vw,4.6rem);line-height:.94;color:var(--blanco);text-shadow:0 0 40px rgba(198,242,78,.2);}
.renders-head p{margin-top:1.2rem;max-width:48ch;color:var(--humo);font-family:var(--body-cine);font-size:.98rem;line-height:1.7;}
.renders-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2.4vw,1.8rem);}
.render-card{position:relative;border-radius:14px;overflow:hidden;border:1px solid var(--linea);background:var(--carbon-3);box-shadow:0 24px 70px -28px rgba(0,0,0,.8);will-change:transform;}
.render-card .render-media{position:relative;aspect-ratio:4/3;overflow:hidden;}
.render-card .render-media img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.22,1,.36,1);filter:saturate(1.04) contrast(1.03);}
.render-card:hover .render-media img{transform:scale(1.06);}
.render-card .render-shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(7,9,10,.85) 0%,rgba(7,9,10,.1) 55%,transparent 100%);}
.render-card .render-cap{position:absolute;left:1.1rem;right:1.1rem;bottom:1rem;z-index:2;}
.render-card .render-cap .rk{font-family:var(--body-cine);font-size:.64rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ambar);font-weight:700;margin-bottom:.4rem;}
.render-card .render-cap .rt{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(1.1rem,2.2vw,1.6rem);line-height:1;color:var(--blanco);}

/* ===== SERVICIOS ===== */
.services{background:var(--carbon-2);border-top:1px solid var(--linea);}
.services-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:1.5rem;margin-bottom:3rem;}
.services-head h2{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(2.2rem,6vw,5rem);line-height:.94;color:var(--blanco);text-shadow:0 0 40px rgba(198,242,78,.22);}
.services-head p{max-width:34ch;color:var(--humo);font-family:var(--body-cine);font-size:.96rem;}
.service-row{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:clamp(1.4rem,3.4vw,2.4rem) 0;border-top:1px solid var(--linea);cursor:default;position:relative;overflow:hidden;}
.service-row:last-child{border-bottom:1px solid var(--linea);}
.service-row .num{font-family:var(--body-cine);font-size:.72rem;letter-spacing:.3em;color:var(--ambar);font-weight:700;flex:0 0 auto;width:3rem;}
.service-row .title{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(1.5rem,4.4vw,3.2rem);line-height:1;color:var(--blanco);transition:transform .5s cubic-bezier(.22,1,.36,1),color .5s ease;flex:1;}
.service-row .arrow{font-size:1.4rem;color:var(--humo);flex:0 0 auto;transition:transform .5s cubic-bezier(.22,1,.36,1),color .5s ease;}
.service-row:hover .title{color:var(--ambar);transform:translateX(.6rem);text-shadow:0 0 40px var(--glow);}
.service-row:hover .arrow{color:var(--ambar);transform:translateX(.6rem) rotate(-45deg);}

/* Descripción ampliada de servicio (usada en page-servicios) */
.service-row .desc{font-family:var(--body-cine);font-size:.9rem;line-height:1.6;color:var(--humo);max-width:42ch;flex:1.4;}
@media(max-width:720px){.service-row{flex-wrap:wrap;}.service-row .desc{flex:1 1 100%;order:3;margin-top:.6rem;}}

/* ===== MARQUEE ===== */
.marquee{overflow:hidden;white-space:nowrap;padding:1.8rem 0;border-top:1px solid var(--linea);border-bottom:1px solid var(--linea);background:var(--carbon);}
.marquee-track{display:inline-flex;gap:3rem;will-change:transform;}
.marquee-track span{font-family:var(--display);font-size:clamp(1.6rem,4vw,3rem);text-transform:uppercase;letter-spacing:.04em;color:transparent;-webkit-text-stroke:1px rgba(198,242,78,.55);}
.marquee-track span.fill{color:var(--ambar);-webkit-text-stroke:0;text-shadow:0 0 30px var(--glow);}

/* ===== CONTACTO ===== */
.contact{position:relative;width:100vw;min-height:100svh;overflow:hidden;display:flex;align-items:center;}
.contact-bg{position:absolute;inset:0;}
.contact-bg img{width:100%;height:100%;object-fit:cover;filter:saturate(1.05) contrast(1.03);object-position:center 30%;}
.contact-shade{position:absolute;inset:0;background:radial-gradient(100% 100% at 30% 50%,rgba(7,9,10,.55),rgba(7,9,10,.92)),linear-gradient(to top,rgba(7,9,10,.85),rgba(7,9,10,.55));}
.contact-content{position:relative;z-index:3;width:100%;padding:clamp(5rem,12vh,8rem) clamp(1.4rem,5vw,4rem);}
.contact h2{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(2.8rem,11vw,10rem);line-height:.88;color:var(--blanco);text-shadow:0 0 70px var(--glow),0 4px 50px rgba(0,0,0,.5);}
.contact h2 em{color:var(--ambar);font-style:normal;}
.contact-sub{margin-top:2rem;max-width:48ch;color:var(--humo);font-family:var(--body-cine);font-size:1.05rem;line-height:1.7;}
.contact-info{display:flex;flex-wrap:wrap;gap:2.5rem 4rem;margin-top:3rem;}
.info-item .k{font-family:var(--body-cine);font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ambar);margin-bottom:.5rem;}
.info-item .v{font-family:var(--body-cine);font-size:1.05rem;color:var(--blanco);letter-spacing:.02em;}
.contact-btns{display:flex;flex-wrap:wrap;gap:1.2rem;margin-top:3.2rem;}
.btn{display:inline-flex;align-items:center;gap:.7rem;padding:1.1rem 2.2rem;border-radius:2px;font-family:var(--body-cine);font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;transition:background .4s ease,color .4s ease,border-color .4s ease;will-change:transform;}
.btn-primary{background:var(--ambar);color:var(--carbon);box-shadow:0 0 40px rgba(198,242,78,.35);}
.btn-primary:hover{background:var(--ambar-soft);}
.btn-ghost{border:1px solid var(--linea);color:var(--blanco);}
.btn-ghost:hover{border-color:var(--ambar);color:var(--ambar);}
.contact .viewfinder{z-index:2;}

/* ===== FOOTER ===== */
.footer{background:var(--carbon);border-top:1px solid var(--linea);padding:2.6rem clamp(1.4rem,5vw,4rem);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;}
.footer .fbrand{font-family:var(--display);font-size:1rem;letter-spacing:.12em;text-transform:uppercase;}
.footer .fbrand b{color:var(--ambar);font-weight:400;}
.footer .fmeta{font-family:var(--body-cine);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--humo);}
.footer .credit{font-family:var(--body-cine);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--humo);}
.footer .credit b{color:var(--ambar);font-weight:600;}

/* ====================================================================
   PÁGINAS INTERIORES — encabezado superior común (sin hero 3D)
   Para que las páginas servicios/quiénes-somos/obras/contacto tengan
   aire bajo el nav fijo y arranquen con la misma estética.
   ==================================================================== */
.page-hero{padding:clamp(8rem,20vh,12rem) clamp(1.4rem,5vw,4rem) clamp(3rem,8vh,5rem);background:var(--carbon);border-bottom:1px solid var(--linea);}
.page-hero h1{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(2.8rem,9vw,7rem);line-height:.9;color:var(--blanco);text-shadow:0 0 50px rgba(198,242,78,.22);}
.page-hero p{margin-top:1.4rem;max-width:54ch;color:var(--humo);font-family:var(--body-cine);font-size:1.05rem;line-height:1.7;}

/* Bloque de texto genérico (page.php / quiénes-somos) */
.prose{max-width:70ch;color:var(--humo);font-family:var(--body-cine);font-size:1.05rem;line-height:1.8;}
.prose h2{font-family:var(--display);text-transform:uppercase;color:var(--blanco);font-size:clamp(1.6rem,4vw,2.6rem);line-height:1;margin:2.4rem 0 1rem;font-weight:400;}
.prose h3{font-family:var(--display);text-transform:uppercase;color:var(--blanco);font-size:clamp(1.2rem,3vw,1.8rem);margin:1.8rem 0 .8rem;font-weight:400;}
.prose p{margin-bottom:1.2rem;}
.prose a{color:var(--ambar);text-decoration:underline;text-underline-offset:3px;}
.prose ul{margin:1rem 0 1.4rem 1.2rem;}
.prose li{margin-bottom:.5rem;}

/* Grid de obras (galería de page-obras) — reusa render-card */
.obras-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2.4vw,1.8rem);}
@media(max-width:900px){.obras-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.obras-grid{grid-template-columns:1fr;}}

/* ====================================================================
   FORMULARIO DE CONTACTO (placeholder — estilo del tema)
   El form real (Fluent Forms) se inyectará vía shortcode; este es la
   maqueta visual mientras tanto.
   ==================================================================== */
.contact-form{max-width:640px;margin-top:2.4rem;display:flex;flex-direction:column;gap:1.2rem;}
.contact-form label{font-family:var(--body-cine);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ambar);margin-bottom:.4rem;display:block;}
.contact-form input,.contact-form textarea{
  width:100%;background:rgba(255,255,255,.03);border:1px solid var(--linea);color:var(--blanco);
  font-family:var(--body-cine);font-size:1rem;padding:.95rem 1.1rem;border-radius:4px;transition:border-color .3s ease;}
.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--ambar);}
.contact-form textarea{min-height:140px;resize:vertical;}
.contact-form .consent{display:flex;align-items:flex-start;gap:.7rem;font-family:var(--body-cine);font-size:.82rem;color:var(--humo);line-height:1.5;}
.contact-form .consent input{width:auto;margin-top:.2rem;}

/* ====================================================================
   REVEAL HELPERS + split text (del cinemático)
   ==================================================================== */
.reveal{will-change:transform,opacity;}
.split-line{display:block;overflow:hidden;}
.split-word{display:inline-block;overflow:hidden;vertical-align:top;}
.split-word > span{display:inline-block;will-change:transform;}
.split-char{display:inline-block;will-change:transform,opacity;}

/* Cursor personalizado (visor) */
.cursor{position:fixed;top:0;left:0;z-index:9500;pointer-events:none;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;border:1px solid var(--ambar);mix-blend-mode:difference;transition:width .35s cubic-bezier(.22,1,.36,1),height .35s cubic-bezier(.22,1,.36,1),background .35s ease,opacity .4s ease;opacity:0;}
.cursor.is-active{opacity:1;}
.cursor.is-grow{width:62px;height:62px;margin:-31px 0 0 -31px;background:rgba(198,242,78,.12);}
@media (hover:none),(max-width:900px){.cursor{display:none;}}

/* ====================================================================
   RESPONSIVE
   ==================================================================== */
@media (max-width:900px){
  .manifesto-grid{grid-template-columns:1fr;}
  .stats{flex-direction:row;flex-wrap:wrap;gap:1.6rem 2.4rem;margin-top:2.5rem;}
  .stat{flex:1 1 30%;}
  .service-row .num{width:2.2rem;}
  .renders-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:560px){
  .project-name{font-size:clamp(2.4rem,13vw,4.5rem);}
  .stat{flex:1 1 100%;}
  .renders-grid{grid-template-columns:1fr;}
}

@media(prefers-reduced-motion:reduce){
  .scroll-cue .ln{animation:none;}
  .video-tag .dot{animation:none;}
}
