/* N&N Consulting — hoja de estilos del sitio
   Identidad: marino #0E2B44 · acero #4E7C96 · oro viejo #B08D57 · grafito #2B3138 · marfil #F6F4EF
   Tipografías: Cormorant Garamond (títulos) y Libre Franklin (textos), servidas desde /assets/fuentes */

@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500;font-display:swap;src:url(../fuentes/cormorant-garamond-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:600;font-display:swap;src:url(../fuentes/cormorant-garamond-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Libre Franklin";font-style:normal;font-weight:400;font-display:swap;src:url(../fuentes/libre-franklin-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Libre Franklin";font-style:normal;font-weight:500;font-display:swap;src:url(../fuentes/libre-franklin-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Libre Franklin";font-style:normal;font-weight:600;font-display:swap;src:url(../fuentes/libre-franklin-latin-600-normal.woff2) format("woff2")}

:root{
  color-scheme:light;
  --marino:#0E2B44; --marino-2:#153A5A; --marino-3:#0A1F30;
  --acero:#4E7C96; --oro:#B08D57; --oro-claro:#C6A165;
  --grafito:#2B3138; --marfil:#F6F4EF; --blanco:#FFFFFF;
  --tinta:#16212B; --gris:#5D6A74; --linea:#E0DCD2;
  --serif:"Cormorant Garamond",Garamond,Georgia,serif;
  --sans:"Libre Franklin",system-ui,-apple-system,"Segoe UI",sans-serif;
  --curva-entra:cubic-bezier(.2,.8,.2,1); --curva-sale:cubic-bezier(.4,0,1,1);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:72px}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--marfil);color:var(--tinta);font:400 15px/1.7 var(--sans)}
img{max-width:100%;display:block}
a{color:inherit}
[hidden]{display:none!important}
.saltar{position:absolute;left:-9999px;top:8px;background:var(--marino);color:#fff;padding:10px 14px;z-index:50}
.saltar:focus{left:8px}

/* Retícula y tipografía */
.band{padding-inline:16px}
.inner{max-width:1040px;margin:0 auto;padding-block:clamp(48px,7vw,84px)}
h1,h2,h3{font-family:var(--serif);font-weight:600;margin:0;line-height:1.15;text-wrap:balance}
h1,h2,h3,.cifra b,.caja-oro b,.marcador b,.serv .num,.valor .n,.senal b{font-variant-numeric:lining-nums}
h1{font-size:clamp(32px,6vw,58px);font-weight:500}
h2{font-size:clamp(26px,4vw,38px);font-weight:500}
h3{font-size:21px}
p{margin:0;max-width:64ch}
.kicker{font:600 10px/1.4 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--oro)}
.gris{color:var(--gris)}
.pila{display:grid;gap:12px}
.pila-lg{display:grid;gap:26px}

/* Botones */
.btn{display:inline-block;font:600 12px/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase;padding:13px 20px;text-decoration:none;border:1px solid var(--marino);background:var(--marino);color:#F6F4EF;cursor:pointer;text-align:center}
.btn:hover{background:var(--marino-2)}
.btn.oro{background:var(--oro);border-color:var(--oro);color:#1A1205}
.btn.oro:hover{background:var(--oro-claro)}
.btn.ghost{background:transparent;color:var(--tinta);border-color:var(--oro)}
.btn.ghost.claro{color:#F1EEE8}
.btn.ghost:hover{background:rgba(176,141,87,.12)}
.btn.sm{padding:9px 14px;font-size:11px}
.btn:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--oro);outline-offset:2px}
.acts{display:flex;flex-wrap:wrap;gap:12px}

/* Barra superior */
.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--marfil);border-bottom:1px solid var(--linea)}
.topbar .row{max-width:1040px;margin:0 auto;padding:12px 0;display:flex;align-items:center;gap:16px;justify-content:space-between}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex:none;color:var(--tinta)}
.brand .n{font-family:var(--serif);font-weight:500;font-size:27px;letter-spacing:.03em;line-height:1}
.brand .bar{width:1px;height:28px;background:var(--oro)}
.brand .c{font:600 9px var(--sans);letter-spacing:.3em;text-transform:uppercase}
.brand .c small{display:block;font-size:7.5px;letter-spacing:.18em;color:var(--oro);margin-top:4px}
nav.main{display:flex;gap:clamp(14px,2vw,24px);white-space:nowrap}
nav.main a{font:500 13px var(--sans);text-decoration:none;padding:4px 0;border-bottom:1px solid transparent}
nav.main a:hover,nav.main a[aria-current]{border-color:var(--oro)}
.top-acts{display:flex;align-items:center;gap:10px}
.idioma{font:600 12px var(--sans);letter-spacing:.06em;color:var(--gris);text-decoration:none;padding:6px 0;margin-right:6px;border-bottom:1px solid transparent}
.idioma:hover{color:var(--tinta);border-color:var(--oro)}
.top-acts .corto,.nav-pie{display:none}
.menu-btn{display:none;position:relative;flex:none;width:44px;height:44px;margin-right:-11px;padding:0;border:0;background:none;cursor:pointer;color:var(--tinta);-webkit-tap-highlight-color:transparent}
.menu-btn span{position:absolute;left:11px;top:50%;width:22px;height:1.5px;margin-top:-.75px;background:currentColor;border-radius:1px;transition:transform .24s var(--curva-entra)}
.menu-btn span:first-child{transform:translateY(-4px) rotate(0)}
.menu-btn span:last-child{transform:translateY(4px) rotate(0)}
.menu-btn[aria-expanded="true"] span:first-child{transform:translateY(0) rotate(45deg)}
.menu-btn[aria-expanded="true"] span:last-child{transform:translateY(0) rotate(-45deg)}

/* Menú en celular: hoja a pantalla completa bajo la barra */
@media (max-width:900px){
  .topbar .row{padding:8px 0}
  .menu-btn{display:block}
  html.menu-abierto{overflow:hidden}
  .top-acts .btn,.top-acts .idioma{transition:opacity .15s var(--curva-sale),visibility 0s linear .15s}
  .menu-abierto .top-acts .btn,.menu-abierto .top-acts .idioma{opacity:0;visibility:hidden}
  nav.main{position:fixed;left:0;right:0;top:var(--alto-barra,61px);bottom:0;flex-direction:column;gap:0;white-space:normal;padding:8px 16px calc(24px + env(safe-area-inset-bottom,0px));background:var(--marfil);overflow-y:auto;overscroll-behavior:contain;visibility:hidden;opacity:0;transition:opacity .15s var(--curva-sale),visibility 0s linear .15s}
  nav.main.abierto{visibility:visible;opacity:1;transition:opacity .2s var(--curva-entra),visibility 0s}
  nav.main > a{display:flex;align-items:center;min-height:56px;padding:8px 0;border-bottom:1px solid var(--linea);font:500 26px/1.2 var(--serif);font-variant-numeric:lining-nums;color:var(--tinta)}
  nav.main > a:last-of-type{border-bottom:0}
  nav.main > a:active{color:var(--acero)}
  nav.main > a[aria-current]{border-color:var(--linea);color:var(--marino)}
  nav.main > a[aria-current]::before{content:"";flex:none;width:16px;height:1px;margin-right:12px;background:var(--oro)}
  nav.main .nav-pie{display:grid;gap:4px;margin-top:auto;padding-top:32px}
  nav.main .nav-pie a{border:0}
  nav.main .nav-pie .btn{display:block;padding:17px 20px;font-size:12px;border:1px solid var(--marino)}
  nav.main .nav-pie .nav-tel{padding:12px 0;font:500 14px var(--sans);color:var(--gris);text-align:center}
  /* Entrada escalonada: opacidad y 6px, máximo seis pasos */
  nav.main > a,nav.main .nav-pie{opacity:0;transform:translateY(-6px);transition:opacity .15s var(--curva-sale),transform .15s var(--curva-sale)}
  nav.main.abierto > a,nav.main.abierto .nav-pie{opacity:1;transform:none;transition:opacity .24s var(--curva-entra) var(--retraso,0s),transform .24s var(--curva-entra) var(--retraso,0s)}
  nav.main.abierto > a:nth-child(2){--retraso:35ms}
  nav.main.abierto > a:nth-child(3){--retraso:70ms}
  nav.main.abierto > a:nth-child(4){--retraso:105ms}
  nav.main.abierto > a:nth-child(5){--retraso:140ms}
  nav.main.abierto > a:nth-child(n+6),nav.main.abierto .nav-pie{--retraso:175ms}
}
@media (max-width:900px) and (prefers-reduced-motion:reduce){
  .menu-btn span{transition:none}
  nav.main.abierto,nav.main > a,nav.main .nav-pie,nav.main.abierto > a,nav.main.abierto .nav-pie{transform:none;transition-duration:.12s;transition-delay:0s}
}
@media (max-width:520px){
  .brand .c small{display:none}
  .brand .n{font-size:24px}
  .top-acts .btn.sm{padding:9px 10px;font-size:10px;letter-spacing:.04em}
  .top-acts .largo{display:none}
  .top-acts .corto{display:inline}
}
@media (max-width:359px){.top-acts .btn.sm{display:none}}

/* Portada */
.hero{background:var(--marino);color:#F1EEE8;position:relative;overflow:hidden}
.hero .reticula{position:absolute;inset:0;opacity:.10;pointer-events:none;background-image:linear-gradient(115deg,transparent 49.6%,var(--oro-claro) 49.6%,var(--oro-claro) 50.1%,transparent 50.1%),linear-gradient(65deg,transparent 49.6%,var(--oro-claro) 49.6%,var(--oro-claro) 50.1%,transparent 50.1%);background-size:86px 148px}
.hero .inner{position:relative;display:grid;gap:26px}
.hero h1{max-width:16ch}
.hero .lead{font-size:clamp(16px,2vw,19px);color:#C6D2DC;max-width:58ch}
.hero .pie{font:600 10px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#93A9BA;border-top:1px solid rgba(198,161,101,.35);padding-top:16px}

/* Cifras */
.cifras{background:var(--blanco);border-bottom:1px solid var(--linea)}
.cifras .inner{padding-block:28px;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:20px}
.cifra b{display:block;font-family:var(--serif);font-weight:600;font-size:32px;line-height:1.05;color:var(--marino)}
.cifra span{font:600 10px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gris)}

/* Rejillas */
.dos{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(290px,100%),1fr));gap:clamp(24px,4vw,48px);align-items:start}
.tres{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr));gap:18px}
.cuatro{display:grid;grid-template-columns:1fr;gap:20px}
@media (min-width:760px){.cuatro{grid-template-columns:1fr 1fr}}

/* Servicios */
.serv{background:var(--blanco);border:1px solid var(--linea);border-top:2px solid var(--oro);padding:26px 24px;display:grid;gap:12px;align-content:start}
.serv .num{font-family:var(--serif);font-size:28px;color:var(--oro);line-height:1}
.serv ul{margin:0;padding-left:18px;display:grid;gap:6px;font-size:14px;color:var(--gris)}
.serv.complemento{border-top-color:var(--linea);border-left:2px solid var(--oro)}
.enlace-mas{font:600 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--oro);text-decoration:none}
.enlace-mas:hover{text-decoration:underline}

.preg{display:grid;gap:14px;border-left:2px solid var(--oro);padding-left:22px}
.preg p{font-family:var(--serif);font-weight:500;font-size:clamp(19px,2.4vw,23px);line-height:1.35}

/* Pasos */
.pasos{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(215px,100%),1fr));gap:18px}
.paso{display:grid;gap:8px;align-content:start;padding-top:18px;border-top:1px solid var(--linea)}
.paso .n{font:600 10px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--oro)}

/* Bandas oscuras */
.oscuro{background:var(--marino-2);color:#EDF1F4}
.oscuro .gris{color:#B3C4D0}
.oscuro h2,.oscuro h3{color:#fff}
.caja-oro{border:1px solid rgba(198,161,101,.45);padding:20px;display:grid;gap:6px}
.caja-oro b{font-family:var(--serif);font-weight:600;font-size:32px;line-height:1;color:#fff}

/* Autodiagnóstico */
.senales{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(290px,100%),1fr));gap:18px;align-items:start}
.grupo{display:grid;gap:10px;align-content:start}
.grupo-t{font-family:var(--serif);font-size:19px;font-weight:600;color:#fff;padding-bottom:10px;border-bottom:1px solid rgba(198,161,101,.45)}
.senal{display:flex;gap:12px;align-items:flex-start;background:rgba(255,255,255,.05);border:1px solid rgba(198,161,101,.28);padding:14px 16px;cursor:pointer;transition:background .15s,border-color .15s}
.senal:hover{background:rgba(255,255,255,.09)}
.senal.marcada{background:rgba(198,161,101,.16);border-color:var(--oro-claro)}
.senal input{accent-color:#C6A165;width:18px;height:18px;margin:3px 0 0;flex:none}
.senal span{font-size:14px;line-height:1.55;color:#DCE4EA}
.senal b{color:#C6A165;font-family:var(--serif);font-size:15px;margin-right:6px;letter-spacing:.06em}
.senal:focus-within{outline:2px solid var(--oro-claro);outline-offset:2px}
.resultado{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center;border:1px solid rgba(198,161,101,.45);padding:22px 24px}
.marcador{text-align:center;padding-right:22px;border-right:1px solid rgba(198,161,101,.35)}
.marcador b{display:block;font-family:var(--serif);font-size:54px;line-height:1;color:#fff;font-variant-numeric:tabular-nums}
.marcador span{font:600 9px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#A8BFD0}
@media (max-width:620px){
  .resultado{grid-template-columns:1fr}
  .marcador{border-right:0;border-bottom:1px solid rgba(198,161,101,.35);padding:0 0 14px;text-align:left}
}
.pasos-consejo{border-top:1px solid rgba(198,161,101,.3);padding-top:26px;display:grid;gap:8px}
.pasos-consejo .paso{border-color:rgba(198,161,101,.35)}

/* Equipo */
.ficha{background:var(--marino);color:#EDF1F4;padding:28px 26px;display:grid;gap:22px;align-content:start;position:relative;overflow:hidden}
.ficha .retrato{width:calc(100% + 52px);max-width:none;height:auto;margin:-28px -26px 0;background:var(--acero)}
.ficha .filete{width:56px;height:1px;background:var(--oro)}
.ficha dl{margin:0;display:grid;gap:14px}
.ficha dt{font:600 10px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--oro-claro)}
.ficha dd{margin:2px 0 0;font-size:14px;color:#C9D5DE;line-height:1.6}
.bio{display:grid;gap:18px}
.bio .bloque{display:grid;gap:4px}
.bio .bloque p{font-size:14px}

/* Llamado final */
.cta-final{background:var(--marino);color:#F1EEE8;text-align:center}
.cta-final .inner{display:grid;gap:20px;justify-items:center}
.cta-final h2{color:#fff;max-width:20ch}
.cta-final p{color:#C6D2DC;max-width:54ch}
.cta-final .acts{justify-content:center}
.contacto-linea{font-size:13px;color:#93A9BA}
.contacto-linea a{color:#C6D2DC}

/* Pie */
footer.pie{background:var(--marino-3);color:#C2CFD9;font-size:13px}
footer.pie .inner{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:26px;padding-block:56px 28px}
footer.pie h4{font:600 10px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#C6A165;margin:0 0 10px}
footer.pie a{color:#C2CFD9;text-decoration:none;display:block;padding:2px 0}
footer.pie a:hover{color:#fff}
footer.pie address{font-style:normal;line-height:1.7}
.pie-marca{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.pie-marca .n{font-family:var(--serif);font-weight:500;font-size:26px;color:#F6F4EF}
.pie-marca .bar{width:1px;height:26px;background:#C6A165}
.pie-marca .c{font:600 9px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:#F6F4EF}
.legal{border-top:1px solid rgba(255,255,255,.12);margin-top:8px;padding-top:14px;font-size:11px;color:#8CA0AF;grid-column:1/-1}
.legal a{display:inline!important;color:#A8BACA!important}

/* Página de servicio */
.valor{background:rgba(255,255,255,.05);border:1px solid rgba(198,161,101,.4);border-top:2px solid var(--oro);padding:24px;display:grid;gap:10px;align-content:start}
.valor .n{font-family:var(--serif);font-size:26px;color:var(--oro);line-height:1}
.eje{display:grid;gap:10px;align-content:start;padding-top:18px;border-top:1px solid var(--linea)}
.eje ul{margin:0;padding-left:18px;display:grid;gap:5px;font-size:14px;color:var(--gris)}
.eje .n{font:600 10px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--oro)}
.cita{border-left:2px solid var(--oro);padding-left:22px;font-family:var(--serif);font-weight:500;font-size:clamp(20px,2.8vw,26px);line-height:1.35;max-width:26ch}
.destaca{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:18px}
.tbl{overflow-x:auto;border:1px solid var(--linea);background:var(--blanco)}
.tbl table{border-collapse:collapse;width:100%;min-width:600px;font-size:14px}
.tbl th,.tbl td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--linea);vertical-align:top}
.tbl th{font:600 10px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gris);background:var(--marfil)}
.tbl th:last-child,.tbl td:last-child{background:rgba(176,141,87,.08)}
.tbl td:first-child{font-weight:500}
.tbl tr:last-child td{border-bottom:0}
.lista{margin:0;padding-left:18px;display:grid;gap:8px;color:var(--gris)}

/* Texto legal */
.legal-doc{max-width:760px}
.legal-doc h2{font-size:clamp(22px,3vw,28px);margin-top:28px}
.legal-doc p,.legal-doc li{color:var(--gris);font-size:15px}
.legal-doc ul{padding-left:18px;display:grid;gap:6px}
