@charset "UTF-8";
/* General Settings
============================ */
html {
    font-size: 62.5%;
}
body {
    font-size: 1.4rem;
    line-height: 2;
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-style: normal;
}

h2{
    color: #0068b7;
    text-align: center;
    font-size: 4rem;
    font-weight: 700;
    margin-bottom: 2.5rem;
}
h3{
    color: #0068b7;
    text-align: center;
    font-size: 2.5rem;
    font-weight: 700;
}
h4{}
p{
    font-size: 1.2rem;
    margin-bottom: 1.2rem;
}
img{
    display: block;
    width: 100%;
    height: auto;
}
*,
*::before,
*::after {
    box-sizing: border-box;
}
.clearfix::after {
    content: '';
    display: block;
    clear: both;
}
.inner{
    width: 1200px;
    padding: 100px 0;
    margin: auto;
}
.flex-area{
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.btn{
    padding: 2rem 0;
    width: 50%;
    color: #ffffff;
    display: block;
    text-align: center;
    margin: 0 auto;
    border-radius: 1rem;
    position: relative;
    font-size: 2rem;
    font-weight: 700;
    box-shadow: 0px 4px 0px rgba(0, 0, 0, .5);
    letter-spacing: .5rem;
}
.btn span{
    background: #ffffff;
    color: #d2302f;
    padding: 1rem 3rem;
    border-radius: 1rem;
    position: absolute;
    left: 5%;
    top: 16%;
    line-height: 1.8;
}
.btn-copy{
    text-align: center;
    font-size: 2rem;
    font-weight: 700;
}
.btn-r{
    background: #d2302f;
    border: 2px solid #d2302f;
}
.btn-b{
    background: #0068b7;
    border: 2px solid #0068b7;
}
.btn-g{
    background: #aaa;
    border: 2px solid #aaa;
}
.btn-w{
    background: #fff;
    color: #0068b7;
    border: 2px solid #0068b7;
}
.check{
    text-align: center;
    color: #d2302f;
    padding: 2rem 0;
    width: 100%;
    border: #d2302f 2px dotted;
    border-radius: 2rem;
    position: relative;
    font-size: 2rem;
    font-weight: 700;
    background: #ffffff;
    width: 80%;
    margin: 0 auto;
}
.check::before{
    content: "";
    position: absolute;
    left: 5%;
    top: 50%;
    width: 3rem;
    height: 3rem;
    background-image: url('img/check.png');
    background-size: cover;
    transform: translate(-50%, -50%);
}
.pc{
    display: block;
}
.sp{
    display: none;
}
@media screen and (max-width:1200px) {
    h1{
        width: 100%;
        font-size: 3rem;
    }
    h2{
        font-size: 2.5rem;
    }
    p{
        font-size: 1.5rem;
    }
    .pc{
        display: none;
    }
    .sp{
        display: block;
    }
    .inner{
        width: 100%;
        padding: 8em 5%;
    }
    .flex-area{
        display: block;
    }
    .btn{
        width: 100%;
        font-size: 1.5rem;
        padding: 1rem 0;
    }
    .btn-copy{
        font-size: 1.5rem;
        margin-top: 2rem;
    }
    .btn span{
        padding: 0.5rem 1rem;
        border-radius: .5rem;
        left: 15%;
        top: 50%;
        line-height: 1.5;
        transform: translate(-50%, -50%);
    }
    .btn.btn-r{
        padding-left: 10%;
    }
    .check{
        width: 100%;
        font-size: 1.5rem;
        padding: 1rem 4rem;
    }
    .check::before{
        left: 8%;
    }
}
/* Header
============================ */
#header{
    background: #0068b7;
    color: #ffffff;
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
    height: 80px;
    z-index: 999;
}
#header .flex-area{
    height: 80px;
    width: 1200px;
    margin: auto;
}
#header .head-logo{
    width: 200px;
}
#header .head-company{
    flex-grow: 1;
    margin-left: 5rem;
    font-size: 1.8rem;
}
#header .head-btn{
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 600px;
}
#header .btn{
    padding: .5rem 0;
}
#header .head-btn .btn-b{
    width: 250px;
    border: 2px solid #ffffff;
}
#header .head-btn .btn-r{
    width: 300px;
    border: #d2302f 2px solid;
}

/* FIrst View
============================ */
#firstview{
    position: relative;
    background-image: url('img/firstview.png');
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
    height: 1080px;
    display: flex;
    justify-content: center;
    align-items: center;
}
#firstview .header1{
    text-align: center;
    font-size: 5rem;
    font-weight: 700;
    width: 700px;
    margin: 0 0 0 auto;
}
#firstview .btn-area{
    width: 700px;
    margin: 0 0 0 auto;
}
#firstview .fv-logo{
    width: 50%;
    margin: auto;
}
#firstview .fv-text01{
    width: 50%;
    margin: auto;
}
#firstview .inner{
    padding: 0;
    width: 1075px;
}
#firstview .btn{
    width: 80%;
}
#firstview .btn.btn-b{
    width: 50%;
    margin-top: 2rem;
}
#firstview .tel{
    font-weight: 700;
    background: rgb(255, 255, 255, 0.9);
    position: absolute;
    right: 5%;
    bottom: 5%;
    padding: 50px;
}
#firstview .tel p{
    font-size: 1.5rem;
}
@media screen and (max-width:1200px) {
    #firstview{
        height: 600px;
        background-image: url('img/firstview_sp.png');
    }
    #firstview .inner{
        width: 100%;
    }
    #firstview .header1{
        width: 80%;
        margin: 0px 1% 0 19%;
    }
    #firstview .btn-area{
        width: 100%;
    }
}
@media screen and (max-width:390px) {
    #firstview .btn span {
        padding: 0.5rem;
        left: 5%;
        top: 10%;
    }
}
/* Problem Area
============================ */
#problem{
    color: #0068b7;
    position: relative;
    border-top: 1px solid #ffffff;
    border-bottom: 1px solid #ffffff;
}
#problem .img-area,
#problem .text-area{
    width: 50%;
}
#problem .text-area li{
    font-size: 2rem;
    margin-bottom: 3rem;
    font-weight: 700;
}
#problem .text-area li:nth-child(2){
    margin-left: 2rem;
}
#problem .text-area li:nth-child(3){
    margin-left: 4rem;
}
#problem .text-area li:nth-child(4){
    margin-left: 6rem;
}
#problem .text-area li:nth-child(5){
    margin-left: 8rem;
}
@media screen and (max-width:1200px) {
    #problem .img-area,
    #problem .text-area{
        width: 100%;
    }
    #problem .text-area li{
        font-size: 1.5rem;
    }
    #problem .text-area li:nth-child(2),
    #problem .text-area li:nth-child(3),
    #problem .text-area li:nth-child(4),
    #problem .text-area li:nth-child(5){
        margin-left: 0;
    }
    #problem .text-area li:nth-child(5){
        margin-bottom: 0;
    }
}
/* Solution Area
============================ */
#solution{
    background: #1eb9ef;
    color: #ffffff;
    text-align: center;
    position: relative;
}
#solution::before,
#solution::after {
    content: ''; /* 擬似要素にはcontentプロパティが必要 */
    position: absolute;
    left: 0;
    right: 0;
    height: 2px; /* 線の厚さ */
    background-color: #ffffff; /* 線の色 */
}

#solution::before {
  top: 5%; /* 上部 */
}

#solution::after {
  bottom: 5%; /* 下部 */
}
#solution h2{
    color: #ffffff;
}
#solution .inner{
    width: 100%;
}
#solution .left-area,
#solution .right-area{
    width: calc((100% - 1200px) / 2);
}
#solution .center-area{
    width: 1200px;
}
#solution .center-area p{
    font-size: 2rem;
}
#solution .center-area .message{
    font-size: 3rem;
    font-weight: 700;
}
@media screen and (max-width:1200px) {
    #solution .flex-area{
        display: flex;
        flex-wrap: wrap;
    }
    #solution .center-area{
        width: 100%;
        order: 1;
    }
    #solution .left-area,
    #solution .right-area{
        width: 50%;
        order: 2;
    }
    #solution .center-area p{
        font-size: 1.5rem;
    }
    #solution .center-area .message{
        font-size: 1.8rem;
    }
}
/* Copy Area
============================ */
#copy .header2{
    text-align: left;
}
#copy .header2 .span{
    background-color: #0068b7;
    color: #ffffff;
    display: table;
    padding: 0 0.4em;
    font-size: 4rem;
    line-height: 1.5;
}
#copy .header2 .span + .span {
    margin-top: 0.2em; /* 前のspan要素の後に上のマージンを追加 */
}
#copy .back{
    background: #e9faff;
    border-radius: 2rem;
    padding: 3em 20rem;
    text-align: center;
}
#copy .back p{
    font-size: 2rem;
    color: #0068b7;
    font-weight: 700;
    margin-top: 1em;
}
@media screen and (max-width:1200px) {
    #copy .header2 .span{
        font-size: 2.5rem;
    }
    #copy .inner{
        padding-top: 8em;
    }
    #copy .back{
        padding: 3em 5%;
    }
    #copy .back p{
        font-size: 1.8rem;
        text-align: start;
    }
}
@media screen and (max-width:390px) {
    #copy .header2 .span{
        font-size: 2rem;
    }
}
/* Feature Area
============================ */
#feature{
    position: relative;
    margin-top: 100px;
}
#feature .header2 .span{
    background: #1eb9ef;
    color: #ffffff;
    display: flex;
    align-items: center;
    font-size: 3rem;
    text-align: right;
    padding-left: calc(50% - 600px);
    width: 40%;
}
#feature h2 img{
    width: 200px;
    display: inline;
    margin-right: 1rem;
}
#feature h3{
    color: #d2302f;
}
#feature h3 span{
    display: block;
    background: #0068b7;
    padding: 2rem 0;
    color: #ffffff;
    border-radius: 2rem;
    font-size: 2rem;
}
#feature .inner{
    padding-top: 150px;
}
#feature .flex-area{
    align-items: start;
    margin: 50px 0;
}
#feature .content-area{
    width: 30%;
}
@media screen and (max-width:1200px) {
    #feature{
        margin-top: 3em;
    }
    #feature h2{
        padding: 1rem 5%;
        font-size: 2rem;
    }
    #feature .header2 .span{
        width: 100%;
        font-size: 2rem;
        padding: 1rem 5%;
        justify-content: center;
    }
    #feature .inner{
        padding-top: 0;
    }
    #feature h3 span{
        padding: 1rem 0;
    }
    #feature img{
        margin: auto;
        width: 80%;
    }
    #feature h2 img{
        width: 150px;
        margin-left: 0;
    }
    #feature .content-area{
        width: 100%;
        margin-bottom: 50px;
    }
}
@media screen and (max-width:390px) {
    #feature h2 img{
        width: 100px;
    }
    #feature .header2 .span{
        font-size: 1.5rem;
    }
}
/* Merit Area
============================ */
#merit{
    position: relative;
    background-image: linear-gradient(to bottom, #ffffff, #ffffff, #b7d8fe);
    margin-top: 100px;
}
#merit .header2 .span{
    background: #1eb9ef;
    color: #ffffff;
    display: flex;
    align-items: center;
    font-size: 3rem;
    text-align: right;
    padding-left: calc(50% - 600px);
    width: 45%;
}
#merit h3{
    border: 2px solid #d2302f;
    color: #d2302f;
    border-radius: 1rem;
    position: relative;
    margin-bottom: 2rem;
}
#merit .inner{
    padding-top: 150px;
}
#merit .content-area:nth-child(1) h3{
    color: #898989;
    border: 2px dotted #898989;
}
#merit .content-area:nth-child(1){
    color: #898989;
}
#merit .content-area:nth-child(2) h3::before{
    content: "";
    position: absolute;
    left: 5%;
    top: 50%;
    width: 3rem;
    height: 3rem;
    background-image: url('img/check.png');
    background-size: cover;
    transform: translate(-50%, -50%);
}
#merit h2 img{
    width: 200px;
    display: inline;
    margin-right: 1rem;
}
#merit .description{
    color: #0068b7;
    font-weight: 700;
    margin-bottom: 50px;
}
#merit .description p{
    font-size: 2rem;
}
#merit .description span{
    border-bottom: 1px solid #0068b7;
    font-size: 2.5rem;
    margin: 0 1rem;
}
#merit .flex-area{
    align-items: start;
}
#merit .content-area{
    width: 47.5%;
    text-align: center;
}
#merit .content-area p{
    font-size: 2rem;
    font-weight: 700;
}
#merit .content-area img{
    margin-bottom: 2rem;
}
#merit .content-area:nth-child(2) p{
    color: #d2302f;
}
#merit .content-area .human-img{
    width: 50%;
    margin: auto;
}
#merit .intern{
    background: #ffffff;
    padding: 2rem 0;
    text-align: center;
    margin: 0 auto 50px;
    width: 80%;
}
#merit .intern p{
    font-size: 2rem;
    font-weight: 700;
}
#merit .intern p.check{
    margin-top: 2rem;
}
@media screen and (max-width:1200px) {
    #merit{
        margin-top: 3em;
    }
    #merit h2{
        width: 100%;
        padding: 1rem 5%;
        font-size: 2rem;
    }
    #merit .inner{
        padding-top: 0;
        padding-bottom: 8em;
    }
    #merit .header2 .span{
        width: 100%;
        font-size: 2rem;
        padding: 1rem 5%;
        justify-content: center;
    }
    #merit h2 img{
        width: 150px;
    }
    #merit h3{
        font-size: 2rem;
    }
    #merit .description p{
        font-size: 1.4rem;
    }
    #merit .description span{
        font-size: 2rem;
    }
    #merit .content-area{
        width: 100%;
        margin-bottom: 50px;
    }
    #merit .intern{
        padding: 2rem 5%;
        width: 100%;
    }
    #merit .intern p{
        font-size: 1.5rem;
    }
}
@media screen and (max-width:390px) {
    #merit h2 img{
        width: 100px;
    }
    #merit .header2 .span{
        font-size: 1.5rem;
    }
}
/* Flow Area
============================ */
#flow{
    position: relative;
    margin-top: 100px;
}
#flow .header2 .span{
    background: #1eb9ef;
    color: #ffffff;
    display: flex;
    align-items: center;
    font-size: 3rem;
    text-align: right;
    padding-left: calc(50% - 600px);
    width: 45%;
}
#flow h2 img{
    width: 200px;
    display: inline;
    margin-right: 1rem;
}
#flow .inner{
    padding-top: 150px;
}
#flow .flex-area{
    margin-bottom: 50px;
}
#flow .left-contents{
    width: 40%;
}
#flow .left-contents p{
    background: #1eb9ef;
    color: #ffffff;
    padding: 3rem 0;
    border-radius: 2rem;
    font-weight: 700;
    font-size: 2rem;
}
#flow .left-contents p span.num{
    background: #ffffff;
    color: #1eb9ef;
    text-align: center;
    padding: 1rem 2rem;
    margin: 0 2rem;
    border-radius: 1rem;
    height: 100%;
}
#flow .left-contents p span.text{
    display: inline-block;
    border: 2px dotted #ffffff;
    padding: 1rem 2rem;
    width: 70%;
    border-radius: 1rem;
}
#flow .right-contents{
    width: 55%;
}
#flow .right-contents p{
    font-size: 1.8rem;
    color: #0068b7;
    font-weight: 700;
}
#flow .right-contents .btn{
    width: 80%;
    padding: 1rem 0;
    margin: 0;
}
#flow .right-contents .btn span {
    padding: 0rem 2rem;
    line-height: 2;
}
@media screen and (max-width:1200px) {
    #flow{
        margin-top: 8em;
    }
    #flow h2{
        width: 100%;
        padding: 1rem 5%;
        font-size: 2rem;
    }
    #flow .inner{
        padding-top: 0;
        padding-bottom: 8em;
    }
    #flow .header2 .span{
        width: 100%;
        font-size: 2rem;
        padding: 1rem 5%;
        justify-content: center;
    }
    #flow h2 img{
        width: 150px;
    }
    #flow .flex-area{
        margin-bottom: 2em;
    }
    #flow .flex-area::after {
        content: "";
        display: block;
        width: 0;
        height: 0;
        border-left: 30px solid transparent;
        border-right: 30px solid transparent;
        border-top: 30px solid #0068b7;
        margin: auto;
    }
    #flow .left-contents,
    #flow .right-contents{
        width: 100%;
    }
    #flow .left-contents{
        margin-bottom: 2rem;
    }
    #flow .right-contents{
        margin-bottom: 2em;
    }
    #flow .left-contents p{
        padding: 1rem 0;
    }
    #flow .left-contents p span.text{
        padding: .5rem 2rem;
    }
    #flow .right-contents .btn{
        width: 100%;
    }
    #flow .right-contents p{
        font-size: 1.8rem;
    }
    #flow .right-contents .btn span{
        padding: 0.5rem 1rem;
        border-radius: 1rem;
        left: 15%;
        top: 50%;
        line-height: 1.5;
        transform: translate(-50%, -50%);
    }
    #flow .btn.btn-r{
        padding-left: 10%;
    }
}
@media screen and (max-width:390px) {
    #flow .left-contents p{
        display: flex;
        align-items: center;
        font-size: 1.5rem;
    }
    #flow .left-contents p span.num{
        padding: 1rem 1.5rem;
    }
    #flow h2 img{
        width: 100px;
    }
    #flow .header2 .span{
        font-size: 1.5rem;
    }
    #flow .right-contents p{
        font-size: 1.4rem;
    }
    #flow .right-contents .btn span {
        padding: 0.5rem;
        left: 5%;
        top: 10%;
    }
}
/* CTA
============================ */
#cta{
    position: relative;
    background: #1eb9ef;
}
#cta h2{
    background: #ffffff;
    padding: 2rem 0;
    border-radius: 2rem;
    margin-bottom: 50px;
}
#cta .btn{
    width: 30%;
    margin: 0;
}
#cta .text-link{
    width: 30%;
    text-align: center;
    color: #ffffff;
    font-weight: 700;
    font-size: 2.5rem;
}
@media screen and (max-width:1200px) {
    #cta h2{
        font-size: 2rem;
        margin-bottom: 2em;
    }
    #cta .btn,
    #cta .text-link{
        display: block;
        width: 100%;
        margin-top: 2rem;
    }
}
/* Modal
============================ */
.modal {
    display: none;
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.7);
    z-index: 1000;
    opacity: 0;
    transition: opacity 1s,visibility 1s;
    align-items: center; /* 垂直方向の中央揃え */
    justify-content: center; /* 水平方向の中央揃え */
}
.modal-content {
    background-color: #fefefe;
    margin: 15% auto;
    padding: 10rem 15rem;
    border: 1px solid #888;
    width: 40%;
    position: relative;
    border-radius: 2rem;
    text-align: center;
    font-weight: 700;
}
.modal-content .copy{
    font-size: 1.5rem;
    margin-bottom: 2rem;
}
.modal-content a{
    margin-top: 1.5rem;
}
.modal-content .text-link{
    position: relative;
    font-size: 3rem;
    color: #0068b7;
}
.modal.show {
    display: flex;
    opacity: 1;
}
.close {
    color: #aaa;
    float: right;
    font-size: 28px;
    font-weight: bold;
    position: absolute;
    right: 2rem;
    top: 0;
}

.close:hover,
.close:focus {
    color: black;
    text-decoration: none;
    cursor: pointer;
}
@media screen and (max-width:1200px) {
    .modal-content {
        margin: 15% auto;
        padding: 3rem 20%;
        width: 95%;
    }
    .modal-content .text-link{
        font-size: 2rem;
    }
}
/* Footer
============================ */
#footer{
    position: relative;
    background: #0068b7;
    color: #ffffff;
}
#footer .inner{
    padding: 50px 0;
}
#footer .footer-logo{
    width: 200px;
}
#footer .footer-tel{
    background: rgb(255, 255, 255, 0.7);
    padding: 2rem;
    color: #111111;
}
@media screen and (max-width:1200px) {
    #footer .inner{
        padding: 50px 5% 10px;
    }
    #footer .footer-tel{
        margin: 2rem 0;
    }
}