/* ============================================================
   NBJJ FRAMING INC · base.css — tokens + componentes comunes
   Mundo: acero frio + luz de Florida + vino #671B27 (CONCEPT P4)
   Componentes compartidos viven AQUI (ley 0704-j §9a)
   ============================================================ */

/* ---------- fuentes locales (2 exactas, variable) ---------- */
@font-face{font-family:'Big Shoulders';src:url('/assets/fonts/big-shoulders-var-latin.woff2') format('woff2');font-weight:600 800;font-display:swap;}
@font-face{font-family:'IBM Plex Sans';src:url('/assets/fonts/ibm-plex-sans-var-latin.woff2') format('woff2');font-weight:400 600;font-display:swap;}

:root{
  --paper:#F9F9F9;
  --ink:#161717;
  --accent:#671B27;
  --steel-1:#464C53;
  --steel-2:#74777B;
  --steel-3:#A4A7AA;
  --hairline:#C6C8CA;
  --surface-2:#F1F2F3;          /* escaparate: tinte acero, != paper (0705-p3) */
  --ink-band:#1B1C1D;           /* banda ink tintada, jamas #000 */
  --display:'Big Shoulders',Impact,sans-serif;
  --body:'IBM Plex Sans',Arial,sans-serif;
  --ease-house:cubic-bezier(0.16,1,0.3,1);
  --nav-h:72px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:auto;scroll-padding-top:calc(var(--nav-h) + 16px);}
html,body{overflow-x:clip;}                 /* jamas hidden (mata scrollY) */
html.menu-lock{overflow:hidden;}            /* scroll-lock del menu movil (conserva scrollY) */
body{
  font-family:var(--body);font-weight:400;color:var(--ink);background:var(--paper);
  line-height:1.55;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

/* grid hairline horneado del mundo blueprint (repeating-linear-gradient, costo 0) */
.grid-tex{
  background-image:
    repeating-linear-gradient(0deg,rgba(198,200,202,.14) 0 1px,transparent 1px 24px),
    repeating-linear-gradient(90deg,rgba(198,200,202,.14) 0 1px,transparent 1px 24px);
}

/* ---------- tipografia base ---------- */
h1,h2,h3{font-family:var(--display);font-weight:800;line-height:.94;text-transform:uppercase;letter-spacing:.01em;}
.eyebrow{
  font-family:var(--body);font-weight:600;font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--steel-2);
}
.eyebrow--ondark{color:var(--steel-3);}
.hl{display:block;overflow:hidden;}
.hl-in{display:inline-block;will-change:transform;}
.kw{color:var(--accent);}                        /* dos-tonos sobre claro (AA ok) */
.kw-pill{                                        /* acento sobre oscuro = bloque relleno (P4) */
  display:inline-block;background:var(--accent);color:var(--paper);
  padding:.04em .18em .02em;border-radius:.08em;
}

/* ---------- botones (hover via GSAP, cero transition transform) ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;font-family:var(--body);font-weight:600;
  font-size:15px;padding:14px 26px;border-radius:999px;white-space:nowrap;cursor:pointer;
  border:1px solid transparent;
}
.btn-primary{background:var(--accent);color:var(--paper);}
.btn-ghost{background:rgba(249,249,249,.12);color:var(--paper);border-color:rgba(249,249,249,.42);}
.btn-ghost--dark{background:rgba(249,249,249,.82);color:var(--ink);border-color:var(--steel-3);}
.btn-disc{
  display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;
  border-radius:50%;background:rgba(249,249,249,.2);font-size:12px;line-height:1;
}
.btn:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

/* ---------- pills / chips ---------- */
.pill{
  display:inline-flex;align-items:center;gap:8px;border-radius:999px;
  font-family:var(--body);font-weight:600;font-size:12.5px;letter-spacing:.04em;
  padding:9px 16px;
}
.pill--ink{background:rgba(22,23,23,.82);color:var(--paper);}
.pill--accent{background:var(--accent);color:var(--paper);}
.pill--line{background:rgba(249,249,249,.72);color:var(--ink);border:1px solid var(--hairline);}

/* ============================================================
   NAV "REGLA DE ACERO" (CONCEPT §3 — propio de NBJJ)
   barra delgada cinta-metrica: indices 01-04 + burbuja de nivel
   ============================================================ */
.nav{
  position:fixed;inset:0 0 auto 0;height:var(--nav-h);z-index:120;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 clamp(16px,3vw,44px);
}
.nav::after{ /* hairline inferior: aparece al entintar */
  content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--hairline);
  opacity:0;transition:opacity .25s;
}
body.nav-scrolled .nav{background:var(--paper);}
body.nav-scrolled .nav::after{opacity:1;}
.nav-logo{display:flex;align-items:center;}
.nav-logo img{height:52px;width:auto;}
/* centro REAL del viewport (ley p1, delta 0px) */
.nav-center{
  position:absolute;left:50%;top:0;transform:translateX(-50%);height:100%;
  display:flex;flex-direction:column;justify-content:center;
}
.nav-links{display:flex;gap:clamp(18px,2.6vw,40px);}
.nav-links a{
  display:flex;flex-direction:column;align-items:center;gap:1px;
  font-family:var(--body);font-weight:500;font-size:13px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--steel-1);padding:4px 2px;position:relative;
}
.nav-links a i{ /* micro-indice tipo marca de regla */
  font-style:normal;font-weight:600;font-size:9px;letter-spacing:.18em;color:var(--steel-3);
}
.nav-links a[aria-current="page"]{color:var(--ink);font-weight:600;}
.nav-links a:hover{color:var(--accent);}
/* riel + burbuja de nivel (la firma del nav) */
.nav-rail{position:relative;height:10px;margin-top:2px;}
.nav-rail::before{content:'';position:absolute;left:0;right:0;top:4px;height:1px;background:var(--hairline);}
.nav-bubble{
  position:absolute;top:0;left:0;width:9px;height:9px;border-radius:50%;
  border:1px solid var(--steel-3);background:rgba(249,249,249,.6);
  display:flex;align-items:center;justify-content:center;will-change:transform;
}
.nav-bubble::after{content:'';width:3px;height:3px;border-radius:50%;background:var(--accent);}
.nav-right{display:flex;align-items:center;gap:14px;}
.nav-tel{font-weight:600;font-size:13.5px;letter-spacing:.02em;color:var(--steel-1);}
.nav-tel:hover{color:var(--accent);}
.lang-pill{
  display:flex;border:1px solid var(--hairline);border-radius:999px;overflow:hidden;
  font-size:11.5px;font-weight:600;letter-spacing:.08em;background:rgba(249,249,249,.66);
}
.lang-pill a{padding:6px 11px;color:var(--steel-2);}
.lang-pill a[aria-current="true"]{background:var(--accent);color:var(--paper);}
.nav-cta{padding:11px 20px;font-size:13.5px;}
.nav-burger{
  display:none;position:relative;width:44px;height:44px;background:none;border:0;cursor:pointer;
}
.nav-burger i,.nav-burger::before,.nav-burger::after{
  content:'';position:absolute;left:10px;right:10px;height:2px;background:var(--ink);
  transition:transform .25s var(--ease-house),opacity .2s,top .25s var(--ease-house);
}
.nav-burger::before{top:15px;}
.nav-burger i{top:21px;font-size:0;}
.nav-burger::after{top:27px;}
body.menu-open .nav-burger::before{top:21px;transform:rotate(45deg);}
body.menu-open .nav-burger i{opacity:0;}
body.menu-open .nav-burger::after{top:21px;transform:rotate(-45deg);}
body.menu-open .nav{background:transparent;}
body.menu-open .nav::after{opacity:0;}

/* menu movil PRO (0704-l §3) */
.mobile-menu{
  position:fixed;inset:0;z-index:110;background:rgba(22,23,23,.97);
  display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;
  opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;
}
body.menu-open .mobile-menu{opacity:1;visibility:visible;}
.mobile-menu a{
  font-family:var(--display);font-weight:700;font-size:clamp(28px,7vw,40px);
  text-transform:uppercase;color:var(--paper);padding:8px 18px;
  opacity:0;transform:translateY(12px);
  transition:opacity .28s var(--ease-house),transform .28s var(--ease-house),color .2s;
}
body.menu-open .mobile-menu a{opacity:1;transform:none;}
body.menu-open .mobile-menu a:nth-child(1){transition-delay:.04s;}
body.menu-open .mobile-menu a:nth-child(2){transition-delay:.08s;}
body.menu-open .mobile-menu a:nth-child(3){transition-delay:.12s;}
body.menu-open .mobile-menu a:nth-child(4){transition-delay:.16s;}
body.menu-open .mobile-menu a:nth-child(5){transition-delay:.20s;}
.mobile-menu a[aria-current="page"],.mobile-menu a:hover{color:var(--accent);}
.mm-lang{display:flex;gap:10px;margin-top:18px;opacity:0;transition:opacity .3s .24s;}
body.menu-open .mm-lang{opacity:1;}
.mm-lang a{
  font-family:var(--body);font-weight:600;font-size:14px;letter-spacing:.1em;
  color:var(--steel-3);padding:8px 16px;border:1px solid var(--steel-1);border-radius:999px;
}
.mm-lang a[aria-current="true"]{background:var(--accent);border-color:var(--accent);color:var(--paper);}
.mm-tel{margin-top:14px;font-size:15px;color:var(--steel-3);opacity:0;transition:opacity .3s .28s;}
body.menu-open .mm-tel{opacity:1;}
@media (prefers-reduced-motion:reduce){
  .mobile-menu,.mobile-menu a,.mm-lang,.mm-tel{transition:none!important;}
}
@media (max-width:1080px){
  .nav-center,.nav-tel,.nav-cta{display:none;}
  .nav-burger{display:block;}
}
@media (max-width:1280px){ .nav-tel{display:none;} }

/* ---------- reveals IO (CSS dueño de .rv; GSAP jamas los toca) ---------- */
.rv{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease-house),transform .7s var(--ease-house);transition-delay:calc(var(--i,0)*90ms);}
.rv.is-in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){ .rv{opacity:1;transform:none;transition:none;} }

/* ---------- canvas de motas (capa de esencia; SIEMPRE absoluta — gotcha j9a) ---------- */
.motes{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3;}

/* ============================================================
   ⑤ CTA DE CIERRE (C2 banner fotografico scrim — comun a las 5 paginas)
   ============================================================ */
.cta{
  position:relative;min-height:66vh;display:flex;align-items:center;justify-content:center;
  overflow:hidden;color:var(--paper);text-align:center;
}
.cta-media{position:absolute;inset:-12% 0;z-index:0;}
.cta-media img{width:100%;height:100%;object-fit:cover;}
.cta::before{ /* scrim medido .80 (ley 05 §5 z: bg 0 / scrim 1 / contenido 2) */
  content:'';position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(22,23,23,.74),rgba(22,23,23,.84));
}
.cta-inner{position:relative;z-index:2;max-width:860px;padding:72px 24px;}
.cta-inner .eyebrow{color:var(--steel-3);margin-bottom:18px;}
.cta-h{font-size:clamp(2.2rem,4vw,3.6rem);color:var(--paper);}
.cta-sub{margin:16px auto 30px;max-width:56ch;color:rgba(249,249,249,.82);font-size:16px;}
.cta-btns{display:flex;gap:14px;justify-content:center;flex-wrap:nowrap;}
.cta-eco{position:absolute;right:3%;bottom:-4%;width:min(17vw,240px);opacity:.5;z-index:2;pointer-events:none;}
@media (max-width:560px){ .cta-btns{flex-direction:column;align-items:center;} }

/* ============================================================
   ⑥ FOOTER (C1 4-col + wordmark bleed — byte-identico en las 5)
   ============================================================ */
.footer{position:relative;background:var(--ink);color:var(--steel-3);overflow:hidden;}
.footer-grid{
  position:relative;z-index:2;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:clamp(24px,4vw,64px);max-width:1280px;margin:0 auto;
  padding:clamp(56px,7vw,88px) clamp(20px,4vw,48px) clamp(28px,3vw,40px);
}
.footer-brand img{height:88px;width:auto;margin-bottom:18px;}
.footer-brand p{font-size:14px;max-width:30ch;color:var(--steel-3);}
.footer h4{
  font-family:var(--body);font-weight:600;font-size:12px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--paper);margin-bottom:16px;
}
.footer nav a,.footer-zone li{display:block;font-size:14.5px;padding:5px 0;color:var(--steel-3);}
.footer nav a:hover{color:var(--paper);}
.footer-zone li{display:flex;align-items:center;gap:8px;}
.footer-zone li::before{content:'';width:5px;height:5px;background:var(--accent);flex:none;}
.footer-tel{display:inline-block;margin-top:14px;font-weight:600;font-size:16px;color:var(--paper);}
.footer-tel:hover{color:var(--steel-3);}
.footer-doodle{position:absolute;right:4%;top:10%;z-index:1;opacity:.07;width:min(24vw,320px);pointer-events:none;}
.footer-word{
  position:relative;height:clamp(90px,9vw,150px);overflow:hidden;pointer-events:none;user-select:none;
}
.footer-word span{
  position:absolute;left:50%;transform:translateX(-50%);top:22%;
  font-family:var(--display);font-weight:800;font-size:min(18vw,320px);line-height:.8;
  color:transparent;-webkit-text-stroke:1.5px rgba(164,167,170,.30);white-space:nowrap;
}
.footer-legal{
  position:relative;z-index:2;border-top:1px solid rgba(164,167,170,.18);
  display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;
  max-width:1280px;margin:0 auto;padding:18px clamp(20px,4vw,48px) 24px;
  font-size:12.5px;color:var(--steel-2);
}
@media (max-width:900px){
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:560px){
  .footer-grid{grid-template-columns:1fr;}
}

/* fluidez: solo transform/opacity; content-visibility por eje (gotcha q5b) */
.cv{content-visibility:auto;contain-intrinsic-width:auto 1px;contain-intrinsic-height:auto 720px;}
