@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700&family=Playfair+Display:wght@500;600&display=swap');

:root { --navy: #081a2b; --navy-soft: #10293d; --ink: #102333; --mist: #f0f2f1; --white: #fbfcfa; --line: rgba(255,255,255,.18); --blue: #91c7d2; --serif: 'Playfair Display', Georgia, serif; --sans: 'Manrope', 'Trebuchet MS', sans-serif; --mono: 'DM Mono', monospace; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--white); color: var(--ink); font-family: var(--sans); font-size: 15px; line-height: 1.6; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
.container { width: min(1180px, calc(100% - 80px)); margin: 0 auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 16px; top: -60px; z-index: 20; padding: 10px 14px; background: var(--blue); color: var(--navy); }
.skip-link:focus { top: 16px; }
.site-header { position: absolute; z-index: 10; width: 100%; color: var(--white); border-bottom: 1px solid var(--line); }
.header-inner, .footer-inner { min-height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.brand { display: inline-flex; align-items: center; gap: 12px; letter-spacing: .02em; }
.brand-mark { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid currentColor; font-family: var(--serif); font-size: 18px; line-height: 1; }
.brand-mark span { font-size: 11px; margin-left: -3px; margin-top: 10px; }
.brand-name { font-size: 13px; line-height: 1.25; text-transform: uppercase; letter-spacing: .12em; }
.brand-name strong { display: block; font-weight: 400; opacity: .6; font-size: 10px; letter-spacing: .18em; }
.site-nav { display: flex; align-items: center; gap: 28px; font-size: 12px; text-transform: uppercase; letter-spacing: .1em; }
.site-nav a:not(.button), .footer-inner a:not(.brand) { opacity: .76; transition: opacity .2s ease; }
.site-nav a:hover:not(.button), .footer-inner a:hover:not(.brand) { opacity: 1; }
.button { display: inline-flex; width: fit-content; align-items: center; gap: 17px; padding: 16px 21px; border: 1px solid transparent; text-transform: uppercase; letter-spacing: .12em; font-size: 10px; font-weight: 700; transition: transform .2s ease, background .2s ease, color .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-small { padding: 12px 15px; font-size: 9px; }
.button-light { color: var(--navy); background: var(--white); }
.button-accent { color: var(--navy); background: var(--blue); }
.button-dark { color: var(--white); background: var(--navy); }
.menu-toggle { display: none; background: none; border: 0; color: inherit; }
.hero { min-height: 760px; position: relative; display: flex; align-items: center; color: var(--white); background: var(--navy-soft); overflow: hidden; }
.hero-backdrop { position: absolute; inset: 0; background: linear-gradient(115deg, #203d4c, #081a2b 68%); }
.image-slot { overflow: hidden; position: relative; background-color: #d9e0de; background-image: linear-gradient(120deg, rgba(8,26,43,.1), rgba(8,26,43,.4)); color: rgba(255,255,255,.72); }
.image-slot::before { content: ''; position: absolute; inset: 12px; border: 1px solid rgba(255,255,255,.28); pointer-events: none; }
.image-slot > span { position: absolute; inset: 50% auto auto 50%; transform: translate(-50%, -50%); font: 10px var(--mono); text-align: center; letter-spacing: .08em; text-transform: uppercase; opacity: .72; white-space: nowrap; }
.hero-backdrop::after { content: ''; position: absolute; width: 50vw; height: 120%; right: -8%; top: -10%; border-radius: 50%; border: 1px solid rgba(145,199,210,.25); box-shadow: 0 0 0 40px rgba(145,199,210,.04), 0 0 0 80px rgba(145,199,210,.04); }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,26,43,.95), rgba(8,26,43,.3) 70%, rgba(8,26,43,.8)); }
.hero-content { position: relative; padding-top: 90px; }
.eyebrow { margin: 0 0 22px; color: var(--blue); font: 11px var(--mono); letter-spacing: .12em; text-transform: uppercase; }
h1, h2 { margin: 0; font-weight: 500; line-height: 1.03; letter-spacing: -.03em; }
h1 { max-width: 760px; font-size: clamp(58px, 8vw, 106px); }
h2 { font-size: clamp(42px, 5.4vw, 72px); }
em { font-family: var(--serif); font-weight: 500; }
.hero-copy { max-width: 430px; margin: 32px 0 34px; color: rgba(255,255,255,.72); font-size: 16px; }
.hero-footer { position: absolute; bottom: 28px; left: 0; right: 0; display: flex; justify-content: space-between; color: rgba(255,255,255,.6); font: 10px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.hero-footer a { color: var(--white); }
.section-pad { padding: 130px 0; }
.intro { background: var(--white); }
.intro-grid { display: grid; grid-template-columns: 1fr 2fr; gap: 60px; }
.large-copy { max-width: 530px; margin: 34px 0 30px; color: #5c6b72; font-size: 18px; line-height: 1.8; }
.text-link { display: inline-flex; gap: 12px; border-bottom: 1px solid currentColor; padding-bottom: 7px; font-size: 11px; text-transform: uppercase; letter-spacing: .1em; }
.section-dark { color: var(--white); background: var(--navy); }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 40px; margin-bottom: 74px; }
.section-heading > p { max-width: 240px; margin: 0; color: rgba(255,255,255,.55); }
.section-heading-light { color: var(--ink); }
.section-heading-light .eyebrow { color: #537d85; }
.service-list { border-top: 1px solid var(--line); }
.service-item { display: grid; grid-template-columns: 12% 1fr 40px; align-items: center; gap: 20px; padding: 29px 0; border-bottom: 1px solid var(--line); }
.service-number { color: var(--blue); font: 11px var(--mono); }
.service-item h3 { margin: 0 0 5px; font-size: 22px; font-weight: 500; }
.service-item p { max-width: 500px; margin: 0; color: rgba(255,255,255,.52); font-size: 13px; }
.service-arrow { color: var(--blue); font-size: 22px; }
.work { background: var(--mist); }
.work-grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr; grid-template-rows: 205px 205px; gap: 14px; }

.work-card { min-height: 205px; color: var(--white); background: #799197; }
.work-card-tall { grid-row: span 2; }
.work-card::after { content: ''; position: absolute; inset: 0; background: linear-gradient(transparent 35%, rgba(8,26,43,.85)); }
.work-caption { position: absolute; z-index: 1; bottom: 23px; left: 25px; display: grid; gap: 5px; }
.work-caption small { font: 10px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--blue); }
.work-caption strong { font: 500 24px var(--serif); }
.inspiration-gallery { background: #f5f7f5; }
.inspiration-heading { display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; gap: 80px; margin-bottom: 48px; }
.inspiration-heading h2 { color: var(--navy); }
.inspiration-intro { max-width: 360px; margin: 0 0 4px; color: #5c6b72; font-size: 16px; line-height: 1.8; }
.inspiration-filters { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 28px; }
.inspiration-filter { border: 1px solid #b8c6c2; border-radius: 999px; padding: 10px 15px; color: var(--navy); background: transparent; font: 10px var(--mono); letter-spacing: .08em; text-transform: uppercase; cursor: pointer; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.inspiration-filter:hover, .inspiration-filter:focus-visible, .inspiration-filter.is-active { border-color: var(--navy); color: var(--white); background: var(--navy); outline: 0; }
.inspiration-grid { columns: 3 260px; column-gap: 14px; }
.inspiration-card { position: relative; display: block; width: 100%; margin: 0 0 14px; padding: 0; break-inside: avoid; border: 0; background: #d9e0de; cursor: zoom-in; overflow: hidden; }
.inspiration-card::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(8,26,43,.72)); opacity: .72; pointer-events: none; transition: opacity .25s ease; }
.inspiration-card:hover::after, .inspiration-card:focus-visible::after { opacity: 1; }
.inspiration-card img { display: block; width: 100%; height: auto; object-fit: cover; transition: transform .45s ease; }
.inspiration-card:hover img, .inspiration-card:focus-visible img { transform: scale(1.025); }
.inspiration-card-caption { position: absolute; right: 16px; bottom: 14px; left: 16px; z-index: 1; color: var(--white); font: 10px var(--mono); letter-spacing: .08em; text-align: left; text-transform: uppercase; }
.inspiration-cta { margin-top: 96px; padding: 52px 0 0; border-top: 1px solid rgba(8,26,43,.14); }
.inspiration-cta h2 { margin-bottom: 30px; color: var(--navy); }
.inspiration-lightbox { position: fixed; inset: 0; z-index: 10000; display: grid; grid-template-columns: 52px minmax(0, 1fr) 52px; align-items: center; gap: 18px; padding: 34px; background: rgba(8,26,43,.96); }
.inspiration-lightbox[hidden] { display: none; }
.inspiration-lightbox-figure { display: grid; max-width: min(1100px, 82vw); max-height: 90vh; place-items: center; justify-self: center; margin: 0; }
.inspiration-lightbox-figure img { display: block; max-width: 100%; max-height: 82vh; width: auto; height: auto; object-fit: contain; }
.inspiration-lightbox-figure figcaption { margin-top: 12px; color: rgba(255,255,255,.66); font: 10px var(--mono); letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.inspiration-lightbox-close, .inspiration-lightbox-prev, .inspiration-lightbox-next { display: grid; width: 46px; height: 46px; place-items: center; border: 1px solid rgba(255,255,255,.36); color: var(--white); background: transparent; font-size: 25px; line-height: 1; cursor: pointer; }
.inspiration-lightbox-close { position: absolute; top: 20px; right: 24px; z-index: 1; }
.inspiration-lightbox-prev { grid-column: 1; }
.inspiration-lightbox-next { grid-column: 3; }
.inspiration-lightbox-close:hover, .inspiration-lightbox-prev:hover, .inspiration-lightbox-next:hover { border-color: var(--blue); color: var(--blue); }
.section-pale { background: #dfe5e1; }
.shop-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 100px; }
.shop-grid .large-copy { font-size: 16px; }
.shop-image {
  width: 100%;
  aspect-ratio: 3 / 4;
  min-height: 0;
  overflow: hidden;
  background-color: #9aafb0;
}

.shop-image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}
.image-note { position: absolute; bottom: 24px; right: 25px; z-index: 1; font: 10px var(--mono); text-transform: uppercase; letter-spacing: .1em; }
.quote { background: var(--white); }
.quote-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; }
.quote-grid > div > p:not(.eyebrow) { max-width: 400px; color: #5c6b72; margin-top: 30px; }
.quote-form {
  display: grid;
  gap: 0;
  align-content: start;
  font-family: var(--sans);
}

.quote-form .form-section {
  padding: 28px 0 30px;
  border-top: 1px solid rgba(8, 26, 43, 0.14);
}

.quote-form .form-section:first-child {
  border-top: 0;
  padding-top: 0;
}

.quote-form .form-step {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0 0 26px;
  color: var(--navy);
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 500;
  letter-spacing: -0.01em;
}

.quote-form .form-step::before {
  content: "";
  width: 34px;
  height: 1px;
  background: var(--blue);
  display: block;
}

.quote-form .form-step span {
  color: var(--navy);
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 500;
}

.quote-form .form-step::first-letter {
  font-family: var(--mono);
}

.quote-form .form-step span {
  font-family: var(--serif);
}

.quote-form label {
  display: block;
  margin: 18px 0 7px;
  color: #53636b;
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .12em;
  line-height: 1.4;
  text-transform: uppercase;
}

.quote-form input,
.quote-form select,
.quote-form textarea {
  width: 100%;
  border: 0;
  border-bottom: 1px solid #aeb9b7;
  border-radius: 0;
  padding: 12px 0;
  outline: 0;
  background: transparent;
  color: var(--ink);
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.5;
  transition: border-color .25s ease;
}

.quote-form input::placeholder,
.quote-form textarea::placeholder {
  color: #9aa5a8;
  opacity: 1;
}

.quote-form input:focus,
.quote-form select:focus,
.quote-form textarea:focus {
  border-color: var(--navy);
}

.quote-form select {
  cursor: pointer;
  appearance: auto;
}

.quote-form textarea {
  min-height: 120px;
  resize: vertical;
}

.quote-form .conditional-field {
  margin-top: 8px;
  padding: 0;
  background: transparent;
  border-left: 0;
}

.quote-form .conditional-field label {
  margin-top: 18px;
}

.measurement-title {
  margin: 28px 0 4px;
  color: var(--navy);
  font-family: var(--serif);
  font-size: 1rem;
}

.measurement-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
}

.measurement-fields label {
  margin-top: 16px;
}

.square-feet-result {
  margin: 18px 0 0;
  padding: 13px 0;
  border-top: 1px solid rgba(8, 26, 43, .12);
  border-bottom: 1px solid rgba(8, 26, 43, .12);
  color: #53636b;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.square-feet-result strong {
  color: var(--navy);
  font-size: 13px;
  font-weight: 500;
}

.form-help {
  margin: 8px 0 0;
  color: #7a878b;
  font-size: 11px;
  line-height: 1.6;
}

.quote-form .form-submit {
  padding-bottom: 0;
}

.estimated-price-panel {
  margin: 0 0 34px;
  padding: 30px 28px 28px;
  border: 1px solid rgba(8, 26, 43, .14);
  background: linear-gradient(135deg, #f1f6f4, #e5efec);
  text-align: center;
}

.estimated-price-label {
  margin: 0 0 10px;
  color: #537d85;
  font: 11px var(--mono);
  letter-spacing: .14em;
  text-transform: uppercase;
}

.estimated-price-value {
  max-width: 100%;
  margin: 0;
  color: #7a878b;
  font-family: var(--serif);
  font-size: clamp(17px, 2.5vw, 25px);
  line-height: 1.25;
}

.estimated-price-value.has-price {
  color: var(--navy);
  font-size: clamp(30px, 4vw, 48px);
  letter-spacing: -.02em;
}

.estimated-price-note {
  margin: 12px 0 0;
  color: #7a878b;
  font-size: 11px;
  line-height: 1.5;
}

.quote-form .button {
  margin-top: 12px;
}

.form-status {
  min-height: 20px;
  margin-top: 14px;
  color: #537d85;
  font-family: var(--sans);
  font-size: 12px;
}

.form-status-error {
  color: #a34842;
}

.quote-form input.field-error,
.quote-form select.field-error,
.quote-form textarea.field-error {
  border-color: #a34842;
}

.choice-list-error .choice-card {
  border-color: rgba(163, 72, 66, .55);
}

.choice-list-error .choice-card:focus-visible {
  outline: 2px solid rgba(163, 72, 66, .35);
  outline-offset: 2px;
}
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; }
.contact-details { padding-top: 10px; }
.contact-details > p:first-child { max-width: 260px; margin: 0 0 42px; color: rgba(255,255,255,.58); }
.contact-link { display: block; width: fit-content; margin: 12px 0; border-bottom: 1px solid rgba(255,255,255,.3); color: var(--white); font-size: 19px; }
.contact-link span { color: var(--blue); font-size: 15px; }
.contact-note { margin-top: 55px; color: rgba(255,255,255,.5); font: 11px var(--mono); text-transform: uppercase; letter-spacing: .1em; }
.site-footer { color: var(--white); background: #061522; }
.footer-inner { min-height: 105px; }
.footer-inner p, .footer-inner > a:not(.brand) { margin: 0; color: rgba(255,255,255,.45); font: 10px var(--mono); text-transform: uppercase; letter-spacing: .08em; }
@media (max-width: 760px) { .container { width: min(100% - 40px, 600px); } .site-header { position: absolute; } .header-inner { min-height: 74px; } .menu-toggle { display: grid; gap: 5px; padding: 8px 0 8px 8px; } .menu-toggle > span:not(.sr-only) { display: block; width: 25px; height: 1px; background: currentColor; } .site-nav { position: absolute; top: 74px; left: 0; right: 0; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 12px 20px 20px; background: var(--navy); border-bottom: 1px solid var(--line); } .site-nav.is-open { display: flex; } .site-nav a { padding: 13px 0; } .site-nav .button { justify-content: center; margin-top: 8px; } .brand-name { font-size: 11px; } .hero { min-height: 680px; } .hero-content { padding-top: 75px; } h1 { font-size: clamp(52px, 15vw, 80px); } .hero-footer { bottom: 22px; } .hero-footer a { display: none; } .section-pad { padding: 85px 0; } .intro-grid, .quote-grid, .contact-grid, .shop-grid { grid-template-columns: 1fr; gap: 45px; } .section-heading { display: block; margin-bottom: 45px; } .section-heading > p { margin-top: 28px; } .service-item { grid-template-columns: 36px 1fr 25px; } .service-item h3 { font-size: 19px; } .service-item p { font-size: 12px; } .work-grid { grid-template-columns: 1fr 1fr; grid-template-rows: 290px 190px; } .work-card-tall { grid-row: span 2; } .work-card:nth-child(3) { grid-column: 2; } .work-caption { left: 16px; bottom: 16px; } .work-caption strong { font-size: 19px; } .shop-image { min-height: 350px; } .footer-inner { min-height: 150px; flex-wrap: wrap; padding: 25px 0; } .footer-inner p { order: 3; width: 100%; } }
@media (max-width: 760px) { .inspiration-heading { grid-template-columns: 1fr; gap: 28px; } .inspiration-intro { font-size: 15px; } .inspiration-grid { columns: 2 150px; column-gap: 10px; } .inspiration-card { margin-bottom: 10px; } .inspiration-cta { margin-top: 68px; } .inspiration-lightbox { grid-template-columns: 40px minmax(0, 1fr) 40px; gap: 8px; padding: 20px 12px; } .inspiration-lightbox-figure { max-width: calc(100vw - 80px); } .inspiration-lightbox-close { top: 12px; right: 12px; } .inspiration-lightbox-close, .inspiration-lightbox-prev, .inspiration-lightbox-next { width: 38px; height: 38px; font-size: 20px; } }
/* =========================================
   QUOTE FORM — PROFESSIONAL STYLING
   ========================================= */
   /* =====================================================
   PRODUCT GALLERY
   ===================================================== */

.product-gallery {
  width: 100%;
  margin-top: 28px;
}

.gallery-main {
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #e9eceb;
}

.gallery-main-button {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
  overflow: hidden;
}

.gallery-main-button img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}

.gallery-main-button:hover img {
  transform: scale(1.025);
}

.gallery-zoom {
  position: absolute;
  right: 18px;
  bottom: 18px;
  padding: 8px 12px;
  background: rgba(8, 26, 43, 0.86);
  color: #fff;
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.gallery-thumbnails {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 10px;
}

.gallery-thumb {
  aspect-ratio: 4 / 3;
  padding: 0;
  border: 1px solid transparent;
  background: #e9eceb;
  overflow: hidden;
  cursor: pointer;
}

.gallery-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: .72;
  transition:
    opacity .25s ease,
    transform .35s ease;
}

.gallery-thumb:hover img {
  opacity: 1;
  transform: scale(1.03);
}

.gallery-thumb.active {
  border-color: var(--navy);
}

.gallery-thumb.active img {
  opacity: 1;
}

.gallery-product-name {
  margin: 16px 0 0;
  color: var(--navy);
  font-family: var(--serif);
  font-size: 18px;
  line-height: 1.3;
}


/* =====================================================
   IMAGE LIGHTBOX
   ===================================================== */

.gallery-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px;
  background: rgba(8, 26, 43, 0.94);
}

.gallery-lightbox[hidden] {
  display: none;
}

.gallery-lightbox img {
  max-width: min(1100px, 94vw);
  max-height: 88vh;
  width: auto;
  height: auto;
  object-fit: contain;
}

.gallery-lightbox-close {
  position: absolute;
  top: 22px;
  right: 26px;
  width: 46px;
  height: 46px;
  border: 1px solid rgba(255,255,255,.35);
  background: transparent;
  color: #fff;
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
}

.gallery-lightbox-close:hover {
  background: rgba(255,255,255,.1);
}


/* =====================================================
   GALLERY MOBILE
   ===================================================== */

@media (max-width: 700px) {

  .gallery-product-name {
    font-size: 16px;
  }

  .gallery-zoom {
    right: 12px;
    bottom: 12px;
    font-size: 8px;
  }

  .gallery-lightbox {
    padding: 20px;
  }

}
/* MOVE PRODUCT GALLERY INTO THE QUOTE AREA */

.quote-grid {
  align-items: start;
}

.product-gallery {
  grid-column: 1 / -1;
  width: 100%;
  margin-top: 30px;
}

/* Selectable quote cards */
.service-picker {
  margin-bottom: 28px;
}

.service-picker-label,
.choice-list + label,
.conditional-field > label {
  display: block;
  margin: 0 0 10px;
  color: #53636b;
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .12em;
  line-height: 1.4;
  text-transform: uppercase;
}

.service-picker > select,
.conditional-field > select {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  opacity: 0;
}

.service-options,
.choice-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.service-options {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.choice-card {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 62px;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 5px;
  padding: 15px 16px;
  border: 1px solid rgba(8, 26, 43, .15);
  border-radius: 2px;
  background: rgba(255, 255, 255, .7);
  color: var(--navy);
  text-align: left;
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease;
}

.choice-card:hover,
.choice-card:focus-visible {
  border-color: #537d85;
  background: #f3f7f5;
  outline: 0;
  transform: translateY(-1px);
}

.choice-card.is-selected {
  border-color: var(--navy);
  background: var(--navy);
  color: var(--white);
  box-shadow: 0 8px 18px rgba(8, 26, 43, .14);
}

.choice-card-title {
  max-width: 100%;
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
}

.choice-card-index {
  color: #537d85;
  font: 9px var(--mono);
  letter-spacing: .1em;
}

.is-selected .choice-card-index {
  color: var(--blue);
}

.choice-card-arrow {
  position: absolute;
  top: 12px;
  right: 13px;
  color: #537d85;
  font-size: 15px;
}

.is-selected .choice-card-arrow {
  color: var(--blue);
}

.choice-list {
  margin: 0 0 10px;
}

.choice-list-compact {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 16px;
}

.choice-list .choice-card {
  min-height: 54px;
  padding: 12px 13px;
}

.choice-list-compact .choice-card-title {
  font-size: 12px;
}

.conditional-field > label + select + .choice-list {
  margin-top: 0;
}

@media (max-width: 760px) {
  .service-options {
    grid-template-columns: 1fr;
  }

  .choice-list,
  .choice-list-compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Quote form layout */
.quote-form .form-grid {
  display: grid;
  gap: 22px 18px;
}

.quote-form .form-grid-contact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.quote-form .form-field label,
.quote-form .quantity-field label {
  margin-top: 0;
}

.measurement-panel {
  margin-top: 34px;
  padding-top: 24px;
  border-top: 1px solid rgba(8, 26, 43, .12);
}

.measurement-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 14px;
}

.measurement-kicker {
  margin: 0 0 5px;
  color: #537d85;
  font: 10px var(--mono);
  letter-spacing: .12em;
  text-transform: uppercase;
}

.measurement-title {
  margin: 0;
}

.quantity-field {
  width: 92px;
  flex: 0 0 92px;
}

.quantity-field input {
  text-align: center;
}

.measurement-note {
  margin: 12px 0 0;
  color: #7a878b;
  font-size: 11px;
  line-height: 1.5;
}

.upload-field {
  margin-top: 18px;
}

.upload-field > input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.upload-zone {
  display: grid !important;
  place-items: center;
  gap: 7px;
  min-height: 178px;
  margin: 0 !important;
  padding: 28px;
  border: 1px dashed #9eafb0;
  background: #f4f7f5;
  color: var(--navy) !important;
  text-align: center;
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease;
}

.upload-zone:hover {
  border-color: var(--navy);
  background: #edf3f1;
}

.upload-icon {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid #9eafb0;
  border-radius: 50%;
  color: #537d85;
  font-size: 20px;
  line-height: 1;
}

.upload-title {
  font-family: var(--serif);
  font-size: 18px;
}

.upload-caption,
.upload-action {
  color: #718086;
  font-size: 11px;
}

.upload-action {
  margin-top: 5px;
  color: var(--navy);
  font-family: var(--mono);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.photos-selected {
  margin: 12px 0 0;
  padding: 11px 13px;
  border-left: 2px solid var(--blue);
  background: #edf3f1;
  color: var(--navy);
  font-size: 12px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.photos-selected[hidden] {
  display: none;
}

@media (max-width: 760px) {
  .quote-form .form-grid-contact {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .measurement-header {
    align-items: start;
  }

  .measurement-fields {
    gap: 16px;
  }
}
/* Quote-first request page */
body { background: #f4f6f5; }
.quote-header { position: relative; z-index: 2; color: var(--navy); background: var(--white); border-bottom: 1px solid #dce3e0; }
.quote-header .header-inner { min-height: 76px; }
.header-contact { color: #53636b; font-size: 12px; }
.quote.section-pad { min-height: calc(100vh - 180px); padding: 54px 0 88px; }
.quote-grid { grid-template-columns: minmax(230px, .72fr) minmax(0, 1.28fr); gap: clamp(32px, 6vw, 88px); align-items: start; }
.quote-intro { position: sticky; top: 32px; padding-top: 30px; }
.quote-intro h1 { color: var(--navy); font-size: clamp(42px, 5vw, 66px); }
.quote-intro > p:not(.eyebrow) { max-width: 410px; margin-top: 24px; color: #5c6b72; line-height: 1.8; }
.quote-flow { display: grid; gap: 11px; margin: 30px 0 0; padding: 0; list-style: none; color: #53636b; font: 11px var(--mono); }
.quote-flow li::before { content: "→"; margin-right: 12px; color: #537d85; }
.quote-form { padding: 30px clamp(20px, 4vw, 48px); border: 1px solid #dce3e0; background: #fff; box-shadow: 0 14px 50px rgba(8,26,43,.05); }
.quote-form .form-section:first-child { padding-top: 0; }
.estimated-price-panel { background: #eef4f2; }
.estimated-price-note { max-width: 650px; margin-left: auto; margin-right: auto; }
.floating-contact { position: fixed; z-index: 30; right: 22px; bottom: 22px; padding: 15px 21px; border: 0; color: #fff; background: var(--navy); box-shadow: 0 8px 28px rgba(8,26,43,.22); font: 700 11px var(--sans); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.floating-contact[aria-expanded="true"] { background: #31566a; }
.contact-popover { position: fixed; z-index: 29; right: 22px; bottom: 82px; display: grid; gap: 12px; width: min(310px, calc(100vw - 40px)); padding: 22px; border: 1px solid #dce3e0; background: #fff; box-shadow: 0 8px 30px rgba(8,26,43,.14); font-size: 13px; }
.contact-popover[hidden] { display: none; }
.contact-popover a { color: #31566a; overflow-wrap: anywhere; }
.site-footer { color: #dce5e5; background: var(--navy); }
.site-footer .footer-inner { flex-wrap: wrap; }
@media (max-width: 860px) { .quote-grid { grid-template-columns: 1fr; gap: 32px; } .quote-intro { position: static; padding-top: 0; } .quote-intro h1 br { display: none; } .quote-flow { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .container { width: min(100% - 32px, 600px); } .quote.section-pad { padding: 35px 0 60px; } .quote-form { padding: 22px 17px; } .quote-flow { grid-template-columns: 1fr; gap: 7px; } .measurement-fields { gap: 14px; } .floating-contact { right: 14px; bottom: 14px; } .contact-popover { right: 14px; bottom: 72px; } .site-footer .footer-inner { gap: 12px; padding: 24px 0 70px; } }
.payment-page { min-height: 100vh; background: #f4f6f5; }
.payment-card { max-width: 760px; margin: 9vh auto; padding: clamp(28px, 6vw, 64px); border: 1px solid #dce3e0; background: #fff; }
.payment-card h1 { color: var(--navy); font-size: clamp(42px, 7vw, 70px); }
.payment-card > p:not(.eyebrow) { max-width: 590px; margin: 24px 0 32px; color: #53636b; line-height: 1.8; }
.payment-summary { display: grid; gap: 6px; margin-bottom: 30px; padding: 20px; border-left: 3px solid #537d85; background: #eef4f2; }
.payment-summary span { color: #53636b; font-size: 13px; }

/* Quote wizard: short transitions, clear hierarchy, touch friendly controls */
.wizard-progress { margin: 0 0 30px; padding-bottom: 20px; border-bottom: 1px solid #e2e8e5; }
.wizard-progress-meta { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; color: #6e7c80; font: 10px var(--mono); letter-spacing: .1em; }
.wizard-progress-meta strong { color: var(--navy); font-size: 12px; }
.wizard-progress-track { height: 4px; margin: 12px 0 16px; border-radius: 99px; background: #e8eeeb; overflow: hidden; }
.wizard-progress-track span { display: block; width: 0; height: 100%; border-radius: inherit; background: #4d8790; transition: width .28s ease; }
#wizard-step-list { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 4px; margin: 0; padding: 0; list-style: none; }
#wizard-step-list button { display: grid; justify-items: center; gap: 5px; width: 100%; padding: 0; border: 0; color: #9aa6a5; background: none; cursor: default; }
#wizard-step-list button span { display: grid; width: 25px; height: 25px; place-items: center; border: 1px solid #d4ddda; border-radius: 50%; font: 10px var(--mono); transition: color .18s ease, background .18s ease, border-color .18s ease; }
#wizard-step-list button small { overflow: hidden; max-width: 100%; font: 8px var(--mono); letter-spacing: .04em; text-overflow: ellipsis; white-space: nowrap; }
#wizard-step-list button.is-current { color: var(--navy); }
#wizard-step-list button.is-current span, #wizard-step-list button.is-complete span { border-color: var(--navy); color: white; background: var(--navy); }
#wizard-step-list button.is-complete { color: #537d85; cursor: pointer; }
.wizard-panel-heading { margin: 0 0 24px; }
.wizard-panel-heading > span { color: #537d85; font: 10px var(--mono); letter-spacing: .14em; }
.wizard-panel-heading h2 { margin: 5px 0 0; color: var(--navy); font: 500 clamp(27px, 4vw, 36px)/1.1 var(--serif); }
.wizard-step-panel[hidden] { display: none !important; }
.wizard-step-panel.is-entering { animation: wizard-enter .22s ease both; }
@keyframes wizard-enter { from { opacity: .45; transform: translateY(7px); } to { opacity: 1; transform: translateY(0); } }
.wizard-actions { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 28px; padding-top: 18px; border-top: 1px solid #e7ece9; }
.wizard-back { min-height: 48px; padding: 0 18px; border: 1px solid #d4ddda; color: #53636b; background: white; cursor: pointer; transition: border-color .16s ease, color .16s ease; }
.wizard-back:hover { border-color: var(--navy); color: var(--navy); }
.wizard-next { justify-content: center; min-height: 50px; margin: 0 !important; border: 0; cursor: pointer; }
.wizard-step-panel > .form-section { padding-top: 0; }
.wizard-step-panel > .form-section + .form-section { margin-top: 18px; }
.wizard-step-panel .form-submit { display: grid; gap: 15px; }
.wizard-step-panel .form-submit .wizard-back { justify-self: start; }
.hardware-counts { margin-top: 22px; padding-top: 14px; border-top: 1px solid #e4eae7; }
.hardware-count-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px 16px; }
.hardware-count-grid input { padding: 9px 10px; border: 1px solid #d6dfdc; border-radius: 8px; background: #fbfcfb; }
.quote-form input, .quote-form select, .quote-form textarea { transition: border-color .18s ease, box-shadow .18s ease, background .18s ease; }
.quote-form input:focus, .quote-form select:focus, .quote-form textarea:focus { border-color: #4d8790; box-shadow: 0 0 0 3px rgba(77,135,144,.11); }
.choice-card { border-radius: 10px; transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease; }
.choice-card:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(8,26,43,.08); }
.choice-card.is-selected { border-color: #4d8790; background: #eef6f4; box-shadow: inset 0 0 0 1px #4d8790; }
.square-feet-result { display: flex; justify-content: space-between; align-items: center; padding: 15px 17px; border: 1px solid #dce7e3; border-radius: 10px; background: #f4f8f6; }
.square-feet-result strong { font-size: 21px; transition: color .2s ease, transform .2s ease; }
.estimated-price-panel { border-radius: 14px; box-shadow: 0 12px 32px rgba(8,26,43,.06); }
.estimated-price-value.has-price { animation: price-reveal .24s ease both; }
.estimated-price-value.estimate-pending { color: #687a7d; font-size: 15px; }
@keyframes price-reveal { from { opacity: .5; transform: translateY(5px) scale(.99); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (max-width: 600px) { .quote-form { padding: 22px 17px; border-radius: 16px; } .wizard-progress { margin-bottom: 22px; } #wizard-step-list button small { font-size: 6px; letter-spacing: 0; } #wizard-step-list button span { width: 22px; height: 22px; } .hardware-count-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .wizard-actions { position: sticky; bottom: 0; z-index: 3; padding: 12px 0 max(12px, env(safe-area-inset-bottom)); background: rgba(255,255,255,.97); } .wizard-next { min-width: 150px; } }
@media (prefers-reduced-motion: reduce) { .wizard-step-panel.is-entering, .estimated-price-value.has-price { animation: none; } *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; } }
.wizard-step-panel.form-submit { display: grid; gap: 16px; align-content: start; }
.wizard-step-panel.form-submit > .wizard-panel-heading { grid-row: 1; }
.wizard-step-panel.form-submit > .estimated-price-panel { grid-row: 2; }
.wizard-step-panel.form-submit > .wizard-back { grid-row: 3; justify-self: start; }
.wizard-step-panel.form-submit > .form-step { display: none; }
.wizard-step-panel.form-submit > button[type="submit"] { grid-row: 4; }

/* Bruno's quotation experience. Scoped to keep shared payment/admin styles intact. */
.quotation-page { --navy: #062148; --navy-soft: #102d52; --ink: #172c43; --white: #fff; --blue: #a6becf; background: #f6f7f9; color: var(--ink); }
.quotation-page .container { width: min(1120px, calc(100% - 64px)); }
.quotation-page .quote-header { background: var(--navy); border-bottom: 1px solid rgba(255,255,255,.15); }
.quotation-page .header-inner { min-height: 112px; gap: 24px; }
.quotation-page .brand { flex-shrink: 0; padding: 10px 15px; background: white; border-radius: 2px; }
.quotation-page .official-logo { display: block; width: 220px; max-width: 100%; height: auto; }
.quotation-page .header-detail { display: grid; gap: 7px; text-align: right; color: #d8e2ec; font-size: 12px; }
.quotation-page .header-detail > span { font-family: var(--serif); font-size: 17px; }
.quotation-page .header-contact { color: #fff; font-size: 12px; padding: 6px 0; }
.quotation-page .quote.section-pad { padding: 52px 0 72px; }
.quotation-page .quote-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; }
.quotation-page .quote-intro { position: static; padding: 0; text-align: center; }
.quotation-page .quote-intro .eyebrow { margin: 0 0 17px; color: #526881; font: 600 11px var(--sans); letter-spacing: .19em; }
.quotation-page .quote-intro h1 { max-width: none; font-size: clamp(40px, 5.5vw, 66px); line-height: 1.15; letter-spacing: -.045em; font-family: var(--serif); }
.quotation-page .quote-intro h1 em { font-style: italic; }
.quotation-page .quote-intro > p:not(.eyebrow) { max-width: 560px; margin: 18px auto 0; font-size: 14px; color: #637185; line-height: 1.8; }
.quotation-page .intro-caption { display: flex; justify-content: center; align-items: center; gap: 18px; margin-top: 22px; color: #62748a; font-size: 10px; text-transform: uppercase; letter-spacing: .14em; }
.quotation-page .intro-caption span + span { border-left: 1px solid #bac7d4; padding-left: 18px; }
.quotation-page .quote-form { min-width: 0; padding: 32px 42px 36px; border: 1px solid #dce3eb; border-radius: 5px; background: white; box-shadow: 0 18px 64px #06214808; scroll-margin-top: 16px; }
.quotation-page .wizard-progress { padding-bottom: 24px; margin-bottom: 30px; border-color: #e3e8ee; }
.quotation-page .wizard-progress-meta { color: #62748a; font-family: var(--sans); font-size: 10px; }
.quotation-page .wizard-progress-meta strong { font-size: 11px; }
.quotation-page .wizard-progress-track { height: 2px; background: #e4eaf0; margin: 16px 0 20px; }
.quotation-page .wizard-progress-track span { background: var(--navy); }
.quotation-page #wizard-step-list { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.quotation-page #wizard-step-list button { min-height: 60px; gap: 8px; color: #68798a; }
.quotation-page #wizard-step-list button span { width: 30px; height: 30px; font: 500 11px var(--sans); border-color: #c9d3de; }
.quotation-page #wizard-step-list button small { font: 500 10px/1.45 var(--sans); letter-spacing: 0; white-space: normal; overflow: visible; }
.quotation-page #wizard-step-list button.is-current { color: var(--navy); }
.quotation-page #wizard-step-list button.is-current small { font-weight: 700; }
.quotation-page #wizard-step-list button.is-complete { color: var(--navy); }
.quotation-page #wizard-step-list button.is-complete span { background: #eaf0f6; color: var(--navy); border-color: #b8c8d8; }
.quotation-page .wizard-step-panel { padding: 0; border: 0; }
.quotation-page .wizard-panel-heading { margin-bottom: 24px; outline: none; }
.quotation-page .wizard-panel-heading > span { color: #718197; font: 600 10px var(--sans); letter-spacing: .16em; }
.quotation-page .wizard-panel-heading h2 { margin-top: 7px; font-size: clamp(28px, 3vw, 36px); }
.quotation-page .wizard-description { margin: 12px 0 0; color: #657489; font-size: 13px; line-height: 1.7; }
.quotation-page .service-picker-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.quotation-page .service-options { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.quotation-page .choice-card { color: var(--navy); background: #fff; border: 1px solid #d3dce6; border-radius: 4px; min-height: 56px; padding: 16px 18px; gap: 8px; }
.quotation-page .choice-card:hover { border-color: #7189a4; background: #f8fafc; box-shadow: 0 8px 24px #0621480a; }
.quotation-page .choice-card.is-selected { color: var(--navy); border-color: var(--navy); background: #f0f4f8; box-shadow: inset 0 0 0 1px var(--navy); }
.quotation-page .choice-card-title { font-size: 14px; font-weight: 600; line-height: 1.5; }
.quotation-page .choice-card-description { display: block; color: #637389; font-size: 12px; line-height: 1.7; font-weight: 400; }
.quotation-page .service-card { display: grid; justify-content: stretch; align-content: start; padding: 0 0 22px; gap: 0; overflow: hidden; }
.quotation-page .project-card-image { width: 100%; height: 220px; object-fit: cover; order: -1; border-bottom: 1px solid #e1e7ee; }
.quotation-page .service-card .choice-card-index { margin: 19px 20px 6px; color: #647b96; font-family: var(--sans); }
.quotation-page .service-card .choice-card-title, .quotation-page .service-card .choice-card-description { margin: 0 20px; }
.quotation-page .service-card .choice-card-title { font-family: var(--serif); font-size: 24px; margin-bottom: 6px; }
.quotation-page .service-card .choice-card-arrow { top: 14px; right: 14px; display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid #dbe3ed; border-radius: 50%; color: var(--navy); background: #fff; }
.quotation-page .service-card.is-selected .choice-card-arrow { color: white; background: var(--navy); border-color: var(--navy); }
.quotation-page .choice-list { gap: 12px; }
.quotation-page .choice-list .choice-card { padding: 15px 36px 15px 16px; }
.quotation-page .selection-indicator { display: grid; place-items: center; position: absolute; right: 10px; top: 10px; width: 20px; height: 20px; border: 1px solid #bfccda; border-radius: 50%; color: transparent; background: #fff; font-size: 12px; }
.quotation-page .is-selected .selection-indicator { color: white; background: var(--navy); border-color: var(--navy); }
.quotation-page .choice-list .model-card { padding: 0 0 20px; overflow: hidden; justify-content: flex-start; gap: 9px; }
.quotation-page .model-card-image { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-bottom: 1px solid #dbe3ec; margin-bottom: 10px; }
.quotation-page .model-card > .choice-card-title, .quotation-page .model-card > .choice-card-description, .quotation-page .model-card-caption { margin: 0 20px; }
.quotation-page .model-card > .choice-card-title { font-family: var(--serif); font-size: 22px; }
.quotation-page .model-card-caption { color: #69778a; font-size: 10px; line-height: 1.6; }
.quotation-page .model-card .selection-indicator { width: 28px; height: 28px; right: 14px; top: 14px; }
.quotation-page .model-service-note { padding: 28px; border: 1px solid #d9e3ed; background: #f5f8fb; color: #536780; line-height: 1.8; }
.quotation-page [hidden] { display: none !important; }
.quotation-page .quote-form label { color: #50647d; font: 600 11px var(--sans); letter-spacing: .04em; margin: 20px 0 10px; }
.quotation-page .quote-form input:not([type="file"]), .quotation-page .quote-form #city, .quotation-page .quote-form textarea { border: 1px solid #cbd6e2; border-radius: 3px; padding: 13px 14px; min-height: 50px; background: #fcfdfe; font-size: 16px; }
.quotation-page .quote-form input:focus, .quotation-page .quote-form select:focus, .quotation-page .quote-form textarea:focus { border-color: var(--navy); box-shadow: 0 0 0 3px #06214814; }
.quotation-page .quote-form .form-grid { gap: 4px 24px; }
.quotation-page .hardware-counts { margin-top: 26px; border-color: #e1e7ee; }
.quotation-page .hardware-counts .measurement-title { margin-top: 10px; }
.quotation-page .form-help, .quotation-page .measurement-note { color: #66778b; font-size: 12px; line-height: 1.7; }
.quotation-page .square-feet-result { padding: 20px; border: 1px solid #d6e0eb; border-radius: 3px; background: #f2f6fa; color: #5a6f87; }
.quotation-page .upload-zone { padding: 32px 20px; border: 1px dashed #9aacc1; border-radius: 4px; background: #f8fafc; }
.quotation-page .upload-zone:hover { background: #f0f4f8; border-color: var(--navy); }
.quotation-page .upload-icon { color: var(--navy); border-color: #c9d5e3; background: white; }
.quotation-page .upload-title { font-family: var(--serif); font-size: 23px; color: var(--navy); text-transform: none; letter-spacing: 0; }
.quotation-page .upload-caption { color: #5b6e85; }
.quotation-page .upload-action { background: var(--navy); color: white; padding: 14px 22px; border-radius: 2px; }
.quotation-page .photos-selected { border-color: var(--navy); background: #f0f4f8; }
.quotation-page .wizard-actions { margin-top: 30px; padding-top: 22px; border-color: #e0e7ee; }
.quotation-page .button, .quotation-page .wizard-back { min-height: 52px; border-radius: 3px; font-size: 11px; }
.quotation-page .wizard-next { min-width: 180px; justify-content: space-between; padding-inline: 24px; background: var(--navy); color: white; }
.quotation-page .wizard-back { padding-inline: 24px; color: var(--navy); border-color: #c9d5e2; background: white; }
.quotation-page .estimated-price-panel { border-radius: 4px; border: 1px solid #d8e2ed; background: #f2f6fa; padding: 40px 26px; margin-bottom: 4px; box-shadow: none; }
.quotation-page .estimated-price-label { color: #526982; font-family: var(--sans); }
.quotation-page .estimated-price-note { max-width: 530px; color: #5e7087; line-height: 1.8; }
.quotation-page .estimated-price-value, .quotation-page .estimated-price-value.estimate-pending { color: var(--navy); }
.quotation-page button[type="submit"] { width: 100%; justify-content: center; padding: 20px 24px; background: var(--navy); color: white; font-size: 12px; cursor: pointer; }
.quotation-page button:disabled { cursor: default; }
.quotation-page button[type="submit"]:disabled { opacity: .6; }
.quotation-page .form-status { color: #526982; overflow-wrap: anywhere; }
.quotation-page .form-status-error { color: #a32626; }
.quotation-page .choice-list-error .choice-card, .quotation-page .quote-form .field-error { border-color: #a32626; }
.quotation-page :is(a, button, input, select, textarea):focus-visible { outline: 3px solid #7396bd; outline-offset: 4px; }
.quotation-page .site-footer .footer-inner { min-height: 128px; gap: 24px; padding-block: 24px; }
.quotation-page .site-footer .official-logo { width: 160px; }
.quotation-page .site-footer p, .quotation-page .site-footer a:not(.brand) { font-size: 11px; }
.quotation-page .floating-contact { position: static; display: block; margin: 0 auto 32px; border: 1px solid #c5d2e1; border-radius: 3px; background: white; color: var(--navy); box-shadow: none; min-height: 48px; }
.quotation-page .contact-popover { bottom: 24px; border-radius: 4px; }
@media (max-width: 900px) {
  .quotation-page .container { width: calc(100% - 40px); }
  .quotation-page .quote-form { padding: 28px; }
  .quotation-page .project-card-image { height: 180px; }
  .quotation-page .service-options { gap: 12px; }
  .quotation-page .service-card .choice-card-title { font-size: 21px; }
  .quotation-page .choice-list-compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .quotation-page .container { width: calc(100% - 28px); }
  .quotation-page .header-inner { min-height: 92px; gap: 10px; }
  .quotation-page .brand { padding: 8px 10px; }
  .quotation-page .official-logo { width: 166px; }
  .quotation-page .header-detail > span { display: none; }
  .quotation-page .header-contact { display: block; max-width: 120px; font-size: 10px; line-height: 1.8; }
  .quotation-page .quote.section-pad { padding: 32px 0; }
  .quotation-page .quote-grid { gap: 26px; }
  .quotation-page .quote-intro > p:not(.eyebrow) { font-size: 13px; }
  .quotation-page .quote-intro .eyebrow { font-size: 9px; }
  .quotation-page .intro-caption { font-size: 8px; gap: 12px; letter-spacing: .1em; }
  .quotation-page .intro-caption span + span { padding-left: 12px; }
  .quotation-page .quote-form { padding: 22px 16px; }
  .quotation-page .wizard-progress { margin-bottom: 24px; padding-bottom: 14px; }
  .quotation-page #wizard-step-list { gap: 0; }
  .quotation-page #wizard-step-list button { min-height: 44px; justify-content: stretch; align-content: center; }
  .quotation-page #wizard-step-list button small { display: none; }
  .quotation-page #wizard-step-list button span { width: 27px; height: 27px; }
  .quotation-page .wizard-progress-track { margin-bottom: 6px; }
  .quotation-page .wizard-panel-heading h2 { font-size: 30px; }
  .quotation-page .service-options { grid-template-columns: 1fr; gap: 16px; }
  .quotation-page .project-card-image { height: 210px; }
  .quotation-page .service-card { padding-bottom: 20px; }
  .quotation-page .service-card .choice-card-title { font-size: 25px; }
  .quotation-page [data-choice-list-for="product"] { grid-template-columns: 1fr; gap: 18px; }
  .quotation-page .model-card-image { aspect-ratio: 4 / 3; }
  .quotation-page .choice-card-title { font-size: 12px; }
  .quotation-page .wizard-actions { position: sticky; z-index: 3; bottom: 0; padding: 14px 0 max(14px, env(safe-area-inset-bottom)); margin-top: 24px; background: #fff; }
  .quotation-page .wizard-next { min-width: 0; flex: 1; max-width: 240px; }
  .quotation-page .wizard-back { padding-inline: 18px; }
  .quotation-page .hardware-count-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quotation-page .quote-form .form-grid { gap: 2px 12px; }
  .quotation-page .measurement-header { flex-wrap: wrap; gap: 12px; }
  .quotation-page .estimated-price-panel { padding: 28px 18px; }
  .quotation-page .site-footer .footer-inner { justify-content: center; flex-direction: column; text-align: center; }
  .quotation-page .site-footer p { margin: 0; }
}

.quotation-page .wizard-validation { margin: 16px 0 0; padding: 12px 14px; border-left: 2px solid #a32626; background: #fff6f5; color: #932525; font-size: 13px; }

/* Large estimate, shared by Photos & Details and the final request step. */
.quotation-page .estimated-price-panel { margin-top: 30px; padding: clamp(28px, 5vw, 52px) 22px; border-top: 3px solid var(--navy); background: #f0f4f9; }
.quotation-page .estimated-price-label { color: var(--navy); font-size: 12px; font-weight: 700; letter-spacing: .16em; }
.quotation-page .estimated-price-value.has-price { color: var(--navy); font-size: clamp(32px, 5vw, 68px); line-height: 1.2; overflow-wrap: anywhere; }
.quotation-page .estimated-price-value.estimate-pending { font-size: clamp(20px, 3vw, 28px); line-height: 1.5; }
.quotation-page .estimated-deposit-label { margin: 28px 0 10px; color: #50647d; font-size: 11px; font-weight: 700; letter-spacing: .12em; }
.quotation-page .estimated-deposit-value { margin: 0; color: #60728a; font-size: 14px; }
.quotation-page .estimated-deposit-value.has-price { color: var(--navy); font: 500 clamp(25px, 3.8vw, 38px)/1.3 var(--serif); }
.quotation-page .estimated-deposit-note { margin: 10px auto 0; max-width: 500px; color: #60728a; font-size: 11px; line-height: 1.7; }
.quotation-page .submit-request-heading { margin: 14px 0 0; color: var(--navy); font-size: 13px; }
.quotation-page .wizard-step-panel.form-submit > .wizard-back { grid-row: 2; }
.quotation-page .wizard-step-panel.form-submit > .estimated-price-panel { grid-row: 3; margin-top: 8px; }
.quotation-page .wizard-step-panel.form-submit > .submit-request-heading { grid-row: 4; }
.quotation-page .wizard-step-panel.form-submit > button[type="submit"] { grid-row: 5; }

/* Project collection and native model-selection dialog. */
.quotation-page .service-options { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.quotation-page .service-card { isolation: isolate; transition: border-color .2s, box-shadow .2s, transform .2s; }
.quotation-page .service-card:hover { transform: translateY(-3px); box-shadow: 0 14px 32px #06214812; }
.quotation-page .service-card .project-card-image { height: 260px; transition: filter .2s; }
.quotation-page .service-card:hover .project-card-image { filter: brightness(1.04); }
.quotation-page .category-availability { margin: 12px 20px 0; color: #65758a; font-size: 10px; line-height: 1.6; }
.quotation-page .project-card-placeholder { position: relative; display: grid; place-items: center; height: 260px; width: 100%; order: -1; overflow: hidden; background: linear-gradient(120deg,#e8eef4,#bdcede); border-bottom: 1px solid #dae2ec; }
.quotation-page .project-card-placeholder::before { content: ''; position: absolute; inset: 28px 24%; border: 2px solid #7d94aa; box-shadow: inset 0 0 35px #ffffff77; transform: skewY(-4deg); }
.quotation-page .project-card-placeholder::after { content: ''; position: absolute; width: 2px; height: 35px; left: 68%; background: #506981; }
.quotation-page .project-card-placeholder > span { font-size: 10px; letter-spacing: .18em; padding: 10px; background: #f0f5f9; color: #526a81; z-index: 1; }
.quotation-page .general-glass-card { grid-column: 1 / -1; grid-template-columns: 160px minmax(0,1fr); padding: 0 30px 0 0; align-content: center; }
.quotation-page .general-glass-card .project-card-image { grid-column: 1; grid-row: 1 / 4; width: 160px; height: 150px; }
.quotation-page .general-glass-card :is(.choice-card-index,.choice-card-title,.choice-card-description) { grid-column: 2; }
.quotation-page .general-glass-card .choice-card-description { margin-bottom: 16px; }
.quotation-page .project-dialog { width: min(940px, calc(100% - 48px)); max-height: min(90dvh, 1000px); padding: 0 30px; border: 1px solid #cdd8e5; border-radius: 8px; color: var(--navy); background: #fff; box-shadow: 0 28px 100px #00142a66; overflow: auto; overscroll-behavior: contain; }
.quotation-page .project-dialog[open] { animation: project-panel-enter .22s ease-out both; }
.quotation-page .project-dialog::backdrop { background: #03183199; backdrop-filter: blur(2px); }
.quotation-page .project-dialog-top { position: sticky; top: 0; z-index: 4; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 0; background: #fff; border-bottom: 1px solid #e2e9f0; }
.quotation-page .project-dialog-top .eyebrow { color: #5d738d; margin: 0; font-size: 10px; }
.quotation-page .dialog-close { display: grid; place-items: center; width: 46px; height: 46px; flex-shrink: 0; border: 1px solid #d6e0eb; border-radius: 50%; background: white; color: var(--navy); font-size: 26px; cursor: pointer; }
.quotation-page .project-dialog-intro { display: flex; align-items: center; gap: 26px; padding: 26px 0; }
.quotation-page .dialog-project-image { width: 190px; height: 150px; object-fit: cover; border-radius: 3px; }
.quotation-page .project-dialog h2 { font: 500 clamp(30px,4vw,44px)/1.2 var(--serif); }
.quotation-page #project-dialog-description { color: #62758b; line-height: 1.75; font-size: 13px; margin: 12px 0 0; }
.quotation-page .project-dialog-fields { min-width: 0; padding-bottom: 16px; }
.quotation-page .project-dialog-fields .model-card-image { aspect-ratio: 4 / 3; }
.quotation-page .dialog-actions { position: sticky; bottom: 0; z-index: 3; display: flex; justify-content: space-between; gap: 14px; padding: 18px 0 max(18px,env(safe-area-inset-bottom)); border-top: 1px solid #e0e7ef; background: #fff; }
.quotation-page .dialog-continue { min-width: 190px; justify-content: space-between; cursor: pointer; }
.quotation-page .dialog-feedback { padding: 12px; background: #fff4f2; border-left: 2px solid #a32626; color: #932525; font-size: 13px; }
@keyframes project-panel-enter { from { opacity: 0; transform: translateY(12px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media(max-width:600px) {
 .quotation-page .service-options { grid-template-columns: minmax(0,1fr); gap: 18px; }
 .quotation-page .service-card .project-card-image, .quotation-page .project-card-placeholder { height: 230px; }
 .quotation-page .general-glass-card { grid-template-columns: 100px minmax(0,1fr); padding-right: 12px; }
 .quotation-page .general-glass-card .project-card-image { width: 100px; height: 175px; }
 .quotation-page .general-glass-card .choice-card-title { font-size: 23px; }
 .quotation-page .general-glass-card .choice-card-arrow { display: none; }
 .quotation-page .project-dialog { margin: auto 0 0; width: 100%; max-width: none; max-height: 94dvh; padding: 0 18px; border-radius: 14px 14px 0 0; }
 .quotation-page .project-dialog-intro { gap: 16px; flex-direction: column; align-items: stretch; padding: 20px 0; }
 .quotation-page .dialog-project-image { width: 100%; height: 170px; }
 .quotation-page .project-dialog-fields [data-choice-list-for="product"] { grid-template-columns: 1fr; }
 .quotation-page .dialog-continue { min-width: 0; flex: 1; }
 .quotation-page .dialog-actions .wizard-back { padding-inline: 16px; }
}
@media(prefers-reduced-motion:reduce) { .quotation-page .project-dialog[open] { animation: none; } .quotation-page .service-card, .quotation-page .service-card .project-card-image { transition: none; } }

/* Sales entrance: original local project photography, no pricing behavior. */
.quotation-page .sales-hero { position: relative; isolation: isolate; overflow: hidden; min-height: 640px; background: var(--navy); color: #fff; }
.quotation-page .hero-media { position: absolute; inset: 0; overflow: hidden; }
.quotation-page .hero-project-photo { width: 100%; height: 100%; object-fit: cover; object-position: 65% 50%; animation: hero-image-drift 18s ease-out both; }
.quotation-page .hero-media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,#061c36ed 0%,#061c36c7 32%,#061c3655 66%,#061c3622),linear-gradient(0deg,#061c3677,transparent 50%); }
.quotation-page .hero-copy { position: relative; max-width: none; margin: 0 auto; padding-block: 80px 92px; }
.quotation-page .hero-copy > * { max-width: 570px; animation: hero-copy-enter .8s ease-out both; }
.quotation-page .hero-copy .eyebrow { color: #c4d9ea; font-size: 11px; letter-spacing: .2em; margin-bottom: 24px; }
.quotation-page .hero-copy h1 { color: #fff; font: 500 clamp(48px,5.6vw,82px)/1.08 var(--serif); letter-spacing: -.045em; margin: 0 0 26px; }
.quotation-page .hero-copy h1 em { color: #d1e2ef; font-weight: 500; }
.quotation-page .hero-lead { color: #fff; max-width: 430px; font-size: 17px; line-height: 1.8; margin: 0 0 12px; }
.quotation-page .hero-description { color: #d0dbe6; max-width: 420px; font-size: 13px; line-height: 1.8; margin: 0 0 30px; }
.quotation-page .hero-start { display: inline-flex; align-items: center; gap: 48px; min-height: 58px; padding: 18px 25px; background: #fff; color: #082447; border: 1px solid #fff; transition: background .2s, box-shadow .2s; }
.quotation-page .hero-start:hover { background: #e7f0f7; box-shadow: 0 8px 28px #00142744; }
.quotation-page .hero-start span { transition: transform .2s; }
.quotation-page .hero-start:hover span { transform: translateX(4px); }
.quotation-page .hero-reassurance { color: #c9d8e5; font-size: 11px; margin: 17px 0 0; }
.quotation-page .hero-photo-caption { position: absolute; right: 36px; bottom: 26px; z-index: 1; color: #fff; font-size: 10px; letter-spacing: .09em; }
.quotation-page .quote-intro h2 { font: 500 clamp(36px,5vw,58px)/1.15 var(--serif); letter-spacing: -.04em; }
.quotation-page #quote { scroll-margin-top: 24px; }
.quotation-page .service-card:not(.general-glass-card) .project-card-image { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: center; transition: transform .6s ease, filter .4s ease; }
.quotation-page [data-value="Shower Doors"] .project-card-image { object-position: 55% 50%; }
.quotation-page [data-value="Mirror"] .project-card-image { object-position: 35% 50%; }
.quotation-page [data-category-info="glass-doors"] .project-card-image { object-position: 50% 68%; }
.quotation-page [data-category-info="commercial-glass"] .project-card-image { object-position: 50% 45%; }
.quotation-page .service-card .choice-card-arrow { transition: transform .25s, background .25s; z-index: 2; }
.quotation-page .service-card.is-selected { border-color: #0b345e; box-shadow: 0 0 0 2px #0b345e,0 12px 28px #061c3614; }
@media(hover:hover) {
 .quotation-page .service-card:not(.general-glass-card):hover .project-card-image { transform: scale(1.035); }
 .quotation-page .service-card:hover .choice-card-arrow { transform: translateX(3px); }
}
.quotation-page .request-confirmation { grid-column: 1 / -1; max-width: 1060px; width: 100%; margin-inline: auto; padding: clamp(28px,5vw,64px); border: 1px solid #d4dfeb; border-top: 4px solid var(--navy); background: #f4f8fc; color: var(--navy); }
.quotation-page .confirmation-mark { display: grid; place-items: center; width: 54px; height: 54px; border: 1px solid #8ca7bc; border-radius: 50%; font-size: 25px; margin-bottom: 24px; }
.quotation-page .request-confirmation .eyebrow, .quotation-page .confirmation-status-label { color: #436382; font-size: 11px; letter-spacing: .15em; margin-bottom: 16px; }
.quotation-page .request-confirmation h2 { font: 500 clamp(42px,6vw,64px)/1.1 var(--serif); margin: 0 0 24px; }
.quotation-page .request-confirmation p { max-width: 660px; line-height: 1.8; }
.quotation-page .confirmation-next { border-block: 1px solid #d5e0eb; padding-block: 22px; margin-block: 26px; }
.quotation-page .confirmation-next h3 { font-size: 17px; }
.quotation-page .confirmation-next p { color: #51677e; font-size: 14px; }
.quotation-page .confirmation-progress { padding: 0; list-style: none; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 16px; }
.quotation-page .confirmation-progress li { display: grid; gap: 12px; color: #637589; font-size: 12px; line-height: 1.6; }
.quotation-page .confirmation-progress li[aria-current] { color: var(--navy); font-weight: 700; }
.quotation-page .confirmation-progress span { font-size: 20px; }
.quotation-page .confirmation-footnote { font-size: 11px; color: #637589; margin-block: 24px; }
@keyframes hero-image-drift { from { transform: scale(1.015) translateX(0); } to { transform: scale(1.065) translateX(-.5%); } }
@keyframes hero-copy-enter { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@media(max-width:767px) {
 .quotation-page .sales-hero { min-height: 0; }
 .quotation-page .hero-media { position: relative; height: clamp(230px,55vw,360px); }
 .quotation-page .hero-media::after { background: linear-gradient(0deg,#061c36bb,transparent 60%); }
 .quotation-page .hero-copy { padding-block: 32px 42px; }
 .quotation-page .hero-copy h1 { font-size: clamp(40px,8.5vw,58px); }
 .quotation-page .hero-lead { font-size: 15px; }
 .quotation-page .hero-start { width: 100%; justify-content: space-between; gap: 15px; }
 .quotation-page .hero-photo-caption { right: 20px; bottom: 16px; font-size: 9px; }
 .quotation-page .confirmation-progress { grid-template-columns: 1fr; gap: 16px; }
 .quotation-page .confirmation-progress li { grid-template-columns: 20px 1fr; align-items: center; }
 .quotation-page .request-confirmation .button { width: 100%; white-space: normal; }
}
@media(prefers-reduced-motion:reduce) {
 .quotation-page .hero-project-photo, .quotation-page .hero-copy > * { animation: none; }
 .quotation-page .hero-start, .quotation-page .hero-start span, .quotation-page .service-card .project-card-image, .quotation-page .service-card .choice-card-arrow { transition: none; }
 .quotation-page .service-card:hover .project-card-image, .quotation-page .service-card:hover .choice-card-arrow, .quotation-page .hero-start:hover span { transform: none; }
}

/* Magazine-led customer presentation. */
.quotation-page { --navy:#071a2d; --navy-soft:#102943; --gold:#e2bd72; --gold-deep:#b38b45; --ink:#13283d; --paper:#f4f1e8; --white:#fff; background:var(--paper); color:var(--ink); }
.quotation-page .container { width:min(1220px,calc(100% - 64px)); }
.quotation-page .quote-header { position:relative; z-index:20; background:#061629; border-bottom:1px solid rgba(226,189,114,.28); }
.quotation-page .header-inner { min-height:94px; display:flex; align-items:center; justify-content:space-between; gap:32px; }
.quotation-page .brand { padding:9px 12px; border:1px solid rgba(226,189,114,.48); background:#fff; }
.quotation-page .official-logo { width:190px; }
.presentation-nav { display:flex; align-items:center; justify-content:center; gap:clamp(18px,3vw,42px); margin-left:auto; }
.presentation-nav a { color:#f5f2e9; font-size:11px; letter-spacing:.08em; text-decoration:none; text-transform:uppercase; }
.presentation-nav a:hover,.presentation-nav a:focus-visible { color:var(--gold); }
.presentation-nav .presentation-nav-quote { padding:14px 18px; border:1px solid var(--gold); color:var(--gold); }
.quotation-page .header-detail { text-align:right; }
.quotation-page .header-detail > span { display:none; }
.quotation-page .header-contact { color:#f6f0e2; font-size:11px; letter-spacing:.04em; }
.quotation-page .menu-toggle { display:none; border:1px solid rgba(226,189,114,.6); color:var(--gold); background:transparent; }
.quotation-page .sales-hero { min-height:min(780px,calc(100svh - 94px)); display:flex; align-items:center; background:#071a2d; }
.quotation-page .hero-media::after { background:linear-gradient(90deg,#061629f5 0%,#061629dc 33%,#06162970 63%,#0616291f 100%),linear-gradient(0deg,#0616299c,transparent 42%); }
.quotation-page .hero-project-photo { object-position:62% 48%; filter:saturate(.82) contrast(1.04); }
.quotation-page .hero-copy { padding-block:clamp(54px,8vw,112px); }
.quotation-page .hero-copy > * { max-width:640px; }
.quotation-page .hero-copy .eyebrow { display:inline-flex; padding:12px 16px; margin-bottom:26px; background:#fff; border:1px solid var(--gold); }
.quotation-page .hero-copy .eyebrow img { display:block; width:clamp(178px,22vw,250px); height:auto; }
.hero-overline { color:var(--gold); font:500 10px/1.6 var(--mono); letter-spacing:.17em; }
.quotation-page .hero-copy h1 { max-width:740px; margin:18px 0 22px; font-size:clamp(48px,7vw,92px); line-height:1.02; }
.quotation-page .hero-copy h1 em { color:var(--gold); }
.quotation-page .hero-lead { font:400 clamp(16px,1.7vw,20px)/1.65 var(--sans); }
.quotation-page .hero-description { max-width:520px; font-size:14px; line-height:1.9; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:26px; }
.quotation-page .hero-start,.quotation-page .scan-cta { min-height:54px; padding:16px 20px; border:1px solid var(--gold); color:#071a2d; background:var(--gold); font:600 10px/1.4 var(--sans); letter-spacing:.12em; }
.quotation-page .hero-start:hover,.quotation-page .scan-cta:hover { background:#f0d393; }
.hero-secondary-link { color:#fff; font-size:12px; text-decoration:none; border-bottom:1px solid rgba(226,189,114,.55); padding:10px 0; }
.hero-secondary-link span { color:var(--gold); padding-left:8px; }
.quotation-page .hero-reassurance { color:#d4dce4; font:10px/1.7 var(--mono); letter-spacing:.05em; }
.quotation-page .hero-photo-caption { right:clamp(18px,4vw,52px); bottom:24px; color:#fff; font:9px var(--mono); letter-spacing:.14em; text-transform:uppercase; }
.services-editorial { padding:clamp(76px,10vw,138px) 0; color:#fff; background:#071a2d; }
.editorial-heading { display:grid; grid-template-columns:1fr minmax(240px,.55fr); align-items:end; gap:50px; margin-bottom:54px; }
.editorial-heading .eyebrow,.process-intro .eyebrow,.scan-content .eyebrow,.referral-copy .eyebrow { color:var(--gold-deep); font:500 10px var(--mono); letter-spacing:.18em; }
.editorial-heading h2,.process-intro h2,.scan-content h2,.referral-copy h2 { margin:16px 0 0; font:500 clamp(42px,6vw,70px)/1.04 var(--serif); letter-spacing:-.035em; }
.editorial-heading h2 em,.process-intro h2 em,.scan-content h2 em,.referral-copy h2 em { color:var(--gold); }
.editorial-heading > p { max-width:410px; margin:0 0 5px; color:#c8d1d8; font-size:13px; line-height:1.9; }
.featured-projects { display:grid; grid-template-columns:1fr 1.08fr 1fr; align-items:stretch; gap:16px; }
.featured-project { position:relative; min-width:0; min-height:430px; overflow:hidden; background:#102943; }
.featured-project::after { position:absolute; inset:0; content:''; background:linear-gradient(0deg,#061629ed 0%,#06162973 34%,transparent 75%); pointer-events:none; }
.featured-project img { display:block; width:100%; height:100%; min-height:430px; object-fit:cover; transition:transform .45s ease; }
.featured-project-wide img { object-position:45% center; }
.featured-project > div { position:absolute; right:24px; bottom:26px; left:24px; z-index:1; }
.featured-project > div > span { color:var(--gold); font:9px var(--mono); letter-spacing:.16em; }
.featured-project h3 { margin:11px 0 14px; color:#fff; font:500 clamp(22px,2.3vw,30px)/1.2 var(--serif); }
.featured-project a { color:#fff; font-size:11px; text-decoration:none; border-bottom:1px solid rgba(226,189,114,.7); padding-bottom:7px; }
.featured-project a span { color:var(--gold); padding-left:6px; }
@media(hover:hover) { .featured-project:hover img { transform:scale(1.035); } }
.service-index { margin-top:58px; padding-top:25px; border-top:1px solid rgba(255,255,255,.18); }
.service-index-label { margin:0 0 15px; color:var(--gold); font:9px var(--mono); letter-spacing:.15em; text-transform:uppercase; }
.service-index-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.service-index-grid a { display:grid; grid-template-columns:38px minmax(0,1fr) 20px; align-items:center; gap:12px; min-height:62px; border-bottom:1px solid rgba(255,255,255,.14); color:#fff; text-decoration:none; }
.service-index-grid a:nth-child(odd) { margin-right:26px; }
.service-index-grid a:nth-child(even) { margin-left:26px; }
.service-index-grid a > span { color:var(--gold); font:9px var(--mono); }
.service-index-grid strong { font:500 13px/1.45 var(--sans); }
.service-index-grid b { color:var(--gold); font-size:16px; font-weight:400; text-align:right; }
.service-index-grid a:hover strong,.service-index-grid a:focus-visible strong { color:var(--gold); }
.service-index-note { margin:18px 0 0; color:#b8c3cc; font-size:11px; line-height:1.7; }
.process-editorial { padding:clamp(76px,10vw,132px) 0; background:#f4f1e8; }
.process-intro { max-width:760px; margin:0 auto 55px; text-align:center; }
.process-intro .eyebrow { color:#816129; }
.process-intro > p:last-child { max-width:500px; margin:20px auto 0; color:#5b6570; font-size:13px; line-height:1.8; }
.process-intro h2 em,.referral-copy h2 em { color:#98743b; }
.process-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; padding:0; margin:0; list-style:none; border-top:1px solid #c8beaa; border-bottom:1px solid #c8beaa; }
.process-steps li { position:relative; padding:30px 24px 34px 0; }
.process-steps li + li { padding-left:24px; border-left:1px solid #c8beaa; }
.process-steps li > span { color:#98743b; font:10px var(--mono); }
.process-steps h3 { margin:23px 0 9px; color:#102943; font:500 28px var(--serif); }
.process-steps p { max-width:225px; margin:0; color:#566472; font-size:12px; line-height:1.75; }
.measurement-disclaimer { display:flex; gap:12px; margin:26px 0 74px; padding:17px 20px; border-left:2px solid #a17b3b; color:#344b5e; background:#eae5d8; font-size:12px; line-height:1.75; }
.measurement-disclaimer span { color:#816129; font-size:16px; }
.journey-preview { padding:clamp(25px,5vw,52px); color:#fff; background:#0b233b; }
.journey-preview > div { display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:12px 32px; }
.journey-preview .eyebrow { grid-column:1 / -1; margin:0; color:var(--gold); font:9px var(--mono); letter-spacing:.16em; }
.journey-preview h3 { margin:0; font:500 clamp(24px,3vw,34px) var(--serif); }
.journey-preview > div > p:last-child { max-width:360px; margin:0; color:#c4cdd5; font-size:11px; line-height:1.7; }
.journey-stages { display:flex; gap:0; overflow-x:auto; padding:27px 0 15px; margin:22px 0 12px; list-style:none; scrollbar-color:#96723c #142e47; scrollbar-width:thin; }
.journey-stages li { flex:0 0 128px; min-height:75px; padding:0 14px; border-left:1px solid rgba(226,189,114,.45); color:#d2d9df; font-size:10px; line-height:1.5; }
.journey-stages li span { display:block; margin-bottom:9px; color:#b4c1cb; font:9px var(--mono); }
.journey-stages li.journey-current { border-color:var(--gold); color:#fff; }
.journey-stages li.journey-current span { color:var(--gold); }
.journey-disclaimer { margin:0; color:#aebbc5; font-size:10px; line-height:1.6; }
.scan-editorial { position:relative; min-height:650px; display:flex; align-items:center; overflow:hidden; color:#fff; background:#071a2d; }
.scan-photo { position:absolute; inset:0 48% 0 0; overflow:hidden; }
.scan-photo::after { position:absolute; inset:0; content:''; background:linear-gradient(90deg,#071a2d20,#071a2d55 65%,#071a2d); }
.scan-photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 43%; filter:saturate(.7); }
.scan-content { position:relative; z-index:1; width:100%; padding-block:82px; padding-left:52%; }
.scan-content .eyebrow { color:var(--gold); }
.scan-content h2 { font-size:clamp(38px,5vw,60px); }
.scan-content > p:not(.eyebrow) { max-width:490px; color:#ced6dc; font-size:13px; line-height:1.8; }
.scan-content ul { display:grid; gap:10px; padding:0; margin:24px 0; list-style:none; color:#f5f1e8; font-size:12px; }
.scan-content li::before { content:'+'; padding-right:12px; color:var(--gold); }
.scan-coming-soon { display:grid; grid-template-columns:max-content 1fr; gap:10px; align-items:start; padding:15px; border:1px solid rgba(226,189,114,.45); background:#0b233b; }
.scan-coming-soon span { color:var(--gold); font:9px var(--mono); letter-spacing:.1em; }
.scan-content .scan-cta { margin-top:8px; text-decoration:none; }
.scan-footnote { color:#bdc9d2!important; font:10px/1.7 var(--mono)!important; }
.quotation-page .quote.section-pad { padding:clamp(68px,9vw,112px) 0; background:#f4f1e8; }
.quotation-page .quote-intro .eyebrow { color:#816129; }
.quotation-page .quote-intro h2 { color:#0b233b; }
.quotation-page .quote-form { border-color:#cfc5b3; border-radius:3px; box-shadow:0 20px 70px #081c3014; }
.quotation-page .quote-form .button-dark,.quotation-page .wizard-next { background:#0b233b; }
.quote-referral-note { display:inline-block; padding:10px 14px; border-left:2px solid #ad8546; color:#573f1c!important; background:#eae2d1; font:11px var(--mono)!important; }
.custom-quote-selection { display:grid; gap:9px; margin:0 0 22px; padding:18px; border-left:3px solid #a47b3c; background:#f2eee4; }
.custom-quote-selection[hidden] { display:none; }
.custom-quote-selection .eyebrow { color:#775a2c; font:9px var(--mono); letter-spacing:.12em; }
.custom-quote-selection strong { color:#112b44; font:500 22px var(--serif); }
.custom-quote-selection > span:last-of-type { color:#4d5d6b; font-size:12px; line-height:1.7; }
.custom-quote-selection button { justify-self:start; padding:6px 0; border:0; border-bottom:1px solid #96723c; color:#344b5e; background:transparent; font-size:11px; cursor:pointer; }
.measurement-preliminary-note { margin-top:12px; padding:12px 14px; border-left:2px solid #a17b3b; color:#485b6b; background:#f2eee4; font-size:11px; line-height:1.7; }
.referral-editorial { padding:clamp(62px,8vw,102px) 0; color:#142b42; background:#e6e0d3; }
.referral-layout { display:grid; grid-template-columns:minmax(240px,.75fr) minmax(0,1.25fr); align-items:center; gap:clamp(32px,7vw,90px); }
.referral-copy .eyebrow { color:#816129; }
.referral-copy h2 { font-size:clamp(34px,4.2vw,52px); }
.referral-copy > p:not(.eyebrow) { max-width:440px; color:#4a5b68; font-size:12px; line-height:1.8; }
.referral-copy .commission-note { padding-left:13px; border-left:2px solid #a17b3b; font-size:10px!important; }
.qr-presentation { padding:clamp(20px,3vw,34px); background:#fff; box-shadow:0 14px 50px #071a2d10; }
.qr-heading { margin:0 0 18px; color:#17324d; font:600 10px var(--mono); letter-spacing:.12em; text-align:center; }
.qr-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; }
.qr-card { display:grid; justify-items:center; gap:7px; min-width:0; padding:12px 7px; border:1px solid #e0d8c8; color:#102943; text-decoration:none; text-align:center; }
.qr-card img { width:min(100%,150px); aspect-ratio:1; object-fit:contain; image-rendering:pixelated; }
.qr-card > span { color:#705324; font:600 10px var(--mono); letter-spacing:.13em; }
.qr-card small { color:#607080; font-size:9px; }
.qr-card:hover,.qr-card:focus-visible { border-color:#a17b3b; outline:2px solid transparent; }
.qr-url { margin:16px 0 0; color:#687480; font:9px var(--mono); overflow-wrap:anywhere; text-align:center; }
.quotation-page .site-footer { color:#e9e5dc; background:#061629; }
.quotation-page .site-footer .brand { background:#fff; }
.quotation-page .footer-inner { gap:22px; }
.quotation-page .footer-inner > a:not(.brand) { color:#e9dfc8; }
.quotation-page :focus-visible { outline:3px solid #ba914d; outline-offset:3px; }
.quotation-page[data-quote-mode="custom"] #wizard-step-list { grid-template-columns:repeat(5,minmax(0,1fr)); }
@media(max-width:1000px) {
 .quotation-page .header-inner { gap:18px; }
 .presentation-nav { gap:16px; }
 .presentation-nav a { font-size:9px; }
 .quotation-page .official-logo { width:160px; }
 .featured-project { min-height:370px; }
 .featured-project img { min-height:370px; }
}
@media(max-width:760px) {
 .quotation-page .container { width:min(1220px,calc(100% - 40px)); }
 .quotation-page .header-inner { position:relative; min-height:78px; justify-content:flex-start; }
 .quotation-page .brand { padding:7px 9px; }
 .quotation-page .official-logo { width:148px; }
 .quotation-page .menu-toggle { display:grid; gap:5px; width:43px; height:43px; place-content:center; margin-left:auto; padding:8px; cursor:pointer; }
 .quotation-page .menu-toggle > span:not(.sr-only) { display:block; width:20px; height:1px; background:currentColor; }
 .presentation-nav { position:absolute; top:calc(100% + 1px); right:-20px; left:-20px; display:none; align-items:stretch; gap:0; padding:8px 20px 18px; border-bottom:1px solid rgba(226,189,114,.35); background:#061629; }
 .presentation-nav.is-open { display:flex; flex-direction:column; }
 .presentation-nav a { padding:14px 4px; font-size:10px; }
 .presentation-nav .presentation-nav-quote { text-align:center; }
 .quotation-page .header-detail { margin-left:0; }
 .quotation-page .header-contact { font-size:0; }
 .quotation-page .header-contact::after { content:'Call Bruno'; font-size:10px; white-space:nowrap; }
 .quotation-page .sales-hero { display:block; min-height:0; }
 .quotation-page .hero-media { position:absolute; inset:0; height:auto; }
 .quotation-page .hero-project-photo { object-position:60% center; }
 .quotation-page .hero-media::after { background:linear-gradient(90deg,#061629eb,#061629a8 65%,#06162955),linear-gradient(0deg,#061629d9,transparent 60%); }
 .quotation-page .hero-copy { padding-block:58px 66px; }
 .quotation-page .hero-copy .eyebrow { margin-bottom:20px; padding:9px 12px; }
 .quotation-page .hero-copy .eyebrow img { width:175px; }
 .quotation-page .hero-copy h1 { font-size:clamp(42px,11vw,67px); }
 .quotation-page .hero-lead { max-width:330px; }
 .quotation-page .hero-description { max-width:410px; font-size:12px; }
 .hero-actions { align-items:flex-start; gap:12px 22px; }
 .quotation-page .hero-start { width:auto; min-height:50px; }
 .editorial-heading { grid-template-columns:1fr; gap:20px; margin-bottom:32px; }
 .editorial-heading > p { max-width:500px; }
 .featured-projects { grid-template-columns:1fr 1fr; gap:10px; }
 .featured-project { min-height:330px; }
 .featured-project:first-child { grid-column:1/-1; min-height:420px; }
 .featured-project img { min-height:330px; }
 .featured-project:first-child img { min-height:420px; }
 .featured-project > div { right:15px; bottom:18px; left:15px; }
 .featured-project h3 { font-size:22px; }
 .service-index { margin-top:38px; }
 .service-index-grid a:nth-child(odd) { margin-right:12px; }
 .service-index-grid a:nth-child(even) { margin-left:12px; }
 .service-index-grid a { grid-template-columns:27px minmax(0,1fr) 14px; gap:8px; min-height:66px; }
 .service-index-grid strong { font-size:11px; }
 .process-intro { margin-bottom:36px; }
 .process-steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .process-steps li { padding:22px 14px 24px 0; }
 .process-steps li + li { padding-left:14px; }
 .process-steps li:nth-child(3) { border-left:0; padding-left:0; border-top:1px solid #c8beaa; }
 .process-steps li:nth-child(4) { border-top:1px solid #c8beaa; }
 .measurement-disclaimer { margin-bottom:48px; }
 .journey-preview > div { grid-template-columns:1fr; }
 .journey-stages li { flex-basis:112px; }
 .scan-editorial { min-height:0; display:block; padding-top:255px; }
 .scan-photo { inset:0 0 auto; height:330px; }
 .scan-photo::after { background:linear-gradient(0deg,#071a2d,transparent 58%); }
 .scan-content { padding:20px 0 60px; }
 .scan-content h2 { font-size:clamp(38px,9vw,54px); }
 .scan-coming-soon { grid-template-columns:1fr; }
 .quotation-page .quote.section-pad { padding-block:60px; }
 .quotation-page .quote-form { padding:24px 20px; }
 .referral-layout { grid-template-columns:1fr; gap:25px; }
 .qr-presentation { padding:17px 12px; }
 .qr-cards { gap:7px; }
 .qr-card { padding:8px 4px; }
 .qr-card small { font-size:8px; }
}
@media(max-width:380px) {
 .quotation-page .container { width:calc(100% - 32px); }
 .quotation-page .header-inner { gap:9px; }
 .quotation-page .official-logo { width:124px; }
 .quotation-page .hero-copy { padding-top:43px; }
 .quotation-page .hero-copy h1 { font-size:40px; }
 .quotation-page .hero-reassurance { max-width:270px; font-size:9px; }
 .service-index-grid { grid-template-columns:1fr; }
 .service-index-grid a:nth-child(n) { margin-inline:0; }
 .featured-projects { grid-template-columns:1fr; }
 .featured-project,.featured-project:first-child { min-height:355px; grid-column:auto; }
 .featured-project img,.featured-project:first-child img { min-height:355px; }
 .quotation-page #wizard-step-list button small { font-size:8px; }
}
@media(prefers-reduced-motion:reduce) {
 .featured-project img { transition:none; }
 .featured-project:hover img { transform:none; }
}

/* Selection-aware project reference and current sales contact details. */
.hero-capability-line { max-width:540px; margin:20px 0 0; color:#d9e0e6; font:9px/1.8 var(--mono); letter-spacing:.08em; }
.hero-capability-line span { padding-inline:5px; color:var(--gold); }
.featured-projects { grid-template-columns:repeat(3,minmax(0,1fr)); }
.featured-project-wide { grid-column:auto; }
.featured-project img { min-height:390px; }
.quote-visual-reference { display:grid; grid-template-columns:minmax(100px, .42fr) minmax(0,1fr); align-items:center; gap:22px; max-width:720px; margin:0 auto 28px; padding:13px; border:1px solid #ded6c6; background:#f8f6f0; }
.quote-visual-reference img { display:block; width:100%; height:140px; object-fit:cover; background:#e7e2d8; }
.quote-visual-reference figcaption { display:grid; gap:7px; color:#596a78; font-size:11px; line-height:1.65; }
.quote-visual-reference figcaption strong { color:#17324d; font:500 19px/1.25 var(--serif); }
.estimated-base-value { margin:0 0 19px; color:#617180; font-size:11px; line-height:1.6; }
.estimated-base-value.has-price { color:#253c50; font-weight:600; }
.estimated-breakdown { margin:-10px 0 19px; color:#596a78; font-size:12px; line-height:1.55; }
.footer-sales-contact { display:grid; gap:5px; color:#d8e0e4; font-size:10px; line-height:1.5; }
.footer-sales-contact strong { color:var(--gold); font:9px var(--mono); letter-spacing:.14em; text-transform:uppercase; }
.footer-sales-contact span { color:#fff; }
.quotation-page .footer-sales-contact a { color:#e9dfc8; font-size:10px; overflow-wrap:anywhere; }
.contact-popover .contact-office-label { margin-top:5px; padding-top:10px; border-top:1px solid #e0e4e6; color:#667787; font:9px var(--mono); letter-spacing:.12em; text-transform:uppercase; }
@media(max-width:1000px) {
 .featured-projects { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .featured-project { min-height:340px; }
 .featured-project img { min-height:340px; }
}
@media(max-width:760px) {
 .featured-projects { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .featured-project:first-child { grid-column:1/-1; }
 .footer-sales-contact { justify-items:center; }
 .quote-visual-reference { gap:13px; margin-bottom:22px; }
 .quote-visual-reference img { height:112px; }
}
@media(max-width:380px) {
 .featured-projects { grid-template-columns:1fr; }
 .featured-project:first-child { grid-column:auto; }
 .quote-visual-reference { grid-template-columns:1fr; }
 .quote-visual-reference img { height:165px; }
 .hero-capability-line { max-width:280px; font-size:8px; }
}
@media(prefers-reduced-motion:reduce) {
 .quote-visual-reference img { transition:none; }
}

/* Direct, mobile-first quotation configurator. */
.quote-review-summary { margin:20px 0; padding:20px; border:1px solid #d9e1df; border-radius:9px; background:#f7f9f8; }
.quote-review-summary h3 { margin:0 0 16px; }
.quote-review-summary dl { display:grid; grid-template-columns:minmax(100px,1fr) minmax(0,2fr); gap:10px 16px; font-size:13px; line-height:1.6; }
.quote-review-summary dt { font-weight:700; }
.quote-review-summary dd { margin:0; overflow-wrap:anywhere; }
.quote-review-summary button { margin-top:16px; }
.quote-review-estimate { margin-top:20px; padding-top:16px; border-top:1px solid #d9e1df; }
.quote-review-estimate h4 { margin:0 0 12px; color:var(--navy); }
.quote-review-estimate dl { margin:0; }
.quotation-page .quote.section-pad { padding: clamp(34px,5vw,68px) 0; background:#f3f5f4; }
.quotation-page .quote-grid { display:block; }
.quotation-page .quote-intro { display:none; }
.quotation-page .quote-form { width:min(100%,1040px); margin-inline:auto; padding:clamp(18px,4vw,40px); border:1px solid #d9e1df; border-radius:12px; box-shadow:0 18px 50px #0b233b12; }
.quotation-page .wizard-progress { margin-bottom:24px; padding-bottom:15px; }
.quotation-page #wizard-step-list { gap:4px; }
.quotation-page #wizard-step-list button { min-height:48px; gap:4px; }
.quotation-page #wizard-step-list button span { width:26px; height:26px; }
.quotation-page #wizard-step-list button small { font-size:9px; }
.quotation-page .wizard-panel-heading { margin-bottom:20px; }
.quotation-page .wizard-panel-heading h2 { font-size:clamp(26px,4vw,36px); }
.quotation-page .service-options { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.quotation-page .service-card { border-radius:8px; }
.quotation-page .project-card-image { height:clamp(120px,20vw,210px); }
.quotation-page .choice-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.quotation-page .choice-list .model-card { min-width:0; border-radius:8px; }
.quotation-page .model-card-image { aspect-ratio:1.55; object-fit:contain; padding:8px; background:#f4f6f5; }
.scan-measure-choices { margin:0 0 22px; }
.scan-measure-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.scan-measure-card { display:grid; align-content:start; justify-items:start; gap:9px; min-height:142px; padding:18px; border:1px solid #d3dce6; border-radius:9px; color:#0b233b; background:#fff; text-align:left; cursor:pointer; }
.scan-measure-card > span { display:grid; width:38px; height:38px; place-items:center; border-radius:50%; color:#fff; background:#0b233b; font-size:21px; }
.scan-measure-card strong { font-size:14px; }
.scan-measure-card small { color:#637389; font-size:11px; line-height:1.55; }
.scan-measure-card[aria-pressed="true"] { border-color:#947343; box-shadow:inset 0 0 0 1px #947343; background:#fbf9f4; }
.scan-ai-notice,.scan-photo-status { margin:12px 0 0; padding:12px 14px; border-left:3px solid #b58a48; color:#576879; background:#f5f2eb; font-size:11px; line-height:1.65; }
.scan-ai-notice strong { color:#0b233b; letter-spacing:.04em; }
.scan-photo-status:empty { display:none; }
.measurement-panel { margin-top:18px; padding:20px; border:1px solid #e0e6e4; border-radius:9px; background:#fff; }
.measurement-title { color:#0b233b; font-size:16px; font-weight:700; }
.measurement-fields { gap:14px; }
.measurement-fields input { width:100%; }
.mirror-configuration { margin:0 0 20px; padding:18px; border:1px solid #d9e1df; border-radius:9px; background:#fff; }
.mirror-configuration > p:not(.measurement-title) { color:#637389; font-size:12px; line-height:1.65; }
.mirror-configuration figure { display:grid; grid-template-columns:160px 1fr; align-items:center; gap:15px; margin:14px 0; }
.mirror-configuration img { width:100%; height:105px; object-fit:cover; border-radius:6px; }
.mirror-configuration figcaption { color:#66778b; font-size:10px; line-height:1.5; }
.mirror-configuration select { width:100%; min-height:48px; padding:10px 12px; }
.quotation-page .estimated-price-panel { margin:0; padding:clamp(22px,4vw,38px); border:1px solid #d9e1df; border-top:4px solid #b58a48; border-radius:10px; background:#fff; }
.quotation-page .estimated-price-label { margin-bottom:12px; color:#526982; font-size:12px; }
.quotation-page .estimated-price-value { margin:0 0 10px; font-size:clamp(27px,5vw,40px); line-height:1.15; font-weight:700; }
.quotation-page .estimated-base-value { font-size:15px; }
.quotation-page .estimated-deposit-label { margin-top:22px; }
.quotation-page .estimated-deposit-value { font-size:21px; font-weight:700; }
.quotation-page .estimated-deposit-value.has-price { color:#09274d; font:850 clamp(30px,5.4vw,44px)/1.12 'Manrope',sans-serif; letter-spacing:-.035em; }
.quotation-page .live-estimated-price-panel { position:relative; }
.quotation-page .wizard-step-panel[data-wizard-step="5"] .wizard-actions { margin-top:18px; }
.quotation-page .quote-form .form-grid-contact { grid-template-columns:repeat(2,minmax(0,1fr)); }
.quotation-page .quote-form .form-field { min-width:0; }
.quotation-page .quote-form .wizard-panel-heading h2 { color:#0b233b; }
.quotation-page .quote-form .wizard-description { max-width:650px; }
.quotation-page .wizard-step-panel[data-wizard-step="7"] .estimated-price-panel { margin-bottom:15px; }
@media(max-width:760px) {
 .quotation-page .quote.section-pad { padding:18px 0 38px; }
 .quotation-page .quote-form { width:100%; padding:18px 15px 22px; border-radius:10px; }
 .quotation-page #wizard-step-list { grid-template-columns:repeat(7,minmax(0,1fr)); }
 .quotation-page #wizard-step-list button { min-height:38px; }
 .quotation-page #wizard-step-list button span { width:24px; height:24px; font-size:10px; }
 .quotation-page #wizard-step-list button small { display:none; }
 .quotation-page .service-options,.quotation-page .choice-list { grid-template-columns:1fr; }
 .quotation-page .service-card { grid-template-columns:94px minmax(0,1fr); grid-template-rows:auto auto 1fr; min-height:118px; padding:12px; column-gap:13px; }
 .quotation-page .project-card-image { grid-column:1; grid-row:1/4; width:94px; height:94px; border:0; border-radius:6px; }
 .quotation-page .service-card .choice-card-index,.quotation-page .service-card .choice-card-title,.quotation-page .service-card .choice-card-description { margin:0; }
 .quotation-page .service-card .choice-card-index { grid-column:2; font-size:9px; }
 .quotation-page .service-card .choice-card-title { grid-column:2; font-size:20px; }
 .quotation-page .service-card .choice-card-description { grid-column:2; font-size:11px; }
 .quotation-page .service-card .choice-card-arrow { top:auto; right:12px; bottom:12px; }
 .scan-measure-actions { grid-template-columns:1fr; }
 .scan-measure-card { min-height:110px; grid-template-columns:42px 1fr; grid-template-rows:auto 1fr; align-items:center; column-gap:12px; }
 .scan-measure-card > span { grid-row:1/3; }
 .scan-measure-card strong,.scan-measure-card small { grid-column:2; }
 .measurement-panel { padding:15px; }
 .measurement-fields { grid-template-columns:1fr 1fr; }
 .measurement-header { align-items:end; }
 .quotation-page .quote-form .form-grid-contact { grid-template-columns:1fr; }
 .mirror-configuration figure { grid-template-columns:100px 1fr; }
 .mirror-configuration img { height:82px; }
 .quotation-page .wizard-actions { position:sticky; bottom:0; z-index:4; margin-top:20px; padding:12px 0 max(12px,env(safe-area-inset-bottom)); background:#fff; }
 .quotation-page .wizard-next { min-height:52px; }
 .quotation-page .wizard-step-panel[data-wizard-step="5"] .wizard-actions { bottom:0; }
 .quotation-page .estimated-price-value { font-size:29px; }
}
@media(prefers-reduced-motion:reduce) { .quotation-page .wizard-step-panel.is-entering { animation:none; } }

/* Quotation-first entry using the supplied, individually cropped project board. */
.quotation-page .quote-header { position:relative; z-index:10; color:#08234b; background:#fff; border-bottom:1px solid #d9e2eb; }
.quotation-page .quote-header .header-inner { min-height:76px; }
.quotation-page .quote-header .official-logo { display:block; width:210px; max-width:46vw; height:auto; }
.quotation-page .quote-header .presentation-nav { color:#08234b; }
.quotation-page .quote-header .header-detail { display:none; }
.quotation-page .sales-hero.quote-entry { display:block; min-height:0; }
.quote-entry { min-height:0; padding:26px 0 30px; color:#10274a; background:#fff; }
.quote-entry-inner { width:min(1500px,calc(100% - 28px)); }
.quote-entry .hero-overline { margin:0 0 5px; color:#49708d; font:600 10px var(--mono); letter-spacing:.12em; }
.quote-entry h1 { max-width:none; font-size:clamp(31px,4.3vw,54px); letter-spacing:-.035em; }
.quote-entry .hero-lead { max-width:760px; margin:8px 0 14px; color:#475b75; font-size:15px; }
.quote-entry .hero-start { min-height:48px; padding:13px 21px; color:white; background:#09274d; border-radius:4px; font-size:11px; }
.entry-categories { display:grid; gap:10px; margin-top:22px; }
.entry-category { padding:7px 9px 9px; border-radius:10px; background:#eef6ff; }
.entry-category h2 { margin:0 0 6px; padding:3px 7px; font:700 20px/1.2 var(--sans); letter-spacing:-.02em; text-transform:uppercase; }
.entry-mirrors { background:#fff5e4; }
.entry-architectural { background:#e4f8ed; }
.entry-card-grid { display:grid; gap:8px; }
.entry-shower-grid { grid-template-columns:repeat(6,minmax(0,1fr)); }
.entry-mirror-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.entry-glass-grid { grid-template-columns:repeat(5,minmax(0,1fr)); }
.entry-card { display:grid; grid-template-rows:auto auto 1fr; align-content:start; min-width:0; padding:0 0 8px; overflow:hidden; border:1px solid #dce7ef; border-radius:8px; color:#10274a; text-align:left; background:linear-gradient(145deg,#fff,#edf6ff); cursor:pointer; transition:transform .16s ease,box-shadow .16s ease; }
.entry-card:hover,.entry-card:focus-visible { transform:translateY(-2px); box-shadow:0 5px 18px #09274d20; outline:3px solid #6894bd; outline-offset:1px; }
.entry-mirrors .entry-card { background:linear-gradient(145deg,#fff,#fff5e9); }
.entry-architectural .entry-card { background:linear-gradient(145deg,#fff,#edfbf1); }
.entry-card img { display:block; width:100%; aspect-ratio:1.48; object-fit:cover; background:#d9e3e9; }
.entry-card strong { padding:6px 8px 0; font-size:13px; line-height:1.25; }
.entry-card span { padding:3px 8px 0; color:#435773; font-size:11px; line-height:1.35; }
@media(max-width:900px) { .entry-shower-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } .entry-mirror-grid,.entry-glass-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .entry-card img { aspect-ratio:1.8; } }
@media(max-width:560px) { .quotation-page .quote-header .header-inner { min-height:62px; } .quotation-page .quote-header .official-logo { width:175px; } .quote-entry { padding:18px 0 20px; } .quote-entry-inner { width:calc(100% - 20px); } .quote-entry h1 { font-size:34px; } .quote-entry .hero-lead { font-size:13px; line-height:1.5; } .entry-categories { gap:8px; margin-top:14px; } .entry-category { padding:6px; } .entry-category h2 { font-size:16px; } .entry-card-grid { gap:6px; } .entry-card img { aspect-ratio:1.45; } .entry-card strong { padding:5px 6px 0; font-size:12px; } .entry-card span { padding:3px 6px 0; font-size:10px; line-height:1.3; } }
