.constructor{padding:64px var(--gutter);background:#e7ebee;border-block:1px solid #c9d1d7;scroll-margin-top:0}
.constructor-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:38px}.constructor-heading h2{font-size:clamp(36px,4.1vw,72px)}.constructor-heading>.eyebrow{margin-bottom:20px}.constructor-heading>p{max-width:340px;font-size:16px;line-height:1.75;color:#46545f}.constructor-heading em{color:#a4352e}
.constructor-workspace{display:grid;grid-template-columns:minmax(0,1fr) 318px;align-items:start;border:1px solid #c5cdd4;background:#f8fafb;box-shadow:0 22px 50px #2232400a}.constructor-model-column{min-width:0}.constructor-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 22px;border-bottom:1px solid #d8dfe4}.constructor-plan-label{font-size:14px;font-weight:500}.constructor-camera{display:flex;gap:4px}.constructor-camera button{min-height:44px;padding:10px 12px;font-size:14px;border:1px solid transparent}.constructor-camera button[aria-pressed=true]{background:#19232b;color:#fff}.constructor-camera button:hover:not(:disabled){border-color:#81909b}.constructor-viewport{position:relative;height:clamp(330px,40vw,570px);overflow:hidden;background:#edf1f4;touch-action:pan-y}.constructor-viewport>img,.constructor-viewport>canvas{width:100%;height:100%;position:absolute;inset:0;object-fit:contain}.constructor-viewport>canvas{opacity:0;cursor:grab;touch-action:pan-y}.constructor-viewport>canvas:active{cursor:grabbing}.constructor-viewport[data-ready=true]>canvas{opacity:1}.constructor-viewport[data-ready=true]>img{opacity:0}.constructor-viewport[data-failed=true]>canvas{visibility:hidden}.constructor-view-controls{position:absolute;bottom:50px;left:20px;display:flex;gap:5px}.constructor-view-controls button{width:42px;height:42px;background:#fff;border:1px solid #b7c3cd;font-size:24px}.constructor-scene-caption{position:absolute;bottom:0;left:0;right:0;background:#edf1f4e8;border-top:1px solid #d5dde4;padding:11px 20px;color:#53616d;font-size:12px;pointer-events:none}#constructor-scene-status{position:absolute;left:20px;top:20px;right:20px;font-size:14px;line-height:1.5;color:#435461;pointer-events:none}#constructor-hotspots{position:absolute;inset:0;pointer-events:none}.constructor-pin{position:absolute;left:0;top:0;display:grid;place-items:center;width:30px;height:30px;border:2px solid #fff;border-radius:50%;background:#a4352e;color:white;box-shadow:0 2px 10px #14233155;pointer-events:auto;font-size:13px;font-weight:600;transition:background .15s;z-index:2}.constructor-pin[aria-pressed=true]{background:#1c5368;box-shadow:0 0 0 4px #fff9,0 2px 10px #14233155}.constructor-pin:hover{background:#19232b}.constructor-pin:focus-visible{outline:3px solid #19232b;outline-offset:3px}
.constructor-editor{display:grid;grid-template-columns:1fr 180px auto;gap:18px;align-items:center;padding:20px 22px;background:#e4edf1;border-block:1px solid #c1cfd7}.constructor-kicker{display:block;font-family:'IBM Plex Mono',monospace;font-size:12px;line-height:1.5;letter-spacing:.015em;color:#536572}.constructor-editor h3{font-size:19px;letter-spacing:-.025em;line-height:1.3;margin-top:4px}.constructor-editor label{font-size:12px;display:flex;flex-direction:column;gap:5px}.constructor-editor select{padding:10px;border:1px solid #9cacb7;background:#fff;color:#19232b;min-height:44px;width:100%;font-size:14px}.constructor-editor>button{font-size:14px;min-height:44px;text-decoration:underline;text-underline-offset:4px}.constructor-editor>button span{padding-left:8px}.constructor-catalog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 22px 18px}.constructor-catalog-heading h3{font-size:21px;letter-spacing:-.03em}.constructor-catalog-heading p{font-size:13px;color:#53616d;max-width:220px}.constructor-catalog{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#d5dde4;border-top:1px solid #d5dde4}.constructor-card{background:#f8fafb;padding:20px;display:grid;grid-template-columns:32px 1fr auto;gap:14px;align-items:center;min-width:0}.constructor-icon{width:28px;height:28px;stroke:currentColor;fill:none;stroke-width:1.5;color:#576b7a}.constructor-card h4{font-size:15px;font-weight:500;margin:0 0 5px;line-height:1.35}.constructor-card p{font-size:12px;line-height:1.5;color:#53616d}.constructor-card .constructor-points{display:inline-block;font-size:12px;line-height:1.5;margin-top:7px;color:#a4352e;font-weight:600}.constructor-card button{width:44px;height:44px;border:1px solid #aebac3;font-size:26px;background:white;transition:background .15s,color .15s}.constructor-card button:hover:not(:disabled){background:#19232b;color:white}.constructor-card button:disabled{opacity:1;color:#8b979e;background:#eaf0f3;border-color:#d1d9de;font-size:19px}.constructor-summary{position:sticky;top:calc(var(--header-height,88px) + 14px);background:#19232b;color:#f8fafb;padding:30px 26px;min-height:640px;align-self:start}.constructor-score-header h3{font-size:19px;letter-spacing:-.025em;line-height:1.4}.constructor-summary .constructor-kicker{color:#acbac5;margin-top:8px}.constructor-score{display:flex;align-items:baseline;gap:4px;line-height:1;margin:28px 0 20px}.constructor-score output{font-size:92px;font-weight:400;letter-spacing:-.08em;font-variant-numeric:tabular-nums}.constructor-score>span{font:28px 'IBM Plex Mono',monospace;color:#abbac6}.constructor-summary progress{appearance:none;width:100%;height:6px;border:0;display:block;background:#45535f;border-radius:0}.constructor-summary progress::-webkit-progress-bar{background:#45535f}.constructor-summary progress::-webkit-progress-value{background:#ee8a78;transition:none}.constructor-summary progress::-moz-progress-bar{background:#ee8a78}.constructor-summary[data-complete=true] progress::-webkit-progress-value{background:#9bcbb8}.constructor-summary[data-complete=true] progress::-moz-progress-bar{background:#9bcbb8}.constructor-summary[data-complete=true] .constructor-score output{color:#c4e2d5}#constructor-score-caption{margin-top:18px;line-height:1.55;font-size:15px}.constructor-scale-note{font-size:12px;line-height:1.7;color:#afbdc8;margin-top:13px}.constructor-chosen-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:28px;border-top:1px solid #52616c;padding-top:16px}.constructor-chosen-heading h4{font-size:14px;font-weight:500;margin:0}.constructor-chosen-heading button{color:#c6d1d9;text-decoration:underline;text-underline-offset:3px;font-size:12px;min-height:44px}#constructor-empty{font-size:14px;line-height:1.7;color:#afbdc8;margin-top:10px}#constructor-installed{list-style:none;margin:0;padding:0}#constructor-installed li{border-bottom:1px solid #465560}#constructor-installed button{display:flex;width:100%;gap:10px;text-align:left;align-items:center;min-height:53px;padding:10px 0}#constructor-installed button>span:first-child{width:22px;height:22px;display:grid;place-items:center;font:11px 'IBM Plex Mono',monospace;border:1px solid #7e919f;border-radius:50%;flex-shrink:0}#constructor-installed strong{display:block;font-size:13px;font-weight:500;line-height:1.4}#constructor-installed small{font-size:12px;color:#afbdc8}#constructor-installed button[aria-pressed=true]>span:first-child{background:#f5f7f9;color:#19232b}.constructor-offer-link{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#c4e2d5;color:#153429;padding:16px;font-size:14px;margin-top:24px;min-height:52px}.constructor-personnel-note{margin-top:24px;color:#afbdc8;font-size:12px;line-height:1.7}.constructor-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.constructor-offer{margin-top:32px;display:grid;grid-template-columns:1fr 1.15fr;gap:7%;padding:48px;background:#fff;border:1px solid #c5cdd4;scroll-margin-top:calc(var(--header-height,88px) + 20px)}.constructor-offer-intro .eyebrow{font-size:12px;margin-bottom:20px;color:#356953}.constructor-offer-intro h3{font-size:clamp(32px,3vw,48px);line-height:1.1}.constructor-offer-intro>p{font-size:16px;line-height:1.75;margin-top:22px;color:#46545f}#constructor-proposal-list{padding-left:20px;margin-top:20px;font-size:14px;line-height:1.7}#constructor-proposal-list li{margin:8px 0}.constructor-offer-intro .constructor-proposal-note{font-size:13px}.constructor-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.constructor-form-grid label{display:flex;flex-direction:column;gap:9px;min-width:0;font-size:14px}.constructor-field-wide{grid-column:1/-1}.constructor-form-grid input,.constructor-form-grid select,.constructor-form-grid textarea{padding:12px;border:1px solid #9daebc;border-radius:0;background:#f8fafb;color:#19232b;font-size:16px;min-width:0;width:100%;min-height:46px;resize:vertical}.constructor-form-grid input::placeholder,.constructor-form-grid textarea::placeholder{font-size:14px;color:#627480}.constructor-form-grid [aria-invalid=true]{border:2px solid #a4352e}.constructor-field-error{font-size:13px;color:#a4352e;line-height:1.5}.constructor-field-error:empty{display:none}.constructor-consent{display:flex;align-items:flex-start;gap:12px;margin-top:24px;font-size:13px;line-height:1.7}.constructor-consent input{width:20px;height:20px;flex-shrink:0;accent-color:#a4352e;margin-top:2px}.constructor-consent a{color:#773029;text-decoration:underline;text-underline-offset:3px}.constructor-config-note{font-size:12px;color:#53616d;margin:16px 0}.constructor-submit{width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:56px;padding:16px 20px;background:#a4352e;color:#fff;font-size:16px}.constructor-submit:hover:not(:disabled){background:#822921}#constructor-status{font-size:14px;line-height:1.7;margin-top:18px;overflow-wrap:anywhere}#constructor-status a{text-decoration:underline;color:#8c2f27}.constructor-noscript{margin-top:20px}.constructor-hero-link{border-bottom:1px solid #a5b1ba;padding-block:8px}.constructor button:focus-visible,.constructor select:focus-visible,.constructor input:focus-visible,.constructor textarea:focus-visible{outline:3px solid #427e9a;outline-offset:3px}.constructor-summary button:focus-visible{outline-color:#e8a692}
@media(min-width:1500px){.constructor-workspace{grid-template-columns:minmax(0,1fr) 370px}.constructor-viewport{height:620px}.constructor-summary{padding:34px}}
@media(max-width:1100px){.constructor-workspace{grid-template-columns:minmax(0,1fr) 285px}.constructor-card{padding:16px 12px;gap:9px;grid-template-columns:1fr auto}.constructor-icon{display:none}.constructor-editor{grid-template-columns:1fr 160px}.constructor-editor>button{grid-column:1/-1;justify-self:end}.constructor-summary{padding:25px 20px}.constructor-toolbar{padding:12px}.constructor-plan-label{font-size:12px}.constructor-camera button{padding:8px;font-size:12px}.constructor-offer{padding:30px;gap:5%}}
@media(max-width:800px){.constructor{padding:65px 22px}.constructor-heading{display:block}.constructor-heading>p{max-width:550px;margin-top:22px}.constructor-workspace{grid-template-columns:1fr}.constructor-viewport{height:500px}.constructor-summary{position:relative;top:auto;min-height:0;display:grid;grid-template-columns:1fr 1fr;column-gap:30px}.constructor-score-header,.constructor-score,.constructor-summary progress,#constructor-score-caption,.constructor-scale-note{grid-column:1}.constructor-chosen-heading{grid-column:2;grid-row:1;margin:0;padding:0;border:0}#constructor-empty,#constructor-installed{grid-column:2;grid-row:2/7}.constructor-summary .constructor-personnel-note{grid-column:1/-1}.constructor-offer-link{grid-column:1/-1}.constructor-catalog{grid-template-columns:1fr 1fr}.constructor-card{padding:18px;grid-template-columns:28px 1fr auto}.constructor-icon{display:block}.constructor-offer{grid-template-columns:1fr;gap:32px}.constructor-offer-intro h3{font-size:36px}.constructor-offer-intro>.constructor-proposal-note{margin-top:12px}.constructor-form-grid{gap:20px}.constructor-editor{grid-template-columns:1fr 190px auto}.constructor-editor>button{grid-column:auto}.constructor-hero-link{max-width:250px}}
@media(max-width:550px){.constructor{padding:50px 16px}.constructor-heading h2{font-size:37px}.constructor-toolbar{align-items:flex-start;flex-direction:column;gap:4px;padding:14px}.constructor-camera{width:100%;justify-content:flex-end}.constructor-camera button{font-size:14px}.constructor-plan-label{font-size:13px}.constructor-viewport{height:350px}.constructor-editor{grid-template-columns:1fr 140px;padding:16px;gap:12px}.constructor-editor>button{grid-column:1/-1}.constructor-editor h3{font-size:17px}.constructor-catalog-heading{padding:22px 16px 16px;align-items:flex-start;gap:10px}.constructor-catalog-heading h3{font-size:19px}.constructor-catalog-heading p{max-width:145px;font-size:12px}.constructor-catalog{grid-template-columns:1fr}.constructor-card{padding:15px 16px;grid-template-columns:28px 1fr 44px;gap:14px}.constructor-card h4{font-size:16px}.constructor-card p{font-size:13px}.constructor-card .constructor-points{margin-top:4px}.constructor-summary{display:block;padding:28px 22px}.constructor-score{margin:18px 0}.constructor-score output{font-size:80px}.constructor-chosen-heading{margin-top:25px;padding-top:15px;border-top:1px solid #52616c}.constructor-offer{padding:25px 18px}.constructor-form-grid{grid-template-columns:1fr}.constructor-field-wide{grid-column:auto}.constructor-offer-intro h3{font-size:33px}.constructor-scene-caption{font-size:11px;padding:10px 14px}.constructor-view-controls{left:14px}.constructor-pin{width:28px;height:28px}.hero-bottom{align-items:flex-start;gap:18px}.hero-bottom .constructor-hero-link{font-size:12px;line-height:1.55;max-width:150px;display:flex;gap:10px}.hero-bottom>a:first-child{max-width:180px}}
@media(max-width:360px){.constructor-heading h2{font-size:32px}.constructor-editor{grid-template-columns:1fr}.constructor-editor>button{grid-column:auto}.constructor-viewport{height:300px}}
.constructor-pin:before{content:'';position:absolute;inset:-8px}.constructor-card:last-child{grid-column:1/-1}.constructor-compact{position:absolute;top:16px;right:16px;background:#19232bea;color:#fff;padding:10px 14px;display:flex;gap:16px;align-items:center;pointer-events:none}.constructor-compact span{font-size:12px}.constructor-compact strong{font:500 19px 'IBM Plex Mono',monospace}.constructor-in-use .mobile-contact{display:none}
@media(max-width:800px) and (min-height:650px){.constructor-viewport{position:sticky;top:var(--header-height,76px);height:min(42svh,350px);z-index:4;border-bottom:1px solid #becbd4}.constructor-editor{position:relative;z-index:1}}
.constructor-leaders{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;stroke:#a4352e;stroke-width:1.2;opacity:.7}
.constructor-offer{scroll-margin-top:20px}
@media(prefers-reduced-motion:reduce){.constructor *,.constructor-summary progress::-webkit-progress-value{transition:none!important;animation:none!important}}

/* Selection and completion stay legible while the mobile plan is pinned. */
.constructor-compact{display:block;padding:0;max-width:calc(100% - 32px)}.constructor-compact>div{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 14px}#constructor-compact-offer{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:44px;background:#c4e2d5;color:#153429;padding:10px 16px;font-size:14px;pointer-events:auto;z-index:3}#constructor-compact-offer:focus-visible{outline:3px solid #19232b;outline-offset:3px}#constructor-compact-offer:hover{background:#d8ede3}.constructor-view-controls button{width:44px;height:44px}.constructor-view-controls button:disabled{opacity:1;background:#e1e8ed;color:#8a979f;border-color:#ccd5dc}.constructor-card p,.constructor-catalog-heading p,.constructor-editor label{font-size:14px}.constructor-camera button{min-width:44px}.constructor-pin{transition:background .15s,box-shadow .15s}.constructor-pin[aria-pressed=true]{background:#1c5368;border-color:#fff;box-shadow:0 0 0 4px #1c536833,0 2px 10px #14233155}.constructor-leaders{stroke-width:1;opacity:.65}
@media(max-width:550px){.constructor-camera{justify-content:flex-start}.constructor-scene-caption{font-size:12px}.constructor-compact{top:12px;right:12px}.constructor-compact>div{padding:8px 12px;gap:12px}.constructor-compact strong{font-size:18px}.constructor-catalog-heading{display:block}.constructor-catalog-heading p{max-width:none;margin-top:8px}.constructor-card p{line-height:1.5}.constructor-editor>button{justify-self:start}}
@media(prefers-reduced-motion:reduce){.constructor-pin{transition:none}}

.constructor-complete-action{display:none;background:#d8ede3;color:#153429;padding:14px 18px;border-top:1px solid #abcabb}.constructor-complete-action>span{font-size:14px}.constructor-complete-action>a{display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:16px;font-weight:500;min-height:44px}.constructor-complete-action>a:focus-visible{outline:3px solid #1c5368;outline-offset:3px}
@media(max-width:800px){.constructor-complete-action{display:block}}
