@charset "utf-8";
/* CSS Document */


/*==================================================
mv
================================================== */

.mv{
    position: relative;
    margin-top: 80px;
}

.mv img{
    width: 100%;
    vertical-align: bottom;
}

@media only screen and (max-width: 1024px) {


}

@media screen and (max-width: 1024px) and (orientation: portrait){
  
}
    



@media only screen and (max-width: 768px) { 

    .mv{
        margin-top: 60px;
    }

}

@media screen and (max-width: 768px) and (orientation: portrait){

   
    
}

@media only screen and (max-width: 599px) {




}


/*==================================================
common
================================================== */

.pic{
    margin: 50px 0;
    text-align: center;
}

.pic img{
    vertical-align: bottom;
}

.txt{
    text-align: justify;
    line-height: 2.2;
    margin-bottom: 35px;
}

.txt p{
    margin-bottom: 50px;
}

.icn-email{
    width: 36px;
    position: absolute;
    right: 0;
    top: -4px;
}

a.a-icn{
    position: relative;
    display: inline-block;
    padding: 5px 40px 5px 20px;
}

.box-btn-2cols{
    margin: 50px 0 0;
    display: flex;
}

.box-btn-2cols a{
    width: calc(100%/2);
}

.box-btn-2cols a:first-child{
    margin-right: 30px;
}

.box-btn-1cols{
    text-align: center;
    padding: 50px 0;
}

.box-btn-1cols .btn{
    width: 80%;
}


.t-flex{
    display: flex;
}

.t-flex span{
    display: block;
    width: 60px;
}

.t-flex span i{
    width: 58px;
    height: 58px;
    border: 1px solid #333;
    border-radius: 50%;
    display: flex;
    font-style: normal;
    text-align: center;
    justify-content: center;
    align-items: center;
    background-color: #ffffa9;
}

.t-flex strong{
    padding-left: 20px;
    width: 90%;
    display: flex;
    align-items: center;
    font-weight: normal;
}

.box-ballon{
    color: #fff;
    text-align: center;
    border-radius: 24px;
    padding: 25px 50px 30px;
    font-size: 28px;
    position: relative;
    margin-bottom: 50px;
    line-height: 2.0;
}
.box-ballon.bg-grey{
    color: #333;
}

.box-ballon p{
    margin: 0;
}

.box-ballon span{
    color: #f092ae;
    font-size: 30px;
    position: absolute;
    left: 50%;
    bottom: -35px;
    margin-left: -12px;
}
.box-ballon.bg-grey span{
    color: #e4e4e4;
}
.box-ballon.bg-blue02 span{
    color: #84bae5;
}
.box-ballon.bg-pink02 span{
    color: #df8db9;
}

.box-border-pink{
    border-radius: 24px;
    border: 3px solid #f092ae;
    padding: 35px;
    margin-bottom: 50px;
}


@media only screen and (max-width: 768px) {
    
.pic{
    margin: 25px 0;
} 

.txt{
    margin-bottom: 25px;
}  

.txt p{
    margin-bottom: 35px;
}

.box-btn-2cols{
    margin: 30px 0 0;
} 

.box-ballon{
    border-radius: 18px;
    padding: 20px 30px 25px;
    font-size: 24px;
    margin-bottom: 35px;
}

.t-flex strong{
    height: auto;
} 
    
}


@media only screen and (max-width: 599px) {
    
    #top-sec01{
        padding-top: 35px;
    }
    
    
.pic{
    margin: 25px 0;
} 

.txt{
    margin-bottom: 20px;
    line-height: 1.8;
} 

.txt p{
    margin-bottom: 25px;
}

.box-btn-2cols{
    display: block;
    margin: 30px 0 0;
} 

.icn-email{
    width: 36px;
    position: absolute;
    right: 0;
    top: -4px;
}

a.a-icn{
    padding: 5px 40px 5px 10px;
}

.box-btn-2cols a{
    width: 100%;
    margin: 0 auto 15px;
}

.box-btn-2cols a:first-child{
    margin-right: auto;
} 

.t-flex span{
    width: 44px;
}

.t-flex span i{
    width: 42px;
    height: 42px;
}

.t-flex strong{
    padding-left: 15px;
}  

.box-ballon{
    padding: 20px 20px 28px;
    font-size: 5.2vw;
    margin-bottom: 30px;
    line-height: 1.8;
}  

.box-ballon span{
    bottom: -28px;
}

    
}


/*==================================================
contents-01
================================================== */

@media (max-width: 599px) {
    
    #contents-01{
        padding-top: 45px;
    }
    
}

/*==================================================
contents-02
================================================== */

.pic-01{
    width: 30%;
    float: right;
    margin: 0 0 0 50px;
}

@media (max-width: 599px) {

.pic-01{
    display: block;
    width: 60%;
    margin: 0 auto 30px;
    float: none;
}
    
}

/*==================================================
contents-03
================================================== */

.box-step{
    border-top: 1px solid #fff;
    padding: 50px 0;
}

.step-txt{
    float: right;
    width: 48%;
}

.step-pic{
    float: left;
    width: 48%;
    font-size: 12px;
}

.y-w{
    vertical-align: middle;
    height: 14px;
    margin-right: 6px;
}

.link{
    text-align: right;
}

.link a{
    color: #fff !important;
}

.step-pic img{
    border-bottom-right-radius: 90px;
    vertical-align: bottom;
    margin-bottom: 7px;
}

@media only screen and (max-width: 768px) {

.box-step{
    padding: 30px 0;
}

.step-pic img{
    border-bottom-right-radius: 60px;
}
    
}

@media only screen and (max-width: 599px) {

.step-txt{
    float: none;
    width: 100%;
    margin-bottom: 20px;
}

.step-pic{
    float: none;
    width: 100%;
}

.step-pic img{
    border-bottom-right-radius: 40px;
}
    
}



/*==================================================
contents-04
================================================== */

#contents-04{
padding-top: 100px;
}



@media only screen and (max-width: 599px) {

#contents-04{
padding-top: 50px;
}
    
}


/*==================================================
contents-05
================================================== */

#prof{
    border-top: 1px solid #002e54;
    padding: 30px 0;
    margin-top: 80px;
    font-size: 15px;
    line-height: 2.0;
    text-align: justify;
}

.pic-07{
    float: right;
    width: 30%;
    margin: 0 0 20px 50px;
}

.prof-pic{
    position: relative;
    padding: 65px 0 0;
}

.pic-08{
    width: 60%;
    vertical-align: bottom;
}

.pic-09{
    width: 25%;
    vertical-align: bottom;
    margin-left: 35px;
    top: 50px;
    position: relative;
}

@media only screen and (max-width: 599px) {

#prof{
    padding: 30px 0;
    margin-top: 50px;
    font-size: 14px;
    line-height: 1.8;
}

.pic-07{
    float: none;
    width: 100%;
    margin: 0 0 15px;
}

.prof-pic{
    padding: 25px 0 0;
}

.pic-08{
    width: 60%;
}

.pic-09{
    width: 30%;
    margin-left: 20px;
}
    
}


/*==================================================
contents-06
================================================== */

#contents-06 .txt p{
    margin-bottom: 15px;
}

#contents-06 > div > .txt{
    margin-bottom: 65px;
}

.box-ex{
    padding-bottom: 50px;
}

.txt-ex{
    width: 55%;
    float: left;
}

.pic-ex{
    width: 40%;
    float: right;
    padding-top: 50px;
}

#koutei{
    border-top: 3px solid #002e54;
    border-bottom: 3px solid #002e54;
    padding: 50px 0 0;
}

@media only screen and (max-width: 768px) {

.pic-ex{
    padding-top: 40px;
}

#koutei{
    border-top: 2px solid #002e54;
    border-bottom: 2px solid #002e54;
    padding: 35px 0 0;
}
    
}

@media only screen and (max-width: 599px) {

#contents-06 > div > .txt{
    margin-bottom: 50px;
}
    

.box-ex{
    padding-bottom: 35px;
}    

.txt-ex{
    width: 100%;
    float: none;
}

.pic-ex{
    width: 100%;
    float: none;
    padding-top: 0;
}
    
}


/*==================================================
contents-07
================================================== */

.box-voice{
    padding-bottom: 50px;
    line-height: 2.0;
    text-align: justify;
}

.pic-voice{
    width: 25%;
    margin: 0 50px 20px 0;
    float: left;
    padding-top: 8px;
}

.box-voice small{
    display: block;
    position: relative;
    left: -8px;
}


@media only screen and (max-width: 768px) {

.pic-voice{
    margin: 0 30px 15px 0;
}
    
}


@media only screen and (max-width: 599px) {

.box-voice{
    padding-bottom: 30px;
    line-height: 1.8;
}

.pic-voice{
    display: block;
    float: none;
    margin: 0 auto 30px;
    width: 60%;
}

.box-voice small{
    font-size: 13px;
}
    
}


/*==================================================
contents-08
================================================== */

#contents-08{
    padding: 100px 0 0;
}

@media only screen and (max-width: 768px) {

#contents-08{
    padding: 50px 0 0;
}    
    
}


/*==================================================
contents-09
================================================== */

#contents-09 .title-contents{
    font-size: 64px;
}

@media only screen and (max-width: 768px) {

#contents-09 .title-contents{
    font-size: 52px;
}    
    
}

@media only screen and (max-width: 599px) {
    
    #contents-09{
        padding-top: 30px;
    }

#contents-09 .title-contents{
    font-size: 9vw;
}    
    
}



/*==================================================
faq
================================================== */


.box-faq > div{
    display: flex;
}

.box-faq > div > span{
    padding-top: 5px;
}

.box-faq > div.faq-a > span{
    padding-top: 0;
}

.box-faq > div > span > i{
    font-style: normal;
}

.box-faq > div > strong{
    width: 90%;
    padding-left: 10px;
    font-weight: normal;
}

.faq-q strong{
    font-size: 24px;
}

.faq-q{
    margin-bottom: 20px;
}

.box-faq{
    margin-bottom: 65px;
}

@media only screen and (max-width: 768px) {

.faq-q strong{
    font-size: 20px;
}

    
}


@media only screen and (max-width: 599px) {

.faq-q strong{
    font-size: 5vw;
}

.faq-q{
    margin-bottom: 15px;
}

.box-faq{
    margin-bottom: 50px;
}


    
}


/*==================================================
feature
================================================== */

#feature .title-contents{
    margin-bottom: 10px;
}

#feature article{
    padding-bottom: 25px;
}

.ill-22{
    display: block;
    margin: 0 auto;
    width: 70%;
}

@media only screen and (max-width: 599px) {

#feature article{
    padding-bottom: 10px;
}

.ill-22{
    width: 90%;
}
    
}

/*==================================================
company-01
================================================== */

#company-01{
    padding-bottom: 100px;
}

#ill-tsunagu{
    margin-bottom: 80px;
}

@media only screen and (max-width: 599px) {

#company-01{
    padding-bottom: 50px;
}

#ill-tsunagu{
    margin-bottom: 50px;
}
    
}

/*==================================================
company-outline
================================================== */

#company-outline{
    background-color: #dff3f6;
    padding: 90px 0 60px;
}

#company-outline .title-contents{
    line-height: 1;
}

#company-outline .title-contents small{
    padding-left: 12px;
    font-size: 50%;
    color: #333 !important;
    position: relative;
    top: -4px;
}

#company-outline > div > article{
    margin-bottom: 50px;
}

.box-company{
    display: flex;
}

.txt-outline{
    width: 60%;
    padding-right: 5%;
}

.pic-outline{
    width: 35%;
}

.pic-outline img{
    border-radius: 36px;
    vertical-align: bottom;
}

.flex-com{
    display: flex;
}

.flex-com span{
    width: 150px;
}

.flex-com strong{
    font-weight: normal;
}

#company-history{
    position: relative;
    margin-bottom: 100px !important;
}

.pic-16{
    position: absolute;
    top: 20px;
    right: 0;
    width: 20%;
    border-radius: 32px;
}

.p-con{
    display: flex;
    margin: 0 !important;
}

.p-con i{
    width: 42px;
    line-height: 1;
}

.p-con a{
    display: flex;
    align-items: center;
    padding-left: 15px;
    font-size: 21px;
}

#tel,#fax,#e-mail{
    margin-bottom: 25px;
}

#address small{
    display: block;
}

.map-com{
    width: 35%;
}

.map-com iframe{
    border: none;
    width: 100%;
    height: 100%;
    vertical-align: bottom;
}


@media only screen and (max-width: 768px) {

.flex-com span{
    width: 100px;
}

#company-history{
    margin-bottom: 80px !important;
}
    
}

@media only screen and (max-width: 599px) {

#company-outline{
    padding: 60px 0 30px;
}

#company-outline .title-contents small{
    font-size: 60%;
    top: -3px;
}

#company-outline > div > article{
    margin-bottom: 35px;
}

.box-company{
    display: block;
}

.txt-outline{
    width: 100%;
    padding-right: 0;
    margin-bottom: 25px;
}

.pic-outline{
    width: 100%;
}

.pic-outline img{
    border-radius: 26px;
    height: 45vw;
    object-fit: cover;
    width: 100%;
}
    
.flex-com{
    display: block;
    padding-left: 15px;
    line-height: 1.8;
}

.flex-com span,
.flex-com strong{
    display: block;
    width: 100%;
}

#company-history{
    margin-bottom: 30px !important;
}

.pic-16{
    display: none;
}

.p-con{
    display: flex;
    margin: 0 !important;
}

.p-con i{
    width: 34px;
}

.p-con a{
    padding-left: 12px;
    font-size: 18px;
}

#tel,#fax,#e-mail{
    margin-bottom: 20px;
}

.map-com{
    width: 100%;
}

.map-com iframe{
    height: 60vw;
}


    
}





/*==================================================
contact
================================================== */

#contact{
    color: #000;
}

#contact a{
    text-decoration: underline;
}

#mv-contact{
    padding: 50px 0;
    text-align: center;
}

.title-page{
    display: block;
    font-size: 42px;
    margin-bottom: 50px;
}

.mv-logo{
    background-color: #002e54;
    padding: 50px 0;
}

.mv-logo img{
    width: 46%;
    vertical-align: middle;
}

#contact-head > div{
    display: flex;
}

.box-ill{
    width: 30%;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
}

.box-ill img{
    width: 60%;
    vertical-align: middle;
}

.box-txt{
    width: 70%;
    font-size: 21px;
    line-height: 2.2;
}

#contact-input{
    padding: 100px 0;
}

#contact-confirm{
    padding: 10px 0 50px;
}

#contact-thanks{
    padding: 130px 0 50px;
}

#contact-thanks article{
    padding: 50px 10px 0;
}

#contact-thanks article .title-contents{
    margin-bottom: 35px;
    margin-left: 0;
}

.box-thanks{
    background-color: #f6f7f7;
    padding: 50px;
}

.store-link{
    border-top: 2px double #002e54;
    border-bottom: 2px double #002e54;
    padding: 45px 5px;
}



.box-contact{
    display: flex;
    margin-bottom: 50px;
}

.rabel-con{
    width: 28%;
    text-align: left;
}

.input-con{
    width: 72%;
    position: relative;
}

.box-contact-t02{
    margin-bottom: 70px;
}

.box-contact-t02 .rabel-con{
    width: 100%;
    margin-bottom: 30px;
}

.box-contact-t02 .input-con{
    width: 100%;
    padding: 0 0 0 50px;
    box-sizing: border-box;
}

#contact-confirm > p{
    margin-bottom: 35px;
}

#contact-confirm .box-flow{
    display: none;
}

.box-input{
    margin-bottom: 25px;
}

.box-contact-t03{
    margin: 70px 0;
}

.box-contact-t03 .rabel-con{
    width: 100%;
    margin-bottom: 10px;
}

.box-contact-t03 .input-con{
    width: 100%;
}

#contact-confirm .box-contact-t02,
#contact-confirm .box-contact-t03{
    display: flex;
    margin-bottom: 50px;
}
#contact-confirm .box-contact-t02 .rabel-con,
#contact-confirm .box-contact-t03 .rabel-con{
    width: 28%;
    margin-bottom: 0;
}

#contact-confirm .box-contact-t02 .input-con,
#contact-confirm .box-contact-t03 .input-con{
    width: 72%;
    padding: 0;
}

@media only screen and (max-width: 768px) {

.title-page{
    font-size: 32px;
    margin-bottom: 30px;
}

    
}


@media only screen and (max-width: 599px) {

#mv-contact{
    padding: 20px 0;
}

.title-page{
    font-size: 7vw;
    margin-bottom: 20px;
}

.mv-logo{
    padding: 28px 0;
}

.mv-logo img{
    width: 58%;
}

#contact-head > div{
    display: block;
    text-align: center;
}

.box-ill{
    width: 100%;
    margin-bottom: 25px;
}

.box-ill img{
    width: 30%;
    vertical-align: middle;
}

.box-txt{
    width: 100%;
    font-size: 4vw;
    line-height: 1.8;
    text-align: left;
}

#contact-input{
    padding: 70px 0;
}

#contact-confirm{
    padding: 10px 0 50px;
}

#contact-thanks{
    padding: 80px 0 0;
}

#contact-thanks article{
    padding: 30px 5px 0;
}

#contact-thanks article .title-contents{
    margin-bottom: 20px;
}

.box-thanks{
    padding: 30px 20px;
}

.store-link{
    padding: 35px 5px;
}


.box-contact{
    display: block;
    margin-bottom: 50px;
}

.rabel-con{
    line-height: 1.4;
    margin-bottom: 15px;
    width: 100%;
}
    
.input-con {
    width: 100%;
    padding-left: 12px;
    box-sizing: border-box;
}
    
    .mw_wp_form .horizontal-item + .horizontal-item{
        margin-left: 0 !important;
    }
    
    .horizontal-item{
        margin-right: 10px;
    }

.box-contact-t02{
    margin-bottom: 35px;
}

.box-contact-t02 .rabel-con{
    margin-bottom: 20px;
}

.box-contact-t02 .input-con{
    padding: 0 0 0 20px;
    line-height: 1.4;
}

.box-input{
    margin-bottom: 25px;
}

.box-contact-t03{
    margin: 50px 0;
}
    
    .box-contact-t02 .input-con label{
        margin-bottom: 10px;
        display: inline-block;
    }
    
#contact-confirm .box-contact-t02,
    #contact-confirm .box-contact-t03{
        width: 100%;
        display: block;
    }    
#contact-confirm .box-contact-t02 .rabel-con,
#contact-confirm .box-contact-t03 .rabel-con{
    width: 100%;
    margin-bottom: 15px;
}

#contact-confirm .box-contact-t02 .input-con,
#contact-confirm .box-contact-t03 .input-con{
    width: 100%;
    padding: 0;
    padding-left: 12px;
}
    
}



/*==================================================
form
================================================== */


input[type="text"],
input[type="number"], 
input[type="email"], 
input[type="password"] , 
input[type="tel"] ,
input[type="date"] ,
input[type="time"] ,
input[type="search"]  {
	width: 100%;
    box-sizing: border-box;
	height: 54px;
	border:2px solid #000;
	padding:5px 10px;
	background:#fff;
    font-size: 100%;
}

input#tel{
    margin-bottom: 0 !important;
}

input[type="text"]:focus,
input[type="number"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="tel"]:focus,
input[type="date"]:focus,
input[type="time"]:focus,
input[type="search"]:focus,
textarea:focus {
}

textarea{
    padding: 20px 15px;
    width: 100%;
    min-height: 350px;
    font-size: 100%;
    box-sizing: border-box;
	background:#fff;
    border:2px solid #000;
}

textarea::placeholder{
    font-size: 100%;
}

input[type="checkbox"]{
    display: inline-block; 
    width: 22px ; 
    height: 22px; 
    background:#fff; 
    vertical-align: bottom;
    margin-right: 5px;
	border: 1px solid #f0f0f0;
	border-radius: 0 !important;
}

input[type="radio"]{
    display: inline-block; 
    width: 22px; 
    height: 22px; 
    background:#fff; 
	vertical-align: middle;
    margin-right:5px;
	border-color: #f0f0f0 !important;
}


select {
cursor: pointer;
    min-width: 50%;
text-indent: 0.01px;
text-overflow: ellipsis;
border: 1px solid #333 !important;
outline: none;
background: #fff;
background-image: none;
box-shadow: none;
height: 46px;
box-sizing: border-box;
	font-size: 16px;
    border-radius: 6px;
}

.required{
    display: inline-block; 
    color: #fff;
    background-color: #c1272d;
    padding: 5px 10px;
    font-size: 13px;  
    line-height: 1;
    vertical-align: bottom;
}

.input-con .required{
    position: absolute;
    top: -30px;
    right: 0;
    margin: 0;
}

#contact-confirm .required{
    display: none;
}

.btn-area{
    text-align: center;
}

input[type="submit"],
button{
	-webkit-appearance:none;
	cursor: pointer;
    font-size: 100%;
}



label.l-rc{
    display: block;
    margin: 5px 0;
}




p.txt-form{margin: 6px 0 0 !important; font-size: 14px;}
.att-contact{
    margin: 35px 0 0 !important;
    color: #c1272d;
    font-size: 18px;
}

#contact-confirm .txt-form,
#contact-confirm .att-contact{
	display: none;
}


#privacy-check{
	text-align: center;
	margin: 50px 0 25px ;
	line-height: 1;
}

#privacy-check p{
	margin-bottom: 30px;
}

#contact-confirm #privacy-check{
    display: none;
}

#privacy-check a{
	text-decoration: underline;
}

#contact-confirm #privacy-check{
    display: none;
}




@media (max-width: 599px) {
    
    .txt-form{font-size: 13px;}


input[type="text"], 
input[type="number"], 
input[type="email"], 
input[type="password"] , 
input[type="tel"] ,
input[type="date"] ,  
input[type="time"] ,     
input[type="search"]  {
	height: 42px;
	font-size: 14px;
}

input[type="date"]{
	width: 80%;
	margin-right: 10px;
	margin-bottom: 12px;
}
	
input[type="submit"],
button{-webkit-appearance:none !important;}	

textarea{
    min-height: 300px;
}

select {
width: 100%;
height: 42px;
} 
	  
    

#privacy-check{
	text-align: center;
	margin: 30px 0 0;
	line-height: 1.8;
}

#privacy-check p{
	margin-bottom: 30px;
}
	
	#privacy-check label{
	}
	
	#privacy-check input{
		min-width: 22px;
	}
    
.att-contact{
    margin: 35px 0 0 !important;
    font-size: 15px;
}    


}




p.txt-error{
    margin-bottom: 35px;
    color: #d21e46;
}

.mw_wp_form .error{
    display: inline !important;
}




/*==================================================
terms, privacy
================================================== */

#terms,
#privacy{
    padding: 100px 0;
}

.box-terms{
    margin: 60px 0 0;
    line-height: 2.2;
}

.box-privacy{
    line-height: 2.2;
    margin-bottom: 50px;
}

#privacy-contents02{
    padding-top: 80px;
}

.box-sub{
    margin: 35px 0 0 18px;
}


.box-terms h3,
.box-privacy h3,
.box-sub h4{
    font-weight: normal;
    display: block;
    font-size: 100%;
}

.ol-basic{
    margin-left: 22px;
}

#terms-contact{
    border-bottom: 1px solid #333;
    padding-bottom: 30px;
}

#terms-contact .title-border-right{
    display: flex !important;
}


@media only screen and (max-width: 599px) {

#terms,
#privacy{
    padding: 50px 0;
}

.box-terms{
    margin: 35px 0 0;
    line-height: 2.0;
}

.box-privacy{
    line-height: 2.0;
    margin-bottom: 30px;
}

#privacy-contents02{
    padding-top: 50px;
}

.box-sub{
    margin: 25px 0 0 16px;
}

#terms-contact{
    padding-bottom: 20px;
}

    
}


/*==================================================
accordion
================================================== */
@media only screen and (max-width: 599px) {

dl.accordion{
}

dl.accordion dt{
    cursor:pointer;
    height: auto; 
    position: relative; 
	transition: 1s;
	line-height: 2.2;
    padding-left: 50px;
}
    dl.accordion dt span{
        display: inline-block;
        width: 40px;
        border-top: 1px solid #002e54;
        position: absolute;
        left: 0;
        top: 16px;
    }
    
    dl.accordion dt:before{
        
    content: '続きを読む ↓';
    color: #002e54;
    }
    
    dl.accordion dt.open:before{
        
    content: '閉じる ↑';
    color: #94afc5;
    }
    
    dl.accordion dt.open span{
        border-color: #94afc5;
    }


dl.accordion dt.open{
}

dl.accordion dt:hover{
    cursor:pointer;
    text-decoration: none;
}


 
dl.accordion dd {
    display:none; 
    border-bottom: 1px solid #002e54;
    padding-bottom: 20px;
}




    
   
	
	
}






