.faq{
	margin: var(--block-margin) auto;
}

.faq header.animate__animated,
.faq-grid.animate__animated,
.faq footer.animate__animated{
    animation-name: fadeInUp;
}

.faq header{
    margin-bottom: var(--block-margin);
}

.faq header h2 {
    font: var(--font-headline-4);
}

.faq-grid{
    display: grid;
    grid-template-columns: minmax(0, auto);
    column-gap: var(--column-gap);
    align-items: start;
}

.faq details{
    border-bottom: 0.1rem solid;
}

.faq details:not(:last-child){
    margin-bottom: -0.1rem;
}

.faq details > summary{
    padding: 1em 5rem 1em 0;
    font: var(--font-headline-7);
    letter-spacing: var(--secondary-letter-spacing);
    list-style: none;
    position: relative;
    color: var(--title-color);
}

.faq details > summary::-webkit-details-marker {
    display: none;
}

.faq details > summary::before{
    content: '';
    display: block;
    position: absolute;
    right: 1.2rem;
    border-bottom: 0.2rem solid;
    width: 1em;
    height: 1em;
    transition: all 0.3s ease;
}

.faq details > summary::after{
    content: '';
    display: block;
    position: absolute;
    right: 0.4rem;
    border-bottom: 0.2rem solid;
    width: 1em;
    height: 1em;
    transition: all 0.3s ease;
    transform: translateY(-75%) rotateZ(90deg);
}

.faq details[open] > summary::after{
    transition: 0.3s ease all;
    right: 1.2rem;
    transform: translateY(-120%) rotateZ(0deg);
}

.faq details > div{
    padding-bottom: 1em;
}

.faq details > div > *:last-child{
    margin-bottom: 0;
}

.faq-grid-buttons{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: var(--item-column-gap);
    row-gap: var(--item-row-gap);
}

.faq-buttons{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: var(--item-column-gap);
    row-gap: var(--item-row-gap);
}

.faq[data-columns="1"][data-align="center"] .faq-grid{
    max-width: var(--default-block-width);
    margin-left: auto;
    margin-right: auto;
}

.faq[data-align="center"] :is(header){
    text-align: center;
    max-width: var(--default-block-width);
    margin-left: auto;
    margin-right: auto;
}

.faq[data-align="center"] .faq-buttons{
    justify-content: center;
}

@media (min-width: 992px){
    .faq[data-align="2-columns"] {
        display: grid;
        grid-template-columns: 1fr 60%;
        column-gap: 0;
    }

    .faq[data-columns="2"] .faq-grid{
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .faq[data-align="2-columns"]{
        display: grid;
        row-gap: var(--row-gap);
    }

    .faq[data-align="2-columns"] .faq-grid{
        grid-row: 2;
        align-self: start;
        grid-column: 2;
    }

    .faq[data-align="2-columns"] :is(header) {
        margin: 0;
        max-width: calc(var(--wide-width) / 2);
        grid-column: 1 / span 2;
        grid-row: 1;
    }
}