/* ============================================================
 * AllocateRite — Landing v4 ("paper ledger" concept)
 * Light cutover of the v2 dark theme (boss: v2 read too dark and
 * too far from the logged-in pages). Same ledger/itemized concept,
 * paper palette; dark ink retained only for the hero, the monitoring
 * band, and the closing CTA.
 *
 * Self-contained: does NOT depend on landing.css or landing_v2.css.
 * Everything is scoped under body.landing-v4 so the v2 stack stays
 * intact on /index-backup for comparison and rollback.
 * ============================================================ */

:root{
  --ink:#0C1B2A;
  --ink-soft:#16283C;
  --paper:#EFECE2;
  --paper-white:#FAF9F4;
  --green:#1E5C45;
  --green-soft:#EAF0EA;
  --brass:#A9832F;
  --slate:#56636D;
  --slate-light:#8A94A0;
  --rule:#D8D2C0;
  --rule-dark:#2A3B4F;
  --radius:2px;
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }

body.landing-v4{
  background:var(--paper-white);
  color:var(--ink);
  font-family:'Inter', sans-serif;
  font-size:16px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.landing-v4 ::selection{ background:var(--brass); color:var(--paper-white); }

.landing-v4 h1,
.landing-v4 h2,
.landing-v4 h3,
.landing-v4 h4{
  font-family:'Cormorant Garamond', serif; font-weight:500; letter-spacing:-0.01em; color:var(--ink);
}
.landing-v4 .mono{ font-family:'IBM Plex Mono', monospace; }
.landing-v4 a{ color:inherit; text-decoration:none; }
.landing-v4 img{ max-width:100%; display:block; }
.landing-v4 .wrap{ max-width:1180px; margin:0 auto; padding:0 32px; }

/* header is sticky (in flow), so anchors need to clear it on jump */
.landing-v4 section[id]{ scroll-margin-top:88px; }

.landing-v4 .eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--brass);
  display:flex; align-items:center; gap:10px;
}
.landing-v4 .eyebrow::before{ content:''; width:16px; height:1px; background:var(--brass); display:inline-block; flex:none; }

/* ---------- Buttons ---------- */
.landing-v4 button,
.landing-v4 .btn{
  font-family:'Inter', sans-serif; cursor:pointer; border:none; font-weight:600; font-size:14.5px;
}
.landing-v4 .btn-primary{
  background:var(--ink); color:var(--paper-white); padding:13px 26px; border-radius:var(--radius);
  letter-spacing:0.01em; transition:background 0.2s ease; display:inline-flex; align-items:center; gap:8px;
}
.landing-v4 .btn-primary:hover{ background:var(--green); }
.landing-v4 .btn-ghost{
  background:transparent; color:var(--ink); padding:13px 22px;
  border:1px solid var(--rule); border-radius:var(--radius);
  transition:border-color 0.2s ease, color 0.2s ease;
  display:inline-flex; align-items:center; gap:8px;
}
.landing-v4 .btn-ghost:hover{ border-color:var(--ink); }

/* ---------- Nav ---------- */
.landing-v4 header.nav{
  position:sticky; top:0; z-index:100;
  background:rgba(250,249,244,0.92); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--rule);
}
.landing-v4 .nav-inner{
  max-width:1180px; margin:0 auto; padding:0 32px;
  height:68px; display:flex; align-items:center; justify-content:space-between; gap:24px;
}
/* inline wordmark (logo_ar_svg.jsp) — inherits currentColor */
.landing-v4 .wordmark{ display:inline-flex; align-items:center; color:var(--ink); flex:none; }
.landing-v4 .wordmark .app-logo-svg{ height:20px; width:auto; }
.landing-v4 .foot-logo .app-logo-svg{ height:18px; }
.landing-v4 nav.links{ display:flex; gap:30px; font-size:14px; font-weight:500; }
.landing-v4 nav.links a{ opacity:0.75; transition:opacity 0.15s; white-space:nowrap; }
.landing-v4 nav.links a:hover{ opacity:1; }
.landing-v4 .nav-cta{ display:flex; align-items:center; gap:18px; flex:none; }
.landing-v4 .nav-login{ font-size:14px; font-weight:500; opacity:0.75; }
.landing-v4 .nav-login:hover{ opacity:1; }
@media (max-width:1020px){ .landing-v4 nav.links{ gap:22px; font-size:13.5px; } }
@media (max-width:900px){ .landing-v4 nav.links{ display:none; } .landing-v4 .nav-login{ display:none; } }

/* ---------- Hero ---------- */
.landing-v4 .hero{
  background:var(--ink); color:var(--paper-white); padding:88px 0 0;
  position:relative; overflow:hidden;
}
.landing-v4 .hero-grid{
  display:grid; grid-template-columns:1.05fr 0.85fr; gap:60px; align-items:start;
  max-width:1180px; margin:0 auto; padding:0 32px 64px;
}
@media (max-width:940px){ .landing-v4 .hero-grid{ grid-template-columns:1fr; } }
.landing-v4 .hero .eyebrow{ color:var(--brass); margin-bottom:22px; }
.landing-v4 .hero h1{
  font-size:clamp(38px, 5vw, 60px); line-height:1.04; color:var(--paper-white); max-width:640px;
}
.landing-v4 .hero h1 em{ font-style:italic; color:#C7D8CC; font-size: 50px;}
.landing-v4 .hero p.lede{ margin-top:24px; font-size:17.5px; color:#B9C3CD; max-width:520px; line-height:1.65; }
.landing-v4 .hero-actions{ display:flex; gap:14px; margin-top:34px; flex-wrap:wrap; }
.landing-v4 .hero .btn-primary{ background:var(--paper-white); color:var(--ink); }
.landing-v4 .hero .btn-primary:hover{ background:var(--green); color:#fff; }
.landing-v4 .hero .btn-ghost{ border-color:rgba(250,249,244,0.28); color:var(--paper-white); }
.landing-v4 .hero .btn-ghost:hover{ border-color:var(--paper-white); }

.landing-v4 .audience-pills{ display:flex; gap:10px; margin-top:40px; flex-wrap:wrap; }
.landing-v4 .audience-pills span{
  font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.04em;
  border:1px solid rgba(250,249,244,0.22); padding:7px 13px; border-radius:20px; color:#C7D0D8;
}
.landing-v4 .benefit-row{
  display:flex; gap:28px; margin-top:34px; padding-top:26px;
  border-top:1px solid rgba(250,249,244,0.14); flex-wrap:wrap;
}
.landing-v4 .benefit .b-num{ font-family:'IBM Plex Mono', monospace; font-size:22px; font-weight:600; color:var(--paper-white); }
.landing-v4 .benefit .b-lbl{ font-size:12px; color:#93A0AC; margin-top:4px; max-width:140px; line-height:1.4; }
/* The footnote that makes the hero number an estimate rather than a promise. Dimmer
   than the stat labels but deliberately not faint - a disclaimer nobody can read is
   not a disclaimer. */
.landing-v4 .benefit-note{
  margin-top:16px; max-width:560px; font-size:11px; line-height:1.55; color:#8B97A3;
}

/* ---------- Ledger tape (illustrative household — signature element) ---------- */
.landing-v4 .ledger-card{
  background:var(--paper-white); color:var(--ink); border-radius:3px;
  box-shadow:0 30px 60px -20px rgba(0,0,0,0.5); overflow:hidden; transform:translateY(6px);
}
.landing-v4 .ledger-card-head{
  display:flex; justify-content:space-between; align-items:center; gap:14px;
  padding:16px 20px; border-bottom:1px solid var(--rule); background:var(--paper);
}
.landing-v4 .ledger-card-head .title{
  font-family:'IBM Plex Mono', monospace; font-size:11.5px; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--slate);
}
.landing-v4 .ledger-card-head .dot{
  width:7px; height:7px; border-radius:50%; background:var(--green);
  display:inline-block; margin-right:6px; box-shadow:0 0 0 3px var(--green-soft);
}
.landing-v4 .ledger-viewport{ height:280px; overflow:hidden; position:relative; }
.landing-v4 .ledger-viewport::after{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(to bottom, var(--paper-white) 0%, transparent 12%, transparent 88%, var(--paper-white) 100%);
}
.landing-v4 .ledger-tape{ animation:tapeScroll 22s linear infinite; }
.landing-v4 .ledger-row{
  display:grid; grid-template-columns:56px 1fr auto; gap:14px; align-items:start;
  padding:13px 20px; border-bottom:1px solid var(--rule);
}
.landing-v4 .ledger-row .date{ font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--slate-light); padding-top:2px; }
.landing-v4 .ledger-row .desc .item{ font-size:13.5px; font-weight:600; }
.landing-v4 .ledger-row .desc .sub{ font-size:12px; color:var(--slate); margin-top:2px; }
.landing-v4 .ledger-row .val{
  font-family:'IBM Plex Mono', monospace; font-size:13px; font-weight:600;
  text-align:right; white-space:nowrap; padding-top:2px;
}
.landing-v4 .val.pos{ color:var(--green); }
.landing-v4 .val.neu{ color:var(--brass); }
@keyframes tapeScroll{ 0%{ transform:translateY(0); } 100%{ transform:translateY(-50%); } }
.landing-v4 .ledger-total{
  display:flex; justify-content:space-between; align-items:center; gap:14px;
  padding:16px 20px; background:var(--ink); color:var(--paper-white);
}
.landing-v4 .ledger-total .label{ font-size:12px; color:#B9C3CD; letter-spacing:0.02em; }
.landing-v4 .ledger-total .value{ font-family:'IBM Plex Mono', monospace; font-size:20px; font-weight:600; color:#fff; }

/* ---------- Live platform stats strip (real, from dashboard-statistics API) ---------- */
.landing-v4 .stats-strip{ background:var(--ink-soft); border-top:1px solid var(--rule-dark); }
.landing-v4 .stats-inner{
  max-width:1180px; margin:0 auto; padding:34px 32px;
  display:grid; grid-template-columns:repeat(4,1fr); gap:20px;
}
@media (max-width:760px){ .landing-v4 .stats-inner{ grid-template-columns:repeat(2,1fr); gap:26px 20px; } }
.landing-v4 .stat .num{ font-family:'IBM Plex Mono', monospace; font-size:26px; font-weight:600; color:var(--paper-white); line-height:1.1; }
.landing-v4 .stat .lbl{ font-size:12.5px; color:#93A0AC; margin-top:4px; }
/* Second row: the headline trade value broken down by strategy. Smaller figures
   and a rule above, so it reads as the supporting detail of the row above it
   rather than four more headline numbers. */
.landing-v4 .stats-inner--split{
  padding-top:0; padding-bottom:34px;
}
.landing-v4 .stats-inner--split::before{
  content:''; grid-column:1/-1; height:1px;
  background:var(--rule-dark); margin-bottom:26px;
}
.landing-v4 .stats-inner--split .num{ font-size:19px; }
.landing-v4 .stats-inner--split .lbl{ font-size:12px; }

/* skeleton loader dots shown until the stats API answers */
.landing-v4 .asset-loading{ display:inline-flex; gap:3px; }
.landing-v4 .asset-loading .dot{ color:#93A0AC; animation:dotBlink 1.2s infinite; }
.landing-v4 .asset-loading .dot-2{ animation-delay:0.2s; }
.landing-v4 .asset-loading .dot-3{ animation-delay:0.4s; }
@keyframes dotBlink{ 0%,80%,100%{ opacity:0.25; } 40%{ opacity:1; } }

/* ---------- Section shell ---------- */
.landing-v4 section{ padding:96px 0; }
.landing-v4 .section-head{ max-width:640px; margin-bottom:56px; }
.landing-v4 .section-head .eyebrow{ margin-bottom:16px; }
.landing-v4 .section-head h2{ font-size:clamp(28px,3.4vw,40px); line-height:1.12; }
.landing-v4 .section-head p{ margin-top:16px; font-size:16px; color:var(--slate); line-height:1.65; }

/* microlabel flagging illustrative product mockups */
.landing-v4 .illustrative{
  font-family:'IBM Plex Mono', monospace; font-size:10px; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--slate-light);
}

/* ---------- OCIO grid ---------- */
.landing-v4 .ocio-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--rule); border:1px solid var(--rule); }
@media (max-width:820px){ .landing-v4 .ocio-grid{ grid-template-columns:1fr; } }
.landing-v4 .ocio-cell{ background:var(--paper-white); padding:34px 30px; position:relative; }
.landing-v4 .ocio-cell .idx{ font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--brass); margin-bottom:16px; }
.landing-v4 .ocio-cell h3{ font-size:19px; margin-bottom:10px; }
.landing-v4 .ocio-cell p{ font-size:14.5px; color:var(--slate); line-height:1.6; }
/* closing accent cell */
.landing-v4 .ocio-cell.accent{ background:var(--ink); }
.landing-v4 .ocio-cell.accent h3{ color:var(--paper-white); }
.landing-v4 .ocio-cell.accent p{ color:#B9C3CD; }

/* ---------- Four things — ledger rows ---------- */
.landing-v4 .capabilities{ border-top:1px solid var(--rule); }
.landing-v4 .cap-row{
  display:grid; grid-template-columns:110px 1fr 1.3fr; gap:36px;
  padding:38px 0; border-bottom:1px solid var(--rule); align-items:start;
}
@media (max-width:820px){ .landing-v4 .cap-row{ grid-template-columns:1fr; gap:10px; } }
.landing-v4 .cap-row .freq{
  font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--brass);
  letter-spacing:0.04em; text-transform:uppercase; padding-top:4px;
}
.landing-v4 .cap-row .title-block .tag{ font-size:12px; color:var(--slate-light); margin-bottom:6px; }
.landing-v4 .cap-row h3{ font-size:24px; margin-bottom:4px; }
.landing-v4 .cap-row .desc p{ font-size:15px; color:var(--slate); line-height:1.7; max-width:480px; }

/* ---------- Newt AI ---------- */
.landing-v4 .newt{ background:var(--green-soft); }
.landing-v4 .newt-grid{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
@media (max-width:900px){ .landing-v4 .newt-grid{ grid-template-columns:1fr; } }
.landing-v4 .newt-copy .eyebrow{ color:var(--green); }
.landing-v4 .newt-copy .eyebrow::before{ background:var(--green); }
.landing-v4 .newt-copy h2{ font-size:clamp(28px,3.4vw,38px); line-height:1.12; margin-top:14px; }
.landing-v4 .newt-copy p{ margin-top:18px; color:var(--slate); font-size:16px; line-height:1.7; max-width:460px; }
.landing-v4 .newt-query{
  margin-top:28px; background:var(--paper-white); border:1px solid var(--rule); border-radius:3px;
  padding:16px 18px; font-family:'IBM Plex Mono', monospace; font-size:13.5px;
  display:flex; align-items:center; gap:10px; color:var(--ink);
}
.landing-v4 .newt-query .cursor{ width:7px; height:15px; background:var(--green); display:inline-block; animation:blink 1.1s step-end infinite; }
@keyframes blink{ 50%{ opacity:0; } }
.landing-v4 .newt-card{
  background:var(--ink); color:var(--paper-white); border-radius:4px; padding:28px;
  box-shadow:0 24px 50px -18px rgba(12,27,42,0.35);
}
.landing-v4 .newt-card .h{
  font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--brass);
  letter-spacing:0.08em; text-transform:uppercase; margin-bottom:18px;
}
.landing-v4 .household{ padding:16px 0; border-bottom:1px solid rgba(250,249,244,0.12); }
.landing-v4 .household:last-child{ border-bottom:none; }
.landing-v4 .household .row1{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:8px; }
.landing-v4 .household .name{ font-weight:600; font-size:15px; }
.landing-v4 .household .aum{ font-family:'IBM Plex Mono', monospace; font-size:13px; color:#B9C3CD; }
.landing-v4 .household ul{ list-style:none; font-size:12.5px; color:#AEBAC5; line-height:1.9; }
.landing-v4 .household li::before{ content:'\2014'; color:var(--brass); margin-right:8px; }

/* ---------- Proposal engine ---------- */
.landing-v4 .proposal-grid{
  display:grid; grid-template-columns:0.85fr 1.15fr; gap:0;
  border:1px solid var(--rule); border-radius:4px; overflow:hidden;
}
@media (max-width:900px){ .landing-v4 .proposal-grid{ grid-template-columns:1fr; } }
.landing-v4 .proposal-left{ background:var(--paper); padding:36px 32px; }
.landing-v4 .proposal-left .eyebrow{ margin-bottom:20px; }
.landing-v4 .field{ display:flex; justify-content:space-between; gap:12px; padding:11px 0; border-bottom:1px solid var(--rule); font-size:14px; }
.landing-v4 .field:last-child{ border-bottom:none; }
.landing-v4 .field .k{ color:var(--slate); }
.landing-v4 .field .v{ font-weight:600; text-align:right; max-width:55%; }
.landing-v4 .proposal-right{ background:var(--paper-white); padding:36px 32px; }
.landing-v4 .proposal-right .h{
  font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--brass);
  letter-spacing:0.08em; text-transform:uppercase; margin-bottom:20px;
}
.landing-v4 .alloc-bar{ margin-bottom:14px; }
.landing-v4 .alloc-bar .top{ display:flex; justify-content:space-between; gap:12px; font-size:13.5px; margin-bottom:6px; }
.landing-v4 .alloc-bar .top .pct{ font-family:'IBM Plex Mono', monospace; font-weight:600; }
.landing-v4 .alloc-track{ height:7px; background:var(--paper); border-radius:4px; overflow:hidden; }
.landing-v4 .alloc-fill{ height:100%; background:var(--green); border-radius:4px; width:0; transition:width 1.2s cubic-bezier(.2,.8,.2,1); }
.landing-v4 .why-box{
  margin-top:24px; padding:16px 18px; background:var(--green-soft); border-left:2px solid var(--green);
  font-size:13.5px; color:#2C3B36; line-height:1.7;
}

/* ---------- CRM & meeting center ---------- */
.landing-v4 .crm-grid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:48px; }
@media (max-width:900px){ .landing-v4 .crm-grid{ grid-template-columns:1fr; } }
.landing-v4 .task-list{ border:1px solid var(--rule); border-radius:4px; overflow:hidden; }
.landing-v4 .task{
  display:flex; align-items:center; gap:14px; padding:16px 18px;
  border-bottom:1px solid var(--rule); background:var(--paper-white);
}
.landing-v4 .task:last-child{ border-bottom:none; }
.landing-v4 .task .mark{
  width:20px; height:20px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:11px; flex:none;
}
.landing-v4 .task .mark.done{ background:var(--green); color:#fff; }
.landing-v4 .task .mark.pend{ background:var(--paper); color:var(--brass); border:1px solid var(--brass); }
.landing-v4 .task .body .t{ font-size:14px; font-weight:600; }
.landing-v4 .task .body .s{ font-size:12.5px; color:var(--slate); margin-top:2px; }
.landing-v4 .task .status{
  margin-left:auto; font-family:'IBM Plex Mono', monospace; font-size:11px; text-transform:uppercase;
  letter-spacing:0.04em; color:var(--slate-light); white-space:nowrap;
}

.landing-v4 .autonomy{ border:1px solid var(--rule); border-radius:4px; padding:22px; }
.landing-v4 .autonomy .h{
  font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--brass);
  letter-spacing:0.08em; text-transform:uppercase; margin-bottom:18px;
}
.landing-v4 .auto-row{ display:flex; justify-content:space-between; align-items:center; gap:14px; padding:13px 0; border-bottom:1px solid var(--rule); }
.landing-v4 .auto-row:last-child{ border-bottom:none; }
.landing-v4 .auto-row .n{ font-size:14px; font-weight:500; }
.landing-v4 .auto-row .d{ font-size:12px; color:var(--slate-light); margin-top:2px; }
.landing-v4 .toggle{
  font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:0.04em; text-transform:uppercase;
  padding:5px 10px; border-radius:20px; white-space:nowrap; flex:none;
}
.landing-v4 .toggle.full{ background:var(--green-soft); color:var(--green); }
.landing-v4 .toggle.review{ background:#F3E9D6; color:var(--brass); }
.landing-v4 .autonomy-note{ font-size:12px; color:var(--slate-light); margin-top:16px; line-height:1.6; }

/* ---------- Governance & compliance ---------- */
.landing-v4 .gov-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--rule); border:1px solid var(--rule); margin-bottom:1px;
}
@media (max-width:820px){ .landing-v4 .gov-grid{ grid-template-columns:1fr; } }
.landing-v4 .gov-card{ background:var(--paper-white); padding:32px 28px; }
.landing-v4 .gov-icon{ color:var(--brass); font-size:13px; margin-bottom:16px; }
.landing-v4 .gov-card h3{ font-size:19px; margin-bottom:10px; }
.landing-v4 .gov-card p{ font-size:14.5px; color:var(--slate); line-height:1.65; }

.landing-v4 .compliance-ledger{
  border:1px solid var(--rule); border-radius:4px; overflow:hidden;
  margin-top:48px; background:var(--paper-white);
}
.landing-v4 .compliance-head{
  display:flex; justify-content:space-between; align-items:center; gap:14px;
  padding:14px 20px; border-bottom:1px solid var(--rule); background:var(--paper);
}
.landing-v4 .compliance-head .title{
  font-family:'IBM Plex Mono', monospace; font-size:11.5px; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--slate);
}
.landing-v4 .compliance-head .dot{
  width:7px; height:7px; border-radius:50%; background:var(--green);
  display:inline-block; margin-right:6px; box-shadow:0 0 0 3px var(--green-soft);
}
.landing-v4 .compliance-row{
  display:grid; grid-template-columns:28px 1fr auto; gap:16px; align-items:start;
  padding:16px 20px; border-bottom:1px solid var(--rule);
}
.landing-v4 .compliance-row:last-child{ border-bottom:none; }
.landing-v4 .c-check{
  width:20px; height:20px; border-radius:50%; background:var(--green-soft); color:var(--green);
  display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; flex:none; margin-top:2px;
}
.landing-v4 .c-t{ font-size:14.5px; font-weight:600; }
.landing-v4 .c-s{ font-size:13px; color:var(--slate); margin-top:3px; line-height:1.55; }
.landing-v4 .c-status{
  font-family:'IBM Plex Mono', monospace; font-size:11px; text-transform:uppercase;
  letter-spacing:0.04em; color:var(--brass); white-space:nowrap; padding-top:3px;
}
@media (max-width:640px){
  .landing-v4 .compliance-row{ grid-template-columns:24px 1fr; }
  .landing-v4 .c-status{ grid-column:2; padding-top:0; }
}

/* ---------- Monitoring (dark band) ---------- */
.landing-v4 .monitor{ background:var(--ink); color:var(--paper-white); }
.landing-v4 .monitor .section-head h2{ color:var(--paper-white); }
.landing-v4 .monitor .section-head p{ color:#AEBAC5; }
.landing-v4 .monitor .eyebrow{ color:var(--brass); }
.landing-v4 .gauge-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:rgba(250,249,244,0.1); border:1px solid rgba(250,249,244,0.1);
}
@media (max-width:820px){ .landing-v4 .gauge-grid{ grid-template-columns:repeat(2,1fr); } }
.landing-v4 .gauge{ background:var(--ink-soft); padding:28px 26px; }
.landing-v4 .gauge .lbl{ font-size:13px; color:#AEBAC5; margin-bottom:14px; }
.landing-v4 .gauge .pct{ font-family:'IBM Plex Mono', monospace; font-size:30px; font-weight:600; margin-bottom:12px; }
.landing-v4 .gauge-track{ height:5px; background:rgba(250,249,244,0.12); border-radius:4px; overflow:hidden; }
.landing-v4 .gauge-fill{ height:100%; background:var(--brass); border-radius:4px; width:0; transition:width 1.4s cubic-bezier(.2,.8,.2,1); }
.landing-v4 .monitor .foot-note{ font-size:11.5px; color:#7C8894; margin-top:14px; font-style:italic; }

/* ---------- Testimonial (single, real) ---------- */
.landing-v4 .testimonial{ max-width:820px; margin:0 auto; text-align:center; }
.landing-v4 .testimonial .eyebrow{ justify-content:center; margin-bottom:26px; }
.landing-v4 .testimonial blockquote{
  font-family:'Cormorant Garamond', serif; font-size:clamp(22px,2.6vw,30px); font-weight:400;
  line-height:1.4; color:var(--ink);
}
.landing-v4 .testimonial .who{ margin-top:26px; font-family:'IBM Plex Mono', monospace; font-size:13px; color:var(--slate); }

/* ---------- Partners marquee (real integration logos) ---------- */
.landing-v4 .partners-strip{ border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); padding:34px 0; overflow:hidden; }
.landing-v4 .partners-track{
  display:flex; gap:56px; align-items:center; white-space:nowrap;
  animation:marquee 44s linear infinite; width:max-content;
}
.landing-v4 .partners-track img{
  height:24px; width:auto; flex:none; opacity:0.5;
  /* force to solid ink regardless of the source PNG's tone, keep alpha */
  filter:brightness(0); transition:opacity 0.2s;
}
.landing-v4 .partners-track img:hover{ opacity:0.85; }
@keyframes marquee{ 0%{ transform:translateX(0); } 100%{ transform:translateX(-50%); } }

/* ---------- Closing CTA ---------- */
.landing-v4 .close-cta{ background:var(--ink); color:var(--paper-white); text-align:center; }
.landing-v4 .close-cta .eyebrow{ justify-content:center; color:var(--brass); }
.landing-v4 .close-cta h2{ color:var(--paper-white); font-size:clamp(30px,4vw,44px); max-width:680px; margin:18px auto 0; line-height:1.15; }
.landing-v4 .close-cta p{ color:#AEBAC5; max-width:560px; margin:16px auto 0; font-size:16px; }
.landing-v4 .close-cta .hero-actions{ justify-content:center; margin-top:32px; }
.landing-v4 .close-cta .btn-primary{ background:var(--paper-white); color:var(--ink); }
.landing-v4 .close-cta .btn-primary:hover{ background:var(--green); color:#fff; }
.landing-v4 .close-cta .btn-ghost{ border-color:rgba(250,249,244,0.28); color:var(--paper-white); }
.landing-v4 .close-cta .btn-ghost:hover{ border-color:var(--paper-white); }

/* ---------- Footer ---------- */
.landing-v4 footer{ background:var(--paper); padding:64px 0 28px; border-top:1px solid var(--rule); }
.landing-v4 .foot-grid{
  display:grid; grid-template-columns:1.4fr repeat(4,1fr); gap:40px 32px;
  padding-bottom:44px; border-bottom:1px solid var(--rule);
}
/* brand block spans the full width once the columns wrap, so the four link columns
   stay on one row together instead of one orphaning below the others */
@media (max-width:980px){
  .landing-v4 .foot-grid{ grid-template-columns:repeat(4,1fr); }
  .landing-v4 .foot-brand{ grid-column:1 / -1; margin-bottom:8px; }
}
@media (max-width:760px){ .landing-v4 .foot-grid{ grid-template-columns:1fr 1fr; } }
.landing-v4 .foot-brand p{ font-size:13.5px; color:var(--slate); margin-top:14px; max-width:280px; line-height:1.6; }
.landing-v4 .foot-col h4{
  font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--slate-light); margin-bottom:14px; font-weight:600;
}
.landing-v4 .foot-col a{ display:block; font-size:14px; color:var(--ink); opacity:0.8; margin-bottom:10px; }
.landing-v4 .foot-col a:hover{ opacity:1; }
.landing-v4 .foot-bottom{
  display:flex; justify-content:space-between; align-items:center; padding-top:26px;
  font-size:12.5px; color:var(--slate-light); flex-wrap:wrap; gap:12px;
}
.landing-v4 .legal-toggle{ margin-top:26px; }
.landing-v4 .legal-toggle summary{
  cursor:pointer; font-size:12.5px; color:var(--slate-light);
  font-family:'IBM Plex Mono', monospace; letter-spacing:0.02em;
}
.landing-v4 .legal-toggle summary:hover{ color:var(--slate); }

/* canonical legal include (landing_footer.jsp) restyled for the paper theme */
.landing-v4 .legal{ margin-top:14px; max-width:900px; }
.landing-v4 .legal p{ font-size:11.5px; line-height:1.7; color:var(--slate-light); margin-bottom:10px; }
.landing-v4 .footer-info{
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;
  padding-top:18px; margin-top:8px; border-top:1px solid var(--rule);
  font-family:'IBM Plex Mono', monospace; font-size:11.5px; color:var(--slate-light);
}
.landing-v4 .footer-info a{ color:var(--slate); }
.landing-v4 .footer-info a:hover{ color:var(--ink); }
/* the include's own copyright/links row duplicates .foot-bottom above,
   which is always visible — drop it inside the collapsed panel */
.landing-v4 .legal-toggle .footer-info{ display:none; }

/* ============================================================
 * Sub-pages that reuse the v4 chrome
 * (request_demo / video / terms / privacy / disclaimers / error pages)
 * Header is sticky, so these need far less top padding than v2's
 * fixed header did.
 * ============================================================ */
.landing-v4 .page{ min-height:64vh; padding:64px 32px 96px; }
.landing-v4 .page h1{ font-size:clamp(32px,4vw,48px); line-height:1.08; }
.landing-v4 .page h2{ font-size:clamp(26px,3vw,34px); line-height:1.15; }

/* --- request demo --- */
.landing-v4 .demo-layout{ max-width:1120px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; }
@media (max-width:900px){ .landing-v4 .demo-layout{ grid-template-columns:1fr; gap:36px; } }
.landing-v4 .hero-title{ font-family:'Cormorant Garamond', serif; font-weight:500; font-size:clamp(30px,3.6vw,44px); line-height:1.08; margin-bottom:18px; }
.landing-v4 .intro-copy{ color:var(--slate); font-size:16px; line-height:1.65; margin-bottom:14px; max-width:480px; }
.landing-v4 .benefit-list{ list-style:none; margin:22px 0 30px; }
.landing-v4 .benefit-list li{ position:relative; padding:8px 0 8px 26px; color:var(--slate); font-size:15px; line-height:1.5; }
.landing-v4 .benefit-list li::before{ content:'\2713'; position:absolute; left:0; top:8px; color:var(--green); }
.landing-v4 .contact-card{ border:1px solid var(--rule); border-radius:4px; background:var(--paper); padding:24px 26px; margin-top:30px; }
.landing-v4 .card-title{ font-family:'Cormorant Garamond', serif; font-size:18px; color:var(--ink); margin-bottom:16px; }
.landing-v4 .contact-group{ padding:11px 0; border-bottom:1px solid var(--rule); }
.landing-v4 .contact-group:last-child{ border-bottom:none; }
.landing-v4 .contact-label{
  font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--slate-light); margin-bottom:4px;
}
.landing-v4 .contact-value{ font-size:14px; color:var(--ink); }
.landing-v4 .contact-value a{ color:var(--green); }
.landing-v4 .contact-value a:hover{ text-decoration:underline; }
.landing-v4 .demo-scheduler{ border:1px solid var(--rule); border-radius:4px; background:var(--paper-white); padding:8px; overflow:hidden; }
.landing-v4 .calendly-inline-widget{ min-width:320px; height:660px; }
.landing-v4 .scheduler-fallback{ font-size:12.5px; color:var(--slate-light); margin-top:12px; text-align:center; }
.landing-v4 .scheduler-fallback a{ color:var(--green); }

/* --- video --- */
.landing-v4 .video-layout{
  max-width:980px; margin:0 auto; border:1px solid var(--rule); border-radius:4px;
  overflow:hidden; background:var(--ink);
}
.landing-v4 .video-layout iframe{ display:block; width:100%; aspect-ratio:16/9; height:auto; border:0; }

/* --- terms / privacy / disclaimers --- */
.landing-v4 .terms-layout{ max-width:820px; margin:0 auto; }
.landing-v4 .terms-layout h2{ margin-bottom:24px; }
.landing-v4 .terms-layout p{ color:var(--slate); font-size:14.5px; line-height:1.75; margin-bottom:16px; }
.landing-v4 .terms-layout .bold, .landing-v4 .bold{ color:var(--ink); font-weight:600; }
.landing-v4 .terms-layout .small-text, .landing-v4 .small-text{ color:var(--slate-light); font-size:12.5px; }

/* --- about --- */
/* .page already supplies the outer padding; the wrap here is the same 1180px column
   the homepage sections use, so about reads as part of the same site rather than a
   narrow legal-style page like terms/privacy. */
/* .about-content carries the vertical rhythm. The CTA band deliberately sits OUTSIDE
   it, as a direct child of <main>, so its dark background runs full-bleed like the
   homepage — nesting it in a padded wrapper insets the band from the viewport edges. */
.landing-v4 .about-content{ padding-top:72px; padding-bottom:96px; }
.landing-v4 .about-intro{ max-width:760px; margin-bottom:72px; }
.landing-v4 .about-intro h1{ font-size:clamp(32px,4.4vw,52px); line-height:1.08; margin-top:18px; }
.landing-v4 .about-lede{ margin-top:22px; font-size:18px; line-height:1.62; color:var(--slate); }
/* these are <section>s, so they inherit the global `section{padding:96px 0}` used by the
   full-width homepage bands. Here they're stacked inside one column, where that reads as
   ~190px of dead space between blocks — so zero it out and use a single margin instead. */
.landing-v4 .about-section{ padding:0; margin-bottom:72px; }
.landing-v4 .about-section:last-child{ margin-bottom:0; }
.landing-v4 .about-body{ max-width:680px; display:flex; flex-direction:column; gap:16px; }
.landing-v4 .about-body p{ font-size:16.5px; line-height:1.75; color:var(--ink-soft); }

/* leadership bios — hairline separated, matching the ledger idiom used elsewhere */
.landing-v4 .about-bio{
  max-width:720px; border-top:1px solid var(--rule); padding-top:24px; margin-bottom:44px;
  display:flex; flex-direction:column; gap:14px;
}
.landing-v4 .about-bio:last-child{ margin-bottom:0; }
.landing-v4 .about-bio-head{ display:flex; flex-direction:column; gap:4px; }
.landing-v4 .about-bio-head h3{ font-size:22px; }
.landing-v4 .about-bio-role{
  font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.1em;
  text-transform:uppercase; color:var(--brass);
}
.landing-v4 .about-bio p{ font-size:15.5px; line-height:1.75; color:var(--slate); }

/* firm facts — a plain definition list; deliberately not a card, so it reads as a
   record rather than a marketing panel */
.landing-v4 .about-facts{ max-width:760px; border-top:1px solid var(--rule); margin:0; }
.landing-v4 .about-facts > div{
  display:flex; gap:24px; padding:14px 0; border-bottom:1px solid var(--rule);
}
.landing-v4 .about-facts dt{
  font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--slate-light); flex:0 0 200px; padding-top:3px;
}
.landing-v4 .about-facts dd{ margin:0; font-size:15.5px; color:var(--ink-soft); line-height:1.6; }
.landing-v4 .about-facts dd a{ color:var(--green); }
.landing-v4 .about-facts dd a:hover{ text-decoration:underline; }
@media (max-width:640px){
  .landing-v4 .about-facts > div{ flex-direction:column; gap:4px; }
  .landing-v4 .about-facts dt{ flex:none; }
  .landing-v4 .about-section{ margin-bottom:56px; }
}

/* --- error pages (400/401/403/404/405/500/session) --- */
/* one shell drives all seven — see includes/error_page_v4.jsp */
.landing-v4 .error-page{ display:flex; align-items:center; }
.landing-v4 .error-layout{ width:100%; max-width:640px; margin:0 auto; }
.landing-v4 .error-code{
  font-family:'Cormorant Garamond', serif; font-weight:300;
  font-size:clamp(72px,11vw,132px); line-height:1; letter-spacing:-0.03em;
  color:var(--ink); margin-top:16px;
}
.landing-v4 .error-title{ font-size:clamp(24px,3vw,32px); line-height:1.15; margin-top:12px; }
.landing-v4 .error-rule{ height:1px; background:var(--rule); margin:26px 0 24px; }
.landing-v4 .error-copy{ color:var(--slate); font-size:15.5px; line-height:1.7; max-width:520px; }
.landing-v4 .error-actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }

/* ---------- Scroll reveal ---------- */
.landing-v4 .reveal{ opacity:0; transform:translateY(16px); transition:opacity 0.7s ease, transform 0.7s ease; }
.landing-v4 .reveal.in{ opacity:1; transform:translateY(0); }

@media (prefers-reduced-motion: reduce){
  .landing-v4 *{
    animation-duration:0.01ms !important; animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
  }
  html{ scroll-behavior:auto !important; }
}

/* ============================================================
 * AllocateRite — Homepage redesign (2026-09-24)
 *
 * Scoped under body.landing-site, NOT body.landing-v4. The v4 "paper ledger"
 * rules above are still live on about / privacy / terms / disclaimers /
 * request_demo / video and the error pages; the boss redesigned the HOMEPAGE
 * only, so this sits alongside rather than replacing them. Keeping both in one
 * file is deliberate — the alternative was a landing_v5.css, and the version
 * ladder is what we are trying to stop climbing.
 *
 * Values below are the FINAL rendered ones: the source design shipped a base
 * sheet plus an "editorial light-system pass" that overrode the dark hero,
 * the weights and the radii. Those overrides are folded in here rather than
 * layered, so nothing in this block is dead.
 * ============================================================ */

body.landing-site{
  --ink:#07131f;
  --paper:#f5f7f8;
  --blue:#27b4f5;
  --blue2:#83ddff;
  --blue-ink:#087db3;      /* readable blue for text on light grounds */
  --line:#d8e0e5;
  --muted:#596875;
  --max:1240px;

  margin:0;
  color:var(--ink);
  background:#fff;
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
body.landing-site *{ box-sizing:border-box; }
body.landing-site a{ color:inherit; }

/* ---------- header ---------- */
.landing-site .site-header{
  position:sticky;
  top:0;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:82px;
  padding:0 max(30px,calc((100vw - var(--max))/2));
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(18px);
}
.landing-site .brand{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--ink);
  font-size:20px;
  font-weight:800;
  letter-spacing:-.03em;
  text-decoration:none;
}
/* the real AR wordmark (logo_ar_svg.jsp, fill=currentColor) replaces the
   mockup's letter tile, so it inherits the ink colour here */
.landing-site .brand svg{ height:26px; width:auto; }
.landing-site .primary-nav{
  display:flex;
  align-items:center;
  gap:29px;
  font-size:14px;
  font-weight:700;
}
.landing-site .primary-nav a{ text-decoration:none; }
.landing-site .nav-login{ color:var(--ink); }
.landing-site .nav-cta{
  padding:12px 20px;
  color:#fff !important;
  background:#263a52;
  border-radius:7px;
}
.landing-site .nav-toggle{
  display:none;
  border:0;
  background:none;
  font:inherit;
  font-weight:750;
  cursor:pointer;
}

/* ---------- hero ---------- */
.landing-site .hero{
  min-height:650px;
  padding:65px max(30px,calc((100vw - var(--max))/2)) 0;
  color:var(--ink);
  background:#fff;
  text-align:center;
}
.landing-site .eyebrow{
  margin:0 0 24px;
  color:var(--blue2);
  font-size:13px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.landing-site .eyebrow.dark{ color:var(--blue-ink); }
.landing-site .hero .eyebrow{ color:#61707c; }
.landing-site .hero h1{
  max-width:900px;
  margin:auto;
  font-size:clamp(54px,5.5vw,67px);
  line-height:1.03;
  letter-spacing:-.052em;
  font-weight:500;
}
.landing-site .hero h1 span {
  font-size: 72px;
}
.landing-site .hero-lede{
  max-width:720px;
  margin:34px auto;
  color:#35434f;
  font-size:20px;
  line-height:1.42;
}
.landing-site .hero-actions{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:28px;
}
.landing-site .button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  padding:0 25px;
  border-radius:5px;
  font-weight:800;
  text-decoration:none;
}
.landing-site .button-dark{ color:#fff; background:var(--ink); }
.landing-site .hero .button-light{
  color:#fff;
  background:#17191c;
  border:1px solid #17191c;
}
.landing-site .final-cta .button-light{ color:var(--ink); background:#fff; }
.landing-site .hero-link{
  padding:14px 21px;
  color:#17191c;
  border:1px solid #17191c;
  border-radius:5px;
  font-weight:750;
  text-decoration:none;
}
.landing-site .hero-link span{ margin-left:8px; color:inherit; }
.landing-site .hero-proof{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  max-width:1060px;
  margin:60px auto 0;
  border-top:1px solid #d7dde1;
}
.landing-site .hero-proof div{ padding:30px 22px; background:#fff; text-align:left; }
.landing-site .hero-proof strong{
  display:block;
  font-size:34px;
  font-weight:500;
  letter-spacing:-.04em;
}
.landing-site .hero-proof span{ color:#7c868e; font-size:14px; }

/* ---------- product stage (illustrative UI) ---------- */
.landing-site .product-stage{
  padding:90px max(30px,calc((100vw - var(--max))/2)) 110px;
  background:#f4f6f7;
}
.landing-site .app-shell{
  display:grid;
  grid-template-columns:72px 1fr;
  min-height:600px;
  background:#eaf0f3;
  border:1px solid #e3e7e9;
  border-radius:13px;
  box-shadow:0 20px 60px rgba(7,19,31,.12);
  overflow:hidden;
}
.landing-site .app-rail{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:24px;
  padding:22px 0;
  background:#142437;
}
.landing-site .rail-logo{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  background:var(--blue);
  border-radius:10px;
  font-weight:900;
}
.landing-site .app-rail i{ width:10px; height:10px; background:#3e5061; border-radius:50%; }
.landing-site .app-rail i.active{ background:var(--blue); }
.landing-site .app-main{ padding:32px; }
.landing-site .app-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:28px;
}
.landing-site .app-top span{ display:block; color:#64737f; font-size:13px; }
.landing-site .app-top strong{ font-size:24px; }
.landing-site .app-top button{
  padding:11px 16px;
  border:0;
  border-radius:999px;
  color:#fff;
  background:var(--ink);
  font-weight:700;
}
.landing-site .dashboard-grid{ display:grid; grid-template-columns:1.7fr 1fr; gap:18px; }
.landing-site .ui-card{
  min-height:180px;
  padding:24px;
  background:#fff;
  border:1px solid #dce4e8;
  border-radius:20px;
}
.landing-site .ui-label{ margin-bottom:12px; color:#6b7a85; font-size:13px; font-weight:750; }
.landing-site .portfolio-card{ min-height:338px; }
.landing-site .portfolio-card>strong{ font-size:42px; letter-spacing:-.05em; }
.landing-site .positive{ margin-left:14px; color:#07825b; font-size:13px; font-weight:800; }
.landing-site .chart{ margin-top:25px; }
.landing-site .chart svg{ display:block; width:100%; height:180px; }
.landing-site .action-card strong,
.landing-site .report-card strong{ display:block; font-size:34px; }
.landing-site .action-card ul{ margin:19px 0 0; padding:0; list-style:none; }
.landing-site .action-card li{ padding:8px 0; border-top:1px solid #e5eaed; font-size:14px; }
.landing-site .action-card i{
  display:inline-block;
  width:8px;
  height:8px;
  margin-right:8px;
  background:#5fcff8;
  border-radius:50%;
}
.landing-site .action-card i.urgent{ background:#ff8d5d; }
.landing-site .allocation-card{ text-align:center; }
.landing-site .score-ring{
  display:grid;
  place-items:center;
  width:100px;
  height:100px;
  margin:8px auto;
  border:10px solid #42c4f6;
  border-right-color:#dbe7ec;
  border-radius:50%;
}
.landing-site .score-ring span{ font-size:28px; font-weight:800; }
.landing-site .allocation-card p,
.landing-site .report-card span{ color:#697985; font-size:13px; }
.landing-site .report-lines{ margin-top:18px; }
.landing-site .report-lines i{ display:block; height:8px; margin-top:8px; background:#dce7ec; border-radius:4px; }
.landing-site .report-lines i:nth-child(2){ width:78%; }
.landing-site .report-lines i:nth-child(3){ width:55%; }
.landing-site .illustration-note{ margin:14px 4px 0; color:#667782; font-size:12px; }

/* ---------- audience ---------- */
.landing-site .audience-bar{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:16px 40px;
  padding:38px 30px;
  background:#fff;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  color:#8a9299;
  font-size:14px;
}
.landing-site .audience-bar strong{
  color:#26323b;
  font-weight:500;
  text-decoration:underline;
  text-underline-offset:5px;
}

/* ---------- platform ---------- */
.landing-site .platform-intro{
  display:grid;
  grid-template-columns:.8fr 1.6fr;
  gap:55px;
  max-width:var(--max);
  margin:auto;
  padding:110px 30px 70px;
}
.landing-site .section-kicker{
  color:var(--blue-ink);
  font-size:13px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.landing-site .platform-intro h2{
  margin:0;
  font-size:clamp(52px,6vw,68px);
  line-height:.96;
  letter-spacing:-.06em;
  font-weight:520;
}
.landing-site .platform-intro>p{
  grid-column:2;
  max-width:720px;
  color:var(--muted);
  font-size:20px;
}
.landing-site .platform-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  max-width:var(--max);
  margin:auto;
  padding:0 30px 130px;
}
.landing-site .feature{
  position:relative;
  min-height:480px;
  padding:42px;
  background:#f0f3f5;
  border-radius:14px;
  overflow:hidden;
}
.landing-site .feature-wide{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:60px;
  align-items:center;
  min-height:540px;
}
.landing-site .feature-blue{ background:#c9efff; }
.landing-site .feature-dark{ color:#fff; background:var(--ink); }
.landing-site .models-feature{ background:#dfe3ff; }
.landing-site .feature-tag{
  margin:0 0 18px;
  color:var(--blue-ink);
  font-size:12px;
  font-weight:850;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.landing-site .feature-dark .feature-tag{ color:var(--blue2); }
.landing-site .feature h3{
  max-width:620px;
  margin:0 0 20px;
  font-size:clamp(36px,4vw,55px);
  line-height:1;
  letter-spacing:-.05em;
  font-weight:520;
}
.landing-site .feature>p,
.landing-site .feature-copy>p:last-child{ max-width:620px; color:#53636f; font-size:18px; }
.landing-site .feature-dark>p{ color:#b9c7d1; }
.landing-site .mini-ui{
  padding:22px;
  background:#fff;
  border:1px solid rgba(7,19,31,.12);
  border-radius:22px;
  box-shadow:0 24px 55px rgba(7,19,31,.12);
}
.landing-site .mini-head{ display:flex; justify-content:space-between; padding-bottom:18px; }
.landing-site .mini-head span{ color:#687783; }
.landing-site .account-row{
  display:grid;
  grid-template-columns:1fr auto auto;
  gap:20px;
  padding:16px 0;
  border-top:1px solid #e0e7eb;
  font-size:14px;
}
.landing-site .account-row em{
  padding:3px 9px;
  color:#086e51;
  background:#e1f7ee;
  border-radius:20px;
  font-style:normal;
}
.landing-site .metric-line{
  position:absolute;
  right:36px;
  bottom:36px;
  left:36px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:22px;
  background:#fff;
  border-radius:17px;
}
.landing-site .metric-line strong{ font-size:34px; }
.landing-site .bond-grid{
  display:grid;
  grid-template-columns:1fr auto;
  margin-top:54px;
  border-top:1px solid #344554;
}
.landing-site .bond-grid span,
.landing-site .bond-grid b{ padding:15px 0; border-bottom:1px solid #344554; }
.landing-site .bond-grid b{ color:var(--blue2); }
.landing-site .model-stack{ display:grid; gap:12px; }
.landing-site .model-stack div{
  display:flex;
  justify-content:space-between;
  padding:20px;
  background:#fff;
  border-radius:15px;
  box-shadow:0 10px 30px rgba(7,19,31,.08);
}
.landing-site .model-stack b{ color:var(--blue-ink); font-size:13px; }

/* ---------- advisor ---------- */
.landing-site .advisor-section{
  padding:130px max(30px,calc((100vw - var(--max))/2));
  background:var(--paper);
}
.landing-site .advisor-heading{ display:grid; grid-template-columns:1fr 1.6fr; gap:50px; }
.landing-site .advisor-heading .eyebrow{ grid-column:1; }
.landing-site .advisor-heading h2{
  grid-column:2;
  grid-row:1/3;
  margin:0;
  font-size:clamp(52px,6vw,65px);
  line-height:.95;
  letter-spacing:-.06em;
  font-weight:520;
}
.landing-site .advisor-heading>p:last-child{ grid-column:2; color:var(--muted); font-size:18px; }
.landing-site .advisor-workflows{ margin-top:80px; border-top:1px solid #cbd5db; }
.landing-site .advisor-workflows article{
  display:grid;
  grid-template-columns:70px 320px 1fr;
  gap:28px;
  padding:26px 0;
  border-bottom:1px solid #cbd5db;
}
.landing-site .advisor-workflows span{ color:var(--blue-ink); font-size:13px; font-weight:800; }
.landing-site .advisor-workflows h3,
.landing-site .advisor-workflows p{ margin:0; }
.landing-site .advisor-workflows h3{ font-size:24px; }
.landing-site .advisor-workflows p{ color:var(--muted); font-size:17px; }

/* ---------- newt ---------- */
.landing-site .newt-section{
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:100px;
  align-items:center;
  padding:130px max(30px,calc((100vw - var(--max))/2));
  color:#fff;
  background:#0a1724;
}
.landing-site .newt-orb{
  display:grid;
  place-items:center;
  aspect-ratio:1;
  max-width:430px;
  background:radial-gradient(circle at 38% 35%,#bdf0ff 0,#54c7f7 24%,#11628b 51%,#0a1724 73%);
  border-radius:50%;
  box-shadow:0 0 80px rgba(63,196,248,.25);
}
/* 120px was sized for the single "N"; the wordmark needs to scale with the orb,
   which is max-width:430px here and 300px under 900px. clamp keeps it inside both
   without a second override, and the orb's gradient goes dark past ~73% so the text
   has to stay well clear of the edge. */
.landing-site .newt-orb span{
  font-size:clamp(52px,8vw,96px);
  font-weight:800;
  letter-spacing:-.04em;
  line-height:1;
}
.landing-site .newt-copy h2{
  margin:0 0 28px;
  font-size:clamp(48px,5.5vw,68px);
  line-height:.96;
  letter-spacing:-.06em;
  font-weight:520;
}
.landing-site .newt-copy>p{ color:#b9c7d2; font-size:20px; }
.landing-site .newt-points{
  display:grid;
  grid-template-columns:1fr 1fr;
  margin-top:36px;
  border-top:1px solid #324250;
}
.landing-site .newt-points span{ padding:16px 0; border-bottom:1px solid #324250; font-weight:750; }

/* ---------- case study ---------- */
.landing-site .case-study{
  display:grid;
  grid-template-columns:.7fr 1.3fr;
  gap:100px;
  max-width:var(--max);
  margin:auto;
  padding:130px 30px;
}
.landing-site .case-number{
  align-self:start;
  padding:34px;
  color:#fff;
  background:var(--blue-ink);
  border-radius:24px;
}
.landing-site .case-number strong{
  display:block;
  font-size:72px;
  line-height:1;
  letter-spacing:-.06em;
}
.landing-site .case-number span{ display:block; margin-top:15px; }
.landing-site .case-copy h2{
  margin:0 0 24px;
  font-size:clamp(46px,5vw,66px);
  line-height:.97;
  letter-spacing:-.055em;
  font-weight:520;
}
.landing-site .case-copy>p{ color:var(--muted); font-size:19px; }
.landing-site .case-copy blockquote{
  margin:50px 0 0;
  padding-top:35px;
  border-top:1px solid var(--line);
  font-family:Georgia,"Times New Roman",serif;
  font-size:28px;
  line-height:1.35;
}
.landing-site .case-copy cite{
  display:block;
  margin-top:24px;
  color:var(--muted);
  font-family:Inter,sans-serif;
  font-size:13px;
  font-style:normal;
  font-weight:700;
}

/* ---------- ocio ---------- */
.landing-site .ocio-section{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:110px;
  padding:130px max(30px,calc((100vw - var(--max))/2));
  color:#fff;
  background:var(--blue-ink);
}
.landing-site .ocio-heading h2{
  margin:0 0 25px;
  font-size:clamp(50px,6vw,72px);
  line-height:.93;
  letter-spacing:-.06em;
  font-weight:520;
}
.landing-site .ocio-heading>p:last-child{ color:#d5f1ff; font-size:20px; }
.landing-site .ocio-body>p{ font-size:20px; }
.landing-site .ocio-body ul{
  margin:34px 0 40px;
  padding:0;
  list-style:none;
  border-top:1px solid rgba(255,255,255,.35);
}
.landing-site .ocio-body li{
  padding:16px 0;
  border-bottom:1px solid rgba(255,255,255,.35);
  font-weight:700;
}

/* ---------- migration ---------- */
.landing-site .migration-section{ max-width:var(--max); margin:auto; padding:130px 30px; }
.landing-site .migration-section>div{ display:grid; grid-template-columns:.7fr 1.3fr; gap:70px; }
.landing-site .migration-section h2{
  margin:0;
  font-size:clamp(46px,5vw,68px);
  line-height:.98;
  letter-spacing:-.055em;
  font-weight:520;
}
.landing-site .migration-section ol{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  margin:80px 0 0;
  padding:0;
  list-style:none;
  border-top:1px solid var(--line);
}
.landing-site .migration-section li{ padding:25px 24px 0 0; }
.landing-site .migration-section li+li{ padding-left:24px; border-left:1px solid var(--line); }
.landing-site .migration-section li span{
  display:block;
  margin-bottom:45px;
  color:var(--blue-ink);
  font-size:13px;
  font-weight:800;
}
.landing-site .migration-section li b{ font-size:22px; }
.landing-site .migration-section li p{ color:var(--muted); }

/* ---------- closing ---------- */
.landing-site .final-cta{
  padding:130px max(30px,calc((100vw - var(--max))/2));
  color:#fff;
  background:var(--ink);
}
.landing-site .final-cta h2{
  max-width:1060px;
  margin:0 0 45px;
  font-size:clamp(58px,7vw,88px);
  line-height:.92;
  letter-spacing:-.065em;
  font-weight:520;
}

/* ---------- footer ---------- */




/* ---------- responsive ---------- */
@media(max-width:900px){
  .landing-site .nav-toggle{ display:block; }
  .landing-site .primary-nav{
    position:absolute;
    top:81px;
    left:0;
    right:0;
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:15px 24px 24px;
    background:#fff;
    border-bottom:1px solid var(--line);
  }
  .landing-site .primary-nav.open{ display:flex; }
  .landing-site .primary-nav a{ padding:12px 4px; }
  .landing-site .nav-cta{ text-align:center; }
  .landing-site .hero h1{ font-size:67px; }
  .landing-site .dashboard-grid,
  .landing-site .platform-intro,
  .landing-site .feature-wide,
  .landing-site .advisor-heading,
  .landing-site .newt-section,
  .landing-site .case-study,
  .landing-site .ocio-section,
  .landing-site .migration-section>div{ grid-template-columns:1fr; }
  .landing-site .platform-intro>p,
  .landing-site .advisor-heading h2,
  .landing-site .advisor-heading>p:last-child{ grid-column:1; grid-row:auto; }
  .landing-site .platform-grid{ grid-template-columns:1fr; }
  .landing-site .feature-wide{ grid-column:auto; }
  .landing-site .advisor-workflows article{ grid-template-columns:50px 1fr; }
  .landing-site .advisor-workflows p{ grid-column:2; }
  .landing-site .newt-orb{ max-width:300px; }
  .landing-site .migration-section ol{ grid-template-columns:1fr 1fr; }
  .landing-site .migration-section li:nth-child(3){ border-left:0; }
  .landing-site .hero-proof{ grid-template-columns:1fr; }
  .landing-site .app-shell{ grid-template-columns:54px 1fr; }
  .landing-site .dashboard-grid{ grid-template-columns:1fr 1fr; }
  
}

@media(max-width:620px){
  .landing-site .site-header{ height:68px; padding:0 20px; }
  .landing-site .primary-nav{ top:67px; }
  .landing-site .hero{ min-height:0; padding:58px 20px 0; }
  .landing-site .hero h1{ font-size:47px; }
  .landing-site .hero-lede{ font-size:19px; }
  .landing-site .hero-actions{ align-items:flex-start; flex-direction:column; }
  .landing-site .hero-proof{ grid-template-columns:1fr; margin-top:48px; }
  .landing-site .hero-proof div{ text-align:center; border-bottom:1px solid #e1e5e8; }
  .landing-site .hero-link{ padding:12px 18px; }
  .landing-site .product-stage{ padding:60px 12px 75px; }
  .landing-site .app-shell{ grid-template-columns:1fr; min-height:0; }
  .landing-site .app-rail{ display:none; }
  .landing-site .app-main{ padding:14px; }
  .landing-site .app-top button{ display:none; }
  .landing-site .dashboard-grid{ grid-template-columns:1fr; }
  .landing-site .ui-card{ min-height:0; }
  .landing-site .portfolio-card{ min-height:280px; }
  .landing-site .allocation-card,
  .landing-site .report-card{ display:none; }
  .landing-site .audience-bar{ justify-content:flex-start; padding:22px 20px; }
  .landing-site .platform-intro,
  .landing-site .platform-grid,
  .landing-site .case-study,
  .landing-site .migration-section{ padding-left:20px; padding-right:20px; }
  .landing-site .platform-intro{ padding-top:85px; }
  .landing-site .platform-intro h2,
  .landing-site .advisor-heading h2,
  .landing-site .case-copy h2,
  .landing-site .ocio-heading h2,
  .landing-site .migration-section h2{ font-size:45px; }
  .landing-site .platform-grid{ padding-bottom:85px; }
  .landing-site .feature{ min-height:430px; padding:28px; }
  .landing-site .feature-wide{ gap:35px; }
  .landing-site .advisor-section,
  .landing-site .newt-section,
  .landing-site .ocio-section,
  .landing-site .final-cta{ padding:85px 20px; }
  .landing-site .advisor-workflows{ margin-top:55px; }
  .landing-site .advisor-workflows article{ grid-template-columns:38px 1fr; gap:14px; }
  .landing-site .newt-section{ gap:55px; }
  .landing-site .newt-points{ grid-template-columns:1fr; }
  .landing-site .case-study{ gap:50px; padding-block:85px; }
  .landing-site .case-number strong{ font-size:58px; }
  .landing-site .case-copy blockquote{ font-size:24px; }
  .landing-site .migration-section ol{ grid-template-columns:1fr; }
  .landing-site .migration-section li,
  .landing-site .migration-section li+li{
    padding:22px 0;
    border-left:0;
    border-bottom:1px solid var(--line);
  }
  .landing-site .migration-section li span{ margin-bottom:14px; }
  .landing-site .final-cta h2{ font-size:51px; }
  
}

/* hero footnote — the asterisks in the capacity figures point here */
.landing-site .hero-proof-note{
  max-width:1060px;
  margin:18px auto;
  color:#8a939b;
  font-size:12px;
  line-height:1.5;
  text-align:left;
}

/* ---------- footer ----------
   The shared landing_footer_v4.jsp markup, restyled dark to match this design.
   Its structure (.foot-grid / .foot-col / .foot-bottom / .legal-toggle) is fixed
   because eight other pages render the same include, so this overrides colour and
   spacing only and never the markup. */
.landing-site footer{
  padding:70px max(30px,calc((100vw - var(--max))/2)) 45px;
  color:#aebbc5;
  background:#07111b;
  font-size:13px;
}
.landing-site footer .wrap{ max-width:var(--max); margin:auto; }
.landing-site .foot-grid{
  display:grid;
  grid-template-columns:1.6fr repeat(4,1fr);
  gap:40px;
  padding-bottom:40px;
  border-bottom:1px solid #1b2d3e;
}
.landing-site .foot-brand p{ margin:14px 0 0; max-width:320px; color:#8b99a5; }
.landing-site .foot-logo{ display:inline-block; color:#fff; }
.landing-site .foot-logo svg{ height:24px; width:auto; }
.landing-site .foot-col h4{
  margin:0 0 14px;
  color:#fff;
  font-size:12px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.landing-site .foot-col a{
  display:block;
  padding:5px 0;
  color:#aebbc5;
  text-decoration:none;
}
.landing-site .foot-col a:hover{ color:#fff; }
.landing-site .foot-bottom{
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:12px 40px;
  padding:28px 0 0;
  color:#7d8a95;
  font-size:12px;
}
/* the GIPS / full-disclosure wall stays reachable, just not dominant */
.landing-site .legal-toggle{ margin-top:22px; border-top:1px solid #1b2d3e; padding-top:20px; }
.landing-site .legal-toggle summary{
  color:#8b99a5;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}
.landing-site .legal-toggle[open] summary{ margin-bottom:16px; }
.landing-site .legal-toggle,
.landing-site .legal-toggle *{ color:#7d8a95; font-size:11px; line-height:1.6; }
.landing-site .legal-toggle a{ color:#9fb0bd; }

@media(max-width:900px){
  .landing-site .foot-grid{ grid-template-columns:1fr 1fr; gap:30px; }
}
@media(max-width:620px){
  .landing-site footer{ padding:50px 20px 38px; }
  .landing-site .foot-grid{ grid-template-columns:1fr; }
  .landing-site .hero-proof-note{ text-align:left; }
}

/* ---------- live platform stats ----------
   Sits directly under the hero capacity figures, so it is styled as a CONTINUATION
   of the hero rather than a break: white ground, ink numbers, separated only by a
   hairline. A dark band here would cut the two stat rows apart, and the whole point
   of the placement is that they read together. The rule still marks the boundary
   between illustrative estimates above and real platform figures below.
   The v4 version set these in IBM Plex Mono; this page loads Inter only, so
   tabular-nums does the alignment job instead of pulling a second font for four
   figures. @keyframes dotBlink and marquee are global further up and are reused. */
.landing-site .stats-strip{
  background:#fff;
  border-top:1px solid #d7dde1;
}
/* 1060px, NOT --max (1240px): this has to line up with .hero-proof directly above,
   and the wider container made the stats row visibly overhang the band it belongs
   with. The 22px cell inset matches .hero-proof div padding so the first figure in
   each row starts on the same vertical. */
.landing-site .stats-inner{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
  margin:0 auto;
  padding:35px max(26px,calc((100vw - 1060px)/2));
}
.landing-site .stats-strip .stat{ padding:0 22px; }
/* matches .hero-proof strong exactly (34px/500) so the two rows sit as one scale */
.landing-site .stat .num{
  font-size:34px;
  font-weight:500;
  line-height:1.1;
  letter-spacing:-.04em;
  font-variant-numeric:tabular-nums;
  color:var(--ink);
}
.landing-site .stat .lbl{ margin-top:6px; color:#7c868e; font-size:13px; }
/* second row reads as supporting detail, not four more headline numbers */
.landing-site .stats-inner--split{ padding-top:0; padding-bottom:52px; }
.landing-site .stats-inner--split::before{
  content:"";
  grid-column:1/-1;
  height:1px;
  margin:0 22px 30px;
  background:#e6eaed;
}
.landing-site .stats-inner--split .num{ font-size:22px; }
.landing-site .stats-inner--split .lbl{ font-size:12px; }
/* skeleton dots until the stats API answers (server-rendered figures usually win) */
.landing-site .asset-loading{ display:inline-flex; gap:3px; }
.landing-site .asset-loading .dot{ color:#9aa4ac; animation:dotBlink 1.2s infinite; }
.landing-site .asset-loading .dot-2{ animation-delay:.2s; }
.landing-site .asset-loading .dot-3{ animation-delay:.4s; }

/* ---------- integration partners ---------- */
.landing-site .partners-strip{
  padding:40px 0;
  background:#fff;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  overflow:hidden;
}
.landing-site .partners-track{
  display:flex;
  align-items:center;
  gap:56px;
  width:max-content;
  white-space:nowrap;
  animation:marquee 44s linear infinite;
}
.landing-site .partners-track img{
  height:24px;
  width:auto;
  flex:none;
  opacity:.45;
  /* force to solid ink regardless of the source PNG tone, keep alpha */
  filter:brightness(0);
  transition:opacity .2s;
}
.landing-site .partners-track img:hover{ opacity:.8; }
@media(prefers-reduced-motion:reduce){
  .landing-site .partners-track{ animation:none; }
}

@media(max-width:900px){
  .landing-site .stats-inner{ grid-template-columns:repeat(2,1fr); gap:28px 20px; }
}
@media(max-width:620px){
  .landing-site .stats-inner{ padding:34px 8px; }
  .landing-site .stats-inner--split{ padding-top:0; }
  .landing-site .stat .num{ font-size:27px; }
  .landing-site .partners-strip{ padding:28px 0; }
}

/* ============================================================
 * .landing-site retheme for the remaining public pages
 * (about, privacy, terms, disclaimers, request_demo, video, error pages)
 *
 * Those pages carry BOTH classes: class="landing-v4 landing-site". Their v4
 * rules keep doing the structural work — 260 of them, covering .terms-layout,
 * .about-section, .demo-layout, .video-layout, .error-* and the rest — while
 * everything below retokenizes and overrides the chrome. Rewriting those 260
 * rules was the alternative; the v4 sheet is 182 var() uses against 32 hardcoded
 * hex, so retheming reaches nearly all of it for a fraction of the risk.
 *
 * The login page is deliberately out of scope: it renders app chrome, not landing.
 * ============================================================ */

/* ---------- tokens ----------
   Same names the v4 rules already reference, repointed at the new palette. Defined
   on body (not :root) so they only apply where the class is, and beat :root for
   everything inside. --radius moves 2px -> 14px, which is what carries the new
   card shape into every v4 layout without touching those rules. */
body.landing-v4.landing-site{
  --ink:#07131f;
  --ink-soft:#0a1724;
  --paper:#f5f7f8;
  --paper-white:#ffffff;
  --green:#087db3;          /* v4 used green as its accent; the new design is blue */
  --green-soft:#e8f4fb;
  --brass:#27b4f5;          /* second accent, likewise */
  --slate:#596875;
  --slate-light:#7c868e;
  --rule:#d8e0e5;
  --rule-dark:#22303f;
  --radius:14px;
  --blue:#27b4f5;
  --blue2:#83ddff;
  --blue-ink:#087db3;
  --line:#d8e0e5;
  --muted:#596875;
  --max:1240px;

  color:var(--ink);
  background:#fff;
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:16px;
  line-height:1.55;
}

/* ---------- type ----------
   v4 set display type in Cormorant Garamond and data in IBM Plex Mono; the new
   design is Inter throughout, and those two faces are no longer loaded on these
   pages. Left unhandled they would fall back to serif/monospace and look broken,
   so both are neutralised here — tabular-nums keeps the figure alignment Plex Mono
   was there for. */
body.landing-v4.landing-site h1,
body.landing-v4.landing-site h2,
body.landing-v4.landing-site h3,
body.landing-v4.landing-site h4{
  font-family:Inter,sans-serif;
  font-weight:520;
  letter-spacing:-.04em;
  line-height:1.05;
}
/* Every v4 selector that sets a display font AND can appear on these pages. The
   homepage-only ones (ledger, newt-card, household, gauge, ...) are left alone
   because they never render here. Cormorant Garamond was already falling back to
   generic serif - the font link loads Fraunces, not Cormorant - so this also
   quietly fixes a pre-existing mismatch. */
.landing-v4.landing-site .mono,
.landing-v4.landing-site .eyebrow,
.landing-v4.landing-site .illustrative,
.landing-v4.landing-site .ocio-cell .idx,
.landing-v4.landing-site .foot-col h4,
.landing-v4.landing-site .legal-toggle summary,
.landing-v4.landing-site .footer-info,
.landing-v4.landing-site .hero-title,
.landing-v4.landing-site .card-title,
.landing-v4.landing-site .contact-label,
.landing-v4.landing-site .about-bio-role,
.landing-v4.landing-site .about-facts dt,
.landing-v4.landing-site .error-code,
.landing-v4.landing-site .stat .num{
  font-family:Inter,sans-serif;
  font-variant-numeric:tabular-nums;
}
.landing-v4.landing-site .eyebrow{
  color:var(--blue-ink);
  font-size:13px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}

/* ---------- containers ---------- */
.landing-v4.landing-site .wrap{
  max-width:var(--max);
  margin:0 auto;
  padding:0 30px;
}
.landing-v4.landing-site main.page{
  padding:80px 30px 110px;
  background:#fff;
}

/* ---------- buttons ----------
   v4 buttons were 2px-radius paper chips; the new design uses 5px pills with an
   ink fill. .btn is used by about, request_demo and all seven error pages. */
.landing-v4.landing-site .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:0 24px;
  border-radius:5px;
  font-weight:800;
  text-decoration:none;
}
.landing-v4.landing-site .btn-primary{
  color:#fff;
  background:#17191c;
  border:1px solid #17191c;
}
.landing-v4.landing-site .btn-primary:hover{ background:#000; }
.landing-v4.landing-site .btn-ghost{
  color:#17191c;
  background:transparent;
  border:1px solid #17191c;
}
.landing-v4.landing-site .btn-ghost:hover{ background:#f4f6f7; }

/* ---------- legal pages (privacy / terms / disclaimers) ----------
   Long prose. Slightly wider measure and a touch more leading than v4 gave them,
   because the new body face sits smaller at the same size. */
.landing-v4.landing-site .terms-layout{ max-width:860px; }
.landing-v4.landing-site .terms-layout h2{
  margin-bottom:28px;
  font-size:clamp(34px,4vw,46px);
}
.landing-v4.landing-site .terms-layout p{
  color:var(--slate);
  font-size:15px;
  line-height:1.8;
  margin-bottom:18px;
}
.landing-v4.landing-site .bold{ color:var(--ink); font-weight:600; }
.landing-v4.landing-site .small-text{ color:var(--slate-light); font-size:12.5px; }

/* ---------- about ---------- */
.landing-v4.landing-site .about-section{ margin-bottom:80px; }
.landing-v4.landing-site .section-head h2{ font-size:clamp(34px,4.5vw,54px); }
.landing-v4.landing-site .about-lede,
.landing-v4.landing-site .about-body p{ color:var(--slate); font-size:18px; line-height:1.6; }
.landing-v4.landing-site .ocio-cell,
.landing-v4.landing-site .gov-card{
  background:#f0f3f5;
  border:1px solid var(--line);
  border-radius:var(--radius);
}
.landing-v4.landing-site .gov-icon{ color:var(--blue-ink); }
.landing-v4.landing-site .about-bio-role{ color:var(--blue-ink); font-weight:700; }

/* ---------- request a demo ---------- */
.landing-v4.landing-site .hero-title{ font-size:clamp(38px,5vw,62px); }
.landing-v4.landing-site .contact-card{
  background:#f0f3f5;
  border:1px solid var(--line);
  border-radius:var(--radius);
}
.landing-v4.landing-site .contact-label{ color:var(--slate-light); }
.landing-v4.landing-site .contact-value{ color:var(--ink); }
.landing-v4.landing-site .benefit-list li{ color:var(--slate); }

/* ---------- video ---------- */
.landing-v4.landing-site .video-layout{ border-radius:var(--radius); overflow:hidden; }

/* ---------- error pages ---------- */
.landing-v4.landing-site .error-code{
  color:var(--blue-ink);
  font-family:Inter,sans-serif;
  font-variant-numeric:tabular-nums;
}
.landing-v4.landing-site .error-title{ font-size:clamp(34px,4.5vw,56px); }
.landing-v4.landing-site .error-rule{ background:var(--line); }
.landing-v4.landing-site .error-copy{ color:var(--slate); font-size:17px; }

@media(max-width:620px){
  .landing-v4.landing-site main.page{ padding:56px 20px 80px; }
  .landing-v4.landing-site .wrap{ padding:0 20px; }
}
