.faq-box {}

.faq-item {
    background: #FFF8C4;
    padding: 2% 3%;
    padding-bottom: 1%;
    margin-bottom: 1%;
}

.question {
    display: flex;
    align-items: center;
    gap: 2%;
    cursor: pointer;
}

.question:hover h2.q-text {
    text-decoration: underline;
}

.question .open-button {
    margin-left: auto;
    font-size: 2em;
    color: #F65751;
    transition: transform 0.25s cubic-bezier(.4, 0, .2, 1);

    /* デフォルト値 */
    --scale: 1;
    --rotate: 0deg;

    transform: scale(var(--scale)) rotate(var(--rotate));
}

/* hover時は拡大 */
.question:hover .open-button {
    --scale: 1.1;
}

/* 開いている時は回転 */
.is-open-question .open-button {
    --rotate: 180deg;
}

.q-icon {
    color: #F65751;
    font-size: 2.5em;
    font-weight: 600;
    padding-bottom: 0.2em;
}

h2.q-text {
    line-height: 1.3em;
    color: #333;
    background: none;
    margin: 0;
    display: block;
    padding: 0;
    width: auto;
    border-radius: 0;
    font-size: 1.2em;
}

.answer {
    background: #fff;
    margin-left: 3%;
    margin-top: 1%;
    display: flex;
    align-items: flex-start;
    gap: 2%;
    height: 0;
    overflow: hidden;
    padding: 0 4%;
    transition: all 0.25s cubic-bezier(.4, 0, .2, 1);
}

.answer a:hover {
    text-decoration: underline;
}

.a-icon {
    color: #316EA9;
    font-size: 2.2em;
    font-weight: 600;
}

.a-text {
    font-size: 1.2em;
    line-height: 1.3em;
    padding: 1.4% 0;
}

.a-text p {
    margin-bottom: 0;
}

.answer.is-open {
    padding: 2% 4%;
    height: auto;
}

@media screen and (max-width: 425px) {

    .question,
    .answer {
        flex-direction: column;
    }

    .answer {
        margin-left: 0;
        padding: 0 1.5em;
    }

    .question .open-button {
        margin: 0.5em auto;
    }

    .answer.is-open {
        padding: 0.5em 1.5em;
    }

    .faq-item {
        padding: 1em;
    }
}