/* ==========================================================================
   FAQ ACCORDION — about page section
   Eyebrow, serif headline, centered reading width accordion, and a support note.
   Reuses existing variables, shadows, radii, and typography tokens.
   ========================================================================== */

/* ---- Section Container ---- */
.du-faq {
    background-color: var(--background);
    padding-top: 100px;
    padding-bottom: 100px;
}

/* ---- Section header ---- */
.du-faq__header {
    max-width: 600px;
    margin: 0 auto var(--space-xl);
    text-align: center;
}

.du-faq__eyebrow {
    display: block;
    color: var(--on-tertiary-container);
    margin: 0 0 var(--space-xs);
    letter-spacing: 0.1em;
}

.du-faq__eyebrow-rule {
    display: block;
    width: 32px;
    height: 2px;
    background-color: var(--on-tertiary-container);
    border-radius: var(--radius-full);
    margin: 0 auto var(--space-md);
}

.du-faq__heading {
    margin: 0 0 var(--space-sm);
    color: var(--on-background);
}

.du-faq__description {
    color: var(--on-surface-variant);
    margin: 0;
}

/* ---- Accordion Wrapper ---- */
.du-faq__accordion {
    max-width: 800px;
    margin: 0 auto;
}

/* ---- Individual FAQ Item ---- */
.du-faq-item {
    background-color: var(--surface);
    border: var(--border-width) solid var(--border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-level-1);
    margin-bottom: var(--space-sm);
    transition: border-color var(--transition-normal), box-shadow var(--transition-normal);
    overflow: hidden;
}

.du-faq-item:hover,
.du-faq-item:focus-within {
    border-color: var(--primary-hover);
    box-shadow: var(--shadow-level-2);
}

/* ---- Trigger Button ---- */
.du-faq-item__trigger {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    text-align: left;
    background: none;
    border: none;
    padding: var(--space-lg);
    font-family: var(--font-serif);
    font-size: clamp(1.15rem, 1.8vw, 1.35rem);
    font-weight: 500;
    color: var(--on-background);
    cursor: pointer;
    gap: var(--space-md);
    outline: none;
}

.du-faq-item__trigger:focus-visible {
    background-color: var(--surface-container-lowest);
}

.du-faq-item__question {
    flex: 1;
}

/* ---- Plus/Minus Icon ---- */
.du-faq-item__icon-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    position: relative;
    flex-shrink: 0;
}

.du-faq-item__icon {
    width: 14px;
    height: 14px;
    position: relative;
}

.du-faq-item__icon::before,
.du-faq-item__icon::after {
    content: '';
    position: absolute;
    background-color: var(--on-tertiary-container);
    transition: transform var(--transition-normal), opacity var(--transition-normal);
    border-radius: var(--radius-full);
}

/* Horizontal line */
.du-faq-item__icon::before {
    top: 6px;
    left: 0;
    width: 14px;
    height: 2px;
}

/* Vertical line */
.du-faq-item__icon::after {
    top: 0;
    left: 6px;
    width: 2px;
    height: 14px;
}

/* Transform into minus when open */
.du-faq-item.is-open .du-faq-item__icon::after {
    transform: rotate(90deg);
    opacity: 0;
}

/* ---- Panel Content ---- */
.du-faq-item__panel {
    max-height: 0;
    overflow: hidden;
    transition: max-height var(--transition-normal) ease-out, opacity var(--transition-normal) ease-out;
    opacity: 0;
}

.du-faq-item.is-open .du-faq-item__panel {
    opacity: 1;
}

.du-faq-item__content {
    padding: 0 var(--space-lg) var(--space-lg);
    color: var(--on-surface-variant);
    line-height: var(--body-md-line);
}

.du-faq-item__content p {
    margin: 0;
}

/* ---- Support Note Strip ---- */
.du-faq__support-note {
    display: flex;
    align-items: center;
    gap: var(--space-lg);
    margin: var(--space-xl) auto 0;
    max-width: 800px;
    padding: var(--space-lg);
    background-color: var(--surface-container-low);
    border-radius: var(--radius-lg);
    border: var(--border-width) solid var(--border);
}

.du-faq__support-icon-wrap {
    flex-shrink: 0;
}

.du-faq__support-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: var(--radius-md);
    background-color: var(--surface-container);
    color: var(--primary);
}

.du-faq__support-divider {
    flex-shrink: 0;
    width: 2px;
    align-self: stretch;
    background-color: var(--on-tertiary-container);
    border-radius: var(--radius-full);
    opacity: 0.4;
}

.du-faq__support-text-wrap {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.du-faq__support-title {
    margin: 0;
    font-size: clamp(1.1rem, 1.6vw, 1.3rem);
    color: var(--on-background);
}

.du-faq__support-copy {
    color: var(--on-surface-variant);
    margin: 0;
}

/* ---- Responsive overrides ---- */
@media (max-width: 767px) {
    .du-faq {
        padding-top: 48px;
        padding-bottom: 48px;
    }

    .du-faq__header {
        margin-bottom: var(--space-lg);
    }

    .du-faq-item__trigger {
        padding: var(--space-md);
    }

    .du-faq-item__content {
        padding: 0 var(--space-md) var(--space-md);
    }

    .du-faq__support-note {
        flex-direction: column;
        text-align: center;
        gap: var(--space-md);
        padding: var(--space-md);
    }

    .du-faq__support-divider {
        width: 32px;
        height: 2px;
        align-self: auto;
    }
}
