/* Shared supporting-page layout. */

    :root {
      --teal:#037a80; --teal-dark:#025d64; --teal-deeper:#014048;
      --teal-light:#d4f0f2; --teal-xlight:#edf9fa; --accent:#06c8d0;
      --text:#091e22; --text-mid:#3a5860; --text-muted:#51666b;
      --footer-bg:#091e22;
      --bg:#f0f4f5; --surface:#ffffff; --border:#dde4e8;
      --shadow:0 20px 60px rgba(9,30,34,.11); --shadow-sm:0 4px 16px rgba(9,30,34,.07);
      --r-xl:24px; --r-lg:16px; --r-md:10px; --r-pill:999px;
      --ease:220ms cubic-bezier(.4,0,.2,1);
      --nav-h:68px;
      --font:'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
    }
    *,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
    html { scroll-behavior:smooth; scroll-padding-top:calc(var(--nav-h) + 16px); }
    body {
      font-family:var(--font); background:var(--bg); color:var(--text);
      line-height:1.7; -webkit-font-smoothing:antialiased; overflow-x:hidden;
    }
    a { color:var(--teal); text-decoration:none; }
    a:hover { text-decoration:underline; }
    img { display:block; max-width:100%; }

    /* ─── Nav ─── */
    .nav {
      position:sticky; top:0; z-index:200; height:var(--nav-h);
      background:rgba(255,255,255,.9);
      backdrop-filter:blur(16px) saturate(1.6);
      -webkit-backdrop-filter:blur(16px) saturate(1.6);
      box-shadow:0 1px 0 rgba(9,30,34,.08);
    }
    .nav-inner {
      max-width:1180px; margin:0 auto; padding:0 24px; height:100%;
      display:flex; align-items:center; justify-content:space-between; gap:16px;
    }
    .nav-logo {
      display:flex; align-items:center; gap:10px;
      font-size:17px; font-weight:900; letter-spacing:-.02em; color:var(--text);
    }
    .nav-logo:hover { text-decoration:none; }
    .nav-cta {
      display:inline-flex; align-items:center; gap:7px;
      padding:9px 17px; border-radius:var(--r-pill);
      background:var(--teal); color:#fff !important; font-size:13.5px; font-weight:700;
      transition:background var(--ease), transform var(--ease);
    }
    .nav-cta:hover { background:var(--teal-dark); text-decoration:none; transform:translateY(-1px); }

    /* ─── Header band ─── */
    .legal-head {
      background:linear-gradient(150deg, var(--teal-deeper) 0%, var(--teal-dark) 55%, var(--teal) 100%);
      color:#fff; padding:56px 24px 64px;
    }
    .legal-head-inner { max-width:820px; margin:0 auto; }
    .legal-eyebrow {
      display:inline-block; padding:5px 13px; margin-bottom:16px;
      border-radius:var(--r-pill); background:rgba(255,255,255,.13);
      font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase;
      color:rgba(255,255,255,.9);
    }
    .legal-head h1 {
      font-size:clamp(30px,5vw,44px); font-weight:900; letter-spacing:-.03em;
      line-height:1.12; margin-bottom:14px;
    }
    .legal-head p { font-size:16px; color:rgba(255,255,255,.78); max-width:640px; }
    .legal-updated {
      margin-top:20px; font-size:13px; color:rgba(255,255,255,.6);
    }

    /* ─── Body ─── */
    .legal-wrap { max-width:820px; margin:-32px auto 0; padding:0 24px 72px; }
    .legal-card {
      background:var(--surface); border:1px solid var(--border);
      border-radius:var(--r-xl); box-shadow:var(--shadow);
      padding:44px 44px 40px;
    }
    .legal-card h2 {
      font-size:22px; font-weight:800; letter-spacing:-.02em;
      margin:40px 0 12px; padding-top:4px; color:var(--text);
    }
    .legal-card h2:first-child { margin-top:0; }
    .legal-card h3 {
      font-size:16px; font-weight:700; margin:24px 0 8px; color:var(--text);
    }
    .legal-card p { margin-bottom:14px; color:var(--text-mid); font-size:15.5px; }
    .legal-card ul, .legal-card ol { margin:0 0 16px 20px; color:var(--text-mid); font-size:15.5px; }
    .legal-card li { margin-bottom:8px; }
    .legal-card strong { color:var(--text); font-weight:650; }
    .legal-card hr { border:0; border-top:1px solid var(--border); margin:36px 0; }

    .callout {
      background:var(--teal-xlight); border:1px solid var(--teal-light);
      border-left:3px solid var(--teal);
      border-radius:var(--r-md); padding:16px 20px; margin:20px 0;
      font-size:14.5px; color:var(--text-mid);
    }
    .callout strong { color:var(--teal-dark); }
    .todo {
      background:#fff8e6; border:1px solid #f0d9a0; border-left:3px solid #d99b00;
      border-radius:var(--r-md); padding:16px 20px; margin:20px 0;
      font-size:14.5px; color:#6b5200;
    }
    .todo strong { color:#6b5200; }

    table.legal-table {
      width:100%; border-collapse:collapse; margin:16px 0 22px; font-size:14.5px;
      display:table;
    }
    table.legal-table th, table.legal-table td {
      text-align:left; padding:11px 14px; border-bottom:1px solid var(--border);
      vertical-align:top; color:var(--text-mid);
    }
    table.legal-table th {
      font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
      color:var(--text); background:var(--teal-xlight); white-space:nowrap;
    }
    table.legal-table td:first-child { color:var(--text); font-weight:600; white-space:nowrap; }

    .toc {
      background:var(--bg); border:1px solid var(--border);
      border-radius:var(--r-lg); padding:20px 24px; margin-bottom:8px;
    }
    .toc-label {
      font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
      color:var(--text-muted); margin-bottom:10px;
    }
    .toc ol { margin:0 0 0 18px; font-size:14.5px; }
    .toc li { margin-bottom:5px; }

    .legal-contact {
      margin-top:28px; padding:24px; border-radius:var(--r-lg);
      background:var(--teal-xlight); border:1px solid var(--teal-light);
    }
    .legal-contact-row { display:flex; flex-wrap:wrap; gap:10px 28px; margin-top:10px; font-size:15px; }

    /* ─── Footer ─── */
    footer { background: var(--footer-bg); color:rgba(255,255,255,.5); }
    .footer-main {
      max-width:1180px; margin:0 auto; padding:48px 24px 32px;
      display:grid; grid-template-columns:1fr auto; gap:48px; align-items:start;
    }
    .footer-brand-name { font-size:17px; font-weight:900; color:#fff; letter-spacing:-.02em; }
    .footer-brand-tagline { font-size:13px; color:rgba(255,255,255,.55); max-width:300px; line-height:1.5; }
    .footer-social { display: flex; gap: 10px; margin-top: 16px; }
    .footer-social a {
      display: inline-flex; align-items: center; justify-content: center;
      width: 34px; height: 34px; border-radius: 8px;
      background: rgba(255,255,255,.08); color: rgba(255,255,255,.65);
      transition: background var(--ease), color var(--ease), transform var(--ease);
    }
    .footer-social a:hover { background: var(--teal); color: #fff; text-decoration: none; transform: translateY(-2px); }
    .footer-social a:focus-visible { outline: 2px solid var(--accent, #06c8d0); outline-offset: 2px; }
    .footer-social svg { width: 17px; height: 17px; fill: currentColor; }
    .footer-nav-group { display:flex; flex-direction:column; gap:8px; }
    .footer-nav-label {
      font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
      color:rgba(255,255,255,.3); margin-bottom:4px;
    }
    .footer-nav-group a { font-size:13px; color:rgba(255,255,255,.55); transition:color var(--ease); }
    .footer-nav-group a:hover { color:#fff; text-decoration:none; }
    .footer-bottom {
      max-width:1180px; margin:0 auto; padding:16px 24px;
      border-top:1px solid rgba(255,255,255,.08);
      display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
      font-size:12.5px;
    }
    .footer-badge {
      display:inline-flex; align-items:center; gap:5px; padding:4px 10px;
      border-radius:var(--r-pill); background:rgba(255,255,255,.07); font-size:11.5px;
    }

    @media (max-width:860px) { .footer-main { grid-template-columns:1fr; gap:32px; } }
    @media (max-width:640px) {
      .legal-card { padding:30px 22px 28px; border-radius:var(--r-lg); }
      .legal-head { padding:40px 20px 52px; }
      .legal-wrap { padding:0 16px 56px; }
    }

    /* ─── Dark mode ─── */
    
  