.plan-builder{--builder-line:oklch(33% 0 0);--builder-panel:oklch(18% 0 0);--builder-ink:oklch(92% 0 0);--builder-muted:oklch(76% 0 0);color:var(--builder-ink)}
.plan-builder .proposal-opening{text-align:center;max-width:1050px;margin:0 auto 48px}.plan-builder .proposal-opening p{font-size:22px;margin-inline:auto}
.builder-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-block:1px solid var(--builder-line)}
.builder-presets button{font:inherit;text-align:left;color:inherit;background:transparent;border:0;padding:30px 24px;cursor:pointer;transition:background .25s ease-out;min-width:0}
.builder-presets button+button{border-left:1px solid var(--builder-line)}
.builder-presets button[aria-pressed=true]{background:var(--builder-panel);box-shadow:inset 0 -3px 0 var(--builder-ink)}
.builder-presets button>span{font-size:16px;color:var(--builder-muted)}
.preset-name{display:block;font-size:clamp(27px,3vw,40px);font-weight:400;margin:20px 0 12px}
.preset-price{display:block;font-size:clamp(28px,3vw,42px);font-weight:500}.preset-price small{font-size:16px;margin-left:6px;font-weight:400}
.builder-presets p{font-size:19px!important;line-height:1.5;min-height:3em}
.builder-presets ul{padding:0;list-style:none;min-height:110px}.builder-presets li{font-size:17px;margin:10px 0}.builder-presets b{display:block;font-weight:500;font-size:18px;padding-top:20px}
.builder-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);gap:clamp(30px,5vw,80px);margin-top:70px;align-items:start}
.builder-catalog h3{font-size:clamp(35px,4vw,55px);font-weight:400;margin:0}.builder-catalog>p{font-size:20px}
.builder-base{padding:25px 0;border-block:1px solid var(--builder-line);margin-top:30px}.builder-base>strong{font-size:21px;font-weight:500}.builder-base>span{display:block;margin-top:9px;font-size:17px;color:var(--builder-muted)}
.plan-builder fieldset{border:0;padding:0;margin:38px 0;min-width:0}.plan-builder legend{font-size:24px;padding:0 0 15px}
.builder-service{border-top:1px solid var(--builder-line);padding:18px 0}
.builder-service label{display:flex;align-items:center;gap:16px;min-height:60px;cursor:pointer}
.builder-service input{width:23px;height:23px;flex-shrink:0;accent-color:var(--builder-ink)}
.builder-service label>span{font-size:21px;line-height:1.4;flex:1}.builder-service small{display:block;font-size:17px;color:var(--builder-muted);margin-top:5px}.builder-service b{font-size:16px;font-weight:400}
.plan-builder summary{font-size:17px;cursor:pointer;padding:14px 0;min-height:44px}.plan-builder details p{font-size:17px;line-height:1.65;color:var(--builder-muted);max-width:65ch}
.builder-quantity{display:grid;grid-template-columns:1fr 80px;align-items:center;gap:14px}.builder-quantity label{font-size:21px}.builder-quantity label span{display:block;font-size:17px;color:var(--builder-muted);margin-top:8px}.builder-quantity input{width:80px;box-sizing:border-box;font:inherit;font-size:20px;color:inherit;background:var(--builder-panel);padding:12px 8px;border:1px solid var(--builder-line);border-radius:0}.builder-quantity input:disabled{opacity:.4}.builder-quantity>p,.builder-quantity>details{grid-column:1/-1;font-size:17px;line-height:1.6;color:var(--builder-muted)}
.builder-summary{position:sticky;top:90px;background:var(--builder-panel);padding:28px;max-height:calc(100svh - 115px);overflow:auto}
.builder-summary>p{font-size:18px!important;line-height:1.5}.builder-total strong{font-size:clamp(40px,4vw,62px);font-weight:400;display:block;line-height:1.15}.builder-total>span{font-size:18px;color:var(--builder-muted)}
.builder-summary ul{list-style:none;padding:18px 0;margin:20px 0;border-block:1px solid var(--builder-line)}.builder-summary li{display:flex;justify-content:space-between;gap:18px;font-size:16px;line-height:1.5;margin:12px 0}.builder-summary li span:last-child{white-space:nowrap}
.builder-production>span{font-size:17px;display:block}.builder-production strong{font-weight:400;display:block;font-size:28px;margin-top:6px}.builder-production small{font-size:16px}
.builder-summary button,.builder-review button{font:inherit;cursor:pointer;font-size:18px;min-height:48px;width:100%;padding:14px;background:var(--builder-ink);color:oklch(17% 0 0);border:1px solid var(--builder-ink);margin-top:14px}
.builder-summary .builder-reset{background:transparent;color:inherit;border-color:var(--builder-line)}
.plan-builder :is(button,input,summary):focus-visible{outline:2px solid var(--builder-ink);outline-offset:5px}
.builder-review,.builder-terms{margin-top:40px;border-top:1px solid var(--builder-line);padding:15px 0;scroll-margin-top:100px}.builder-review>summary,.builder-terms>summary{font-size:21px}.builder-review pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:18px;line-height:1.65}.builder-review button{max-width:280px}
.builder-announcer{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.catalog-nav{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 16px}
.catalog-nav a,#filter-selected{font:inherit;font-size:17px;padding:12px 18px;border:1px solid var(--builder-line);border-radius:10px;color:var(--builder-ink);background:var(--builder-panel);text-decoration:none;cursor:pointer;min-height:48px;box-sizing:border-box}
#filter-selected[aria-pressed=true]{background:var(--builder-ink);color:var(--builder-panel)}
.service-category{scroll-margin-top:110px}
.builder-summary h3{font-size:28px;font-weight:400;margin:0 0 12px}
.builder-summary .remove-line{display:block;width:auto;min-height:44px;padding:6px 12px;font-size:15px;margin:4px 0 0 auto;background:transparent;color:var(--builder-ink);border-color:var(--builder-line);border-radius:8px}
.builder-mobile-total{display:none}
@media(max-width:900px){.builder-mobile-total{display:flex;position:sticky;bottom:12px;z-index:8;justify-content:space-between;align-items:center;gap:12px;background:var(--builder-panel);border:1px solid var(--builder-line);padding:12px 16px;border-radius:12px;margin-top:18px}.builder-mobile-total button{font:inherit;min-height:48px;padding:10px 16px;background:var(--builder-ink);color:var(--builder-panel);border:0;border-radius:8px;cursor:pointer}.builder-summary{scroll-margin-top:90px}}
@media(max-width:900px){.builder-layout{grid-template-columns:1fr}.builder-summary{position:static;max-height:none}.builder-presets button{padding:24px 14px}.builder-presets li{font-size:16px}}
@media(max-width:640px){.builder-presets{grid-template-columns:1fr}.builder-presets button+button{border-left:0;border-top:1px solid var(--builder-line)}.builder-presets button{padding:25px 20px}.builder-presets p,.builder-presets ul{min-height:0}.builder-presets ul{margin-block:20px}.builder-service label>span{font-size:19px}.builder-service b{font-size:15px}.builder-layout{margin-top:42px}.builder-summary{padding:22px}.builder-base>span{line-height:1.6}}
@media(max-width:900px){.builder-mobile-total{top:80px;bottom:auto}.builder-summary{scroll-margin-top:165px}}
@media(prefers-reduced-motion:reduce){.builder-presets button{transition:none}}
/* Clear action surfaces: glass only on controls, never behind reading copy. */
.builder-steps{display:flex;justify-content:center;gap:clamp(15px,4vw,55px);list-style:none!important;padding:0!important;margin:0 0 30px;font-size:18px;color:var(--builder-muted)}
.builder-presets{gap:14px;border:0}
.builder-presets button,.builder-presets button+button{border:1px solid oklch(70% 0 0 / .28);border-radius:18px;background:linear-gradient(145deg,oklch(75% 0 0 / .13),oklch(25% 0 0 / .25));box-shadow:inset 0 1px 0 oklch(94% 0 0 / .18),0 12px 35px oklch(8% 0 0 / .22);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:transform .25s ease-out,border-color .25s ease-out,background .25s ease-out}
.builder-presets button[aria-pressed=true]{border-color:var(--builder-ink);box-shadow:inset 0 1px 0 oklch(94% 0 0 / .24);background:linear-gradient(145deg,oklch(70% 0 0 / .22),oklch(25% 0 0 / .7))}
.builder-presets b,.builder-service label>b{border:1px solid oklch(70% 0 0 / .35);border-radius:28px;background:linear-gradient(160deg,oklch(90% 0 0 / .16),oklch(60% 0 0 / .05));box-shadow:inset 0 1px 0 oklch(96% 0 0 / .18);padding:12px 16px;text-align:center;min-height:46px}
.builder-service label>b{font-size:16px;white-space:nowrap}
.builder-service label:has(input:checked)>b{border-color:var(--builder-ink);color:var(--builder-ink)}
.builder-service label:focus-within>b{outline:2px solid var(--builder-ink);outline-offset:3px}
.plan-builder .service-category{margin-top:20px;border-block:1px solid var(--builder-line)}
.plan-builder .service-category>summary{display:flex;justify-content:space-between;align-items:center;gap:14px;font-size:24px;list-style:none;padding:22px 16px;background:oklch(25% 0 0 / .45);border-radius:10px}
.service-category>summary::after{content:'+';font-size:28px}.service-category[open]>summary::after{content:'−'}
.service-category>summary small{font-size:16px;color:var(--builder-muted);margin-left:auto}
.plan-builder .service-category fieldset{margin:0 0 12px}
.plan-builder .service-output{font-size:19px;line-height:1.5;margin:14px 0 6px}
.plan-builder .service-purpose{font-size:17px;color:var(--builder-muted);line-height:1.5;margin:0 0 8px}
.builder-summary{display:block;border-radius:14px}
.builder-production{padding-block:18px}.builder-summary .delivery-snapshot li{display:list-item}.builder-summary .delivery-snapshot ul{padding-left:18px;list-style:disc;border:0}
.builder-summary :is(.price-breakdown,.delivery-snapshot)>summary{font-size:17px;line-height:1.5}
.builder-summary button,.builder-review button{border-radius:28px}
.builder-summary .builder-reset{background:linear-gradient(160deg,oklch(90% 0 0 / .12),oklch(50% 0 0 / .04));box-shadow:inset 0 1px 0 oklch(95% 0 0 / .15)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.builder-presets button:hover{transform:translateY(-4px) scale(1.012);border-color:var(--builder-ink)}.builder-service label:hover>b{background:oklch(70% 0 0 / .2)}}
@media(max-width:640px){.builder-steps{font-size:15px;gap:12px;flex-wrap:wrap}.builder-service label{flex-wrap:wrap}.builder-service label>span{flex-basis:calc(100% - 45px)}.builder-service label>b{margin-left:39px}.plan-builder .service-category>summary{font-size:21px}.builder-presets button+button{border:1px solid var(--builder-line)}}
