@charset "utf-8";

/* 色の変数　　color: var(--blue); */
:root {
    --white: #fff;
    --white02: rgba(255, 255, 255, 0.5);
    --black: #000000;
    --purple01: #43006e;
    --purple02: #eee8f2;
    --purple03: #dbcfe4;
    --pink01: #ed1e79;
    --pink02: #c21e79;
    --gray: #e9e9e9;




    --gra01: linear-gradient(90deg, var(--pink01), var(--purple01) 65%);
    --gra02: linear-gradient(115deg, var(--pink02), var(--purple01));


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

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

    /* 文字サイズ */
    --font17: 1.7rem;
    --font19: 1.9rem;
    --font21: 2.1rem;
    --font26: 2.6rem;
    --font30: 3rem;
    --font36: 3.6rem;
    --font56: 5.6rem;

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

    /* 行間 */
    --lineHight175: 1.75;
    --lineHight185: 1.85;
    --lineHight20: 2.0;

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

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

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

    --opacity07: .7;

}




@media screen and (max-width: 1024px) {
    :root {
        --font17: 1.6rem;
        --font19: 1.8rem;
        --font21: 2rem;
        --font26: 2.3rem;
        --font30: 2.6rem;
        --font36: 3rem;
        --font56: 5rem;
    }
}


@media screen and (max-width: 768px) {
    :root {
        --font17: 1.5rem;
        --font19: 1.7rem;
        --font21: 1.9rem;
        --font26: 2.1rem;
        --font30: 2.4rem;
        --font36: 2.7rem;
        --font56: 4rem;



        --opacity07: 1;
    }


}

@media screen and (max-width: 480px) {
    :root {
        --font17: 1.4rem;
        --font19: 1.6rem;
        --font21: 1.81rem;
        --font26: 1.9rem;
        --font30: 2.2rem;
        --font36: 2.4rem;
        --font56: 3.3rem;


        --borderRadius20: 10px;
        --borderRadius30: 15px;
    }
}

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



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

body {
    color: var(--black);
    font-family: var(--notoSans);
    font-weight: var(--weight500);
    font-size: var(--font19);
    line-height: var(--lineHight20);
}

p {
    text-align: justify;
}

.section {
    position: relative;
}

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

.section__ttl {
    font-size: var(--font56);
    font-weight: var(--weight700);
    color: var(--purple01);
    letter-spacing: var(--fontSpace050);
    line-height: 1.42;
}

.section__bgTxt {
    &::before {
        position: absolute;
        content: "FUJISAWA";
        font-size: clamp(50px, 9.285714285714286vw, 260px);
        line-height: 1;
        color: var(--purple01);
        font-weight: 900;
        top: -1%;
        left: 0;
    }
}

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

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

.block550,
.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%;
        right: 2%;
        width: 1.1em;
        height: 2px;
        background-color: var(--white);
        transform: translateY(-50%);
        transition: var(--transitionBase02);
    }

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

.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:550px) {
    .block550 {
        display: block;
    }
}

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

    .none480 {
        display: none;
    }

    .section__bgTxt {
        &::before {
            top: -1px;
        }
    }

    .aco-click {

        &::before,
        &::after {
            right: 4%;
            width: 0.7em;
            height: 1px;
        }
    }
}



/*******************************************
btn
*******************************************/
.btn-outer {
    width: min(100%, 19.25em);
    aspect-ratio: 693/101;
    min-height: 50px;
    font-size: var(--font36);
}

.btn {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    color: var(--white);
    background-image: var(--gra01);
    width: 100%;
    height: 100%;
    transition: var(--transitionBase01);
    cursor: pointer;

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

.arrow {
    position: absolute;
    background-image: url(../img/common/arrow.svg);
    background-repeat: no-repeat;
    background-size: contain;
    top: 50%;
    right: 2%;
    width: 12.55%;
    aspect-ratio: 87/23;
    transform: translateY(-50%);
}





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


.fixedBtnBox {
    position: fixed;
    bottom: 2%;
    right: 1%;
    display: flex;
    align-items: flex-end;
    flex-direction: column;
    transition: var(--transitionBase01);
    opacity: 0;
    visibility: hidden;
    z-index: 20;
    width: fit-content;

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

.topReturn {
    width: 60px;
    aspect-ratio: 1;
    transition: var(--transitionBase01);

    a {
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
        height: 100%;
        border-radius: var(--borderRadiusCircle);
        background-color: var(--purple01);
        border: 1px solid var(--white);
        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: 1024px) {
    .topReturn {
        width: 50px;
    }
}


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



/*******************************************
entryBtn
*******************************************/
.entryBtn {
    width: min(100%, 250px);
    transition: var(--transitionBase01);

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

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


}

.entryBtnBox-fixed {
    width: clamp(120px, 18vw, 250px);
    transition: var(--transitionBase01);
}

/*******************************************
header
*******************************************/
.hamburger,
.btn-outer-header {
    display: none;
}

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

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

.header__logo {
    width: 240px;
    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, 2.9vw, 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);


        &::before {
            position: absolute;
            content: "";
            width: 100%;
            height: 2px;
            bottom: -1%;
            left: 0;
            background-color: var(--purple01);
            transform: scale(0, 1);
            transition: var(--transitionBase);
            transform-origin: right;
            transition: transform 0.5s ease-in-out;
        }

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

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

}


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

    .header {
        position: absolute;
        top: 0;
        left: 0;
        padding: 0 20px;
    }

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

    .hamburger {
        display: block;
        position: fixed;
        right: 1%;
        top: 35px;
        width: 55px;
        aspect-ratio: 1;
        cursor: pointer;
        z-index: 100;
        transition: var(--transitionBase01);
        background-color: var(--purple01);
        transform: translateY(-50%);

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

    .btn-outer-header {
        display: block;
        font-size: 15px;
        max-width: 250px;
    }

    .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(80px, 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) {
            &::before {
                display: none;
            }
        }
    }




    .active {

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

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

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

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

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

}

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

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


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

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

    .header {
        height: 50px;
    }

    .header__logo {
        width: 150px;
    }
}


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

.entryBtn-mv {
    position: absolute;
    bottom: 0;
    right: 0.25%;
    width: 18.05%;
    cursor: pointer;
    transition: var(--transitionBase01);

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

@media screen and (max-width:768px) {
    .entryBtn-mv {
        bottom: 1%;
        right: 0.25%;
        width: 30%;
    }
}




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

    &::after {
        position: absolute;
        content: "";
        width: max(21.661%, 70px);
        aspect-ratio: 1;
        top: 0;
        left: 0;
        background-color: var(--purple02);
        z-index: -1;
    }

    .section__inner {
        padding: clamp(60px, 28%, 380px) 0 clamp(30px, 12%, 160px);
    }

    .txt {
        position: relative;
        margin-top: max(4%, 10px);
        width: min(100%, 764px);
        background-color: rgba(255, 255, 255, 0.9);
        z-index: 1;
    }

    .img {
        position: absolute;
        top: 23.5%;
        left: 56.5%;
        width: min(45.215vw, 633px);
        z-index: -1;
    }
}

@media screen and (max-width:768px) {
    .about {
        .img {
            left: 54%;
            top: 15%;
        }
    }
}

@media screen and (max-width:675px) {
    .about {
        .section__inner {
            padding-top: max(20%, 75px);
        }

        .img {
            width: min(100%, 300px);
            margin: max(5%, 15px) auto 0;
            position: initial;
        }
    }
}






/*******************************************
driving
*******************************************/
.driving__container {
    position: relative;
    background-color: var(--purple02);
    padding: max(4.5%, 25px) max(3%, 5px) max(7.2%, 25px);
    margin-top: 30px;
}

.driving__parts {
    position: absolute;
    bottom: 99.5%;
    left: 68%;
    width: clamp(50px, 33.286vw, 466px);
}

.drivingBox {
    margin-bottom: max(7.5%, 35px);

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

    .ttl {
        text-align: center;
        border: 1px solid var(--black);
        background-color: var(--white);
        font-size: var(--font26);
        line-height: var(--lineHight185);
        border-radius: var(--borderRadius01);
        margin-bottom: max(3.26%, 5px);
    }

    .txt {
        text-align: center;
    }
}

.drivingExample {
    width: min(80%, 750px);
    margin: max(5.45%, 10px) auto 0;
}

.drivingExample__item {
    margin-bottom: max(6%, 20px);

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

.drivingExample__ttl {
    text-align: center;
    background-color: var(--purple01);
    color: var(--white);
    font-size: var(--font26);
    line-height: var(--lineHight185);
    border-radius: var(--borderRadius01);
}

.drivingExample__box {
    display: flex;
    justify-content: space-between;
    padding-top: max(3.34%, 15px);
}

.drivingExample__item02 {
    .drivingExample__box {
        flex-wrap: wrap;
        justify-content: center;
        gap: 30px;
    }

}



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

.dayItem__ttl {
    background-color: var(--purple03);
    padding-left: 0.5em;
}

.dayItem__detail {
    margin-top: clamp(15px, 5%, 20px);

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

    dt {
        width: min(100%, 10em);
        font-weight: var(--weight500);
    }

    dd {
        flex: 1;
        padding-left: 1.5em;
    }
}


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

    .drivingExample__item02 {
        .drivingExample__box {
            gap: 0;
        }
    }

    .dayItem {
        width: min(100%, 500px);
        margin-bottom: 20px;

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

    .driving__parts {
        left: auto;
        right: 0;
    }

}

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

    .dayItem {
        width: 90%;
    }

    .dayItem__detail {

        div {
            flex-direction: column;
            margin-bottom: 15px;

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

        dt {
            line-height: 1;
        }

        dd {
            padding-left: 0
        }
    }

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

@media screen and (max-width:385px) {
    .driving__parts {
        left: auto;
        right: -6%;
        width: 30%;
    }
}


/*******************************************
loop-txt
*******************************************/
.loopTxt {
    position: relative;
    font-weight: 900;
    aspect-ratio: 1400/ 150;
    min-height: 50px;
    line-height: 1;

    &::before,
    &::after {
        content: attr(data-text);
        font-size: clamp(50px, 9.285714285714286vw, 260px);
        position: absolute;
        white-space: nowrap;
        color: var(--purple01);
        animation: loopTxt01 20s linear infinite;
    }

    &::after {
        animation: loopTxt02 20s linear infinite;
        padding-left: 0.15em;
    }
}

@keyframes loopTxt01 {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-100%);
    }
}

@keyframes loopTxt02 {
    0% {
        transform: translateX(100%);
    }

    100% {
        transform: translateX(0);
    }
}

/*******************************************
recruitment
*******************************************/
.recruitment {
    .section__inner {
        width: min(100%, 1400px);
        padding: min(17%, 235px) 0 clamp(40px, 15%, 200px);
    }

    .section__ttl {
        padding-left: 0.5em;
    }
}

.recruitmentBox {
    position: relative;
    background-color: var(--purple02);
    width: min(100%, 980px);
    margin-left: auto;
    padding: 65px 35px 90px;
}

.recruitment__parts01 {
    position: absolute;
    top: 5.5%;
    left: 0;
    width: 45%;
    z-index: 1;
}

.recruitment__parts02 {
    position: absolute;
    bottom: 8%;
    left: -18%;
    width: clamp(100px, 26.71vw, 374px);
}

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

.recruitment__detail {
    margin: max(5.7%, 25px) 0 40px;

    div {
        display: flex;
        justify-content: flex-start;
        align-items: center;
        background-color: var(--white);
        padding: 0.8em;

        &:nth-child(even) {
            background-color: var(--white02);
        }
    }

    dt {
        color: var(--purple01);
        font-weight: var(--weight500);
        width: 90px;
    }

    dd {
        flex: 1;
        line-height: 1.63;
    }
}

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

    .btn-outer-recruitment {
        margin: max(6%, 35px) auto 0;
    }
}

.recruitmentContainer__item {
    margin-bottom: max(11%, 30px);

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

.recruitmentContainer__ttl {
    font-size: var(--font36);
    text-align: center;
    color: var(--purple01);
    font-weight: var(--weight700);
    line-height: 1.5;
    margin: 0 auto max(2.54%, 20px);
}

.recruitmentContainer__ttl--serif {
    position: relative;
    margin: 0 auto;

    &::before,
    &::after {
        position: absolute;
        content: "";
        width: 3px;
        height: 1.3em;
        bottom: 0;
        right: 103%;
        transform: rotate(-23deg);
        background-color: var(--purple01);
    }

    &::after {
        transform: rotate(23deg);
        right: auto;
        left: 103%;
    }
}

.dataFlex {
    display: flex;
    justify-content: space-between;
}

.dataFlex__item {
    width: calc((100% - 45px)/2);
    background-color: var(--purple02);
    display: flex;
    align-items: center;
    padding: 10px 10px 10px 0;

    dt {
        font-size: var(--font21);
        font-weight: var(--weight700);
        color: var(--purple01);
        flex: 1;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    dd {
        width: min(100%, 285px);
        background-color: var(--white);
        display: flex;
        justify-content: center;
        align-items: center;
        font-size: var(--font56);
        font-weight: var(--weight700);
        color: var(--purple01);
        line-height: 1;
        padding: 0.78em 0 1em;

        .big {
            background: var(--gra02);
            -webkit-background-clip: text;
            color: transparent;
            font-size: 1.8em;
            margin-right: 5px;
        }
    }
}

.recruitmentContainer__txt {
    line-height: 1.63;
    text-align: center;
}


@media screen and (max-width:1350px) {
    .recruitment__parts01 {
        top: 2%;
        width: 39%;
    }
}

@media screen and (max-width:1200px) {
    .recruitment {

        .section__inner {
            padding-top: 30%;
        }

        .section__ttl {
            padding-left: 0;
            text-align: center;
        }
    }

    .recruitment__parts01 {
        top: 1%;
        width: 45%;
    }

    .recruitmentBox {
        margin: 0 auto;
        padding: max(11%, 60px) max(3%, 10px) max(8%, 70px);
    }

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

    .recruitment__detail {
        margin-bottom: max(10%, 40px);
    }

    .recruitment__parts02 {
        bottom: -10%;
        left: -2%;
        width: 19vw;
    }

    .btn-outer-recruitment {
        margin: 0 auto;
    }
}

@media screen and (max-width:975px) {
    .dataFlex__item {
        dd {
            width: min(100%, 200px);
        }
    }
}


@media screen and (max-width:768px) {
    .dataFlex {
        flex-direction: column;
        align-items: center;
        width: min(100%, 400px);
        margin: 0 auto;
        gap: 20px;
    }

    .dataFlex__item {
        width: 100%;
    }

    .recruitmentContainer__item:nth-child(2) {
        .recruitmentContainer__ttl {
            margin-bottom: 5px;
        }
    }
}

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

    .recruitment__parts02 {
        bottom: -5%;
    }

    .recruitmentContainer__ttl--serif {
        display: block;
        width: fit-content;
    }

    .recruitmentContainer {
        margin-top: 13%;
    }


}

@media screen and (max-width:480px) {
    .btn-outer-recruitment {
        margin: 0 auto;
        font-size: 4.9vw;
    }

    .recruitmentContainer__ttl--serif {

        &::before {
            right: 98%;
        }

        &::after {
            right: auto;
            left: 98%;
        }
    }


}

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


    .dataFlex__item {
        flex-direction: column;
        padding: 10px 5px 20px;
        gap: 5px;
    }
}

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

    .recruitment__detail {
        dt {
            width: 60px;
        }
    }

    .recruitment__parts02 {
        bottom: -0;
    }
}

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

    .recruitment__detail {
        div {
            flex-direction: column;
            align-items: flex-start;
        }
    }
}




/*******************************************
flowBox(recruitment)
*******************************************/


.flowBox {
    margin: max(3.5%, 20px) auto 0;
}


.flow__list {
    display: flex;
    background-image: linear-gradient(90deg,
            var(--purple02) 50%,
            var(--purple01) 50%);
}

.flow__item {
    display: flex;
    flex-direction: column;
    color: var(--white);
    font-size: var(--font30);
    font-weight: var(--weight700);
    padding-bottom: 10px;

    .number {
        font-size: 2em;
        line-height: 1;
        padding-left: 0.2em;
    }

    &:nth-child(1),
    &:nth-child(2) {
        color: var(--purple01);
    }

    &:nth-child(1) {
        background-color: var(--purple02);

        .flow__icon {
            dd {
                transform: none;
            }
        }
    }

    &:nth-child(2) {
        background-color: #c3aed1;
    }

    &:nth-child(3) {
        background-color: #9974b0;
    }

    &:nth-child(4) {
        background-color: #6e3a8f;
    }

    &:nth-child(5) {
        background-color: var(--purple01);

        .number {
            padding: 0;
            transform: translateX(-5%);
        }
    }

    &:nth-child(1),
    &:nth-child(5) {
        flex: 1;
    }

    &:nth-child(2),
    &:nth-child(3),
    &:nth-child(4) {
        max-width: 205px;
        width: calc(100% / 3);
        transform: skewX(20deg);

        &>* {
            transform: skewX(-20deg);
        }
    }
}

.flow__icon {
    display: flex;
    align-items: center;
    flex-direction: column;
    margin-top: 5px;

    dt {
        width: 110px;
    }

    dd {
        transform: translateX(25%);
        letter-spacing: var(--fontSpace050);
    }
}



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

    .flow__item {

        &:nth-child(2),
        &:nth-child(3),
        &:nth-child(4) {
            max-width: 160px;
        }
    }
}

@media screen and (max-width:768px) {
    .flowBox {
        width: min(85%, 300px);
    }

    .flow__list {
        background-image: initial;
        flex-direction: column;
    }

    .flow__item {
        position: relative;
        max-width: initial !important;
        width: 100% !important;
        transform: none !important;
        padding: 10% 5px 0;

        &>* {
            transform: none !important;
        }

        .number {
            padding: 0;
        }

        &:nth-child(5) {
            .number {
                transform: none;
            }
        }


        &::before {
            position: absolute;
            content: "";
            display: inline-block;
            width: 100%;
            aspect-ratio: 300/35;
            background-color: var(--purple02);
            clip-path: polygon(0 0, 100% 0%, 50% 100%);
            top: 100%;
            left: 0;
            z-index: 1;
            transform: translateY(-0.5px);
        }

        &:nth-child(1) {
            padding-top: 10px;
        }

        &:nth-child(2) {
            &::before {
                background-color: #c3aed1
            }
        }

        &:nth-child(3) {
            &::before {
                background-color: #9974b0;
            }
        }

        &:nth-child(4) {
            &::before {
                background-color: #6e3a8f;
            }
        }

        &:nth-child(5) {
            padding-bottom: 15px;

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

    .flow__icon {

        dd {
            transform: none;
        }
    }

}

@media screen and (max-width:480px) {
    .flowBox {
        width: min(85%, 250px);
    }

    .flow__item {
        .number {
            font-size: 1.4em;
        }

        &:nth-child(1) {
            .flow__icon {
                margin-top: -5%;
            }
        }

        &:nth-child(2) {
            .flow__icon {
                gap: 10px;
            }
        }

        &:nth-child(5) {
            .flow__icon {
                gap: 0;
            }
        }
    }

    .flow__icon {
        gap: 5px;
        margin-top: 0;

        dt {
            width: 30%;
        }

        dd {
            line-height: 1;
            position: relative;
            z-index: 2;
            font-size: 18px;
        }
    }
}



/*******************************************
question
*******************************************/
.question {
    background-color: var(--purple02);

    .section__inner {
        padding: clamp(40px, 5%, 70px) 0 clamp(40px, 7%, 95px);
    }

    .section__ttl {
        position: relative;
        text-align: center;
    }
}



.question__container {
    margin-top: max(5.62%, 25px);
}

.question__detail {
    div {
        margin-bottom: max(5.5%, 20px);
    }

    dt {
        font-weight: var(--weight500);
        font-size: 1.06em;
        background-color: var(--white);
    }


    dd {
        .icon-txt {
            padding-top: 1.5em;
            padding-bottom: 0;
        }
    }

    .icon-txt {
        position: relative;
        display: flex;
        align-items: flex-start;
        justify-content: flex-start;
        padding: 0.98em 2em 0.5em 0.75em;

        p {
            flex: 1;
            text-align: left;
        }
    }

    .aco-click {

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

.icon-q,
.icon-a {
    position: relative;
    display: block;
    width: 2.38em;
    aspect-ratio: 1;
    border-radius: var(--borderRadiusCircle);
    background-color: var(--purple03);
    margin-right: 0.7em;
    transform: translateY(-10%);

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

.icon-a {
    background-color: var(--purple01);

    &::before {
        content: "A";
        color: var(--white);
    }
}

.question-pparts01 {
    position: absolute;
    right: 71%;
    bottom: 5%;
    width: clamp(100px, 33vw, 466px);
}

@media screen and (max-width: 1280px) {
    .question-pparts01 {
        bottom: 15%;
        width: max(100px, 25vw);
    }
}

@media screen and (max-width: 768px) {
    .question-pparts01 {
        right: auto;
        left: 0;
        bottom: 120%;
        width: max(100px, 28vw);
    }
}

@media screen and (max-width: 480px) {
    .question__detail {
        line-height: var(--lineHight175);

        .icon-txt {
            padding-bottom: 0.98em;
        }
    }

    .icon-q,
    .icon-a {
        width: 1.7em;
        margin-right: 0.4em;
        transform: none;

        &::before,
        &::after {
            font-size: 0.7em;
        }
    }
}

/*******************************************
company
*******************************************/
.company {
    .section__inner {
        padding: clamp(80px, 15%, 200px) 0 clamp(30px, 4%, 55px);
    }

    &.section__bgTxt {
        &::before {
            left: auto;
            right: 0;
            opacity: 0.2;
        }
    }
}

.company__bg {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    height: 100%;
    z-index: -2;

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

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

    .ttl {
        width: min(38%, 366px);
        margin-right: 11%;
    }
}

.company__detail {
    flex: 1;

    div {
        display: flex;
        align-items: flex-start;
        justify-content: flex-start;
        margin-bottom: 7px;
        font-size: var(--font17);
    }

    dt {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 5.94em;
        aspect-ratio: 101/30;
        text-align: center;
        background-color: var(--purple03);
        color: var(--purple01);
        letter-spacing: var(--fontSpace050);
        line-height: 1;

    }

    dd {
        flex: 1;
        padding-left: 0.7em;
        line-height: var(--lineHight175);
    }
}

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

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



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

.footer {
    background-color: var(--purple01);
    padding: clamp(50px, 4.5%, 60px) 0 clamp(40px, 3.5%, 45px);
    position: relative;
    font-size: 15px;
    color: var(--white);
    font-weight: var(--weight500);
    line-height: 1.5;
}

.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: 80%;
        background-color: var(--white);
        top: 50%;
        left: -14px;
        transform: translate(50%, -50%);
    }
}

.copyright {
    text-align: center;
}

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

    .footer {
        font-size: 12px;

        .inner {
            padding: 0 5px;
        }
    }

    .footer-nav {
        flex-wrap: wrap;
        column-gap: 30px;
        row-gap: 10px;
        flex-direction: column;
        align-items: center;


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

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