*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
body{
  font-family:var(--font-sans);
  font-size:var(--fs-16);
  line-height:var(--lh-normal);
  color:var(--body);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img,svg,video{max-width:100%; display:block}
a{color:var(--blue-700); text-decoration:none}
a:hover{color:var(--blue-600)}
button{font:inherit}
h1,h2,h3,h4,h5{color:var(--ink); font-family:var(--font-display); line-height:var(--lh-snug); margin:0 0 var(--s4); font-weight:700; letter-spacing:-.01em}
h1{font-size:clamp(34px, 5vw, 56px); line-height:1.08; letter-spacing:-.02em}
h2{font-size:clamp(28px, 3.5vw, 40px); letter-spacing:-.015em}
h3{font-size:clamp(20px, 2.2vw, 24px)}
h4{font-size:var(--fs-18)}
p{margin:0 0 var(--s4); color:var(--body)}
hr{border:0; border-top:1px solid var(--line); margin:var(--s8) 0}

/* Unified typography weight */
*, *::before, *::after { font-weight:430 !important; }
:focus-visible{outline:3px solid rgba(242,122,26,.5); outline-offset:2px; border-radius:6px}

.container{max-width:var(--container); margin:0 auto; padding:0 24px}
.container-narrow{max-width:var(--container-narrow); margin:0 auto; padding:0 24px}
.container-wide{max-width:var(--container-wide); margin:0 auto; padding:0 24px}

.section{padding:var(--s20) 0}
.section-sm{padding:var(--s12) 0}
.section-lg{padding:var(--s24) 0}

.eyebrow{
  display:inline-flex; align-items:center; gap:0;
  font-size:var(--fs-13); font-weight:700; text-transform:uppercase;
  letter-spacing:.14em; color:var(--orange-600); margin-bottom:var(--s4);
}

.lead{font-size:var(--fs-18); color:var(--body); max-width:62ch}

.muted{color:var(--muted)}
.text-center{text-align:center}
.mx-auto{margin-left:auto; margin-right:auto}

.grid{display:grid; gap:var(--s6)}
.grid-2{grid-template-columns:repeat(2, minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3, minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4, minmax(0,1fr))}
@media (max-width:900px){
  .grid-3, .grid-4{grid-template-columns:repeat(2, minmax(0,1fr))}
}
@media (max-width:600px){
  .grid-2, .grid-3, .grid-4{grid-template-columns:1fr}
}

.skip-link{position:absolute; left:-9999px; top:0; background:#000; color:#fff; padding:8px 12px; z-index:9999}
.skip-link:focus{left:12px; top:12px}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; transition-duration:.001ms !important}
  html{scroll-behavior:auto}
}
