/* Base compartida de cuestas.com: variables, encabezado fijo, botones, menú móvil y pie.
   La usan la portada y todas las páginas (marcas, nosotros, contacto y legales).
   Una sola fuente: cualquier cambio del encabezado o del pie se hace aquí. */
:root{
  color-scheme: dark;
  --void:#04080F;
  --panel:#070D17;
  --navy:#012A60;
  --cyan:#01AEF2;
  --ink:#EDEDED;
  --gray:rgba(237,237,237,.62);
  --faint:rgba(237,237,237,.40);
  --line:rgba(255,255,255,.09);
  --line-2:rgba(255,255,255,.16);
  --sans:"Geist","Inter",system-ui,"Helvetica Neue",Arial,sans-serif;
  --mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --gutter:clamp(18px,4.2vw,56px);
  --maxw:1280px;
  /* color de marca activo en el ecosistema (lo interpola el scroll) */
  --brand:#0C5ADB;
  --on-brand:#FFFFFF;
}
@property --brand{syntax:"<color>";inherits:true;initial-value:#0C5ADB}
*{box-sizing:border-box}
/* El header es fijo: sin esto, al saltar a un ancla el navegador deja el
   destino en la coordenada 0 y la barra superior lo tapa. */
html{scroll-padding-top:calc(60px + env(safe-area-inset-top,0px))}
body{
  margin:0;background:var(--void);color:var(--ink);
  font-family:var(--sans);font-size:16px;line-height:1.55;letter-spacing:-.011em;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
a,button{-webkit-tap-highlight-color:rgba(1,174,242,.18)}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:4px}
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.mono{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
.rule{height:1px;background:var(--line);border:0;margin:0}

/* ---------- MARCA ---------- */
.iso{width:22px;height:22px;flex:none;display:block}
.wordmark{display:flex;align-items:center;gap:10px;font-weight:600;font-size:15px;letter-spacing:-.022em;white-space:nowrap}
.wordmark span{color:var(--gray);font-weight:400}

/* ---------- NAV ---------- */
.nav{position:fixed;inset:0 0 auto 0;z-index:80;background:rgba(4,8,15,.72);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid transparent;transition:border-color .3s,background .3s}
.nav.is-stuck{border-bottom-color:var(--line);background:rgba(4,8,15,.9)}
/* Tres columnas: los enlaces quedan centrados respecto a la pantalla,
   no respecto al ancho del logotipo. */
.nav__in{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;height:60px;padding-top:env(safe-area-inset-top,0px)}
.nav__links{display:flex;gap:26px;font-size:14px;color:var(--gray);grid-column:2;justify-self:center}
.nav__links a{position:relative;padding-block:6px}
.nav__links a:hover{color:var(--ink)}
.nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;border-radius:2px;background:var(--cyan);transform:scaleX(0);transition:transform .25s}
.nav__links a[aria-current="true"]{color:var(--ink)}
.nav__links a[aria-current="true"]::after{transform:scaleX(1)}
@media (prefers-reduced-motion:reduce){.nav__links a::after{transition:none}}
/* La columna va fijada: al ocultar los enlaces en móvil, ese elemento sale
   de la retícula y sin esto el botón se correría a la columna central. */
.nav__right{grid-column:3;justify-self:end;display:flex;align-items:center;gap:8px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:38px;padding:0 16px;border-radius:999px;border:1px solid var(--line-2);
  background:rgba(255,255,255,.04);color:var(--ink);
  font-size:13.5px;font-weight:500;letter-spacing:-.012em;white-space:nowrap;
  transition:background .25s,border-color .25s,color .25s,box-shadow .25s;
}
.btn:hover{background:rgba(255,255,255,.1);border-color:var(--line-2)}
.btn--light{background:var(--ink);color:#05090F;border-color:transparent;font-weight:600}
.btn--light:hover{background:#fff}
.btn--brand{background:var(--brand);color:var(--on-brand);border-color:transparent;font-weight:600}
.btn--brand:hover{background:var(--brand);filter:brightness(1.12);box-shadow:0 0 36px -8px var(--brand)}
.btn--lg{height:46px;padding:0 24px;font-size:14.5px}
.burger{display:none;width:38px;height:38px;border-radius:10px;border:1px solid var(--line-2);background:rgba(255,255,255,.04);align-items:center;justify-content:center;cursor:pointer;padding:0}
.burger i{display:block;width:15px;height:1.5px;background:var(--ink);position:relative}
.burger i::before,.burger i::after{content:"";position:absolute;left:0;width:15px;height:1.5px;background:var(--ink)}
.burger i::before{top:-5px}.burger i::after{top:5px}
.sheet{position:fixed;z-index:79;inset:0 0 auto 0;padding:72px 0 18px;background:rgba(4,8,15,.97);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);box-shadow:0 30px 60px -12px rgba(0,0,0,.85);transform:translateY(-102%);transition:transform .38s cubic-bezier(.22,.8,.25,1)}
.sheet.is-open{transform:translateY(0)}
.sheet a{display:block;padding:13px 0;font-size:17px;border-bottom:1px solid var(--line);color:var(--gray)}
.sheet a:last-of-type{border-bottom:0}
.sheet a[aria-current="true"]{color:var(--ink);box-shadow:inset 3px 0 0 var(--cyan);padding-left:14px}
/* El botón hereda el gris de `.sheet a` (0,1,1) y sobre el blanco queda
   invisible: aquí se le devuelve su propia tinta con (0,2,0). */
.sheet .btn--light{color:#05090F;border-bottom:0}

/* ---------- FOOTER ---------- */
footer{border-top:1px solid var(--line);background:#03070D}
.foot__in{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:32px;padding-block:52px 18px}
.foot h4{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin:0 0 15px;font-weight:400}
.foot ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;font-size:14px;color:var(--gray)}
.foot ul a:hover{color:var(--ink)}
.foot__note{font-size:13.5px;color:var(--faint);max-width:34ch;margin:14px 0 0;line-height:1.6}
.foot__legal{display:flex;flex-wrap:wrap;gap:8px 22px;padding-block:0 36px;font-size:13px}.foot__legal a{color:var(--gray);text-decoration:none}.foot__legal a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.foot__bar{display:flex;flex-wrap:wrap;gap:10px 22px;justify-content:space-between;padding-block:18px 14px;border-top:1px solid var(--line);font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;color:var(--faint);text-transform:uppercase}

@media (max-width:1040px){
  .foot__in{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  /* Áreas táctiles */
  .btn{height:44px;padding:0 20px}
  .btn--lg{height:50px;font-size:15px}

  /* NAV: el CTA sale del nav y vive en el menú desplegable */
  .nav__links{display:none}
  .nav__right>.btn{display:none}
  .burger{display:inline-flex}
  .wordmark{font-size:14.5px}
  .sheet .btn{display:flex;width:100%;height:50px;margin-top:18px;font-size:15px}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important}
}
