/* ============================================================
   SIGNAL PACK — BASE / RESET / TYPOGRAPHY
   Loads after tokens.css. Matches the approved homepage exactly.
   ============================================================ */

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  background:var(--paper); color:var(--ink);
  font-family:var(--font-body); -webkit-font-smoothing:antialiased;
}
a{ color:inherit; text-decoration:none; }
img{ display:block; max-width:100%; }
button{ font-family:inherit; cursor:pointer; background:none; border:none; }
input,select,textarea{ font-family:inherit; font-size:inherit; color:inherit; }
ul,ol{ list-style:none; }

.wrap{ max-width:1340px; margin:0 auto; padding:0 32px; }
.full-bleed{ max-width:none !important; }
.section-pad{ padding:var(--space-10) 0; }
.center{ text-align:center; }

h1,h2,h3,h4{ font-family:var(--font-display); font-weight:800; letter-spacing:-0.01em; line-height:1.12; color:var(--ink); }
h1{ font-size:var(--fs-display); }
h2{ font-size:var(--fs-h1); }
h3{ font-size:var(--fs-h3); }
h4{ font-size:var(--fs-h4); }

.sp-eyebrow{ font-family:var(--font-display); font-weight:700; font-size:var(--fs-eyebrow); letter-spacing:0.14em; text-transform:uppercase; color:var(--red); }
.sp-body-sm{ font-size:var(--fs-body-sm); color:var(--grey-text); line-height:1.55; }
.sp-caption{ font-size:var(--fs-caption); color:var(--grey-text); }

.sec-head{ max-width:640px; margin-bottom:44px; }
.sec-head.center{ margin-left:auto; margin-right:auto; }
.sec-head h2{ font-size:var(--fs-h1); margin-top:12px; }

@media (max-width:880px){
  .section-pad{ padding:54px 0; }
  .sec-head h2{ font-size:var(--fs-h2); }
}

/* Visually-hidden utility for screen-reader-only labels */
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* Consistent visible focus ring across every interactive component */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible{
  outline:2px solid var(--navy);
  outline-offset:2px;
  border-radius:var(--radius-sm);
}
