@charset "UTF-8";
/* CSS Documinstallent */

html {
    font-size: 62.5%;
}

body {
    width: 100%;
    height: 100%;
    font-family: 'Zen Maru Gothic', serif;
    font-weight: 400;
    font-size: 1.6rem;
    color: var(--black);
    letter-spacing: 0.12rem;
    line-height: 1.7;
    background-color: #FFFCEE;
    position: relative;
}
@media only screen and (max-width: 500px) {
    body {
        font-size: 1.5rem;
        letter-spacing: 0.07rem;
        line-height: 1.7;
    }
}
a {
    color: #1A1D1A;
    text-decoration: none;
    transition:all 0.3s ease;
}
a:hover{
    transition:all 0.3s ease;
    opacity:0.7;
}
img{
    width: 100%;
}
*, *:before, *:after {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -o-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box;
}
/* ------------------------------------- /
/   スマホ表示・非表示
/* ------------------------------------- */
.pc {
    display: block !important;
}
.sp {
    display: none !important;
}
.pc768 {
    display: block !important;
}
.sp768 {
    display: none !important;
}
@media only screen and (max-width: 768px) {
.pc768 { display: none !important; }
.sp768 { display: block !important; }
}
@media only screen and (max-width: 500px) {
.pc { display: none !important; }
.sp { display: block !important; }
}
/* ------------------------------------- /
/   共通
/* ------------------------------------- */
.flex{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
}
.inner{
    max-width: 1200px;
    margin:0 auto;
}
.anchor{
    padding-top: 100px !important;
    margin-top: -100px !important;
}
:root{
    --green: #80B7A4;
    --darkgreen: #298F6C;
    --black: #36322D;
}
.ttl_deco{
    width: 100%;
    max-width: 45px;
    margin: 0 auto;
}
h2{
    margin: 0 auto 30px;
}
.message_area,.menu_area,.flow_area, .information_area,.contact_area{
    padding-top: 90px;
    padding-bottom: 90px;
}
.br390{
    display: none;
}
.br768{
    display: none;
}
.bold{
    font-weight: bolder;
}
@media  only screen and (max-width: 1200px){
	.inner{
        padding: 0 20px;
    }
}
@media  only screen and (max-width: 768px){
	.message_area,.menu_area,.flow_area,.information_area,.contact_area{
        padding-top: 70px;
        padding-bottom: 70px;
    }
    .br768{
        display: block;
    }
}
@media  only screen and (max-width: 390px){
	.anchor{
        margin-top: 60px;
    }
    .ttl_deco{
        max-width: 38px;
    }
    .br390{
        display: block;
    }
    .message_area,.menu_area,.flow_area,.information_area,.contact_area{
        padding-top: 50px;
        padding-bottom: 50px;
    }
}

/* ------------------------------------- /
/   header
/* ------------------------------------- */
header{
    left: 0;
    right: 0;
    z-index: 3;
    position: fixed;
}
header .header_inner{
    max-width: 1200px;
    padding: 20px 30px;
    border-bottom: 1px solid #fff;
    margin: auto;
    align-items: center;
}
header .logo{
    width: 100%;
    max-width: 100px;
}
header .pc_nav{
    width: 52%;
}
header .pc_nav .nav_txt1{
    max-width: 50px;
}
header .pc_nav .nav_txt2{
    max-width: 75px;
}
header .pc_nav .nav_txt3{
    max-width: 52px;
}
header .pc_nav .nav_txt4{
    max-width: 110px;
}
header .pc_nav .nav_txt5{
    max-width: 75px;
}
header .pc_nav .nav_txt6{
    max-width: 42px;
}
header .pc_nav  .nav_sns1 img{
    width: 22px;
}
header .pc_nav  .nav_sns2 img{
    width: 24px;
}


@media  only screen and (max-width: 1200px){
	header .header_inner{
        margin: 0 20px;
    }
    header .pc_nav{
        width: 50%;
    }
}
@media  only screen and (max-width: 1024px){
    header .header_inner{
        padding: 20px;
    }
    header .pc_nav{
        width: 60%;
    }
}
@media  only screen and (max-width: 768px){
    header .pc_nav{
        display: none;
    }
    header .header_inner{
        border-bottom: none;
    }
}

/* ------------------------------------- /
/   main_area
/* ------------------------------------- */
.main_area {
    position: relative;
    width: 100%;
    box-sizing: border-box;
    height: 100vh;
}
.main_area .slide {
    position: relative;
    width: 100%;
    height: 100vh;
}
.main_area picture img{
    height: 100vh;
    object-fit:cover;
    object-position: 0 0;
}
.main_area .slide li img{
    object-position: right 0% bottom 0%;
}
.main_area .slide::after{
    content: "";
    position: absolute;
    width: 100%;
    height: 100vh;
    top: 0;
    left: 0;
    background-color: rgba(43, 41, 41, 0.3);
}
.main_area  .main_txt{
    position: absolute;
    top: 40%;
    left: 50%;
    transform: translate(-50%,0);
}
.main_area  .main_txt h1 {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 400;
    font-size: clamp(24px, 4vw, 46px);
    color: #fff;
    line-height: 1.4;
    white-space: nowrap;
}
.main_area .fixed_btn{
    position: fixed;
    right: 30px;
    bottom: 90px;
    width: 50px;
    height: 50px;
    background-color: var(--darkgreen);
    z-index: 9999;
    border-radius: 50px;
    line-height: 1.2;
    display: flex;
    justify-content: center;
    align-items: center;
}
.main_area .fixed_btn:hover{
    background-color: #285e4b;
    transition: 0.3s;
}
.main_area .fixed_btn a{
    color: #fff;
    font-size: 1.3rem;
    display: block;
    text-align: center;
    cursor: pointer;
}
.main_area .fixed_btn a:hover{
    color: #a8a8a8;
    transition: 0.3s;
}
@media  only screen and (max-width: 768px){
    .main_area .fixed_btn{
        right: 20px;
        bottom: 90px;
    }
}
@media  only screen and (max-width: 390px){
    .main_area .fixed_btn{
        right: 15px;
    }
}


/* ------------------------------------- /
/   news_area
/* ------------------------------------- */
.news_area{
    position: absolute;
    width: 90%;
    border-radius: 0 10px 10px 0;
    bottom: -17%;
    left: 0;
    background-color: #fff;
    padding: 40px 70px;
    justify-content: flex-start;
    z-index: 2;
}
.news_area .news_ttl{
    width: 20%;
}
.news_area h2{
    max-width: 120px;
}
.news_area span{
    margin-right: 30px;
}
.news_area .news_content{
    width: 80%;
    
}
.news_area .news_content li{
    padding: 20px 0;
    justify-content: flex-start;
    border-bottom: 1px solid #C4BAA1;
    flex-wrap: nowrap;
}

@media only screen and (max-width: 1200px){
    .news_area{
        padding: 40px;
        justify-content: space-between;
    }
    .news_area .news_ttl{
        width: 10%;
    }
    .news_area .news_content{
        width: 85%;
    }
    .news_area span{
        width: 100%;
    }
    .news_area p{
        line-height: 1.4;
    }
    .news_area .news_content li{
        padding: 10px 0 15px;
        flex-wrap: wrap;
    }
}
@media only screen and (max-width: 768px){
    .news_area{
        width: 95%;
        padding: 40px 30px;
        bottom: -15%;
    }
    .news_area .news_ttl{
        width: 15%;
    }
    .news_area .news_content{
        width: 82%;
    }
    
}
@media only screen and (max-width: 600px){
    .news_area .news_content li:first-child{
        padding-top: 5px;
    }
    .news_area .news_ttl{
        width: 100%;
    }
    .news_area .news_ttl h2{
        margin: 0 auto 0 0;
    }
    .news_area .news_content{
        width: 100%;
    }
}
@media only screen and (max-width: 390px){
    .news_area h2{
        max-width: 100px;
    }
}

/* ------------------------------------- /
/   message_area
/* ------------------------------------- */
.message_area{
    text-align: center;
    font-size: clamp(18px, 3vw, 21px);
    padding: 250px 0 150px;
    position: relative;
    background: url(../img/bg_message.png);
    background-position: right 0 top 0;
    background-size: cover;
    background-repeat: no-repeat;
}
.message_area h2{
    max-width: 180px;
}
@media only screen and (max-width: 768px){
    .message_area{
        padding: 220px 0 100px;
        background-position: right 0 bottom 0;
    }
    
}
@media only screen and (max-width: 390px){
    .message_area{
        padding: 200px 0 80px;
    }
    .message_area h2{
        max-width: 160px;
    }
}

/* ------------------------------------- /
/   menu_area
/* ------------------------------------- */
.menu_area{
    background-color: #CEC4AB;
    color: #fff;
}
.menu_area h2{
    max-width: 150px;
}
.menu_area .menu_content{
    position: relative;
    margin-bottom: 30px;
}
.menu_area .menu_content .cont{
    width: 30%;
    position: relative;
}

.menu_area .menu_content .cont_top{
    margin-bottom: 80px;
    display: block;
}
.menu_area .menu_content .cont img{
    border-radius: 10px;
    margin-bottom: 20px;
}
.menu_area .menu_content .cont h3{
    margin-bottom: 15px;
    font-size: clamp(17px, 3vw, 18px);
    font-weight: 500;
}
.menu_area .menu_content .cont_inner::after{
    width: 1px;
    height: 122%;
    background-color: #B1A894;
    position: absolute;
    top: -7%;
    right: -8.5%;
    content: "";
    display: block;
}
.menu_area .menu_content .cont:first-of-type .cont_inner:after{
    height: 114%;
}
.menu_area .menu_content .cont:nth-child(3) .cont_inner::after,
.menu_area .menu_content .cont:last-child .cont_inner::after{
    display: none;
}

@media only screen and (max-width:870px){
    .menu_area .menu_content .cont_inner::after{
        height: 127.5%;
    }
    .menu_area .menu_content .cont:first-of-type .cont_inner:after{
        height: 110%;
    }
    .menu_area .menu_content .cont_top{
        margin-bottom: 50px;
    }
    .menu_area .menu_content{
        margin-bottom: 0;
    }
}
@media only screen and (max-width: 768px){
    .menu_area .menu_content .cont{
        width: 48%;
    }
    .menu_area .menu_content .cont_inner::after{
        right: -4.5%;
        top: -4%;
    }
    .menu_area .menu_content .cont_inner::after{
        height: 110%;
    }
    .menu_area .menu_content .cont:nth-child(4){
        margin-bottom: 50px;
    }
    .menu_area .menu_content .cont:nth-child(2) .cont_inner::after,
.menu_area .menu_content .cont:nth-child(4) .cont_inner::after{
    display: none;
}
.menu_area .menu_content .cont:nth-child(3) .cont_inner::after{
    width: 1px;
    height: 110%;
    background-color: #B1A894;
    position: absolute;
    top: -4%;
    right: -4.5%;
    content: "";
    display: block;
}
.menu_area .menu_content .cont:nth-child(5) .cont_inner::after{
    height: 114%;
}
.menu_area .menu_content .cont h3{
    margin-bottom: 5px;
}
}
@media only screen and (max-width: 600px){
    .menu_area .menu_content .cont{
        width: 46%;
    }
    .menu_area .menu_content .cont_inner::after,
    .menu_area .menu_content .cont:nth-child(3) .cont_inner::after{
        right: -9%;
    }
}
@media only screen and (max-width: 500px){
    .menu_area .menu_content .cont:nth-child(5) .cont_inner::after{
        height: 118%;
    }
}

@media only screen and (max-width: 390px){
    .menu_area h2 {
        max-width: 130px;
    }
    .menu_area .menu_content .cont{
        width: 100%;
    }
    .menu_area .menu_content .cont_inner::after,
    .menu_area .menu_content .cont:nth-child(3) .cont_inner::after{
        display: none;
    }
    .menu_area .menu_content .cont_top{
        margin-bottom: 30px;
    }
    .menu_area .menu_content .cont:nth-child(4),
    .menu_area .menu_content .cont:nth-child(5){
        margin-bottom: 30px;
    }
    .menu_area .menu_content .cont img{
        margin-bottom: 10px;
    }
}

/* ------------------------------------- /
/   flow_area
/* ------------------------------------- */
.flow_area{
    background: url(../img/bg_flow.png);
    background-position: right 0 top 0;
    background-size: cover;
    background-repeat: no-repeat;
}
.flow_area h2{
    max-width: 115px;
}
.flow_ttl{
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
}
.flow_ttl .number{
    color: var(--green);
    position: relative;
    font-size: 1.4rem;
}
.flow_ttl .number::after{
    content:"";
    display:inline-block;
    width: 1px;
    height: 15px;
    background-color: var(--green);
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: -8px;
}
.flow_ttl h3{
    padding-left: 1.5rem;
    font-size: clamp(17px, 3vw, 18px);
}
.flow_ttl.flex{
    justify-content: flex-start;
}
.flow_area p{
    text-align: center;
    margin-bottom: 4rem;
}
.flow_area .cont4{
    width: 22%;
    position: relative;
}
.flow_area .cont4::before{
    content: "";
    position: absolute;
    top: 55%;   /* 縦軸をセンタリングする */ 
    left: -11%;
    transform: translateY(-55%);   /* 縦軸をセンタリングする */  
    border: 10px solid transparent;
    border-left: 15px solid #CEC4AB;   /* 好みで色を変えてください */  
}
.flow_area .cont4:first-of-type:before{
    content: none;
}
.flow_area .cont4 img{
    border-radius: 10px;
}
@media only screen and (max-width: 768px){
    .flow_area .cont4{
        width: 47%;
    }
    .flow_area .cont4::before{
        left: -8%; 
    }
    .flow_area .cont_top{
        margin-bottom: 2rem;
    }
    .flow_area .cont4:nth-of-type(3):before{
        content: none;
    }
}
@media only screen and (max-width: 600px){
    .flow_area .cont4::before{
        left: -8%;
        border: 7px solid transparent;
        border-left: 10px solid #CEC4AB;   /* 好みで色を変えてください */  
    }
}
@media only screen and (max-width: 390px){
    .information_area h2 {
        max-width: 95px;
    }
    .flow_area p {
        margin-bottom: 3rem;
    }
    .flow_area .cont4{
        width: 100%;
    }
    .flow_area .cont4::before{
        content: none;
    }
    .flow_area .cont_top {
        margin-bottom: 3rem;
    }
    .flow_area .cont4:last-of-type{
        margin-top: 3rem;
    }
}


/* ------------------------------------- /
/   information_area
/* ------------------------------------- */
.information_area{
    background: url(../img/bg_info.jpg);
    background-position: right 0 top 0;
    background-size: cover;
    background-repeat: no-repeat;
}
.information_area h2{
    max-width: 220px;
}
.information_area .information_inner{
    background-color: #fff;
    max-width: 1100px;
    margin: 0 auto;
    border-radius: 10px;
    padding: 80px 60px;
}
.information_area .info_top{
    padding-bottom: 30px;
    border-bottom: 1px solid #C4BAA1;
}
.information_area .open{
    margin-bottom: 20px;
}
.information_area .info_h3_ttl{
    font-size: clamp(17px, 3vw, 18px);
    color: var(--darkgreen);
    font-weight: 500;
}
.information_area table th{
    padding-right: 15px;
}
.information_area .info_r{
    position: relative;
    width: 45%;
    height: 0;
    padding-top: 32%;
}
.information_area .info_r iframe{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.information_area .info_bottom{
    margin-top: 30px;
}
.information_area li{
    text-indent: -1em;
    padding-left: 1em;
}

@media only screen and (max-width: 1024px){
    .information_area .info_r{
        width: 40%;
        padding-top: 33%;
    }
}
@media only screen and (max-width: 950px){
    .information_area .info_l{
        width: 80%;
        margin: 0 auto;
    }
    .information_area .info_r{
        width: 80%;
        padding-top: 40%;
        margin: 30px auto 0;
    }
}
@media only screen and (max-width: 768px){
    .information_area .info_r,.information_area .info_l{
        width: 100%;
    }
    .information_area .information_inner{
        padding: 60px 40px;
    }
}
@media only screen and (max-width: 600px){
}
@media only screen and (max-width: 500px){
    .information_area .info_r{
        margin-top: 20px;
        padding-top: 50%;
    }
}
@media only screen and (max-width: 390px){
    .information_area h2 {
        max-width: 200px;
    }
    .information_area .information_inner{
        padding: 40px 25px;
    }
}

/* ------------------------------------- /
/   contact_area
/* ------------------------------------- */
.contact_area{
    background: url(../img/bg_contact.png);
    background-position: right 0 top 0;
    background-size: cover;
    background-repeat: no-repeat;
}
.contact_area h2{
    max-width: 180px;
}
.contact_area .contact_bg{
    background-color: var(--green);
    border-radius: 10px;
    max-width: 900px;
    margin: 0 auto;
    padding-top: 60px;
    padding-bottom: 60px;
}
.contact_area .contact_content{
    max-width: 700px;
    margin: 0 auto;
    position: relative;
}
.contact_area .contact_ttl{
    color: #fff;
    font-size: clamp(17px, 3vw, 18px);
    font-weight: 500;
}
.contact_area .contact_l .contact_ttl{
    margin-bottom: 5px;
}
.contact_area .contact_r .contact_ttl{
    margin-bottom: 25px;
}
.contact_area .contact_r{
    margin-right: 10%;
}
.contact_area .contact_l .tel{
    padding: 5px 0 5px 35px;
    background-image: url(../img/tel.svg);
    background-size: 30px;
    background-repeat: no-repeat;
    background-position: left 15% top 60%;
}
.contact_area .contact_l a{
    display: inline-block;
    width: 100%;
    text-align: center;
    
}
.contact_area .contact_l span{
    font-size: clamp(28px, 3vw, 30px);
    font-weight: 500;
    color: #fff;
    
}
.contact_area .contact_r img{
    width: 45px;
    margin: 0 auto;
}
.contact_area .contact_l::after{
    width: 1px;
    height: 150%;
    background-color: #fff;
    position: absolute;
    top: -15%;
    left: 55%;
    content: "";
    display: block;
}
@media only screen and (max-width: 1200px){
}
@media only screen and (max-width: 1024px){
}
@media only screen and (max-width: 800px){
    .contact_area .contact_content{
        max-width: 650px;
    }
    .contact_area .contact_l .tel {
        padding: 5px 0 5px 25px;
    }
}
@media only screen and (max-width: 768px){
    .contact_area .contact_content{
        max-width: 510px;
        text-align: center;
    }
    .contact_area .contact_l span {
        font-size: clamp(28px, 3vw, 30px);
    }
    .contact_area .contact_l .tel{
        padding-left: 40px;
        padding: 5px 0 5px 30px;
        background-position: left 0% top 60%;
    }
    .contact_area .contact_l .contact_ttl,.contact_area .contact_r .contact_ttl{
        line-height: 1.4;
    }
    .contact_area .contact_r {
        margin-right: 0%;
    }
}
@media only screen and (max-width: 600px){
    .contact_area .contact_content{
        max-width: 450px;
    }
    .contact_area .contact_l .tel {
        padding: 5px 0 5px 25px;
        background-position: left -2% top 60%;
    }
}
@media only screen and (max-width: 500px){
    .contact_area .contact_content{
        max-width: 400px;
    }
    .contact_area .contact_l .tel {
        background-size: 25px;
    }
}

@media only screen and (max-width: 390px){
    .contact_area h2 {
        max-width: 160px;
    }
    .contact_area .contact_r,.contact_area .contact_l{
        width: 100%;
    }
    .contact_area .contact_l::after{
        display: none;
    }
    .contact_area .contact_l{
        margin-bottom: 30px;
    }
    .contact_area .contact_l .tel{
        background-position: left 22% top 60%;
    }
    .contact_area .contact_l .contact_ttl{
        margin-bottom: 0;
    }
    .contact_area .contact_r .contact_ttl {
        margin-bottom: 15px;
    }
}

/* ------------------------------------- /
/   footer
/* ------------------------------------- */
footer{
    background-color: #726951;
    color: #fff;
    font-size: clamp(13px, 3vw, 14px);
    text-align: center;
    padding: 30px 0 20px;
}
footer a{
    color: #fff;
}
footer .footer_sns{
    width: 80px;
    margin: 0 auto 10px;
    align-items: center;
}
footer .footer_sns .instagram,
footer .footer_sns .twitter{
    width: 25px;
}

/*---------------------------------  /
/*  page-top
/*--------------------------------- */
#page-top{
    position: fixed;
    display: none;
    right: 30px;
    bottom: 30px;
    width: 50px;
    height: 50px;
    background-color: var(--green);
    z-index: 9999;
    border-radius: 50px;
}
#move-page-top{
    display: block;
    font-size: 2rem;
    line-height: 50px;
    text-align: center;
    text-decoration: none;
    color: #fff;
    cursor: pointer;
}
#page-top:hover{
    background-color: #4b9177;
    transition: 0.3s;
    color: #fff;

}
#move-page-top:hover{
    color: #cecece;
    transition: 0.3s;
}
@media  only screen and (max-width: 768px){
    #page-top{
        right: 20px;
    }
}
@media  only screen and (max-width: 390px){
    #page-top{
        right: 15px;
    }
}