﻿@charset "utf-8";
/* CSS Document */

/*--------------------------------------
    common
--------------------------------------*/

@media (max-width: 768px) {
}

/*--------------------------------------
    about
--------------------------------------*/

.about h1,.about h2,.about h3,.about h4,.about h5,.about h6,
.about p,.about li,.about th,.about td,.about dt,.about dd,
.about span,.about div{  
    line-height:1.8;
}
.about,
.entry {
    letter-spacing: 0.07em;
}
.about .visualArea{
    background: none;
}
.about .visualArea h2::after{
    width:250px;
    height:250px;
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    transform: translate(-76.8%, -24.5%);
}
.webp .about .visualArea h2::after{
    background: url("../images/about/icon_section.webp") no-repeat center center/contain;
}
.no-webp .about .visualArea h2::after{
    background: url("../images/about/icon_section.png") no-repeat center center/contain;
}
.about section:nth-child(n+2){
    position: relative;
    padding: 45px 68px 45px 68px;
    border-left:2px solid #4E66D9;
    border-right:2px solid #4E66D9;
}
.about section:nth-child(n+3){
    margin: 120px auto 55px auto;
}
.about section:nth-child(n+3)::before{
    width:154px;
    height:154px;
    content: "";
    position: absolute;
    top:0;
    left:0;
    transform: translate(-51%,-50%);
    z-index: -1;
}
.webp .about section:nth-child(n+3)::before{
    background: url("../images/about/icon_section2.webp") no-repeat center center/contain;
}
.no-webp .about section:nth-child(n+3)::before{
    background: url("../images/about/icon_section2.png") no-repeat center center/contain;
}
.about h3.style003{
    line-height: 44px;
    margin-bottom: 45px;
    position: relative;
    display: flex;
    align-items: center;
}
.about h3.style003 span{
    font-size:30px;
    font-weight: bold;
    line-height: 44px;
    position: relative;
    padding: 0 25px 0 0;
    margin-left: 23px;
    z-index: 10;
}
.about h3.style003::before{
    width:12px;
    height:36px;
    background: #4E66D9;
    content: "";
    margin: auto 0 auto 0;
}
.about h3.style003::after{
    flex-grow: 1;
    height:2px;
    background: #4E66D9;
    content: "";
    margin: auto 0 auto 0;
}
.about h4.style003{
    font-size:22px;
    font-weight: bold;
    line-height: 32px;
    margin-bottom: 25px;
    padding: 0 0 14px 0;
    border-bottom: 1px solid #4E66D9;
}
.about #intro{
    margin-bottom: 60px;
}
.about #intro .box:first-child{
    margin-bottom: 120px;
}
.about #intro .box:first-child h3.style001,
.about #intro .box:first-child p.text{
    margin-bottom: 45px;
    font-weight: bold;
}
.about #intro .column2{
    display: flex;
    align-items: center;
    gap:32px;
}
.about #intro .column2 .text{
    width:548px;
    font-weight: 600;
}
.about #intro .column2 .img{
    width:520px;
}
.about #approach .box{
    margin-bottom: 65px;
}
.about #approach .box:last-child{
    margin-bottom: 0;
}
.about #approach .box .text{
    font-weight: 600;
}
.about #approach .box .troubleBox{
    width:100%;
    padding: 40px 35px 40px 35px;
    box-sizing: border-box;
    border-radius: 6px;
    background: #110B64;
}
.about #approach .box .troubleBox h4{
    font-size:25px;
    line-height: 59px;
    border-radius: 30px;
    font-weight: bold;
    text-align: center;
    background: #FFFFFF;
    color: #110B64;
    margin-bottom: 20px;
}
.about #approach .box .troubleBox .question{
    font-size:39px;
    line-height: 56px;
    font-weight: bold;
    text-align: center;
    color: #FFFFFF;
    margin-bottom: 20px;
}
.about #approach .box .troubleBox .answerArea{
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap:25px;
}
.about #approach .box .troubleBox .answerArea .answer{
    height:148px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: linear-gradient(-45deg, #2843C3, #843EF4);
    border-radius: 6px;
}
.about #approach .box .troubleBox .answerArea .answer p{
    display: inline-block;
    font-size:23px;
    line-height: 1.3;
    text-align: center;
    color:#FFFFFF;
    font-weight: bold;
}
.about #approach .box .troubleBox .answerArea .answer p span{
    font-size:35px;
    color:#FFFFFF;
    font-weight: bold;
    display: inline-block;
    padding-bottom: 2px;
    border-bottom: 1px solid #FFFFFF;
}
.about #approach .box .arrowBox{
    width:100%;
    margin-top: 20px;
    position: relative;
    background: rgba(78,102,217,0.12);
    box-sizing: border-box;
    padding: 50px 25px 50px 35px;
    border-radius: 7px;
}
.about #approach .box .arrowBox::before{
    content: "";
    position: absolute;
    top:0;
    left:calc(50% - 33px);
    border-top:21px solid #F7F7F7;
    border-left:33px solid transparent;
    border-right:33px solid transparent;
}
.about #approach .box .arrowBox p{
    font-size:20px;
    font-weight: bold;
    color:#4E66D9;
}
.about #approach .box .arrowBox span{
    font-size:12px;
    display: block;
    margin-top: 15px;
}
.about #approach .box .arrowBox span.asterisk{
    display: inline;
    vertical-align: text-top;
}
.about #purpose .box .strong{
    font-size:24px;
    color:#4E66D9;
    font-weight: bold;
    margin-bottom: 64px;
}
.about #purpose .box .pointArea{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap:160px;
    margin-bottom: 70px;
}
.about #purpose .box .pointArea .pointBox{
    position: relative;
}
.about #purpose .box .pointArea .pointBox:last-child::before{
    width:1px;
    height:100%;
    content: "";
    position: absolute;
    top:0;
    left:-80px;
    right:auto;
    bottom:0;
    background: #4E66D9;
}
.about #purpose .box .pointArea .pointBox h4{
    font-size: 22px;
    height:105px;
    font-weight: bold;
    line-height: 1.6;
    padding-left: 132px;
    position: relative;
}
.about #purpose .box .pointArea .pointBox h4::before{
    width:104px;
    height:97px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top:0;
    left:0;
    right:auto;
    bottom:0;
    margin: auto;
    padding: 8px 0 0 2px;
    background: #4E66D9;
    border-radius: 50%;
}
.webp .about #purpose .box .pointArea .pointBox:first-child h4::before{
    content:url("../images/about/icon_point_001.webp");
}
.no-webp .about #purpose .box .pointArea .pointBox:first-child h4::before{
    content:url("../images/about/icon_point_001.png");
}
.webp .about #purpose .box .pointArea .pointBox:last-child h4::before{
    content:url("../images/about/icon_point_002.webp");
}
.no-webp .about #purpose .box .pointArea .pointBox:last-child h4::before{
    content:url("../images/about/icon_point_002.png");
}
.about #purpose .box .pointArea .pointBox ul{
    width:100%;
    background: #FFFFFF;
    box-sizing: border-box;
    border-left:4px solid #4E66D9;
    position: relative;
    padding: 38px 0 38px 37px;
    margin-top: 36px;
}
.about #purpose .box .pointArea .pointBox ul li{
    font-size:18px;
    line-height: 1.6;
    margin-bottom: 10px;
}
.about #purpose .box .pointArea .pointBox ul li::before{
    content: "・";
}
.about #purpose .box .pointArea .pointBox ul li:last-child{
    margin-bottom: 0px;
}
.about #purpose .linkSection{
    margin-top: 105px;
}
.about #purpose .linkSection h4{
    width:564px;
    height:107px;
    display:flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto 60px auto;
    background: #3CD0B9;
    position: relative;
    border-radius: 15px;
}
.about #purpose .linkSection h4 span{
    font-size:30px;
    font-weight: bold;
    display: inline-block;
    color:#FFFFFF;
}
.about #purpose .linkSection h4::after{
    content: "";
    position: absolute;
    top:100%;
    left:calc(50% - 17px);
    right:auto;
    bottom:auto;
    border-top:30px solid #3CD0B9;
    border-left:17px solid transparent;
    border-right:17px solid transparent;
}
.about #purpose .linkArea{
    counter-reset: section;
}
.about #purpose .linkArea .linkBox{
    height:112px;
    counter-increment: section;
    display: flex;
    align-items: center;
    padding: 0 25px 0 20px;
    background: #FFFFFF;
    margin-top: 20px;
}
.about #purpose .linkArea .linkBox h5{
    font-size:22px;
    font-weight: bold;
    padding-left: 102px;
    position: relative;
}
.about #purpose .linkArea .linkBox h5::before{
    width:74px;
    height:74px;
    content: counter(section,decimal-leading-zero) "";
    position: absolute;
    top:0;
    left:0;
    right:auto;
    bottom:0;
    margin: auto;
    background: linear-gradient(135deg, #4E66D9 0%, #4E66D9 50%, #110B64 50%, #110B64 100%);
    text-align: center;
    line-height: 74px;
    color: #FFFFFF;
    font-size:37px;
}
.about #purpose .linkArea .linkBox .btn002{
    width: 306px;
    height: 48px;
    margin: 0 0 0 auto;
}
.about #purpose .linkArea .linkBox .btn002::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 304px;
    height: 46px;
    border: 1px solid #4E66D9;
    border-radius: 45px;
    z-index: 999;
}
.about #purpose .linkArea .linkBox .btn002 a{
    line-height: 46px;
    z-index: 1000;
}
.about #purpose .linkArea .linkBox .btn002 a::before{
    z-index: 10;
}
.about #purpose .linkArea .linkBox .btn002 a span{
    font-size:16px;
    font-weight: bold;
    color:#050505;
    position: relative;
    z-index: 100;
    transition: 0.3s;
}
.about #purpose .linkArea .linkBox .btn002 a:hover span{
    color:#FFFFFF;
}
.about #purpose .linkArea .linkBox .btn002 a::after{
    right:27px;
    z-index: 20;
}

.about #feature .featureArea{
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap:85px;
    margin: 40px auto 50px auto;
}
.about #feature .featureArea .featureBox{
    padding: 30px 0 30px 0;
    position: relative;
}
.about #feature .featureArea .featureBox:nth-child(2)::before{
    width:1px;
    height:100%;
    background: #4E66D9;
    content: "";
    position: absolute;
    top:0;
    left:-43px;
    right:auto;
    bottom:0;
}
.about #feature .featureArea .featureBox:nth-child(2)::after{
    width:1px;
    height:100%;
    background: #4E66D9;
    content: "";
    position: absolute;
    top:0;
    left:auto;
    right:-43px;
    bottom:0;
}
.about #feature .featureArea .featureBox .thumb{
    width:100%;
    height:auto;
    padding-top: 65%;
    position: relative;
}
.about #feature .featureArea .featureBox .thumb img{
    width:100%;
    height:100%;
    object-fit: cover;
    position: absolute;
    top:0;
    left:0;
    right:0;
    bottom:0;
}
.about #feature .featureArea .featureBox h4{
    height:70px;
    display: flex;
    align-items: center;
    margin: 20px auto 20px auto;
}
.about #feature .featureArea .featureBox h4 span{
    font-size:22px;
    font-weight: bold;
    line-height: 1.6;
}
.about #feature .featureArea .featureBox p{
    font-size:15px;
}
.about #feature .featureArea .featureBox p span{
    border-bottom: 2px solid #FA5AE6;
}
.about #feature .btn001 a{
    display: flex;
    justify-content: center;
    align-items: center;
}
.about #feature .btn001 a::before{
    height: 180px;
}
.about #feature .btn001 a::after{
    right: 40px;
}
.about #benefit .benefitArea{
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap:20px;
    margin: 65px auto 45px auto;
}
.about #benefit .benefitArea .benefitBox{
    position: relative;
    padding: 70px 30px 45px 30px;
    background: rgba(78,102,217,0.12);
    border:1px solid rgba(17,11,100,0.12);
    border-radius: 6px;
}
.about #benefit .benefitArea .benefitBox span{
    color:#FFFFFF;
    font-size:21px;
    font-weight: bold;
    line-height: 63px;
    width:134px;
    text-align: center;
    background: linear-gradient(-45deg, #2843C3, #843EF4);
    border-radius: 32px;
    position: absolute;
    top:-15px;
    left:0;
    right:0;
    margin: auto;
}
.about #benefit .benefitArea .benefitBox span b{
    color:#FFFFFF;
    font-size:35px;
    font-family: "barlow", sans-serif;
    font-weight: bold;
    line-height: 63px;
    transform: translate(3px,3px);
    display: inline-block;
}
.about #benefit .benefitArea .benefitBox h4{
    display: block;
    text-align: center;
    color:#4E66D9;
    font-size:22px;
    font-weight: bold;
    padding-bottom: 15px;
    border-bottom: 1px solid #4E66D9;
    margin-bottom: 18px;
}
.about .anchorLink{
    width:785px;
    margin: 0 auto -55px;
}
@media (max-width: 1268px) {
    .about section:nth-child(n+2) {
        width: 100%;
        padding: 45px calc(50% - 550px) 45px calc(50% - 550px);
        border-left: none;
        border-right: none;
    }
}
@media (max-width: 1100px) {
    .about section:nth-child(n+2) {
        width: 92%;
        border: none;
        padding: 0;
    }
    .about .visualArea h2::after{
        transform: translate(-50%, -33%);
    }
    .about #approach .box .troubleBox .question{
        font-size:33px;
    }
    .about #approach .box .troubleBox .answerArea .answer p{
        font-size:2vw;
    }
    .about #approach .box .troubleBox .answerArea .answer p span{
        font-size:3vw;
    }
    .about #purpose .box .pointArea{
        gap:80px;
    }
    .about #purpose .box .pointArea .pointBox h4{
        padding-left: 122px;
        font-size: 1.8vw;
    }
    .about #purpose .box .pointArea .pointBox ul{
        padding: 25px 0 25px 10px;
        margin-top: 20px;
    }
    .about #purpose .box .pointArea .pointBox ul li{
        font-size: 2vw;
    }
    .about #purpose .box .pointArea .pointBox:last-child::before{
        left:-40px;
    }
    .about #purpose .linkArea .linkBox .btn002 a::after{
        right:20px;
    }
    .about .anchorLink{
        width:100%;
        gap:20px 30px;
    }
    .about .anchorLink li{
        width:40%;
    }
    .about #purpose .linkArea .linkBox h5{
        width: 29vw;
        padding-left: 11vw;
    }
    .about #purpose .linkArea .linkBox .btn002{
        width: 35vw;
    }
    .about #purpose .linkArea .linkBox .btn002::after {
        width: calc(35vw - 2px);
    }
    .about #feature .featureArea{
        gap: 40px;
    }
    .about #feature .featureArea .featureBox:nth-child(2)::before{
        left:-20px;
    }
    .about #feature .featureArea .featureBox:nth-child(2)::after{
        right:-20px;
    }
    .about #feature .featureArea .featureBox h4 span{
        font-size:20px;
    }
    .about #benefit .benefitArea .benefitBox{
        padding: 70px 15px 45px;
    }
    .about #benefit .benefitArea .benefitBox h4{
        font-size:2.1vw;
    }
}
@media (max-width: 768px) {
.about .visualArea h2::after{
    width:180px;
    height:180px;
    transform: translate(-36%, -30%);
}
.about section:nth-child(n+2){
    margin-left: 20px;
    padding: 0;
    border-left:none;
    border-right:none;
}
.about section:nth-child(n+3){
    margin: 90px auto 90px auto;
}
.about section:nth-child(n+3){
    margin: 90px auto 90px auto;
}
.about section#benefit{
    margin: 90px 20px;
    width: calc(100% - 40px);
}
.about section:nth-child(n+3)::before{
    width:120px;
    height:120px;
}
.about h3.style001 span {
    font-size: 16px;
    line-height: 32px;
    padding: 0 10px 5px 10px;
}
.about h3.style003{
    width:100%;
    line-height: 35px;
    margin-bottom: 35px;
    position: relative;
}
.about h3.style003 span{
    width:100%;
    font-size:24px;
    line-height: 35px;
    padding: 0 0 5px 18px;
    border-bottom: 1px solid #4E66D9;
    background: none;
    display: block;
    margin-left: 0;
}
.about h3.style003::before{
    position: absolute;
    top:0;
    left:0;
    bottom:0;
    width:8px;
    height:24px;
}
.about h3.style003::after{
    display: none;
}
.about h4.style003{
    font-size:22px;
    font-weight: bold;
    line-height: 30px;
    margin-bottom: 24px;
    padding: 0 0 12px 0;
    border-bottom: 1px solid #4E66D9;
}
.about #intro .box {
    margin-right: 20px;
}
.about #intro .box:first-child{
    margin-bottom: 60px;
}
.about #intro .box:first-child h3.style001,
.about #intro .box:first-child p.text{
    margin-bottom: 40px;
}
.about #intro .column2{
    display: block;
}
.about #intro .column2 .text{
    width:100%;
}
.about #intro .img{
    width: 100%;
}
.about #intro .column2 .img{
    width: 100%;
    margin-top: 40px;
}
.about #intro .column2 .img img{
    width:100%;
}
.about .anchorLink{
    width:calc(100% - 40px);
    margin: 0 auto;
    gap:20px 10px;
}
.about .anchorLink li{
    width:calc(50% - 5px);
    height:58px;
    border-radius: 29px;
    margin: 0;
}
.webp .about .anchorLink li span{
    background: url("../common/images/icon_anchor.webp") no-repeat left center / 24px;
}
.no-webp .about .anchorLink li span{
    background: url("../common/images/icon_anchor.png") no-repeat left center / 24px;
}
.about #approach.contentWidth{
    width:100%;
}
.about #approach .box{
    margin-bottom: 30px;
}
.about #approach .box:first-child h3.style003{
    width:calc(100% - 40px);
    margin:0 auto 35px auto;
}
.about #approach .box:nth-child(n + 2){
    width:calc(100% - 40px);
    margin:0 auto 30px auto;
}
.about #approach .box .troubleBox{
    width:100%;
    padding: 30px 20px 30px 20px;
    border-radius: 0;
}
.about #approach .box .troubleBox h4{
    font-size:15px;
    line-height: 40px;
    border-radius: 20px;
    margin-bottom: 16px;
}
.about #approach .box .troubleBox .question{
    font-size:19px;
    line-height: 26px;
    margin-bottom: 16px;
}
.about #approach .box .troubleBox .answerArea{
    grid-template-columns: 1fr;
    gap:12px;
}
.about #approach .box .troubleBox .answerArea .answer{
    height:53px;
}
.about #approach .box .troubleBox .answerArea .answer p{
    font-size:14px;
}
.about #approach .box .troubleBox .answerArea .answer p span{
    font-size:21px;
    padding-bottom: 1px;
}
.about #approach .box .arrowBox{
    width:100%;
    padding: 30px 25px 30px 35px;
}
.about #approach .box .arrowBox::before{
    left:calc(50% - 25px);
    border-top:16px solid #F7F7F7;
    border-left:25px solid transparent;
    border-right:25px solid transparent;
}
.about #approach .box h4 span.sp{
    display: inline-block !important;
    font-size:22px;
    font-weight: bold;
    line-height: 30px;
}
.about #approach .box .arrowBox p{
    font-size:14px;
}
.about #approach .box .arrowBox span{
    font-size:11px;
    margin-top: 14px;
}
.about #approach .box:nth-child(2) span{
    font-size:11px;
    margin-top: 14px;
}
.about #purpose{
    width:100%;
}
.about #purpose .box:nth-child(1){
    width:calc(100% - 40px);
    margin: 0 auto;
}
.about #purpose .box .strong{
    font-size:17px;
    margin-bottom: 30px;
}
.about #purpose .box .pointArea{
    display: grid;
    grid-template-columns: 1fr;
    gap:35px;
    margin-bottom: 40px;
}
.about #purpose .box .pointArea .pointBox:last-child::before{
    display: none;
}
.about #purpose .box .pointArea .pointBox h4{
    font-size: 17px;
    height:auto;
    line-height: 26px;
    padding-left: 83px;
}
.about #purpose .box .pointArea .pointBox h4::before{
    width:66px;
    height:66px;
    box-sizing: border-box;
}
.webp .about #purpose .box .pointArea .pointBox:first-child h4::before{
    content:"";
    background: url("../images/about/icon_point_001.webp") no-repeat center center/30px ,#4E66D9;
}
.no-webp .about #purpose .box .pointArea .pointBox:first-child h4::before{
    content:"";
    background: url("../images/about/icon_point_001.png") no-repeat center center/30px ,#4E66D9;
}
.webp .about #purpose .box .pointArea .pointBox:last-child h4::before{
    content:"";
    background: url("../images/about/icon_point_002.webp") no-repeat center center/30px ,#4E66D9;
}
.no-webp .about #purpose .box .pointArea .pointBox:last-child h4::before{
    content:"";
    background: url("../images/about/icon_point_002.png") no-repeat center center/30px ,#4E66D9;
}

.about #purpose .box .pointArea .pointBox ul{
    border-left:6px solid #4E66D9;
    padding: 24px 0 24px 27px;
    margin-top: 20px;
}
.about #purpose .box .pointArea .pointBox ul li{
    font-size:16px;
    line-height: 1.6;
    margin-bottom: 4px;
}
.about #purpose .js-scrollable img {
    width: 676px;
    max-width: max-content;
}
.scroll-hint-icon-wrap.is-active .scroll-hint-icon {
    height: 88px;
}
.about #purpose .box:nth-child(1){
    width:calc(100% - 40px);
    margin: 0 auto;
}
.about #purpose .linkSection{
    margin-top: 40px;
}
.about #purpose .linkSection h4{
    width:100%;
    height:62px;
    margin: 0 auto 34px auto;
    border-radius: 0;
}
.about #purpose .linkSection h4 span{
    font-size:20px;
}
.about #purpose .linkSection h4::after{
    left:calc(50% - 9px);
    border-top:18px solid #3CD0B9;
    border-left:9px solid transparent;
    border-right:9px solid transparent;
}
.about #purpose .linkArea .linkBox{
    width:calc(100% - 40px);
    margin: 0 auto;
    height:141px;
    flex-direction: column;
    justify-content: center;
    gap:20px;
    padding: 0 16px 0 16px;
}
.about #purpose .linkArea .linkBox h5{
    width: 100%;
    font-size:19px;
    padding-left: 64px;
    line-height: 1.32;
}
.about #purpose .linkArea .linkBox h5::before{
    width:46px;
    height:46px;
    line-height: 46px;
    font-size:18px;
}
.about #purpose .linkArea .linkBox .btn002 a span{
    font-size:13px;
}
.about #purpose .linkArea .linkBox .btn002{
    width: 240px;
    height: 38px;
    margin: 0 auto 0 auto;
}
.about #purpose .linkArea .linkBox .btn002::after {
    width: 238px;
    height: 36px;
}
.about #purpose .linkArea .linkBox .btn002 a{
    font-size:13px;
    color:#050505;
    line-height: 36px;
}
.about #purpose .linkArea .linkBox .btn002 a::after{
    right:23px;
}
.about #purpose .linkArea .linkBox .btn002 a::after{
    right:23px;
}
.webp .about #purpose .linkArea .linkBox .btn002 a:hover::after {
    background: url(../common/images/icon_arrow_white_sp.webp) no-repeat center center / contain;
}
.no-webp .about #purpose .linkArea .linkBox .btn002 a:hover::after {
    background: url(../common/images/icon_arrow_white_sp.png) no-repeat center center / contain;
}

.about #feature{
    width:100%;
}
.about #feature h3.style003{
    width:calc(100% - 40px);
    margin: 0 auto 35px auto;
}
.about #feature .text{
    width:calc(100% - 40px);
    margin: 0 auto 0 auto;
}
.about #feature .featureArea {
    display: grid;
    grid-template-columns: 1fr;
    gap: 50px;
    margin: 40px auto 50px auto;
}
.about #feature .featureArea .featureBox{
    padding: 0;
}
.about #feature .featureArea .featureBox:nth-child(2)::before{
    display: none;
}
.about #feature .featureArea .featureBox:nth-child(2)::after{
    display: none;
}
.about #feature .featureArea .featureBox .thumb{
    padding-top: 32%;
}
.about #feature .featureArea .featureBox h4{
    height:auto;
    width:calc(100% - 40px);
    margin: 20px auto 20px auto;
}
.about #feature .featureArea .featureBox p{
    font-size:14px;
    width:calc(100% - 40px);
    margin: 0 auto 0 auto;
}
.about #feature .featureArea .featureBox p span{
    border-bottom:2px solid #FA5AE6;
}
.about #feature .btn001 a {
    border: none;
}
.about #feature .btn001 a::after{
    right: 32px;
    width: 32px;
    height: 9px;
}
.webp .about #feature .btn001 a::after{
    background: url("../common/images/icon_arrow_white.webp") no-repeat center center/contain;
}
.no-webp .about #feature .btn001 a::after{
    background: url("../common/images/icon_arrow_white.png") no-repeat center center/contain;
}
.webp .about #feature .btn001 a:hover::after{
    background: url("../common/images/icon_arrow_blue.webp") no-repeat center center/contain;
}
.no-webp .about #feature .btn001 a:hover::after{
    background: url("../common/images/icon_arrow_blue.png") no-repeat center center/contain;
}
.about #feature .btn001 a span {
    line-height: 1.5;
}
.about #benefit .benefitArea{
    grid-template-columns: 1fr;
    gap:50px;
    margin: 50px auto 45px auto;
}
.about #benefit .benefitArea .benefitBox{
    padding: 50px 30px 30px 30px;
}
.about #benefit .benefitArea .benefitBox span{
    font-size:16px;
    line-height: 50px;
    width:106px;
}
.about #benefit .benefitArea .benefitBox span b{
    font-size:26px;
    line-height: 50px;
}
.about #benefit .benefitArea .benefitBox h4{
    font-size:22px;
    margin-bottom: 12px;
    line-height: 1.4;
}
.about #benefit .btn001 a {
    border: none;
}
.about #benefit .btn001 a::after{
    right: 32px;
    width: 32px;
    height: 9px;
}
.webp .about #benefit .btn001 a::after{
    background: url("../common/images/icon_arrow_white.webp") no-repeat center center/contain;
}
.no-webp .about #benefit .btn001 a::after{
    background: url("../common/images/icon_arrow_white.png") no-repeat center center/contain;
}
.webp .about #benefit .btn001 a:hover::after{
    background: url("../common/images/icon_arrow_blue.webp") no-repeat center center/contain;
}
.no-webp .about #benefit .btn001 a:hover::after{
    background: url("../common/images/icon_arrow_blue.png") no-repeat center center/contain;
}
}

/*--------------------------------------
    contact
--------------------------------------*/

.contact .introBox{
    margin: 80px auto 80px auto;
}
.contact .introBox .text{
    text-align: center;
    line-height: 1.8;
    font-size:18px;
    font-weight: 500;
}
.contact .caution {
    position: relative;
    padding: 20px 20px 20px 100px;
    font-size: 14px;
    border: 1px solid rgba(5,5,5,0.2);
    background: #FFFFFF;
}
.contact .caution::before {
    content: "";
    display: inline-block;
    position: absolute;
    top: calc(50% - 23px);
    left: 20px;
    width: 47px;
    height: 47px;
    font-size: 31px;
    font-weight: bold;
    text-align: center;
    background:url("../common/images/icon_caution.webp") no-repeat center center/cover;
    color: #fff;
}
.contact .caution .comment {
    line-height: 1.8;
}
.contact .formBox{
    margin: 80px auto 120px auto;
}
.contact .formBox .text{
    margin-top: 50px;
    line-height: 1.8;
    font-size: 14px;
    font-weight: 500;
    text-align: center;
}
.contact .formBox .text a{
    color:#110B64;
    text-decoration: underline;
    font-weight: bold;
}
.contact table th {
    width: 22%;
}
.contact table td {
    width: 78%;
    line-height: 3;
}
.contact table tr:nth-child(5) td span span.wpcf7-list-item:nth-child(3) {
    margin-left: 0;
}
.contact table tr:nth-child(5) td span span.wpcf7-list-item:nth-child(2):after {
    content: "\d\a";
    white-space: pre;
}
.contact table tr th span.required{
    float: right;
    width: 49px;
    height: 22px;
    display: inline-block;
    color: #FFFFFF;
    text-align: center;
    line-height: 22px;
    font-size: 12px;
    font-weight: 500;
    background: #110B64;
    margin-top: 3px;
    margin-left: auto;
}
.contact table tr th span.free{
    float: right;
    width: 49px;
    height: 22px;
    display: inline-block;
    color: #FFFFFF;
    text-align: center;
    line-height: 22px;
    font-size: 12px;
    font-weight: 500;
    background: #C8CDD7;
    margin-top: 3px;
    margin-left: auto;
}
.contact table tr td input:focus,
.contact table tr td textarea:focus{
	outline:none !important;
}
.contact table tr td input[type="text"],
.contact table tr td input[type="email"],
.contact table tr td input[type="tel"],
.contact table tr td input[type="password"]{
	padding:10px;
	box-sizing: border-box;
	font-family: inherit;
	background: #FFFFFF;
	line-height: 1.5;
	width:100%;
    height:50px;
	border-radius: 4px;
    border:none;
}
.contact table tr td select{
	width:240px;
    padding:10px;
	box-sizing: border-box;
	font-family: inherit;
	background: #FFFFFF;
	line-height: 1.5;
    height:50px;
	border-radius: 4px;
    border:none;
}
.contact table tr td input[type="tel"]#zip{
	width:240px;
    margin-left: 5px;
    display: inline-block;
    margin-bottom: 10px;
}
.contact table tr td .wpcf7-list-item{
    display: inline;
    margin: 0 20px 0 0;
    line-height: 3;
}
.contact table tr td .wpcf7-list-item + .wpcf7-list-item {
    margin-left: 0px;
}
.contact table tr td input[type="radio"]{
	box-sizing: border-box;
	background: #FFFFFF;
	width:24px;
    height:24px;
	border-radius: 50%;
    border:1px solid #110B64;
    vertical-align: middle;
    -webkit-appearance: none;
    position: relative;
    margin-right: 5px;
}
.contact table tr td input[type="radio"]:checked::after{
    content: "";
	box-sizing: border-box;
	background: #110B64;
	width:18px;
    height:18px;
	border-radius: 50%;
    position: absolute;
    top:0;
    left:0;
    right:0;
    bottom:0;
    margin: auto;
}
.contact table tr td input[type="checkbox"]{
	box-sizing: border-box;
	background: #FFFFFF;
	width:24px;
    height:24px;
    border:1px solid #110B64;
    vertical-align: middle;
    -webkit-appearance: none;
    position: relative;
    margin-right: 5px;
}
.contact table tr td input[type="checkbox"]:checked::after{
    content: "";
	box-sizing: border-box;
	background: #110B64;
	width:18px;
    height:18px;
    position: absolute;
    top:0;
    left:0;
    right:0;
    bottom:0;
    margin: auto;
}
.contact table tr td .wpcf7-list-item-label{
    vertical-align: baseline;
    font-size: 16px;
}
.contact table tr:nth-child(5) td span.wpcf7-list-item:nth-child(3) {
    margin-left: 0;
}
.contact table tr:nth-child(5) td span.wpcf7-list-item:nth-child(2):after {
    content: "\d\a";
    white-space: pre;
}

.contact table tr td textarea{
	width:100%;
	height:240px;
	padding:10px;
	box-sizing: border-box;
	font-family: inherit;
	background: #FFFFFF;
	line-height: 1.5;
	border-radius: 4px;
    border:none;
}
.contact table tr td input::placeholder,
.contact table tr td textarea::placeholder{
	color:rgba(69,88,105,0.5);
}
.contact table tr td #buttonEye-password{
    opacity: 0;	
}	
.contact .button{
    display: flex;
    justify-content: center;
    flex-direction: row-reverse;
	width: 100%;
	height:72px;
	margin:50px auto 0;
	text-align: center;
}

.contact .button .rightBox{
    float: none;
	width:350px;
	height:72px;
	margin: 0 auto;
	box-sizing: border-box;
	position: relative;
    border-radius: 45px 45px 45px 45px;
    overflow: hidden;
}
.contact .mw_wp_form_preview .button .rightBox {
    margin: 0 30px;
}
.contact .button .rightBox input{
	display: block;
	text-align: center;
	border:2px solid #4E66D9;
	line-height: 68px;
	font-size:18px;
    color:#FFFFFF;
	font-weight: 700;
	transition: 0.3s;
	cursor:pointer;
	-webkit-appearance: none;
	width:100%;
	height:100%;
	box-sizing: border-box;
	font-family: inherit;
	position: relative;
    border-radius: 45px 45px 45px 45px;
    z-index: 999;
    background: none;
}
.contact .button .rightBox:hover input{
	opacity: 0.5;
}
.contact .button .rightBox::before{
    background: #4E66D9;
    content: "";
    width:100%;
    height:180px;
    position: absolute;
    top:auto;
    left:auto;
    right:0;
    bottom:0;
    border:1px solid #4E66D9;
    margin: auto auto auto auto;
    transform: skewY(-10deg) scale(1, 1);
    transform-origin: right bottom;
    transition: .25s cubic-bezier(0.45, 0, 0.55, 1);
}
.contact .button .rightBox:after{
	content: "";
    width: 25px;
    height: 7px;
	position: absolute;
	top:0;
	right: 38px;
    bottom:0;
    margin: auto;
    z-index: 999;
}
.webp .contact .button .rightBox:after{
    background: url("../common/images/icon_arrow_white_mini.webp") no-repeat center center/contain;
}
.no-webp .contact .button .rightBox:after{
    background: url("../common/images/icon_arrow_white_mini.png") no-repeat center center/contain;
}
.contact .button .rightBox:hover input{
    opacity: 1;
    color:#4E66D9;
}
.contact .button .rightBox:hover::before{
    transform: skewY(-20deg) scale(1, 0);
}
.webp .contact .button .rightBox:hover::after{
    background: url("../common/images/icon_arrow_blue_mini.webp") no-repeat center center/contain;
}
.no-webp .contact .button .rightBox:hover::after{
    background: url("../common/images/icon_arrow_blue_mini.png") no-repeat center center/contain;
}

.contact .button .leftBox {
    display: none;
}
.contact .mw_wp_form_preview .button .leftBox {
    display: block;
    margin: 0 30px;
}
.contact .button .leftBox{
    float: none;
	width:350px;
	height:72px;
	margin: 0 auto;
	box-sizing: border-box;
	position: relative;
    border-radius: 45px 45px 45px 45px;
    overflow: hidden;
}
.contact .button .leftBox input{
	display: block;
	text-align: center;
	border:2px solid #4E66D9;
	line-height: 68px;
	font-size:18px;
    color:#4E66D9;
	font-weight: 700;
	transition: 0.3s;
	cursor:pointer;
	-webkit-appearance: none;
	width:100%;
	height:100%;
	box-sizing: border-box;
	font-family: inherit;
	position: relative;
    border-radius: 45px 45px 45px 45px;
    z-index: 999;
    background: none;
}
.contact .button .leftBox:before {
    background: #4E66D9;
    content: "";
    width:100%;
    height:180px;
    position: absolute;
    top:0;
    left:0;
    right:auto;
    bottom:auto;
    border:1px solid #4E66D9;
    margin: auto auto auto auto;
    transform: skewY(-10deg) scale(1, 0);
    transform-origin: left top;
    transition: .25s cubic-bezier(0.45, 0, 0.55, 1);
    z-index: -1;
}
.contact .button .leftBox:after{
	content: "";
    width: 25px;
    height: 7px;
	position: absolute;
	top:0;
	left: 38px;
    bottom:0;
    margin: auto;
    z-index: 999;
    transform: scale(-1, 1);
}
.webp .contact .button .leftBox:after{
    background: url("../common/images/icon_arrow_blue_mini.webp") no-repeat center center/contain;
}
.no-webp .contact .button .leftBox:after{
    background: url("../common/images/icon_arrow_blue_mini.png") no-repeat center center/contain;
}
.contact .button .leftBox:hover input{
	opacity: 1;
    color:#FFFFFF;
}
.contact .button .leftBox:hover::before{
    transform: skewY(-10deg) scale(1, 1);
}
.contact .button .leftBox:hover::after{
    background: url("../common/images/icon_arrow_white_mini.webp") no-repeat center center/contain;
}
.contact .button .leftBox:hover::after{
    background: url("../common/images/icon_arrow_white_mini.png") no-repeat center center/contain;
}


@media (max-width: 1100px) {
    .contact .introBox .text{
        font-size:16px;
    }
    .contact table th {
        width: 25vw;
    }
    .contact table td {
        width: 50vw;
    }
    .contact table tr:nth-child(5) td span.mwform-radio-field {
        margin-left: 0;
    }
    .contact table tr:nth-child(5) td span.mwform-radio-field:after {
        content: "\d\a";
        white-space: pre;
    }
    .contact table tr:nth-child(6) td span.mwform-radio-field:nth-child(3) {
        margin-left: 0;
    }
    .contact table tr:nth-child(6) td span.mwform-radio-field:nth-child(2):after {
        content: "\d\a";
        white-space: pre;
    }
    .contact table tr:nth-child(7) td span.mwform-radio-field:nth-child(4) {
        margin-left: 0;
    }
    .contact table tr:nth-child(7) td span.mwform-radio-field:nth-child(3):after {
        content: "\d\a";
        white-space: pre;
    }
    .contact table tr:nth-child(5) td span.wpcf7-list-item:nth-child(2) {
        margin-left: 0;
    }
    .contact table tr:nth-child(5) td span.wpcf7-list-item:nth-child(1):after {
        content: "\d\a";
        white-space: pre;
    }
    .contact table tr:nth-child(6) td span.wpcf7-list-item:nth-child(3) {
        margin-left: 0;
    }
    .contact table tr:nth-child(6) td span.wpcf7-list-item:nth-child(2):after {
        content: "\d\a";
        white-space: pre;
    }
    .contact table tr td .wpcf7-list-item-label{
        font-size:1.6vw;
    }
}
@media (max-width: 768px) {
    .contact .introBox {
        margin: 40px auto;
    }
    .contact .introBox .text {
        font-size: 14px;
        text-align: left;
    }
    .contact .caution {
        padding: 12px 12px 12px 55px;
        font-size: 12px;
    }
    .contact .caution::before {
        top: calc(50% - 15px);
        left: 12px;
        width: 31px;
        height: 31px;
        font-size: 20px;
    }
    .contact .formBox {
        margin: 60px auto 80px;
    }
    .contact .formBox .text{
        text-align: left;
        margin-top: 20px;
    }
    .contact table th {
        width: 100%;
    }
    .contact table td {
        width: 100%;
    }
    .contact table tr td .wpcf7-list-item-label{
        font-size: 14px;
    }
    .contact .mw_wp_form table tr td span.mwform-radio-field {
        margin-left: 0;
    }
    .contact table tr td span.mwform-radio-field::after {
        content: "\d\a";
        white-space: pre;
    }
    .contact table tr:nth-child(5) td span.wpcf7-list-item,
    .contact table tr:nth-child(6) td span.wpcf7-list-item,
    .contact table tr:nth-child(7) td span.wpcf7-list-item {
        margin-left: 0;
    }
    .contact table tr:nth-child(5) td span.wpcf7-list-item::after,
    .contact table tr:nth-child(6) td span.wpcf7-list-item::after,
    .contact table tr:nth-child(7) td span.wpcf7-list-item::after {
        content: "\d\a";
        white-space: pre;
    }
    .contact .button{
        width:100%;
        height:auto;
        margin:40px auto 0;
    }
    .contact .button .rightBox p {
        width: 100%;
        height: 52px;
        max-width: 350px;
    }
    .contact .button .rightBox,
    .contact .button .leftBox {
        width: 60%;
        height: 52px;
        max-width: 350px;
    }
    .contact .mw_wp_form_preview .button .rightBox,
    .contact .mw_wp_form_preview .button .leftBox {
        margin: 0 10px;
    }
    .contact .button .rightBox input,
    .contact .button .leftBox input {
        font-size: 14px;
        line-height: 1;
    }
    .webp .contact .button .rightBox:after {
        right: 20px;
        width: 20px;
        height: 5px;
    }
    .webp .contact .button .rightBox:after{
        background: url("../common/images/icon_arrow_white_sp.webp") no-repeat center center/contain;
    }
    .no-webp .contact .button .rightBox:after{
        background: url("../common/images/icon_arrow_white_sp.png") no-repeat center center/contain;
    }
    .webp .contact .button .rightBox:hover::after{
        background: url("../common/images/icon_arrow_blue_sp.webp") no-repeat center center/contain;
    }
    .no-webp .contact .button .rightBox:hover::after{
        background: url("../common/images/icon_arrow_blue_sp.png") no-repeat center center/contain;
    }
    .contact .formBox .btn001 a::after {
        width: 25px;
        height: 7px;
    }
    .webp .contact .formBox .btn001 a::after {
        background: url("../common/images/icon_arrow_white_mini.webp") no-repeat center center/contain;
    }
    .no-webp .contact .formBox .btn001 a::after {
        background: url("../common/images/icon_arrow_white_mini.png") no-repeat center center/contain;
    }
    .webp .contact .formBox .btn001 a:hover::after {
        background: url("../common/images/icon_arrow_blue_mini.webp") no-repeat center center/contain;
    }
    .no-webp .contact .formBox .btn001 a:hover::after {
        background: url("../common/images/icon_arrow_blue_mini.png") no-repeat center center/contain;
    }
}

/*--------------------------------------
    deal
--------------------------------------*/

.deal .box{  
    margin: 80px auto 80px auto;
}
.deal h3{
    position: relative;
    padding: 0 0 0 26px;
    margin-bottom: 30px;
    font-size:25px;
    font-weight: bold;
    line-height: 36px;
}
.deal h3::before{
    width:12px;
    height:29px;
    background: #4E66D9;
    content: "";
    position: absolute;
    top: 3px;
    left: 0;
    right: auto;
    bottom: 0;
    margin: auto auto auto auto;
}
.deal .text{
    line-height: 1.8;
}
.deal .box li{
    margin-top: 10px;
}
@media (max-width: 768px) {
    .deal .box{  
        margin: 50px auto 50px auto;
    }
    .deal h3{
        font-size:18px;
        line-height: 1.5;
        margin-bottom: 20px;
        padding: 0 0 0 16px;
    }
    .deal h3::before{
        width:6px;
        height:20px;
    }
}

/*--------------------------------------
    sitepolicy
--------------------------------------*/

.sitepolicy .box{  
    margin: 80px auto 80px auto;
}
.sitepolicy .box ul{
    margin-top: 30px;
}
.sitepolicy .box ul li::before{
    content: "・ ";
}
.sitepolicy .box .text {
    line-height: 1.8;
}
.sitepolicy .box .text .link {
    color: #110B64;
    text-decoration: underline;
    font-weight: bold;
} 
@media (max-width: 768px) {
.sitepolicy .box{  
    margin: 50px auto 50px auto;
}
.sitepolicy .box ul{
    margin-top: 20px;
}
}

/*--------------------------------------
    parts
--------------------------------------*/

.parts section{
    margin-bottom: 165px;
}
.parts section:last-child{
    margin-bottom: 200px;
}
.parts .visualArea{
    margin-bottom: 65px;
}
.parts .anchorLink,
.parts .box{
    margin-bottom: 75px;
}
.parts .column2{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap:72px;
}
@media (max-width: 768px) {
    .parts section{
        margin-bottom: 50px;
    }
    .parts section:last-child{
        margin-bottom: 80px;
    }
    .parts .visualArea{
        margin-bottom: 50px;
    }
    .parts .anchorLink,
    .parts .box{
        margin-bottom: 40px;
    }
    .parts .column2{
        display: grid;
        grid-template-columns: 1fr;
        gap:30px;
    }
}

