@font-face {
  font-family: "IBM Plex Sans";
  src: url("/assets/fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "IBM Plex Sans";
  src: url("/assets/fonts/ibm-plex-sans-latin-600-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: "IBM Plex Sans";
  src: url("/assets/fonts/ibm-plex-sans-latin-700-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 700 900;
  font-display: swap;
}

@font-face {
  font-family: "IBM Plex Mono";
  src: url("/assets/fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
}

@font-face {
  font-family: "IBM Plex Mono";
  src: url("/assets/fonts/ibm-plex-mono-latin-700-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 700 900;
  font-display: swap;
}
:root{--ink:#102530;--muted:#536974;--canvas:#f2f5f3;--paper:#fffdf8;--line:#cbd6d8;--navy:#071d2a;--navy2:#12394a;--cyan:#00b8d5;--cyan-dark:#00697d;--cyan-soft:#e5f8fb;--amber:#e7a23a;--amber-soft:#fff1d6;--copper:#965024;--positive:#176951;--negative:#a33d36;--focus:#008db1;--shadow:0 10px 30px rgb(7 29 42 / 9%);font-family:"IBM Plex Sans",Arial,sans-serif;color:var(--ink);background:var(--canvas);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-size:17px;line-height:1.58;background:var(--canvas)}a{color:var(--cyan-dark);text-underline-offset:.2em}a:hover{text-decoration-thickness:2px}button,input{font:inherit}.shell{width:min(1180px,calc(100% - 32px));margin-inline:auto}.skip-link{position:fixed;top:8px;left:8px;z-index:99;padding:10px 14px;background:#fff;color:#000;transform:translateY(-150%)}.skip-link:focus{transform:none}.masthead{background:var(--navy);color:#fff;border-bottom:3px solid var(--cyan)}.masthead__inner{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-size:1.02rem}.brand__mark{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--cyan);color:var(--cyan);font-weight:800}.masthead nav{display:flex;gap:24px}.masthead nav a{color:#e8f2f4;text-decoration:none;font-size:.92rem}.hero-lab{padding:72px 0 52px;background:linear-gradient(120deg,var(--navy) 0 62%,var(--navy2) 62%);color:#fff}.hero-lab__grid{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(330px,.82fr);gap:64px;align-items:end}.eyebrow{margin:0 0 10px;color:var(--cyan-dark);font-size:.76rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.hero-lab .eyebrow{color:#71dcec}h1,h2,h3{margin:0 0 .55em;line-height:1.08;letter-spacing:-.035em}h1{max-width:760px;font-size:clamp(2.45rem,5.2vw,4.8rem)}h2{font-size:clamp(1.75rem,3vw,2.8rem)}h3{font-size:1.18rem}.lead{max-width:68ch;font-size:1.12rem;color:inherit}.byline{display:flex;align-items:center;gap:12px;margin-top:28px}.byline img{display:block;border-radius:50%;object-fit:cover}.byline p{display:grid;margin:0;line-height:1.25}.byline span,.byline small{font-size:.74rem;color:var(--muted)}.hero-lab .byline span,.hero-lab .byline small{color:#acc0c7}.byline a{font-weight:800;color:inherit}.consumption-panel{background:var(--paper);color:var(--ink);padding:28px;border-top:4px solid var(--amber);box-shadow:var(--shadow)}.consumption-panel label{display:block;font-weight:800}.input-unit{display:flex;align-items:center;border-bottom:2px solid var(--ink);margin:8px 0 18px}.input-unit input{min-width:0;width:100%;border:0;background:transparent;padding:6px 0;font:700 2.35rem/1 "IBM Plex Mono",ui-monospace,monospace;color:var(--ink)}.input-unit span{font:700 .9rem ui-monospace,monospace}.profile-links{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);margin-bottom:18px}.profile-links a{display:flex;justify-content:space-between;padding:9px;color:var(--ink);text-decoration:none;border:1px solid transparent;font-size:.82rem}.profile-links a:hover,.profile-links a:focus{background:var(--cyan-soft);border-color:var(--cyan)}.profile-links small{color:var(--muted)}button{width:100%;border:0;background:var(--amber);color:var(--navy);padding:13px 18px;font-weight:900;cursor:pointer}button:hover{background:#f1b34f}.comparison-section{padding:64px 0}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-bottom:24px}.section-heading h2{margin-bottom:0}.evidence-status{display:grid;text-align:right;border-right:3px solid var(--cyan);padding-right:14px}.evidence-status span,.evidence-status small{color:var(--muted)}.scope-note{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;padding:15px 0;border-block:1px solid var(--line);font-size:.86rem}.scope-note span{color:var(--muted)}.comparison-list{border-top:1px solid var(--ink)}.comparison-row{display:grid;grid-template-columns:54px minmax(170px,1.05fr) minmax(150px,.82fr) minmax(310px,1.6fr);gap:18px 22px;padding:28px 0;border-bottom:1px solid var(--line);align-items:start}.comparison-row__rank{display:grid;text-align:center}.comparison-row__rank span,.comparison-row__price>span,.runway span,.risk-grid span{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.comparison-row__rank strong{font:700 2rem/1 "IBM Plex Mono",ui-monospace,monospace}.comparison-row__rank small{font:.7rem ui-monospace,monospace;color:var(--muted)}.comparison-row__identity .eyebrow{margin-bottom:3px;color:var(--copper)}.comparison-row__identity h3{margin-bottom:4px}.comparison-row__identity p{margin:0;color:var(--muted);font-size:.82rem}.comparison-row__price{display:grid}.comparison-row__price strong{font:700 2.25rem/1.05 "IBM Plex Mono",ui-monospace,monospace}.comparison-row__price small{margin-top:7px;font-size:.76rem}.positive{color:var(--positive)}.negative{color:var(--negative)}.runway{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:10px}.runway div{display:grid}.runway b{font:700 .9rem/1.3 "IBM Plex Mono",ui-monospace,monospace}.runway small{font-size:.7rem;color:var(--muted)}.runway i{color:var(--cyan-dark);font-style:normal}.risk-grid{grid-column:2/4;display:flex;gap:34px}.risk-grid p{display:grid;margin:0}.risk-grid strong{font-size:.82rem}.downside{grid-column:4;margin:0;padding-left:13px;border-left:3px solid var(--amber);font-size:.82rem}.calculation{grid-column:2/-1;border-top:1px dashed var(--line);padding-top:12px}.calculation summary{cursor:pointer;font-weight:800;font-size:.85rem;color:var(--cyan-dark)}.calculation>div{max-width:760px;padding:12px 0}.calculation code,.formula code{font-family:"IBM Plex Mono",ui-monospace,monospace}.decision-section{padding:60px 0;background:var(--paper);border-block:1px solid var(--line)}.decision-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}.formula{align-self:center;padding:24px;border-left:4px solid var(--cyan);background:var(--cyan-soft)}.formula span{display:block;font-weight:800;font-size:.8rem;margin-bottom:8px}.formula code{font-size:1rem}.profile-page,.article-page{padding:72px 0;background:var(--paper)}.profile-grid{display:grid;grid-template-columns:minmax(260px,380px) 1fr;gap:64px;align-items:start}.profile-photo img{display:block;width:100%;height:auto}.profile-facts{border-block:1px solid var(--line);padding:18px 0}.profile-facts div{display:grid;grid-template-columns:150px 1fr;gap:20px}.profile-facts dt{color:var(--muted)}.profile-facts dd{margin:0;font-weight:800}.text-link{font-weight:800}.article-grid{display:grid;grid-template-columns:minmax(0,720px) minmax(240px,1fr);gap:72px}.article-page article h2{margin-top:1.5em}.article-page aside{padding-top:100px}.method-box{display:grid;margin-top:24px;padding:18px;border-left:4px solid var(--amber);background:var(--amber-soft)}.method-box small{color:var(--muted)}.site-footer{padding:42px 0;background:var(--navy);color:#dce8eb}.site-footer__grid{display:grid;grid-template-columns:1fr auto 1.2fr;gap:46px}.site-footer a{display:block;color:#dce8eb}.site-footer p{margin:.3em 0}.site-footer__note{font-size:.8rem;color:#acc0c7}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}@media(max-width:900px){.hero-lab__grid,.profile-grid,.article-grid,.decision-grid{grid-template-columns:1fr}.hero-lab{background:var(--navy)}.comparison-row{grid-template-columns:46px 1fr 1fr}.runway{grid-column:2/-1}.risk-grid{grid-column:2/-1}.downside{grid-column:2/-1}.article-page aside{padding-top:0}.site-footer__grid{grid-template-columns:1fr 1fr}.site-footer__note{grid-column:1/-1}}@media(max-width:620px){body{font-size:16px}.shell{width:min(100% - 22px,1180px)}.masthead__inner{min-height:62px}.brand{font-size:.88rem}.masthead nav a:not(:last-child){display:none}.hero-lab{padding:46px 0 34px}.hero-lab__grid{gap:32px}.consumption-panel{padding:20px}.section-heading{display:block}.evidence-status{text-align:left;border-right:0;border-left:3px solid var(--cyan);padding:6px 0 6px 12px;margin-top:18px}.scope-note{grid-template-columns:1fr}.comparison-section{padding:42px 0}.comparison-row{grid-template-columns:42px 1fr;padding:23px 0}.comparison-row__price{grid-column:2}.comparison-row__price strong{font-size:2rem}.runway{grid-column:2;grid-template-columns:1fr}.runway i{transform:rotate(90deg);justify-self:start}.risk-grid{grid-column:2;display:grid;gap:8px}.downside,.calculation{grid-column:1/-1}.decision-grid{gap:28px}.profile-facts div{grid-template-columns:1fr;gap:0;margin-bottom:10px}.site-footer__grid{grid-template-columns:1fr}.site-footer__note{grid-column:auto}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.review-hero,.tool-hero{padding:64px 0;background:var(--navy);color:#fff}.review-hero__grid{display:grid;grid-template-columns:1fr minmax(280px,360px);gap:64px;align-items:end}.review-hero .eyebrow,.tool-hero .eyebrow{color:#71dcec}.mini-profile{padding:22px;background:var(--paper);color:var(--ink);border-top:4px solid var(--amber)}.mini-profile label{font-weight:800}.review-body,.tool-body{padding:58px 0;background:var(--paper)}.review-verdict{padding:22px;border-left:4px solid var(--cyan);background:var(--cyan-soft)}.review-verdict>span,.review-metrics span,.risk-explainer span,.review-sticky span,.review-sticky small,.contract-results span,.contract-results small,.break-even span{display:block;color:var(--muted);font-size:.76rem}.review-verdict>strong{display:block;font-size:1.22rem}.review-metrics{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--line);margin:26px 0}.review-metrics div{padding:18px 12px}.review-metrics div+div{border-left:1px solid var(--line)}.review-metrics strong{font:700 1.55rem "IBM Plex Mono",ui-monospace,monospace}.fit-list{padding:0;list-style:none}.fit-list li{padding:12px 0;border-bottom:1px solid var(--line)}.risk-explainer{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}.risk-explainer div{padding:18px;background:var(--paper)}.risk-explainer p{margin:5px 0}.bad-news{margin:28px 0;padding:18px;border-left:4px solid var(--amber);background:var(--amber-soft)}.bad-news p{margin:.25em 0}.source-list{padding:0;list-style:none}.source-list li{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid var(--line)}.source-list span{color:var(--muted);font-size:.8rem}.review-sticky{position:sticky;top:24px;display:grid;padding:22px;border-top:4px solid var(--cyan);background:var(--canvas)}.review-sticky>strong{font:700 2.2rem "IBM Plex Mono",ui-monospace,monospace}.tool-grid{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);gap:48px}.calculator-form{border-top:4px solid var(--amber);background:var(--canvas);padding:24px}.calculator-form fieldset{border:0;border-bottom:1px solid var(--line);margin:0 0 18px;padding:0 0 14px}.calculator-form legend{font-weight:900;margin-bottom:8px}.calculator-form label{display:flex;justify-content:space-between;gap:18px;padding:7px 0}.calculator-form input{width:96px;border:1px solid var(--line);padding:6px;background:var(--paper);text-align:right}.calculator-result{padding:28px;border-left:4px solid var(--cyan)}.contract-results{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}.contract-results>div{display:grid;padding:22px;background:var(--paper)}.contract-results .winner{background:var(--cyan-soft)}.contract-results strong{font:700 2.2rem "IBM Plex Mono",ui-monospace,monospace}.result-sentence{font-size:1.08rem}.break-even{margin:24px 0;padding:18px;border-left:4px solid var(--amber);background:var(--amber-soft)}.break-even strong{display:block;font:700 1.8rem "IBM Plex Mono",ui-monospace,monospace}.calculator-result summary{cursor:pointer;font-weight:800;color:var(--cyan-dark)}@media(max-width:900px){.review-hero__grid,.tool-grid{grid-template-columns:1fr}.review-sticky{position:static}}@media(max-width:620px){.review-hero,.tool-hero{padding:44px 0}.review-metrics,.risk-explainer,.contract-results{grid-template-columns:1fr}.review-metrics div+div{border-left:0;border-top:1px solid var(--line)}.calculator-form label{display:grid}.source-list li{display:grid}.contract-results strong{font-size:1.85rem}}

.terms-list{display:grid;grid-template-columns:1fr 1fr;margin:0 0 24px;border-block:1px solid var(--line)}
.terms-list div{padding:14px 10px}
.terms-list dt{color:var(--muted);font-size:.76rem}
.terms-list dd{margin:2px 0 0;font-weight:800}
.review-runway{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:14px;margin:0 0 34px;padding:18px;background:var(--canvas);border-left:4px solid var(--cyan)}
.review-runway div{display:grid;min-width:0}
.review-runway span,.review-runway small{color:var(--muted);font-size:.72rem}
.review-runway strong{font-family:"IBM Plex Mono",ui-monospace,monospace}
.review-runway i{color:var(--cyan-dark);font-style:normal}
.review-body article h2{margin-top:1.35em}

@media(max-width:620px){
  .terms-list{grid-template-columns:1fr}
  .review-runway{grid-template-columns:1fr;gap:7px}
  .review-runway i{transform:rotate(90deg);justify-self:start}
}
.guide-hero,.guide-index-hero{padding:54px 0 62px;background:var(--navy);color:#fff}.guide-hero .eyebrow,.guide-index-hero .eyebrow{color:#71dcec}.guide-hero__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,380px);gap:64px;align-items:end}.guide-verdict{display:grid;padding:24px;border-top:4px solid var(--amber);background:var(--paper);color:var(--ink)}.guide-verdict span,.guide-verdict small{color:var(--muted);font-size:.75rem}.guide-verdict strong{margin:6px 0 18px;font-size:1.1rem}.guide-tool{padding:48px 0;background:var(--canvas);border-bottom:1px solid var(--line)}.tool-heading{display:flex;align-items:end;justify-content:space-between;gap:34px;margin-bottom:28px}.tool-heading h2{max-width:800px;margin:0}.guide-kwh{width:min(320px,100%);padding:18px;background:var(--paper);border-top:4px solid var(--amber)}.guide-kwh label{font-weight:800}.guide-kwh .input-unit input{font-size:1.65rem}.scenario-table{overflow:auto;border-top:2px solid var(--ink)}.scenario-table table{width:100%;border-collapse:collapse;background:var(--paper)}.scenario-table th,.scenario-table td{padding:16px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}.scenario-table thead th{font-size:.76rem;color:var(--muted)}.scenario-table th:first-child{text-align:left}.scenario-table tbody th{display:grid;grid-template-columns:28px 100px 1fr;align-items:center;gap:9px}.scenario-table tbody th img{width:auto;max-width:90px;max-height:28px;object-fit:contain;object-position:left}.scenario-table td{font:700 1.05rem "IBM Plex Mono",ui-monospace,monospace}.scenario-table .is-base{background:var(--cyan-soft)}.module-note{margin:14px 0 0;color:var(--muted);font-size:.82rem}.fee-lab{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.fee-lab article{padding:20px;background:var(--paper);border-top:3px solid var(--cyan)}.fee-lab article>div>img{width:auto;max-width:110px;max-height:34px;object-fit:contain}.fee-lab dl,.company-directory dl{display:grid;gap:8px}.fee-lab dl div,.company-directory dl div{display:flex;justify-content:space-between;gap:18px;border-top:1px solid var(--line);padding-top:8px}.fee-lab dt,.company-directory dt{color:var(--muted);font-size:.76rem}.fee-lab dd,.company-directory dd{margin:0;font-weight:800}.fee-share-list{border-top:1px solid var(--ink)}.fee-share-list article{display:grid;grid-template-columns:40px minmax(170px,1fr) auto minmax(210px,.8fr);gap:18px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}.fee-share-list .rank{font:700 1.45rem "IBM Plex Mono",ui-monospace,monospace}.fee-share-list img{display:block;width:auto;max-width:90px;max-height:26px;object-fit:contain}.fee-share-list h3{margin:5px 0}.fee-share-list>article>strong{font:700 1.35rem "IBM Plex Mono",ui-monospace,monospace}.fee-share-list p{margin:0;color:var(--muted)}.company-directory{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.company-directory article{padding:22px;background:var(--paper);border-top:3px solid var(--cyan)}.company-directory img{width:auto;max-width:130px;height:42px;object-fit:contain;object-position:left}.company-directory .eyebrow{margin-top:14px;color:var(--copper)}.guide-body{padding:56px 0;background:var(--paper)}.guide-body article h2{margin-top:1.45em}.next-steps{position:sticky;top:24px;display:grid;border-top:4px solid var(--cyan);background:var(--canvas);padding:20px}.next-steps span{font-size:.75rem;color:var(--muted)}.next-steps a{padding:10px 0;border-bottom:1px solid var(--line);font-weight:800}.faq-list{border-top:1px solid var(--ink)}.faq-list details{border-bottom:1px solid var(--line);padding:14px 0}.faq-list summary{cursor:pointer;font-weight:800}.source-screenshots{display:grid;grid-template-columns:1fr 1fr;gap:18px}.source-screenshots figure{margin:0}.source-screenshots img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;object-position:top;border:1px solid var(--line)}.source-screenshots figcaption{padding:9px 0;color:var(--muted);font-size:.76rem}.guide-index-body{padding:56px 0}.guide-index-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}.guide-index-card{display:grid;grid-template-columns:46px 1fr;gap:20px;padding:28px;background:var(--paper);color:var(--ink);text-decoration:none}.guide-index-card>span{font:700 1.45rem "IBM Plex Mono",ui-monospace,monospace;color:var(--cyan-dark)}.guide-index-card h2{font-size:1.5rem}.guide-index-card strong{color:var(--cyan-dark)}.guide-index-card:hover{background:var(--cyan-soft)}
@media(max-width:900px){.guide-hero__grid{grid-template-columns:1fr}.tool-heading{display:grid}.fee-lab,.company-directory{grid-template-columns:1fr 1fr}.fee-share-list article{grid-template-columns:36px 1fr auto}.fee-share-list p{grid-column:2/-1}.guide-index-grid{grid-template-columns:1fr}}
@media(max-width:620px){.guide-hero,.guide-index-hero{padding:38px 0 44px}.guide-tool,.guide-body,.guide-index-body{padding:38px 0}.fee-lab,.company-directory,.source-screenshots{grid-template-columns:1fr}.scenario-table tbody th{grid-template-columns:24px 1fr}.scenario-table tbody th img{display:none}.scenario-table th,.scenario-table td{padding:12px 9px}.fee-share-list article{grid-template-columns:30px 1fr}.fee-share-list>article>strong,.fee-share-list p{grid-column:2}.guide-index-card{grid-template-columns:34px 1fr;padding:20px}.guide-index-card h2{font-size:1.28rem}}
.home-guide-rail{padding:56px 0;background:var(--canvas);border-top:1px solid var(--line)}.home-guide-rail header{max-width:760px;margin-bottom:28px}.home-guide-rail__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:22px}.home-guide-rail__grid a{display:grid;min-height:160px;align-content:start;gap:9px;padding:22px;background:var(--paper);color:var(--ink);text-decoration:none}.home-guide-rail__grid a:hover{background:var(--cyan-soft)}.home-guide-rail__grid span{font:700 .8rem "IBM Plex Mono",ui-monospace,monospace;color:var(--cyan-dark)}.home-guide-rail__grid strong{font-size:1.05rem}.home-guide-rail__grid small{color:var(--muted);line-height:1.45}
@media(max-width:900px){.home-guide-rail__grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.home-guide-rail{padding:38px 0}.home-guide-rail__grid{grid-template-columns:1fr}.home-guide-rail__grid a{min-height:0}}
.decision-calculator{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:24px;align-items:stretch}.calculator-form--compact{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.calculator-form--compact fieldset{min-width:0}.calculator-form--compact button{align-self:end}.decision-result{display:grid;align-content:center;padding:28px;border-top:4px solid var(--cyan);background:var(--paper)}.decision-result>span{font-size:.76rem;color:var(--muted)}.decision-result>strong{margin:8px 0;font:700 clamp(2rem,4vw,3.8rem)/1 "IBM Plex Mono",ui-monospace,monospace;color:var(--navy)}.decision-result small{color:var(--muted)}.term-matrix{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.term-matrix article{display:grid;align-content:start;padding:24px;background:var(--paper)}.term-matrix article>span{font:700 .8rem "IBM Plex Mono",ui-monospace,monospace;color:var(--cyan-dark)}.term-matrix article div{display:flex;gap:14px}.fee-compare-form{display:grid;grid-template-columns:1fr 1fr auto;gap:16px;align-items:end;margin-bottom:18px;padding:18px;background:var(--paper);border-top:3px solid var(--cyan)}.fee-compare-form label{display:grid;gap:5px;font-weight:800}.fee-compare-form select{width:100%;padding:10px;border:1px solid var(--line);background:#fff}.fee-break-even{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px}.fee-break-even>div,.fee-break-even>p{padding:16px;background:var(--paper)}.fee-break-even>div{display:grid}.fee-break-even>div span{font-size:.76rem;color:var(--muted)}.fee-break-even>p{grid-column:1/-1;margin:0;border-left:4px solid var(--amber)}
@media(max-width:900px){.decision-calculator{grid-template-columns:1fr}.calculator-form--compact{grid-template-columns:1fr 1fr}.term-matrix{grid-template-columns:1fr}.fee-compare-form{grid-template-columns:1fr 1fr}.fee-compare-form button{grid-column:1/-1}}
@media(max-width:620px){.calculator-form--compact,.fee-compare-form,.fee-break-even{grid-template-columns:1fr}.fee-break-even>p{grid-column:auto}.decision-result{padding:22px}.guide-hero__grid{gap:24px}.guide-verdict{padding:18px}.scenario-table.student-table table{min-width:620px}}
.comparison-row__review {
  grid-column: 2 / -1;
  margin: -6px 0 0;
  font-size: 0.82rem;
  font-weight: 800;
}

@media (max-width: 620px) {
  .comparison-row__review {
    grid-column: 1 / -1;
  }
}
.comparison-row__cta {
  grid-column: 4;
  margin: 0;
  text-align: right;
}

.comparison-row__cta a {
  display: inline-flex;
  justify-content: center;
  padding: 11px 16px;
  color: #fff;
  background: var(--cyan-dark);
  border-radius: 9px;
  font-weight: 850;
  text-decoration: none;
}

.comparison-filters {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.comparison-filters label {
  display: grid;
  gap: 5px;
  color: var(--muted);
  font-size: .73rem;
  font-weight: 750;
}

.comparison-filters select {
  width: 100%;
  min-height: 42px;
  padding: 8px 10px;
  color: var(--ink);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.empty-result {
  padding: 28px;
  background: #fff8e8;
  border-left: 4px solid var(--amber);
}

.empty-result p { margin-bottom: 0; }

@media (max-width: 620px) {
  .comparison-row__cta {
    grid-column: 1 / -1;
    text-align: left;
  }

  .comparison-filters { grid-template-columns: 1fr; }
}

/* Upgrade library: shared decision-first layouts for the 160-page release. */
.upgrade-hero {
  padding: 38px 0 30px;
  color: var(--ink);
  background:
    radial-gradient(circle at 88% 8%, rgba(22, 190, 188, .18), transparent 32%),
    linear-gradient(145deg, #f7fbfa 0%, #e8f4f1 100%);
  border-bottom: 1px solid var(--line);
}

.upgrade-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(280px, .72fr);
  gap: clamp(24px, 5vw, 70px);
  align-items: center;
}

.upgrade-hero h1 {
  max-width: 840px;
  margin: 8px 0 14px;
  font-size: clamp(2.25rem, 5vw, 4.65rem);
  line-height: .98;
  letter-spacing: -.055em;
}

.upgrade-hero .lead {
  max-width: 760px;
  font-size: clamp(1.05rem, 1.7vw, 1.3rem);
}

.profile-inline {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-top: 22px;
  color: var(--muted);
  font-size: .88rem;
}

.profile-inline img,
.author-card img {
  width: 46px;
  height: 46px;
  object-fit: cover;
  border-radius: 50%;
  border: 3px solid #fff;
  box-shadow: 0 5px 18px rgba(13, 53, 47, .13);
}

.decision-card {
  padding: 25px;
  color: #f7fffd;
  background: #073d35;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 22px;
  box-shadow: 0 20px 48px rgba(4, 42, 36, .17);
}

.decision-card > span {
  display: block;
  margin-bottom: 8px;
  color: #8fe2d6;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.decision-card strong {
  display: block;
  font-size: clamp(1.16rem, 2vw, 1.48rem);
  line-height: 1.25;
}

.decision-card p {
  margin: 12px 0 0;
  color: #cde6e1;
}

.primary-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  margin-top: 18px;
  padding: 12px 20px;
  color: #04342d;
  background: #8ff0d6;
  border-radius: 12px;
  font-weight: 850;
  text-decoration: none;
  transition: transform .16s ease, background .16s ease;
}

.primary-cta:hover {
  color: #04342d;
  background: #b4f7e5;
  transform: translateY(-2px);
}

.value-lab {
  padding: 32px 0;
  background: #082f2a;
  color: #effcf9;
}

.value-lab__heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 20px;
}

.value-lab h2 {
  margin: 5px 0 0;
  color: #fff;
}

.data-stamp {
  color: #9fc5be;
  font-size: .8rem;
  white-space: nowrap;
}

.bill-split,
.company-signal-grid,
.scenario-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.bill-split > article,
.company-signal-grid > article,
.scenario-strip > div,
.decision-fit,
.break-even-result {
  padding: 18px;
  background: rgba(255, 255, 255, .075);
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 16px;
}

.bill-split span,
.company-signal-grid span,
.scenario-strip span,
.offer-preview small {
  display: block;
  color: #a8cfc8;
  font-size: .78rem;
  font-weight: 750;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.bill-split strong,
.company-signal-grid strong,
.scenario-strip strong {
  display: block;
  margin-top: 5px;
  color: #fff;
  font-size: 1.05rem;
}

.break-even-tool {
  display: grid;
  grid-template-columns: 1.35fr .65fr;
  gap: 18px;
}

.compact-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.compact-form label {
  color: #d9efeb;
  font-size: .85rem;
  font-weight: 700;
}

.compact-form input {
  width: 100%;
  margin-top: 6px;
  padding: 12px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 10px;
  color: #fff;
  background: rgba(255, 255, 255, .08);
}

.value-lab .profile-inline {
  display: grid;
  grid-template-columns: auto minmax(180px, 260px) auto;
  align-items: end;
  gap: 14px;
  margin: 0 0 18px;
  color: #d9efeb;
}

.value-lab .profile-inline > label { padding-bottom: 12px; font-weight: 750; }
.value-lab .profile-inline .input-unit { margin: 0; border-color: rgba(255, 255, 255, .55); }
.value-lab .profile-inline .input-unit input { padding: 8px 0; color: #fff; font-size: 1.55rem; }
.value-lab .profile-inline .input-unit span { color: #fff; }
.value-lab .profile-inline button { width: auto; min-height: 48px; }

.break-even-result strong {
  display: block;
  color: #91f2d7;
  font-size: clamp(1.55rem, 3vw, 2.4rem);
}

.offer-preview {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 18px;
  align-items: center;
  padding: 14px 0;
  border-top: 1px solid rgba(255, 255, 255, .12);
}

.offer-preview:first-child { border-top: 0; }

.offer-preview a {
  padding: 9px 13px;
  color: #073d35;
  background: #8ff0d6;
  border-radius: 9px;
  font-weight: 800;
  text-decoration: none;
}

.decision-runway {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  gap: 18px;
  align-items: center;
  counter-reset: runway;
}

.decision-runway > article {
  position: relative;
  padding-left: 46px;
  counter-increment: runway;
}

.decision-runway > article::before {
  content: counter(runway);
  position: absolute;
  left: 0;
  top: 0;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  color: #073d35;
  background: #8ff0d6;
  border-radius: 50%;
  font-weight: 900;
}

.decision-runway > i {
  color: #8ff0d6;
  font-style: normal;
  font-weight: 900;
}

.decision-fit {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  padding: 1px;
}

.decision-fit > article { padding: 17px; }
.decision-fit > article + article { border-left: 1px solid rgba(255, 255, 255, .12); }
.decision-fit span { display: block; margin-bottom: 6px; color: #a8cfc8; font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.decision-fit strong { color: #fff; }

.editorial-visual {
  margin: 38px auto 10px;
}

.editorial-visual picture,
.editorial-visual img {
  display: block;
  width: 100%;
}

.editorial-visual img {
  max-height: 520px;
  object-fit: cover;
  border-radius: 22px;
  border: 1px solid var(--line);
  box-shadow: 0 20px 52px rgba(18, 51, 45, .1);
}

.editorial-visual figcaption {
  margin-top: 9px;
  color: var(--muted);
  font-size: .78rem;
}

.upgrade-body { padding: 36px 0 74px; }

.reading-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: clamp(26px, 5vw, 70px);
  align-items: start;
}

.upgrade-body article > section {
  margin-top: 36px;
  padding-top: 30px;
  border-top: 1px solid var(--line);
}

.upgrade-body article h2 {
  max-width: 780px;
  font-size: clamp(1.55rem, 3vw, 2.3rem);
  letter-spacing: -.035em;
}

.upgrade-body article p {
  max-width: 760px;
  font-size: 1.02rem;
  line-height: 1.78;
}

.fact-ribbon {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 5px 14px;
  align-items: center;
  margin: 18px 0 0;
  padding: 16px 18px;
  color: var(--ink);
  background: #e1f5ef;
  border-left: 4px solid var(--cyan);
}

.fact-ribbon > span {
  grid-row: 1 / 3;
  padding: 7px 10px;
  color: #075247;
  background: #fff;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 750;
}

.fact-ribbon > strong { align-self: end; }
.fact-ribbon > p { align-self: start; margin: 0; color: var(--muted); font-size: .84rem; line-height: 1.45; }

.claim-note {
  margin: 18px 0;
  padding: 16px 18px;
  background: #f4f8f7;
  border-left: 4px solid var(--cyan);
}

.claim-note p { margin: 0; }

.claim-note small {
  display: block;
  margin-top: 6px;
  color: var(--muted);
}

.verified-facts,
.source-passport,
.next-step-panel,
.author-card {
  margin-top: 34px;
  padding: 22px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 17px;
}

.source-passport ol { padding-left: 20px; }

.source-passport li { margin: 9px 0; }

.source-passport small {
  display: block;
  color: var(--muted);
}

.next-step-panel {
  position: sticky;
  top: 92px;
  margin-top: 0;
  background: #f3faf7;
}

.next-step-panel > span {
  display: block;
  margin-bottom: 8px;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.next-step-panel > a {
  display: grid;
  gap: 2px;
  padding: 12px 0;
  color: var(--ink);
  border-bottom: 1px solid var(--line);
  text-decoration: none;
}

.next-step-panel > a:last-child { border-bottom: 0; }
.next-step-panel > a:hover strong,
.next-step-panel > a:focus-visible strong { color: var(--cyan-dark); }
.next-step-panel > a small { color: var(--muted); font-size: .72rem; }

.author-card {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 15px;
  align-items: center;
}

.author-card p { margin: 4px 0 0; }

@media (max-width: 860px) {
  .upgrade-hero__grid,
  .reading-grid,
  .break-even-tool {
    grid-template-columns: 1fr;
  }

  .next-step-panel { position: static; }
}

@media (max-width: 620px) {
  .upgrade-hero { padding-top: 25px; }

  .upgrade-hero h1 {
    font-size: clamp(2rem, 12vw, 3.1rem);
  }

  .bill-split,
  .company-signal-grid,
  .scenario-strip,
  .decision-runway,
  .compact-form {
    grid-template-columns: 1fr;
  }

  .decision-runway > i {
    justify-self: start;
    transform: rotate(90deg);
  }

  .value-lab .profile-inline {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
    color: #d9efeb;
  }

  .value-lab .profile-inline .input-unit {
    margin: 0;
    border-color: rgba(255, 255, 255, .55);
  }

  .value-lab .profile-inline .input-unit input,
  .value-lab .profile-inline .input-unit span { color: #fff; }

  .offer-preview {
    grid-template-columns: 1fr auto;
  }

  .offer-preview a {
    grid-column: 1 / -1;
    text-align: center;
  }

  .value-lab__heading {
    align-items: start;
    flex-direction: column;
  }
}
img {
  max-width: 100%;
}

/* Complete the component layer used by the generated page families. */
.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 7px;
  margin: 0 0 18px;
  color: var(--muted);
  font-size: .82rem;
}

.breadcrumbs a { color: var(--cyan-dark); }

.form-scope {
  margin: 0 0 18px;
  padding: 10px 12px;
  color: var(--muted);
  background: #fff;
  border-left: 3px solid var(--cyan);
  font-size: .82rem;
}

.verified-line {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 4px;
  margin: 18px 0 0;
  padding: 8px 11px;
  color: #cde6e1;
  background: rgb(255 255 255 / 7%);
  border: 1px solid rgb(255 255 255 / 13%);
  border-radius: 8px;
  font-size: .78rem;
}

.decision-card__logo {
  display: block;
  width: auto;
  max-width: 148px;
  max-height: 48px;
  margin: 0 0 16px;
  object-fit: contain;
  object-position: left center;
}

.profile-links a { min-width: 0; gap: 8px; }
.profile-links small { flex: 0 0 auto; margin-left: auto; white-space: nowrap; }

.directory-toolbar { color: var(--ink); }
.directory-toolbar label { color: var(--ink); }
.directory-filters button { color: var(--ink); border-radius: 8px; }
.directory-filters button:hover { background: var(--cyan-soft); }

.evidence-directory {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.evidence-directory > a {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  gap: 13px;
  align-items: center;
  min-width: 0;
  padding: 17px;
  color: var(--ink);
  background: var(--paper);
  border: 1px solid rgb(203 214 216 / 85%);
  border-radius: 13px;
  text-decoration: none;
  box-shadow: 0 5px 18px rgb(7 29 42 / 5%);
}

.evidence-directory > a:hover,
.evidence-directory > a:focus-visible {
  border-color: var(--cyan);
  background: #f4fcfb;
  transform: translateY(-1px);
}

.evidence-directory > a > span {
  color: var(--cyan-dark);
  font: 700 .8rem "IBM Plex Mono", ui-monospace, monospace;
}

.evidence-directory > a > div { display: grid; min-width: 0; gap: 3px; }
.evidence-directory > a strong { color: var(--ink); line-height: 1.25; }
.evidence-directory > a small { color: var(--muted); line-height: 1.4; }
.evidence-directory > a em { margin-top: 2px; }
.evidence-directory > a b { color: var(--cyan-dark); font-size: 1.15rem; }
.evidence-directory img { display: block; width: auto; max-width: 112px; max-height: 30px; margin-bottom: 5px; object-fit: contain; object-position: left; }

.compact-form--bill { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.compact-form--term { grid-template-columns: minmax(180px, 1fr) minmax(150px, .7fr) auto; }
.compact-form--bill button,
.compact-form--term button { align-self: end; min-height: 48px; }
.compact-form select { width: 100%; min-height: 46px; margin-top: 6px; padding: 10px 12px; border: 1px solid rgba(255, 255, 255, .25); border-radius: 10px; color: #fff; background: #174c45; }

.consumption-device-form fieldset {
  min-width: 0;
  margin: 0;
  padding: 14px;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 13px;
}

.consumption-device-form legend { padding: 0 6px; color: #fff; font-weight: 850; }

.bill-result,
.term-result {
  display: flex;
  align-items: stretch;
  gap: 10px;
  margin-top: 18px;
}

.bill-result article,
.term-result article {
  display: grid;
  flex: 1 1 0;
  min-width: 0;
  align-content: center;
  gap: 5px;
  padding: 16px;
  color: #effcf9;
  background: rgba(255, 255, 255, .075);
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 13px;
}

.bill-result article.is-total,
.term-result article.is-total { background: rgba(143, 240, 214, .14); border-color: rgba(143, 240, 214, .38); }
.bill-result span,
.term-result span { color: #b9d8d2; font-size: .72rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.bill-result strong,
.term-result strong { color: #fff; font: 700 clamp(1.15rem, 2.3vw, 1.65rem)/1.15 "IBM Plex Mono", ui-monospace, monospace; }
.bill-result small,
.term-result small { color: #cde6e1; }
.bill-result > i,
.term-result > i { align-self: center; color: #8ff0d6; font-style: normal; font-weight: 900; }

.value-lab .formula {
  margin-top: 18px;
  color: var(--ink);
  background: #e5f8fb;
  border-radius: 0 12px 12px 0;
  overflow-x: auto;
}

.value-lab .formula span,
.value-lab .formula code { color: var(--ink); }
.value-lab .module-note { color: #c5ded9; }
.value-lab .module-note a { color: #9cebdc; }

.contact-channel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  padding: 22px;
  background: rgba(255, 255, 255, .075);
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 16px;
}

.contact-channel > div { display: grid; gap: 6px; min-width: 0; }
.contact-channel span { color: #a8cfc8; font-size: .74rem; font-weight: 800; text-transform: uppercase; }
.contact-channel strong { overflow-wrap: anywhere; color: #fff; font-size: 1.15rem; }
.contact-channel p { margin: 0; color: #cde6e1; }
.contact-channel .primary-cta { margin: 0; }

.contact-templates,
.change-log,
.source-audit-summary,
.profile-scenarios,
.decision-checklist {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 16px;
}

.contact-templates article,
.change-log article,
.source-audit-summary article,
.profile-scenarios article,
.decision-checklist article {
  display: grid;
  align-content: start;
  gap: 6px;
  min-width: 0;
  padding: 17px;
  background: rgba(255, 255, 255, .075);
  border: 1px solid rgba(255, 255, 255, .13);
  border-radius: 13px;
}

.contact-templates span,
.change-log span,
.change-log time,
.source-audit-summary span,
.profile-scenarios span,
.decision-checklist span { color: #a8cfc8; font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.contact-templates strong,
.change-log strong,
.source-audit-summary strong,
.profile-scenarios strong,
.decision-checklist strong { color: #fff; line-height: 1.35; }
.change-log p,
.source-audit-summary p,
.profile-scenarios p,
.decision-checklist p { margin: 0; color: #cde6e1; }
.source-audit-summary strong { font: 700 1.8rem "IBM Plex Mono", ui-monospace, monospace; }

.source-visual { margin-top: 34px; margin-bottom: 14px; }
.source-visual a,
.source-visual img { display: block; width: 100%; }
.source-visual img { height: auto; border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow); }
.source-visual figcaption,
.editorial-visual figcaption { margin-top: 8px; color: var(--muted); font-size: .78rem; }

.verified-facts { padding: 0; list-style: none; }
.verified-facts li { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 10px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.verified-facts li > span { color: var(--positive); font-weight: 900; }
.verified-facts li div { display: grid; gap: 3px; }
.verified-facts small { color: var(--muted); }
.source-passport ul { padding: 0; list-style: none; }
.source-passport li { display: flex; justify-content: space-between; gap: 18px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.source-passport li div { display: grid; gap: 3px; }

.site-footer__social { display: flex; flex-wrap: wrap; gap: 10px 18px; }
.site-footer__social a,
.site-footer__editor a { color: #dce8eb; }
.site-footer__editor { margin: 0; }

@media (min-width: 901px) {
  .comparison-row__cta { grid-column: 4; grid-row: 4; align-self: center; }
  .comparison-row__review { grid-column: 2 / 4; grid-row: 4; align-self: center; margin: 0; }
}

@media (max-width: 900px) {
  .evidence-directory { grid-template-columns: minmax(0, 1fr); }
  .compact-form--bill { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .compact-form--term { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .compact-form--term button { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  .hero-lab h1 { font-size: clamp(1.72rem, 8.3vw, 2rem); overflow-wrap: anywhere; }
  .directory-filters { overflow: visible; flex-wrap: wrap; padding-bottom: 0; }
  .directory-filters button { flex: 1 1 auto; }
  .evidence-directory > a { grid-template-columns: 28px minmax(0, 1fr) auto; padding: 14px; }
  .compact-form--bill,
  .compact-form--term { grid-template-columns: minmax(0, 1fr); }
  .compact-form--term button { grid-column: auto; }
  .bill-result,
  .term-result { display: grid; grid-template-columns: minmax(0, 1fr); gap: 7px; }
  .bill-result > i,
  .term-result > i { justify-self: center; transform: rotate(90deg); }
  .contact-channel { grid-template-columns: minmax(0, 1fr); padding: 18px; }
  .contact-channel .primary-cta { width: 100%; }
  .contact-templates,
  .change-log,
  .source-audit-summary,
  .profile-scenarios,
  .decision-checklist { grid-template-columns: minmax(0, 1fr); }
  .fact-ribbon { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .fact-ribbon > span { grid-row: auto; justify-self: start; }
  .source-passport li { display: grid; }
}

/* Keep the keyboard shortcut out of stitched full-page captures until it is focused. */
.skip-link {
  opacity: 0;
  pointer-events: none;
}

.skip-link:focus {
  opacity: 1;
  pointer-events: auto;
}

h1,
h2,
h3 {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.hero-lab__grid {
  grid-template-columns: minmax(0, 1.4fr) minmax(330px, .6fr);
  gap: 48px;
}

.hero-lab h1 {
  font-size: clamp(2rem, 4.9vw, 4.4rem);
}

.nav-toggle {
  display: none;
  width: auto;
  min-height: 44px;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  color: #fff;
  background: transparent;
  border: 1px solid rgb(113 220 236 / 45%);
}

.provider-logo-link { display: inline-block; }
.comparison-row__identity h3 a { color: inherit; text-decoration-color: rgb(0 105 125 / 35%); }
.primary-cta--inline { display: inline-flex; width: auto; }

.directory-explorer { display: grid; min-width: 0; gap: 18px; }
.directory-toolbar {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) auto auto;
  gap: 16px;
  align-items: end;
  padding: 18px;
  background: var(--paper);
  border-top: 4px solid var(--cyan);
}
.directory-toolbar > * { min-width: 0; }
.directory-toolbar label { display: grid; gap: 6px; font-weight: 800; }
.directory-toolbar input { min-height: 44px; padding: 9px 12px; border: 1px solid var(--line); background: #fff; color: var(--ink); }
.directory-toolbar output { align-self: center; color: var(--muted); font-size: .82rem; white-space: nowrap; }
.directory-filters { display: flex; flex-wrap: wrap; gap: 6px; }
.directory-filters button { width: auto; min-height: 44px; padding: 8px 12px; background: transparent; border: 1px solid var(--line); }
.directory-filters button[aria-pressed="true"] { color: #fff; background: var(--navy); border-color: var(--navy); }
.evidence-directory [hidden] { display: none; }
.evidence-directory em { color: var(--muted); font-size: .7rem; font-style: normal; }

.company-products { display: grid; margin-top: 22px; border-top: 2px solid var(--ink); }
.company-products > header { display: flex; justify-content: space-between; gap: 16px; padding: 14px 0; }
.company-products > header span { color: var(--muted); }
.company-products article { display: grid; grid-template-columns: minmax(180px, 1fr) auto minmax(170px, auto); gap: 22px; align-items: center; padding: 18px 0; border-top: 1px solid var(--line); }
.company-products article h3 { margin: 2px 0; }
.company-products article > strong { font: 700 1.45rem "IBM Plex Mono", ui-monospace, monospace; }
.company-products article > div:last-child { display: grid; gap: 8px; }
.company-products .primary-cta { margin: 0; }

.context-links { display: flex; flex-wrap: wrap; gap: 10px; margin: 22px 0; }
.context-links a { display: inline-flex; padding: 8px 12px; color: var(--ink); background: var(--cyan-soft); border-left: 3px solid var(--cyan); font-weight: 700; text-decoration: none; }

#tulos:focus-visible,
#vertailu:focus-visible { outline-offset: -4px; }

.profile-photo {
  display: block;
  max-width: 100%;
}

.lab-nav {
  display: flex;
  align-items: stretch;
  gap: 0;
  min-height: 48px;
  border-inline: 1px solid rgb(113 220 236 / 22%);
  max-width: 100%;
}

.masthead .lab-nav a {
  color: #e8f2f4;
  text-decoration: none;
}

.lab-nav__step {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 8px;
  padding: 8px 15px;
  border-right: 1px solid rgb(113 220 236 / 22%);
}

.lab-nav__step > span {
  color: #71dcec;
  font: 700 .65rem "IBM Plex Mono", ui-monospace, monospace;
}

.lab-nav__step > strong {
  font-size: .82rem;
}

.lab-nav__step:hover,
.lab-nav__step:focus-visible,
.lab-nav__step.is-active {
  background: rgb(0 184 213 / 14%);
}

.lab-nav__step.is-active {
  box-shadow: inset 0 -3px 0 var(--cyan);
}

.lab-nav__editor {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
}

.lab-nav__editor img {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid rgb(113 220 236 / 55%);
}

.lab-nav__editor > span {
  display: grid;
  line-height: 1.05;
}

.lab-nav__editor small {
  color: #acc0c7;
  font-size: .61rem;
}

.lab-nav__editor strong {
  font-size: .8rem;
}

.provider-logo {
  display: block;
  width: auto;
  max-width: 118px;
  height: 30px;
  margin-bottom: 8px;
  object-fit: contain;
  object-position: left center;
}

.review-provider-logo {
  display: inline-grid;
  place-items: center;
  min-width: 170px;
  min-height: 62px;
  margin: 12px 0 18px;
  padding: 8px 14px;
  background: #fff;
  border-left: 4px solid var(--cyan);
}

.review-provider-logo img {
  display: block;
  width: auto;
  max-width: 145px;
  max-height: 44px;
  object-fit: contain;
}

@media (max-width: 900px) {
  .hero-lab__grid { grid-template-columns: minmax(0, 1fr); }
  .hero-lab__grid > * { min-width: 0; max-width: 100%; }
  .upgrade-hero__grid { grid-template-columns: minmax(0, 1fr); }
  .upgrade-hero__grid > * { min-width: 0; max-width: 100%; }
  .masthead__inner {
    min-width: 0;
    position: relative;
    flex-wrap: wrap;
    padding-block: 9px;
  }

  .nav-toggle { display: inline-flex; margin-left: auto; }
  .masthead nav.lab-nav {
    display: none;
    position: absolute;
    z-index: 20;
    top: 100%;
    right: 0;
    left: 0;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    margin: 0;
    padding: 8px;
    background: var(--navy);
    border: 1px solid rgb(113 220 236 / 45%);
    box-shadow: var(--shadow);
  }
  .masthead nav.lab-nav.is-open { display: grid; }
  .masthead nav.lab-nav a.lab-nav__step,
  .masthead nav.lab-nav a.lab-nav__editor { display: flex; min-height: 52px; padding: 9px 12px; }
  .lab-nav__step > strong,
  .lab-nav__editor > span { display: grid; }
  .lab-nav__step small { display: block; }
  .lab-nav__editor { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  .upgrade-hero h1 { font-size: clamp(1.7rem, 7.8vw, 2rem); letter-spacing: -.045em; }
  .decision-fit { grid-template-columns: minmax(0, 1fr); }
  .decision-fit > article + article { border-left: 0; border-top: 1px solid rgba(255, 255, 255, .12); }
  .masthead__inner {
    gap: 8px;
  }

  .brand > span:last-child {
    display: none;
  }

  .nav-toggle { display: inline-flex; margin-left: auto; }
  .masthead__inner { position: relative; flex-wrap: wrap; padding-block: 9px; }
  .masthead nav.lab-nav {
    display: none;
    position: absolute;
    z-index: 20;
    top: 100%;
    right: 0;
    left: 0;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    margin: 0;
    padding: 8px;
    background: var(--navy);
    border: 1px solid rgb(113 220 236 / 45%);
    box-shadow: var(--shadow);
  }
  .masthead nav.lab-nav.is-open { display: grid; }
  .masthead nav.lab-nav a.lab-nav__step,
  .masthead nav.lab-nav a.lab-nav__editor { display: flex; min-height: 52px; padding: 9px 12px; }
  .lab-nav__step > strong,
  .lab-nav__editor > span { display: grid; }
  .lab-nav__step small { display: block; }
  .lab-nav__editor { grid-column: 1 / -1; }
  .lab-nav__editor img { width: 34px; height: 34px; }

  .directory-toolbar { grid-template-columns: 1fr; }
  .directory-toolbar output { justify-self: start; }
  .directory-filters { width: 100%; max-width: 100%; overflow-x: auto; flex-wrap: nowrap; padding-bottom: 4px; }
  .directory-filters button { flex: 0 0 auto; }
  .company-products article { grid-template-columns: 1fr auto; }
  .company-products article > div:last-child { grid-column: 1 / -1; grid-template-columns: 1fr; }
  .context-links { display: grid; }

  .comparison-row .runway,
  .comparison-row .risk-grid {
    display: none;
  }
}

/* Final narrow-screen overrides must follow the legacy responsive block. */
@media (max-width: 620px) {
  .hero-lab h1 { font-size: 1.65rem; overflow-wrap: normal; }
  .directory-filters { width: 100%; max-width: 100%; overflow: visible; flex-wrap: wrap; padding-bottom: 0; }
  .directory-filters button { flex: 1 1 auto; }
  .comparison-row__cta { grid-column: 1 / -1; min-width: 0; text-align: left; }
  .comparison-row__cta a { width: 100%; max-width: 100%; }
}

@media (max-width: 420px) {
  .masthead nav.lab-nav,
  .masthead nav.lab-nav.is-open { grid-template-columns: minmax(0, 1fr); }
  .masthead nav.lab-nav a.lab-nav__step,
  .masthead nav.lab-nav a.lab-nav__editor { grid-column: auto; }
}
