/* The FAQ uses v8's rounded detail rows, bold type, and acid-green accents. */
.faq-page { background: var(--paper); }
.faq-hero { padding-top: calc(var(--hero-clearance, 110px) + 44px); padding-bottom: 64px; text-align: center; }
.faq-hero h1 { max-width: 1050px; margin-inline: auto; font-size: clamp(2.625rem, 5.25vw, 4.625rem); line-height: 1.16; letter-spacing: -.06em; text-wrap: balance; }
.faq-hero h1 span { display: inline; background: #f3ffdc; color: var(--carbon); border: 1px solid #dfedc8; border-radius: 999px; padding: 0 .18em .05em; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.faq-list { max-width: 1040px; padding-bottom: 16px; }
.faq-item { margin-bottom: 12px; border: 1px solid var(--fog); border-radius: 24px; background: var(--paper); scroll-margin-top: calc(var(--header-clearance, 120px) + 16px); }
.faq-item[open] { box-shadow: 0 4px 24px #0d0d0d05; }
.faq-item summary { display: grid; grid-template-columns: 40px minmax(0, 1fr) 40px; align-items: center; gap: 20px; padding: 24px; cursor: pointer; list-style: none; border-radius: 24px; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::marker { content: ''; }
.faq-item summary:focus-visible { outline: 2px solid var(--carbon); outline-offset: 4px; }
.faq-item summary:hover .faq-expand { background: var(--accent); color: var(--carbon); }
.faq-item summary h3 { margin: 0; font: 700 clamp(1.0625rem, 1.6vw, 1.25rem)/1.5 var(--heading); letter-spacing: -.035em; text-transform: none; color: var(--carbon); overflow-wrap: anywhere; }
.faq-number { display: grid; place-items: center; width: 40px; height: 32px; border-radius: 999px; background: var(--accent); color: var(--carbon); font: 700 1rem/1 var(--heading); }
.faq-expand { position: relative; width: 40px; height: 40px; justify-self: end; border-radius: 50%; background: var(--mist); color: var(--carbon); transition: background .16s ease; }
.faq-expand::before, .faq-expand::after { content: ''; position: absolute; background: currentColor; top: 50%; left: 50%; transform: translate(-50%, -50%); border-radius: 2px; }
.faq-expand::before { width: 14px; height: 2px; }
.faq-expand::after { width: 2px; height: 14px; }
.faq-item[open] .faq-expand { background: var(--accent); }
.faq-item[open] .faq-expand::after { display: none; }
.faq-answer { max-width: 76ch; margin: 0 84px; padding-bottom: 28px; color: var(--graphite); font-size: 1rem; line-height: 1.8; overflow-wrap: anywhere; }
.faq-answer p + p { margin-top: 18px; }
.faq-answer strong { color: var(--carbon); font-weight: 800; }
@media (max-width: 767px) {
  .faq-hero { padding-top: calc(var(--hero-clearance, 100px) + 28px); padding-bottom: 48px; }
  .faq-hero h1 { font-size: clamp(2rem, 7.3vw, 3.25rem); line-height: 1.2; letter-spacing: -.055em; }
  .faq-list { padding-bottom: 8px; }
  .faq-item summary { grid-template-columns: 34px minmax(0, 1fr) 32px; gap: 12px; padding: 22px 20px; }
  .faq-item summary h3 { font-size: 1rem; line-height: 1.5; letter-spacing: -.025em; }
  .faq-number { width: 34px; height: 28px; font-size: .875rem; }
  .faq-expand { width: 32px; height: 32px; }
  .faq-expand::before { width: 12px; }
  .faq-expand::after { height: 12px; }
  .faq-answer { margin: 0 20px; padding-bottom: 24px; font-size: .9375rem; line-height: 1.8; }
}
@media (max-width: 399px) {
  .faq-item summary { grid-template-columns: 28px minmax(0, 1fr) 28px; gap: 10px; padding: 20px 16px; }
  .faq-number { width: 28px; height: 26px; font-size: .8125rem; }
  .faq-expand { width: 28px; height: 28px; }
  .faq-answer { margin-inline: 16px; }
}
@media (prefers-reduced-motion: reduce) { .faq-expand { transition: none; } }
