/* AOTC design system v2 — light-blue, curved. Editorial bones (serif display,
   mono eyebrows, numbered sections) kept; vibe is ours: airy blue bands with
   elliptical curved edges, pill buttons, soft shadows. Light-only by design. */
:root{
  --bg:#e8f1fa;
  --tint:#d2e3f4;
  --ink:#122638;
  --muted:#415468;
  --faint:#67809b;
  --line:#b6cde6;
  --accent:#1565d8;
  --accent-deep:#0e4cab;
  --card:#fff;
  --shadow:0 10px 30px rgba(21,101,216,.1);
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"Inter",-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1rem/1.65 var(--sans);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}

/* ---- layout ---- */
.wrap{max-width:1140px;margin-inline:auto;padding-inline:clamp(1.25rem,5vw,4rem)}
.pad{padding-inline:clamp(1.25rem,5vw,4rem)}

/* ---- header ---- */
header.site{position:sticky;top:0;z-index:20;background:rgba(232,241,250,.9);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav{max-width:1140px;margin-inline:auto;display:flex;align-items:center;
  justify-content:space-between;padding-top:.85rem;padding-bottom:.85rem}
.brand{font:500 1.25rem/1 var(--serif);letter-spacing:.01em;color:var(--ink);text-decoration:none}
.brand .ai{color:var(--accent)}
.brand:hover{color:var(--accent)}
.nav nav{display:flex;align-items:center;gap:1.5rem}
.nav nav a{font:400 .9rem/1 var(--sans);color:var(--muted);text-decoration:none;padding-bottom:.2rem}
.nav nav a:hover{color:var(--ink)}
.nav nav a[aria-current="page"]{color:var(--ink);border-bottom:2px solid var(--accent)}
.nav .btn{margin-left:.4rem}
.nav nav a.btn{color:#fff;padding:.6rem 1.2rem;border-bottom:0}
.nav nav a.btn:hover{color:#fff}
@media (max-width:760px){.nav .btn{display:none}.nav nav{gap:1.1rem}}

/* ---- type ---- */
.eyebrow{font:500 .72rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;
  color:var(--accent);margin:0 0 1.4rem;display:flex;align-items:center;gap:.9rem}
.eyebrow .num{color:var(--faint)}
.eyebrow::after{content:"";flex:1;height:1px;background:var(--line)}
h1{font:500 clamp(2.4rem,5.2vw,3.9rem)/1.08 var(--serif);letter-spacing:-.015em;margin:0 0 1.4rem;max-width:22ch}
h2{font:500 clamp(1.7rem,3vw,2.3rem)/1.18 var(--serif);letter-spacing:-.01em;margin:0 0 1rem;max-width:30ch}
h1 em,h2 em,.editorial em{font-style:italic;font-weight:400}
.lede{font-size:1.14rem;color:var(--muted);max-width:62ch;margin:0 0 2.4rem}
.sub{color:var(--muted);max-width:64ch;margin:0 0 2.6rem}
.editorial{font:400 clamp(1.45rem,2.6vw,2rem)/1.42 var(--serif);max-width:34ch;margin:0}
.editorial strong{font-weight:600}

/* ---- bands + curves ---- */
main section{padding-top:clamp(3.2rem,7vw,5.5rem);padding-bottom:clamp(3.2rem,7vw,5.5rem)}
.band-tint{background:var(--tint)}
.curve-b{border-radius:0 0 48% 48%/0 0 clamp(26px,7vw,84px) clamp(26px,7vw,84px)}
.curve-t{border-radius:48% 48% 0 0/clamp(26px,7vw,84px) clamp(26px,7vw,84px) 0 0}
.curve-tb{border-radius:48%/clamp(26px,7vw,84px)}

.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,#c3dbf3,#d9e9f8);
  padding-top:clamp(4rem,9vw,7rem);padding-bottom:clamp(4.5rem,10vw,7.5rem)}
.hero::before,.hero::after{content:"";position:absolute;aspect-ratio:1;border-radius:50%;pointer-events:none}
.hero::before{top:-38%;right:-16%;width:min(58vw,760px);border:1.5px solid rgba(21,101,216,.28)}
.hero::after{top:-26%;right:-8%;width:min(42vw,560px);border:1.5px solid rgba(21,101,216,.16)}
.hero .wrap{position:relative;z-index:1}

/* ---- buttons ---- */
.btn{display:inline-block;background:var(--accent);color:#fff;border:1px solid var(--accent);
  border-radius:999px;padding:.72rem 1.45rem;font:500 .92rem/1 var(--sans);text-decoration:none;
  cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s}
.btn:hover{background:var(--accent-deep);border-color:var(--accent-deep);
  transform:translateY(-1px);box-shadow:0 6px 18px rgba(21,101,216,.25)}
.btn.ghost{background:#fff;color:var(--accent);border-color:var(--line)}
.btn.ghost:hover{background:#fff;color:var(--accent-deep);border-color:var(--accent)}
.cta-row{display:flex;flex-wrap:wrap;gap:.75rem}

/* ---- card grid ---- */
.cells{display:grid;gap:1.1rem}
.cells.c3{grid-template-columns:repeat(3,1fr)}
.cells.c2{grid-template-columns:repeat(2,1fr)}
@media (max-width:860px){.cells.c3{grid-template-columns:1fr}.cells.c2{grid-template-columns:1fr}}
.cell{background:var(--card);border:1px solid var(--line);border-radius:16px;
  padding:1.7rem 1.6rem;box-shadow:var(--shadow);transition:transform .15s,border-color .15s}
.cell:hover{transform:translateY(-2px);border-color:var(--accent)}
.cell .k{font:500 .72rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);display:block;margin-bottom:.9rem}
.cell h3{font:600 1.04rem/1.3 var(--sans);margin:0 0 .55rem}
.cell p{margin:0;color:var(--muted);font-size:.95rem}

/* ---- numbered step rows ---- */
.steps{border-top:1px solid var(--line)}
.step{display:grid;grid-template-columns:5.5rem 14rem 1fr;gap:1.5rem;padding:1.7rem 0;border-bottom:1px solid var(--line)}
@media (max-width:860px){.step{grid-template-columns:3.5rem 1fr;grid-template-rows:auto auto}.step p{grid-column:2}}
.step .n{font:500 .95rem/1.6 var(--mono);color:var(--accent)}
.step h3{font:500 1.35rem/1.25 var(--serif);margin:0}
.step p{margin:0;color:var(--muted);font-size:.97rem;max-width:56ch}

/* ---- table ---- */
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
table{border-collapse:collapse;width:100%;min-width:640px;background:var(--card)}
th{font:500 .7rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);
  text-align:left;padding:.95rem 1.3rem;border-bottom:1px solid var(--line)}
td{padding:1.15rem 1.3rem;border-bottom:1px solid var(--line);vertical-align:top;font-size:.95rem;color:var(--muted)}
tr:last-child td{border-bottom:0}
td.ph{font:500 .95rem/1.5 var(--mono);color:var(--ink);white-space:nowrap}
td.ph .n{color:var(--accent);margin-right:.6rem}

/* ---- contact ---- */
.contact-band{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;background:var(--card);
  border:1px solid var(--line);border-radius:16px;padding:1.5rem 1.7rem;box-shadow:var(--shadow)}
.email{font:500 1.15rem/1.3 var(--mono);color:var(--ink);text-decoration:none;word-break:break-all}
.email:hover{color:var(--accent)}
.copy-email{font:500 .8rem/1 var(--mono);letter-spacing:.06em;background:transparent;color:var(--muted);
  border:1px solid var(--line);border-radius:999px;padding:.55rem 1rem;cursor:pointer}
.copy-email:hover{border-color:var(--accent);color:var(--accent)}
.copy-email.ok{border-color:var(--accent);color:var(--accent)}

/* ---- checklist ---- */
.checklist{list-style:none;margin:0;padding:0;columns:2;column-gap:3rem}
@media (max-width:860px){.checklist{columns:1}}
.checklist li{break-inside:avoid;padding:.8rem 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:.97rem}
.checklist li::before{content:"—";color:var(--accent);margin-right:.7rem;font-family:var(--mono)}

/* ---- footer (dark navy) ---- */
footer.site{background:var(--ink)}
.foot{max-width:1140px;margin-inline:auto;display:flex;flex-wrap:wrap;justify-content:space-between;
  gap:1rem;padding-top:2.2rem;padding-bottom:2.6rem;font:400 .8rem/1.8 var(--mono);color:#9fb3c8}
.foot a{color:#9fb3c8;text-decoration:none}
.foot a:hover{color:#fff}
.foot .cols{display:flex;flex-wrap:wrap;gap:.4rem 1.8rem}

/* ---- legal prose pages ---- */
.prose{max-width:720px;margin-inline:auto;padding-top:3.5rem;padding-bottom:4.5rem}
.prose h1{font-size:clamp(2rem,4vw,2.8rem)}
.prose .meta{font:400 .8rem/1.6 var(--mono);color:var(--faint);margin:0 0 2rem}
.prose h2{font:500 1.3rem/1.3 var(--serif);margin:2.2rem 0 .6rem;max-width:none}
.prose p,.prose li{color:var(--muted);font-size:.98rem}
.prose a{color:var(--accent)}
.prose strong{color:var(--ink);font-weight:600}

/* ---- reveal ---- */
.js .reveal{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease}
.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}}
