.configurator-main{background:#f4f1ed}.config-hero{background:#171717;color:#fff;padding:74px 0 68px}.config-hero h1{font-size:clamp(2.5rem,5vw,4.8rem);margin:.2em 0}.config-hero p{max-width:820px;color:#c9c9c9;font-size:1.08rem}.config-section{padding:54px 0 90px}.config-shell{display:grid;grid-template-columns:minmax(320px,.82fr) minmax(480px,1.18fr);gap:28px;align-items:start}.config-controls,.preview-card,.quote-card{background:#fff;border:1px solid #dedbd6;border-radius:20px;padding:26px;box-shadow:0 12px 40px rgba(0,0,0,.055)}.config-controls{position:sticky;top:105px}.config-step{display:flex;gap:13px;align-items:center;margin:4px 0 18px}.config-step:not(:first-child){margin-top:29px;padding-top:25px;border-top:1px solid #e6e2dd}.config-step>span{width:37px;height:37px;flex:0 0 37px;border-radius:50%;display:grid;place-items:center;background:#b91c1c;color:#fff;font-size:.76rem;font-weight:900}.config-step strong,.config-step small{display:block}.config-step small{color:#777;margin-top:2px}.field{display:grid;gap:7px}.field label{font-size:.81rem;font-weight:800;color:#333}.field input,.field select,.field textarea{width:100%;border:1px solid #ccc6bf;border-radius:10px;background:#fff;padding:12px 13px;font:inherit;color:#222}.field textarea{resize:vertical}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.unit-input{position:relative}.unit-input input{padding-right:48px}.unit-input span{position:absolute;right:13px;top:50%;transform:translateY(-50%);font-size:.75rem;font-weight:800;color:#777}.door-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;max-height:280px;overflow:auto;padding-right:3px}.door-choice{appearance:none;border:1px solid #d8d3cd;background:#faf9f7;border-radius:10px;padding:9px 5px;cursor:pointer;display:grid;gap:7px;place-items:center;min-height:102px}.door-choice.active{border-color:#b91c1c;box-shadow:0 0 0 2px rgba(185,28,28,.12);background:#fff7f7}.door-choice svg{width:50px;height:62px}.door-choice span{font-size:.67rem;font-weight:800;text-align:center}.colour-layout{display:grid;grid-template-columns:1fr 132px;gap:12px}.colour-chip{border:1px solid #ccc6bf;border-radius:10px;display:flex;align-items:center;gap:9px;padding:8px;cursor:pointer}.colour-chip input{width:34px;height:34px;border:0;padding:0;background:none}.colour-chip b,.colour-chip small{display:block;font-size:.68rem}.colour-chip small{color:#777}.preview-column{display:grid;gap:24px}.preview-card{padding:0;overflow:hidden}.preview-head{display:flex;justify-content:space-between;align-items:center;padding:19px 22px;border-bottom:1px solid #e6e2dd}.preview-head span,.preview-head strong{display:block}.preview-head span{font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;color:#b91c1c;font-weight:900}.preview-head strong{font-size:1.05rem;margin-top:3px}.preview-head button{border:0;background:#eeeae5;border-radius:8px;padding:8px 11px;font-weight:800;cursor:pointer}.door-stage{height:590px;display:grid;place-items:center;padding:32px;background:linear-gradient(#f9f8f6 68%,#e7e2dc 68%);position:relative}.door-stage:after{content:"";position:absolute;left:8%;right:8%;bottom:31%;height:1px;background:#d2ccc5}.door-preview{height:100%;max-width:92%;position:relative;z-index:1;filter:drop-shadow(0 20px 15px rgba(0,0,0,.16))}.door-preview svg{width:100%;height:100%;display:block}.dimension-summary{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #e6e2dd}.dimension-summary>div{padding:15px 17px;border-right:1px solid #e6e2dd}.dimension-summary>div:last-child{border-right:0}.dimension-summary span,.dimension-summary strong{display:block}.dimension-summary span{font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;color:#777;font-weight:800}.dimension-summary strong{font-size:.82rem;margin-top:4px}.preview-note{font-size:.72rem;color:#777;margin:0;padding:13px 20px;background:#faf9f7;border-top:1px solid #e6e2dd}.quote-card .config-step{margin-top:0;padding-top:0;border-top:0}.quote-card form{display:grid;gap:15px}.consent{display:flex;gap:9px;align-items:flex-start;font-size:.78rem;color:#666}.consent input{margin-top:2px}.submit-config{justify-content:center;width:100%;border:0;cursor:pointer}.hp-field{position:absolute!important;left:-9999px!important}.door-frame{fill:#e7e4df;stroke:#8f8a83;stroke-width:7}.door-leaf{stroke:#77726c;stroke-width:2}.door-line{fill:none;stroke:rgba(60,60,60,.3);stroke-width:3}.door-rebate{fill:none;stroke:rgba(255,255,255,.65);stroke-width:4}.glass{fill:#dbe7e9;stroke:#898f8f;stroke-width:4}.kick{fill:#aaa8a3;stroke:#85827d;stroke-width:2}.metal{fill:#777;stroke:#555;stroke-width:1}.panel{fill:none;stroke:rgba(80,80,80,.32);stroke-width:4}.panel-hi{fill:none;stroke:rgba(255,255,255,.55);stroke-width:3}.shadow-line{stroke:rgba(0,0,0,.18);stroke-width:4}.config-toast{padding:14px;border-radius:10px;background:#e9f5ed;color:#155d32;font-weight:700}.config-error{background:#fff0f0;color:#8f1414}@media(max-width:1030px){.config-shell{grid-template-columns:1fr}.config-controls{position:static}.door-stage{height:540px}}@media(max-width:650px){.config-hero{padding:50px 0}.config-section{padding:25px 0 55px}.config-controls,.quote-card{padding:18px;border-radius:14px}.door-choices{grid-template-columns:repeat(2,1fr)}.field-grid,.colour-layout{grid-template-columns:1fr}.door-stage{height:440px;padding:22px 12px}.dimension-summary{grid-template-columns:1fr 1fr}.dimension-summary>div:nth-child(2){border-right:0}.dimension-summary>div:nth-child(-n+2){border-bottom:1px solid #e6e2dd}.preview-head{padding:15px}.preview-head strong{font-size:.9rem}}

/* Configurator v2: balanced two-column layout and complete RAL Classic palette */
.config-shell{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:26px;align-items:start}
.config-controls{position:static;min-width:0}
.preview-card{min-width:0}
.quote-card{grid-column:1/-1}
.quote-card form{grid-template-columns:1fr 1fr;column-gap:18px}
.quote-card form>.field-grid,.quote-card form>.field,.quote-card form>.consent,.quote-card form>.submit-config,.quote-card form>.config-toast{grid-column:1/-1}
.quote-card form>.field-grid{grid-template-columns:repeat(4,1fr)}
.ral-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:12px;align-items:end}
.selected-ral{min-height:47px;border:1px solid #ccc6bf;border-radius:10px;padding:7px 9px;display:flex;align-items:center;gap:10px;background:#fff}
.selected-ral>span{width:34px;height:34px;border-radius:7px;border:1px solid rgba(0,0,0,.18);box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);flex:0 0 auto}
.selected-ral b,.selected-ral small{display:block;line-height:1.2}
.selected-ral b{font-size:.76rem}.selected-ral small{font-size:.68rem;color:#777;margin-top:3px}
.ral-filters{display:flex;gap:6px;overflow-x:auto;padding:12px 0 9px;scrollbar-width:thin}
.ral-filter{white-space:nowrap;border:1px solid #d4cec7;background:#faf9f7;border-radius:999px;padding:7px 10px;font-size:.68rem;font-weight:800;cursor:pointer}
.ral-filter.active{background:#171717;color:#fff;border-color:#171717}
.ral-palette{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;max-height:350px;overflow:auto;padding:2px 4px 2px 2px;scrollbar-width:thin}
.ral-swatch{position:relative;min-height:64px;border:2px solid transparent;border-radius:9px;padding:8px 6px;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;text-align:left;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(0,0,0,.14);overflow:hidden}
.ral-swatch:before{content:"";position:absolute;inset:0;background:linear-gradient(transparent 42%,rgba(0,0,0,.2));pointer-events:none}
.ral-swatch span,.ral-swatch small{position:relative;z-index:1;text-shadow:0 1px 2px rgba(0,0,0,.25)}
.ral-swatch span{font-size:.69rem;font-weight:900}.ral-swatch small{font-size:.55rem;line-height:1.12;margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ral-swatch.active{border-color:#b91c1c;box-shadow:0 0 0 2px rgba(185,28,28,.16),inset 0 0 0 1px rgba(0,0,0,.14)}
.ral-note{font-size:.67rem;color:#777;line-height:1.45;margin:9px 0 0}
.ral-empty{grid-column:1/-1;margin:8px 0;color:#777;font-size:.8rem}
.door-stage{height:620px}
@media(max-width:1100px){.ral-palette{grid-template-columns:repeat(4,minmax(0,1fr))}.quote-card form>.field-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1030px){.config-shell{grid-template-columns:1fr}.quote-card{grid-column:auto}.door-stage{height:540px}}
@media(max-width:650px){.ral-toolbar{grid-template-columns:1fr}.ral-palette{grid-template-columns:repeat(3,minmax(0,1fr));max-height:310px}.quote-card form{grid-template-columns:1fr}.quote-card form>.field-grid{grid-template-columns:1fr}.ral-swatch{min-height:60px}}

/* Keep the live door preview visible while the user works through the options. */
@media (min-width:1031px){
  .preview-card{
    position:sticky;
    top:105px;
    z-index:2;
    align-self:start;
  }
}

/* Configurator v4: reliable scrolling preview controlled by configurator-follow.js. */
@media (min-width:1031px){
  .preview-card{
    position:relative !important;
    top:auto !important;
    will-change:transform;
    transition:transform .08s linear;
  }
}
@media (prefers-reduced-motion:reduce){
  .preview-card{transition:none !important}
}

/* Configurator v5: door furniture redrawn to more closely match supplied door references. */
.metal-dark{fill:#6d6d6b;stroke:#474747;stroke-width:1.5}
.metal-light{fill:#aaa9a5;stroke:#777672;stroke-width:1}
.metal-shadow{fill:#595957;stroke:#444;stroke-width:1}
.hardware-line{stroke:#5e5e5c;stroke-width:2}
.hardware-arm{fill:none;stroke:#666663;stroke-width:7;stroke-linecap:round;stroke-linejoin:round}
.door-cutout{fill:#dfe2e0;stroke:#5e5e5c;stroke-width:1}
.panel-outer{stroke:rgba(65,65,65,.38);stroke-width:5}
.panel-mid{stroke:rgba(255,255,255,.7);stroke-width:4}
.panel-hi{stroke:rgba(70,70,70,.22);stroke-width:3}
.closer,.pull-handle,.lever-handle,.letterbox,.knocker{filter:drop-shadow(1px 2px 1px rgba(0,0,0,.18))}

.aperture-range{margin:10px 0 0;color:#6f6f6f;font-size:12px;line-height:1.45;}


/* Configurator v11: clearer consent control and keyboard-friendly dimension entry. */
.consent{
  justify-content:center;
  align-items:center;
  gap:12px;
  width:100%;
  color:#555;
  font-weight:700;
}
.consent input[type="checkbox"]{
  appearance:auto;
  -webkit-appearance:checkbox;
  width:22px !important;
  height:22px !important;
  min-width:22px;
  flex:0 0 22px;
  margin:0;
  padding:0;
  accent-color:#b91c1c;
  cursor:pointer;
}
.consent span{max-width:520px;line-height:1.4}
.unit-input input[type="number"]{-moz-appearance:textfield}
.unit-input input[type="number"]::-webkit-outer-spin-button,
.unit-input input[type="number"]::-webkit-inner-spin-button{opacity:1}
@media(max-width:650px){
  .consent{justify-content:flex-start;align-items:flex-start}
}

/* Configurator v15: anchored communal apertures and selectable fire-exit bars. */
.fire-exit-bar{filter:drop-shadow(1px 2px 1px rgba(0,0,0,.18))}
#handleControls .field{margin-bottom:2px}

/* V16: enhanced live 2.5D door rendering. */
.door-preview svg{overflow:visible}
.door-ground-shadow{fill:rgba(0,0,0,.24);filter:blur(5px)}
.frame-depth{fill:#5f5b56;opacity:.95}
.frame-depth-top{fill:#d2cec8;opacity:.95}
.door-frame{stroke:#77736e;stroke-width:4}
.door-leaf{stroke:#514e4a;stroke-width:2.4}
.leaf-sheen{fill:rgba(255,255,255,.10);pointer-events:none}
.glazing-shadow{fill:#343b3d;opacity:.45}
.door-rebate{fill:none;stroke:#e9e5df;stroke-width:9}
.glass{stroke:#4f646b;stroke-width:3}
.glass-shine{fill:rgba(255,255,255,.22);pointer-events:none}
.glass-edge-light{stroke:rgba(255,255,255,.75);stroke-width:2}
.kick{fill:url(#metal-fallback);stroke:#66635f;stroke-width:2}
.metal-dark{fill:#555553;stroke:#333;stroke-width:1}
.metal-light{fill:#c8c8c4;stroke:#747471;stroke-width:.8}
.metal-shadow{fill:#6f6f6c;stroke:#444;stroke-width:1}
.hardware-line{stroke:#4b4b49;stroke-width:2}
.hardware-arm{fill:none;stroke:#626260;stroke-width:6;stroke-linecap:round;stroke-linejoin:round}
.panel-outer{stroke:rgba(41,41,41,.46);stroke-width:4}
.panel-mid{stroke:rgba(255,255,255,.48);stroke-width:3}
.panel-hi{stroke:rgba(25,25,25,.22);stroke-width:2}
.shadow-line{stroke:rgba(0,0,0,.42);stroke-width:5}
.door-line{stroke:rgba(255,255,255,.24)}
.door-stage{background:linear-gradient(145deg,#faf9f7 0%,#f0ede8 67%,#ddd7cf 68%,#ebe6df 100%)}
.door-stage:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 33% 20%,rgba(255,255,255,.95),rgba(255,255,255,0) 38%),linear-gradient(90deg,rgba(0,0,0,.025),transparent 24%,rgba(255,255,255,.18) 65%,rgba(0,0,0,.05));pointer-events:none}
.door-stage:after{height:2px;background:linear-gradient(90deg,transparent,#c8c1b8 15%,#bcb4aa 50%,#c8c1b8 85%,transparent)}
.door-choice .door-ground-shadow,.door-choice .frame-depth,.door-choice .frame-depth-top{display:none}
.door-choice svg{filter:drop-shadow(0 4px 3px rgba(0,0,0,.18))}

/* V25 guided configurator rebuild */
.guided-main{background:#f5f3ef;color:#242424}.guided-hero{background:linear-gradient(120deg,#171717,#282828);color:#fff;padding:68px 0 62px}.guided-hero h1{font-size:clamp(2.4rem,5vw,4.7rem);max-width:900px;margin:.18em 0}.guided-hero p{max-width:850px;color:#d3d3d3;font-size:1.08rem}.hero-points{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.hero-points span{border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:8px 13px;font-size:.75rem;font-weight:800}.guided-section{padding:42px 0 90px}.guided-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;align-items:start}.question-column{display:grid;gap:18px}.question-card{position:relative;background:#fff;border:1px solid #ded9d2;border-radius:16px;padding:28px 28px 30px;box-shadow:0 9px 32px rgba(28,25,22,.045);scroll-margin-top:110px}.question-number{position:absolute;right:20px;top:18px;color:#b91c1c;font-size:.73rem;font-weight:900;letter-spacing:.12em}.question-copy{padding-right:52px;margin-bottom:20px}.question-copy h2{font-size:1.35rem;margin:0 0 7px;color:#232323}.question-copy p{margin:0;color:#6d6862;line-height:1.55}.option-grid{display:grid;gap:10px}.option-grid.two{grid-template-columns:repeat(2,1fr)}.option-grid.three{grid-template-columns:repeat(3,1fr)}.option-grid.four{grid-template-columns:repeat(4,1fr)}.option-card{position:relative;display:grid;align-content:start;gap:5px;min-height:104px;padding:18px;border:1px solid #d8d2cb;border-radius:11px;background:#fbfaf8;cursor:pointer;transition:.16s ease}.option-card:hover{border-color:#9c9289;background:#fff}.option-card.active{border-color:#b91c1c;background:#fff8f7;box-shadow:0 0 0 2px rgba(185,28,28,.1)}.option-card input{position:absolute;opacity:0;pointer-events:none}.option-card strong{font-size:.92rem}.option-card small{color:#766f68;line-height:1.35}.compact-field{max-width:340px;margin-bottom:14px}.conditional-panel{border-top:1px solid #ebe7e2;margin-top:18px;padding-top:18px}.guided-door-choices{grid-template-columns:repeat(4,1fr);max-height:none;overflow:visible}.guided-door-choices .door-choice{min-height:145px;padding:13px 7px;background:#fbfaf8}.guided-door-choices .door-choice svg{width:62px;height:86px}.guided-door-choices .door-choice span{font-size:.71rem}.ral-panel{margin-top:18px;padding-top:18px;border-top:1px solid #ebe7e2}.ral-palette{max-height:310px;overflow:auto;padding-right:5px}.fixed-layout-note{display:flex;justify-content:space-between;gap:16px;align-items:center;background:#f3f0ec;border-left:4px solid #b91c1c;padding:16px 18px;border-radius:7px;margin-bottom:16px}.fixed-layout-note strong,.fixed-layout-note span{display:block}.fixed-layout-note span{color:#6d6862;font-size:.82rem}.toggle-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.toggle-list label{display:flex;gap:11px;align-items:flex-start;border:1px solid #ddd7d0;border-radius:10px;padding:14px;background:#fbfaf8;cursor:pointer}.toggle-list input{width:20px;height:20px;accent-color:#b91c1c;flex:0 0 20px}.toggle-list strong,.toggle-list small{display:block}.toggle-list small{color:#746e67;margin-top:3px}.sticky-summary{position:sticky;top:92px;display:grid;gap:14px;max-height:calc(100vh - 110px);overflow:auto;padding-right:3px}.compact-preview{border-radius:15px}.compact-preview .door-stage{height:355px;padding:22px}.compact-preview .dimension-summary{grid-template-columns:1fr 1fr}.compact-preview .dimension-summary>div{border-bottom:1px solid #e6e2dd}.running-summary{background:#1e1e1e;color:#fff;border-radius:15px;padding:20px;box-shadow:0 12px 36px rgba(0,0,0,.14)}.summary-heading{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:13px;margin-bottom:11px}.summary-heading span{font-weight:900}.summary-heading strong{font-size:.68rem;color:#cfcfcf}.running-summary dl{margin:0;display:grid}.running-summary dl>div{display:grid;grid-template-columns:42% 58%;gap:8px;border-bottom:1px solid rgba(255,255,255,.1);padding:7px 0}.running-summary dt{color:#aaa;font-size:.7rem}.running-summary dd{margin:0;font-size:.72rem;font-weight:750;text-align:right}.running-summary p{font-size:.66rem;color:#aaa;margin:13px 0 0}.summary-quote-link{display:block;text-align:center;background:#b91c1c;color:#fff;text-decoration:none;font-weight:900;border-radius:9px;padding:11px;margin-top:15px}.quote-card-new form{display:grid;gap:15px}.consent input{width:22px;height:22px;accent-color:#b91c1c;flex:0 0 22px}.standard-size-field{margin-top:16px}.question-card .field-grid{margin-top:14px}.question-card .field select,.question-card .field input,.question-card .field textarea{min-height:48px}.question-card[hidden],.conditional-panel[hidden],#glassTypeWrap[hidden],#ralPaintPanel[hidden]{display:none!important}
@media(max-width:1100px){.guided-grid{grid-template-columns:minmax(0,1fr) 320px}.option-grid.four{grid-template-columns:repeat(2,1fr)}.guided-door-choices{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.guided-grid{grid-template-columns:1fr}.sticky-summary{position:relative;top:auto;max-height:none;overflow:visible;grid-row:1}.compact-preview .door-stage{height:420px}.question-column{grid-row:2}.guided-door-choices{grid-template-columns:repeat(4,1fr)}}
@media(max-width:650px){.guided-hero{padding:48px 0}.guided-section{padding:24px 0 60px}.question-card{padding:22px 17px 24px;border-radius:12px}.question-copy{padding-right:34px}.question-copy h2{font-size:1.12rem}.option-grid.two,.option-grid.three,.option-grid.four,.toggle-list{grid-template-columns:1fr}.option-card{min-height:82px}.guided-door-choices{grid-template-columns:repeat(2,1fr)}.compact-preview .door-stage{height:360px}.fixed-layout-note{align-items:flex-start;flex-direction:column}.field-grid{grid-template-columns:1fr}}
.finish-card{grid-template-rows:76px auto auto;overflow:hidden;padding-top:12px}
.finish-sample{display:block;width:100%;height:68px;border-radius:7px;border:1px solid #d6d0c8;background:#eee;box-shadow:inset 0 0 0 1px rgba(255,255,255,.45)}
.finish-plain{background:linear-gradient(135deg,#e6ded2,#c9bca9)}
.finish-primed{background:linear-gradient(90deg,#f4f3ee 0 49%,#aaaead 51% 100%)}
.finish-painted{background:linear-gradient(135deg,#b91c1c,#e23b35)}
.finish-image{background-size:cover;background-position:center}
.finish-variant-panel{margin-top:16px}
.field-label{font-weight:850;margin-bottom:10px;color:#2b2927}
.primer-card{grid-template-columns:56px 1fr;grid-template-rows:auto auto;align-items:center;min-height:86px}
.primer-card .primer-swatch{grid-row:1/3;width:48px;height:48px;border-radius:7px;border:1px solid #cac5be;box-shadow:inset 0 0 0 1px rgba(255,255,255,.65)}
.primer-card strong,.primer-card small{grid-column:2}
.white-primer{background:linear-gradient(135deg,#fff,#e8e7e1)}
.grey-primer{background:linear-gradient(135deg,#c5c7c5,#8d9190)}
@media(max-width:650px){.finish-card{grid-template-rows:62px auto auto}.finish-sample{height:56px}}

/* V25 polish: product-style option icons and reliable desktop follow preview. */
.option-card.has-icon{
  grid-template-columns:72px minmax(0,1fr);
  grid-template-rows:auto auto;
  align-items:center;
  column-gap:14px;
  min-height:118px;
}
.option-card.has-icon .option-icon{grid-row:1/3;grid-column:1}
.option-card.has-icon strong,.option-card.has-icon small{grid-column:2}
.option-icon{
  display:grid;
  place-items:center;
  width:66px;
  height:66px;
  border-radius:9px;
  background:linear-gradient(145deg,#f3f5f5,#e4e8e9);
  border:1px solid #d3d8da;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
  flex:0 0 66px;
}
.option-icon svg{display:block;width:56px;height:56px}
.option-card.active .option-icon{background:#fff;border-color:rgba(185,28,28,.28)}
.toggle-list label.has-icon{
  display:grid;
  grid-template-columns:22px 64px minmax(0,1fr);
  align-items:center;
  min-height:94px;
}
.toggle-list label.has-icon input{grid-column:1}
.toggle-list label.has-icon .option-icon{grid-column:2;width:58px;height:58px}
.toggle-list label.has-icon .option-icon svg{width:50px;height:50px}
.toggle-list label.has-icon span:last-child{grid-column:3}
@media(max-width:650px){
  .option-card.has-icon{grid-template-columns:60px minmax(0,1fr);min-height:96px;padding:14px}
  .option-icon{width:54px;height:54px}
  .option-icon svg{width:46px;height:46px}
  .toggle-list label.has-icon{grid-template-columns:22px 52px minmax(0,1fr);padding:12px}
  .toggle-list label.has-icon .option-icon{width:48px;height:48px}
  .toggle-list label.has-icon .option-icon svg{width:42px;height:42px}
}

/* V29 clean modular guided configurator */
.option-card,.check-card{overflow:hidden}
.option-card .option-icon,.check-card .option-icon{display:grid;place-items:center;color:#2f3334;background:linear-gradient(145deg,#f7f8f8,#e9eded);border:1px solid #d7dcdd;border-radius:10px;box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
.option-card .option-icon{width:72px;height:72px;margin-bottom:10px}
.option-card .option-icon svg{width:62px;height:62px}
.option-card.texture-card .option-icon.texture{background-image:var(--texture);background-size:cover;background-position:center}
.option-card.active .option-icon,.check-card.active .option-icon{border-color:rgba(185,28,28,.35);box-shadow:0 0 0 2px rgba(185,28,28,.08),inset 0 1px 0 #fff}
.option-grid.two .option-card,.option-grid.three .option-card,.option-grid.four .option-card{grid-template-columns:82px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:14px;min-height:118px}
.option-grid .option-card>.option-icon{grid-row:1/3;grid-column:1;margin:0}
.option-grid .option-card>strong,.option-grid .option-card>small{grid-column:2}
.check-card{display:grid!important;grid-template-columns:22px 66px minmax(0,1fr)!important;gap:12px!important;align-items:center!important;min-height:94px}
.check-card>.option-icon{width:60px;height:60px}.check-card>.option-icon svg{width:52px;height:52px}
.preview-column{min-width:0}.preview-column #stickyPreview{position:sticky;top:92px;max-height:calc(100vh - 110px);overflow:auto;overscroll-behavior:contain}
.guided-grid{grid-template-columns:minmax(0,1fr) 370px!important;align-items:start}
.question-column{min-width:0}
[hidden]{display:none!important}
@media(max-width:900px){.guided-grid{grid-template-columns:1fr!important}.preview-column #stickyPreview{position:relative;top:auto;max-height:none;overflow:visible}}
@media(max-width:650px){.option-grid.two .option-card,.option-grid.three .option-card,.option-grid.four .option-card{grid-template-columns:62px minmax(0,1fr);min-height:96px;padding:13px}.option-card .option-icon{width:54px;height:54px}.option-card .option-icon svg{width:47px;height:47px}.check-card{grid-template-columns:22px 52px minmax(0,1fr)!important}.check-card>.option-icon{width:48px;height:48px}.check-card>.option-icon svg{width:42px;height:42px}}

/* V30 desktop layout correction: use the available page width and keep the preview usable. */
.guided-hero > .container,
.guided-section > .container{
  width:min(1480px,calc(100% - 48px));
}
.guided-grid{
  grid-template-columns:minmax(0,1fr) minmax(390px,430px)!important;
  gap:34px;
}
.question-column{gap:22px}
.question-card{padding:32px 34px 34px}
.question-copy h2,.question-heading h2{font-size:1.55rem}
.question-copy p,.question-heading p{font-size:.96rem}
.preview-column{width:100%;min-width:0}
.preview-column #stickyPreview{
  position:sticky;
  top:96px;
  max-height:none;
  overflow:visible;
}
.compact-preview .door-stage,
#stickyPreview .door-stage{
  height:410px;
  padding:24px;
}
#stickyPreview .spec-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:15px 18px 11px;
  border-top:1px solid #e6e2dd;
  font-size:.82rem;
}
#stickyPreview .spec-head span{color:#777;font-size:.7rem;font-weight:800}
#stickyPreview .spec-summary{
  margin:0;
  padding:0 18px 12px;
  max-height:190px;
  overflow:auto;
  scrollbar-width:thin;
}
#stickyPreview .spec-summary>div{
  display:grid;
  grid-template-columns:42% 58%;
  gap:10px;
  padding:7px 0;
  border-bottom:1px solid #eeeae5;
}
#stickyPreview .spec-summary dt{font-size:.69rem;color:#777}
#stickyPreview .spec-summary dd{margin:0;text-align:right;font-size:.7rem;font-weight:800}
@media(max-width:1250px){
  .guided-hero > .container,.guided-section > .container{width:min(1280px,calc(100% - 40px))}
  .guided-grid{grid-template-columns:minmax(0,1fr) 380px!important;gap:26px}
  .question-card{padding:28px}
  .compact-preview .door-stage,#stickyPreview .door-stage{height:380px}
}
@media(max-width:980px){
  .guided-grid{grid-template-columns:1fr!important}
  .preview-column{grid-row:1}
  .question-column{grid-row:2}
  .preview-column #stickyPreview{position:relative;top:auto;max-height:none;overflow:visible}
  #stickyPreview .spec-summary{max-height:none;overflow:visible}
  .guided-hero > .container,.guided-section > .container{width:min(100% - 32px,900px)}
}
@media(max-width:650px){
  .guided-hero > .container,.guided-section > .container{width:calc(100% - 24px)}
  .question-card{padding:22px 17px 24px}
  .compact-preview .door-stage,#stickyPreview .door-stage{height:350px}
}

/* V31: complete Safelincs-benchmark finish range and reliable preview follow. */
.finish-range{grid-template-columns:repeat(3,minmax(0,1fr))}
.finish-range .option-card{min-height:124px}
.finish-range .option-icon.texture{
  background-image:var(--texture)!important;
  background-size:cover!important;
  background-position:center!important;
  border-color:rgba(55,45,35,.22);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.35),inset 0 -16px 22px rgba(0,0,0,.08);
}
@media(min-width:981px){
  .preview-column #stickyPreview{
    position:relative!important;
    top:auto!important;
    transform:translate3d(0,0,0);
    will-change:transform;
    transition:transform .06s linear;
  }
}
@media(prefers-reduced-motion:reduce){.preview-column #stickyPreview{transition:none!important}}
@media(max-width:980px){
  .finish-range{grid-template-columns:repeat(2,minmax(0,1fr))}
  .preview-column #stickyPreview{transform:none!important}
}
@media(max-width:650px){.finish-range{grid-template-columns:1fr}}

/* V32: reliable veneer swatches, glazing toggle, and native sticky preview. */
.option-icon.texture{
  background-image:var(--texture) !important;
  background-size:cover !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
}
.option-icon.texture.has-img{
  background-image:none !important;
  padding:0;
  overflow:hidden;
}
.option-icon.texture.has-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  border-radius:inherit;
}
.option-card.is-disabled{
  opacity:.52;
  pointer-events:none;
}
.option-card.is-disabled strong,
.option-card.is-disabled small{
  color:#8c847c;
}
.preview-column #stickyPreview{
  position:sticky !important;
  top:96px !important;
  transform:none !important;
  max-height:calc(100vh - 112px);
  overflow:auto;
  will-change:auto !important;
  transition:none !important;
}
#glazingModePanel{margin-top:18px}
#glazingModeNote{margin:12px 2px 0;color:#6d655d;font-size:.84rem;line-height:1.45}
#stickyPreview .spec-summary{padding-bottom:18px}
@media(max-width:980px){
  .preview-column #stickyPreview{
    position:relative !important;
    top:auto !important;
    max-height:none;
    overflow:visible;
  }
}

/* V33: stretch the preview rail so native sticky has room to travel. */
.preview-column{
  align-self:stretch !important;
  position:relative;
  min-height:100%;
}
@media(min-width:981px){
  .preview-column #stickyPreview{
    position:sticky !important;
    top:96px !important;
  }
}

/* V33 sticky rail containment. */
.guided-grid{align-items:stretch !important}
.question-column{align-self:start}
.preview-column{align-self:stretch !important}

/* V35 placement reference and forced following preview. */
.preview-column{
  position:relative !important;
  align-self:stretch !important;
  min-width:0;
}
@media(min-width:981px){
  .preview-column #stickyPreview{
    position:absolute !important;
    top:0;
    left:0;
    width:100%;
    transform:none !important;
    transition:none !important;
    box-sizing:border-box;
  }
}
@media(max-width:980px){
  .preview-column #stickyPreview{
    position:relative !important;
    top:auto !important;
    left:auto !important;
    width:auto !important;
    max-height:none !important;
    overflow:visible !important;
  }
}

/* V36 furniture rules */
.preview-kick .kick{fill:#a9aaa7!important;stroke:#6f706e!important;stroke-width:2!important}

/* V50: robust mobile configurator cards and bounded artwork */
@media (max-width:650px){
  .guided-section>.container{width:calc(100% - 24px)!important}
  .guided-grid{display:block!important}
  .question-column{display:grid!important;gap:14px!important}
  .question-card{padding:20px 14px 22px!important;overflow:hidden}
  .question-heading,.question-copy{padding-right:28px!important;margin-bottom:16px!important}
  .question-heading h2,.question-copy h2{font-size:1.12rem!important;line-height:1.14!important}
  .question-heading p,.question-copy p{font-size:.9rem!important;line-height:1.45!important}

  .option-grid.two,.option-grid.three,.option-grid.four{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  .option-grid .option-card,
  .option-grid.two .option-card,
  .option-grid.three .option-card,
  .option-grid.four .option-card{
    display:grid!important;
    grid-template-columns:58px minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    align-items:center!important;
    column-gap:12px!important;
    min-height:88px!important;
    width:100%!important;
    max-width:100%!important;
    padding:12px!important;
    margin:0!important;
    border:1px solid #d8d2cb!important;
    border-radius:11px!important;
    background:#fbfaf8!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
  }
  .option-grid .option-card.active{border-color:#b91c1c!important;background:#fff8f7!important;box-shadow:0 0 0 2px rgba(185,28,28,.1)!important}
  .option-grid .option-card>.option-icon{
    grid-column:1!important;
    grid-row:1/3!important;
    display:grid!important;
    place-items:center!important;
    width:54px!important;
    height:54px!important;
    min-width:54px!important;
    max-width:54px!important;
    min-height:54px!important;
    max-height:54px!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
  }
  .option-grid .option-card>.option-icon svg,
  .option-grid .option-card>.option-icon img{
    display:block!important;
    width:46px!important;
    height:46px!important;
    max-width:46px!important;
    max-height:46px!important;
    object-fit:contain!important;
    flex:none!important;
  }
  .option-grid .option-card>strong,
  .option-grid .option-card>small{
    grid-column:2!important;
    width:auto!important;
    max-width:100%!important;
    margin:0!important;
  }
  .option-grid .option-card>strong{font-size:.94rem!important;line-height:1.22!important}
  .option-grid .option-card>small{font-size:.78rem!important;line-height:1.35!important}

  .guided-door-choices{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .guided-door-choices .door-choice{min-width:0!important;min-height:120px!important;padding:10px 6px!important}
  .guided-door-choices .door-choice svg{width:54px!important;height:72px!important;max-width:54px!important;max-height:72px!important}

  .check-card{grid-template-columns:20px 48px minmax(0,1fr)!important;gap:10px!important;min-height:82px!important;padding:11px!important}
  .check-card>.option-icon{width:46px!important;height:46px!important;max-width:46px!important;max-height:46px!important}
  .check-card>.option-icon svg,.check-card>.option-icon img{width:40px!important;height:40px!important;max-width:40px!important;max-height:40px!important}

  .sticky-summary{margin-bottom:18px!important}
  .compact-preview .door-stage,#stickyPreview .door-stage{height:330px!important;padding:16px!important}
}
