/**
 * Guest / host FAQ pages — layout, TOC, cross-links.
 * Dependencies: design-tokens.css, Bootstrap 5 accordion.
 */

.faq-page__header {
    margin-bottom: var(--spacing-5, 1.25rem);
    padding-bottom: var(--spacing-4, 1rem);
    border-bottom: 1px solid var(--border-color, var(--color-neutral-200));
}

.faq-page__title {
    margin: 0 0 var(--spacing-2, 0.5rem);
    font-size: clamp(1.5rem, 3.2vw, 1.875rem);
    font-weight: var(--font-weight-bold, 700);
    letter-spacing: -0.02em;
    line-height: 1.2;
    color: var(--text-primary);
}

.faq-page__intro {
    margin: 0 0 var(--spacing-2, 0.5rem);
    font-size: var(--font-size-base, 1rem);
    line-height: 1.6;
    color: var(--text-secondary);
    max-width: 48rem;
}

.faq-page__legal {
    margin: 0;
    font-size: var(--font-size-sm, 0.875rem);
    line-height: 1.55;
    color: var(--text-tertiary);
    max-width: 48rem;
}

.faq-page__related {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-3, 0.75rem);
    margin-bottom: var(--spacing-5, 1.25rem);
    padding: var(--spacing-4, 1rem) var(--spacing-4, 1rem);
    border-radius: var(--radius-lg, 12px);
    border: 1px solid color-mix(in srgb, var(--color-primary-500) 22%, var(--border-color, var(--color-neutral-200)));
    background: linear-gradient(
        145deg,
        var(--bg-primary),
        color-mix(in srgb, var(--color-primary-50) 48%, var(--bg-primary))
    );
}

.faq-page__related-body {
    flex: 1 1 14rem;
    min-width: 0;
}

.faq-page__related-title {
    margin: 0 0 var(--spacing-1);
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-semibold, 600);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-primary);
}

.faq-page__related-text {
    margin: 0;
    font-size: var(--font-size-sm, 0.875rem);
    line-height: 1.5;
    color: var(--text-secondary);
}

.faq-page__related-cta {
    flex-shrink: 0;
    min-height: 40px;
}

.faq-page__toc {
    margin-bottom: var(--spacing-5, 1.25rem);
    padding: var(--spacing-4, 1rem);
    border-radius: var(--radius-lg, 12px);
    border: 1px solid var(--border-color, var(--color-neutral-200));
    background: var(--color-neutral-50);
}

.faq-page__toc-label {
    margin: 0 0 var(--spacing-2, 0.5rem);
    font-size: 0.75rem;
    font-weight: var(--font-weight-semibold, 600);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-tertiary);
}

.faq-page__toc-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-1);
}

.faq-page__toc-link {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    font-size: var(--font-size-sm, 0.875rem);
    color: var(--text-secondary);
    text-decoration: none;
    transition: color 0.16s ease, transform 0.16s ease;
}

.faq-page__toc-link:hover {
    color: var(--color-primary-600, var(--text-primary));
    transform: translateX(2px);
}

.faq-page__sections {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-6, 1.5rem);
}

.faq-page__section-title {
    margin: 0 0 var(--spacing-3, 0.75rem);
    font-size: var(--font-size-lg, 1.125rem);
    font-weight: var(--font-weight-semibold, 600);
    color: var(--text-primary);
}

.faq-page__accordion .accordion-button {
    font-size: var(--font-size-base, 1rem);
    font-weight: var(--font-weight-medium, 500);
    line-height: 1.45;
    padding-top: var(--spacing-4);
    padding-bottom: var(--spacing-4);
}

.faq-page__accordion .accordion-button:not(.collapsed) {
    color: var(--color-primary-700, var(--text-primary));
    background-color: color-mix(in srgb, var(--color-primary-50) 70%, var(--bg-primary));
}

.faq-page__accordion .accordion-body {
    font-size: var(--font-size-sm, 0.9375rem);
    line-height: 1.65;
}

.faq-page__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-2, 0.5rem);
    margin-top: var(--spacing-6, 1.5rem);
    padding-top: var(--spacing-4, 1rem);
    border-top: 1px solid var(--border-color, var(--color-neutral-200));
}

.faq-page__actions .btn {
    min-height: 44px;
}

@media (max-width: 575.98px) {
    .faq-page__related {
        flex-direction: column;
        align-items: stretch;
    }

    .faq-page__related-cta {
        width: 100%;
    }
}
