:root {
  --hazo-config-ink: #0d3935;
  --hazo-config-green: #19564e;
  --hazo-config-line: #c9d8d3;
  --hazo-config-soft: #eef4f1;
  --hazo-config-warm: #f2bd55;
}

.hazo-phase-progress {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 9px;
  margin: 0 0 18px;
}

.hazo-phase-progress__mobile {
  display: none;
}

.hazo-phase-progress button,
.hazo-phase-progress a {
  min-height: 52px;
  padding: 9px 12px;
  border: 1px solid var(--hazo-config-line);
  border-radius: 14px;
  background: #fff;
  color: var(--hazo-config-ink);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}

.hazo-phase-progress span {
  width: 25px;
  height: 25px;
  flex: 0 0 25px;
  border-radius: 999px;
  background: var(--hazo-config-soft);
  display: grid;
  place-items: center;
  font-size: 12px;
}

.hazo-phase-progress :is(button, a).is-active {
  border-color: var(--hazo-config-green);
  background: var(--hazo-config-green);
  color: #fff;
}

.hazo-phase-progress :is(button, a).is-active span {
  background: var(--hazo-config-warm);
  color: #173b36;
}

.hazo-phase-progress :is(button, a).is-complete:not(.is-active) span {
  background: #dbeae5;
  color: var(--hazo-config-green);
}

html.has-unified-configurator :is(.config-progress, .zip-progress, .wa-progress, .l3d-progress).configurator-progress--internal {
  display: none !important;
}

html.has-unified-configurator :is(.option-panel, .zip-option-panel, .wa-option-panel, .l3d-options) h2 {
  font-size: clamp(25px, 2.15vw, 34px);
  line-height: 1.12;
}

html.has-unified-configurator :is(.option-panel, .zip-option-panel, .wa-option-panel, .l3d-options) h3 {
  font-size: clamp(17px, 1.25vw, 20px);
  line-height: 1.28;
}

html.has-unified-configurator :is(.option-panel, .zip-option-panel, .wa-option-panel, .l3d-options) :is(p, label, input, select, textarea, button) {
  font-size: max(14px, 0.92rem);
}

html.has-unified-configurator :is(.option-panel, .zip-option-panel, .wa-option-panel, .l3d-options) small {
  font-size: max(12.5px, 0.78rem);
  line-height: 1.45;
}

html.has-unified-configurator :is(.option-panel, .zip-option-panel, .wa-option-panel, .l3d-options) :is(button, input, select) {
  min-height: 44px;
}

html.has-unified-configurator :is(.price-display, .zip-price-display, .wa-price-display, .l3d-model__price) > span:first-child,
html.has-unified-configurator :is(.price-display, .zip-price-display, .wa-price-display, .l3d-model__price) > small:first-child {
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

html.has-unified-configurator :is(.price-display, .zip-price-display, .wa-price-display, .l3d-model__price) > strong {
  font-variant-numeric: tabular-nums;
}

html.has-unified-configurator .orientation-lock {
  display: none !important;
}

@media (max-width: 900px) {
  html.has-unified-configurator :is(.config-layout, .zip-config-layout, .wa-config-layout, .lp3d-layout, .l3d-layout) {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  html.has-unified-configurator :is(.option-panel, .zip-option-panel, .wa-option-panel, .l3d-options) {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 700px) {
  html.has-unified-configurator,
  html.has-unified-configurator body {
    overflow-x: clip;
  }

  .hazo-phase-progress {
    grid-template-columns: repeat(5, minmax(112px, 1fr));
    gap: 7px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
    padding: 2px 1px 8px;
    margin-bottom: 10px;
    scroll-snap-type: x proximity;
  }

  .hazo-phase-progress button,
  .hazo-phase-progress a {
    min-height: 48px;
    padding: 8px 10px;
    font-size: 13px;
    scroll-snap-align: start;
  }

  html.has-unified-configurator :is(.configurator, .zip-configurator, .wa-configurator, .lp3d-shell, .l3d-shell) > .container {
    padding-inline: 12px;
  }

  html.has-unified-configurator :is(.config-intro, .zip-intro, .wa-intro, .lp3d-intro, .l3d-intro) {
    padding-block: 24px;
  }

  html.has-unified-configurator :is(.config-intro, .zip-intro, .wa-intro, .lp3d-intro, .l3d-intro) h1 {
    font-size: clamp(32px, 9.5vw, 44px);
    line-height: 1.03;
  }

  html.has-unified-configurator :is(.model-toolbar, .zip-model-toolbar, .wa-model-toolbar, .lp3d-model__toolbar, .l3d-model__toolbar) {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    align-items: start !important;
  }

  html.has-unified-configurator :is(.model-toolbar__actions, .zip-model-toolbar__actions, .wa-model-toolbar__actions, .lp3d-model__actions, .l3d-model__actions) {
    display: flex !important;
    flex-wrap: wrap;
    gap: 8px;
  }

  html.has-unified-configurator :is(.model-toolbar__actions, .zip-model-toolbar__actions, .wa-model-toolbar__actions, .lp3d-model__actions, .l3d-model__actions) button {
    min-height: 42px;
    padding-inline: 13px;
  }

  html.has-unified-configurator :is(.model-stage, .zip-model-stage, .wa-model-stage, .lp3d-stage, .l3d-stage) {
    width: 100% !important;
    height: clamp(300px, 47svh, 430px) !important;
    min-height: 300px !important;
    max-height: 430px !important;
  }

  html.has-unified-configurator :is(.model-stage, .zip-model-stage, .wa-model-stage, .lp3d-stage, .l3d-stage) canvas {
    touch-action: pan-y;
  }

  html.has-unified-configurator :is(.option-panel__heading, .zip-option-heading, .wa-option-heading, .l3d-options__heading) {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
    padding: 20px 18px !important;
  }

  html.has-unified-configurator :is(.price-display, .zip-price-display, .wa-price-display, .l3d-options__heading > span) {
    width: 100%;
    text-align: left !important;
  }

  html.has-unified-configurator :is(.price-display, .zip-price-display, .wa-price-display) > strong,
  html.has-unified-configurator .l3d-options__heading > span {
    font-size: 24px !important;
  }

  html.has-unified-configurator :is(.option-panel__content, .zip-option-content, .wa-option-content, .l3d-option-group, .l3d-price-panel, .l3d-note) {
    padding-inline: 18px !important;
  }

  html.has-unified-configurator :is(.option-panel__footer, .zip-option-footer, .wa-option-footer, .l3d-step-nav, .l3d-config-actions, .wa-review-actions, .zip-review-actions) {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  html.has-unified-configurator :is(.option-panel__footer, .zip-option-footer, .wa-option-footer, .l3d-step-nav, .l3d-config-actions, .wa-review-actions, .zip-review-actions) :is(button, a) {
    width: 100%;
    min-height: 48px;
  }

  html.has-unified-configurator :is(.live-selection, .zip-live-selection, .wa-live-selection, .l3d-live) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .dpc-hero__actions {
    display: grid !important;
    grid-template-columns: 1fr;
  }

  .dpc-hero__actions .btn {
    width: 100%;
    min-height: 48px;
  }
}

@media (max-width: 430px) {
  .hazo-phase-progress {
    grid-template-columns: repeat(5, minmax(104px, 1fr));
  }

  html.has-unified-configurator :is(.model-stage, .zip-model-stage, .wa-model-stage, .lp3d-stage, .l3d-stage) {
    height: clamp(280px, 43svh, 360px) !important;
    min-height: 280px !important;
  }

  html.has-unified-configurator :is(.live-selection, .zip-live-selection, .wa-live-selection, .l3d-live) {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

@media (orientation: landscape) and (max-height: 560px) and (pointer: coarse) {
  html.has-unified-configurator :is(.model-stage, .zip-model-stage, .wa-model-stage, .lp3d-stage, .l3d-stage) {
    height: 68svh !important;
    max-height: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hazo-phase-progress,
  .hazo-phase-progress * {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}

/* Unified configurator workspace · 2026-08-17 */
@media (min-width: 701px) {
  html.has-unified-configurator :is(.config-intro, .zip-config-intro, .wa-config-intro, .lp3d-intro, .l3d-intro) { padding: 20px 0 16px !important; }
  html.has-unified-configurator :is(.config-intro__inner, .lp3d-intro__inner, .l3d-intro__inner) { align-items: end; gap: 30px; }
  html.has-unified-configurator :is(.config-intro, .zip-config-intro, .wa-config-intro, .lp3d-intro, .l3d-intro) .eyebrow { margin-bottom: 4px; }
  html.has-unified-configurator :is(.config-intro__inner, .lp3d-intro__inner, .l3d-intro__inner) > div:first-child { flex: 1 1 auto; min-width: 0; }
  html.has-unified-configurator :is(.config-intro, .zip-config-intro, .wa-config-intro, .lp3d-intro, .l3d-intro) h1 { font-size: clamp(31px, 2.55vw, 39px); line-height: 1.04; margin: 4px 0 6px; max-width: none !important; }
  html.has-unified-configurator :is(.config-intro, .zip-config-intro, .wa-config-intro, .lp3d-intro, .l3d-intro) p:not(.eyebrow) { font-size: 14px; line-height: 1.45; margin: 0 !important; max-width: 920px; }
  html.has-unified-configurator :is(.configurator, .zip-configurator, .wa-configurator, .lp3d-shell, .l3d-shell) { padding-top: 22px !important; }
}

@media (max-width: 700px) {
  html.hazo-mobile-configurator-active,
  html.hazo-mobile-configurator-active body { height: var(--hazo-mobile-viewport-height, 100dvh); overflow: hidden !important; overscroll-behavior: none; }
  html.hazo-mobile-configurator-active .site-header { left: 0; position: fixed; right: 0; top: 0; z-index: 80; }
  html.hazo-mobile-configurator-active .site-header :is(.luxbar-menu, .luxbar-navigation, .luxbar-header) { min-height: 48px; }
  html.hazo-mobile-configurator-active .site-header .luxbar-header,
  html.hazo-mobile-configurator-active .site-header .luxbar-checkbox:not(:checked) ~ .luxbar-menu { height: 48px; }
  html.hazo-mobile-configurator-active .site-header .site-logo img { height: auto; width: 132px; }
  html.hazo-mobile-configurator-active .site-header .luxbar-hamburger { padding: 14px 18px; }
  html.hazo-mobile-configurator-active :is(.breadcrumb-bar,.config-intro,.zip-config-intro,.wa-config-intro,.lp3d-intro,.l3d-intro,.config-help,.zip-config-help,.wa-config-help,.oa-paths,.site-footer,.sitewide-proof,.mobile-quote-dock,.feedback,.back-to-top) { display: none !important; }

  html.hazo-mobile-configurator-active :is(.configurator,.zip-configurator,.wa-configurator,.lp3d-shell,.l3d-shell) { box-sizing: border-box; height: calc(var(--hazo-mobile-viewport-height, 100dvh) - 48px) !important; inset: 48px 0 auto !important; margin: 0 !important; overflow: hidden; padding: 0 !important; position: fixed !important; width: 100% !important; }
  html.hazo-mobile-configurator-active :is(.configurator,.zip-configurator,.wa-configurator,.lp3d-shell,.l3d-shell) > .container { display: grid !important; grid-template-rows: 28px minmax(0, 1fr) !important; height: 100%; max-width: none; padding: 0 !important; width: 100%; }

  html.hazo-mobile-configurator-active .hazo-phase-progress { align-self: stretch; background: rgba(248,251,249,.98); border-bottom: 1px solid var(--hazo-config-line); display: block !important; grid-row: 1 !important; margin: 0 !important; overflow: hidden !important; padding: 4px 12px !important; position: relative; z-index: 30; }
  html.hazo-mobile-configurator-active .hazo-phase-progress > :is(button,a) { display: none !important; }
  html.hazo-mobile-configurator-active .hazo-phase-progress__mobile { display: block; height: 19px; }
  html.hazo-mobile-configurator-active .hazo-phase-progress__mobile-line { align-items: center; display: flex; justify-content: space-between; min-width: 0; }
  html.hazo-mobile-configurator-active .hazo-phase-progress__mobile-count,
  html.hazo-mobile-configurator-active .hazo-phase-progress__mobile-label { font-size: 10px; font-weight: 800; letter-spacing: .12em; line-height: 19px; text-transform: uppercase; white-space: nowrap; }
  html.hazo-mobile-configurator-active .hazo-phase-progress__mobile-count { color: #9b6817; }
  html.hazo-mobile-configurator-active .hazo-phase-progress__mobile-label { color: var(--hazo-config-ink); overflow: hidden; text-overflow: ellipsis; }
  html.hazo-mobile-configurator-active .hazo-phase-progress__mobile-track { display: none; }

  html.hazo-mobile-configurator-active :is(.config-layout,.zip-config-layout,.wa-config-layout,.lp3d-layout,.l3d-layout) { display: grid !important; gap: 0 !important; grid-row: 2 !important; grid-template-columns: minmax(0,1fr) !important; grid-template-rows: minmax(220px,40%) minmax(0,60%) !important; height: 100%; min-height: 0; overflow: hidden; }
  html.hazo-mobile-configurator-active :is(.model-panel,.zip-preview-panel,.wa-model-panel,.lp3d-model,.l3d-model) { background: #f4f8f6; border: 0 !important; border-bottom: 1px solid var(--hazo-config-line) !important; border-radius: 0 !important; box-shadow: 0 7px 18px rgba(18,55,48,.1) !important; grid-row: 1 !important; height: 100% !important; margin: 0 !important; max-height: none !important; min-height: 0 !important; overflow: hidden !important; position: relative !important; z-index: 8; }
  html.hazo-mobile-configurator-active :is(.model-stage,.zip-preview-stage,.wa-model-stage,.lp3d-stage,.l3d-stage) { height: 100% !important; inset: 0 !important; max-height: none !important; min-height: 0 !important; position: absolute !important; width: 100% !important; }
  html.hazo-mobile-configurator-active .zip-preview-stage svg { height: 100% !important; min-height: 0 !important; }
  html.hazo-mobile-configurator-active :is(.model-stage,.wa-model-stage,.lp3d-stage,.l3d-stage) canvas { touch-action: none !important; }

  html.hazo-mobile-configurator-active :is(.model-toolbar,.zip-preview-toolbar,.wa-model-toolbar,.lp3d-model__toolbar,.l3d-model__toolbar) { align-items: center !important; backdrop-filter: blur(5px); background: linear-gradient(180deg,rgba(255,255,255,.91),rgba(255,255,255,.7)); display: grid !important; gap: 5px !important; grid-template-columns: minmax(0,1fr) auto !important; left: 0; min-height: 40px !important; padding: 3px 7px !important; position: absolute !important; right: 0; top: 0; z-index: 14; }
  html.hazo-mobile-configurator-active :is(.model-toolbar,.zip-preview-toolbar,.wa-model-toolbar,.lp3d-model__toolbar,.l3d-model__toolbar) > div:first-child strong { display: block; font-size: 12px !important; line-height: 1.12; }
  html.hazo-mobile-configurator-active :is(.model-toolbar,.zip-preview-toolbar,.wa-model-toolbar,.lp3d-model__toolbar,.l3d-model__toolbar) > div:first-child span { display: none !important; }
  html.hazo-mobile-configurator-active :is(.model-toolbar__actions,.zip-model-toolbar__actions,.wa-model-toolbar__actions,.lp3d-model__actions,.l3d-model__actions) { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; gap: 3px !important; min-width: 0; overflow-x: auto; scrollbar-width: none; }
  html.hazo-mobile-configurator-active :is(.model-toolbar__actions,.zip-model-toolbar__actions,.wa-model-toolbar__actions,.lp3d-model__actions,.l3d-model__actions) button,
  html.hazo-mobile-configurator-active :is(.zip-preview-toolbar,.wa-model-toolbar) > button { border-radius: 11px !important; font-size: 9px !important; min-height: 34px !important; padding: 3px 7px !important; white-space: nowrap; }
  html.hazo-mobile-configurator-active :is(.l3d-model__price,.live-selection,.zip-live-selection,.wa-live-selection,.l3d-live,.model-stage__hint,.model-stage__badge,.zip-preview-stage__label,.wa-model-hint,.wa-model-badge,.lp3d-stage__hint,.lp3d-stage__badge,.lp3d-stage__status,.l3d-stage__hint,.l3d-stage__badge,.l3d-stage__status,.lp3d-stage__profile,.l3d-stage__profile,.rrc-stage__profile) { display: none !important; }

  html.hazo-mobile-configurator-active :is(.lp3d-motion,.l3d-motion,.wa-opening-control,.zip-opening-control,.opening-control) { align-items: center !important; backdrop-filter: blur(5px); background: rgba(255,255,255,.86) !important; border: 0 !important; border-top: 1px solid rgba(197,214,207,.78) !important; bottom: 0 !important; box-sizing: border-box; left: 0 !important; margin: 0 !important; min-height: 42px !important; padding: 3px 7px !important; position: absolute !important; right: 0 !important; top: auto !important; width: 100% !important; z-index: 13; }
  html.hazo-mobile-configurator-active :is(.wa-opening-control,.zip-opening-control,.opening-control) { display: grid !important; gap: 7px !important; grid-template-columns: auto minmax(0,1fr) auto !important; grid-template-rows: 36px !important; }
  html.hazo-mobile-configurator-active :is(.wa-opening-control,.zip-opening-control,.opening-control) label { display: none !important; }
  html.hazo-mobile-configurator-active :is(.wa-opening-control,.zip-opening-control,.opening-control) button { font-size: 10px !important; grid-row: 1 !important; min-height: 34px !important; min-width: 58px !important; padding: 3px 8px !important; width: auto !important; }
  html.hazo-mobile-configurator-active :is(.wa-opening-control,.zip-opening-control,.opening-control) input[type="range"] { direction: ltr !important; grid-column: 2 !important; grid-row: 1 !important; height: 34px !important; min-height: 34px !important; transform: none !important; width: 100% !important; writing-mode: horizontal-tb !important; }
  html.hazo-mobile-configurator-active :is(.lp3d-motion,.l3d-motion) label,
  html.hazo-mobile-configurator-active :is(.lp3d-motion,.l3d-motion) > input[type="range"] { display: none !important; }
  html.hazo-mobile-configurator-active :is(.lp3d-motion__states,.l3d-motion__states) { display: grid !important; gap: 4px !important; grid-template-columns: repeat(4,minmax(0,1fr)) !important; margin: 0 !important; width: 100%; }
  html.hazo-mobile-configurator-active :is(.lp3d-motion__states,.l3d-motion__states) button { border-radius: 11px !important; font-size: 10px !important; min-height: 34px !important; padding: 3px 2px !important; }

  html.hazo-mobile-configurator-active :is(.option-panel,.zip-option-panel,.wa-option-panel,.l3d-options) { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; display: flex !important; flex-direction: column; grid-row: 2 !important; height: 100% !important; margin: 0 !important; max-height: none !important; min-height: 0 !important; overflow: hidden !important; }
  html.hazo-mobile-configurator-active :is(.option-panel__heading,.zip-option-heading,.wa-option-heading,.l3d-options__heading) { align-items: center !important; display: grid !important; flex: 0 0 auto; gap: 8px !important; grid-template-columns: minmax(0,1fr) auto !important; grid-template-rows: auto auto !important; min-height: 60px !important; padding: 7px 14px !important; }
  html.hazo-mobile-configurator-active :is(.option-panel__heading,.zip-option-heading,.wa-option-heading,.l3d-options__heading) > div:first-child { grid-column: 1; grid-row: 1; min-width: 0; }
  html.hazo-mobile-configurator-active :is(.option-panel__heading,.zip-option-heading,.wa-option-heading,.l3d-options__heading) h2 { font-size: clamp(18px,5vw,22px) !important; line-height: 1.08 !important; margin: 2px 0 0 !important; }
  html.hazo-mobile-configurator-active :is(.option-step,.zip-option-step,.wa-option-step,.l3d-options__heading .eyebrow) { display: none !important; }
  html.hazo-mobile-configurator-active :is(.price-display,.zip-price-display,.wa-price-display) { display: contents !important; }
  html.hazo-mobile-configurator-active :is(.price-display,.zip-price-display,.wa-price-display) > :is(span:first-child,small) { display: none !important; }
  html.hazo-mobile-configurator-active :is(.price-display,.zip-price-display,.wa-price-display) > strong,
  html.hazo-mobile-configurator-active .l3d-options__heading > span { align-self: center; font-size: 21px !important; grid-column: 2; grid-row: 1; margin: 0 !important; white-space: nowrap; }
  html.hazo-mobile-configurator-active .small-order-price-summary { gap: 2px; grid-column: 1 / -1; grid-row: 2; margin: 3px 0 0; min-width: 0; padding-top: 3px; width: 100%; }
  html.hazo-mobile-configurator-active .small-order-price-summary__line,
  html.hazo-mobile-configurator-active .small-order-price-summary__line > span { font-size: 10px !important; line-height: 1.2; }
  html.hazo-mobile-configurator-active .small-order-price-summary__line strong { font-size: 11px !important; }

  html.hazo-mobile-configurator-active :is(.option-panel__content,.zip-option-content,.wa-option-content) { -webkit-overflow-scrolling: touch; flex: 1 1 auto !important; max-height: none !important; min-height: 0 !important; overscroll-behavior: contain; overflow-y: auto !important; padding: 12px 15px 16px !important; }
  html.hazo-mobile-configurator-active .l3d-options > :is(.l3d-option-group,.l3d-price-panel,.l3d-note):not([hidden]) { -webkit-overflow-scrolling: touch; flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 12px 15px 16px !important; }
  html.hazo-mobile-configurator-active :is(.option-panel__footer,.zip-option-footer,.wa-option-footer,.l3d-step-nav) { background: rgba(255,255,255,.98) !important; box-shadow: 0 -5px 16px rgba(24,52,47,.08); display: grid !important; flex: 0 0 auto; gap: 9px !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; min-height: 58px; padding: 6px 14px calc(6px + env(safe-area-inset-bottom)) !important; position: relative !important; z-index: 20; }
  html.hazo-mobile-configurator-active :is(.option-panel__footer,.zip-option-footer,.wa-option-footer,.l3d-step-nav) :is(button,a) { font-size: 14px !important; min-height: 46px !important; width: 100% !important; }
  html.hazo-mobile-configurator-active :is(.option-panel,.zip-option-panel,.wa-option-panel,.l3d-options) :is(button,input:not([type="checkbox"]):not([type="radio"]),select,textarea) { min-height: 44px; }
  html.hazo-mobile-configurator-active :is(.option-panel,.zip-option-panel,.wa-option-panel,.l3d-options) :is(p,label,input,select,textarea,button) { font-size: max(14px,.92rem); }
  html.hazo-mobile-configurator-active :is(.option-panel,.zip-option-panel,.wa-option-panel,.l3d-options) small { font-size: max(12px,.78rem) !important; }

  html.hazo-mobile-configurator-active .cookie-inner,
  html.hazo-original-configurator:not(.hazo-mobile-configurator-active) .cookie-inner { align-items: stretch; display: grid; gap: 8px; padding: 11px 14px calc(11px + env(safe-area-inset-bottom)); }
  html.hazo-mobile-configurator-active .cookie-inner p,
  html.hazo-original-configurator:not(.hazo-mobile-configurator-active) .cookie-inner p { font-size: 12px; line-height: 1.4; margin: 3px 0 0; }
  html.hazo-mobile-configurator-active .cookie-actions,
  html.hazo-original-configurator:not(.hazo-mobile-configurator-active) .cookie-actions { display: grid; gap: 8px; grid-template-columns: repeat(2,minmax(0,1fr)); }
  html.hazo-mobile-configurator-active .cookie-actions button { min-height: 44px; padding: 8px 14px; width: 100%; }

  html.hazo-original-configurator:not(.hazo-mobile-configurator-active),
  html.hazo-original-configurator:not(.hazo-mobile-configurator-active) body { min-height: 100%; overflow-x: clip !important; }
  html.hazo-original-configurator:not(.hazo-mobile-configurator-active) :is(.breadcrumb-bar,.config-intro,.oa-paths,.site-footer) { display: block !important; }
  html.hazo-original-configurator:not(.hazo-mobile-configurator-active) .fb-configurator { display: none !important; }
  html.hazo-original-configurator:not(.hazo-mobile-configurator-active) .config-intro { padding: 58px 0 20px !important; }
  html.hazo-original-configurator:not(.hazo-mobile-configurator-active) .oa-paths { padding-bottom: 28px; }
}

@media (orientation: landscape) and (max-height: 560px) and (pointer: coarse) {
  html.hazo-mobile-configurator-active .site-header { display: none !important; }
  html.hazo-mobile-configurator-active :is(.configurator,.zip-configurator,.wa-configurator,.lp3d-shell,.l3d-shell) { height: var(--hazo-mobile-viewport-height,100dvh) !important; inset: 0 !important; }
  html.hazo-mobile-configurator-active :is(.configurator,.zip-configurator,.wa-configurator,.lp3d-shell,.l3d-shell) > .container { grid-template-rows: 26px minmax(0,1fr) !important; }
  html.hazo-mobile-configurator-active :is(.config-layout,.zip-config-layout,.wa-config-layout,.lp3d-layout,.l3d-layout) { grid-template-columns: minmax(0,44%) minmax(0,56%) !important; grid-template-rows: minmax(0,1fr) !important; }
  html.hazo-mobile-configurator-active :is(.model-panel,.zip-preview-panel,.wa-model-panel,.lp3d-model,.l3d-model) { grid-column: 1; grid-row: 1 !important; }
  html.hazo-mobile-configurator-active :is(.option-panel,.zip-option-panel,.wa-option-panel,.l3d-options) { grid-column: 2; grid-row: 1 !important; }
  html.hazo-mobile-configurator-active :is(.option-panel__heading,.zip-option-heading,.wa-option-heading,.l3d-options__heading) { min-height: 54px !important; padding: 5px 10px !important; }
  html.hazo-mobile-configurator-active :is(.option-panel__content,.zip-option-content,.wa-option-content) { padding: 8px 10px 10px !important; }
  html.hazo-mobile-configurator-active :is(.option-panel__footer,.zip-option-footer,.wa-option-footer,.l3d-step-nav) { min-height: 50px !important; padding: 3px 10px !important; }
}

@media (prefers-reduced-motion: reduce) {
  .hazo-phase-progress,.hazo-phase-progress * { scroll-behavior: auto !important; transition: none !important; }
}

/* Review, price and custom-fabric resilience · 2026-08-17 */
html.has-unified-configurator :is(.config-layout,.zip-config-layout,.wa-config-layout,.lp3d-layout,.l3d-layout,.option-panel,.zip-option-panel,.wa-option-panel,.l3d-options,.option-panel__heading,.zip-option-heading,.wa-option-heading,.l3d-options__heading,.option-panel__content,.zip-option-content,.wa-option-content,.l3d-option-group,.l3d-price-panel,.review-card,.zip-review-item,.wa-review-item,.zip-order-summary,.wa-order-summary,.l3d-price-panel li,.small-order-price-summary,.small-order-price-summary__line) {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

html.has-unified-configurator :is(.review-line,.review-total,.zip-order-summary>div,.wa-order-summary>div,.l3d-price-panel li,.small-order-price-summary__line) {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 10px;
  align-items: start;
}

html.has-unified-configurator :is(.review-line,.review-total,.zip-order-summary>div,.wa-order-summary>div,.l3d-price-panel li,.small-order-price-summary__line) > :first-child,
html.has-unified-configurator :is(.review-card,.zip-review-item,.wa-review-item,.l3d-price-panel,.small-order-price-summary) :is(p,span,strong,small,b) {
  min-width: 0;
  overflow-wrap: anywhere;
}

html.has-unified-configurator :is(.review-line,.review-total,.zip-order-summary>div,.wa-order-summary>div,.l3d-price-panel li,.small-order-price-summary__line) > :last-child {
  text-align: right;
  max-width: min(46vw, 270px);
}

html.has-unified-configurator :is(
  .price-display > strong,
  .review-card__top > strong,
  .review-line > :last-child,
  .review-total > :last-child,
  .zip-order-summary > div > :last-child,
  .wa-order-summary > div > :last-child,
  .l3d-price-panel li > :last-child,
  .small-order-price-summary__line > :last-child,
  [data-current-price],
  [data-review-awnings],
  [data-review-adjustment],
  [data-review-total]
) {
  max-width: none;
  overflow-wrap: normal;
  word-break: normal;
  white-space: nowrap;
}

html.has-unified-configurator .review-card__top > div {
  flex: 1 1 100%;
  min-width: 0;
  width: 100%;
}

html.has-unified-configurator .config-review-summary {
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
}

html.has-unified-configurator .config-review-summary li {
  align-items: start;
  border-top: 1px solid #d8e1dd;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 1fr) minmax(0, 58%);
  padding: 8px 0;
}

html.has-unified-configurator .config-review-summary li > span {
  color: #66746f;
}

html.has-unified-configurator .config-review-summary li > strong {
  color: #18342f;
  text-align: right;
}

html.has-unified-configurator .config-review-help {
  align-items: center;
  background: #f4f7f5;
  border: 1px solid #d4ded9;
  border-radius: 12px;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
  margin-top: 13px;
  padding: 13px 14px;
}

html.has-unified-configurator .config-review-help p {
  color: #52645e;
  margin: 0;
}

html.has-unified-configurator .config-review-note {
  background: #164c43;
  border-radius: 12px;
  color: #fff;
  margin-top: 13px;
  padding: 14px;
}

html.has-unified-configurator .config-review-note strong {
  color: #efbd52;
  display: block;
  font-size: 11px;
  letter-spacing: .06em;
  text-transform: uppercase;
}

html.has-unified-configurator .config-review-note p {
  color: inherit;
  margin: 5px 0 0;
}

html.has-unified-configurator :is(.review-actions,.zip-review-actions,.wa-review-actions,.l3d-config-actions) {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 10px;
}

html.has-unified-configurator :is(.review-actions,.zip-review-actions,.wa-review-actions,.l3d-config-actions) .btn {
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  text-align: center;
}

html.has-unified-configurator :is(.review-actions,.zip-review-actions,.wa-review-actions,.l3d-config-actions) .btn-utility {
  grid-column: 1 / -1;
  justify-self: start;
  min-height: 40px;
  padding: 8px 14px;
  background: transparent;
  border: 0;
  color: var(--hazo-config-green);
  text-decoration: underline;
  text-underline-offset: 3px;
}

html.has-unified-configurator :is(.fabric-more-colours,.l3d-more-colours,.zip-more-colours) {
  width: 100%;
  min-height: 50px;
  margin-top: 14px;
  padding: 12px 15px;
  border: 1px solid var(--hazo-config-line);
  border-radius: 13px;
  background: #fff;
  color: var(--hazo-config-ink);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font: inherit;
  font-weight: 700;
}

html.has-unified-configurator :is(.fabric-more-colours,.l3d-more-colours,.zip-more-colours).is-selected,
html.has-unified-configurator .l3d-more-colours:focus-visible,
html.has-unified-configurator .zip-more-colours:focus-visible {
  border-color: var(--hazo-config-green);
  box-shadow: 0 0 0 2px rgba(25,86,78,.13);
}

html.has-unified-configurator :is(.custom-fabric-code,.l3d-custom-fabric) {
  margin-top: 12px;
}

html.has-unified-configurator .l3d-custom-fabric label,
html.has-unified-configurator .l3d-custom-fabric small {
  display: block;
}

html.has-unified-configurator .l3d-custom-fabric input {
  width: 100%;
  margin: 7px 0;
  padding: 10px 12px;
  border: 1px solid var(--hazo-config-line);
  border-radius: 10px;
}
html.has-unified-configurator .config-custom-fabric {
  box-sizing: border-box; display: grid; gap: 8px; margin-top: 12px; min-width: 0; padding: 14px; width: 100%; background: #f3f7f5; border-radius: 12px;
}
html.has-unified-configurator .config-custom-fabric > label {
  display: block; margin: 0; min-width: 0; color: var(--hazo-config-ink); font-weight: 700;
}
html.has-unified-configurator .config-custom-fabric > input {
  box-sizing: border-box; display: block; margin: 0; min-width: 0; width: 100%; border: 1px solid var(--hazo-config-line); border-radius: 10px; padding: 11px 12px; background: #fff; color: var(--hazo-config-ink); font: inherit; text-transform: uppercase;
}
html.has-unified-configurator .config-custom-fabric > input:focus {
  border-color: var(--hazo-config-green); box-shadow: 0 0 0 2px rgba(25,86,78,.13); outline: 0;
}
html.has-unified-configurator .config-custom-fabric > small {
  display: block; margin: 0; min-width: 0; color: #63736e; font-size: 12px; font-weight: 400; line-height: 1.5; overflow-wrap: anywhere;
}

html.has-unified-configurator.is-configurator-review-step :is(
  .option-panel__heading .price-display,
  .zip-option-heading .zip-price-display,
  .wa-option-heading .wa-price-display,
  .l3d-options__heading > [data-step-price]
) {
  display: none;
}

html.has-unified-configurator.is-configurator-review-step :is(.option-panel__footer,.zip-option-footer,.wa-option-footer,.l3d-step-nav) {
  grid-template-columns: minmax(0, 1fr) !important;
}

html.has-unified-configurator.is-configurator-review-step :is(.option-panel__footer,.zip-option-footer,.wa-option-footer,.l3d-step-nav) [data-step-action="next"],
html.has-unified-configurator.is-configurator-review-step :is(.option-panel__footer,.zip-option-footer,.wa-option-footer,.l3d-step-nav) [data-action="next"] {
  display: none !important;
}

html.has-unified-configurator.is-configurator-review-step :is(.option-panel__footer,.zip-option-footer,.wa-option-footer,.l3d-step-nav) :is([data-step-action="back"],[data-action="back"],[data-action="previous"]) {
  justify-self: start;
  max-width: 170px;
  width: 100%;
}

html.has-unified-configurator:not(.is-configurator-review-step) :is(.option-panel__footer,.zip-option-footer,.wa-option-footer,.l3d-step-nav) {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

html.has-unified-configurator:not(.is-configurator-review-step) :is(.option-panel__footer,.zip-option-footer,.wa-option-footer,.l3d-step-nav) :is([data-step-action="next"],[data-action="next"]) {
  grid-column: 2;
  justify-self: end;
  margin-left: auto;
}

@media (max-width: 700px) {
  html.has-unified-configurator.is-configurator-review-step :is(.option-panel__footer,.zip-option-footer,.wa-option-footer,.l3d-step-nav) :is([data-step-action="back"],[data-action="back"],[data-action="previous"]) {
    justify-self: stretch;
    max-width: none;
  }
}

@media (max-width:700px) {
  html.has-unified-configurator .config-review-summary li {
    grid-template-columns: minmax(0, 1fr) minmax(0, 56%);
  }
  html.has-unified-configurator .config-review-help {
    align-items: start;
    grid-template-columns: minmax(0, 1fr);
  }
  html.has-unified-configurator .config-review-help .btn {
    width: 100%;
  }
  html.has-unified-configurator :is(.review-actions,.zip-review-actions,.wa-review-actions,.l3d-config-actions) {
    grid-template-columns: minmax(0,1fr) !important;
  }
  html.has-unified-configurator :is(.review-actions,.zip-review-actions,.wa-review-actions,.l3d-config-actions) .btn-utility {
    grid-column: 1;
    justify-self: stretch;
  }
  html.has-unified-configurator :is(.review-line,.review-total,.zip-order-summary>div,.wa-order-summary>div,.l3d-price-panel li,.small-order-price-summary__line) > :last-child {
    max-width: 44vw;
  }
}

/* Mobile configurator resilience · 2026-08-18 */
@media (max-width: 700px) {
  html.hazo-mobile-configurator-active,
  html.hazo-mobile-configurator-active body,
  html.hazo-mobile-configurator-active main { max-width: 100%; min-width: 0; overflow-x: clip !important; }
  html.hazo-mobile-configurator-active .site-header .luxbar-checkbox:checked ~ .luxbar-menu {
    height: var(--hazo-mobile-viewport-height, 100dvh);
    max-height: var(--hazo-mobile-viewport-height, 100dvh);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  html.hazo-mobile-configurator-active :is(.option-panel,.zip-option-panel,.wa-option-panel,.l3d-options) :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea) {
    font-size: 16px !important;
  }
  html.hazo-mobile-configurator-active :is(.review-line,.review-total,.zip-order-summary>div,.wa-order-summary>div,.l3d-price-panel li,.small-order-price-summary__line) {
    grid-template-columns: minmax(0,1fr) max-content;
  }
  html.hazo-mobile-configurator-active :is(.price-display,.zip-price-display,.wa-price-display,.review-card,.zip-review-item,.wa-review-item,.l3d-price-panel,.small-order-price-summary) strong {
    font-variant-numeric: tabular-nums;
  }
  html.hazo-mobile-configurator-active :is(.fabric-grid,.zip-fabric-grid,.wa-fabric-grid,.lpc-frame-swatches,.l3d-swatch-grid) > * {
    min-width: 0;
    max-width: 100%;
  }
}

@media (max-width: 380px) {
  html.hazo-mobile-configurator-active :is(.option-panel__heading,.zip-option-heading,.wa-option-heading,.l3d-options__heading) {
    gap: 5px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
  html.hazo-mobile-configurator-active :is(.option-panel__heading,.zip-option-heading,.wa-option-heading,.l3d-options__heading) h2 {
    font-size: 18px !important;
  }
  html.hazo-mobile-configurator-active :is(.option-panel__content,.zip-option-content,.wa-option-content),
  html.hazo-mobile-configurator-active .l3d-options > :is(.l3d-option-group,.l3d-price-panel,.l3d-note):not([hidden]) {
    padding-left: 11px !important;
    padding-right: 11px !important;
  }
  html.hazo-mobile-configurator-active :is(.option-panel__footer,.zip-option-footer,.wa-option-footer,.l3d-step-nav) {
    gap: 7px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
  html.hazo-mobile-configurator-active :is(.zip-swatch-grid,.lpc-frame-swatches,.l3d-swatch-grid) {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
}

@media (max-width: 700px) and (max-height: 620px) and (orientation: portrait) {
  html.hazo-mobile-configurator-active :is(.config-layout,.zip-config-layout,.wa-config-layout,.lp3d-layout,.l3d-layout) {
    grid-template-rows: minmax(180px,38%) minmax(0,62%) !important;
  }
  html.hazo-mobile-configurator-active :is(.model-toolbar,.zip-preview-toolbar,.wa-model-toolbar,.lp3d-model__toolbar,.l3d-model__toolbar) {
    min-height: 36px !important;
  }
  html.hazo-mobile-configurator-active :is(.lp3d-motion,.l3d-motion,.wa-opening-control,.zip-opening-control,.opening-control) {
    min-height: 38px !important;
  }
}

/* Unified customer-facing typography · 2026-08-19 */
html.has-unified-configurator {
  --hazo-type-step: clamp(27px, 2vw, 32px);
  --hazo-type-section: 18px;
  --hazo-type-body: 14px;
  --hazo-type-support: 13px;
  --hazo-type-meta: 11px;
}

html.has-unified-configurator :is(.config-intro,.zip-config-intro,.wa-config-intro,.lp3d-intro,.l3d-intro) h1 {
  font-size: clamp(32px, 3vw, 42px) !important;
  line-height: 1.06 !important;
}

html.has-unified-configurator .hazo-phase-progress :is(button,a) {
  font-size: 13px;
  line-height: 1.25;
}

html.has-unified-configurator .hazo-phase-progress :is(b,strong) {
  font-size: inherit;
  font-weight: 600;
}

html.has-unified-configurator :is(.model-toolbar,.zip-preview-toolbar,.wa-model-toolbar,.lp3d-model__toolbar,.l3d-model__toolbar) > div:first-child strong {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.25;
}

html.has-unified-configurator :is(.model-toolbar,.zip-preview-toolbar,.wa-model-toolbar,.lp3d-model__toolbar,.l3d-model__toolbar) > div:first-child :is(span,small),
html.has-unified-configurator :is(.model-stage__hint,.zip-preview-stage__label,.wa-model-hint,.lp3d-stage__hint,.l3d-stage__hint) {
  font-size: 12px;
  line-height: 1.4;
}

html.has-unified-configurator :is(.model-toolbar__actions,.zip-model-toolbar__actions,.wa-model-toolbar__actions,.lp3d-model__actions,.l3d-model__actions) button,
html.has-unified-configurator :is(.opening-control,.zip-opening-control,.wa-opening-control,.lp3d-motion__states,.l3d-motion__states) button {
  font-size: 13px;
  font-weight: 600;
}

html.has-unified-configurator :is(.live-selection,.zip-live-selection,.wa-live-selection,.l3d-live) small {
  font-size: 11px;
  font-weight: 500;
}

html.has-unified-configurator :is(.live-selection,.zip-live-selection,.wa-live-selection,.l3d-live) strong {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
}

html.has-unified-configurator :is(.option-panel__heading,.zip-option-heading,.wa-option-heading,.l3d-options__heading) h2 {
  font-size: var(--hazo-type-step) !important;
  line-height: 1.12 !important;
}

html.has-unified-configurator :is(.option-panel,.zip-option-panel,.wa-option-panel,.l3d-options) h3 {
  font-size: var(--hazo-type-section) !important;
  font-weight: 600;
  line-height: 1.3;
}

html.has-unified-configurator :is(.option-panel,.zip-option-panel,.wa-option-panel,.l3d-options) :is(p,label,button) {
  font-size: var(--hazo-type-body);
  line-height: 1.5;
}

html.has-unified-configurator :is(.option-panel,.zip-option-panel,.wa-option-panel,.l3d-options) small,
html.has-unified-configurator :is(.l3d-help,.zip-inline-note,.wa-inline-note,.config-review-help p,.config-review-note p) {
  font-size: var(--hazo-type-support) !important;
  font-weight: 400;
  line-height: 1.5;
}

html.has-unified-configurator :is(.option-panel,.zip-option-panel,.wa-option-panel,.l3d-options) button strong {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.35;
}

html.has-unified-configurator :is(.option-panel,.zip-option-panel,.wa-option-panel,.l3d-options) button b {
  font-size: 13px;
  font-weight: 600;
}

html.has-unified-configurator :is(.price-display,.zip-price-display,.wa-price-display,.l3d-model__price) :is(span,small) {
  font-size: var(--hazo-type-meta);
  line-height: 1.3;
}

html.has-unified-configurator .l3d-price-total > span {
  font-size: var(--hazo-type-meta);
  font-weight: 600;
  line-height: 1.3;
}

html.has-unified-configurator :is(.model-stage__badge,.wa-model-badge,.lp3d-stage__badge,.l3d-stage__badge,.lp3d-stage__status,.l3d-stage__status,.lp3d-stage__profile,.l3d-stage__profile,.rrc-stage__profile) {
  font-size: 11px;
  line-height: 1.35;
}

html.has-unified-configurator :is(.model-stage__badge,.wa-model-badge,.lp3d-stage__badge,.l3d-stage__badge,.lp3d-stage__status,.l3d-stage__status,.lp3d-stage__profile,.l3d-stage__profile,.rrc-stage__profile) small {
  font-size: 11px;
}

html.has-unified-configurator :is(.model-stage__badge,.wa-model-badge,.lp3d-stage__badge,.l3d-stage__badge,.lp3d-stage__status,.l3d-stage__status,.lp3d-stage__profile,.l3d-stage__profile,.rrc-stage__profile) strong {
  font-size: 13px;
  font-weight: 600;
}

html.has-unified-configurator :is(.config-help,.zip-config-help,.wa-config-help) h2 {
  font-size: 28px;
  line-height: 1.15;
}

html.has-unified-configurator :is(.price-display,.zip-price-display,.wa-price-display) > strong,
html.has-unified-configurator .l3d-options__heading > [data-step-price],
html.has-unified-configurator .l3d-price-total > strong {
  font-size: 24px !important;
  font-weight: 700;
}

html.has-unified-configurator :is(.review-card,.zip-review-item,.wa-review-item,.l3d-price-panel) h3 {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.3;
}

html.has-unified-configurator :is(.review-card,.zip-review-item,.wa-review-item) small {
  font-size: 12px;
  line-height: 1.4;
}

html.has-unified-configurator .config-review-summary li,
html.has-unified-configurator .l3d-price-panel li {
  font-size: 14px !important;
  line-height: 1.45 !important;
}

html.has-unified-configurator .config-review-summary li > span,
html.has-unified-configurator .l3d-price-panel li > span {
  color: #66746f;
  font-weight: 400;
}

html.has-unified-configurator .config-review-summary li > strong,
html.has-unified-configurator .l3d-price-panel li > strong {
  color: #18342f;
  font-size: inherit;
  font-weight: 400;
  line-height: inherit;
  overflow-wrap: anywhere;
  white-space: normal;
}

html.has-unified-configurator [data-summary-lighting-remote-row][hidden] {
  display: none !important;
}

html.has-unified-configurator [data-summary-motor-position-row][hidden] {
  display: none !important;
}

html.has-unified-configurator [data-summary-side-screening-row][hidden] {
  display: none !important;
}

html.has-unified-configurator :is(.review-line,.zip-order-summary>div,.wa-order-summary>div) {
  font-size: 14px;
  line-height: 1.45;
}

html.has-unified-configurator :is(.review-line,.zip-order-summary>div,.wa-order-summary>div) > :last-child {
  font-weight: 600;
}

html.has-unified-configurator :is(.review-total,.zip-order-summary .zip-order-total,.wa-order-summary .wa-order-total) {
  font-size: 19px;
  font-weight: 700;
}

@media (max-width: 700px) {
  html.hazo-mobile-configurator-active .hazo-phase-progress__mobile :is(.hazo-phase-progress__mobile-count,.hazo-phase-progress__mobile-label) {
    font-size: 11px;
  }

  html.hazo-mobile-configurator-active :is(.model-toolbar,.zip-preview-toolbar,.wa-model-toolbar,.lp3d-model__toolbar,.l3d-model__toolbar) > div:first-child strong {
    font-size: 13px !important;
  }

  html.hazo-mobile-configurator-active :is(.model-toolbar__actions,.zip-model-toolbar__actions,.wa-model-toolbar__actions,.lp3d-model__actions,.l3d-model__actions) button,
  html.hazo-mobile-configurator-active :is(.zip-preview-toolbar,.wa-model-toolbar) > button,
  html.hazo-mobile-configurator-active :is(.wa-opening-control,.zip-opening-control,.opening-control) button,
  html.hazo-mobile-configurator-active :is(.lp3d-motion__states,.l3d-motion__states) button {
    font-size: 12px !important;
  }

  html.hazo-mobile-configurator-active :is(.option-panel__heading,.zip-option-heading,.wa-option-heading,.l3d-options__heading) h2 {
    font-size: clamp(22px, 6vw, 25px) !important;
  }

  html.hazo-mobile-configurator-active .config-review-summary li,
  html.hazo-mobile-configurator-active .l3d-price-panel li,
  html.hazo-mobile-configurator-active :is(.review-line,.zip-order-summary>div,.wa-order-summary>div) {
    font-size: 14px !important;
  }

  html.hazo-mobile-configurator-active .config-review-summary li > strong,
  html.hazo-mobile-configurator-active .l3d-price-panel li > strong {
    max-width: min(56vw, 280px);
  }
}

@media (max-width: 380px) {
  html.hazo-mobile-configurator-active :is(.option-panel__heading,.zip-option-heading,.wa-option-heading,.l3d-options__heading) h2 {
    font-size: 22px !important;
  }
}

/* Stable step actions and editable number fields · 2026-08-19 */
@media (min-width: 701px) {
  html.has-unified-configurator :is(.option-panel,.zip-option-panel,.wa-option-panel,.l3d-options) {
    display: flex;
    flex-direction: column;
    height: min(650px, calc(100vh - 170px));
    min-height: 540px;
    overflow: hidden;
  }

  html.has-unified-configurator :is(.option-panel__content,.zip-option-content,.wa-option-content) {
    flex: 1 1 auto;
    max-height: none;
    min-height: 0;
    overflow-y: auto;
  }

  html.has-unified-configurator .l3d-options > :is(.l3d-option-group,.l3d-price-panel):not([hidden]) {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
  }

  html.has-unified-configurator .l3d-options > .l3d-note:not([hidden]) {
    flex: 0 0 auto;
  }

  html.has-unified-configurator :is(.option-panel__footer,.zip-option-footer,.wa-option-footer,.l3d-step-nav) {
    flex: 0 0 auto;
    min-height: 72px;
  }
}

html.has-unified-configurator input[type="number"] {
  cursor: text;
}

/* Shared heading and review overflow resilience · 2026-08-19 */
html.has-unified-configurator :is(.option-panel__heading,.zip-option-heading,.wa-option-heading,.l3d-options__heading) {
  flex: 0 0 auto;
  min-width: 0;
  overflow: visible;
}

html.has-unified-configurator :is(.option-panel__heading,.zip-option-heading,.wa-option-heading,.l3d-options__heading) > div:first-child {
  flex: 1 1 auto;
  min-width: 0;
}

html.has-unified-configurator :is(.option-panel__heading,.zip-option-heading,.wa-option-heading,.l3d-options__heading) h2 {
  max-width: 100%;
  overflow-wrap: break-word;
  white-space: normal;
  word-break: normal;
}

html.has-unified-configurator .l3d-options__heading > [data-step-price] {
  flex: 0 0 auto;
  margin-left: 12px;
}

html.has-unified-configurator :is(.config-review-summary,.l3d-price-panel ul) {
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
  overflow-x: clip;
  width: 100%;
}

html.has-unified-configurator .config-review-summary li,
html.has-unified-configurator .l3d-price-panel li {
  align-items: start;
  box-sizing: border-box;
  display: grid !important;
  gap: 14px;
  grid-template-columns: minmax(104px, .42fr) minmax(0, .58fr);
  min-width: 0;
  width: 100%;
}

html.has-unified-configurator .config-review-summary li > :is(span,strong),
html.has-unified-configurator .l3d-price-panel li > :is(span,strong) {
  max-width: none !important;
  min-width: 0;
  width: auto;
}

html.has-unified-configurator .config-review-summary li > strong,
html.has-unified-configurator .l3d-price-panel li > strong {
  overflow-wrap: break-word;
  text-align: right;
  word-break: normal;
}

html.has-unified-configurator .l3d-options > :is(.l3d-option-group,.l3d-price-panel):not([hidden]) {
  overflow-x: hidden !important;
}

@media (max-width: 450px) {
  html.has-unified-configurator .config-review-summary li,
  html.has-unified-configurator .l3d-price-panel li {
    gap: 11px;
    grid-template-columns: minmax(88px, .38fr) minmax(0, .62fr);
  }
}

/* Shared lightweight side-screening request · 2026-08-19 */
html.has-unified-configurator .config-side-screening {
  background: #f4f8f6;
  border: 1px solid #cbdad5;
  border-radius: 14px;
  box-sizing: border-box;
  margin: 16px 0;
  padding: 14px;
}

html.has-unified-configurator .config-side-screening__title {
  color: #163f38;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.25;
  margin: 0 0 10px;
}

html.has-unified-configurator .config-side-screening__option {
  align-items: flex-start;
  cursor: pointer;
  display: flex;
  gap: 11px;
}

html.has-unified-configurator .config-side-screening__option input {
  accent-color: #185b50;
  flex: 0 0 auto;
  height: 20px;
  margin: 2px 0 0;
  width: 20px;
}

html.has-unified-configurator .config-side-screening__option span,
html.has-unified-configurator .config-side-screening__option strong,
html.has-unified-configurator .config-side-screening__option small {
  display: block;
}

html.has-unified-configurator .config-side-screening__option strong {
  color: #173f38;
  font-size: 15px;
  line-height: 1.35;
}

html.has-unified-configurator .config-side-screening__option small {
  color: #556b66;
  font-size: 13px;
  line-height: 1.45;
  margin-top: 3px;
}

html.has-unified-configurator .config-side-screening__note {
  background: #fff8e8;
  border-left: 3px solid #d39a2f;
  border-radius: 8px;
  color: #314c46;
  font-size: 13px;
  line-height: 1.5;
  margin: 12px 0 0;
  padding: 10px 12px;
}

@media (max-width: 450px) {
  html.has-unified-configurator .config-side-screening {
    margin: 14px 0;
    padding: 12px;
  }
}

/* Two-page customer configuration PDF - 2026-08-21 */
.hazo-print-document {
  display: none;
}

@media print {
  @page {
    size: A4;
    margin: 10mm;
  }

  html.hazo-configurator-print-ready,
  html.hazo-configurator-print-ready body {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  html.hazo-configurator-print-ready body {
    background: #fff !important;
    color: #18342f !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  html.hazo-configurator-print-ready body > *:not(.hazo-print-document) {
    display: none !important;
  }

  html.hazo-configurator-print-ready .hazo-print-document {
    box-sizing: border-box;
    display: block !important;
    font-family: "Arial", sans-serif;
    font-size: 10pt;
    line-height: 1.42;
    margin: 0 auto;
    max-width: 190mm;
    width: 100%;
  }

  .hazo-print-document__page {
    box-sizing: border-box;
    min-height: 276mm;
    position: relative;
  }

  .hazo-print-document__visual-page {
    break-after: page;
    page-break-after: always;
  }

  .hazo-print-document__header {
    border-bottom: 2px solid #19564e;
    display: block !important;
    margin: 0 0 7mm;
    padding: 0 0 4mm;
  }

  .hazo-print-document__header p {
    color: #19564e;
    font-size: 9pt;
    font-weight: 700;
    letter-spacing: .12em;
    margin: 0 0 2mm;
  }

  .hazo-print-document__header h1 {
    color: #102f2b;
    font-size: 22pt;
    line-height: 1.12;
    margin: 0;
  }

  .hazo-print-document__header div {
    color: #536761;
    font-size: 10pt;
    margin-top: 2mm;
  }

  .hazo-print-document__visual {
    align-items: center;
    background: #e2f0f0;
    border: 1px solid #c8d8d4;
    border-radius: 4mm;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    height: 216mm;
    justify-content: center;
    margin: 0;
    overflow: hidden;
    padding: 9mm 9mm 7mm;
  }

  .hazo-print-document__visual-stage {
    display: block !important;
    flex: 1 1 auto;
    height: 184mm !important;
    max-height: 184mm !important;
    max-width: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
    position: relative !important;
    width: 100% !important;
  }

  .hazo-print-document__visual-media {
    display: block !important;
    flex: 1 1 auto;
    height: auto !important;
    max-height: 184mm !important;
    max-width: 100% !important;
    object-fit: contain;
    width: 100% !important;
  }

  .hazo-print-document__visual-stage :is(canvas, svg, img) {
    display: block !important;
    height: 100% !important;
    inset: 0 !important;
    max-height: 100% !important;
    max-width: 100% !important;
    object-fit: contain;
    width: 100% !important;
  }

  .hazo-print-document__visual-stage :is(button, .model-stage__hint, .model-stage__badge, .zip-preview-stage__label, .zip-opening-control, .wa-model-hint, .wa-model-badge, .lp3d-stage__hint, .lp3d-stage__badge, .lp3d-stage__status, .lp3d-stage__profile, .lp3d-stage__loading, .l3d-stage__hint, .l3d-stage__badge, .l3d-stage__status, .l3d-stage__loading) {
    display: none !important;
  }

  .hazo-print-document__visual figcaption {
    color: #4f6560;
    flex: 0 0 auto;
    font-size: 8.5pt;
    line-height: 1.4;
    margin-top: 5mm;
    text-align: center;
  }

  .hazo-print-document__visual-unavailable {
    color: #536761;
    margin: auto;
    text-align: center;
  }

  .hazo-print-document__page-label {
    color: #73827e;
    font-size: 8pt;
    margin: 5mm 0 0;
    text-align: right;
  }

  .hazo-print-document__summary {
    display: block !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow: visible !important;
    padding: 0 !important;
    position: static !important;
    width: 100% !important;
  }

  .hazo-print-document__summary :is(.review-card, .zip-review-item, .wa-review-item, .l3d-price-panel, .small-order-price-summary, .config-review-note, .wa-order-summary, .zip-order-summary) {
    break-inside: avoid;
    box-shadow: none !important;
    page-break-inside: avoid;
  }

  .hazo-print-document__summary :is(.review-card, .zip-review-item, .wa-review-item, .l3d-price-panel) {
    margin-bottom: 9px !important;
    padding: 12px !important;
  }

  .hazo-print-document__summary :is(.config-review-summary, .l3d-price-panel ul) {
    margin-top: 7px !important;
  }

  .hazo-print-document__summary :is(.config-review-summary li, .l3d-price-panel li, .review-line, .review-total, .zip-order-summary > div, .wa-order-summary > div, .small-order-price-summary__line) {
    break-inside: avoid;
    line-height: 1.3 !important;
    page-break-inside: avoid;
  }

  .hazo-print-document__summary :is(.config-review-summary li, .l3d-price-panel li) {
    padding-block: 5px !important;
  }

  .hazo-print-document__summary :is(.small-order-price-summary, .wa-order-summary, .zip-order-summary) {
    margin-block: 9px !important;
    padding: 12px !important;
  }

  .hazo-print-document__summary .config-review-note {
    margin-top: 9px !important;
    padding: 12px !important;
  }

  .hazo-print-document__fee-explanation {
    background: #f4f8f6 !important;
    border-left: 3px solid #d59b30;
    box-sizing: border-box !important;
    color: #415650 !important;
    display: block !important;
    margin-top: 3mm;
    min-width: 0 !important;
    padding: 3mm 3.5mm;
    width: 100% !important;
  }

  .hazo-print-document__fee-explanation p {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: inherit !important;
    display: block !important;
    font-size: 9pt !important;
    font-weight: 400 !important;
    line-height: 1.45 !important;
    margin: 1.5mm 0 0 !important;
    max-width: none !important;
    overflow-wrap: break-word !important;
    padding: 0 !important;
    text-align: left !important;
    white-space: normal !important;
    width: auto !important;
    word-break: normal !important;
  }

  .hazo-print-document__fee-explanation .hazo-print-document__fee-heading {
    color: #173f38 !important;
    font-size: 9.5pt !important;
    font-weight: 700 !important;
    margin-top: 0 !important;
  }

  .hazo-print-document__summary :is(.config-review-summary, .l3d-price-panel ul) {
    overflow: visible !important;
  }

  .hazo-print-document__summary--l3d .eyebrow {
    color: #42635d !important;
    font-size: 8.5pt !important;
    font-weight: 700;
    letter-spacing: .12em;
    margin: 0 0 4mm !important;
  }

  .hazo-print-document__summary--l3d .l3d-price-total {
    align-items: center !important;
    background: #155449 !important;
    border-radius: 3mm;
    color: #fff !important;
    display: flex !important;
    justify-content: space-between !important;
    padding: 4mm !important;
  }

  .hazo-print-document__summary--l3d .l3d-price-total strong {
    color: #f3b83f !important;
    font-size: 17pt !important;
  }

  .hazo-print-document__summary--l3d ul {
    list-style: none !important;
    margin: 3mm 0 0 !important;
    padding: 0 !important;
  }

  .hazo-print-document__summary--l3d li {
    align-items: start !important;
    border-bottom: 1px solid #d6e1dd;
    display: grid !important;
    gap: 5mm !important;
    grid-template-columns: minmax(38mm, .42fr) minmax(0, .58fr) !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 2.2mm 0 !important;
  }

  .hazo-print-document__summary--l3d li[hidden] {
    display: none !important;
  }

  .hazo-print-document__summary--l3d li > strong {
    color: #18342f !important;
    font-weight: 700 !important;
    max-width: none !important;
    text-align: right !important;
  }

  .hazo-print-document__summary :is(input, select, textarea) {
    color: #18342f !important;
  }

  .hazo-print-document__summary select {
    min-height: 10mm !important;
    padding-block: 1.5mm !important;
  }
}
