@charset "utf-8";

/* 色の変数　　color: var(--blue); */
:root {
    --white: #fff;
    --white02: rgba(255, 255, 255, 0.5);
    --black: #4d4d4d;
    --pink01: #e97e86;
    --blue01: #3bbcdb;
    --green01: #04a17c;
    --green02: rgba(181, 238, 174, 0.8);
    --green03: #bedfc2;
    --yellow01: #dfff00;
    --beige01: #f5f1ea;
    --beige02: #e4d9c6;
    --beige03: #ece4d7;


    --gray: #c3c3c3;

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

    /* 書式 */
    --notoSans: "Noto Sans JP", sans-serif;


    /* 文字 */
    --font17: 1.7rem;
    --font19: 1.9rem;
    --font21: 2.1rem;
    --font22: 2.2rem;
    --font23: 2.3rem;
    --font24: 2.4rem;
    --font25: 2.5rem;
    --font26: 2.6rem;
    --font27: 2.7rem;
    --font28: 2.8rem;
    --font34: 3.4rem;
    --font36: 3.6rem;
    --font40: 4rem;

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

    /* 行間 */
    --lineHight133: 1.333333;
    --lineHight147: 1.47;
    --lineHight158: 1.583;
    --lineHight175: 1.75;
    --lineHight20: 2.0;

    /* 文字間 */
    --fontSpace025: 0.025em;
    --fontSpace050: 0.05em;

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

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




@media screen and (max-width: 1024px) {
    :root {
        --font17: 1.6rem;
        --font21: 1.7rem;
        --font22: 1.8rem;
        --font19: 1.8rem;
        --font23: 1.9rem;
        --font24: 2rem;
        --font25: 2rem;
        --font26: 2.1rem;
        --font27: 2.2rem;
        --font28: 2.3rem;
        --font34: 2.4rem;
        --font36: 2.5rem;
        --font40: 3rem;
    }
}


@media screen and (max-width: 480px) {
    :root {
        --font17: 1.4rem;
        --font21: 1.5rem;
        --font22: 1.6rem;
        --font19: 1.6rem;
        --font23: 1.7rem;
        --font24: 1.8rem;
        --font25: 1.8rem;
        --font26: 1.9rem;
        --font27: 2rem;
        --font28: 2rem;
        --font34: 2.1rem;
        --font36: 2.1rem;
        --font40: 2.5rem;

        --borderRadius30: 15px;

    }
}



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

/* html.with-featherlight {
    overflow-y: scroll;
} */

.with-featherlight body {
    overflow-y: scroll;
}

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

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

.ttlBox {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;

    .en {
        color: var(--green01);
        font-size: var(--font40);
        letter-spacing: var(--fontSpace025);
    }

    .ja {
        font-size: var(--font24);
        line-height: var(--lineHight158);
    }
}

.section__ttl02 {
    display: block;
    font-size: var(--font27);
    color: var(--green01);
    width: fit-content;
    position: relative;
    margin: 0 auto;
    line-height: var(--lineHight175);

    &::before {
        position: absolute;
        content: "";
        width: 135.2%;
        height: 3px;
        background-color: var(--green01);
        bottom: 0;
        left: 50%;
        transform: translateX(-50%);
    }
}

.txt {
    font-size: var(--font17);
    line-height: var(--lineHight175);
    text-align: justify;
}

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

.blue {
    color: var(--blue01);
}

.pink {
    color: var(--pink01);
}


.marker {
    background: linear-gradient(transparent 70%, var(--yellow01) 70%);
}

.dot {
    position: relative;
    padding-left: 1.2em;

    &::before {
        position: absolute;
        content: "";
        aspect-ratio: 1;
        width: 10px;
        background-color: var(--blue01);
        border-radius: var(--borderRadiusCircle);
        top: 50%;
        left: 0;
        transform: translateY(-50%);
    }
}

.dot-thin {
    padding-left: 0.7em;
}

.list {
    li {
        position: relative;
        padding-left: 0.8em;
        line-height: var(--lineHight133);
        margin-bottom: 0.65em;


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

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

.push1400 {
    display: inline-block;
}

.block768 {
    display: none !important;
}




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

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

    .push480-cancel {
        display: inline;
    }

    .none480 {
        display: none;
    }

    .section__ttl02 {
        padding-bottom: 10px;
    }
}



/*******************************************
btn
*******************************************/
.btn {
    position: relative;
    width: min(100%, 260px);
    aspect-ratio: 260/60;

    a {
        display: flex;
        width: 100%;
        height: 100%;
        justify-content: center;
        align-items: center;
        position: relative;
        text-align: center;
        border-radius: var(--borderRadius50);
        color: var(--white);
        background-color: var(--pink01);
        border: 2px solid var(--pink01);
        transition: var(--transitionBase);
    }

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

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

            span {
                background-color: var(--pink01);

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

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

            span {
                background-color: var(--white);

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

.arrow {
    position: absolute;
    top: 50%;
    right: 5%;
    width: 30px;
    aspect-ratio: 1;
    background-color: var(--pink01);
    border-radius: var(--borderRadius50);
    display: flex;
    justify-content: center;
    align-items: center;
    transform: translateY(-50%);
    border: 2px solid var(--pink01);
    transition: var(--transitionBase);

    span {
        position: relative;
        background-color: var(--white);
        height: 2px;
        width: max(43%, 10px);
        transition: var(--transitionBase);

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

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

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

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

    span {
        background-color: var(--pink01);

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

@media screen and (max-width:768px) {
    .btn {
        &:hover {
            a {
                background-color: var(--pink01);
                color: var(--white);
            }

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

                span {
                    background-color: var(--white);

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

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

                span {
                    background-color: var(--pink01);

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

    .arrow {
        width: 25px;
    }
}


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

.topReturn {
    position: fixed;
    bottom: 2%;
    right: 2%;
    width: 60px;
    height: 60px;
    opacity: 0;
    visibility: hidden;
    border-radius: var(--borderRadiusCircle);
    background-color: var(--black);
    border: 2px solid var(--black);
    transition: var(--transitionBase);
    z-index: 90;

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

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

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

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

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

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

}

.topReturn__link {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
}

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

@media screen and (max-width: 480px) {
    .ttlBox {
        gap: 0;
    }

    .topReturn {


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

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





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

.header {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 95;
    transition: var(--transitionBase);
}

.header__logo {
    width: 180px;

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

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

.headerNav {
    position: fixed;
    width: 100%;
    top: 0;
    left: 0;
    padding: 35px 30px 35px 0;
    transition: var(--transitionBase);
}

.bg-white {

    .headerNav {
        background-color: var(--white02);
        backdrop-filter: var(--blur);
    }

}

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

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

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

    a {
        display: inline-block;
        position: relative;
        width: fit-content;

        &::before {
            position: absolute;
            content: "";
            width: 100%;
            height: 2px;
            bottom: -10px;
            left: 0;
            background-color: var(--pink01);
            transform: scale(0, 1);
            transform-origin: right;
            transition: transform 0.6s;
        }

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

.btn-header {
    margin: 25px 20px 0 auto;
    width: 200px;
    aspect-ratio: 200/50;

    a {
        border-radius: var(--borderRadius10);
        font-size: 15px;
    }

    .arrow {
        border: none;
    }
}

.btn-header-sp {
    display: none;
}

@media screen and (max-width:1024px) {
    .header__logo {
        width: 100px;
    }
}


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

    .header {
        position: absolute;
    }

    .hamburger {
        display: block;
        position: fixed;
        right: 1%;
        top: 10px;
        width: 55px;
        height: 55px;
        cursor: pointer;
        z-index: 100;
        transition: var(--transitionBase);
        background-color: var(--pink01);

        .line {
            position: absolute;
            width: 55%;
            height: 2px;
            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 {
        height: 100vh;
        z-index: 95;
        background-color: var(--white02);
        backdrop-filter: blur(10px);
        padding: 0;
        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(80px, 10svh, 100px) 5% 2vh;
        margin-left: auto;
        background-color: var(--white);
    }

    .headerNav__item {
        font-size: 15px;
        margin: 0 0 5svh;

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

        a::before {
            display: none;
        }
    }

    .btn-header-sp {
        display: block;
        margin: 0
    }

    .btn-header-pc {
        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;
        }
    }

}


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

    .header__logo {
        width: 70px;
    }

    .hamburger {
        width: 40px;
        height: 40px;

        .line {
            height: 1px;
        }
    }

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


/*******************************************
mv
*******************************************/
.mv {
    position: relative;
}


.mvSwiper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 0;

}

.mv__bg {
    width: 100%;
}

.mv__ttlBox {
    position: absolute;
    width: 51.2%;
    top: 56%;
    left: 3%;
    z-index: 5;

    .ttl {
        font-size: max(4.643vw, 20px);
        color: var(--blue01);
        background-color: var(--white);
        border-radius: max(1.5vw, 10px);
        margin-bottom: max(1.1vw, 7px);
        padding: max(1%, 4px) 0 max(1.37%, 5px) max(4.3%, 10px);
        letter-spacing: var(--fontSpace050);
        width: fit-content;


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

    .ttl01 {
        .thin {
            padding-right: 0.5em;
        }
    }

    .ttl-green {
        color: var(--green01);
        letter-spacing: -0.04em;
    }

    .subTtl {
        font-size: max(1.857vw, 12px);
        letter-spacing: var(--fontSpace050);
        color: var(--white);
        background: linear-gradient(90deg, var(--green01) 0%, var(--blue01) 100%);
        border-radius: 10vw;
        width: 69%;
        text-align: center;
        padding: max(0.7%, 3px) 0 max(1%, 4px);
    }
}


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

    .mvSwiper {
        position: relative;
    }

    .mv__ttlBox {
        position: absolute;
        width: 95.2%;
        top: 71%;
        left: 50%;
        transform: translateX(-50%);

        .ttl {
            font-size: min(8.66vw, 400px);
            border-radius: max(1.5vw, 10px);
            margin-bottom: 1.9vw;

        }

        .subTtl {
            font-size: clamp(12px, 4vw, 30px);
            width: 83%;
        }
    }

}


/*******************************************
about
*******************************************/
.about {
    .section__inner {
        position: relative;
        padding: clamp(40px, 7%, 100px) 0 60px;
    }

    .bg01 {
        position: absolute;
        width: 508px;
        top: 2%;
        left: -28%;
        z-index: -1;
    }
}

.about__txtBox {
    position: relative;
    margin: max(3.07%, 20px) 0 max(6.13%, 30px);

    .bg02 {
        position: absolute;
        width: 635px;
        bottom: -62%;
        left: 62%;
        z-index: -1;
    }
}

.about__txt {
    margin-bottom: max(3.57%, 25px);
    line-height: var(--lineHight20);
    font-size: var(--font19);
    text-align: center;
}

.aboutSwiper {
    margin: max(4.09%, 25px) 0 0;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
}


/* タブボタン */

.aboutSwiper-tab {
    width: min(100%, 300px);
    margin: 0 20px 0 0;
}

.aboutSwiper-tab__list {
    flex-direction: column;
    gap: 15px;

    & .swiper-slide {
        aspect-ratio: 300/96;
        cursor: pointer;

        &:hover,
        &.swiper-slide-thumb-active {
            .aboutSwiper-tab__item {
                background-color: var(--white);
            }
        }

    }
}

.aboutSwiper-tab__item {
    width: 100%;
    height: 100%;
    background-color: var(--beige01);
    border: 1px solid var(--beige02);
    font-size: var(--font36);
    display: flex;
    align-items: center;
    padding-left: 10px;
    vertical-align: bottom;
    border-radius: var(--borderRadius20);
    transition: var(--transitionBase);

    .small {
        font-size: var(--font21);
        font-weight: var(--weight500);
    }

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

.aboutSwiper-tab__item03 {
    padding-left: 25px;
}

/* コンテンツ */
.aboutSwiper-cont {
    flex: 1;
}

.aboutSwiper-cont__item {
    width: 100%;
    background-color: var(--beige01);
    border-radius: var(--beige02);
    padding: 25px 25px 40px;
    border-radius: var(--borderRadius20);

    .ttl {
        font-size: var(--font24);
        line-height: var(--lineHight133);
        color: var(--green01);
    }
}

.aboutSwiper-cont__item01 {
    .dot::before {
        background-color: var(--green01);
    }

    .aboutSwiper__base dt {
        color: var(--green01);
    }
}

.aboutSwiper-cont__item02 {

    .ttl,
    .aboutSwiper__base dt {
        color: var(--blue01);
    }
}

.aboutSwiper-cont__item03 {
    .dot::before {
        background-color: var(--pink01);
    }

    .ttl,
    .aboutSwiper__base dt {
        color: var(--pink01);
    }
}

.aboutSwiper-contFlex {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    margin: 25px 0 20px;

    .img {
        border-radius: var(--borderRadius17);
        overflow: hidden;
        width: min(100%, 250px);
        margin: 0 30px 0 0;
    }

    .txt {
        flex: 1;
    }
}

.aboutSwiper__base {
    background-color: var(--white);
    border-radius: var(--borderRadius17);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 20px 10px 20px 40px;
    margin-bottom: 35px;

    dt {
        font-size: var(--font19);
        margin: 0 30px 0 0;
    }

    dd {
        flex: 1;
    }
}

.btn-aboutSwiper {
    margin: 0 auto;
}



@media screen and (max-width:1024px) {
    .about {
        .section__inner {
            padding: max(7.2%, 40px) 20px max(6%, 30px);
        }

        .bg01 {
            width: max(30.7%, 110px);
            top: 0;
            left: -10%;
        }

    }

    .about__txtBox {
        .bg02 {
            width: max(40%, 120px);
            bottom: 0;
            transform: translateY(70%);
            left: 70%;
        }
    }
}

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

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

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

    .aboutSwiper {
        display: block;
    }

    .aboutSwiper-tab {
        margin: 0 auto 20px;
        width: min(100%, 600px);
    }

    .aboutSwiper-tab__list {
        flex-direction: row;
        gap: 10px;
        flex-wrap: wrap;

        & .swiper-slide {
            aspect-ratio: 300 / 40;
        }
    }

    .aboutSwiper-tab__item {
        justify-content: center;
    }

    .aboutSwiper-cont {
        flex: initial;
    }

    .aboutSwiper-cont__item {
        padding: 25px 15px 40px;
    }
}


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


    .aboutSwiper-tab__list {

        & .swiper-slide {

            &:hover {
                .aboutSwiper-tab__item {
                    background-color: var(--beige01);
                }
            }

        }

        & .swiper-slide-thumb-active {

            &:hover {
                .aboutSwiper-tab__item {
                    background-color: var(--white);
                }
            }

        }
    }
}


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


    .aboutSwiper__base {
        flex-direction: column;
        align-items: flex-start;
        padding: 20px 15px;

        dt {
            margin: 0 auto 10px;
        }
    }
}





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

    .section__inner {
        padding: clamp(50px, 9.3%, 130px) 0 clamp(80px, 17%, 238px);
    }

    .bg01 {
        position: absolute;
        width: max(100%, 4730px);
        left: 50%;
        top: 0;
        transform: translateX(-66%);
        z-index: -1;
    }

    .bg02,
    .bg03 {
        position: absolute;
        width: 477px;
    }

    .bg02 {
        left: 65.5%;
        top: 0;
    }

    .bg03 {
        left: 0;
        top: 60%;
    }
}

.voiceSwiper {
    overflow: visible;
    margin: max(7.15%, 40px) 0 50px;
}

.voiceSwiper__list {
    .swiper-slide {
        border-radius: var(--borderRadius20);
        overflow: hidden;
        background-color: var(--white);
        cursor: pointer;
        transition: var(--transitionBase);
        height: auto;

        display: flex;
        flex-direction: column;

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

.voice__top {
    position: relative;
}

.comment {
    position: absolute;
    left: 10px;
    bottom: 10px;
}

.commentBack {
    display: block;
    background-color: var(--green01);
    color: var(--white);
    font-size: var(--font26);
    margin-bottom: 5px;
    line-height: 1.69;
    padding: 0 10px;
    border-radius: var(--borderRadius10);
    width: fit-content;

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

.voice__detail {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    padding: 20px 15px 15px 20px;
}

.job-meta {
    font-size: var(--font19);
    line-height: var(--lineHight147);
    flex-grow: 1;
}

.btn-voiceSwiper {
    width: 100%;
    aspect-ratio: auto;
    margin: 10px 0 0 0;
    pointer-events: none;

    a {
        background-color: transparent;
        color: var(--pink01);
        border: none;
        justify-content: flex-end;
        font-size: var(--font17);


        .arrow {
            width: 45px;
            position: relative;
            top: auto;
            right: auto;
            transform: none;
            margin-left: 10px;
        }
    }
}

.paginationFlex {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;

    .pageDot {
        width: fit-content;
        margin: 0 20px;

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

}

.paginationBtn {
    position: relative;
    width: 50px;
    aspect-ratio: 1;

    .arrow {
        background-color: var(--green01);
        width: 100%;
        border: 2px solid var(--green01);
        cursor: pointer;

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

            span {
                background-color: var(--green01);

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

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

@media screen and (min-width:2000px) {
    .paginationFlex {
        display: none;
    }
}


@media screen and (max-width:1024px) {
    .voice {
        .section__inner {
            padding: max(9.3%, 100px) 20px max(17%, 120px);
        }

        .bg01 {
            width: max(100%, 3700px);
        }

        .bg02,
        .bg03 {
            position: absolute;
            width: min(100%, 300px);
        }

        .bg02 {
            left: 70%;
            top: 2%;
        }

        .bg03 {
            left: -1%;
            top: 66%;
        }
    }
}

@media screen and (max-width:768px) {
    .voice {
        .bg03 {
            width: min(100%, 200px);
            top: 73%;
        }
    }

    .voiceSwiper__list {
        .swiper-slide {

            &:hover {
                opacity: 1;
            }
        }
    }

    .paginationBtn {
        .arrow {
            &:hover {
                background-color: var(--green01);

                span {
                    background-color: var(--white);

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



@media screen and (max-width:501px) {
    .voice__top03 {
        .comment {
            .commentBack {
                font-size: 19px;
            }
        }
    }
}


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

        .section__inner {
            padding: max(9.3%, 70px) 20px max(17%, 120px);
        }

        .bg01 {
            width: max(100%, 3000px);
        }

        .bg02,
        .bg03 {
            width: max(30%, 100px);
        }
    }

    .voice__detail {
        padding: 10px 5px 15px;
    }

    .btn-voiceSwiper {

        a {


            .arrow {
                width: 25px;
            }
        }
    }

    .pageDot {
        margin: 0 10px;
    }

    .paginationBtn {
        width: 40px;

    }
}

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

}

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

    .voice {
        .bg01 {
            width: max(100%, 2800px);
        }
    }

    .voice__top04 {
        .comment {
            .commentBack {
                font-size: 17px;
            }
        }
    }

    .comment {
        left: 5px;
        bottom: 5px;
    }
}

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

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

.modalBox {
    position: relative;
    width: min(100%, 980px);
    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: translate3d(-50%, 0, 0);
        z-index: 1001;
        /* display: block; */
    }
}

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

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

    &::before,
    &::after {
        position: absolute;
        content: "";
        width: 50%;
        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(--pink01);
        }

    }
}

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

    a {

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

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

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

        &:hover {

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

        }
    }

}



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

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

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

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

    .modalClose-top {
        width: 40px;

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

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

        }
    }

    .btn-modal {

        a {


            &:hover {

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

            }
        }

    }
}


/* 個別
ーーーーーーーーーーーーーーーーーーー */
.modalMv {
    position: relative;
}

.modalMv__img {
    position: absolute;
    top: 0;
    right: 0;
    width: min(100%, 524px);
    border-radius: var(--borderRadius30);
    overflow: hidden;
}

.comment-modal {
    position: relative;
    left: auto;
    bottom: auto;
    margin: 30px 0 40px;

    .commentBack {
        font-size: var(--font36);
        padding: 0 15px;
        margin-bottom: 10px;
    }
}


.modal__detailBox {
    position: relative;
    padding-left: 1.47em;

    &::before {
        position: absolute;
        content: "";
        width: 4px;
        height: 100%;
        border-radius: var(--borderRadius50);
        background-color: var(--blue01);
        top: 0;
        left: 0;
    }

    .name {
        font-size: var(--font34);
        margin-top: 10px;

        .small {
            font-size: max(0.4412em, 12px);
        }
    }
}


.repletion {
    font-size: var(--font19);
    line-height: var(--lineHight147);
}

.modal__q {
    margin: 158px 0 60px;

    dt {
        font-size: var(--font23);
        display: flex;
        justify-content: flex-start;
        align-items: flex-start;
        line-height: 1.217;

        p {
            flex: 1;
        }
    }

    .q-icon {
        background-color: var(--green01);
        display: flex;
        justify-content: center;
        align-items: center;
        color: var(--white);
        width: 1.66666em;
        border-radius: var(--borderRadiusCircle);
        aspect-ratio: 1;
        font-size: var(--font24);
        line-height: 1;
        transform: translateY(-15%);
        margin-right: 6px;

        span {
            transform: translateY(-10%);
        }
    }

    dd {
        margin: 15px 0 55px;
        background-color: var(--beige01);
        border-radius: var(--borderRadius10);
        padding: 20px;

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

.modal__q02 {
    margin: 100px 0 60px;
}





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

    .modalMv__img {
        width: 100%;
        position: relative;
        margin: 30px auto 0;
    }

    .comment-modal {
        margin: 20px 0;

        .commentBack {
            font-size: 5.5vw;
            padding: 0 15px;
            margin-bottom: 10px;
        }
    }

    .modal__q,
    .modal__q02 {
        margin: 70px 0 60px;
    }

}

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

    .modalMv__img {
        margin: 15px auto 0;
    }

    .comment-modal {
        margin: 10px 0;

        .commentBack {
            padding: 0 10px;
            margin-bottom: 5px;
        }
    }

    .modal__q {
        dd {
            margin: 10px 0 40px;
            padding: 10px;
        }
    }
}





/*******************************************
data
*******************************************/
.data {
    .section__inner {
        padding: 55px 0 0;
        position: relative;
    }



    .bg02 {
        position: absolute;
        top: 33%;
        left: -33%;
        width: 631px;
        z-index: -1;
    }

    .bg03 {
        position: absolute;
        bottom: 0;
        left: 76%;
        width: 637px;
        z-index: -1;
    }

}

.bg01-data {
    position: absolute;
    top: -11%;
    left: 70%;
    width: 562px;
    z-index: -1;
}

.dataFlex {
    width: min(100%, 930px);
    margin: max(5%, 30px) auto 0;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 55px 45px;
    flex-wrap: wrap;
}

.dataFlex__item {
    width: calc((100% - 90px)/3);
    display: flex;
    flex-direction: column;
    align-items: center;

    .ttl {
        width: 100%;
        text-align: center;
        position: relative;
        font-size: var(--font24);
        flex-grow: 1;
        background-color: var(--beige03);
        padding: 10px 3px;
        border-radius: var(--borderRadius50);

        &::before {
            position: absolute;
            content: "";
            top: 100%;
            left: 50%;
            transform: translate(-50%, -5%);
            width: calc(25px / 2 * tan(60deg));
            height: 20px;
            clip-path: polygon(0 0, 100% 0, 50% 100%);
            background-color: var(--beige03);
        }
    }
}

.dataFlex__detail {
    margin: 23.5px 0 0 0;

    .img {
        margin-bottom: 20px;
    }
}

.dataFlex__item {

    &:nth-child(4),
    &:nth-child(5) {
        .dataFlex__detail {
            margin: 35px 0 0 0;

            .img {
                margin-bottom: 5px;
            }
        }
    }
}

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


        .bg02 {
            top: 37%;
            left: -14%;
            width: 40%;
        }

        .bg03 {
            left: 68%;
            width: 45%;
        }

    }

    .bg01-data {
        top: -7%;
        left: 75%;
        width: 30%;
    }


}


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

    .data {

        .bg02 {
            top: 3%;
            left: -14%;
            width: 40%;
        }

        .bg03 {
            bottom: -11%;
        }
    }

    .bg01-data {
        top: 0;
        left: 72%;
    }

    .dataFlex {
        gap: 35px 30px;
    }

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

        &:last-child {
            width: 100%;

            .img {
                width: 47.95%;
                margin: 0 auto;
            }
        }
    }


}

@media screen and (max-width:480px) {
    .data {
        .section__inner {
            padding: 0;
        }


        .bg02 {
            top: 0%;
        }

        .bg03 {
            bottom: -8%;
        }
    }

    .bg01-data {
        top: -3%;
    }

    .dataFlex {
        gap: 35px 15px;
    }

    .dataFlex__item {
        width: calc((100% - 15px)/2);

        .ttl {
            font-size: 16px;
            padding: 5px;

            &::before {
                width: calc(20px / 2 * tan(60deg));
                height: 15px;
            }
        }
    }

    .dataFlex__item {

        &:nth-child(4),
        &:nth-child(5) {
            .dataFlex__detail {
                margin: 25px 0 0 0;
            }
        }
    }

    .dataFlex__detail {
        margin: 15px 0 0 0;
    }
}

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

    .data {

        .bg03 {
            bottom: -4%;
        }
    }

    .dataFlex__item {
        width: 100%;

        .img {
            width: 65%;
            margin: 0 auto 10px;
        }

        &:last-child {
            .img {
                width: 65%;
                margin: 0 auto 10px;
            }
        }


    }
}

@media screen and (max-width:355px) {
    .data {

        .bg02 {
            top: -3%;
        }

        .bg03 {
            bottom: -3%;
        }
    }
}



/*******************************************
environment
*******************************************/



.environment {
    position: relative;

    .section__inner {
        position: relative;
        padding: 110px 0 205px;
    }

    .bg01 {
        position: absolute;
        top: 0;
        left: 50%;
        width: max(100%, 1400px);
        transform: translate(-50%, -5%);
        z-index: -1;
    }

    .bg02 {
        position: absolute;
        bottom: 0;
        left: 50%;
        transform: translate(-50%, -4%);
        width: max(100%, 1400px);
        z-index: -1;
    }

    .bg-parts01 {
        position: absolute;
        top: 0;
        left: 0;
        width: 508px;
        z-index: -1;
        transform: translate(-53%, -20%);
    }

    .bg-parts02 {
        left: -22%;
    }

    .bg-parts03 {
        left: 73%;
    }
}

.bg-parts-environment {
    position: absolute;
    width: 477px;
    z-index: -1;
    top: 39%;
}





.environmentBox-outer {
    margin-top: max(5%, 30px);
}

.environmentBox {
    display: flex;
    background-color: var(--white);
    border-radius: var(--borderRadius30);
    box-shadow: 0 0 20px var(--green03);
    margin-bottom: 53px;
    overflow: hidden;

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

.environmentBox02 {
    display: block;
    padding: 45px 40px;
}

.environmentTxt {
    padding: 40px;
    flex: 1;
}

.environment__ttl {
    font-size: var(--font28);
    color: var(--green01);
    line-height: 1.14;
    margin-bottom: 30px;
}

.environment__img {
    width: min(100%, 490px);

    img {
        object-fit: cover;
        height: 100%;
    }
}

.environmentFlex {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.environmentFlex__item {
    width: calc((100% - 60px)/3);

    .img {
        margin-bottom: 28px;
        border-radius: var(--borderRadius20);
        overflow: hidden;
    }
}

.environment__detail {
    dt {
        margin-bottom: 30px;
        text-align: center;
        font-size: var(--font25);
        color: var(--blue01);
    }

    dd {
        .samll {
            font-size: 13px;
        }
    }
}



@media screen and (max-width:1024px) {
    .environment {
        .bg-parts01 {
            width: 40%;
            transform: translate(-30%, -10%);
        }

        .bg-parts03 {
            left: 50%;
        }
    }

    .bg-parts-environment {
        width: 50%;
    }


    .environment__img {
        width: min(100%, 350px);
    }

    .environmentFlex__item {
        .img {
            margin-bottom: 15px;
        }
    }

    .environment__detail {

        dt {
            margin-bottom: 15px;
        }
    }

}

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

        .section__inner {
            padding: 60px 0 100px;
        }

        .bg01 {
            width: max(100%, 768px);
            transform: translate(-50%, -1%);
            z-index: -3;
        }

        .bg02 {
            width: max(100%, 768px);
            transform: translate(-50%, 0%);
        }

        .bg-parts01 {
            width: 20%;
            transform: translate(-10%, 25%);
        }

    }


    .environmentBox {
        flex-direction: column-reverse;
        align-items: center;
        padding: 30px;
    }

    .environment__img {
        border-radius: var(--borderRadius30);
        overflow: hidden;
    }

    .environmentTxt {
        padding: 0;
        margin-top: 20px;
    }

    .environment__ttl {
        text-align: center;
        margin-bottom: 15px;
    }

    .environmentFlex {
        flex-direction: column;
    }

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

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

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

    .environmentBox02 {
        .environment__ttl {
            margin-bottom: 30px;
        }
    }


}

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

    .environment {

        .section__inner {
            padding: 50px 0 70px;
        }

        .bg01 {
            width: max(100%, 481px);
            transform: translate(-50%, -1%);
        }

        .bg02 {
            width: max(100%, 481px);
            transform: translate(-50%, 0%);
        }
    }

    .environmentBox {
        padding: 30px 15px;
        margin-bottom: 40px;
    }
}






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


    .swiper-slide {
        border-radius: var(--borderRadius20);
        overflow: hidden;

        &:nth-child(even) {
            margin-top: 55px;
        }
    }
}


@media screen and (max-width:1024px) {
    .loopSwiper__list {
        .swiper-slide {

            &:nth-child(even) {
                margin-top: 30px;
            }
        }
    }
}


@media screen and (max-width:768px) {
    .loopSwiper__list {
        .swiper-slide {
            border-radius: 10px;

            &:nth-child(even) {
                margin-top: 30px;
            }
        }
    }
}

@media screen and (max-width:768px) {
    .loopSwiper__list {
        .swiper-slide {

            &:nth-child(even) {
                margin-top: 15px;
            }
        }
    }
}






/*******************************************
search
*******************************************/
.search {
    .section__inner {
        position: relative;
        padding: clamp(30px, 5.7%, 80px) 0 clamp(100px, 10%, 130px);
    }

    .ttlBox {
        margin-bottom: 55px;
    }

    .bg-parts01 {
        top: 4.5%;
        z-index: 1;
    }

    .bg-parts02 {
        transform: translate(-48%, 12%) rotate(180deg);
        top: auto;
        left: 0;
        bottom: 0;
    }

    .bg-parts03 {
        top: 60%;
        left: 0;
        transform: translateX(-44%);
    }

    .bg-parts04 {
        top: 76%;
        right: 0;
        transform: translateX(44%);
    }
}

.search__map {
    width: 100vw;
    margin: 20px calc(50% - 50vw) 0;
    background-color: #eafaf8;
}

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

.search__list {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px 17px;
    margin: 35px 0 100px;
}

.search__item {
    width: calc((100% - 34px)/3);
    aspect-ratio: 315/150;
}

.search__btn {
    position: relative;
    display: flex;
    align-items: center;
    flex-direction: column;
    width: 100%;
    height: 100%;
    background-color: var(--beige01);
    border: 1px solid var(--beige02);
    border-radius: 25px;
    transition: var(--transitionBase);

    .number {
        font-size: var(--font22);
        display: flex;
        justify-content: center;
        align-items: center;
        aspect-ratio: 1;
        width: 1.67em;
        background-color: var(--green01);
        color: var(--white);
        border-radius: 0.4em;
        margin: 15px 0 10px;
    }

    .name {
        text-align: center;
        font-size: var(--font21);
        line-height: 1.23;
    }

    .arrow {
        top: auto;
        right: 10px;
        bottom: 10px;
        transform: none;
    }

    &:hover {
        opacity: .7;
    }

}

.search__btn--blue {
    .number {
        background-color: var(--blue01);
    }
}

.search__btn--pink {
    .number {
        background-color: var(--pink01);
    }
}

.search-type__list {
    display: flex;
    justify-content: center;
    gap: 80px;
    width: min(100%, 825px);
    margin: 35px auto 0;
    justify-content: space-between;
}

.search-type__item {
    width: calc((100% - 80px)/2);

    &.open {
        .arrow02 {
            transform: translateY(-50%) rotate(180deg);
        }
    }
}

.btn-search {
    width: 100%;
    aspect-ratio: 372/86;
    position: relative;

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

    .arrow02 {
        width: 43px;
        background-color: var(--white);
        transition: var(--transitionBase);

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

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

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

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



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

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

.type__list {

    max-height: 0;
    overflow: hidden;
    transition: all 0.5s ease-in-out;

    li {

        a {
            font-size: var(--font21);
            display: block;
            padding: 1em;
            width: 100%;
            height: 100%;
            border-bottom: 3px dashed var(--beige02);
            color: var(--black);
            background-color: var(--white02);
            transition: var(--transitionBase);

            &:hover {
                opacity: .7;
            }
        }

        &:first-child a {
            padding-top: 2em;
        }
    }
}


@media screen and (max-width:1024px) {
    .search {
        .bg-parts02 {
            width: 45%;
            transform: translate(-20%, 16%) rotate(180deg);
        }
    }

    .search__mapInner {
        width: 95%;
    }

    .search__list {
        margin: 35px auto 70px;
        width: min(100%, 600px);
    }

    .search__item {
        width: calc((100% - 17px)/2);
    }
}

@media screen and (max-width:768px) {
    .search {
        .ttlBox {
            margin-bottom: 35px;
        }

        .bg-parts03 {
            top: 40%;
        }

        .bg-parts04 {
            top: 60%;
        }

    }

    .search__btn {
        &:hover {
            opacity: 1;
        }
    }

    .search-type__list {
        width: min(100%, 400px);
        flex-direction: column;
        align-items: center;
        gap: 50px;
    }

    .search-type__item {
        width: 100%;
    }

    .type__list {
        li {
            a {
                &:hover {
                    opacity: 1;
                }
            }
        }
    }

}

@media screen and (max-width:560px) {
    .search__item {
        aspect-ratio: auto;
    }

    .search__btn {
        padding: 10px;

        .number {
            margin: 0 0 5px;
        }

        .name {
            margin-bottom: 10px;
        }

        .arrow {
            position: relative;
            top: auto;
            right: auto;
            bottom: auto;
            margin: auto 0 0 auto;
        }
    }
}

@media screen and (max-width:480px) {
    .search {
        .ttlBox {
            margin-bottom: 20px;
        }
    }

    .search__list {
        margin: 30px auto 40px;
    }

    .search-type__list {
        width: min(100%, 300px);
    }

    .btn-search {


        .arrow02 {
            width: 30px;

            &::before,
            &::after {
                width: 8px;
            }
        }
    }
}

@media screen and (max-width:340px) {
    .search__btn {
        padding: 10px;

        .number {
            font-size: 13px;
        }

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


}







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

.footer {
    background-color: #04a17c;
    padding: clamp(50px, 3.13%, 50px) 0 clamp(40px, 3.44%, 55px);
    position: relative;
}

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

    & a {
        position: relative;
        font-size: 12px;
        color: #fff;
        font-weight: 500;

        &: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: 12px !important;
    text-align: center;
    color: #fff;
    font-weight: 500;
}

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

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

.pageid,
.button_search,
.result_box_ttl {
    background: #04a17c;
}

.button_application {
    background-color: #04a17c;
    color: #fff;

    &:hover {
        background-color: #fff;
        color: #04a17c;
    }
}

.button_detail {
    background-color: #fff;
    border: 2px solid #04a17c;
    color: #04a17c;

    &:hover {
        background-color: #04a17cff;
        color: #fff;
    }
} */



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

    .footer-nav {
        margin: 0 auto 10px;
        gap: 20px;


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

}

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


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

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


}