@charset "utf-8";

/* 色の変数　　color: var(--blue); */
:root {
    --white: #fff;
    --white02: rgba(255, 255, 255, 0.2);
    --black: #0a0d0d;
    --black02: rgba(0, 0, 0, 0.3);
    --black03: rgba(0, 0, 0, 0.2);
    --red01: #ae0112;
    --red02: rgba(174, 1, 18, 0.5);
    --yellow01: #ffd717;
    --gray: #e7e9e6;

    /* ぼかし */
    --blur10: 10px;

    /* 書式 */
    --notoSans: "Noto Sans JP", sans-serif;
    --DelaGothic: "Dela Gothic One", sans-serif;


    /* 文字サイズ */
    --font16: 1.6rem;
    --font17: 1.7rem;
    --font19: 1.9rem;
    --font22: 2.2rem;
    --font26: 2.6rem;
    --font30: 3rem;
    --font33: 3.35rem;
    --font40: 4rem;
    --font63: 6.34rem;
    --font82: 8.2rem;

    /* ウェイト */
    --weight400: 400;
    --weight500: 500;
    --weight700: 700;

    /* 行間 */
    --lineHight120: 1.2;
    --lineHight20: 2.0;

    /* 文字間 */
    --fontSpace005: 0.05em;

    /* トランジションの変数　 */
    --transitionBase: all 0.3s ease-in-out;

    /* 角丸の変数　 */
    --borderRadiusBtn: 1000px;
    --borderRadius20: 20px;
    --borderRadius10: 10px;
    --borderRadiusCircle: 50%;
}




@media screen and (max-width: 1024px) {
    :root {
        /* サイズ */
        --font16: 1.5rem;
        --font17: 1.6rem;
        --font19: 1.6rem;
        --font22: 2rem;
        --font26: 2.3rem;
        --font30: 2.4rem;
        --font33: 2.7rem;
        --font40: 3rem;

        --font82: 6.6rem;
    }
}

@media screen and (max-width: 950px) {
    :root {
        --font63: 4rem;
    }
}

@media screen and (max-width: 680px) {
    :root {
        --font82: 5.3rem;
    }
}

@media screen and (max-width: 550px) {
    :root {
        --font82: 4.5rem;
    }
}


@media screen and (max-width: 480px) {
    :root {
        /* サイズ */
        --font16: 1.4rem;
        --font17: 1.5rem;
        --font19: 1.5rem;
        --font22: 1.6rem;
        --font26: 1.9rem;
        --font30: 2rem;
        --font33: 2.4rem;
        --font40: 2.1rem;
        --font63: 3rem;
        --font82: 4rem;
    }
}

@media screen and (max-width: 374px) {
    :root {
        --font82: 2.8rem;
    }
}




/*******************************************
common
*******************************************/

body {
    color: var(--black);
    font-family: var(--notoSans);
    font-weight: var(--weight700);
    font-size: var(--font16);
}

.section {
    position: relative;
}


.section-triangle {
    &::before {
        position: absolute;
        content: "";
        width: 100%;
        aspect-ratio: 1600/300;
        max-height: 500px;
        min-height: 100px;
        clip-path: polygon(0 0, 0 100%, 100% 0);
        background-color: var(--black02);
        top: 0;
        left: 0;
        z-index: 0;
    }
}

.section__inner {
    width: min(100%, 1200px);
    margin: 0 auto;
    position: relative;
}

.section__ttl {
    font-size: var(--font82);
    color: var(--white);
    display: flex;
    flex-direction: column;
    gap: 15px;

    .ja {
        position: relative;
        font-size: max(0.2318em, 12px);
        padding-left: 1.3em;

        &::before {
            position: absolute;
            content: "";
            width: 0.9em;
            height: 2px;
            top: 50%;
            left: 0;
            background-color: var(--white);
        }
    }
}

.section__ttl--red {
    color: var(--red01);

    .ja {
        color: var(--black);

        &::before {

            background-color: var(--black);
        }
    }
}

.en {
    font-family: var(--DelaGothic);
}

p {
    font-size: var(--font16);
    line-height: 1.625;
    color: var(--black);
    text-align: justify;
    font-weight: var(--weight500);
}

.push {
    display: inline-block;
}

.block350,
.block1024 {
    display: none;
}

.parts {
    position: absolute;
}

@media screen and (max-width:1210px) {
    .section__inner {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
}

@media screen and (max-width:1200px) {
    .none1200 {
        display: none;
    }
}

@media screen and (max-width:1024px) {
    .push1024 {
        display: inline-block;
    }

    .none1024 {
        display: none;
    }

    .block1024 {
        display: block;
    }
}

@media screen and (max-width:768px) {
    .push768 {
        display: inline-block;
    }

    .none768 {
        display: none;
    }
}

@media screen and (max-width:480px) {
    .push480 {
        display: inline-block;
    }

    .none480 {
        display: none;
    }

    .section__ttl {
        gap: 5px;
    }
}

@media screen and (max-width:350px) {
    .block350 {
        display: block;
    }
}



/*******************************************
btn
*******************************************/
.btn-outer {
    width: 100%;
    height: 65px;
    cursor: pointer;
}

.btn-outer210 {
    width: min(100%, 210px);
}

.btn-outer240 {
    width: min(100%, 240px);
}

.btn {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    border-radius: var(--borderRadiusBtn);
    background-color: var(--white);
    color: var(--black);
    text-align: center;
    font-size: 18px;
    border: 2px solid var(--black);
    line-height: var(--lineHight120);
    transition: var(--transitionBase);

    &:hover {
        background-color: var(--black);
        color: var(--white);

        .arrow {
            background-color: var(--white);

            span {

                &::before,
                &::after {
                    background-color: var(--white);
                }
            }
        }
    }
}

.arrow {
    position: absolute;
    top: 50%;
    right: 8%;
    width: 14px;
    height: 2px;
    background-color: var(--black);
    transition: var(--transitionBase);

    span {
        position: relative;
        display: block;
        width: 100%;
        height: 100%;

        &::before,
        &::after {
            position: absolute;
            content: "";
            width: 50%;
            height: 2px;
            top: 0;
            right: 0;
            background-color: var(--black);
            transition: var(--transitionBase);
        }

        &::before {
            transform-origin: bottom right;
            transform: translateY(15%) rotate(45deg);
        }

        &::after {
            transform-origin: top right;
            transform: translateY(-15%) rotate(-45deg);
        }
    }
}

.btn-red {
    background-color: var(--red01);
    color: var(--yellow01);
    border: 2px solid var(--yellow01);

    .arrow {
        background-color: var(--yellow01);

        span {

            &::before,
            &::after {
                background-color: var(--yellow01);
            }
        }
    }

    &:hover {
        background-color: var(--yellow01);
        color: var(--red01);
        border: 2px solid var(--red01);

        .arrow {
            background-color: var(--red01);

            span {

                &::before,
                &::after {
                    background-color: var(--red01);
                }
            }
        }
    }
}

.btn-red02 {
    background-color: var(--red01);
    color: var(--white);
    border: 2px solid var(--red01);

    .arrow {
        background-color: var(--white);

        span {

            &::before,
            &::after {
                background-color: var(--white);
            }
        }
    }

    &:hover {
        background-color: var(--white);
        color: var(--red01);

        .arrow {
            background-color: var(--white);

            span {

                &::before,
                &::after {
                    background-color: var(--white);
                }
            }
        }
    }
}

.btn-yellow {
    background-color: var(--yellow01);
    color: var(--red01);
    border: 2px solid var(--red01);

    .arrow {
        background-color: var(--red01);

        span {

            &::before,
            &::after {
                background-color: var(--red01);
            }
        }
    }

    &:hover {
        background-color: var(--red01);
        color: var(--yellow01);
        border: 2px solid var(--yellow01);

        .arrow {
            background-color: var(--yellow01);

            span {

                &::before,
                &::after {
                    background-color: var(--yellow01);
                }
            }
        }
    }
}

.btn-black {
    background-color: var(--black);
    color: var(--white);
    border: 2px solid var(--black);

    .arrow {
        background-color: var(--white);

        span {

            &::before,
            &::after {
                background-color: var(--white);
            }
        }
    }

    &:hover {
        background-color: var(--white);
        color: var(--black);

        .arrow {
            background-color: var(--black);

            span {

                &::before,
                &::after {
                    background-color: var(--black);
                }
            }
        }
    }
}

@media screen and (max-width: 768px) {
    .btn {
        margin: auto;
        max-width: 280px;
        &:hover {
            background-color: var(--white);
            color: var(--black);

            .arrow {
                background-color: var(--black);

                span {

                    &::before,
                    &::after {
                        background-color: var(--black);
                    }
                }
            }
        }
    }

    .btn-red {
        &:hover {
            background-color: var(--red01);
            color: var(--yellow01);
            border: 2px solid var(--yellow01);

            .arrow {
                background-color: var(--yellow01);

                span {

                    &::before,
                    &::after {
                        background-color: var(--yellow01);
                    }
                }
            }
        }
    }

    .btn-red02 {

        &:hover {
            background-color: var(--red01);
            color: var(--white);

            .arrow {
                background-color: var(--red01);

                span {

                    &::before,
                    &::after {
                        background-color: var(--red01);
                    }
                }
            }
        }
    }

    .btn-yellow {
        &:hover {
            background-color: var(--yellow01);
            color: var(--red01);
            border: 2px solid var(--red01);

            .arrow {
                background-color: var(--red01);

                span {

                    &::before,
                    &::after {
                        background-color: var(--red01);
                    }
                }
            }
        }
    }

    .btn-black {
        &:hover {
            background-color: var(--black);
            color: var(--white);

            .arrow {
                background-color: var(--white);

                span {

                    &::before,
                    &::after {
                        background-color: var(--white);
                    }
                }
            }
        }
    }



}

@media screen and (max-width: 480px) {
    .btn-outer {
        height: 50px;
    }
}









/*******************************************
header
*******************************************/

.headerBox {
    width: 100%;
    background-color: var(--red01);
    transition: var(--transitionBase);
    padding: 0 140px 0 20px;
    height: 65px;
    position: fixed;
    width: 100%;
    z-index: 50;
}

.headerBox__inner {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    transform: translateY(50%);
    position: relative;
    z-index: 51;
}


.header__logo {
    position: relative;
    z-index: 40;
    width: min(100%, 305px);
    margin-right: 20px;

    & a {
        display: inline-block;
        width: 100%;
        height: 100%;
        transition: var(--transitionBase);
    }

    & a:hover {
        opacity: .7;
    }
}

.header-right {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 20px;
}

.entryBtn-box {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex: 1;
    gap: 20px;
}

.hamburger {
    position: fixed;
    top: 65px;
    right: 20px;
    display: block;
    width: 100px;
    aspect-ratio: 100/65;
    cursor: pointer;
    border-radius: 30px;
    z-index: 100;
    transform: translateY(-50%);
    transition: var(--transitionBase);
    background-color: var(--black);

    & .line {
        position: absolute;
        width: 40%;
        height: 2px;
        left: 50%;
        transform: translate(-50%, -50%);
        transition: .4s;
        background-color: var(--white);

        &:nth-of-type(1) {
            top: 38%;
        }

        &:nth-of-type(2) {
            top: 50%;
        }

        &:nth-of-type(3) {
            top: 62%;
        }
    }
}




.active {


    .line {
        background-color: var(--white);

        &:nth-of-type(1) {
            top: 50%;
            transform: translate(-50%, -50%) rotate(45deg);
        }

        &:nth-of-type(2) {
            opacity: 0;
        }

        &:nth-of-type(3) {
            top: 50%;
            transform: translate(-50%, -50%) rotate(-45deg);
        }
    }
}

@media screen and (max-width:950px) {
    .headerBox {
        position: relative;
    }

    .headerBox__inner {
        transform: none;
    }

    .header__logo {
        /* ヘッダーの高さの半分 */
        transform: translateY(32.5px);
    }

    .entryBtn-box {
        position: fixed;
        width: 100%;
        bottom: 0;
        left: 0;
        justify-content: center;
        padding: max(2%, 5px);
        backdrop-filter: var(--blur10);
        gap: 10px;
        opacity: 0;
        visibility: hidden;
        transition: var(--transitionBase);

        .btn-outer {
            width: calc((100% - 10px)/2);
        }

        &.show {
            opacity: 1;
            visibility: visible;
        }
    }
}

@media screen and (max-width:768px) {
    .header__logo {
        width: min(100%, 250px);
    }
}

@media screen and (max-width:580px) {
    .hamburger {
        width: 80px;
    }
}

@media screen and (max-width:480px) {
    .headerBox {
        padding: 0 5px;
        height: 45.5px;
    }

    .header__logo {
        width: min(100%, 200px);
        transform: translateY(20.25px);
    }

    .hamburger {
        width: 70px;
        top: 45.5px;
        right: 5px;
    }

    .entryBtn-box {
        gap: 5px;

        .btn-outer {
            width: calc((100% - 5px)/2);
            height: 50px;
        }

        .btn {
            font-size: 14px;

            .arrow {
                width: 12px;
            }
        }
    }
}

@media screen and (max-width:374px) {
    .entryBtn-box {
        .btn {
            font-size: 11px;

        }
    }
}

/*******************************************
header (nav)
*******************************************/
.headerNav {
    position: fixed;
    top: 0;
    left: 101%;
    width: 100vw;
    height: 100vh;
    transition: var(--transitionBase);
    z-index: 100;
}



.headerNav__list {
    background-color: var(--white);
    width: 40%;
    margin: 0 0 0 auto;
    height: 100vh;
    padding: max(10vh, 80px) 50px 1vh;

    .btn-outer {
        width: min(100%, 400px);
    }
}

.headerNav__item {

    &:nth-child(-n+5) {
        margin-bottom: 3vh;

        a {
            font-size: 32px;
            display: flex;
            flex-direction: column;
            gap: 0.2em;
            transition: var(--transitionBase);

            &:hover {
                color: var(--red01);
            }
        }
    }

    &:nth-child(5) {
        margin-bottom: 6vh;
    }

    &:nth-child(6) {
        margin-bottom: max(2vh, 20px);

    }

    .ja {
        font-size: 0.5em;
    }
}

.active {
    .headerNav {
        left: 0;
        background-color: var(--red02);
        width: 100vw;
        height: 100vh;
    }

}

@media screen and (max-width:950px) {

    .headerNav__item {

        &:nth-child(-n+5) {

            a {
                font-size: 20px;
            }
        }
    }
}

@media screen and (max-width:768px) {
    .headerNav__list {
        width: 50%;
        padding: max(10vh, 50px) 20px 1vh;

    }

    .headerNav__item {

        &:nth-child(-n+5) {

            a {
                &:hover {
                    color: var(--black);
                }
            }
        }
    }
}

@media screen and (max-width:580px) {
    .headerNav__item {

        &:nth-child(-n+5) {

            a {
                font-size: 18px;
            }
        }

        .btn {
            font-size: 15px;
        }
    }
}

@media screen and (max-width:480px) {
    .headerNav__list {
        width: 60%;
        padding: max(10vh, 50px) 23px 1vh;

        .btn-outer {
            height: 50px;
        }
    }

    .headerNav__item {

        &:nth-child(-n+5) {

            a {
                font-size: 18px;
            }
        }

        .btn {
            font-size: 12px;
        }
    }
}

@media screen and (max-width:360px) {
    .headerNav__list {
        width: 70%;
    }
}










/*******************************************
mv
*******************************************/
.mv {
    position: relative;
    width: 94.13%;
    margin: 65px auto 0;
    z-index: 2;
}

.mv__bg {
    transform: translateY(73px);
}

@media screen and (max-width:950px) {
    .mv {
        margin-top: 0;
    }
}

@media screen and (max-width:768px) {
    .mv__bg {
        transform: translateY(60px);
    }
}



/*******************************************
about
*******************************************/

.about {
    background-color: var(--red01);

    .section__inner {
        width: min(100%, 1600px);
        padding: max(20.5%, 140px) 0 clamp(40px, 15.75%, 252px);
    }

    .bg-parts {
        position: absolute;
        top: 0;
        left: 51%;
        transform: translateY(-37%);
        width: 36.63%;
        z-index: 3;
    }
}

.about__inner {
    width: min(100%, 1400px);
    margin-left: auto;
}

.aboutFlex {
    display: flex;
    justify-content: flex-end;
    margin-top: max(4.643%, 30px);
    gap: 20px;
}

.aboutFlex__txt {
    flex: 1;

    p {
        color: var(--white);
        font-size: var(--font22);
        line-height: 2.227;

        &:last-child {
            margin-top: 1.4em;
        }
    }
}

.aboutFlex__img {
    width: min(100%, 754px);
    margin-top: -14.5%;
}



@media screen and (max-width:1410px) {
    .about {

        .section__inner {
            padding-left: 20px !important;
            padding-right: 0px !important;
        }
    }

    .aboutFlex__img {
        width: 53.48vw;
    }

}

@media screen and (max-width:1100px) {
    .aboutFlex__img {
        margin-top: 0;
    }
}

@media screen and (max-width:768px) {
    .about {

        .section__inner {
            padding-right: 20px !important;
        }

        .bg-parts {
            display: none;
        }
    }

    .aboutFlex {
        flex-direction: column;
        gap: 20px;
    }

    .aboutFlex__img {
        width: 100%;
    }


}

/*******************************************
job
*******************************************/
.job {
    &::before {
        transform: scaleX(-1);
        background-color: var(--yellow01);
    }

    .section__inner {
        padding: clamp(40px, 6%, 95px) 0 clamp(90px, 11.6%, 185px);
    }

}

.jobSwiper {
    position: relative;
    width: min(100%, 950px);
    margin: max(6.25%, 38px) auto 0;

    .parts {
        width: clamp(200px, 34.3vw, 438px);
        bottom: 0;
        right: 0;
        transform: translate(38%, 48%);
        z-index: 3;
    }
}

/* タブ */
.jobSwiper-tab__list {
    .swiper-slide-thumb-active {

        .btn {
            background-color: var(--black);
            color: white;

            .arrow {
                background-color: var(--white);

                span {

                    &::before,
                    &::after {
                        background-color: var(--white);
                    }
                }


            }
        }
    }
}

.jobSwiper-tab__item {
    .arrow {
        transform: rotate(90deg);
    }
}


/* コンテナ */
.jobSwiper-cont {
    margin-top: 55px;
    overflow: visible;
}

.jobSwiper-cont__list {
    .swiper-slide {
        border: 5px solid var(--black);
        padding: 15px;
        position: relative;
    }
}

.jobSwiper-cont__item {
    border: 2px solid var(--black);
    padding: 20px 48px 20px 20px;
    display: flex;


    .img {
        width: min(100%, 390px);
        margin-right: 53px;
    }
}

.jobSwiperTxt {
    flex: 1;
    padding-top: 25px;
}

.jobSwiperTxt__detail {
    dt {
        position: relative;
        font-size: var(--font40);
        color: var(--red01);
        padding-left: 1.5em;

        &::before {
            position: absolute;
            content: "";
            background-image: url(../img/job/icon01.png);
            background-size: contain;
            background-repeat: no-repeat;
            width: 1.2em;
            aspect-ratio: 240/195;
            top: 0;
            left: 0;
            transform: translateY(15%);
        }

    }

    dd {
        margin: 25px 0 40px;
    }
}

.jobSwiper-cont__item02 {
    .jobSwiperTxt__detail {
        dt {
            &::before {
                background-image: url(../img/job/icon02.png);
            }

        }
    }
}

.jobSwiper-cont__item03 {
    .jobSwiperTxt__detail {
        dt {
            &::before {
                background-image: url(../img/job/icon03.png);
            }

        }
    }
}

.btn-outer-job {
    width: min(100%, 275px);

    a {
        font-size: var(--font19);
    }
}

.jobSwiper__number {
    position: absolute;
    top: 0;
    left: 0;
    transform: translate(-20%, -26%);
    color: var(--black);
    font-size: var(--font63);
    width: max(1.389em, 50px);
    aspect-ratio: 1;

    span {
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
        aspect-ratio: 1;
        line-height: 1;
        font-weight: var(--weight400);
        z-index: 2;
        transform: translateY(-4%);
    }

    &::before,
    &::after {
        position: absolute;
        content: "";
        width: 100%;
        aspect-ratio: 1;
        top: 0;
        left: 0;
    }

    &::before {
        background-color: var(--black);
        transform-origin: bottom left;
        transform: rotate(10deg);
        z-index: 0;
    }

    &::after {
        background-image: url(../img/job/number-flame.png);
        background-size: contain;
        background-repeat: no-repeat;
        z-index: 1;
    }

}

@media screen and (max-width: 1100px) {
    .jobSwiper {

        .parts {
            transform: translate(5%, 48%);
        }
    }

}

@media screen and (max-width: 950px) {
    .jobSwiper-cont__item {
        .img {
            width: min(100%, 300px);
            margin-right: 30px;
        }
    }

    .jobSwiperTxt__detail {
        dd {
            margin: 15px 0 30px;
        }
    }

    .jobSwiper__number {
        transform: translate(-20%, -35%);
    }
}

@media screen and (max-width: 768px) {

    .jobSwiper-tab__list {

        .swiper-slide {
            height: 50px;
        }
    }

    .jobSwiper-cont__item {
        flex-direction: column;
        padding: 20px;

        .img {
            width: min(100%, 300px);
            margin: 0 auto;
        }
    }

    .jobSwiperTxt {
        padding-top: 15px;
        width: min(100%, 500px);
        margin: 0 auto;
    }

    .jobSwiperTxt__detail {
        dd {
            margin: 10px 0 30px;
        }
    }
}

@media screen and (max-width: 480px) {
    .jobSwiper-cont__list {
    .swiper-slide {
        padding: 5px;
        }
    }
    .jobSwiper-tab__list {

        .swiper-slide {
            height: 40px;
        }
    }f


    .jobSwiper-cont {
        margin-top: 35px;
        overflow: visible;
    }
}

@media screen and (max-width: 420px) {
    .jobSwiper {

        .parts {
            transform: translate(5%, 60%);
        }
    }

    .jobSwiper-tab__item {
        font-size: 13px;

        .arrow {
            right: 6%;
            width: 12px;
        }
    }

}

@media screen and (max-width: 374px) {
    .jobSwiper-tab__item {
        font-size: 12px;

        .arrow {
            width: 12px;
        }
    }
}


/*******************************************
interview
*******************************************/
.interview {
    background-color: var(--gray);

    &::before {
        top: auto;
        bottom: 0;
        transform: scaleY(-1);
        background-color: var(--black03);
    }

    .section__inner {
        padding: clamp(60px, 9.5%, 165px) 0 clamp(40px, 8.54%, 130px);
    }

    .section__ttl {
        color: var(--black);

        .ja::before {
            background-color: var(--red01);
        }

    }
}

.interview-bg {
    &::after {
        position: absolute;
        content: "";
        width: 100%;
        aspect-ratio: 3200/208;
        min-height: 33px;
        background-image: url(../img/interview/bg-parts01.png);
        background-size: clamp(500px, 100%, 1600px);
        background-repeat: repeat-x;
        top: 0;
        left: 50%;
        transform: translate(-50%, -20%);
    }
}


.staff__list {
    display: flex;
    justify-content: center;
    margin-top: max(5%, 30px);
    gap: 73px;
}

.staff__item {
    position: relative;
    cursor: pointer;
    transition: var(--transitionBase);

    .btn-black {
        &:hover {
            background-color: var(--black);
            color: var(--white);

            .arrow {
                background-color: var(--white);

                span {

                    &::before,
                    &::after {
                        background-color: var(--white);
                    }
                }
            }
        }
    }

    &:hover {
        opacity: .7;
    }

    &:nth-child(2) {
        .staff__name {
            color: var(--red01);

            .inner {
                background-color: var(--yellow01);
            }
        }
    }
}

.staff__name {
    position: absolute;
    top: 7%;
    left: 0;
    font-size: 33.5px;
    font-weight: var(--weight500);
    color: var(--white);
    width: 27.04%;
    aspect-ratio: 1;
    background-color: var(--white);
    border: 2px solid var(--black);
    border-radius: var(--borderRadiusCircle);
    display: flex;
    justify-content: center;
    align-items: center;

    .inner {
        position: relative;
        width: 90%;
        aspect-ratio: 1;
        background-color: var(--red01);
        display: flex;
        justify-content: center;
        align-items: center;
        border-radius: var(--borderRadiusCircle);
        border: 1px solid var(--black);

        &::before {
            position: absolute;
            content: "さん";
            font-size: 0.716em;
            top: 50%;
            right: 0;
            transform: scale(0.6) translate(-10%, 40%);
        }
    }

    .name {
        transform: translateY(-10%);
    }

    .scale08 {
        display: block;
        transform: translateY(-10%) scaleX(0.8);
        letter-spacing: -0.04em;
    }

}

.btn-outer-interview {
    margin-top: -17%;
}

@media screen and (max-width:1200px) {
    .staff__list {
        gap: 30px;
    }

    .staff__name {
        font-size: 25px;
    }
}

@media screen and (max-width:1024px) {
    .staff__list {
        width: min(100%, 600px);
        flex-wrap: wrap;
        gap: 30px 60px;
        margin: 65px auto 0;
    }

    .staff__item {
        width: calc((100% - 60px)/2);
    }
}

@media screen and (max-width:630px) {
    .staff__name {
        font-size: 3.5vw;
    }
}

@media screen and (max-width:580px) {
    .interview-bg {
        &::after {
            min-height: 55px;
            background-size: auto 100%; 
        }
    }
    .staff__list {
        flex-direction: column;
        align-items: center;
        width: min(100%, 400px);

        gap: 30px;
    }

    .staff__item {
        width: 100%;
    }

    .staff__name {
        font-size: 35px;
    }
}

@media screen and (max-width:480px) {
    .staff__list {
        width: min(100%, 300px);
    }

    .staff__item:hover {
        opacity: 1;
    }

    .staff__name {
        font-size: 28px;
    }
}

@media screen and (max-width:335px) {
    .staff__name {

        .scale08 {
            font-size: 8.2vw;
        }
    }
}


/*******************************************
modal
*******************************************/

/* 共通
ーーーーーーーーーーーーーーーーーーー */
.no-scroll {
    overflow: hidden;

    body {
        overflow: scroll;
    }
}

.modal {
    opacity: 0;
    visibility: hidden;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100vw;
    height: auto;
    background-color: var(--gray);
    z-index: -100;
    overflow: auto;
    transition: var(--transitionBase);
}

.modalBox-outer {
    position: absolute;
    width: 100vw;
    height: auto;
    top: 0;
    left: 50%;
    opacity: 0;
    visibility: hidden;
    transform: translate3d(-50%, 10%, 0);
    transition: var(--transitionBase);
    padding: clamp(40px, 10%, 140px) 0;
    z-index: -100;
    overflow: hidden;
    /* display: none; */
}

.modalBox {
    position: relative;
    margin: 0 auto;
    background-color: var(--gray);
    height: auto;
    border-radius: var(--borderRadius20);
}

.active {
    opacity: 1;
    visibility: visible;
    z-index: 1000;

    .show.modalBox-outer {
        opacity: 1;
        visibility: visible;
        transform: translate3d(-50%, 0, 0);
        z-index: 1001;
        /* display: block; */
    }
}

.modal__inner {
    width: min(100%, 850px);
    margin: 0 auto;
    padding: 65px 0;
}



.btn-modal {
    position: relative;
    margin: 0 auto;

    a {

        &::before,
        &::after {
            position: absolute;
            content: "";
            width: 1.5em;
            height: 2px;
            background-color: var(--white);
            top: 50%;
            right: 10%;
            transition: var(--transitionBase);
        }

        &::before {
            transform: translateY(-50%) rotate(45deg);
        }

        &::after {
            transform: translateY(-50%) rotate(-45deg);
        }

        &:hover {

            &::before,
            &::after {
                background-color: var(--red01);
            }

        }
    }

}



@media screen and (max-width:1024px) {
    .modal__inner {
        padding: 80px 15px;
    }

    .modalClose-top {
        top: 10px;
        right: 10px;
        transform: none;
    }
}

@media screen and (max-width:1000px) {
    .modalBox {
        width: 95%;
    }
}

@media screen and (max-width:768px) {
    .modal__inner {
        padding: 60px 15px;
    }

    .modalClose-top {
        width: 40px;

        &:hover {
            background-color: var(--red01);

            &::before,
            &::after {
                background-color: var(--white);
            }

        }
    }

    .btn-modal {

        a {


            &:hover {

                &::before,
                &::after {
                    background-color: var(--white);
                }

            }
        }

    }
}

/* 共通 終わり
ーーーーーーーーーーーーーーーーーーー */


.modalBox-outer {
    padding: 0 0 10% 0;

    &.interview-bg::after {
        top: min(6.07%, 50px);
        transform: translate(-50%, 0px);
    }
}

.modalBox {
    width: 100%;

}

.modalMv {
    padding: clamp(100px, 16%, 255px) 0 25px 0;
    background-color: var(--gray);
    overflow: hidden;

    &::before {
        top: auto;
        bottom: 0;
        transform: scale(-1);
        background-color: var(--black03);
    }
}


.modal__ttl {
    font-size: 55px;
    font-family: var(--DelaGothic);

    .number {
        color: var(--red01);
    }
}

.modalMv__flex {
    display: flex;
    margin-top: 20px;

    .img {
        width: min(100%, 524px);
        margin: -18% 35px 0 0;
        z-index: 1;
    }
}

.modalMv__txtBox {
    flex: 1;
}

.modalMv__detail {
    display: flex;
    flex-direction: column;
    gap: 15px;
    font-size: var(--font33);
    margin-bottom: 26px;

    .type {
        font-size: 0.57em;
    }

    .name {
        color: var(--red01);
    }
}

.modalMv__comment {
    width: 90.02%;
    transform: translateX(10px);
}

.modal__qBox-outer {
    background-color: var(--white);
    border: 4px solid var(--black);
    padding: 15px !important;
    margin-top: 65px;
}

.modal__qBox {
    border: 2px solid var(--black);
    padding: 55px 121px 70px 45px;
}

.modal__q {

    font-size: var(--font30);

    dt {
        position: relative;
        color: var(--red01);
        line-height: var(--lineHight120);
        padding-left: 1.75em;

        &::before {
            position: absolute;
            content: "Q1.";
            top: 0;
            left: 0;
            font-size: 1em;
        }

        &:nth-of-type(2)::before {
            content: "Q2.";
        }

        &:nth-of-type(3)::before {
            content: "Q3.";
        }

        &:nth-of-type(4)::before {
            content: "Q4.";
        }

        &:nth-of-type(5)::before {
            content: "Q5.";
        }
    }

    dd {
        margin: 0.8em 0 1.7em;
        font-size: var(--font19);
        padding-left: 3em;
        font-weight: var(--weight500);
        line-height: 1.368;

        &:last-child {
            margin-bottom: max(3.2em, 30px);
        }
    }
}

.modalClose {
    width: min(100%, 240px);
    margin: 0 auto;
}

@media screen and (max-width: 1210px) {


    .modal__qBox-outer {
        margin: 40px 0 0;
    }
}

@media screen and (max-width: 1024px) {
    .modalMv {
        padding: clamp(100px, 16%, 255px) 0 25px 0;
        background-color: var(--gray);

        &::before {
            top: auto;
            bottom: 0;
            transform: scale(-1);
        }
    }

    .modalMv__flex {

        .img {
            width: min(100%, 400px);
            margin: -10% 0 0 0;
            z-index: 1;
        }
    }
}

@media screen and (max-width: 850px) {
    .modalMv__flex {
        flex-direction: column-reverse;
        width: min(100%, 500px);
        margin: 15px auto 0;

        .img {
            width: min(100%, 400px);
            margin: 0 auto;
            z-index: 1;
        }
    }

    .modalMv__txtBox {
        flex: 1;
        margin: 20px 0 0;
    }

    .modalMv__detail {
        gap: 5px;
        margin-bottom: 20px;
    }

    .modalMv__comment {
        width: 100%;
    }

    .modal__qBox {
        padding: 40px 60px 40px 30px;
    }
}




@media screen and (max-width: 555px) {

    .modalMv__flex {

        .img {
            width: min(100%, 300px);
        }
    }

    .modal__ttl {
        font-size: 30px;
    }
}

@media screen and (max-width: 480px) {


    .modal__qBox {
        padding: 40px 20px 40px 10px;
    }

    .modal__q-img {
        padding: 0 !important;
        transform: translateX(1.5%);
    }
}





/*******************************************
environment
*******************************************/
/* ページネーション */
.paginationFlex {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    margin-top: max(5%, 20px);
    gap: 10px;
}


.pagiDot {
    width: fit-content !important;

    .swiper-pagination-bullet-active {
        background-color: var(--red01);
        opacity: 1;
    }
}

.pagiBtn {
    position: relative;
    width: 40px;
    aspect-ratio: 1;
    background-color: var(--red01);
    border-radius: var(--borderRadiusCircle);
    cursor: pointer;

    &::before,
    &::after {
        position: absolute;
        content: "";
        top: 50%;
        left: 50%;
        background-color: var(--white);
        width: 30%;
        height: 2px;
    }

    &::before {
        transform-origin: bottom right;
        transform: translate(-65%, -33%) rotate(45deg);
    }

    &::after {
        transform-origin: top right;
        transform: translate(-65%, -67%) rotate(-45deg);
    }

}

.prevBtn {
    transform: rotate(180deg);
}


.paginationFlex-environment {
    display: none;
}

/* ↑↑↑ページネーション↑↑↑ */

.environment {
    background-color: var(--yellow01);
    padding: clamp(50px, 5%, 113px) 0 clamp(55px, 7.3%, 117px);

    .section__ttl {
        .ja::before {
            background-color: var(--red01);
        }
    }
}

.environmentSwiper {
    margin: max(4.5%, 30px) auto 0;
    width: min(100%, 1200px);
}

.environmentSwiper__list {
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 30px 40px;

    .swiper-slide {
        width: calc((100% - 120px)/4);
        background-color: var(--white);
        border: 4px solid var(--black);
        padding: 10px;
        height: auto;
    }

    .environment__item02 {
        width: calc((100% - 80px)/3);

        dd {

            .img {
                width: min(100%, 250px);
            }
        }
    }
}

.environment__detail {
    border: 2px solid var(--black);
    padding: 15px 15px 25px;
    height: 100%;

    dt {
        display: flex;
        justify-content: center;
        align-items: center;
        width: min(100%, 220px);
        height: 42px;
        margin: 0 auto 15px;
        text-align: center;
        background-color: var(--black);
        border-radius: var(--borderRadiusBtn);
        color: var(--white);
        font-size: var(--font17);
    }

    dd {
        display: flex;
        flex-direction: column;

        .img {
            margin: 0 auto 15px;
            width: min(100%, 190px);
        }
    }
}




@media screen and (max-width:1200px) {
    .paginationFlex-environment {
        display: flex;
    }


    .environmentSwiper__list {
        flex-wrap: nowrap;
        justify-content: initial;
        gap: initial;

        .swiper-slide {
            width: auto;
        }

        .environment__item02 {
            dd {

                .img {
                    width: min(100%, 250px);
                }
            }
        }
    }
}

/******************************************
流れる続けるスライダー
*******************************************/
.loopSwiper-outer {
    padding: 12px 0;
}

/*スライドの動き等速 */
.loopSwiper__list {
    transition-timing-function: linear;
}

@media screen and (max-width:768px) {
    .loopSwiper-outer {
        padding: 10px 0;
    }
}

@media screen and (max-width:480px) {
    .loopSwiper-outer {
        padding: 5px 0;
    }
}




/*******************************************
search
*******************************************/
.search {
    background-image: url(../img/search/img-pc.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    background-color: var(--black);

    .section__inner {
        padding: clamp(50px, 5.5%, 90px) 0 clamp(60px, 10%, 160px);
    }
}

.search__list {
    display: flex;
    justify-content: space-between;
    gap: 50px;
    margin: max(6.25%, 30px) auto 0;

    li {
        width: calc((100% - 100px)/3);
        height: 85px;

        .btn {
            font-size: var(--font26);
        }

        .arrow {
            width: 22px;
            height: 3px;

            span {

                &::before,
                &::after {
                    width: 65%;
                    height: 3px;
                }
            }
        }
    }
}

@media screen and (max-width:950px) {
    .search__list {
        display: flex;
        justify-content: space-between;
        gap: 30px;

        li {
            width: calc((100% - 60px)/3);
            height: 65px;
        }
    }
}

@media screen and (max-width:768px) {
    .search__list {
        flex-direction: column;
        align-items: center;
        justify-content: initial;
        width: min(100%, 500px);
        gap: 20px;

        li {
            width: 100%;

            .arrow {
                width: 22px;
                height: 3px;

                span {

                    &::before,
                    &::after {
                        width: 60%;
                        height: 3px;
                    }
                }
            }
        }
    }
}






/*******************************************
footer
*******************************************/

.footer {
    background-color: #000000;
    padding: 80px 0 63px;
    position: relative;
}

.footer-nav {
    margin: 0 auto 20px;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 15px 30px;

    & a {
        position: relative;
        font-size: 13px;
        color: #fff;
        letter-spacing: 0.05em;
        line-height: 1;

        &:hover {
            opacity: .7;
        }
    }

    & a:not(:last-child):before {
        position: absolute;
        content: "";
        width: 1px;
        height: 100%;
        background-color: #fff;
        top: 50%;
        right: -14px;
        transform: translate(50%, -50%);
    }
}


.copyright {
    font-size: 13px !important;
    text-align: center;
    color: #fff;
    letter-spacing: 0.05em;
}

/* 求人ページ用 #0e204dを置き換え*/
/* .footer-nav a,
.copyright {
    color: #fff !important;
    text-decoration: none;
}

.footer-nav a:not(:first-child):before {
    background-color: #fff !important;
}

.pageid,
.button_search,
.result_box_ttl {
    background: #0e204d;
}

.button_application {
    background-color: #0e204d;
    color: #fff;

    &:hover {
        background-color: #fff;
        color: #0e204d;
    }
}

.button_detail {
    background-color: #fff;
    border: 2px solid #0e204d;
    color: #0e204d;

    &:hover {
        background-color: #0e204dff;
        color: #fff;
    }
} */


@media screen and (max-width:950px) {
    .footer {
        padding: max(8%, 40px) 0 max(15%, 80px);
    }
}


@media screen and (max-width:768px) {

    .footer-nav {
        gap: 15px 20px;

        & a {
            font-size: 11px;
        }

        & a:not(:last-child):before {
            right: -9px;
        }
    }

    .copyright {
        font-size: 11px !important;
    }
}