:root{
  --paper:#FCFCFB;
  --ink:#12141C;
  --ink-soft:#54586A;
  --line:#E4E4E0;
  --signal:#2B3FE0;
  --signal-deep:#1C2B9E;
  --amber:#E8962B;
  --panel:#F3F3F0;
  --radius:2px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Inter', sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1160px; margin:0 auto; padding:0 32px;}
.mono{font-family:'IBM Plex Mono', monospace;}
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--signal);
  display:flex;
  align-items:center;
  gap:10px;
}
.eyebrow::before{ content:""; width:16px; height:1px; background:var(--signal); }
h1,h2,h3{font-family:'Space Grotesk', sans-serif; letter-spacing:-0.02em;}

/* ---------- NAV ---------- */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(252,252,251,0.88);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 32px; max-width:1160px; margin:0 auto;
}
.logo{font-family:'Space Grotesk', sans-serif; font-weight:700; font-size:20px; letter-spacing:-0.02em; display:flex; align-items:center; gap:8px;}
.logo img{height:22px; width:auto; display:block;}
.logo span{color:var(--signal);}
.navlinks{display:flex; gap:36px; font-size:14px; font-weight:500;}
.navlinks a{color:var(--ink-soft); transition:color .15s;}
.navlinks a:hover, .navlinks a.active{color:var(--ink);}
.nav-cta{
  font-size:14px; font-weight:600; padding:10px 20px;
  background:var(--ink); color:var(--paper);
  border-radius:var(--radius);
  transition:background .15s;
}
.nav-cta:hover{background:var(--signal);}
.hamburger{
  display:none;
  flex-direction:column;
  gap:5px;
  background:none; border:none; cursor:pointer;
  padding:6px;
}
.hamburger span{
  width:24px; height:2px; background:var(--ink);
  transition:transform .2s, opacity .2s;
}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hamburger.open span:nth-child(2){opacity:0;}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

.mobile-nav{
  display:none;
  flex-direction:column;
  background:var(--paper);
  border-bottom:1px solid var(--line);
  padding:8px 32px 20px;
}
.mobile-nav.open{display:flex;}
.mobile-nav a{
  padding:14px 0; font-size:16px; font-weight:500; color:var(--ink);
  border-bottom:1px solid var(--line);
}
.mobile-nav a:last-of-type{border-bottom:none;}
.mobile-nav .btn{margin-top:14px; justify-content:center;}

@media (max-width:760px){
  .navlinks{display:none;}
  .nav-cta{display:none;}
  .hamburger{display:flex;}
}

/* ---------- PAGE HERO (non-home) ---------- */
.page-hero{padding:80px 0 56px; border-bottom:1px solid var(--line);}
.page-hero h1{font-size:clamp(32px,4.6vw,48px); font-weight:600; margin:18px 0 18px; line-height:1.08;}
.page-hero p{font-size:17px; color:var(--ink-soft); max-width:600px; line-height:1.6;}

/* ---------- HOME HERO ---------- */
.hero{padding:96px 0 0; position:relative;}
.hero-grid{display:grid; grid-template-columns:1.15fr 0.85fr; gap:64px; align-items:center; padding-bottom:72px;}
.hero h1{font-size:clamp(38px, 5vw, 60px); line-height:1.04; font-weight:600; margin:22px 0 26px;}
.hero h1 em{font-style:normal; color:var(--signal);}
.hero p.lede{font-size:18px; line-height:1.6; color:var(--ink-soft); max-width:500px; margin-bottom:34px;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap;}
.btn{font-size:15px; font-weight:600; padding:14px 26px; border-radius:var(--radius); display:inline-flex; align-items:center; gap:8px; transition:transform .15s, background .15s, border-color .15s;}
.btn-primary{background:var(--signal); color:#fff;}
.btn-primary:hover{background:var(--signal-deep); transform:translateY(-1px);}
.btn-ghost{border:1px solid var(--line); color:var(--ink);}
.btn-ghost:hover{border-color:var(--ink);}

.hero-panel{background:var(--panel); border:1px solid var(--line); padding:28px; border-radius:4px;}
.hero-panel .cap{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:16px;}
.kpi-row{display:flex; align-items:center; gap:10px; padding:12px 0; border-bottom:1px solid var(--line);}
.kpi-row:last-child{border-bottom:none;}
.kpi-label{font-size:13px; color:var(--ink-soft); flex:1;}
.kpi-value{font-family:'IBM Plex Mono', monospace; font-size:15px; font-weight:500;}
.up{color:#1C7A4D;} .down{color:#B3401C;}

/* ---------- CARD ICONS (shared: campaign, kpi-target, service cards) ---------- */
.card-icon{display:block; color:var(--signal); margin-bottom:12px; flex-shrink:0;}
.kpi-row .card-icon{margin-bottom:0; color:var(--ink-soft);}

/* ---------- PROOF STRIP ---------- */
.proof-strip{
  font-family:'IBM Plex Mono', monospace; font-size:12.5px; letter-spacing:.01em;
  color:var(--ink-soft); border-top:1px solid var(--line); padding:22px 0 0; margin-top:8px;
  line-height:1.8;
}
.proof-strip b{color:var(--ink); font-weight:600;}
@media (max-width:760px){ .proof-strip{font-size:12px;} }

/* ---------- TICKER ---------- */
.ticker-outer{border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--ink); overflow:hidden; white-space:nowrap;}
.ticker-track{display:inline-flex; align-items:center; animation:scroll 32s linear infinite; padding:14px 0;}
.ticker-track span{font-family:'IBM Plex Mono', monospace; font-size:13px; color:#C9CBE0; padding:0 28px; border-right:1px solid #33364A; display:inline-flex; align-items:center; gap:8px;}
.ticker-track span b{color:#fff; font-weight:500;}
@keyframes scroll{0%{transform:translateX(0);} 100%{transform:translateX(-50%);}}
@media (prefers-reduced-motion:reduce){.ticker-track{animation:none;}}

/* ---------- SECTION SHELL ---------- */
section{padding:96px 0;}
.section-head{max-width:640px; margin-bottom:56px;}
.section-head h2{font-size:clamp(28px,3.4vw,38px); font-weight:600; margin-top:16px; line-height:1.15;}
.section-head p{color:var(--ink-soft); font-size:16px; margin-top:14px; line-height:1.6;}

/* ---------- OBJECTIVE / MISSION BLOCK ---------- */
.mission-block{background:var(--ink); color:#fff;}
.mission-block .eyebrow{color:#8C97F5;} .mission-block .eyebrow::before{background:#8C97F5;}
.mission-block h2{color:#fff; font-size:clamp(26px,3.2vw,36px); font-weight:600; line-height:1.3; max-width:820px;}
.mission-block h2 b{color:#8C97F5; font-weight:600;}
.mission-grid{display:grid; grid-template-columns:1.3fr 0.7fr; gap:56px; align-items:center;}

/* ---------- APPROACH LOOP INFOGRAPHIC ---------- */
.approach-loop{width:100%; max-width:340px; margin:0 auto; background:#171A2B; border:1px solid rgba(255,255,255,0.12); border-radius:12px; padding:22px 22px 20px; box-shadow:0 20px 50px rgba(0,0,0,0.35);}
.approach-loop-label{font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:#8C97F5; margin-bottom:16px; display:flex; align-items:center; gap:8px;}
.approach-loop-label::before{content:""; width:6px; height:6px; border-radius:50%; background:#8C97F5;}
.loop-step{display:flex; gap:12px; align-items:flex-start;}
.loop-step-icon{flex-shrink:0; width:34px; height:34px; border-radius:50%; background:rgba(140,151,245,0.14); display:flex; align-items:center; justify-content:center; color:#8C97F5;}
.loop-step-icon .card-icon{margin-bottom:0;}
.loop-step-body{flex:1; padding-top:2px;}
.loop-step-head{display:flex; align-items:baseline; gap:8px;}
.loop-step-num{font-family:'IBM Plex Mono', monospace; font-size:10.5px; color:#5B5F80;}
.loop-step-body h4{color:#fff; font-size:15px; font-weight:600; margin:0;}
.loop-step-body p{color:#9497B0; font-size:12.5px; line-height:1.5; margin-top:4px;}
.loop-arrow{color:#3A3F63; margin:2px 0 2px 16px;}
.loop-repeat{display:flex; align-items:center; gap:8px; margin-top:16px; padding-top:14px; border-top:1px solid rgba(255,255,255,0.1); color:#8C97F5; font-size:11.5px; font-family:'IBM Plex Mono', monospace;}

/* ---------- SERVICES ---------- */
.services{background:var(--panel); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.service-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.service-card{background:var(--paper); padding:36px 30px; display:flex; flex-direction:column; min-height:250px;}
.service-card.featured{background:var(--ink); color:#fff;}
.service-tag{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--signal); margin-bottom:18px;}
.service-card.featured .service-tag{color:#8C97F5;}
.service-card.featured .card-icon{color:#8C97F5;}
.service-card h3{font-size:21px; font-weight:600; margin-bottom:12px;}
.service-card p{font-size:14.5px; line-height:1.6; color:var(--ink-soft); flex-grow:1;}
.service-card.featured p{color:#B7B9CC;}
.service-card.dim{opacity:0.55;}
.roadmap-pill{margin-top:18px; align-self:flex-start; font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:.06em; text-transform:uppercase; border:1px solid var(--line); padding:5px 10px; border-radius:20px; color:var(--ink-soft);}

/* ---------- CAMPAIGN TYPE GRID (services page) ---------- */
.campaign-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.campaign-card{background:var(--paper); padding:28px; }
.campaign-card .n{font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--signal); margin-bottom:10px;}
.campaign-card h3{font-size:18px; font-weight:600; margin-bottom:8px;}

/* ---------- KPI TARGET CARDS ---------- */
.kpi-target-grid{display:grid; grid-template-columns:repeat(4, 1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.kpi-target-card{background:var(--paper); padding:24px;}
.kpi-target-card .tag{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--signal); margin-bottom:10px;}
.kpi-target-card h3{font-size:16px; font-weight:600; margin-bottom:6px;}
.kpi-target-card p{font-size:13.5px; color:var(--ink-soft); line-height:1.55;}
@media (max-width:860px){.kpi-target-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.kpi-target-grid{grid-template-columns:1fr;}}

/* ---------- LEVER GRID (Services: how we move the KPIs) ---------- */
.lever-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:20px;}
.lever-card{background:var(--paper); border:1px solid var(--line); border-radius:4px; padding:22px;}
.lever-card h3{font-size:16px; font-weight:600; margin:14px 0 8px;}
.lever-card p{font-size:13.5px; color:var(--ink-soft); line-height:1.6;}
@media (max-width:860px){.lever-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.lever-grid{grid-template-columns:1fr;}}
.campaign-card p{font-size:14px; color:var(--ink-soft); line-height:1.55;}
@media (max-width:860px){.campaign-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.campaign-grid{grid-template-columns:1fr;}}

/* ---------- ENGAGEMENT MODEL (services page) ---------- */
.engage-steps{display:flex; flex-direction:column;}
.engage-item{display:grid; grid-template-columns:80px 1fr; gap:28px; padding:32px 0; border-top:1px solid var(--line);}
.engage-item:last-child{border-bottom:1px solid var(--line);}
.engage-num{font-family:'IBM Plex Mono', monospace; font-size:14px; color:var(--signal); padding-top:4px;}
.engage-item h3{font-size:20px; font-weight:600; margin-bottom:8px;}
.engage-item p{color:var(--ink-soft); font-size:15px; line-height:1.6; max-width:620px;}
.free-badge{display:inline-block; font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:.06em; text-transform:uppercase; background:var(--signal); color:#fff; padding:4px 10px; border-radius:20px; margin-left:10px; vertical-align:middle;}

/* outcome pills */
.outcome-row{display:flex; flex-wrap:wrap; gap:10px; margin-top:20px;}
.outcome-pill{font-size:13px; font-family:'IBM Plex Mono', monospace; border:1px solid var(--line); padding:8px 14px; border-radius:20px; color:var(--ink-soft);}

/* ---------- APPROACH ---------- */
.approach-list{display:flex; flex-direction:column;}
.approach-item{display:grid; grid-template-columns:80px 1fr; gap:28px; padding:32px 0; border-top:1px solid var(--line);}
.approach-item:last-child{border-bottom:1px solid var(--line);}
.approach-num{font-family:'IBM Plex Mono', monospace; font-size:14px; color:var(--signal); padding-top:4px;}
.approach-item h3{font-size:20px; font-weight:600; margin-bottom:8px;}
.approach-item p{color:var(--ink-soft); font-size:15px; line-height:1.6; max-width:560px;}

/* ---------- FOUNDERS / TEAM ---------- */
.founders-grid{display:grid; grid-template-columns:1fr 1fr; gap:28px;}
.founder-card{border:1px solid var(--line); padding:32px; background:var(--paper);}
.avatar{width:56px; height:56px; border-radius:50%; background:var(--signal); color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Space Grotesk', sans-serif; font-weight:600; font-size:18px; margin-bottom:20px;}
.founder-card h3{font-size:19px; font-weight:600;}
.founder-role{font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--signal); margin:6px 0 16px; text-transform:uppercase; letter-spacing:.04em;}
.founder-card p{font-size:14.5px; line-height:1.65; color:var(--ink-soft);}
.founder-loc{margin-top:18px; font-size:12.5px; color:var(--ink-soft); display:flex; align-items:center; gap:6px;}
.founder-creds{list-style:none; margin-top:16px; display:flex; flex-direction:column; gap:8px;}
.founder-creds li{font-size:13px; color:var(--ink-soft); padding-left:16px; position:relative;}
.founder-creds li::before{content:"—"; position:absolute; left:0; color:var(--signal);}

/* ---------- CERTIFICATION BADGES ---------- */
.cert-badges{display:flex; flex-wrap:wrap; gap:8px; margin-top:16px;}
.cert-badge{
  display:inline-flex; align-items:center; gap:6px;
  font-family:'IBM Plex Mono', monospace; font-size:11.5px; letter-spacing:.02em;
  padding:7px 12px; border:1px solid var(--line); border-radius:20px;
  color:var(--ink-soft); background:var(--paper); transition:border-color .15s, color .15s;
}
.cert-badge:hover{border-color:var(--signal); color:var(--signal);}
.cert-badge svg{flex-shrink:0; color:var(--signal);}
.cert-badges-label{font-size:11.5px; color:var(--ink-soft); margin-top:14px; display:block;}

.team-grow-card{border:1px dashed var(--line); padding:32px; text-align:left; margin-top:28px; background:var(--panel);}
.team-grow-card h3{font-size:17px; font-weight:600; margin-bottom:8px;}
.team-grow-card p{font-size:14.5px; color:var(--ink-soft); line-height:1.6;}

/* ---------- CONTACT / FORM ---------- */
.contact{background:var(--ink); color:#fff;}
.contact .eyebrow{color:#8C97F5;} .contact .eyebrow::before{background:#8C97F5;}
.contact h2{color:#fff;}
.contact-inner{display:grid; grid-template-columns:1.1fr 0.9fr; gap:56px; align-items:end;}
.contact p.lede{color:#B7B9CC; font-size:17px; line-height:1.6; max-width:460px; margin-top:16px;}
.contact-cta-box{border:1px solid #33364A; padding:30px; border-radius:4px;}
.contact-row{display:flex; justify-content:space-between; align-items:center; padding:16px 0; border-bottom:1px solid #33364A;}
.contact-row:last-child{border-bottom:none;}
.contact-row span{font-size:14px; color:#B7B9CC;}
.contact-row a{font-weight:600; font-size:14.5px;}
.contact-row a:hover{color:#8C97F5;}

.lead-form{background:var(--paper); color:var(--ink); border:1px solid var(--line); padding:40px; max-width:640px;}
.lead-form .field{margin-bottom:20px;}
.lead-form label{display:block; font-size:13px; font-weight:600; margin-bottom:8px;}
.lead-form input, .lead-form select, .lead-form textarea{
  width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:var(--radius);
  font-family:'Inter', sans-serif; font-size:14.5px; background:#fff; color:var(--ink);
}
.lead-form input:focus, .lead-form select:focus, .lead-form textarea:focus{outline:2px solid var(--signal); outline-offset:1px; border-color:var(--signal);}
.lead-form textarea{resize:vertical; min-height:100px;}
.lead-form .two-col{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.lead-form .submit-row{margin-top:8px;}
.checkbox-row{display:flex; flex-wrap:wrap; gap:8px;}
.checkbox-pill{display:flex; align-items:center; gap:7px; font-size:13.5px; border:1px solid var(--line); padding:8px 13px; border-radius:20px; cursor:pointer; color:var(--ink-soft); transition:border-color .15s, color .15s, background .15s;}
.checkbox-pill input{accent-color:var(--signal); margin:0;}
.checkbox-pill:has(input:checked){border-color:var(--signal); color:var(--ink); background:rgba(43,63,224,0.05);}
.lead-form .fine{font-size:12.5px; color:var(--ink-soft); margin-top:14px; line-height:1.5;}
@media (max-width:640px){.lead-form .two-col{grid-template-columns:1fr;}}

footer{padding:36px 0; border-top:1px solid var(--line);}
.footer-inner{display:flex; justify-content:space-between; align-items:center; font-size:13px; color:var(--ink-soft); flex-wrap:wrap; gap:12px;}
.footer-brand{display:flex; align-items:center; flex-wrap:wrap; gap:16px;}
.footer-logo-link{display:flex; align-items:center; gap:8px; flex-shrink:0;}
.footer-logo-icon{width:20px; height:20px; display:block;}
.footer-logo-text{font-family:'Space Grotesk', sans-serif; font-weight:600; font-size:15px; color:var(--ink);}
.footer-logo-text span{color:var(--signal);}
.footer-copy{color:var(--ink-soft);}
.footer-links{display:flex; flex-wrap:wrap; gap:12px 24px;}
.footer-email{color:var(--signal); font-weight:600;}
.footer-email:hover{text-decoration:underline;}

/* ---------- AUCTION DIAGRAM (Glossary) ---------- */
.auction-diagram-wrap{background:var(--panel); border:1px solid var(--line); border-radius:4px; padding:32px 28px 24px;}
.auction-diagram{width:100%; height:auto; display:block; overflow:visible;}
.diag-box{fill:var(--paper); stroke:var(--line); stroke-width:1.5;}
.diag-box-signal{fill:var(--signal); stroke:var(--signal-deep);}
.diag-label{font-family:'Space Grotesk', sans-serif; font-size:17px; font-weight:600; fill:var(--ink); text-anchor:middle;}
.diag-label-onsignal{fill:#fff;}
.diag-sub{font-family:'IBM Plex Mono', monospace; font-size:11px; fill:var(--ink-soft); text-anchor:middle;}
.diag-sub-onsignal{fill:#D6DAFB;}
.diag-op{font-family:'Space Grotesk', sans-serif; font-size:26px; font-weight:600; fill:var(--ink-soft); text-anchor:middle;}
.diag-arrow{fill:none; stroke:var(--ink-soft); stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.diag-caption{margin-top:22px; font-size:14px; color:var(--ink-soft); line-height:1.6; max-width:760px;}
@media (max-width:700px){
  .auction-diagram-wrap{padding:22px 16px 18px;}
  .diag-label{font-size:14px;}
  .diag-sub{font-size:9.5px;}
}

/* ---------- ACCOUNT REVIEW MOCKUP (Services) ---------- */
.review-mockup{background:var(--ink); border-radius:4px; padding:26px 26px 20px; margin-top:28px;}
.review-mockup-label{font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:#8C97F5; margin-bottom:18px; display:flex; align-items:center; gap:8px;}
.review-mockup-label::before{content:""; width:6px; height:6px; border-radius:50%; background:#8C97F5;}
.review-metric-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:#2A2D42; border:1px solid #2A2D42; margin-bottom:20px;}
.review-metric{background:#171A2B; padding:16px 14px;}
.review-metric .rm-label{font-family:'IBM Plex Mono', monospace; font-size:10px; letter-spacing:.05em; text-transform:uppercase; color:#8285A0; margin-bottom:8px;}
.review-metric .rm-value{font-family:'IBM Plex Mono', monospace; font-size:20px; font-weight:500; color:#fff;}
.review-metric .rm-delta{font-size:11.5px; margin-top:4px;}
.review-metric .rm-delta.up{color:#5FD996;} .review-metric .rm-delta.down{color:#5FD996;}
.review-chart{display:flex; align-items:flex-end; gap:6px; height:64px; padding:0 2px;}
.review-chart .bar{flex:1; background:#3A3F63; border-radius:2px 2px 0 0;}
.review-chart .bar.hi{background:var(--signal);}
@media (max-width:700px){.review-metric-grid{grid-template-columns:1fr 1fr;}}

/* ---------- COMPARISON TABLE ---------- */
.compare-table-wrap{border:1px solid var(--line); border-radius:4px; overflow-x:auto; background:var(--paper);}
.compare-table{width:100%; border-collapse:collapse; min-width:640px;}
.compare-table th, .compare-table td{padding:16px 20px; text-align:left; font-size:14px; line-height:1.55; border-bottom:1px solid var(--line); vertical-align:top;}
.compare-table thead th{
  font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--ink-soft); background:var(--panel); border-bottom:1px solid var(--line);
}
.compare-table tbody th{font-weight:600; color:var(--ink); white-space:nowrap;}
.compare-table td{color:var(--ink-soft);}
.compare-table tbody tr:last-child th, .compare-table tbody tr:last-child td{border-bottom:none;}
.compare-table .col-highlight{
  background:rgba(43,63,224,0.05); color:var(--ink); font-weight:500;
  border-left:2px solid var(--signal);
}
.compare-table thead th.col-highlight{color:var(--signal); background:rgba(43,63,224,0.08);}

/* ---------- FAQ ACCORDION ---------- */
.faq-list{display:flex; flex-direction:column; border-top:1px solid var(--line);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-item summary{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:22px 4px; cursor:pointer; font-family:'Space Grotesk', sans-serif;
  font-size:16.5px; font-weight:600; color:var(--ink); list-style:none;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::marker{content:"";}
.faq-icon{
  flex-shrink:0; width:22px; height:22px; border:1px solid var(--line); border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-family:'IBM Plex Mono', monospace;
  font-size:15px; color:var(--signal); transition:transform .15s;
}
.faq-item[open] .faq-icon{transform:rotate(45deg);}
.faq-item p{padding:0 4px 24px; margin:0; max-width:760px; color:var(--ink-soft); font-size:14.5px; line-height:1.65;}

@media (max-width:860px){
  .hero-grid{grid-template-columns:1fr;}
  .service-grid, .campaign-grid{grid-template-columns:1fr;}
  .founders-grid{grid-template-columns:1fr;}
  .contact-inner{grid-template-columns:1fr;}
  .approach-item, .engage-item{grid-template-columns:1fr; gap:8px;}
  .mission-grid{grid-template-columns:1fr; gap:36px;}
  .approach-loop{order:-1; max-width:420px;}
}

:focus-visible{outline:2px solid var(--signal); outline-offset:2px;}
