.faq {
  background: var(--color-paper);
}

.faq-grid {
  display: grid;
  gap: clamp(44px, 7vw, 120px);
  grid-template-columns: minmax(310px, 0.75fr) minmax(0, 1.25fr);
  margin: 0 auto;
  max-width: var(--container);
}

.faq h2 {
  margin-bottom: 10px;
}

.faq div > p:not(.eyebrow) {
  color: var(--color-muted);
  font-size: 14px;
}

.faq-list {
  border-top: 1px solid var(--color-line);
}

.faq-list details {
  border-bottom: 1px solid var(--color-line);
}

.faq-list details:hover {
  background: rgba(141, 73, 52, 0.025);
}

.faq-list summary {
  cursor: pointer;
  font-family: var(--font-serif);
  font-size: clamp(22px, 1.8vw, 30px);
  list-style: none;
  padding: 28px 42px 28px 0;
  position: relative;
}

.faq-list summary::-webkit-details-marker {
  display: none;
}

.faq-list summary::after {
  color: var(--color-rust-light);
  content: "+";
  font-family: var(--font-sans);
  font-size: 22px;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
}

.faq-list details[open] summary::after {
  content: "−";
}

.faq-list details p {
  color: var(--color-muted);
  max-width: 680px;
  padding: 0 0 28px;
}

.faq-list details[open] p {
  animation: faqFade 220ms ease;
}

@keyframes faqFade {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.quote {
  background: var(--color-rust);
  color: #fff;
  padding: clamp(90px, 11vw, 150px) var(--side);
}

.quote-grid {
  display: grid;
  gap: clamp(60px, 8vw, 130px);
  grid-template-columns: minmax(330px, 0.8fr) minmax(0, 1.35fr);
  margin: 0 auto;
  max-width: var(--container);
}

.quote .eyebrow {
  color: #f8ddd0;
}

.quote h2 {
  max-width: 540px;
}

.quote-intro > p:not(.eyebrow) {
  color: #f4dfd7;
  font-size: 16px;
  margin-top: 16px;
  max-width: 610px;
}

.quick-list {
  border-bottom: 1px solid rgba(255, 255, 255, 0.28);
  border-top: 1px solid rgba(255, 255, 255, 0.28);
  display: grid;
  gap: 16px;
  margin-top: 48px;
  padding: 28px 0;
}

.quick-list strong,
.quote-form label span {
  color: #ffe8de;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 2px;
}

.quick-list span {
  font-size: 12px;
}

.quick-list span::before {
  content: "—";
  margin-right: 14px;
}

.quote-form {
  display: grid;
  gap: 26px 28px;
  grid-template-columns: 1fr 1fr;
}

.quote-form label {
  display: grid;
  gap: 18px;
}

.quote-form input,
.quote-form select,
.quote-form textarea {
  background-color: transparent;
  border-bottom: 1px solid rgba(255, 255, 255, 0.42);
  color: #fff;
  min-height: 48px;
  padding-bottom: 10px;
  width: 100%;
  transition: border-color 180ms ease, background 180ms ease;
}

.quote-form input:focus,
.quote-form select:focus,
.quote-form textarea:focus {
  background: rgba(255, 255, 255, 0.035);
  border-color: rgba(255, 255, 255, 0.86);
}

.quote-form input::placeholder,
.quote-form textarea::placeholder {
  color: rgba(255, 255, 255, 0.55);
  font-weight: 800;
}

.quote-form select {
  appearance: none;
  background-color: transparent;
  background-image: linear-gradient(45deg, transparent 50%, #fff 50%), linear-gradient(135deg, #fff 50%, transparent 50%);
  background-position: calc(100% - 12px) 19px, calc(100% - 7px) 19px;
  background-repeat: no-repeat;
  background-size: 6px 6px, 6px 6px;
  font-weight: 800;
}

.quote-form option {
  color: var(--color-ink);
}

.quote-form textarea {
  min-height: 116px;
  resize: vertical;
}

.form-wide {
  grid-column: span 2;
}

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

.form-actions small {
  color: rgba(255, 255, 255, 0.54);
  font-size: 10px;
}

.footer {
  align-items: center;
  background: #151711;
  color: #fff;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  min-height: 150px;
  padding: 38px var(--side);
}

.brand-footer img {
  max-width: 174px;
  opacity: 0.96;
  width: clamp(138px, 12vw, 174px);
}

.footer nav {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  justify-content: center;
}

.footer nav a {
  color: rgba(255, 255, 255, 0.78);
  font-size: 12px;
  font-weight: 700;
  position: relative;
}

.footer nav a::after {
  background: var(--color-rust-light);
  bottom: -8px;
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 180ms ease;
  width: 100%;
}

.footer nav a:hover {
  color: #fff;
}

.footer nav a:hover::after {
  transform: scaleX(1);
}

.footer p {
  color: #747a73;
  display: grid;
  font-size: 10px;
  font-weight: 800;
  gap: 8px;
  justify-self: end;
  letter-spacing: 2px;
}

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

  .footer {
    gap: 34px;
    grid-template-columns: 1fr;
  }

  .footer nav,
  .footer p {
    justify-self: start;
  }
}

@media (max-width: 680px) {
  .quote-form {
    grid-template-columns: 1fr;
  }

  .form-wide {
    grid-column: auto;
  }
}
