  :root{
    --bg:#ffffff;
    --bg-alt:#f4f6f9;
    --ink:#111a24;
    --ink-soft:#4a5866;
    --line:#e2e7ee;
    --accent:#12508f;
    --accent-soft:#e8f0fa;
    --maxw:1080px;
  }
  @media (prefers-color-scheme: dark){
    :root{
      --bg:#0c141d;
      --bg-alt:#121d29;
      --ink:#eef3f8;
      --ink-soft:#a3b3c2;
      --line:#1f2d3d;
      --accent:#6cb2f5;
      --accent-soft:#152539;
    }
  }
  *,*::before,*::after{box-sizing:border-box}
  html{-webkit-text-size-adjust:100%}
  body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    font-size:17px;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }
  a{color:var(--accent);text-decoration:none}
  a:hover,a:focus-visible{text-decoration:underline}
  .wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px}

  header{border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg);z-index:10}
  .bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0}
  .brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.02em;color:var(--ink)}
  .brand:hover{text-decoration:none}
  .brand .mark{
    display:inline-flex;align-items:center;justify-content:center;
    width:32px;height:32px;border-radius:8px;
    background:var(--accent);color:#fff;font-size:16px;font-weight:800;
  }
  .brand .name{font-size:18px}
  nav a{color:var(--ink-soft);font-size:15px;margin-left:22px}
  @media (max-width:640px){nav{display:none}}

  .hero{padding:88px 0 76px}
  .eyebrow{
    display:inline-block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
    color:var(--accent);background:var(--accent-soft);
    padding:6px 12px;border-radius:999px;font-weight:700;margin-bottom:22px;
  }
  h1{
    font-size:clamp(2rem,5.2vw,3.25rem);
    line-height:1.12;margin:0 0 20px;letter-spacing:-.02em;font-weight:800;max-width:17ch;
  }
  .lede{font-size:clamp(1.05rem,2.2vw,1.2rem);color:var(--ink-soft);margin:0 0 32px;max-width:62ch}
  .cta{
    display:inline-block;background:var(--accent);color:#fff;font-weight:600;
    padding:13px 26px;border-radius:8px;font-size:16px;
  }
  .cta:hover{text-decoration:none;opacity:.9}

  section{padding:72px 0;border-top:1px solid var(--line)}
  section.alt{background:var(--bg-alt)}
  h2{font-size:clamp(1.5rem,3.2vw,2rem);margin:0 0 18px;letter-spacing:-.01em;font-weight:700}
  h3{font-size:1.05rem;margin:0 0 8px;font-weight:700}
  p{margin:0 0 16px}
  .prose{max-width:68ch;color:var(--ink-soft)}
  .prose strong{color:var(--ink)}

  .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(265px,1fr));gap:22px;margin-top:34px}
  .card{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:26px}
  .card p{margin:0;color:var(--ink-soft);font-size:15.5px}
  .num{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.1em;color:var(--accent);margin-bottom:12px}

  ul.plain{list-style:none;padding:0;margin:32px 0 0;display:grid;gap:20px;max-width:70ch}
  ul.plain li{padding-left:22px;position:relative;color:var(--ink-soft)}
  ul.plain li::before{
    content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;
    border-radius:2px;background:var(--accent);
  }
  ul.plain strong{color:var(--ink);display:block}

  .contact-box{
    border:1px solid var(--line);border-radius:12px;padding:32px;background:var(--bg);
    max-width:640px;margin-top:28px;
  }
  .contact-box .mail{font-size:clamp(1.05rem,3vw,1.35rem);font-weight:700;word-break:break-word}
  .contact-box .note{font-size:15px;color:var(--ink-soft);margin:12px 0 0}

  footer{border-top:1px solid var(--line);padding:40px 0;font-size:14px;color:var(--ink-soft)}
  footer p{margin:0 0 8px;max-width:70ch}
  footer .addr{font-size:13.5px;line-height:1.55}
  footer .legal{font-size:13px;opacity:.85;margin-top:14px}

  /* Legal pages */
  .legal-page{padding:64px 0 80px}
  .legal-page h1{font-size:clamp(1.75rem,4vw,2.5rem);max-width:none;margin-bottom:10px}
  .legal-page .updated{color:var(--ink-soft);font-size:14.5px;margin:0 0 40px}
  .legal-page h2{font-size:1.2rem;margin:38px 0 12px}
  .legal-page p,.legal-page li{color:var(--ink-soft);max-width:70ch}
  .legal-page ul{padding-left:20px;margin:0 0 16px}
  .legal-page li{margin-bottom:8px}
  .legal-page strong{color:var(--ink)}
  .back{display:inline-block;margin-bottom:26px;font-size:15px}
  footer nav a{margin:0 16px 0 0;color:var(--ink-soft);font-size:13px}
