@charset "utf-8";

/* 色の変数　　color: var(--blue); */
:root {
    --white: #fff;
    --white02: rgba(255, 255, 255, 0.5);
    --black: #000;
    --black02: #464646;
    --green01: #bef3d3;
    --green02: #84d9d7;
    --green03: #78e7a4;
    --green04: #00b0ab;
    --green05: #4fc9c6;
    --green06: rgba(132, 217, 215, 0.2);
    --green07: rgba(190, 243, 211, 0.2);
    --green08: #a3d9b1;
    --green09: #a3d9df;
    --green10: #4cc8c5;
    --pink01: #ffccd7;
    --pink02: #ffc0ce;
    --pink03: #ff9093;
    --beige01: #ffe6ca;
    --beige02: #ffdeb8;
    --blue01: rgba(230, 247, 247, 0.9);




    --gra01: linear-gradient(90deg, var(--green01) 0.1408%, var(--green02) 99.8215%);

    --gra02: linear-gradient(90deg, var(--beige01), var(--pink01));

    --gra03: linear-gradient(90deg, var(--green03), var(--green04));

    --gra04: linear-gradient(90deg, var(--beige02), var(--pink02));

    --gra05: linear-gradient(90deg, var(--green07), var(--green06));


    --shadow01: 0 0 20px rgba(217, 248, 229, 1);

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

    /* 書式 */
    --notoSans: "Noto Sans JP",
        sans-serif;
    --playwrite: "Playwrite NO",
        cursive;
    --zenKaku: "Zen Kaku Gothic New",
        sans-serif;

    /* 文字サイズ */
    --font17: 1.7rem;
    --font19: 1.9rem;
    --font21: 2.1rem;
    --font24: 2.4rem;
    --font26: 2.6rem;
    --font30: 3rem;

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

    /* 行間 */
    --lineHight133: 1.3333333;
    --lineHight176: 1.76;
    --lineHight178: 1.78947;
    --lineHight20: 2.0;

    /* 文字間 */
    --fontSpace050: 0.05em;
    --fontSpace100: 0.1em;

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

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

    --opacity07: .7;
}




@media screen and (max-width: 1024px) {
    :root {
        --font17: 1.6rem;
        --font19: 1.8rem;
        --font21: 2rem;
        --font24: 2.2rem;
        --font26: 2.4rem;
        --font30: 2.8rem;


        --borderRadius50: 40px;
    }
}


@media screen and (max-width: 768px) {
    :root {
        --font17: 1.5rem;
        --font19: 1.7rem;
        --font21: 1.9rem;
        --font24: 2.1rem;
        --font26: 2.2rem;
        --font30: 2.5rem;



        --opacity07: 1;
        --borderRadius20: 15px;
        --borderRadius30: 20px;
        --borderRadius50: 30px;
    }


}

@media screen and (max-width: 480px) {
    :root {
        --font17: 1.4rem;
        --font19: 1.6rem;
        --font21: 1.8rem;
        --font24: 1.9rem;
        --font26: 2rem;
        --font30: 2.2rem;


        --borderRadius20: 10px;
        --borderRadius30: 15px;
        --borderRadius50: 20px;

        --shadow01: 0 0 10px rgba(217, 248, 229, 1);
    }
}


@media screen and (max-width: 375px) {
    :root {
        --font21: 1.7rem;
    }
}



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

body {
    color: var(--black);
    font-family: var(--zenKaku);
    font-weight: var(--weight500);
    font-size: var(--font17);
}

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

.section {
    position: relative;
}

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

    padding: 100px 0;
}

.section__ttl {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: var(--font21);

    .en {
        width: min(100%, 21.19em);
    }

    .ja {
        display: flex;
        justify-content: center;
        align-items: center;
        border-radius: var(--borderRadius01);
        width: min(100%, 8.571em);
        aspect-ratio: 180/30;
        text-align: center;
        letter-spacing: var(--fontSpace100);
        color: var(--white);
        background-image: var(--gra01);
        margin-top: 0.2em;
    }

}

.marker {
    background: var(--gra02);
    background-repeat: no-repeat;
    background-size: 100% 0.4em;
    /* 高さを下線の太さに */
    background-position: 0 100%;
    /* 下に配置 */
}

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

.block480,
.block768 {
    display: none;
}


.aco-container {
    transition: var(--transitionBase02);
    overflow: hidden;
}

.aco-click {
    position: relative;
    cursor: pointer;
    transition: var(--transitionBase02);

    &::before,
    &::after {
        position: absolute;
        content: "";
        top: 50%;
        left: 2%;
        width: 1em;
        height: 2px;
        background-color: var(--black);
        transition: var(--transitionBase02);
    }

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

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

    &:hover {
        opacity: var(--opacity07);
    }
}

.aco-box {
    max-height: 0;
    transition: var(--transitionBase02);
}

.aco-container.open {
    .aco-click {
        &::before {
            transform: translateY(-50%) rotate(180deg);
        }

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


@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;
    }

    .block768 {
        display: block;
    }
}

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

    .none480 {
        display: none;
    }

    .block480 {
        display: block;
    }
}



/*******************************************
btn
*******************************************/
.btn-outer {
    width: min(100%, 360px);
    height: 60px;
    font-size: var(--font17);
}

.btn {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    text-align: center;
    color: var(--black);
    font-size: 1.06em;
    width: 100%;
    height: 100%;
    border-radius: var(--borderRadius01);
    transition: var(--transitionBase01);
    cursor: pointer;

    &:hover {
        opacity: var(--opacity07);
    }
}

.arrow {
    position: absolute;
    background-image: url(../img/common/arrow-black.svg);
    background-repeat: no-repeat;
    background-size: contain;
    top: 50%;
    right: 8%;
    width: 0.706em;
    aspect-ratio: 12/9;
    transform: translateY(-50%);
}



@media screen and (max-width: 768px) {
    .btn-outer {
        width: min(100%, 300px);
        height: 50px;
    }
}



/*******************************************
entryBtnBox
*******************************************/
.entryBtnBox {
    display: flex;
    flex-direction: column;
    gap: 15px;

    .btn-outer {
        &:last-child {

            .btn {
                background-image: var(--gra02);
            }

        }
    }

    .btn {
        background-image: var(--gra01);
        color: var(--black);
        font-size: var(--font17);
        line-height: 1.294;
        border-radius: var(--borderRadius20);
        font-weight: var(--weight700);
    }
}

.entryBtnBox-mv {
    position: absolute;
    top: 42%;
    right: 0;
    width: 11.176em;
    font-size: 1.21vw;
    height: auto;
    z-index: 5;
    gap: 1.0600706713780919vw;


    .btn-outer {
        width: 100%;
        height: auto;
        aspect-ratio: 190/70;
    }

    .btn {
        border-radius: 1.4134275618374559vw 0 0 1.4134275618374559vw;
        font-size: 1.21vw;
    }

}

.entryBtnBox-fixed {
    position: fixed;
    right: 0;
    bottom: 10%;
    z-index: 5;
    width: min(100%, 190px);
    transition: var(--transitionBase01);
    opacity: 0;
    visibility: hidden;

    .btn-outer {
        width: 100%;
        height: 70px;
    }

    .btn {
        border-radius: var(--borderRadius20) 0 0 var(--borderRadius20);
    }


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

@media screen and (max-width:1024px) {
    .entryBtnBox-fixed {
        width: min(100%, 140px);
    }
}

@media screen and (max-width:768px) {
    .entryBtnBox-fixed {
        width: min(100%, 480px);
        flex-direction: row;
        bottom: 0;
        left: 50%;
        transform: translateX(-50%);
        gap: 5px;

        .btn-outer {
            height: 60px;
        }

        .btn {
            border-radius: var(--borderRadius20) var(--borderRadius20) 0 0;
        }
    }
}

@media screen and (max-width:480px) {
    .entryBtnBox-mv {
        display: none;
    }

    .entryBtnBox-fixed {
        /* opacity: 1;
        visibility: visible; */

        .btn {
            border-radius: 10px 10px 0 0;
        }
    }
}




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

.topReturn {
    position: fixed;
    bottom: 2%;
    right: 2%;
    width: 60px;
    aspect-ratio: 1;
    opacity: 0;
    visibility: hidden;
    z-index: 90;
    transition: var(--transitionBase01);



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


    a {
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
        height: 100%;
        border-radius: var(--borderRadiusCircle);
        background-image: var(--gra01);
        transition: var(--transitionBase01);

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

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

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

        &:hover {
            opacity: var(--opacity07);
        }
    }

}


@media screen and (max-width: 768px) {
    .topReturn {
        width: 40px;
        height: 40px;
    }
}

@media screen and (max-width:600px) {
    .topReturn {
        bottom: 65px;
    }
}



/*******************************************
pagination
*******************************************/
.paginationFlex {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: min(100%, 113px);
    margin: 0 0 30px auto;
}

.pagiBtn {
    position: relative;
    width: 50px;
    aspect-ratio: 1;
    border-radius: var(--borderRadiusCircle);
    background-color: var(--green05);
    cursor: pointer;
    transition: var(--transitionBase01);

    &:hover {
        opacity: var(--opacity07);
    }

    &::before {
        position: absolute;
        content: "";
        background-image: url(../img/common/arrow-white.svg);
        background-size: contain;
        background-repeat: no-repeat;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 40%;
        aspect-ratio: 20/15;
    }
}

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

@media screen and (max-width: 480px) {
    .paginationFlex {
        width: min(100%, 90px);
        margin: 0 0 20px auto;
    }

    .pagiBtn {
        width: 40px;
    }
}

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

.header {
    position: fixed;
    width: 100%;
    display: flex;
    align-items: center;
    padding: 0 45px 0 20px;
    height: 100px;
    z-index: 95;
    transition: var(--transitionBase01);
}

.bg-white {
    background-color: var(--white);
}

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

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

        &:hover {
            opacity: var(--opacity07);
        }
    }
}

.headerNav {
    flex: 1;
}

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

.headerNav__item {
    margin-left: clamp(20px, 3.58vw, 50px);

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

    a:not(.btn) {
        display: inline-block;
        width: 100%;
        position: relative;
        font-size: 15px;
        color: var(--black);
        transition: var(--transitionBase01);

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

}

.headerNav__item--sp {
    display: none;
}

@media screen and (max-width:1024px) {
    .header {
        height: 80px;
    }

    .header__logo {
        width: 150px;
    }
}



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

    .header {
        position: relative;
        padding: 0 20px;
        height: 60px;
    }

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

    .hamburger {
        display: block;
        position: fixed;
        right: 1%;
        top: 30px;
        width: 50px;
        aspect-ratio: 1;
        cursor: pointer;
        z-index: 100;
        transition: var(--transitionBase01);
        background-image: var(--gra03);
        transform: translateY(-50%);
        border-radius: 5px;

        .line {
            position: absolute;
            width: 55%;
            height: 2px;
            left: 50%;
            transform: translate(-50%, -50%);
            transition: var(--transitionBase01);
            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(--transitionBase01);
        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(30px, 10svh, 100px) 5% 2vh;
        margin-left: auto;
        background-color: var(--white);
    }

    .headerNav__item {
        margin: 0 0 5svh;

        &:nth-last-child(2) {
            margin: 0;
        }

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

        a:not(.btn) {

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

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

    .headerNav__item--sp {
        display: flex;
        flex-direction: row;
        width: 100%;
        gap: 10px;

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


    }

}

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

    .headerNav__list {
        width: 100%;
        align-items: center;
    }
}


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

    .header__logo {
        width: 120px;
    }

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


}


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

.mv__partsBox {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 95.24%;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}

.mv__parts01,
.mv__parts02,
.mv__parts03 {

    img {
        border-radius: 1.5vw;
    }
}

.mv__parts01 {
    width: 41.2491%;
    margin-top: 1.875%;
}

.mv__parts02,
.mv__parts03 {
    width: 26.25%;
}

.mv__parts03 {
    margin-top: 4.875%;
}



.mv__ttlBox {
    position: absolute;
    top: 39%;
    left: 46%;
    font-size: 4.2403vw;
    font-weight: var(--weight700);
    line-height: var(--lineHight133);

    .small {
        display: block;
        font-size: 0.408em;
        font-weight: var(--weight500);
        margin-top: 0.4em;
    }
}

.mvLogoSwiper-outer {
    position: absolute;
    width: 100%;
    aspect-ratio: 1400/90;
    left: 0;
    bottom: 17%;
}

.mvLogoSwiper {
    background-color: var(--white);
    height: 100%;
    display: flex;
    align-items: center;
}

.mvLogoSwiper__list {
    transition-timing-function: linear;
    align-items: center;

    .swiper-slide {
        width: 15.82%;
        display: flex;
        align-items: center;
    }

    .swiper-slide08 {
        width: 8.011%;
    }
}

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

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

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

    .mv {
        width: 100%;
    }

    .mv__ttlBox {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        width: 100%;
        font-size: 10.7vw;
        left: 4.31%;
        top: 5%;
    }

    .mv__partsBox {
        top: 27%;
        display: grid;
        gap: 0.8vw;
    }

    .mv__parts01,
    .mv__parts02,
    .mv__parts03 {

        img {
            border-radius: 2vw;
        }
    }

    .mv__parts01 {
        width: 100%;
        margin: 0;
        grid-row: 2;
        grid-column: 1 / 3;
    }

    .mv__parts02,
    .mv__parts03 {
        margin: 0;
        width: 100%;
        grid-row: 1;
    }

    .mv__parts02 {
        grid-column: 1;
    }

    .mv__parts03 {
        grid-column: 2;
    }



    .mvLogoSwiper-outer {
        position: absolute;
        width: 100%;
        aspect-ratio: 480/90;
        left: 0;
        bottom: 9%;
    }

    .mvLogoSwiper__list {

        .swiper-slide {
            width: 40%;
        }

        .swiper-slide08 {
            width: 20.5%;
        }
    }

}





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


    .mvSwiper,
    .mvSwiper02,
    .mvSwiper03 {

        .swiper-slide {
            width: 100% !important;
        }
    }
}

/*******************************************
Message
*******************************************/
.message {
    .section__inner {
        padding: 0;
        width: min(100%, 1400px);
    }
}

.messageFlex {
    width: min(100%, 1200px);
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    margin-top: max(2.5%, 25px);
}

.messageFlex__imgBox {
    width: min(39.44vw, 558px);
    margin-right: max(2.55%, 10px);

    .img {
        width: 93.19%;

        &:last-child {
            width: 62.33%;
            margin: max(4.85%, 10px) 0 0 auto;
        }

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

.messageFlex__txtBox {
    flex: 1;
    padding: 6.3% 20px 0 0;

    .txt {
        font-size: var(--font19);
        margin-bottom: clamp(20px, 6.7%, 40px);
        line-height: var(--lineHight178);

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

.messageFeatures {
    position: relative;
    padding: 60px 0 50px;
    margin-top: 70px;

    &::before {
        position: absolute;
        top: 0;
        left: 0;
        content: "";
        width: 100%;
        height: 100%;
        background-image: var(--gra01);
        border-radius: var(--borderRadius50);
        opacity: .2;

    }
}

.messageFeatures__ttl {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: var(--font24);
    text-align: center;
    width: min(100%, 18.625em);
    background-image: var(--gra01);
    border-radius: var(--borderRadius01);
    color: var(--white);
    letter-spacing: var(--fontSpace100);
    aspect-ratio: 448/54;
    display: flex;
    align-items: center;
    justify-content: center;
}

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

.featuresFlex__item {
    position: relative;
    width: calc((100% - 50px)/3);
    padding: 35px 0 55px;

    &::before {
        position: absolute;
        content: "";
        top: 50%;
        left: 50%;
        width: 100%;
        height: 113.3%;
        clip-path: ellipse(42% 50% at 50% 50%);
        background-color: var(--white);
        transform: translate(-50%, -50%) rotate(50deg);
    }
}

.featuresFlex__number {
    position: absolute;
    top: 0;
    left: 0;
    font-size: var(--font30);
    width: fit-content;
    display: flex;
    align-items: center;
    line-height: 1;


    span {
        display: inline-block;
        letter-spacing: var(--fontSpace100);
        background: var(--gra03);
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent;
    }

    .big {
        font-size: 2em;
        transform: translateY(-8%);
    }
}

.featuresFlex__icon {
    width: 98px;
    margin: 0 auto 20px;
    transform: translateX(15%);

}

.featuresFlex__txt {
    position: relative;
    font-size: var(--font19);
    line-height: var(--lineHight178);
    padding-left: 45px;
}

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

    .messageFeatures {
        width: min(100%, 800px);
        margin-left: auto;
        margin-right: auto;
    }

    .featuresFlex {
        flex-wrap: wrap;
        justify-content: center;
        width: min(100%, 500px);
        gap: 25px;
    }

    .featuresFlex__item {
        width: min(100%, 300px);
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .featuresFlex__icon {
        transform: translateX(0%);
    }

    .featuresFlex__txt {
        padding-left: 0;
    }
}


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


    .messageFlex__txtBox {
        flex: initial;
        padding: 0;

        .txt {
            margin-bottom: max(5%, 15px);
        }
    }

    .messageFlex__imgBox {
        width: min(90%, 400px);
        margin: max(5%, 15px) auto 0;

        .img {
            width: 80%;

            &:last-child {
                width: 50%;
                margin: 5px 0 0 auto;
            }

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

    .featuresFlex {
        gap: 50px;
    }

    .featuresFlex__item {
        padding: 20px 0 40px;

        &::before {
            height: 320px;
        }
    }
}

@media screen and (max-width:480px) {
    .messageFeatures {
        position: relative;
        padding: 80px 0 70px;
        margin-top: 70px;
    }

    .messageFeatures__ttl {
        width: min(80%, 13em);
        aspect-ratio: 247/55;
    }


    .featuresFlex__item {
        padding: 20px 0;

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

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

    .featuresFlex__number {
        font-size: 18px;
        left: 10%;
    }

    .featuresFlex__icon {
        width: 70px;
        margin: 0 auto 10px;
    }
}

@media screen and (max-width:360px) {
    .featuresFlex__item {

        &::before {
            clip-path: ellipse(47% 50% at 50% 50%);
        }

    }

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


/*******************************************
job
*******************************************/
.job {
    position: relative;

    &::before {
        position: absolute;
        content: "";
        background-image: url(../img/job/bg.png);
        background-size: cover;
        background-repeat: no-repeat;
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
    }


    .section__inner {
        padding: clamp(40px, 9%, 120px) 0 clamp(40px, 5.5%, 75px);
    }
}

.job__txt {
    font-size: var(--font19);
    line-height: var(--lineHight178);
    text-align: center;
    margin: 35px 0 75px;
}

.jobSwiper {
    overflow: visible;
}

.jobSwiper__list {
    flex-wrap: wrap;
    gap: 70px 30px;

    .swiper-slide {
        position: relative;
        width: calc((100% - 30px)/2);
        display: flex;
        flex-direction: column;
        align-items: center;
        background-color: var(--white);
        border-radius: var(--borderRadius20);
        height: auto;
    }
}

.jobSwiper__number {
    position: absolute;
    top: 0;
    left: 0;
    font-family: var(--playwrite);
    font-size: 60px;
    background: var(--gra04);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    width: 2em;
    transform: translateY(-50%);
}

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

.jobSwiper__detail {
    display: flex;
    flex-direction: column;
    padding: 30px 25px 40px;
    flex-grow: 1;
    height: 100%;

    dt {
        font-size: var(--font26);
        text-align: center;
        margin-bottom: 25px;
    }

    dd {
        flex-grow: 1;
    }
}

.paginationFlex-job {
    display: none;
}

.job__detailBox {
    margin-top: max(6.64%, 30px);
}

.job__detail {
    margin-bottom: 30px;
    display: flex;
    justify-content: flex-start;
    border-radius: var(--borderRadius20);
    overflow: hidden;

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

    dt {
        display: flex;
        justify-content: center;
        align-items: center;
        font-size: var(--font26);
        width: min(100%, 7.788em);
        background-image: var(--gra02);
        font-weight: var(--weight700);
    }

    dd {
        flex: 1;
        background-color: var(--white);
        padding: 25px;
    }
}


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

        &::before {
            position: absolute;
            content: "・";
            top: 0.3em;
            left: 0;
            font-size: 1em;
            color: var(--black);
        }
    }
}

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

    .job__txt {
        margin: max(4.9%, 20px) 0 max(4%, 20px);
    }

    .paginationFlex-job {
        display: flex;
    }

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

    .jobSwiper__list {
        flex-wrap: initial;
        gap: initial;

        .swiper-slide {
            width: auto;
        }
    }

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

@media screen and (max-width:600px) {
    .job__detailBox {
        width: min(100%, 400px);
        margin-left: auto;
        margin-right: auto;
    }

    .job__detail {
        flex-direction: column;
        align-items: center;

        dt {
            width: 100%;
            padding: 10px 5px;
        }

        dd {
            padding: 15px;
        }
    }
}

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

        dt {
            margin-bottom: 10px;
        }
    }
}


/*******************************************
environment
*******************************************/
.environment {
    .section__inner {
        padding: 40px 0 clamp(40px, 10%, 135px);
    }
}

.environmentBox {
    background-color: var(--green06);
    border-radius: var(--borderRadius20);
    overflow: hidden;
    padding: 30px 20px 45px;
}

.environmentBox__ttl {
    line-height: 1.615;
    font-size: var(--font26);
    text-align: center;
    font-weight: var(--weight700);
}

.environmentTop {
    padding: 30px 20px 0 0;
    margin-top: max(6.12%, 25px);
}

.environmentTop__flex {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    margin-top: max(4.2%, 20px);

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

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

.environmentTop__txtBox {
    flex: 1;
    padding: 0 0 20px 20px;
    margin-top: -8px;
}

.btn-outer-environmentTop {
    margin: 30px auto 0;

    .btn {
        background-image: var(--gra01);
        color: var(--black);
        background-color: transparent;
    }
}

.environmentFlex {
    display: flex;
    justify-content: space-between;
    margin: 30px auto;
}

.environmentFlex__item {
    width: calc((100% - 50px)/3);
    display: flex;
    flex-direction: column;



    .environmentBox__ttl {
        display: flex;
        justify-content: center;
        align-items: center;
        margin-bottom: 30px;
        height: 3em;

    }
}

.environmentFlex__detail {
    display: flex;
    flex-direction: column;
    align-items: center;

    dt {
        width: min(100%, 165px);
        margin-bottom: 30px;
    }
}

.tourBox {
    position: relative;
    display: flex;
    align-items: center;
    padding: 28px 24px 22px 40px;

    &::before {
        position: absolute;
        content: "";
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        border-radius: var(--borderRadius20);
        background-image: var(--gra02);
        opacity: .5;
    }
}

.tourBoxFlex {
    position: relative;
    display: flex;
    align-items: center;

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

    .txt {
        line-height: 1.346;
        font-size: var(--font26);
        font-weight: var(--weight700);
        color: var(--black02);
    }
}

.btn-outer-tourBox {
    position: relative;
    z-index: 1;
    width: min(100%, 295px);

    .btn {
        background-image: var(--gra02);

    }
}


@media screen and (max-width:1024px) {
    .environmentTop {
        padding: 30px 15px 0;
    }

    .environmentTop__flex {
        flex-direction: column;
        align-items: center;
        width: min(100%, 500px);
        margin-left: auto;
        margin-right: auto;

        .img {
            width: min(90%, 350px);

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

    .environmentTop__txtBox {
        flex: 1;
        padding: 0 0 30px 0;
        margin-top: max(4%, 10px);
    }
}

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

    .tourBox {
        flex-direction: column;
        align-items: center;
        padding: 30px 15px 40px;
    }

    .tourBoxFlex {
        justify-content: center;
        margin-bottom: 30px;
    }

}

@media screen and (max-width:875px) {
    .environmentFlex {
        flex-direction: column;
        justify-content: initial;
        margin: 30px auto;
        width: min(100%, 400px);
    }

    .environmentFlex__item {
        width: 100%;
        margin-bottom: 30px;

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

        .environmentBox__ttl {
            display: flex;
            justify-content: center;
            align-items: center;
            margin-bottom: 20px;
            height: auto;

        }
    }

    .environmentFlex__detail {
        dt {
            width: min(100%, 100px);
            margin-bottom: 20px;
        }
    }
}

@media screen and (max-width:768px) {
    .tourBoxFlex {
        .img {
            width: min(100%, 80px);
            margin-right: 15px;
        }
    }
}

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

        .img {
            margin: 0 auto 15px;
        }

        .txt {
            text-align: center;
            font-size: 17px;
        }
    }
}

@media screen and (max-width:480px) {
    .environmentFlex__item {
        padding: 20px 15px 30px;
    }
}

/*******************************************
environment（モーダル）
*******************************************/
/* 共通
ーーーーーーーーーーーーーーーーーーー */
.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(--blue01);
    z-index: -100;
    overflow: auto;
    transition: var(--transitionBase02);
}

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

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

.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%, 896px);
    margin: 0 auto;
    padding: 60px 0 90px;
}

.modalClose-top {
    position: absolute;
    content: "";
    width: 75px;
    aspect-ratio: 1;
    background-image: var(--gra01);
    top: 0;
    right: 0;
    border-radius: var(--borderRadiusCircle);
    transform: translate(50%, -50%);
    z-index: 10;
    transition: var(--transitionBase02);

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

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

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

    &:hover {
        vertical-align: var(--opacity07);

    }
}

.btn-outer-modal {
    width: min(80%, 260px);
    margin: max(10%, 30px) auto 0;

    .btn {
        background-image: var(--gra01);
        font-size: var(--font17);
        font-weight: var(--weight700);

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

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

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



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

        }
    }

}


.modal__ttl {
    font-size: var(--font26);
    letter-spacing: var(--fontSpace100);
    text-align: center;
    background: var(--gra03);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    width: fit-content;
    margin: 0 auto;


    .marker {
        padding-bottom: 0.15em;
        font-size: 2em;
        background-size: 100% 0.2em;
    }

    .small {
        display: inline-block;
        font-size: 0.5em;
        transform: translateY(-0.25em);
        color: var(--green04);
    }
}

.scheduleContainer {
    margin-top: max(9.45%, 35px);
}

.schedule__detail {

    margin-bottom: max(7.8%, 30px);

    &.marker {
        background: var(--gra01);
        background-repeat: no-repeat;
        background-size: 100% 0.4em;
        /* 高さを下線の太さに */
        background-position: 0 100%;
        padding-bottom: max(3%, 10px);
    }

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

    .aco-click {
        position: relative;
        font-size: var(--font30);
        letter-spacing: var(--fontSpace100);
        text-align: center;
        color: var(--black02);
        padding: 0 1.5em;
    }
}

.scheduleBox-outer {
    padding-top: max(3.35%, 10px);
}

.scheduleBox {
    background-image: var(--gra05);
    padding: 25px 25px 35px;
    border-radius: var(--borderRadius20);
}

.scheduleBox__ttl {
    text-align: center;
    font-size: var(--font30);
    letter-spacing: var(--fontSpace100);
}

.scheduleBoxDetail {
    position: relative;
    margin-top: max(4%, 15px);
    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    &::before {
        position: absolute;
        content: "";
        width: 94%;
        height: 3px;
        background-image: var(--gra04);
        top: 39.477px;
        left: 50%;
        transform: translateX(-50%);
    }
}

.scheduleBoxDetail__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: var(--font19);


    dt {
        position: relative;
        font-size: 1.053em;
        letter-spacing: var(--fontSpace100);
        color: var(--pink03);


        &::before {
            position: absolute;
            content: "";
            width: 0.8em;
            aspect-ratio: 1;
            border-radius: var(--borderRadiusCircle);
            background-image: var(--gra04);
            top: 145%;
            left: 50%;
            transform: translateX(-55%);
        }
    }

    dd {
        position: relative;
        writing-mode: vertical-rl;
        margin-top: 40px;
    }
}

@media screen and (max-width:1024px) {
    .scheduleBox {
        padding: 25px max(3%, 5px) 35px;
    }

    .scheduleBoxDetail {
        flex-direction: column;
        align-items: flex-start;
        justify-content: initial;
        overflow: hidden;

        &::before {
            width: 3px;
            height: 96%;
            top: 50%;
            left: 74.820px;
            transform: translateY(-50%);
            background-image: linear-gradient(180deg, var(--beige02), var(--pink02));
            ;
        }
    }

    .schedule__detail {
        &:last-child {
            .scheduleBoxDetail::before {
                height: 98%;
            }
        }
    }

    .scheduleBoxDetail__item {
        flex-direction: row;
        align-items: flex-start;
        margin-bottom: max(7%, 30px);

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

        dt {
            text-align: end;
            width: 3em;

            &::before {
                top: 50%;
                left: auto;
                right: -27px;
                transform: translateY(-37%);
            }
        }

        dd {
            writing-mode: initial;
            margin: 0 0 0 40px;
            flex: 1;
        }
    }
}

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

        &::before {
            left: 72.5px;
        }
    }
}


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

    .modal__inner {
        padding: 50px 15px;
    }

    .modal__ttl {
        font-size: 15px;
    }

    .schedule__detail {

        &.marker {
            background-size: 100% 0.2em;
        }

        .aco-click {
            font-size: 18px;
        }
    }

    .scheduleBox__ttl {
        font-size: 18px;
    }

    .scheduleBoxDetail {

        &::before {
            width: 1.5px;
            left: 50.5px;
        }
    }

    .scheduleBoxDetail__item {
        font-size: 14px;

        dt {
            font-size: 14px;

            &::before {
                top: 50%;
                left: auto;
                right: -14px;
                width: 0.7em;
            }
        }

        dd {
            writing-mode: initial;
            margin: 0 0 0 20px;
            flex: 1;
        }
    }
}

@media screen and (max-width:374px) {
    .modal__ttl {
        font-size: 15px;
    }

    .schedule__detail {
        .aco-click {
            font-size: 17px;
        }
    }

    .scheduleBox__ttl {
        font-size: 17px;
    }
}



/*******************************************
voice
*******************************************/
.voice {
    background-image: var(--gra05);
    border-radius: var(--borderRadius50);

    .section__inner {
        padding: clamp(40px, 5%, 65px) 0 clamp(40px, 8%, 110px);

    }
}

.voiceSwiper-outer {
    margin-top: clamp(25px,6.12%, 50px);
}

.voiceSwiper {
    overflow: visible;
    width: min(100%, 490px);

    .swiper-slide {
        border-radius: var(--borderRadius20);
        display: flex;
        flex-direction: column;
        padding: 25px;
        height: auto;
    }

    .swiper-slide01 {
        background-color: var(--green08);
    }

    .swiper-slide02 {
        background-color: var(--green09);
    }

    .swiper-slide03 {
        background-color: var(--green02);
    }
}

.voiceSwiper__detail {
    display: flex;
    flex-direction: column;
    color: var(--white);

    dd {
        margin-top: 15px;
        font-size: var(--font19);
        line-height: var(--lineHight178);
    }
}




@media screen and (min-width:1561px) {

    .voice {
        .section__inner {
            width: 100%;
        }
    }

    /* 1522px以上 */

    .voiceSwiper {
        width: min(100%, 1521px);
        overflow: hidden;
    }

    .voiceSwiper__list {
        .swiper-slide {
            width: auto;
        }
    }

    .paginationFlex-voice {
        display: none;
    }
}

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

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

    .voiceSwiper {
        .swiper-slide {
            padding: 15px 15px;
            height: 100%;
        }
    }

    .voiceSwiper__detail {
        dt {
            height: 49.27px;
            display: flex;
            align-items: center;

            p {
                text-align: left;
            }
        }

        dd {
            margin-top: 10px;
        }
    }
}

.paginationFlex-voice {
    display: none;
}

/******************************************
流れる続けるスライダー
*******************************************/
.loopSwiper-outer {
    padding-top: clamp(10px, 8%, 110px);
}

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

.loopSwiper {
    width: min(50%, 356px);
    overflow: visible;
}

.loopSwiper__list {
    .swiper-slide {

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

    .swiper-slide02 {
        margin-top: clamp(10px, 8%, 30px);
    }

    .swiper-slide03 {
        margin-top: clamp(20px, 16%, 55px);
    }
}

/* @media screen and (min-width:1401px) {
    .loopSwiper__list {
        .swiper-slide {
            width: min(100%, 360px);
        }
    }
} */



/*******************************************
search
*******************************************/

.search {
    &::before {
        position: absolute;
        content: "";
        background-image: url(../img/search/bg.png);
        background-size: cover;
        background-repeat: no-repeat;
        width: 100%;
        height: 109.41%;
        top: -8.19%;
        left: 0;
    }

    .section__inner {
        padding: clamp(40px, 10%, 140px) 0 clamp(40px, 11%, 150px);
    }
}

.search-container {
    margin-top: max(4.59%, 25px);
}

.searchBox {
    margin-bottom: max(9.184%, 40px);

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

.searchBox__ttl {
    position: relative;
    font-size: var(--font26);
    color: var(--black02);
    padding-left: 2.885em;
    margin-bottom: max(4.59%, 20px);
    font-weight: var(--weight700);

    &::before {
        position: absolute;
        content: "";
        width: 2.308em;
        height: 1px;
        background-color: var(--black02);
        top: 50%;
        left: 0;
        transform: translateY(-50%);
    }
}

.searchLogo__list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 45px 25px;
}

.btn-outer-searchLogo {
    width: calc((100% - 75px)/4);
    height: 125px;

    .btn {
        background-color: var(--white);
        box-shadow: var(--shadow01);
        border-radius: var(--borderRadius20);
    }

    img {
        width: 96.8%;
    }

    &:nth-child(8) {

        img {
            width: 49.1%;
        }
    }
}


.searchBtn__list {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    width: min(100%, 816px);
    margin: 0 auto;
    gap: 20px 40px;
}

.btn-outer-search {
    width: calc((100% - 40px)/2);
    height: 96px;

    .btn {
        box-shadow: var(--shadow01);
        background-color: var(--white);
        font-size: var(--font24);
        letter-spacing: var(--fontSpace050);
        color: var(--green10);
        border-radius: var(--borderRadius20);
    }

    .arrow {
        background-image: url(../img/common/arrow-blue.svg);
        aspect-ratio: 23/17;
        width: 0.958em;
        right: 3%;
    }
}

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

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

    .btn-outer-searchLogo {
        width: calc((100% - 20px)/2);
        height: 90px;
    }

    .searchBtn__list {
        width: min(100%, 600px);
        gap: 20px;
    }

    .btn-outer-search {
        height: 80px;
    }

}



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

    .searchBox__ttl {
        padding-left: 1.7em;

        &::before {
            width: 1.5em;
        }
    }

    .searchLogo__list,
    .searchBtn__list {
        gap: 10px;
    }

    .btn-outer-searchLogo,
    .btn-outer-search {
        width: calc((100% - 10px)/2);
        height: 70px;
    }

    .btn-outer-search {
        height: 60px;

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

}

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

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

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







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

.footer {
    background-image: var(--gra01);
    padding: 50px 0 45px;
    position: relative;
    font-size: 12px;
    color: var(--white);
    font-weight: var(--weight500);
    font-family: var(--notoSans);
}

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

    a {
        position: relative;

        &:hover {
            opacity: var(--opacity07);
        }
    }

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


.copyright {
    text-align: center;
    font-size: 12px;
}

@media screen and (max-width:768px) {
    .footer {
        padding-bottom: 80px;
    }
}



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

    .footer {
        padding-top: 30px;

        .inner {
            padding: 0 15px;
        }
    }

    .footer-nav {
        flex-wrap: wrap;
        column-gap: 30px;
        row-gap: 10px;


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

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