/* KBP design system v1 — 2026-10-16. Loads last on every page. See KBP_DESIGN_SYSTEM.md */
:root{--ff-display:'Spectral',Georgia,serif!important;--ff-body:'Mulish',Arial,sans-serif!important;--ff-label:'Mulish',Arial,sans-serif!important;--linen:#E9DFC7}
body{font-family:var(--ff-body)!important}
h1,h2,h3,h4,h5,.hero-headline,.coach-quote{font-family:var(--ff-display)!important;letter-spacing:-.01em}
h1,h2{font-weight:600}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}

/* ---------- home hero: Aaron + Mary ---------- */
.kb-hero{background:var(--navy);color:#fff;padding:8.5rem 16px 4rem;overflow:hidden}
.kb-hero-in{max-width:1100px;margin:0 auto;display:grid;gap:2rem;align-items:center}
.kb-hero-photo{margin:0;position:relative}
.kb-hero-photo img{width:100%;height:auto;aspect-ratio:1280/820;object-fit:cover;border-radius:4px;box-shadow:0 30px 60px -25px rgba(0,0,0,.7)}
.kb-hero-photo figcaption{font-size:.9rem;color:var(--linen);margin-top:.6rem}
.kb-hero h1{color:#fff;font-size:clamp(2.2rem,6.4vw,3.3rem);line-height:1.08;font-weight:600;margin-bottom:1rem}
.kb-hero h1 span{display:block;font-style:italic;color:var(--linen);font-weight:500}
.kb-hero p{font-size:clamp(1.05rem,2.6vw,1.2rem);color:rgba(255,255,255,.88);max-width:34em;margin-bottom:1.6rem;line-height:1.6}
.kb-hero .hero-actions{justify-content:flex-start}
@media(min-width:900px){.kb-hero{padding:10rem 5% 5.5rem}.kb-hero-in{grid-template-columns:1.05fr 1fr;gap:4rem}.kb-hero-copy{order:1}.kb-hero-photo{order:2}}
@media(max-width:899px){.kb-hero .hero-actions{max-width:none}}

/* ---------- signature: the restoration thread ---------- */
.kb-story{background:var(--navy-dk);color:var(--linen);padding:4rem 16px}
@media(min-width:900px){.kb-story{padding:6rem 5%}}
.kb-story-in{max-width:760px;margin:0 auto}
.kb-story h2{color:#fff;font-size:clamp(1.8rem,4.5vw,2.6rem);line-height:1.15;margin-bottom:.75rem}
.kb-story-in>p{color:rgba(233,223,199,.85);font-size:1.1rem;margin-bottom:2.5rem;max-width:36em}
.kb-thread{position:relative;list-style:none;margin:0;padding:0 0 0 88px}
.kb-thread::before{content:"";position:absolute;left:43px;top:8px;bottom:8px;width:2px;background:var(--gold)}
.kb-thread.js::before{display:none}
.kb-thread svg{position:absolute;left:0;top:0;width:88px;height:100%;overflow:visible;pointer-events:none}
.kb-thread svg path{fill:none;stroke-width:3;stroke-linecap:round}
.kb-thread svg .ta{stroke:var(--gold)}
.kb-thread svg .tb{stroke:var(--linen)}
.kb-thread svg circle{fill:var(--navy-dk);stroke:var(--gold);stroke-width:3}
.kb-thread li{position:relative;padding:0 0 2.6rem}
.kb-thread li:last-child{padding-bottom:0}
.kb-thread h3{color:#fff;font-size:clamp(1.3rem,3.4vw,1.65rem);line-height:1.2;margin-bottom:.4rem}
.kb-thread p{margin:0;color:rgba(233,223,199,.9);font-size:1.05rem;line-height:1.65;max-width:32em}
.kb-thread .dot{position:absolute;left:-88px;top:.35rem;width:88px;height:1px}
.kb-thread li.split h3,.kb-thread li.joined h3{color:var(--gold)}
.kb-story .hero-actions{justify-content:flex-start;margin-top:2.5rem}
@media(min-width:900px){.kb-hero{padding-top:11.5rem}.kb-hero .hero-actions{flex-direction:row;flex-wrap:wrap;max-width:none;align-items:center;margin:0}}
