/* ==========================================================
   BASE
   Reset, typography, page container, buttons and shared section layout.
   ========================================================== */

html{scroll-behavior:smooth;scroll-padding-top:calc(88px + env(safe-area-inset-top,0px));}
*,*::before,*::after{box-sizing:inherit;}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased;}
img,svg{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3{font-family:var(--font-display);margin:0;line-height:1.12;letter-spacing:-0.02em;}
p{margin:0;}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:4px;}
.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:clamp(20px,5vw,72px);}
.skip{position:absolute;left:-999px;top:8px;background:var(--brand);color:var(--brand-ink);padding:10px 16px;border-radius:var(--r-s);z-index:100;}
.skip:focus{left:12px;}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:600 16px/1 var(--font-display);padding:15px 22px;border-radius:999px;border:1.5px solid transparent;text-decoration:none;cursor:pointer;transition:background-color .18s,border-color .18s,transform .18s;white-space:nowrap;}
.btn-primary{background:var(--brand);color:var(--brand-ink);}
.btn-primary:hover{transform:translateY(-1px);filter:brightness(1.08);}
.btn-outline{border-color:var(--line);color:var(--ink);background:transparent;}
.btn-outline:hover{border-color:var(--brand);}
.btn-sm{padding:11px 18px;font-size:15px;}

/* Section layout (used by every section) */
.section{padding-block:clamp(72px,9vw,120px);}
.section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 64px;align-items:end;margin-bottom:clamp(36px,5vw,56px);}
.section-head h2{font-size:clamp(30px,4vw,46px);font-weight:600;max-width:16ch;}
.section-head p{color:var(--muted);max-width:52ch;}

@media (max-width:900px){
  .section-head{grid-template-columns:1fr;align-items:start;}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important;}
}
