/*
Theme Name: Fintralis
Theme URI: https://getfintralis.com
Author: iLogix
Author URI: https://ilogix.co.in
Description: Custom lean theme for Fintralis — AP recovery / duplicate payment detection product site. Hand-coded, no page builder.
Version: 3.6
Text Domain: fintralis
*/

:root{
  /* --- redesign palette (Aug 2026). Existing variable names are kept and
     remapped so every page inherits the new design system, not just home. --- */
  --navy-900:#0e1b35;
  --navy-800:#182c52;
  --periwinkle:#8fa1e3;
  --periwinkle-deep:#5b6fc4;
  --rust:#b34a2f;
  --moss:#4b6350;
  --slate:#5b6478;
  --slate-soft:#8890a0;
  --line:#e3ded0;
  --line-dark:rgba(255,255,255,.14);
  --shadow:0 20px 50px -20px rgba(14,27,53,.35);

  /* legacy names remapped to the new palette */
  --paper: #f6f4ee;
  --white: #fdfcf9;
  --paper-line: #e3ded0;
  --ink: #14213d;
  --ink-2: #182c52;
  --ink-soft: #5b6478;
  --blue: #5b6fc4;
  --blue-deep: #182c52;
  --blue-soft: #eceefb;
  --steel: #8890a0;
  --emerald: #4b6350;
  --emerald-soft: #e8ede9;
  --flag: #b34a2f;
  --flag-soft: #fbf0ec;
  --brass: #b34a2f;

  --radius: 14px;
  --maxw: 1160px;
  --serif: 'Newsreader', Georgia, serif;
  --sans: 'Inter', system-ui, -apple-system, sans-serif;
  --mono: 'IBM Plex Mono', 'SFMono-Regular', monospace;
}
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
a{ color:inherit; }
img{ display:block; max-width:100%; }
.wrap{ max-width:1160px; margin:0 auto; padding:0 32px; }
.eyebrow{
  font-family:var(--mono); font-size:11.5px; letter-spacing:.16em; text-transform:uppercase;
  font-weight:600; display:inline-flex; align-items:center; gap:8px;
}
.eyebrow::before{ content:""; width:14px; height:1px; background:currentColor; display:inline-block; }
h1,h2,h3{ font-family:var(--serif); color:var(--ink); font-weight:500; letter-spacing:-.01em; }
.btn{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--sans); font-weight:600; font-size:14.5px;
  padding:14px 26px; border-radius:8px; cursor:pointer;
  border:1px solid transparent; transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.btn:hover{ transform:translateY(-1px); }
.btn:focus-visible{ outline:3px solid var(--blue); outline-offset:2px; }
.btn-blue{ background:var(--blue); color:var(--white); box-shadow:0 1px 0 rgba(0,0,0,.15); }
.btn-blue:hover{ box-shadow:0 10px 24px -8px rgba(46,111,224,.55); }
.btn-line{ background:transparent; color:var(--white); border-color:rgba(251,251,248,.4); }
.btn-line:hover{ background:rgba(251,251,248,.08); border-color:var(--white); }
.btn-ink{ background:var(--ink); color:var(--white); }
.btn-ink:hover{ box-shadow:0 10px 24px -10px rgba(10,26,48,.5); }

/* ---------- NAV ---------- */
nav.site-nav{
  position:sticky; top:0; z-index:60;
  background:rgba(244,243,238,.86); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--paper-line);
}
nav.site-nav .wrap{ display:flex; align-items:center; justify-content:space-between; height:82px; }
.logo{ display:flex; align-items:center; gap:11px; font-family:var(--serif); font-size:22px; font-weight:600; text-decoration:none; color:var(--ink); }
.logo img.mark{ width:38px; height:38px; border-radius:9px; box-shadow:0 4px 14px -4px rgba(10,26,48,.4); }
.navlinks{ display:flex; align-items:center; gap:40px; font-size:14.5px; font-weight:500; color:var(--ink-soft); }
.navlinks ul{ list-style:none; display:flex; gap:34px; }
.navlinks a:not(.btn){ text-decoration:none; }
.navlinks a:not(.btn):hover{ color:var(--ink); }
.nav-links-group{ display:flex; align-items:center; gap:34px; }
.navlinks .btn{ padding:11px 22px; font-size:13.5px; }
@media (max-width:860px){ .nav-links-group ul{ display:none; } }

/* ---------- HERO ---------- */
header.hero{
  position:relative; padding:140px 0 100px; overflow:hidden;
  background:
    repeating-linear-gradient(180deg, rgba(255,255,255,.025) 0 39px, rgba(255,255,255,.06) 39px 40px),
    radial-gradient(ellipse 900px 500px at 82% 8%, rgba(46,111,224,.35), transparent 60%),
    linear-gradient(160deg, var(--ink) 0%, var(--ink-2) 60%, var(--blue-deep) 130%);
}
.shield-watermark{ position:absolute; right:-60px; top:-40px; width:520px; opacity:.5; pointer-events:none; }
header.hero .wrap{ position:relative; z-index:2; }
.hero-top{ display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:start; }
@media (max-width:960px){ .hero-top{ grid-template-columns:1fr; } }
.hero-eyebrow{ color:#8FB4F5; }
.hero h1{ color:var(--white); font-size:clamp(36px,4.6vw,56px); line-height:1.08; margin:20px 0 22px; max-width:15.5ch; }
.hero h1 em{ font-style:italic; color:#AECBFA; }
.hero p.sub{ font-size:18px; color:#C6D0DC; max-width:46ch; margin-bottom:32px; }
.home .hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:22px; }
.hero-note{ font-family:var(--mono); font-size:12.5px; color:#93A2B4; display:flex; align-items:center; gap:8px; }
.hero-note::before{ content:"—"; color:var(--blue); }

.tape-card{
  background:rgba(251,251,248,.98); border:1px solid rgba(255,255,255,.08); border-radius:16px;
  box-shadow:0 40px 80px -28px rgba(0,0,0,.55);
  overflow:hidden;
}
.tape-head{
  display:flex; justify-content:space-between; align-items:center;
  padding:16px 22px; border-bottom:1px dashed var(--paper-line);
  font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft);
}
.tape-head .dot{ width:7px; height:7px; border-radius:50%; background:var(--emerald); display:inline-block; margin-right:6px; animation:pulse 2s infinite; }
@keyframes pulse{ 0%,100%{ opacity:1;} 50%{ opacity:.35;} }
.tape-row{
  display:grid; grid-template-columns:22px 1fr auto auto; gap:12px; align-items:center;
  padding:12px 22px; border-bottom:1px solid #EFF2EC;
  font-size:12.5px; opacity:0; transform:translateY(6px);
  animation:rowIn .5s ease forwards;
}
.tape-row:last-of-type{ border-bottom:none; }
.tape-row .n{ font-family:var(--mono); color:#9AA69C; font-size:11px; }
.tape-row .vendor{ color:var(--ink); font-weight:500; }
.tape-row .inv{ font-family:var(--mono); font-size:11px; color:var(--ink-soft); }
.tape-row .amt{ font-family:var(--mono); font-weight:500; text-align:right; }
.tape-row.flagged{ background:var(--flag-soft); position:relative; }
.tape-row.flagged .amt{ color:var(--flag); }
.stamp{
  position:absolute; right:14px; top:50%; transform:translateY(-50%) rotate(-6deg);
  font-family:var(--mono); font-size:9px; font-weight:600; letter-spacing:.06em;
  color:var(--flag); border:1.5px solid var(--flag); border-radius:4px; padding:3px 6px;
  background:rgba(251,251,248,.6);
}
@keyframes rowIn{ to{ opacity:1; transform:translateY(0); } }
.tape-row:nth-of-type(1){ animation-delay:.3s; }
.tape-row:nth-of-type(2){ animation-delay:.5s; }
.tape-row:nth-of-type(3){ animation-delay:.7s; }
.tape-row:nth-of-type(4){ animation-delay:.9s; }
.tape-row:nth-of-type(5){ animation-delay:1.1s; }
.tape-foot{
  display:flex; justify-content:space-between; align-items:center;
  padding:20px 22px; background:var(--ink);
}
.tape-foot .label{ font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:#8B9BAE; }
.tape-foot .total{ font-family:var(--mono); font-size:24px; font-weight:600; color:#7FB4FF; }

@media (prefers-reduced-motion: reduce){
  .tape-row{ animation:none; opacity:1; transform:none; }
  .tape-head .dot{ animation:none; }
}

/* ---------- SYSTEMS BAR ---------- */
.systems{ border-bottom:1px solid var(--paper-line); padding:28px 0; background:var(--white); }
.systems .wrap{ display:flex; align-items:center; gap:36px; flex-wrap:wrap; justify-content:space-between; }
.systems .label{ font-family:var(--mono); font-size:11.5px; color:var(--ink-soft); letter-spacing:.06em; white-space:nowrap; }
.badges{ display:flex; gap:12px; flex-wrap:wrap; }
.badge{
  font-family:var(--mono); font-size:12.5px; font-weight:600; letter-spacing:.02em;
  padding:8px 15px; border:1px solid var(--paper-line); border-radius:7px; color:var(--ink-soft);
}

/* ---------- SECTION SHELL ---------- */
section{ padding:104px 0; }
.section-head{ max-width:640px; margin-bottom:56px; }
.section-head .eyebrow{ color:var(--blue); }
.section-head h2{ font-size:clamp(28px,3.2vw,40px); margin-top:14px; }
.section-head p{ color:var(--ink-soft); font-size:16.5px; margin-top:14px; }

/* ---------- PROBLEM ---------- */
.problem{ display:grid; grid-template-columns:.85fr 1.15fr; gap:56px; align-items:center; }
@media (max-width:900px){ .problem{ grid-template-columns:1fr; } }
.illus-card{
  background:var(--blue-soft); border-radius:20px; padding:36px;
  display:flex; align-items:center; justify-content:center;
}
.problem-facts{ display:flex; flex-direction:column; gap:26px; }
.problem-facts .fact{ padding-left:20px; border-left:2px solid var(--blue); }
.problem-facts .fact h3{ font-size:17px; margin-bottom:6px; }
.problem-facts .fact p{ color:var(--ink-soft); font-size:14.5px; }

/* ---------- HOW IT WORKS ---------- */
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; background:var(--white); border-radius:var(--radius); overflow:hidden; border:1px solid var(--paper-line); }
@media (max-width:820px){ .steps{ grid-template-columns:1fr; } }
.step{ padding:38px 32px; border-right:1px solid var(--paper-line); }
.step:last-child{ border-right:none; }
@media (max-width:820px){ .step{ border-right:none; border-bottom:1px solid var(--paper-line); } .step:last-child{ border-bottom:none; } }
.step .num{ font-family:var(--mono); font-size:12.5px; color:var(--blue); font-weight:600; letter-spacing:.06em; }
.step h3{ font-size:19px; margin:14px 0 10px; }
.step p{ color:var(--ink-soft); font-size:14.5px; }

/* ---------- QUOTE ---------- */
.quote-section{
  position:relative; padding:110px 0;
  background:
    repeating-linear-gradient(180deg, rgba(255,255,255,.02) 0 39px, rgba(255,255,255,.05) 39px 40px),
    linear-gradient(150deg, var(--ink) 0%, var(--blue-deep) 140%);
  overflow:hidden;
}
.quote-mark{ position:absolute; font-family:var(--serif); font-size:340px; color:rgba(255,255,255,.05); top:-90px; left:20px; line-height:1; user-select:none; }
.quote-box{ position:relative; max-width:680px; }
.quote-box .eyebrow{ color:#7FB4FF; margin-bottom:22px; }
.quote-box blockquote{
  font-family:var(--serif); font-style:italic; color:var(--white);
  font-size:clamp(22px,2.6vw,30px); line-height:1.4; font-weight:500;
}
.quote-box .attrib{ margin-top:24px; font-family:var(--mono); font-size:12.5px; color:#9FB0C4; letter-spacing:.04em; }

/* ---------- MODEL ---------- */
/* Old homepage .model card styles removed — the class now belongs to the
   redesign's full-width model SECTION. Only .model-cycle (implementation
   page) survives from the old set. */

/* ---------- WHO ---------- */
.who-list{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
@media (max-width:820px){ .who-list{ grid-template-columns:1fr; } }
.who-item{ padding-top:20px; border-top:2px solid var(--ink); }
.who-item h3{ font-size:17.5px; margin-bottom:8px; }
.who-item p{ color:var(--ink-soft); font-size:14px; }

/* ---------- BLOG ---------- */
.blog-section{ background:var(--white); border-top:1px solid var(--paper-line); border-bottom:1px solid var(--paper-line); }
.blog-head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:48px; flex-wrap:wrap; gap:20px; }
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
@media (max-width:900px){ .blog-grid{ grid-template-columns:1fr; } }
.post-card{ text-decoration:none; display:block; color:var(--ink); }
.post-icon-tile{
  border-radius:12px; aspect-ratio:16/10; margin-bottom:18px;
  display:flex; align-items:center; justify-content:center;
  background:var(--blue-soft); transition:transform .3s ease;
  overflow:hidden;
}
.post-icon-tile img{ width:100%; height:100%; object-fit:cover; }
.post-card:hover .post-icon-tile{ transform:translateY(-3px); }
.post-icon-tile svg{ width:56px; height:56px; }
.post-cat{ font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--blue); font-weight:600; }
.post-card h3{ font-size:18.5px; margin:10px 0 8px; line-height:1.3; }
.post-card p{ color:var(--ink-soft); font-size:14px; }
.post-meta{ font-family:var(--mono); font-size:11.5px; color:#9AA6A0; margin-top:12px; }

/* ---------- CTA BAND ---------- */
.cta-band{
  text-align:center; border-radius:20px; padding:72px 32px;
  background:var(--blue-soft); border:1px solid #CBDAF5;
}
.cta-band .eyebrow{ color:var(--blue); justify-content:center; }
.cta-band h2{ font-size:clamp(27px,3.6vw,40px); max-width:22ch; margin:16px auto 14px; }
.cta-band p{ color:var(--ink-soft); max-width:44ch; margin:0 auto 30px; }

/* ---------- FOOTER ---------- */


/* ---------- BLOG INDEX / SINGLE POST (index.php, single.php) ---------- */
.page-hero{
  padding:80px 0 60px; background:linear-gradient(160deg, var(--ink) 0%, var(--blue-deep) 130%);
}
.page-hero h1{ color:var(--white); font-size:clamp(32px,4vw,46px); }
.page-hero p{ color:#C6D0DC; margin-top:14px; font-size:17px; }
.single-post{ max-width:760px; margin:0 auto; padding:80px 32px; }
.single-post .post-cat{ margin-bottom:14px; display:block; }
.single-post h1{ font-size:clamp(30px,4vw,44px); margin-bottom:18px; line-height:1.15; }
.single-post .post-meta-row{ font-family:var(--mono); font-size:12.5px; color:var(--ink-soft); margin-bottom:34px; }
.single-post .featured-image{ border-radius:16px; overflow:hidden; margin-bottom:40px; aspect-ratio:16/9; }
.single-post .featured-image img{ width:100%; height:100%; object-fit:cover; }
.entry-content{ font-size:17px; color:#2B3844; }
.entry-content p{ margin-bottom:22px; }
.entry-content h2{ font-size:26px; margin:40px 0 16px; }
.entry-content h3{ font-size:21px; margin:32px 0 14px; }
.entry-content a{ color:var(--blue); text-decoration:underline; }
.entry-content ul,.entry-content ol{ margin:0 0 22px 22px; }
.entry-content blockquote{ border-left:3px solid var(--blue); padding-left:20px; font-style:italic; color:var(--ink-soft); margin:28px 0; }
.blog-index-grid{ max-width:1160px; margin:0 auto; padding:80px 32px; display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
@media (max-width:900px){ .blog-index-grid{ grid-template-columns:1fr; } }
.pagination{ display:flex; justify-content:center; gap:12px; padding-bottom:80px; font-family:var(--mono); font-size:13px; }
.pagination a,.pagination span{ padding:8px 14px; border:1px solid var(--paper-line); border-radius:6px; text-decoration:none; }

/* ---------- CONTENT PAGES (about, why-fintralis, offerings, value-proposition, implementation, pricing, partnership) ---------- */
.content-section{ max-width:1160px; margin:0 auto; padding:96px 32px; }
.content-section.narrow{ max-width:820px; }
.content-section.tight-top{ padding-top:80px; }

.prose-block{ margin-bottom:44px; }
.prose-block:last-child{ margin-bottom:0; }
.prose-block h2{ font-size:24px; margin-bottom:14px; }
.prose-block h2 .eyebrow-dot{ display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:12px; }
.prose-block p{ color:var(--ink-soft); font-size:16px; margin-bottom:14px; max-width:70ch; }
.prose-block p:last-child{ margin-bottom:0; }
.prose-block .tagline{ font-family:var(--serif); font-style:italic; color:var(--ink); font-size:19px; margin-top:18px; }

.diff-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:8px; }
@media (max-width:900px){ .diff-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .diff-grid{ grid-template-columns:1fr; } }
.diff-card{ background:var(--white); border:1px solid var(--paper-line); border-radius:14px; padding:28px; }
.diff-card .dot{ width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; margin-bottom:16px; }
.diff-card .dot svg{ width:18px; height:18px; }
.diff-card h3{ font-size:17px; margin-bottom:8px; }
.diff-card p{ color:var(--ink-soft); font-size:14px; }

.offer-intro{ background:var(--ink); color:var(--white); border-radius:20px; padding:48px; margin-bottom:48px; }
.offer-intro .eyebrow{ color:#7FB4FF; }
.offer-intro h1{ color:var(--white); font-size:clamp(26px,3.2vw,36px); margin:14px 0 12px; }
.offer-intro p{ color:#C6D0DC; font-size:16px; max-width:60ch; }

.leak-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:56px; }
@media (max-width:760px){ .leak-grid{ grid-template-columns:1fr; } }
.leak-card{ background:var(--blue-soft); border-radius:14px; padding:26px; }
.leak-card h3{ font-size:15px; margin-bottom:12px; font-family:var(--mono); text-transform:uppercase; letter-spacing:.06em; color:var(--blue); }
.leak-card ul{ list-style:none; }
.leak-card li{ font-size:14.5px; color:var(--ink); padding:6px 0; border-bottom:1px dashed #CBDAF5; }
.leak-card li:last-child{ border-bottom:none; }

.offering-list{ display:flex; flex-direction:column; gap:20px; }
.offering-row{ display:grid; grid-template-columns:280px 1fr; gap:32px; align-items:flex-start; padding:28px 0; border-top:1px solid var(--paper-line); }
.offering-row:first-child{ border-top:none; }
@media (max-width:760px){ .offering-row{ grid-template-columns:1fr; gap:12px; } }
.offering-row .tag{ display:inline-block; font-family:var(--mono); font-size:12.5px; font-weight:600; padding:8px 14px; border-radius:7px; background:var(--blue); color:var(--white); }
.offering-row p{ color:var(--ink-soft); font-size:15px; }

.contingency-strip{ text-align:center; background:var(--ink); color:var(--white); border-radius:14px; padding:26px 32px; font-family:var(--serif); font-style:italic; font-size:18px; margin-top:16px; }

.vp-list{ counter-reset:vp; display:flex; flex-direction:column; }
.vp-item{ display:grid; grid-template-columns:70px 1fr; gap:24px; padding:26px 0; border-top:1px solid var(--paper-line); align-items:flex-start; }
.vp-item:first-child{ border-top:none; }
@media (max-width:640px){ .vp-item{ grid-template-columns:44px 1fr; gap:16px; } }
.vp-item .vp-num{ font-family:var(--mono); font-size:26px; font-weight:600; color:var(--blue); }
.vp-item h3{ font-size:16.5px; margin-bottom:4px; }
.vp-item p{ color:var(--ink-soft); font-size:14.5px; }

.model-cycle{ display:flex; flex-wrap:wrap; gap:16px; margin-bottom:60px; }
.model-cycle .stage{ flex:1 1 160px; background:var(--blue-soft); border-radius:12px; padding:20px; text-align:center; font-weight:600; font-size:14.5px; color:var(--ink); }

.timeline{ display:flex; flex-direction:column; gap:0; }
.tl-row{ display:grid; grid-template-columns:44px 1fr; gap:20px; }
.tl-marker{ display:flex; flex-direction:column; align-items:center; }
.tl-marker .pip{ width:14px; height:14px; border-radius:50%; background:var(--blue); flex-shrink:0; }
.tl-marker .line{ width:2px; flex:1; background:var(--paper-line); }
.tl-row:last-child .line{ display:none; }
.tl-content{ padding-bottom:36px; }
.tl-content .dur{ font-family:var(--mono); font-size:12px; color:var(--blue); font-weight:600; letter-spacing:.04em; }
.tl-content h3{ font-size:17px; margin:6px 0 6px; }
.tl-content p{ color:var(--ink-soft); font-size:14.5px; }

.price-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media (max-width:900px){ .price-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .price-grid{ grid-template-columns:1fr; } }
.price-card{ border:1px solid var(--paper-line); border-radius:14px; padding:26px; background:var(--white); }
.price-card h3{ font-size:16px; margin-bottom:8px; }
.price-card p{ color:var(--ink-soft); font-size:14px; }
.price-note{ margin-top:40px; background:var(--blue-soft); border-radius:14px; padding:28px 32px; }
.price-note p{ color:var(--ink); font-size:15px; }

.closing-grid{ display:grid; grid-template-columns:1fr 1fr; gap:28px; }
@media (max-width:760px){ .closing-grid{ grid-template-columns:1fr; } }
.closing-card{ border-radius:16px; padding:32px; }
.closing-card.green{ background:var(--emerald-soft); }
.closing-card.blue{ background:var(--blue-soft); }
.closing-card h3{ font-size:17px; margin-bottom:14px; }
.closing-card ul{ list-style:none; display:flex; flex-direction:column; gap:10px; }
.closing-card li{ font-size:14.5px; color:var(--ink); padding-left:18px; position:relative; }
.closing-card li::before{ content:"—"; position:absolute; left:0; color:var(--blue); }

/* ---------- NAV DROPDOWNS ---------- */
.nav-links-group a:not(.btn){
  color:var(--ink-soft); font-weight:500; font-size:14.5px; text-decoration:none;
  transition:color .15s ease;
}
.nav-links-group > a:hover{ color:var(--ink); }

.nav-drop{ position:relative; }
.nav-drop-trigger{
  display:inline-flex; align-items:center; gap:6px;
  background:none; border:none; cursor:pointer;
  font-family:var(--sans); font-weight:500; font-size:14.5px; color:var(--ink-soft);
  padding:8px 0;
}
.nav-drop-trigger svg{ transition:transform .18s ease; opacity:.6; }
.nav-drop:hover .nav-drop-trigger,
.nav-drop:focus-within .nav-drop-trigger{ color:var(--ink); }
.nav-drop:hover .nav-drop-trigger svg,
.nav-drop:focus-within .nav-drop-trigger svg{ transform:rotate(180deg); }

.nav-drop-menu{
  position:absolute; top:100%; left:50%; transform:translate(-50%,6px);
  width:300px; background:var(--white); border:1px solid var(--paper-line); border-radius:12px;
  box-shadow:0 24px 48px -20px rgba(10,26,48,.28);
  padding:10px;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .16s ease, transform .16s ease, visibility .16s;
  z-index:70;
}
.nav-drop:hover .nav-drop-menu,
.nav-drop:focus-within .nav-drop-menu{
  opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,0);
}
.nav-drop-menu a{
  display:flex; flex-direction:column; gap:2px;
  padding:11px 14px; border-radius:8px; text-decoration:none;
}
.nav-drop-menu a:hover{ background:var(--blue-soft); }
.nav-drop-menu a strong{ font-size:14px; font-weight:600; color:var(--ink); }
.nav-drop-menu a span{ font-size:12.5px; color:var(--ink-soft); }

/* ---------- START AN AUDIT FORM ---------- */
.audit-form-wrap{ max-width:640px; margin:0 auto; padding:0 32px; }
.audit-form{ background:var(--white); border:1px solid var(--paper-line); border-radius:16px; padding:40px; margin-top:-64px; position:relative; z-index:3; box-shadow:0 30px 60px -30px rgba(10,26,48,.25); }
.audit-form .row{ margin-bottom:20px; }
.audit-form .row-2{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:560px){ .audit-form .row-2{ grid-template-columns:1fr; } }
.audit-form label{ display:block; font-family:var(--mono); font-size:11.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-soft); margin-bottom:7px; }
.audit-form input,
.audit-form select,
.audit-form textarea{
  width:100%; font-family:var(--sans); font-size:15px; color:var(--ink);
  border:1px solid var(--paper-line); border-radius:8px; padding:12px 14px;
  background:var(--paper);
}
.audit-form input:focus,
.audit-form select:focus,
.audit-form textarea:focus{ outline:2px solid var(--blue); outline-offset:1px; background:var(--white); }
.audit-form textarea{ resize:vertical; min-height:90px; }
.audit-form .submit-row{ margin-top:8px; }
.audit-form .btn{ width:100%; justify-content:center; padding:15px 26px; }
.audit-form .fine-print{ font-family:var(--mono); font-size:11.5px; color:var(--ink-soft); text-align:center; margin-top:16px; }

.audit-thanks{ text-align:center; background:var(--emerald-soft); border-radius:16px; padding:56px 32px; margin-top:-64px; position:relative; z-index:3; }
.audit-thanks h2{ font-size:26px; margin-bottom:12px; }
.audit-thanks p{ color:var(--ink-soft); font-size:15.5px; }

.audit-error{ background:var(--flag-soft); border:1px solid #E3B6AE; border-radius:10px; padding:14px 18px; margin-bottom:20px; font-size:14px; color:var(--flag); }

/* ---------- OFFERINGS PAGE (redesigned) ---------- */
.offer-hero{
  position:relative; overflow:hidden; padding:110px 0 96px;
  background:
    radial-gradient(ellipse 800px 400px at 78% 10%, rgba(46,111,224,.32), transparent 62%),
    linear-gradient(160deg, var(--ink) 0%, var(--ink-2) 62%, var(--blue-deep) 130%);
}
.offer-hero .wrap{ position:relative; z-index:2; }
.offer-hero .eyebrow{ color:#7FB4FF; }
.offer-hero h1{ color:var(--white); font-size:clamp(32px,4.2vw,50px); margin:18px 0 18px; max-width:17ch; line-height:1.1; }
.offer-hero p{ color:#C6D0DC; font-size:17.5px; max-width:52ch; }

/* leakage flow: sources -> reasons -> recovery */
.flow{ display:grid; grid-template-columns:1fr auto 1fr; gap:28px; align-items:stretch; margin-bottom:24px; }
@media (max-width:860px){ .flow{ grid-template-columns:1fr; } .flow .flow-arrow{ display:none; } }
.flow-col{ background:var(--white); border:1px solid var(--paper-line); border-radius:16px; padding:30px; }
.flow-col h3{
  font-family:var(--mono); font-size:11.5px; text-transform:uppercase; letter-spacing:.1em;
  color:var(--blue); margin-bottom:18px; font-weight:600;
}
.flow-col ul{ list-style:none; display:flex; flex-direction:column; gap:0; }
.flow-col li{
  font-size:14.5px; color:var(--ink); padding:11px 0 11px 26px; position:relative;
  border-bottom:1px solid #F0F0EB;
}
.flow-col li:last-child{ border-bottom:none; }
.flow-col li::before{
  content:""; position:absolute; left:6px; top:18px;
  width:6px; height:6px; border-radius:50%; background:var(--flag); opacity:.55;
}
.flow-col.reasons li::before{ background:var(--brass, #B8862E); }
.flow-arrow{ display:flex; align-items:center; justify-content:center; color:var(--steel); }
.flow-arrow svg{ width:26px; height:26px; }

/* offering cards */
.offer-cards{ display:grid; grid-template-columns:repeat(2,1fr); gap:26px; }
@media (max-width:820px){ .offer-cards{ grid-template-columns:1fr; } }
.offer-card{
  position:relative; display:flex; flex-direction:column;
  background:var(--white); border:1px solid var(--paper-line); border-radius:18px;
  padding:34px; text-decoration:none; overflow:hidden;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.offer-card:hover{
  transform:translateY(-3px);
  box-shadow:0 26px 50px -26px rgba(10,26,48,.35);
  border-color:#C3D3EE;
}
.offer-card .card-num{
  position:absolute; top:26px; right:30px;
  font-family:var(--mono); font-size:44px; font-weight:600; color:var(--blue); opacity:.1; line-height:1;
}
.offer-card .icon{
  width:52px; height:52px; border-radius:13px; background:var(--blue-soft);
  display:flex; align-items:center; justify-content:center; margin-bottom:20px;
}
.offer-card .icon svg{ width:26px; height:26px; }
.offer-card h3{ font-size:20px; margin-bottom:10px; line-height:1.25; }
.offer-card p{ color:var(--ink-soft); font-size:14.5px; margin-bottom:18px; flex-grow:1; }
.offer-card .more{
  font-family:var(--mono); font-size:12px; font-weight:600; letter-spacing:.06em;
  color:var(--blue); text-transform:uppercase;
}
.offer-card.no-link{ cursor:default; }
.offer-card.no-link:hover{ transform:none; box-shadow:none; border-color:var(--paper-line); }

/* contingency band */
.contingency-band{
  margin-top:56px; border-radius:18px; padding:44px 48px;
  background:var(--ink); color:var(--white);
  display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap;
}
.contingency-band .txt{ max-width:56ch; }
.contingency-band h2{ color:var(--white); font-size:24px; margin-bottom:8px; }
.contingency-band p{ color:#C6D0DC; font-size:15px; }

/* ---------- MOBILE NAV ---------- */
.nav-toggle{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:44px; height:44px; padding:0 10px; margin-right:-10px;
  background:none; border:none; cursor:pointer;
}
.nav-toggle span{
  display:block; height:2px; width:100%; background:var(--ink); border-radius:2px;
  transition:transform .22s ease, opacity .18s ease;
}
.nav-toggle.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle.is-open span:nth-child(2){ opacity:0; }
.nav-toggle.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.mobile-nav{
  position:fixed; top:82px; left:0; right:0; bottom:0; z-index:55;
  background:var(--paper); overflow-y:auto;
  opacity:0; transform:translateY(-8px);
  transition:opacity .2s ease, transform .2s ease;
}
.mobile-nav.is-open{ opacity:1; transform:translateY(0); }
.mobile-nav-inner{ padding:28px 32px 64px; display:flex; flex-direction:column; gap:6px; }
.mobile-nav a{ text-decoration:none; color:var(--ink); }
.mobile-nav .m-link{
  font-size:19px; font-weight:600; font-family:var(--serif);
  padding:14px 0; border-bottom:1px solid var(--paper-line);
}
.mobile-nav .m-group{ padding:16px 0 6px; border-bottom:1px solid var(--paper-line); }
.mobile-nav .m-group-label{
  display:block; font-family:var(--mono); font-size:11px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--blue); font-weight:600; margin-bottom:10px;
}
.mobile-nav .m-group a{
  display:block; font-size:16px; color:var(--ink-soft); padding:9px 0;
}
.mobile-nav .m-cta{ margin-top:24px; justify-content:center; width:100%; }
body.nav-open{ overflow:hidden; }

@media (max-width:1180px){
  .navlinks .nav-links-group{ display:none; }
  .navlinks .nav-cta{ display:none; }
  .nav-toggle{ display:flex; }
  nav.site-nav .wrap{ justify-content:space-between; }
}
@media (min-width:1181px){
  .mobile-nav{ display:none !important; }
}

/* responsive polish for the new page layouts */
@media (max-width:760px){
  section{ padding:64px 0; }
  .content-section{ padding:64px 24px; }
  .wrap{ padding:0 24px; }
  .offer-hero{ padding:72px 0 64px; }
  .model{ padding:36px 24px; }
  .contingency-band{ padding:32px 26px; }
  .audit-form{ padding:28px 22px; }
}

/* ---------- HERO WITH ILLUSTRATION (shared across content pages) ---------- */
.hero-split{ display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; }
@media (max-width:900px){ .hero-split{ grid-template-columns:1fr; gap:32px; } }
.hero-split .hero-art{ width:100%; }
.hero-split .hero-art svg{ width:100%; height:auto; display:block; }
@media (max-width:900px){ .hero-split .hero-art{ max-width:420px; } }

/* section-level illustration card (light background) */
.illus-panel{
  background:var(--blue-soft); border-radius:20px; padding:32px;
  display:flex; align-items:center; justify-content:center;
}
.illus-panel svg{ width:100%; height:auto; max-width:400px; }
.illus-panel.ink{ background:var(--ink); }

/* hero that a card overlaps into (e.g. the audit form) needs extra bottom room */
.offer-hero.has-overlap{ padding-bottom:150px; }
@media (max-width:760px){ .offer-hero.has-overlap{ padding-bottom:120px; } }

.form-alt{ text-align:center; font-size:14px; color:var(--ink-soft); margin-top:22px; }
.form-alt a{ color:var(--blue); }

/* ---------- FAQ (AEO) ---------- */
.faq-block{ max-width:820px; }
.faq-list{ border-top:1px solid var(--paper-line); }
.faq-item{ border-bottom:1px solid var(--paper-line); }
.faq-item summary{
  display:flex; align-items:flex-start; justify-content:space-between; gap:24px;
  padding:22px 0; cursor:pointer; list-style:none;
  font-family:var(--serif); font-size:18.5px; font-weight:600; color:var(--ink);
  transition:color .15s ease;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary:hover{ color:var(--blue); }
.faq-item summary svg{ flex-shrink:0; margin-top:6px; color:var(--blue); transition:transform .2s ease; }
.faq-item[open] summary svg{ transform:rotate(45deg); }
.faq-answer{ padding:0 0 24px; max-width:68ch; }
.faq-answer p{ color:var(--ink-soft); font-size:15.5px; line-height:1.65; }
.faq-section{ background:var(--white); border-top:1px solid var(--paper-line); }
.faq-section .wrap{ display:flex; justify-content:center; }

/* ---------- SINGLE POST ---------- */
.post-single{ background:var(--paper); }

.post-header{
  position:relative; width:100%; overflow:hidden;
  padding:72px 0 60px;
  background:
    radial-gradient(ellipse 800px 400px at 78% 10%, rgba(46,111,224,.32), transparent 62%),
    linear-gradient(160deg, var(--ink) 0%, var(--ink-2) 62%, var(--blue-deep) 130%);
}
/* Uses the standard .wrap width so the header matches every other page. */
.crumbs{ font-family:var(--mono); font-size:11.5px; letter-spacing:.06em; color:#8B9BAE; margin-bottom:26px; }
.crumbs a{ color:#8B9BAE; text-decoration:none; }
.crumbs a:hover{ color:var(--white); }
.crumbs span{ margin:0 8px; opacity:.5; }
.post-header-cat{ color:#7FB4FF; }
.post-header h1{
  color:var(--white); font-size:clamp(32px,4.4vw,50px); line-height:1.1;
  margin:16px 0 0; max-width:24ch;
}
.post-standfirst{
  color:#C6D0DC; font-size:18px; line-height:1.6; margin-top:18px; max-width:56ch;
}
.post-byline{ display:flex; align-items:center; gap:12px; margin-top:32px; }
.byline-mark{ width:38px; height:38px; border-radius:9px; flex-shrink:0; }
.byline-name{ display:block; color:var(--white); font-weight:600; font-size:14.5px; }
.byline-meta{ display:block; font-family:var(--mono); font-size:11.5px; color:#8B9BAE; margin-top:2px; }
.byline-meta span{ margin:0 6px; opacity:.6; }

.post-body{ max-width:720px; margin:0 auto; padding:64px 32px 0; }
.post-body .entry-content{ font-size:17.5px; line-height:1.75; color:#25313D; }
.post-body .entry-content > p:first-of-type{ font-size:19px; color:var(--ink); }
.post-body .entry-content p{ margin-bottom:24px; }
.post-body .entry-content h2{
  font-size:27px; margin:52px 0 16px; line-height:1.25;
  padding-top:24px; border-top:1px solid var(--paper-line);
}
.post-body .entry-content h3{ font-size:20px; margin:36px 0 12px; }
.post-body .entry-content ul,
.post-body .entry-content ol{ margin:0 0 24px 22px; }
.post-body .entry-content li{ margin-bottom:9px; }
.post-body .entry-content a{ color:var(--blue); text-decoration:underline; text-underline-offset:2px; }
.post-body .entry-content blockquote{
  border-left:3px solid var(--blue); padding:4px 0 4px 22px; margin:32px 0;
  font-family:var(--serif); font-style:italic; font-size:20px; color:var(--ink);
}
.post-body .entry-content img{ border-radius:12px; margin:32px 0; }
.post-body .entry-content code{
  font-family:var(--mono); font-size:.9em; background:var(--blue-soft);
  padding:2px 6px; border-radius:4px;
}

/* the auto-generated FAQ block that lands in post content */
.post-body .entry-content h2 + h3{ margin-top:24px; }

.post-foot{
  display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap;
  margin-top:52px; padding-top:26px; border-top:1px solid var(--paper-line);
}
.post-tags{ display:flex; gap:10px; flex-wrap:wrap; }
.post-tags a{
  font-family:var(--mono); font-size:12px; color:var(--ink-soft);
  text-decoration:none; padding:6px 12px; border:1px solid var(--paper-line); border-radius:6px;
}
.post-tags a:hover{ color:var(--blue); border-color:var(--blue); }
.cat-chip{
  font-family:var(--mono); font-size:12px; font-weight:600; letter-spacing:.04em;
  color:var(--blue); text-decoration:none;
}
.cat-chip:hover{ text-decoration:underline; }

.post-cta{ padding:72px 0 0; }

.post-related{ padding:80px 0 96px; }

@media (max-width:760px){
  .post-header{ padding:40px 0 36px; }
  .post-body{ padding:48px 24px 0; }
  .post-body .entry-content{ font-size:16.5px; }
  .post-body .entry-content > p:first-of-type{ font-size:17.5px; }
  .post-related{ padding:56px 0 72px; }
}


/* ---------- NAV FIT FIXES ---------- */
/* Buttons must never wrap or inherit the default link underline. */
.btn{ white-space:nowrap; text-decoration:none; }
a.btn, .navlinks a.btn, .mobile-nav a.btn{ text-decoration:none; }

/* Logo keeps its intrinsic width instead of being squeezed by the nav links. */
nav.site-nav .logo{ flex-shrink:0; white-space:nowrap; }
nav.site-nav .logo img.mark{ flex-shrink:0; }

/* Nav row: more room, and nothing collapses into anything else. */
nav.site-nav .wrap{ max-width:1280px; gap:24px; }
nav.site-nav .navlinks{ gap:22px; flex-shrink:0; }
nav.site-nav .nav-links-group{ gap:26px; flex-wrap:nowrap; }
nav.site-nav .nav-links-group > a,
nav.site-nav .nav-drop-trigger{ white-space:nowrap; flex-shrink:0; }
nav.site-nav .navlinks .btn{ flex-shrink:0; }

/* ---------- SINGLE POST HEADER (split, matches other page heroes) ---------- */
.post-header-split{
  display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center;
}
@media (max-width:900px){
  .post-header-split{ grid-template-columns:1fr; gap:32px; }
}
.post-header-text{ min-width:0; }
.post-header-art img{
  width:100%; height:auto; display:block; border-radius:16px;
  box-shadow:0 30px 60px -28px rgba(0,0,0,.55);
}
.post-header-art.art-svg svg{ width:100%; height:auto; display:block; }
@media (max-width:900px){
  .post-header-art{ max-width:460px; }
}

/* ---------- E-E-A-T: author box + trust signals ---------- */
.byline-role{ font-weight:400; color:#8B9BAE; }

.post-body-aside{ padding-top:48px; padding-bottom:0; }
.author-box{
  display:flex; gap:20px; align-items:flex-start;
  background:var(--white); border:1px solid var(--paper-line); border-radius:16px;
  padding:28px;
}
@media (max-width:560px){ .author-box{ flex-direction:column; gap:14px; } }
.author-avatar{ width:56px; height:56px; border-radius:12px; flex-shrink:0; }
.author-eyebrow{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--blue); font-weight:600;
}
.author-detail h3{ font-size:18px; margin:6px 0 2px; }
.author-detail h3 a{ text-decoration:none; }
.author-detail h3 a:hover{ color:var(--blue); }
.author-role{ display:block; font-size:13.5px; color:var(--ink-soft); margin-bottom:10px; }
.author-detail p{ font-size:14.5px; color:var(--ink-soft); line-height:1.6; margin:0; }



/* =====================================================================
   HOMEPAGE REDESIGN (Aug 2026)
   Ported from fintralis-homepage-redesign_1.html. Section shells are
   scoped to .home so they can't affect the other page templates.
   ===================================================================== */
.home .dark{ background:linear-gradient(160deg,var(--navy-900),var(--navy-800)); color:#fff; }
.home .dark p{ color:rgba(255,255,255,.72); }
.home .dark h1, .home .dark h2, .home .dark h3{ color:#fff; }
.home .on-dark .eyebrow{ color:var(--periwinkle); }
.home .on-dark .eyebrow::before{ background:var(--periwinkle); }

.btn-primary{ background:var(--periwinkle-deep); color:#fff; box-shadow:0 10px 24px -10px rgba(91,111,196,.6); }
.btn-primary:hover{ transform:translateY(-1px); box-shadow:0 14px 28px -10px rgba(91,111,196,.7); }
.btn-ghost-dark{ background:transparent; border:1px solid rgba(255,255,255,.35); color:#fff; }
.btn-ghost-dark:hover{ background:rgba(255,255,255,.08); }
.btn-dark{ background:var(--navy-900); color:#fff; }
.btn-dark:hover{ transform:translateY(-1px); }

/* reveal-on-scroll */
.reveal{ opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease; }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
}

.home .dupe-tag{ font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--rust); border:1px solid var(--rust); border-radius:5px; padding:2px 6px; transform:rotate(-3deg); font-weight:600; }
.home .ledger-foot{ display:flex; justify-content:space-between; align-items:center; padding:16px 20px; background:var(--navy-900); }
.home .ledger-foot span:first-child{ font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.6); }
.home .ledger-foot .amount{ font-family:'IBM Plex Mono',monospace; font-size:24px; font-weight:500; color:var(--periwinkle); opacity:0; transition:opacity .5s ease; }
.home .ledger-foot .amount.show{ opacity:1; }

.home .systems-strip{ border-top:1px solid var(--line-dark); border-bottom:1px solid var(--line-dark); }
.home .systems-row{ display:flex; align-items:center; justify-content:space-between; padding:20px 0; flex-wrap:wrap; gap:14px; }
.home .systems-row p{ margin:0; font-family:'IBM Plex Mono',monospace; font-size:12.5px; color:rgba(255,255,255,.6); text-transform:uppercase; letter-spacing:.08em; }
.home .pill-row{ display:flex; gap:10px; }
.home .pill{ font-family:'IBM Plex Mono',monospace; font-size:12.5px; border:1px solid rgba(255,255,255,.3); color:#fff; padding:7px 14px; border-radius:8px; }

/* ---------- trust band (new) ---------- */
.home .trust{ background:var(--paper); padding:76px 0; }
.home .trust-head{ max-width:640px; margin-bottom:44px; }
.home .trust-head h2{ font-size:clamp(26px,3vw,34px); line-height:1.2; margin-top:10px; }
.home .trust-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.home .trust-card{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:28px; }
.home .trust-card .icon{ width:38px; height:38px; margin-bottom:18px; color:var(--periwinkle-deep); }
.home .trust-card h3{ font-size:18px; margin-bottom:8px; }
.home .trust-card p{ font-size:14.5px; margin:0; }
.home .trust-card .fill-note{ display:block; margin-top:10px; font-size:12px; color:var(--slate-soft); font-style:italic; }

/* ---------- founding partner strip ---------- */
.home .founding{ background:var(--navy-900); padding:26px 0; }
.home .founding .wrap{ display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.home .founding p{ color:rgba(255,255,255,.85); margin:0; font-size:14.5px; }
.home .founding strong{ color:#fff; }

/* ---------- founder note (replaces fake testimonial) ---------- */
.home .founder-note{ background:var(--paper); padding:80px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.home .fn-inner{ display:grid; grid-template-columns:auto 1fr; gap:30px; max-width:820px; margin:0 auto; align-items:flex-start; }
.home .fn-avatar{ width:72px; height:72px; border-radius:50%; background:var(--navy-900); color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Newsreader',serif; font-size:24px; flex:none; }
.home .fn-quote{ font-family:'Newsreader',serif; font-size:22px; line-height:1.5; color:var(--ink); font-style:italic; }
.home .fn-sig{ margin-top:18px; font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--slate); }
.home .fn-sig strong{ color:var(--ink); font-family:'Inter',sans-serif; font-style:normal; display:block; font-size:14.5px; margin-bottom:2px;}

/* ---------- sample finding (signature interactive element) ---------- */
.home .sample{ background:var(--paper); padding:84px 0; }
.home .sample-head{ max-width:640px; margin-bottom:40px; }
.home .sample-head h2{ font-size:clamp(26px,3vw,34px); line-height:1.2; margin-top:10px; }
.home .sample-card{ background:var(--paper); border:1px solid var(--line); border-radius:16px; overflow:hidden; }
.home .sample-row{ display:grid; grid-template-columns:30px 1fr auto auto 190px; gap:14px; align-items:center; padding:16px 22px; border-bottom:1px solid #f0ede4; font-size:14px; }
.home .sample-row .idx{ font-family:'IBM Plex Mono',monospace; color:var(--slate-soft); font-size:12px; }
.home .sample-row .vendor{ font-weight:600; }
.home .sample-row .invno{ font-family:'IBM Plex Mono',monospace; color:var(--slate-soft); font-size:12.5px; }
.home .sample-row .amt{ font-family:'IBM Plex Mono',monospace; font-weight:500; }
.home .reveal-btn{ font-family:'IBM Plex Mono',monospace; font-size:11.5px; text-transform:uppercase; letter-spacing:.06em; background:var(--paper); border:1px solid var(--line); border-radius:7px; padding:8px 10px; cursor:pointer; color:var(--ink); }
.home .reveal-btn:hover{ background:#efece2; }
.home .reason{ display:none; background:#fbf0ec; padding:16px 22px; font-size:13.5px; color:var(--ink); border-bottom:1px solid #f0ede4; }
.home .reason.show{ display:block; }
.home .reason b{ color:var(--rust); }
.home .sample-card .clean-row{ opacity:.55; }

/* ---------- why hides / how it works (existing pattern, kept) ---------- */
.home .split{ padding:88px 0; }
.home .split-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:60px; align-items:center; }
.home .split-graphic{ background:#eaeefb; border-radius:20px; aspect-ratio:1/.95; display:flex; align-items:center; justify-content:center; }
.home .split-graphic svg{ width:56%; }
.home .split h2{ font-size:clamp(26px,3.4vw,36px); line-height:1.2; margin-bottom:22px; }
.home .reason-item{ border-left:2px solid var(--periwinkle-deep); padding-left:18px; margin-bottom:22px; }
.home .reason-item h3{ font-size:16.5px; margin-bottom:6px; }
.home .reason-item p{ font-size:14.5px; margin:0; }

.home .how{ background:var(--paper); padding:88px 0; }
.home .how-head{ max-width:600px; margin-bottom:44px; }
.home .how-head h2{ font-size:clamp(26px,3.4vw,36px); line-height:1.2; margin-top:10px; }
.home .how-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.home .how-card{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:26px; }
.home .how-num{ font-family:'IBM Plex Mono',monospace; color:var(--periwinkle-deep); font-size:13px; margin-bottom:14px; }
.home .how-card h3{ font-size:18px; margin-bottom:8px; }
.home .how-card p{ font-size:14.5px; margin:0; }

/* ---------- model ---------- */
.home .model{ background:var(--navy-900); padding:6px 0 92px; }
.home .model-card{ padding:56px; border-radius:20px; }
.home .model-grid{ display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; }
.home .model h2{ font-size:clamp(26px,3.2vw,34px); line-height:1.2; margin:10px 0 16px; }
.home .model p{ font-size:15px; max-width:44ch; }
.home .model-table{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.14); border-radius:14px; overflow:hidden; }
.home .model-line{ display:flex; justify-content:space-between; padding:16px 22px; border-bottom:1px solid rgba(255,255,255,.1); font-size:14.5px; color:rgba(255,255,255,.8); }
.home .model-line:last-child{ border-bottom:none; }
.home .model-line .v{ font-family:'IBM Plex Mono',monospace; color:#fff; font-weight:500; }

/* ---------- who for ---------- */
.home .who{ padding:88px 0; }
.home .who-head{ max-width:600px; margin-bottom:44px; }
.home .who-head h2{ font-size:clamp(26px,3.2vw,34px); line-height:1.2; margin-top:10px; }
.home .who-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.home .who-card h3{ font-size:17px; margin-bottom:8px; }
.home .who-card p{ font-size:14.5px; margin:0; color:var(--slate); }

/* ---------- insights ---------- */
.home .insights{ background:var(--paper); padding:88px 0; }
.home .ins-head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:40px; gap:20px; flex-wrap:wrap; }
.home .ins-head h2{ font-size:clamp(26px,3.2vw,34px); line-height:1.2; margin-top:10px; max-width:520px; }
.home .ins-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.home .ins-card{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; text-decoration:none; display:block; }
.home .ins-thumb{ height:150px; background:linear-gradient(135deg,var(--navy-800),var(--periwinkle-deep)); }
.home .ins-body{ padding:22px; }
.home .ins-tag{ font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--periwinkle-deep); text-transform:uppercase; letter-spacing:.06em; }
.home .ins-body h3{ font-size:17px; margin:8px 0; line-height:1.35; }
.home .ins-body p{ font-size:13.5px; margin:0 0 12px; }
.home .ins-meta{ font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--slate-soft); }

/* ---------- FAQ ---------- */
.faq{ padding:88px 0; }
.home .faq-head{ max-width:600px; margin-bottom:36px; }
.home .faq-head h2{ font-size:clamp(26px,3.2vw,34px); line-height:1.2; margin-top:10px; }
.faq-item{ border-top:1px solid var(--line); }
.faq-item:last-child{ border-bottom:1px solid var(--line); }
.faq-q{ width:100%; text-align:left; background:none; border:none; padding:22px 4px; display:flex; justify-content:space-between; align-items:center; cursor:pointer; font-size:16px; font-weight:600; color:var(--ink); gap:20px; }
.faq-q svg{ flex:none; width:16px; height:16px; transition:transform .2s ease; color:var(--slate); }
.faq-item.open .faq-q svg{ transform:rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .25s ease; }
.faq-item.open .faq-a{ max-height:400px; }
.faq-a p{ padding:0 4px 22px; font-size:14.5px; }
.faq-a.highlight p{ background:#eaeefb; border-radius:10px; padding:14px 16px; margin:0 4px 22px; }

/* ---------- final CTA ---------- */
.home .final{ padding:0 0 96px; }
.home .final-card{ background:linear-gradient(160deg,#e8ecfa,#eef1fb); border-radius:24px; padding:70px 40px; text-align:center; }
.home .final h2{ font-size:clamp(28px,4vw,40px); line-height:1.15; max-width:16ch; margin:0 auto; }
.home .final p{ max-width:46ch; margin:18px auto 30px; font-size:16px; }
.home .final .assurance{ margin-top:18px; font-family:'IBM Plex Mono',monospace; font-size:12.5px; color:var(--slate); }

/* ---------- footer ---------- */

.reveal{ opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease; }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }


/* ---------- hero layout + texture ----------
   The dot texture must be layered ON TOP of the navy gradient in one
   background shorthand. Setting background-image alone wipes the gradient
   that .dark declares via the background shorthand. */
.home .hero{
  padding:88px 0 70px; position:relative; overflow:hidden;
  background:
    radial-gradient(rgba(143,161,227,.16) 1px, transparent 1px) -10px -10px / 26px 26px,
    linear-gradient(160deg, var(--navy-900), var(--navy-800));
}
.home .hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; }
.home .hero h1{ font-size:clamp(34px,4.4vw,54px); line-height:1.12; letter-spacing:-.01em; }
.home .hero h1 em{ font-style:italic; color:var(--periwinkle); font-weight:500; }
.home .hero .lede{ font-size:17.5px; max-width:46ch; margin-top:20px; color:rgba(255,255,255,.72); }
.home .hero-ctas{ display:flex; gap:14px; margin-top:30px; flex-wrap:wrap; }
.home .risk-line{ margin-top:22px; display:flex; align-items:center; gap:9px; font-family:var(--mono); font-size:13px; color:rgba(255,255,255,.85); }
.home .risk-line svg{ width:15px; height:15px; flex:none; color:#8ee0b0; }

.home .ledger-card{ background:var(--white); border-radius:16px; box-shadow:0 30px 70px -25px rgba(0,0,0,.55); overflow:hidden; color:var(--ink); }
.home .ledger-head{ display:flex; justify-content:space-between; align-items:center; padding:16px 20px; border-bottom:1px solid var(--line); font-family:var(--mono); font-size:11.5px; letter-spacing:.08em; color:var(--slate); text-transform:uppercase; }
.home .live-dot{ width:7px; height:7px; border-radius:50%; background:#3fbf72; display:inline-block; margin-right:6px; box-shadow:0 0 0 3px rgba(63,191,114,.2); }
.home .ledger-row{ display:grid; grid-template-columns:26px 1fr auto auto; gap:12px; padding:13px 20px; align-items:center; font-size:13.5px; border-bottom:1px solid #f0ede4; }
.home .ledger-row .idx{ color:var(--slate-soft); font-family:var(--mono); font-size:12px; }
.home .ledger-row .inv{ color:var(--slate-soft); font-family:var(--mono); font-size:12px; }
.home .ledger-row.dupe{ background:#fbf0ec; }

/* ---------- relationship chain (methodology visual) ---------- */
.home .relationship-chain{ display:flex; align-items:center; justify-content:center; gap:0; margin:30px 0 8px; }
.home .rc-node{ display:flex; flex-direction:column; align-items:center; gap:8px; width:84px; text-align:center; }
.home .rc-node .rc-icon{ width:38px; height:38px; border-radius:50%; background:var(--paper); border:1.5px solid var(--line); display:flex; align-items:center; justify-content:center; color:var(--periwinkle-deep); }
.home .rc-node .rc-icon svg{ width:18px; height:18px; }
.home .rc-node span{ font-size:11.5px; color:var(--slate); font-weight:500; }
.home .rc-link{ flex:1; min-width:14px; height:1px; background:repeating-linear-gradient(90deg, var(--line) 0 5px, transparent 5px 9px); margin:0 -2px; margin-bottom:26px; }
.home .rc-caption{ text-align:center; font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--periwinkle-deep); margin-top:6px; }

/* ---------- data security section ---------- */
.home .security{ background:var(--paper); padding:88px 0; border-top:1px solid var(--line); }
.home .security-head{ max-width:560px; margin-bottom:48px; }
.home .security-head h2{ font-size:clamp(26px,3.2vw,34px); line-height:1.2; margin-top:10px; }
.home .flow-row{ display:flex; align-items:center; justify-content:center; gap:0; margin-bottom:46px; }
.home .flow-node{ background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:18px 16px; width:132px; text-align:center; }
.home .flow-node.hub{ background:var(--navy-900); border-color:var(--navy-900); width:168px; padding:20px 14px; }
.home .flow-node .fn-icon{ width:30px; height:30px; margin:0 auto 10px; color:var(--periwinkle-deep); }
.home .flow-node.hub .fn-icon{ color:var(--periwinkle); }
.home .flow-node span.label{ font-size:12.5px; font-weight:600; color:var(--ink); display:block; }
.home .flow-node.hub span.label{ color:#fff; font-family:'Newsreader',serif; font-size:14.5px; margin-bottom:8px; }
.home .flow-node.hub ul{ list-style:none; margin:0; padding:0; text-align:left; }
.home .flow-node.hub li{ font-size:11.5px; color:rgba(255,255,255,.75); padding:3px 0; display:flex; align-items:center; gap:6px; }
.home .flow-node.hub li::before{ content:"›"; color:var(--periwinkle); }
.flow-arrow{ flex:1; min-width:18px; height:1px; background:var(--line); position:relative; margin:0 -1px; }
.flow-arrow::after{ content:""; position:absolute; right:0; top:-3px; border:4px solid transparent; border-left-color:var(--line); }
.home .security-principles{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.home .sp-item{ }
.home .sp-item .icon{ width:28px; height:28px; color:var(--periwinkle-deep); margin-bottom:12px; }
.home .sp-item h4{ font-size:14.5px; font-weight:600; color:var(--ink); margin:0 0 5px; }
.home .sp-item p{ font-size:13px; margin:0; }
@media (max-width:880px){ .flow-row{ flex-wrap:wrap; gap:16px; } .flow-arrow{ display:none; } .security-principles{ grid-template-columns:1fr 1fr; } }

/* ---------- equation strip (model section) ---------- */
.home .equation{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin:22px 0 26px; }
.home .eq-part{ text-align:left; }
.home .eq-part .amt{ font-family:'IBM Plex Mono',monospace; font-size:20px; color:#fff; font-weight:500; }
.home .eq-part .amt.accent{ color:var(--periwinkle); }
.home .eq-part .lbl{ font-size:11.5px; color:rgba(255,255,255,.55); margin-top:2px; }
.home .eq-op{ font-size:22px; color:rgba(255,255,255,.4); font-family:'IBM Plex Mono',monospace; }
.home .model-checks{ list-style:none; margin:26px 0 0; padding:0; display:flex; flex-direction:column; gap:10px; }
.home .model-checks li{ display:flex; align-items:center; gap:9px; font-size:14px; color:rgba(255,255,255,.85); }
.home .model-checks svg{ width:16px; height:16px; color:#8ee0b0; flex:none; }

/* ---------- ROI calculator ---------- */
.home .calc{ background:var(--paper); padding:88px 0; }
.home .calc-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:start; }
.home .calc-head h2{ font-size:clamp(26px,3.2vw,34px); line-height:1.2; margin-top:10px; }
.home .calc-panel{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:30px; }
.home .calc-field{ margin-bottom:26px; }
.home .calc-field label{ display:flex; justify-content:space-between; font-size:13.5px; font-weight:600; color:var(--ink); margin-bottom:12px; }
.home .calc-field .val{ font-family:'IBM Plex Mono',monospace; color:var(--periwinkle-deep); }
.home .calc-field input[type=range]{ width:100%; accent-color:var(--periwinkle-deep); }
.home .calc-result{ background:var(--navy-900); border-radius:12px; padding:22px 24px; margin-top:6px; }
.home .calc-result .tag{ font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.55); }
.home .calc-result .range{ font-family:'IBM Plex Mono',monospace; font-size:30px; color:var(--periwinkle); margin:8px 0 6px; }
.home .calc-result p{ font-size:12.5px; color:rgba(255,255,255,.55); margin:0 0 16px; }

/* homepage FAQ block sits on the light surface */
.home .faq-section{ background:var(--white); border-top:1px solid var(--paper-line); }
.home .faq-block{ max-width:820px; margin:0 auto; }

/* nav adopts the redesign's lighter treatment */
nav.site-nav{ background:rgba(246,244,238,.92); border-bottom:1px solid var(--line); }


/* ---------- homepage responsive (must come last to override the rules above) ---------- */
@media (max-width: 980px){
  .home .hero-grid, .home .split-grid, .home .model-grid, .home .fn-inner{ grid-template-columns:1fr; }
  .home .trust-grid, .home .how-grid, .home .who-grid{ grid-template-columns:1fr; }
  .home .ins-grid{ grid-template-columns:1fr; }
}

@media (max-width: 600px){
  .wrap{ padding:0 20px; }
  .home .hero{ padding:56px 0 44px; }
  .home .sample-row{ grid-template-columns:22px 1fr auto; row-gap:8px; }
  .home .sample-row .invno, .home .sample-row .amt{ grid-column:2/3; }
  .home .model-card{ padding:32px 22px; }
  .home .final-card{ padding:44px 22px; }
  .home .calc-grid{ grid-template-columns:1fr !important; }
  .home .relationship-chain{ flex-wrap:wrap; justify-content:flex-start !important; }
}

/* =====================================================================
   HOMEPAGE SPACING FIXES
   ===================================================================== */

/* 1. Hero: the systems strip is the hero's last child, so the hero's
   bottom padding left a dead navy band beneath it. Move that spacing
   above the strip instead, so the section ends on the strip's border. */
.home .hero{ padding-bottom:0; }
.home .systems-strip{ margin-top:70px; }
.home .systems-row{ padding:22px 0; }

/* Risk line wraps to two lines at narrower widths — keep the shield
   aligned to the first line rather than floating mid-block. */
.home .risk-line{ align-items:flex-start; }
.home .risk-line svg{ margin-top:3px; }

/* 2. Founding strip: the paragraph wouldn't shrink, so long copy ran
   past the container instead of wrapping. */
.home .founding .wrap{ align-items:center; row-gap:16px; }
.home .founding p{ flex:1 1 460px; min-width:0; }
.home .founding .btn{ flex:0 0 auto; }

/* 3. Sample rows: the fixed 190px button column plus auto columns left
   a large dead gap mid-row. Tighten and let the vendor column breathe. */
.home .sample-row{ grid-template-columns:30px minmax(0,1fr) auto auto auto; gap:20px; }
.home .sample-row .invno{ white-space:nowrap; }
.home .sample-row .amt{ white-space:nowrap; text-align:right; }
.home .reveal-btn{ white-space:nowrap; }

/* 4. Model card: with align-items:center the shorter table column floated
   in the middle against the taller text column. Align both to the top. */
.home .model-grid{ align-items:start; }
.home .model-card{ padding:52px 56px; }

/* Equation: operators were vertically centred across the two-line
   amount+label block, so they sat below the numbers they join. */
.home .equation{ align-items:flex-start; gap:18px; }
.home .eq-op{ line-height:1.5; }
.home .model-checks{ margin-top:22px; }

@media (max-width:600px){
  .home .systems-strip{ margin-top:44px; }
  .home .model-card{ padding:32px 22px; }
  .home .equation{ gap:12px; }
}

/* ---------- FOOTER (design-matched, menu-driven) ---------- */
footer.site-footer{
  background:var(--navy-900); color:rgba(255,255,255,.75);
  padding:64px 0 28px; border-top:none;
}
footer.site-footer .wrap{ display:block; }

.foot-top{
  display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr 1fr; gap:36px;
  padding-bottom:44px; border-bottom:1px solid rgba(255,255,255,.12);
}
.foot-brand{ display:flex; align-items:center; gap:10px; margin-bottom:14px; text-decoration:none; }
.foot-brand img{ width:30px; height:30px; border-radius:7px; }
.foot-brand span{ font-family:var(--serif); font-size:19px; color:#fff; }
.foot-about{ font-size:13.5px; max-width:34ch; color:rgba(255,255,255,.6); margin:0 0 16px; }
.foot-assurance{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--mono); font-size:12px; color:rgba(255,255,255,.7);
  border:1px solid rgba(255,255,255,.16); border-radius:8px; padding:8px 12px;
}
.foot-assurance svg{ width:15px; height:15px; flex:none; color:#8ee0b0; }

.foot-col h4{
  font-family:var(--mono); font-size:11.5px; text-transform:uppercase;
  letter-spacing:.08em; color:rgba(255,255,255,.5); margin:0 0 16px; font-weight:400;
}
/* Works for both the fallback <a> list and wp_nav_menu's <li><a> output */
.foot-col a{
  display:block; text-decoration:none; color:rgba(255,255,255,.78);
  font-size:14px; margin-bottom:11px;
}
.foot-col a:hover{ color:#fff; }
.foot-col li{ list-style:none; }
.foot-col ul{ margin:0; padding:0; list-style:none; }

.foot-bottom{
  display:flex; justify-content:space-between; align-items:center;
  padding-top:26px; flex-wrap:wrap; gap:12px;
  font-size:12.5px; color:rgba(255,255,255,.45);
}
.foot-legal{ display:flex; align-items:center; gap:0; }
.foot-legal a, .foot-bottom a{
  color:rgba(255,255,255,.55); text-decoration:none; margin-left:18px; display:inline-block;
}
.foot-legal a:hover, .foot-bottom a:hover{ color:#fff; }
.foot-legal li{ list-style:none; display:inline-block; }
.foot-legal ul{ margin:0; padding:0; display:flex; }

@media (max-width:1180px){
  .foot-top{ grid-template-columns:1.4fr 1fr 1fr; row-gap:34px; gap:30px; }
  .foot-intro{ grid-column:1 / -1; }
}
@media (max-width:820px){
  .foot-top{ grid-template-columns:1fr 1fr; }
}
@media (max-width:600px){
  footer.site-footer{ padding:48px 0 24px; }
  .foot-top{ grid-template-columns:1fr; row-gap:30px; }
  .foot-bottom{ flex-direction:column; align-items:flex-start; }
  .foot-legal a{ margin-left:0; margin-right:18px; }
}

/* ---------- ERP cards (system pages) ---------- */
.erp-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media (max-width:820px){ .erp-cards{ grid-template-columns:1fr; } }
.erp-card{
  display:flex; align-items:center; gap:14px; text-decoration:none;
  background:var(--white); border:1px solid var(--paper-line); border-radius:14px;
  padding:22px 24px; transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.erp-card:hover{
  transform:translateY(-2px); border-color:#c3d3ee;
  box-shadow:0 18px 36px -20px rgba(10,26,48,.35);
}
.erp-glyph{
  width:42px; height:42px; border-radius:11px; background:var(--blue-soft);
  display:flex; align-items:center; justify-content:center; color:var(--blue); flex:none;
}
.erp-glyph svg{ width:21px; height:21px; }
.erp-card strong{ font-size:15.5px; color:var(--ink); flex:1; }
.erp-more{ font-family:var(--mono); font-size:11.5px; color:var(--blue); font-weight:600; }
