@charset "utf-8";
/*
Theme Name: 炉端焼き田舎
Description: 炉端焼き田舎用テンプレート
Version: 1.0
Author: CA-LA Co.,Ltd.
*/

/*Google Fontsの読み込み
---------------------------------------------------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=Klee+One&family=Yuji+Syuku&display=swap');

/*Font Awesomeの読み込み
---------------------------------------------------------------------------*/
@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css");


/*CSSカスタムプロパティ（サイト全体を一括管理する為の設定）
---------------------------------------------------------------------------*/
:root {
	--primary-color: #F3EDE3;			/*テンプレートの土台カラー*/
	--primary-inverse-color: #333333;	/*上のprimary-colorの対となる色*/
	
	--secondary-color: #08091c;			/*テンプレートのサブまたはアクセントカラー*/
	--secondary-inverse-color: #fff;	/*上のsecondary-colorの対となる色*/
	
	--accent-color: #993123;			/*アクセントカラー*/
	--accent-inverse-color: #fff;		/*アクセントカラーの対となる色*/
	
	--global-space: 20px;				/*主に余白の一括管理用*/
}

/*テキストのフェードイン設定
---------------------------------------------------------------------------*/





/*全体の設定
---------------------------------------------------------------------------*/
body * {box-sizing: border-box;}

html,body {
	height: 100%;
	font-size: 13px;	/*基準となるフォントサイズ。*/
}

	/*画面幅900px以上の追加指定*/
	@media screen and (min-width:900px) {

	html, body {
		font-size: 14px;	/*基準となるフォントサイズ。*/
	}

	}

body {
	margin: 0;
  padding: 0;
	font-family: "Klee One", cursive;
	-webkit-text-size-adjust: none;
	line-height: 2.5;
	color: #333;
	overflow-x: hidden;
  height: 100%;
}

/*table全般の設定*/
table {border-collapse:collapse;}

/*画像全般の設定*/
img {border: none;max-width: 100%;height: auto;vertical-align: middle;}

/*videoタグ*/
video {max-width: 100%;}

/*iframeタグ*/
iframe {width: 100%;}

/*他*/
input {font-size: 1rem;}

ul {list-style-type: none;}

.target-element {
  margin-bottom: 0;
  padding-bottom: 0;
}

/*リンクテキスト全般の設定
---------------------------------------------------------------------------*/
a {
	color: inherit;
	transition: 0.3s;
  text-decoration: none;
  word-break: break-all;
}

/*マウスオン時*/
a:hover {
	text-decoration: none;
}

/*header
---------------------------------------------------------------------------*/

/*ハンバーガーの設定*/
.menu {
  height: 20px;
  position: absolute;
  right: 20px;
  top: 20px;
  width: 30px;
  z-index: 99;
}
.menu_line {
  background: #333;
  display: block;
  height: 2px;
  position: absolute;
  transition:transform .3s;
  width: 100%;
}
.menu_line-center {
  top: 9px;
}
.menu_line-bottom {
  bottom: 0;
}
.menu_line-top.active {
  top: 8px;
  transform: rotate(45deg);
  background: #fff;
}
.menu_line-center.active {
  transform: scaleX(0);
}
.menu_line-bottom.active {
  bottom: 10px;
  transform: rotate(135deg);
  background: #fff;
}

/*メニュー画面の設定*/
.gnav {
  background: rgba(8,9,28,0.8);
  display: none;
  height: 100%;
  position: fixed;
  width: 100%;
  z-index: 98;
}
.gnav_wrap {
  align-items:center;
  display: flex;
  height: 100%;
  justify-content: center;
  position: absolute;
  width: 100%;
  text-align: center;
}
.gnav_item {
  margin: 40px;
}
.gnav_item a {
  color: #fff;
  font-size: 2em;
  font-weight: bold;
  padding: 40px;
  text-decoration: none;
  transition: .5s;
}
.gnav_item a:hover {
  color: #666;
}

@media screen and (min-width:680px) {
  
  .menu_line {
    background: #fff;
  }
  
}

header::before {
	background: url("img/background.jpg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}


/*SCROLLアニメーション
---------------------------------------------------------------------------*/
.scrolldown {
	position: absolute;
	bottom: 10px;
	left: 50%;
}
.scrolldown span {
	position: absolute;
	bottom: 165px;
	color: #eee;
	font-size: 0.85rem;
	letter-spacing: 0.05em;
	-ms-writing-mode: tb-rl;
    -webkit-writing-mode: vertical-rl;
    writing-mode: vertical-rl;
}
.scrolldown:before {
  content: "";
  position: absolute;
  bottom: 0;
  left: -4px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background:#eee;
	animation:
		circlemove 2.6s ease-in-out infinite,
		cirlemovehide 2.6s ease-out infinite;
}

@keyframes circlemove {
  0% {bottom:180px;}
  100% {bottom:-5px;}
 }

@keyframes cirlemovehide {
  0% {opacity:0}
  50% {opacity:1;}
  80% {opacity:0.9;}
	100% {opacity:0;}
 }

.scrolldown:after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 1px;
	height: 195px;
	background: #eee;
}


/*固定フォーム（電話予約など）
---------------------------------------------------------------------------*/
.form-box {
  max-width: 560px;
  width: 100%;
  margin: 0 auto;
  white-space: nowrap;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  gap: 14px; 
  padding: 20px 10px;
  position: -webkit-sticky;
  position: sticky;
  bottom: 0;
  left: 0;
  z-index: 95;
  background-color: transparent;
  transition: background-color 0.3s ease; 
}
.form-box.is-at-footer {
  background-color: #F3EDE3; 
}

.form-item {
  flex: 1;
  padding: 12px 0;
  text-align: center; 
}

.footer-detector {
  position: relative;
  top: -150px; 
  height: 0;
  visibility: hidden;
}

.form-item a {
  display: inline-block;
  width: 100%;
  background-color: #993123;
  color: #fff;
  font-size: 15px;
  padding: 15px 30px;
  border-radius: 50px;
  text-decoration: none;
}

@media screen and (min-width:1000px) {
  

}


/*背景画像共通（大きな画面で見た場合に両サイドに見える画像）
---------------------------------------------------------------------------*/
.section::before {
	content: '';
	position: fixed;
  z-index: -1;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

/*contents（各セクションブロック直下にあるボックス）
---------------------------------------------------------------------------*/
.contents {
	background: #F3EDE3;
	color: #333;
	position: relative;
	overflow-x: hidden;
  padding: 20px;
}

	/*画面幅600px以上の追加指定*/
	@media screen and (min-width:600px) {

    .top, .contents {
      max-width: 560px;
      margin: 0 auto;
      overflow-x: visible;
    }

	}

/*h2見出し共通*/
.contents h1,
.contents h2 {
	margin: 0;
	line-height: 1.8;
	padding: 20px 0;
	font-size: 1.8rem;
	text-align: center;
}

/*h2内の小文字*/
.contents h1 span.hosoku,
.contents h2 span.hosoku {
	display: block;
	font-size: 0.7rem;
	letter-spacing: 0.1em;
	padding-bottom: 0.5rem;
}

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

.top {
  position: relative;
  background: url("img/top.jpg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
.top::before {
  position: absolute;
  content: '';
  display: block;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,.42);
}

.top .contents {
  background: transparent;
  color: #fff;
  width: 100%;
  height: 95vh;
  display: flex;
  justify-content: center;
  align-items: center;
}

.top .top-ttl {
  writing-mode: vertical-rl;
  padding-bottom: 80px;
  font-family: "Yuji Syuku", serif;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}
.top .top-ttl h1 {
  width: 65%;
  display: flex;
  justify-content: center;
  align-items: center;
}
.top .top-ttl h1 img {
  margin: 0;
  vertical-align: top;
}
.top .top-ttl p {
  font-size: 1.475em;
  letter-spacing: 1.2px;
  text-align: end;
}


/*kodawari
---------------------------------------------------------------------------*/
#kodawari .contents {
  padding-bottom: 50px;
}

#kodawari .textbox {
  background: #F8F6F1;
}

#kodawari .text {
	padding: 0px 20px 45px;
  text-align: justify;
}

#kodawari aside {
	border-radius: 0;
  overflow: hidden;
}



/*menu
---------------------------------------------------------------------------*/

.top-menu-box,
.sub-page-box {
  position: relative;
  overflow: visible;
  background: #08091c;
  color: #fff;
  margin: 120px calc(-1 * 20px);
}

/*上と下の波打った画像の読み込みに関する共通設定*/
.top-menu-box::before,
.top-menu-box::after,
.sub-page-box::before,
.sub-page-box::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 120px;	/*画像の高さ。上のgallery-spaceを読み込む。*/
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

/*上の波打った画像への追加設定*/
.top-menu-box::before,
.sub-page-box::before {
    top: calc(-1 * 120px);
    background-image: url("img/bg_gallery_top.png");	/*上の画像*/
}

/*下の波打った画像への追加設定*/
.top-menu-box::after,
.sub-page-box::after {
    top: 100%;
    background-image: url("img/bg_gallery_bottom.png");	/*下の画像*/
}

/*slick slider*/
.slick-track {
	display: flex; /* 高さを揃える記述 */
}
.slick-slide {
	height: auto!important; /* 高さを揃える記述 */
	display: flex; /* Flexbox */
	flex-direction: column; /* 子要素を縦並びに */
  margin: 0 12px;
  position: relative;
}
.slick-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.slick-slide .text-area {
  margin: 0;
  padding: 10px;
  position: absolute;
  left: 0px;
  bottom: 0px;
  width: 100%;
  text-align: center;
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  display: flex;
  justify-content: space-between;
  align-content: center;
}

/*ドットカスタマイズ*/
.slide-dots {
  display: flex;
  justify-content: center;
  margin: 20px 0;
}
.slide-dots li {
  width: 10px;
  height: 10px;
  margin: 0 5px;
  background: #fff;
  border-radius: 50%;
  cursor: pointer;
}
.slide-dotsp li:hover,
.slide-dots li.slick-active {
  background: #993123;
}
.slide-dots li button {
  display: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  outline: none;
  padding: 0;
  border: none;
  background-color: transparent;
}


.menu-more {
  margin: 40px 0 20px;
}
.more-btn {
  display: block;
  width: 80%;
  margin: 0 auto;
  padding: 16px 0;
  border-radius: 50px;
  background-color: #993123;
  color: #fff;
  text-align: center;
}


/*access
---------------------------------------------------------------------------*/

.access-box {
  position: relative;
  overflow: visible;
  background: #08091c;
  color: #fff;
  margin: 80px calc(-1 * 20px);
  margin-bottom: 0;
  padding-bottom: 20px;
}

.map iframe {
  width: 100%;
  aspect-ratio: 16 / 9;
  border: none;
  filter: invert(100%);
  -webkit-filter: invert(100%);
}

dl.table {
	display: grid;
	grid-template-columns: 100px auto;
  width: 87.6%;
  margin: 0 auto;
	margin-bottom: 50px;
	line-height: 2;
}
dl.table dt,
dl.table dd {
	padding: 1rem;
}

#access .access-box dl.table {
	border-top: 1px solid rgba(255,255,255,0.3);
}
#access .access-box dl.table dt,
#access .access-box dl.table dd {
	border-bottom: 1px solid rgba(255,255,255,0.3);
}



/*footer
---------------------------------------------------------------------------*/
#footer .contents {
  padding-bottom: 0;
}

.footer-box {
  position: relative;
  overflow: visible;
  background: #08091c;
  color: #fff;
  margin: 120px calc(-1 * 20px);
  margin-bottom: 0;
}

/*上と下の波打った画像の読み込みに関する共通設定*/
.footer-box::before {
    content: "";
    position: absolute;
    left: 0;
    width: 100%;
    height: 120px;	/*画像の高さ。上のgallery-spaceを読み込む。*/
    background-repeat: no-repeat;
    background-size: 100% 100%;
}

/*上の波打った画像への追加設定*/
.footer-box::before {
    top: calc(-1 * 120px);
    background-image: url("img/bg_gallery_top.png");
}

.footer-box h3 {
  display: block;
  margin-block-start: 1em;
  margin-block-end: 1em;
  margin-inline-start: 0px;
  margin-inline-end: 0px;
  unicode-bidi: isolate;
}
.footer-box h3 img {
	display: block;
	width: 180px;
	margin: 0 auto;
}

/*ソーシャルメディアのアイコン*/
.icons {
	list-style: none;
	margin: 0;
  padding: 0;
	display: flex;
	align-self: center;
	justify-content: center;
	gap: 10px;	/*アイコン同士のマージン的な要素*/
}
.icons i {
	font-size: 30px;	/*アイコンサイズ*/
}

.icons li {
  margin: 10px;
}
.icons li a {
  display: flex;
  justify-content: center;
  align-items: center;
}

.policy {
  padding: 20px;
  padding-bottom: 0;
  display: flex;
  justify-content: flex-end;
  align-items: center;
}

.footer-box .copyright {
  margin-top: 20px;
  text-align: center;
  font-size: .8em;
}


/*サブページ
---------------------------------------------------------------------------*/
/*共通*/
.sub-top {
  background: #F3EDE3;
}
.sub-top::before {
  display: none;
}
.sub-top .contents {
  height: 8vh;
}

.sub-page .inner {
  position: relative;
  overflow-x: hidden;
  padding: 20px;
}

/*policy*/
.policy-box {
  margin-bottom: 15px;
  padding-bottom: 20px;
  text-align: justify;
}
.policy-box h3 {
  font-size: 1.35rem;
}
.policy-box ul {
  padding-left: 15px;
  margin-top: 15px;
  list-style-type: "- "; 
  list-style-position: inside;
}

/*single*/
.c-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  font-size: 0.875rem;
  color: #fff;
  line-height: 3.2;
}
@media screen and (max-width: 768px) {
  .c-breadcrumbs {
    font-size: 0.8125rem;
  }
}
.c-breadcrumbs > li {
  display: inline-block;
  position: relative;
}
.c-breadcrumbs > li:not(:last-of-type)::after {
  content: ">";
  display: inline-block;
  margin-right: 0.5em;
  margin-left: 0.5em;
}

.news-title {
  margin-bottom: 1em;
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 2.25;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.sub-page .cat-list {
  justify-content: flex-end;
}

.post-header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 2px;
  font-size: 0.875rem;
}
.post-header time {
  margin-bottom: 0.5em;
}
.post-title {
  margin-bottom: 0.718em;
  font-size: 2rem;
  font-weight: bold;
  line-height: 1.468;
}
.post-wrapper {
  line-height: 1.75;
  letter-spacing: 0.11em;
}
.post-wrapper > * {
  margin-bottom: 36px;
  text-align: justify;
}
.post-wrapper h2 {
  margin-bottom: 1.5em;
  font-size: 1.5rem;
  font-weight: bold;
  line-height: 1.5;
  text-align: justify;
}
.post-wrapper h3 {
  padding: 10px 4.444%;
  margin-bottom: 1.318em;
  background-color: #676784;
  border-radius: 50px;
  font-size: 1.375rem;
  font-weight: bold;
  color: #fff;
  line-height: 1.5;
}

.post .eyecatch {
  height: 0;
  padding-top: 59.841%;
  position: relative;
  overflow: hidden;
}
.post .eyecatch img {
  width: 100%;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

.page-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  padding: 10px 10px;
  margin-top: 28px;
  border-top: 1px dashed #fff;
  border-bottom: 1px dashed #fff;
  font-size: 0.875rem;
  font-weight: 500;
}
.page-nav > li {
  min-width: 5em;
}
.page-nav > li:first-of-type a::after {
  right: auto;
  left: 0;
  transform: translateY(-50%) rotate(-135deg);
}
.page-nav a {
  display: inline-block;
  min-width: 5em;
  padding: 5px 14px;
  position: relative;
}
.page-nav a.to-archive {
  font-weight: bold;
  color: #fff;
}
.page-nav a.to-archive::after {
  content: none;
}
.page-nav a::after {
  content: "";
  width: 6px;
  height: 6px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%) rotate(45deg);
}

.news-wrapper .sidebar {
    width: 100%;
    margin-bottom: 0;
}
.news-wrapper .box-white {
  margin-bottom: 40px;
  padding: 30px 0;
}

.sidebar .box-white {
  padding-right: 8.376%;
  padding-left: 8.376%;
}
.sidebar .item {
  padding: 0 3.773%;
  padding-bottom: 36px;
}
.sidebar .item:not(:last-of-type) {
  border-bottom: 1px solid #fff;
  margin-bottom: 42px;
}
.sidebar-list {
  padding: 0 7.718%;
  font-weight: 500;
  color: #fff;
}
.sidebar-list a {
  display: inline-block;
  padding-right: 1em;
  line-height: 2.562;
}
.sidebar-list a::before {
  content: "-";
  display: inline-block;
  margin-right: 0.5em;
}

.news-list .container {
  border-bottom: solid 1px #fff;
  margin-bottom: 5%;
}

.news-post {
  display: flex;
  align-items: center;
  margin:0 auto 5%;
}
.news-post .thumbnail {
  flex-grow: 0;
}
.news-post img {
  width: 100px;
  height: 100px;
  object-fit: cover;
}
.news-post .text {
  flex-grow: 1;
  margin-left: 20px;
}

.wp-pagenavi {
  display: flex;
  justify-content: center;
  margin-top: 42px;
}
.wp-pagenavi span, .wp-pagenavi a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid #fff;
  border-radius: 50px;
  font-size: 0.9375rem;
  font-weight: 500;
  transition: 0.3s ease-in;
}
.wp-pagenavi span:not(:last-child), .wp-pagenavi a:not(:last-child) {
  margin-right: 2.622%;
}
.wp-pagenavi span:hover,
.wp-pagenavi a:hover,
.wp-pagenavi span.current {
  background-color: #fff;
  color: #08091c;
}
.wp-pagenavi a {
  color: #fff;
}
.wp-pagenavi a.nextpostslink,
.wp-pagenavi a.previouspostslink {
  gap: 0 4px;
  width: auto;
  padding: .5em .8em;
  line-height: 1;
}
.wp-pagenavi a.nextpostslink::after,
.wp-pagenavi a.previouspostslink::before {
  display: inline-block;
  transform: rotate(45deg);
  width: .3em;
  height: .3em;
  content: '';
  transition: 0.3s ease-in;
} 
.wp-pagenavi a.nextpostslink::after {
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
}
  .wp-pagenavi a.nextpostslink:hover::after {
    border-top: 1px solid #08091c;
    border-right: 1px solid #08091c;
  }
.wp-pagenavi a.previouspostslink::before {
  border-bottom: 1px solid #fff;
  border-left: 1px solid #fff;
}
  .wp-pagenavi a.previouspostslink:hover::before {
    border-top: 1px solid #08091c;
    border-right: 1px solid #08091c;
  }


.cat-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  font-size: 0.875rem;
}
.cat-list > li {
  min-width: 40px;
  padding: 5px 10px;
  background-color: #993123;
  color: #fff;
  text-align: center;
  line-height: 1;
}
.cat-list > li:not(:last-of-type) {
  margin-right: 0.923em;
}

/*home-news*/
.home-news .date-title {
  display: flex;
}
.home-news .date {
  flex: 1;
}
.home-news .title {
  flex: 3;
}

.home-news .news-post {
  margin-bottom: 0;
}
.home-news .news-post .thumbnail {
  display: none;
}
.home-news .news-list .container {
  border-bottom: solid 1px #5D5D5D;
  margin-bottom: 20px;
}
.home-news .news-post .text {
  margin-left: 0;
}


/*menu*/
.menu-box {
  padding-bottom: 30px;
  margin-bottom: 20px;
}
.menu-box .menu-title {
  text-align: center;
  border-bottom: 1px solid #fff;
  padding-bottom: 10px;
  margin-bottom: 15px;
  font-size: 1.45rem;
}

.menu-item {
  padding-bottom: 10px;
  margin-bottom: 10px;
  display: flex;
  border-bottom: 1px solid rgba(255,255,255,0.3);
}
.menu-item > * {
  flex: 1;
  padding: 0 10px;
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;
}
.menu-item .photo {
  
}
.menu-item .name {
  white-space: nowrap;
}
.menu-item .price {
  text-align: end;
  justify-content: flex-end;
}