/*
 * Sekcja pytań i odpowiedzi — lista rozwijana na <details>.
 *
 * Wyłącznie wartości przez var(--token) z tokens.css.
 */

.section-faq {
  margin-top: var(--space-lg);
}

/*
 * Kreska należy do kontenera, nie do sekcji: sekcja rozciąga się teraz na całą
 * szerokość okna, a w projekcie separator kończy się na krawędziach kolumny treści.
 */
.section-faq > .container {
  padding-top: var(--space-lg);
  border-top: 4px solid var(--color-border);
}

/* ——— Pozycja listy ——— */

.faq__item {
  border-bottom: 1px solid var(--color-border);
}

.faq__question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-sm);
  padding: var(--space-md) 0;
  cursor: pointer;
  /* Oba zapisy usuwają domyślny trójkąt <summary> — drugi dla starszych Safari. */
  list-style: none;
}

.faq__question::-webkit-details-marker {
  display: none;
}

.faq__question-text {
  margin: 0;
  font-weight: 400;
  font-size: var(--font-size-lg);
}

/* ——— Przełącznik: napis i strzałka ——— */

.faq__toggle {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: calc(var(--space-xs) + var(--space-2xs));
  color: var(--color-text);
}

.faq__item[open] .faq__toggle {
  color: var(--color-accent);
}

/*
 * Oba napisy leżą w tej samej komórce siatki, więc szerokość bloku wyznacza dłuższy
 * z nich i strzałka nie przeskakuje przy zmianie „Rozwiń” na „Zwiń”. Ukrycie przez
 * visibility, a nie display: none — display zabrałby tę szerokość, a z drzewa
 * dostępności oba sposoby wyjmują napis tak samo.
 */
.faq__toggle-labels {
  display: grid;
  justify-items: end;
  /* Korekta optyczna względem strzałki — px, bo strzałka też ma stały rozmiar. */
  transform: translateY(-1px);
}

.faq__toggle-label {
  grid-area: 1 / 1;
  font-size: var(--font-size-sm);
}

.faq__item[open] .faq__toggle-label--expand,
.faq__item:not([open]) .faq__toggle-label--collapse {
  visibility: hidden;
}

/*
 * Strzałka jest grafiką o stałych proporcjach, więc nie skaluje się razem z tekstem.
 * Obrót niesie stan rozwinięcia niezależnie od koloru — w trybie wysokiego kontrastu
 * --color-text i --color-accent są tym samym żółtym.
 */
.faq__question .icon--chevron {
  width: 0.75rem;
  height: 1rem;
  transform: rotate(90deg);
}

.faq__item[open] .icon--chevron {
  transform: rotate(-90deg);
}

/* ——— Odpowiedź ——— */

.faq__answer {
  max-width: 49rem;
  padding-bottom: var(--space-md);
  color: var(--color-text-muted);
  font-size: var(--font-size-sm);
}

/* Odstępy wyznacza kontener — akapity z edytora nie dokładają swoich na krańcach. */
.faq__answer > :first-child {
  margin-top: 0;
}

.faq__answer > :last-child {
  margin-bottom: 0;
}
