/* Shared FAQ layout. Each page keeps its own background and color tokens. */
.q-faq {
  --faq-ink: var(--ink, #1A1611);
  --faq-muted: var(--ink-2, #5C5345);
  --faq-rule: rgba(26, 22, 17, .18);
  position: relative;
  padding: clamp(64px, 7.5vw, 104px) 40px clamp(72px, 8vw, 112px);
  border-top: 1px solid var(--faq-rule);
  background: var(--paper, #ECE7F2);
  color: var(--faq-ink);
  font-family: var(--font-product, 'Inter', sans-serif);
}
.q-faq *, .q-faq *::before, .q-faq *::after { box-sizing: border-box; }
.q-faq-wrap { max-width: 1200px; margin-inline: auto; }
.q-faq-layout {
  display: grid;
  grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr);
  gap: clamp(48px, 7vw, 104px);
  align-items: start;
}
.q-faq-heading { max-width: 340px; }
.q-faq h2 {
  margin: 0;
  font-family: var(--font-marketing, 'Geist', sans-serif);
  font-size: clamp(28px, 3vw, 38px);
  font-weight: 600;
  line-height: 1.14;
  letter-spacing: -.03em;
  text-wrap: balance;
}
.q-faq-intro {
  max-width: 34ch;
  margin: 22px 0 0;
  color: var(--faq-muted);
  font-size: 17px;
  line-height: 1.65;
  text-wrap: pretty;
}
.q-faq-list { min-width: 0; }
.q-faq-item { padding: 26px 0; border-bottom: 1px solid var(--faq-rule); }
.q-faq-item:first-child { padding-top: 4px; }
.q-faq-item:last-child { padding-bottom: 0; border-bottom: 0; }
.q-faq-item h3 {
  margin: 0 0 10px;
  font-family: var(--font-marketing, 'Geist', sans-serif);
  font-size: 19px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: -.015em;
  text-wrap: pretty;
}
.q-faq-item p {
  max-width: 66ch;
  margin: 0;
  color: var(--faq-muted);
  font-size: 17px;
  line-height: 1.65;
  text-wrap: pretty;
}
.q-faq[data-faq="/calendar"] { background: transparent; --faq-ink: #0B0A12; --faq-muted: #514b63; }
.q-faq[data-faq="/contact"] { background: #FBF9FD; --faq-muted: #625A50; }
.q-faq::selection, .q-faq ::selection { background: #C9C1F2; color: #1A1611; }
@media (max-width: 900px) {
  .q-faq { padding-inline: 28px; }
  .q-faq-layout { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .q-faq-heading { max-width: 620px; }
  .q-faq-intro { max-width: 60ch; margin-top: 18px; }
}
@media (max-width: 767px) {
  .q-faq { padding: 52px 20px 60px; }
  .q-faq-layout { gap: 32px; }
  .q-faq h2 { max-width: 20ch; font-size: 30px; }
  .q-faq-item { padding-block: 24px; }
  .q-faq-item:first-child { padding-top: 0; }
  .q-faq-item h3 { font-size: 18px; margin-bottom: 9px; }
}
