:root {
  --navy:#06194a;
  --blue:#0b5df5;
  --blue-dark:#0847c8;
  --cyan:#08c7cf;
  --ink:#142345;
  --muted:#63708a;
  --line:#dfe6f0;
  --soft:#f5f8fd;
  --success:#008f91;
  --danger:#df2e47;
  --warning:#c97500;
  --shadow:0 24px 70px rgba(15,40,90,.12);
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:#fff; font-family:Inter,ui-sans-serif,Arial,Helvetica,sans-serif; font-size:16px; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
img { max-width:100%; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.public-shell { width:min(1180px,calc(100% - 40px)); margin-inline:auto; }
#top,#demo,#service,#how,#partners,#principles,#faq,#contact { scroll-margin-top:88px; }

.public-header { height:74px; padding:0 max(20px,calc((100vw - 1180px)/2)); display:flex; align-items:center; gap:34px; border-bottom:1px solid var(--line); background:rgba(255,255,255,.95); backdrop-filter:blur(14px); position:sticky; top:0; z-index:30; }
.public-brand { display:inline-flex; align-items:center; gap:10px; color:var(--navy); font-size:28px; font-weight:900; letter-spacing:-1.5px; white-space:nowrap; }
.public-mark { display:block; width:32px; height:32px; flex:0 0 32px; border-radius:10px; background:linear-gradient(135deg,var(--blue),var(--cyan)); position:relative; transform:rotate(-8deg); }
.public-mark i { position:absolute; width:20px; height:7px; border:2px solid #fff; border-top:0; border-right:0; transform:rotate(-42deg); left:6px; top:10px; }
.public-header nav { display:flex; gap:30px; margin-left:auto; align-items:center; }
.public-header nav a { font-size:13px; font-weight:750; color:#344362; }
.public-header nav a:hover { color:var(--blue); }
.nav-toggle { display:none; width:42px; height:42px; padding:10px; border:1px solid var(--line); border-radius:9px; background:#fff; }
.nav-toggle span { display:block; height:2px; margin:4px 0; border-radius:2px; background:var(--navy); }

.hero { min-height:700px; display:grid; grid-template-columns:.92fr 1.08fr; gap:68px; align-items:center; padding-block:78px; background:radial-gradient(circle at 36% 51%,rgba(13,94,245,.09),transparent 30%); }
.eyebrow,.section-kicker { font-size:11px; letter-spacing:1.25px; color:var(--blue); font-weight:900; text-transform:uppercase; }
.eyebrow { display:inline-flex; align-items:center; gap:9px; background:#f1f6ff; border:1px solid #dce8ff; padding:9px 12px; border-radius:99px; }
.eyebrow i { width:7px; height:7px; border-radius:50%; background:var(--cyan); box-shadow:0 0 0 5px rgba(8,199,207,.12); }
.hero h1 { font-size:clamp(52px,5.3vw,76px); line-height:.99; letter-spacing:-4.5px; margin:25px 0 22px; color:var(--navy); }
.hero h1 em { font-style:normal; color:var(--blue); }
.hero-copy>p { font-size:17px; line-height:1.7; color:#51607b; max-width:600px; }

.decision-stage { background:#fff; border:1px solid #dfe5ef; border-radius:20px; padding:22px; box-shadow:var(--shadow); position:relative; }
.stage-head { display:flex; justify-content:space-between; align-items:center; gap:15px; margin-bottom:15px; }
.stage-head b { font-size:10px; color:var(--blue); background:#f3f7ff; padding:7px 9px; border-radius:7px; }
.stage-head span { font-size:10px; color:#77839a; }
.request-chip { border:1px solid #dce5f5; background:#f9fbff; border-radius:10px; padding:13px 15px; font-size:12px; color:#334361; margin-bottom:14px; }
.inline-dual { display:inline-flex; align-items:baseline; gap:5px; white-space:nowrap; }
.inline-dual strong { color:var(--navy); font-size:1em; }
.inline-dual small { color:#7a8291; font-size:.82em; font-weight:650; }
.decision-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
.decision-grid article { border:1px solid #e3e8f0; border-radius:12px; padding:15px 12px; min-height:390px; display:flex; flex-direction:column; background:#fff; }
.decision-grid article.best { border:2px solid var(--blue); transform:translateY(-4px); box-shadow:0 12px 25px rgba(11,93,245,.12); }
.verdict { font-size:10px; font-weight:900; }
.verdict.buy { color:var(--success); }.verdict.wait { color:var(--warning); }.verdict.skip { color:var(--danger); }
.product-shot { width:100%; height:auto; aspect-ratio:1 / 1; flex:0 0 auto; margin:10px 0 9px; overflow:hidden; border-radius:10px; background:#f4f6f9; }
.product-shot.featured { background:linear-gradient(145deg,#f6fbff,#edf4ff); }
.product-shot img { display:block; width:100%; height:auto; aspect-ratio:1 / 1; object-fit:contain; object-position:center; }
.decision-grid h3 { font-size:13px; margin:5px 0 7px; color:var(--navy); line-height:1.25; }
.match-row { display:flex; align-items:baseline; justify-content:space-between; gap:7px; }
.dual-money { display:grid; gap:2px; line-height:1.15; }
.dual-money strong { color:var(--navy); font-size:15px; font-weight:900; }
.dual-money small { margin:0; padding:0; color:#7a8291; background:none; border-radius:0; text-align:left; font-size:10px; font-weight:650; }
.match-row span { color:var(--blue); font-size:12px; font-weight:900; }
.decision-grid article.best .match-row span { color:var(--success); }
.decision-grid p,.decision-grid li { font-size:10px; line-height:1.5; color:var(--muted); }
.decision-grid p { margin:8px 0 0; }
.decision-grid ul { list-style:none; padding:0; margin:10px 0 12px; display:grid; gap:5px; }
.decision-grid li:before { content:"✓"; color:var(--success); font-weight:900; margin-right:6px; }
.decision-grid li.tradeoff:before { content:"!"; color:var(--danger); }
.recommendation-badge { margin-top:auto; text-align:center; color:#fff; background:linear-gradient(90deg,var(--success),var(--cyan)); border-radius:6px; padding:8px; font-weight:800; }
.demo-caption { margin:13px 0 0; text-align:center; color:#8791a4; font-size:10px; line-height:1.5; }

.trust-strip { border-block:1px solid var(--line); background:#fbfcff; }
.trust-strip>div { min-height:70px; display:grid; grid-template-columns:repeat(4,1fr); align-items:center; }
.trust-strip span { text-align:center; border-right:1px solid var(--line); padding:12px; font-size:12px; font-weight:800; color:#52607a; }
.trust-strip span:before { content:"✓"; color:var(--success); margin-right:8px; }
.trust-strip span:last-child { border:0; }

.section { padding-block:96px; }
.section.compact { padding-top:64px; }
.section-heading { text-align:center; max-width:790px; margin:0 auto 46px; }
.section-heading>span { font-size:11px; color:var(--blue); font-weight:900; letter-spacing:1.35px; }
.section-heading h2,.split-section h2,.partner-panel h2,.contact-copy h2 { font-size:clamp(34px,4vw,50px); line-height:1.08; letter-spacing:-2.5px; color:var(--navy); margin:14px 0 17px; }
.section-heading p,.lead,.contact-copy>p { color:var(--muted); line-height:1.7; font-size:15px; }
.value-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.value-grid.four { grid-template-columns:repeat(4,1fr); }
.value-grid article { border:1px solid var(--line); border-radius:15px; padding:27px; min-height:235px; background:#fff; }
.value-grid i { font-style:normal; font-size:11px; font-weight:900; color:var(--blue); background:#edf4ff; border-radius:8px; padding:8px; }
.value-grid h3 { font-size:19px; color:var(--navy); margin:30px 0 11px; }
.value-grid p,.principles-grid p { font-size:14px; line-height:1.65; color:var(--muted); }

.soft { background:var(--soft); }

.split-section { display:grid; grid-template-columns:.9fr 1.1fr; gap:95px; align-items:start; }
.text-link { display:inline-flex; margin-top:17px; color:var(--blue); font-size:13px; font-weight:850; }
.process-list { list-style:none; padding:0; margin:0; display:grid; gap:12px; }
.process-list li { display:flex; gap:18px; padding:22px; background:#fff; border:1px solid var(--line); border-radius:12px; }
.process-list li>span { width:36px; height:36px; flex:0 0 36px; display:grid; place-items:center; border-radius:9px; background:#eaf2ff; color:var(--blue); font-weight:900; }
.process-list b { font-size:14px; color:var(--navy); }
.process-list p { font-size:13px; line-height:1.55; color:var(--muted); margin:7px 0 0; }

.partner-panel { background:linear-gradient(115deg,#061b52,#0b50d8 62%,#06b8c5); border-radius:22px; padding:56px; display:grid; grid-template-columns:1fr .9fr; gap:65px; color:#fff; box-shadow:0 25px 60px rgba(5,30,85,.2); }
.section-kicker.light { color:#61eef0; }
.partner-panel h2 { color:#fff; }
.partner-panel p { color:#d2def2; line-height:1.7; font-size:14px; }
.partner-panel a { display:inline-flex; margin-top:17px; background:#fff; color:var(--navy); font-size:12px; font-weight:900; border-radius:8px; padding:15px 18px; }
.partner-panel a span { margin-left:16px; }
.partner-list { display:grid; align-content:center; gap:9px; }
.partner-list p { margin:0; padding:14px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.13); border-radius:9px; color:#eef4ff; font-size:13px; }
.partner-list i { font-style:normal; color:#61eef0; margin-right:8px; }

.principles-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.principles-grid article { border-top:3px solid var(--blue); background:var(--soft); padding:25px; border-radius:0 0 12px 12px; }
.principles-grid span { font-size:25px; color:var(--blue); }
.principles-grid h3 { font-size:16px; margin:18px 0 9px; color:var(--navy); }

.faq-shell { max-width:920px; }
.faq-list { display:grid; gap:11px; }
.faq-list article { border:1px solid var(--line); border-radius:12px; background:#fff; overflow:hidden; }
.faq-list button { width:100%; border:0; background:#fff; color:var(--navy); min-height:66px; padding:16px 19px; display:flex; align-items:center; justify-content:space-between; gap:20px; text-align:left; font-weight:850; }
.faq-list button i { width:30px; height:30px; display:grid; place-items:center; border-radius:50%; background:#eef4ff; color:var(--blue); font-style:normal; font-size:19px; transition:transform .2s ease; }
.faq-list button[aria-expanded="true"] i { transform:rotate(45deg); }
.faq-list article>div { padding:0 60px 20px 19px; }
.faq-list article>div[hidden] { display:none; }
.faq-list p { margin:0; color:var(--muted); font-size:14px; line-height:1.7; }

.contact-panel { display:grid; grid-template-columns:.85fr 1.15fr; gap:55px; padding:48px; border:1px solid #d9e5f7; border-radius:22px; background:radial-gradient(circle at 5% 5%,rgba(8,199,207,.09),transparent 34%),#f6f9ff; }
.contact-copy ul { list-style:none; padding:0; margin:28px 0 0; display:grid; gap:12px; }
.contact-copy li { color:#4e5d79; font-size:13px; }
.contact-copy li:before { content:"✓"; display:inline-grid; place-items:center; width:23px; height:23px; margin-right:9px; border-radius:50%; background:#e3f8f5; color:var(--success); font-weight:900; }
.contact-form { display:grid; grid-template-columns:1fr 1fr; gap:15px; padding:25px; border:1px solid var(--line); border-radius:15px; background:#fff; box-shadow:0 16px 45px rgba(15,40,90,.08); }
.form-field { display:grid; gap:7px; }
.form-field.full,.consent-field.full,.form-submit.full { grid-column:1/-1; }
.form-field label { font-size:12px; font-weight:850; color:#354462; }
.form-field label small { color:#8a94a8; font-weight:500; }
.form-field input,.form-field select,.form-field textarea { width:100%; min-height:46px; border:1px solid #d3dce9; border-radius:9px; padding:11px 12px; color:var(--ink); background:#fff; outline:0; }
.form-field textarea { min-height:125px; resize:vertical; }
.form-field input:focus,.form-field select:focus,.form-field textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(11,93,245,.1); }
.consent-field { display:flex; align-items:flex-start; gap:9px; color:#66738c; font-size:11px; line-height:1.55; }
.consent-field input { width:17px; height:17px; flex:0 0 17px; accent-color:var(--blue); }
.consent-field a { color:var(--blue); text-decoration:underline; }
.form-submit { display:flex; align-items:center; gap:16px; }
.form-submit button { min-height:48px; border:0; border-radius:9px; padding:0 19px; background:linear-gradient(135deg,var(--blue),var(--blue-dark)); color:#fff; font-size:12px; font-weight:900; }
.form-submit button:disabled { opacity:.65; cursor:wait; }
.form-submit button span { margin-left:15px; }
.form-submit p { margin:0; font-size:12px; line-height:1.5; color:var(--success); }
.form-submit p.error { color:var(--danger); }
.trap-field { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

footer { border-top:1px solid var(--line); padding:48px 0 25px; }
.footer-row { display:grid; grid-template-columns:1.3fr .8fr .8fr; align-items:start; gap:55px; }
.footer-row>div:first-child p { max-width:320px; color:var(--muted); font-size:13px; line-height:1.6; }
.footer-links { display:grid; gap:10px; }
.footer-links b { margin-bottom:4px; color:var(--navy); font-size:12px; }
.footer-links a { color:var(--muted); font-size:12px; }
.footer-links a:hover { color:var(--blue); }
.footer-bottom { border-top:1px solid var(--line); margin-top:32px; padding-top:21px; display:flex; justify-content:space-between; gap:20px; color:#818ca1; font-size:10px; line-height:1.5; }

/* Informational pages */
.legal-main { min-height:70vh; padding:70px 0 95px; background:linear-gradient(180deg,#f7faff,transparent 320px); }
.legal-layout { width:min(980px,calc(100% - 40px)); margin:auto; display:grid; grid-template-columns:230px minmax(0,1fr); gap:50px; }
.legal-aside { position:sticky; top:110px; align-self:start; display:grid; gap:9px; }
.legal-aside a { padding:10px 12px; border-radius:8px; color:#586680; font-size:13px; font-weight:750; }
.legal-aside a:hover,.legal-aside a.active { color:var(--blue); background:#edf4ff; }
.legal-card { padding:42px; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:0 20px 60px rgba(15,40,90,.08); }
.legal-card .eyebrow { margin-bottom:18px; }
.legal-card h1 { margin:0 0 14px; color:var(--navy); font-size:clamp(36px,5vw,54px); line-height:1.05; letter-spacing:-2.6px; }
.legal-card .updated { color:#8590a5; font-size:12px; }
.legal-card h2 { margin:35px 0 12px; color:var(--navy); font-size:22px; }
.legal-card h3 { margin:25px 0 9px; color:var(--navy); font-size:17px; }
.legal-card p,.legal-card li { color:#586680; font-size:15px; line-height:1.75; }
.legal-card a { color:var(--blue); text-decoration:underline; }
.legal-card .legal-callout { margin:25px 0; padding:18px; border-left:4px solid var(--blue); border-radius:0 10px 10px 0; background:#f1f6ff; }

:focus-visible { outline:3px solid rgba(11,93,245,.38); outline-offset:3px; }

@media (max-width:1050px) {
  .value-grid.four { grid-template-columns:1fr 1fr; }
}

@media (max-width:900px) {
  .public-header { gap:12px; }
  .nav-toggle { display:block; margin-left:auto; }
  .public-header nav { display:none; position:absolute; left:14px; right:14px; top:66px; margin:0; padding:12px; border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:var(--shadow); }
  body.nav-open .public-header nav { display:grid; gap:4px; }
  .public-header nav a { padding:12px; border-radius:8px; }
  .public-header nav a:hover { background:#f1f6ff; }
  .hero { grid-template-columns:1fr; padding-top:60px; }
  .hero-copy { text-align:center; }
  .hero-copy>p { margin-inline:auto; }
  .decision-stage { max-width:700px; margin-inline:auto; }
  .split-section,.partner-panel,.contact-panel { grid-template-columns:1fr; gap:38px; }
  .principles-grid { grid-template-columns:1fr 1fr; }
  .legal-layout { grid-template-columns:1fr; }
  .legal-aside { position:static; display:flex; overflow:auto; }
  .legal-aside a { white-space:nowrap; }
}

@media (max-width:640px) {
  .public-shell { width:min(calc(100% - 28px),1180px); }
  .public-header { height:66px; padding-inline:14px; }
  .public-brand { font-size:25px; }
  .public-mark { width:30px; height:30px; flex-basis:30px; }
  .hero { min-height:auto; padding-block:48px 64px; gap:42px; }
  .hero h1 { font-size:48px; letter-spacing:-3px; }
  .hero-copy>p { font-size:15px; }
  .decision-stage { padding:13px; border-radius:15px; }
  .stage-head { align-items:flex-start; }
  .stage-head span { text-align:right; }
  .request-chip { font-size:11px; }
  .decision-grid { gap:5px; }
  .decision-grid article { min-height:295px; padding:10px 7px; }
  .decision-grid article.best { transform:none; }
  .product-shot { height:auto; margin:8px 0 7px; border-radius:7px; }
  .decision-grid h3 { font-size:11px; }
  .dual-money strong { font-size:11px; }
  .dual-money small { font-size:8px; }
  .match-row span { font-size:9px; }
  .decision-grid p,.decision-grid li { font-size:8px; }
  .decision-grid ul { margin:8px 0; }
  .recommendation-badge { padding:6px 3px; font-size:8px; }
  .trust-strip>div { grid-template-columns:1fr 1fr; padding:10px 0; }
  .trust-strip span { min-height:50px; display:grid; place-items:center; border-bottom:1px solid var(--line); font-size:10px; }
  .trust-strip span:nth-child(2) { border-right:0; }
  .trust-strip span:nth-child(3),.trust-strip span:nth-child(4) { border-bottom:0; }
  .section { padding-block:72px; }
  .section-heading h2,.split-section h2,.partner-panel h2,.contact-copy h2 { letter-spacing:-1.8px; }
  .value-grid,.value-grid.four,.principles-grid { grid-template-columns:1fr; }
  .partner-panel { padding:32px 23px; }
  .contact-panel { padding:25px 18px; }
  .contact-form { grid-template-columns:1fr; padding:19px 16px; }
  .form-field.full,.consent-field.full,.form-submit.full { grid-column:auto; }
  .form-submit { align-items:flex-start; flex-direction:column; }
  .form-submit button { width:100%; }
  .footer-row { grid-template-columns:1fr; gap:30px; }
  .footer-bottom { flex-direction:column; }
  .legal-main { padding-top:35px; }
  .legal-layout { width:min(calc(100% - 28px),980px); gap:20px; }
  .legal-card { padding:28px 20px; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition-duration:.01ms!important; animation-duration:.01ms!important; animation-iteration-count:1!important; }
}
