:root {
  --navy: #11263a;
  --navy-deep: #0b1824;
  --gold: #b08a4a;
  --cream: #f5f1e8;
  --paper: #ffffff;
  --ink: #1c2731;
  --muted: #6d7781;
  --border: #d8dde1;
  --soft: #eef1f3;
  --danger: #b53f3f;
  --success: #376b53;
  --shadow: 0 18px 50px rgba(17, 38, 58, 0.11);
}

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  min-height: 100%;
}

body {
  font-family: Inter, Arial, sans-serif;
  color: var(--ink);
  background: #e9edf0;
}

button,
input,
select {
  font: inherit;
}

button {
  cursor: pointer;
}

.designer-app {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr) 360px;
  background: var(--paper);
}

.designer-journey {
  background: var(--navy-deep);
  color: white;
  padding: 28px 22px;
  border-right: 1px solid rgba(255, 255, 255, 0.06);
}

.designer-brand {
  margin-bottom: 34px;
}

.designer-eyebrow {
  margin: 0 0 6px;
  color: #cfb98e;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.designer-brand h1 {
  margin: 0;
  font-family: Georgia, serif;
  font-size: 1.7rem;
  font-weight: 500;
  line-height: 1.1;
}

.journey-nav ol {
  list-style: none;
  padding: 0;
  margin: 0;
}

.journey-nav li {
  border-left: 2px solid rgba(255, 255, 255, 0.15);
  padding: 11px 0 11px 16px;
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.92rem;
}

.journey-nav li.is-current {
  color: white;
  border-left-color: var(--gold);
}

.journey-nav li.is-complete {
  color: #dce8e1;
  border-left-color: #6fa184;
}

.journey-nav li.has-error {
  color: #ffd8d8;
  border-left-color: #d86464;
}

.designer-preview {
  min-width: 0;
  display: flex;
  flex-direction: column;
  background:
    linear-gradient(to bottom, #f7f4ee 0%, #f1eee8 70%, #e4dfd5 100%);
}

.preview-toolbar {
  min-height: 70px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-bottom: 1px solid rgba(17, 38, 58, 0.08);
  background: rgba(255, 255, 255, 0.72);
  backdrop-filter: blur(8px);
}

.preview-toolbar button {
  border: 1px solid var(--border);
  background: white;
  color: var(--navy);
  padding: 9px 14px;
  min-height: 40px;
}

.preview-toolbar button:hover {
  border-color: var(--gold);
}

.preview-stage {
  flex: 1;
  min-height: 0;
  display: grid;
  place-items: center;
  padding: 32px;
  position: relative;
}

.preview-stage::after {
  content: "";
  position: absolute;
  left: 8%;
  right: 8%;
  bottom: 12%;
  height: 1px;
  background: rgba(17, 38, 58, 0.12);
}

.door-preview {
  position: relative;
  z-index: 1;
  height: min(68vh, 620px);
  width: auto;
  aspect-ratio: 0.48;
  display: grid;
  place-items: center;
  border: 14px solid #e8e4dc;
  background: #d8d4cc;
  box-shadow:
    0 30px 55px rgba(21, 30, 38, 0.16),
    0 5px 14px rgba(21, 30, 38, 0.08);
  color: var(--muted);
  text-align: center;
}

.design-summary {
  min-height: 72px;
  padding: 18px 28px;
  border-top: 1px solid rgba(17, 38, 58, 0.1);
  background: rgba(255, 255, 255, 0.88);
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.design-summary strong {
  color: var(--navy);
}

.design-summary span {
  color: var(--muted);
}

.designer-options {
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: white;
  border-left: 1px solid var(--border);
  box-shadow: -12px 0 30px rgba(17, 38, 58, 0.04);
}

.options-header {
  padding: 28px 26px 20px;
  border-bottom: 1px solid var(--border);
}

.options-step-label {
  margin: 0 0 6px;
  color: var(--gold);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.options-header h2 {
  margin: 0 0 8px;
  color: var(--navy);
  font-family: Georgia, serif;
  font-size: 1.65rem;
  font-weight: 500;
}

.options-header p:last-child {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.step-error {
  margin: 18px 22px 0;
  border: 1px solid #e3b0b0;
  border-left: 4px solid var(--danger);
  background: #fff6f6;
  color: #7d2929;
  padding: 13px 14px;
  line-height: 1.4;
}

.options-panel {
  flex: 1;
  overflow: auto;
  padding: 22px;
}

.option-card {
  width: 100%;
  min-height: 76px;
  margin-bottom: 12px;
  padding: 15px 16px;
  text-align: left;
  border: 1px solid var(--border);
  background: white;
  color: var(--ink);
  transition:
    border-color 160ms ease,
    box-shadow 160ms ease,
    transform 160ms ease;
}

.option-card:hover {
  border-color: #b8a17a;
  box-shadow: 0 8px 22px rgba(17, 38, 58, 0.06);
  transform: translateY(-1px);
}

.option-card.is-selected {
  border-color: var(--gold);
  box-shadow: inset 0 0 0 1px var(--gold);
  background: #fffdf8;
}

.option-card.has-error {
  border-color: var(--danger);
  box-shadow: inset 0 0 0 1px var(--danger);
  background: #fff7f7;
}

.option-title {
  display: block;
  color: var(--navy);
  font-weight: 700;
  margin-bottom: 3px;
}

.option-description {
  display: block;
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.4;
}

.designer-actions {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 10px;
  padding: 18px 22px;
  border-top: 1px solid var(--border);
  background: white;
}

.designer-actions button {
  min-height: 48px;
  border: 1px solid var(--border);
  padding: 0 16px;
}

#backButton {
  background: white;
  color: var(--navy);
}

#continueButton {
  background: var(--navy);
  color: white;
  border-color: var(--navy);
}

#continueButton:hover {
  background: #1b3650;
}

@media (max-width: 1100px) {
  .designer-app {
    grid-template-columns: 210px minmax(0, 1fr) 320px;
  }
}

@media (max-width: 850px) {
  .designer-app {
    display: block;
  }

  .designer-journey {
    padding: 18px;
  }

  .designer-brand {
    margin-bottom: 16px;
  }

  .journey-nav {
    overflow-x: auto;
  }

  .journey-nav ol {
    display: flex;
    gap: 8px;
    min-width: max-content;
  }

  .journey-nav li {
    border-left: 0;
    border-bottom: 2px solid rgba(255, 255, 255, 0.16);
    padding: 8px 10px;
    white-space: nowrap;
    font-size: 0.82rem;
  }

  .journey-nav li.is-current {
    border-bottom-color: var(--gold);
  }

  .designer-preview {
    min-height: 560px;
  }

  .preview-stage {
    min-height: 430px;
    padding: 26px 20px;
  }

  .door-preview {
    width: min(320px, 66vw);
  }

  .designer-options {
    border-left: 0;
    border-top: 1px solid var(--border);
  }

  .options-panel {
    overflow: visible;
  }
}

/* =========================================================
   EDITORIAL PREMIUM OPTION SYSTEM
   ========================================================= */

.options-panel {
  display: grid;
  gap: 14px;
  align-content: start;
}

/* Shared premium choice card */
.option-card {
  position: relative;
  width: 100%;
  margin: 0;
  padding: 16px 18px;

  border: 1px solid #d8d8d4;
  border-radius: 2px;

  background: #fbfaf6;
  color: var(--ink);

  text-align: left;

  box-shadow: none;

  transition:
    border-color 150ms ease,
    background-color 150ms ease;
}

.option-card:hover {
  transform: none;
  box-shadow: none;
  border-color: #b9ad98;
  background: #fffdf8;
}

.option-card.is-selected {
  border-color: var(--navy);
  box-shadow: none;
  background: #fffdf8;
}

.option-card.is-selected::before {
  content: "";
  position: absolute;
  top: -1px;
  left: -1px;
  bottom: -1px;
  width: 4px;
  background: var(--gold);
}

.option-card.has-error {
  border-color: var(--danger);
  background: #fff8f8;
}

.option-title {
  display: block;
  margin: 0 0 5px;

  color: var(--navy);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 1.08rem;
  font-weight: 500;
  line-height: 1.2;
}

.option-description {
  display: block;

  color: var(--muted);

  font-size: 0.86rem;
  line-height: 1.45;
}

/* =========================================================
   DOOR TYPE CARDS
   ========================================================= */

.option-card[data-door-type] {
  min-height: 108px;
  padding: 18px 18px 18px 72px;
}

.option-card[data-door-type]::after {
  content: "";
  position: absolute;
  left: 20px;
  top: 18px;

  width: 32px;
  height: 68px;

  border: 2px solid #c6c2b8;
  background:
    linear-gradient(
      to bottom,
      #f2efe8 0%,
      #ebe7de 100%
    );
}

.option-card[data-door-type="twin"]::after {
  width: 42px;
  background:
    linear-gradient(
      to right,
      #f2efe8 0 48%,
      #c8c3b8 48% 52%,
      #f2efe8 52% 100%
    );
}

.option-card[data-door-type="stable"]::after {
  background:
    linear-gradient(
      to bottom,
      #f2efe8 0 48%,
      #c8c3b8 48% 52%,
      #f2efe8 52% 100%
    );
}

.option-card[data-door-type="door-and-half"]::after {
  width: 42px;
  background:
    linear-gradient(
      to right,
      #f2efe8 0 68%,
      #c8c3b8 68% 72%,
      #f2efe8 72% 100%
    );
}

/* =========================================================
   PRODUCT / STYLE CARD
   ========================================================= */

.option-card[data-style] {
  min-height: 150px;
  padding: 16px;
}

.option-card[data-style] .style-thumb {
  width: 100%;
  min-height: 90px;

  display: grid;
  place-items: center;

  margin-bottom: 14px;

  border: 1px solid #e1e0dc;

  background:
    linear-gradient(
      to bottom,
      #f4f1ea,
      #ebe7de
    );
}

/* =========================================================
   PREMIUM COLOUR SWATCHES
   ========================================================= */

.colour-option {
  position: relative;

  display: flex;
  align-items: center;
  gap: 12px;

  width: 100%;
  min-height: 52px;

  padding: 11px 12px;

  border: 1px solid transparent;
  background: transparent;

  color: var(--navy);
  text-align: left;
}

.colour-option:hover {
  background: #faf8f2;
}

.colour-option.is-selected {
  border-color: #bca16f;
  background: #fffdf7;
}

.colour-option.is-selected::after {
  content: "Selected";

  margin-left: auto;

  color: var(--gold);

  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.colour-chip {
  flex: 0 0 auto;

  width: 26px;
  height: 26px;

  border-radius: 50%;

  border: 1px solid rgba(0, 0, 0, 0.18);

  box-shadow:
    inset 0 0 0 2px rgba(255, 255, 255, 0.16);
}

.colour-name {
  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 1rem;
  font-weight: 500;
}

/* =========================================================
   OPTION PANEL WIDTH / SPACING
   ========================================================= */

.options-header {
  padding-top: 30px;
}

.options-panel {
  padding-top: 18px;
}

@media (min-width: 851px) {
  .options-panel {
    grid-template-columns: 1fr;
  }
}


/* =========================================================
   CHESTER WINDOWS BRAND REFINEMENT — OPTION A
   ========================================================= */

/* Left rail brand refinement */
.designer-brand {
  padding-bottom: 22px;
  margin-bottom: 26px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.09);
}

.designer-eyebrow {
  color: var(--gold);
  font-size: 0.7rem;
  letter-spacing: 0.2em;
  margin-bottom: 8px;
}

.designer-brand h1 {
  font-size: 1.9rem;
  line-height: 1.04;
  letter-spacing: -0.02em;
}

/* Journey refinement */
.journey-nav li {
  position: relative;
  padding-left: 18px;
}

.journey-nav li.is-current {
  border-left-color: var(--gold);
  color: #ffffff;
}

.journey-nav li.is-current::after {
  content: "";
  position: absolute;
  left: -2px;
  top: 13px;
  width: 2px;
  height: 20px;
  background: #d1ad6c;
}

/* Preview toolbar becomes more editorial */
.preview-toolbar {
  min-height: 64px;
  gap: 0;
  background: rgba(255, 255, 255, 0.88);
}

.preview-toolbar button {
  position: relative;
  min-height: 64px;
  padding: 0 18px;
  border: 0;
  border-right: 1px solid #ece8df;
  background: transparent;
  color: #4f5b64;
  font-size: 0.84rem;
  letter-spacing: 0.02em;
}

.preview-toolbar button:first-child {
  border-left: 1px solid #ece8df;
}

.preview-toolbar button:hover {
  color: var(--navy);
  background: #faf8f3;
}

.preview-toolbar button[data-view="exterior"] {
  color: var(--navy);
  font-weight: 700;
}

.preview-toolbar button[data-view="exterior"]::after {
  content: "";
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 0;
  height: 2px;
  background: var(--gold);
}

/* Right panel branded header */
.options-header {
  position: relative;
  padding-top: 38px;
  background:
    linear-gradient(
      to bottom,
      #fffefb 0%,
      #ffffff 100%
    );
}

.options-header::before {
  content: "CHESTER WINDOWS";
  display: block;
  margin-bottom: 10px;
  color: var(--gold);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.18em;
}

.options-header::after {
  content: "";
  position: absolute;
  top: 28px;
  left: 26px;
  width: 34px;
  height: 1px;
  background: var(--gold);
  opacity: 0.85;
}

.options-step-label {
  margin-top: 2px;
  color: #9b7a43;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
}

.options-header h2 {
  color: var(--navy);
  font-size: 1.82rem;
  line-height: 1.08;
  letter-spacing: -0.02em;
}

.options-header p:last-child {
  max-width: 30ch;
  color: #66717a;
}

/* Warmer editorial option cards */
.option-card {
  background: #fdfbf7;
  border-color: #ded9cf;
}

.option-card:hover {
  border-color: #bca578;
  background: #fffefb;
}

.option-card.is-selected {
  border-color: var(--navy);
  background: #fffdf8;
}

.option-card.is-selected::before {
  width: 3px;
  background: var(--gold);
}

/* More refined action bar */
.designer-actions {
  background: #fffefb;
  border-top-color: #e6e2da;
}

.designer-actions button {
  min-height: 50px;
  border-radius: 0;
}

#backButton {
  background: #ffffff;
  color: var(--navy);
  border-color: #d8dce0;
}

#backButton:hover {
  background: #f8f7f3;
  border-color: #b6bdc3;
}

#continueButton {
  position: relative;
  background: var(--navy);
  border-color: var(--navy);
  color: #ffffff;
}

#continueButton::before {
  content: "";
  position: absolute;
  top: -1px;
  left: -1px;
  right: -1px;
  height: 2px;
  background: var(--gold);
}

#continueButton:hover {
  background: #17334d;
}

/* Current design summary */
.design-summary {
  background: rgba(255, 254, 250, 0.94);
  border-top-color: #ddd8cf;
}

.design-summary strong {
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: 1rem;
  font-weight: 500;
}

.design-summary span {
  color: #66717a;
}


/* =========================================================
   SINGLE BRAND LOGO TREATMENT
   ========================================================= */

.designer-eyebrow {
  display: none;
}

.designer-logo {
  display: block;
  width: min(178px, 100%);
  height: auto;
  object-fit: contain;
  object-position: left center;
  margin: 0 0 20px;
}

.designer-brand h1 {
  margin-top: 0;
}

/* Remove repeated Chester Windows wording from right panel */
.options-header::before {
  content: none;
  display: none;
}

.options-header::after {
  top: 24px;
  left: 26px;
  width: 38px;
}

/* Restore breathing room after removing brand eyebrow */
.options-header {
  padding-top: 38px;
}


/* =========================================================
   NAVY BRAND FRAME
   ========================================================= */

/* Top preview toolbar */
.preview-toolbar {
  background: var(--navy-deep);
  border-bottom-color: rgba(255, 255, 255, 0.08);
}

.preview-toolbar button {
  color: rgba(255, 255, 255, 0.72);
  border-right-color: rgba(255, 255, 255, 0.08);
}

.preview-toolbar button:first-child {
  border-left-color: rgba(255, 255, 255, 0.08);
}

.preview-toolbar button:hover {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.05);
}

.preview-toolbar button[data-view="exterior"] {
  color: #ffffff;
}

.preview-toolbar button[data-view="exterior"]::after {
  background: var(--gold);
}

/* Right-hand panel */
.designer-options {
  background: var(--navy-deep);
  border-left-color: rgba(255, 255, 255, 0.08);
  box-shadow: -12px 0 30px rgba(7, 18, 28, 0.12);
}

/* Right panel heading area */
.options-header {
  background: var(--navy-deep);
  border-bottom-color: rgba(255, 255, 255, 0.09);
}

.options-step-label {
  color: var(--gold);
}

.options-header h2 {
  color: #ffffff;
}

.options-header p:last-child {
  color: rgba(255, 255, 255, 0.68);
}

.options-header::after {
  background: var(--gold);
}

/* Options area */
.options-panel {
  background: var(--navy-deep);
}

/* Keep options light against navy */
.option-card {
  background: #fbf8f1;
  border-color: #ded6c8;
}

.option-card:hover {
  background: #fffdf8;
  border-color: #c4a66c;
}

.option-card.is-selected {
  background: #fffdf8;
  border-color: var(--gold);
}

.option-card.is-selected::before {
  background: var(--gold);
}

.option-title {
  color: var(--navy);
}

.option-description {
  color: #69737b;
}

/* Bottom action area */
.designer-actions {
  background: var(--navy-deep);
  border-top-color: rgba(255, 255, 255, 0.09);
}

#backButton {
  background: transparent;
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.24);
}

#backButton:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.42);
}

#continueButton {
  background: #ffffff;
  color: var(--navy);
  border-color: #ffffff;
}

#continueButton::before {
  background: var(--gold);
}

#continueButton:hover {
  background: #f6f2e9;
}

/* Step errors on dark panel */
.step-error {
  background: #fff7f7;
  color: #7d2929;
  border-color: #d9a5a5;
  border-left-color: var(--danger);
}


/* =========================================================
   OPTION CARD EDGE HIGHLIGHT / DEPTH
   ========================================================= */

.option-card {
  position: relative;
  background: #fbf8f1;
  border: 1px solid #ddd4c5;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.9) inset,
    0 0 0 1px rgba(255, 255, 255, 0.18),
    0 8px 18px rgba(8, 24, 38, 0.10);
  transition:
    transform 0.18s ease,
    box-shadow 0.18s ease,
    border-color 0.18s ease,
    background 0.18s ease;
}

.option-card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.72),
    inset 1px 0 0 rgba(255,255,255,0.28);
}

.option-card:hover {
  transform: translateY(-1px);
  border-color: #ccb27a;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.92) inset,
    0 0 0 1px rgba(212, 175, 55, 0.12),
    0 12px 22px rgba(8, 24, 38, 0.14);
}

.option-card.is-selected {
  border-color: var(--gold);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.95) inset,
    0 0 0 1px rgba(212, 175, 55, 0.18),
    0 14px 28px rgba(8, 24, 38, 0.16);
}


/* =========================================================
   PREMIUM SHOWROOM OPTION CARDS
   ========================================================= */

.option-card {
  background:
    linear-gradient(
      180deg,
      #fffdf8 0%,
      #f8f3e9 100%
    );

  border: 1px solid #d8cdbb;

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.96),
    inset 1px 0 0 rgba(255, 255, 255, 0.45),
    0 2px 5px rgba(8, 24, 38, 0.08),
    0 10px 22px rgba(8, 24, 38, 0.12);

  transition:
    transform 160ms ease,
    border-color 160ms ease,
    box-shadow 160ms ease,
    background 160ms ease;
}

.option-card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;

  border-radius: inherit;

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.92),
    inset 1px 0 0 rgba(255, 255, 255, 0.32),
    inset 0 -1px 0 rgba(112, 88, 52, 0.06);
}

.option-card:hover {
  transform: translateY(-2px);

  border-color: #c7a66b;

  background:
    linear-gradient(
      180deg,
      #fffefb 0%,
      #faf5eb 100%
    );

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.98),
    inset 1px 0 0 rgba(255, 255, 255, 0.5),
    0 3px 7px rgba(8, 24, 38, 0.09),
    0 14px 28px rgba(8, 24, 38, 0.16);
}

.option-card.is-selected {
  border-color: #b9904f;

  background:
    linear-gradient(
      180deg,
      #fffdf7 0%,
      #f7efdf 100%
    );

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.98),
    inset 1px 0 0 rgba(255, 255, 255, 0.5),
    0 0 0 1px rgba(176, 138, 74, 0.28),
    0 4px 9px rgba(8, 24, 38, 0.10),
    0 16px 30px rgba(8, 24, 38, 0.18);
}

.option-card.is-selected::before {
  width: 4px;

  background:
    linear-gradient(
      to bottom,
      #d1ad6c,
      #a87e3d
    );
}

.option-card.is-selected::after {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.98),
    inset 1px 0 0 rgba(255, 255, 255, 0.5),
    inset 0 -1px 0 rgba(176, 138, 74, 0.10);
}


/* =========================================================
   PREMIUM SHOWROOM OPTION CARDS
   ========================================================= */

.option-card {
  background:
    linear-gradient(
      180deg,
      #fffdf8 0%,
      #f8f3e9 100%
    );

  border: 1px solid #d8cdbb;

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.96),
    inset 1px 0 0 rgba(255, 255, 255, 0.45),
    0 2px 5px rgba(8, 24, 38, 0.08),
    0 10px 22px rgba(8, 24, 38, 0.12);

  transition:
    transform 160ms ease,
    border-color 160ms ease,
    box-shadow 160ms ease,
    background 160ms ease;
}

.option-card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;

  border-radius: inherit;

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.92),
    inset 1px 0 0 rgba(255, 255, 255, 0.32),
    inset 0 -1px 0 rgba(112, 88, 52, 0.06);
}

.option-card:hover {
  transform: translateY(-2px);

  border-color: #c7a66b;

  background:
    linear-gradient(
      180deg,
      #fffefb 0%,
      #faf5eb 100%
    );

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.98),
    inset 1px 0 0 rgba(255, 255, 255, 0.5),
    0 3px 7px rgba(8, 24, 38, 0.09),
    0 14px 28px rgba(8, 24, 38, 0.16);
}

.option-card.is-selected {
  border-color: #b9904f;

  background:
    linear-gradient(
      180deg,
      #fffdf7 0%,
      #f7efdf 100%
    );

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.98),
    inset 1px 0 0 rgba(255, 255, 255, 0.5),
    0 0 0 1px rgba(176, 138, 74, 0.28),
    0 4px 9px rgba(8, 24, 38, 0.10),
    0 16px 30px rgba(8, 24, 38, 0.18);
}

.option-card.is-selected::before {
  width: 4px;

  background:
    linear-gradient(
      to bottom,
      #d1ad6c,
      #a87e3d
    );
}

.option-card.is-selected::after {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.98),
    inset 1px 0 0 rgba(255, 255, 255, 0.5),
    inset 0 -1px 0 rgba(176, 138, 74, 0.10);
}


/* =========================================================
   SOFT LUXURY OPTION CARDS — FINAL OVERRIDE
   ========================================================= */

.option-card {
  background:
    linear-gradient(
      180deg,
      #fffdf9 0%,
      #fbf7ef 100%
    );

  border: 1px solid #ddd5c8;

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.92),
    0 1px 2px rgba(8, 24, 38, 0.04),
    0 6px 14px rgba(8, 24, 38, 0.08);

  transition:
    transform 150ms ease,
    border-color 150ms ease,
    box-shadow 150ms ease,
    background 150ms ease;
}

.option-card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;

  border-radius: inherit;

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.72),
    inset 1px 0 0 rgba(255, 255, 255, 0.22);
}

.option-card:hover {
  transform: translateY(-1px);

  border-color: #c9b58d;

  background:
    linear-gradient(
      180deg,
      #fffefb 0%,
      #fcf8f1 100%
    );

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.96),
    0 2px 4px rgba(8, 24, 38, 0.05),
    0 8px 16px rgba(8, 24, 38, 0.10);
}

.option-card.is-selected {
  border-color: #b08a4a;

  background:
    linear-gradient(
      180deg,
      #fffefb 0%,
      #faf4e8 100%
    );

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.96),
    0 0 0 1px rgba(176, 138, 74, 0.10),
    0 7px 16px rgba(8, 24, 38, 0.10);
}

.option-card.is-selected::before {
  width: 3px;
  background: #b08a4a;
}

.option-card.is-selected::after {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.88),
    inset 1px 0 0 rgba(255, 255, 255, 0.24);
}


/* =========================================================
   PREMIUM COLOUR SLAB THUMBNAILS
   ========================================================= */

.colour-thumbnail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.colour-thumbnail-card {
  display: block;
  width: 100%;
  padding: 0;

  border: 1px solid #d8d1c5;
  background: #fffdf8;
  color: var(--navy);
  text-align: left;

  box-shadow:
    0 1px 0 rgba(255,255,255,0.9) inset,
    0 6px 14px rgba(8,24,38,0.08);

  transition:
    transform 150ms ease,
    border-color 150ms ease,
    box-shadow 150ms ease;
}

.colour-thumbnail-card:hover {
  transform: translateY(-1px);
  border-color: #c6ad7c;
  box-shadow:
    0 1px 0 rgba(255,255,255,0.95) inset,
    0 9px 18px rgba(8,24,38,0.11);
}

.colour-thumbnail-card.is-selected {
  border-color: var(--gold);
  box-shadow:
    0 0 0 1px rgba(176,138,74,0.16),
    0 10px 20px rgba(8,24,38,0.12);
}

.colour-thumbnail-media {
  display: block;
  aspect-ratio: 1.65 / 1;
  overflow: hidden;
  background: #e9e4da;
  border-bottom: 1px solid #e1dbcf;
}

.colour-thumbnail-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.colour-thumbnail-footer {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 50px;
  padding: 11px 12px;
}

.colour-thumbnail-name {
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: 0.96rem;
  font-weight: 500;
  line-height: 1.2;
}

.colour-thumbnail-state {
  margin-left: auto;
  color: var(--gold);
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

@media (max-width: 1050px) {
  .colour-thumbnail-grid {
    grid-template-columns: 1fr;
  }
}


/* =========================================================
   COMPACT 3-COLUMN COLOUR GRID
   ========================================================= */

.colour-thumbnail-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.colour-thumbnail-media {
  aspect-ratio: 1.25 / 1;
}

.colour-thumbnail-footer {
  min-height: 42px;
  padding: 8px 9px;
}

.colour-thumbnail-name {
  font-size: 0.82rem;
  line-height: 1.15;
}

.colour-thumbnail-state {
  display: none;
}

@media (max-width: 1180px) {
  .colour-thumbnail-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* =========================================================
   FULL-WIDTH NAVY HEADER + LIGHT OPTIONS PANEL
   ========================================================= */

/* Make the whole designer capable of carrying the top banner */
.designer-app {
  position: relative;
}

/* Top preview control banner */
.preview-toolbar {
  position: relative;
  z-index: 10;

  min-height: 72px;

  background: var(--navy-deep);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);

  display: flex;
  align-items: center;
  justify-content: center;
}

/*
  Extend the navy visually across the right panel.
  The left rail is already navy.
*/
.preview-toolbar::after {
  content: "";
  position: absolute;

  top: 0;
  bottom: 0;
  left: 100%;

  width: 360px;

  background: var(--navy-deep);

  pointer-events: none;
  z-index: -1;
}

/* Cleaner banner controls */
.preview-toolbar button {
  min-height: 72px;
  padding: 0 22px;

  background: transparent;

  border: 0;
  border-left: 1px solid rgba(255, 255, 255, 0.08);

  color: rgba(255, 255, 255, 0.72);

  font-size: 0.84rem;
  letter-spacing: 0.025em;
}

.preview-toolbar button:last-child {
  border-right: 1px solid rgba(255, 255, 255, 0.08);
}

.preview-toolbar button:hover {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.045);
}

.preview-toolbar button[data-view="exterior"] {
  color: #ffffff;
  font-weight: 700;
}

.preview-toolbar button[data-view="exterior"]::after {
  left: 20px;
  right: 20px;
  bottom: 0;

  height: 2px;

  background: var(--gold);
}

/* =========================================================
   RIGHT PANEL — RETURN TO LIGHT SHOWROOM COLOURS
   ========================================================= */

.designer-options {
  background: #f4f0e8;

  border-left: 1px solid #ddd7cc;

  box-shadow:
    -10px 0 28px rgba(17, 38, 58, 0.045);
}

/* Step heading */
.options-header {
  background:
    linear-gradient(
      180deg,
      #f9f6ef 0%,
      #f4f0e8 100%
    );

  border-bottom: 1px solid #ddd7cc;
}

.options-step-label {
  color: #9b783f;
}

.options-header h2 {
  color: var(--navy);
}

.options-header p:last-child {
  color: #66727b;
}

.options-header::after {
  background: var(--gold);
}

/* Main option area */
.options-panel {
  background: #f4f0e8;
}

/* Bottom navigation */
.designer-actions {
  background: #f4f0e8;

  border-top: 1px solid #d9d3c8;
}

#backButton {
  background: rgba(255, 255, 255, 0.45);
  color: var(--navy);

  border: 1px solid #cbd0d3;
}

#backButton:hover {
  background: #ffffff;
  border-color: #adb6bc;
}

#continueButton {
  background: var(--navy);
  color: #ffffff;

  border-color: var(--navy);
}

#continueButton::before {
  background: var(--gold);
}

#continueButton:hover {
  background: #19364f;
}

/* Colour cards sit naturally against the light panel */
.colour-thumbnail-card {
  background: #fffdf8;
  border-color: #d6cec1;
}

/* Desktop extension width tracks the right-hand column */
@media (max-width: 1100px) {
  .preview-toolbar::after {
    width: 320px;
  }
}

/* On mobile there is no separate right column to extend into */
@media (max-width: 850px) {
  .preview-toolbar::after {
    display: none;
  }
}



/* =========================================================
   FINAL DESKTOP STRUCTURE
   FULL-WIDTH TOP BANNER + LIGHT OPTIONS PANEL
   ========================================================= */

.designer-app {
  height: 100vh;
  min-height: 0;

  display: grid;

  grid-template-columns:
    250px
    minmax(0, 1fr)
    360px;

  grid-template-rows:
    78px
    minmax(0, 1fr);

  grid-template-areas:
    "topbar topbar topbar"
    "journey preview options";

  overflow: hidden;

  background: #f4f0e8;
}

/* ---------------------------------------------------------
   TRUE FULL-WIDTH HEADER
   --------------------------------------------------------- */

.designer-topbar {
  grid-area: topbar;

  display: grid;

  grid-template-columns:
    250px
    minmax(0, 1fr)
    360px;

  min-width: 0;

  background: var(--navy-deep);

  border-bottom:
    1px solid rgba(255, 255, 255, 0.08);

  position: relative;
  z-index: 20;
}

.topbar-brand {
  display: flex;
  align-items: center;

  padding: 10px 24px;

  border-right:
    1px solid rgba(255, 255, 255, 0.08);
}

.topbar-logo {
  display: block;

  width: 185px;
  max-height: 56px;

  object-fit: contain;
  object-position: left center;
}

.topbar-spacer {
  border-left:
    1px solid rgba(255, 255, 255, 0.08);
}

/* ---------------------------------------------------------
   PREVIEW CONTROLS INSIDE HEADER
   --------------------------------------------------------- */

.preview-toolbar {
  position: static;

  min-height: 78px;

  display: flex;
  align-items: stretch;
  justify-content: center;

  gap: 0;

  background: transparent;

  border: 0;

  backdrop-filter: none;
}

.preview-toolbar::after {
  display: none !important;
}

.preview-toolbar button {
  position: relative;

  min-height: 78px;

  padding: 0 24px;

  border: 0;
  border-left:
    1px solid rgba(255, 255, 255, 0.08);

  background: transparent;

  color: rgba(255, 255, 255, 0.72);

  font-size: 0.86rem;

  letter-spacing: 0.015em;
}

.preview-toolbar button:last-child {
  border-right:
    1px solid rgba(255, 255, 255, 0.08);
}

.preview-toolbar button:hover {
  color: #ffffff;

  background:
    rgba(255, 255, 255, 0.045);
}

.preview-toolbar button[data-view="exterior"] {
  color: #ffffff;

  font-weight: 700;
}

.preview-toolbar button[data-view="exterior"]::after {
  content: "";

  position: absolute;

  left: 20px;
  right: 20px;
  bottom: 0;

  height: 2px;

  background: var(--gold);
}

/* ---------------------------------------------------------
   LEFT JOURNEY BELOW HEADER
   --------------------------------------------------------- */

.designer-journey {
  grid-area: journey;

  min-height: 0;

  overflow-y: auto;

  padding: 28px 22px;

  background: var(--navy-deep);
}

.designer-brand {
  margin-bottom: 24px;

  padding-bottom: 20px;
}

.designer-brand h1 {
  margin: 0;

  font-size: 1.82rem;
}

/* Old sidebar logo no longer used */
.designer-logo {
  display: none !important;
}

/* ---------------------------------------------------------
   CENTRE PREVIEW
   --------------------------------------------------------- */

.designer-preview {
  grid-area: preview;

  min-width: 0;
  min-height: 0;

  display: flex;
  flex-direction: column;

  background:
    linear-gradient(
      to bottom,
      #f7f4ee 0%,
      #f1eee8 70%,
      #e4dfd5 100%
    );
}

.preview-stage {
  flex: 1;

  min-height: 0;

  overflow: hidden;
}

/* ---------------------------------------------------------
   RIGHT OPTIONS PANEL
   MATCHES LIGHT PREVIEW PALETTE
   --------------------------------------------------------- */

.designer-options {
  grid-area: options;

  min-width: 0;
  min-height: 0;

  display: flex;
  flex-direction: column;

  overflow: hidden;

  background: #f4f0e8;

  border-left: 1px solid #ddd7cc;

  box-shadow:
    -8px 0 24px rgba(17, 38, 58, 0.04);
}

.options-header {
  flex: 0 0 auto;

  padding: 28px 26px 22px;

  background:
    linear-gradient(
      180deg,
      #f8f5ee 0%,
      #f4f0e8 100%
    );

  border-bottom: 1px solid #ddd7cc;
}

.options-header::before {
  display: none !important;
}

.options-header::after {
  top: 18px;
  left: 26px;

  width: 36px;

  background: var(--gold);
}

.options-step-label {
  color: #9b783f;
}

.options-header h2 {
  color: var(--navy);
}

.options-header p:last-child {
  color: #66727b;
}

.options-panel {
  flex: 1;

  min-height: 0;

  overflow-y: auto;

  background: #f4f0e8;
}

.designer-actions {
  flex: 0 0 auto;

  background: #f4f0e8;

  border-top: 1px solid #d9d3c8;
}

#backButton {
  background: rgba(255, 255, 255, 0.5);

  color: var(--navy);

  border-color: #cbd0d3;
}

#continueButton {
  background: var(--navy);

  color: #ffffff;

  border-color: var(--navy);
}

/* ---------------------------------------------------------
   DESKTOP COLUMN ADJUSTMENT
   --------------------------------------------------------- */

@media (max-width: 1100px) {
  .designer-app {
    grid-template-columns:
      210px
      minmax(0, 1fr)
      320px;
  }

  .designer-topbar {
    grid-template-columns:
      210px
      minmax(0, 1fr)
      320px;
  }

  .topbar-logo {
    width: 160px;
  }
}

/* ---------------------------------------------------------
   MOBILE STRUCTURE
   --------------------------------------------------------- */

@media (max-width: 850px) {
  .designer-app {
    height: auto;

    display: block;

    overflow: visible;
  }

  .designer-topbar {
    display: block;

    min-height: auto;
  }

  .topbar-brand {
    justify-content: center;

    border-right: 0;
    border-bottom:
      1px solid rgba(255, 255, 255, 0.08);
  }

  .topbar-logo {
    width: 165px;
  }

  .topbar-spacer {
    display: none;
  }

  .preview-toolbar {
    min-height: 58px;
  }

  .preview-toolbar button {
    min-height: 58px;

    flex: 1;

    padding: 0 12px;
  }

  .designer-journey,
  .designer-preview,
  .designer-options {
    overflow: visible;
  }
}


/* HEADER TITLE */
.topbar-brand{gap:18px}
.topbar-logo{flex:0 0 auto}
.topbar-title{min-width:0;padding-left:18px;border-left:1px solid rgba(255,255,255,.14)}
.topbar-title span{display:block;margin-bottom:3px;color:var(--gold);font-size:.62rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.topbar-title strong{display:block;color:#fff;font-family:Georgia,"Times New Roman",serif;font-size:1.15rem;font-weight:500;line-height:1.05;white-space:nowrap}
.designer-journey{padding-top:26px}
.designer-brand{display:none!important}
@media(max-width:1100px){.topbar-title strong{font-size:1rem}.topbar-title span{display:none}}
@media(max-width:850px){.topbar-brand{justify-content:flex-start}.topbar-title{padding-left:14px}}

/* =========================================================
   HEADER HIERARCHY — PAGE TITLE FIRST
   ========================================================= */

.designer-topbar {
  align-items: stretch;
}

.topbar-brand {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 10px 24px;
}

.topbar-title {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding-left: 20px;
  border-left: 1px solid rgba(255,255,255,.14);
}

.topbar-title span {
  order: 2;
  margin: 5px 0 0;
  color: rgba(255,255,255,.58);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.topbar-title strong {
  order: 1;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.7rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -.02em;
  white-space: nowrap;
}

/* Make the view controls clearly secondary */
.preview-toolbar {
  justify-content: flex-end;
  padding-right: 20px;
}

.preview-toolbar button {
  min-height: 78px;
  padding: 0 16px;
  color: rgba(255,255,255,.62);
  font-size: .78rem;
  font-weight: 500;
  letter-spacing: .02em;
  border-left: 0;
  border-right: 0;
}

.preview-toolbar button:hover {
  color: #fff;
  background: transparent;
}

.preview-toolbar button[data-view="exterior"] {
  color: #fff;
  font-weight: 700;
}

.preview-toolbar button[data-view="exterior"]::after {
  left: 16px;
  right: 16px;
  height: 2px;
  background: var(--gold);
}

/* Keep logo secondary to page title */
.topbar-logo {
  width: 150px;
  max-height: 48px;
}


/* =========================================================
   HEADER LAYOUT — CENTRED TITLE + RIGHT-SIDE VIEW CONTROLS
   ========================================================= */

.designer-topbar {
  position: relative;

  grid-template-columns:
    250px
    minmax(0, 1fr)
    360px;
}

/* Logo remains in the left section */
.topbar-brand {
  position: static;
  grid-column: 1;

  justify-content: flex-start;

  padding: 10px 24px;
}

/* Main page title centred across the header */
.topbar-title {
  position: absolute;

  left: 50%;
  top: 50%;

  transform: translate(-50%, -50%);

  padding: 0;
  border: 0;

  z-index: 2;
}

/* Remove the secondary Door Designer wording */
.topbar-title span {
  display: none !important;
}

.topbar-title strong {
  display: block;

  margin: 0;

  color: #ffffff;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 1.9rem;
  font-weight: 500;

  line-height: 1;

  letter-spacing: -0.025em;

  white-space: nowrap;
}

/* View controls occupy the header section above the right panel */
.preview-toolbar {
  grid-column: 3;

  min-width: 0;

  justify-content: center;

  padding: 0;

  border-left:
    1px solid rgba(255,255,255,.08);
}

/* No unused third-column spacer */
.topbar-spacer {
  display: none;
}

/* Smaller, secondary utility controls */
.preview-toolbar button {
  flex: 1;

  min-width: 0;

  padding: 0 8px;

  font-size: 0.76rem;
  font-weight: 500;

  color: rgba(255,255,255,.62);

  white-space: nowrap;
}

.preview-toolbar button[data-view="exterior"] {
  color: #ffffff;
  font-weight: 700;
}

.preview-toolbar button[data-view="exterior"]::after {
  left: 12px;
  right: 12px;
}

/* Keep the logo visually secondary to the title */
.topbar-logo {
  width: 150px;
  max-height: 50px;
}

@media (max-width: 1100px) {
  .designer-topbar {
    grid-template-columns:
      210px
      minmax(0, 1fr)
      320px;
  }

  .topbar-title strong {
    font-size: 1.55rem;
  }

  .preview-toolbar button {
    font-size: 0.72rem;
    padding: 0 5px;
  }
}


/* =========================================================
   REMOVE REDUNDANT STEP COUNTER + RECLAIM VERTICAL SPACE
   ========================================================= */

.options-step-label {
  display: none !important;
}

.options-header {
  padding-top: 22px;
  padding-bottom: 18px;
}

.options-header::after {
  display: none;
}

.options-header h2 {
  margin-top: 0;
  margin-bottom: 10px;
}

.options-header p:last-child {
  margin-bottom: 0;
}


/* =========================================================
   COMPACT COLOUR LABELS
   ========================================================= */

.colour-thumbnail-footer {
  min-height: 34px;
  padding: 5px 8px;
}

.colour-thumbnail-name {
  font-size: 0.78rem;
  line-height: 1.05;
}


/* =========================================================
   GLASS PLACEHOLDER THUMBNAILS
   ========================================================= */

.glass-placeholder {
  position: relative;
  display: block;

  background:
    linear-gradient(
      135deg,
      rgba(255,255,255,.78),
      rgba(205,220,226,.72)
    );

  overflow: hidden;
}

.glass-placeholder::before,
.glass-placeholder::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.glass-placeholder::before {
  background:
    linear-gradient(
      90deg,
      rgba(255,255,255,.18),
      rgba(255,255,255,.46) 35%,
      rgba(255,255,255,.12) 65%,
      rgba(255,255,255,.34)
    );
}

.glass-placeholder-pattern {
  position: absolute;
  inset: 10px;

  border: 1px solid rgba(46,70,85,.28);

  background:
    repeating-linear-gradient(
      45deg,
      rgba(72,101,118,.16) 0,
      rgba(72,101,118,.16) 2px,
      transparent 2px,
      transparent 12px
    ),
    repeating-linear-gradient(
      -45deg,
      rgba(255,255,255,.45) 0,
      rgba(255,255,255,.45) 1px,
      transparent 1px,
      transparent 14px
    );

  box-shadow:
    inset 0 0 0 5px rgba(255,255,255,.2),
    inset 0 0 16px rgba(36,61,77,.12);
}

.glass-placeholder::after {
  background:
    radial-gradient(
      circle at 35% 25%,
      rgba(255,255,255,.5),
      transparent 24%
    ),
    radial-gradient(
      circle at 70% 70%,
      rgba(95,125,143,.16),
      transparent 30%
    );
}

/* Slight variation between cards */

























/* =========================================================
   GLASS CARD COLOUR ACCENTS
   ========================================================= */




























/* Keep the line work readable over the richer backgrounds */
.glass-placeholder-pattern {
  mix-blend-mode: multiply;
}






/* =========================================================
   NAMED GLASS ARTWORK
   Product IDs drive the design instead of card position.
   ========================================================= */


/* =========================================================
   ORIGINAL GLASS RANGE — NAMED ARTWORK
   Replaces the old nth-child/card-position styling.
   ========================================================= */

/* ---------- Kensington ---------- */

.glass-kensington {
  background:
    linear-gradient(
      135deg,
      rgba(245,249,246,.96),
      rgba(213,224,218,.84)
    );
}

.glass-pattern-kensington {
  background:
    repeating-linear-gradient(
      -45deg,
      transparent 0 13px,
      rgba(184,155,72,.42) 14px 17px,
      transparent 18px 30px
    );
}

/* ---------- Cameo ---------- */

.glass-cameo {
  background:
    linear-gradient(
      135deg,
      rgba(247,244,234,.96),
      rgba(221,216,196,.84)
    );
}

.glass-pattern-cameo {
  background:
    repeating-linear-gradient(
      0deg,
      transparent 0 23px,
      rgba(255,255,255,.72) 24px 28px
    );
}

/* ---------- Maze ---------- */

.glass-maze {
  background:
    linear-gradient(
      135deg,
      rgba(232,243,247,.96),
      rgba(194,216,226,.84)
    );
}

.glass-pattern-maze {
  background:
    repeating-linear-gradient(
      90deg,
      transparent 0 18px,
      rgba(72,116,142,.38) 19px 22px
    );
}

/* ---------- Reflections ---------- */

.glass-reflections {
  background:
    linear-gradient(
      135deg,
      rgba(234,246,249,.96),
      rgba(191,221,231,.82)
    );
}

.glass-pattern-reflections {
  background:
    radial-gradient(
      circle,
      rgba(255,255,255,.72) 0 4px,
      transparent 5px
    );
  background-size: 25px 32px;
}

/* ---------- Tri Line ---------- */

.glass-tri-line {
  background:
    linear-gradient(
      135deg,
      rgba(229,242,239,.96),
      rgba(190,216,211,.84)
    );
}

.glass-pattern-tri-line {
  background:
    linear-gradient(
      90deg,
      transparent 26%,
      rgba(56,117,118,.54) 27% 30%,
      transparent 31% 48%,
      rgba(56,117,118,.54) 49% 52%,
      transparent 53% 70%,
      rgba(56,117,118,.54) 71% 74%,
      transparent 75%
    );
}

/* ---------- Tri Bevel ---------- */

.glass-tri-bevel {
  background:
    linear-gradient(
      135deg,
      rgba(246,241,226,.96),
      rgba(222,208,169,.84)
    );
}

.glass-pattern-tri-bevel {
  background:
    repeating-linear-gradient(
      -45deg,
      transparent 0 24px,
      rgba(202,171,92,.56) 25px 30px,
      transparent 31px 48px
    );
}

/* ---------- Infinity ---------- */

.glass-infinity {
  background:
    linear-gradient(
      135deg,
      rgba(226,243,241,.96),
      rgba(181,218,214,.84)
    );
}

.glass-pattern-infinity {
  background:
    radial-gradient(
      circle at center,
      transparent 0 12%,
      rgba(66,145,149,.46) 13% 16%,
      transparent 17% 24%,
      rgba(66,145,149,.38) 25% 28%,
      transparent 29% 36%,
      rgba(66,145,149,.30) 37% 40%,
      transparent 41%
    );
}

/* ---------- Prairie ---------- */

.glass-prairie {
  background:
    linear-gradient(
      135deg,
      rgba(239,244,232,.96),
      rgba(204,217,193,.86)
    );
}

.glass-pattern-prairie {
  background:
    linear-gradient(
      90deg,
      transparent 18%,
      rgba(103,128,88,.48) 19% 22%,
      transparent 23% 77%,
      rgba(103,128,88,.48) 78% 81%,
      transparent 82%
    ),
    linear-gradient(
      0deg,
      transparent 14%,
      rgba(191,154,76,.46) 15% 18%,
      transparent 19% 81%,
      rgba(191,154,76,.46) 82% 85%,
      transparent 86%
    );
}

/* ---------- Murano Black ---------- */

.glass-murano-black {
  background:
    linear-gradient(
      135deg,
      rgba(225,228,229,.96),
      rgba(151,159,162,.84)
    );
}

.glass-pattern-murano-black {
  color: rgba(42,47,50,.72);
  background:
    radial-gradient(
      ellipse at center,
      transparent 0 22%,
      currentColor 23% 27%,
      transparent 28% 40%,
      rgba(255,255,255,.36) 41% 45%,
      transparent 46%
    ),
    linear-gradient(
      90deg,
      transparent 47%,
      currentColor 48% 52%,
      transparent 53%
    );
  opacity: .82;
}

.glass-pattern-kensington,
.glass-pattern-cameo,
.glass-pattern-maze,
.glass-pattern-reflections,
.glass-pattern-tri-line,
.glass-pattern-tri-bevel,
.glass-pattern-infinity,
.glass-pattern-prairie,
.glass-pattern-murano-black {
  border-color: rgba(60,82,94,.30);
  box-shadow:
    inset 0 0 0 5px rgba(255,255,255,.20),
    inset 0 0 16px rgba(36,61,77,.10);
}


/* ---------- Classic ---------- */

.glass-classic {
  background:
    linear-gradient(
      135deg,
      rgba(247,246,238,.96),
      rgba(207,223,228,.86)
    );
}

.glass-pattern-classic {
  background:
    linear-gradient(
      45deg,
      transparent 47%,
      rgba(137,153,160,.55) 48% 52%,
      transparent 53%
    ),
    linear-gradient(
      -45deg,
      transparent 47%,
      rgba(137,153,160,.42) 48% 52%,
      transparent 53%
    ),
    radial-gradient(
      circle at center,
      rgba(255,255,255,.88) 0 14%,
      rgba(164,184,191,.45) 15% 17%,
      transparent 18%
    );
  background-size:
    42px 42px,
    42px 42px,
    100% 100%;
}

/* ---------- Murano Blue ---------- */

.glass-murano-blue {
  background:
    linear-gradient(
      135deg,
      rgba(221,239,245,.96),
      rgba(166,210,228,.78)
    );
}

.glass-pattern-murano-blue {
  background:
    radial-gradient(
      ellipse at center,
      transparent 0 24%,
      rgba(42,121,165,.55) 25% 29%,
      transparent 30% 41%,
      rgba(109,173,202,.38) 42% 46%,
      transparent 47%
    ),
    linear-gradient(
      90deg,
      transparent 46%,
      rgba(36,106,151,.42) 47% 53%,
      transparent 54%
    );
}

/* ---------- Zinc Star ---------- */

.glass-zinc-star {
  background:
    linear-gradient(
      135deg,
      rgba(239,241,240,.96),
      rgba(195,202,205,.82)
    );
}

.glass-pattern-zinc-star {
  background:
    linear-gradient(
      45deg,
      transparent 45%,
      rgba(82,87,91,.58) 46% 54%,
      transparent 55%
    ),
    linear-gradient(
      -45deg,
      transparent 45%,
      rgba(82,87,91,.58) 46% 54%,
      transparent 55%
    ),
    linear-gradient(
      90deg,
      transparent 48%,
      rgba(113,118,120,.42) 49% 51%,
      transparent 52%
    ),
    linear-gradient(
      0deg,
      transparent 48%,
      rgba(113,118,120,.42) 49% 51%,
      transparent 52%
    );
  background-size:
    44px 44px,
    44px 44px,
    100% 100%,
    100% 100%;
}

.glass-pattern-classic,
.glass-pattern-murano-blue,
.glass-pattern-zinc-star {
  border-color: rgba(60,82,94,.32);
  box-shadow:
    inset 0 0 0 5px rgba(255,255,255,.24),
    inset 0 0 16px rgba(36,61,77,.10);
}


/* =========================================================
   SHARED BROCHURE GLASS ARTWORK
   These IDs mirror door-designer/catalogue/options.json.
   ========================================================= */

.glass-apollo,
.glass-bullseye,
.glass-linear,
.glass-maestro,
.glass-millennium,
.glass-modana,
.glass-retro,
.glass-simplicity,
.glass-tahoe,
.glass-etch-squares,
.glass-venetian {
  background:
    linear-gradient(
      135deg,
      rgba(245,250,250,.96),
      rgba(193,214,220,.82)
    );
}

/* ---------- Apollo ---------- */
.glass-pattern-apollo {
  background:
    linear-gradient(
      45deg,
      transparent 46%,
      rgba(103,119,125,.60) 47% 53%,
      transparent 54%
    ),
    linear-gradient(
      -45deg,
      transparent 46%,
      rgba(103,119,125,.60) 47% 53%,
      transparent 54%
    ),
    radial-gradient(
      ellipse at center,
      rgba(255,255,255,.72) 0 16%,
      rgba(112,131,138,.42) 17% 20%,
      transparent 21%
    );
  background-size:
    48px 48px,
    48px 48px,
    100% 100%;
}

/* ---------- Bullseye ---------- */
.glass-pattern-bullseye {
  background:
    radial-gradient(
      circle at center,
      rgba(255,255,255,.75) 0 10%,
      rgba(106,126,134,.46) 11% 14%,
      transparent 15% 21%,
      rgba(106,126,134,.38) 22% 25%,
      transparent 26% 34%,
      rgba(106,126,134,.28) 35% 38%,
      transparent 39%
    );
}

/* ---------- Linear ---------- */
.glass-pattern-linear {
  background:
    linear-gradient(
      90deg,
      transparent 25%,
      rgba(255,255,255,.70) 26% 28%,
      transparent 29% 48%,
      rgba(92,112,120,.48) 49% 52%,
      transparent 53% 71%,
      rgba(255,255,255,.70) 72% 74%,
      transparent 75%
    );
}

/* ---------- Maestro ---------- */
.glass-pattern-maestro {
  background:
    linear-gradient(
      45deg,
      transparent 43%,
      rgba(103,119,125,.58) 44% 47%,
      transparent 48%
    ),
    linear-gradient(
      -45deg,
      transparent 43%,
      rgba(103,119,125,.58) 44% 47%,
      transparent 48%
    ),
    radial-gradient(
      circle at center,
      rgba(202,174,91,.48) 0 8%,
      rgba(104,120,126,.52) 9% 11%,
      transparent 12%
    );
}

/* ---------- Millennium ---------- */
.glass-pattern-millennium {
  background:
    linear-gradient(
      90deg,
      transparent 18%,
      rgba(102,119,126,.45) 19% 22%,
      transparent 23% 77%,
      rgba(102,119,126,.45) 78% 81%,
      transparent 82%
    ),
    repeating-linear-gradient(
      0deg,
      transparent 0 27px,
      rgba(255,255,255,.68) 28px 30px,
      transparent 31px 56px
    );
}

/* ---------- Modana ---------- */
.glass-pattern-modana {
  background:
    linear-gradient(
      45deg,
      transparent 44%,
      rgba(95,113,120,.55) 45% 50%,
      transparent 51%
    ),
    linear-gradient(
      -45deg,
      transparent 44%,
      rgba(95,113,120,.55) 45% 50%,
      transparent 51%
    ),
    linear-gradient(
      0deg,
      transparent 48%,
      rgba(190,155,74,.42) 49% 52%,
      transparent 53%
    );
}

/* ---------- Retro ---------- */
.glass-pattern-retro {
  background:
    repeating-linear-gradient(
      0deg,
      rgba(255,255,255,.15) 0 18px,
      rgba(110,130,138,.24) 19px 20px,
      transparent 21px 31px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0 29px,
      rgba(110,130,138,.22) 30px 31px,
      transparent 32px 60px
    );
}

/* ---------- Simplicity ---------- */
.glass-pattern-simplicity {
  background:
    linear-gradient(
      90deg,
      transparent 47%,
      rgba(93,112,120,.50) 48% 52%,
      transparent 53%
    ),
    radial-gradient(
      circle at 50% 35%,
      rgba(255,255,255,.72) 0 7%,
      rgba(110,127,134,.42) 8% 10%,
      transparent 11%
    ),
    radial-gradient(
      circle at 50% 65%,
      rgba(255,255,255,.72) 0 7%,
      rgba(110,127,134,.42) 8% 10%,
      transparent 11%
    );
}

/* ---------- Tahoe ---------- */
.glass-pattern-tahoe {
  background:
    repeating-linear-gradient(
      0deg,
      transparent 0 22px,
      rgba(105,125,133,.25) 23px 24px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0 27px,
      rgba(105,125,133,.25) 28px 29px
    ),
    linear-gradient(
      135deg,
      rgba(255,255,255,.18),
      rgba(104,132,144,.10)
    );
}

/* ---------- Etch Squares ---------- */
.glass-pattern-etch-squares {
  background:
    repeating-linear-gradient(
      0deg,
      rgba(255,255,255,.16) 0 18px,
      rgba(105,125,132,.17) 19px 20px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0 21px,
      rgba(105,125,132,.17) 22px 23px
    );
}

/* ---------- Venetian ---------- */
.glass-pattern-venetian {
  background:
    repeating-linear-gradient(
      0deg,
      rgba(96,105,108,.40) 0 2px,
      rgba(255,255,255,.14) 3px 8px,
      transparent 9px 11px
    );
}

/* ---------- Standard clear / obscure glass ---------- */
.glass-clear {
  background:
    linear-gradient(
      135deg,
      rgba(247,253,255,.96),
      rgba(201,224,232,.72)
    );
}

.glass-pattern-clear {
  background:
    linear-gradient(
      120deg,
      transparent 0 34%,
      rgba(255,255,255,.48) 35% 39%,
      transparent 40% 100%
    );
}

.glass-satin {
  background:
    linear-gradient(
      135deg,
      rgba(250,251,249,.96),
      rgba(216,225,224,.92)
    );
}

.glass-pattern-satin {
  background:
    linear-gradient(
      rgba(255,255,255,.35),
      rgba(255,255,255,.35)
    );
}

.glass-cotswold {
  background:
    linear-gradient(
      135deg,
      rgba(242,249,249,.95),
      rgba(200,216,217,.82)
    );
}

.glass-pattern-cotswold {
  background:
    repeating-linear-gradient(
      72deg,
      rgba(255,255,255,.34) 0 3px,
      rgba(116,136,140,.10) 4px 6px,
      transparent 7px 12px
    );
}

.glass-minster {
  background:
    linear-gradient(
      135deg,
      rgba(243,249,248,.96),
      rgba(200,216,213,.84)
    );
}

.glass-pattern-minster {
  background:
    radial-gradient(
      circle,
      rgba(255,255,255,.40) 0 4px,
      rgba(122,139,141,.12) 5px,
      transparent 7px
    );
  background-size: 15px 15px;
}

.glass-havana {
  background:
    linear-gradient(
      135deg,
      rgba(242,248,248,.96),
      rgba(199,216,217,.84)
    );
}

.glass-pattern-havana {
  background:
    repeating-linear-gradient(
      16deg,
      transparent 0 10px,
      rgba(108,129,135,.16) 11px 13px,
      transparent 14px 22px
    );
}

/* ---------- Murano colour family ---------- */
.glass-murano-green {
  background:
    linear-gradient(
      135deg,
      rgba(225,241,230,.96),
      rgba(155,202,169,.78)
    );
}

.glass-murano-purple {
  background:
    linear-gradient(
      135deg,
      rgba(237,225,241,.96),
      rgba(191,151,205,.80)
    );
}

.glass-murano-red {
  background:
    linear-gradient(
      135deg,
      rgba(245,225,225,.96),
      rgba(204,133,136,.78)
    );
}

.glass-murano-red-yellow {
  background:
    linear-gradient(
      135deg,
      rgba(245,224,220,.96),
      rgba(226,196,113,.82)
    );
}

.glass-pattern-murano-green,
.glass-pattern-murano-purple,
.glass-pattern-murano-red,
.glass-pattern-murano-red-yellow {
  background:
    radial-gradient(
      ellipse at center,
      transparent 0 22%,
      currentColor 23% 27%,
      transparent 28% 40%,
      rgba(255,255,255,.40) 41% 45%,
      transparent 46%
    ),
    linear-gradient(
      90deg,
      transparent 47%,
      currentColor 48% 52%,
      transparent 53%
    );
  opacity: .76;
}

.glass-pattern-murano-green {
  color: rgba(59,132,88,.68);
}

.glass-pattern-murano-purple {
  color: rgba(125,76,148,.68);
}

.glass-pattern-murano-red {
  color: rgba(165,62,66,.70);
}

.glass-pattern-murano-red-yellow {
  color: rgba(181,93,57,.68);
}

/* Match the existing named-artwork treatment. */
.glass-pattern-apollo,
.glass-pattern-bullseye,
.glass-pattern-linear,
.glass-pattern-maestro,
.glass-pattern-millennium,
.glass-pattern-modana,
.glass-pattern-retro,
.glass-pattern-simplicity,
.glass-pattern-tahoe,
.glass-pattern-etch-squares,
.glass-pattern-venetian,
.glass-pattern-clear,
.glass-pattern-cotswold,
.glass-pattern-minster,
.glass-pattern-havana,
.glass-pattern-satin,
.glass-pattern-murano-green,
.glass-pattern-murano-purple,
.glass-pattern-murano-red,
.glass-pattern-murano-red-yellow {
  border-color: rgba(60,82,94,.30);
  box-shadow:
    inset 0 0 0 5px rgba(255,255,255,.20),
    inset 0 0 16px rgba(36,61,77,.10);
}


/* =========================================================
   MURANO COLOUR MODAL
   ========================================================= */

.murano-colour-dialog {
  width: min(92vw, 560px);
  max-width: 560px;
  padding: 0;
  border: 0;
  border-radius: 18px;
  background: #f8f4ec;
  color: #102b43;
  box-shadow:
    0 24px 80px rgba(15, 32, 46, .34);
}

.murano-colour-dialog::backdrop {
  background: rgba(7, 22, 34, .62);
  backdrop-filter: blur(2px);
}

.murano-colour-dialog-panel {
  padding: 28px;
}

.murano-colour-dialog-panel h3 {
  margin: 0 0 8px;
  color: #102b43;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.55rem, 4vw, 2rem);
  font-weight: 500;
  line-height: 1.15;
}

.murano-colour-dialog-panel p {
  margin: 0 0 22px;
  color: #65717b;
  font-size: .98rem;
  line-height: 1.5;
}

.murano-colour-dialog-grid {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.murano-colour-dialog-option {
  appearance: none;
  display: grid;
  grid-template-columns:
    74px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 10px;
  border: 1px solid #d7d0c3;
  border-radius: 10px;
  background: #fff;
  color: #16334a;
  font: inherit;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
  transition:
    border-color .15s ease,
    box-shadow .15s ease,
    transform .15s ease;
}

.murano-colour-dialog-option:hover,
.murano-colour-dialog-option:focus-visible {
  border-color: #c48a28;
  box-shadow:
    0 0 0 2px rgba(196, 138, 40, .16);
  outline: none;
}

.murano-colour-dialog-option:active {
  transform: translateY(1px);
}

.murano-colour-dialog-option.is-selected {
  border-color: #c48a28;
  box-shadow:
    inset 0 0 0 1px #c48a28;
}

.murano-colour-preview {
  position: relative;
  display: block;
  width: 74px;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border: 1px solid rgba(47, 74, 88, .20);
  border-radius: 4px;
}

.murano-colour-preview
.glass-placeholder-pattern {
  position: absolute;
  inset: 0;
}

.murano-colour-label {
  min-width: 0;
}

@media (max-width: 520px) {
  .murano-colour-dialog {
    width: calc(100vw - 24px);
    border-radius: 14px;
  }

  .murano-colour-dialog-panel {
    padding: 20px;
  }

  .murano-colour-dialog-grid {
    grid-template-columns: 1fr;
  }

  .murano-colour-dialog-option {
    grid-template-columns:
      62px minmax(0, 1fr);
  }

  .murano-colour-preview {
    width: 62px;
  }
}

/* =========================================================
   STEP 5 — COMPACT 4-COLUMN FRAME GRID
   ========================================================= */

.designer-options .options-panel .colour-thumbnail-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

/* Shorter frame samples */
.frame-colour-preview {
  aspect-ratio: 1.15 / 1;
  min-height: 0;
}

/* Compact frame labels */
.frame-colour-preview + .colour-thumbnail-footer {
  min-height: 34px;
  padding: 5px 7px;
}

/* Keep names readable without making cards taller */
.frame-colour-preview + .colour-thumbnail-footer .colour-thumbnail-name {
  font-size: 0.74rem;
  line-height: 1.05;
}

/* Surcharge becomes a compact secondary line */
.frame-surcharge {
  display: block;
  margin-top: 2px;
  color: #9b783f;
  font-size: 0.58rem;
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

/* Slightly tighter spacing specifically on frame step */
.frame-colour-preview {
  border-bottom: 1px solid #d8d1c5;
}


/* =========================================================
   FRAME GRID — REMOVE HORIZONTAL OVERFLOW
   ========================================================= */

.options-panel {
  overflow-x: hidden;
}

.options-panel .colour-thumbnail-grid {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.options-panel .colour-thumbnail-card {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}

.frame-colour-preview + .colour-thumbnail-footer {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  min-width: 0;
}

.frame-colour-preview + .colour-thumbnail-footer .colour-thumbnail-name {
  display: block;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.frame-surcharge {
  display: inline-block;
  width: auto;
  max-width: 100%;

  margin-top: 4px;
  padding: 3px 5px;

  background: rgba(177, 133, 58, 0.11);
  border: 1px solid rgba(177, 133, 58, 0.25);

  color: #8d682f;

  font-size: 0.52rem;
  line-height: 1;
  font-weight: 700;

  letter-spacing: 0.04em;
  text-transform: uppercase;

  white-space: nowrap;
}


/* =========================================================
   FRAME CARD LABEL POLISH
   ========================================================= */

.frame-colour-preview + .colour-thumbnail-footer {
  padding: 7px 8px 8px;
}

.frame-colour-preview + .colour-thumbnail-footer .colour-thumbnail-name {
  font-size: 0.70rem;
  line-height: 1.08;

  white-space: normal;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}

.frame-surcharge {
  margin-top: 6px;

  padding: 3px 5px;

  font-size: 0.48rem;
  letter-spacing: 0.035em;

  white-space: nowrap;
}


/* =========================================================
   FRAME CARDS — FINAL LABEL ALIGNMENT
   ========================================================= */

.frame-colour-preview {
  height: 76px;
}

.frame-colour-preview + .colour-thumbnail-footer {
  height: 46px;
  min-height: 46px;

  display: flex;
  align-items: center;
  justify-content: flex-start;

  padding: 6px 8px;

  box-sizing: border-box;
}

.frame-colour-preview + .colour-thumbnail-footer .colour-thumbnail-name {
  min-height: 0;

  display: block;

  width: 100%;

  font-size: 0.66rem;
  line-height: 1.05;

  white-space: normal;
  word-break: normal;
  overflow-wrap: normal;

  text-align: left;
}

/* Remove old reserved surcharge space */
.frame-colour-preview + .colour-thumbnail-footer::after {
  display: none !important;
}



/* =========================================================
   STEP 6 — OPENING DIRECTION CARDS
   ========================================================= */

.opening-option-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.opening-option-card {
  min-width: 0;
  padding: 0;

  overflow: hidden;

  background: #fffdf8;
  border: 1px solid #d8d1c5;

  color: var(--navy);
  text-align: left;

  box-shadow:
    0 5px 14px rgba(17, 38, 58, 0.05);

  cursor: pointer;
}

.opening-option-card:hover {
  border-color: #bda26c;
}

.opening-option-card.is-selected {
  border-color: var(--gold);

  box-shadow:
    0 0 0 1px var(--gold),
    0 8px 18px rgba(17, 38, 58, 0.08);
}

.opening-diagram {
  display: flex;
  align-items: center;
  justify-content: center;

  height: 145px;

  background:
    linear-gradient(
      180deg,
      #f5f2eb 0%,
      #ebe7de 100%
    );

  border-bottom: 1px solid #ddd7cc;
}

.opening-frame {
  position: relative;

  display: block;

  width: 78px;
  height: 108px;

  border: 5px solid #143149;

  background: rgba(255,255,255,.42);

  box-sizing: border-box;
}

.opening-leaf {
  position: absolute;

  top: 4px;
  bottom: 4px;

  width: 48px;

  background:
    linear-gradient(
      90deg,
      #49657a,
      #28455d
    );

  border: 1px solid rgba(0,0,0,.18);
}

.hinge-left .opening-leaf {
  left: 4px;

  transform-origin: left center;
}

.hinge-right .opening-leaf {
  right: 4px;

  transform-origin: right center;
}

.opening-hinges {
  position: absolute;

  top: 20px;

  width: 4px;
  height: 8px;

  background: #b9934b;

  box-shadow:
    0 56px 0 #b9934b;
}

.hinge-left .opening-hinges {
  left: -2px;
}

.hinge-right .opening-hinges {
  right: -2px;
}

.opening-swing {
  position: absolute;

  top: 50%;

  width: 52px;
  height: 52px;

  margin-top: -26px;

  border: 2px solid rgba(185, 147, 75, .72);
  border-top-color: transparent;
  border-bottom-color: transparent;

  border-radius: 50%;
}

.hinge-left .opening-swing {
  left: 2px;
}

.hinge-right .opening-swing {
  right: 2px;
}

.opens-in .opening-swing {
  transform: scaleX(.75);
}

.opens-out .opening-swing {
  transform: scaleX(1.15);
}

.opening-arrow {
  position: absolute;

  top: 48%;

  width: 0;
  height: 0;

  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
}

.hinge-left.opens-in .opening-arrow,
.hinge-right.opens-out .opening-arrow {
  right: 6px;

  border-left: 8px solid #b9934b;
}

.hinge-right.opens-in .opening-arrow,
.hinge-left.opens-out .opening-arrow {
  left: 6px;

  border-right: 8px solid #b9934b;
}

.opening-copy {
  display: block;

  min-height: 58px;

  padding: 10px 12px;

  box-sizing: border-box;
}

.opening-copy strong {
  display: block;

  margin-bottom: 3px;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 0.88rem;
  font-weight: 500;

  line-height: 1.1;
}

.opening-copy span {
  display: block;

  color: #68747c;

  font-size: 0.72rem;
  line-height: 1.2;
}

@media (max-width: 1050px) {
  .opening-diagram {
    height: 125px;
  }

  .opening-frame {
    width: 68px;
    height: 94px;
  }

  .opening-leaf {
    width: 42px;
  }
}



/* =========================================================
   OPENING DIRECTION CARDS — ARCHITECTURAL STYLE
   ========================================================= */

.opening-options-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.option-card--opening {
  padding: 0;
  overflow: hidden;
  text-align: left;
  background: #f8f4ec;
  border: 1px solid #d8cfbf;
  box-shadow: 0 8px 20px rgba(14, 24, 34, 0.06);
  transition:
    transform 0.18s ease,
    box-shadow 0.18s ease,
    border-color 0.18s ease;
}

.option-card--opening:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(14, 24, 34, 0.10);
  border-color: rgba(199, 157, 75, 0.55);
}

.option-card--opening.is-selected {
  border-color: #c79d4b;
  box-shadow:
    0 0 0 1px rgba(199, 157, 75, 0.55),
    0 14px 28px rgba(14, 24, 34, 0.10);
}

.opening-diagram-wrap {
  padding: 18px 16px 12px;
  background:
    linear-gradient(180deg, #fcfaf5 0%, #f2ede3 100%);
  border-bottom: 1px solid #ddd3c3;
}

.opening-diagram {
  display: block;
  width: 100%;
  height: 132px;
}

.arch-frame {
  fill: #fffdfa;
  stroke: #17324c;
  stroke-width: 4;
}

.arch-leaf {
  fill: #e8edf1;
  stroke: #264760;
  stroke-width: 3.5;
}

.arch-panel-line {
  stroke: rgba(23, 50, 76, 0.24);
  stroke-width: 1.5;
}

.arch-hinge {
  stroke: #c79d4b;
  stroke-width: 3.2;
  stroke-linecap: round;
}

.arch-swing {
  fill: none;
  stroke: #c79d4b;
  stroke-width: 2.8;
  stroke-linecap: round;
}

.arch-arrowhead {
  fill: #c79d4b;
}

.opening-copy {
  display: block;
  padding: 14px 16px 16px;
}

.option-card--opening .option-title {
  display: block;
  margin-bottom: 4px;
}

.option-card--opening .option-meta {
  display: block;
  color: #5f7387;
  font-size: 0.98rem;
}

@media (max-width: 760px) {
  .opening-options-grid {
    grid-template-columns: 1fr 1fr;
    gap: 14px;
  }

  .opening-diagram {
    height: 118px;
  }

  .opening-copy {
    padding: 12px 14px 14px;
  }
}



/* =========================================================
   STEP 6 — TEXT OPENING OPTIONS
   ========================================================= */

.opening-text-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.opening-text-card {
  min-width: 0;
  padding: 18px 16px;

  background: #fffdf8;
  border: 1px solid #d8d1c5;

  color: var(--navy);
  text-align: left;

  box-shadow:
    0 6px 16px rgba(17, 38, 58, 0.05);

  cursor: pointer;

  transition:
    border-color .18s ease,
    box-shadow .18s ease,
    transform .18s ease;
}

.opening-text-card:hover {
  border-color: #b9934b;
  transform: translateY(-1px);
}

.opening-text-card.is-selected {
  border-color: var(--gold);

  box-shadow:
    0 0 0 1px var(--gold),
    0 8px 20px rgba(17, 38, 58, 0.08);
}

.opening-text-title {
  display: block;

  margin-bottom: 8px;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 0.98rem;
  line-height: 1.1;
}

.opening-text-direction {
  display: block;

  color: #9b783f;

  font-size: 0.72rem;
  font-weight: 800;

  letter-spacing: .08em;
  text-transform: uppercase;
}

/* =========================================================
   DOOR PREVIEW — HINGE / OPENING INDICATOR
   ========================================================= */

#doorPreview {
  position: relative;
}

.opening-preview-indicator {
  position: absolute;
  inset: 0;

  pointer-events: none;

  z-index: 8;
}

.opening-hinge-marker {
  position: absolute;

  top: 46%;

  display: flex;
  align-items: center;
  gap: 5px;

  color: #b9934b;

  font-family:
    Arial,
    sans-serif;

  font-size: 9px;
  font-weight: 800;

  letter-spacing: .08em;
}

.opening-preview-indicator.hinge-left .opening-hinge-marker {
  left: 4px;
}

.opening-preview-indicator.hinge-right .opening-hinge-marker {
  right: 4px;
  flex-direction: row-reverse;
}

.opening-hinge-arrow {
  font-size: 15px;
  line-height: 1;
}

.opening-direction-label {
  position: absolute;

  left: 50%;
  bottom: -30px;

  transform: translateX(-50%);

  min-width: 78px;

  padding: 5px 10px;

  background: var(--navy);
  border-top: 2px solid var(--gold);

  color: #ffffff;

  font-family:
    Arial,
    sans-serif;

  font-size: 9px;
  font-weight: 800;

  line-height: 1;

  letter-spacing: .12em;
  text-align: center;

  white-space: nowrap;
}





/* =========================================================
   FULL-HEIGHT OPENING TRIANGLE — REFINED
   ========================================================= */

#doorPreview{
  position:relative;
}

.opening-preview-indicator{
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:8;
}

.door-swing-outline{
  position:absolute;
  left:50%;
  top:50%;
  width:210px;
  height:500px;
  transform:translate(-50%, -50%);
}

.door-swing-outline svg{
  width:100%;
  height:100%;
  overflow:visible;
}

.door-swing-triangle{
  fill:none;
  stroke:#c5a04a;
  stroke-width:3.2;
  stroke-linecap:round;
  stroke-linejoin:round;
  opacity:0.42;
}

.opening-direction-label{
  position:absolute;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  padding:6px 12px;
  background:rgba(9,29,48,.92);
  border-top:2px solid rgba(197,160,74,.75);
  color:#ffffff;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  white-space:nowrap;
}

@media (max-width:1400px){
  .door-swing-outline{
    width:190px;
    height:470px;
  }
}


/* =========================================================
   STEP 7 — HARDWARE FINISH
   ========================================================= */

.hardware-finish-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.hardware-finish-card {
  min-width: 0;
  padding: 0;

  overflow: hidden;

  background: #fffdf8;
  border: 1px solid #d8d1c5;

  color: var(--navy);
  text-align: left;

  box-shadow:
    0 5px 14px rgba(17,38,58,.05);

  cursor: pointer;
}

.hardware-finish-card:hover {
  border-color: #b9934b;
}

.hardware-finish-card.is-selected {
  border-color: var(--gold);

  box-shadow:
    0 0 0 1px var(--gold),
    0 8px 18px rgba(17,38,58,.08);
}

.hardware-finish-sample {
  position: relative;

  display: flex;
  align-items: center;
  justify-content: center;

  height: 84px;

  background:
    linear-gradient(
      180deg,
      #f7f3eb 0%,
      #ebe5da 100%
    );

  border-bottom: 1px solid #ddd7cc;
}

.hardware-finish-metal {
  width: 54px;
  height: 54px;

  border-radius: 50%;

  background:
    linear-gradient(
      135deg,
      color-mix(in srgb, var(--finish-colour) 82%, white 18%),
      var(--finish-colour) 52%,
      color-mix(in srgb, var(--finish-colour) 72%, black 28%)
    );

  border:
    1px solid rgba(0,0,0,.14);

  box-shadow:
    inset 0 1px 2px rgba(255,255,255,.45),
    inset 0 -2px 4px rgba(0,0,0,.16),
    0 5px 12px rgba(17,38,58,.12);
}

.hardware-finish-name {
  display: flex;
  align-items: center;

  min-height: 40px;

  padding: 7px 9px;

  box-sizing: border-box;

  font-size: .72rem;
  line-height: 1.08;
}



/* =========================================================
   STEP 8 — HANDLE OPTIONS
   ========================================================= */

.furniture-option-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.furniture-option-card {
  min-width: 0;
  padding: 0;
  overflow: hidden;

  background: #fffdf8;
  border: 1px solid #d8d1c5;

  color: var(--navy);
  text-align: left;

  box-shadow:
    0 5px 14px rgba(17,38,58,.05);

  cursor: pointer;
}

.furniture-option-card:hover {
  border-color: #b9934b;
}

.furniture-option-card.is-selected {
  border-color: var(--gold);

  box-shadow:
    0 0 0 1px var(--gold),
    0 8px 18px rgba(17,38,58,.08);
}

.furniture-option-image {
  display: block;
  height: 92px;

  background:
    linear-gradient(
      180deg,
      #f7f3eb 0%,
      #ebe5da 100%
    );

  border-bottom: 1px solid #ddd7cc;
}

.furniture-option-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.furniture-option-name {
  display: flex;
  align-items: center;

  min-height: 44px;

  padding: 8px 9px;

  box-sizing: border-box;

  font-size: .7rem;
  line-height: 1.08;
}



.furniture-none-preview {
  display: flex;
  align-items: center;
  justify-content: center;
}

.furniture-none-mark {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 54px;
  height: 54px;

  border: 1px solid #cfc7bb;
  border-radius: 50%;

  color: #a98949;
  font-family: Georgia, serif;
  font-size: 2rem;
  line-height: 1;
}



/* =========================================================
   STEP 10 — LETTERPLATE
   ========================================================= */

.letterplate-option-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}



/* =========================================================
   STEP 11 — EXTRA DETAILS
   ========================================================= */

.extra-details-grid {
  margin-bottom: 14px;
}

.extra-details-none {
  width: 100%;
  min-height: 48px;

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;

  background: #fffdf8;
  border: 1px solid #d8d1c5;

  color: var(--navy);

  cursor: pointer;
}

.extra-details-none.is-selected {
  border-color: var(--gold);
  box-shadow: 0 0 0 1px var(--gold);
}

.extra-details-none-mark {
  color: var(--gold);
  font-family: Georgia, serif;
  font-size: 1.45rem;
  line-height: 1;
}



/* =========================================================
   EXTRA DETAILS — NUMERALS ENTRY
   ========================================================= */

.numerals-entry {
  margin-top: 16px;
  padding: 15px 16px;

  background: #fffdf8;
  border: 1px solid #d8d1c5;
}

.numerals-entry-label {
  display: block;

  margin-bottom: 8px;

  color: var(--navy);

  font-family: Georgia, "Times New Roman", serif;
  font-size: .98rem;
}

.numerals-entry-input {
  display: block;

  width: 100%;
  height: 44px;

  box-sizing: border-box;

  padding: 0 12px;

  background: #ffffff;
  border: 1px solid #cfc7bb;
  border-radius: 0;

  color: var(--navy);

  font: inherit;
  font-size: .95rem;

  outline: none;
}

.numerals-entry-input:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 1px var(--gold);
}

.numerals-entry-help {
  display: block;

  margin-top: 7px;

  color: #6f7477;
  font-size: .74rem;
  line-height: 1.35;
}



/* =========================================================
   STEP 12 — SECURITY & LOCKING
   ========================================================= */

.locking-option-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;

  margin-bottom: 18px;
}

.locking-option-card {
  min-width: 0;

  padding: 16px;

  background: #fffdf8;
  border: 1px solid #d8d1c5;

  color: var(--navy);
  text-align: left;

  box-shadow:
    0 5px 14px rgba(17,38,58,.05);

  cursor: pointer;
}

.locking-option-card:hover {
  border-color: #b9934b;
}

.locking-option-card.is-selected {
  border-color: var(--gold);

  box-shadow:
    0 0 0 1px var(--gold),
    0 8px 18px rgba(17,38,58,.08);
}

.locking-option-top {
  display: flex;
  align-items: center;
  gap: 10px;

  margin-bottom: 10px;
}

.locking-option-title {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1rem;
  line-height: 1.1;
}

.locking-option-subtitle {
  display: block;

  margin-bottom: 7px;

  font-size: .78rem;
  line-height: 1.4;
}

.locking-option-detail {
  display: block;

  color: #6d7376;

  font-size: .71rem;
  line-height: 1.4;
}

.locking-icon {
  position: relative;

  flex: 0 0 30px;

  width: 30px;
  height: 32px;
}

.locking-icon-body {
  position: absolute;

  left: 4px;
  bottom: 1px;

  width: 22px;
  height: 19px;

  background: var(--navy);
}

.locking-icon-shackle {
  position: absolute;

  left: 8px;
  top: 1px;

  width: 14px;
  height: 16px;

  box-sizing: border-box;

  border: 3px solid var(--gold);
  border-bottom: 0;
  border-radius: 9px 9px 0 0;
}

.security-included {
  padding: 15px 16px;

  background: rgba(255,253,248,.7);
  border-top: 1px solid #d9d1c5;
  border-bottom: 1px solid #d9d1c5;
}

.security-included-heading {
  margin-bottom: 12px;

  color: var(--navy);

  font-family: Georgia, "Times New Roman", serif;
  font-size: .95rem;
}

.security-included-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px 14px;
}

.security-included-item {
  display: flex;
  align-items: center;
  gap: 8px;

  color: #48545c;

  font-size: .72rem;
  line-height: 1.25;
}

.security-check {
  color: var(--gold);
  font-weight: 800;
}

@media (max-width: 1200px) {
  .locking-option-grid,
  .security-included-grid {
    grid-template-columns: 1fr;
  }
}



/* =========================================================
   STEP 3 — INTERIOR COLOUR MATCH
   ========================================================= */

.inside-colour-match-option {
  display: flex;
  align-items: center;
  gap: 13px;

  margin-top: 16px;
  padding: 13px 14px;

  background: #fffdf8;
  border: 1px solid #d8d1c5;

  color: var(--navy);

  cursor: pointer;
}

.inside-colour-match-option:hover {
  border-color: #b9934b;
}

.inside-colour-checkbox-wrap {
  position: relative;

  flex: 0 0 24px;

  width: 24px;
  height: 24px;
}

.inside-colour-checkbox {
  position: absolute;

  width: 1px;
  height: 1px;

  opacity: 0;
}

.inside-colour-checkbox-ui {
  position: absolute;
  inset: 0;

  box-sizing: border-box;

  background: #ffffff;
  border: 1px solid #bfb6a8;
}

.inside-colour-checkbox:checked
+ .inside-colour-checkbox-ui {
  background: var(--navy);
  border-color: var(--navy);
}

.inside-colour-checkbox:checked
+ .inside-colour-checkbox-ui::after {
  content: "";

  position: absolute;

  left: 7px;
  top: 3px;

  width: 6px;
  height: 11px;

  border: solid #ffffff;
  border-width: 0 2px 2px 0;

  transform: rotate(45deg);
}

.inside-colour-checkbox:focus-visible
+ .inside-colour-checkbox-ui {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}

.inside-colour-copy {
  display: block;
}

.inside-colour-title {
  display: block;

  margin-bottom: 3px;

  font-family: Georgia, "Times New Roman", serif;
  font-size: .9rem;
}

.inside-colour-help {
  display: block;

  color: #687279;

  font-size: .72rem;
  line-height: 1.3;
}


/* =========================================================
   REVIEW PLACEHOLDER
   ========================================================= */

.review-placeholder {
  padding: 18px;

  background: #fffdf8;
  border: 1px solid #d8d1c5;
}

.review-placeholder-title {
  margin-bottom: 13px;

  color: var(--navy);

  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.05rem;
}

.review-placeholder-row {
  display: flex;
  justify-content: space-between;
  gap: 20px;

  padding: 9px 0;

  border-bottom: 1px solid #e5dfd5;

  color: #606a70;

  font-size: .76rem;
}

.review-placeholder-row strong {
  color: var(--navy);
}

.review-placeholder-copy {
  margin-top: 13px;

  color: #687279;

  font-size: .76rem;
  line-height: 1.45;
}



/* =========================================================
   STEP 13 — REVIEW YOUR DOOR
   ========================================================= */

.door-review {
  display: grid;
  gap: 11px;
}

.door-review-section {
  background: #fffdf8;
  border: 1px solid #d8d1c5;

  box-shadow:
    0 4px 12px rgba(17,38,58,.035);
}

.door-review-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;

  min-height: 42px;
  padding: 0 13px;

  border-bottom: 1px solid #e3ddd3;
}

.door-review-section-title {
  margin: 0;

  color: var(--navy);

  font-family: Georgia, "Times New Roman", serif;
  font-size: .92rem;
  font-weight: 500;
}

.door-review-edit {
  padding: 4px 0;

  background: transparent;
  border: 0;

  color: var(--gold);

  font: inherit;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .04em;

  cursor: pointer;
}

.door-review-edit:hover {
  color: var(--navy);
}

.door-review-rows {
  padding: 4px 13px;
}

.door-review-row {
  display: grid;
  grid-template-columns: minmax(105px, .8fr) minmax(0, 1.4fr);
  gap: 14px;

  padding: 7px 0;

  border-bottom: 1px solid #eee9e0;
}

.door-review-row:last-child {
  border-bottom: 0;
}

.door-review-label {
  color: #70777b;

  font-size: .7rem;
  line-height: 1.35;
}

.door-review-value {
  min-width: 0;

  color: var(--navy);

  font-size: .72rem;
  font-weight: 600;
  line-height: 1.35;
  text-align: right;
}

.door-review-ready {
  display: flex;
  align-items: center;
  gap: 12px;

  margin-top: 3px;
  padding: 13px 14px;

  background: rgba(197,160,74,.08);
  border: 1px solid rgba(197,160,74,.42);
}

.door-review-ready-mark {
  display: flex;
  align-items: center;
  justify-content: center;

  flex: 0 0 27px;

  width: 27px;
  height: 27px;

  box-sizing: border-box;

  background: var(--navy);

  color: #ffffff;

  font-size: .8rem;
  font-weight: 800;
}

.door-review-ready-copy {
  display: grid;
  gap: 2px;

  color: #606a70;

  font-size: .7rem;
  line-height: 1.35;
}

.door-review-ready-copy strong {
  color: var(--navy);

  font-family: Georgia, "Times New Roman", serif;
  font-size: .8rem;
  font-weight: 500;
}

@media (max-width: 1100px) {
  .door-review-row {
    grid-template-columns: 1fr;
    gap: 3px;
  }

  .door-review-value {
    text-align: left;
  }
}



/* =========================================================
   STEP 14 — SAVE / PREVIEW / QUOTE
   ========================================================= */

.final-actions {
  display: grid;
  gap: 14px;
}

.final-actions-intro {
  display: flex;
  align-items: center;
  gap: 12px;

  padding: 13px 14px;

  background: rgba(197,160,74,.08);
  border: 1px solid rgba(197,160,74,.38);
}

.final-actions-ready-mark {
  display: flex;
  align-items: center;
  justify-content: center;

  flex: 0 0 29px;

  width: 29px;
  height: 29px;

  background: var(--navy);

  color: #fff;

  font-size: .78rem;
  font-weight: 800;
}

.final-actions-intro-copy {
  display: grid;
  gap: 2px;

  color: #687279;

  font-size: .7rem;
  line-height: 1.4;
}

.final-actions-intro-copy strong {
  color: var(--navy);

  font-family: Georgia, "Times New Roman", serif;
  font-size: .86rem;
  font-weight: 500;
}

.final-action-list {
  display: grid;
  gap: 10px;
}

.final-action-card {
  position: relative;

  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 12px;

  width: 100%;
  min-height: 82px;

  padding: 14px;

  text-align: left;

  cursor: pointer;

  transition:
    border-color .16s ease,
    background-color .16s ease,
    transform .16s ease;
}

.final-action-card:hover {
  transform: translateY(-1px);
}

.final-action-card:disabled {
  opacity: .55;
  cursor: wait;
  transform: none;
}

.final-action-card-secondary {
  background: #fffdf8;
  border: 1px solid #d8d1c5;

  color: var(--navy);
}

.final-action-card-secondary:hover {
  border-color: #b9934b;
}

.final-action-card-primary {
  background: var(--navy);
  border: 1px solid var(--navy);

  color: #fff;
}

.final-action-card-primary:hover {
  border-color: #c5a04a;
}

.final-action-icon {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 36px;
  height: 36px;
}

.final-action-icon svg {
  width: 27px;
  height: 27px;

  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.final-action-card-primary
.final-action-icon {
  color: #c5a04a;
}

.final-action-card-secondary
.final-action-icon {
  color: #b9934b;
}

.final-action-content {
  display: grid;
  gap: 4px;
}

.final-action-content strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: .92rem;
  font-weight: 500;
}

.final-action-content span {
  color: #727b80;

  font-size: .7rem;
  line-height: 1.4;
}

.final-action-card-primary
.final-action-content span {
  color: rgba(255,255,255,.72);
}

.final-action-arrow {
  justify-self: end;

  color: #b9934b;

  font-size: 1rem;
}

.final-action-badge {
  position: absolute;

  top: -1px;
  right: 12px;

  padding: 3px 7px;

  background: #c5a04a;

  color: var(--navy);

  font-size: .54rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.final-action-status {
  padding: 11px 12px;

  border: 1px solid #d8d1c5;
  background: #fffdf8;

  color: #687279;

  font-size: .72rem;
  line-height: 1.45;
}

.final-action-status.is-success {
  border-color: rgba(70,118,85,.35);
  background: rgba(70,118,85,.07);

  color: #355c43;
}

.final-action-status.is-error {
  border-color: rgba(150,64,64,.35);
  background: rgba(150,64,64,.06);

  color: #7b3838;
}

@media (max-width: 700px) {
  .final-action-card {
    grid-template-columns:
      34px minmax(0, 1fr) 14px;

    padding: 13px 11px;
  }
}



/* STEP 14 — FINAL ACTIONS V2 */

.final-actions {
  display: grid;
  gap: 14px;
}

.final-actions-intro {
  display: flex;
  align-items: center;
  gap: 12px;

  padding: 13px 14px;

  background: rgba(197,160,74,.08);
  border: 1px solid rgba(197,160,74,.38);
}

.final-actions-ready-mark {
  display: flex;
  align-items: center;
  justify-content: center;

  flex: 0 0 29px;

  width: 29px;
  height: 29px;

  background: var(--navy);

  color: #fff;

  font-size: .78rem;
  font-weight: 800;
}

.final-actions-intro-copy {
  display: grid;
  gap: 2px;

  color: #687279;

  font-size: .7rem;
  line-height: 1.4;
}

.final-actions-intro-copy strong {
  color: var(--navy);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: .86rem;
  font-weight: 500;
}

.final-action-list {
  display: grid;
  gap: 10px;
}

.final-action-card {
  position: relative;

  display: grid;

  grid-template-columns:
    38px
    minmax(0, 1fr)
    18px;

  align-items: center;
  gap: 12px;

  width: 100%;
  min-height: 82px;

  padding: 14px;

  text-align: left;

  cursor: pointer;

  transition:
    border-color .16s ease,
    background-color .16s ease,
    transform .16s ease;
}

.final-action-card:hover {
  transform: translateY(-1px);
}

.final-action-card:disabled {
  opacity: .55;

  cursor: wait;

  transform: none;
}

.final-action-card-secondary {
  background: #fffdf8;

  border: 1px solid #d8d1c5;

  color: var(--navy);
}

.final-action-card-secondary:hover {
  border-color: #b9934b;
}

.final-action-card-primary {
  background: var(--navy);

  border: 1px solid var(--navy);

  color: #fff;
}

.final-action-card-primary:hover {
  border-color: #c5a04a;
}

.final-action-icon {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 36px;
  height: 36px;
}

.final-action-icon svg {
  width: 27px;
  height: 27px;

  fill: none;

  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.final-action-card-primary
.final-action-icon {
  color: #c5a04a;
}

.final-action-card-secondary
.final-action-icon {
  color: #b9934b;
}

.final-action-content {
  display: grid;
  gap: 4px;
}

.final-action-content strong {
  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: .92rem;
  font-weight: 500;
}

.final-action-content span {
  color: #727b80;

  font-size: .7rem;
  line-height: 1.4;
}

.final-action-card-primary
.final-action-content span {
  color: rgba(255,255,255,.72);
}

.final-action-arrow {
  justify-self: end;

  color: #b9934b;

  font-size: 1rem;
}

.final-action-badge {
  position: absolute;

  top: -1px;
  right: 12px;

  padding: 3px 7px;

  background: #c5a04a;

  color: var(--navy);

  font-size: .54rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.final-action-status {
  padding: 11px 12px;

  border: 1px solid #d8d1c5;

  background: #fffdf8;

  color: #687279;

  font-size: .72rem;
  line-height: 1.45;
}

.final-action-status.is-success {
  border-color:
    rgba(70,118,85,.35);

  background:
    rgba(70,118,85,.07);

  color: #355c43;
}

.final-action-status.is-error {
  border-color:
    rgba(150,64,64,.35);

  background:
    rgba(150,64,64,.06);

  color: #7b3838;
}

@media (max-width: 700px) {
  .final-action-card {
    grid-template-columns:
      34px
      minmax(0, 1fr)
      14px;

    padding: 13px 11px;
  }
}



/* V2 REALISTIC DOOR RESULT */

.realistic-door-result {
  display: grid;
  grid-template-columns:
    minmax(110px, 145px)
    minmax(0, 1fr);

  gap: 16px;

  padding: 14px;

  background: #fffdf8;

  border:
    1px solid #d8d1c5;
}

.realistic-door-result-image {
  display: block;

  width: 100%;
  max-height: 265px;

  object-fit: contain;

  background: #eceae5;
}

.realistic-door-result-content {
  display: flex;
  flex-direction: column;
  justify-content: center;

  gap: 7px;
}

.realistic-door-result-content strong {
  color: var(--navy);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: .95rem;
  font-weight: 500;
}

.realistic-door-result-content span {
  color: #687279;

  font-size: .72rem;
  line-height: 1.45;
}

.realistic-door-home-next {
  align-self: flex-start;

  margin-top: 7px;
  padding: 9px 13px;

  background: var(--navy);

  border: 1px solid var(--navy);

  color: #fff;

  font: inherit;
  font-size: .7rem;
  font-weight: 700;

  cursor: pointer;
}

.realistic-door-home-next:hover {
  border-color: #c5a04a;
}

@media (max-width: 700px) {
  .realistic-door-result {
    grid-template-columns: 1fr;
  }

  .realistic-door-result-image {
    max-height: 320px;
  }
}



/* V2 INLINE ENQUIRY MODAL */

.designer-enquiry-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;

  display: grid;
  place-items: center;

  padding: 22px;

  background:
    rgba(10, 28, 44, .72);

  backdrop-filter:
    blur(4px);
}

.designer-enquiry-dialog {
  position: relative;

  width: min(
    100%,
    455px
  );

  max-height:
    calc(100vh - 44px);

  overflow-y: auto;

  padding:
    28px 28px 24px;

  background:
    #fbf8f1;

  border:
    1px solid rgba(
      197,
      160,
      74,
      .55
    );

  box-shadow:
    0 24px 70px
    rgba(0, 0, 0, .28);
}

.designer-enquiry-close {
  position: absolute;

  top: 10px;
  right: 12px;

  width: 34px;
  height: 34px;

  padding: 0;

  background:
    transparent;

  border: 0;

  color:
    var(--navy);

  font-size: 1.6rem;
  font-weight: 300;
  line-height: 1;

  cursor: pointer;
}

.designer-enquiry-close:hover {
  color: #b9934b;
}

.designer-enquiry-kicker {
  margin-bottom: 5px;

  color: #b9934b;

  font-size: .62rem;
  font-weight: 800;

  letter-spacing: .1em;

  text-transform:
    uppercase;
}

.designer-enquiry-title {
  margin:
    0 40px 8px 0;

  color:
    var(--navy);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 1.55rem;
  font-weight: 500;
  line-height: 1.15;
}

.designer-enquiry-intro {
  margin:
    0 0 20px;

  color: #667178;

  font-size: .78rem;
  line-height: 1.5;
}

.designer-enquiry-form {
  display: grid;
  gap: 13px;
}

.designer-enquiry-field {
  display: grid;
  gap: 5px;
}

.designer-enquiry-field > span {
  color:
    var(--navy);

  font-size: .68rem;
  font-weight: 700;
}

.designer-enquiry-field input {
  width: 100%;
  height: 43px;

  box-sizing:
    border-box;

  padding:
    0 11px;

  background: #fff;

  border:
    1px solid #cfc7bb;

  border-radius: 0;

  color:
    var(--navy);

  font: inherit;
  font-size: .82rem;

  outline: none;
}

.designer-enquiry-field input:focus {
  border-color:
    #b9934b;

  box-shadow:
    0 0 0 2px
    rgba(
      185,
      147,
      75,
      .12
    );
}

.designer-enquiry-error {
  padding:
    9px 10px;

  background:
    rgba(
      150,
      64,
      64,
      .07
    );

  border:
    1px solid
    rgba(
      150,
      64,
      64,
      .28
    );

  color: #7b3838;

  font-size: .7rem;
  line-height: 1.4;
}

.designer-enquiry-submit {
  min-height: 45px;

  margin-top: 3px;
  padding:
    10px 15px;

  background:
    var(--navy);

  border:
    1px solid
    var(--navy);

  color: #fff;

  font: inherit;
  font-size: .74rem;
  font-weight: 800;

  cursor: pointer;
}

.designer-enquiry-submit:hover {
  border-color:
    #c5a04a;
}

.designer-enquiry-submit:disabled {
  opacity: .6;
  cursor: wait;
}

.designer-enquiry-note {
  margin: 1px 0 0;

  color: #7a8185;

  font-size: .63rem;
  line-height: 1.45;
  text-align: center;
}

@media (max-width: 560px) {
  .designer-enquiry-modal {
    align-items: end;

    padding: 0;
  }

  .designer-enquiry-dialog {
    width: 100%;

    max-height: 92vh;

    box-sizing:
      border-box;

    padding:
      25px 20px 20px;
  }
}


/* =========================================================
   STEP 14 — QUOTE ENQUIRY CONFIRMATION
   ========================================================= */

.quote-enquiry-confirmation {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: start;
  gap: 13px;

  padding: 17px 16px;

  background: rgba(197, 160, 74, .07);

  border: 1px solid rgba(197, 160, 74, .42);
  border-left: 3px solid #c5a04a;

  color: var(--navy);
}

.quote-enquiry-confirmation-mark {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 30px;
  height: 30px;

  background: var(--navy);

  color: #fff;

  font-size: .8rem;
  font-weight: 800;
}

.quote-enquiry-confirmation-content {
  display: grid;
  gap: 6px;
}

.quote-enquiry-confirmation-content strong {
  color: var(--navy);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 1rem;
  font-weight: 500;
  line-height: 1.25;
}

.quote-enquiry-confirmation-content p {
  margin: 0;

  color: #5f696f;

  font-size: .73rem;
  line-height: 1.55;
}

@media (max-width: 700px) {
  .quote-enquiry-confirmation {
    grid-template-columns: 30px minmax(0, 1fr);

    gap: 11px;

    padding: 15px 13px;
  }

  .quote-enquiry-confirmation-mark {
    width: 28px;
    height: 28px;
  }
}


/* =========================================================
   STEP 14 — COMPLETED QUOTE STATE
   ========================================================= */

.quote-enquiry-confirmation {
  position: relative;

  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: start;
  gap: 16px;

  padding: 20px 18px;

  background:
    linear-gradient(
      135deg,
      rgba(197, 160, 74, .14),
      rgba(197, 160, 74, .045)
    );

  border: 1px solid rgba(197, 160, 74, .62);
  border-left: 4px solid #c5a04a;

  color: var(--navy);

  box-shadow:
    0 8px 24px rgba(8, 35, 54, .06);
}

.quote-enquiry-confirmation::after {
  content: "";

  position: absolute;

  top: 0;
  right: 0;

  width: 52px;
  height: 3px;

  background: #c5a04a;
}

.quote-enquiry-confirmation-mark {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 38px;
  height: 38px;

  background: var(--navy);

  border: 1px solid #c5a04a;

  color: #fff;

  font-size: 1rem;
  font-weight: 800;
}

.quote-enquiry-confirmation-content {
  display: grid;
  gap: 8px;
}

.quote-enquiry-confirmation-kicker {
  color: #a67e2f;

  font-size: .6rem;
  font-weight: 800;
  letter-spacing: .1em;
  line-height: 1.2;

  text-transform: uppercase;
}

.quote-enquiry-confirmation-content strong {
  color: var(--navy);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 1.08rem;
  font-weight: 500;
  line-height: 1.28;
}

.quote-enquiry-confirmation-content > p {
  margin: 0;

  color: #536169;

  font-size: .74rem;
  line-height: 1.55;
}

.quote-enquiry-confirmation-next {
  display: grid;
  gap: 3px;

  margin-top: 4px;
  padding-top: 10px;

  border-top:
    1px solid rgba(197, 160, 74, .28);
}

.quote-enquiry-confirmation-next > span {
  color: var(--navy);

  font-size: .66rem;
  font-weight: 800;
}

.quote-enquiry-confirmation-next p {
  margin: 0;

  color: #536169;

  font-size: .72rem;
  line-height: 1.5;
}

@media (max-width: 700px) {
  .quote-enquiry-confirmation {
    grid-template-columns:
      36px minmax(0, 1fr);

    gap: 13px;

    padding: 17px 14px;
  }

  .quote-enquiry-confirmation-mark {
    width: 34px;
    height: 34px;
  }

  .quote-enquiry-confirmation-content strong {
    font-size: 1rem;
  }
}


/* =========================================================
   STEP 1 — DOOR TYPE VISUAL CARDS
   ========================================================= */

.option-card-door-type {
  display: grid;
  grid-template-columns:
    122px minmax(0, 1fr);

  align-items: center;
  gap: 17px;

  text-align: left;
}

.door-type-card-media {
  display: flex;
  align-items: center;
  justify-content: center;

  min-height: 100px;
  padding: 7px;

  background: #f8f5ee;

  border: 1px solid #ded4c4;
}

.door-type-card-image {
  display: block;

  width: 100%;
  max-width: 110px;
  height: auto;
}

.door-type-card-content {
  display: grid;
  gap: 6px;

  min-width: 0;
}

.option-card-door-type.is-selected
.door-type-card-media {
  border-color:
    rgba(197, 160, 74, .75);

  background:
    rgba(197, 160, 74, .07);
}

@media (max-width: 700px) {
  .option-card-door-type {
    grid-template-columns:
      106px minmax(0, 1fr);

    gap: 14px;
  }

  .door-type-card-media {
    min-height: 92px;
  }

  .door-type-card-image {
    max-width: 96px;
  }
}

@media (max-width: 430px) {
  .option-card-door-type {
    grid-template-columns: 1fr;
  }

  .door-type-card-media {
    min-height: 112px;
  }

  .door-type-card-image {
    max-width: 128px;
  }
}


/* =========================================================
   STEP 1 — DOOR TYPE VISUAL CARD LAYOUT FIX
   ========================================================= */

.option-card.option-card-door-type {
  width: 100%;
  height: auto;
  min-height: 126px;
  max-height: none;

  box-sizing: border-box;

  grid-template-columns:
    128px minmax(0, 1fr);

  align-items: center;
  gap: 18px;

  padding: 13px 15px;

  overflow: visible;
}

.option-card-door-type .door-type-card-media {
  width: 100%;
  min-width: 0;
  min-height: 98px;

  box-sizing: border-box;

  padding: 6px;
}

.option-card-door-type .door-type-card-image {
  width: 100%;
  max-width: 112px;
  height: auto;

  object-fit: contain;
}

.option-card-door-type .door-type-card-content {
  align-self: center;

  min-width: 0;

  padding: 4px 0;
}

.option-card-door-type .option-title,
.option-card-door-type .option-description {
  display: block;
  width: 100%;
}

.option-card-door-type .option-description {
  white-space: normal;
  overflow: visible;
}

@media (max-width: 700px) {
  .option-card.option-card-door-type {
    min-height: 118px;

    grid-template-columns:
      112px minmax(0, 1fr);

    gap: 15px;

    padding: 12px 13px;
  }

  .option-card-door-type .door-type-card-media {
    min-height: 92px;
  }

  .option-card-door-type .door-type-card-image {
    max-width: 100px;
  }
}

@media (max-width: 390px) {
  .option-card.option-card-door-type {
    grid-template-columns: 1fr;

    gap: 10px;

    padding: 12px;
  }

  .option-card-door-type .door-type-card-media {
    min-height: 100px;
  }

  .option-card-door-type .door-type-card-image {
    max-width: 118px;
  }
}

/* =========================================================
   STEP 1 — DOOR TYPE VISUAL CARD POLISH
   ========================================================= */

.option-card.option-card-door-type {
  min-height: 136px;

  padding:
    15px 16px;
}

.option-card-door-type .door-type-card-media {
  min-height: 94px;
}

.option-card-door-type .door-type-card-image {
  max-width: 104px;
}

.option-card-door-type .door-type-card-content {
  gap: 8px;

  padding:
    6px 0;
}

.option-card-door-type .option-description {
  line-height: 1.5;
}

@media (max-width: 700px) {
  .option-card.option-card-door-type {
    min-height: 130px;

    grid-template-columns:
      108px minmax(0, 1fr);

    padding:
      14px;
  }

  .option-card-door-type .door-type-card-media {
    min-height: 90px;
  }

  .option-card-door-type .door-type-card-image {
    max-width: 94px;
  }
}

/* =========================================================
   STEP 1 — FINAL CARD SPACING
   ========================================================= */

.option-card.option-card-door-type {
  min-height: 142px;
}

.option-card-door-type .door-type-card-content {
  padding:
    8px 0;
}

.option-card-door-type .option-description {
  margin-bottom: 3px;
}

@media (max-width: 700px) {
  .option-card.option-card-door-type {
    min-height: 136px;
  }

  .option-card-door-type .door-type-card-content {
    padding:
      7px 0;
  }
}


/* =========================================================
   HOME PREVIEW — PHOTO UPLOAD
   ========================================================= */

.home-photo-stage {
  display: grid;
  gap: 18px;

  margin-top: 4px;
  padding-top: 20px;

  border-top:
    1px solid rgba(13, 43, 64, .14);
}

.home-photo-stage-heading {
  display: grid;
  gap: 6px;
}

.home-photo-stage-kicker,
.home-photo-selected-kicker {
  color: #a67e2f;

  font-size: .61rem;
  font-weight: 800;
  letter-spacing: .1em;
  line-height: 1.2;

  text-transform: uppercase;
}

.home-photo-stage-heading h3 {
  margin: 0;

  color: var(--navy);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 1.24rem;
  font-weight: 500;
  line-height: 1.2;
}

.home-photo-stage-heading p {
  margin: 0;

  color: #66737a;

  font-size: .75rem;
  line-height: 1.55;
}

.home-photo-guide {
  display: grid;
  grid-template-columns:
    minmax(145px, 1fr)
    minmax(0, 1fr);

  border:
    1px solid #d8d1c5;

  background: #fffdf8;
}

.home-photo-guide-image-wrap {
  position: relative;

  min-height: 170px;

  overflow: hidden;

  background: #e9edf0;
}

.home-photo-guide-image {
  display: block;

  width: 100%;
  height: 100%;
  min-height: 170px;

  object-fit: cover;
}

.home-photo-guide-badge {
  position: absolute;

  top: 10px;
  left: 10px;

  padding:
    4px 7px;

  background: var(--navy);

  color: #fff;

  font-size: .55rem;
  font-weight: 800;
  letter-spacing: .08em;

  text-transform: uppercase;
}

.home-photo-guide-copy {
  display: grid;
  align-content: center;
  gap: 12px;

  padding: 16px;
}

.home-photo-guide-copy > strong {
  color: var(--navy);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: .94rem;
  font-weight: 500;
}

.home-photo-guide-points {
  display: grid;
  gap: 9px;
}

.home-photo-guide-points > span {
  display: grid;
  grid-template-columns:
    24px minmax(0, 1fr);

  gap: 8px;

  color: #66737a;

  font-size: .69rem;
  line-height: 1.42;
}

.home-photo-guide-points b {
  color: #b68e3c;

  font-size: .6rem;
  letter-spacing: .05em;
}

.home-photo-upload {
  display: grid;
  gap: 8px;
}

.home-photo-upload-button {
  display: grid;
  grid-template-columns:
    42px minmax(0, 1fr);

  align-items: center;
  gap: 13px;

  width: 100%;

  padding: 17px;

  background: #fffdf8;

  border:
    1px dashed rgba(13, 43, 64, .35);

  color: var(--navy);

  text-align: left;

  cursor: pointer;

  transition:
    border-color .16s ease,
    background-color .16s ease;
}

.home-photo-upload-button:hover {
  border-color: #c5a04a;

  background:
    rgba(197, 160, 74, .055);
}

.home-photo-upload-button.is-complete {
  border-style: solid;
  border-color:
    rgba(70, 118, 85, .45);
}

.home-photo-upload-icon {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 38px;
  height: 38px;

  background: var(--navy);

  color: #c5a04a;

  font-size: 1.35rem;
  line-height: 1;
}

.home-photo-upload-button > span:last-child {
  display: grid;
  gap: 3px;
}

.home-photo-upload-button strong {
  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: .88rem;
  font-weight: 500;
}

.home-photo-upload-button small {
  color: #747e83;

  font-size: .64rem;
}

.home-photo-upload-error {
  padding: 9px 11px;

  border:
    1px solid rgba(150, 64, 64, .35);

  background:
    rgba(150, 64, 64, .06);

  color: #7b3838;

  font-size: .69rem;
  line-height: 1.4;
}

.home-photo-selected {
  display: grid;
  grid-template-columns:
    minmax(130px, 180px)
    minmax(0, 1fr);

  gap: 16px;

  padding: 14px;

  border:
    1px solid rgba(70, 118, 85, .32);

  background:
    rgba(70, 118, 85, .045);
}

.home-photo-selected-image-wrap {
  min-height: 145px;

  overflow: hidden;

  background: #e7e8e5;
}

.home-photo-selected-image {
  display: block;

  width: 100%;
  height: 100%;
  min-height: 145px;
  max-height: 220px;

  object-fit: cover;
}

.home-photo-selected-copy {
  display: grid;
  align-content: center;
  gap: 7px;
}

.home-photo-selected-copy > strong {
  color: var(--navy);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: .96rem;
  font-weight: 500;
}

.home-photo-selected-copy p {
  margin: 0;

  color: #607078;

  font-size: .7rem;
  line-height: 1.5;
}

.home-photo-change-button {
  justify-self: start;

  margin-top: 4px;
  padding: 0;

  background: transparent;
  border: 0;

  color: #9e792f;

  font: inherit;
  font-size: .67rem;
  font-weight: 700;

  cursor: pointer;
}

.home-photo-mark-button {
  display: flex;
  align-items: center;
  justify-content: space-between;

  width: 100%;

  padding: 14px 16px;

  background: var(--navy);

  border: 1px solid var(--navy);

  color: #fff;

  font: inherit;
  font-size: .76rem;
  font-weight: 700;

  cursor: pointer;
}

.home-photo-mark-button span {
  color: #c5a04a;

  font-size: 1rem;
}

.home-photo-mark-button:disabled {
  background: #9ca4a8;
  border-color: #9ca4a8;

  cursor: not-allowed;
}

.home-photo-mark-button:disabled span {
  color:
    rgba(255,255,255,.55);
}

.home-photo-privacy {
  margin: -4px 0 0;

  color: #81898d;

  font-size: .61rem;
  line-height: 1.45;
}

@media (max-width: 700px) {
  .home-photo-guide,
  .home-photo-selected {
    grid-template-columns: 1fr;
  }

  .home-photo-guide-image-wrap,
  .home-photo-guide-image {
    min-height: 155px;
  }

  .home-photo-selected-image-wrap,
  .home-photo-selected-image {
    min-height: 180px;
  }
}




.opening-status {
  width: fit-content;
  max-width: calc(100% - 32px);
  margin: 12px auto 0;
  padding: 8px 14px;
  border: 1px solid rgba(41, 31, 55, 0.16);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.9);
  color: #2f2438;
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  text-align: center;
  box-shadow: 0 6px 18px rgba(41, 31, 55, 0.08);
}

.opening-status[hidden] {
  display: none !important;
}


/* ---------------------------------------------------------
   Stippolyte obscure glass
   --------------------------------------------------------- */

.glass-stippolyte {
  background:
    linear-gradient(
      135deg,
      rgba(255,255,255,.48),
      rgba(190,203,203,.38)
    );
}

.glass-pattern-stippolyte {
  position: absolute;
  inset: 0;
  opacity: .9;
  background:
    radial-gradient(
      ellipse at 20% 20%,
      rgba(255,255,255,.65) 0 2px,
      rgba(116,136,138,.15) 3px,
      transparent 5px
    ),
    radial-gradient(
      ellipse at 70% 55%,
      rgba(255,255,255,.55) 0 2px,
      rgba(116,136,138,.14) 3px,
      transparent 5px
    );
  background-size: 16px 18px, 19px 21px;
  background-position: 0 0, 7px 8px;
}


/* ---------------------------------------------------------
   Compact door-style cards with live thumbnails
   --------------------------------------------------------- */

.compact-style-option-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.style-option-card--compact {
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  padding: 12px 14px;
  min-height: 0;
  text-align: left;
}

.style-option-thumb {
  width: 78px;
  height: 126px;
  border: 1px solid rgba(14, 39, 66, 0.12);
  border-radius: 8px;
  background: #f4f1ea;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.5);
}

.style-option-thumb .v2-product-svg {
  width: 100%;
  height: 100%;
  display: block;
}

.style-option-body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.style-option-name {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 18px;
  line-height: 1.2;
  color: #0e2742;
}

.style-option-range {
  font-size: 13px;
  line-height: 1.2;
  color: #5f7284;
  letter-spacing: 0.02em;
}

.style-option-thumb-loading,
.style-option-thumb-fallback {
  font-size: 12px;
  color: #6a7986;
  text-align: center;
  padding: 8px;
}

@media (max-width: 900px) {
  .compact-style-option-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .style-option-card--compact {
    grid-template-columns: 70px minmax(0, 1fr);
    gap: 12px;
    padding: 10px 12px;
  }

  .style-option-thumb {
    width: 70px;
    height: 114px;
  }

  .style-option-name {
    font-size: 16px;
  }
}


/* ---------------------------------------------------------
   Door style range selector
   --------------------------------------------------------- */

.style-range-selector {
  display: grid;
  grid-template-columns: repeat(
    auto-fit,
    minmax(110px, 1fr)
  );
  gap: 8px;
  margin: 0 0 16px;
}

.style-range-button {
  min-height: 46px;
  padding: 9px 12px;
  border: 1px solid #d4cec2;
  background: #fffdf9;
  color: #0e2742;
  font: inherit;
  font-size: 14px;
  cursor: pointer;
}

.style-range-button:hover {
  border-color: #b99047;
}

.style-range-button.is-selected {
  border-color: #b99047;
  box-shadow:
    inset 0 0 0 1px #b99047;
  background: #faf6ed;
}

/* ---------------------------------------------------------
   Thumbnail-first style cards
   --------------------------------------------------------- */

.style-option-card--thumbnail {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  padding: 0;
  overflow: hidden;
  min-width: 0;
  background: #fffdf9;
}

.style-option-card--thumbnail .style-option-thumb {
  width: 78px;
  height: 126px;
  margin: 10px auto 0;
  border: 1px solid rgba(14, 39, 66, 0.12);
  border-radius: 8px;
  background: #f4f1ea;
}

.style-option-name--below {
  display: block;
  width: 100%;
  padding: 10px 8px 11px;
  text-align: center;
  font-family:
    Georgia,
    "Times New Roman",
    serif;
  font-size: 17px;
  line-height: 1.2;
  color: #0e2742;
  background: #fffdf9;
}

.style-option-card--thumbnail.is-selected {
  border-color: #b99047;
  box-shadow:
    inset 0 0 0 1px #b99047;
}

.style-option-card--thumbnail.is-selected
.style-option-name--below {
  background: #faf6ed;
}

@media (max-width: 640px) {
  .style-option-card--thumbnail
  .style-option-thumb {
    width: 70px;
    height: 114px;
  }

  .style-option-name--below {
    font-size: 15px;
    padding: 8px 6px 9px;
  }
}

/* Product position / handedness selector */
.product-variant-selector-wrap {
  margin-top: 22px;
}

.product-variant-title {
  margin-bottom: 10px;
  color: #18354d;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.product-variant-selector {
  display: inline-grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(92px, 1fr);
  gap: 8px;
  padding: 5px;
  background: #f3efe7;
  border: 1px solid #d9d0c2;
  border-radius: 12px;
}

.product-variant-button {
  min-height: 42px;
  padding: 9px 16px;
  border: 1px solid transparent;
  border-radius: 9px;
  background: transparent;
  color: #294154;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition:
    background-color 160ms ease,
    border-color 160ms ease,
    color 160ms ease,
    box-shadow 160ms ease;
}

.product-variant-button:hover {
  background: rgba(255, 255, 255, 0.72);
  border-color: #d0c6b7;
}

.product-variant-button.is-selected {
  background: #17364e;
  border-color: #17364e;
  color: #ffffff;
  box-shadow: 0 4px 12px rgba(23, 54, 78, 0.18);
}

.product-variant-button:focus-visible {
  outline: 3px solid rgba(197, 160, 74, 0.35);
  outline-offset: 2px;
}

@media (max-width: 640px) {
  .product-variant-selector {
    width: 100%;
    grid-auto-columns: 1fr;
  }

  .product-variant-button {
    padding-inline: 10px;
  }
}

/* =========================================================
   HARDWARE FINISH — COMPATIBILITY STATES
   ========================================================= */

.hardware-finish-copy {
  display: flex;
  flex-direction: column;
  min-height: 64px;
}

.hardware-finish-copy .hardware-finish-name {
  min-height: 40px;
}

.hardware-finish-reason {
  display: block;
  padding: 0 9px 9px;
  color: #765d34;
  font-size: .64rem;
  line-height: 1.25;
}

.hardware-finish-card.is-unavailable,
.hardware-finish-card:disabled {
  cursor: not-allowed;
  opacity: .56;
  border-color: #d8d1c5;
  box-shadow: none;
}

.hardware-finish-card.is-unavailable:hover,
.hardware-finish-card:disabled:hover {
  border-color: #d8d1c5;
}

.hardware-finish-card.is-unavailable .hardware-finish-sample,
.hardware-finish-card:disabled .hardware-finish-sample {
  filter: grayscale(.35);
}

.hardware-finish-card.is-unavailable .hardware-finish-name,
.hardware-finish-card:disabled .hardware-finish-name {
  color: #6f7478;
}

/* =========================================================
   NUMERAL FINISH OVERRIDE
   ========================================================= */

.numeral-finish-selector {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid #ddd7cc;
}

.numeral-finish-title {
  margin: 0 0 5px;
  color: var(--navy);
  font-size: .9rem;
  line-height: 1.2;
}

.numeral-finish-note {
  margin: 0 0 12px;
  color: #665f55;
  font-size: .74rem;
  line-height: 1.4;
}

.numeral-finish-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* =========================================================
   FURNITURE — FINISH COMPATIBILITY STATES
   ========================================================= */

.furniture-option-copy {
  display: flex;
  flex-direction: column;
}

.furniture-option-copy .furniture-option-name {
  min-height: 44px;
}

.furniture-option-reason {
  display: block;
  padding: 0 9px 10px;
  color: #765d34;
  font-size: .64rem;
  line-height: 1.3;
}

.furniture-option-card.is-unavailable,
.furniture-option-card:disabled {
  cursor: not-allowed;
  opacity: .56;
  border-color: #d8d1c5;
  box-shadow: none;
}

.furniture-option-card.is-unavailable:hover,
.furniture-option-card:disabled:hover {
  border-color: #d8d1c5;
}

.furniture-option-card.is-unavailable .furniture-option-image,
.furniture-option-card:disabled .furniture-option-image {
  filter: grayscale(.4);
}

.furniture-option-card.is-unavailable .furniture-option-name,
.furniture-option-card:disabled .furniture-option-name {
  color: #6f7478;
}

/* =========================================================
   STEP 1 — FULL-PAGE DOOR TYPE LANDING
   ========================================================= */

.landing-brand-tagline,
.landing-page-heading {
  display: none;
}

body.door-type-landing {
  overflow: hidden;
  background: #ffffff;
}

body.door-type-landing .designer-app {
  height: 100vh;
  min-height: 100vh;

  grid-template-columns: 1fr;
  grid-template-rows:
    132px
    minmax(0, 1fr);

  grid-template-areas:
    "topbar"
    "options";

  overflow: hidden;
  background: #ffffff;
}

body.door-type-landing .designer-journey,
body.door-type-landing .designer-preview {
  display: none !important;
}

/* ---------------------------------------------------------
   Landing header
   --------------------------------------------------------- */

body.door-type-landing .designer-topbar {
  grid-area: topbar;

  min-height: 132px;

  display: grid;
  grid-template-columns:
    minmax(330px, 500px)
    auto;

  align-items: center;
  justify-content: center;

  gap:
    clamp(38px, 5vw, 86px);

  padding:
    12px
    clamp(28px, 5vw, 80px);

  border: 0;
  border-bottom:
    1px solid #e5e8eb;

  background: #ffffff;

  box-shadow:
    0 4px 18px rgba(16, 39, 56, .045);
}

body.door-type-landing
  .designer-topbar
  > .preview-toolbar,
body.door-type-landing
  .designer-topbar
  > .topbar-spacer,
body.door-type-landing
  .topbar-title {
  display: none !important;
}

body.door-type-landing .topbar-brand {
  width: 100%;
  height: auto;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  gap: 4px;

  padding: 0;

  border: 0;
}

body.door-type-landing .topbar-logo {
  display: block;

  width:
    min(100%, 430px);

  height: 78px;

  object-fit: contain;
  object-position: center;
}

body.door-type-landing .landing-brand-tagline {
  display: flex;
  align-items: center;
  justify-content: center;

  gap: 10px;

  color: #18354b;

  font-size: 10px;
  font-weight: 700;

  letter-spacing: .19em;
  line-height: 1;

  text-transform: uppercase;
  white-space: nowrap;
}

body.door-type-landing
  .landing-brand-tagline b {
  color: var(--gold);
  font-size: 12px;
  font-weight: 700;
}

body.door-type-landing .landing-page-heading {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;

  min-width: 250px;
}

body.door-type-landing
  .landing-page-heading > span {
  margin-bottom: 3px;

  color: var(--gold);

  font-size: 10px;
  font-weight: 800;

  letter-spacing: .17em;
  text-transform: uppercase;
}

body.door-type-landing
  .landing-page-heading > strong {
  color: var(--navy);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(2rem, 2.65vw, 2.7rem);

  font-weight: 500;
  line-height: 1.04;
}

body.door-type-landing
  .landing-page-heading > small {
  margin-top: 6px;

  color: #687680;

  font-size: .9rem;
  line-height: 1.35;
}

/* ---------------------------------------------------------
   Remove the former large content heading
   --------------------------------------------------------- */

body.door-type-landing .designer-options {
  grid-area: options;

  min-width: 0;
  min-height: 0;

  display: grid;
  grid-template-rows:
    minmax(0, 1fr);

  overflow: hidden;

  border: 0;
  box-shadow: none;

  background: #ffffff;
}

body.door-type-landing .options-header {
  display: none;
}

body.door-type-landing .options-panel {
  width:
    min(1500px, 100%);

  min-height: 0;

  margin: 0 auto;

  padding:
    clamp(24px, 3.3vh, 34px)
    clamp(28px, 4vw, 68px)
    30px;

  overflow: hidden;

  background: #ffffff;
}

/* ---------------------------------------------------------
   Configuration cards
   --------------------------------------------------------- */

.door-type-landing-grid {
  width: 100%;
  height: auto;

  display: grid;

  grid-template-columns:
    repeat(4, minmax(0, 1fr));

  gap:
    clamp(16px, 1.8vw, 28px);

  align-items: start;
}

.door-type-landing-card {
  appearance: none;

  width: 100%;
  min-width: 0;

  display: grid;

  grid-template-rows:
    390px
    56px;

  padding: 0;

  overflow: hidden;

  cursor: pointer;

  border:
    1px solid #e1e5e8;

  border-top:
    3px solid rgba(183, 144, 74, .68);

  border-radius: 10px;

  background: #ffffff;

  box-shadow:
    0 8px 24px rgba(17, 40, 57, .065);

  color: var(--navy);
  text-align: center;

  transition:
    transform 160ms ease,
    border-color 160ms ease,
    box-shadow 160ms ease;
}

.door-type-landing-card:hover,
.door-type-landing-card:focus-visible {
  transform: translateY(-3px);

  border-color:
    rgba(183, 144, 74, .85);

  box-shadow:
    0 14px 32px rgba(17, 40, 57, .12);

  outline: none;
}

.door-type-landing-preview {
  min-width: 0;
  min-height: 0;

  display: grid;
  place-items: center;

  padding:
    20px
    18px
    14px;

  overflow: hidden;

  border-bottom:
    1px solid #eceff1;

  background: #ffffff;
}

/*
 * All four configurations deliberately use the same rendered
 * height. This prevents single/stable doors dominating the
 * wider configurations and keeps the visual scale consistent.
 */
.door-type-landing-preview .v2-product-svg {
  display: block;

  width: auto !important;

  height:
    clamp(250px, 29vh, 320px) !important;

  max-width: 94% !important;
  max-height: 94% !important;

  object-fit: contain;
}

.door-type-landing-image {
  display: block;

  width: auto;

  height:
    clamp(250px, 29vh, 320px);

  max-width: 94%;
  max-height: 94%;

  object-fit: contain;
}

.door-type-preview-loading {
  color: #89939a;

  font-size: .78rem;
  letter-spacing: .04em;
}

.door-type-landing-title {
  display: grid;
  place-items: center;

  min-height: 56px;

  padding:
    10px
    12px;

  color: var(--navy);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(1rem, 1.25vw, 1.22rem);

  font-weight: 600;
  line-height: 1.1;

  background: #ffffff;
}

body.door-type-landing .step-error,
body.door-type-landing .designer-actions {
  display: none !important;
}

/* ---------------------------------------------------------
   Tablet
   --------------------------------------------------------- */

@media (max-width: 1000px) {
  body.door-type-landing {
    overflow: auto;
  }

  body.door-type-landing .designer-app {
    height: auto;
    min-height: 100vh;

    grid-template-rows:
      auto
      auto;

    overflow: visible;
  }

  body.door-type-landing .designer-topbar {
    min-height: 0;

    grid-template-columns: 1fr;

    gap: 10px;

    padding:
      14px
      24px
      18px;
  }

  body.door-type-landing .topbar-logo {
    height: 70px;
  }

  body.door-type-landing .landing-page-heading {
    align-items: center;
    text-align: center;
  }

  body.door-type-landing
    .landing-page-heading > strong {
    font-size: 2rem;
  }

  body.door-type-landing .designer-options,
  body.door-type-landing .options-panel {
    overflow: visible;
  }

  .door-type-landing-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  .door-type-landing-card {
    grid-template-rows:
      350px
      56px;
  }
}

/* ---------------------------------------------------------
   Phone
   --------------------------------------------------------- */

@media (max-width: 620px) {
  body.door-type-landing .designer-topbar {
    padding:
      12px
      16px
      16px;
  }

  body.door-type-landing .topbar-logo {
    width: min(100%, 330px);
    height: 62px;
  }

  body.door-type-landing .landing-brand-tagline {
    gap: 7px;

    font-size: 8px;
    letter-spacing: .13em;
  }

  body.door-type-landing
    .landing-page-heading > strong {
    font-size: 1.75rem;
  }

  body.door-type-landing
    .landing-page-heading > small {
    font-size: .82rem;
  }

  body.door-type-landing .options-panel {
    padding:
      20px
      14px
      24px;
  }

  .door-type-landing-grid {
    grid-template-columns: 1fr;
  }

  .door-type-landing-card {
    grid-template-rows:
      340px
      54px;
  }

  .door-type-landing-preview .v2-product-svg,
  .door-type-landing-image {
    height:
      min(300px, 72vw) !important;
  }
}


/* =========================================================
   CONFIGURATION-AWARE MAIN PREVIEW WIDTHS
   ========================================================= */

.door-preview.is-twin {
  aspect-ratio: 0.96;
  width: auto;
  height: min(64vh, 580px);
  max-width: 92%;
  max-height: calc(100% - 24px);
}

@media (max-width: 980px) {
  .door-preview.is-twin {
    width: auto;
    height: min(58vh, 540px);
    max-width: 88vw;
  }
}

/* Keep the rendered door SVG contained within the main preview frame. */
.door-preview > .v2-product-svg {
  width: 100%;
  height: 100%;
  display: block;
}


/* STEP 1 — FINAL LANDING POLISH */

@media (min-width: 1001px) {

  /* -------------------------------------------------------
     HEADER — LARGE LEFT BRAND + TRUE CENTRED PAGE TITLE
     ------------------------------------------------------- */

  body.door-type-landing .designer-app {
    grid-template-rows:
      154px
      minmax(0, 1fr);
  }

  body.door-type-landing .designer-topbar {
    position: relative;

    display: block;

    min-height: 154px;

    padding: 0;

    background: #ffffff;

    border-bottom:
      1px solid #e2e6e9;

    box-shadow:
      0 3px 14px rgba(19, 43, 61, .045);
  }

  body.door-type-landing .topbar-brand {
    position: absolute;

    left:
      clamp(28px, 3vw, 52px);

    top: 50%;

    transform:
      translateY(-50%);

    width:
      clamp(490px, 37vw, 625px);

    height: auto;

    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;

    gap: 2px;

    padding: 0;

    border: 0;
  }

  body.door-type-landing .topbar-logo {
    display: block;

    width: 100%;
    height: 108px;

    max-width: none;
    max-height: none;

    object-fit: contain;
    object-position: left center;
  }

  body.door-type-landing .landing-brand-tagline {
    width: 100%;

    display: flex;
    justify-content: center;
    align-items: center;

    gap: 10px;

    margin-top: -2px;

    color: var(--navy);

    font-size: 10px;
    font-weight: 700;

    letter-spacing: .21em;

    text-transform: uppercase;
  }

  body.door-type-landing
    .landing-brand-tagline b {
    color: var(--gold);
  }

  body.door-type-landing .landing-page-heading {
    position: absolute;

    left: 50%;
    top: 50%;

    transform:
      translate(-50%, -50%);

    width:
      min(560px, 38vw);

    min-width: 0;

    display: flex;
    flex-direction: column;
    align-items: center;

    text-align: center;
  }

  body.door-type-landing
    .landing-page-heading > span {
    margin-bottom: 5px;

    color: var(--gold);

    font-size: 11px;
    font-weight: 800;

    letter-spacing: .19em;

    text-transform: uppercase;
  }

  body.door-type-landing
    .landing-page-heading > strong {
    color: var(--navy);

    font-family:
      Georgia,
      "Times New Roman",
      serif;

    font-size:
      clamp(2.8rem, 3.15vw, 3.35rem);

    font-weight: 500;

    line-height: .98;

    letter-spacing: -.025em;
  }

  body.door-type-landing
    .landing-page-heading > small {
    margin-top: 9px;

    color: #687680;

    font-size: .95rem;
    line-height: 1.35;
  }

  /* -------------------------------------------------------
     CARDS
     ------------------------------------------------------- */

  body.door-type-landing .options-panel {
    padding-top:
      clamp(22px, 2.8vh, 30px);
  }

  .door-type-landing-grid {
    align-items: start;
  }

  .door-type-landing-card {
    grid-template-rows:
      376px
      68px;

    border:
      1px solid #e0e4e7;

    border-top:
      3px solid rgba(183, 144, 74, .72);

    border-radius: 10px;

    background: #ffffff;

    box-shadow:
      0 8px 24px rgba(17, 40, 57, .065);
  }

  .door-type-landing-preview {
    padding:
      19px
      16px
      12px;

    background: #ffffff;
  }

  /*
   * Same rendered height for every configuration.
   * Width changes naturally according to the configuration.
   */
  .door-type-landing-preview .v2-product-svg {
    display: block;

    width: auto !important;

    height:
      clamp(248px, 28vh, 308px) !important;

    max-width: 96% !important;
    max-height: 96% !important;

    object-fit: contain;
  }

  /* -------------------------------------------------------
     BLUE/GOLD CONFIGURATION BUTTONS
     ------------------------------------------------------- */

  .door-type-landing-title {
    align-self: center;
    justify-self: stretch;

    min-height: 44px;

    margin:
      9px
      18px
      11px;

    padding:
      10px
      14px;

    display: grid;
    place-items: center;

    border:
      1px solid rgba(183, 144, 74, .72);

    border-radius: 7px;

    background:
      var(--navy);

    color:
      #ddb85f;

    font-family:
      Georgia,
      "Times New Roman",
      serif;

    font-size:
      clamp(1rem, 1.2vw, 1.18rem);

    font-weight: 600;

    line-height: 1.1;

    box-shadow:
      0 4px 11px rgba(17, 40, 57, .12);

    transition:
      background 160ms ease,
      color 160ms ease,
      box-shadow 160ms ease,
      transform 160ms ease;
  }

  .door-type-landing-card:hover
    .door-type-landing-title,
  .door-type-landing-card:focus-visible
    .door-type-landing-title {
    background:
      #173a56;

    color:
      #f1cb72;

    box-shadow:
      0 6px 15px rgba(17, 40, 57, .17);
  }
}


/* Tablet/mobile retain the blue/gold card labels */
@media (max-width: 1000px) {

  .door-type-landing-title {
    align-self: center;
    justify-self: stretch;

    min-height: 42px;

    margin:
      8px
      16px
      10px;

    padding:
      10px
      12px;

    display: grid;
    place-items: center;

    border:
      1px solid rgba(183, 144, 74, .72);

    border-radius: 7px;

    background:
      var(--navy);

    color:
      #ddb85f;
  }
}



/* DOOR & A HALF — SECONDARY LEAF CONFIGURATION */

.door-half-secondary-config {
  margin-top: 22px;
  padding: 20px;

  border:
    1px solid #e0e5e8;

  border-radius: 10px;

  background: #ffffff;

  box-shadow:
    0 6px 18px rgba(17, 40, 57, .055);
}

.door-half-secondary-heading {
  margin-bottom: 18px;
}

.door-half-secondary-heading strong {
  display: block;

  color: var(--navy);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 1.25rem;
  font-weight: 600;
}

.door-half-secondary-heading span {
  display: block;

  margin-top: 5px;

  color: #6d7981;

  font-size: .86rem;
  line-height: 1.45;
}

.door-half-secondary-group
  + .door-half-secondary-group {
  margin-top: 18px;
}

.door-half-secondary-options {
  margin-top: 9px;
}

.door-half-secondary-layout-options {
  grid-template-columns:
    repeat(5, minmax(0, 1fr));
}

@media (max-width: 1050px) {
  .door-half-secondary-layout-options {
    grid-template-columns:
      repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .door-half-secondary-layout-options {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }
}

/* 2026-10-07 DESIGNER SITE NAVIGATION */
body .designer-topbar {
  position: relative;
  overflow: visible;
}
body:not(.door-type-landing) .designer-topbar {
  padding-right: 84px;
}
body .designer-topbar > .designer-site-menu {
  display: block;
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 40;
  margin: 0;
  padding: 0;
  border: 0;
}
body .designer-site-menu > summary {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  margin: 0;
  box-sizing: border-box;
  border: 1px solid rgba(216,180,102,.65);
  border-radius: 5px;
  background: #12344d;
  color: #F5D78E;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1.5rem;
  line-height: 1;
  list-style: none;
  cursor: pointer;
}
body .designer-site-menu > summary::after {
  display: none;
}
body .designer-site-menu > summary::-webkit-details-marker {
  display: none;
}
body .designer-site-menu nav {
  position: absolute;
  top: 52px;
  right: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: min(310px, calc(100vw - 32px));
  max-height: calc(100svh - 100px);
  overflow-y: auto;
  overscroll-behavior: contain;
  margin: 0;
  padding: 8px;
  box-sizing: border-box;
  border: 1px solid rgba(125,166,192,.30);
  border-radius: 6px;
  background: linear-gradient(180deg,#173f5c,#12344d);
  box-shadow: 0 12px 28px rgba(0,0,0,.28);
}
body .designer-site-menu:not([open]) nav {
  display: none;
}
body .designer-site-menu nav a,
body .designer-menu-unavailable {
  display: block;
  min-height: 44px;
  margin: 0;
  padding: 10px 12px;
  box-sizing: border-box;
  border-radius: 5px;
  color: #ffffff;
  font-family: Arial, Helvetica, sans-serif;
  font-size: .86rem;
  line-height: 1.4;
  text-decoration: none;
}
body .designer-site-menu nav a:hover {
  background: rgba(255,255,255,.08);
  color: #F5D78E;
}
body .designer-site-menu > summary:focus-visible,
body .designer-site-menu a:focus-visible {
  outline: 2px solid #F5D78E;
  outline-offset: 3px;
}
body .designer-menu-unavailable {
  color: #b8c8d3;
}
body .designer-site-menu .designer-menu-visit {
  margin-top: 6px;
  border: 1px solid rgba(216,180,102,.82);
  background: rgba(8,31,48,.44);
}
@media (max-width: 620px) {
  body:not(.door-type-landing) .designer-topbar {
    padding-right: 16px;
  }
  body:not(.door-type-landing) .designer-topbar .topbar-brand {
    padding-right: 56px;
    box-sizing: border-box;
  }
}

/* 2026-10-07 DESIGNER FULLSCREEN CONTROLS */
.designer-fullscreen-exit {
  display: none;
}

body.designer-fullscreen-open {
  overflow: hidden !important;
}

body .designer-preview.is-preview-fullscreen {
  position: fixed !important;
  inset: 0 !important;
  z-index: 10000 !important;
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  height: 100dvh !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 76px 16px 16px !important;
  box-sizing: border-box !important;
  overflow: auto !important;
  background: #dfe8ed !important;
}

body .designer-preview.is-preview-fullscreen .preview-stage {
  position: relative !important;
  display: flex !important;
  flex: 1 1 0 !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 0 !important;
  width: 100% !important;
  height: auto !important;
  padding: 0 !important;
  overflow: hidden !important;
}

body .designer-preview.is-preview-fullscreen #doorPreview {
  position: static !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
}

body .designer-preview.is-preview-fullscreen #doorPreview > svg {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
}

body .designer-preview.is-preview-fullscreen .designer-fullscreen-exit {
  position: absolute;
  top: 16px;
  right: 16px;
  display: block;
  min-height: 44px;
  padding: 10px 16px;
  border: 1px solid #d4af37;
  border-radius: 5px;
  background: #12344d;
  color: white;
  font: inherit;
  cursor: pointer;
}

.designer-fullscreen-exit:focus-visible {
  outline: 3px solid #a78144;
  outline-offset: 3px;
}
