.ph-calculator{--ph-bg:#EEECE4;--ph-surface:#FBFAF6;--ph-ink:#141A16;--ph-muted:#566159;--ph-brand:#1D5A3C;--ph-oak:#C08A4A;--ph-line:#D3D0C4;--ph-deep:#12302A;box-sizing:border-box;max-width:1100px;margin:0 auto;padding:40px 20px;color:var(--ph-ink);font:400 17px/1.55 "Source Sans 3",system-ui,sans-serif}
.ph-calculator *,.ph-calculator *:before,.ph-calculator *:after{box-sizing:border-box}
.ph-calculator h2,.ph-calculator h3{font-family:"Bricolage Grotesque","Source Sans 3",system-ui,sans-serif;line-height:1.1;margin:0;letter-spacing:-.02em;color:inherit}
.ph-heading{margin-bottom:28px}.ph-kicker{display:block;color:var(--ph-oak);font-size:15px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px}.ph-heading h2{font-size:clamp(28px,5vw,42px);font-weight:700}.ph-heading p{color:var(--ph-muted);margin:10px 0 0}
.ph-wizard{background:var(--ph-surface);border-radius:10px;box-shadow:0 0 0 1px var(--ph-line);padding:6px 18px 20px}
.ph-step{padding:18px 0;border-bottom:1px solid var(--ph-line)}.ph-step:last-of-type{border-bottom:0}.ph-step h3{font-size:18px;display:flex;gap:10px;align-items:center;margin-bottom:12px}.ph-step h3 b{display:grid;place-items:center;width:26px;height:26px;flex:none;border-radius:50%;background:var(--ph-oak);color:#14110B;font-size:14px}
.ph-options{display:flex;flex-wrap:wrap;gap:8px}.ph-options button{padding:11px 16px;border-radius:8px;border:1px solid var(--ph-line);background:var(--ph-bg);color:var(--ph-ink);font:600 16px "Source Sans 3",sans-serif;cursor:pointer;text-align:left}.ph-options button[aria-pressed="true"]{border-color:var(--ph-oak);box-shadow:inset 0 0 0 1px var(--ph-oak);background:#f1e4d1}.ph-options button:focus-visible,.ph-calc-result button:focus-visible,.ph-calc-result a:focus-visible{outline:3px solid var(--ph-oak);outline-offset:2px}
.ph-slider{display:flex;align-items:center;gap:14px}.ph-slider input{flex:1;accent-color:var(--ph-oak);height:32px}.ph-slider output{font:800 26px "Bricolage Grotesque",sans-serif;min-width:80px;text-align:right;white-space:nowrap}
.ph-variant{margin-top:10px}.ph-variant-label{font-size:15px;color:var(--ph-muted);margin:10px 0 6px}.ph-checks{display:grid;gap:8px}.ph-checks label{display:flex;gap:12px;align-items:center;padding:11px 12px;border-radius:8px;background:var(--ph-bg);cursor:pointer}.ph-checks input{width:20px;height:20px;accent-color:var(--ph-oak);flex:none}
.ph-calc-result{margin-top:20px;border-radius:10px;background:var(--ph-deep);color:#fff;padding:20px}.ph-calc-result small{display:block;color:#BFD0C6}.ph-calc-result strong{display:block;font:800 clamp(28px,7vw,40px) "Bricolage Grotesque",sans-serif;color:#D6A262;margin:4px 0 6px}.ph-breakdown{margin:14px 0;color:#D5E0D9;font-size:15px}.ph-breakdown summary{cursor:pointer;font-weight:600}.ph-breakdown ul{list-style:none;padding:0;margin:8px 0}.ph-breakdown li{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px dashed rgba(255,255,255,.2)}.ph-cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.ph-cta a,.ph-cta button{display:inline-block;padding:11px 18px;border-radius:6px;background:var(--ph-oak);color:#14110B;text-decoration:none;font:600 16px "Source Sans 3",sans-serif;border:0;cursor:pointer}.ph-cta button{background:transparent;color:#fff;box-shadow:inset 0 0 0 2px currentColor}.ph-note{color:var(--ph-muted);font-size:15px;margin:14px 0 0;max-width:46em}
@media(max-width:600px){.ph-calculator{padding:30px 14px}.ph-wizard{padding:4px 14px 16px}.ph-slider output{font-size:21px;min-width:68px}.ph-options button{padding:10px 12px;font-size:15px}}

.ph-detailed{margin-top:40px}.ph-detailed h2{font-size:30px}.ph-detail-rows{margin-top:18px}.ph-detail-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px;border-bottom:1px solid var(--ph-line);background:var(--ph-surface)}.ph-detail-row small{display:block;color:var(--ph-muted)}.ph-detail-row input{width:85px;padding:10px;border:1px solid var(--ph-line);border-radius:6px;background:white;color:#141A16}

.ph-detailed>summary{cursor:pointer;font-weight:600;padding:16px 0;color:var(--ph-ink)}.ph-detailed>summary:focus-visible{outline:3px solid var(--ph-oak);outline-offset:4px}.ph-detailed[open]>summary{margin-bottom:16px}
