@charset "UTF-8";

/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * CONTENTS............目次
 * CHANGE_STYLES.......スタイル変更
 * RECRUIT.............採用について
 * ENTRY...............各職種のエントリーはこちらから
 * FAQ.................よくある質問
 * INTERVIEW...........インタビュー
 * DETAILS.............詳細
 */


/*------------------------------------*\
    $MOVIE
\*------------------------------------*/
@media screen and (min-width: 768px) {
    .main {
        margin-top: 0;
    }

        .main-movie {
            position: relative;
            width: 100%;
            height: 100vh;
            display: flex;
            align-items: center;
            padding-inline: var(--sidePadding);
            overflow: hidden;
        }

            .main-movie__wrapper {
                aspect-ratio: 16 / 9;
                width: 100%;
            }

                .main-movie__wrapper .video-js {
                    position: absolute;
                    width: 100%;
                    height: 100% !important;
                }
}
@media screen and (max-width: 767px) {
    .main-movie {
        width: 100%;
        overflow: hidden;
    }

        .main-movie__wrapper {
            aspect-ratio: 16 / 9;
            width: 100%;
        }

            .main-movie__wrapper .video-js {
                width: 100%;
                height: 100% !important;
            }

            .video-js .vjs-tech {
                aspect-ratio: 16 / 9;

            }

}


    .main-movie__catch {
        position: relative;
        z-index: 1;
        padding-left: .2em;
        margin-inline: auto;
        color: white;
        font-family: var(--fontEn);
        font-size: clamp(4.0rem, calc(100vw * (40 / 375)), 8.0rem);
        font-weight: 600;
        line-height: 1.15;
        letter-spacing: .2em;
        text-align: center;
    }

    @media screen and (max-width: 767px) {
        .main-movie__button {
            position: absolute;
            bottom: calc(100% * (100 / 667));
            right: 0;
            z-index: 2;
            background-color: var(--primaryColor);
            transition: transform .3s var(--linear);
        }
        .main-movie__button.closed { transform: translateX(100%) }

            .main-movie__button__link {
                display: block;
                height: 100px;
                padding-top: .1em;
                color: var(--primaryVariant);
                font-family: var(--fontEn);
                font-size: 1.6rem;
                font-weight: 700;
                line-height: 2.1875;
                letter-spacing: .1em;
                text-align: center;
                writing-mode: vertical-lr;
            }

    }



/*------------------------------------*\
    $CHANGE_STYLES
\*------------------------------------*/
.main-visual__wrapper { height: min(480px, 56.25vw) }


@media screen and (min-width: 768px) {
    .text-with-image__details__inner { padding-top: min(calc(100vw * (60 / 768)), 76px) }
}

    .text-with-image__title.title--large { margin-bottom: 12px }





/*------------------------------------*\
    $RECRUIT
\*------------------------------------*/
.recruit { margin-top: 80px }

    .recruit__name {
        font-size: clamp(3.2rem, calc(100vw * (36 / 375)), 4.2rem);
        font-weight: 300;
        line-height: 1;
        letter-spacing: .05em;
    }
    .text-with-image .recruit__name { margin-bottom: 20px }

    @media screen and (min-width: 768px) {
        .recruit__button { width: min(224px, 100%) }
    }
    @media screen and (max-width: 767px) {
        .recruit__button { width: 100% }
    }


    .recruit__slider-wrapper {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(min(590px, 100%), 1fr));
        grid-column-gap: max(7.5%, 48px);
        grid-row-gap: 64px;
    }

        .recruit__slider {}

            .recruit__slider__container {
                position: relative;
                margin-bottom: clamp(32px, calc(100vw * (32 / 375)), 36px);
            }
            @media screen and (max-width: 767px) {
                .recruit__slider__container { margin-inline: calc((-1 * var(--sidePadding)) / 2) }
            }

                .recruit__slider__inner {
                    aspect-ratio: 592 / 240;
                    display: block;
                    padding-top: calc(100% * (53 / 592));
                    background-repeat: no-repeat;
                    background-position: 50% 0;
                    background-size: cover;
                }
                @media screen and (min-width: 768px) {
                    .recruit__slider__inner { padding-inline: 43px }
                }
                @media screen and (max-width: 767px) {
                    .recruit__slider__inner { padding-inline: 16px }
                }

                    .recruit__slider__job { margin-bottom: 3px }

                    .recruit__slider .recruit__name { margin-bottom: 6px }

                    .recruit__catch { font-weight: 500 }


                @media screen and (min-width: 768px) {
                    .recruit__slider__arrow {
                        position: absolute;
                        top: calc(50% - 24px);
                        width: 48px;
                        height: 48px;
                        border: 1px solid white;
                        border-radius: 100%;
                        background-color: var(--fontSubBlack);
                        background-repeat: no-repeat;
                        background-size: contain;
                    }
                    .recruit__slider__arrow.prev {
                        left: -24px;
                        background-image: url(../images/common/icon-slider-arrow-prev.svg);
                    }
                    .recruit__slider__arrow.next {
                        right: -24px;
                        background-image: url(../images/common/icon-slider-arrow-next.svg);
                    }
                }


            .recruit__slider__options {
                display: flex;
                justify-content: space-between;
                flex-wrap: wrap;
                column-gap: clamp(12px, calc(100vw * (12 / 375)), 16px);
                row-gap: clamp(20px, calc(100vw * (20 / 375)), 24px);
            }

                .recruit__slider__thumbnail {
                    flex-grow: 1;
                    width: 256px;
                }

                    .recruit__slider__thumbnail__list {
                        display: grid;
                        grid-gap: clamp(12px, calc(100vw * (12 / 375)), 16px);
                    }
                    @media screen and (min-width: 768px) {
                        .recruit__slider__thumbnail__list { grid-template-columns: repeat(auto-fill, clamp(48px, calc(100vw * (48 / 375)), 64px)) }
                    }
                    @media screen and (max-width: 767px) {
                        .recruit__slider__thumbnail__list { grid-template-columns: repeat(auto-fill, minmax(48px, 1fr)) }
                    }

                        .recruit__slider__thumbnail__item {
                            aspect-ratio: 1 / 1;
                            cursor: pointer;
                        }
                        .recruit__slider__thumbnail__item img {
                            width: 100%;
                            height: 100%;
                            object-fit: cover;
                        }

                @media screen and (min-width: 768px) {
                    .recruit__slider__link { width: 224px }
                }
                @media screen and (max-width: 767px) {
                    .recruit__slider__link { width: 100% }
                }

                    .recruit__slider__link__item:not(.is-active) { display: none }


/*------------------------------------*\
    $ENTRY
\*------------------------------------*/
@media screen and (min-width: 768px) {
    .recruit__list {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(min(360px, 100%), 1fr));
        grid-column-gap: 5%;
        grid-row-gap: 32px;
    }
}
@media screen and (max-width: 767px) {
    .recruit__list {
        display: flex;
        flex-direction: column;
        row-gap: 32px;
        margin-inline: calc(var(--sidePadding) * -1);
    }
}

    @media screen and (max-width: 767px) {
        .recruit__item {
            width: calc(100% * (359 / 375));
            padding-top: 16px;
            background-color: white;
        }
        .recruit__item:nth-of-type(even) { margin-left: auto }
    }

        .recruit__inner {
            display: flex;
            flex-direction: column;
            width: 100%;
            height: 100%;
        }
        @media screen and (min-width: 768px) {
            .recruit__inner {
                background-color: var(--background3);
                color: white;
                transition:
                    background-color .3s var(--easeOutQuart),
                    color .15s var(--easeOutQuart);
            }
            .recruit__inner:hover {
                background-color: white;
                color: black;
            }
        }
        @media screen and (max-width: 767px) {
            .recruit__inner { color: black }
        }

            .recruit__image {
                position: relative;
                aspect-ratio: 384 / 240;
            }
            .recruit__image::after {
                content: "";
                position: absolute;
                inset: 0;
                background-color: var(--primaryColor);
                mix-blend-mode: soft-light;
                opacity: 0;
                transition: opacity .3s var(--easeOutQuart);
            }
            @media screen and (min-width: 768px) {
                .recruit__inner:hover .recruit__image::after { opacity: 1 }
            }
            @media screen and (max-width: 767px) {
                .recruit__item:not(:nth-of-type(3n + 1)) .recruit__image::after { opacity: 1 }
            }

                .recruit__image :is(picture, img) {
                    width: 100%;
                    height: 100%;
                }
                .recruit__image img { object-fit: cover }


            .recruit__details { padding-top: clamp(18px, calc(100vw * (18 / 375)), 20px) }
            @media screen and (min-width: 768px) {
                .recruit__details {
                    flex-grow: 1;
                    display: flex;
                    flex-direction: column;
                    width: 100%;
                    padding-inline: 24px;
                    padding-bottom: 24px;
                }
                .recruit__details .button { margin-top: auto }
            }
            @media screen and (max-width: 767px) {
                .recruit__details {
                    padding-inline: 32px;
                    padding-bottom: 32px;
                }
            }

                .recruit__title {
                    padding-bottom: 14px;
                    margin-bottom: 12px;
                    border-bottom: 1px solid var(--fontSubBrown);
                    font-family: var(--fontSub);
                    font-size: 1.8rem;
                    font-weight: 500;
                    line-height: calc(24 / 18);
                    letter-spacing: .05em;
                    transition: color .15s var(--easeOutQuart);
                }
                @media screen and (min-width: 1024px) {
                    .recruit__inner:hover .recruit__title { color: var(--fontSubBrown) }
                }

                .recruit__description {
                    margin-bottom: clamp(12px, calc(100vw * (12 / 375)), 18px);
                    font-size: 1.4rem;
                    font-weight: 300;
                    line-height: calc(24 / 14);
                    letter-spacing: .05em;
                }

                .recruit__inner:hover .button {
                    background-position: 0% 50%;
                    color: var(--fontSubBrown);
                }
                .recruit__inner:hover .button::before {
                    background-color: var(--primaryColor);
                    background-image: url(../images/common/icon-nav-arrow.svg);
                }





/*------------------------------------*\
    $FAQ
\*------------------------------------*/
.faq {}

    .faq__list {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(min(590px, 100%), 1fr));
        grid-column-gap: max(7.5%, 48px);
        grid-row-gap: 48px;
    }

        .faq__item {}
            .faq__inner {}

                .faq__question {
                    position: relative;
                    padding-right: clamp(56px, calc(100vw * (80 / 768)), 80px);
                    margin-bottom: 32px;
                }
                .faq__question::before {
                    content: "";
                    position: absolute;
                    top: calc(50% - clamp(24px, calc(100vw * (32 / 768)), 32px));
                    right: 0;
                    width: clamp(48px, calc(100vw * (64 / 768)), 64px);
                    height: clamp(48px, calc(100vw * (64 / 768)), 64px);
                    border-radius: 100%;
                    background-image: url(../images/recruit/icon-question.svg);
                    background-repeat: no-repeat;
                    background-position: 50% 50%;
                    background-size: contain;
                }

                    .faq__question__text {
                        border-radius: 10px;
                        background-color: var(--primaryColor);
                        padding-block: calc(1em + 1px);
                        padding-inline: clamp(16px, calc(100vw * (16 / 375)), 30px);
                        color: var(--fontSubBlack);
                    }


                .faq__answer {
                    position: relative;
                    padding-left: clamp(56px, calc(100vw * (80 / 768)), 80px);
                }
                .faq__answer::before {
                    content: "";
                    position: absolute;
                    top: calc(50% - clamp(24px, calc(100vw * (32 / 768)), 32px));
                    left: 0;
                    width: clamp(48px, calc(100vw * (64 / 768)), 64px);
                    height: clamp(48px, calc(100vw * (64 / 768)), 64px);
                    border-radius: 100%;
                    background-image: url(../images/recruit/icon-answer.svg);
                    background-repeat: no-repeat;
                    background-position: 50% 50%;
                    background-size: contain;
                }

                    .faq__answer__text {
                        border-radius: 10px;
                        background-color: var(--background6);
                        padding-block: calc(1em + 1px);
                        padding-inline: clamp(16px, calc(100vw * (16 / 375)), 30px);
                        color: black;
                    }





/*------------------------------------*\
    $INTERVIEW
\*------------------------------------*/
.interview { margin-top: -16px }

    .interview__header {
        display: flex;
        flex-wrap: wrap;
        column-gap: calc(100% * (320 / 1760));
        justify-content: space-between;
        align-items: end;
        padding-top: 16px;
        padding-inline: var(--sidePadding);
        background-color: var(--fontSubBlack);
    }
    .interview--reverse .interview__header {
        flex-direction: row-reverse;
        column-gap: 0;
    }

        .interview__header__details {
            flex-grow: 1;
            width: max(clamp(400px, calc(100% * (720 / 1760)), 720px), 400px);
            max-width: 100%;
            padding-top: clamp(48px, calc(100vw * (64 / 375)), 88px);
            padding-bottom: clamp(32px, calc(100vw * (32 / 375)), 120px);
        }
        @media screen and (min-width: 768px) {
            .interview__header__details { padding-inline: 50px }
            .interview--reverse .interview__header__details {
                width: calc(100% - max(clamp(400px, calc(100% * (720 / 1760)), 720px), 400px));
                min-width: max(clamp(400px, calc(100% * (720 / 1760)), 720px), 400px);
                padding-left: clamp(50px, calc(100vw * (50 / 375)), 128px);
            }
        }


        .interview__header__image {
            flex-grow: 1;
            width: max(clamp(400px, calc(100% * (720 / 1760)), 720px), 400px);
            max-width: 100%;
        }

            .interview__header__image__inner {
                position: relative;
                aspect-ratio: 800 / 560;
                padding-top: 32px;
                margin-top: 32px;
                margin-right: calc(var(--sidePadding) * -1);
                background-image: linear-gradient(var(--background3), var(--background3));
                background-repeat: no-repeat;
                background-position: 100% 0;
                background-size: 92% 100%;
                box-sizing: content-box;
            }
            .interview--reverse .interview__header__image__inner {
                margin-right: 0;
                margin-left: calc(var(--sidePadding) * -1);
                background-position: 0 0;
            }
            /* .interview__header__image__inner::after {
                content: "";
                position: absolute;
                bottom: 0;
                right: 0;
                width: 100%;
                height: calc(100% - 32px);
                background-color: var(--primaryColor);
                mix-blend-mode: soft-light;
            } */
            .interview__header__image__inner img {
                width: 100%;
                height: 100%;
                object-fit: cover;
            }


    .interview__block {}
        .interview__block__list {}

            .interview__block__item {
                display: flex;
                flex-wrap: wrap;
                column-gap: 10%;
                row-gap: 48px;
                margin-block: clamp(96px, calc(100vw * (96 / 375)), 144px);
            }
            .interview:not(.interview--reverse) .interview__block__item:nth-of-type(even) { flex-direction: row-reverse }
            .interview--reverse .interview__block__item:nth-of-type(odd) { flex-direction: row-reverse }

                .interview__block__image {
                    position: relative;
                    flex-grow: 1;
                    aspect-ratio: 1 / 1;
                    width: max(37.5%, 240px);
                }
                /* .interview__block__image::after {
                    content: "";
                    position: absolute;
                    inset: 0;
                    background-color: var(--primaryColor);
                    mix-blend-mode: soft-light;
                } */
                .interview__block__image img {
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                }

                .interview__block__text {
                    flex-grow: 1;
                    width: max(52.5%, 336px);
                }





/*------------------------------------*\
    $DETAILS
\*------------------------------------*/
@media screen and (max-width: 767px) {
    .recruit__details { margin-inline: calc(var(--sidePadding) / -2) }
}

    .recruit__details__tab {}

        .recruit__details__tab__list {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            grid-column-gap: clamp(4px, calc(100vw * (4 / 375)), 8px);
        }

            .recruit__details__tab__item label {
                position: relative;
                display: block;
                height: 100%;
                padding-top: clamp(16px, calc(100vw * (16 / 375)), 22px);
                padding-left: .1em;
                padding-bottom: clamp(28px, calc(100vw * (28 / 375)), 34px);
                background-color: var(--primaryColor);
                color: var(--fontSubBrown);
                font-size: clamp(1.4rem, calc(100vw * (14 / 375)), 2.0rem);
                font-weight: 500;
                line-height: 1.2;
                letter-spacing: .1em;
                text-align: center;
                cursor: pointer;
                transition: background-color .3s var(--easeOutQuart);
            }
            .recruit__details__tab__item label:hover,
            .flag-01:checked ~ .recruit__details__tab .recruit__details__tab__item label.tab-01,
            .flag-02:checked ~ .recruit__details__tab .recruit__details__tab__item label.tab-02,
            .flag-03:checked ~ .recruit__details__tab .recruit__details__tab__item label.tab-03 { background-color: white }
            .recruit__details__tab__item label::before,
            .recruit__details__tab__item label::after {
                content: "";
                position: absolute;
                bottom: 22px;
                height: 2px;
            }
            .recruit__details__tab__item label::before {
                left: 50%;
                transform: translateX(-50%);
                width: calc(100% * (374 / 422));
                background-color: white;
            }
            .recruit__details__tab__item label::after {
                right: calc(100% * (24 / 422));
                width: 0;
                background-color: var(--primaryColor);
                transition: width .3s var(--linear);
            }
            .recruit__details__tab__item label:hover::after,
            .flag-01:checked ~ .recruit__details__tab .recruit__details__tab__item label.tab-01::after,
            .flag-02:checked ~ .recruit__details__tab .recruit__details__tab__item label.tab-02::after,
            .flag-03:checked ~ .recruit__details__tab .recruit__details__tab__item label.tab-03::after {
                right: auto;
                left: calc(100% * (24 / 422));
                width: calc(100% * (374 / 422));
            }


    .recruit__details__main {}

        .recruit__details__list { display: grid }

            .recruit__details__item {
                grid-area: 1 / -1;
                opacity: 0;
                pointer-events: none;
            }
            .flag-01:checked ~ .recruit__details__main .recruit__details__item.target-01,
            .flag-02:checked ~ .recruit__details__main .recruit__details__item.target-02,
            .flag-03:checked ~ .recruit__details__main .recruit__details__item.target-03 {
                opacity: 1;
                pointer-events: visible;
            }

                .recruit__details__header {
                    display: flex;
                    flex-wrap: wrap;
                }

                    .recruit__details__image {
                        flex-grow: 1;
                        width: min(416px, 100%);
                    }

                        .recruit__details__image__inner {
                            height: clamp(200px, calc(100vw * (200 / 375)), 288px);
                            min-height: 100%;
                        }
                        .recruit__details__image__inner img {
                            width: 100%;
                            height: 100%;
                            object-fit: cover;
                            object-position: 50% 0;
                        }


                    .recruit__details__themes {
                        flex-grow: 1;
                        width: calc(100% - 416px);
                        min-width: 50%;
                        max-width: 100%;
                        padding-top: clamp(48px, calc(100vw * (48 / 375)), 80px);
                        padding-inline: clamp(24px, calc(100vw * (24 / 375)), 64px);
                        padding-bottom: clamp(48px, calc(100vw * (48 / 375)), 74px);
                        background-color: var(--fontSubBlack);
                    }

                        .recruit__details__title {
                            margin-bottom: calc(1em * (20 / 30));
                            font-size: clamp(2.0rem, calc(100vw * (20 / 375)), 3.0rem);
                            font-weight: 300;
                            line-height: 1;
                        }


                .recruit__details__table {
                    background-color: white;
                    padding-top: clamp(48px, calc(100vw * (48 / 375)), 80px);
                    padding-inline: clamp(24px, calc(100vw * (24 / 375)), 112px);
                    padding-bottom: clamp(64px, calc(100vw * (64 / 375)), 117px);
                    color: black;
                }

                    .recruit__details__table__list {
                        margin-bottom: clamp(48px, calc(100vw * (48 / 375)), 80px);
                        border-bottom: 1px solid var(--background1);
                    }

                        .recruit__details__table__item { border-top: 1px solid var(--background1) }

                            .recruit__details__column {
                                display: flex;
                                flex-wrap: wrap;
                                width: 100%;
                            }

                                .recruit__details__label {
                                    flex-grow: 1;
                                    width: min(352px, 100%);
                                    min-height: calc(clamp(64px, calc(100vw * (64 / 375)), 104px) + 2px);
                                    border-top: 2px solid var(--background1);
                                }

                                    .recruit__details__label span {
                                        position: relative;
                                        display: flex;
                                        align-items: center;
                                        height: 100%;
                                        padding-inline: clamp(12px, calc(100vw * (12 / 375)), 20px);
                                        font-size: 1.6rem;
                                        letter-spacing: .1em;
                                        white-space: nowrap;
                                    }

                                    .recruit__details__label span::before {
                                        content: "";
                                        position: absolute;
                                        top: calc(50% - 1em);
                                        left: clamp(6px, calc(100vw * (6 / 375)), 10px);
                                        width: 2px;
                                        height: 2em;
                                        background-color: var(--primaryColor);
                                    }

                                .recruit__details__content {
                                    flex-grow: 1;
                                    width: calc(100% - 352px);
                                    min-width: 50%;
                                    max-width: 100%;
                                    min-height: calc(clamp(64px, calc(100vw * (64 / 375)), 104px) + 2px);
                                    padding-block: 10px;
                                    padding-inline: clamp(12px, calc(100vw * (12 / 375)), 14px);
                                }

                                    .recruit__details__inline {
                                        display: flex;
                                        align-items: center;
                                        flex-wrap: wrap;
                                        column-gap: 20px;
                                        row-gap: 4px;
                                        height: 100%;
                                    }
                                    .recruit__details__inline > p:not(:last-of-type) { white-space: nowrap }





