@import url('https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400..800;1,400..800&family=Noto+Sans+JP:wght@100..900&family=Shippori+Mincho+B1&display=swap');

*,*::before,*::after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:none;text-size-adjust:none}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}input,button,textarea,select{font:inherit}ul,ol{list-style:none}a{text-decoration:none;color:inherit}textarea{resize:vertical}

html{font-size: 18px; line-height: 1.7em;}

/*Base Color */
:root{--green:#46562e;--brown:#42210b;--bg_green:#e6efda;--bg_gray:#f4f4f4;--bg_white:rgba(255,255,255,0.77); --grd:linear-gradient(to left, #bcd8e4, #c3d8ab, #c3d8ab); --bg_yellow:#f4f4ed; --red:#990000; }

/*fonts*/
.jn_tit { font-family: "Shippori Mincho B1", serif; font-weight: 400; font-style: normal;}
.en_tit { font-family: "EB Garamond", serif; font-optical-sizing: auto; font-size: 3.5rem; font-weight: normal; color:var(--green); position: relative;}
.en { font-family: "EB Garamond", serif; font-optical-sizing: auto; font-weight: normal;}
.jn { font-family: "Shippori Mincho B1", serif; font-weight: 400; font-style: normal;}
.v{writing-mode: vertical-rl; -webkit-writing-mode: vertical-rl; /* Safari用 */ font-size: 2.8rem; color: var(--brown);}

/*text*/
.center{text-align: center;}small{font-size: 0.8em;}.fr{font-weight: normal;}

/*title*/
.tit_g,.tit_b{line-height: 1.4em; margin-bottom: 40px; font-size: 2rem;}
.tit_g{color: var(--green);}
.tit_b{color: var(--brown);}
.stit_g,.stit_b{line-height: 1.4em; margin-bottom: 40px; font-size: 1.7rem; position: relative; display: inline-block; padding-right: 6em;}
.stit_g{color: var(--green);}
.stit_b{color: var(--brown);}
.stit_g::before,.stit_b::before{content: ""; position: absolute; right: 0; top: calc(50% - 1px); height: 2px; width: 5em; display: block;}
.stit_g::before{background-color: var(--green);}
.stit_b::before{background-color: var(--brown);}

.mt20{margin: 20px 0 0 0;}

body{font-family: "Noto Sans JP", sans-serif; font-optical-sizing: auto; font-weight: normal; font-style: normal; color: #000; position: relative; }
h1,h2{ font-size: 2rem; line-height:1.2em;}

/*header*/
#wp_head p{background-image: url("../img/tit_other.webp");}
header{display: flex; justify-content: flex-start; align-items: flex-start; flex-wrap: wrap; position: relative; top:0; margin: 0; padding: 0; background-image: url("../img/bg.webp"); background-size: 400px 400px; background-position: left top; background-repeat: repeat;}
#wp_head{display: flex; justify-content: flex-start; align-items: center; flex-wrap: wrap; position: relative; top: 0; margin: 0;}
#wp_head::before{content: ""; position: absolute; bottom: -20px; left: 0; right: 0; background: var(--grd); width: 100%; height: 50%; z-index: 0; }
#wp_head #logo{width: 7vmax; height: auto; position: absolute; left: 50px; top: 40px; z-index: 2;}
#wp_head .category_tit{background: var(--bg_white); width: 39vw; border-radius:0 12vw 12vw 0 ; height: 24vw; max-height: 500px; margin: 0; display: flex; justify-content: center; align-items: flex-end; flex-wrap: wrap; flex-direction: column-reverse; position: relative; z-index: 2; padding-top: 20px; color: var(--green);}
#wp_head .category_tit .jn{font-size: 3vw; display: block; margin-right: 10%; line-height: 1em;}
#wp_head .category_tit .en{font-size: 8vw; display: block; margin-right: 10%; line-height: 1em;}
#wp_head p.subtit{max-width: 1200px; width: 70vw; border-radius:12vw 0 0 12vw ; height: 24vw; max-height: 500px; margin: 0; display: block;  position: absolute; top: 20px; right: 0; z-index: 1; margin-top: 40px; background-size: cover; background-repeat: no-repeat;background-position: left 0 center; color: #fff; line-height: 1em;  }
#wp_head p.subtit span{display: inline-block; position: absolute; right: 50px; bottom: 0; padding-bottom: 20px; font-size:2rem; }

.breadcrumb{display: block; margin: 70px 0 0 50px;}
.breadcrumb ol{ color: var(--green); display: flex; justify-content: start; align-items: center; flex-wrap: wrap; }
.breadcrumb ol li a{text-decoration: underline; display: inline-block; position: relative;}
.breadcrumb li + li::before { content: ">"; margin: 0 0.5em; color: #666; }
.breadcrumb ol li span{background-color: var(--green); color:#fff;  border-radius: 5px; line-height: 1em; padding: 0 0.5em; font-size: 0.8em; margin-right: 0.5em;}

/*SNSICON*/
.sns{cursor: pointer; width: 70px; height: 70px; border-radius: 50%; z-index: 10; position: fixed; right: 50px; top: 140px;  background-color: #fff; caret-color: transparent; display: flex; justify-content: center; align-items: center; flex-wrap: wrap; padding: 0; margin: 0;  background-image: url("../img/sns_icon.svg"); background-size: 60% auto; background-repeat: no-repeat; background-position: center; border: 2px solid var(--bg_green); display: none;}

/* ハンバーガーボタン */
#nav-toggle{display:block; cursor: pointer; width: 70px; height: 70px; margin:0; padding: 0; border-radius: 50%; z-index: 10; position: fixed; right: 50px; top: 50px;  background-color: #fff; caret-color: transparent; border: 1px solid var(--bg_green); }
body.open #nav-toggle{position: fixed; right: 50px; top: 50px;}
body.open #hamburger{ animation: toggleanime .3s linear; min-width: 40%; box-shadow: 3px 3px 6px #b2b2b2;}
@keyframes toggleanime{ 0% { opacity: 0; transform: translateX(10em); }  100% {opacity: 1; transform: translateX(0);}}
.hb-menu {width:50px; height: 30px; margin:20px 10px; position: relative; right: 0; top: 0; display: block;}
.line {height: 4px; width: 100%; position: absolute; transition: all 0.3s; background-color: var(--green); border-radius: 2px; }
.line:nth-of-type(1) {top: 0;}
.line:nth-of-type(2) {top: 50%; transform: translateY(-50%);}
.line:nth-of-type(3) {bottom: 0;}
.hb-menu.active > .line{height: 4px; }
.hb-menu.active > .line:nth-of-type(1) { top: 50%; transform: translateY(-50%) translateX(0px) rotate(45deg);}
.hb-menu.active > .line:nth-of-type(2) { display: none;}
.hb-menu.active > .line:nth-of-type(3) { top: 50%; transform: translateY(-50%) translateX(0px) rotate(-45deg);}

/*ハンバーガーメニュー*/
#hamburger {position: fixed; top: 0; right: 0; bottom: 0; left:0; z-index: 7; text-align: left; opacity: 0; padding:0 0 0 calc(100% - 600px); margin: 0; overflow-y: auto; overflow-x: hidden; display: none; background-color:var(--bg_white); font-family: "EB Garamond", serif; font-optical-sizing: auto; }
#hamburger ul{background: var(--grd); border-left: 2px solid #fff; color:var(--green); padding:50px 150px 50px 50px; min-height: 100dvh;  box-shadow: -4px -4px 3px #666;}
#hamburger ul li,footer ul li{line-height: 1.4em; margin:0; position: relative;}
#hamburger li.home,footer li.home{min-height:80px; background-image: url("../img/logo.svg");  background-size: 80px auto; background-repeat: no-repeat; background-position: left center; display: flex; justify-content: flex-start; align-items: center; margin-bottom: 20px; font-size: 1.4rem; font-weight: bold; width: 100%; }
#hamburger li.home a,footer li.home a{ display: inline-block; width: auto; min-height:80px; padding-left: 100px;  border: none; padding-top: 1em;}
#hamburger li.home a::before,footer li.home a::before{display: none;}
#hamburger a,footer nav a{position: relative; padding:0 30px 5px 0px; display: inline-block; font-weight:bold; background-position: bottom 0.2em left;  }
footer nav a{border: none; font-weight: normal; padding: 0 2em 0 0; }
#hamburger a::before{content: ""; background-image: url("../img/arrow.svg"); background-size: auto 70%; background-repeat: no-repeat; background-position: center; width: 20px; height: 20px; position: absolute; right:5px; top: 7px; border-radius: 5px;}
footer nav a::before{content: ""; background-image: url("../img/arrow02.svg"); background-size: auto 70%; background-repeat: no-repeat; background-position: center; width: 20px; height: 20px; position: absolute; right:5px; top: 2px; border-radius: 5px;}
#hamburger dl,footer dl{display: flex; justify-content: flex-start; align-items: center; flex-wrap: wrap; gap: 20px; margin-top: 20px;}
#hamburger dt,footer dt{font-size: 1.4rem; font-weight: bold; width: 100%; border-bottom: 1px solid var(--green);  }
footer dt .en{font-size: 1.4rem; margin-right: 0.5em; } 
footer dt small{color: var(--bg_green);}
footer nav dt{margin-top: 20px;}
footer nav dt span{border:1px solid #697655; border-radius: 5px; padding: 0.1em 1em; display: inline-block; }
#hamburger dd,footer dd{margin: 0; width: auto; font-family: "Noto Sans JP", sans-serif; font-optical-sizing: auto; font-weight: normal; font-style: normal; font-size: 0.9rem;}
footer dd{line-height: 1em; margin: 0;}

#hamburger .cafe a,footer .cafe a{font-size: 1.1rem; font-weight: bold; background-image: url("../img/cafelogo.webp"); background-size: 80px auto ; background-repeat: no-repeat; background-position: left center; min-height: 80px; padding:10px 20px 0 90px; background-color: #fff; margin-top: 40px;  color:var(--brown); border: none;}
#hamburger .cafe a span,footer .cafe a span{display: block; margin: 0;}
#hamburger .cafe a::before,footer .cafe a::before{display: none;}
#hamburger dt small{font-size: 1rem; font-weight: normal; margin-left: 1em;}

main{ line-height: 170%;}

p.btn{display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; padding-top: 20px;}
p.btn a{display: inline-block; line-height: 1.4em; text-align: left; min-width: 9em; margin: 5px 0 5px 20px;}
.green_btn{background-color: var(--green); color: #fff; padding: 0.2em 2em 0.2em 0.5em; border-radius: 5px; background-image: url("../img/arrow02.svg"); 
background-size: auto 50%; background-repeat: no-repeat; background-position: right 5px top 5px; border: 1px solid var(--green);}
.white_btn{background-color: #fff; color: var(--green); padding: 0.2em 2em 0.2em 0.5em; border-radius: 5px; background-image: url("../img/arrow.svg"); background-size: auto 50%; background-repeat: no-repeat; background-position: right 5px top 5px; border: 1px solid var(--green);}
.gaibu_btn{background-color: #fff; color: var(--green); padding: 0.2em 2em 0.2em 0.5em; border-radius: 5px; background-image: url("../img/arrow03.svg"); background-size: auto 50%; background-repeat: no-repeat; background-position: right 5px top 5px; border: 1px solid var(--green);}
.green_btn span,.white_btn span,.gaibu_btn span{font-size: 0.8rem; display: block; line-height: 1em; margin-bottom: 0.2em;}


footer{font-size:0.9em; background: var(--green); color: #fff; padding: 80px 40px 0 40px; position: relative; display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap;}
address{font-style: normal; font-weight: normal; width: calc(50% - 15px);  }
address dl{margin: 0 0 40px 0; display: block;}
address dt{margin-bottom: 20px;}
address dd{margin-bottom: 5px;}
address dt .en{font-size:1.6rem; border: none; margin-left: 0.5em;}
footer nav{width: calc(50% - 15px); }

.error_msg{margin: 80px; font-size: 2rem; color: #990000; line-height: 1.7em; text-align: center;  }

.copy{width: 100%; position: relative; font-size: 0.9rem; font-weight: normal; text-align: right; margin-top: 120px;}

@media screen and (orientation: portrait){
html{font-size: 16px;}

.tit_g,.tit_b{font-size: 1.8rem;}
.stit_g,.stit_b{font-size: 1.6rem;}
#page_main{margin-top: 40px;}
  .en_tit {font-size: 3rem;}
  #nav-toggle{ height: 70px; right: 20px; top: 20px; }
  body.open #nav-toggle{right: 20px; top: 20px;}
.sns{right: 20px; top: 110px; }

#hamburger { padding:0 0 0 20%;}
#hamburger ul{ padding:50px;}
#hamburger a::before{ background-size: auto 1em; top: 2px; bottom: 0; }
header{display: flex; justify-content: flex-start; align-items: flex-start; flex-wrap: wrap; position: relative; top:0; margin: 0; padding: 50px 0;}

#wp_head{display: block; }
#wp_head::before{height: 40%; z-index: 0;}
#wp_head #logo{width: 70px; left: 20px; top: 20px;}
#wp_head .category_tit{width: 46vw; margin-bottom: 50px; align-items: flex-start; padding: 20px 0 0 40px;}
#wp_head .category_tit .jn{font-size: 3.5vw; margin-right: 0; }
#wp_head .category_tit .en{font-size: 9vw; margin-right: 0;}
#wp_head p.subtit{ top: 60px;}
#wp_head p.subtit span{right: 40px; padding-bottom: 20px;}

footer{display: block;}
footer nav{display: none;}
footer address{width: 100%;}

p.btn a{margin: 5px 0 5px 10px;}
.green_btn{background-color: var(--green); color: #fff; padding: 0.2em 1.5em 0.2em 0.5em; border-radius: 5px; background-image: url("../img/arrow02.svg"); 
background-size: auto 35%; background-repeat: no-repeat; background-position: right 5px top 5px; border: 1px solid var(--green);}
.white_btn{background-color: #fff; color: var(--green); padding: 0.2em 1.5em 0.2em 0.5em; border-radius: 5px; background-image: url("../img/arrow.svg"); background-size: auto 35%; background-repeat: no-repeat; background-position: right 5px top 5px; border: 1px solid var(--green);}
.gaibu_btn{background-color: #fff; color: var(--green); padding: 0.2em 1.5em 0.2em 0.5em; border-radius: 5px; background-image: url("../img/arrow03.svg"); background-size: auto 35%; background-repeat: no-repeat; background-position: right 5px top 5px; border: 1px solid var(--green);}
.green_btn span,.white_btn span,.gaibu_btn span{font-size: 0.8rem; display: block; line-height: 1em; margin-bottom: 0.2em;}


}

/*******SP*******/
@media screen and (max-width:600px){
.tit_g,.tit_b{font-size: 1.6rem;}
.stit_g,.stit_b{font-size: 1.4rem;}
p.btn a{ min-width: auto;}
.sns{width: 50px; height: 50px; right: 20px; top: 80px; }
#nav-toggle{ width: 50px; height: 50px; padding: 0; right: 20px; top: 20px; }
#hamburger { padding:0 0 0 10%;}
#hamburger ul{ padding:20px;}
body.open #nav-toggle{right: 20px; top: 20px;}
.hb-menu {width:36px; height: 26px; margin:12px 7px; }
#nav-toggle{width:50px; height: 50px; position: fixed; right: 20px; top: 20px; }
#wp_head #logo{width: 50px; left: 20px; top: 20px;}

#wp_head::before{height: 60%;}
#wp_head .category_tit{width:66vw; margin-top: 35px; margin-bottom: 20px; padding: 0 0 0 20px; height: 100px; border-radius: 0 50px 50px 0;}
#wp_head .category_tit .jn{font-size: 24px; margin-right: 0; }
#wp_head .category_tit .en{font-size: 33px; margin-right: 0;}
#wp_head p.subtit{ width: 100%; height: 200px; display: block;  top: 0px; right: 0; margin-top: 30px; background-size:  130% auto; background-position: right bottom; color: #fff; border-radius: 50px 0 0 50px; font-size: 20px;  }
#wp_head p.subtit span{right: 20px; font-size: 1.4rem; }

.stit_g,.stit_b{padding-right: 0; border-left: 4px solid var(--brown); padding-left: 10px;}
.stit_g::before,.stit_b::before{display: none;}
.breadcrumb{display: block; margin: 20px 0 0 20px;}

footer{ padding-left:20px; padding-right:20px;}
}

/*******Wide*******/
@media screen and (min-width:1260px){
#wp_head .category_tit{width: 39vw; border-radius:0 9.5vw 9.5vw 0 ; height: 19vw;}
#wp_head .category_tit .jn{font-size: 2.5vw;}
#wp_head .category_tit .en{font-size: 6vw;}
#wp_head p.subtit{width: 70vw; border-radius:9.5vw 0 0 9.5vw ; height: 19vw; }
#wp_head p.subtit span{ position: absolute; right: 50px; }
footer{justify-content: space-between; padding-left:calc(50% - 630px) ; padding-right:calc(50% - 630px) ; }
footer nav,address{width: 600px; }
}