@charset "UTF-8";

.box--outline--blue {
    margin-block-start: 3.5rem;
}

.faq__category__filter {
    display: grid;
    row-gap: 0.75rem;
    margin-block-end: 1.62rem;

    button {
        display: flex;
        align-items: center;
        justify-content: space-between;
        column-gap: 1rem;
        padding: 0.5rem 1.56rem;
        border-radius: 0.125rem;
        border: 1px solid currentColor;
        color: var(--c-accent);
        font-size: 0.875rem;
        font-weight: 500;
        letter-spacing: 0.04em;

        @media (hover: hover) {
            transition: background-color 0.3s ease-out;
            will-change: background-color;

            &:hover {
                background-color: var(--c-light-blue);
            }
        }

        &[aria-pressed="true"] {
            background-color: var(--c-accent);
            color: var(--c-white);

            .faq__category__icon {
                filter: brightness(0) invert(1);
            }
        }
    }

    .faq__category__icon {
        flex-shrink: 0;
        rotate: 90deg;
    }
}

.faq__search {
    display: flex;
    margin-block-end: 1.62rem;
    border: 1px solid var(--c-border);
    overflow: hidden;
    border-radius: 100vmax;
    position: relative;

    input {
        width: 100%;
        padding: 0.6875rem 2rem 0.6875rem 1.25rem;
        border-radius: 100vmax 0 0 100vmax;
        font-size: 0.875rem;
    }

    .faq__search__reset {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 1.25rem;
        height: 1.25rem;
        border-radius: 50%;
        background-color: var(--c-gray-400);
        font-size: 0.75rem;
        color: var(--c-white);
        position: absolute;
        right: 3.375rem;
        top: 50%;
        translate: 0 -50%;

        &[hidden] {
            display: none;
        }
    }

    .faq__search__submit {
        display: inline-flex;
        align-items: center;
        padding-inline: 1.25rem;
        flex-shrink: 0;
    }
}

.faq__category__title {
    padding: 0.5rem;
    background-color: var(--c-accent);
    color: var(--c-white);
    font-size: 0.875rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    text-align: center;
}

.faq__details {
    border-block-end: 1px solid var(--c-border);
    line-height: 1.5;

    &[hidden] {
        display: none;
    }

    .faq__details__toggle {
        display: flex;
        align-items: flex-start;
        column-gap: 0.56rem;
        padding-block: 1.44rem;
        list-style: none;
        cursor: pointer;

        &::-webkit-details-marker {
            display: none;
        }
        &::marker {
            display: none;
        }

        @media (hover: hover) {
            transition: color 0.3s ease-out;
            will-change: color;

            &:hover {
                color: var(--c-link-hover);
            }
        }
    }

    .faq__details__num {
        width: 2rem;
        flex-shrink: 0;
        font-family: var(--f-en);
        font-weight: 600;
        color: var(--c-accent);
    }

    .faq__details__title {
        font-size: 0.875rem;
        flex: 1;
    }

    .faq__details__icon {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        flex-shrink: 0;
        width: 1.8125rem;
        height: 1.8125rem;
        border-radius: 50%;
        background-color: var(--c-accent);

        span {
            display: inline-block;
            width: 0.625rem;
            height: 1px;
            border-radius: 100vmax;
            background-color: var(--c-white);

            &:nth-of-type(2) {
                rotate: 90deg;
                margin-block-start: -1px;
            }
        }
    }

    .faq__details__contents {
        display: none;
        padding: 1.38rem 1.8125rem 1.38rem 2.56rem;
        border-radius: 0.25rem;
        background-color: var(--c-gray-100);
        font-size: 0.875rem;
        @media (max-width: 767px) {
            padding-inline: 1.38rem;
        }
    }

    &[open] {
        padding-block-end: 0;
        border-block-end: none;

        .faq__details__icon span:nth-of-type(2) {
            display: none;
        }

        .faq__details__contents {
            display: block;
            animation: fadeIn 0.8s ease forwards;
        }
    }
}

.no-match {
    margin-block-start: 1.5rem;
    font-size: 1.25;
    text-align: center;

    &[aria-hidden="true"] {
        display: none;
    }
}

.callback {
    margin-block-start: 3.25rem;
    text-align: center;
}
