/* ============================================================
 * 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:'Fraunces', 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; }
.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; }

/* ---------- 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; }

/* 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:22px; 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:'Fraunces', 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(3,1fr); gap:40px;
  padding-bottom:44px; border-bottom:1px solid var(--rule);
}
@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)
 * 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:'Fraunces', 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:'Fraunces', 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; }

/* ---------- 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; }
}
