*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  background:var(--bg);
  color:var(--text);
  line-height:1.6;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul,ol{margin:0;padding:0;list-style:none;}
button{font:inherit;cursor:pointer;}
input,textarea,select,button{font-family:inherit;}
h1,h2,h3,h4,h5{margin:0 0 .5em;font-family:var(--font-display);font-weight:700;line-height:1.25;color:var(--text);}
h1{font-size:clamp(1.9rem,3.4vw,2.75rem);}
h2{font-size:clamp(1.5rem,2.4vw,2rem);}
h3{font-size:1.25rem;}
p{margin:0 0 1em;color:var(--text);}
.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 20px;
}
.section{padding:64px 0;}
.section-alt{background:var(--bg-alt);}
.section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:32px;
  flex-wrap:wrap;
}
.section-head h2{margin:0;}
.section-head .lead{color:var(--text-muted);margin:6px 0 0;max-width:640px;}
.eyebrow{
  display:inline-block;
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--accent-dark);
  margin-bottom:10px;
}
.text-muted{color:var(--text-muted);}
.text-center{text-align:center;}
.visually-hidden{
  position:absolute;width:1px;height:1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;padding:0;margin:-1px;
}
.skip-link{
  position:absolute;left:12px;top:-48px;background:var(--primary);color:#fff;
  padding:10px 16px;border-radius:var(--radius-sm);z-index:1000;transition:top var(--transition);
}
.skip-link:focus{top:12px;}
::selection{background:var(--accent);color:#fff;}
:focus-visible{outline:2px solid var(--secondary);outline-offset:2px;}

/* Empty / error placeholders rendered by EH.setState */
.state-empty{padding:32px 8px;text-align:center;}
.state-error{margin:8px 0;}

/* Respect users who prefer reduced motion */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
}

@media (max-width:900px){
  .section{padding:44px 0;}
}
