/* ============================================================
   TruthWeft — global stylesheet
   Production-first static site. Design: calm, editorial,
   trustworthy B2B. No AI-neon, no generic SaaS chrome.
   ============================================================ */

/* ---------- Design tokens ---------- */
:root{
  --paper:      #FAF8F5;
  --surface:    #FFFFFF;
  --ink:        #1B2733;   /* deep blue-slate */
  --ink-soft:   #3E4A56;
  --muted:      #75808B;
  --line:       #E7E3DB;
  --line-soft:  #F0EDE6;

  --accent:     #2A5E85;   /* trustworthy signal blue */
  --accent-deep:#1F4868;
  --accent-tint:#EEF3F7;
  --accent-soft:#DCE8F0;

  --dark:       #1B2733;   /* dark section background */
  --dark-2:     #223240;
  --dark-text:  #F4F2EC;
  --dark-muted: #A9B4BF;
  --dark-line:  #2E3E4C;

  --serif: Georgia, "Times New Roman", serif;
  --sans:  Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;

  --radius: 10px;
  --radius-lg: 16px;

  --maxw: 1140px;
  --pad-x: clamp(20px, 4vw, 40px);
  --section-y: clamp(72px, 9vw, 128px);

  --shadow-soft: 0 1px 2px rgba(27,39,51,.05), 0 8px 28px rgba(27,39,51,.06);
  --shadow-card: 0 1px 2px rgba(27,39,51,.05), 0 14px 44px rgba(27,39,51,.08);
}

/* ---------- Reset & base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--sans);
  font-size:1.0625rem;
  line-height:1.65;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; display:block; }
a{ color:var(--accent-deep); text-decoration:none; }
a:hover{ text-decoration:underline; text-underline-offset:3px; }
h1,h2,h3,h4{ font-family:var(--serif); font-weight:600; line-height:1.15; color:var(--ink); margin:0 0 .5em; letter-spacing:-.01em; }
p{ margin:0 0 1.1em; }
p:last-child{ margin-bottom:0; }
ul{ margin:0; padding:0; }
::selection{ background:var(--accent-soft); color:var(--accent-deep); }

/* Accessible focus */
:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; border-radius:2px; }
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--ink); color:var(--dark-text); padding:.7rem 1.1rem;
  font-weight:600; border-radius:0 0 8px 0;
}
.skip-link:focus{ left:0; text-decoration:none; }

/* ---------- Layout utilities ---------- */
.container{ max-width:var(--maxw); margin:0 auto; padding-inline:var(--pad-x); }
.section{ padding-block:var(--section-y); }
.section-tight{ padding-block:calc(var(--section-y) * .72); }
.section-muted{ background:var(--surface); border-block:1px solid var(--line); }

/* Eyebrow / section marker */
.eyebrow{
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:var(--sans); font-size:.78rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--accent-deep);
  margin-bottom:1.25rem;
}
.eyebrow::before{ content:""; width:26px; height:2px; background:var(--accent); }

.section-head{ max-width:720px; }
.section-head h2{ font-size:clamp(1.85rem, 3.6vw, 2.6rem); margin-bottom:.55rem; }
.section-head .lede{ font-size:1.15rem; color:var(--ink-soft); line-height:1.6; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  font-family:var(--sans); font-weight:600; font-size:1rem; line-height:1;
  padding:1rem 1.6rem; border-radius:8px; border:1px solid transparent;
  cursor:pointer; transition:background .18s ease,color .18s ease,border-color .18s ease,transform .12s ease;
  text-decoration:none; white-space:nowrap;
}
.btn:active{ transform:translateY(1px); }
.btn-primary{ background:var(--ink); color:var(--dark-text); }
.btn-primary:hover{ background:var(--accent-deep); text-decoration:none; }
.btn-secondary{ background:transparent; color:var(--ink); border-color:var(--ink); }
.btn-secondary:hover{ background:var(--ink); color:var(--dark-text); text-decoration:none; }
.btn-light{ background:var(--dark-text); color:var(--ink); }
.btn-light:hover{ background:#fff; text-decoration:none; }
.btn-line{ background:transparent; color:var(--dark-text); border-color:var(--dark-line); }
.btn-line:hover{ border-color:var(--dark-text); text-decoration:none; }
.btn-sm{ padding:.72rem 1.15rem; font-size:.92rem; }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(250,248,245,.86);
  backdrop-filter:saturate(1.3) blur(10px);
  border-bottom:1px solid var(--line);
}
.header-inner{
  max-width:var(--maxw); margin:0 auto; padding:0 var(--pad-x);
  height:74px; display:flex; align-items:center; justify-content:space-between; gap:1rem;
}
.brand{ display:inline-flex; align-items:center; gap:.65rem; text-decoration:none; color:var(--ink); }
.brand:hover{ text-decoration:none; }
.brand-mark{ width:34px; height:34px; flex:none; color:var(--accent-deep); }
.brand-word{ font-family:var(--serif); font-weight:700; font-size:1.32rem; letter-spacing:-.01em; }

.nav{ display:flex; align-items:center; gap:2rem; }
.nav-links{ display:flex; align-items:center; gap:1.9rem; list-style:none; }
.nav-links a{
  color:var(--ink-soft); font-weight:500; font-size:.98rem; text-decoration:none;
  position:relative; padding:4px 0; transition:color .15s ease;
}
.nav-links a::after{
  content:""; position:absolute; left:0; bottom:-2px; width:100%; height:2px;
  background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .18s ease;
}
.nav-links a:hover{ color:var(--ink); }
.nav-links a:hover::after{ transform:scaleX(1); }
.nav-links a[aria-current="page"]{ color:var(--ink); font-weight:600; }
.nav-links a[aria-current="page"]::after{ transform:scaleX(1); }
.nav-cta{ display:flex; align-items:center; gap:.9rem; }

/* Mobile nav toggle */
.nav-toggle{
  display:none; background:none; border:0; cursor:pointer; padding:8px;
  width:44px; height:44px; color:var(--ink);
}
.nav-toggle svg{ width:24px; height:24px; }

/* ---------- Footer ---------- */
.site-footer{ background:var(--dark); color:var(--dark-muted); }
.footer-main{
  max-width:var(--maxw); margin:0 auto; padding:72px var(--pad-x) 40px;
  display:grid; grid-template-columns:2fr 1fr 1fr; gap:3rem;
}
.footer-brand .brand-word{ color:var(--dark-text); }
.footer-brand .brand-mark{ color:var(--accent-soft); }
.footer-brand p{ margin-top:1.1rem; max-width:34ch; font-size:.96rem; }
.footer-col h4{ font-family:var(--sans); font-size:.8rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--dark-text); margin-bottom:1.1rem; }
.footer-col ul{ list-style:none; display:flex; flex-direction:column; gap:.6rem; }
.footer-col a{ color:var(--dark-muted); font-size:.96rem; }
.footer-col a:hover{ color:var(--dark-text); }
.footer-bottom{
  max-width:var(--maxw); margin:0 auto; padding:1.4rem var(--pad-x) 2.2rem;
  border-top:1px solid var(--dark-line);
  display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  font-size:.85rem; color:var(--dark-muted);
}
.footer-bottom a{ color:var(--dark-muted); }
.footer-bottom a:hover{ color:var(--dark-text); }
.footer-bottom .legal-links{ display:flex; gap:1.4rem; }
.footer-note{ font-size:.8rem; opacity:.7; }

/* ---------- Hero ---------- */
.hero{ position:relative; overflow:hidden; }
.hero-inner{
  max-width:var(--maxw); margin:0 auto; padding:clamp(72px, 10vw, 128px) var(--pad-x) clamp(56px,7vw,96px);
  display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2.5rem,5vw,5rem); align-items:center;
}
.hero-kicker{
  display:inline-flex; align-items:center; gap:.6rem;
  font-size:.8rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  color:var(--accent-deep); margin-bottom:1.5rem;
}
.hero-kicker::before{ content:""; width:22px; height:2px; background:var(--accent); }
.hero h1{ font-size:clamp(2.4rem, 5.4vw, 3.85rem); line-height:1.05; margin-bottom:1.4rem; }
.hero h1 .accent{ color:var(--accent-deep); }
.hero-lede{ font-size:1.2rem; line-height:1.6; color:var(--ink-soft); max-width:52ch; margin-bottom:1.6rem; }
.hero-lede + .hero-sub{ margin-top:-.6rem; }
.hero-sub{ font-size:1.02rem; color:var(--ink-soft); max-width:54ch; margin-bottom:2.2rem; }
.hero-cta{ display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }

.hero-trust{ margin-top:2.6rem; display:flex; align-items:center; gap:1rem; font-size:.9rem; color:var(--muted); }
.hero-trust .check{ display:inline-flex; align-items:center; gap:.45rem; }
.hero-trust svg{ width:16px; height:16px; color:var(--accent); }

/* Hero prospect mockup (structured data, not an illustration) */
.hero-visual{ position:relative; }
.mock{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-card); overflow:hidden;
}
.mock-head{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:1rem 1.25rem; border-bottom:1px solid var(--line);
}
.mock-title{ font-family:var(--serif); font-weight:600; font-size:1.02rem; color:var(--ink); }
.mock-tag{ font-size:.72rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--accent-deep); background:var(--accent-tint); padding:.32rem .6rem; border-radius:20px; }
.mock-table{ width:100%; border-collapse:collapse; font-size:.88rem; }
.mock-table th{
  text-align:left; font-weight:600; color:var(--muted); font-size:.72rem;
  letter-spacing:.08em; text-transform:uppercase; padding:.7rem 1.25rem; border-bottom:1px solid var(--line-soft);
  background:var(--paper);
}
.mock-table td{ padding:.85rem 1.25rem; border-bottom:1px solid var(--line-soft); vertical-align:middle; }
.mock-table tr:last-child td{ border-bottom:0; }
.mock-table .co{ font-weight:600; color:var(--ink); }
.mock-table .mkt{ color:var(--ink-soft); }
.mock-table .sig{ color:var(--muted); max-width:13ch; }
.status{ display:inline-flex; align-items:center; gap:.4rem; font-size:.76rem; font-weight:600; }
.status::before{ content:""; width:7px; height:7px; border-radius:50%; }
.status.qual{ color:var(--accent-deep); } .status.qual::before{ background:#3E8E5A; }
.status.review{ color:#8A6A1F; } .status.review::before{ background:#C9A227; }
.status.excluded{ color:var(--muted); } .status.excluded::before{ background:#B6BDC4; }
.mock-caption{ font-size:.78rem; color:var(--muted); padding:.8rem 1.25rem; border-top:1px solid var(--line-soft); background:var(--paper); display:flex; align-items:center; gap:.5rem; }
.mock-caption svg{ width:14px; height:14px; color:var(--accent); }

/* Woven-thread motif divider */
.weave{ position:absolute; left:0; right:0; bottom:-1px; height:6px; opacity:.5; }
.weave svg{ width:100%; height:100%; }

/* ---------- Capability cards ---------- */
.cap-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.4rem; margin-top:3rem; }
.cap{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.7rem 1.5rem; transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.cap:hover{ transform:translateY(-3px); box-shadow:var(--shadow-card); border-color:#ddd6c9; }
.cap .cap-num{ font-family:var(--serif); font-size:.9rem; color:var(--accent); font-weight:600; display:block; margin-bottom:1rem; }
.cap h3{ font-family:var(--serif); font-size:1.28rem; margin-bottom:.55rem; }
.cap p{ font-size:.96rem; color:var(--ink-soft); }

/* ---------- Steps ---------- */
.steps{ margin-top:3rem; display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; }
.step{
  position:relative; padding:1.9rem 1.7rem 1.7rem; background:var(--surface);
  border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
}
.step::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--accent); opacity:.0; transition:opacity .2s ease; }
.step:hover::before{ opacity:1; }
.step-label{ font-family:var(--sans); font-size:.8rem; font-weight:600; letter-spacing:.12em; color:var(--muted); margin-bottom:.9rem; display:flex; align-items:center; gap:.7rem; }
.step-label .idx{ color:var(--accent); font-weight:700; }
.step h3{ font-family:var(--serif); font-size:1.3rem; margin-bottom:.5rem; }
.step p{ font-size:.97rem; color:var(--ink-soft); }

/* ---------- Audience cards ---------- */
.aud-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; margin-top:3rem; }
.aud{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.9rem 1.7rem; display:flex; flex-direction:column; gap:.8rem;
}
.aud-icon{ width:46px; height:46px; border-radius:10px; background:var(--accent-tint); color:var(--accent-deep); display:flex; align-items:center; justify-content:center; }
.aud-icon svg{ width:24px; height:24px; }
.aud h3{ font-family:var(--serif); font-size:1.22rem; margin:0; }
.aud p{ font-size:.96rem; color:var(--ink-soft); margin:0; }

/* ---------- Philosophy / dark band ---------- */
.band-dark{ background:var(--dark); color:var(--dark-muted); }
.band-dark .eyebrow{ color:var(--accent-soft); }
.band-dark .eyebrow::before{ background:var(--accent-soft); }
.band-dark h2{ color:var(--dark-text); }
.band-dark h3{ color:var(--dark-text); }
.band-dark .section-head .lede{ color:var(--dark-muted); }
.phil-inner{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,5vw,4.5rem); align-items:start; }
.phil-head h2{ font-size:clamp(1.9rem,3.6vw,2.7rem); }
.phil-copy p{ color:var(--dark-muted); font-size:1.07rem; line-height:1.7; }
.phil-principles{ margin-top:1.6rem; list-style:none; display:grid; gap:.7rem; }
.phil-principles li{ display:flex; gap:.7rem; align-items:flex-start; font-size:.98rem; color:var(--dark-text); }
.phil-principles svg{ width:18px; height:18px; color:var(--accent-soft); flex:none; margin-top:3px; }

/* ---------- CTA band ---------- */
.cta{ text-align:center; }
.cta h2{ font-size:clamp(2rem,4vw,2.8rem); max-width:18ch; margin-inline:auto; margin-bottom:1rem; }
.cta p{ max-width:56ch; margin:0 auto 2.2rem; color:var(--ink-soft); font-size:1.08rem; }
.cta .contact-line{ margin-top:1.6rem; font-size:.95rem; color:var(--muted); }
.cta .contact-line a{ color:var(--accent-deep); font-weight:600; }

/* ---------- Page hero (interior) ---------- */
.page-hero{ padding:clamp(56px,8vw,96px) 0 clamp(40px,5vw,64px); }
.page-hero .eyebrow{ margin-bottom:1.1rem; }
.page-hero h1{ font-size:clamp(2.2rem,5vw,3.3rem); max-width:20ch; margin-bottom:1.2rem; }
.page-hero .lede{ font-size:1.2rem; color:var(--ink-soft); max-width:60ch; line-height:1.6; }

/* ---------- Prose / legal ---------- */
.prose{ max-width:760px; }
.prose h2{ font-size:1.5rem; margin-top:2.4rem; margin-bottom:.6rem; }
.prose h3{ font-family:var(--sans); font-size:1.12rem; font-weight:600; margin-top:1.8rem; margin-bottom:.4rem; }
.prose p{ color:var(--ink-soft); margin-bottom:1rem; }
.prose ul{ margin:0 0 1.1rem 1.2rem; }
.prose li{ color:var(--ink-soft); margin-bottom:.4rem; }
.prose a{ text-decoration:underline; text-underline-offset:3px; }
.prose .notice{
  background:var(--accent-tint); border:1px solid var(--accent-soft);
  border-radius:var(--radius); padding:1.1rem 1.3rem; margin-bottom:1.6rem;
  font-size:.95rem; color:var(--accent-deep);
}
.prose .meta{ font-size:.88rem; color:var(--muted); margin-bottom:2rem; }

/* ---------- Contact form ---------- */
.form-wrap{ max-width:640px; }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.3rem; }
.field{ display:flex; flex-direction:column; gap:.45rem; }
.field.full{ grid-column:1 / -1; }
.field label{ font-weight:600; font-size:.92rem; color:var(--ink); }
.field label .req{ color:var(--accent-deep); }
.field .hint{ font-size:.82rem; color:var(--muted); font-weight:400; }
.field input, .field textarea, .field select{
  font-family:var(--sans); font-size:1rem; color:var(--ink);
  background:var(--surface); border:1px solid var(--line); border-radius:8px;
  padding:.82rem .95rem; width:100%; transition:border-color .15s ease, box-shadow .15s ease;
}
.field textarea{ resize:vertical; min-height:130px; }
.field input:focus, .field textarea:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.field.error input, .field.error textarea{ border-color:#C0392B; }
.field .err-msg{ font-size:.82rem; color:#C0392B; display:none; }
.field.error .err-msg{ display:block; }
.form-actions{ margin-top:1.6rem; }
.form-note{ margin-top:1.1rem; font-size:.86rem; color:var(--muted); }

/* Form success state */
.form-success{ display:none; text-align:left; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:2.2rem 2rem; }
.form-success.show{ display:block; }
.form-success .ok-icon{ width:52px; height:52px; border-radius:50%; background:#E7F3EA; color:#3E8E5A; display:flex; align-items:center; justify-content:center; margin-bottom:1.2rem; }
.form-success h2{ font-size:1.6rem; }
.form-success p{ color:var(--ink-soft); }

/* Contact page layout */
.contact-grid{ display:grid; grid-template-columns:1.4fr .6fr; gap:clamp(2.5rem,5vw,4.5rem); align-items:start; }
.contact-side{ position:sticky; top:100px; }
.contact-side .card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:1.6rem 1.5rem; }
.contact-side .card h3{ font-size:1.1rem; margin-bottom:.9rem; }
.contact-side .email-line{ display:flex; align-items:center; gap:.7rem; font-size:1.02rem; }
.contact-side .email-line svg{ width:20px; height:20px; color:var(--accent); flex:none; }
.contact-side .card p{ font-size:.94rem; color:var(--ink-soft); }

/* ---------- 404 ---------- */
.error-wrap{ text-align:center; padding:clamp(80px,12vw,140px) var(--pad-x); }
.error-code{ font-family:var(--serif); font-size:clamp(4rem,10vw,7rem); font-weight:700; color:var(--accent-deep); line-height:1; margin-bottom:1rem; }
.error-wrap h1{ font-size:clamp(1.6rem,3vw,2.2rem); margin-bottom:.8rem; }
.error-wrap p{ color:var(--ink-soft); max-width:46ch; margin:0 auto 2rem; }

/* ---------- Reveal (restrained, reduced-motion aware) ---------- */
.reveal{ opacity:0; transform:translateY(14px); transition:opacity .6s ease, transform .6s ease; }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; transition:none; }
  .btn,.cap,.step{ transition:none; }
}

/* ---------- Responsive ---------- */
@media (max-width: 1024px){
  .cap-grid{ grid-template-columns:repeat(2,1fr); }
  .hero-inner{ grid-template-columns:1fr; }
  .hero-visual{ max-width:620px; }
}
@media (max-width: 900px){
  .nav-links{
    position:fixed; top:74px; right:0; left:0; z-index:99;
    background:var(--surface); border-bottom:1px solid var(--line);
    flex-direction:column; align-items:flex-start; gap:0;
    padding:0 var(--pad-x); max-height:0; overflow:hidden;
    transition:max-height .25s ease;
  }
  .nav-links.open{ max-height:420px; box-shadow:var(--shadow-soft); }
  .nav-links li{ width:100%; border-bottom:1px solid var(--line-soft); }
  .nav-links li:last-child{ border-bottom:0; }
  .nav-links a{ display:block; padding:1rem 0; font-size:1.05rem; }
  .nav-links a::after{ display:none; }
  .nav-toggle{ display:inline-flex; }
  .nav-cta .btn{ display:none; }
  .steps{ grid-template-columns:1fr; }
  .aud-grid{ grid-template-columns:1fr; }
  .phil-inner{ grid-template-columns:1fr; }
  .contact-grid{ grid-template-columns:1fr; }
  .contact-side{ position:static; }
  .footer-main{ grid-template-columns:1fr 1fr; }
}
@media (max-width: 620px){
  .cap-grid{ grid-template-columns:1fr; }
  .form-grid{ grid-template-columns:1fr; }
  .hero-cta .btn{ width:100%; }
  .footer-main{ grid-template-columns:1fr; gap:2rem; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; gap:.8rem; }
  .mock-table th:nth-child(3), .mock-table td:nth-child(3){ display:none; } /* hide Signal col on small screens */
}

/* ---------- Accessibility / interaction hardening ---------- */
:focus-visible{ outline:3px solid rgba(91,137,169,.55); outline-offset:3px; }
button:disabled{ opacity:.6; cursor:not-allowed; }
.form-success a{ text-decoration:underline; text-underline-offset:3px; }
@media (max-width:620px){
  .hero-trust{ align-items:flex-start; flex-direction:column; gap:.55rem; }
  .hero-cta .btn{ width:100%; justify-content:center; }
}

.legal-note{margin-top:2rem;padding-top:1.2rem;border-top:1px solid var(--line);font-size:.88rem;color:var(--muted);}

.hero-cta-center{justify-content:center;}
.footnote-muted{color:var(--dark-muted);font-size:.92rem;}
.card-spaced{margin-top:1rem;}


/* ---------- Growth roadmap / delivery architecture ---------- */
.roadmap-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.1rem; margin-top:3rem; }
.roadmap-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:1.55rem 1.35rem; min-height:190px; }
.roadmap-card:hover{ border-color:#d8d0c3; box-shadow:var(--shadow-soft); }
.roadmap-card.roadmap-current{ background:var(--accent-tint); border-color:var(--accent-soft); }
.roadmap-stage{ display:inline-block; font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--accent-deep); margin-bottom:1rem; }
.roadmap-card h3{ font-size:1.15rem; margin-bottom:.55rem; }
.roadmap-card p{ font-size:.92rem; color:var(--ink-soft); }
.scope-note{ margin:1.5rem 0 0; padding:1rem 1.15rem; border-left:3px solid var(--accent); background:var(--paper); color:var(--muted); font-size:.9rem; }
.scope-note strong{ color:var(--ink); }
.output-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.1rem; margin-top:3rem; }
.output-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:1.6rem 1.4rem; }
.output-card:hover{ box-shadow:var(--shadow-soft); border-color:#d8d0c3; }
.output-index{ display:block; font-family:var(--serif); font-size:.9rem; color:var(--accent); font-weight:700; margin-bottom:.9rem; }
.output-card h3{ font-size:1.18rem; margin-bottom:.5rem; }
.output-card p{ font-size:.93rem; color:var(--ink-soft); }
.delivery-note{ margin-top:1.4rem; padding:1rem 1.15rem; border:1px solid var(--line); border-radius:var(--radius); color:var(--muted); font-size:.88rem; }
.delivery-note strong{ color:var(--ink); }
.growth-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.1rem; margin-top:3rem; }
.growth-card{ display:grid; grid-template-columns:42px 1fr; column-gap:1rem; padding:1.5rem 1.4rem; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }
.growth-card > span{ grid-row:1 / span 2; font-family:var(--serif); color:var(--accent); font-size:.95rem; font-weight:700; }
.growth-card h3{ font-size:1.2rem; margin-bottom:.45rem; }
.growth-card p{ grid-column:2; color:var(--ink-soft); font-size:.94rem; margin:0; }
@media (max-width:1024px){
  .roadmap-grid,.output-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:620px){
  .roadmap-grid,.output-grid,.growth-grid{ grid-template-columns:1fr; }
  .roadmap-card{ min-height:0; }
}
