/* ============================ RESET ============================ */
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto;overflow-x:clip}
body{
  font-family:var(--font);
  font-size:18px;
  line-height:1.67;
  color:var(--ink);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul{list-style:none;padding:0}
h1,h2,h3,h4{font-weight:600;line-height:1.2}

/* ============================ LAYOUT PRIMITIVES ============================ */
.container{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:clamp(20px, 4vw, 40px);
}
.section{padding-block:var(--gap)}
.container--narrow{max-width:820px}
body.scroll-lock{overflow:hidden}

/* ============================ TYPE SCALE ============================ */
.h1,h1{font-size:clamp(30px,4.6vw,42px);line-height:1.29;font-weight:600}
.h2{font-size:clamp(22px,3vw,30px);line-height:1.3;font-weight:600}
.eyebrow{
  font-size:15px;font-weight:600;color:var(--accent-text);
  margin-bottom:14px;letter-spacing:.2px;text-transform:uppercase;
}
.eyebrow--light{color:#fff;opacity:.85}

.section__headline{color:var(--ink);margin-bottom:46px;max-width:18ch}
.section__headline--center{text-align:center;margin-inline:auto;margin-bottom:14px}
.section__sub{text-align:center;color:var(--ink);margin-top:0;margin-bottom:46px}

/* ============================ BUTTONS ============================ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  height:52px;padding-inline:32px;
  font-size:13px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;
  border-radius:999px;
  transition:transform .25s var(--ease),box-shadow .3s var(--ease),background .3s var(--ease),color .25s var(--ease),filter .25s var(--ease);
}
/* solid: navy->cyan gradient with a soft cyan glow that lifts on hover */
.btn--solid{
  background:linear-gradient(135deg, var(--brand) 0%, var(--accent-cta) 100%);
  color:#fff;
  box-shadow:0 8px 20px -6px rgba(0,178,217,.55), 0 2px 6px rgba(0,0,0,.12);
}
.btn--solid:hover{
  transform:translateY(-2px);
  filter:brightness(1.06);
  box-shadow:0 16px 32px -8px rgba(0,178,217,.72), 0 4px 10px rgba(0,0,0,.16);
}
.btn--solid:active{transform:translateY(0);filter:brightness(.97)}
/* outline: cyan ring that fills in on hover */
.btn--outline{border:1.5px solid var(--accent-cta);color:var(--accent-cta);background:transparent}
.btn--outline:hover{background:var(--accent-cta);color:#fff;transform:translateY(-2px);box-shadow:0 12px 24px -8px rgba(0,178,217,.5)}
.btn--outline:active{transform:translateY(0)}
@media (prefers-reduced-motion:reduce){.btn,.btn--solid,.btn--outline{transition:background .2s,color .2s;transform:none !important}}

/* ============================ A11Y HELPERS ============================ */
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:200;
  background:var(--brand);color:#fff;padding:10px 16px;border-radius:0 0 var(--radius) 0;
}
.skip-link:focus{left:0}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
/* visually hidden but available to screen readers + crawlers */
.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}

@media (prefers-reduced-motion:reduce){
  *{scroll-behavior:auto !important}
}
