@charset "utf-8";

/* 色の変数　　color: var(--blue); */
:root {
    --white: #fff;
    --white02: rgba(255, 255, 255, 0.5);
    --black: #0a0d0d;
    --blue01: #004c9d;
    --blue02: #00d7ff;
    --blue03: #0068b7;
    --blue04: #1da0e9;
    --blue05: #67cfee;
    --blue06: rgba(103, 207, 238, 0.9);
    --yellow01: #ffb703;
    --yellow02: #ffe600;
    --yellow03: #ffff00;
    --red01: #e61611;
    --beige01: #fbfbf1;
    --green01: #06c755;
    --gray: #c3c3c3;

    /* ぼかし */
    --blur: blur(10px);

    /* 書式 */
    --notoSan: "Noto Sans JP", sans-serif;
    --zenMaru: "Zen Maru Gothic", sans-serif;


    /* 文字サイズ */
    --font17: 1.7rem;
    --font19: 1.9rem;
    --font21: 2.1rem;
    --font23: 2.3rem;
    --font26: 2.6rem;
    --font30: 3.0rem;
    --font32: 3.2rem;
    --font38: 3.8rem;
    --font52: 5.2rem;

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

    /* 行間 */
    --lineHight165: 1.652;
    --lineHight175: 1.75;
    --lineHight182: 1.8235;
    --lineHight20: 2.0;

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

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

    /* 角丸の変数　 */
    --borderRadius01: 1000px;
    --borderRadius30: 30px;
    --borderRadius20: 20px;
    --borderRadius10: 10px;
    --borderRadiusCircle: 50%;

    --overlay: overlay;
    --screen: screen;

}




@media screen and (max-width: 1024px) {
    :root {
        --font17: 1.6rem;
        --font19: 1.8rem;
        --font21: 2.0rem;
        --font23: 2.1rem;
        --font26: 2.4rem;
        --font30: 2.6rem;
        --font32: 2.7rem;
        --font38: 2.8rem;
        --font52: 4.2rem;
    }
}


@media screen and (max-width: 768px) {
    :root {
        --font17: 1.5rem;
        --font19: 1.7rem;
        --font21: 1.8rem;
        --font23: 1.9rem;
        --font26: 2.2rem;
        --font30: 2.4rem;
        --font32: 2.5rem;
        --font38: 2.6rem;
        --font52: 3.5rem;
    }
}


@media screen and (max-width: 480px) {
    :root {
        --font17: 1.4rem;
        --font19: 1.6rem;
        --font21: 1.6rem;
        --font23: 1.8rem;
        --font26: 2rem;
        --font30: 2.2rem;
        --font32: 2.3rem;
        --font38: 2.4rem;
        --font52: 2.8rem;

        --borderRadius30: 20px;
    }
}



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

body {
    color: var(--blue01);
    font-family: var(--zenMaru);
    font-weight: var(--weight700);
    font-size: var(--font18);
}

p {
    font-size: var(--font17);
    text-align: justify;
    line-height: var(--lineHight182);
}

.section {
    position: relative;
}

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

.section__ttl {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: var(--font52);
    letter-spacing: var(--fontSpace010);
    color: var(--blue04);

    .ja {
        letter-spacing: var(--fontSpace005);
        font-size: 0.5769em;
        color: var(--red01);
    }
}

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

    .ja {
        color: var(--yellow02);
    }
}

.list {
    li {
        position: relative;
        padding-left: 1.2em;

        &::before {
            position: absolute;
            content: "";
            width: 0.4em;
            aspect-ratio: 1;
            background-color: var(--blue01);
            left: 0;
            top: 1.55em;
            border-radius: var(--borderRadiusCircle);
        }
    }
}

.small {
    font-size: max(0.706em, 10px);
}

.marker {
    display: inline;
    background: linear-gradient(transparent 80%, var(--yellow02) 80%);
    padding-bottom: 1px;
}

.bg-wave-top {
    position: absolute;
    width: 101%;
    top: 0;
    left: 50%;
    transform: translate(-50%, -1%);
}

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

.thin {
    letter-spacing: -0.5em;
}

.block355,
.block480 {
    display: none;
}

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

    .none1024 {
        display: none;
    }

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

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

    .none768 {
        display: none;
    }

    .list {
        li {

            &::before {
                top: 1.25em;
            }
        }
    }
}

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

    .block480 {
        display: block;
    }

    .none480 {
        display: none;
    }
}

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



/*******************************************
entryBtn
*******************************************/
.entryBox {
    display: flex;
    width: 100%;
}

.btn-outer-circle {
    width: min(100%, 160px);
    aspect-ratio: 1;
    margin-right: 5%;
}

.btn-entry {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    background-color: var(--blue01);
    border-radius: var(--borderRadiusCircle);
    transition: var(--transitionBase);
    border: 3px solid var(--blue01);

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

        .btn-entry__inner {
            background-color: var(--blue01);

            .en::before {
                background-image: url(../img/common/arrow-hover01.svg);
            }
        }
    }

}

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

    &:hover {

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

.btn-entry__inner {
    position: relative;
    width: 88.10%;
    aspect-ratio: 1;
    border-radius: var(--borderRadiusCircle);
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-direction: column;
    background-color: var(--white);
    text-align: center;
    font-size: 1.7rem;
    padding-top: 25%;
    transition: var(--transitionBase);

    .ja {
        margin-bottom: 0.3em;
    }

    .en {
        position: absolute;
        left: 50%;
        bottom: 20%;
        font-size: 0.818em;
        transform: translateX(-50%);

        &::before {
            position: absolute;
            content: "";
            background-image: url(../img/common/arrow-blue.svg);
            background-repeat: no-repeat;
            background-size: contain;
            width: 1em;
            aspect-ratio: 1;
            top: 130%;
            left: 50%;
            transform: translateX(-50%);
            transition: var(--transitionBase);
        }

    }
}


.entryBox-main {
    justify-content: flex-end;
    z-index: 2;

    .btn-outer-circle {
        width: 12vw;
        margin-right: 0.8vw;

        &:last-child {
            margin-right: 0;
        }
    }

    .btn-entry__inner {
        font-size: 1.57vw;
    }

    .btn-entry__inner--seisya {
        padding-top: 30%;
    }
}



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



    .btn-entry {

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

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

                .en::before {
                    background-image: url(../img/common/arrow-blue.svg);
                }
            }
        }

    }

    .btn-entry-yellow {
        &:hover {

            background-color: var(--yellow01);
            color: var(--yellow01);

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

                .en::before {
                    background-image: url(../img/common/arrow-orange.svg);
                }
            }
        }
    }

    .entryBox-main {

        .btn-outer-circle {
            width: 27vw;
            margin-right: 1.5vw;

            &:last-child {
                margin-right: 0;
            }
        }

        .btn-entry__inner {
            font-size: 3.9vw;
        }

    }
}

@media screen and (max-width:480px) {
    .btn-entry__inner {
        width: 93%;
    }
}


/*******************************************
追従ボタン
*******************************************/
.main__inner {
    position: relative;
}

.entryBox-fixed {
    position: fixed;
    bottom: 2%;
    right: 1%;
    width: fit-content;
    flex-direction: column;
    opacity: 0;
    visibility: hidden;
    transition: var(--transitionBase);


    .btn-outer-circle {
        width: min(12vw, 168px);
        margin: 0 0 1vw 0;

        &:last-child {
            margin: 0;
        }
    }

    .btn-entry__inner {
        font-size: min(1.57vw, 22px);
    }
}

@media screen and (max-width:768px) {
    .entryBox-fixed {
        flex-direction: row;
        right: 50%;
        transform: translateX(50%);
        gap: 10vw;

        .btn-outer-circle {
            margin: 0;
            width: min(27vw, 135px);
        }

        .btn-entry__inner {
            font-size: min(3.9vw, 19px);
        }
    }
}


/*******************************************
btn
*******************************************/
.btn-outer {
    width: min(100%, 227px);
    height: 64px;
}

.btn {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    font-size: var(--font21);
    background-color: var(--blue01);
    color: var(--white);
    border: 2px solid var(--blue01);
    border-radius: var(--borderRadius01);
    transition: var(--transitionBase);
    text-align: center;
    cursor: pointer;

    &::before {
        position: absolute;
        content: "";
        background-image: url(../img/common/arrow02.svg);
        background-size: contain;
        background-repeat: no-repeat;
        width: 0.6em;
        aspect-ratio: 1;
        top: 50%;
        right: 5%;
        transform: translateY(-35%);
    }

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

.btn-blue {
    background-color: var(--blue04);
    border: 2px solid var(--blue04);

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

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

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


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

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

    .btn-blue {
        &:hover {
            background-color: var(--blue04);
        }
    }

    .btn-yellow {
        &:hover {
            background-color: var(--yellow01);
        }
    }

}

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




/*******************************************
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(--blue06);
    z-index: -100;
    overflow: auto;
    transition: var(--transitionBase);
}

.modalBox-outer {
    /* 最大幅*/
    position: absolute;
    width: min(100vw, 1000px);
    height: auto;
    top: 0;
    left: 50%;
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, 0);
    transition: var(--transitionBase);
    padding: clamp(40px, 5.5%, 140px) 0;
    z-index: -100;
}

.modalBox {
    position: relative;
    width: 100%;
    margin: 0 auto;
    background-color: var(--beige01);
    height: auto;
}

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

    .show.modalBox-outer {
        opacity: 1;
        visibility: visible;
        transform: translate(-50%, 0);
        z-index: 1001;
    }
}

.modal__inner {
    /* モーダル中身のインナー */
    width: min(100%, 915px);
    margin: 0 auto;
    padding: 65px 0;
}

.modalClose-top {
    position: absolute;
    content: "";
    width: 60px;
    aspect-ratio: 1;
    background-color: var(--blue01);
    border: 1px solid var(--blue01);
    top: 0;
    right: 0;
    border-radius: var(--borderRadiusCircle);
    transform: translate(50%, -40%);
    z-index: 10;
    transition: var(--transitionBase);
    cursor: pointer;

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

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

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

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

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

    }
}

.btn-outer-modal {
    width: min(100%, 400px);
    margin: max(6.5%, 40px) auto 0;
}



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

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

@media screen and (max-width:960px) {
    .modal__inner {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }
}


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


    .modalClose-top {
        width: 40px;

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

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

        }
    }

}




/*******************************************
header
*******************************************/
.hamburger {
    display: none;
}

.header {
    position: fixed;
    width: 100%;
    height: 100px;
    display: flex;
    align-items: center;
    padding: 0 48px 0 18.5px;
    z-index: 95;
    transition: var(--transitionBase);
    background-color: var(--white);
}


.header__logoBox {

    a {
        display: flex;
        justify-content: flex-start;
        align-items: center;
    }

    .header__logo {
        width: 222px;
        transform: translateY(-10%);
    }

    .txt {
        width: min(100%, 100px);
        height: 24px;
        display: flex;
        justify-content: center;
        align-items: center;
        font-size: 1.4rem;
        border-radius: var(--borderRadius01);
        border: 1px solid var(--blue01);
    }

}

.header__logo {
    width: 300px;
    margin-right: 10px;

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

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


.headerNav {
    flex: 1;
}

.headerNav__list {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.headerNav__item {
    font-size: var(--font17);
    margin-left: clamp(20px, 2.5vw, 50px);
    position: relative;
    transition: var(--transitionBase);


    &:first-child {
        margin-left: 0;
    }

    a {
        position: relative;
        transition: var(--transitionBase);

        &::before {
            content: "";
            position: absolute;
            left: 0;
            bottom: -4px;
            /* 文字の下に配置 */
            width: 100%;
            height: 2px;
            background: var(--yellow02);
            transform: scaleX(0);
            transform-origin: left;
            /* 最初は左から伸びる */
            transition: transform 0.5s ease;
        }

        &:hover {
            &::before {
                transform: scaleX(1);
                transform-origin: left;
            }
        }

        &:not(:hover)::before {
            transform-origin: right;
        }
    }

}

.entryBox-header {
    display: none;
}

@media screen and (max-width:940px) {
    .header {
        padding: 0 15px;
    }
}

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

    .header {
        position: relative;
        height: 70px;
    }

    .bg-white {
        backdrop-filter: initial;
    }

    .header__logoBox {
        .header__logo {
            width: 176px;
            transform: translateY(-10%);
        }
    }

    .hamburger {
        display: block;
        position: fixed;
        right: 1%;
        top: 35px;
        width: 50px;
        aspect-ratio: 1;
        cursor: pointer;
        z-index: 100;
        transition: var(--transitionBase);
        transform: translateY(-50%);
        background-image: linear-gradient(90deg, var(--blue02), var(--blue03));

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

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

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

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

    .headerNav {
        position: fixed;
        width: 100%;
        height: 100vh;
        top: 0;
        left: 0;
        z-index: 95;
        transform: translateX(100%);
        background-color: var(--white02);
        backdrop-filter: blur(10px);
        transition: var(--transitionBase);
        opacity: 0;
        visibility: hidden;
        transform: none;
    }

    .headerNav__list {
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
        width: 50%;
        height: 100%;
        padding: clamp(10px, 10svh, 100px) 5% 2vh;
        margin-left: auto;
        background-color: var(--white);
    }

    .headerNav__item {
        font-size: max(2vw, 15px);
        margin: 0 0 5svh;

        &:last-child {
            width: 100%;
        }

        a {
            &::before {
                display: none;
            }
        }
    }

    .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);
            }
        }

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

    .entryBox-header {
        display: flex;
    }

}


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

    .entryBox-header {
        flex-direction: column;

        .btn-outer-circle {
            width: min(100%, 120px);

            margin: 0 0 10px 0;
        }
    }


}

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

    .header {
        height: 60px;
        padding: 0 0 0 10px;
    }

    .hamburger {
        top: 30px;
        width: 40px;
    }

    .header__logoBox {
        width: 100%;
        transform: translateY(15%);

        .header__logo {

            margin: 0;
        }

        .txt {
            width: min(100%, 80px);
            font-size: 1.1rem;
            height: 20px;
        }
    }

    .headerNav__list {
        width: 100%;
        align-items: center;
        padding-top: 6vh;
    }

    .entryBox-header {
        align-items: center;
        justify-content: center;
        flex-direction: row;
        gap: 10px;
    }
}


/*******************************************
mv
*******************************************/
.mv {
    position: relative;
    margin-top: 100px;
}

.mv__bg {
    position: relative;
    width: 100%;
    z-index: 0;
}

.mv__bg-parts01 {
    position: absolute;
    top: 0;
    right: 0;
    width: 26.04%;
    mix-blend-mode: var(--overlay);
}

.mv__bg02 {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
}

.mv__bg02-screen {
    mix-blend-mode: var(--screen);
}

.mv__bg02-overlay {
    mix-blend-mode: var(--overlay);
}


.mv__slider {
    position: absolute;
    top: 0;
    right: 3.5%;
    width: 71.43%;
    z-index: -1;
    border-radius: 4vw;
    overflow: hidden;
}

@keyframes zoomUp {
    0% {
        transform: scale(1);
    }

    100% {
        transform: scale(1.15);
    }
}


.mvSwiper {
    width: 100%;

    & .swiper-slide-active img,
    & .swiper-slide-duplicate-active img,
    & .swiper-slide-prev img {
        animation: zoomUp 10s linear 0s normal both;
    }
}

.mv__ttl {
    position: absolute;
    top: 17%;
    left: 2%;
    width: 63.643%;
    transition: opacity 3s;
    opacity: 0;
}

.entryBox-mv {
    position: absolute;
    right: 1%;
    bottom: -6.5%;
}

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

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

    .mv__bg-parts01 {
        top: 0;
        right: 0;
        width: 47.47%;
    }

    .mv__slider {
        position: absolute;
        top: 2%;
        right: 50%;
        transform: translateX(50%);
        width: 90.14%;
        border-radius: 7vw;
    }

    .mv__ttl {
        top: 48%;
        left: 0;
        width: 81.4%;
    }

    .entryBox-mv {
        right: 1%;
        bottom: -2%;


    }
}


/*******************************************
about
*******************************************/
.about {
    background-color: var(--blue04);

    .section__inner {
        width: min(100%, 1286px);
        padding: max(4.7%, 40px) 0 0 0;
    }
}

.about-parts {
    position: absolute;
    top: 0;
    right: 0;
    width: 22.322%;
}

.about-parts-overlay {
    mix-blend-mode: var(--overlay);
}

.aboutFlex {
    position: relative;
    display: flex;
    justify-content: space-between;
    width: min(100%, 1147px);
    margin: 10px auto 0 0;

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

    .txt {
        flex: 1;
        margin: 0 0 0 3.8%;
        padding-top: 6%;

        p {
            font-size: var(--font23);
            line-height: var(--lineHight165);
            margin-bottom: 1.957em;
            color: var(--white);

            &:last-child {
                margin-bottom: 0;
            }
        }
    }
}


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

@media screen and (max-width:1200px) {
    .aboutFlex {
        .img {
            width: min(100%, 450px);
        }

        .txt {
            padding-top: 4%;
        }
    }
}

@media screen and (max-width:875px) {
    .aboutFlex {
        flex-direction: column-reverse;
        align-items: center;

        .txt {
            margin: 0 0 10%;
        }

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




/*******************************************
job
*******************************************/
.job {
    .section__inner {
        padding: max(11.8%, 50px) 0 max(17%, 70px);
    }
}

.job-parts {
    position: absolute;
    top: 10%;
    left: -1%;
    width: 28.3%;
    z-index: -1;
}



.jobBox {
    background-color: var(--beige01);
    padding: 45px 40px 70px;
    margin-top: 40px;
}

.jobBox__item {
    display: flex;
    justify-content: space-between;
    margin-bottom: 20px;
    gap: 40px;

    &:last-child {
        margin-bottom: 0;
    }

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

        img {
            border-radius: var(--borderRadius20);
        }
    }
}

.jobBox__detail {
    flex: 1;

    dt {
        font-size: var(--font32);
        background-color: var(--blue04);
        color: var(--white);
        padding: 7px 0;
        text-align: center;
        border-radius: var(--borderRadius10);
    }

    dd {
        padding: 20px 0 0 0;
    }
}

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

    dt {
        font-size: var(--font21);
        background-color: var(--blue05);
        border-radius: 0;
        padding: 11px 0;
    }

    dd {
        padding: 20px;
    }

}

.jobBox__btnBox {
    display: flex;
    justify-content: space-between;
    width: min(100%, 837.3px);
    gap: 30px;
    margin: 65px auto 0;

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

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

@media screen and (max-width:768px) {
    .job-parts {
        top: 0%;
        left: -5%;
        width: 37%;
    }


    .jobBox {
        margin-top: 30px;
    }

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

    .jobBox__item {
        flex-direction: column;
        gap: 20px;
        margin-bottom: 30px;

        .img {
            width: 100%;
        }
    }

    .jobBox__btnBox {
        flex-direction: column;
        width: min(100%, 500px);

        .btn-outer {
            width: 100%;
        }
    }
}

@media screen and (max-width:480px) {
    .jobBox {
        padding: 40px 15px 50px;
    }

    .jobBox__btnBox {
        margin: 40px auto 0;
    }

    .jobBox__detail {
        dd {
            padding: 10px 0 0 0;
        }
    }

    .jobBox__detail02 {
        dd {
            padding: 10px;
        }
    }
}



/*******************************************
job (modal)
*******************************************/
.modal-job {
    .modal__inner {
        width: min(100%, 915px);
        margin: 0 auto;
        padding: 45px 0 65px;
    }
}

.modalFlex {
    display: flex;
    justify-content: space-between;
    gap: 25px;

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

        img {
            border-radius: var(--borderRadius10);
        }
    }
}

.modalFlex__txtBox {
    flex: 1;
}

.modalFlex__ttl {
    font-size: var(--font32);
    display: flex;
    justify-content: center;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    text-align: center;
    color: var(--white);
    background-color: var(--blue04);
    margin-bottom: 25px;
    padding: 8px 5px;
    border-radius: var(--borderRadius10);

    .sub {
        position: relative;
        font-size: 0.75em;

        &::before,
        &::after {
            position: absolute;
            content: "";
            top: 65%;
            left: 0;
            width: 17px;
            height: 2px;
            background-color: var(--white);
            border-radius: var(--borderRadius01);
            transform: translate(-160%, -50%);
        }

        &::after {
            left: auto;
            right: 0;
            transform: translate(160%, -50%);
        }
    }
}

.caseBox {
    margin-bottom: 23px;

    &:last-child {
        margin-bottom: 0;
    }
}

.caseBox__ttl {
    color: var(--white);
    background-color: var(--blue04);
    text-align: center;
    font-size: var(--font21);
    border-radius: var(--borderRadius01);
    padding: 3.5px 5px;
}

.caseBox__detail {
    margin-top: 20px;
}

.caseBox__item {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    font-size: var(--font21);
    margin-bottom: 10px;

    dt {
        color: var(--white);
        background-color: var(--blue05);
        width: 80px;
        height: 32px;
        display: flex;
        justify-content: center;
        align-items: center;
        border-radius: var(--borderRadius01);
        margin-right: 0.5em;
        transform: translateY(-12%)
    }

    dd {
        font-size: 0.9em;
        flex: 1;
    }
}


@media screen and (max-width:960px) {
    .modal-job {
        .modal__inner {
            padding: 90px 0 65px;
        }
    }
}

@media screen and (max-width:768px) {
    .modal-job {
        .modal__inner {
            padding: 70px 0 50px;
        }
    }

    .modalFlex {
        flex-direction: column-reverse;

        .img {
            flex-basis: initial;
            width: min(100%, 500px);
            margin: 0 auto;
        }
    }
}

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

        dt {
            width: 50px;
            height: 23px;

        }
    }
}





/*******************************************
environment
*******************************************/
.environment {
    background-color: var(--blue05);
    z-index: 1;

    .bg-wave-top {
        position: absolute;
        transform: translate(-50%, -99%);
    }

    .section__inner {
        position: relative;
        padding: 0 0 clamp(20px, 3%, 45px);

    }
}

.environment-parts01 {
    position: absolute;
    top: 7%;
    right: -13%;
    width: 40.79%;
}

.environment-parts02 {
    position: absolute;
    top: 58%;
    left: -3.5%;
    width: 19%;
}

.environment__txt {
    color: var(--white);
    font-size: var(--font23);
    line-height: var(--lineHight165);
    margin: max(4%, 30px) 0 max(6%, 35px);
}

.environmentItem {
    margin-bottom: max(6.8%, 35px);

    &:last-child {
        margin-bottom: 0;
    }
}

.environmentItem__ttl {
    font-size: var(--font32);
    background-color: var(--blue04);
    color: var(--white);
    text-align: center;
    width: min(100%, 500px);
    margin: 0 auto;
    padding: 7px;
    border-radius: var(--borderRadius10);
}

.data__list {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    margin: 40px 0 0 0;
}

.data__item {
    position: relative;
    width: calc(100% / 3);

    &::before {
        position: absolute;
        content: "";
        width: 3px;
        height: 100%;
        background-color: var(--white);
        right: 0;
        top: 0;
        border-radius: var(--borderRadius10);
    }

    &:last-child {
        &::before {
            display: none;
        }
    }
}

.data__detail {
    width: min(100%, 277px);
    margin: 0 auto;

    dt {
        position: relative;
        font-size: var(--font38);
        text-align: center;
        width: fit-content;
        margin: 0 auto 30px;

        &::before {
            position: absolute;
            content: "";
            width: 100%;
            height: 3px;
            background-color: var(--white);
            left: 0;
            bottom: -20%;
            border-radius: var(--borderRadius10);
        }
    }

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

        .txt {
            color: var(--white);
        }
    }
}

.system__flex {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 50px;
    margin-top: 30px;
}


.system__item {
    width: calc((100% - 50px)/2);
    border-radius: var(--borderRadius30);
    overflow: hidden;
    background-color: var(--white);
    display: flex;
    flex-direction: column;
}

.system__detail {
    padding: 35px 13px 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-grow: 1;

    .ttl {
        display: inline;
        font-size: var(--font32);
        text-align: center;
        line-height: var(--lineHight175);
        flex-grow: 1;
        max-height: 94.5px;
    }



    .txtBox {
        padding: 0 15px;
        margin-top: 25px;
        display: flex;
        flex-direction: column;
        flex-grow: 1;

        p {
            flex-grow: 1;
        }
    }
}

.target {
    margin-top: 25px;
    font-size: var(--font17);
    display: flex;
    justify-content: flex-start;
    align-items: center;


    dd {
        flex: 1;
        display: flex;
        align-items: center;
        justify-content: flex-start;

        span {
            display: block;
            position: relative;
            text-align: center;
            background-color: var(--blue05);
            color: var(--white);
            border-radius: 5px;
            width: 4.12em;
            height: 24px;
            margin-right: 0.8em;

            &::before {
                position: absolute;
                content: "正社員";
                width: 100%;
                font-size: 1em;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%);
            }

            &:last-child {
                margin-right: 0;
            }
        }

        .arubaito {
            background-color: var(--yellow01);
            width: 9.71em;

            &::before {
                content: "アルバイト・パート";
            }
        }
    }
}

@media screen and (max-width:1200px) {
    .environment-parts01 {
        top: 0%;
    }

}



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

    .system__detail {
        .ttl01 {
            display: flex;
            align-items: center;
        }
    }

}



@media screen and (max-width:905px) {
    .data__list {
        width: min(100%, 600px);
        margin: 30px auto 0;
        row-gap: 30px;
    }

    .data__item {
        width: calc(100% / 2);

        &:nth-child(2) {
            &::before {
                display: none;
            }
        }

        &:last-child {
            &::before {
                display: block;
                width: 200%;
                height: 3px;
                top: -5%;
                bottom: auto;
                right: 50%;
                transform: translateX(50%);
            }
        }
    }

    .data__detail {
        width: min(100%, 240px);

        & dd {
            .img {
                width: min(100%, 170px);
            }
        }
    }
}

@media screen and (max-width:843px) {
    .system__detail {

        .ttl01 {
            display: inline;
        }
    }
}

@media screen and (max-width:800px) {
    .system__flex {
        gap: 50px 25px;
    }

    .system__item {
        width: calc((100% - 25px)/2);
    }

    .target {
        & dd {
            span {
                margin-right: 0.5em;
            }
        }
    }
}

@media screen and (max-width:768px) {
    .system__flex {
        flex-direction: column;
        width: min(100%, 500px);
        margin: 30px auto 0;
        gap: 25px;
    }

    .system__item {
        width: 100%;
    }

    .system__detail {
        align-items: initial;
    }
}


@media screen and (max-width:555px) {
    .data__list {
        width: min(100%, 300px);
        row-gap: 40px;
    }

    .data__item {
        width: 100%;

        &::before {
            width: 110%;
            height: 2px;
            bottom: -20px;
            top: auto;
            right: 50%;
            transform: translate(50%, -50%);
        }

        &:nth-child(2) {
            &::before {
                display: block;
            }
        }

        &:last-child {
            &::before {
                display: none;
            }
        }

        .data__detail {
            width: 100%;

            & dd {
                .img {
                    width: min(100%, 170px);
                    margin: 0 auto 10px;
                }
            }
        }
    }
}

@media screen and (max-width:480px) {
    .system__detail {
        padding: 20px 15px 25px;

        .txtBox {
            padding: 0;
            margin-top: 10px;
        }
    }

    .target {
        dd {
            flex-wrap: wrap;
            gap: 5px;

            span {
                margin-right: 0;
            }
        }
    }

}



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

    .bg-wave-top {
        z-index: 1;
    }

    .section__inner {
        padding: max(10.8%, 50px) 0px max(7%, 20px);
    }
}

.interview-parts {
    position: absolute;
    top: 36%;
    right: -5%;
    width: 25%;
}

.interview__flex {
    display: flex;
    justify-content: space-between;
    margin: 45px 0 0;
}

.interview__item {
    position: relative;
    width: calc((100% - 50px)/2);
    cursor: pointer;
    transition: var(--transitionBase);

    img {
        border-radius: var(--borderRadius30);
    }

    &:hover {
        opacity: .8;
    }
}


.voice__ttl {
    font-size: var(--font30);
    width: fit-content;
    margin: 0 auto 35px;
    letter-spacing: var(--fontSpace005);
}

.voice__ttl--green {
    color: var(--green01);
}

.interview__txtBox {
    writing-mode: vertical-rl;
    position: absolute;
    top: 0;
    right: 0;
    transform: translate(-20%, 7%);


    .txt {

        background-color: var(--blue04);
        color: var(--white);
        font-size: var(--font26);
        margin-left: 10px;
        border-radius: var(--borderRadius10);
        padding: 20px 2px;
        height: fit-content;

        &:last-child {
            margin: 0;
            transform: translateY(5%);
        }
    }
}

.btn-outer-interview {
    margin-left: auto;
    transform: translateY(-50%);

    .btn {

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

}

@media screen and (max-width:995px) {
    .interview-parts {
        position: absolute;
        top: 0;
        right: -5%;
        width: 25%;
        z-index: 0;
    }

    .voice__ttl {
        font-size: 2.614vw;
        margin: 0 auto 7.73%;
    }

    .interview__txtBox {
        .txt {
            font-size: 2.412vw;
            margin-left: 0.45em;
            padding: 0.834em 0.0834em;
        }
    }

}


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

    .interview__flex {
        flex-direction: column;
        width: min(100%, 500px);
        margin: 30px auto 0;
        gap: 30px;
    }

    .interview__item {
        width: 100%;

        &:hover {
            opacity: 1;
        }
    }

    .voice__ttl {
        font-size: 3rem;
        margin: 0 auto 5%;
    }

    .interview__txtBox {
        transform: translate(-15%, 4%);

        .txt {
            font-size: 2.8rem;
        }
    }

    .btn-outer-interview {
        width: min(100%, 239px);
        height: 50px;

        .btn {
            font-size: 2.3rem;
        }
    }

}

@media screen and (max-width:540px) {
    .interview__flex {
        gap: 15px;
    }

    .voice__ttl {
        font-size: 5.556vw;
        margin: 0 auto max(8%, 15px);
    }

    .interview__txtBox {
        transform: translate(-15%, 6%);

        .txt {
            font-size: 5.19vw;
        }
    }

    .btn-outer-interview {
        width: 48%;
        height: auto;
        aspect-ratio: 240/50;

        .btn {
            font-size: 4.3vw;
        }
    }
}

@media screen and (max-width:374px) {
    .interview__txtBox {
        transform: translate(-15%, 4%);
    }
}




/*******************************************
modal（interview）
*******************************************/

/* 共通
ーーーーーーーーーーーーーーーーーーー */
.modalMv {
    position: relative;
    margin: 0 auto max(8.81%, 35px);
}

.modalMv__txtBox {
    position: absolute;
    width: 100%;
    top: 9%;
    left: 0;
}

.modalMv__ttl {

    p {
        background-color: var(--blue04);
        color: var(--white);
        font-size: var(--font30);
        border-radius: var(--borderRadius10);
        width: fit-content;
        margin-bottom: 0.34em;
        line-height: 1.7;
        padding: 0 0.5em;

        &:last-child {
            margin-bottom: 0;
        }
    }
}

.modalMv__img {
    width: 64.44%;
    margin-left: auto;

    img {
        border-radius: var(--borderRadius10);
    }
}

.modalMv__detail {
    margin-top: 35px;

    p {
        font-size: var(--font19);
        line-height: 1.47;
    }
}

.modal__q {
    font-size: var(--font23);

    dt {
        display: flex;
        align-items: flex-start;
        justify-content: flex-start;
        gap: 10px;
        margin-bottom: 10px;

        p {
            flex: 1;
            font-size: var(--font23);
            line-height: 1.217;
        }
    }

    dd {
        margin-bottom: max(6.396%, 30px);
        background-color: var(--white);
        padding: 20px;
        border-radius: var(--borderRadius10);

        &:last-child {
            margin-bottom: 0;
        }
    }
}

.q-icon {
    position: relative;
    display: block;
    width: 1.74em;
    aspect-ratio: 1;
    transform: translateY(-15%);
    background-color: var(--blue04);
    border-radius: var(--borderRadiusCircle);

    &::before {
        position: absolute;
        content: "Q";
        font-size: 1em;
        color: var(--white);
        top: 50%;
        left: 50%;
        transform: translate(-50%, -60%);
        font-family: var(--notoSan);
    }
}

@media screen and (max-width: 768px) {
    .modalMv {
        display: flex;
        flex-direction: column-reverse;
        align-items: center;
        width: min(100%, 600px);
        margin-left: auto;
        margin-right: auto;
    }

    .modalMv__txtBox {
        position: initial;
    }

    .modalMv__img {
        width: min(100%, 400px);
        margin: 0 0 max(5%, 15px) 0;

        img {
            border-radius: var(--borderRadius10);
        }
    }

    .modalMv__detail {
        margin-top: max(3%, 10px);
    }

    .modal__q {
        dd {
            padding: 15px 10px;
        }
    }
}




/* 共通↑↑↑
ーーーーーーーーーーーーーーーーーーー */

.modalMv {
    width: min(100%, 852px);
}


.modal-interview {
    .modal__inner {
        width: min(100%, 860px);
        padding: 75px 0 max(7%, 40px);
    }
}

@media screen and (max-width: 480px) {
    .modal-interview {
        .modal__inner {
            width: min(100%, 852px);
            padding-top: 60px;
        }
    }
}

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

@media screen and (max-width: 380px) {
    .modalMv__ttl {
        p {
            font-size: 5.58vw;
        }
    }

    .modalMv__detail {
        p {
            font-size: 1.4rem;
        }
    }
}






/*******************************************
search
*******************************************/
.search {
    .section__inner {
        padding: max(11.7%, 60px) 0 clamp(30px, 4%, 60px);
    }

    .section__ttl {
        position: relative;
    }
}

.search-parts {
    position: absolute;
    width: 35.65%;
    left: -15%;
    top: 22%;
}

.searchBox-outer {
    margin: 60px auto 0;
    width: min(100%, 837.3px);
}

.searchBox {
    margin: 0 0 max(11%, 50px);

    &:last-child {
        margin-bottom: 0;
    }
}

.searchBox__ttl {
    position: relative;
    width: fit-content;
    font-size: var(--font30);
    margin: 0 auto 1.2em;

    &::before,
    &::after {
        position: absolute;
        content: "";
        background-image: url(../img/search/ttl-parts.png);
        background-size: contain;
        background-repeat: no-repeat;
        width: 1.367em;
        aspect-ratio: 41/80;
        bottom: 0;
        right: 0;
        transform: translate(140%, 40%);
    }

    &::before {
        right: auto;
        left: 0;
        transform: translate(-140%, 40%) scaleX(-1);
    }
}

.searchBox__list {
    display: flex;
    justify-content: center;
    gap: 15px;
    flex-wrap: wrap;
}

.searchBox__item {
    width: calc((100% - 30px)/3);
}

.searchBox02 {
    .searchBox__list {
        gap: 30px;
    }

    .searchBox__item {
        width: calc((100% - 30px)/2);
    }
}


.lineBox {
    background-color: var(--green01);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 3rem;
    padding: 10px 10px 10px 30px;
    border-radius: var(--borderRadius30);
    margin: 98px 0 0;
}

.lineBox__txtBox {
    .ttl {
        font-size: var(--font32);
        color: var(--yellow03);
        line-height: var(--lineHight175);
    }

    .txt {
        font-size: var(--font21);
        color: var(--white);
        line-height: 1.476;
    }
}

.imgBox {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 15px;

    .arrow {
        width: 60px;
    }

    .qr-outer {
        width: 160px;
        aspect-ratio: 160/130;
        background-color: var(--white);
        border-radius: 0 var(--borderRadius20) var(--borderRadius20) 0;
        display: flex;
        justify-content: flex-start;
        align-items: center;
        padding-left: 8%;
    }

    .qr {
        width: 86%;
    }
}


@media screen and (max-width: 875px) {
    .search-parts {
        width: 40%;
        left: -15%;
        top: 5%;
    }
}

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

    .searchBox__item {
        width: calc((100% - 30px)/2);
    }

    .lineBox {
        width: min(100%, 500px);
        flex-direction: column;
        align-items: center;
        padding: 25px 20px 10px;
        margin: 70px auto 0;
    }

    .lineBox__txtBox {
        .ttl {
            text-align: center;
            margin-bottom: 15px;
            font-size: 3.2rem;
            line-height: 1.3125;
        }

        .txt {
            font-size: 2.1rem;
            text-align: left;
        }
    }

    .imgBox {
        flex-direction: column;
        align-items: center;
        gap: 20px;

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

        .qr-outer {
            width: min(100%, 400px);
            aspect-ratio: initial;
            border-radius: 0 0 var(--borderRadius20) var(--borderRadius20);
            padding: 20px 0;
            align-items: center;
            justify-content: center;

        }

        .qr {
            width: min(100%, 170px);
        }
    }
}

@media screen and (max-width: 520px) {
    .searchBox__list {
        gap: 20px 15px;
    }

    .searchBox02 {
        .searchBox__list {
            width: min(100%, 300px);
            margin: 0 auto;
            gap: 20px;
        }

        .searchBox__item {
            width: 100%;
        }
    }

}

@media screen and (max-width: 480px) {
    .lineBox {
        width: 98.5%;
        padding: 25px 8px 10px;
        margin: 50px auto 0;
    }

    .lineBox__txtBox {

        .txt {
            padding: 0 14px;
        }
    }

}

@media screen and (max-width: 374px) {
    .searchBox__list {
        width: min(100%, 300px);
        margin: 0 auto;
    }

    .searchBox__item {
        width: 100%;
    }
}


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

.footer {
    background-color: #004c9d;
    padding: 50px 0;
    position: relative;
}

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

    & a {
        position: relative;
        font-size: 15px;
        color: #fff;

        &:hover {
            opacity: .7;
        }
    }

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


.copyright {
    font-size: 16px !important;
    text-align: center;
    color: #fff;
}

/* 求人ページ用 #0e204dを置き換え*/
/* .pageid - ヘッダー
..result_box_ttl - 求人詳細タイトル
.button_search - 検索する
.button_application - 応募する
.button_detail - 詳細を見る */


/* .footer-nav a,
.copyright {
    text-decoration: none;
}

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

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

    &:hover {
        opacity: .7;
    }
}

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

    &:hover {
        opacity: .7;
    }
} */

@media screen and (max-width: 1365px) {
    .footer {
        padding-bottom: 14%;
    }
}



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

    .footer {
        padding-bottom: min(45%, 200px);
    }

    .footer-nav {
        gap: 20px;

        & a {
            font-size: 14px !important;
        }

        & a:not(:first-child):before {
            left: -9px;
        }
    }

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

@media screen and (max-width:510px) {
    .footer-nav {
        flex-wrap: wrap;
        column-gap: 30px;
        row-gap: 10px;


        & a:last-child::before {
            display: none;
        }

        & a:not(:first-child):before {
            left: -14px;
        }
    }
}

@media screen and (max-width:480px) {
    .footer {
        padding-bottom: min(39%, 200px);
    }
}

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

    .footer-nav {

        & a {
            font-size: 12px;
        }

    }

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