@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Lato:wght@400;700&display=swap');
/* font-family: 'Lato', sans-serif; */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap');
/* font-family: 'Noto Sans JP', sans-serif; */
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;700&display=swap');
/* font-family: 'Noto Serif JP', serif; */

/*
Theme Name: kensalp
*/

body{
    font-family: 'Noto Serif JP', serif;
    font-weight: 400;
    font-size: 62.5%;
    color: #333333;
}

.sp-br{
    display: none;
}

/* --------------------------------------------------------------------- 
top
-----------------------------------------------------------------------*/

.sp-top{
    display: none;
}

.pc-top{
    width: 100%;
    display: block;
}

/* --------------------------------------------------------------------- 
explanation
-----------------------------------------------------------------------*/
.explanation{
    padding: 120px 0px 80px;
    background-image: url(img/explanation-back.png);
    background-size: cover;
    background-color: white;
}

.explanation-title,.explanation-text{
    margin-left: 100px;
}

.explanation-title{
    position: relative;
    margin-bottom: 70px;
    width: fit-content;
    font-size: 4em;
    font-weight: bold;
    line-height: 140%;
    letter-spacing: 0.04em;
    color: #00469C;
}

.explanation-title::before{
    content: "";
    position: absolute;
    right: -26px;
    bottom: -9px;
    display: block;
    width: 3000%;
    height: 1px;
    background-color: #00469C;
}

.explanation-title::after{
    content: "";
    position: absolute;
    display: block;
    bottom: -11px;
    right: -26px;
    width: 5px;
    height: 5px;
    border-radius: 100%;
    background-color: #00469C;
}

.explanation-text{
    width: 750px;
    font-size: 2em;
    line-height: 2;
}
/* --------------------------------------------------------------------- 
needs
-----------------------------------------------------------------------*/
.needs{
    position: relative;
    padding: 60px 0px 80px;
    background-color: #00469C;
    z-index: 1;
}

.needs-title{
    text-align: center;
    margin-bottom: 60px;
    font-size: 4em;
    color: white;
}

.needs-list{
    display: flex;
    flex-direction: column;
    gap:60px ;
    margin: auto;
    width: 900px;
}

.needs-item{
    width: 100%;
    border: 1px solid #003288;
}

.needs-item-header{
    display: flex;
    align-items: center;
    width: 100%;    
    height: 118px;
    border-bottom: 1px solid #003288;
    background-color: white;
}

.case{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    width: 118px;
    height: 100%;
    font-family: 'Lato', sans-serif;
    color: white;
    background: -moz-linear-gradient(top, #009DE8, #003288);
    background: -webkit-linear-gradient(top, #009DE8, #003288);
    background: linear-gradient(to bottom, #009DE8, #003288);
}

.case>.text{
    line-height: 1.23;
    font-size: 2.6em;
}

.case>.number{
    line-height: 1.22;
    font-size: 3.6em;
}

.needs-item-title{
    padding: 0px 30px;
    line-height: 1.42;
    font-size: 2.8em;
    color: #00469C;
}

.needs-item-text{
    padding: 29px;
    font-size: 2em;
    line-height: 2;
    background-color: white;
}

.needs-item-text>.bold{
    font-weight: bold;
    color: #003288;
}

.needs-item-text>.yellow{
    font-weight: bold;
    color: #EB8D0C;
}

.needs-item-text>.price-link-button{
    display: block;
    margin-top: 29px;
    line-height: 1;
    width: fit-content;
    color: #009DE8;
    border-bottom: 1px solid #009DE8;
}

.needs-back-1,.needs-back-2{
    position: absolute;
    z-index: -1;
    opacity: 20%;
}

.needs-back-1{
    top: 0px;
    right: 0px;
}

.needs-back-2{
    bottom: 0px;
    left: 0px;
}

/* --------------------------------------------------------------------- 
cta
-----------------------------------------------------------------------*/
.cta{
    padding: 60px 0px 60px;
}

.cta-title{
    text-align: center;
    margin-bottom: 60px;
    font-size: 2.8em;
    letter-spacing: 0.04rem;
    font-weight: medium;
    line-height: 1.57;
    color: #003288;
}

.cta>a{
    display: block;
    width: 500px;
    text-align: center;
    margin: auto;
    padding: 23px 0px;
    font-size: 2.4em;
    font-weight: bold;
    font-family: 'Noto Sans JP', sans-serif;
    color: white;
}

.cta>.cta-button{
    margin-bottom: 30px;
    background: -moz-linear-gradient(top, #00469C, #00234E);
    background: -webkit-linear-gradient(top, #00469C, #00234E);
    background: linear-gradient(to bottom, #00469C, #00234E);
}

.cta>.price-cta-button{
    margin-bottom: 30px;
    background: -moz-linear-gradient(top, #009DE8, #006493);
    background: -webkit-linear-gradient(top, #009DE8, #006493);
    background: linear-gradient(to bottom, #009DE8, #006493);
}

.cta>a.download-text{
    display: block;
    margin: auto;
    width: fit-content;
    padding:initial;
    font-size: 1.8em;
    font-weight: 400;
    color: #003288;
    border-bottom: 1px solid #003288;
    text-align: center;
}

/* --------------------------------------------------------------------- 
form
-----------------------------------------------------------------------*/
.form{
    padding: 60px 0px;
    background-color: #00469C;
}

.form.form-page{
    background-color: white;
}

.form-title{
    text-align: center;
    margin-bottom: 60px;
    line-height: 1.42;
    font-size: 4em;
    font-weight: medium;
    color: white;
}

.form-title.form-page{
    padding: 6px 0px;
    margin: 0px auto 30px;
    width: 1166px;
    background-color: #00469C;
}

@media(max-width:1200px){

/* --------------------------------------------------------------------- 
.explanation
-----------------------------------------------------------------------*/
.explanation{
    background-position: center;
}

.explanation-title,.explanation-text{
    margin: auto;
}

.explanation-title{
    margin-bottom: 70px;
}

.explanation-text{
    width: 90%;
}

/* --------------------------------------------------------------------- 
needs
-----------------------------------------------------------------------*/
.needs-list{
    width: 700px;
}

.needs-item-title{
    font-size: 2em;
}

.needs-item-text{
    font-size: 1.8em;
}

.needs>.needs-back-1{
    width: 60%;
}

.needs>.needs-back-2{
    width: 60%;
}

.form-title.form-page{
    width: 700px;
}

}

@media(max-width:767px){
.pc-top{
    display: none;
}

.sp-top{
    width: 100%;
    display: block;
}

.sp-br{
    display: block;
}

/* --------------------------------------------------------------------- 
explanation
-----------------------------------------------------------------------*/
.explanation{
    padding: 40px 0px;
}

.explanation-title{
    margin-bottom: 36px;
    width: 90%;    
    font-size: 1.8em;
    /* sp時のアニメーションリセット */
    opacity: 1 !important;
    transform: translateY(0) !important;
}

.explanation-title::before{
    right: 10%;
}

.explanation-title::after{
    right: 10%;
}


.explanation-text{
    font-size: 1.6em;
    line-height: 1.75;
    /* sp時のアニメーションリセット */
    opacity: 1 !important;
    transform: translateY(0) !important;
}

/* --------------------------------------------------------------------- 
needs
-----------------------------------------------------------------------*/
.needs{
    padding: 40px 0px 60px;
}

.needs-title{
    margin-bottom: 40px;
    font-size: 2.2em;
    line-height: 1.4em;
}

.needs-list{
    width: 90%;
}

.needs-item-header{
    height: 90px;
}

.case{
    width: 50px;
    flex-shrink: 0;
}

.case>.text{
    font-size: 1.6em;
}

.case>.number{
    font-size: 2.4em;
}

.needs-item-title{
    padding: 0px 10px;
    font-size: 1.6em;
}

.needs-item-title>br{
    display: none;
}

.needs-item-text{
    padding: 20px;
    font-size: 1.6em;
    line-height: 1.75;
}

.needs-back-1,.needs-back-2{
    width: 285px;
}

/* --------------------------------------------------------------------- 
cta
-----------------------------------------------------------------------*/
.cta{
    padding: 30px 0px 30px;
}

.cta-title{
    margin-bottom: 30px;
    letter-spacing: 0.04rem;
    font-size: 2em;
}

.cta>a{
    padding: 20px 0px;
    max-width: 335px;
    width: 90%;
    font-size: 2em;
}

.cta>.cta-button{
    margin-bottom: 20px;
}

.cta>.price-cta-button{
    margin-bottom: 20px;
}

/* --------------------------------------------------------------------- 
form
-----------------------------------------------------------------------*/
.form{
    padding: 40px 0px;
}

.form-title{
    margin-bottom: 40px;
    font-size: 2.2em;
    line-height: 1.3;
}

.form-title.form-page{
    margin-bottom: 5px;
    width: 100%;
}
}