.faq {
  display: grid; grid-template-columns: 1fr 1.4fr;
  gap: var(--espace-xl);
  max-width: 1200px; margin: 0 auto;
  padding: var(--espace-xl) var(--espace-m);
}
.faq__title {
  font-family: var(--font-titre);
  font-size: clamp(2.5rem, 5vw, 4rem);
  color: var(--creme); line-height: 1.05;
}
.faq__item { border-bottom: 1px solid rgba(255,255,255,0.08); }
.faq__question {
  display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  width: 100%; padding: 1.4rem 0;
  background: none; border: none;
  color: var(--creme); font-family: var(--font-corps); font-size: 1.05rem;
  text-align: left; cursor: pointer;
  transition: color var(--transition);
}
.faq__question:hover { color: var(--or); }
.faq__icon { position: relative; width: 18px; height: 18px; flex-shrink: 0; }
.faq__icon::before, .faq__icon::after {
  content: "";
  position: absolute; top: 50%; left: 50%;
  width: 14px; height: 2px;
  background: var(--or);
  transform: translate(-50%, -50%);
  transition: transform var(--transition), opacity var(--transition);
}
.faq__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.faq__question[aria-expanded="true"] .faq__icon::after {
  transform: translate(-50%, -50%) rotate(180deg);
  opacity: 0;
}
.faq__answer {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows var(--transition);
}
.faq__answer > p { overflow: hidden; margin: 0; color: var(--gris); line-height: 1.7; }
.faq__question[aria-expanded="true"] + .faq__answer { grid-template-rows: 1fr; }
.faq__question[aria-expanded="true"] + .faq__answer > p { padding-bottom: 1.4rem; }
@media (max-width: 800px) { .faq { grid-template-columns: 1fr; gap: var(--espace-l); } }
