/* ============================================================
   Home page styles (mobile-first, desktop at 768px+)
   ============================================================ */

/* ---------- hero ---------- */
.home-hero{padding:40px 20px 36px;border-bottom:1px solid var(--line)}
.home-hero .fs-label{display:block;margin-bottom:22px}
.home-hero h1{font:800 66px/.9 var(--arch);letter-spacing:-.03em;margin:0 0 26px;text-transform:uppercase;font-size:min(66px,17vw)}
.home-hero h1 > span{display:block;overflow:hidden}
.home-hero-row p{font:400 17px/1.5 var(--arch);color:var(--body);margin:0 0 26px}
.home-hero-ctas{display:flex;flex-direction:column;gap:10px}
@media (min-width:768px){
  .home-hero{padding:60px 40px 52px}
  .home-hero .fs-label{margin-bottom:24px}
  .home-hero h1{font-size:100px;line-height:.94;margin-bottom:0}
  .home-hero-row{display:flex;justify-content:space-between;align-items:flex-end;margin-top:36px;gap:48px;flex-wrap:wrap}
  .home-hero-row p{font-size:21px;margin:0;max-width:620px}
  .home-hero-ctas{flex-direction:row;gap:12px;flex-wrap:wrap;flex:none}
  .home-hero-ctas .btn{white-space:nowrap}
}

/* ---------- proof-stat grid ---------- */
.home-proof{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}
.home-proof > div{padding:22px 18px}
.home-proof > div:nth-child(odd){border-right:1px solid var(--line)}
.home-proof > div:nth-child(-n+4){border-bottom:1px solid var(--line)}
.home-proof-note{display:flex;align-items:center;justify-content:center;color:var(--faint);font:600 10px/1.4 var(--mono);text-transform:uppercase;letter-spacing:.1em}
@media (min-width:768px){
  .home-proof{grid-template-columns:repeat(5,1fr)}
  .home-proof > div{padding:30px 22px;border-right:none !important;border-bottom:none !important}
  .home-proof > div:nth-child(-n+4){border-right:1px solid var(--line) !important}
}

/* ---------- three doors ---------- */
.home-doors-head{padding:40px 20px 20px}
.home-doors{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.fs-door{display:flex;flex-direction:column;padding:26px 20px;cursor:pointer;transition:background .2s}
.fs-door + .fs-door{border-top:1px solid var(--line)}
.fs-door-num{font:600 11px/1 var(--mono);color:var(--muted)}
.fs-door h3{font:700 27px/1.05 var(--narrow);letter-spacing:-.01em;margin:12px 0 12px;text-transform:uppercase}
.fs-door p{font:400 14px/1.55 var(--arch);color:var(--body-2);margin:0 0 18px}
.fs-door-foot{margin-top:auto;border-top:1px solid var(--line);padding-top:14px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.fs-door-foot .fs-door-note{font:500 11px/1.3 var(--mono);color:var(--muted)}
.fs-door-foot .fs-door-more{font:600 12px/1 var(--mono);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
@media (min-width:768px){
  .home-doors-head{padding:52px 40px 24px}
  .home-doors{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:none}
  .fs-door{padding:34px 30px 30px}
  .fs-door + .fs-door{border-top:none;border-left:1px solid var(--line)}
  .fs-door:hover{background:var(--tint-2)}
  .fs-door-num{font-size:12px}
  .fs-door h3{font-size:30px;margin:16px 0 14px}
  .fs-door p{margin-bottom:22px}
  .fs-door-foot{padding-top:16px}
  .fs-door-foot .fs-door-note{max-width:180px}
}

/* ---------- floating door preview (desktop only) ---------- */
#fs-door-preview{position:fixed;top:0;left:0;z-index:90;width:200px;pointer-events:none;opacity:0;transform:translateY(8px) scale(.98);transition:opacity .18s ease,transform .18s ease;filter:drop-shadow(0 18px 40px rgba(0,0,0,.28))}
#fs-door-preview .fs-pv-chrome{border:1px solid var(--ink);background:var(--paper);overflow:hidden}
#fs-door-preview .fs-pv-bar{display:flex;align-items:center;gap:6px;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--tint-2)}
#fs-door-preview .fs-pv-dot{width:8px;height:8px;border-radius:50%;display:block}
#fs-door-preview .fs-pv-url{margin-left:8px;font:500 10px/1 var(--mono);color:var(--muted);letter-spacing:.02em}
#fs-door-preview .fs-pv-view{position:relative;width:200px;height:150px;overflow:hidden;background:var(--tint-2)}
#fs-door-preview .fs-pv-frame{position:absolute;top:0;left:0;width:1280px;height:960px;border:0;transform:scale(.15625);transform-origin:top left;opacity:0;transition:opacity .2s ease;pointer-events:none}
#fs-door-preview .fs-pv-caption{margin-top:8px;font:600 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-align:center}

/* ---------- positioning statement ---------- */
.home-pos{padding:52px 20px}
.home-pos p{font:500 30px/1.2 var(--arch);letter-spacing:-.02em;margin:0}
.home-pos p span{color:var(--muted)}
@media (min-width:768px){
  .home-pos{border-top:1px solid var(--line);padding:80px 40px}
  .home-pos p{font-size:46px;line-height:1.15;max-width:960px}
}

/* ---------- operating model ---------- */
#fs-system{border-top:1px solid var(--line);padding:44px 20px 48px;scroll-margin-top:64px}
.home-sys-intro{margin-bottom:30px}
.home-sys-intro .fs-label{display:block;margin-bottom:14px}
.home-sys-intro p{font:400 17px/1.5 var(--arch);color:var(--body);margin:0}
@media (min-width:768px){
  #fs-system{padding:56px 40px 60px;scroll-margin-top:80px}
  .home-sys-intro{max-width:760px;margin-bottom:38px}
  .home-sys-intro .fs-label{margin-bottom:16px}
  .home-sys-intro p{font-size:19px}
}

/* practices bar (mobile) */
.home-practices-m{border:1px solid var(--ink);background:var(--ink);color:var(--paper);padding:18px 16px;display:flex;align-items:center;justify-content:center;gap:14px;font:700 16px/1.1 var(--narrow);text-transform:uppercase;letter-spacing:.01em}
.home-practices-m .sep{color:var(--dark-label)}

/* practices grid (desktop) */
.home-practices-d{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--ink);background:var(--ink)}
.home-practices-d > div{background:var(--ink);color:var(--paper);padding:22px}
.home-practices-d > div + div{border-left:1px solid var(--phone-line)}
.home-practices-d .p-num{font:600 10px/1 var(--mono);letter-spacing:.08em;color:var(--muted);margin-bottom:12px}
.home-practices-d .p-name{font:700 18px/1.05 var(--narrow);text-transform:uppercase;letter-spacing:-.01em}

/* "all practices draw on" rule */
.home-drawon{display:flex;align-items:center;gap:12px;padding:16px 0 14px}
.home-drawon span:first-child{font:600 10px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.home-drawon .rule{flex:1;height:1px;background:var(--line)}
@media (min-width:768px){
  .home-drawon{gap:14px;padding:18px 2px 16px}
  .home-drawon span:first-child{font-size:11px}
}

/* shared infrastructure layers L1–L5 */
.home-layers{border:1px solid var(--line)}
.home-layer{display:grid;grid-template-columns:1fr auto;grid-template-areas:"num val" "body body";align-items:baseline;column-gap:12px;padding:18px 20px;border-bottom:1px solid var(--line)}
.home-layer:last-child{border-bottom:none}
.home-layer .l-num{grid-area:num;font:600 11px/1 var(--mono);color:var(--faint)}
.home-layer .l-val{grid-area:val;font:700 18px/1 var(--arch);letter-spacing:-.02em;text-align:right}
.home-layer .l-val-sm{font-size:16px}
.home-layer .l-body{grid-area:body;margin-top:8px}
.home-layer .l-title{font:700 17px/1.1 var(--arch);letter-spacing:-.01em}
.home-layer .l-desc{font:400 13px/1.5 var(--arch);color:var(--body-2);margin:4px 0 0}
@media (min-width:768px){
  .home-layer{grid-template-columns:56px 1fr auto;grid-template-areas:"num body val";align-items:center;column-gap:20px;padding:22px 24px}
  .home-layer .l-num{font-size:12px}
  .home-layer .l-val{font-size:22px;white-space:nowrap}
  .home-layer .l-val-sm{font-size:22px}
  .home-layer .l-body{margin-top:0}
  .home-layer .l-title{font-size:18px}
}

/* ---------- engagement model ---------- */
.home-eng{border-top:1px solid var(--line);padding:44px 20px 40px}
.home-eng-intro{margin-bottom:28px}
.home-eng-intro .fs-label{display:block;margin-bottom:14px}
.home-eng-intro p{font:400 17px/1.5 var(--arch);color:var(--body);margin:0}
.home-eng-grid{border:1px solid var(--line);display:flex;flex-direction:column;gap:1px;background:var(--line)}
.home-eng-card{background:var(--paper);padding:24px 20px}
.home-eng-card .e-num{font:600 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.home-eng-card h4{font:700 23px/1.05 var(--arch);text-transform:uppercase;letter-spacing:-.01em;margin:0 0 9px}
.home-eng-card p{font:400 14px/1.55 var(--arch);color:var(--body-2);margin:0}
.home-eng-panel{border:1px solid var(--line);border-top:none;padding:22px 20px;background:var(--tint-1);display:flex;flex-direction:column;gap:18px}
.home-eng-panel .a-label{font:600 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.home-eng-panel .a-value{font:600 15px/1.3 var(--arch);color:var(--ink)}
@media (min-width:768px){
  .home-eng{padding:56px 40px 44px}
  .home-eng-intro{max-width:760px;margin-bottom:34px}
  .home-eng-intro .fs-label{margin-bottom:16px}
  .home-eng-intro p{font-size:19px}
  .home-eng-grid{display:grid;grid-template-columns:repeat(3,1fr)}
  .home-eng-card{padding:28px 26px}
  .home-eng-card .e-num{margin-bottom:16px}
  .home-eng-card h4{font-size:24px;margin-bottom:10px}
  .home-eng-panel{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;padding:24px 26px}
  .home-eng-panel .a-label{margin-bottom:8px}
  .home-eng-panel .a-value{font-size:14px}
}
