/* Pages built for the public upgrade: homepage, library, articles, tools and cases.
   Not loaded on retained offer, legal or estimator pages, which keep site.css untouched. */
:root{--ink:#0e1a2b;--navy:#182e4b;--cream:#f7f3ec;--stone:#ebe3d5;--tint:#f1ebe0;--paper:#fffdf8;--gold:#c8a24b;--bronze:#785816;--muted:#505b66;--line:#d8cdbb;--error:#8d2424;--error-surface:#fff1ec;--field-border:#6f7882;--on-navy:#f7f3ec;--on-navy-soft:#d7dee5;--display:Newsreader,Georgia,serif;--body:"Libre Franklin",Arial,sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px;-webkit-text-size-adjust:100%}
body.fpp{margin:0;background:var(--cream);color:var(--ink);font:17px/1.65 var(--body);overflow-wrap:break-word}
@media (min-width:900px){body.fpp{font-size:18px}}
:where(.fpp main) :where(h1,h2,h3){font-family:var(--display);font-weight:450;line-height:1.12;letter-spacing:-.015em;margin:0 0 16px;text-wrap:balance}
:where(.fpp main) h1{font-size:clamp(40px,4.2vw + 12px,64px);line-height:1.06}
:where(.fpp main) h2{font-size:clamp(30px,1.6vw + 22px,40px)}
:where(.fpp main) h3{font-size:24px;line-height:1.2}
:where(.fpp main) p{margin:0 0 16px}
:where(.fpp main) a{color:var(--navy);text-underline-offset:4px}
:where(.fpp main) img{display:block;max-width:100%;height:auto}
:where(.fpp main) figure{margin:0}
.fpp main :where(a,button,input,summary):focus-visible{outline:3px solid #98711d;outline-offset:3px}
.fpp [hidden]{display:none!important}
.fpp-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.fpp-wrap{width:100%;max-width:1280px;margin:0 auto;padding:0 40px}
.fpp-eyebrow{font:650 13px/1.5 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--bronze);margin:0 0 14px!important}
.fpp-lede{font-size:1.12em;line-height:1.55;color:#22324a;max-width:64ch}
.fpp-fine{font-size:14px;line-height:1.65;color:var(--muted)}
.fpp-arrow{display:inline-block;transition:transform .15s}
a:hover>.fpp-arrow{transform:translateX(3px)}
.fpp-link{display:inline-flex;align-items:center;gap:.45em;min-height:44px;font-weight:550;text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:2px;text-underline-offset:7px}
.fpp-link:hover{text-decoration-color:var(--bronze)}
.fpp-link-small{font-size:15px}
.fpp-btn,.fpp-btn-outline,.fpp-btn-text{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:50px;padding:12px 28px;border:1px solid var(--navy);border-radius:3px;background:var(--navy);color:var(--on-navy)!important;font:600 16px/1.3 var(--body);text-decoration:none;cursor:pointer;transition:background-color .15s,border-color .15s}
.fpp-btn:hover{background:var(--ink);border-color:var(--ink)}
.fpp-btn-gold{background:var(--gold);border-color:var(--gold);color:var(--ink)!important}
.fpp-btn-gold:hover{background:#d6b463;border-color:#d6b463}
.fpp-btn-outline{background:transparent;color:var(--navy)!important;min-height:46px;padding:10px 20px}
.fpp-btn-outline:hover{background:var(--stone)}
.fpp-btn-text{background:none;border-color:transparent;padding:10px 6px;color:var(--navy)!important;text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:2px;text-underline-offset:7px}
.fpp-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 32px;margin:28px 0 0!important}
.fpp-tint{background:var(--tint)}
.fpp-table-wrap{overflow-x:auto;margin:0 0 20px}
.fpp-notice{padding:18px 22px;border:1px solid #c7b78f;border-left:4px solid var(--bronze);background:#f5eddb;border-radius:4px;margin:0 0 24px}
.fpp-notice p:last-child{margin-bottom:0}
.fpp-badge-draft{display:inline-block;padding:2px 9px;border:1px solid var(--error);border-radius:3px;background:var(--error-surface);color:var(--error);font:650 12px/1.5 var(--body);letter-spacing:.06em;text-transform:uppercase}
.fpp-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px 40px;flex-wrap:wrap;margin-bottom:28px}
.fpp-section-head h2{margin-bottom:8px}
.fpp-section-head .fpp-lede{margin-bottom:0}
.fpp-cols-2,.fpp-cols-3,.fpp-roles-list{list-style:none;margin:0;padding:0;display:grid;gap:0}
.fpp-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.fpp-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.fpp-cols-2>li,.fpp-cols-3>li,.fpp-roles-list>li{padding:4px 40px 4px 0;margin-right:40px;border-right:1px solid var(--line)}
.fpp-cols-2>li:last-child,.fpp-cols-3>li:last-child,.fpp-roles-list>li:last-child{border-right:0;margin-right:0;padding-right:0}
.fpp-cols-2 h3,.fpp-cols-3 h3{margin-bottom:8px}
.fpp-cols-2 p,.fpp-cols-3 p{color:var(--muted);margin-bottom:8px}.fpp-cols-2 .fpp-link,.fpp-cols-3 .fpp-link{margin-right:28px}
:where(.fpp main) section{padding:80px 0}

/* Page heads */
.fpp main .fpp-hero{padding:56px 0 52px;border-bottom:1px solid var(--line)}
.fpp-hero h1{max-width:15em;margin-bottom:20px}
.fpp main .fpp-pagehead{padding:64px 0 40px}
.fpp main .fpp-pagehead-tight{padding:28px 0 28px}
.fpp-pagehead h1{max-width:17em}
.fpp-pagehead .fpp-lede{margin-bottom:0}
.fpp-crumb ol{list-style:none;margin:0 0 28px;padding:0;display:flex;flex-wrap:wrap;gap:4px 10px;font-size:14px;color:var(--muted)}
.fpp-crumb li+li::before{content:"/";margin-right:10px;color:#8a8f96}
.fpp-crumb a{display:inline-block;padding:10px 0;color:var(--navy)}
.fpp-crumb li[aria-current]{padding:10px 0}

/* H2 free example */
.fpp main .fpp-example{padding:56px 0 48px}
.fpp-example h2{font-size:clamp(32px,2.2vw + 18px,46px);margin-bottom:8px}
.fpp-example-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);gap:28px;margin:28px 0 24px;align-items:start}
.fpp-example-figure{overflow:hidden;border-radius:4px;background:var(--stone)}
.fpp-example-figure img{width:100%;aspect-ratio:3/2;object-fit:cover;object-position:62% 55%}
.fpp-example-figure figcaption,.fpp-teaser figcaption,.fpp-case-feature figcaption{padding:10px 16px;background:var(--stone);font-size:14px;color:#33404f}
.fpp-fixed{display:flex;flex-wrap:wrap;gap:16px 0;margin:22px 0 12px}
.fpp-fixed>div{padding-right:32px;margin-right:32px;border-right:1px solid var(--line)}
.fpp-fixed>div:last-child{border-right:0;margin-right:0;padding-right:0}
.fpp-fixed dt{font-size:15px;color:#33404f}
.fpp-fixed dd{margin:0;font:450 34px/1.2 var(--display);font-variant-numeric:lining-nums;white-space:nowrap}
.fpp-example-disclaimer{font-size:14px;color:var(--muted);margin:0!important;max-width:52ch}
.fpp-alloc{background:var(--navy);color:var(--on-navy);border-radius:4px;padding:30px 32px 26px}
.fpp-alloc-list{margin:0}
.fpp-alloc-row{display:flex;justify-content:space-between;align-items:center;gap:8px 20px;padding:8px 0;min-height:44px}
.fpp-alloc-row dt{font-size:16px;line-height:1.4}
.fpp-alloc-row dd{margin:0;font-size:17px;font-variant-numeric:tabular-nums;white-space:nowrap}
.fpp-alloc-row[data-kind="subtotal"]{margin-top:10px;padding-top:16px;border-top:1px solid #ffffff59;font-weight:650}
.fpp-alloc-row[data-kind="reserve"]{margin:8px -14px 0;padding:10px 14px;border:1px dashed #ffffff73;border-radius:3px}
.fpp-alloc-row[data-kind="total"]{margin-top:18px;padding-top:18px;border-top:1px solid #ffffff59;align-items:flex-end;flex-wrap:wrap}
.fpp-alloc-row[data-kind="total"] dt{font-size:17px;font-weight:650}
.fpp-alloc-row[data-kind="total"] dt span{display:block;font-size:14px;font-weight:400;color:var(--on-navy-soft)}
.fpp-alloc-row[data-kind="total"] dd{font:500 clamp(40px,3vw + 20px,58px)/1 var(--display);color:#e3c478;font-variant-numeric:lining-nums}
.fpp-alloc-scope{margin:18px 0 0!important;font-size:14px;line-height:1.6;color:var(--on-navy-soft)}
.fpp-works-choice{display:none;gap:10px}
.js .fpp-works-choice{display:inline-flex}
.js .fpp-works-static{display:none}
.fpp-works-choice label{position:relative;display:block;cursor:pointer}
.fpp-works-choice input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.fpp-works-choice span{display:flex;align-items:center;justify-content:center;gap:6px;min-width:104px;min-height:44px;padding:8px 14px;border:1px solid #ffffffb3;border-radius:3px;font-size:16px;transition:background-color .15s,color .15s}
.fpp-works-choice input:checked+span{background:#e3c478;border-color:#e3c478;color:var(--ink);font-weight:650}
.fpp-works-choice input:checked+span::before{content:"✓";font-size:14px}
.fpp-works-choice input:focus-visible+span{outline:3px solid #fff;outline-offset:3px}
.fpp-takeaway{font-size:1.06em;max-width:70ch;margin:0 0 4px!important}
.fpp-example-links{display:flex;flex-wrap:wrap;gap:0 40px;margin:0 0 20px!important}
.fpp-example-proof{display:flex;flex-wrap:wrap;align-items:center;gap:0 32px;margin:0!important;padding-top:14px;border-top:1px solid var(--line);font-size:15px;color:#33404f}
.fpp-noscript-table{width:100%;border-collapse:collapse;font-size:16px;margin:8px 0 20px}
.fpp-noscript-table caption{text-align:left;font-weight:650;padding-bottom:8px}
.fpp-noscript-table th,.fpp-noscript-table td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left}

/* H3 roles, H4 questions, H5 tools */
.fpp main .fpp-roles,.fpp main .fpp-tools{padding:52px 0}
.fpp main .fpp-questions{padding:64px 0}
.fpp-roles h2{margin-bottom:24px}
.fpp-roles-list{grid-template-columns:repeat(4,minmax(0,1fr))}
.fpp-roles-list>li{padding-right:28px;margin-right:28px}
.fpp-roles-list h3{margin-bottom:4px}
.fpp-roles-list p{margin-bottom:2px;color:var(--muted)}
.fpp-roles-list .fpp-link{display:flex;width:fit-content}

/* H6 teaching and courses */
.fpp-teach{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:48px;margin:36px 0 48px;align-items:start}
.fpp-teach-slide a{display:block;border:1px solid var(--line);background:#fff;padding:8px}
.fpp-teach-slide figcaption{margin-top:10px;font-size:14px;color:var(--muted)}
.fpp-teach-questions{padding-left:40px;border-left:1px solid var(--line)}
.fpp-teach-questions h3{font-size:28px}
.fpp-teach-questions ul{list-style:none;margin:0 0 16px;padding:0}
.fpp-teach-questions li{padding:16px 0;border-bottom:1px solid var(--line);font-size:1.1em}
.fpp-offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line);padding-top:36px}
.fpp-offer{padding-right:48px}
.fpp-offer+.fpp-offer{padding:0 0 0 48px;border-left:1px solid var(--line)}
.fpp-price{font:500 60px/1 var(--display);margin:0 0 6px!important;font-variant-numeric:lining-nums}
.fpp-price span{font-size:.62em}
.fpp-price-note{color:var(--muted);margin-bottom:18px!important}
.fpp-offer-lead{font-size:1.1em}
.fpp-offer-links{display:flex;flex-wrap:wrap;gap:0 32px;margin:8px 0 0!important}
.fpp-offers-terms{margin:32px 0 0!important;padding-top:20px;border-top:1px solid var(--line);font-size:15px;color:#33404f;max-width:none}

/* H7 Navigator */
.fpp main .fpp-navigator{background:var(--navy);color:var(--on-navy);padding:72px 0}
.fpp-navigator .fpp-eyebrow{color:#e3c478}
.fpp-navigator .fpp-lede{color:var(--on-navy-soft)}
.fpp-navigator p{max-width:68ch}
.fpp-navigator .fpp-fine{color:var(--on-navy-soft);margin-top:20px}.fpp-navigator .fpp-fine+.fpp-fine{margin-top:0}
.fpp main .fpp-navigator a.fpp-link{color:var(--on-navy)}
.fpp main .fpp-navigator :where(a,button):focus-visible{outline-color:#fff}
.fpp-steps{list-style:none;counter-reset:step;margin:32px 0 28px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 32px;max-width:1000px}
.fpp-steps li{counter-increment:step;position:relative;padding-left:60px;min-height:44px}
.fpp-steps li::before{content:counter(step);position:absolute;left:0;top:0;width:42px;height:42px;border-radius:50%;background:#e3c478;color:var(--ink);font:600 20px/42px var(--display);text-align:center}
.fpp-steps strong{display:block;font:500 22px/1.25 var(--display)}
.fpp-steps span{display:block;font-size:15px;color:var(--on-navy-soft)}
.fpp-trial-facts{font:450 26px/1.3 var(--display);margin-bottom:6px!important}

/* H8 update, H9 method */
.fpp main .fpp-update{padding:64px 0;border-bottom:1px solid var(--line)}
.fpp-update-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:start}
.fpp-update h2{margin:0}
.fpp-update article{padding-left:40px;border-left:1px solid var(--line)}
.fpp-update-meta{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:#33404f;margin-bottom:10px!important}
.fpp-update h3 a{text-decoration:none}
.fpp-update h3 a:hover{text-decoration:underline;text-decoration-color:var(--gold)}
.fpp-update article p{color:var(--muted);margin-bottom:4px}
.fpp main .fpp-method{padding:64px 0 80px}
.fpp-method-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 64px;margin-top:28px}
.fpp-method-grid h3{font-size:26px}
.fpp-method-grid p{color:#33404f;margin-bottom:12px}
.fpp-method [id]{scroll-margin-top:24px}
.fpp-instructor{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,1.6fr);gap:32px 64px;margin-top:48px;padding-top:40px;border-top:1px solid var(--line)}
.fpp-instructor h3{font-size:40px;margin-bottom:12px}
.fpp-instructor h3 span{display:block;margin-top:10px;font:600 14px/1.6 var(--body);letter-spacing:.07em}
.fpp-instructor-role{font-size:16px;line-height:1.5;margin-bottom:10px!important}
.fpp-instructor-lead{font:450 24px/1.45 var(--display)}
.fpp-instructor p{max-width:66ch}.fpp-inline-link{display:inline-block;padding:10px 0;font-size:15px;font-weight:550}

/* Bands and hubs */
.fpp main .fpp-band{background:var(--navy);color:var(--on-navy);padding:44px 0}
.fpp-band-in{display:flex;justify-content:space-between;align-items:center;gap:24px 48px;flex-wrap:wrap}
.fpp-band h2{margin-bottom:6px}
.fpp-band p{margin:0!important;color:var(--on-navy-soft)}
.fpp main .fpp-band a:focus-visible{outline-color:#fff}
.fpp main .fpp-hub{padding:8px 0 64px}
.fpp-hub-item{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:32px 64px;padding:48px 0;border-top:1px solid var(--line);align-items:start}
.fpp-hub-item .fpp-lede{margin-bottom:24px}
.fpp-hub-facts{margin:0;padding-left:40px;border-left:1px solid var(--line)}
.fpp-hub-facts>div{padding:14px 0;border-bottom:1px solid var(--line)}
.fpp-hub-facts>div:first-child{padding-top:0}
.fpp-hub-facts>div:last-child{border-bottom:0}
.fpp-hub-facts dt{font:650 13px/1.5 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--bronze)}
.fpp-hub-facts dd{margin:4px 0 0;font-size:16px;line-height:1.55}
.fpp main .fpp-teaser{padding:48px 0}
.fpp-teaser-in{display:grid;grid-template-columns:380px minmax(0,1fr);gap:48px;align-items:center}
.fpp-teaser img,.fpp-case-feature img{width:100%;aspect-ratio:3/2;object-fit:cover;object-position:62% 55%}
.fpp-teaser h2{font-size:clamp(26px,1.4vw + 16px,34px)}
.fpp-teaser-figures{font-size:15px;color:#33404f}
.fpp-footnote{padding-top:28px;padding-bottom:40px;font-size:15px;color:#33404f;text-align:center;margin:0!important}
.fpp-case-feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;padding:40px 0;border-top:1px solid var(--line);align-items:start}
.fpp-case-feature .fpp-hub-facts{padding-left:0;border-left:0;margin:0 0 28px}
.fpp-hub-alt{margin:0!important;padding-top:24px;border-top:1px solid var(--line)}

/* Library */
.fpp main .fpp-lib{padding:0 0 64px}
.fpp-filters{border-bottom:1px solid var(--line);margin-bottom:8px}
html:not(.js) .fpp-filters{display:none}
.fpp-filter ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 36px}
.fpp-filter-type a{display:inline-flex;align-items:center;min-height:48px;border-bottom:3px solid transparent;text-decoration:none;font-size:17px;color:#33404f}
.fpp-filter-type a[aria-current]{border-bottom-color:#98711d;color:var(--ink);font-weight:650}
.fpp-filter-topic{display:flex;flex-wrap:wrap;align-items:center;gap:4px 20px;padding:14px 0 16px}
.fpp-filter-label{margin:0!important;font-size:15px;color:#33404f}
.fpp-filter-topic ul{gap:8px 10px}
.fpp-filter-topic a{display:inline-flex;align-items:center;min-height:44px;padding:6px 16px;border:1px solid var(--field-border);border-radius:3px;text-decoration:none;font-size:15px;background:var(--paper)}
.fpp-filter-topic a[aria-current]{background:var(--navy);border-color:var(--navy);color:var(--on-navy);font-weight:600}
.fpp-filter-topic a[aria-current]::before{content:"✓";margin-right:7px;font-size:13px}
.fpp-lib-status{min-height:1.6em;margin:10px 0 0!important;font-size:15px;color:#33404f}
.fpp-lib-status.is-empty{margin-top:40px!important;font-size:1.1em;color:var(--ink)}
.fpp-lib-list{list-style:none;margin:0;padding:0}
.fpp-lib-item{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:24px 48px;align-items:center;padding:32px 0;border-bottom:1px solid var(--line)}
.fpp-lib-item:not(.has-art){grid-template-columns:minmax(0,1fr)}
.fpp-lib-item.is-featured{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:48px}
.fpp-lib-item.is-featured .fpp-lib-art{order:-1}
.fpp-lib-art img{width:100%;aspect-ratio:3/2;object-fit:cover}
.fpp-lib-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin-bottom:10px!important;font:650 13px/1.5 var(--body);letter-spacing:.12em;text-transform:uppercase}
.fpp-lib-topic{color:var(--bronze)}
.fpp-lib-date{color:#33404f}.fpp-lib-type{color:var(--ink)}
.fpp-lib-meta span:not(:last-child)::after{content:"·";margin-left:12px;color:#33404f}.fpp-lib-draft{margin:0 0 10px!important}
.fpp-lib-item h2{font-size:clamp(32px,2vw + 18px,46px);margin-bottom:14px}
.fpp-lib-item h3{font-size:28px;margin-bottom:8px}
.fpp-lib-item :is(h2,h3) a{color:var(--ink);text-decoration:none}
.fpp-lib-item :is(h2,h3) a:hover{text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:2px}
.fpp-lib-text p{color:#33404f;max-width:60ch;margin-bottom:6px}
.fpp-lib-empty{padding:6px 0 40px;font-size:1.1em}
.fpp main .fpp-archive{padding:40px 0 72px}
.fpp-archive details{border-block:1px solid var(--line)}
.fpp-archive summary{padding:18px 0 18px 4px;cursor:pointer}
.fpp-archive-title{font:450 24px/1.2 var(--display);margin-left:8px}
.fpp-archive-note{display:block;margin:6px 0 0 26px;font-size:15px;color:#33404f}
.fpp-archive ul{margin:0 0 20px 26px;padding-left:20px}
.fpp-archive li{margin-bottom:6px}
.fpp-archive li a{display:inline-block;padding:8px 0}

/* Articles */
.fpp-article-head{padding:36px 0 40px;border-bottom:1px solid var(--line)}
.fpp-article-head-in{display:grid;grid-template-columns:minmax(0,1fr);gap:48px;align-items:center}
.fpp-article-head.has-art .fpp-article-head-in{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
.fpp-article-head h1{font-size:clamp(36px,2.6vw + 22px,56px);max-width:20em}
.fpp-standfirst{font-size:1.18em;line-height:1.5;color:#22324a;max-width:60ch}
.fpp-article-date{font-size:14px;color:var(--muted);margin-bottom:6px!important}
.fpp-article-art img{width:100%;border-radius:3px}
.fpp-draft{display:grid;gap:4px;margin:0 0 24px;padding:14px 18px;border:1px solid var(--error);border-left-width:5px;border-radius:3px;background:var(--error-surface);color:var(--error);font-size:15px;line-height:1.5}
.fpp-draft span{color:#5b2a2a}
.fpp-status-strip{list-style:none;margin:20px 0 0;padding:6px 20px;display:flex;flex-wrap:wrap;background:var(--stone);border-radius:3px;font-size:15px}
.fpp-status-strip li{padding:8px 20px 8px 0;margin-right:20px;border-right:1px solid #c7bba6}
.fpp-status-strip li:last-child{border-right:0;margin-right:0;padding-right:0}
.fpp-article-grid{display:grid;grid-template-columns:230px minmax(0,720px);gap:64px;padding-top:48px;padding-bottom:80px;align-items:start}
.fpp-article-grid.no-toc{grid-template-columns:minmax(0,720px);justify-content:center}
.fpp-toc-side{position:sticky;top:24px;padding-right:24px;border-right:1px solid var(--line)}
.fpp-toc-title,.fpp-toc-inline summary{font:650 13px/1.5 var(--body);letter-spacing:.14em;text-transform:uppercase;color:#33404f}
.fpp-toc ol{list-style:none;margin:8px 0 0;padding:0}
.fpp-toc a{display:block;padding:9px 0;font-size:15px;line-height:1.4;text-decoration:none}
.fpp-toc a:hover{text-decoration:underline;text-decoration-color:var(--gold)}
.fpp-toc-inline{display:none;margin:0 0 28px;border-block:1px solid var(--line)}
.fpp-toc-inline summary{padding:14px 0;cursor:pointer;min-height:48px}
.fpp-toc-inline ol{margin:0 0 12px}
.fpp-prose{font-size:1em;line-height:1.7}
.fpp-prose>:first-child{margin-top:0}
/* Running text keeps a 60–65 character measure; tables, figures and asides may use the wider column. */
.fpp-prose>:where(p,ul,ol,h2,h3),.fpp-prose aside>:where(p,h2){max-width:30.5em}
.fpp-prose h2{font-size:clamp(28px,1.2vw + 20px,34px);margin:48px 0 14px;scroll-margin-top:20px}
.fpp-prose h3{font-size:25px;margin:32px 0 10px;scroll-margin-top:20px}
.fpp-prose p{margin:0 0 20px}
.fpp-prose ul,.fpp-prose ol{margin:0 0 20px;padding-left:24px}
.fpp-prose li{margin-bottom:8px}
.fpp-prose a{text-decoration-thickness:1px}
.fpp-prose table{width:100%;border-collapse:collapse;font-size:16px;line-height:1.5}
.fpp-prose caption{text-align:left;font-weight:650;font-size:17px;padding:8px 0 10px}
.fpp-prose th,.fpp-prose td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.fpp-prose thead th{background:#eee6d6;font-weight:650}
.fpp-prose tbody th{font-weight:550}
.fpp-prose td:last-child{font-variant-numeric:tabular-nums}
.fpp-prose .result-table td:last-child,.fpp-prose .table-wrap td{text-align:right;white-space:nowrap}
.fpp-prose .table-wrap,.fpp-prose div[style*="overflow"]{overflow-x:auto;margin-bottom:20px}.fpp-prose .result-table th:last-child{text-align:right}
.fpp-prose .fine,.fpp-prose .meta,.fpp-prose figcaption{font-size:14px;line-height:1.65;color:var(--muted)}
.fpp-prose .eyebrow{font:650 13px/1.5 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--bronze);margin-bottom:10px}
.fpp-prose .btn{display:inline-flex;align-items:center;min-height:48px;padding:12px 24px;border-radius:3px;background:var(--navy);color:var(--on-navy);font:600 16px/1.3 var(--body);text-decoration:none}
.fpp-prose .btn:hover{background:var(--ink)}
.fpp-prose .guide-visual{margin:32px 0;padding:28px;background:#eee7d9;border:1px solid var(--line);border-radius:4px}
.fpp-prose .guide-visual h3{margin-top:0}
.fpp-prose .budget-rows{list-style:none;padding:0;margin:18px 0}
.fpp-prose .budget-rows li{display:flex;justify-content:space-between;gap:18px;padding:12px 0;margin:0;border-bottom:1px solid #c7bdab}
.fpp-prose .budget-rows strong{white-space:nowrap;font-variant-numeric:tabular-nums}
.fpp-prose .budget-total{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;background:var(--navy);color:#fff;padding:18px 20px;margin:0 0 16px}
.fpp-prose .visual-steps{list-style:none;padding:0;margin:16px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.fpp-prose .visual-steps li{margin:0;padding:18px;background:#faf7f1;border:1px solid var(--line)}
.fpp-prose .visual-steps b{display:block;color:var(--bronze);margin-bottom:6px}
.fpp-prose .visual-steps span{display:block;font-size:15px;line-height:1.5}
.fpp-prose .notice{padding:18px 22px;border:1px solid #c7b78f;background:#f5eddb;border-radius:4px;margin:0 0 20px}
.fpp-prose .notice p:last-child{margin-bottom:0}
.fpp-prose .related-workspace,.fpp-prose .article-next{margin:36px 0;padding:24px 28px;background:#eee7d9;border-left:3px solid #9b7730}
.fpp-prose .article-next{background:var(--paper);border:1px solid var(--line);border-left:3px solid #9b7730}
.fpp-prose aside h2{margin-top:0;font-size:28px}
.fpp-prose aside p:last-child{margin-bottom:0}
.fpp-prose .article-next .btn{margin:4px 16px 4px 0}.fpp-prose .article-next>a:not(.btn){display:inline-flex;align-items:center;min-height:44px}
.fpp-prose .sources li{overflow-wrap:anywhere}
.fpp-claims{min-width:640px}
.fpp-claim-limit,.fpp-claim-kind,.fpp-source-facts{display:block;margin-top:4px;font-size:14px;font-weight:400;color:var(--muted)}
.fpp-sources{padding-left:20px}
.fpp-sources li{margin-bottom:14px}
.fpp-related{margin:48px 0 0;padding:28px 0 0;border-top:2px solid var(--gold)}
.fpp-related h2{font-size:28px}
.fpp-related ul{list-style:none;margin:0;padding:0}
.fpp-related li{padding:6px 0 14px;border-bottom:1px solid var(--line)}
.fpp-related li a{display:inline-flex;align-items:center;gap:.45em;min-height:44px;font-weight:550}
.fpp-related li span:not(.fpp-arrow){display:block;font-size:15px;color:var(--muted)}
.fpp-article-back{margin:28px 0 0!important}
.fpp-article-back a{display:inline-flex;align-items:center;gap:.45em;min-height:44px}

/* Forms and results */
.fpp main .fpp-calc{padding:8px 0 72px}
.fpp main .fpp-case{padding:8px 0 64px}
html:not(.js) [data-requires-js]{display:none}
.fpp-calc-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:28px;align-items:start}
.fpp-form{background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:32px}
.fpp-form h2{margin-bottom:8px}
.fpp-form-intro{font-size:15px;color:#33404f;margin-bottom:20px!important}
.fpp-form-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}
.fpp-field{margin-bottom:20px}
.fpp-field label{display:block;font-size:16px;font-weight:600;margin-bottom:6px}
.fpp-input{display:flex;border:1px solid var(--field-border);border-radius:3px;background:#fff}
.fpp-input span{display:flex;align-items:center;justify-content:center;width:44px;border-right:1px solid var(--field-border);color:#33404f;font-size:17px}
.fpp-input input{flex:1;min-width:0;min-height:48px;padding:10px 12px;border:0;border-radius:0 3px 3px 0;background:transparent;color:var(--ink);font:17px/1.3 var(--body);font-variant-numeric:tabular-nums}
.fpp-input:focus-within{outline:3px solid #98711d;outline-offset:2px}
.fpp main .fpp-input input:focus-visible{outline:0}
.fpp-hint{font-size:14px;line-height:1.5;color:var(--muted);margin:6px 0 0!important}
.fpp-field.is-invalid .fpp-input{border:2px solid var(--error);background:var(--error-surface)}
.fpp-field.is-invalid .fpp-input span{border-right-color:var(--error)}
.fpp-field-error{margin:6px 0 0!important;font-size:15px;font-weight:600;color:var(--error)}
.fpp-field-error::before{content:"Error: "}
.fpp-error-summary{margin:0 0 20px;padding:14px 18px;border:1px solid var(--error);border-left-width:5px;border-radius:3px;background:var(--error-surface);color:var(--error)}
.fpp-error-summary h3{font:650 17px/1.4 var(--body)!important;letter-spacing:0!important;margin:0 0 6px!important}
.fpp-error-summary ul{margin:0;padding-left:20px}
.fpp-error-summary li{margin:8px 0}.fpp-error-summary a{color:var(--error)!important;font-weight:600}
.fpp-form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;margin:8px 0 16px}
.fpp-confirm{margin:0 0 16px;padding:14px 18px;border:1px solid var(--field-border);border-radius:3px;background:var(--tint)}
.fpp-confirm p{margin-bottom:10px!important;font-weight:600}
.fpp-result{background:var(--navy);color:var(--on-navy);border-radius:4px;padding:32px}
.fpp-result h2{font:650 13px/1.5 var(--body)!important;letter-spacing:.14em!important;text-transform:uppercase;color:#e3c478;margin-bottom:14px!important}
.fpp-result-empty p{color:var(--on-navy);font:450 26px/1.3 var(--display)}
.fpp-result-empty .fpp-fine{font:14px/1.6 var(--body);color:var(--on-navy-soft)}
.fpp main .fpp-result a{color:var(--on-navy)}
.fpp main .fpp-result :where(a,button):focus-visible{outline-color:#fff}
.fpp-result-label{font:450 30px/1.2 var(--display);margin-bottom:4px!important}
.fpp-result-label span{font:650 12px/1.5 var(--body);letter-spacing:.08em;text-transform:uppercase;vertical-align:middle}
.fpp-result-label span:not(:empty){margin-left:8px;padding:3px 8px;border:1px solid currentColor;border-radius:3px}
.fpp-result-total{font:500 clamp(44px,3.4vw + 22px,64px)/1.05 var(--display);color:#e3c478;margin-bottom:4px!important;font-variant-numeric:lining-nums}
.fpp-result-sub{font-size:14px;color:var(--on-navy-soft);margin-bottom:18px!important}
.fpp-result-list{margin:0}
.fpp-result-row{display:flex;justify-content:space-between;gap:20px;padding:8px 0}
.fpp-result-row dd{margin:0;font-variant-numeric:tabular-nums;white-space:nowrap}
.fpp-result-row[data-kind="subtotal"]{margin-top:10px;padding-top:16px;border-top:1px solid #ffffff59;font-weight:650}
.fpp-result-row[data-kind="reserve"]{margin:10px -14px 0;padding:10px 14px;border:1px dashed #ffffff73;border-radius:3px}
.fpp-result-note,.fpp-result-scope{margin:14px 0 0!important;font-size:14px;line-height:1.6;color:var(--on-navy-soft)}
.fpp-result-stale,.fpp-result-invalid{margin:0 0 16px!important;padding:12px 16px;border:1px solid #e3c478;border-radius:3px;font-weight:600}
.fpp-result-stale::before,.fpp-result-invalid::before{content:"! ";font-weight:700}
.fpp-result[data-state="stale"] .fpp-result-body{opacity:.55}
.fpp-result[data-state="stale"] .fpp-result-total{text-decoration:line-through;text-decoration-thickness:2px}
.fpp-next{margin-top:56px;padding-top:40px;border-top:1px solid var(--line)}
.fpp-next h2{margin-bottom:24px}

/* Case */
.fpp main .fpp-casehead{padding:28px 0 36px}
.fpp-casehead-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,500px);gap:48px;align-items:center}
.fpp-casehead img{width:100%;aspect-ratio:3/2;object-fit:cover;object-position:62% 55%;border-radius:3px}
.fpp-case-label{font-size:15px;color:#33404f;margin:16px 0 0!important}
.fpp-case-transition{max-width:76ch;color:#33404f}
.fpp-baseline{margin:8px 0 28px;padding:24px 28px;border:1px solid var(--line);border-radius:4px;background:var(--tint)}
.fpp-baseline h2{font-size:26px;margin-bottom:12px}
.fpp-baseline-list{margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px}
.fpp-baseline-list>div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid #d5c9b4;font-size:16px}
.fpp-baseline-list dd{margin:0;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:550}
.fpp-baseline-out{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:10px}
.fpp-baseline-out>div{display:block;border-bottom:0;padding-bottom:0}
.fpp-baseline-out dd{font:450 28px/1.3 var(--display)}
.fpp-baseline-out>div[data-kind="reserve"]{padding-left:16px;border-left:2px dashed #b8a98d}
.fpp-compare-block{margin-top:28px;padding:28px 32px;border:1px solid var(--line);border-radius:4px;background:var(--paper)}
.fpp-compare-block h2{font-size:28px}
.fpp-compare-block .fpp-result-stale{border-color:var(--bronze);background:#f5eddb;color:var(--ink)}
.fpp-compare-block[data-state="stale"] .fpp-compare-body{opacity:.55}
.fpp-compare{width:100%;border-collapse:collapse}
.fpp-compare th,.fpp-compare td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.fpp-compare th:first-child{text-align:left;white-space:normal;font-weight:550}
.fpp-compare thead th{font-size:15px;font-weight:650;color:#33404f}
.fpp-compare tr[data-kind="total"] td{font:450 clamp(26px,1.6vw + 14px,38px)/1.2 var(--display)}
.fpp-compare tr[data-kind="total"] td:last-child{color:var(--bronze)}
.fpp-compare-explain{margin:18px 0 6px!important;font:450 21px/1.45 var(--display)}
.fpp main .fpp-scope{padding:24px 0 48px}
.fpp-exclusions{columns:2;column-gap:48px;margin:0;padding-left:22px;max-width:900px}
.fpp-exclusions li{margin-bottom:8px;break-inside:avoid}
.fpp main .fpp-next-steps{padding:40px 0 80px;border-top:1px solid var(--line)}

/* Columns stack below 760px; gutters tighten. */
@media (max-width:1000px){
  .fpp-article-grid{grid-template-columns:minmax(0,720px);justify-content:center;gap:0}
  .fpp-toc-side{display:none}
  .fpp-toc-inline{display:block}
  .fpp-roles-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 0}
  .fpp-roles-list>li:nth-child(2n){border-right:0;margin-right:0;padding-right:0}
  .fpp-baseline-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fpp-baseline-out{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 32px}
  .fpp-baseline-out>div[data-kind="reserve"]{padding-left:0;border-left:0}
}
@media (max-width:760px){
  .fpp-wrap{padding:0 20px}
  :where(.fpp main) section{padding:48px 0}
  .fpp main .fpp-hero{padding:36px 0 40px}
  .fpp main .fpp-pagehead{padding:36px 0 28px}
  .fpp main .fpp-pagehead-tight,.fpp main .fpp-casehead{padding:16px 0 24px}
  .fpp main .fpp-example{padding:40px 0}
  .fpp main .fpp-roles,.fpp main .fpp-tools,.fpp main .fpp-questions,.fpp main .fpp-navigator,.fpp main .fpp-update,.fpp main .fpp-method{padding:48px 0}
  .fpp-actions .fpp-btn{width:100%}
  .fpp-example-grid,.fpp-teach,.fpp-offers,.fpp-update-in,.fpp-method-grid,.fpp-instructor,.fpp-hub-item,.fpp-teaser-in,.fpp-case-feature,.fpp-calc-grid,.fpp-casehead-in,.fpp-article-head.has-art .fpp-article-head-in,.fpp-form-fields,.fpp-lib-item,.fpp-lib-item.is-featured{grid-template-columns:minmax(0,1fr)}
  .fpp-example-grid{gap:20px;margin-top:20px}
  .fpp-example-figure picture,.fpp-casehead figure{display:none}
  .fpp-example-figure{background:none}
  .fpp-example-figure figcaption{padding:8px 12px;border-radius:3px;display:inline-block}
  .fpp-alloc{padding:22px 20px;margin:0 -8px}
  .fpp-alloc-row dt{flex:1;min-width:0}
  .fpp-alloc-row[data-kind="total"]{flex-wrap:wrap}
  .fpp-fixed{display:grid;grid-template-columns:auto minmax(0,1fr);gap:0}
  .fpp-fixed dd{font-size:28px}
  .fpp-alloc-row[data-kind="total"]{flex-direction:column;align-items:flex-start;gap:6px}
  .fpp-lib-meta{display:block}
  .fpp-lib-meta span{display:block}
  .fpp-lib-meta span:not(:last-child)::after{content:none}
  .fpp-fixed>div{padding-right:16px;margin-right:16px}
  .fpp-alloc-works{align-items:flex-start;flex-direction:column;gap:8px}
  .fpp-works-choice span{min-width:118px}
  .fpp-cols-2,.fpp-cols-3{grid-template-columns:minmax(0,1fr)}
  .fpp-cols-2>li,.fpp-cols-3>li{padding:20px 0;margin:0;border-right:0;border-bottom:1px solid var(--line)}
  .fpp-cols-2>li:first-child,.fpp-cols-3>li:first-child{padding-top:0}
  .fpp-cols-2>li:last-child,.fpp-cols-3>li:last-child{border-bottom:0;padding-bottom:0}
  .fpp-teach{gap:28px;margin:28px 0 36px}
  .fpp-teach-questions,.fpp-update article,.fpp-hub-facts{padding-left:0;border-left:0}
  .fpp-offer{padding:0 0 28px}
  .fpp-offer+.fpp-offer{padding:28px 0 0;border-left:0;border-top:1px solid var(--line)}
  .fpp-price{font-size:52px}
  .fpp-steps{grid-template-columns:minmax(0,1fr);gap:16px}
  .fpp-update-in{gap:24px}
  .fpp-method-grid{gap:36px}
  .fpp-instructor{gap:20px}
  .fpp-hub-item{padding:36px 0;gap:24px}
  .fpp-teaser-in{gap:24px}
  .fpp-lib-item,.fpp-lib-item.is-featured{gap:18px;padding:28px 0}
  .fpp-lib-item .fpp-lib-art{order:-1}
  .fpp-lib-item:not(.is-featured) .fpp-lib-art{max-width:320px}
  .fpp-filter ul{gap:0 24px}
  .fpp-article-head{padding:20px 0 28px}
  .fpp-article-head-in{gap:24px}
  .fpp-article-grid{padding-top:28px;padding-bottom:56px}
  .fpp-status-strip{display:block;padding:8px 16px}
  .fpp-status-strip li{border-right:0;border-bottom:1px solid #c7bba6;margin:0;padding:8px 0}
  .fpp-status-strip li:last-child{border-bottom:0}
  .fpp-prose .visual-steps{grid-template-columns:minmax(0,1fr)}
  .fpp-prose .guide-visual{padding:20px}
  .fpp-form,.fpp-result,.fpp-compare-block{padding:22px 20px}
  .fpp-form-actions .fpp-btn{width:100%}
  .fpp-baseline{padding:20px}
  .fpp-baseline-list{grid-template-columns:minmax(0,1fr)}
  .fpp-exclusions{columns:1}
  /* Baseline / your comparison / difference become stacked, labelled rows. */
  .fpp-compare thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .fpp-compare,.fpp-compare tbody,.fpp-compare tr,.fpp-compare th,.fpp-compare td{display:block;width:100%}
  .fpp-compare tr{padding:14px 0;border-bottom:1px solid var(--line)}
  .fpp-compare th,.fpp-compare td{border:0;padding:4px 0;white-space:normal}
  .fpp-compare th:first-child{font-weight:650;margin-bottom:4px}
  .fpp-compare td[data-label]{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
  .fpp-compare td[data-label]::before{content:attr(data-label);font:400 15px/1.4 var(--body);color:#33404f}
  noscript .fpp-compare thead{position:static;width:auto;height:auto;clip-path:none}
  noscript .fpp-compare,noscript .fpp-compare tbody{display:table;width:100%}
  noscript .fpp-compare tr{display:table-row}
  noscript .fpp-compare th,noscript .fpp-compare td{display:table-cell;width:auto;padding:10px 8px;border-bottom:1px solid var(--line)}
}
@media (max-width:560px){.fpp-roles-list{grid-template-columns:minmax(0,1fr);gap:0}.fpp-roles-list>li,.fpp-roles-list>li:nth-child(2n){padding:16px 0;margin:0;border-right:0;border-bottom:1px solid var(--line)}.fpp-roles-list>li:first-child{padding-top:0}.fpp-roles-list>li:last-child{border-bottom:0;padding-bottom:0}.fpp-roles-list .fpp-link{display:inline-flex;margin-right:28px}}
@media (max-width:360px){.fpp-wrap{padding:0 16px}.fpp main h1{font-size:36px!important}.fpp-alloc{margin:0;padding:20px 16px}.fpp-works-choice span{min-width:100px}.fpp-fixed>div{padding-right:12px;margin-right:12px}.fpp-fixed dd{font-size:24px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.fpp *,.fpp *::before,.fpp *::after{transition:none!important}}

/* DPE electricity-factor timeline (article figure). Every selector is scoped to .fpp-prose .fpp-dpe-*. */
.fpp-prose .fpp-dpe-timeline{margin:24px 0 28px;padding:26px 0 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.fpp-prose .fpp-dpe-timeline figcaption{font:500 27px/1.2 var(--display);letter-spacing:-.015em;color:var(--ink);margin:0 0 9px}
.fpp-prose .fpp-dpe-context{font-size:14px;line-height:1.65;color:var(--muted);margin:0 0 28px}
.fpp-prose .fpp-dpe-stages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;padding:0;margin:0 0 26px;max-width:none}
.fpp-prose .fpp-dpe-stage{position:relative;margin:0;padding:28px 22px 0 0;border-top:2px solid var(--line)}
.fpp-prose .fpp-dpe-stage::before{content:"";position:absolute;left:0;top:-7px;width:12px;height:12px;border:2px solid var(--muted);border-radius:50%;background:var(--cream)}
.fpp-prose .fpp-dpe-stage-current{border-top-color:var(--bronze)}
.fpp-prose .fpp-dpe-stage-current::before{border-color:var(--bronze);background:var(--bronze)}
.fpp-prose .fpp-dpe-stage-future{border-top:2px dashed var(--bronze);padding-right:0}
.fpp-prose .fpp-dpe-stage-future::before{border-color:var(--bronze)}
.fpp-prose .fpp-dpe-state{font:650 12px/1.5 var(--body);letter-spacing:.055em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
.fpp-prose .fpp-dpe-stage-current .fpp-dpe-state,.fpp-prose .fpp-dpe-stage-future .fpp-dpe-state{color:var(--bronze)}
.fpp-prose .fpp-dpe-date{font:600 15px/1.5 var(--body);color:var(--ink);margin:0 0 14px}
.fpp-prose .fpp-dpe-factor{font:450 58px/1 var(--display);letter-spacing:-.03em;color:var(--navy);margin:0 0 14px;font-variant-numeric:tabular-nums}
.fpp-prose .fpp-dpe-stage-past .fpp-dpe-factor{color:var(--muted)}
.fpp-prose .fpp-dpe-detail{font:400 15px/1.65 var(--body);color:var(--ink);margin:0}
.fpp-prose .fpp-dpe-takeaway{padding:18px 20px;border-left:3px solid var(--bronze);background:var(--tint);margin:0 0 16px}
.fpp-prose .fpp-dpe-takeaway p{font:400 15px/1.65 var(--body);margin:0;max-width:none}
.fpp-prose .fpp-dpe-takeaway strong{display:block;font-weight:650;margin-bottom:3px}
.fpp-prose .fpp-dpe-basis{font-size:14px;line-height:1.8;color:var(--muted);margin:0 0 20px;max-width:none}
.fpp-prose .fpp-dpe-basis a{display:inline-block;padding-block:5px}
@media(max-width:700px){
  .fpp-prose .fpp-dpe-timeline{padding-top:22px}
  .fpp-prose .fpp-dpe-timeline figcaption{font-size:26px}
  .fpp-prose .fpp-dpe-context{margin-bottom:24px}
  .fpp-prose .fpp-dpe-stages{display:block;margin:0 0 24px;padding-left:6px}
  .fpp-prose .fpp-dpe-stage{border-top:0;border-left:2px solid var(--line);padding:0 0 26px 26px}
  .fpp-prose .fpp-dpe-stage::before{left:-7px;top:4px}
  .fpp-prose .fpp-dpe-stage-current{border-left-color:var(--bronze)}
  .fpp-prose .fpp-dpe-stage-future{border-left:2px dashed var(--bronze);padding-bottom:0}
  .fpp-prose .fpp-dpe-state{margin-bottom:4px}
  .fpp-prose .fpp-dpe-date{font-size:16px;margin-bottom:9px}
  .fpp-prose .fpp-dpe-factor{font-size:48px;margin-bottom:8px}
  .fpp-prose .fpp-dpe-detail{font-size:16px;line-height:1.6}
  .fpp-prose .fpp-dpe-takeaway{padding:16px}
  .fpp-prose .fpp-dpe-takeaway p{font-size:16px}
}
@media print{.fpp-prose .fpp-dpe-timeline{break-inside:avoid}}
/* Rental cash-flow case (cases/150000-rental-flat.html) and its cases-hub card. Every selector is scoped to
   .fpp-page-rental or an .fpp-rent- class, so no existing page matches these rules. Bar colours: money in
   #36679e, money out #b4532a (both pass the palette validator against the page surfaces). */
.fpp-page-rental{--rent-in:#36679e;--rent-out:#b4532a}
.fpp-rent-verdict{background:var(--navy);color:var(--on-navy);border-radius:4px;padding:28px 32px}
.fpp main .fpp-rent-verdict h2{font:650 13px/1.5 var(--body);letter-spacing:.14em;text-transform:uppercase;color:#e3c478;margin:0 0 10px}
.fpp-rent-verdict-figure{font:500 clamp(48px,3.6vw + 20px,68px)/1 var(--display);color:#e3c478;margin:0 0 4px!important;font-variant-numeric:lining-nums}
.fpp-rent-verdict-sub{font-size:15px;color:var(--on-navy-soft);margin-bottom:18px!important}
.fpp-rent-verdict strong{font-weight:650;white-space:nowrap}
.fpp-rent-verdict-note{margin:0!important;padding-top:14px;border-top:1px solid #ffffff40;font-size:14px;color:var(--on-navy-soft)}
.fpp main .fpp-rent-flat{padding:8px 0 24px}
.fpp-rent-flat .fpp-baseline{margin:0}
.fpp-rent-intro{max-width:76ch;color:#33404f}
.fpp-rent-assume{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 40px;margin-top:20px}
.fpp main .fpp-rent-assume h3{font:650 13px/1.5 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--bronze);margin:0 0 6px}
.fpp-rent-assume dl{margin:0 0 10px}
.fpp-rent-assume dl>div{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid #d5c9b4;font-size:16px}
.fpp-rent-assume dd{margin:0;font-variant-numeric:tabular-nums;font-weight:550;text-align:right}
.fpp-rent-assume dl>div[data-kind="subtotal"]{font-weight:650;border-bottom:2px solid var(--navy)}
.fpp-rent-assume dl>div[data-kind="reserve"]{margin-top:6px;padding:8px 10px;border:1px dashed #b8a98d;border-radius:3px}
.fpp-rent-assume .fpp-fine{margin:0!important}
.fpp main .fpp-rent-lines{padding:56px 0 64px}
.fpp-rent-flow{width:100%;border-collapse:collapse;margin-top:8px}
.fpp-rent-flow thead th{font-size:14px;font-weight:650;color:#33404f;text-align:left;padding:8px 12px 8px 0;border-bottom:1px solid var(--line)}
.fpp-rent-flow thead th:nth-child(2){text-align:right}
.fpp-rent-flow th,.fpp-rent-flow td{padding:10px 16px 10px 0;border-bottom:1px solid var(--line);vertical-align:middle}
.fpp-rent-flow tbody th{font-weight:550;text-align:left;width:32%}
.fpp-rent-flow tbody th span{display:block;font-size:14px;font-weight:400;color:var(--muted);line-height:1.45}
.fpp-rent-flow td:nth-child(2){text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;width:8em;padding-right:32px}
.fpp-rent-flow tr[data-kind="subtotal"] th,.fpp-rent-flow tr[data-kind="subtotal"] td{border-top:2px solid var(--navy);font-weight:650}
.fpp-rent-flow tr[data-kind="total"] th,.fpp-rent-flow tr[data-kind="total"] td{border-top:2px solid var(--navy);border-bottom:0}
.fpp-rent-flow tr[data-kind="total"] th{font:450 24px/1.2 var(--display)}
.fpp-rent-flow tr[data-kind="total"] td:nth-child(2){font:500 clamp(26px,1.6vw + 14px,36px)/1.1 var(--display);color:var(--rent-out)}
.fpp-rent-flow tr[data-kind="total"][data-sign="in"] td:nth-child(2){color:var(--rent-in)}
.fpp-rent-barcell{padding-right:0!important}
.fpp-rent-track{position:relative;display:block;height:18px;min-width:120px}
.fpp-rent-zero{position:absolute;top:-6px;bottom:-6px;width:1px;background:#8a8f96}
.fpp-rent-bar{position:absolute;top:2px;height:14px;min-width:2px;border-radius:2px;background:var(--rent-in)}
tr[data-sign="out"] .fpp-rent-bar{background:var(--rent-out)}
tr .fpp-rent-bar.is-principal,.fpp-rent-legend span[data-sign="principal"]::before{background:repeating-linear-gradient(135deg,var(--rent-out) 0 3px,#f3d9cc 3px 6px);box-shadow:inset 0 0 0 1px var(--rent-out)}
.fpp-rent-bar.is-principal{clip-path:inset(0 2px 0 0)}
tr[data-kind="subtotal"] .fpp-rent-bar,tr[data-kind="total"] .fpp-rent-bar{top:0;height:18px}
.fpp-rent-legend{display:flex;flex-wrap:wrap;gap:8px 24px;margin:12px 0 0!important;font-size:14px;color:var(--muted)}
.fpp-rent-legend span::before{content:"";display:inline-block;width:14px;height:10px;margin-right:8px;border-radius:2px;background:var(--rent-in);vertical-align:baseline}
.fpp-rent-legend span[data-sign="out"]::before{background:var(--rent-out)}
.fpp main .fpp-rent-ratios-head{margin:40px 0 12px;font-size:24px}
.fpp-rent-ratios{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px;margin:0}
.fpp-rent-ratios>div{padding:16px 0;border-top:2px solid var(--navy)}
.fpp-rent-ratios dt{font:650 13px/1.5 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--bronze)}
.fpp-rent-ratios dd{margin:0}
.fpp-rent-ratios dd:nth-of-type(1){font:450 34px/1.25 var(--display);font-variant-numeric:lining-nums}
.fpp-rent-ratios dd:nth-of-type(2){font-size:16px;color:#33404f;line-height:1.55}
.fpp-rent-insight{margin:24px 0 0!important;padding:16px 0 16px 22px;border-left:4px solid var(--gold);max-width:72ch;font:450 21px/1.45 var(--display)}
.fpp main .fpp-rent-stresstests{padding:64px 0}
.fpp-rent-breakeven{margin:0 0 28px!important;padding:16px 20px;border:1px solid var(--line);border-radius:4px;background:var(--paper);max-width:72ch}
.fpp-rent-stress-grid{display:grid;gap:32px;margin-bottom:16px}
.fpp-rent-stress{width:100%;border-collapse:collapse;background:var(--paper);border:1px solid var(--line);border-radius:4px}
.fpp-rent-stress caption{text-align:left;font:450 24px/1.2 var(--display);padding:0 0 12px}
.fpp-rent-stress thead th{font-size:14px;font-weight:650;color:#33404f;text-align:right;padding:12px 16px;border-bottom:1px solid var(--line)}
.fpp-rent-stress thead th:first-child{text-align:left}
.fpp-rent-stress th,.fpp-rent-stress td{padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:top}
.fpp-rent-stress tbody tr:last-child>*{border-bottom:0}
.fpp-rent-stress tbody th{text-align:left;font-weight:600;width:44%}
.fpp-rent-stress tbody th span,.fpp-rent-stress td span:not(.fpp-rent-delta){display:block;font-size:14px;font-weight:400;color:var(--muted);line-height:1.5;margin-top:2px}
.fpp-rent-stress td{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.fpp-rent-stress td:nth-child(3){width:14em}
.fpp-rent-delta{position:relative;display:block;height:10px;margin-top:8px;border-left:1px solid #8a8f96}
.fpp-rent-delta span{position:absolute;left:0;top:0;height:10px;min-width:2px;border-radius:0 2px 2px 0;background:var(--rent-in)}
.fpp-rent-delta.is-capped span{border-radius:0;-webkit-mask:linear-gradient(90deg,#000 calc(100% - 14px),transparent calc(100% - 14px),transparent calc(100% - 10px),#000 calc(100% - 10px),#000 calc(100% - 6px),transparent calc(100% - 6px));mask:linear-gradient(90deg,#000 calc(100% - 14px),transparent calc(100% - 14px),transparent calc(100% - 10px),#000 calc(100% - 10px),#000 calc(100% - 6px),transparent calc(100% - 6px))}
tr[data-sign="out"] .fpp-rent-delta span{background:var(--rent-out)}
.fpp-rent-try{width:1%}
.fpp-rent-try .fpp-btn-outline{min-height:44px;padding:8px 16px;font-size:15px;white-space:nowrap}
.fpp main .fpp-rent-calc{padding:64px 0 40px}
.fpp-rent-fieldset{margin:0 0 8px;padding:0;border:0;min-width:0}
.fpp-rent-fieldset legend{padding:0;margin:0 0 12px;font:650 13px/1.5 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--bronze)}
.fpp-rent-fieldset+.fpp-rent-fieldset{padding-top:16px;border-top:1px solid var(--line)}
.fpp-rent-unit-after span{width:auto;min-width:44px;padding:0 12px;border-right:0;border-left:1px solid var(--field-border)}
.fpp-field.is-invalid .fpp-rent-unit-after span{border-left-color:var(--error)}
.fpp-rent-calc .fpp-result-total{color:#e3c478}
.fpp-rent-facts{margin:16px 0 0;padding:16px 0 0 20px;border-top:1px solid #ffffff40;font-size:15px;line-height:1.55;color:var(--on-navy-soft)}
.fpp-rent-facts li{margin-bottom:6px}
.fpp main .fpp-rent-calc .fpp-result h2:focus-visible{outline:3px solid #e3c478;outline-offset:3px}
.fpp main .fpp-rent-reading{padding:56px 0 48px;border-top:1px solid var(--line)}
.fpp-rent-questions{list-style:none;counter-reset:rent;margin:24px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.fpp-rent-questions>li{counter-increment:rent;padding:24px 28px;background:var(--paper);border:1px solid var(--line);border-radius:4px}
.fpp-rent-questions>li:first-child{border-top:4px solid var(--navy)}
.fpp-rent-questions h3::before{content:counter(rent) ". ";color:var(--bronze)}
.fpp main .fpp-rent-questions h3{margin-bottom:4px}
.fpp-rent-q{font-weight:600;color:#33404f;margin-bottom:10px!important}
.fpp-rent-questions p:last-child{margin-bottom:0}
.fpp-rent-nobuy{margin:28px 0 0!important;max-width:76ch;font:450 21px/1.45 var(--display)}
.fpp-rent-scope-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:24px 56px}
.fpp-rent-scope-grid ul{margin:0;padding-left:22px}
.fpp-rent-scope-grid li{margin-bottom:10px}
.fpp main .fpp-rent-alt{margin:4px 0 0}
.fpp-rent-teaser{background:var(--navy);color:var(--on-navy);border-radius:4px;padding:28px 32px}
.fpp-rent-teaser-label{font-size:14px;color:var(--on-navy-soft);margin:0 0 16px!important}
.fpp-rent-teaser ol{list-style:none;margin:0;padding:0}
.fpp-rent-teaser li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:12px 0;border-bottom:1px solid #ffffff33}
.fpp-rent-teaser li:last-child{border-bottom:0}
.fpp-rent-teaser strong{font:500 30px/1.1 var(--display);color:#e3c478;font-variant-numeric:lining-nums;white-space:nowrap}
@media (max-width:1000px){
  .fpp-rent-assume{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .fpp-rent-stress tbody th{width:auto}
}
@media (max-width:760px){
  .fpp main .fpp-rent-head{padding:16px 0 32px}
  .fpp-rent-verdict{padding:22px 20px}
  .fpp-rent-assume,.fpp-rent-ratios,.fpp-rent-questions,.fpp-rent-scope-grid{grid-template-columns:minmax(0,1fr)}
  .fpp main .fpp-rent-lines,.fpp main .fpp-rent-stresstests,.fpp main .fpp-rent-calc,.fpp main .fpp-rent-reading{padding:44px 0}
  /* Waterfall: label and amount on one line, the bar full width beneath. */
  .fpp-rent-flow thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .fpp-rent-flow,.fpp-rent-flow tbody{display:block}
  .fpp-rent-flow tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;padding:10px 0;border-bottom:1px solid var(--line)}
  .fpp-rent-flow th,.fpp-rent-flow td{display:block;padding:0!important;border:0!important;width:auto!important}
  .fpp-rent-flow .fpp-rent-barcell{grid-column:1 / -1}
  .fpp-rent-flow tr[data-kind="subtotal"],.fpp-rent-flow tr[data-kind="total"]{border-top:2px solid var(--navy)}
  .fpp-rent-flow tr[data-kind="total"]{border-bottom:0}
  .fpp-rent-track{min-width:0}
  /* Stress tests: one stacked, labelled card per change. */
  .fpp-rent-stress thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .fpp-rent-stress,.fpp-rent-stress tbody,.fpp-rent-stress tr,.fpp-rent-stress th,.fpp-rent-stress td{display:block;width:100%!important}
  .fpp-rent-stress{border:0;background:none}
  .fpp-rent-stress caption{display:block;padding:0 0 12px}
  .fpp-rent-stress tbody{background:var(--paper);border:1px solid var(--line);border-radius:4px}
  .fpp-rent-stress tr{padding:16px;border-bottom:1px solid var(--line)}
  .fpp-rent-stress tbody tr:last-child{border-bottom:0}
  .fpp-rent-stress th,.fpp-rent-stress td{padding:0;border:0;white-space:normal;text-align:left}
  .fpp-rent-stress th{margin-bottom:10px}
  .fpp-rent-stress td[data-label]{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:0 16px;padding:4px 0}
  .fpp-rent-stress td[data-label]::before{content:attr(data-label);font:400 15px/1.4 var(--body);color:#33404f}
  .fpp-rent-stress td span:not(.fpp-rent-delta){flex-basis:100%;text-align:right;margin-top:0}
  .fpp-rent-delta{flex-basis:100%}
  .fpp-rent-try{padding-top:10px!important}
  .fpp-rent-try .fpp-btn-outline{width:100%}
  .fpp-rent-insight,.fpp-rent-nobuy{font-size:19px}
  .fpp-rent-questions>li{padding:20px}
  .fpp-rent-teaser{padding:22px 20px}
  .fpp-rent-teaser strong{font-size:26px}
}
/* Candidate-02: jump links in the rental case's page head, to the calculator and to the stress tests. */
.fpp main .fpp-rent-jump{margin-top:24px!important;gap:8px 28px}
.fpp-rent-jump .fpp-btn{padding:12px 24px}
/* Candidate-03: the rental case introduced on the homepage, after the purchase example. Scoped to .fpp-rent-home. */
.fpp main .fpp-rent-home{padding:56px 0;background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.fpp-rent-home-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);grid-template-areas:"copy teaser" "cta teaser";gap:8px 64px;align-items:start}
.fpp-rent-home-copy{grid-area:copy}
.fpp-rent-home .fpp-rent-teaser{grid-area:teaser}
.fpp-rent-home .fpp-lede{margin-bottom:0}
.fpp-rent-home-cta{grid-area:cta;display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin:20px 0 0!important}
.fpp-rent-home-cta>span{font-size:15px;color:var(--muted)}
@media (max-width:760px){
  .fpp main .fpp-rent-home{padding:40px 0}
  .fpp-rent-home-in{grid-template-columns:minmax(0,1fr);grid-template-areas:"copy" "teaser" "cta";gap:24px}
  .fpp-rent-home-cta{margin:0!important}
  .fpp-rent-home-cta .fpp-btn{width:100%}
}
