@charset "UTF-8";
@supports (-webkit-touch-callout:none){
    html{
        height:-webkit-fill-available
    }
    body{
        min-height:100vh;
        min-height:-webkit-fill-available
    }
}
body{
    overflow-y:scroll
}
body.fixed{
    position:fixed;
    width:100%;
    height:100%;
    left:0
}
html{
    font-size:62.5%
}
body{
    color:#000;
    font-size:1.6rem;
    line-height:1.2;
    font-family:"Noto Sans JP",sans-serif;
    font-optical-sizing:auto;
    font-weight:400;
    font-feature-settings:"palt";
    word-break:normal;
    overflow-wrap:break-word;
    position:relative;
    margin:0;
    overflow-x:hidden
}
body *{
    box-sizing:border-box
}
body.preload *{
    transition:none!important
}
::after,::before{
    box-sizing:border-box
}
input,select,textarea{
    font-size:16px
}
input:-ms-input-placeholder,select:-ms-input-placeholder,textarea:-ms-input-placeholder{
    font-family:"Noto Sans JP",sans-serif;
    color:#000;
    opacity:.6;
    font-size:1.6rem;
    line-height:1.875;
    letter-spacing:.1em
}
input::placeholder,select::placeholder,textarea::placeholder{
    font-family:"Noto Sans JP",sans-serif;
    color:#000;
    opacity:.6;
    font-size:1.6rem;
    line-height:1.875;
    letter-spacing:.1em
}
h1,h2,h3,h4,h5,h6,p{
    margin:0;
    padding:0;
    border:0;
    font-style:normal;
    vertical-align:baseline
}
h1,h2,h3,h4,h5,h6{
    color:#000;
    font-weight:400
}
dd,dl,dt{
    margin:0;
    padding:0
}
a{
    color:#000;
    transition:all .3s ease;
    text-decoration:none
}
a[href^="tel:"]{
    pointer-events:auto;
    text-decoration:none!important
}
a i{
    text-decoration:none
}
a img,a::after,a::before{
    transition:all .3s ease
}
img{
    max-width:100%;
    height:auto;
    vertical-align:bottom
}
em{
    font-style:italic
}
ol{
    margin:0;
    padding:0
}
ol li{
    margin:0;
    padding:0
}
ul{
    margin:0;
    padding:0;
    list-style:none
}
ul li{
    margin:0;
    padding:0
}
table{
    border-spacing:0
}
table td{
    position:relative;
    z-index:1;
    padding:0
}
table td.sp{
    z-index:2
}
table th{
    padding:0
}
figure{
    margin:0
}
br.pc{
    display:none
}
.color-key{
    color:#ffe16a
}
.color-sub{
    color:#0071bc
}
.color-accent{
    color:#ff813e
}
.bg-key{
    background-color:#ffe16a
}
.bg-sub{
    background-color:#0071bc
}
.bg-accent{
    background-color:#ff813e
}
.bg-gray{
    background-color:#eff0f2
}
.header{
    position:fixed;
    z-index:99;
    top:1rem;
    right:0;
    width:100%;
    height:6rem;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding-left:1.5rem
}
.header__logo{
    opacity:0;
    transition:all .3s;
    pointer-events:none
}
.header__logo img{
    width:16rem
}
.header__logo.is-appeared{
    opacity:1;
    pointer-events:all
}
.header__link{
    position:relative;
    width:16.8rem;
    height:5.4rem;
    padding-top:1.5rem;
    padding-left:2.4rem;
    border-left:.2rem solid #000;
    border-top:.2rem solid #000;
    border-bottom:.2rem solid #000;
    border-radius:1.2rem 0 0 1.2rem;
    background-color:#fff;
    font-weight:700;
    font-size:1.6rem;
    line-height:1.2
}
.header__link::before{
    content:"";
    position:absolute;
    top:50%;
    right:1.2rem;
    translate:0 -50%;
    background:url(../images/header_link_icon.svg) no-repeat center/contain;
    rotate:-90deg;
    width:1.6rem;
    aspect-ratio:1
}
.footer{
    padding:6rem 2rem 3rem
}
.footer__inner{
    display:flex;
    flex-direction:column;
    align-items:center
}
.footer__logo img{
    width:20rem
}
.footer__list{
    margin-top:2rem;
    display:grid;
    grid-template-columns:1fr;
    gap:1rem
}
.footer__list-link{
    text-align:center;
    display:block;
    font-weight:400;
    font-size:1.4rem;
    line-height:1.8;
    letter-spacing:.05em
}
.footer__copyright{
    margin-top:2rem
}
.footer__copyright small{
    font-weight:400;
    font-size:1.2rem;
    line-height:1.8;
    letter-spacing:.05em
}
.section-ttl-wrap{
    display:grid;
    place-content:center;
    place-items:center;
    gap:.5rem
}
.section-ttl{
    font-weight:700;
    font-size:3.2rem;
    line-height:1.2;
    letter-spacing:.07em
}
.section-ttl-en{
    position:relative;
    font-family:"Plus Jakarta Sans",sans-serif;
    text-transform:uppercase;
    font-weight:700;
    font-size:1rem;
    line-height:1.2;
    letter-spacing:.07em
}
.section-ttl-en::after,.section-ttl-en::before{
    content:"";
    position:absolute;
    top:50%;
    translate:0 -50%;
    width:1rem;
    height:.2rem;
    background-color:#0071bc
}
.section-ttl-en::before{
    left:-1.5rem
}
.section-ttl-en::after{
    right:-1.5rem
}
.section-bgwrap{
    background-color:#ffe16a;
    padding:2rem 2rem
}
.common-layout{
    border-radius:2rem;
    background-color:#fff
}
.common{
    display:flex;
    flex-direction:column;
    padding-inline:2rem
}
.common__ttl-wrap{
    flex:1 0 auto
}
.common__ttl{
    font-weight:700;
    font-size:3.2rem;
    line-height:1.2;
    letter-spacing:.07em
}
.common__ttl-en{
    position:relative;
    font-family:"Plus Jakarta Sans",sans-serif;
    text-transform:uppercase;
    font-weight:700;
    font-size:1rem;
    line-height:1.2;
    letter-spacing:.07em;
    margin-top:.6rem;
    margin-left:1.5rem
}
.common__ttl-en::before{
    content:"";
    position:absolute;
    top:50%;
    left:-1.5rem;
    translate:0 -50%;
    width:1rem;
    height:.2rem;
    background-color:#0071bc
}
.common__desc{
    margin-top:1.5rem;
    font-weight:400;
    font-size:1.6rem;
    line-height:1.6;
    letter-spacing:.07em
}
.common-catch{
    padding-inline:2rem;
    font-weight:700;
    font-size:2.4rem;
    line-height:1.3;
    letter-spacing:.05em;
    margin-top:3.5rem
}
.animation-img-wrap{
    position:relative;
    width:34.5rem;
    height:32.6rem;
    z-index:2
}
.animation-img-wrap__moving-cnt{
    position:absolute;
    top:5.2rem;
    left:50%;
    translate:-50% 0;
    z-index:2
}
.animation-img-wrap .static{
    position:absolute;
    top:6rem;
    top:0;
    left:50%;
    translate:-50% 0;
    z-index:3;
    width:29.6rem
}
.animation-img-wrap .animation-svg-wrap{
    text-align:center
}
.animation-img-wrap .animation-svg-wrap .mysvg1{
    width:25.2rem;
    height:4rem
}
.animation-img-wrap .animation-svg-wrap .mysvg2{
    width:4.6rem;
    height:11rem
}
.animation-img-wrap .dot{
    fill:#ff813e
}
.animation-img-wrap .path{
    stroke:#ff813e;
    stroke-width:3.42;
    fill:none
}
.animation-img-wrap .dot2{
    fill:#0071bc
}
.animation-img-wrap .path2{
    stroke:#0071bc;
    stroke-width:3.42;
    fill:none
}
.animation-img-wrap .hidden{
    display:none
}
.animation-img-wrap .monitor{
    margin-inline:auto;
    width:16rem;
    aspect-ratio:323/286;
    position:relative;
    top:-3.5rem
}
.animation-img-wrap .monitor-1{
    width:100%;
    height:auto;
    position:absolute;
    top:0;
    left:0;
    z-index:1
}
.animation-img-wrap .monitor-2{
    opacity:0;
    width:100%;
    height:auto;
    position:absolute;
    top:0;
    left:0;
    z-index:2
}
.animation-img-wrap .pop-wrap{
    position:absolute;
    top:-5rem;
    left:-7.5rem;
    z-index:3;
    width:10rem;
    height:9.7rem
}
.animation-img-wrap .pop{
    aspect-ratio:177/173;
    width:11rem;
    height:auto;
    position:absolute;
    bottom:0;
    right:0;
    opacity:0
}
.animation-img-wrap .pop.is-show{
    width:17.7rem;
    transition:all .3s ease;
    opacity:1
}
.animation-img-wrap .monitor-animate{
    animation:monitorMove .2s ease-in-out
}
@keyframes monitorMove{
    0%{
        transform:translateY(0)
    }
    50%{
        transform:translateY(-10px)
    }
    100%{
        transform:translateY(0)
    }
}
.mv{
    overflow:hidden;
    position:relative;
    height:67.3rem;
    padding-inline:2rem
}
.mv__circle-img{
    position:absolute;
    top:9.4rem;
    left:50%;
    translate:-50% 0;
    z-index:1;
    width:86.9rem;
    height:86.9rem
}
.mv__circle-img img{
    width:86.9rem
}
.mv__inner{
    position:relative;
    height:100%
}
.mv__ttl-wrap{
    position:absolute;
    top:6.6rem;
    left: 50%;
    transform: translateX(-50%);
    width: max-content;
    z-index: 2;
}
.mv__tag{
    width:11.4rem;
    height:2.8rem;
    display:flex;
    place-content:center;
    place-items:center;
    background-color:#0071bc;
    border-radius:.5rem;
    font-weight:700;
    color:#fff;
    font-size:1.6rem;
    line-height:1.6;
    letter-spacing:.07em
}
.mv__ttl{
    margin-top:1rem;
    font-size: clamp(2.5rem,3rem + 1.25vw,3.5rem);
    font-weight: 900;
    line-height: 1.5;
    letter-spacing: .05em;
}
.mv__ttl em{
    font-style: normal;
    font-size: clamp(3rem,3.5rem + 1.25vw,4.5rem);
}
.mv__ttl .blue{
    color: #0071bc;
    font-size: clamp(3.2rem,3.5rem + 1.25vw,4.5rem);
}
.mv__ttl .empty{
    display: inline-block;
    width: 13rem;
}
.mv__ttl img{
    width:32rem
}
.mv__lottie-text{
    position:absolute;
    bottom:-2rem;
    left:11.5rem;
    width:13rem;
    height:9rem
}
.mv__animation-wrap{
    position:absolute;
    bottom:.5rem;
    left:50%;
    translate:-50% 0
}
.mv__material{
    position:absolute;
    bottom:2.5rem;
    right:1rem;
    z-index:4
}
.mv__material img{
    width:10.1rem
}
.slick-outer-wrap{
    position:relative
}
.slick-outer-wrap__material{
    position:absolute;
    top:-9.2rem;
    left:.5rem;
    z-index:1
}
.slick-outer-wrap__material img{
    width:16rem
}
.slick-outer-wrap__material .achieve{
    position: absolute;
    width: 100%;
    left: 50%;
    top: 45%;
    transform: translate(-50%,-50%);
    color: #ff813e;
    font-size: clamp(1.6rem,2vw,2.5rem);
    font-weight: bold;
    text-align: center;
}
.slick-outer-wrap__material .achieve span{
    display: block;
}
.slick-outer-wrap__material .achieve .lead{
    color: #000;
    font-size: 90%;
}
.slick-outer-wrap__material .achieve em{
    font-family: "Plus Jakarta Sans",sans-serif;;
    font-style: normal;
    font-size: 180%;
}
.slick-wrap{
    overflow:hidden
}
.slick-wrap__img{
    height:6rem
}
.slick-wrap__img img{
    width:auto;
    height:100%;
    aspect-ratio:207/120
}
.points{
    overflow:hidden
}
.points__onbg-wrap{
    background:#f6f7f9 url(../images/bg_round_sp.png) no-repeat center top/cover;
    position:relative;
    display:flex;
    flex-direction:column;
    align-items:center;
    padding:5rem 2rem
}
.points__graybg-wrap{
    background-color:#f6f7f9;
    display:flex;
    flex-direction:column;
    align-items:center;
    padding:4rem 2rem 19.6rem
}
.points__item{
    display:flex;
    align-items:center;
    flex-direction:column-reverse;
    gap:2rem
}
.points__item.m--reverse{
    flex-direction:column-reverse
}
.points__item-circle{
    position:relative
}
.points__item-circle img{
    position:absolute;
    top:50%;
    left:50%;
    translate:-50% -50%;
    z-index:1;
    width:27.9rem;
    height:auto;
    aspect-ratio:559/539
}
.points__item-cost{
    position:relative;
    overflow:hidden
}
.points__item-cost.is-appeared>.txt{
    opacity:1
}
.points__item-cost>.txt{
    background-color:#fff;
    position:absolute;
    top:calc(50% - 4rem);
    left:50%;
    z-index:2;
    translate:-50% -50%;
    -ms-writing-mode:tb-rl;
    writing-mode:vertical-rl;
    font-feature-settings:initial;
    font-weight:700;
    font-size:1.9rem;
    line-height:1.1;
    letter-spacing:.05em;
    opacity:0;
    transition:all .3s 1.1s
}
.points__item-box{
    flex:0 1 auto;
    position:relative;
    background-color:#fff;
    border-radius:2rem;
    padding:3.5rem 3rem
}
.points__item-tag{
    font-family:"Plus Jakarta Sans",sans-serif;
    position:absolute;
    top:-1rem;
    right:-.9rem;
    display:flex;
    gap:.7rem;
    align-items:center;
    justify-content:center;
    padding:.5rem 1.2rem;
    background-color:#000;
    border-radius:.6rem;
    color:#fff
}
.points__item-tag>.point{
    font-family:"Plus Jakarta Sans",sans-serif;
    font-weight:500;
    font-size:1rem;
    line-height:1.8;
    letter-spacing:.1em
}
.points__item-tag>.num{
    font-family:"Plus Jakarta Sans",sans-serif;
    font-weight:500;
    font-size:1.5rem;
    line-height:1.8
}
.points__ttl{
    display:flex;
    flex-direction:column
}
.points__ttl>.txt_32{
    font-weight:700;
    font-size:1.4rem;
    line-height:1.6;
    letter-spacing:.1em
}
.points__ttl>.txt_40{
    font-weight:700;
    font-size:2.4rem;
    line-height:1.3;
    letter-spacing:.1em
}
.points__txt{
    text-align:justify;
    margin-top:1.5rem;
    font-weight:400;
    font-size:1.6rem;
    line-height:1.3;
    letter-spacing:.07em
}
.points__img{
    position:absolute;
    z-index:2
}
.points__img.m--p01{
    bottom:-40rem;
    right:-1rem
}
.points__img.m--p01 img{
    width:9rem
}
.points__img.m--p02{
    bottom:-35.5rem;
    left:0
}
.points__img.m--p02 img{
    width:12.3rem
}
.points__img.m--p03{
    bottom:-42rem;
    right:0
}
.points__img.m--p03 img{
    width:9.5rem
}
.example{
    position:relative;
    background-color:#eff0f2;
    padding:5rem 2rem 2rem
}
.example__ttl-img{
    position:absolute;
    top:-6.1rem;
    left:50%;
    translate:-50% 0
}
.example__ttl-img img{
    width:16rem
}
.example__inline-box{
    display:flex;
    flex-direction:column;
    gap:1.5rem;
    align-items:center;
    background-color:#fff;
    margin-top:2rem;
    width:100%;
    border-radius:2rem;
    padding:6.5rem 2rem 8rem
}
.example__sub-ttl{
    font-weight:700;
    font-size:2rem;
    line-height:1.3;
    letter-spacing:.1em
}
.example__box-img img{
    width:28.8rem
}
.voice{
    padding:7rem 0 5rem
}
.voice__contents-wrap{
    position:relative;
    margin-top:2.5rem;
    border-top:1px solid #000;
    padding:4rem 2rem 0
}
.voice__material{
    position:absolute;
    top:-8.2rem;
    right:2.8rem
}
.voice__material img{
    width:10rem
}
.voice__contents{
    display:grid;
    grid-template-columns:1fr;
    gap:4rem
}
.voice__item{
    display:flex;
    flex-direction:row-reverse;
    gap:1.7rem
}
.voice__txt{
    position:relative;
    background-color:#0071bc;
    border-radius:1rem;
    padding:3rem;
    min-height:25.1rem
}
.voice__txt::before{
    content:"";
    position:absolute;
    top:1.9rem;
    left:-1.4rem;
    width:1.9rem;
    height:1.6rem;
    background-color:inherit;
    clip-path:polygon(0 0,100% 0,100% 100%);
    transform:5deg
}
.voice__txt>.txt{
    font-weight:500;
    color:#fff;
    font-size:1.6rem;
    line-height:1.6;
    letter-spacing:.03em
}
.voice__txt>.name{
    display:block;
    font-weight:500;
    font-size:1.4rem;
    line-height:1.8;
    letter-spacing:.05em;
    color:rgba(255,255,255,.5);
    margin-top:1rem
}
.voice__img{
    flex-shrink:0
}
.voice__img img{
    width:6.9rem;
    aspect-ratio:1
}
.benefits{
    position:relative;
    margin-top:2rem;
    padding-block:7rem 5rem;
    padding-inline:2rem
}
.benefits__contents-wrap{
    position:relative;
    margin-top:1rem
}
.benefits__outer-material{
    position:absolute;
    top:-29rem;
    right:-4rem;
    width:16rem;
    height:9rem
}
.benefits__outer-material img{
    transform: scale(-1, 1);
}
.benefits__outer-material .achieve{
    position: absolute;
    width: 100%;
    left: 50%;
    top: 55%;
    transform: translate(-50%,-50%);
    color: #ff813e;
    font-size: clamp(1.4rem,1.8vw,3.2rem);
    font-weight: bold;
    text-align: center;
}
.benefits__outer-material .achieve span{
    display: block;
}
.benefits__outer-material .achieve .lead{
    color: #000;
    font-size: 90%;
}
.benefits__outer-material .achieve em{
    font-family: "Plus Jakarta Sans",sans-serif;;
    font-style: normal;
    font-size: 180%;
}
.benefits__contents{
    border:.2rem solid #000;
    padding:0 3rem;
    background-color:#fff;
    display:grid;
    grid-template-columns:1fr
}
.benefits__item{
    position:relative;
    padding:4rem 0;
    min-height:20.2rem;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:2rem
}
.benefits__item.m--border::after,.benefits__item.m--border::before{
    content:"";
    position:absolute;
    top:0;
    width:100%;
    height:.2rem;
    background:linear-gradient(to right,#000,#000 .4rem,transparent .4rem) repeat-x left bottom/.8rem .2rem
}
.benefits__item.m--border::before{
    left:0
}
.benefits__item.m--border::after{
    top:auto;
    bottom:0
}
.benefits__ttl{
    display:flex;
    align-items:center;
    background-color:#ffe16a;
    font-weight:500;
    font-size:2rem;
    line-height:1.2;
    letter-spacing:.05em;
    padding-inline:2rem;
    border-radius:11.1rem
}
.benefits__ttl>.fz13{
    font-weight:500;
    font-size:1.4rem;
    line-height:1.2;
    letter-spacing:.05em
}
.benefits__ttl>.fz28{
    font-weight:500;
    font-size:2rem;
    line-height:1.2;
    letter-spacing:.05em
}
.benefits__benefit>.num{
    font-family:"Plus Jakarta Sans",sans-serif;
    font-weight:700;
    font-size:6rem;
    line-height:1
}
.benefits__benefit .unit{
    font-weight:700;
    font-size:2.5rem;
    line-height:1
}
.benefits__desc{
    font-weight:400;
    font-size:1.6rem;
    line-height:1.6;
    letter-spacing:.05em;
    margin-top:-.6rem
}
.benefits__material{
    position:absolute;
    top:25.4rem;
    right:2rem
}
.benefits__material img{
    width:10rem
}
.cases{
    margin-top:2rem;
    padding-top:7rem
}
.cases__contents-wrap{
    margin-top:4.5rem;
    border-top:1px solid #000
}
.cases__contents{
    display:grid;
    grid-template-columns:1fr
}
.cases__item{
    position:relative;
    display:flex;
    flex-direction:column;
    padding:2rem 2rem 4rem
}
.cases__item:last-of-type{
    border-top:1px solid #000
}
.cases__num{
    position:absolute;
    top:.8rem;
    right:.8rem;
    display:grid;
    place-content:center;
    place-items:center;
    background-color:#0071bc;
    border-radius:100vmax;
    width:5.8rem;
    aspect-ratio:1
}
.cases__num>.case{
    color:#fff;
    font-family:"Plus Jakarta Sans",sans-serif;
    font-weight:400;
    text-transform:uppercase;
    font-size:1rem;
    line-height:1;
    letter-spacing:.05em
}
.cases__num>.num{
    color:#fff;
    font-family:"Plus Jakarta Sans",sans-serif;
    font-weight:400;
    font-size:1.9rem;
    line-height:1;
    letter-spacing:.05em
}
.cases__about{
    text-align:center;
    color:#ff813e;
    font-weight:500;
    font-size:2.4rem;
    line-height:1.3;
    letter-spacing:.05em;
    margin-top:2rem;
    order:1
}
.cases__desc-wrap{
    margin-top:2rem;
    order:2
}
.cases__desc{
    font-weight:400;
    font-size:1.6rem;
    line-height:1.6;
    letter-spacing:.03em
}
.cases__desc-name{
    margin-top:1rem;
    font-weight:400;
    font-size:1.4rem;
    line-height:1.6;
    letter-spacing:.03em;
    color:rgba(0,0,0,.5)
}
.cases__img{
    order:0
}
.cases__img img{
    width:100%;
    aspect-ratio:668/406
}
.support{
    margin-top:2rem;
    padding:7rem 2rem 5rem
}
.support__contents{
    display:flex;
    flex-direction:column;
    gap:4rem
}
.support__catch{
    margin-top:3.3rem;
    font-weight:700;
    font-size:2.4rem;
    line-height:1.3;
    letter-spacing:.05em
}
.support__desc{
    margin-top:1rem;
    font-weight:400;
    font-size:1.6rem;
    line-height:1.6;
    letter-spacing:.03em
}
.support__note{
    margin-top:1.5rem;
    font-weight:400;
    font-size:1.4rem;
    line-height:1.6
}
.support__img-wrap img{
    width:33.4rem
}
.price{
    position:relative;
    background-color:#eff0f2;
    padding:21rem 2rem 10rem;
    clip-path:polygon(0 0,100% 0,100% 96.7%,50% 100%,0 96.7%)
}
.price__over-wrap{
    position:relative
}
.price__material{
    position:absolute;
    z-index:2;
    top:6.6rem;
    left:50%;
    translate:-50% 0
}
.price__material img{
    width:13.6rem
}
.price__desc{
    margin:3.5rem auto 0;
    width:-moz-fit-content;
    width:fit-content;
    font-weight:700;
    font-size:2rem;
    line-height:1.3;
    letter-spacing:.1em
}
.price__contents-inner{
    margin-top:1.5rem
}
.price__inline-box{
    display:grid;
    grid-template-columns:1fr;
    gap:3rem
}
.price__box-item{
    position:relative;
    max-width:45rem;
    width:100%;
    padding:3rem 2rem;
    background-color:#fff;
    border-radius:2rem;
    display:flex;
    flex-direction:column;
    align-items:center
}
.price__box-item:nth-of-type(2)::before,.price__box-item:nth-of-type(3)::before{
    content:"";
    position:absolute;
    top:-2.5rem;
    left:50%;
    translate:-50% 0;
    background:url(../images/price_plus.svg) no-repeat center/contain;
    width:2rem;
    aspect-ratio:1
}
.price__box-item:nth-of-type(4){
    border:.4rem solid #ff813e
}
.price__box-item:nth-of-type(4)::before{
    content:"";
    position:absolute;
    top:-3rem;
    left:50%;
    translate:-50% 0;
    background:url(../images/price_equal_sp.svg) no-repeat center/contain;
    width:1.4rem;
    height:2.1rem
}
.price__box-txt{
    text-align:center;
    font-weight:400;
    font-size:2rem;
    line-height:1.4;
    letter-spacing:.05em
}
.price__box-txt:not(:has(br)){
    margin-top:.3rem
}
.price__box-num{
    margin-top:.6rem;
    white-space:nowrap
}
.price__box-num.m--minus{
    margin-top:.6rem
}
.price__box-num:has(.zero){
    margin-top:.6rem
}
.price__box-num:has(.sum){
    margin-top:.6rem
}
.price__box-num>.num{
    font-family:"Plus Jakarta Sans",sans-serif;
    font-weight:700;
    font-size:5rem;
    line-height:1
}
.price__box-num>.num.zero{
    font-size:7rem
}
.price__box-num>.unit{
    font-weight:700;
    font-size:2rem;
    line-height:1
}
.price__box-note{
    margin-top:.5rem;
    font-weight:400;
    font-size:1.4rem;
    letter-spacing:.05em;
    line-height:1.6
}
.price__note{
    margin-top:1rem;
    font-weight:400px;
    font-size:1.4rem;
    line-height:2;
    letter-spacing:.03em
}
.faq{
    background-color:#eff0f2;
    padding:8.8rem 2rem 15rem;
    clip-path:polygon(0 0,50% 4.3%,100% 0,100% 100%,0 100%)
}
.faq__ttl{
    width:-moz-fit-content;
    width:fit-content;
    margin-inline:auto
}
.faq__list-wrap{
    margin-top:3rem
}
.faq__tab-menu{
    height:6rem;
    width:28rem;
    margin-inline:auto;
    position:relative
}
.faq__tab-initial{
    cursor:pointer
}
.faq__tab-initial>.txt{
    position:relative;
    height:6rem;
    font-size:1.4rem;
    line-height:1.5;
    letter-spacing:.05em;
    display:grid;
    place-items:center;
    padding-inline:3rem 6rem
}
.faq__tab-initial>.js-current{
    position:relative;
    justify-content:left
}
.faq__tab-initial>.js-current::before{
    content:"";
    position:absolute;
    top:50%;
    right:0;
    transform:translate(0,-50%);
    width:4rem;
    height:6rem;
    background:#000 url(../images/faq_tab_icon.svg) no-repeat center/1.2rem .8rem
}
.faq__tab-initial>.js-current.is-active::before{
    transform:translate(0,-50%) scale(1,-1)
}
.faq__tab-menu-list{
    position:relative;
    display:grid;
    grid-template-columns:1fr;
    height:auto
}
.faq__tab-menu-item{
    height:6rem;
    gap:.4rem;
    background-color:#fff;
    cursor:pointer;
    font-size:1.4rem;
    line-height:1.5;
    letter-spacing:.05em;
    padding-inline:3rem;
    display:grid;
    place-content:center;
    justify-content:left
}
.faq__tab-panel{
    margin-top:3rem;
    transition:all .3s
}
.faq__panel-box{
    display:none
}
.faq__panel-box.is-show{
    display:block
}
.faq__contents{
    position:relative;
    background-color:#fff;
    margin-top:3rem;
    padding:2.6rem 2rem 2.6rem 4rem;
    border:.3rem solid transparent;
    border-radius:2rem;
    cursor:pointer
}
.faq__contents.is-open{
    border-color:#ffe16a
}
.faq__question{
    position:relative;
    font-size:1.6rem;
    font-weight:500;
    line-height:1.6;
    letter-spacing:.05em;
    padding-right:3rem
}
.faq__question::before{
    font-family:"Plus Jakarta Sans",sans-serif;
    content:"Q";
    position:absolute;
    top:-4.8rem;
    left:-5.6rem;
    font-size:1.9rem;
    font-weight:700;
    line-height:1;
    letter-spacing:.05em;
    width:5.6rem;
    aspect-ratio:1;
    border-radius:100vmax;
    background-color:#ffe16a;
    display:grid;
    place-content:center
}
.faq__question::after{
    content:"";
    position:absolute;
    top:50%;
    right:0;
    translate:0 -50%;
    background:url(../images/faq_arrow.svg) no-repeat center/contain;
    width:1.7rem;
    height:1.9rem
}
.faq__question.is-open::after{
    background:url(../images/faq_arrow_active.svg) no-repeat center/contain
}
.faq__answer-wrap{
    transition:all .3s;
    opacity:0;
    visibility:hidden
}
.faq__answer-wrap.is-open{
    opacity:1;
    visibility:visible
}
.faq__answer-inner{
    margin-top:2rem
}
.faq__answer{
    position:relative;
    font-size:1.6rem;
    font-weight:400;
    line-height:1.6;
    letter-spacing:.1em
}
.cta{
    position:relative;
    background-color:#0071bc;
    padding:4rem 2rem 3rem
}
.cta__material{
    position:absolute;
    top:-11rem;
    left:50%;
    translate:-50% 0
}
.cta__material img{
    width:12rem
}
.cta__btn{
    text-align:center;
    width:100%;
    height:9.8rem;
    margin-inline:auto;
    background-color:#fff;
    border:.4rem solid #000;
    border-radius:2rem;
    display:grid;
    place-content:center;
    font-weight:700;
    font-size:2.4rem;
    line-height:1.6;
    letter-spacing:.05em
}
@media screen and (min-width:961px){
    body{
        font-size:1.8rem
    }
    a[href^="tel:"]{
        pointer-events:none;
        text-decoration:none!important
    }
    br.pc{
        display:inline
    }
    br.sp{
        display:none
    }
    .header{
        top:2rem;
        height:9rem;
        padding-left:3.1rem
    }
    .header__logo img{
        width:24.6rem
    }
    .header__link{
        width:28rem;
        height:9rem;
        padding-top:2.2rem;
        padding-left:4.3rem;
        border-left:.4rem solid #000;
        border-top:.4rem solid #000;
        border-bottom:.4rem solid #000;
        border-radius:2rem 0 0 2rem;
        font-size:2.6rem
    }
    .header__link::before{
        width:2.6rem;
        right:2rem
    }
    .footer{
        padding:8rem 2rem
    }
    .footer__inner{
        display:block;
        max-width:128rem;
        margin-inline:auto
    }
    .footer__logo img{
        width:24.5rem
    }
    .footer__list{
        grid-template-columns:repeat(3,max-content);
        gap:3.5rem
    }
    .footer__list-link{
        text-align:start
    }
    .footer__copyright small{
        font-size:1.4rem
    }
    .section-ttl-wrap{
        gap:1.5rem
    }
    .section-ttl{
        font-size:6.8rem;
        letter-spacing:.15em
    }
    .section-ttl-en{
        font-size:2rem;
        letter-spacing:.14em
    }
    .section-ttl-en::after,.section-ttl-en::before{
        width:4.75rem
    }
    .section-ttl-en::before{
        left:-5.75rem
    }
    .section-ttl-en::after{
        right:-5.75rem
    }
    .section-bgwrap{
        padding:4rem 4rem
    }
    .common{
        flex-direction:row;
        justify-content:space-between;
        gap:2rem;
        max-width:172rem;
        margin-inline:auto;
        padding-inline:4rem
    }
    .common__ttl-wrap{
        flex:1 0 clamp(56rem,-44rem + 78.125vw,106rem)
    }
    .common__ttl{
        font-size:6.8rem;
        letter-spacing:.15em
    }
    .common__ttl-en{
        font-size:2rem;
        letter-spacing:.14em;
        margin-top:1.5rem;
        margin-left:5.75rem
    }
    .common__ttl-en::before{
        left:-5.75rem;
        width:4.75rem
    }
    .common__desc{
        margin-top:1.5 rem;
        font-size:1.8rem;
        line-height:1.8
    }
    .common-catch{
        max-width:172rem;
        margin:4rem auto 0;
        padding-inline:4rem;
        font-size:4rem;
        line-height:1.2;
        letter-spacing:.1em
    }
    .animation-img-wrap{
        width:72rem;
        height:70.3rem
    }
    .animation-img-wrap__moving-cnt{
        top:11.2rem
    }
    .animation-img-wrap .static{
        width:62.2rem;
        top:0
    }
    .animation-img-wrap .animation-svg-wrap .mysvg1{
        width:51.7rem;
        height:7.5rem
    }
    .animation-img-wrap .animation-svg-wrap .mysvg2{
        width:10rem;
        height:22rem
    }
    .animation-img-wrap .monitor{
        top:-5rem;
        width:32.3rem;
        aspect-ratio:323/286
    }
    .animation-img-wrap .pop-wrap{
        width:17.7rem;
        height:17.3rem;
        top:-7.5rem;
        left:-15rem
    }
    .mv{
        height:84rem
    }
    .mv__circle-img{
        top:0;
        right:-18rem;
        width:130.2rem;
        height:84rem;
        left:auto;
        translate:0 0
    }
    .mv__circle-img img{
        width:130.2rem
    }
    .mv__inner{
        max-width:150.6rem;
        margin-inline:auto;
        height:auto
    }
    .mv__ttl-wrap{
        top:16.7rem;
        left: 0;
        transform: none;
        width: auto;
    }
    .mv__tag{
        width:22.9rem;
        height:5.5rem;
        border-radius:1rem;
        font-size:3.2rem
    }
    .mv__ttl{
        margin-top: 2.2rem;
        font-size: clamp(5rem,5rem + 1.25vw,6.5rem);
    }
    .mv__ttl em{
        font-size: clamp(5rem,7rem + 1.25vw,10rem);
    }
    .mv__ttl .blue{
        font-size: clamp(5rem,8rem + 1.25vw,10rem);
    }
    .mv__ttl .empty{
        width: clamp(18rem,2rem + 12.5vw,26rem);
    }
    .mv__ttl img{
        width:66.9rem;
        width:clamp(53.5rem,26.7rem + 20.9375vw,66.9rem)
    }
    .mv__lottie-text{
        bottom:-4rem;
        left:25.1rem;
        left:clamp(22rem,15.8rem + 4.84375vw,25.1rem);
        width:26rem;
        width:clamp(18rem,2rem + 12.5vw,26rem);
        height:18rem
    }
    .mv__animation-wrap{
        position:absolute;
        top:10rem;
        right:10rem;
        right:clamp(5rem,-5rem + 7.8125vw,10rem);
        bottom:auto;
        left:auto;
        translate:0 0
    }
    .mv__material{
        bottom:-2rem;
        right:clamp(1rem,-12.4rem + 10.46875vw,7.7rem)
    }
    .mv__material img{
        width:clamp(30rem,13.4rem + 12.96875vw,38.3rem)
    }
    .slick-outer-wrap{
        padding-block:4rem
    }
    .slick-outer-wrap__material{
        top:-14rem;
        left:3rem
    }
    .slick-outer-wrap__material img{
        width:27.9rem
    }
    .slick-wrap__img{
        height:auto
    }
    .slick-wrap__img img{
        height:100%
    }
    .points__onbg-wrap{
        padding:7.2rem 2rem 19.6rem;
        background:#f6f7f9 url(../images/bg_round.png) no-repeat center top/241.8rem 180rem
    }
    .points__graybg-wrap{
        padding:8.2rem 2rem 16.8rem
    }
    .points__item{
        flex-direction:row;
        gap:0
    }
    .points__item.m--reverse{
        flex-direction:row-reverse
    }
    .points__item-circle{
        margin-right:3.7rem
    }
    .points__item-circle img{
        width:clamp(48rem,16rem + 25vw,64rem);
        aspect-ratio:640/617
    }
    .points__item-animation{
        margin-left:5.5rem
    }
    .points__item-cost{
        margin-right:2rem
    }
    .points__item-cost>.txt{
        top:calc(50% - 5rem);
        font-size:3.8rem
    }
    .points__item-box{
        flex:0 1 60rem;
        border-radius:4rem;
        padding:7rem 6rem
    }
    .points__item-tag{
        gap:.7rem;
        padding:.5rem 1.7rem;
        border-radius:1rem
    }
    .points__item-tag>.point{
        font-size:1.4rem
    }
    .points__item-tag>.num{
        font-size:2.4rem
    }
    .points__ttl>.txt_32{
        font-size:3.2rem;
        line-height:1.4
    }
    .points__ttl>.txt_40{
        font-size:clamp(3.2rem,1.6rem + 1.25vw,4rem);
        line-height:1.4
    }
    .points__txt{
        margin-top:3.5rem;
        font-size:1.8rem;
        line-height:1.8
    }
    .points__txt.m--pr117{
        padding-right:11.7rem
    }
    .points__txt.m--pr103{
        padding-right:10.3rem
    }
    .points__img.m--p01{
        bottom:-15.7rem;
        right:0
    }
    .points__img.m--p01 img{
        width:20.2rem
    }
    .points__img.m--p02{
        bottom:-9.4rem;
        right:-11.6rem;
        left:auto
    }
    .points__img.m--p02 img{
        width:30.2rem
    }
    .points__img.m--p03{
        bottom:-12.2rem;
        right:0
    }
    .points__img.m--p03 img{
        width:24.3rem
    }
    .example{
        padding:14rem 2rem 18rem
    }
    .example__ttl-img{
        top:-8.8rem
    }
    .example__ttl-img img{
        width:34.1rem
    }
    .example__inline-box{
        gap:2.5rem;
        padding:7.5rem 8rem 8.5rem;
        margin:5rem auto 0;
        max-width:164rem
    }
    .example__sub-ttl{
        font-size:3rem
    }
    .example__box-img img{
        margin-top:1rem;
        width:136.8rem
    }
    .voice{
        padding:8rem 0 4rem
    }
    .voice__catch{
        margin-top:6rem
    }
    .voice__contents-wrap{
        margin-top:5rem;
        padding:4rem 6rem
    }
    .voice__material{
        top:-20rem;
        right:7rem
    }
    .voice__material img{
        width:24.8rem
    }
    .voice__contents{
        grid-template-columns:repeat(4,1fr);
        gap:clamp(2.5rem,-4.5rem + 5.46875vw,6rem)
    }
    .voice__item{
        flex-direction:column;
        align-items:center;
        gap:3rem
    }
    .voice__txt{
        border-radius:4rem;
        padding:clamp(1.8rem,-.6rem + 1.875vw,3rem) clamp(2rem,-2rem + 3.125vw,4rem);
        min-height:28.7rem
    }
    .voice__txt::before{
        left:clamp(6rem,-4rem + 7.8125vw,11rem);
        bottom:-2.4rem;
        top:auto;
        width:3.9rem;
        height:2.6rem;
        clip-path:polygon(0 0,100% 0,100% 100%)
    }
    .voice__txt>.txt{
        font-size:clamp(1.6rem,1.2rem + .3125vw,1.8rem);
        line-height:1.8;
        letter-spacing:.05em
    }
    .voice__img{
        flex-shrink:1
    }
    .voice__img img{
        width:13.1rem
    }
    .benefits{
        margin-top:8rem;
        padding-block:8rem 10rem;
        padding-inline:0
    }
    .benefits__inner{
        max-width:172rem;
        margin-inline:auto
    }
    .benefits__contents-wrap{
        margin-top:6.5rem;
        padding-inline:4rem
    }
    .benefits__outer-material{
        top:-14.1rem;
        right:clamp(1rem,-31rem + 25vw,17rem);
        width:36rem;
        width:clamp(28rem,12rem + 12.5vw,36rem);
        height:auto;
        aspect-ratio:360/235
    }
    .benefits__outer-material .achieve{
        top: 48%;
    }
    .benefits__contents{
        border:.4rem solid #000;
        max-width:clamp(100rem,48rem + 40.625vw,126rem);
        padding:6rem 0;
        grid-template-columns:repeat(3,1fr)
    }
    .benefits__item{
        min-height:29.9rem;
        padding:5rem clamp(3rem,1rem + 1.5625vw,4rem) 2rem;
        gap:2.5rem
    }
    .benefits__item.m--border::after,.benefits__item.m--border::before{
        width:.2rem;
        height:100%;
        background:url(../images/dots_line.svg) repeat center top/contain
    }
    .benefits__item.m--border::after{
        right:0
    }
    .benefits__ttl{
        position:absolute;
        top:-8.5rem;
        left:50%;
        translate:-50% 0;
        display:grid;
        place-content:center;
        place-items:center;
        width:11.8rem;
        aspect-ratio:1;
        border-radius:100vmax;
        font-size:2.8rem;
        padding-inline:0
    }
    .benefits__ttl>.fz13{
        font-size:1.3rem
    }
    .benefits__ttl>.fz28{
        margin-top:1rem;
        font-size:2.8rem
    }
    .benefits__benefit>.num{
        font-size:8.2rem
    }
    .benefits__benefit .unit{
        font-size:3.6rem
    }
    .benefits__desc{
        font-size:1.8rem;
        line-height:1.8;
        padding-inline:clamp(4rem,3rem + .78125vw,4.5rem);
        margin-top:0
    }
    .benefits__material{
        top:auto;
        bottom:0;
        right:clamp(1rem,-13.8rem + 11.5625vw,8.4rem)
    }
    .benefits__material img{
        width:clamp(29rem,1rem + 21.875vw,43rem)
    }
    .cases{
        margin-top:8rem;
        padding-top:8rem
    }
    .cases__contents-wrap{
        margin-top:6rem
    }
    .cases__contents{
        grid-template-columns:repeat(2,1fr)
    }
    .cases__item{
        flex-direction:row-reverse;
        padding:8rem 3.5rem 8rem 4rem
    }
    .cases__item:first-of-type{
        border-right:1px solid #000
    }
    .cases__item:last-of-type{
        border-top:none
    }
    .cases__num{
        top:-.7rem;
        left:2.6rem;
        right:auto;
        width:7.6rem
    }
    .cases__num>.case{
        font-size:1.2rem
    }
    .cases__num>.num{
        font-size:2.5rem
    }
    .cases__about{
        text-align:start;
        -ms-writing-mode:tb-rl;
        writing-mode:vertical-rl;
        font-feature-settings:initial;
        text-orientation:upright;
        font-size:2rem;
        line-height:1.3;
        margin-top:-4rem;
        margin-left:6rem;
        order:0
    }
    .cases__desc-wrap{
        flex:0 1 35.1rem;
        margin-left:3rem;
        order:1;
        margin-top:0
    }
    .cases__desc{
        font-size:1.8rem;
        line-height:1.8;
        letter-spacing:.05em
    }
    .cases__desc-name{
        letter-spacing:.05em;
        line-height:1.8
    }
    .cases__img{
        order:2;
        flex:0 1 34.9rem
    }
    .cases__img img{
        width:34.9rem;
        aspect-ratio:349/212
    }
    .support{
        margin-top:8rem;
        padding:4.4rem 10rem
    }
    .support__contents{
        max-width:164rem;
        margin-inline:auto;
        flex-direction:row;
        gap:9.7rem;
        align-items:center;
        justify-content:center
    }
    .support__text-wrap{
        flex:0 1 91.7rem;
        margin-top:-1rem
    }
    .support__catch{
        margin-top:4rem;
        font-size:4rem
    }
    .support__desc{
        margin-top:2rem;
        font-size:1.8rem;
        line-height:1.8;
        letter-spacing:.05em
    }
    .support__note{
        margin-top:3rem;
        font-size:1.6rem
    }
    .support__img-wrap{
        flex:0 0 63.1rem
    }
    .support__img-wrap img{
        width:63.1rem
    }
    .price{
        padding:38rem 2rem 17.8rem;
        clip-path:polygon(0 0,100% 0,100% 89.6%,50% 100%,0 89.6%)
    }
    .price__material{
        top:9.7rem
    }
    .price__material img{
        width:27.8rem
    }
    .price__desc{
        margin:8rem auto 0;
        font-size:4rem
    }
    .price__contents-inner{
        max-width:128rem;
        margin:4rem auto 0
    }
    .price__inline-box{
        grid-template-columns:repeat(4,1fr);
        gap:5.9rem
    }
    .price__box-item{
        max-width:none;
        width:auto;
        padding:3rem 4rem
    }
    .price__box-item:nth-of-type(2)::before,.price__box-item:nth-of-type(3)::before{
        top:calc(50% + .5rem);
        left:-4.7rem;
        translate:0 -50%;
        width:3.3rem
    }
    .price__box-item:nth-of-type(4)::before{
        top:calc(50% + .5rem);
        left:-4.3rem;
        translate:0 -50%;
        background:url(../images/price_equal.svg) no-repeat center/contain;
        width:3rem;
        height:2.1rem
    }
    .price__box-txt:not(:has(br)){
        margin-top:1.3rem
    }
    .price__box-num{
        margin-top:2.6rem
    }
    .price__box-num.m--minus{
        margin-top:1rem
    }
    .price__box-num:has(.zero){
        margin-top:2.3rem
    }
    .price__box-num:has(.sum){
        margin-top:2rem
    }
    .price__box-num>.num{
        font-size:4.8rem
    }
    .price__box-num>.num.zero{
        font-size:7.7rem
    }
    .price__box-num>.unit{
        font-size:2.4rem
    }
    .price__box-note{
        margin-top:1.5rem
    }
    .price__note{
        text-align:center;
        margin-top:6rem;
        font-size:1.6rem;
        letter-spacing:.05em
    }
    .faq{
        padding:27rem 6rem 25rem;
        clip-path:polygon(0 0,50% 8.4%,100% 0,100% 100%,0 100%)
    }
    .faq__inner{
        max-width:128rem;
        margin-inline:auto
    }
    .faq__list-wrap{
        margin-top:3.5rem
    }
    .faq__tab-menu{
        height:auto;
        width:auto
    }
    .faq__tab-initial{
        display:none
    }
    .faq__tab-initial>.txt{
        padding-inline:0
    }
    .faq__tab-menu-list{
        max-width:112rem;
        margin-inline:auto;
        grid-template-columns:repeat(4,1fr)
    }
    .faq__tab-menu-item{
        text-align:center;
        justify-content:center;
        height:9.4rem;
        font-size:1.8rem;
        border-radius:0;
        padding-inline:0
    }
    .faq__tab-menu-item:nth-of-type(1){
        border-radius:9rem 0 0 9rem
    }
    .faq__tab-menu-item:nth-of-type(4){
        border-radius:0 9rem 9rem 0
    }
    .faq__tab-menu-item.current{
        background-color:#000;
        color:#fff;
        cursor:auto
    }
    .faq__tab-panel{
        margin-top:4rem
    }
    .faq__contents{
        max-width:122rem;
        margin-left:auto;
        padding:2rem 3rem 2rem 6rem;
        border:.5rem solid transparent;
        border-radius:4rem
    }
    .faq__question{
        font-size:2rem;
        padding-right:0
    }
    .faq__question::before{
        top:calc(-50% - .5rem);
        left:-10.3rem;
        font-size:2.8rem;
        width:8rem
    }
    .faq__answer-inner{
        margin-top:3.5rem;
        padding-bottom:1.5rem
    }
    .faq__answer{
        font-size:1.8rem;
        line-height:1.8
    }
    .cta{
        padding:8rem 4rem
    }
    .cta__material{
        top:-23rem
    }
    .cta__material img{
        width:25.6rem
    }
    .cta__btn{
        width:clamp(110rem,74rem + 28.125vw,128rem);
        height:12.6rem;
        font-size:3.6rem;
        letter-spacing:.1em
    }
}
@media screen and (min-width:1500px){
    .points__img.m--p01{
        bottom:-11.7rem;
        right:-11.2rem
    }
    .points__img.m--p01 img{
        width:24.2rem
    }
    .points__img.m--p03{
        right:-15.6rem;
        bottom:-10.2rem
    }
    .points__img.m--p03 img{
        width:28.3rem
    }
}
@media screen and (max-width:960px){
    .slick-wrap .slick-slide{
        width:-moz-fit-content!important;
        width:fit-content!important
    }
    .points__item:not(:first-of-type){
        margin-top:4rem
    }
    .benefits__common{
        padding-left:0
    }
    .benefits__common-catch{
        padding-left:0
    }
    .benefits__benefit{
        margin-top:-1rem
    }
    .faq__tab-inner{
        width:100%;
        height:6rem;
        overflow:hidden;
        position:absolute;
        top:0;
        left:0;
        overflow:hidden;
        border-radius:3rem;
        background-color:#fff;
        transition:all .3s
    }
}
@media screen and (max-width:414px){
    html{
        font-size:2.4154589372vw
    }
}
@media (min-width:961px) and (max-width:1280px){
    html{
        font-size:.78125vw
    }
}
@media print{
    body{
        font-family:"メイリオ",Meiryo,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","ＭＳ Ｐゴシック",sans-serif
    }
}