/* Brenten Blakeman, cost segregation. Direction A (light, traditional). */
:root{
  --navy:#0B1F44; --navy-2:#163470; --ink:#06122A; --blue:#2B5BA8; --sky:#9CC3FF; --ice:#DCE8FF;
  --text:#0B1F44; --body:#3C4A63; --label:#26324A; --muted:#5A6780; --faint:#8A95A8;
  --on-dark:#C3CEE0; --on-dark-2:#8E9BB3;
  --bg:#FFFFFF; --bg-2:#F4F6FA; --line:#E3E8F0; --field:#C9D2E1;
  --display:'Inter Tight',Inter,system-ui,sans-serif; --sans:Inter,system-ui,-apple-system,sans-serif;
  --r:8px; --r-sm:6px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{display:block;max-width:100%}
a{color:var(--navy)}a:hover{color:var(--blue)}
h1,h2,h3{font-family:var(--display);font-weight:600;margin:0;letter-spacing:-0.03em;text-wrap:balance}
p{margin:0}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:16px;top:-60px;z-index:100;background:var(--navy);color:#fff;padding:12px 18px;border-radius:var(--r-sm);text-decoration:none;font-weight:600}
.skip:focus{top:12px;color:#fff}
.wrap{max-width:1240px;margin:0 auto;padding:0 40px}
.sec{padding:112px 0}
.sec--tight{padding:104px 0}
.alt{background:var(--bg-2)}
.dark{background:var(--navy);color:#fff}
.eyebrow{font-size:13px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--blue)}
.dark .eyebrow{color:var(--sky)}
.h1{font-size:clamp(42px,5.2vw,62px);line-height:1.04;letter-spacing:-0.035em}
.h2{font-size:clamp(32px,3.6vw,44px);line-height:1.08}
.lede{font-size:19px;color:var(--body);max-width:560px}
.copy{font-size:17px;color:var(--body)}
.dark .copy{color:var(--on-dark)}
.stack{display:flex;flex-direction:column;gap:20px}
.head{display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;align-items:flex-end}
.head__t{display:flex;flex-direction:column;gap:14px;max-width:640px}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 26px;border-radius:var(--r-sm);font:600 15px/1 var(--sans);text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background .18s,color .18s,border-color .18s,transform .18s}
.btn:active{transform:translateY(1px)}
.btn--navy{background:var(--navy);color:#fff}.btn--navy:hover{background:var(--navy-2);color:#fff}
.btn--line{border-color:var(--navy);color:var(--navy);padding:0 24px}.btn--line:hover{background:var(--navy);color:#fff}
.btn--white{background:#fff;color:var(--navy)}.btn--white:hover{background:var(--ice);color:var(--navy)}
.btn--ghost{border-color:rgba(255,255,255,.4);color:#fff}.btn--ghost:hover{background:#fff;color:var(--navy)}
.btn[disabled]{opacity:.6;cursor:progress}
.btns{display:flex;flex-wrap:wrap;gap:14px}
.more{font-weight:600;font-size:15px;color:var(--navy);text-decoration:none;display:inline-flex;gap:8px;align-items:center;min-height:44px}
.more svg{transition:transform .2s}.more:hover{color:var(--blue)}.more:hover svg{transform:translateX(3px)}
.tick{display:inline-flex;gap:8px;align-items:center}
.tick svg{flex:none;color:var(--blue)}

/* Top bar + header */
.topbar{background:var(--ink);color:var(--on-dark);font-size:13px}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;min-height:40px;gap:16px}
.topbar a{color:var(--on-dark);text-decoration:none}.topbar a:hover{color:#fff}
.topbar__r{display:flex;gap:24px;align-items:center}
.topbar__r a:first-child{color:#fff}
.hdr{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line);transition:box-shadow .2s}
.hdr.is-scrolled{box-shadow:0 6px 24px rgba(6,18,42,.07)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:84px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.brand__mark{width:44px;height:44px;border-radius:var(--r-sm);background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font:700 17px/1 var(--display);letter-spacing:.02em}
.brand__txt{display:flex;flex-direction:column;line-height:1.15}
.brand__name{font:700 19px/1.15 var(--display);color:var(--navy);letter-spacing:-0.01em}
.brand__sub{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.nav{display:flex;gap:30px;align-items:center}
.nav a{color:var(--label);text-decoration:none;font-size:15px;font-weight:500;min-height:44px;display:inline-flex;align-items:center;position:relative}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:8px;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .2s}
.nav a:hover,.nav a[aria-current="true"]{color:var(--navy)}
.nav a:hover::after,.nav a[aria-current="true"]::after{transform:scaleX(1)}
.hdr__cta{min-height:46px}
.menu-btn{display:none;width:48px;height:48px;border-radius:var(--r-sm);border:1px solid var(--line);background:#fff;color:var(--navy);align-items:center;justify-content:center;cursor:pointer}
.drawer{display:none}

/* Hero */
.hero{background:var(--bg-2);border-bottom:1px solid var(--line);overflow:hidden}
.hero .wrap{display:flex;flex-wrap:wrap;gap:64px;align-items:stretch}
.hero__copy{flex:999 1 520px;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:26px;padding:104px 0}
.hero__ticks{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:10px;font-size:14px;color:var(--body)}
.hero__media{flex:1 1 380px;min-width:0;display:flex;align-items:flex-end;padding-top:56px}
.hero__frame{position:relative;width:100%}
.hero__frame picture{display:block}
.hero__frame img{width:100%;height:auto;aspect-ratio:5/6;object-fit:cover;object-position:50% 12%;border-radius:var(--r) var(--r) 0 0;filter:grayscale(1) contrast(1.04)}
.badge{position:absolute;left:-32px;bottom:40px;background:var(--navy);color:#fff;border-radius:var(--r);padding:20px 24px;display:flex;flex-direction:column;gap:2px;box-shadow:0 20px 40px rgba(6,18,42,.25)}
.badge b{font:600 24px/1.15 var(--display);letter-spacing:-0.02em}
.badge span{font-size:13px;color:var(--on-dark)}

/* Proof strip */
.proof{border-bottom:1px solid var(--line)}
.proof .wrap{display:flex;flex-wrap:wrap;gap:20px 48px;align-items:center;justify-content:space-between;padding-top:32px;padding-bottom:32px}
.proof__label{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
.proof__logos{display:flex;flex-wrap:wrap;gap:16px 40px;align-items:center;font:600 17px var(--display);color:var(--faint)}

/* Split */
.split{display:flex;flex-wrap:wrap;gap:72px;align-items:center}
.split > *{flex:1 1 440px;min-width:0}

/* Depreciation chart */
.chart{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r);padding:32px;display:flex;flex-direction:column;gap:22px}
.chart__top{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:baseline}
.chart__title{font:600 18px var(--display);letter-spacing:-0.01em}
.chart__note{font-size:12px;color:var(--muted)}
.bars{display:flex;flex-direction:column;gap:18px}
.bar{display:grid;grid-template-columns:150px 1fr;gap:16px;align-items:center}
.bar__label{font-size:14px;color:var(--label);line-height:1.3}
.bar__label small{display:block;color:var(--muted);font-size:12px}
.bar__track{height:44px;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;position:relative}
.bar__fill{height:100%;background:var(--faint);width:var(--w);display:flex;align-items:center;justify-content:flex-end;padding:0 12px;color:#fff;font:600 15px var(--display);white-space:nowrap;min-width:max-content;transform-origin:left;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.bar--cs .bar__fill{background:var(--navy)}
.js .chart:not(.is-in) .bar__fill{transform:scaleX(0)}
.chart__foot{font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding-top:16px}

/* Cards */
.grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.grid--3{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
.grid--4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:32px;display:flex;flex-direction:column;gap:14px;transition:border-color .2s,box-shadow .2s,transform .2s}
.card:hover{border-color:#C9D2E1;box-shadow:0 14px 34px rgba(6,18,42,.07);transform:translateY(-2px)}
.card h3{font-size:21px;letter-spacing:-0.02em}
.card p{font-size:15px;color:var(--body);flex:1}
.card svg.ico{color:var(--navy)}
.card--navy{background:var(--navy);border-color:var(--navy);color:#fff}
.card--navy p{color:var(--on-dark)}
.card--navy svg.ico{color:var(--sky)}
.card--navy .more{color:#fff}

/* Services */
.svc-grid{display:grid;grid-template-columns:minmax(0,1.35fr) repeat(3,minmax(0,1fr));grid-template-rows:auto auto;gap:16px}
.svc{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:clamp(16px,2.6vh,24px) 20px;display:flex;flex-direction:column;gap:8px}
.svc__top{display:flex;align-items:center;gap:10px}
.svc__top .ico{flex:none;width:22px;height:22px}
.svc h3{font-size:17px;letter-spacing:-0.02em;line-height:1.2}
.svc p{font-size:14px;color:var(--body);line-height:1.5;flex:1}
.svc .ico{color:var(--navy)}
.svc .more{font-size:14px;min-height:32px}
.svc--main{grid-row:1/3;padding:clamp(22px,3.6vh,32px);gap:clamp(8px,1.6vh,14px)}
.svc--main h3{font-size:clamp(22px,1.9vw,27px)}
.svc--main p{font-size:15.5px;flex:none}
.svc--main .btns{margin-top:auto;align-items:center}
.svc--navy{background:var(--navy);border-color:var(--navy);color:#fff}
.svc--navy p{color:var(--on-dark)}
.svc--navy .ico{color:var(--sky)}
.svc--navy .more{color:#fff}
@media (max-width:1100px){.svc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.svc--main{grid-row:auto;grid-column:1/-1}}
@media (max-width:600px){.svc-grid{grid-template-columns:1fr}}

/* Steps */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;counter-reset:s}
.step{border-top:2px solid var(--navy);padding-top:22px;display:flex;flex-direction:column;gap:10px}
.step__n{font:600 13px var(--sans);letter-spacing:.14em;color:var(--blue);text-transform:uppercase}
.step h3{font-size:21px;letter-spacing:-0.02em}
.step p{font-size:15px;color:var(--body)}

/* Quote band */
.band{text-align:center;display:flex;flex-direction:column;gap:28px;align-items:center}
.band blockquote{margin:0;max-width:880px;font:500 clamp(24px,2.6vw,32px)/1.3 var(--display);letter-spacing:-0.02em}
.band cite{font-style:normal;display:flex;flex-direction:column;gap:2px}
.band cite b{font-weight:600;font-size:16px}
.band cite span{font-size:14px;color:var(--on-dark)}

/* Case studies */
.case{text-decoration:none;color:var(--navy);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;background:#fff;transition:box-shadow .2s,transform .2s}
.case:hover{color:var(--navy);box-shadow:0 14px 34px rgba(6,18,42,.08);transform:translateY(-2px)}
.ph{background:linear-gradient(160deg,#6A707A,#23272E);display:flex;align-items:center;justify-content:center;color:#D5D9E0;font-size:13px;text-align:center;padding:24px}
.case .ph,.case__img{aspect-ratio:16/10}
.case__img{display:block;width:100%;height:auto;object-fit:cover;object-position:50% 38%}
.case__body{padding:28px;display:flex;flex-direction:column;gap:16px}
.tag{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
.nums{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;border-top:1px solid var(--line);padding-top:16px}
.nums div{display:flex;flex-direction:column}
.nums span{font-size:13px;color:var(--muted)}
.nums b{font:600 26px/1.2 var(--display);letter-spacing:-0.02em}
.nums b.hi{color:var(--blue)}

.grid--2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px}
.case--cta{background:var(--bg-2);justify-content:center}
.case--cta:hover{color:var(--navy)}
.case--cta h3{font-size:clamp(24px,2.4vw,30px);line-height:1.15}
.case--cta p{color:var(--body);font-size:16px}
.mini-steps{margin:0;padding:0;list-style:none;counter-reset:m;display:flex;flex-direction:column;gap:12px}
.mini-steps li{counter-increment:m;display:flex;gap:14px;font-size:15px;color:var(--on-dark);line-height:1.5}
.mini-steps li::before{content:counter(m);flex:none;width:26px;height:26px;border-radius:50%;border:1px solid var(--sky);color:var(--sky);font:600 13px/24px var(--sans);text-align:center}
.mini-steps b{color:#fff;font-weight:600}

/* About */
.checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px 28px;margin-top:4px}
.checks span{display:flex;gap:10px;font-size:15px;color:var(--label)}
.checks svg{flex:none;margin-top:2px;color:var(--blue)}
.listen{font-size:15px;color:var(--body)}
.listen a{font-weight:600}
.portrait{aspect-ratio:4/5;border-radius:var(--r)}
img.portrait{display:block;width:100%;height:auto;object-fit:cover}

.listen-card{flex:1 1 400px;min-width:0;background:var(--navy);color:#fff;border-radius:var(--r);padding:clamp(22px,3.6vh,36px);display:flex;flex-direction:column;gap:clamp(6px,1.1vh,10px)}
.listen-card .eyebrow{color:var(--sky)}
.listen-card__lead{color:var(--on-dark);font-size:15px;margin-bottom:4px}
.ep{display:flex;gap:14px;align-items:center;padding:clamp(8px,1.3vh,12px) 14px;border-radius:var(--r-sm);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:#fff;text-decoration:none;transition:background .2s,border-color .2s}
.ep:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.28);color:#fff}
.ep__play{flex:none;width:32px;height:32px;border-radius:50%;background:#fff;color:var(--navy);display:flex;align-items:center;justify-content:center}
.ep--recs .ep__play{background:var(--c5);color:#fff}
.ep__txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.ep__txt small{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--sky);font-weight:600}
.ep__txt b{font:600 15px/1.3 var(--display);letter-spacing:-0.01em}

/* CPA box */
.cpa{border:1px solid var(--line);border-radius:var(--r);padding:56px;display:flex;flex-wrap:wrap;gap:40px;align-items:center;justify-content:space-between;background:#fff;position:relative;overflow:hidden}
.cpa::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--navy)}
.cpa__t{flex:1 1 520px;display:flex;flex-direction:column;gap:14px}
.cpa h2{font-size:clamp(28px,3vw,36px);line-height:1.12}
.cpa__b{display:flex;flex-direction:column;gap:12px}

/* Testimonials */
.quote{margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:32px;display:flex;flex-direction:column;gap:20px}
.stars{display:flex;gap:3px;color:var(--navy)}
.quote blockquote{margin:0;font-size:17px;line-height:1.6;color:var(--label);flex:1}
.quote figcaption{font-size:14px;color:var(--muted)}
.quote figcaption strong{color:var(--navy)}

.quotes{gap:20px}
.quotes .quote{gap:14px;justify-content:space-between}
.quotes blockquote{font-size:16px}

/* FAQ */
.faq{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:72px;align-items:start}
.faq__list{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;align-items:center;padding:22px 0;font:600 18px/1.35 var(--display);letter-spacing:-0.01em;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary svg{flex:none;transition:transform .2s;color:var(--blue)}
.faq details[open] summary svg{transform:rotate(45deg)}
.faq details p{padding:0 0 24px;font-size:16px;color:var(--body);max-width:680px}

/* Learn */
.vid{text-decoration:none;color:var(--navy);display:flex;flex-direction:column;gap:12px}
.vid__tile{position:relative;aspect-ratio:4/5;border-radius:var(--r);background:linear-gradient(170deg,#5A5F68,#15181E);display:flex;align-items:flex-end;padding:20px;overflow:hidden}
.vid__tile b{font:600 20px/1.2 var(--display);color:#fff;letter-spacing:-0.01em;position:relative}
.vid__play{position:absolute;top:18px;left:18px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;color:var(--navy);transition:transform .2s}
.vid:hover .vid__play{transform:scale(1.08)}
.vid > span{font-size:15px;font-weight:500}

/* Contact */
.contact{display:flex;flex-wrap:wrap;gap:64px;align-items:flex-start}
.contact__t{flex:1 1 360px;display:flex;flex-direction:column;gap:22px}
.contact__links{display:flex;flex-direction:column;gap:16px;border-top:1px solid rgba(255,255,255,.16);padding-top:24px;margin-top:6px}
.contact__links a{color:#fff;text-decoration:none;display:flex;gap:12px;align-items:center;font-size:17px;min-height:44px}
.contact__links a:hover{color:var(--sky)}
.contact__links svg{color:var(--sky)}
.form{flex:999 1 560px;min-width:0;background:#fff;color:var(--navy);border-radius:var(--r);padding:40px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.field{display:flex;flex-direction:column;gap:6px}
.field--full{grid-column:1/-1}
.field .err:empty{visibility:hidden}
.field label{font-size:13px;font-weight:600;color:var(--label)}
.field label .opt{font-weight:400;color:var(--muted)}
.field input,.field select,.field textarea{font:15px var(--sans);color:var(--navy);background:#fff;border:1px solid var(--field);border-radius:var(--r-sm);padding:12px 14px;min-height:48px;width:100%;transition:border-color .15s,box-shadow .15s}
.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235A6780' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px}
.field textarea{min-height:110px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(43,91,168,.18)}
.field [aria-invalid="true"]{border-color:#B42318}
.field .err{font-size:12.5px;line-height:18px;color:#B42318;min-height:18px;margin-top:-2px}
.form__foot{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
.form__fine{font-size:13px;color:var(--muted)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form__status{display:none;color:#B42318;font-weight:500}
.form__status a{color:#B42318}
.has-status .form__status{display:inline}
.has-status .fine-default{display:none}
.done{grid-column:1/-1;display:flex;flex-direction:column;gap:14px;align-items:flex-start;justify-content:center;padding:24px 0;height:100%}
.done h3{font-size:28px}
.done p{color:var(--body);font-size:16px;max-width:520px}
.done__ico{width:52px;height:52px;border-radius:50%;background:var(--ice);color:var(--navy);display:flex;align-items:center;justify-content:center}

/* Scroll story: a rental home, part by part */
:root{--c5:#D9762B;--c15:#2B5BA8;--cs:#C7CFDC;--cs-on:#7E8BA3}
.story{background:#fff;border-top:1px solid var(--line)}
.story__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:64px}
.story__stage{position:sticky;top:85px;height:calc(100svh - 85px);display:flex;flex-direction:column;justify-content:center;gap:18px}
.house{width:100%;height:auto;max-height:54svh;overflow:visible}
.house .earth{fill:#EEF1F6}
.house .room{fill:#FAF8F4}
.house .ground{stroke:#AEB8C8;stroke-width:2}
.house .f{fill:var(--cs);transition:fill .55s ease}
.house .ln{fill:none;stroke:rgba(11,31,68,.2);stroke-width:1.4;stroke-linecap:round}
.house .hole{fill:#2A3346}
.house .flame{fill:#F3B451;opacity:0;transition:opacity .55s ease}
.house .rip{fill:none;stroke:rgba(255,255,255,.75);stroke-width:2;stroke-linecap:round;opacity:0;transition:opacity .55s ease}
.house .deco.shrub circle{fill:#D7DED2}
.house .deco.win rect{fill:#E6EDF6;stroke:#B9C3D3;stroke-width:3}
.house .deco.win path{stroke:#B9C3D3;stroke-width:2.5}
.house .deco.tap path,.house .deco.ladder path{fill:none;stroke:#9AA6BA;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.house .lbl{opacity:0;transform-box:fill-box;transition:opacity .4s ease}
.house .lbl rect{fill:#fff;stroke:#DCE2EC}
.house .lbl text{font:600 13.5px Inter,sans-serif;fill:var(--navy)}
.house .lbl-5 circle{fill:var(--c5)}.house .lbl-15 circle{fill:var(--c15)}.house .lbl-s circle{fill:var(--cs-on)}
.on-5 .pt-5 .f{fill:var(--c5)}
.on-15 .pt-15 .f{fill:var(--c15)}
.on-15 .pt-15 .water{fill:#3D72C4}
.on-s .pt-s .f{fill:var(--cs-on)}
.on-5 .flame,.on-15 .rip{opacity:1}
.on-5 .lbl-5,.on-15 .lbl-15,.on-s .lbl-s{opacity:1}
.meter{display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--line);padding-top:16px}
.meter__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--muted)}
.meter__value{font:600 clamp(36px,4.6vw,56px)/1.05 var(--display);letter-spacing:-0.03em;color:var(--navy);font-variant-numeric:tabular-nums}
.meter__sub{font-size:14px;color:var(--body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.legend{display:flex;gap:18px;flex-wrap:wrap;font-size:13px;color:var(--label)}
.legend .k{display:inline-flex;align-items:center;gap:8px}
.legend .k::before{content:"";width:14px;height:14px;border-radius:3px}
.k-5::before{background:var(--c5)}.k-15::before{background:var(--c15)}.k-s::before{background:var(--cs-on)}
.story__steps{padding:18svh 0 22svh}
.beat{min-height:72svh;display:flex;flex-direction:column;justify-content:center;gap:16px}
.beat > *{transition:color .4s ease}
.beat:not(.is-on) h2,.beat:not(.is-on) h3,.beat:not(.is-on) .copy,.beat:not(.is-on) .step__n,.beat:not(.is-on) .eyebrow,.beat:not(.is-on) .story__note{color:#6B7590}
.beat h3{font-size:clamp(26px,2.6vw,34px);line-height:1.12}
.beat .btn{align-self:flex-start;margin-top:6px}
.story__note{font-size:13px;color:var(--muted);max-width:460px}
.js .story .rv{opacity:1;transform:none}

/* Case study browser */
.cnote{font-size:14px;color:var(--muted);max-width:500px}
.cnote b{color:var(--navy);font-weight:600}
.cases{display:grid;grid-template-columns:260px minmax(0,1fr);gap:28px;align-items:start}
.ctabs{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.ctab{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:1px;padding:9px 14px;border-bottom:1px solid var(--line);border-left:3px solid transparent;min-height:44px;justify-content:center}
.ctab span{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600}
.ctab b{font:600 15px/1.3 var(--display);color:var(--label)}
.ctab:hover b{color:var(--navy)}
.ctab[aria-selected="true"]{border-left-color:var(--c5);background:var(--bg-2)}
.ctab[aria-selected="true"] b{color:var(--navy)}
.ctab:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}
.cpanel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff}
.cpanels{display:grid}
.cpanel{grid-area:1/1;opacity:0;visibility:hidden;transition:opacity .6s ease,visibility 0s linear .6s}
.cpanel.is-on{opacity:1;visibility:visible;transition:opacity .6s ease}
.ctab{position:relative}

.cpanel img{width:100%;height:100%;min-height:100%;object-fit:cover;display:block}
.cpanel__body{padding:28px;display:flex;flex-direction:column;justify-content:center;gap:12px}
.cpanel h3{font-size:24px;line-height:1.15}
.cbig{font-size:15px;color:var(--body)}
.cbig b{display:block;font:600 clamp(32px,3.4vw,42px)/1.05 var(--display);letter-spacing:-0.03em;color:var(--c5)}
.cnums{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0}
.cnums div{display:flex;flex-direction:column}
.cnums span{font-size:12px;color:var(--muted);white-space:nowrap}
.cnums b{font:600 18px/1.25 var(--display)}
.cnums b.hi{color:var(--blue)}
.cbars__t{margin-top:clamp(4px,1vh,10px);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600}
.cbars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.cbars li{display:grid;grid-template-columns:130px minmax(0,1fr) auto;gap:10px;align-items:center;font-size:13px;color:var(--label)}
.cbars i{display:block;height:10px;border-radius:5px;background:linear-gradient(90deg,var(--navy) var(--w),#E9EDF4 var(--w))}
.cbars b{font-weight:600;font-size:13px;color:var(--navy)}

@media (max-width:900px){
  .story__grid{grid-template-columns:1fr;gap:0}
  .story__stage{top:68px;height:auto;z-index:2;background:#fff;padding:12px 0 10px;border-bottom:1px solid var(--line);gap:8px}
  .house{max-height:30svh}
  .meter{padding-top:8px}
  .meter__value{font-size:30px}
  .meter__sub,.legend{display:none}
  .story__steps{padding:8svh 0 12svh}
  .beat{min-height:62svh;opacity:1}
  .cases{grid-template-columns:1fr}
  .ctabs{flex-direction:row;overflow-x:auto;border-top:0;gap:8px;padding:0 0 4px;margin:0 -16px;position:relative;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent)}
  .ctabs::-webkit-scrollbar{display:none}
  .ctabs::before,.ctabs::after{content:"";flex:0 0 calc(50% - 68px)}
  .ctab{border:1px solid var(--line);border-radius:999px;padding:8px 14px;white-space:nowrap;min-height:44px}
  .ctab[aria-selected="true"]{border-color:var(--navy);background:var(--navy)}
  .ctab[aria-selected="true"] b,.ctab[aria-selected="true"] span{color:#fff}
  .cpanel{grid-template-columns:1fr}
  .cpanel img{aspect-ratio:4/3;height:auto;min-height:0}
  .cbars li{grid-template-columns:110px minmax(0,1fr) auto}
}
@media (prefers-reduced-motion:reduce){
  .beat{opacity:1}
}

/* Footer */
.foot{background:var(--ink);color:var(--on-dark)}
.foot .wrap{padding-top:64px;padding-bottom:40px;display:flex;flex-direction:column;gap:44px}
.foot__top{display:flex;flex-wrap:wrap;gap:48px;justify-content:space-between}
.foot__brand{display:flex;flex-direction:column;gap:12px;max-width:340px;font-size:14px}
.foot__brand b{font:700 20px var(--display);color:#fff}
.foot__cols{display:flex;flex-wrap:wrap;gap:56px;font-size:14px}
.foot__cols div{display:flex;flex-direction:column;gap:10px}
.foot__cols span{color:var(--on-dark-2);text-transform:uppercase;letter-spacing:.12em;font-size:12px}
.foot__cols a{color:#fff;text-decoration:none}.foot__cols a:hover{color:var(--sky)}
.foot__legal{font-size:12px;color:#7C89A2;border-top:1px solid rgba(255,255,255,.08);padding-top:24px}

/* Mobile sticky CTA */
.mcta{display:none}

/* Reveal */
.js .rv{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.js .rv.is-in{opacity:1;transform:none}

@media (max-width:1060px){
  .nav{gap:22px}
}
@media (max-width:900px){
  .wrap{padding:0 16px}
  .sec,.sec--tight{padding:72px 0}
  .nav,.topbar__r,.hdr__cta{display:none}
  .menu-btn{display:inline-flex}
  .hdr .wrap{min-height:68px}
  .drawer{display:block;position:fixed;inset:68px 0 0;background:#fff;z-index:49;padding:16px 16px 32px;border-top:1px solid var(--line);overflow:auto;transform:translateY(-8px);opacity:0;visibility:hidden;transition:opacity .2s,transform .2s,visibility 0s .2s}
  .drawer.is-open{opacity:1;transform:none;visibility:visible;transition:opacity .2s,transform .2s}
  .drawer nav{display:flex;flex-direction:column}
  .drawer nav a{display:flex;align-items:center;min-height:56px;border-bottom:1px solid var(--line);color:var(--navy);text-decoration:none;font:600 20px var(--display)}
  .drawer .btns{margin-top:24px;flex-direction:column}
  .drawer .btn{width:100%}
  .hero .wrap{gap:0}
  .hero__copy{padding:56px 0 24px}
  .hero__media{padding-top:24px}
  .badge{left:12px;bottom:16px;padding:14px 18px}
  .badge b{font-size:24px}
  .split,.contact{gap:44px}
  .faq{grid-template-columns:1fr;gap:28px}
  .cpa{padding:32px 24px}
  .form{padding:24px}
  .bar{grid-template-columns:1fr;gap:8px}
  .mcta{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;gap:10px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-top:1px solid var(--line);transform:translateY(110%);transition:transform .25s}
  .mcta.is-on{transform:none}
  .mcta .btn{flex:1;min-height:48px;padding:0 12px}
  .foot{padding-bottom:72px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none !important;animation:none !important}
  .js .rv{opacity:1;transform:none}
  .js .chart:not(.is-in) .bar__fill{transform:none}
}

/* One screen per section on desktop: nav clicks land on a full, uncut section. */
@media (min-width:901px) and (min-height:560px){
  html{scroll-padding-top:85px}
  .hero{min-height:calc(100svh - 125px);display:flex}
  .hero .wrap{width:100%}
  .hero__copy{padding:clamp(28px,6vh,104px) 0;gap:clamp(14px,2.6vh,26px)}
  .hero .h1{font-size:clamp(40px,min(5.2vw,7.4vh),62px)}
  .hero .lede{font-size:clamp(16px,2.4vh,19px)}
  .hero__media{padding-top:clamp(20px,5vh,56px)}
  .hero__media{flex:0 1 auto}
  .hero__frame{width:min(520px,40vw,calc((100svh - 125px - clamp(20px,5vh,56px)) * 5 / 6));margin-left:auto}
  main > section:not(.hero):not(.proof):not(.story){min-height:calc(100svh - 85px);display:flex;flex-direction:column;justify-content:center}
  .cases{grid-template-columns:300px minmax(0,1fr);align-items:stretch;height:clamp(350px,calc(100svh - 85px - 255px),480px)}
  .ctabs{display:grid;grid-template-rows:repeat(10,minmax(0,1fr));height:100%;border-bottom:0}
  .ctab{padding:0 16px;min-height:0}
  .ctab span{display:none}
  .ctab b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cpanels,.cpanel{height:100%}
  .cpanel__body{padding:clamp(18px,3vh,30px) clamp(20px,2.4vw,32px);gap:clamp(6px,1.3vh,12px);overflow:hidden}
  main > section > .wrap{width:100%}
  .sec,.sec--tight{padding:clamp(36px,7vh,112px) 0}
  .stack[style*="gap:48px"],.stack[style*="gap:44px"]{gap:clamp(24px,4.5vh,48px) !important}
  .h2{font-size:clamp(30px,min(3.6vw,5.4vh),44px)}
  .card,.quote{padding:clamp(22px,3.6vh,32px)}
  .case .ph,.case__img{aspect-ratio:auto;height:clamp(120px,22vh,230px)}
  .case__body{padding:clamp(18px,3vh,28px);gap:clamp(10px,1.8vh,16px)}
  .portrait{aspect-ratio:auto;height:min(calc(100svh - 85px - 14vh),560px)}
  img.portrait{height:min(calc(100svh - 85px - 14vh),560px)}
  .faq summary{padding:clamp(9px,1.7vh,20px) 0;font-size:17px}
  .faq details p{font-size:15.5px;line-height:1.55;padding-bottom:clamp(12px,2vh,22px)}
  #faq{padding:clamp(28px,5vh,112px) 0}
  .band{gap:clamp(16px,3.4vh,28px)}
  .cpa{padding:clamp(32px,6vh,56px)}
  .form{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:clamp(10px,1.8vh,18px);padding:clamp(22px,4vh,40px)}
  .field input,.field select{min-height:clamp(40px,5.6vh,48px);padding-top:8px;padding-bottom:8px}
  .field textarea{min-height:clamp(64px,10vh,110px)}
  .contact__t{gap:clamp(14px,2.6vh,22px)}
  .quotes{gap:clamp(12px,2vh,20px)}
  .quotes .quote{padding:clamp(16px,2.6vh,28px)}
  .quotes blockquote{font-size:clamp(14px,2vh,16px);line-height:1.5}
  #contact,#reviews{padding:clamp(28px,5vh,112px) 0}
  .field--addr{grid-column:auto}
  .contact__links{flex-direction:row;flex-wrap:wrap;gap:4px 24px;padding-top:16px;margin-top:0}
  .contact__links a{font-size:15px;min-height:40px}
  .mini-steps{gap:8px}
  .contact .copy{font-size:16px}
}

/* Mobile polish */
@media (max-width:900px){
  .topbar{display:none}
  .drawer{inset:68px 0 0}
  .story__stage{padding:4px 0 10px}
  .story__stage::after{content:"";position:absolute;left:0;right:0;top:100%;height:28px;background:linear-gradient(#fff,rgba(255,255,255,0));pointer-events:none}
  .house{max-height:28svh}
  .house .lbl{display:none}
  .meter__label{font-size:11.5px}
  .cbars li{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"n v" "b b";row-gap:4px}
  .cbars li span{grid-area:n}
  .cbars li b{grid-area:v}
  .cbars li i{grid-area:b}
  .ctab span,.ep__txt small{font-size:12px}
  .foot__cols a{display:inline-flex;align-items:center;min-height:40px}
  .foot__cols div{gap:0}
  .foot__cols span{margin-bottom:4px}
  .quotes{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin:0 -16px;padding:0 16px 8px;scrollbar-width:none}
  .quotes::-webkit-scrollbar{display:none}
  .quotes .quote{flex:0 0 86%;scroll-snap-align:center}
}
@media (max-width:600px){
  .cnums{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:10px}
  .cnums div:first-child{grid-column:1/-1}
  .btns{flex-direction:column;align-items:stretch}
  .btns .btn,.head .btn{width:100%}
}
