@charset "utf-8";

/* 色の変数　　color: var(--blue); */
:root {
    --white: #fff;
    --white02: rgba(255, 255, 255, 0.5);
    --black: #0a0d0d;
    --blue01: #216ce3;
    --blue02: #e3f2fa;
    --blue03: #aad8f0;
    --blue04: rgba(222, 240, 249, 0.9);
    --blue05: #85b4f0;
    --blue06: #def0f9;
    --gray: #c3c3c3;

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

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


    /* 文字サイズ */
    --font15: 1.5rem;
    --font17: 1.7rem;
    --font19: 1.9rem;
    --font20: 2rem;
    --font23: 2.3rem;
    --font24: 2.4rem;
    --font25: 2.5rem;
    --font28: 2.8rem;
    --font30: 3rem;
    --font36: 3.6rem;

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

    /* 行間 */
    --lineHight140: 1.4;
    --lineHight166: 1.666666;
    --lineHight175: 1.75;
    --lineHight20: 2.0;

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

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

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



@media screen and (max-width: 1024px) {
    :root {
        --font17: 1.6rem;
        --font19: 1.7rem;
        --font20: 1.8rem;
        --font23: 1.9rem;
        --font24: 2rem;
        --font25: 2.3rem;
        --font28: 2.4rem;
        --font30: 2.6rem;
        --font36: 3rem;
    }
}

@media screen and (max-width: 768px) {
    :root {
        --font17: 1.5rem;
        --font19: 1.6rem;
        --font20: 1.7rem;
        --font23: 1.8rem;
        --font24: 1.9rem;
        --font25: 2.1rem;
        --font28: 2.3rem;
        --font30: 2.5rem;
        --font36: 2.8rem;
    }
}

@media screen and (max-width: 480px) {
    :root {
        --font15: 1.4rem;
        --font17: 1.4rem;
        --font19: 1.5rem;
        --font20: 1.6rem;
        --font23: 1.7rem;
        --font24: 1.8rem;
        --font25: 1.9rem;
        --font28: 2.1rem;
        --font30: 2.3rem;
        --font36: 2.6rem;

        --borderRadius30: 20px;
    }
}

@media screen and (max-width: 375px) {
    :root {
        --font23: 1.6rem;
        --font30: 2rem;
    }
}



/*******************************************
common
*******************************************/
p {
    text-align: justify;
    line-height: var(--lineHight20);
}

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

.section {
    position: relative;
}

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

.section__ttl {
    position: relative;
    width: min(100%, 517px);
}

.section__ttl--center {
    margin: 0 auto;
}

.marker {
    background: linear-gradient(transparent 90%, var(--yellow01) 90%);
    padding-bottom: 5px;
}

.block1230,
.block530 {
    display: none;
}

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

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

}

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

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

    .none1024 {
        display: none;
    }
}

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

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

    .none768 {
        display: none;
    }
}

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

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

    .none480 {
        display: none;
    }
}

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



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

.btn {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    color: var(--white);
    background-color: var(--blue01);
    width: 100%;
    height: 100%;
    border-radius: var(--borderRadius10);
    overflow: hidden;
    transition: var(--transitionBase);

    &:hover {
        opacity: .7;
    }
}

.arrow {
    position: absolute;
    background-image: url(../img/common/arrow.svg);
    background-size: contain;
    width: 19.5px;
    aspect-ratio: 19.5/14.5;
    top: 50%;
    right: 5%;
    transform: translateY(-50%);
}

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

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

    .btn {

        &:hover {
            opacity: 1;
        }
    }

    .arrow {
        width: 15px;
    }
}

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

.entryBtn-fixed {
    position: fixed;
    bottom: 2%;
    right: 0;
    width: 3.16em;
    font-size: max(1.357vw, 15px);
    aspect-ratio: 60/200;
    z-index: 90;

    a {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
        height: 100%;
        border-radius: var(--borderRadius10) 0 0 var(--borderRadius10);
        background-color: var(--blue01);
        transition: var(--transitionBase);
        color: var(--white);
        writing-mode: vertical-rl;
        letter-spacing: 0.25em;
        transition: var(--transitionBase);


        &:hover {
            opacity: .7;
        }

    }
}

@media screen and (max-width:768px) {
    .entryBtn-fixed {
        width: min(90%, 300px);
        aspect-ratio: 100/20;
        bottom: 0;
        right: 50%;
        transform: translateX(50%);
        font-size: min(5.5vw, 20px);
        transition: var(--transitionBase);
        opacity: 0;
        visibility: hidden;

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

        a {
            border-radius: var(--borderRadius10) var(--borderRadius10) 0 0;
            writing-mode: initial;

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



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

.header {
    position: fixed;
    width: 100%;
    height: 100px;
    display: flex;
    align-items: center;
    padding: 0px clamp(5px, 2.858%, 40px);
    z-index: 95;
    transition: var(--transitionBase);
}

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

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

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

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

.headerNav {
    flex: 1;
}

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

.headerNav__item {
    font-size: 1.5rem;
    margin-left: 20px;
    position: relative;
    transition: var(--transitionBase);

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

    a {
        position: relative;

        &::before {
            content: "";
            position: absolute;
            left: 0;
            bottom: -4px;
            width: 100%;
            height: 2px;
            background: var(--blue01);
            transform: scaleX(0);
            transform-origin: left;
            transition: transform 0.5s ease;
        }

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

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

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

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

    .btn-outer-header {
        display: block;
        height: 55px;
    }

    .header {
        position: absolute;
    }

    .bg-white {
        backdrop-filter: initial;
        background-color: transparent;
    }


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

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

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

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

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

    .header {
        height: 65px;
    }

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

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

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

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

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

    .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:768px) {
    .header__logo {
        width: min(15%, 65px);
    }
}

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


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

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

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


/*******************************************
mv
*******************************************/

.mv-bg {
    position: relative;
}

.mv-bg__img {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    height: 100%;

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

.mv {
    position: relative;
    padding-top: 120px;

    .section__inner {
        width: min(100%, 1280px);
    }
}

.mvFlex {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
}

.mv__imgBox {
    flex: 1;
}

.mv__img {

    img {
        filter: drop-shadow(0 0 20px #fff);
    }
}

.mv__img01 {
    width: 67.73%;
}

.mv__img02 {
    width: 46.5%;
    transform: translateX(87%);
    margin-top: -23.5%;
}

.mv__img03 {
    width: 36.8%;
    transform: translateX(29%);
    margin-top: -14%;
}

.mv__ttl {
    width: 49.23%;
    margin: 20% 5.9% 0 0;
}

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

}

@media screen and (max-width:915px) {
    .mv {
        padding-top: 10%;
    }
}

@media screen and (max-width:768px) {
    .mv {
        padding-top: min(35%, 120px);
    }

    .mvFlex {
        flex-direction: column;
    }

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

    .mv__imgBox {
        flex: initial;
        width: min(100%, 350px);
        margin: 0 auto;
    }

    .mv__img01 {
        width: 65%;
    }

    .mv__img02 {
        width: 45%;
        transform: none;
        margin: -30% 0 0 auto;
    }

    .mv__img03 {
        width: 35%;
        transform: none;
        margin: -11% auto 0 15%;
    }
}



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

    .section__inner {
        padding: clamp(80px, 15%, 210px) 0 clamp(40px, 6.44%, 90px);
    }
}

.message__txt {
    color: var(--white);
    font-size: var(--font25);
    line-height: var(--lineHight20);
    margin-bottom: 2em;

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

@media screen and (max-width:480px) {
    .message__txt {
        font-size: 1.7rem;
    }

}


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

.paginationFlex {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    margin-top: max(4%, 30px);
}

.pagiDot {
    width: fit-content;

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

    .swiper-pagination-bullet {
        width: 12px;
        height: auto;
        aspect-ratio: 1;
        margin: 0 10px !important;
    }
}

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

    .arrow {
        right: 50%;
        transform: translate(50%, -50%) scale(2);
    }

    &:hover {
        opacity: .7;
    }

}

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

@media screen and (max-width:1024px) {
    .pagiBtn {
        width: 60px;

        .arrow {
            transform: translate(50%, -50%) scale(1.5);

        }
    }
}

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

        .arrow {
            transform: translate(50%, -50%) scale(1.2);

        }
    }
}

@media screen and (max-width:480px) {
    .pagiBtn {
        width: 30px;

        .arrow {
            transform: translate(50%, -50%) scale(1);

        }

        &:hover {
            opacity: 1;
        }
    }

    .pagiDot {
        flex: 1;
    }
}

/*******************************************
about
*******************************************/
.about {

    &::before,
    &::after {
        position: absolute;
        content: "";
        top: 0;
        left: 50%;
        transform: translateX(-50%);
        background-image: linear-gradient(0deg, var(--white), var(--blue02));
        background-repeat: no-repeat;
        width: 100%;
        aspect-ratio: 1400/275;
    }

    &:after {
        top: auto;
        bottom: 0;
        transform: translateX(-50%) rotate(180deg);
    }

    .section__inner {
        width: min(100%, 1260px);
        padding: clamp(60px, 12%, 165px) 0 clamp(50px, 11.5%, 160px);
    }
}

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


.aboutFlex {
    position: relative;
    margin: max(9.79%, 25px) 0 max(11.57%, 40px);
    display: flex;
    z-index: 1;

    .img {
        width: min(100%, 520px);
        margin-top: -24%;
    }
}

.aboutFlex__txt {
    flex: 1;
    margin-right: 5.7%;

    .ttl {
        position: relative;
        font-size: var(--font30);
        margin-bottom: max(5.5%, 15px);
        line-height: var(--lineHight140);
        font-weight: var(--weight700);
        width: fit-content;

        .parts {
            position: absolute;
            top: 0;
            right: 0;
            width: 8.2%;
            transform: translate(30%, -45%);
        }
    }

    p {
        line-height: var(--lineHight20);
    }
}

.aboutSwiper {
    position: relative;
    width: 100%;
    overflow: visible;
    width: 100vw;
    margin-left: calc(50% - 50vw);

    .swiper-slide {
        max-width: 750px;
        display: flex;
        flex-direction: column;
        height: auto;
    }
}

.aboutSwiper__item {
    display: flex;
    flex-direction: column;
    flex-grow: 1;

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


.aboutSwiper__detail {
    display: flex;
    flex-direction: column;
    flex-grow: 1;


    dt {
        position: relative;
        margin: max(6.1%, 20px) 0 max(7.46%, 15px);
        font-size: var(--font30);
        text-align: center;
        line-height: var(--lineHight140);
        display: flex;
        align-items: center;
        max-height: 84px;

        &>span {
            position: relative;
            display: block;
            width: 100%;

            &::before {
                position: absolute;
                content: "";
                width: 1.667em;
                height: 3px;
                border-radius: var(--borderRadius50);
                background-color: var(--blue01);
                bottom: -1em;
                left: 50%;
                transform: translateX(-50%);
            }
        }



    }
}

.prevBtn-about,
.nextBtn-about {
    position: absolute;
    top: 25%;
    right: 12%;
    z-index: 1;
}

.prevBtn-about {
    right: auto;
    left: 12%;
}

.paginationFlex-about {
    .pagiBtn {
        display: none;
    }
}

/* 1400以上 */
@media (min-width: 1401px) {
    .prevBtn-about {
        left: calc((100% - 1400px) / 2 + 12%);
    }

    .nextBtn-about {
        right: calc((100% - 1400px) / 2 + 12%);
    }
}

/* ↑↑↑1400以上 ↑↑↑*/


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

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

@media screen and (max-width:1296px) {
    .aboutSwiper__detail {
        dt {
            flex-grow: 1;
        }
    }
}

@media screen and (max-width:1230px) {
    .aboutSwiper__detail {
        dt {
            max-height: initial;
        }
    }
}

@media screen and (max-width:1176px) {
    .aboutSwiper__detail {
        dt {
            flex-grow: initial;
        }
    }
}

@media screen and (max-width:1024px) {
    .aboutFlex {
        flex-direction: column;

        .img {
            width: min(100%, 520px);
            margin: max(5%, 20px) auto 0;
        }
    }

    .aboutFlex__txt {
        flex: initial;
        margin: 0;

        .ttl {
            margin-bottom: max(3%, 15px);
        }
    }
}

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

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


        dt {

            &>span {

                &::before {
                    bottom: -0.7em;

                }
            }



        }
    }
}

@media screen and (max-width:480px) {
    .aboutSwiper__detail {
        dt {
            font-size: 2rem;
        }
    }

    .nextBtn-about,
    .prevBtn-about {
        display: none;
        position: relative;
        top: auto;
        right: auto;
        left: auto;

    }

    .paginationFlex-about {
        width: min(100%, 250px);
        margin-left: auto;
        margin-right: auto;

        .pagiBtn {
            display: block !important;
            width: 40px;
        }
    }
}





/*******************************************
voice
*******************************************/
.voice {
    background-image: url(../img/voice/bg-pc.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: bottom center;

    .section__inner {
        padding: clamp(50px, 11%, 154px) 0 clamp(60px, 10%, 140px);
    }
}


.voiceFlex {
    position: relative;
    padding: 29.1% 0 20px;
}

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

    width: min(100%, 364.5px);

    .swiper-scrollbar-voice {
        position: relative;
        top: auto;
        left: auto;
        bottom: auto;
        right: auto;
        width: min(100%, 236.5px);
        background-color: var(--white);

        .swiper-scrollbar-drag {
            background-color: var(--blue01);
            /* width: calc(100% / 3) !important; */
        }
    }

}


.paginationFlex-voice {
    flex: 1;
    margin: 0 0 0 35px;
    gap: 10px;
    justify-content: flex-start;

    .pagiBtn {
        width: 40px;
    }

    .arrow {
        transform: translate(50%, -50%) scale(1);
    }
}

.voiceSwiper-outer {
    width: 1357px;
    overflow: hidden;
    position: absolute;
    bottom: 0;
    left: 44%;
}

.voiceSwiper {
    width: min(100%, 425px);
    margin: 0 auto 0 0;
    overflow: visible;


    .swiper-slide {
        cursor: pointer;
        background-color: var(--white);
        border: 2px solid var(--blue03);
        border-radius: var(--borderRadius10);
        transition: var(--transitionBase);

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

.voiceSwiper__box {
    padding: 30px 20px 0;
    margin-bottom: 15px;

    .ttl {
        text-align: center;
        font-size: var(--font28);
        line-height: var(--lineHight140);
    }

    .img {
        margin: 20px auto;
        max-width: 365.5px;

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

    .txt {
        line-height: var(--lineHight140);
        text-align: center;
    }
}

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

.voiceSwiper__btn {
    position: relative;
    width: 50px;
    aspect-ratio: 1;
    background-color: var(--blue01);
    border-radius: var(--borderRadius10);

    .arrow {
        right: 50%;
        transform: translate(50%, -50%);
    }
}

/* 2750以上 */
@media screen and (min-width: 2750px) {
    .voiceSwiper__parts {
        opacity: 0;
        visibility: hidden;
    }
}

/*↑↑↑ 2750以上 ↑↑↑ */


@media screen and (max-width: 840px) {
    .voiceFlex {
        position: relative;
        padding: max(10%, 30px) 0 20px;
    }

    .voiceSwiper__parts {
        margin: max(5%, 25px) 0 0 0;
    }

    .voiceSwiper-outer {
        position: initial;
        width: 100%;
    }

    .voiceSwiper {
        width: auto;

        .swiper-slide {
            height: auto;
            display: flex;
            flex-direction: column;
        }
    }

    .voiceSwiper__box {
        display: flex;
        flex-direction: column;
        height: 100%;


        .ttl {
            flex-grow: 1;
        }
    }

    .voiceSwiper__detail {
        margin-top: auto;

    }

}

@media screen and (max-width: 768px) {
    .voiceSwiper {
        .swiper-slide {
            &:hover {
                opacity: 1;
            }
        }
    }
}

@media screen and (max-width: 660px) {
    .voiceSwiper-outer {
        overflow: visible;
    }
}

@media screen and (max-width: 480px) {
    .voiceSwiper__btn {
        width: 40px;
    }
}


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

.modalBox-outer {
    /* 最大幅*/
    position: absolute;
    width: min(100vw, 980px);
    height: auto;
    top: 0;
    left: 50%;
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, 0);
    transition: var(--transitionBase);
    padding: clamp(40px, 7%, 90px) 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%, 850px);
    margin: 0 auto;
    padding: 70px 0;
}

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

    &::before,
    &::after {
        position: absolute;
        content: "";
        width: 40%;
        height: 1px;
        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 {
        opacity: 0.7;
    }
}

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

    .btn {
        position: relative;
        font-size: var(--font20);

        &::before,
        &::after {
            position: absolute;
            content: "";
            width: 22.6px;
            height: 1px;
            top: 50%;
            right: 5%;
            transform: translateY(-50%) rotate(45deg);
            background-color: var(--white);
        }

        &::after {
            transform: translateY(-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) {

    .modal__inner {
        padding: max(10%, 60px) 15px;
    }


    .modalClose-top {
        width: 40px;

        &:hover {
            opacity: 1;
        }
    }

}


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

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



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

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

.modalMv__ttl {

    p {
        background-color: var(--blue05);
        color: var(--white);
        font-size: var(--font36);
        border-radius: var(--borderRadius10);
        width: fit-content;
        font-weight: var(--weight700);
        margin-bottom: 0.34em;
        padding: 0.197em 0.5em;
        line-height: 1;

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

    .sp {
        display: none;
    }
}

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

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

.modalMv__detail {
    margin-top: 35px;
    font-size: var(--font19);
    font-weight: var(--weight700);

    .type {
        line-height: var(--lineHight140);
    }

    .name {
        font-size: 1.79em;
        line-height: var(--lineHight175);

        .small {
            font-size: 0.45em;
            margin-left: 0.3em;
        }
    }
}

.modal__q {

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

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

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

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

        p {
            line-height: var(--lineHight175);
        }
    }
}

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

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

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

    .modalMv__txtBox {
        position: initial;
    }

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

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

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

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

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

        p {
            border-radius: 5px;
        }
    }


    .modalMv__detail {
        .name {
            font-size: 1.4em;
        }
    }
}

@media screen and (max-width: 433px) {
    .modalMv__ttl {
        .sp {
            display: block;
        }

        .pc {
            display: none;
        }
    }
}

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










/*******************************************
job
*******************************************/
.job {
    background-color: var(--blue06);

    .section__inner {
        padding: clamp(50px, 5.72%, 80px) 0 clamp(60px, 11.43%, 160px);
    }
}

.jobGrid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
        "item01 item03"
        "item02 item03";
    grid-column-gap: 50px;
    grid-row-gap: 35px;
    margin: max(9.19%, 35px) 0 0 0;
}

.jobGrid__item01 {
    grid-area: item01;
    padding-bottom: 35px;

    .jobGrid__box {
        padding-top: 30px;
    }
}

.jobGrid__item02 {
    grid-area: item02;

    .jobGrid__box {
        padding-top: 20px;

        .txt {
            margin-top: 20px;
        }
    }
}

.jobGrid__item03 {
    grid-area: item03;

    .jobGrid__box {
        padding-top: 40px;
    }
}

.jobGrid__item {
    background-color: var(--white);
    border-radius: var(--borderRadius10);
    padding: 0 25px 30px;
}

.jobGrid__ttl {
    background-color: var(--blue05);
    border-radius: 0 0 var(--borderRadius10) var(--borderRadius10);
    color: var(--white);
    width: min(100%, 280px);
    margin: 0 auto;
    text-align: center;
    padding: 0.59em 0;
    font-size: var(--font24);
    letter-spacing: 0.15em;
}

.jobGrid__box {

    .txt {
        font-size: var(--font15);
        line-height: var(--lineHight166);
        margin-top: 30px;
    }
}

@media screen and (max-width:768px) {
    .jobGrid {
        grid-column-gap: 20px;
        grid-row-gap: 20px;
    }
}

@media screen and (max-width:540px) {
    .jobGrid {
        display: block;
        width: min(100%, 350px);
        margin-left: auto;
        margin-right: auto;
    }

    .jobGrid__ttl {
        width: min(100%, 230px);
    }

    .jobGrid__item {
        margin-bottom: max(10%, 25px);
        padding: 0 max(7%, 10px) max(9%, 20px);

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

        .jobGrid__box {
            padding-top: 15px;

            .txt {
                margin-top: max(9%, 15px);
            }
        }
    }
}


/*******************************************
search
*******************************************/
.search {
    overflow: hidden;

    .section__inner {
        padding: clamp(50px, 7.5%, 105px) 0 clamp(60px, 10%, 140px);
    }

    .bg {
        position: absolute;
        bottom: 0;
        left: 50%;
        transform: translateX(-50%);
        width: max(100%, 500px);
    }
}

.searchBox {
    margin-top: max(8.67%, 30px);
    position: relative;
}

.searchBox__ttl {
    font-size: var(--font30);
    text-align: center;
    margin-bottom: max(5.62%, 25px);
    font-weight: var(--weight700);
}

.searchBox__item {
    margin-bottom: max(15%, 50px);

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

.seaech__list {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 20px 30px;
}

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

    .btn {
        text-align: center;
        line-height: 1.2;
        font-size: var(--font20);
    }
}

@media screen and (max-width:830px) {
    .seaech__list {
        gap: 25px;
        width: min(100%, 550px);
        margin: 0 auto;
    }

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

@media screen and (max-width:480px) {
    .seaech__list {
        gap: 15px;

    }

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

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

@media screen and (max-width:374px) {
    .seaech__item {
        width: 100%;

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



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

.footer {
    background-color: var(--black);
    padding: 45px 0 40px;
    position: relative;
}

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

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

        &:hover {
            opacity: .7;
        }
    }

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


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



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

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


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

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