/* Studio:Blueprint — Public Design System
   Shared across all static marketing pages.
   Matches homepage (gateway.jsx) design patterns exactly. */

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}

body{
  background:#f6f4ef;
  background-image:
    radial-gradient(circle at top right,rgba(59,165,168,0.08),transparent 28%),
    radial-gradient(circle at top left,rgba(196,125,78,0.08),transparent 20%);
  color:#161d24;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  line-height:1.45;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

a{color:inherit;text-decoration:none}

/* ── Tokens ── */
:root{
  --bg:#f6f4ef;
  --text:#161d24;
  --body:#36424c;
  --muted:#5f6670;
  --detail:#43505b;
  --list:#5b6670;
  --label:#7a848e;
  --line:rgba(23,23,23,0.08);
  --teal:#3BA5A8;
  --copper:#C47D4E;
  --dark:#0A0C10;
  --dark-soft:#12161d;
  --white-card:rgba(255,255,255,0.72);
  --shadow:0 18px 44px rgba(17,24,39,0.08);
  --font:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;
  --mono:'JetBrains Mono',monospace;
  --max:1180px;
  --card:rgba(255,255,255,0.72);
  --border:rgba(23,23,23,0.08);
  --radius:16px;
  --accent:#3BA5A8;
}

/* ── Wrap ── */
.wrap{width:min(var(--max),calc(100vw - 40px));margin:0 auto}

/* ── Nav ── */
.nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:rgba(246,244,239,0.82);border-bottom:1px solid var(--line)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;max-width:var(--max);margin:0 auto;padding:18px 20px}
.nav-brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.nav-icon{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,#3BA5A8,#2d8285);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.nav-brand-text{display:flex;flex-direction:column}
.nav-brand-name{font-size:15px;font-weight:600;color:var(--text);line-height:1.2;letter-spacing:-0.2px}
.nav-brand-sub{font-size:9px;color:var(--teal);letter-spacing:0.18em;text-transform:uppercase;opacity:0.65;line-height:1}
.nav-links{display:flex;align-items:center;gap:26px}
.nav-links a{color:var(--muted);text-decoration:none;font-size:14px;transition:color 0.15s}
.nav-links a:hover{color:var(--text)}
.nav-cta{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 14px;border-radius:999px;background:#111;color:#fff;font-size:12px;font-weight:700;text-decoration:none;transition:transform 160ms ease}
.nav-cta:hover{transform:translateY(-1px)}
.hamburger{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:36px;height:36px;background:transparent;border:none;cursor:pointer;padding:4px}
.hamburger span{display:block;width:20px;height:2px;background:var(--text);border-radius:1px}
.mob-menu{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg);z-index:100;flex-direction:column;padding:24px}
.mob-menu.open{display:flex}
.mob-menu-header{display:flex;justify-content:space-between;align-items:center}
.mob-menu-close{background:transparent;border:none;color:var(--text);font-size:24px;cursor:pointer;padding:4px;line-height:1}
.mob-menu-links{padding-top:48px;display:flex;flex-direction:column;gap:8px;flex:1}
.mob-menu-links a{font-size:28px;font-weight:600;color:var(--text);text-decoration:none;padding:12px 0;display:block;border-bottom:1px solid var(--line)}
.mob-menu-cta{display:block;text-align:center;background:var(--teal);color:#fff;border:none;border-radius:100px;padding:16px;font-size:16px;font-weight:700;text-decoration:none;margin-top:auto}

/* ── Hero (two-column) ── */
.hero{padding:96px 0 96px}
.hero-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:center}
.hero-eyebrow{display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(59,165,168,0.18);background:rgba(59,165,168,0.08);color:var(--teal);padding:8px 14px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase}
.hero h1{margin:18px 0 18px;max-width:760px;font-size:clamp(48px,7vw,84px);line-height:0.95;letter-spacing:-0.05em;color:var(--text)}
.hero-sub{max-width:640px;font-size:clamp(19px,2.2vw,24px);line-height:1.32;color:var(--body)}
.hero-visual img{width:100%;height:auto;border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,0.12);transform:translateY(4px);filter:brightness(1.04) contrast(1.05)}

/* ── Buttons ── */
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 18px;border-radius:999px;font-weight:600;font-size:14px;transition:transform 160ms ease;text-decoration:none}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:linear-gradient(135deg,#3BA5A8,#48b5b7);color:#fff;border:1px solid rgba(59,165,168,0.35);box-shadow:0 14px 30px rgba(59,165,168,0.16)}
.btn-secondary{background:rgba(255,255,255,0.72);color:#202b34;border:1px solid var(--line)}

/* ── Section header (two-column) ── */
.section{padding:72px 0}
.section-header{display:grid;grid-template-columns:0.95fr 1.05fr;gap:28px;align-items:start;margin-bottom:34px}
.section-kicker{font-size:12px;text-transform:uppercase;letter-spacing:0.12em;font-weight:700;color:var(--copper);margin-bottom:12px}
.section h2{margin:0;font-size:clamp(30px,4vw,52px);line-height:1.02;letter-spacing:-0.04em;color:var(--text)}
.section-copy{font-size:17px;color:var(--body)}
.section-copy p{margin:0 0 12px}
.section-center{max-width:840px;margin:0 auto 36px;text-align:center}
.section-center p{max-width:720px;margin:12px auto 0;font-size:17px;color:var(--body)}

/* ── Architecture columns ── */
.arch-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:10px}
.arch-col{text-align:left;padding-top:24px}
.arch-col.teal{border-top:3px solid var(--teal)}
.arch-col.copper{border-top:3px solid var(--copper)}
.arch-col.grey{border-top:3px solid rgba(23,23,23,0.14)}
.arch-label{font-size:11px;text-transform:uppercase;letter-spacing:0.12em;color:var(--label);margin-bottom:10px;font-weight:700}
.arch-col h3{margin:0 0 10px;font-size:28px;letter-spacing:-0.03em;color:#182028}
.arch-col p{margin:0 0 14px;color:var(--detail);font-size:15px}
.arch-col ul{margin:0;padding-left:18px;color:var(--list);font-size:14px}
.arch-col li{margin:8px 0}
.arch-band{margin:34px auto 0;max-width:860px;padding:18px 22px;border-radius:18px;background:linear-gradient(90deg,rgba(59,165,168,0.10),rgba(196,125,78,0.12));color:#20303a;font-weight:600;text-align:center;font-size:15px}

/* ── Dark band ── */
.dark-band{background:linear-gradient(180deg,var(--dark),var(--dark-soft));color:#fff}
.dark-band .section-kicker{color:var(--teal)}
.dark-band h2{color:#fff}
.dark-band .section-copy{color:rgba(255,255,255,0.78)}
.dark-band .section-copy p{color:rgba(255,255,255,0.78)}
.diff-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:30px}
.diff-card{padding:22px;border-radius:18px;border:1px solid rgba(255,255,255,0.08);background:rgba(255,255,255,0.03)}
.diff-card .mini{font-size:11px;text-transform:uppercase;letter-spacing:0.12em;font-weight:700;margin-bottom:10px;color:rgba(255,255,255,0.55)}
.diff-card h3{margin:0 0 8px;font-size:20px;color:#fff}
.diff-card p{margin:0;font-size:14px;color:rgba(255,255,255,0.70)}

/* ── Flow steps ── */
.flow-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;align-items:stretch}
.flow-step{text-align:left;padding:22px;border-radius:18px;background:var(--white-card);border:1px solid rgba(23,23,23,0.05);box-shadow:var(--shadow);min-height:170px}
.flow-num{font-size:26px;line-height:1;margin-bottom:14px;font-weight:800}
.flow-num.teal{color:rgba(59,165,168,0.26)}
.flow-num.copper{color:rgba(196,125,78,0.28)}
.flow-step h3{margin:0 0 8px;font-size:19px;color:#172028}
.flow-step p{margin:0;font-size:14px;color:#5e6974}

/* ── Capability grid ── */
.cap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.cap-card{background:#fff;border:1px solid rgba(23,23,23,0.05);box-shadow:var(--shadow);border-radius:16px;padding:28px;transition:border-color 0.2s}
.cap-card:hover{border-color:rgba(59,165,168,0.3)}
.cap-dot{width:10px;height:10px;border-radius:5px;margin-bottom:14px}
.cap-dot.teal{background:var(--teal);opacity:0.5}
.cap-dot.copper{background:var(--copper);opacity:0.5}
.cap-card h3{font-size:18px;font-weight:600;color:var(--text);margin-bottom:8px}
.cap-card p{font-size:14px;color:var(--muted);line-height:1.55;margin:0}

/* ── Step sections (full-width alternating for how-it-works) ── */
.step-section{padding:56px 0;border-bottom:1px solid var(--line)}
.step-section:last-child{border-bottom:none}
.step-grid{display:grid;grid-template-columns:0.4fr 1fr;gap:48px;align-items:start}
.step-num{font-size:48px;font-weight:800;line-height:1}
.step-num.teal{color:rgba(59,165,168,0.22)}
.step-num.copper{color:rgba(196,125,78,0.24)}
.step-title{font-size:28px;font-weight:600;letter-spacing:-0.03em;color:var(--text);margin-top:8px}
.step-body{font-size:16px;color:var(--body);margin-bottom:16px}
.step-detail{background:#fff;border:1px solid rgba(23,23,23,0.05);box-shadow:var(--shadow);border-radius:14px;padding:20px 24px}
.step-detail-label{font-size:11px;text-transform:uppercase;letter-spacing:0.10em;font-weight:600;color:var(--teal);margin-bottom:8px}
.step-detail p{font-size:14px;color:var(--detail);margin:0;line-height:1.6}

/* ── Connection band ── */
.connection-band{padding:28px 32px;border-radius:18px;background:linear-gradient(90deg,rgba(59,165,168,0.10),rgba(196,125,78,0.12));color:#20303a;font-weight:600;text-align:center;font-size:15px;margin-top:48px;line-height:1.7}

/* ── Stat band ── */
.stat-band{display:grid;grid-template-columns:repeat(4,1fr);background:var(--white-card);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stat-item{padding:32px;border-right:1px solid var(--line)}
.stat-item:last-child{border-right:none}
.stat-num{font-family:var(--mono);font-size:32px;font-weight:500;color:var(--teal);line-height:1;margin-bottom:6px}
.stat-label{font-family:var(--mono);font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:var(--muted)}

/* ── CTA panel ── */
.cta-wrap{padding:72px 0 84px}
.cta-panel{background:linear-gradient(180deg,var(--dark),#131821);color:#fff;border-radius:22px;padding:46px 34px;text-align:center;box-shadow:0 20px 50px rgba(0,0,0,0.14)}
.cta-panel h2{margin:0;font-size:clamp(30px,4vw,52px);line-height:1.02;letter-spacing:-0.04em;color:#fff}
.cta-panel p{margin:12px auto 0;max-width:720px;color:rgba(255,255,255,0.76);font-size:17px}
.cta-panel .btn-row{justify-content:center;margin-top:22px}

/* ── Footer ── */
.sb-footer{background:#050810;border-top:1px solid #1e293b;padding:48px 20px 32px;margin-top:0}
.sb-footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:48px;max-width:var(--max);margin:0 auto}
.sb-footer-brand{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.sb-footer-desc{font-size:12px;color:#6E7681;line-height:1.6;max-width:220px;margin:0}
.sb-footer-heading{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.1em;color:#E8E6E1;margin-bottom:12px}
.sb-footer a{display:block;font-size:13px;color:#6E7681;text-decoration:none;padding:4px 0}
.sb-footer a:hover{color:#9CA3AF}

/* ── Responsive ── */
@media(max-width:980px){
  .nav-links,.nav-cta{display:none !important}
  .hamburger{display:flex !important}
  .hero{padding:72px 0 84px}
  .hero-grid{grid-template-columns:1fr !important;gap:32px !important}
  .hero-visual{order:2}
  .section-header{grid-template-columns:1fr}
  .arch-grid,.diff-grid,.cap-grid{grid-template-columns:1fr}
  .flow-grid{grid-template-columns:1fr}
  .step-grid{grid-template-columns:1fr;gap:24px}
  .stat-band{grid-template-columns:1fr 1fr}
}
@media(max-width:768px){
  .sb-footer-grid{grid-template-columns:1fr !important;gap:32px !important}
}
@media(max-width:640px){
  .wrap{width:min(var(--max),calc(100vw - 24px))}
  h1{letter-spacing:-0.055em !important}
  .hero{padding-top:48px !important}
  .btn-row{gap:10px}
  .btn{width:100%}
  .cta-panel{padding:34px 22px !important}
  .stat-band{grid-template-columns:1fr}
}

/* ══════════════════════════════════════════════
   Legal page system
   ══════════════════════════════════════════════ */

/* Hero: two-column with meta card */
.legal-hero{max-width:var(--max);margin:0 auto;padding:72px 20px 48px;display:grid;grid-template-columns:1fr 340px;gap:72px;align-items:end}
.legal-crumb{font-family:var(--mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--teal);margin-bottom:22px;display:flex;align-items:center;gap:10px}
.legal-crumb a{color:var(--teal);text-decoration:none;opacity:0.7}
.legal-crumb a:hover{opacity:1}
.legal-crumb .sep{color:rgba(23,23,23,0.2)}
.legal-crumb .here{color:var(--text);font-weight:500;opacity:1}
.legal-hero h1{font-size:clamp(36px,5vw,56px);line-height:1.05;letter-spacing:-0.015em;font-weight:600;color:var(--text);margin:0 0 16px}
.legal-lede{font-size:17px;line-height:1.55;color:var(--muted);max-width:560px;margin:0}
.legal-lede em{color:var(--text);font-style:normal;font-weight:500}

/* Meta card */
.meta-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:var(--shadow);font-size:12.5px}
.meta-card .row{display:flex;justify-content:space-between;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line)}
.meta-card .row:last-child{border-bottom:none;padding-bottom:0}
.meta-card .row:first-child{padding-top:0}
.meta-card .lbl{font-family:var(--mono);font-size:9.5px;color:var(--label);letter-spacing:0.14em;text-transform:uppercase}
.meta-card .val{color:var(--text);font-weight:500;text-align:right;max-width:60%}
.meta-card .val a{color:var(--teal);text-decoration:none}

/* Body: TOC + content */
.legal-body{max-width:var(--max);margin:0 auto;padding:24px 20px 96px;display:grid;grid-template-columns:220px 1fr;gap:64px;align-items:start}

/* Sticky TOC */
.legal-toc{position:sticky;top:80px;align-self:start;padding-top:8px}
.legal-toc .toc-label{font-family:var(--mono);font-size:9.5px;letter-spacing:0.18em;text-transform:uppercase;color:var(--label);margin-bottom:14px}
.legal-toc ol{list-style:none;margin:0;padding:0;counter-reset:toc}
.legal-toc li{counter-increment:toc;position:relative;padding:6px 0 6px 28px;font-size:12.5px;line-height:1.5}
.legal-toc li::before{content:counter(toc,decimal-leading-zero);position:absolute;left:0;top:6px;font-family:var(--mono);font-size:9.5px;color:var(--label);letter-spacing:0.06em}
.legal-toc a{color:var(--muted);text-decoration:none;display:block;padding:1px 0;transition:color 120ms}
.legal-toc a:hover{color:var(--text)}

/* Content wrapper */
.legal-content{max-width:720px;font-size:15px;line-height:1.7}
.legal-content h2{font-size:28px;line-height:1.12;letter-spacing:-0.01em;font-weight:600;color:var(--text);margin:56px 0 18px;display:flex;align-items:baseline;gap:14px;scroll-margin-top:90px}
.legal-content h2:first-child{margin-top:0}
.legal-content h2 .num{font-family:var(--mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--teal);font-weight:500;position:relative;top:-3px}
.legal-content h3{font-size:16px;font-weight:600;color:var(--text);margin:32px 0 12px}
.legal-content p{color:rgba(23,23,23,0.72);line-height:1.7;font-size:15px;margin:0 0 16px}
.legal-content p strong{color:var(--text);font-weight:600}
.legal-content ul,.legal-content ol{margin:8px 0 22px;padding-left:24px}
.legal-content li{margin:0 0 10px;color:rgba(23,23,23,0.72);line-height:1.7;font-size:15px}
.legal-content li strong{color:var(--text);font-weight:600}
.legal-content a{color:var(--teal);text-decoration:none;border-bottom:1px solid rgba(59,165,168,0.3);transition:border-color 120ms}
.legal-content a:hover{border-bottom-color:var(--teal)}
.legal-content .sec-intro{color:var(--muted);font-size:16px;line-height:1.65;margin:0 0 18px;max-width:600px}
.legal-content hr.mini{border:none;border-top:1.5px solid var(--copper);margin:14px 0 22px;width:48px}

/* Legal tables */
.legal-content .table-wrap{margin:18px 0 28px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
.legal-content table{width:100%;border-collapse:collapse}
.legal-content th{text-align:left;padding:14px 16px;font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--text);background:rgba(246,244,239,0.6);border-bottom:1px solid var(--line)}
.legal-content td{padding:12px 16px;font-size:14px;color:rgba(23,23,23,0.72);border-bottom:1px solid var(--line);vertical-align:top;line-height:1.6}
.legal-content tr:last-child td{border-bottom:none}

/* Legal responsive */
@media(max-width:980px){
  .legal-hero{grid-template-columns:1fr;gap:32px}
  .legal-body{grid-template-columns:1fr}
  .legal-toc{position:static;border-bottom:1px solid var(--line);padding-bottom:24px;margin-bottom:8px}
}
