.theme-final {
  --steel-dark: #828b98;
  --steel-mid: #aab2be;
  --steel-highlight: #c0c7d0;
  --steel-groove: #28324028;
  --steel-grain: #ffffff20;
  --quote-panel: #0d2033;
  --testimonial-panel: #061423;
}

.theme-final .quote {
  width: min(100% - 2rem, 90rem);
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  align-items: stretch;
  gap: clamp(1rem, 2.5vw, 2.25rem);
  padding-block: clamp(1.75rem, 3vw, 3rem);
}

.theme-final .quote-panel {
  min-width: 0;
  padding: clamp(1rem, 2.5vw, 2.25rem);
  background: var(--quote-panel);
  border: 1px solid var(--line);
  border-top: 3px solid var(--theme-edge);
  border-radius: .75rem;
}

.quote-contact {
  display: flex;
  flex-direction: column;
  align-self: center;
  min-width: 0;
  gap: 1.875rem;
}
.quote-feedback:not(:has(.testimonial-preview, #quote-testimonials:not([hidden]))) { display: none; }
.quote-feedback-intro {
  display: flex;
  align-items: center;
  gap: .65rem;
  margin: 0 0 .75rem;
  color: var(--muted);
  font-size: 1rem;
  font-weight: 600;
}
.quote-feedback-intro::before {
  content: '';
  flex: 0 0 1.25rem;
  height: 2px;
  background: var(--theme-edge);
}
.testimonial-preview,
#quote-testimonials {
  padding: 1.25rem;
  border: 1px solid var(--line);
  border-left: 3px solid var(--theme-edge);
  border-radius: .55rem;
  background: var(--testimonial-panel);
  box-shadow: 0 .4rem 1rem #0003;
}
.testimonial-preview h3 { margin: 0; color: var(--green); font-size: 1rem; }
.testimonial-preview p { margin: .75rem 0 0; }
.testimonial-preview-note { color: var(--muted); font-size: .9rem; }

@media (min-width: 52.01rem) {
  .quote-feedback-intro { font-size: 1.0625rem; }
  .testimonial-preview,
  #quote-testimonials { min-height: 10.625rem; padding: 1.5rem; }
}
.quote-contact-details > p { margin: 0 0 .75rem; }
.quote-feedback:has(.testimonial-preview, #quote-testimonials:not([hidden])) + .quote-contact-details {
  margin-block-start: 67px;
}
@media (width > 52rem) {
  /* Keep the centered column's layout height stable as the contact group moves down. */
  .quote-feedback:has(.testimonial-preview, #quote-testimonials:not([hidden])) + .quote-contact-details {
    margin-block-end: -67px;
  }
}
.quote-contact-details strong {
  color: var(--theme-metal);
  font-size: 1.1875rem;
  font-weight: 600;
  line-height: 1.86rem;
}
@media (width > 52rem) {
  .quote-contact-details strong { font-size: 1.375rem; }
}
.quote-contact-details .quote-reassurance { margin: .9rem 0 0; }
.quote-call { margin-top: .45rem; font-size: 1.1rem; }

#quote-title {
  display: flex;
  align-items: center;
  gap: .7rem;
  font-size: clamp(1.6rem, 3vw, 2.65rem);
  line-height: 1.1;
  text-transform: uppercase;
}
#quote-title svg { width: 1.15em; height: 1.15em; flex: none; color: var(--green); }
#quote-title em { color: var(--green); font-style: normal; }
.quote-form-intro { margin-top: .75rem; }
.theme-final .quote :is(input, select, textarea) { border-color: var(--steel-dark); }
#local-quote-notice { padding: .8rem 1rem; background: var(--navy); border-left: 3px solid var(--theme-edge); border-radius: .25rem; }
.quote-submit { min-width: min(100%, 13rem); text-transform: uppercase; }

@media (max-width: 52rem) {
  .theme-final .quote { grid-template-columns: minmax(0, 1fr); }
  .quote-contact { align-self: start; }

  .theme-final .services summary {
    display: grid;
    grid-template-rows: 2rem 3lh 1lh;
    justify-content: stretch;
    justify-items: center;
    min-height: 0;
    line-height: 1.25;
  }
}

.site-footer .shell {
  display: grid;
  gap: .65rem;
  padding-block: 1rem;
  font-size: 1rem;
  line-height: 1.45;
}

.footer-contact,
.footer-credits {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .45rem 1.1rem;
}

.footer-credits {
  justify-content: space-between;
  padding-top: .65rem;
  border-top: 1px solid var(--line);
}

.footer-credits p { margin: 0; }
.design-credit { display: flex; align-items: center; gap: .55rem; }
.design-credit img { width: 3.5rem; height: auto; flex: none; border-radius: .25rem; }

@media (min-width: 62.01rem) {
  .theme-preview.theme-final .brand::before {
    background:
      repeating-linear-gradient(4deg, var(--steel-groove) 0 1px, transparent 1px 3px, var(--steel-grain) 3px 4px, transparent 4px 7px),
      linear-gradient(112deg, var(--steel-dark), var(--steel-highlight) 44%, var(--steel-mid) 68%, var(--steel-dark));
  }
}

@media (prefers-reduced-motion: no-preference) {
  html:has(.theme-final) { scroll-behavior: smooth; }
}

.company-sections {
  display: grid;
  width: min(100% - 2rem, 90rem);
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  align-items: start;
  gap: clamp(1.25rem, 3vw, 2.5rem);
  padding-block: clamp(1.75rem, 4vw, 3.5rem);
}

.company-section {
  min-width: 0;
  scroll-margin-block-start: 1rem;
}

.company-section h2 { font-size: clamp(1.85rem, 3.5vw, 2.8rem); }

.project-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr));
  gap: 1rem;
  margin-top: 1.25rem;
}

.project-placeholder,
.project-card,
.about-panel {
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: var(--quote-panel);
}

.project-placeholder {
  grid-column: 1 / -1;
  margin: 0;
  padding: 1.5rem;
  border-left: 3px solid var(--theme-edge);
  color: var(--muted);
  font-weight: 650;
}

.project-card { padding: 1rem; }
.project-photos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
.project-photos figure { min-width: 0; margin: 0; }
.project-photos img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.project-photos figcaption { color: var(--muted); }

.about-panel {

  padding: clamp(1.25rem, 4vw, 3rem);
  border-top: 3px solid var(--theme-edge);
}

.about-tagline { margin: .8rem 0 0; color: var(--green); font-size: 1.125rem; font-weight: 700; }
.about-copy { margin-top: 1.25rem; }
.about-copy p { margin: 0 0 1rem; }
.about-copy .about-philosophy { padding-left: .9rem; border-left: 3px solid var(--theme-edge); font-weight: 700; }
.about-copy .about-signoff { margin-bottom: 0; color: var(--muted); font-weight: 700; }

@media (max-width: 52rem) {
  .company-sections { grid-template-columns: minmax(0, 1fr); }
}
