/* =====================================================================
   01 · BASE — reset, tipografía, contenedores, botones, utilidades
   ===================================================================== */

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:calc(var(--cab-h) + 12px); }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }
body{
  margin:0; background:var(--c-fondo); color:var(--c-texto);
  font-family:var(--f-texto); font-size:var(--fs-cuerpo); line-height:var(--lh-cuerpo);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
@supports (overflow:clip){ html, body{ overflow-x:clip; } }   /* clip no crea contenedor de scroll: no rompe position:sticky */
body.menu-abierto{ overflow:hidden; }   /* núcleo 11: bloquear scroll de fondo */
img,svg,video{ display:block; max-width:100%; }
img{ height:auto; }
a{ color:inherit; text-decoration-thickness:1px; text-underline-offset:.2em; }
button{ font:inherit; color:inherit; cursor:pointer; }
:focus-visible{ outline:2px solid var(--c-acento); outline-offset:3px; }

/* ---- Tipografía ---- */
h1,h2,h3,h4{ margin:0; font-family:var(--f-display); font-weight:500; line-height:var(--lh-titulo); letter-spacing:-.01em; text-wrap:balance; }
h1{ font-size:var(--fs-h1); }
h2{ font-size:var(--fs-h2); }
h3{ font-size:var(--fs-h3); }
p{ margin:0 0 1em; text-wrap:pretty; }
.eyebrow{
  display:inline-block; margin-bottom:18px;
  font-family:var(--f-texto); font-size:var(--fs-eyebrow); font-weight:600;
  letter-spacing:var(--tracking-eyebrow); text-transform:uppercase; color:var(--c-acento);
}
.lead{ font-size:clamp(1.05rem, 1rem + .35vw, 1.25rem); color:var(--c-texto-suave); max-width:var(--ancho-texto); }
em.acento, .titulo-acento{ font-style:italic; color:var(--c-acento); }

/* ---- Estructura ---- */
.contenedor{ width:100%; max-width:var(--ancho); margin-inline:auto; padding-inline:var(--gutter); }
.seccion{ position:relative; padding-block:var(--sec-y); }
.seccion--plana{ padding-block:calc(var(--sec-y) * .75); }   /* ritmo: secciones rectas para respirar */
.bg-fondo{ background:var(--c-fondo); }
.bg-alt{ background:var(--c-fondo-alt); }
.bg-oscuro{ background:var(--c-oscuro); color:var(--c-sobre-oscuro); }
.bg-oscuro .lead, .bg-oscuro p{ color:var(--c-sobre-oscuro-suave); }
.bg-oscuro h1,.bg-oscuro h2,.bg-oscuro h3{ color:var(--c-sobre-oscuro); }
.cabecera-seccion{ max-width:720px; margin-bottom:clamp(40px, 6vw, 72px); }
.cabecera-seccion--centro{ margin-inline:auto; text-align:center; }
.cabecera-seccion .lead{ margin-top:18px; }
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px, 7vw, 110px); align-items:center; }
@media (max-width:960px){ .grid-2{ grid-template-columns:1fr; } }

/* ---- Botones ---- */
.btn{
  --_bg:var(--c-acento); --_fg:var(--c-sobre-acento); --_bd:var(--c-acento);
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  min-height:50px; padding:.85em 1.7em;
  background:var(--_bg); color:var(--_fg); border:1px solid var(--_bd); border-radius:var(--radio-pill);
  font-family:var(--f-texto); font-size:.95rem; font-weight:600; letter-spacing:.02em; line-height:1.1;
  text-decoration:none; white-space:nowrap; cursor:pointer;
  transition:background var(--t-rapida) var(--ease), color var(--t-rapida) var(--ease), transform var(--t-rapida) var(--ease), box-shadow var(--t-rapida) var(--ease);
}
.btn:hover{ --_bg:var(--c-acento-hover); --_bd:var(--c-acento-hover); transform:translateY(-2px); box-shadow:var(--sombra-flotante); }
.btn--linea{ --_bg:transparent; --_fg:currentColor; --_bd:currentColor; }
.btn--linea:hover{ --_bg:transparent; --_bd:var(--c-acento); color:var(--c-acento); }
.btn--wa{ --_bg:var(--c-whatsapp); --_bd:var(--c-whatsapp); --_fg:#0B3D1E; }
.btn--wa:hover{ --_bg:#1EBE5A; --_bd:#1EBE5A; }
.btn svg{ width:1.2em; height:1.2em; flex-shrink:0; }
.btns{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
@media (max-width:480px){ .btns .btn{ flex:1 1 100%; } }

/* ---- Utilidades ---- */
.sr{ position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.saltar{ position:absolute; left:12px; top:-60px; z-index:999; padding:10px 16px; background:var(--c-oscuro); color:var(--c-sobre-oscuro); border-radius:var(--radio); }
.saltar:focus{ top:12px; }
/* Dato pendiente durante el desarrollo. Se busca antes de entregar: no puede quedar ninguno sin avisar */
.falta{ display:inline-block; padding:.1em .5em; border:1px dashed var(--c-falta); border-radius:4px; color:var(--c-falta); font:600 .75rem/1.4 var(--f-texto); letter-spacing:.02em; vertical-align:middle; }
