/* FAQ accordion of generated articles (core/details blocks inside .sag-faq). */
.sag-faq {
    --sag-faq-accent: #2563eb;
    --sag-faq-accent-soft: #eaf2fe;
    --sag-faq-open-bg: #f5f9ff;
    --sag-faq-open-border: #cfe0fb;
    --sag-faq-border: #e5e7eb;
    --sag-faq-bg: #ffffff;
    --sag-faq-title: #111827;
    --sag-faq-text: #4b5563;
    margin: 1.5em 0 2em;
}

/* Classic themes wrap group content in an inner container, so spacing goes on the items. */
.sag-faq .wp-block-details.sag-faq__item {
    margin: 0 0 14px;
    padding: 0;
    background: var(--sag-faq-bg);
    border: 1px solid var(--sag-faq-border);
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04);
    overflow: hidden;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.sag-faq .sag-faq__item:hover {
    border-color: var(--sag-faq-open-border);
    box-shadow: 0 4px 14px rgba(37, 99, 235, 0.08);
}

.sag-faq .sag-faq__item[open] {
    border-color: var(--sag-faq-open-border);
    background: var(--sag-faq-open-bg);
}

.sag-faq .sag-faq__item > summary {
    position: relative;
    display: flex;
    align-items: center;
    gap: 16px;
    min-height: 44px;
    padding: 16px 56px 16px 18px;
    margin: 0;
    color: var(--sag-faq-title);
    font-size: 1.05em;
    font-weight: 700;
    line-height: 1.35;
    cursor: pointer;
    list-style: none;
    -webkit-user-select: none;
    user-select: none;
}

.sag-faq .sag-faq__item > summary::-webkit-details-marker,
.sag-faq .sag-faq__item > summary::marker {
    display: none;
    content: "";
}

/* Circular icon with a question mark. */
.sag-faq .sag-faq__item > summary::before {
    content: "";
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background-color: var(--sag-faq-accent-soft);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M9.6 9.3a2.5 2.5 0 0 1 4.8.9c0 1.7-2.4 2.3-2.4 3.6'/%3E%3Cpath d='M12 17h.01'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 22px 22px;
}

/* Plus / minus indicator. */
.sag-faq .sag-faq__item > summary::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 20px;
    width: 18px;
    height: 18px;
    transform: translateY(-50%);
    background:
        linear-gradient(var(--sag-faq-accent), var(--sag-faq-accent)) center / 18px 2px no-repeat,
        linear-gradient(var(--sag-faq-accent), var(--sag-faq-accent)) center / 2px 18px no-repeat;
    transition: transform .2s ease;
}

.sag-faq .sag-faq__item[open] > summary::after {
    background:
        linear-gradient(var(--sag-faq-accent), var(--sag-faq-accent)) center / 18px 2px no-repeat;
}

.sag-faq .sag-faq__item > summary:focus-visible {
    outline: 2px solid var(--sag-faq-accent);
    outline-offset: -2px;
    border-radius: 12px;
}

.sag-faq .sag-faq__item[open] > summary {
    border-bottom: 1px solid var(--sag-faq-open-border);
}

.sag-faq .sag-faq__item > :not(summary) {
    margin: 0;
    padding: 16px 22px 18px;
    color: var(--sag-faq-text);
    line-height: 1.7;
}

@media (max-width: 600px) {
    .sag-faq .sag-faq__item > summary {
        gap: 12px;
        padding: 14px 48px 14px 14px;
        font-size: 1em;
    }
    .sag-faq .sag-faq__item > summary::before {
        flex-basis: 38px;
        width: 38px;
        height: 38px;
        background-size: 19px 19px;
    }
    .sag-faq .sag-faq__item > summary::after {
        right: 16px;
    }
    .sag-faq .sag-faq__item > :not(summary) {
        padding: 14px 16px 16px;
    }
}
