/* FAQ (T17). Grey band: the heading beside the questions on wide screens, above them on phones.
   Tokens only; mobile first. Prototype: Light Grey ground, heading 34–52 px (signature, last word bold)
   in 4 of 12 columns, questions in columns 5–12 with hairlines between, question 20 px, sign 24 px in blue,
   answer 16 px / 1.6 in slate, 640 px measure. Works without script (native details/summary). */

.faq__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-8) var(--gutter);
  align-items: start;
}

/* Two FAQ bands in a row read as one grey band. */
.faq + .faq,
.faq + script + .faq { padding-top: 0; }   /* the first block is followed by the page's FAQ JSON-LD */

.faq__heading { margin: 0; }

.faq__list {
  min-width: 0;
  border-bottom: var(--border-width) solid var(--color-border);
}

.faq__item { border-top: var(--border-width) solid var(--color-border); }

.faq__question {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--space-5);
  min-height: var(--tap-min);
  padding: var(--space-5) 0;
  cursor: pointer;
  list-style: none;
  font-size: var(--fs-h4);
  font-weight: var(--fw-regular);
  line-height: var(--lh-label);
  color: var(--color-heading);
  overflow-wrap: break-word;
  transition: var(--transition-control);
}
.faq__question::-webkit-details-marker { display: none; }
.faq__question::marker { content: ""; }
.faq__question:hover { color: var(--color-link); }
.faq__question-text { min-width: 0; }

/* The sign is a shape, not a colour: + closed, − open. */
.faq__sign {
  flex: none;
  position: relative;
  width: 16px;
  height: 16px;
  color: var(--color-link);
}
.faq__sign::before,
.faq__sign::after {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 16px;
  height: 2px;
  margin-top: -1px;
  background: currentColor;
  border-radius: var(--radius-pill);
}
.faq__sign::after { transform: rotate(90deg); }
.faq__item[open] .faq__sign::after { transform: none; opacity: 0; }

.faq__answer {
  max-width: var(--container-text);
  padding: 0 0 var(--space-6);
  font-size: var(--fs-body-md);
  line-height: 1.6;
  color: var(--color-text);
}
.faq__answer p { margin: 0 0 var(--space-3); }
.faq__answer p:last-child { margin-bottom: 0; }

@media (min-width: 768px) {
  .faq__question { font-size: 20px; }   /* prototype question size */
}

@media (min-width: 1024px) {
  .faq__inner {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
  .faq__heading { grid-column: span 4; }
  .faq__list { grid-column: 5 / span 8; }
}

@media (prefers-reduced-motion: reduce) {
  .faq__question { transition: none; }
}
