/* Homepage-only presentation. Shared navigation, console and pricing logic stay independent. */
.ft-home { --ft-deep:#132449; --ft-blue:#2755d9; --ft-muted:#53617a; }
.ft-home .section { padding:84px 0; scroll-margin-top:90px; }
.ft-home .section-head { margin-bottom:36px; }
.ft-home .section-head h2 { font-size:clamp(28px,3vw,38px); letter-spacing:-.035em; }
.ft-home .section-head>p:not(.eyebrow) { max-width:700px; }
.ft-home .eyebrow { letter-spacing:.08em; font-size:12px; }
.ft-home .btn { border-radius:8px; transition:background .18s,color .18s,box-shadow .18s,transform .18s; }
.ft-home .btn:hover { transform:translateY(-2px); }
.ft-home :is(a,button,select,summary):focus-visible { outline:3px solid #537bec; outline-offset:4px; }
.ft-home .ft-hero { padding:76px 0 0; overflow:hidden; background:radial-gradient(ellipse at 85% 30%,#ebf0ff 0,transparent 52%),var(--paper); }
.ft-home .ft-hero>.wrap:first-child { grid-template-columns:1.15fr 1fr; gap:64px; align-items:center; }
.ft-home .ft-hero-copy>.eyebrow { display:flex; align-items:center; gap:10px; color:var(--ft-blue); }
.ft-home .ft-hero-copy>.eyebrow::before { display:none; }
.ft-home .ft-brand-line { display:block; width:26px; height:2px; background:currentColor; }
.ft-home .ft-hero h1 { font-size:clamp(36px,4.1vw,57px); line-height:1.24; letter-spacing:-.055em; margin:22px 0; }
.ft-home .ft-hero h1 em { font-style:normal; color:var(--ft-blue); }
.ft-home .hero-lede { font-size:17px; line-height:1.9; max-width:540px; color:var(--ft-muted); }
.ft-home .hero-lede code { font-size:15px; white-space:nowrap; color:var(--ft-deep); }
.ft-home .hero-actions { margin-top:28px; gap:12px; }
.ft-home .hero-actions .btn { min-height:50px; padding:12px 20px; gap:16px; }
.ft-home .ft-hero-note { margin-top:15px; color:var(--ink-3); font-size:12px; }
.ft-home .hero-facts { margin-top:34px; padding-top:23px; gap:22px; border-top:1px solid var(--line); }
.ft-home .hero-facts>div { min-width:0; flex:1; }
.ft-home .hero-facts>div:last-child { flex:1.7; }
.ft-home .hero-facts strong { font:500 24px var(--mono); letter-spacing:-1.5px; color:var(--ft-deep); }
.ft-home .hero-facts span { display:block; margin-top:7px; font-size:11px; line-height:1.6; }
.ft-home .ft-routing { min-width:0; background:var(--ft-deep); color:#fff; padding:25px; border-radius:18px; box-shadow:0 24px 54px -28px #14275670; position:relative; isolation:isolate; }
.ft-home .ft-routing::before { content:""; position:absolute; inset:0; z-index:-1; border-radius:inherit; background-image:radial-gradient(#ffffff10 1px,transparent 1px); background-size:18px 18px; }
.ft-home .ft-routing-top { display:flex; align-items:center; justify-content:space-between; gap:12px; font:10px var(--mono); letter-spacing:.06em; color:#abbfe6; }
.ft-home .ft-example { padding:4px 8px; border:1px solid #ffffff30; border-radius:4px; font:11px var(--sans); white-space:nowrap; }
.ft-home .ft-task { display:flex; align-items:center; gap:14px; background:#ffffff0a; border:1px solid #ffffff24; padding:17px; margin-top:25px; border-radius:9px; }
.ft-home .ft-task small { color:#9fb2d4; font-size:11px; }
.ft-home .ft-task p { color:#e5eaf4; font-size:13px; line-height:1.8; margin-top:5px; }
.ft-home .ft-task-icon { font:25px var(--mono); color:#9cb6ef; }
.ft-home .ft-route-line { height:29px; width:1px; margin:auto; background:#6781b8; position:relative; }
.ft-home .ft-route-line span { position:absolute; height:7px; width:7px; left:-3px; top:10px; border-radius:50%; background:#83a7ff; animation:ft-flow 3s ease-in-out infinite; }
.ft-home .ft-router-node { display:flex; align-items:center; gap:13px; padding:20px 17px; border:1px solid #648cf0; border-radius:10px; background:#214482; box-shadow:0 0 0 4px #668cea0e; }
.ft-home .ft-router-node img { width:36px; height:auto; filter:brightness(0) invert(1); }
.ft-home .ft-router-node strong { display:block; font:500 22px var(--mono); letter-spacing:-.7px; }
.ft-home .ft-router-node div>span { font-size:11px; color:#baccec; display:block; margin-top:6px; }
.ft-home .ft-node-symbol { margin-left:auto; color:#9bbaff; font-size:28px; }
.ft-home .ft-route-branches { width:68%; height:27px; border:1px solid #6781b8; border-bottom:0; border-radius:7px 7px 0 0; margin:24px auto 0; position:relative; }
.ft-home .ft-route-branches::before { content:""; height:51px; width:1px; background:#6781b8; position:absolute; left:50%; bottom:0; }
.ft-home .ft-route-stages { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:0; list-style:none; gap:9px; margin:0; }
.ft-home .ft-route-stages li { text-align:center; background:#1a2e54; border:1px solid #ffffff22; border-radius:7px; padding:12px 6px; }
.ft-home .ft-route-stages li>span { font:10px var(--mono); color:#91afe9; }
.ft-home .ft-route-stages strong { display:block; font-size:13px; font-weight:500; margin:6px 0 4px; }
.ft-home .ft-route-stages small { display:block; font-size:10px; color:#a8bbdc; }
.ft-home .ft-routing-bottom { border-top:1px solid #ffffff1c; margin-top:24px; padding-top:16px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; font-size:10px; color:#b9c9e5; }
.ft-home .ft-routing-bottom a { color:#d6e2ff; }
.ft-home .ft-endpoint-bar { display:flex; grid-template-columns:none; align-items:center; justify-content:space-between; border-top:1px solid var(--line); margin-top:56px; padding:23px 0; gap:20px; }
.ft-home .ft-endpoint-bar>div { display:flex; gap:20px; align-items:center; min-width:0; }
.ft-home .ft-endpoint-bar>div>span { font-size:12px; color:var(--ink-3); }
.ft-home .ft-endpoint-bar .kv-row { gap:12px; min-width:0; }
.ft-home .ft-endpoint-bar code { font-size:13px; overflow-wrap:anywhere; }
.ft-home .ft-endpoint-bar>a { font-size:12px; color:var(--ft-blue); }
.ft-home .ft-tools-band { border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff; padding:21px 0; }
.ft-home .ft-tools-band>.wrap { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.ft-home .ft-tools-band p,.ft-home .ft-tools-band span { font-size:11px; color:var(--ink-3); }
.ft-home .ft-tools-band>.wrap>div { display:flex; flex-wrap:wrap; align-items:center; gap:27px; }
.ft-home .ft-tools-band a { font-size:15px; font-weight:600; color:#465168; letter-spacing:-.04em; }
.ft-home .ft-tools-band a:hover { color:var(--ft-blue); }
.ft-home #groups { background:var(--paper); }
.ft-home .groups { gap:20px; }
.ft-home .group { background:#fff; border:1px solid var(--line); border-radius:12px; padding:27px; display:flex; flex-direction:column; box-shadow:none; min-width:0; transition:transform .2s,box-shadow .2s; }
.ft-home .group:hover { transform:translateY(-4px); box-shadow:0 15px 40px -25px #13244950; }
.ft-home .group.is-featured { background:#eef3ff; border-color:#91aaed; box-shadow:inset 0 3px 0 var(--ft-blue); }
.ft-home .group h3 { font-size:27px; margin-top:18px; }
.ft-home .group .basis { min-height:118px; font-size:13px; line-height:1.8; margin-top:14px; }
.ft-home .ft-scenario { display:block; font-weight:600; color:var(--ft-deep); font-size:14px; margin-bottom:8px; }
.ft-home .group .price { border-top:1px solid var(--line); padding-top:18px; margin-top:0; }
.ft-home .group .price>span { font-size:12px; }
.ft-home .group ul { flex:1; }
.ft-home .group ul li { font-size:13px; line-height:1.75; }
.ft-home .group .actions { padding-top:14px; }
.ft-home .ft-group-note { margin-top:21px; color:var(--ink-3); font-size:12px; }
.ft-home .ft-group-note a { color:var(--ft-blue); margin-left:8px; white-space:nowrap; }
.ft-home #pricing { background:#fff; border-top:1px solid var(--line); }
.ft-home .table-wrap { border-radius:12px; }
.ft-home .table-note>code { color:var(--ink-3); }
.ft-home #how { background:var(--paper); }
.ft-home .ft-confidence { background:#eef2fa; border-block:1px solid #e0e6f2; }
.ft-home .ft-confidence-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:42px; }
.ft-home .ft-feature-index { color:var(--ft-blue); font:11px var(--mono); letter-spacing:.04em; }
.ft-home .ft-confidence-grid h3 { margin:17px 0 12px; font-size:21px; }
.ft-home .ft-confidence-grid p { color:var(--ft-muted); font-size:14px; line-height:1.9; }
.ft-home .ft-confidence-grid a { display:inline-flex; gap:10px; font-size:13px; margin-top:22px; color:var(--ft-blue); }
.ft-home .ft-faq-layout { display:grid; grid-template-columns:1fr 1.7fr; gap:80px; }
.ft-home .ft-faq h2 { font-size:31px; margin-top:14px; }
.ft-home .ft-faq-layout>div>p:not(.eyebrow) { font-size:14px; color:var(--ink-3); margin-top:16px; }
.ft-home .ft-faq .more { display:inline-block; margin-top:22px; font-size:13px; color:var(--ft-blue); }
.ft-home .ft-faq details { border-bottom:1px solid var(--line); }
.ft-home .ft-faq summary { cursor:pointer; padding:22px 30px 22px 0; position:relative; font-size:16px; font-weight:500; list-style:none; }
.ft-home .ft-faq summary::-webkit-details-marker { display:none; }
.ft-home .ft-faq summary::after { content:"+"; position:absolute; right:2px; top:20px; color:var(--ft-blue); font:22px var(--mono); }
.ft-home .ft-faq details[open] summary::after { content:"−"; }
.ft-home .ft-faq details p { padding:0 24px 22px 0; color:var(--ft-muted); font-size:14px; line-height:1.9; }
.ft-home .support { background:var(--ft-deep); color:#fff; }
.ft-home .support .eyebrow { color:#a7bce7; }
.ft-home .support .section-head>p:not(.eyebrow) { color:#bccbe6; }
.ft-home .support .contact { border-color:#ffffff2b; background:#ffffff08; }
.ft-home .support .contact:hover { background:#ffffff14; }
.ft-home .support .contact small { color:#bac9e3; }
.ft-home .support .contact strong { color:#fff; font-size:13px; overflow-wrap:anywhere; }
.ft-home .support .ico { background:#fff; }
@keyframes ft-flow { 0%,100%{transform:translateY(-7px);opacity:.5} 50%{transform:translateY(7px);opacity:1} }
@media (min-width:1100px) { html[lang=en] .ft-home .ft-hero h1 { font-size:48px; } }
@media (max-width:1050px) {
 .ft-home .ft-hero>.wrap:first-child { gap:30px; }
 .ft-home .ft-routing { padding:20px; }
 .ft-home .ft-tools-band>.wrap { flex-wrap:wrap; }
 .ft-home .ft-tools-band>.wrap>span { display:none; }
 .ft-home .ft-endpoint-bar { flex-wrap:wrap; }
 .ft-home .group { padding:22px; }
 .ft-home .group .basis { min-height:140px; }
}
@media (max-width:800px) {
 .ft-home .section { padding:58px 0; }
 .ft-home .ft-hero { padding-top:45px; }
 .ft-home .ft-hero>.wrap:first-child { display:grid; grid-template-columns:1fr; gap:35px; }
 .ft-home .ft-hero h1 { font-size:clamp(36px,6vw,49px); }
 .ft-home .hero-lede { max-width:none; font-size:16px; }
 .ft-home .ft-routing { width:100%; max-width:580px; margin:auto; }
 .ft-home .ft-endpoint-bar { margin-top:33px; gap:13px; }
 .ft-home .ft-endpoint-bar>div { flex-wrap:wrap; gap:8px; }
 .ft-home .ft-tools-band>.wrap { display:block; }
 .ft-home .ft-tools-band>.wrap>div { gap:14px 24px; margin-top:13px; }
 .ft-home .groups { grid-template-columns:1fr; }
 .ft-home .group .basis { min-height:0; }
 .ft-home .group .price { margin-top:20px; }
 .ft-home .ft-confidence-grid { grid-template-columns:1fr; gap:30px; }
 .ft-home .ft-confidence-grid article+article { border-top:1px solid #d8deea; padding-top:30px; }
 .ft-home .ft-faq-layout { grid-template-columns:1fr; gap:22px; }
}
@media (max-width:420px) {
 .ft-home .ft-hero h1 { font-size:34px; }
 .ft-home .hero-actions { gap:9px; }
 .ft-home .hero-actions .btn { font-size:13px; padding:11px 13px; gap:9px; }
 .ft-home .hero-facts { gap:12px; }
 .ft-home .hero-facts strong { font-size:20px; }
 .ft-home .hero-facts span { font-size:10px; }
 .ft-home .ft-routing { padding:17px; }
 .ft-home .ft-router-node { padding:16px 12px; }
 .ft-home .ft-router-node strong { font-size:19px; }
 .ft-home .ft-route-stages strong { font-size:12px; }
 .ft-home .ft-route-stages small { font-size:9px; }
 .ft-home .ft-endpoint-bar code { font-size:11px; }
 .ft-home .ft-faq h2 { font-size:28px; }
}
@media (prefers-reduced-motion:reduce) {
 .ft-home *, .ft-home *::before,.ft-home *::after { animation:none!important; transition:none!important; }
 .ft-home .group:hover,.ft-home .btn:hover { transform:none; }
}

/* Fit the existing header controls on narrow phones; no navigation DOM changes. */
@media (max-width:360px) {
 body:has(.ft-home) .site-header .wrap { gap:8px; padding-inline:12px; }
 body:has(.ft-home) .site-header .brand { font-size:15px; gap:7px; flex-shrink:0; }
 body:has(.ft-home) .site-header .brand-mark { width:36px; height:auto; }
 body:has(.ft-home) .site-header .header-tools { gap:4px; min-width:0; }
 body:has(.ft-home) .site-header .nav-cta { font-size:12px; padding-inline:9px; }
 body:has(.ft-home) .site-header .nav-toggle { width:34px; flex-shrink:0; }
 body:has(.ft-home) .site-header .ft-language-switch { min-width:34px; padding-inline:7px; }
 body:has(.ft-home) .site-header .nav-login.is-logged-in { max-width:78px; padding-inline:5px; }
}

@media (prefers-reduced-motion:reduce) { html:has(.ft-home) { scroll-behavior:auto; } }
