/* ============================================================================
   BCM — BASE: reset, typography, layout primitives
   ============================================================================ */

/* ---- Reset ---- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  font-family:var(--font-sans);
  font-size:var(--fs-body);
  line-height:1.65;
  color:var(--bcm-gray);
  background:var(--bcm-white);
  overflow-x:clip; /* clip (not hidden) avoids making body a scroll container, so anchor jumps + window scroll work normally */
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img,video{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; cursor:pointer; }
:focus-visible{ outline:2px solid var(--bcm-blue); outline-offset:3px; }

/* ---- Headings: Fraunces display ---- */
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-optical-sizing:auto;
  font-weight:420;
  color:var(--bcm-ink);
  line-height:1.12;
  letter-spacing:-.01em;
}
h1{ font-size:var(--fs-h1); }
h2{ font-size:var(--fs-h2); }
h3{ font-size:var(--fs-h3); font-weight:560; line-height:1.18; }

/* Italic = Fraunces accent, rendered in blue (used sparingly for one word) */
em,i{ font-family:var(--font-display); font-style:italic; color:var(--bcm-blue); }

/* ---- Body copy ---- */
p{ font-size:var(--fs-body); line-height:1.65; color:var(--bcm-gray); }
/* Long-form copy is left-aligned + line-capped (no centered walls) */
.prose p{ max-width:var(--measure); }
.prose p + p{ margin-top:var(--s-2); }

/* ---- Layout primitives ---- */
.section{ padding:var(--section-pad) 0; position:relative; }
.container{
  max-width:var(--content-max);
  margin:0 auto;
  padding:0 var(--gutter);
}
.bleed{ width:100%; }                      /* full-bleed escape */
.soft{ background:var(--bcm-soft); }       /* alternating band */

/* Soft luminous depth lift on light sections (re-keyed radial glow) */
.depth{
  background:
    radial-gradient(120% 90% at 50% 0%, var(--bcm-soft) 0%, var(--bcm-white) 62%),
    radial-gradient(60% 50% at 50% 0%, var(--bcm-glow-blue) 0%, transparent 70%);
}

/* Hairline divider between stacked light sections */
.section + .section{ border-top:1px solid var(--bcm-hairline); }
.section.bcm-dark + .section,
.section + .section.bcm-dark{ border-top:0; }

/* Utility */
.center{ text-align:center; }
.measure-center{ max-width:640px; margin-left:auto; margin-right:auto; }
.visually-hidden{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
