/* ==========================================================================
   FAQ Element — Bootstrap 5 aesthetic, fully self-contained
   Uses native HTML5 <details>/<summary> — no JavaScript required
   ========================================================================== */

/* --------------------------------------------------------------------------
   Custom properties — adjust here to adapt to any design system
   -------------------------------------------------------------------------- */
.faq-element {
    --faq-font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --faq-font-size: 1rem;
    --faq-line-height: 1.5;
    --faq-color-text: #212529;
    --faq-color-text-muted: #6c757d;
    --faq-color-accent: #0c63e4;
    --faq-color-accent-bg: #e8f0fe;
    --faq-color-accent-bg-hover: #d6e4fd;
    --faq-color-bg: #fff;
    --faq-color-bg-hover: #f8f9fa;
    --faq-color-border: rgba(0, 0, 0, 0.125);
    --faq-border-radius: 0.375rem;
    --faq-padding-x: 1.25rem;
    --faq-padding-y: 1rem;
    --faq-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out;
    --faq-chevron-size: 1.25rem;
    --faq-chevron-collapsed: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
    --faq-chevron-expanded: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");

    font-family: var(--faq-font-family);
    font-size: var(--faq-font-size);
    line-height: var(--faq-line-height);
    color: var(--faq-color-text);
    margin-bottom: 2rem;
}

/* --------------------------------------------------------------------------
   Optional heading
   -------------------------------------------------------------------------- */
.faq-element__title {
    font-size: 1.75rem;
    font-weight: 500;
    line-height: 1.2;
    color: var(--faq-color-text);
    margin-top: 0;
    margin-bottom: 1rem;
}

/* --------------------------------------------------------------------------
   Accordion list wrapper
   -------------------------------------------------------------------------- */
.faq-element__list {
    border-radius: var(--faq-border-radius);
    overflow: hidden;
}

/* --------------------------------------------------------------------------
   Individual accordion item (<details>)
   -------------------------------------------------------------------------- */
.faq-element__item {
    background-color: var(--faq-color-bg);
    border: 1px solid var(--faq-color-border);
}

.faq-element__item + .faq-element__item {
    border-top: 0;
}

.faq-element__item:first-child {
    border-top-left-radius: var(--faq-border-radius);
    border-top-right-radius: var(--faq-border-radius);
}

.faq-element__item:last-child {
    border-bottom-left-radius: var(--faq-border-radius);
    border-bottom-right-radius: var(--faq-border-radius);
}

/* --------------------------------------------------------------------------
   Question / summary button
   -------------------------------------------------------------------------- */
.faq-element__question {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: var(--faq-padding-y) var(--faq-padding-x);
    font-size: var(--faq-font-size);
    font-weight: 500;
    color: var(--faq-color-text);
    background-color: var(--faq-color-bg);
    cursor: pointer;
    list-style: none;
    user-select: none;
    transition: var(--faq-transition);
    border: 0;
    outline: 0;
}

/* Remove native disclosure triangle in all browsers */
.faq-element__question::-webkit-details-marker {
    display: none;
}

.faq-element__question::marker {
    display: none;
    content: "";
}

/* Chevron icon via CSS background-image */
.faq-element__question::after {
    content: "";
    display: block;
    flex-shrink: 0;
    width: var(--faq-chevron-size);
    height: var(--faq-chevron-size);
    margin-left: auto;
    background-image: var(--faq-chevron-collapsed);
    background-repeat: no-repeat;
    background-size: var(--faq-chevron-size);
    transition: transform 0.2s ease-in-out;
}

.faq-element__question:hover {
    background-color: var(--faq-color-bg-hover);
    color: var(--faq-color-accent);
    z-index: 1;
    position: relative;
}

/* Focus-visible outline for keyboard accessibility */
.faq-element__question:focus-visible {
    outline: 3px solid var(--faq-color-accent);
    outline-offset: -3px;
    z-index: 2;
    position: relative;
}

/* --------------------------------------------------------------------------
   Open state
   -------------------------------------------------------------------------- */
.faq-element__item[open] > .faq-element__question {
    color: var(--faq-color-accent);
    background-color: var(--faq-color-accent-bg);
    border-bottom: 1px solid var(--faq-color-border);
}

.faq-element__item[open] > .faq-element__question::after {
    background-image: var(--faq-chevron-expanded);
    transform: rotate(-180deg);
}

.faq-element__item[open] > .faq-element__question:hover {
    background-color: var(--faq-color-accent-bg-hover);
}

/* --------------------------------------------------------------------------
   Answer / content area
   -------------------------------------------------------------------------- */
.faq-element__answer {
    padding: var(--faq-padding-y) var(--faq-padding-x);
    color: var(--faq-color-text);
    background-color: var(--faq-color-bg);
}

/* Richtext content — normalize margins */
.faq-element__answer p,
.faq-element__answer [itemprop="text"] p {
    margin-top: 0;
    margin-bottom: 0.75rem;
}

.faq-element__answer p:last-child,
.faq-element__answer [itemprop="text"] p:last-child {
    margin-bottom: 0;
}

.faq-element__answer ul,
.faq-element__answer ol,
.faq-element__answer [itemprop="text"] ul,
.faq-element__answer [itemprop="text"] ol {
    margin-top: 0;
    margin-bottom: 0.75rem;
    padding-left: 1.5rem;
}

.faq-element__answer ul:last-child,
.faq-element__answer ol:last-child,
.faq-element__answer [itemprop="text"] ul:last-child,
.faq-element__answer [itemprop="text"] ol:last-child {
    margin-bottom: 0;
}

.faq-element__answer a {
    color: var(--faq-color-accent);
    text-decoration: underline;
}

.faq-element__answer a:hover {
    color: #084298;
}
