/* Scoped configurator styles; the shared site stylesheet supplies navigation. */
#builder-app { --bw-ivory:#131009; --bw-paper:#1c1710; --bw-pine:#f5f0e6; --bw-bronze:#c89a6b; --bw-gold:#e1c39b; --bw-muted:#b9b1a2; --bw-line:#493a29; --bw-raised:#241c13; --bw-selected:#2e2318; --bw-control-line:#8e775d; --bw-header-offset:83px; color:var(--bw-pine); color-scheme:dark; max-width:1480px; margin:0 auto; padding:54px 48px 80px; }
#builder-app *, #builder-app *::before, #builder-app *::after { box-sizing:border-box; }
#builder-app button, #builder-app input, #builder-app select, #builder-app textarea { font:inherit; }
#builder-app button { cursor:pointer; }
#builder-app button:focus-visible, #builder-app a:focus-visible, #builder-app input:focus-visible, #builder-app select:focus-visible, #builder-app textarea:focus-visible, #builder-app summary:focus-visible { outline:3px solid var(--bw-bronze); outline-offset:4px; }
#builder-app h1, #builder-app h2, #builder-app h3 { font-family:Georgia,'Times New Roman',serif; font-weight:400; letter-spacing:-.04em; }
#builder-app h1 { font-size:clamp(36px,4vw,58px); line-height:1.1; margin:12px 0 17px; }
#builder-app h2 { font-size:clamp(31px,3vw,42px); line-height:1.14; margin:8px 0 10px; }
#builder-app p { line-height:1.6; }
#builder-app .button { display:inline-flex; align-items:center; justify-content:center; gap:24px; min-height:48px; padding:13px 20px; border:1px solid var(--bw-gold); background:var(--bw-gold); color:var(--bw-ivory); border-radius:0; text-decoration:none; font-size:15px; font-weight:600; line-height:1.35; }
#builder-app .button:hover { background:var(--bw-bronze); border-color:var(--bw-bronze); }
#builder-app .button-outline { background:transparent; color:var(--bw-gold); border-color:var(--bw-bronze); }
#builder-app .button-outline:hover { background:var(--bw-raised); color:var(--bw-gold); }
.bw-builder-heading { display:flex; justify-content:space-between; gap:24px; align-items:flex-end; margin-bottom:40px; }
.bw-builder-heading > div > p:last-child { margin:0; color:var(--bw-muted); font-size:15px; }
.bw-micro-label { text-transform:uppercase; letter-spacing:.17em; font-size:10px; font-weight:650; margin:0; color:var(--bw-bronze); }
.bw-back-link { white-space:nowrap; color:var(--bw-pine); text-decoration:none; font-size:12px; padding-bottom:6px; border-bottom:1px solid var(--bw-line); }
.bw-builder-layout { display:grid; grid-template-columns:minmax(0,1.04fr) minmax(0,1fr); align-items:start; gap:48px; }
.bw-sticky { position:sticky; top:95px; }
.bw-builder-visual { min-width:0; align-self:stretch; }
.bw-gallery-main { position:relative; background:var(--bw-raised); aspect-ratio:4 / 5; }
.bw-gallery-main > img { width:100%; height:100%; display:block; object-fit:contain; object-position:center; }
.bw-gallery-toolbar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 16px; padding-top:12px; }
.bw-gallery-label { color:var(--bw-muted); font-size:10px; letter-spacing:.09em; text-transform:uppercase; }
.bw-full-photo { color:var(--bw-gold); font-size:11px; text-decoration:underline; text-underline-offset:3px; white-space:nowrap; }
.bw-gallery-controls { display:flex; align-items:center; padding:3px; background:var(--bw-paper); border:1px solid var(--bw-line); }
.bw-gallery-controls button { border:0; background:none; width:39px; height:39px; font-size:18px!important; color:var(--bw-pine); }
.bw-gallery-controls span { min-width:46px; text-align:center; font-size:11px; color:var(--bw-muted); }
.bw-gallery-thumbs { display:flex; gap:7px; padding:10px 0 2px; overflow-x:auto; scrollbar-width:thin; }
.bw-gallery-thumbs button { flex:0 0 58px; height:72px; padding:0; border:2px solid transparent; background:var(--bw-paper); opacity:.65; }
.bw-gallery-thumbs button.is-selected { border-color:var(--bw-bronze); opacity:1; }
.bw-gallery-thumbs img { width:100%; height:100%; object-fit:contain; object-position:center; display:block; }
.bw-gallery-caption { font-size:10px; color:var(--bw-muted); margin:6px 0 16px; }
.bw-price-card { padding:23px 25px; border:1px solid var(--bw-line); background:var(--bw-paper); }
.bw-price-heading { display:flex; gap:16px; align-items:center; justify-content:space-between; }
#builder-app .bw-price-heading h2 { font-size:24px; letter-spacing:-.025em; margin:6px 0 0; }
.bw-live-price { flex-shrink:0; text-align:right; }
.bw-live-price strong { display:block; font-family:Georgia,serif; font-weight:400; font-size:33px; line-height:1; letter-spacing:-.03em; }
.bw-live-price span { display:block; margin-top:8px; font-size:9px; letter-spacing:.09em; text-transform:uppercase; color:var(--bw-muted); }
.bw-current-heat { font-size:14px; color:var(--bw-muted); margin:16px 0; }
.bw-price-details { border-top:1px solid var(--bw-line); border-bottom:1px solid var(--bw-line); }
.bw-price-details summary { display:flex; justify-content:space-between; padding:15px 0; font-size:14px; list-style:none; cursor:pointer; }
.bw-price-details summary::-webkit-details-marker { display:none; }
.bw-price-details[open] summary > span { transform:rotate(45deg); }
.bw-price-lines { padding-bottom:12px; }
.bw-price-lines > div { display:flex; gap:24px; justify-content:space-between; padding:8px 0; font-size:14px; line-height:1.5; color:var(--bw-muted); }
.bw-price-lines > div > :last-child { white-space:nowrap; }
.bw-price-lines .bw-price-grand { padding-top:12px; color:var(--bw-pine); }
.bw-summary-note { display:flex; align-items:baseline; gap:9px; margin:12px 0; }
.bw-summary-note span { color:var(--bw-bronze); font-size:12px; }
.bw-summary-note p { font-size:13px; color:var(--bw-muted); margin:0; }
#builder-app .bw-summary-review { width:100%; justify-content:space-between; }
.bw-builder-workspace { min-width:0; }
.bw-steps { display:flex; border-bottom:1px solid var(--bw-line); padding-bottom:17px; margin-bottom:31px; gap:4px; }
.bw-steps button { flex:1; display:flex; align-items:center; justify-content:center; gap:7px; border:0; padding:4px 0; background:transparent; color:var(--bw-muted); font-size:13px!important; white-space:nowrap; position:relative; min-height:44px; }
.bw-steps button span { display:flex; width:24px; height:24px; align-items:center; justify-content:center; border:1px solid var(--bw-line); border-radius:50%; font-size:11px; }
.bw-steps button[aria-current] { color:var(--bw-pine); font-weight:650; }
.bw-steps button[aria-current] span { border-color:var(--bw-gold); color:var(--bw-ivory); background:var(--bw-gold); }
.bw-steps button[aria-current]::after { position:absolute; bottom:-18px; height:2px; background:var(--bw-bronze); content:''; left:0; right:0; }
.bw-step-topline { display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
.bw-step-topline > span { font-size:10px; color:var(--bw-muted); }
#builder-step-heading { scroll-margin-top:110px; }
#builder-step-heading:focus { outline:none; }
.bw-step-intro { color:var(--bw-muted); font-size:16px; margin:10px 0 25px; }
.bw-model-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:17px 12px; }
.bw-model-card { display:block; border:0; background:transparent; padding:0; color:var(--bw-pine); text-align:left; }
.bw-model-photo { display:block; position:relative; aspect-ratio:4 / 5; background:var(--bw-raised); border:2px solid transparent; }
.bw-model-photo img { display:block; object-fit:contain; object-position:center; width:100%; height:100%; }
.bw-model-card.is-selected .bw-model-photo { border-color:var(--bw-bronze); }
.bw-choice-mark { position:absolute; right:6px; bottom:6px; width:20px; height:20px; display:flex; align-items:center; justify-content:center; border-radius:50%; font-size:12px; background:var(--bw-paper); color:var(--bw-pine); }
.bw-model-card.is-selected .bw-choice-mark { background:var(--bw-gold); color:var(--bw-ivory); }
.bw-model-name { display:block; font-size:15px; font-weight:600; margin:9px 0 3px; }
.bw-model-start { display:block; font-size:14px; color:var(--bw-muted); }
.bw-help { font-size:14px; color:var(--bw-muted); margin:12px 0 0; line-height:1.65!important; }
.bw-field { margin:0 0 23px; }
.bw-field label, .bw-fieldset legend { display:block; font-size:16px; font-weight:650; margin-bottom:12px; }
.bw-field input, .bw-field select, .bw-field textarea, .bw-share-fallback input { width:100%; min-height:56px; border:1px solid var(--bw-control-line); border-radius:0; background:var(--bw-paper); padding:13px 15px; color:var(--bw-pine); font-size:18px!important; line-height:1.5; }
.bw-field input::placeholder, .bw-field textarea::placeholder { color:var(--bw-muted); opacity:1; }
.bw-field select option { color:var(--bw-pine); background:var(--bw-paper); }
.bw-field input:-webkit-autofill { -webkit-text-fill-color:var(--bw-pine); -webkit-box-shadow:0 0 0 1000px var(--bw-paper) inset; caret-color:var(--bw-pine); }
.bw-field textarea { resize:vertical; }
.bw-fieldset { padding:0; border:0; margin:0 0 26px; min-width:0; }
.bw-fieldset legend { padding:0; }
.bw-size-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.bw-size-choice { text-align:left; display:grid; gap:8px; padding:16px; border:1px solid var(--bw-line); background:var(--bw-paper); color:var(--bw-pine); min-height:78px; }
.bw-size-choice span { font-size:15px; line-height:1.4; }
.bw-size-choice strong { font-size:16px; font-weight:600; }
.bw-size-choice small { font-size:9px; text-transform:uppercase; letter-spacing:.09em; color:var(--bw-bronze); }
.bw-size-choice.is-selected, .bw-source.is-selected { border-color:var(--bw-bronze); box-shadow:inset 0 0 0 1px var(--bw-bronze); background:var(--bw-selected); }
.bw-note { background:var(--bw-raised); padding:18px 20px; margin:22px 0; border-left:2px solid var(--bw-bronze); }
.bw-note strong { font-size:15px; font-weight:600; }
.bw-note p { font-size:14px; color:var(--bw-muted); margin:7px 0 0; }
.bw-two-choice { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.bw-source { display:flex; flex-direction:column; text-align:left; border:1px solid var(--bw-line); background:var(--bw-paper); padding:18px; color:var(--bw-pine); }
.bw-source-icon { font-size:28px; line-height:1; margin-bottom:18px; color:var(--bw-bronze); }
.bw-source strong { font-weight:600; font-size:18px; }
.bw-source small { font-size:14px; color:var(--bw-muted); margin-top:6px; line-height:1.5; }
.bw-constraint { font-size:15px; padding:12px 15px; background:var(--bw-raised); margin:0 0 24px; }
.bw-selected-heater { display:grid; grid-template-columns:110px minmax(0,1fr); gap:23px; align-items:center; margin:26px 0; padding:20px; border:1px solid var(--bw-line); background:var(--bw-paper); }
.bw-selected-heater img { width:100%; height:150px; object-fit:contain; }
#builder-app .bw-selected-heater h3 { font-size:23px; margin:9px 0; line-height:1.2; }
.bw-selected-heater p { font-size:16px; margin:0 0 8px; }
.bw-selected-heater small { display:block; font-size:14px; line-height:1.5; color:var(--bw-muted); }
.bw-accessories { display:grid; gap:12px; }
.bw-accessory { padding:18px!important; border:1px solid var(--bw-control-line)!important; background:var(--bw-paper); border-radius:2px; }
.bw-accessory.is-selected { border-color:var(--bw-bronze)!important; background:var(--bw-selected); box-shadow:inset 0 0 0 1px var(--bw-bronze); }
.bw-accessory:hover { border-color:var(--bw-gold)!important; }
.bw-accessory, .bw-fulfil-choice { display:flex; gap:12px; padding:16px 0; border-bottom:1px solid var(--bw-line); align-items:baseline; cursor:pointer; }
.bw-accessory input, .bw-fulfil-choice input { accent-color:var(--bw-gold); flex:0 0 auto; width:22px; height:22px; margin:0; position:relative; top:3px; }
.bw-accessory > span, .bw-fulfil-choice > span { flex:1; min-width:0; }
.bw-accessory strong, .bw-fulfil-choice strong { display:block; font-size:17px; font-weight:600; line-height:1.5; }
.bw-accessory small, .bw-fulfil-choice small { display:block; font-size:14px; color:var(--bw-muted); line-height:1.6; margin-top:5px; }
.bw-accessory b, .bw-fulfil-choice b { font-size:16px; white-space:nowrap; font-weight:600; }
.bw-accessory.is-selected strong, .bw-fulfil-choice.is-selected strong { font-weight:650; color:var(--bw-gold); }
.bw-cladding { margin:0 0 32px; }
.bw-cladding > div { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.bw-cladding button { display:block; border:0; padding:0; background:var(--bw-raised); }
.bw-cladding img { display:block; width:100%; aspect-ratio:3 / 4; object-fit:contain; object-position:center; }
.bw-cladding figcaption { font-size:13px; line-height:1.6; color:var(--bw-muted); margin-top:9px; }
.bw-fulfil { margin-top:28px; }
.bw-fulfil-choice:first-of-type { border-top:1px solid var(--bw-line); }
.bw-step-actions { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:32px 0; }
.bw-text-button { background:none; border:0; padding:10px 0; font-size:15px!important; color:var(--bw-pine); text-decoration:none; }
.bw-text-button:hover { text-decoration:underline; }
.bw-save-tools { padding:23px 0 0; border-top:1px solid var(--bw-line); }
.bw-save-tools > div:first-child { display:flex; justify-content:space-between; align-items:baseline; gap:15px; }
.bw-save-tools strong { font-size:15px; font-weight:500; }
.bw-save-tools p { font-size:13px; color:var(--bw-muted); margin:0; }
.bw-save-buttons { display:flex; gap:20px; flex-wrap:wrap; margin:15px 0; }
.bw-save-buttons button { font-size:14px!important; background:none; border:0; border-bottom:1px solid var(--bw-control-line); padding:0 0 4px; color:var(--bw-pine); }
.bw-save-tools .bw-help { font-size:13px; }
.bw-save-tools .bw-status { min-height:19px; margin-top:10px; color:var(--bw-pine); }
.bw-share-fallback { display:block; margin:15px 0; font-size:11px; }
.bw-share-fallback input { margin-top:7px; font-size:11px!important; }
.bw-review-list { border-top:1px solid var(--bw-line); }
.bw-review-list > div { display:grid; grid-template-columns:70px minmax(0,1fr) 40px; gap:12px; padding:16px 0; border-bottom:1px solid var(--bw-line); font-size:12px; line-height:1.65; align-items:baseline; }
.bw-review-list > div > span { color:var(--bw-muted); font-size:14px; }
.bw-review-list strong { font-size:16px; font-weight:500; }
.bw-review-list button { border:0; background:none; color:var(--bw-bronze); padding:8px 0; text-decoration:underline; font-size:14px!important; }
.bw-review-total { padding:20px 0 0; }
.bw-review-total > div { display:flex; align-items:baseline; justify-content:space-between; font-size:15px; color:var(--bw-muted); padding:9px 0; gap:14px; }
.bw-review-total > div:first-child { color:var(--bw-pine); font-size:16px; }
.bw-review-total strong { font-family:Georgia,serif; font-weight:400; font-size:33px; letter-spacing:-.03em; }
.bw-request-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:24px; }
.bw-preview-copy { font-size:13px; }
.bw-request-panel { padding:25px 0 0; border-top:1px solid var(--bw-line); }
#builder-app .bw-request-panel h3 { font-size:32px; margin:10px 0 14px; }
.bw-request-panel > p { font-size:15px; color:var(--bw-muted); }
.bw-request-panel form { margin-top:23px; }
.bw-contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 14px; }
.bw-contact-grid .bw-field { margin-bottom:17px; }
.bw-preview-warning { padding:13px 15px; background:var(--bw-selected); color:var(--bw-gold); font-size:11px; }
.bw-form-actions { display:flex; gap:22px; align-items:center; margin:22px 0; }
.bw-success { padding:17px; background:var(--bw-raised); color:var(--bw-pine); border-left:2px solid var(--bw-bronze); }
.bw-success strong { font-size:13px; }
.bw-success p { font-size:12px; margin:8px 0 0; }
.bw-prepared-summary { margin:20px 0; }
.bw-prepared-summary > div { display:grid; grid-template-columns:105px 1fr; gap:16px; border-bottom:1px solid var(--bw-line); padding:13px 0; font-size:12px; line-height:1.6; }
.bw-prepared-summary dt { color:var(--bw-muted); font-size:11px; }
.bw-prepared-summary dd { margin:0; overflow-wrap:anywhere; }
.bw-help a, .bw-summary-note a { color:var(--bw-gold); text-decoration:underline; text-underline-offset:3px; }
.bw-mobile-total { display:none; }
@media(max-width:1100px) { #builder-app { padding:40px 28px 60px; } .bw-builder-layout { gap:28px; grid-template-columns:1fr 1fr; } .bw-price-card { padding:20px; } .bw-model-grid { gap:16px 9px; } .bw-steps button { flex-direction:column; gap:5px; } .bw-request-actions { grid-template-columns:1fr; } .bw-selected-heater { grid-template-columns:90px minmax(0,1fr); gap:17px; padding:16px; } }
@media(max-width:900px) { .bw-builder-heading { display:block; margin-bottom:30px; } .bw-back-link { display:inline-block; margin-top:20px; } .bw-builder-layout { grid-template-columns:1fr; gap:30px; max-width:640px; margin:auto; } .bw-builder-heading { max-width:640px; margin-left:auto; margin-right:auto; } .bw-sticky { position:static; } .bw-gallery-thumbs button { flex-basis:56px; height:70px; } .bw-price-card { padding:20px; } #builder-app .bw-summary-review { display:none; } .bw-steps { position:sticky; top:var(--bw-header-offset); z-index:10; background:var(--bw-ivory); padding-top:14px; } .bw-steps button { flex-direction:row; } .bw-builder-visual { align-self:auto; } .bw-request-actions { grid-template-columns:1fr 1fr; } }
@media(max-width:520px) { #builder-app { padding:28px 20px 50px; } #builder-app h1 { font-size:38px; } .bw-builder-heading > div > p:last-child { font-size:13px; max-width:310px; } .bw-builder-heading { margin-bottom:24px; } .bw-gallery-label { width:100%; font-size:9px; } .bw-price-heading { align-items:flex-start; } #builder-app .bw-price-heading h2 { font-size:20px; max-width:155px; } .bw-live-price strong { font-size:29px; } .bw-steps button { flex-direction:column; gap:5px; font-size:12px!important; } .bw-step-topline > span { display:none; } .bw-model-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:19px 13px; } .bw-model-name { font-size:15px; } .bw-model-start { font-size:14px; } .bw-step-actions .button { gap:12px!important; padding:12px 14px!important; font-size:14px!important; } .bw-size-grid { gap:8px; } .bw-size-choice { padding:13px; } .bw-source { padding:15px; } .bw-accessory, .bw-fulfil-choice { gap:9px; } .bw-accessory, .bw-fulfil-choice { display:grid; grid-template-columns:22px minmax(0,1fr); align-items:start; } .bw-accessory b, .bw-fulfil-choice b { grid-column:2; font-size:16px; } .bw-selected-heater { grid-template-columns:85px minmax(0,1fr); } #builder-app .bw-selected-heater h3 { font-size:22px; } .bw-save-tools > div:first-child { display:block; } .bw-save-tools > div:first-child p { margin-top:5px; } .bw-contact-grid { grid-template-columns:1fr; } .bw-request-actions { grid-template-columns:1fr; } .bw-review-list > div { grid-template-columns:55px minmax(0,1fr) 36px; gap:10px; } .bw-form-actions { align-items:stretch; flex-direction:column; gap:5px; } .bw-prepared-summary > div { grid-template-columns:87px minmax(0,1fr); gap:10px; } }
@media(max-width:900px) {
  body:has(#builder-app) { padding-bottom:calc(88px + env(safe-area-inset-bottom, 0px)); }
  #builder-app { padding-bottom:calc(120px + env(safe-area-inset-bottom, 0px)); }
  #builder-app button, #builder-app input, #builder-app select, #builder-app textarea, #builder-app a { scroll-margin-bottom:125px; }
  .bw-mobile-total { display:block; position:fixed; inset:auto 0 0; z-index:40; padding:12px 20px calc(12px + env(safe-area-inset-bottom, 0px)); background:var(--bw-paper); border-top:1px solid var(--bw-line); box-shadow:0 -5px 24px #0e0b0780; }
  .bw-mobile-total-inner { display:flex; justify-content:space-between; align-items:center; gap:18px; max-width:640px; margin:0 auto; }
  .bw-mobile-total-price { min-width:0; }
  .bw-mobile-total-price > span { display:block; font-size:11px; font-weight:500; color:var(--bw-muted); margin-bottom:4px; line-height:1.4; }
  .bw-mobile-total-price > strong { display:block; font-family:Georgia,serif; font-size:28px; font-weight:400; line-height:1.05; letter-spacing:-.035em; }
  #builder-app .bw-mobile-total .button { min-height:46px; padding:12px 17px; gap:12px; font-size:14px; flex-shrink:0; }
  body:has(#builder-app) .backtop { bottom:calc(102px + env(safe-area-inset-bottom, 0px)); }
}
@media(max-width:800px) { #builder-app { --bw-header-offset:74px; } }
@media(max-width:600px) { #builder-app { --bw-header-offset:69px; } }
@media print { .bw-mobile-total { display:none!important; } }
@media(prefers-reduced-motion:reduce) { #builder-app *, #builder-app *::before, #builder-app *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
