/* =============================================================================
   FAQ — Accordion (paragraph: faq_s_wrapper + faq_s_list)
   ============================================================================= */

/* ---------------------------------------------------------------------------
   SECTION WRAPPER
--------------------------------------------------------------------------- */

.article-faq {
  /* max-width: var(--content-width); */
  margin-inline: auto;
  margin-block: var(--space-12);
  padding: var(--space-8) var(--space-8) var(--space-6);
  background: var(--color-brand-subtle);
  border: 1px solid var(--color-border-brand);
  border-radius: var(--radius-2xl);
  position: relative;
  overflow: hidden;
}

/* Decorative orb */
.article-faq::before {
  content: '';
  position: absolute;
  top: -80px;
  right: -80px;
  width: 200px;
  height: 200px;
  background: radial-gradient(circle, rgba(99, 102, 241, 0.12) 0%, transparent 70%);
  pointer-events: none;
}

/* ---------------------------------------------------------------------------
   FAQ SECTION HEADER
--------------------------------------------------------------------------- */

.article-faq__header {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: var(--space-6);
}

.article-faq__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: var(--radius-full);
  background: var(--gradient-brand);
  color: #fff;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(99, 102, 241, 0.35);
}

.article-faq__title {
  font-family: var(--font-sans);
  font-size: var(--text-xl);
  font-weight: var(--font-bold);
  color: var(--color-text);
  margin: 0;
}

/* ---------------------------------------------------------------------------
   FAQ LIST
--------------------------------------------------------------------------- */

.article-faq__list,
.faq-wrapper {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

/* ---------------------------------------------------------------------------
   FAQ ITEM CARD
--------------------------------------------------------------------------- */

.faq-item {
  background: var(--color-surface);
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-xl);
  overflow: hidden;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.faq-item:hover {
  border-color: var(--color-border-brand);
}

.faq-item.is-open {
  border-color: var(--color-border-brand);
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.08);
}

/* ---------------------------------------------------------------------------
   FAQ QUESTION BUTTON
--------------------------------------------------------------------------- */

.faq-item__question {
  margin: 0;
  font-size: inherit;
}

.faq-item__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: var(--space-5) var(--space-6);
  background: transparent;
  border: none;
  cursor: pointer;
  text-align: left;
  gap: var(--space-4);
  transition: background var(--transition-fast);
  color: inherit;
  font-family: inherit;
}

.faq-item__toggle:hover {
  background: rgba(99, 102, 241, 0.04);
}

.faq-item.is-open .faq-item__toggle {
  background: rgba(99, 102, 241, 0.06);
  border-bottom: 1px solid var(--color-border-brand);
}

.faq-item__toggle:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: -2px;
  border-radius: var(--radius-xl);
}

/* Question text */
.faq-item__question-text {
  font-size: var(--text-base);
  font-weight: var(--font-semibold);
  color: var(--color-text);
  line-height: var(--leading-snug);
  flex: 1;
}

.faq-item.is-open .faq-item__question-text {
  color: var(--color-brand-text);
}

/* ---------------------------------------------------------------------------
   CHEVRON ICON
--------------------------------------------------------------------------- */

.faq-item__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: var(--radius-full);
  background: var(--color-bg-secondary);
  border: 1px solid var(--color-border);
  color: var(--color-text-muted);
  flex-shrink: 0;
  transition: background var(--transition-fast),
              border-color var(--transition-fast),
              color var(--transition-fast);
}

.faq-item__icon svg {
  transition: transform var(--transition-base);
}

.faq-item.is-open .faq-item__icon {
  background: var(--gradient-brand);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 4px 10px rgba(99, 102, 241, 0.3);
}

.faq-item.is-open .faq-item__icon svg {
  transform: rotate(180deg);
}

/* ---------------------------------------------------------------------------
   FAQ ANSWER — CSS grid-template-rows animation (no hidden override needed)
   JS only adds/removes .is-open on .faq-item
--------------------------------------------------------------------------- */

.faq-item__answer {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.faq-item.is-open .faq-item__answer {
  grid-template-rows: 1fr;
}

/* Inner must have overflow hidden for animation to work */
.faq-item__answer-inner {
  overflow: hidden;
  padding: 0;
  transition: padding var(--transition-fast);
}

.faq-item.is-open .faq-item__answer-inner {
  padding: var(--space-5) var(--space-6) var(--space-6);
}

.faq-item__answer-inner p {
  margin: 0 0 var(--space-3);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
  color: var(--color-text-secondary);
}

.faq-item__answer-inner p:last-child {
  margin-bottom: 0;
}

.faq-item__answer-inner a {
  color: var(--color-brand-text);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .faq-item__answer {
    transition: none;
  }
  .faq-item__answer-inner {
    transition: none;
  }
}

/* ---------------------------------------------------------------------------
   RELATED / ALSO SEE
--------------------------------------------------------------------------- */

.article-related {
  margin-top: var(--space-8);
  padding-top: var(--space-6);
  border-top: 1px solid var(--color-border);
}

.article-related__title {
  font-size: var(--text-xs);
  font-weight: var(--font-semibold);
  color: var(--color-text-muted);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider);
  margin-bottom: var(--space-3);
}

.article-related__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.article-related__list a {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-sm);
  color: var(--color-brand-text);
  text-decoration: none;
  transition: gap var(--transition-fast);
}

.article-related__list a::before {
  content: '→';
  font-size: var(--text-xs);
}

.article-related__list a:hover {
  gap: var(--space-3);
  text-decoration: underline;
}

/* ---------------------------------------------------------------------------
   FILE ATTACHMENTS
--------------------------------------------------------------------------- */

.article-files {
  /* max-width: var(--content-width); */
  margin-inline: auto;
  margin-block: var(--space-8);
  padding: var(--space-5) var(--space-6);
  background: var(--color-bg-secondary);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
}

.article-files__title {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-xs);
  font-weight: var(--font-semibold);
  color: var(--color-text-muted);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider);
  margin-bottom: var(--space-4);
}

.article-files__list .field__item {
  padding: var(--space-2) 0;
  border-bottom: 1px solid var(--color-border);
}

.article-files__list .field__item:last-child {
  border-bottom: none;
}

.article-files__list a {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-sm);
  color: var(--color-brand-text);
  text-decoration: none;
}

.article-files__list a:hover {
  text-decoration: underline;
}
