@charset "utf-8";

/* レイアウト*/
body{
    font-family: 'Noto Sans JP', sans-serif;
	color: #684F31;
	font-size: 1rem;
	line-height: 1.8;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	-webkit-text-size-adjust: 100%; 
	word-wrap: break-word;
	background-color: #fff;
}
@media screen and (max-width: 900px) {
body{
	font-size: 0.8rem;
	}
}
*{box-sizing: border-box;}
ul{
	margin:0;
	padding: 0;
	list-style: none;
}
a{
	text-decoration: none;
    outline: none;
}
img{
    width: 100%;
    height: auto;
}
/* font*/
.crimson{
    font-family: "Crimson Text", serif;
    line-height: 1;
}
.yellow{
    color: #CCB329;
}
/* section */
section{
    padding: 100px 0;
}
#about,
#faq{
    background-color: #fff;
}
#service,
#contact{
     background-color: #F6F3E0;
}
#price{
    background-color: #F9F9F6;
}
#profile{
    background-color: #DCE7E3;
}
@media screen and (max-width: 900px) {
    section{
        padding: 60px 0;
    }
}
/* common */
h2{
    display: flex;
    flex-direction: column;
    align-items: center;
    line-height: 1.2;
    margin-bottom: 50px;
    font-weight: 700;
    font-size: 200%;
}
h2 span{
    color: #CCB329;
    margin-top: 10px;
}
.name-en{
    font-size: 5rem;
    font-weight: 700;
    text-transform: uppercase;
}
/* hover */
h1 a:hover,
#g-nav a:hover,
#footer a:hover,
#page-top a:hover{
    opacity: .7;
}
#g-nav a:hover{
    color: #CCB329;
}
@media screen and (max-width: 900px) {
    .name-en{
        font-size: 4rem;
    }
}
@media screen and (max-width: 550px) {
    .name-en{
        font-size: 3.5rem;
    }
}
@media screen and (max-width: 450px) {
    .name-en{
        font-size: 2.5rem;
    }
}
@media screen and (max-width: 330px) {
    .name-en{
        font-size: 2.2rem;
    }
}
/* about */
#about{
    position: relative;
}
.about-wrap{
    display: flex;
    justify-content: center;
    gap: 80px;
    padding: 0 60px;
    max-width: 1360px;
    margin: 0 auto;
}
.about-bg{
    position: absolute;
    width: 40%;
    height: 35%;
    max-width: 450px;
    max-height: 350px;
    background-color: #EEE7BB;
    top: 58%;
    left: 50%;
    transform: translate( -50%, -50%);
    z-index: 1;
}
.about-wrap img{
    width: 45%;
    height: 45%;
    max-width: 540px;
    max-height: 360px;
    z-index: 2;
}
.about-box{
    margin-top: 70px;
    z-index: 2;
}
.about-box p{
    margin-bottom: 20px;
}
.about-box p:last-of-type{
    margin-bottom: 0;
}
.impact{
    font-size: 120%;
    font-weight: 700;
}
@media screen and (max-width: 900px) {
    .about-wrap{
        flex-direction: column;
    }
    .about-bg{
        display: none;
    }
    .about-wrap img{
        width: 80%;
        height: 80%;
        box-shadow: 100px 100px 0 #EEE7BB;
        margin-left: 5%;
    }
}
@media screen and (max-width: 550px) {
    .about-wrap img{
        box-shadow: 70px 70px 0 #EEE7BB;
    }
}
@media screen and (max-width: 450px) {
    .about-wrap{
        padding: 0 20px;
        gap: 20px;
    }
    .about-wrap img{
        width: 100%;
        height: 100%;
        box-shadow: 50px 50px 0 #EEE7BB;
        margin: 0 auto;
    }
}
/* service */
.service-lead{
    width: 90%;
    max-width: 700px;
    margin:0 auto 50px;
}
.service-list{
    max-width: 1400px;
    margin: 0 auto 100px;
}
.service-item{
    display: flex;
}
.service-item:nth-of-type(2),
.service-item:nth-of-type(4){
    flex-direction: row-reverse;
}
.service-wrap{
    background-color: #E1DDD2;
    position: relative;
}
.service-img,
.service-wrap{
    width: 50%;
}
.service-number{
    font-family: "Zen Old Mincho", serif;
    font-size: 25rem;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #D2CBBE;
}
.service-box{
    position: absolute;
    padding: 40px 12%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.service-title{
    display: block;
    margin: 0 auto 30px;
    text-align: center;
    width: 80%;
}
.service-detail{
    margin-bottom: 30px;
}
.check-list{
    font-weight: 700;
}
.check-list li{
    display: flex;
    gap: .5rem;
    margin-bottom: 15px;
    align-items: center;
}
.check-list li:last-of-type{
    margin-bottom: 0;
}
.check-list img{
    width: 25px!important;
    height: 25px;
}
.komidashi{
    font-size: 110%;
    font-weight: 700;
    margin-bottom: 20px;
}
ol{
    list-style: none;
}
.mgb-control{
    margin-bottom: 30px;
}
@media screen and (max-width: 1200px) {
    .service-number{
        font-size: 22rem;
    }
    .service-box{
        padding: 30px 6%;
    }
    .check-list li{
        margin-bottom: 10px;
    }
}
@media screen and (max-width: 1024px) {
    .service-title{
        margin-bottom: 10px;
    }
    .service-detail,
    .komidashi{
        margin-bottom: 10px;
    }
    .service-number{
        font-size: 19rem;
    }
    .check-list li{
        margin-bottom: 10px;
    }
}
@media screen and (max-width: 900px) {
    .service-item,
    .service-item:nth-of-type(2),
    .service-item:nth-of-type(4){
        flex-direction: column;
        background-color: #E1DDD2;
        padding: 50px 0 20px;
        margin: 0 auto 60px;
        width: 90%;
    }
    .service-img{
        width: 70%;
        margin: 0 auto;
    }
    .service-wrap{
        width: 80%;
        height: 100%;
        margin: 0 auto;
    }
    .service-box{
        position: inherit;
        padding: 50px;
    }
}
@media screen and (max-width: 550px) {
    .service-list{
        margin: 0 auto 60px;
    }
    .service-item,
    .service-item:nth-of-type(2),
    .service-item:nth-of-type(4){
        width: 100%;
        padding: 30px 0 0;
        margin: 0 auto 30px;
    }
    .service-img{
        width: 90%;
    }
    .service-box{
        padding: 30px 0;
    }
    .service-number{
        font-size: 15rem;
    }
}
@media screen and (max-width: 450px) {
    .service-title{
        width: 100%;
    }
    .mgb-control{
        margin-bottom: 20px;
    }
}
/*--merit--*/
.merit-title{
    margin: 0 auto 50px;
    width: 65%;
    max-width: 530px;
}
.merit-list{
    display: flex;
    justify-content: center;
    gap: 40px;
    max-width: 1100px;
    margin: 0 auto;
}
.merit-list li{
    background-color: #C9D8C4;
    padding: 40px 50px 50px 40px;
    position: relative;
    width: calc((100% - 80px) / 3);
}
.merit-list li::before{
    content: '';
    width: 100%;
    height: 100%;
    border: 1px dashed #684F31;
    position: absolute;
    top: -10px;
    left: -10px;
}
.merit-list h4{
    text-align: center;
    font-size: 120%;
    margin-bottom: 30px;
    font-weight: 700;
}
@media screen and (max-width: 1200px) {
    .merit-list{
        gap: 30px;
        flex-wrap: wrap;
    }
    .merit-list li {
        padding: 30px 40px 40px 30px;
        width: 40%;
        min-height: 220px; 
    }
}
@media screen and (max-width: 767px) {
     .merit-list li {
        width: 75%;
        min-height: inherit;
    }
    .merit-list h4{
        margin-bottom: 15px;
    }
}
@media screen and (max-width: 450px) {
    .merit-list li {
        width: 85%;
    }
    .merit-title{
        width: 80%;
        margin-bottom: 30px;
    }
}
/* price */
table{
    width: 90%;
    max-width: 900px;
    margin: 0 auto 30px;
}
th,td{
    padding: 5px 20px;
    height: 60px;
}
th{
    background-color: #EAE1AB;
    width: 20%;
}
td{
    background-color: #F6F3E0;
}
tr td:first-of-type{
    text-align: center;
}
tr td:last-of-type{
    text-align: right;
    color: #CA3634;
    font-weight: 700;
    font-size: 110%;
}
thead tr th:first-of-type{
    background-color: #CCB329;
    color: #fff;
    width: 40%;
}
th span{
    font-size: 85%;
    display: block;
    line-height: 1.2;
}
.only{
    font-size: 95%!important;
}
@media screen and (max-width: 450px) {
    thead tr th:first-of-type{
        width: 35%;
    }
    th,td{
        padding: 5px 10px;
    }
}
@media screen and (max-width: 330px) {
    th,td{
        padding: 5px;
    }
}
/* profile */
.profile-box{
    display: flex;
    justify-content: center;
    width: 90%;
    max-width: 1100px;
    margin: 0 auto;
}
.profile-photo p{
    font-size: 150%;
    font-weight: 700;
    text-align: center;
}
.profile-photo p:last-of-type{
    font-family: "Italianno", serif;
    color: #74A291;
    font-size: 300%;
    font-weight: 400;
    margin-top: -10px;
}
.prof-photo img{
    width: 42%;
}
.profile-detail{
    display: flex;
    flex-direction: column;
    gap: 50px;
}
.message{
    padding: 0 10%;
}
.message-title{
    display: block;
    width: 33%;
    margin:0 auto 30px;
    text-align: center;
}
.message p{
    margin-bottom: 20px;
}
.history{
    background-color: #fff;
    border: 1px solid #684F31;
    padding: 30px 11%;
    box-shadow: 20px 20px 0 rgba(104,79,49,0.25);
    max-width: 630px;
    width: 95%;
    margin-left: -50px;
}
.history dl{
    display: flex;
    gap: 1rem;
}
.history dl:last-of-type{
    margin-bottom: 20px;
}
.history dt{
    font-weight: 700;
}
.history dt:first-of-type{
    min-width: 26px;
}
@media screen and (max-width: 1200px) {
    .history{
        margin: 0 auto;
    }
}
@media screen and (max-width: 1024px) {
    .history{
        padding: 30px;
    }
}
@media screen and (max-width: 900px) {
    .profile-box{
        flex-direction: column;
    }
    .profile-photo{
        width: 70%;
        margin: 0 auto;
    }
    .profile-detail{
        flex-direction: column-reverse;
        gap: 50px;
    }
}
@media screen and (max-width: 450px) {
    .history{
        box-shadow: 10px 10px 0 rgba(104,79,49,0.25);
    }
    .message{
        padding: 0 2%;
    }
    .message-title{
        width: 50%;
    }
}
/* faq */
.faq-lead{
    width: 80%;
    max-width: 580px;
    margin: 0 auto 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
@media screen and (max-width: 550px) {
    .faq-lead{
        width: 90%;
        max-width: 465px;
    }
}
/*---アコーディオン---*/
.accordion-area{
    width: 80%;
    max-width: 800px;
    margin: 0 auto;
}
.accordion-area dl{
    background-color:#EAE1AB;
    border: 1px solid #684F31;
    margin-bottom: 25px;
}
.accordion-area dl:last-of-type{
    margin-bottom: 0;
}
.question{
    position: relative;
    display: flex;
    padding: 15px 20px;
    font-size: 110%;
}
.question span:first-of-type{
    margin-right: 1rem;
}
.question span:last-of-type{
    width: 75%; 
}
.question::before,
.question::after{
    position: absolute;
    content:'';
    width: 20px;
    height: 1px;
    background-color: #684F31;
    transition: all .2s;
}
.question::before{
    top: 1.5rem;
    right: 1.5rem;
    rotate: 0deg;
}
.question::after{
    top: 1.5rem;
    right: 1.5rem;
    rotate: 90deg;
}
.question.close::before{
    rotate: 180deg;
}
.question.close::after{
    display: none;
}
.answer{
    border-top: 1px solid #000;
    display: none;
    align-items: center;
    gap: 1.5rem;
    background-color: #fff;
    padding: 20px 30px;
}
@media screen and (max-width: 450px) {
    .accordion-area{
        width: 90%;
    }
}
/* contact */
#contact{
    text-align: center;
}
.contact-lead{
    width: 90%;
    max-width: 580px;
    margin: 0 auto 50px;
}
.contact-phone{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1rem;
}
.contact-phone img{
    width: 18px;
}
.contact-phone a{
    color: #684F31;
    font-size: 180%;
    font-weight: 700;
}
form{
    width: 85%;
    max-width: 800px;
	margin: 60px auto 0;
    text-align: left;
}
#contact dl{
    margin-bottom: 20px;
    color: #684F31;
}
#contact li,
#contact dt{
    margin-bottom: 20px;
}
#contact input,
button,
textarea,
select{
	margin: 0;
	padding: 0;
	border: none;
	outline: none;
	background: none;
}
#contact ul input[type='text'] , 
#contact ul input[type='email'] , 
#contact ul textarea{
	width: 100%;
	background: #fff;
	padding: 10px;
	-webkit-appearance:none;
	   -moz-appearance:none;
	        appearance:none;
}
#contact ul input[type='text'] , input[type='email'] {
	height: 50px;
}
#contact .submit-btn{
    width: 250px;
    margin: 0 auto;
}
#contact input[type='submit']{
	background-color: #CCB329;
    color: #fff;
    border: 2px solid #fff;
    text-align: center;
    padding: 5px 20px;
    width: 250px;
    margin: 2rem auto 0;
    transition: all .3s;
}
#contact input[type='submit']:hover{
    border: 2px solid #CCB329;
	background-color: #fff;
    color: #CCB329;
} 
#contact ul textarea{
	height: 200px;
    border-radius: 0;
}
.required{
	font-size: 85%;
	color: #CA3634;
	margin-left: 10px;
}
@media screen and (max-width:550px) {
    form{
        width: 90%;
    }
}
@media screen and (max-width:450px) {
    #contact{
        text-align: left;
    }
}
/* footer */
#footer{
    color: #fff;
    background: url("../assets/footer_bg.png");
    background-size: cover;
    background-repeat: no-repeat;
    height: 360px;
    padding: 50px 20px 30px;
    position: relative;
}
.footer-logo{
    display: block;
    width: 50%;
    max-width: 250px;
    margin: 0 auto 50px;
}
.footer-box{
    display: flex;
    justify-content: center;
    align-items: flex-end;
    gap: 50px;
}
.footer-nav{
    display: flex;
    justify-content: center;
    gap: 10px 25px;
    flex-wrap: wrap;
    width: 100%;
    max-width: 400px;
}
.footer-nav li a{
    color: #fff;
}
#footer .insta-icon{
    width: 30px;
}
.copyright{
    font-size: 90%;
    font-weight: 700;
    position: absolute;
    left: 50%;
    transform: translateX( -50%);
    bottom: 30px;
    width: 100%;
    text-align: center;
}
@media screen and (max-width:767px) {
    .footer-box{
        flex-direction: column;
        align-items: center;
        gap: 30px;
    }
    .footer-logo{
        width: 80%;
    }
    #footer{
        height: 400px;
    }
    #footer .information{
        flex-direction: row;
    }
    .footer-nav{
        gap: 5px 20px;
    }
}
@media screen and (max-width:450px) {
    #footer{
        height: 460px;
        padding-bottom: 80px;
    }
    #footer .information{
        flex-direction: column;
        gap: 10px;
    }
    .copyright{
        bottom: 80px;
    }
}
/* thanks.html */
.main{
    height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background-color: #EEE7BB;
}
#thx{
    width: 80%;
    margin: 0 auto 100px;
    text-align: center;
}
#thx img{
    display: block;
    width: 90%;
    max-width: 250px;
    margin: 0 auto 50px;
}
#thx p{
    color: #684F31;
    margin-bottom: 20px;
}
#thx p:first-of-type{
    font-size: 150%;
    font-weight: 700;
}
#thx p:nth-of-type(2){
    margin-bottom: 50px;
}
.back-btn{
    text-align: center;
}
.back-btn a{
	background-color: #CCB329;
    color: #fff;
    border: 2px solid #fff;
    text-align: center;
    padding: 5px 20px;
    width: 250px;
    height: 60px;
    margin: 2rem auto 0;
    transition: all .3s;
    display: flex;
    justify-content: center;
    align-items: center;
}
.back-btn a:hover{
    border: 2px solid #CCB329;
	background-color: #fff;
    color: #CCB329;
}
#thx .copyright{
    bottom: 30px;
}
@media screen and (max-width: 767px) {
    #thx{
        text-align: left;
    }
}