/* ============================================================
   Base: reset, tipografía global, contenedor y cabezas de sección
   ============================================================ */
*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-padding-top:70px; }
@media (prefers-reduced-motion: no-preference){
  html{ scroll-behavior:smooth; }
}

body{
  margin:0;
  background:var(--page-bg);
  color:var(--bo-cafe);
  font-family:var(--bo-body);
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img{ max-width:100%; height:auto; display:block; }
a{ color:var(--accent); text-decoration:none; }

h1,h2,h3{ margin:0; font-family:var(--bo-display); }
h2{
  font-weight:300;
  font-size:clamp(28px, 5vw, 40px);
  letter-spacing:.02em;
  line-height:1.15;
}

:focus-visible{
  outline:2px solid var(--bo-terracota-dark);
  outline-offset:3px;
  border-radius:4px;
}

/* Contenedor central */
.shell{ max-width:1080px; margin-inline:auto; }

/* Sección estándar */
.block{ padding:62px 22px; }

/* Cabeza de sección */
.sec-head{ margin-bottom:42px; }
.sec-head p{
  margin:14px 0 0;
  font-size:16px;
  color:var(--text-soft);
  max-width:60ch;
  text-wrap:pretty;
}

/* Antetítulos */
.kicker{
  margin:0 0 12px;
  font-family:var(--bo-display);
  font-weight:500;
  font-size:11px;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--bo-salmon);
}
.eyebrow{
  margin:0 0 14px;
  font-family:var(--bo-display);
  font-weight:500;
  font-size:11px;
  letter-spacing:.34em;
  text-transform:uppercase;
  color:var(--bo-salmon);
}
