.faq {
  order: 9;
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 8vw;
  padding: 8rem 7vw;
  background: #d8dde0;
  color: #0b0d0f;
}

.quote { order: 10; }

.faq h2 {
  margin: 0;
  font: 600 clamp(3.4rem, 5.5vw, 6rem)/.9 var(--cond);
  letter-spacing: -.025em;
  text-transform: uppercase;
}

.faq-list {
  border-top: 1px solid #9ca3a7;
}

.faq details {
  padding: 1.4rem 0;
  border-bottom: 1px solid #9ca3a7;
}

.faq summary {
  cursor: pointer;
  font: 600 1.45rem var(--cond);
  text-transform: uppercase;
}

.faq details p {
  max-width: 720px;
  margin: 1rem 0 0;
  color: #50565a;
}

form label small {
  display: block;
  margin-top: .45rem;
  color: #666d70;
  font: 400 .78rem var(--body);
  letter-spacing: 0;
}

@media (max-width: 900px) {
  .faq { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .faq { padding: 5.5rem 5vw; }
}

/* Cross-device layout safeguards */
html,
body {
  overflow-x: hidden;
}

img {
  max-width: 100%;
}

.contact-card a,
.contact-card address,
footer span,
footer a {
  overflow-wrap: anywhere;
}

@media (max-width: 440px) {
  .gallery-grid {
    grid-template-columns: 1fr;
  }

  .gallery-grid figure:nth-child(1),
  .gallery-grid figure:nth-child(10) {
    grid-column: span 1;
  }

  .gallery-grid figcaption {
    padding: .75rem;
    font-size: .78rem;
  }

  .review-grid article {
    padding: 1.75rem;
  }
}
