@charset "utf-8";
/*共通設定*/
    /*<a class="line-btn">*/
.line-btn-wrap {
    margin-top: 40px;
}

.line-btn {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background-color: #77D13F;
    border-radius: 4px;
    padding: 12px 8px;
    border-radius: 8px;
    border: solid 1px #fff;
    box-shadow: 0 2px 5px rgba(102, 78, 163, 0.25);
    box-shadow: inset 0 4px 4px rgba(255, 255, 255, 0.5);
    color: #fff;
    font-size: 20px;
    font-weight: 600;
    font-family: "Noto Sans JP", sans-serif;
}

    /*<div class="swiper">*/
.swiper-wrapper {
    transition-timing-function: linear !important;
}

    /*<div class="h2-wrap">*/
.h2-wrap {
    margin-bottom: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 8px;
}

.h2-en {
    font-size: 56px;
    font-weight: 800;
    line-height: 1.3;
    white-space: nowrap;
}

.h2-dot {
    max-width: 64px;
    width: 100%;
}

.h2-wrap h2 {
    color: #222;
    font-size: 18px;
    font-weight: 600;
}
/*終わり*/  


/*<section class="bg">*/
.bg {
    padding: 0 40px;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100vw;
    height: 100vh;
    background-image: url(../img/bg.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.bg-in {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
}

.bg-l {
    width: calc(50% - 300px);
    height: 100%;
    padding-right: 40px;
    display: flex;
    justify-content: center;
    flex-direction: column;
    gap: 40px;
}

.bg-h1-wrap {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.bg-h1-en {
    font-size: 48px;
    font-weight: 800;
    line-height: 1.1; 
}

.bg-h1-en span {
    font-size: 56px;
}

.bg-h1 {
    font-weight: 800;
    font-size: 20px;
    line-height: 1.3;
    color: #fff;
    -webkit-text-stroke: 1px #404040;
}

.bg-h1 span {
    position: relative;
}

.bg-h1 span::before {
    right: 105%;
}

.bg-ul {
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-size: 20px;
    font-weight: 600;
}

.bg-ul li {
    display: flex;
    align-items: center;
    gap: 16px;
}

.bg-ul li a {
    position: relative;
    padding-left: 24px;
}

.bg-ul li a::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0%;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    background-image: url("../img/nav_li_circle.svg");
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    width: 16px;
    height: 16px;
}

.bg-r {
    position: relative;
    width: calc(50% - 300px);
    height: 100%;
    padding-left: 2vw;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 40px;
}

.bg-logo-flex {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 40px;
    width: 100%;
}

.bg-logo {
    max-width: 140px;
    width: 100%;
}

.bg-line-btn {
    max-width: 320px;
}
/*終わり*/


/*<div class="lp-wrap">*/
.lp-wrap {
    position: relative;
    background-color: #FFF;
    overflow: hidden;
    z-index: 2;
}
/*終わり*/


/*<div class="fix-area">*/
.fix-area {
    background: linear-gradient(135deg,
                #AEFCFE 0%,
                #FBC2D6 100%
                );
    max-width: 600px;
    width: 100%;
    height: 60px;
    padding: 8px 24px;
    position: fixed;
    top: 0%;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    z-index: 999;
}

.fix-area-in {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.logo-btn-img {
    display: inline-block;
    max-width: 200px;
}

.fix-line-btn {
    max-width: 240px;
    padding: 8px;
    font-size: 16px;
}
/*終わり*/


/*<section class="fv">*/
.fv {
    margin-top: 60px;
    background-color: #AEFCFE;
}
/*終わり*/


/*<div class="bg-wrap">*/
.bg-wrap {
    position: relative;
    background-image: url(../img/about_bg.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.bg-wrap::before {
    content: "";
    position: absolute;
    top: 0%;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    max-width: 520px;
    width: 100%;
    height: 100%;
    background-color: #fff;
    opacity: 0.6;
    z-index: 3;
}

.bg-wrap .wave-bottom {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
}
/*終わり*/


/*<section class="about">*/
.about {
    position: relative;
    z-index: 4;
    padding: 64px 80px 0 80px;
}

.about-h2-en {
    max-width: 240px;
    width: 100%;
}

.about-txt-wrap {
    display: flex;
    flex-direction: column;
    gap: 16px;
    font-weight: 600;
}

.about-txt-wrap .pink-txt {
    color: #EE609C;
}

.about-txt-01 {
    text-align: center;
    font-size: 20px;
}

.about-txt-01 span {
    font-size: 24px;
}

.about-txt-02-wrap {
    position: relative;
    margin: 0 -40px;
}

.about-txt-svg {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    max-width: 440px;
    width: 100%;
    display: inline-block;
}

.about-star-01 {
    position: absolute;
    top: 0;
    left: -40px;
    max-width: 72px;
    width: 100%;
}

.about-star-02 {
    position: absolute;
    top: 64px;
    right: -24px;
    max-width: 72px;
    width: 100%;
}
/*終わり*/


/*<section class="company">*/
.company {
    position: relative;
    z-index: 4;
    padding: 64px 80px;
}

.company-h2-en {
    max-width: 320px;
    width: 100%;
}

.company-swiper {
    margin: 0 -80px;
}

.company-swiper .swiper-slide-up {
    padding-top: 24px;
}

.company-swiper-img {
    border-radius: 16px;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.company-swiper-img-01 {
    border: solid 3px #DE4ED0;
    box-shadow: 0 0 14px #F3B6D8;
}

.company-swiper-img-02 {
    border: solid 3px #019A95;
    box-shadow: 0 0 14px #B6F3EA;
}

.company-swiper-img-03 {
    border: solid 3px #F0A52E;
    box-shadow: 0 0 14px #FAD9A8;
}

.company-swiper-img-04 {
    border: solid 3px #FE6FA7;
    box-shadow: 0 0 14px #FFEFF9;
}

.company-txt-area {
    position: relative;
}

.company-fire-img-wrap {
    margin: 0 -80px;
}

.company-txt-wrap {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    gap: 24px;
    text-align: center;
    width: 100%;
}

.company-logo-flex {
    display: flex;
    justify-content: center;
    gap: 24px;
}

.company-logo {
    max-width: 120px;
    width: 100%;
}

.company-txt {
    color: #fff;
    font-weight: 600;
}

.company-video-area {
    position: relative;
    margin: 0 -40px
}

.company-video-wrap {
    position: absolute;
    top: 48%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    width: 400px;
    height: 200px;
}

.company-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
/*終わり*/


/*<section class="benefit">*/
.benefit-flex {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    width: 100%;
    row-gap: 24px;
}

.benefit-con {
    position: relative;
    width: 48%;
    border-radius: 16px;
    padding: 16px;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.benefit-con-01 {
    border: solid 1px #F0A52E;
    background-color: #FFFBDE;
    box-shadow: 0 0 14px #FAD9A8;
}

.benefit-con-02 {
    border: solid 1px #FE6FA7;
    background-color: #FFEFF9;
    box-shadow: 0 0 14px #FEADD2;
}

.benefit-con-03 {
    border: solid 1px #DE4ED0;
    background-color: #EED6E7;
    box-shadow: 0 0 14px #F3B6D8;
}

.benefit-con-04 {
    border: solid 1px #019A95;
    background-color: #D1FEF9;
    box-shadow: 0 0 14px #B6F3EA;
}

.benefit-con-05 {
    border: solid 1px #414697;
    background-color: #CCE3FF;
    box-shadow: 0 0 14px #A8B1CD;
}

.benefit-con-06 {
    border: solid 1px #FF8330;
    background-color: #FFEEDE;
    box-shadow: 0 0 14px #FDE4D5;
}

.benefit-num {
    position: absolute;
    top: 0;
    left: 8px;
    color: #fff;
    font-size: 96px;
    line-height: 1;
    z-index: 1;
}

.benefit-icon {
    position: relative;
    max-width: 100px;
    width: 100%;
    margin: 0 auto;
    flex-grow: 1;
    z-index: 2;
}

.benefit-txt {
    font-weight: 700;
    font-size: 20px;
    line-height: 1.3;
}

.benefit-txt-01 {
    color: #F0A52E;
}

.benefit-txt-02 {
    color: #FE6FA7;
}

.benefit-txt-03 {
    color: #DE4ED0;
}

.benefit-txt-04 {
    color: #019A95;
}

.benefit-txt-05 {
    color: #414697;
}

.benefit-txt-06 {
    color: #FF8330;
}
/*終わり*/


/*<section class="req">*/
.req {
    position: relative;
}

.req-in {
    position: relative;
    border-radius: 24px;
    background-color: #fff;
    box-shadow: 0 0 10px rgba(0,0,0,0.25);
    padding: 24px;
    z-index: 1;
}

.req-flex {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    width: 100%;
    row-gap: 40px;
}

.req-con {
    width: 48%;
    display: flex;
    flex-direction: column;
    gap: 16px;
    text-align: center;
}

.req-icon {
    max-height: 80px;
    flex-grow: 1;
}

.req-txt {
    font-size: 14px;
    line-height: 1.5;
}

.req-txt span {
    font-size: 18px;
    font-weight: 600;
}

.req-circle-01 {
    position: absolute;
    top: 0;
    right: 0;
    z-index: -1;
}

.req-circle-02 {
    position: absolute;
    top: 4%;
    left: 0;
    z-index: -1;
}

.req-circle-03 {
    position: absolute;
    bottom: 20%;
    right: 0;
    z-index: -1;
}

.req-circle-04 {
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: -1;
}
/*終わり*/


/*<section class="flow">*/
.flow {
    padding-bottom: 120px;
    position: relative;
    background-image: url(../img/flow_bg.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.flow::before {
    content: "";
    position: absolute;
    top: 0%;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    max-width: 480px;
    width: 100%;
    height: 100%;
    background-color: #fff;
    opacity: 0.6;
    z-index: 1;
}

.flow-in {
    position: relative;
    z-index: 2;
}

.flow-flex {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 24px;
}

.flow-con {
    position: relative;
    width: 100%;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 64px 24px 24px 24px;
    clip-path: polygon(
        40px 0,
        100% 0,
        100% calc(100% - 40px),
        calc(100% - 40px) 100%,
        0 100%,
        0 40px
    );
}

.flow-con-01 {
    background-image: url(../img/flow_01.jpg);
}

.flow-con-02 {
    background-image: url(../img/flow_02.jpg);
}

.flow-con-03 {
    background-image: url(../img/flow_03.jpg);
}

.flow-num {
    position: absolute;
    top: 8px;
    left: 24px;
    color: #fff;
    font-size: 48px;
    line-height: 1;
    text-shadow: 0 0 8px rgba(0,0,0,0.3);
    z-index: 3;
}

.flow-title {
    background: linear-gradient(90deg,
            #B465DA 0%,
            #CF6CC9 33%,
            #EE609C 66%,
            #EE609C 100%);
    display: inline-block;
    font-size: 24px;
    font-weight: 600;
    color: #fff;
    padding: 0 8px;
}

.flow-txt {
    font-weight: 600;
    text-shadow: 0 0 8px rgba(255,255,255,0.5);
}

.flow .wave-top {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
}

.flow .wave-bottom {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
}

.flow-line {
    width: 32px;
    height: 1px;
    background-color: #404040;
    transform: rotate(90deg);
}

.flow-swiper {
    margin: 40px -40px 200px -40px;
}

.flow-cta-area {
    position: absolute;
    bottom: 5%;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    width: 600px;
    z-index: 3;
}

.flow-fire-img {
    width: 100%;
}

.flow-cta-wrap {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    max-width: 520px;
    width: 100%;
    text-align: center;
    z-index: 4;
}

.flow-cta-txt {
    width: 100%;
    color: #fff;
    font-weight: 800;
    font-size: 32px;
}

.flow-txt-svg {
    width: 90%;
}
/*終わり*/


/*<section class="notice">*/
.notice-ul {
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-weight: 600;
}

.notice-ul li {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
}
/*終わり*/


/*<section class="privacy">*/
.privacy .h2-en {
    font-size: 48px;
}
/*終わり*/


/*1300px ~ 1025px*/
@media (max-width: 1350px) {
/*<section class="bg">*/
    .bg-l,
    .bg-r {
        display: none;
    }
/*終わり*/
}


/*タブレット*/
@media (max-width: 1024px) {  
/*共通設定*/
/*終わり*/  
}
  
  
/*スマホ*/
@media (max-width: 599px) {
/*共通設定*/
/*終わり*/


/*<div class="fix-area">*/
/*終わり*/


/*<section class="fv">*/
/*終わり*/


/*<section class="about">*/
/*終わり*/


/*<section class="company">*/
/*終わり*/


/*<section class="benefit">*/
/*終わり*/


/*<section class="req">*/
/*終わり*/


/*<section class="flow">*/
/*終わり*/


/*<section class="notice">*/
/*終わり*/


/*<section class="privacy parent">*/
/*終わり*/

}
