/* PBF FAQ Accordion Widget — style.css */

.pbf-faq-list {
  max-width: 860px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.pbf-faq-item {
  width: 100%;
  background: #ffffff;
  border-radius: 14px;
  border: 1px solid #e9ecef;
  overflow: hidden;
  transition: border-color .2s, box-shadow .2s;
}
.pbf-faq-item.is-open {
  border-color: #1a6ef5;
  box-shadow: 0 4px 20px rgba(26, 110, 245, 0.1);
}

/* ── Question ── */
.pbf-faq-q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 28px;
  cursor: pointer;
  user-select: none;
  -webkit-user-select: none;
  outline: none;
}
.pbf-faq-item.is-open .pbf-faq-q {
  padding-bottom: 18px;
  border-bottom: 1px solid #e9ecef;
}
.pbf-faq-q-text {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 16px;
  color: #1e2530;
  line-height: 1.4;
  margin: 0;
  flex: 1;
  min-width: 0;
}

/* ── Bouton +/− ── */
.pbf-faq-btn {
  all: unset;
  box-sizing: border-box;
  width: 36px;
  height: 36px;
  min-width: 36px;
  border-radius: 50%;
  background: #e8f0fe;
  color: #1a6ef5;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background .25s, color .25s;
}
.pbf-faq-item.is-open .pbf-faq-btn {
  background: #1a6ef5;
  color: #ffffff;
}

/* Toggle + / − icons */
.pbf-faq-icon-plus,
.pbf-faq-icon-minus {
  display: block;
}
.pbf-faq-icon-minus {
  display: none;
}
.pbf-faq-item.is-open .pbf-faq-icon-plus {
  display: none;
}
.pbf-faq-item.is-open .pbf-faq-icon-minus {
  display: block;
}

/* ── Réponse (animation CSS pure) ── */
.pbf-faq-a-wrap {
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s ease;
}
.pbf-faq-item.is-open .pbf-faq-a-wrap {
  max-height: 800px;
}
.pbf-faq-a {
  padding: 0 28px 24px;
  font-size: 15px;
  color: #6c757d;
  line-height: 1.8;
}
.pbf-faq-a p   { margin: 0 0 12px; }
.pbf-faq-a p:last-child { margin-bottom: 0; }
.pbf-faq-a strong { color: #1e2530; }
.pbf-faq-a a { color: #1a6ef5; text-decoration: none; }
.pbf-faq-a a:hover { text-decoration: underline; }

/* Focus accessible */
.pbf-faq-q:focus-visible {
  outline: 2px solid #1a6ef5;
  outline-offset: -2px;
}

/* ── Mobile ── */
@media (max-width: 768px) {
  .pbf-faq-q         { padding: 18px 20px; gap: 12px; }
  .pbf-faq-q-text    { font-size: 14px; }
  .pbf-faq-a         { padding: 0 20px 20px; font-size: 14px; }
  .pbf-faq-btn       { width: 30px; height: 30px; min-width: 30px; }
}
