.faq {

    background: var(--light-bg);

}

.faq .section-title {

    font-size: 2.6rem;
    max-width: 700px;
    margin: 0 auto 50px;

}

.faq-list {

    max-width: 820px;
    margin: 0 auto;

    display: flex;
    flex-direction: column;
    gap: 16px;

}

.faq-item {

    background: #fff;
    border-radius: 18px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.06);
    overflow: hidden;

}

.faq-item summary {

    list-style: none;
    cursor: pointer;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;

    padding: 24px 28px;

    font-weight: 600;
    color: var(--dark-green);

}

.faq-item summary::-webkit-details-marker {

    display: none;

}

.faq-item summary:focus-visible {

    outline: 2px solid var(--primary);
    outline-offset: -2px;

}

.faq-icon {

    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--light-bg);
    color: var(--dark-green);
    transition: transform .3s ease, background .3s ease;

}

.faq-item[open] .faq-icon {

    transform: rotate(180deg);
    background: var(--primary);
    color: #fff;

}

.faq-answer {

    padding: 0 28px 26px;

}

.faq-answer p {

    margin: 0;
    color: #555;
    line-height: 1.8;

}

@media (max-width: 768px) {

    .faq .section-title {

        font-size: 2.2rem;

    }

    .faq-item summary {

        padding: 20px 22px;
        font-size: .95rem;

    }

    .faq-answer {

        padding: 0 22px 22px;

    }

}
