@charset "utf-8";

/* CSS Document */
html,
body {
	font-family:"Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
	width: 100%;
	overflow-x: clip;
}
body.skip-animation .opening {
	display: none; /* またはアニメーション無効化 */
  }

  .drawer-toggle {
	/* 見た目やレイアウトに影響しない基本スタイル */
	background: none;
	border: none;
	outline: none;
	padding: 0;
	margin: 0;
	font: inherit;
	color: inherit;
	cursor: pointer;
  
	/* タップ時の青ハイライト防止（iOS/Android） */
	-webkit-tap-highlight-color: transparent;
	-webkit-touch-callout: none;
	box-shadow: none;
	background-color: transparent;
  }
  
  /* 子要素や擬似要素にも同様の影響を適用 */
  .drawer-toggle *,
  .drawer-toggle::before,
  .drawer-toggle::after,
  .drawer-toggle *::before,
  .drawer-toggle *::after {
	-webkit-tap-highlight-color: transparent;
	-webkit-touch-callout: none;
	outline: none;
	background-color: transparent;
	box-shadow: none;
	border: none;
  }
  
.mincho{font-family: var(--font-mincho);letter-spacing: 0.2rem;}
.mincho .jp{letter-spacing: 0.7rem;}
.mincho .en{letter-spacing: 0.1rem;}
.cf {
	zoom:1;/*for IE 5.5-7*/
	}
	.cf:after {/*for modern browser*/
	content:".";
	display: block;
	height:0px;
	clear:both;
	visibility:hidden;
	}
	a{transition: all 0.3s;}
	a:hover{opacity: 0.7;}
/*-------------- flex --------------*/
.flex {
	display: -webkit-flex;
	display: -moz-flex;
	display: -ms-flex;
	display: -o-flex;
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: space-around;
}

/*-------------- fade-in --------------*/
.fade-in {
	transition: opacity 0.8s;
	-moz-transition: opacity 0.8s;
	-webkit-transition: opacity 0.8s;
	-o-transition: opacity 0.8s;
}

.fade-up {
	transition: opacity 0.7s;
	-moz-transition: opacity 0.7s;
	-webkit-transition: opacity 0.7s;
	-o-transition: opacity 0.7s;
	transition: transform 0.7s;
	-moz-transition: transform 0.7s;
	-webkit-transition: transform 0.7s;
	-o-transition: transform 0.7s;
}

.fade-left,
.fade-right {
	transition: opacity 0.8s;
	-moz-transition: opacity 0.8s;
	-webkit-transition: opacity 0.8s;
	-o-transition: opacity 0.8s;
	transition: transform 0.8s;
	-moz-transition: transform 0.8s;
	-webkit-transition: transform 0.8s;
	-o-transition: transform 0.8s;
}

/*-------------- pageTop  --------------*/
.cp_arrows *,
.cp_arrows *:before,
.cp_arrows *:after {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

.cp_arrows {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 500;
	/* position:fixedを持つ要素自身に付けないと背景と正しく合成されないため、子要素(a/img)ではなくここに付ける */
	mix-blend-mode: difference;
}
.cp_arrows a{
	max-width: 60px;
	display: block;
}
@keyframes rotateOnce {
	0% {
	  transform: rotate(0deg);
	}
	100% {
	  transform: rotate(360deg);
	}
  }
  
  /* 回転用クラス */
  .rotate-once {
	animation: rotateOnce 0.6s ease-out;
  }

@media screen and (max-width: 768px) {
	.cp_arrows {
		right: 15px;
		bottom: 10px;
	}
	.cp_arrows a{
		width: 50px;
		display: block;
	}
	.cp_arrows img{width: 100%;height: auto;}
	.cp_arrows a:hover{opacity: 1;}
}
@media screen and (min-width: 768px) {
/*pc版　アンカー遷移　ヘッダー分オフセット*/
.at {
	scroll-margin-top: 78px;
  }
}

@-webkit-keyframes arrowmove {
	0% {
		top: 1%;
		opacity: 0.1;
	}

	70% {
		top: 5%;
		opacity: 1;
	}

	100% {
		top: 1%;
		opacity: 0.3;
	}
}

@keyframes arrowmove {
	0% {
		top: 1%;
		opacity: 0.1;
	}

	70% {
		top: 5%;
		opacity: 1;
	}

	100% {
		top: 1%;
		opacity: 0.3;
	}
}


/*-------------- btn --------------*/
.btn_wrap {
	text-align: center;
	margin: min(7vw, 70px) auto 0;
	max-width: 400px;
	width: 100%;
  }


  .btn_wrap .r_btn {
	width: 100%;
	height: 75px;
	font-size: 20px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto;
  }
  .btn_wrap .r_btn p{font-weight: bold;}


  .r_btn {
	position: relative;
	border: 1px solid var(--color-brown, #70594f);
	border-radius: 999px;
	color: var(--color-brown, #70594f);
	display: inline-block;
	background: #fff;
	z-index: 2;
	/* no-animation.cssの *{transition:none!important} を上書きするため!important指定 */
	transition: background 0.4s ease, color 0.4s ease, border-color 0.4s ease !important;
  }
  .r_btn .btn_on {
	opacity: 0;
	transition: opacity 0.4s ease !important;
	position: absolute;
	top: 0;
	left: 0;
	/* btn_offと同じ矢印画像を白化して使う（別デザインの矢印を出さない） */
	filter: brightness(0) invert(1);
  }

  .r_btn .btn_off {
	opacity: 1;
	transition: opacity 0.4s ease !important;
  }

  .r_btn span {
	position: relative;
	display: inline-block;
  }



  /* === 矢印アイコン ===
     画像は@2x書き出し（44×40px）なので、表示は実寸の100%以下となる22px以下に調整 */
  .r_btn .icon01 {
	position: absolute;
	right: 30px;
	top: 50%;
	transform: translateY(-50%);
	transition: right 0.4s ease !important;
	z-index: 3;
	width: 20px;
  }
  .r_btn .icon02 {
	position: absolute;
	right: 10px;
	/* 初期：ボタンの外（左側） */
	top: 50%;
	transform: translateY(-50%);
	transition: right 0.4s ease, opacity 0.4s ease;
	color: #fff;
	pointer-events: none;
	z-index: 3;
	width: 48px;
  }
  .r_btn img{width: 100%;height: auto;display: block;}

  /* #sec12 お問い合わせブロック：暗い背景画像の上なので、PC/SPともにデフォルトを背景なし+白字にする */
  #sec12 .r_btn {
	background: transparent;
	border-color: #fff;
	color: #fff;
  }
  #sec12 .r_btn .btn_off {
	opacity: 0;
  }
  #sec12 .r_btn .btn_on {
	opacity: 1;
  }

  /* === ホバー時のアニメーション === */
 @media screen and (min-width: 768px) {
	.btn_wrap .r_btn:hover {
		background: #cb483f;
		color: #fff;
		opacity: 1;
		border-color: #cb483f;
	  }
	/* #sec12はホバー時、他ボタンのアクセント色ではなく白背景+茶文字（デフォルトのbtn_off見た目）に切り替える */
	#sec12 .r_btn:hover {
		background: #fff;
		border-color: var(--color-brown, #70594f);
		color: var(--color-brown, #70594f);
	  }
	#sec12 .r_btn:hover .btn_off {
		opacity: 1;
	  }
	#sec12 .r_btn:hover .btn_on {
		opacity: 0;
	  }
  /* hover時に切り替え */
  .r_btn:hover .btn_on {
	opacity: 1;
  }
  
  .r_btn:hover .btn_off {
	opacity: 0;
  }
  .r_btn:hover .icon01 {
	right: 26px;
  }
  }

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

  /* タップ操作にはhoverがないため、PC版のデフォルト（白背景+茶色文字）と同じ見た目のまま固定 */
  main .r_btn .icon01 {
	right: 20px;
	width: 16px;
  }
  }

/*-------------- float --------------*/
.fl {
	float: left;
}

.fr {
	float: right;
}

.over {
	overflow: hidden;
}

/*-------------- wrapper,main,container,contents --------------*/
#wrapper {
	width: 100%;
	height: auto;
	position: relative;
}

main {
	width: 100%;
}

.container {
	width: 100%;
}

.contents {
	max-width: 1240px;
	width: 90%;
	margin: 0 auto;
}

.bg_t {
	background: #fdfbf6;
}

/* index 各セクションの背景色を統一（#fvのスライダー・#sec02は対象外） */
body[data-page="index"] #sec03,
body[data-page="index"] #sec04_02,
body[data-page="index"] #sec04_03,
body[data-page="index"] #sec06,
body[data-page="index"] #sec07_02,
body[data-page="index"] #sec10,
body[data-page="index"] #sec11 {
	background: var(--color-bg, #fdfbf6);
}

/* index 各セクションの区切り線（既存でborder-topが設定済みのセクションは対象外・#fvは除く） */
body[data-page="index"] #sec02,
body[data-page="index"] #sec06,
body[data-page="index"] #sec07,
body[data-page="index"] #sec07_02,
body[data-page="index"] #sec08,
body[data-page="index"] #sec09,
body[data-page="index"] #sec10,
body[data-page="index"] #sec11 {
	border-top: 1px solid #70594f;
}

/*フェードインアニメーション*/
.fadein-up,
.fadein-left,
.fadein-right {
  opacity: 0;
  transform: translateY(30px); /* 初期は下にずらす */
  transition: all 0.6s ease-out;
  will-change: opacity, transform;
}

.fadein-left {
  transform: translateX(30px); /* 初期は右にずらす */
}

.fadein-right {
  transform: translateX(-30px); /* 初期は左にずらす */
}

.fadein-show {
  opacity: 1;
  transform: translateX(0) translateY(0);
}

/*pcクリック無効*/
/* PC時（768px以上）にクリック無効化 */
@media screen and (min-width: 768px) {
	.pc-disable {
	  pointer-events: none;
	  cursor: default;
	  text-decoration: none;
	}
  }

/*-------------- header --------------*/
/* 初期状態：画面上部から785pxの位置 */
header {
	left: 0;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 20px;
	z-index: 100;
	position: fixed;
	top: 0; /* 画面の上部に固定 */
	left: 0;
	right: 0;
  }
  
  /* 固定された状態 */
  header.fixed {
	position: fixed;
	top: 0; /* 画面上部に固定 */
	left: 0;
	width: 100%;
  }
  .under header{
	position: fixed;
	top: 0; /* 画面上部に固定 */
	left: 0;
	width: 100%;
  }
.under .logo{opacity: 1;}
header > div{
	height: 70px;
	position: relative;
	z-index: 12;
	width: 100%;
	display: flex;
	align-items: center;
}
.nav-contact-btn{
	width: 180px;
	height: 50px;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #cb483f;
	margin-left: 24px;
	border-radius: 5px;
}
.header-right{
	display: flex;
	align-items: center;
	margin-left: auto;
	margin-right: 10px;
}
.nav-contact-btn a{
	color: #fff;
	font-size: 15px;
	white-space: nowrap;
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
}
.nav-contact-btn a img{
	width: 19px;
	height: auto;
	display: block;
}
.btn_cont{position: absolute;background: #fff;display: flex;align-items: center;justify-content: center;border: 1px solid #70594f;right: 40px;bottom: 8%; writing-mode: vertical-rl; width: 50px;height: 220px;z-index: 10;
}
.btn_cont a{color: #70594f;
    font-size: min(3.3vw, 16px);
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
}
 
  .logo{margin: 0 0 0 20px;width: 196px;height: 50px;position: relative;
  }
  .logo a{display: block;width: 100%;height: 100%;}
  .logo .black,
  .logo .white {
	position: absolute;
	top: 0;
	left: 0;
	transition: opacity 0.3s ease, visibility 0.3s ease;
	opacity: 0;
	visibility: hidden;
	width: 196px;height: auto;
  }
  
  .logo .white {
	opacity: 1;
	visibility: visible;
  }
  
  .scrolled .logo .black {
	opacity: 1;
	visibility: visible;
  }
  
  .scrolled .logo .white {
	opacity: 0;
	visibility: hidden;
  }

  /* トップページはスクロール位置に関わらず常に黒ロゴを表示（下層は従来通り） */
  body[data-page="index"].drawer .logo .white {
	opacity: 0;
	visibility: hidden;
  }
  body[data-page="index"].drawer .logo .black {
	opacity: 1;
	visibility: visible;
  }
  .l_fixed01{opacity: 0;}
  .l_fixed02{opacity: 1;}



.drawer-hamburger {
	display: none;
}

nav {
	min-width: 0;
}

nav ul {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: flex-start;
	align-items: center;
}
nav > ul{gap: 30px;}
nav ul li span{display: block;}
nav ul li.cont a{background: #70594f;color: #fff;width: 100%;height: 100%;}
nav ul li a {
	font-size: 13px;
	font-size: 1.5rem;
	line-height: 34px;
}
.drawer-menu li.current > a {
  color: #70594f;
  font-weight: bold;
  position: relative;
}
/*
.drawer-menu > li.current::before{
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 10px;
	position: absolute;
	background: #70594f;
	left: -12px;
	top: 53%;
	transform: translateY(-50%);
}*/
header {
	transition: background-color 0.3s ease;
  }
  
 /* header.scrolled {
	background-color: rgba(253, 251, 246, 0.92);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--color-border, #e0e0e0);
  }
*/
  
@media screen and (min-width: 768px) {
	  nav ul {
		z-index: 1;
		gap: 26px;
		flex-wrap: nowrap;
	}
	nav .box01 ul{gap: 0;}
	nav ul li {
		position: relative;
	}
	nav ul li.contact{margin: 14px 20px 0 0;}
	nav ul li a {
		color: #70594f;
		font-size: 12px;
		white-space: nowrap;
	}
	nav ul li li a {
		color: #70594f;
	}
	header.scrolled nav ul li a {
		color: #70594f;
	}
	nav ul li .menu_contents a {
		margin: 0;
		white-space: nowrap;
		display: block;
		color: #70594f;
	}
	nav ul li .menu_contents a span{
		display: none;
	}
	nav ul li.pc a {
		margin: 0;
	}
}

/* PC縮小時：ロゴだけに極端な圧縮を負わせず、gナビ・問い合わせボタンも一緒に縮めて重なりを防ぐ */
@media screen and (max-width: 1100px) and (min-width: 768px) {
	.logo {
		width: 120px;
		flex-shrink: 1;
		min-width: 70px;
	}
	.logo .black,
	.logo .white {
		width: 120px;
	}
	nav > ul {
		gap: 10px;
	}
	nav ul li a {
		font-size: 11px;
	}
	.header-right {
		margin-right: 4px;
	}
	.nav-contact-btn {
		width: auto;
		min-width: 0;
		padding: 0 12px;
		margin-left: 10px;
	}
	.nav-contact-btn a {
		font-size: 11px;
		gap: 6px;
	}
	.nav-contact-btn a img {
		width: 13px;
	}
}

/*PCメガメニュー + SPアコーディオン*/
@media screen and (min-width: 768px) {
	.drawer-menu {
		pointer-events: auto !important;
	  }
	  .drawer-menu > li {
		position: relative;
	  }
	li.mega_menu {
		position: relative;
		top: 0;
	}
	.menu_contents {
		background: #fff;
		display: none;
		position: absolute;
		top: 48px;
		left: 50%;
		transform: translateX(-50%);
		width: max-content;
		max-width: 96vw;
		min-width: 220px;
		border-radius: 16px;
		border: none;
		box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
		padding: 8px 0;
		z-index: 2;
	}

	.menu_contents::before {
		content: "";
		position: absolute;
		top: -5px;
		left: 50%;
		transform: translateX(-50%);
		width: 8px;
		height: 8px;
		border-radius: 50%;
		background: var(--color-gold, #d1ac4f);
	}

	.menu_contents ul {
		display: flex;
		flex-direction: column;
		padding: 0 20px;
		gap: 0;
	}

	.menu_contents li {
		width: 100%;
		padding: 0;
		height: auto;
		border-left: none;
		border-bottom: 1px solid var(--color-border, #e5e5e5);
	}
	.menu_contents li:last-child {
		border-bottom: none;
	}

	.menu_contents li a {
		display: block;
		padding: 8px 20px;
		text-align: center;
		white-space: nowrap;
		font-size: 12px;
		color: #70594f;
	}

	.menu_contents li a span {
		display: none;
	}

	.menu_contents li a:hover {
		opacity: 0.6;
	}
}

@media screen and (max-width: 768px) {
	/* アコーディオンをやめて常に展開表示 */
	.menu_contents {
		display: block;
		margin: -3vw 0 0 0;
		padding: 0 0 3vw 0;
	}

	.menu_contents li {
		width: 100%;
	}
}

.top_newsarea ul {
}
.top_newsarea ul li span{background: #cb483f;color: #fff;padding: 4px 24px;margin: 20px 0 0 0;display: inline-block;}
.news_dl {
	
}

.news_dl dd {
	margin-top: 10px;
}

.container_newsitem {
	padding-bottom: 20px;
}

.news_sche {
	padding: 5px 0;
	font-weight: bold;
}


.container_newsitem .btn {
	margin: 80px auto 0px;
}


/*-------------- footer --------------*/
footer{z-index: 2;color: var(--color-text);padding: 80px 0 0 0;border-top: 1px solid var(--color-border);background: var(--color-bg);}
footer .f_logo{text-align: center;width: min(28vw, 174px);margin: 0 auto 40px;}
footer .f_logo img{width: 100%;height: auto;display: block;}
footer .text01{font-weight: bold;text-align: center;font-size: min(4vw, 20px);color: var(--color-brown);margin: 0 0 40px 0;}

footer .box00.f_info{display: flex;justify-content: space-between;align-items: flex-start;gap: 60px;color: #70594f;}

footer .box01{flex: 1 1 auto;line-height: 1.6;}
footer dl.v01{display: flex;align-items: center;padding: 0 0 14px 0;margin: 0;align-items: start;}
footer dl.v01 > dt{flex-shrink: 0;box-sizing: border-box;width: 100px;height: 44px;display: flex;align-items: center;justify-content: center;border: 1px solid var(--color-brown);color: var(--color-brown);font-size: min(3vw, 15px);margin: 0 30px 0 0;background: none;border-radius: 0;}
footer dl.v01 > dd{flex: 1;font-size: min(3.5vw, 15px);margin: 12px 0 0 0;}
footer dl dl{margin: 0 0 6px 0;white-space: nowrap;}
footer dl dl dt{width: 250px;}

footer .box02{flex: 0 0 42%;}
footer .box02_title{box-sizing: border-box;width: 130px;height: 44px;display: flex;align-items: center;justify-content: center;border: 1px solid var(--color-brown);color: var(--color-brown);font-size: min(3vw, 15px);margin: 0 0 20px 0;}
footer .box02 ul.store_hours{margin: 0;}
footer .box02 ul.store_hours li{font-size: min(3.5vw, 15px);border-top: 1px solid #70594f;padding: 12px 0;}
footer .box02 ul.store_hours li:first-child{border-top: none;}
footer .box02 .store_hours_shop{display: block;}
footer .box02 .store_hours_note{display: block; font-size: min(3vw, 12px);margin: 10px 0 0 0;}

footer .box03{display: flex;justify-content: center;align-items: center;gap: 16px;margin: 50px 0 0;flex-wrap: wrap;}
footer .box03 img{width: 30px;height: auto;display: block;}
footer .box04{display: flex;justify-content: center;gap: 10px;font-size: min(3vw, 13px);padding: 40px 0 20px 0;color: var(--color-brown);background: url(../images/f_bg@2x.png) center bottom no-repeat;
background-size: cover;aspect-ratio: 1400 / 500;align-items: end;}
footer .box04 a{color: var(--color-brown);}
footer small {
	width: 100%;
	font-size: 13px;
	font-size: 1.3rem;
	text-align: center;
	display: block;
	padding: 10px 0;
	background: var(--color-brown);
	color: #fff;
}

@media screen and (max-width: 768px) {
	footer{padding: 20vw 0 0 0;}
	footer .box00.f_info{flex-direction: column;gap: 0;}
	footer .box01{width: 100%;}
	footer dl.v01{flex-direction: column;align-items: center;gap: 10px;padding: 16px 0;}
	footer dl.v01 > dt{width: 100%;margin: 0;}
	footer dl.v01 > dd{width: 100%;text-align: center;}
	footer .box02{width: 100%;margin: 30px 0 0 0;display: flex;flex-direction: column;align-items: center;}
	footer .box02_title{margin: 0 0 20px 0;}
	footer .box02 ul.store_hours{width: 100%;}
	footer .box02 ul.store_hours li{justify-content: center;gap: 20px;}
	footer .box02 .store_hours_note{text-align: center;}
	footer .box04{margin: 10vw 0 0 0;}
}

/*tag*/
.tag_news {
	display: block;
	width: 6.5em;
	text-align: center;
	color: #ffffff;
	background: #941d59;
	margin: 3px 0 5px 0;
}

.news .tag_news {
	background: #cb483f;
	margin: 0 0 5px 0;
	padding: 4px 0 2px 0;
}
.news .tag_news.v02 {
	background: #cf7c2a;
}
.tag_media {
	display: block;
	width: 7.5em;
	text-align: center;
	color: #ffffff;
	background: #cbc900;
}

/*icon*/
.icon_blank {
	width: 15px;
	display: inline-block;
	margin: 2px 0 0 5px;
}

/*------------------------------------------ topPage ------------------------------------------*/
.wrap01{max-width: 1060px;width: 100%; margin: 0 auto;padding: 0 30px;}
.wrap02{max-width: 1260px;width: 100%; margin: 0 auto;padding: 0 30px;}
svg {
	position: absolute;
	width: 0;
	height: 0;
	left: -9999px; /* 見えない位置に配置 */
}
/*おー「ウニングアニメーション*/
#opening {
	position: fixed;
	z-index: 9999;
	inset: 0;
	background: #fff;
	display: flex;
	justify-content: center;
	align-items: center;
  }
  
  .opening-inner {
	writing-mode: vertical-rl;
	gap: 2rem;
  }
  
  .opening-inner p {
	line-height: 1.8;
	white-space: pre-line; /* 改行を有効にする */
  }
  .line-break {
	display: block;
	height: 1em;
	width: 100%;
	content: "";
  }
  
   .opening-inner .jp span,
   .opening-inner .en span {
	display: inline-block;
	opacity: 0;
	transform: translateY(8px);
	animation: charIn 0.6s ease forwards;
  }
  .opening-inner .jp{color: #70594f;font-size: min(6vw, 42px);}
  .opening-inner .en{color: #0f9b4d;font-size: min(3vw, 20px);}
  /* アニメーション */
  @keyframes charIn {
	to {
	  opacity: 1;
	  transform: translateY(0);
	}
  }
  

  #fv{
	position: relative;
	width: 100%;
	height: calc(100vw * 760 / 1400);
	background-color: #fff;
  overflow: hidden;
  }
  /* トップページ FV 拡大スクロール演出：スライダーは#fvと切り離して独自にスケール */
  #fv.top{
	overflow: visible;
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
	height: 100vh;
  }
  #fv.top .fv-slider-wrap{
	position: absolute;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	transform-origin: center center;
	overflow: hidden;
  }
  #fv.top .fv-slider-wrap .pc,
  #fv.top .fv-slider-wrap .sp,
  #fv.top .fv-slider-wrap .fv-slider,
  #fv.top .fv-slider-wrap .slick-list,
  #fv.top .fv-slider-wrap .slick-track,
  #fv.top .fv-slider-wrap .slide{
	height: 100%;
  }
.under #fv{
	position: relative;
	width: 100%;
	height: calc(100vw * 600 / 1400);
  overflow: hidden;
  }
  .fv-slider .slide {
	height: 100%;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center center;
  }
  
  .under .bgs_wrap{
	height: 100%;
display: flex;align-items: center;justify-content: center;
}
.under main{
	position: relative;
	background: #fdfbf6;
}
 

  .h2img{
	position: relative;
	max-width: 1060px;
	margin: 0 auto 60px;
	z-index: 2;
}

.h2img02{
	text-align: right;
}

  .h2img img{height: 86px;}
  
  /*トップページfv下スクロールアイコン*/
  .scroll_down {
	position: relative;
	z-index: 3;
  }

  /*
.scroll_down::before {
  content: '';
  position: absolute;
  top: -107px;
  left: calc(50% - 3.5px);
  width: 7px;
  height: 7px;
  background: #70594f;
  z-index: 1;
  border-radius: 20px;
}*/

  .scroll_down p {
	display: inline-block;
	position: absolute;
	right: 0;
	bottom: -90px;
	left: 0;
	z-index: 2;
	padding: 0 0 190px 0;
	color: #000;
	line-height: 1;
	letter-spacing: .2em;
	text-transform: uppercase;
	text-decoration: none;
	writing-mode: vertical-lr;
	transition: .2s;
	overflow: hidden;
	margin: auto;
  }

  .scroll_down p:before {
	content: '';
	position: absolute;
	bottom: 0;
	left: calc(50% - 0.5px);
	width: 1px;
	height: 190px;
	background: #fff;
  }

  .scroll_down p:after {
	content: '';
	position: absolute;
	bottom: 0;
	left: calc(50% - 0.5px);
	width: 1px;
	height: 190px;
	background: #70594f;
  }

  .scroll_down p:hover {
	opacity: .5;
  }

  #type01 p:after {
	animation: sdl01 2s cubic-bezier(1, 0, 0, 1) infinite;
  }

  @keyframes sdl01 {
	0% {
	  transform: scale(1, 0);
	  transform-origin: 0 0;
	}

	50% {
	  transform: scale(1, 1);
	  transform-origin: 0 0;
	}

	50.1% {
	  transform: scale(1, 1);
	  transform-origin: 0 100%;
	}

	100% {
	  transform: scale(1, 0);
	  transform-origin: 0 100%;
	}
  }
  #parking-notice {
	position: relative;
	background-color: var(--color-bg);
	padding: 60px 0;
  }

  #parking-notice .parking_notice_box {
	max-width: 860px;
	margin: 0 auto;
	padding: 30px;
	border: 6px double var(--color-alert);
	text-align: center;
	font-size: 25px;
	line-height: 1.7;
	color: var(--color-text);
  }
  #parking-notice .parking_notice_box b{
	font-weight: bold;
  }

  @media screen and (max-width: 768px) {
	#parking-notice {
	  padding: 30px 0;
	}

	#parking-notice .parking_notice_box {
	  padding: 20px 15px;
	  font-size: 16px;
	  border-width: 4px;
	}
  }

  #sec02 {
	position: relative;
	background-color: #fdf7f6;
  }
  
  #sec02::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: url("../images/s2bg01.png"), url("../images/s2bg02.jpg");
	background-repeat: no-repeat, repeat;
	background-position: top right, top left;
	background-size: 40% auto, auto;
	opacity: 0.2;
	pointer-events: none;
  }
  
  #sec02 > * {
	position: relative;
  }

  #sec02 .h2img{margin-bottom: 4vw;}

  /* --- 見出し(h2img)：真ん中あたりで固定、一定スクロール量で解除（PCのみ・GSAP ScrollTriggerで制御） ---
     100vw基準でleft位置を指定するため、#sec02（position:relative・全幅）を基準に絶対配置する。
     .wrapはposition:staticのままにして、h2imgの入れ子先が#sec02になるようにする。
     wrap自体は元のh2img分の高さを確保してbox01の位置を変えないようにする。 */
  @media screen and (min-width: 768px) {
	#sec02 .wrap{position: static;height: calc(86px + 4vw);}
	#sec02 .h2img{
	  position: absolute;
	  left: 14.2vw;
	  top: 15vw;
	  margin-bottom: 0;
	}
	#sec02 .h2img img{width: 24.2vw;height: auto;}
  }

  /* --- 桜並木の写真：ブラウザ右端に接する --- */
  #sec02 .box01{
	position: relative;
	width: 71.4vw;
	margin: 21vw 0 5vw auto;
  }
  #sec02 .box01 img{width: 100%;height: auto;display: block;}
  #sec02 .box01 img,  #sec02 .box021 img, #sec02 .box022 img, #sec02 .box03 img{border-radius: 20px;overflow: hidden;}
  

  /* --- 見出し×商品写真×テキストの一体キャンバス --- */
  #sec02 .s2_canvas{
	position: relative;
	width: 100%;
	height: 90vw;
  }
  #sec02 .s2_cluster,
  #sec02 .s2_bottom{position: static;}

  #sec02 .s2_canvas .box04{position: absolute;z-index: 4;}
  #sec02 .s2_canvas .box04 img{width: 100%;height: auto;display: block;}
  #sec02 .s2_canvas .box04.v01{left: 0;bottom: 36vw;left: 12vw; width: 14vw;}
  #sec02 .s2_canvas .box04.v02{right: 4vw;bottom: 38vw;width: 14vw;}

  /* box04(v01/v02)：画面下から30%あたりまでスクロールしたら左右からふわっとフェードイン */
  #sec02 .box04.v01,
  #sec02 .box04.v02 {
    opacity: 0;
    transition: opacity 0.8s ease-out, transform 0.8s ease-out !important;
  }
  #sec02 .box04.v01 { transform: translateX(-60px); }
  #sec02 .box04.v02 { transform: translateX(60px); }
  #sec02 .box04.v01.is-inview,
  #sec02 .box04.v02.is-inview {
    opacity: 1;
    transform: translateX(0);
  }

  /* --- box05/box06：100vw基準でブラウザ左右端に接する（高さ/topは手動調整） --- */
  #sec02 .s2_canvas .box05{position: absolute;z-index: 2;left: 0;width: 16vw;bottom: 72vw;}
  #sec02 .s2_canvas .box06{position: absolute;z-index: 2;right: 0;width: 19vw;bottom: 26vw;}
  #sec02 .s2_canvas .box05 img,
  #sec02 .s2_canvas .box06 img{width: 100%;height: auto;display: block;}

  #sec02 .s2_canvas .box021,
  #sec02 .s2_canvas .box022{position: absolute;z-index: 2;}
  #sec02 .s2_canvas .box021 img,
  #sec02 .s2_canvas .box022 img{width: 100%;height: auto;display: block;}
  /* 下揃え：bottomを揃えて配置 */
  #sec02 .s2_canvas .box021{left: 29vw;bottom: 49vw;width: 23vw;}
  #sec02 .s2_canvas .box022{left: 54vw;bottom: 49vw;width: 25vw;}

  /* --- 装飾円：box04(v02)の下半分に重なる位置へ --- */
  #sec02 .s2_canvas .s2bg{
	position: absolute;
	z-index: 1;
	right: -2vw;
	bottom: -17vw;
	width: 22vw;
	pointer-events: none;
  }
  #sec02 .s2_canvas .s2bg img{width: 100%;height: auto;display: block;}

  /* --- アップルパイ写真：ブラウザ左端に接する --- */
  #sec02 .s2_canvas .box03{position: absolute;z-index: 2;left: 0;bottom: 0;width: 42.8vw;}
  #sec02 .s2_canvas .box03 img{width: 100%;height: auto;display: block;}

  #sec02 .s2_canvas .text01{
	position: absolute;
	z-index: 2;
	left: 47vw;
	bottom: 5vw;
	width: 54vw;
	font-size: 1.2vw;
	line-height: 2.4;
  }
  #sec02 .s2_canvas .text01 span{font-size: 1.4em;vertical-align: baseline;}
  #sec02 .btn_wrap{position: relative;z-index: 2;}
  #btn_cont.bottom_fixed {
	top: auto;
	bottom: 100px;
	z-index: 10;
  }
  
  .bg_fixed_box {
	background: url("../images/bg_t_icon02.png") repeat-x top;
	background-size: 100%;
	width: 100%;
	height: 10vw;
	position: fixed;  /* 最初から固定に */
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 1; /* 初期は控えめに */
	opacity: 0; /* 初期は非表示 */
	pointer-events: none; /* 非表示時はクリック不可 */
	transition: opacity 0.3s ease, z-index 0.3s ease;
  }
  
  .bg_fixed_box.fixed {
	opacity: 1;
	pointer-events: auto;
  }
  
  .bg_fixed_box .btn_cont{opacity: 0;top: auto;bottom: 100px;transition: all 0.3s;}
  
  .bg_fixed_box.fixed .btn_cont {
	opacity: 1;
  }
  
  @keyframes flow-left {
	0% {
	  left: 100%;
	}
	100% {
	  left: -1000px;
	}
  }

  #sec04{padding: 1px;
	background: url("../images/s2bg02.jpg") repeat;}

  /* --- #sec04 .box01：ロゴ（box02、左側に固定）＋100vwを流れるループスライダー（box03）が重なるバナー --- */
  #sec04 .box01{
	position: relative;
	width: 100%;
	/*overflow: hidden;*/
	padding: 1.5vw 0 3vw 0;
	border-bottom: 1px solid #70594f;
	margin: 0 0 0.7vw 0;
  }
  #sec04 .box02{
	position: absolute;
	top: 11%;
	left: 0;
	transform: translateY(-50%);
	z-index: 2;
	width: 38%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 3vw;
	box-sizing: border-box;
  }
  #sec04 .box02 img{width: 100%;height: auto;display: block;}
  #sec04 .box03{
	position: relative;
	z-index: 3;
	width: 100vw;
	overflow: hidden;
  }
  #sec04 .sm_slider{
	display: flex;
	width: max-content;
	/* no-animation.cssの *{animation:none!important} を上書きするため!important指定 */
	animation: sm_slider_loop 25s linear infinite !important;
  }
  #sec04 .sm_slider > div{flex: 0 0 auto;}
  #sec04 .sm_slider img{
	height: 11vw;
	width: auto;
	display: block;
  }
  @keyframes sm_slider_loop{
	0%{transform: translateX(0);}
	100%{transform: translateX(-50%);}
  }

  /* --- #sec04 .b_slider：円形マスクで次の画像へワイプ切り替わる自動スライダー（100vw、JS制御はcommon.js） --- */
  #sec04 .b_slider{
	position: relative;
	width: 100vw;
	height: 36vw;
	overflow: hidden;
  }
  #sec04 .b_slider_item{
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
	-webkit-mask-image: radial-gradient(circle at 100% 50%, rgba(0,0,0,1) 10%, rgba(181,181,181,0) 10%, rgba(255,255,255,0));
	mask-image: radial-gradient(circle at 100% 50%, rgba(0,0,0,1) 10%, rgba(181,181,181,0) 10%, rgba(255,255,255,0));
	-webkit-mask-size: 100% 800%;
	mask-size: 100% 800%;
	-webkit-mask-position: 100% 50%;
	mask-position: 100% 50%;
	will-change: mask-size;
	backface-visibility: hidden;
  }
  #sec04 .b_slider_item_inner{
	width: 100%;
	height: 100%;
	overflow: hidden; /* ドリフト時の余白がもし出ても外に漏れないための保険 */
  }
  #sec04 .b_slider_item img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transform: scale(1.2);
	transform-origin: 0% 50%;
  }
  #sec04_02{padding: min(40vw, 180px) 0;position: relative;}
  #sec04_03{padding: min(40vw, 300px) 0;position: relative;padding-top: 0;}
  #sec04_02 .text01{margin: 50px 0 65px 0;}
  #sec04_03 .text01{margin: 50px 0 65px 0;text-align: right;}

#sec04_02 .d_slider {
	position: relative;
	width: calc(500px + 80vw); /* ←ブラウザ左端に揃える */
	 left:-30vw;
	 border-radius: 0 0 50px 0;
	 overflow: hidden;
	 outline: 1px solid #70594f;
	 outline-offset: 10px;
	 z-index: 2;
  }

  #sec04_03 .d_slider {
	position: relative;
	width: calc(500px + 80vw); /* ←ブラウザ左端に揃える */
	right: -16vw;
	 border-radius: 0 0 0 50px;
	 overflow: hidden;
	 outline: 1px solid #70594f;
	 outline-offset: 10px;
	 z-index: 2;
  }

  .d_slider .slick-slide {
	margin-right: 10px;
  }
  
  .d_slider .slick-list {
	margin-right: -10px; /* 最後の余白を打ち消す */
  }
  
  .d_slider img {
	width: 100%;
	height: auto;
	display: block;
  }
#sec05{padding: 200px 0;position: relative;z-index: 3;background: #fff;}
#sec05 .flex{justify-content: space-between;}
#sec05 .top_newsphoto {
	position: relative;
	aspect-ratio: 3 / 2;
	overflow: hidden;
}
#sec05 .top_newsphoto img{
	width: 100%;
  height: 100%;
  object-fit: cover;
  border: 1px solid #70594f;
}

#sec06{position: relative;
	padding: 200px 0;
}
#sec07{background: #fff;padding: 200px 0 120px 0;}
#sec07 ul{list-style: none;margin: 0;padding: 0;}
#sec07 ul li{
	position: relative;
	width: 100%;
	overflow: visible;
	margin-bottom: 40px;
}
#sec07 ul li:last-child{margin-bottom: 0;}
#sec07 li .li_sticky{
	position: relative;
	width: 100%;
	aspect-ratio: 1000 / 622;
	overflow: visible;
}
#sec07 li .li_link{position: absolute;inset: 0;z-index: 2;}
#sec07 li .bg{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	aspect-ratio: 1000 / 622;
	border-radius: 30px;
	overflow: hidden;
	z-index: 1;
}
#sec07 li .bg img{width: 100%;height: 100%;object-fit: cover;display: block;}
#sec07 li .logo{
	/* liの直接の子（bgの外）。bgはoverflow:hiddenなので、
	   bgの角に少しかぶせるにはbgの外に置く必要がある。
	   right: bgの右端(6vw)より2vw内側＝bgの角に2vwかぶさる位置 */
	position: absolute;
	top: 2%;
	right: 1%;
	left: auto;
	width: 17%;
	z-index: 3;
}
#sec07 li .logo img{width: 100%;height: auto;display: block;}
#sec07 li .num{
	position: absolute;
	top: 0;
	right: -5%;
	left: auto;
	padding-left: 0;
	width: 2%; /* fos0N.pngは200%書き出しのため半分サイズで表示 */
	z-index: 3;
}
#sec07 li .num img{width: 100%;height: auto;display: block;}
#sec07 li .btn_wrap{
	position: absolute;
	bottom: 3%;
	right: 2%; /* bgの右端に揃える */
	z-index: 3;
	margin: 0;
	max-width: none;
	width: auto;
}
#sec07 li .btn_wrap .r_btn{width: min(30vw, 400px);height: min(6vw, 75px);}

@media screen and (min-width: 768px) {
  #sec07 ul li{
	height: 2476px;
	margin-bottom: -1814px; /* 662 - 2476 */
  }
  #sec07 li .li_sticky{
	position: sticky;
  }
  #sec07 ul li:nth-child(1) .li_sticky{
	z-index: 1;
	top: 70px; /* ヘッダー高さ分オフセット */
  }
  #sec07 ul li:nth-child(2){
	height: calc(1814px + 5vw); /* 1280px幅で1878px相当 */
	margin-bottom: calc(-1152px - 5vw); /* 662 - height */
  }
  #sec07 ul li:nth-child(2) .li_sticky{
	z-index: 2;
	--peek: 5vw;
	top: calc(70px + var(--peek));
  }
  #sec07 ul li:nth-child(3){
	height: calc(1152px + 10vw); /* 1280px幅で1280px相当 */
	margin-bottom: calc(-490px - 10vw); /* 662 - height */
  }
  #sec07 ul li:nth-child(3) .li_sticky{
	z-index: 3;
	--peek: 10vw;
	top: calc(70px + var(--peek));
  }
  #sec07 ul li:nth-child(4){
	height: calc(490px + 15vw); /* 1280px幅で682px相当 */
	margin-bottom: 0; /* 最後のliなので次への調整は不要（last-childルールで0のまま） */
  }
  #sec07 ul li:nth-child(4) .li_sticky{
	z-index: 4;
	--peek: 15vw;
	top: calc(70px + var(--peek));
  }
}
.main_title img{
		width: 50%;height: auto;
	}
	.top .main_title img{
		width: 100%;height: auto;
	}
	.main_title h1{text-align: center;}

.top .main_title {
	margin: auto;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translateY(-50%) translateX(-50%);
	-webkit- transform: translateY(-50%) translateX(-50%);
	z-index: 10;
	max-width: 519px;
	width: 15vw;
}


#sec07{
	padding: 200px 0 120px 0;
	position: relative;
}
  #sec07 h2{margin: 0 0 min(5vw, 50px) 0;}
  #sec07_02{background: #fff;}
  #sec07_02 {padding: 250px 0;}
  #sec07_02 .box00{position: relative;background: #fff;border-radius: 20px;max-width: 1260px;margin: 0 auto;padding: 0 30px;}
  #sec07_02 .box00{position: relative;aspect-ratio: 1000 / 600;}
  #sec07_02 .box00::before{position: absolute;width: 90%;max-width: 1000px;left: 50%;transform: translateX(-50%);}
#sec07_02 .box01{z-index: 2;position: absolute;left: 50%;transform: translateX(-50%);width: 110%;top: -9%;}
#sec07_02 .box01 img{width: 100%;height: auto;}
#sec07_02 .btn_wrap{position: absolute;left: 50%; transform: translateX(-50%);bottom: 10%;}
  #sec08{position: relative;padding: 200px 0;background: #fefcf3;}
  #sec08 .video{text-align: center;}
  #sec08 .video_frame{
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
  }
  #sec08 .video_frame iframe{
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
	border: 0;
  }
  #sec08 .shop_slider00 {
    overflow: hidden;
    width: 100%;
    margin: 55px auto;
  }

  #sec08 .slider-track {
    display: flex;
    width: calc(200%);
    /* 2セット分を横並びに */
    animation: scrollSlider 30s linear infinite;
	align-items: end;
  }

  #sec08 .slide {
    flex: 0 0 auto;
    /* スライド1枚の幅を指定（調整可） */
    margin-right: 60px;
  }

  @keyframes scrollSlider {
    0% {
      transform: translateX(-50%);
    }

    100% {
      transform: translateX(0);
      /* 1セット分を流す */
    }
  }


  #sec08 .text01{max-width: 750px;margin: 0 auto;text-align: center;}
  #sec09{
	background: #fff;
	padding: 200px 0 120px 0;
  }

  #sec09 .map{margin: 0 0 140px 0;position: relative;z-index: 2;}

  #sec09 .box01{margin: 0 0 120px 0;padding: 0;position: relative;z-index: 2;}
  #sec09 .box01 .wrap_inner{max-width: 630px;margin: 0 auto;padding: 0 30px;}

  #sec09 .box_info{margin: 0 0 60px 0;}
  #sec09 .box_info .text01{font-weight: bold;font-size: min(4vw, 24px);margin: 0 0 20px 0;color: #70594f;}
  #sec09 .box_info dl.v01{display: flex;align-items: start;padding: 0 0 14px 0;margin: 0;}
  #sec09 .box_info dl.v01 > dt{flex-shrink: 0;box-sizing: border-box;width: 100px;height: 44px;display: flex;align-items: center;justify-content: center;border: 1px solid var(--color-brown);color: var(--color-brown);font-weight: bold;font-size: min(3vw, 15px);margin: 0 30px 0 0;}
  #sec09 .box_info dl.v01 > dd{flex: 1;font-size: min(3.5vw, 15px);line-height: 1.6;color: #70594f;margin: 12px 0 0 0;}

  #sec09 h3{color: var(--color-brown);font-size: min(4vw, 22px);margin: 0 0 15px 0;font-weight: bold;display: flex;align-items: center;gap: 12px;justify-content: center;}
  #sec09 h3 span{width: 36px;flex-shrink: 0;display: block;}
  #sec09 h3 img{width: 100%;height: auto;display: block;}
  #sec09 .box00{display: flex;flex-wrap: wrap;gap:10px;justify-content: center;width: 100%;}
  #sec09 .text01{font-size: min(3.6vw, 16px);color: var(--color-text);line-height: 1.8;color: #70594f;text-align: center;}
 #sec09 .btn_wrap{margin: 20px auto 0;}
  #sec09 .text02{font-weight: bold;font-size: min(3.8vw, 18px);margin: 5px 0 10px 0;color: var(--color-brown);}
  #sec09 li{margin: 0 0 50px 0;}
  #sec09 li:last-child{margin: 0;}

  @media screen and (max-width: 768px) {
	  #sec09 .box_info dl.v01{flex-direction: column;align-items: center;gap: 10px;padding: 16px 0;}
	  #sec09 .box_info dl.v01 > dt{width: 100%;max-width: 260px;margin: 0;}
	  #sec09 .box_info dl.v01 > dd{width: 100%;text-align: center;}
	  #sec09 .box_info .text01{text-align: center;}
	  #sec09 h3{justify-content: center;}
	  #sec09 .text01{text-align: center;}
  }
  #sec10{padding-bottom: 200px;background: #fff;}
  #sec10 .wrap01{max-width: 1260px;}
  #sec11{padding: 200px 0;background: #fff;}
  #sec11 .bnr, #sec07 .bnr{margin: 50px auto 0;}

  #sec12{background: url(../images/s12_bg@2x.jpg) no-repeat center center;background-size: cover;height: 670px;padding: min(200px, 42vw) 0 0 0;}
  #sec12 .h2img{margin: 0 auto 14px;}
  #sec12 .btn_wrap{margin: 0 auto;}
  #sec12 .btn_wrap + .btn_wrap{margin: 20px auto 0;}
  .loop_slider {
	width: 100vw;
	height: min(25vw, 250px);
	overflow: hidden;
	position: relative;
	margin: -250px 0 0 0;
	z-index: 2;
	top: 70px;
}
  
  .loop_track {
	display: flex;
	width: max-content;
	animation: scrollLoop 180s linear infinite;
  }
  
  .loop_track img {
	height: min(25vw, 250px);
	width: auto;
	display: block;
  }
  
  /* アニメーション設定 */
  @keyframes scrollLoop {
	0% {
	  transform: translateX(0%);
	}
	100% {
	  transform: translateX(-50%);
	}
  }

  @media screen and (max-width: 768px) {
	.loop_slider {
		position: absolute;
		margin: -15vw 0 0 0;
		top: auto;
	  }
	.h2img{padding: 0;}
	.h2img02{padding: 0;}
	header.scrolled{border-radius: 0 0 20px 20px;}
	header > div{
		height: 70px;
	}

	.btn_cont{top: auto;bottom: 10vw; height: 40vw;right: 15px;width: 50px;}
.btn_wrap {
	margin: min(10vw, 30px) auto 0;
	width: 80%;
}
.btn_wrap .r_btn{font-size: 3vw;height: 55px;}
footer .btn_wrap .r_btn{width: 100%;}
.r_btn .icon01{width: 18px;right: 22px;}
.r_btn .icon02{width: 34px;}
	.drawer-open header > div{
		height: 100vh;
		background: none;
	}
	.drawer-open header.scrolled{background: none;backdrop-filter:unset;}
	.logo .black, .logo .white {
		left: 10px;
	max-width: 196px;
width: 33vw;
}
.nav-contact-btn{margin: 0 60px 0 0;}
	#fv{
		height: calc(100vw * 1000 / 750);
	  }
	  .main_title {
		top: 50%;
	}
	.top .main_title {
		width: 33vw;
		top: 42%;
	}
	.under .main_title img{
		height: 16vw;width: auto;
	}
	.under .food01 .main_title img{
		height: 36vw;width: auto;
	}
	.under .food02 .main_title img{
		height: 40vw;width: auto;
	}
	.under .food03 .main_title img{
		height: 36vw;width: auto;
	}
	.under .bg_content{
		position: relative;
		background-size: 180% auto;
}
#sec02 {
	position: relative;
	background-color: #fdf7f6;
  }
  
  #sec02::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: url("../images/s2bg01.png"), url("../images/s2bg02.jpg");
	background-repeat: no-repeat, repeat;
	background-position: top right, top left;
	background-size: 60% auto, auto;
	opacity: 0.4;
	pointer-events: none;
  }
  
  #sec02 > * {
	position: relative;
  }
	#sec03{
		position: relative;
		width: 100%;
		aspect-ratio: 750 / 1000;
	  }
	  #sec03 .img02 {
		position: absolute;
		right: 10vw;
		top: 85vw;
		width: 20vw;
		z-index: 3;
	}
	  #sec03 .img03 {
		position: absolute;
		right: 0;
		top: 20vw;
		width: 70vw;
		z-index: 1;
	}
	#sec03 .img04 {
		position: absolute;
		left: 0;
		top: 60vw;
		width: 70vw;
		z-index: 2;
	}
	/* PC版と同じ白背景+枠+オフセットパネルのあしらいにする（旧背景画像は削除、高さはコンテンツに合わせて可変） */
	#sec04 .top_message {
		aspect-ratio: auto;
	}
	#sec04 .photo_mayor{width: 80%;}
	#sec04 .photo_mayor img{width: 100%;}
	#sec04 .top_message_text{font-size: 2.8vw;}

	/* SP調整用 */
	#sec04 .box01{
		align-items: baseline;
	}
	#sec04 .box02{
		flex: 0 0 50%;
		max-width: 50%;
	}
	#sec04 .box03{

	}
	#sec04 .sm_slider img {
		height: 22vw;
	}
	#sec04 .b_slider{
height: 66.6vw;
	}

.slider-wrapper {
  width: 90vw;
  position: relative;
  float: left;
  margin: 0 0 10vw 0;
}

#sec04_02 .d_slider {
	position: relative;
	width: 130vw; /* ←ブラウザ左端に揃える */
	right: -16vw;
	 border-radius: 0 0 50px 0;
	 overflow: hidden;
	 outline: 1px solid #70594f;
	 outline-offset: 1vw;
  }

  #sec04_03 .d_slider {
	width: 130vw; /* ←ブラウザ左端に揃える */
	left: 16vw;
	 outline-offset: 1vw;
  }

.d_slider .slick-track {
  display: flex;
}

.d_slider .slick-slide {
  margin-right: 2vw; /* スライド間に余白を作る */
  opacity: 1; /* flicker防止 */
}

.d_slider img {
  width: 100%;
  display: block;
}

	#sec07_02 .box01 img{width: 100%;}
	
	section{overflow-x: clip;}
	
	#sec07 .shop_slider .box01 a:hover .box02 img{border-radius: 55px;}
	#sec09 .btn_wrap{width: 90%;}
	#sec09 .box01{margin: 0 0 25vw 0;padding: 0;}
	footer .box02{flex: 0;}
	footer .box04{padding: 0 0 5px 0;}
	.logo{width: 50vw;top: 0;left: 0;}
	header > div{background: none;}
	header{box-shadow: none!important;}
	.h2img img{width: auto;max-height: 13vw;}
	.h2img02 img{width: auto;max-height: 13vw;}
	
	#sec02{
		padding: 20vw 0 15vw;
	  }
	  #sec02 .h2img{margin: 0 0 8vw 0;}

	  #sec02 .box01{width: 86vw;}
	  #sec02 .box01 img{width: 100%;height: auto;display: block;}

	  #sec02 .s2_canvas{height: auto;}
	  #sec02 .s2_cluster{position: relative;width: 100%;height: 124vw;margin: 0 0 14vw 0;}
	  #sec02 .s2_cluster .box04{position: absolute;z-index: 3;}
	  #sec02 .s2_cluster .box04 img{width: 100%;height: auto;display: block;}
	  #sec02 .s2_cluster .box04.v01{left: 5vw;top: 148vw;width: 24vw;}
	  #sec02 .s2_cluster .box04.v02{right: 3vw;top: 2vw;width: 24vw;}
	  #sec02 .s2_canvas .box05 {
		position: absolute;
		z-index: 2;
		left: 0;
		width: 16vw;
		bottom: auto;
		top: 100vw;
	}
	  #sec02 .s2_cluster .box021,
	  #sec02 .s2_cluster .box022{position: absolute;z-index: 2;}
	  #sec02 .s2_cluster .box021 img,
	  #sec02 .s2_cluster .box022 img{width: 100%;height: auto;display: block;}
	  #sec02 .s2_cluster .box021{left: 0;top: 20vw;bottom: auto;width: 50vw;}
	  #sec02 .s2_cluster .box022{left: 20vw;top: 81vw;bottom: auto;width: 46vw;}

	  #sec02 .s2_bottom{position: relative;display: block;}
	  #sec02 .s2_bottom .box03{position: relative;z-index: 2;display: block;top: 9vw;left: 0;width: 66vw;margin: 0 -4vw 8vw auto;}
	  #sec02 .s2_bottom .box03 img{width: 100%;height: auto;display: block;}
	  #sec02 .s2_bottom .s2bg{position: absolute;z-index: 1;right: -10vw;left: auto;top: auto;bottom: 117vw;width: 48vw;pointer-events: none;}
	  #sec02 .s2_bottom .s2bg img{width: 100%;height: auto;display: block;}
	  #sec02 .s2_bottom .text01{position: relative;z-index: 2;top: 0;left: 0;width: 88vw;margin: 0 auto;text-align: left;font-size: 3.6vw;line-height: 2;text-align: center;margin: 30vw auto 7vw;}
	  #sec02 .s2_bottom .text01 span{font-size: 1.3em;}
	  #sec02 .btn_wrap{position: relative;z-index: 2;margin-top: 4vw;}
	#sec04{padding: 0 0 15vw;}
	#sec05{padding: 20vw 0 15vw;background: #fff;}
#sec06{position: relative;margin: 0;
	margin: 10vw 0 0 0;
	padding: 20vw 0 15vw;
}

#sec06 .box00{position: relative;z-index: 5;margin: 0 0 5vw 0;}
#sec06 .box01{position: absolute;left: 0;top: 10vw;z-index: 1;width: 30vw;}
#sec06 .box02{position: absolute;right: 0;bottom: -15vw;z-index: 1;width: 90vw;}
#sec06 .btn{margin: 5vw auto 0;}
#sec07{
	padding: 20vw 0 15vw;
  }
  #sec07 ul li{margin-bottom: 8vw;}
  #sec07 ul li:last-child{margin-bottom: 0;}
  #sec07 li .logo{width: 22vw;top: 1vw;right: 1vw;}
  #sec07 li .num{width: 3vw;}
  #sec07 li .btn_wrap{bottom: 4vw;right:auto;left: 50%;transform: translateX(-50%);}
  #sec07 li .btn_wrap .r_btn{width: min(55vw, 320px);height: min(11vw, 60px);font-size: min(3.6vw, 18px);}
  #sec07_02 {
	padding: 20vw 0 15vw;
  }
  #sec07_02 .box01{width: 100%;}
  #sec07_02 .box00{aspect-ratio: 1000 / 660;}
  #sec08{padding: 20vw 0 15vw;}
  #sec08 .shop_slider00 {
    margin: 7vw auto;
  }

  #sec08 .slider-track {
    display: flex;
    width: calc(1000%);
    /* 2セット分を横並びに */
    animation: scrollSlider 50s linear infinite;
  }

  #sec08 .slide {
    flex: 0 0 auto;
    margin-right: 7vw;
	width: auto;
	height: 50vw;
  }
  #sec08 .slide img{width: auto;height: 100%;}
  #sec08 .text01{width: 90%;}
  #sec09{padding: 20vw 0 15vw;}
  #sec09 .map{height: 80vw;margin: 0 0 10vw 0;}

  #sec11{padding: 20vw 0 15vw;}
  #sec11 .bnr, #sec07 .bnr{width: 90%;}
	.bgs_wrap{
		height: 141vw;
	width: 100%;}
	.under .bgs_wrap{
			height: 100%;}
	.bg-slider {
		min-height: auto;
		height: 141vw;
	}
	.icons {
		margin: -17vw 0 0 0;
		height: 16vw;
	  }
	  .icon_slider{padding: 11vw 0 0 0;height: 16vw;}
	.icon_slider img{height: 5vw;width: auto;vertical-align: bottom;}
	#sec12{height: 130vw;}
}

.top_floor .btn {
	margin: 0 auto;
}

.top_message {
	aspect-ratio: 1000 / 380;
	width: 100%;
	margin: 0 auto;
	padding: 10px;
	position: relative;
	border:1px solid #70594f;
	background: #fff;
	margin: 80px auto;
}
.top_message::after{
	position: absolute;
	content: "";
	width: 100%;
	height: 100%;
	background: #70594f;
	right: -10px;
	bottom: -10px;
	border-radius: 0 20px 0 20px;
	z-index: -1;
}

@media screen and (max-width: 768px) {
	.top_message:before {
		width: 50px;
		height: 117px;
	}
	
	.top_message::after {
	
	}
}
.top_message div {
	width: 100%;
	padding: 5%;
	z-index: 2;
	position: relative;
}

.photo_mayor {
	width: 200px;
}

.photo_mayor span {
	display: block;
	text-align: center;
	font-size: 13px;
	font-size: 1.6rem;
	margin: 5px auto 0;
}

.top_message_text {
	width: calc(100% - 260px);
	line-height: 2em;
	font-size: min(1.4vw, 16px);
}

.top_newsarea {
	/*padding-bottom: 30px;*/
	background-color: #fff;

}


.top_newsarea .container {
	/*background: #ECF7F6;*/
}

.top_newsarea .bnr {
	text-align: center;
}


@media screen and (max-width: 768px) {
	.top_newsarea {
		padding-bottom: 0px;
	}
	.top_newsarea .btn {
		margin: 10vw auto 20vw;
	}
}
.top_newsarea li.none {
	box-shadow: none;
}
.top_newsarea li{width: 30%;max-width: 330px;position: relative;}

.top_newsarea li a {
	width: 100%;
	display: block;
	line-height: 1.5em;
}

@media screen and (max-width: 768px) {
	.top_newsarea li{width: 100%;max-width: 100%;margin: 0 0 7vw 0;}
	.top_newsarea li img{width: 100%;height: auto;}
}
@media screen and (max-width: 600px) {
	.top_news_photo {
		width: 40%
	}

	.top_news_item {
		width: 60%;
	}
}

.top_news_item dt {
	font-size: 12px;
	font-size: 1.2rem;
	padding-bottom: 10px;
	margin: 0 0 10px 0;
	border-bottom: 1px solid #cccccc;
}

/*add20210129*/
.top_bnr_media {
	max-width: 800px;
	width: 100%;
	margin: 15px auto;
}

.top_bnr_media a:hover img {
	opacity: 0.8;
}

/*　20220804　レイアウト変更　*/
.media_bnr {
	text-align: center;
	margin: 100px auto;
}

@media screen and (max-width: 600px) {
	.media_bnr {
		margin: 50px auto;
	}
}



.top_newsarea ul.top_bnrarea {
	max-width: 940px;
	width: 95%;
	margin: 0 auto 15px;
	display: -webkit-flex;
	display: -moz-flex;
	display: -ms-flex;
	display: -o-flex;
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: space-between;
}

.top_newsarea ul.top_bnrarea li.top_bnrimg {
	width: 440px;
	margin: 0 auto 15px;
}

.top_newsarea ul.top_bnrarea li.top_bnrimg a {
	width: 100%;
	padding: 0;
	background: none;
}

.top_newsarea ul.top_bnrarea li.top_bnrimg a:hover img {
	opacity: 0.8;
}




@media screen and (min-width: 768px) {
	.pc {}

	.sp {
		display: none;
	}


}

@media screen and (max-width: 768px) {
	.pc {
		display: none;
	}

	.sp {}
}

@media screen and (max-width: 768px) {
	.top_snsarea iframe{
		width: 100%!important;
	}
	.top_snsarea dl{width: 100%;}
	.top_snsarea dl + dl{
		width: 340px;
		text-align: center;
		margin: 10vw 10px 25px;
	}
	.top_snsarea dt img{
		width: 16vw;
	}
}
.top_snsarea dl {
	width: 340px;
	text-align: center;
	margin: 0 10px 25px;
}
.top_snsarea dl:last-child{
	width: 250px;
}
.top_snsarea dl .qr{
	width: 166px;
	margin: 0 auto;
}
.top_snsarea dt {
	width: 75px;
	font-size: 20px;
	font-size: 2.0rem;
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 0 auto 5px;
}


#slider_shop .slick-slide {
	width: 459px;
}

#slider_shop .slick-list,
#slider_shop02 .slick-list {
	overflow: visible;
}

@media screen and (max-width: 768px) {
	#slider_shop .slick-slide {
		width: 50vw;
	}

	#slider_shop02 .slick-slide {
		width: 50vw;
	}

	#slider_shop02 {
		margin: 30px 0 0 0;
	}
}

.top_thummenu {
	width: 100%;
}

.top_thummenu li {
	width: 50%;
}

.top_thummenu li dl {
	background-size: cover;
	max-width: 520px;
	width: 95%;
	min-height: 445px;
	margin: 0 auto;
	color: #ffffff;
	padding-top: 100px;
}

.top_thummenu li dt {
	max-width: 305px;
	width: 100%;
	margin: 0 auto 20px;
}

.top_thummenu li a dl {
	-webkit-transition: all 0.3s ease;
	-moz-transition: all 0.3s ease;
	-o-transition: all 0.3s ease;
	transition: all 0.3s ease;
}

.top_thummenu li a:hover dl {
	opacity: 0.8;
}

.top_access {
	position: relative;
	width: 100%;
}

.top_access .contents {
	padding-bottom: 50px;
}

/*.top_access ul {
	display: flex;justify-content: space-between;width: 1020px;margin: 0 auto;}*/
.top_access ul li {
	margin: 15px;
	width: 32%;
	max-width: 280px;
}
.top_access ul li span{width: 160px;height: 95px;display: flex;align-items: center;justify-content: center;margin: 0 auto;}

@media screen and (max-width: 768px) {
	.top_access ul li span{height: auto;}	
}

.top_access ul li p {
	margin: 5px 0 0 0;line-height: 1.5;
}

.top_access .noParking {
	width: 80%;
	margin: 40px auto 0 auto;
	text-align: center;
	border: solid 1px #941d59;
	padding: 26px;
	color: #941d59;
}

.top_access .noParking h3 {
	font-weight: bold;
	font-size: 20px;
	margin-bottom: 17px;
	line-height: 1.6;
}

.top_access .noParking p {
	font-size: 17px;
}

.map {
	width: 100%;
	height: 600px;
}

.map iframe {
	width: 100%;
	height: 100%;
}

/*------------------------------------------ nextPage ------------------------------------------*/
/*-------------- breadcrumb --------------*/
.breadcrumb {
	width: 95%;
	padding: 10px 0 0 0;
	margin: 0 auto;
	overflow: hidden;
	font-size: 12px;
	font-size: 1.2rem;
position: relative;z-index: 5;
}

.breadcrumb li {
	display: inline-block;
}

.breadcrumb li:after {
	content: ">";
	padding: 0 8px;
}

.breadcrumb li:last-child:after {
	content: none;
}

.breadcrumb li a {
	color: #000;
}

.breadcrumb li a:hover {
	text-decoration: underline;
}

/*-------------- titlearea --------------*/
.next_titlearea {
	height: 300px;
}

.next_title {
	font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
	color: #ffffff;
	font-size: 26px;
	font-size: 2.6rem;
	text-align: center;
	padding: 180px 0 0;
}

/*-------------- table --------------*/
.table_a {
	max-width: 750px;
	width: 100%;
	margin: 0 auto;
	position: relative;
	z-index: 10;
	border: 1px solid #c6dfd3;
}
.p_tokusho .table_a {
	max-width: 900px;
	width: 100%;
}
.table_a th,
.table_a td {
	padding: 20px 10px;
	border-collapse: collapse;
}

.table_a th {
	text-align: center;
	background: #e7f2ec;
	width: 30%;
	border-bottom: 1px solid #c6dfd3;
	vertical-align: middle;
}

.table_a td {
	padding: 20px 30px;
	background: #ffffff;
	width: 70%;
	border-bottom: 1px solid #c6dfd3;
}

/*-------------- concept --------------*/

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

}


@media (max-width: 1300px) and (min-width: 768px) {

	.concept_photo01 img,
	.concept_photo02 img {
		width: 100%;
		height: auto;
	}

	.concept_photo01 {
		max-width: 338px;
		width: 28vw
	}

	.concept_photo02 {
		max-width: 269px;
		width: 23vw;
	}
}


/*-------------- facility --------------*/
.facility_floorguide {
	max-width: 1200px;
	width: 100%;
	margin: 0 auto 30px;
}

.facility_container {
	background: #ebf7f6;
}

.facility_container .container {
	max-width: 1100px;
	margin: 60px auto 0;
}

.facility_nav {
	max-width: 1000px;
	width: 95%;
	margin: 80px auto 40px;
}

.facility_nav li {
	max-width: 260px;
	width: 20%;
}

.facility_nav li a {
	width: 100%;
	height: 100%;
	padding: 15px 0 0;
	line-height: 1.3em;
	display: block;
	color: #002754;
	text-align: center;
	-webkit-transition: all 0.3s ease;
	-moz-transition: all 0.3s ease;
	-o-transition: all 0.3s ease;
	transition: all 0.3s ease;
}
/*
.facility_nav li a:after {
	content: "▼";
	font-size: 10px;
	font-size: 1.0rem;
	display: block;
	text-align: center;
}
*/

.facility_container .contents h3 {
	position: relative;
	font-size: 22px;
	color: #fff;
	text-align: center;
	background: #002754;
	line-height: 54px;
	margin: 60px 0 75px;
}

.facility_container .contents h3:before {
	position: absolute;
	content: "";
	display: block;
	width: 100%;
	height: 3px;
	background: #002754;
	top: -8px;
}

.facility_container .contents h3:after {
	position: absolute;
	content: "";
	display: block;
	width: 100%;
	height: 3px;
	background: #002754;
	bottom: -8px;
}

.facility_container .contents h4 {
	text-align: center;
}

.facility_container .contents .bnr {
	margin: 40px auto 100px;
	text-align: center;
}

.facility_container .contents {
	position: relative;
	background: #fff;
	text-align: center;
}

.facility_container .contents.zip {
	background: none;
}

.num {
	position: absolute;
	top: -25px;
	left: -62px;
}

.num+img {
	display: block;
	position: relative;
	z-index: 10;
	margin-bottom: 80px;
	margin: 0 auto;
}

@media screen and (max-width: 1180px) {
	.num {
		padding-left: 50px;
	}
}

@media screen and (max-width: 768px) {
	.facility_nav li {
		margin: 0 0 20px 0;
	}

	.facility_container .contents .bnr a+a {
		margin: 20px 0 0 0;
	}

	.num {
		left: -5px;
	}
}

.wrap {
	max-width: 1060px;
	padding: 0 30px;
	margin: 0 auto;
	position: relative;
	z-index: 2;
}



.facility_container .btn {
	margin: 0 auto;
}

.zip h4 {
	background: #fff;
	max-width: 600px;
	margin: 0 auto 25px;
	font-size: 24px;
	font-weight: bold;
	padding: 10px 0;
}

.zip p {
	margin: 0 auto 60px;
	font-size: 20px;
	font-weight: bold;
}

.zip p span {
	font-weight: bold;
	color: #cc1e1e;
}

.zip small {
	font-size: 14px;
}



.facility_container .container.wh {
	background: #fff;
	max-width: 100%;
	padding: 20px 0 130px 0;
}

/*shop06*/
.shop {
	padding: 0 0 100px 0;
}

.shop .text00 {
	text-align: center;
	font-size: 18px;
	line-height: 39px;
	margin: 60px 0 20px 0;
}

.shop .wrap {
	max-width: 1050px;
	margin: 0 auto;
}

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

.facility_container.shop .contents {
	position: relative;
	text-align: center;
	background: none;
	width: 100%;
}

.facility_container.shop .contents h3 {
	position: relative;
	font-size: 22px;
	text-align: center;
	color: #002754;
	line-height: 54px;
	margin: 130px 0 40px;
	border-top: 1px solid #002754;
	border-bottom: 1px solid #002754;
	background: none;
}

@media screen and (max-width: 768px) {
	.facility_container.shop .contents h3 {
		width: 90%;
		margin: 130px auto 40px;
	}

	.shop .menu_box {
		position: relative;
	}

	.shop .menu_box .imo {
		position: absolute;
		top: 5px;
		right: 5px;
	}
}

/*-------------- shokudo --------------*/
.shokudo_container {

	width: 95%;
	min-height: 535px;
	height: auto;
	margin: auto;
}

.shokudo_container dl {

	color: #ffffff;
	max-width: 780px;
	width: 100%;
	min-height: 535px;
	height: auto;
	margin: 0 auto;
}

.shokudo_logo {
	max-width: 580px;
	width: 95%;
	margin: auto;
	padding: 0 0 30px;
}

.shokudo_container dl {
	padding: 120px 0 20px;
}

.shokudo_container dl dd {
	padding: 0 20px;
	font-size: 15px;
	font-size: 1.5rem;
	line-height: 2em;
}

.shokudo_container dl dd.comments,
.shop_container dl dd.comments {
	font-size: 13px;
	font-size: 1.3rem;
	border: 1px dotted #ffffff;
	padding: 10px;
	margin: 10px auto 0;
}

.shokudo_nav {
	max-width: 1200px;
	width: 95%;
	margin: 20px auto 40px;
	/*border: 1px solid #b8172b;*/
}

.shokudo_nav li {
	width: 20%;
	border-left: 1px solid #b8172b;
	border-top: 1px solid #b8172b;
}

.shokudo_nav li:nth-child(5),
.shokudo_nav li:last-child {
	border-right: 1px solid #b8172b;
}

.shokudo_nav li:nth-child(6),
.shokudo_nav li:nth-child(7),
.shokudo_nav li:nth-child(8),
.shokudo_nav li:nth-child(9),
.shokudo_nav li:last-child {
	border-bottom: 1px solid #b8172b;
}

.shokudo_nav li span {
	font-size: 12px;
	font-size: 1.2rem;
	line-height: 1.1em;
	display: block;
}

.shokudo_nav li a {
	width: 100%;
	height: 100%;
	padding: 15px 0 0;
	line-height: 1.3em;
	display: block;
	color: #b8172b;
	text-align: center;
	-webkit-transition: all 0.3s ease;
	-moz-transition: all 0.3s ease;
	-o-transition: all 0.3s ease;
	transition: all 0.3s ease;
}

.shokudo_nav li a:after {
	content: "▼";
	font-size: 10px;
	font-size: 1.0rem;
	display: block;
	text-align: center;
}

.shokudo_nav li a:hover {
	background: #b8172b;
	color: #ffffff;
}

.shokudo_menutitle {
	display: flex;
	align-items: center;
	text-align: center;
	font-size: 18px;
	font-size: 1.8rem;
	font-weight: bold;
	margin-bottom: 30px;
}

.shokudo_menutitle:before,
.shokudo_menutitle:after {
	border-top: 2px solid #040000;
	content: "";
	display: inline;
	flex-grow: 1;
}

.shokudo_menutitle:before {
	margin-right: 1em;
}

.shokudo_menutitle:after {
	margin-left: 1em;
}

.shokudo_menutitle span {
	width: 110px;
	display: block;
	margin: 0 0.5em 0 0;
}

.shokudo_menutitle span.title_s {
	width: 80px;
}

.shokudo_menutitle span.title_s02 {
	width: 160px;
}

.shokudo_menutitle span.title_s03 {
	width: 120px;
}

.menu_box {
	background: #ffffff;
	margin: 0 15px 45px;
	width: 310px;
}

.menu_box.none {
	background: none;
}

.mbl {
	max-width: 810px;
	width: 100%;
	margin: 0 auto 50px;
}

.mbm {
	width: 580px;
	margin: 0 auto 50px;
}

.mbs {
	margin: 0 auto 40px;
}

.menu_box dl {
	width: 95%;
	margin: 0 auto;
	text-align: center;
}

.menu_box dt {
	font-size: 16px;
	font-size: 1.6rem;
	font-weight: bold;
	padding: 20px 0 10px;
	border-bottom: 1px dashed #040000;
}

.menu_box dd {
	font-size: 16px;
	font-size: 1.6rem;
	padding: 15px 0 20px;
}
.menu_box dd small{text-align: center;display: block;
	font-size: 12px;
	font-size: 1.2rem;color: #d63333;}
.menu_box dd span {
	font-size: 12px;
	font-size: 1.2rem;
	display: block;
	padding: 10px 0 0 0;
	line-height: 1.4;
}

/*-------------- shop --------------*/
.shop {
	padding: 0 0 100px 0;
}

.shop .text00 {
	text-align: center;
	font-size: min(3.5vw, 18px);
	line-height: 2.1;
	margin: 60px 0 20px 0;
	padding: 0 30px;
}

.shop .wrap {
	max-width: 1050px;
	margin: 0 auto;
}

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

.facility_container.shop .contents {
	position: relative;
	text-align: center;
	background: none;
	width: 100%;
}

.facility_container.shop .contents h3 {
	position: relative;
	font-size: 22px;
	text-align: center;
	color: #002754;
	line-height: 54px;
	margin: 130px auto 40px;
	border-top: 1px solid #002754;
	border-bottom: 1px solid #002754;
	background: none;
}

.shop .menu_box {
	position: relative;
}

.shop .menu_box .icon {
	position: relative;
}
.shop .menu_box .icon p{
	position: absolute;
	bottom: -25px;
	left: -20px;
}
@media (max-width: 768px) {
	.shop .menu_box .icon {
		
	}
}
/*shop01~05、shop07*/
h2.menu {
	text-align: center;
	position: relative;
	max-width: 1240px;
	margin: 50px auto 0;
}

h2.menu:before {
	position: absolute;
	display: block;
	content: "";
	max-width: 430px;
	width: 25vw;
	height: 2px;
	background: #002754;
	bottom: 26px;
}

h2.menu:after {
	position: absolute;
	display: block;
	content: "";
	max-width: 430px;
	width: 25vw;
	height: 2px;
	background: #002754;
	bottom: 26px;
	right: 0;
}


.eat .facility_nav {
	max-width: 864px;
}

/*.eat .facility_nav li{max-width: 200px;width: 26%;margin: 0 0 20px 0;}*/
.eat .facility_nav li {
	max-width: 150px;
	width: 26%;
	margin: 0 0 20px 0;
}

/*.eat .facility_nav li:nth-child(5){margin: 0 0 20px 108px;}*/
.eat .facility_nav li:nth-child(7) {
	margin: 0 108px 20px 0;
}

.eat.shop .menu_box .reco {
	position: absolute;
	top: 5px;
	left: 5px;
}

.eat.shop .menu_box .reco_r {
	position: absolute;
	top: 5px;
	right: 5px;
}
.reco_shop{
	position: absolute;
	top: 5px;
	left: 5px;
}

@media screen and (max-width: 768px) {
	h2.menu {
		width: 90%;
	}

	h2.menu img {
		width: 20vw;
	}

	.eat .facility_nav {
		width: 83%;
	}

	.eat .facility_nav li {
		width: 45%;
	}

	.eat .facility_nav li:nth-child(5),
	.eat .facility_nav li:nth-child(7) {
		margin: 0 0 20px 0;
	}
}

.nophoto.v02 {
	padding: 40px 35px 15px 35px;
}
.nophoto.v02 .box01{
	width: 100%;
}
.nophoto.v02 dl {
	margin: 0 0 25px 0;
	width: 45%;
	float: left;
}

.nophoto.v02 dl:nth-child(2n) {
	float: right;
}

.nophoto.v02 dt {
	font-weight: bold;
}
.nophoto.v02 dd {
	text-align: right;
}
.nophoto.v02 dd p{
	font-size: 12px;
}

@media (max-width: 768px) {
	.nophoto.v02 dl {
		margin: 0 0 25px 0;
		width: 100%;
		float: left;
		text-align: center;
	}

	.nophoto.v02 dl:nth-child(2n) {
		margin: 0 0 25px 0;
	}
	.nophoto.v02 dd {
		text-align: center;
	}
}

/*-------------- news --------------*/
.news section {
	background-color: #d2f7f;
}

.news_contents {
	padding: 20px 0;
	border-bottom: 1px dashed #ece6d7;
}


.boder_b_none {
	border-bottom: none;
}

.news_photo {
	/*width: 470px;*/
	text-align: center;
}



.news_box_p {
	margin-top: 30px;
	padding: 0 40px 100px 40px;
}

@media screen and (max-width: 768px) {
	.news_photo img {
		width: 100%;
		margin: 0 auto;
	}
}
.news_box .tag_news {
	left: 0;
	width: 8em;
	margin: 38px 0 0 0;
}

.news_item {
	padding: 10px 0 0;
}

.news_title {
	font-size: min(4.5vw, 24px);

	text-align: left;
	line-height: 1.4;
}


.news_item_time {
	display: block;
	font-size: 16px;
	font-size: 1.6rem;
	text-align: left;
	margin: 10px 0;
}

/*.news_title:after {
 display: block;
 content: "―";
 line-height: 1.5em;
}*/
/*-------------- media --------------*/
.media_menu {
	margin: 30px auto;
	max-width: 680px;
}

.media_menu li {
	width: 28%;
}

.media_menu li a {
	display: block;
	width: 100%;
	height: 100%;
	color: #002754;
	font-weight: bold;
	text-align: center;
	font-size: 16px;
	font-size: 1.5rem;
	padding: 12px 0;
	background: #ffffff;
	position: relative;
	transition-property: all;
	transition: 0.3s linear;
}


.title_c {
	text-align: center;
	margin: auto;
	padding: 45px 0 30px 0;
}


.media_box {
	max-width: 800px;
	margin: 0 auto min(10vw, 100px);
}
.media_box + .media_box{
	border-top: 1px dashed #70594f;
	padding: min(10vw, 100px) 0 0 0;
	margin: min(10vw, 100px) auto 0;
}

.media_box_last {
	max-width: 1000px;
	width: 95%;
	padding: 30px 0 40px;
	margin: 0 auto 10px;
}

.media_title {
	background: #70594f;
	max-width: 700px;
	width: 100%;
	margin: 0 auto 15px;
	color: #ffffff;
	font-size: 16px;
	font-size: 1.6rem;
	padding: 13px 15px;
	text-align: center;
}

.media_photo {
	max-width: 700px;
	width: 100%;
	margin: 14px auto 0;
}

.media_text_box {
	max-width: 450px;
	width: 100%;
	margin: 50px auto;
}

.media_text_box .btn {
	display: block;
	margin: 0 auto;
	text-align: center;
}

.center {
	text-align: center;
}

/*mediainfo_common*/
.mediainfo_title {
	color: #B8172B;
	font-size: 22px;
	font-size: 2.2rem;
	text-align: center;
	margin: 10px auto;
	font-weight: bold;
}

.mediainfo_title:before {
	content: '◇';
	display: inline-block;
	vertical-align: middle;
	margin: 0 15px 0 0;
}

.mediainfo_title:after {
	content: '◇';
	display: inline-block;
	vertical-align: middle;
	margin: 0 0 0 15px;
}

.mediainfo_main {
	max-width: 580px;
	width: 100%;
	margin: 15px auto 0;
}

.mediainfo_main p {
	padding: 10px 0 0 0;
	font-size: 16px;
	font-size: 1.6rem;
	font-weight: bold;
	text-align: center;
	color: #B8172B;
}

.mediainfo_item {
	max-width: 900px;
	width: 100%;
	margin: 25px auto 15px;
}

.mediainfo_item p {
	text-align: center;
}

.mediainfo_item .btn {
	margin: 30px auto;
}

/*bus_common*/
.marker_yellow {
	background: linear-gradient(transparent 60%, #e8cf00 60%);
	font-weight: bold;
}

.kanko_bus {
	color: #B8172B;
	font-size: 22px;
	font-size: 2.2rem;
	text-align: center;
	margin: 10px auto;
	font-weight: bold;
}

.kanko_bus_main {
	max-width: 580px;
	width: 100%;
	margin: 15px auto 0;
}

.kanko_bus_main p {
	padding: 10px 0 0 0;
	font-size: 16px;
	font-size: 1.6rem;
	font-weight: bold;
	text-align: center;
}

.kanko_bus_item {
	max-width: 900px;
	width: 100%;
	margin: 25px auto 15px;
	padding: 25px 15px 25px;
	border-top: 1px dashed #B8172B;
	border-bottom: 1px dashed #B8172B;
}

.kanko_bus_item dl {
	padding-bottom: 25px;
}

.kanko_bus_item dt {
	font-size: 18px;
	font-size: 1.8rem;
	font-weight: bold;
	color: #B8172B;
}

.kanko_bus_item dt:before {
	content: "◎";
	font-weight: bold;
	margin-right: 0.5em;
}

p.kanko_bus_contact {
	font-size: 20px;
	font-size: 2.0rem;
	font-weight: bold;
	line-height: 1.2em;
}

@media screen and (max-width: 600px) {
	.mediainfo_main p {
		text-align: left;
	}

	.mediainfo_item p {
		text-align: left;
	}

	.kanko_bus {
		text-align: left;
	}

	.kanko_bus:after {
		display: none;
	}

	.kanko_bus_main p {
		text-align: left;
	}
}


/*-------------- privacy --------------*/
.privacy_contents {
	max-width: 1240px;
	width: 95%;
	margin: 0 auto;
	padding: 10px 0 50px;
}

.privacy_contents dl {
	padding: 20px;
}

.privacy_contents dl dt {
	font-weight: bold;
	padding-bottom: 5px;
}

.privacy_contents dl dd {
	padding-bottom: 10px;
}

/*-------------- contact --------------*/
.wrap.conf{
	margin: 100px auto;
}
.contact_contents {
	margin: 0 auto;
	padding: 10px 0 80px;
}

.contact_contents h2 {
	font-size: min(5vw, 26px);
	text-align: center;
	font-weight: bold;
	margin: 85px 0 45px 0;
}

.contact_contents .wrap {
	max-width: 1060px;
	width: 90%;
	margin: 0 auto;
	background: #fff;
	padding: 50px min(4%, 30px) min(10vw, 200px);
	border-radius: 50px;
}
.confirm .contact_contents .wrap{background: none;}
.box_faq{margin: 0 auto min(7vw, 80px) ;}
.contact_contents .table_a {
	max-width: 900px;
	margin: 0 auto 15px;
	border: none;
	background: #fff;
	border-radius: 30px;
}

.contact_contents .table_a th {
	text-align: left;
	padding: 20px 0 20px 30px;
	background: #fff;
}
.confirm .contact_contents .table_a{border: none;}
.contact_contents .table_a th {
	padding: 40px;
	border-bottom: 1px solid #b9b9b9;
}
.contact_contents .table_a td {
	padding: 40px;
	border-bottom: 1px solid #b9b9b9;
}
.contact_contents .table_a .nob th {
	padding: 20px 40px;
	border:none;
}
.contact_contents .table_a .nob td {
	padding: 20px 40px;
	border:none;
}
.confirm .contact_contents .table_a th {
	padding: 30px;
}
.confirm .contact_contents .table_a td {
	padding: 30px;
}
.contact_contents .table_a span.block{
	display: block;
}
.contact_contents .btn {
	margin: 15px auto;
}

.contact_mediabtn {
	max-width: 500px;
	width: 100%;
	margin: 30px auto 0;
	padding: 8px 0;
	background: #fff;
	border: 1px solid #70594f;
}
.contact_mediabtn a{
	color: #70594f;
	font-weight: bold;
}

.contact_media {
	padding: 30px;
	max-width: 865px;
	text-align: center;
	width: 100%;
	margin: 15px auto 80px;
	border: 2px dotted #686868;
}

.contact_media dt {
	font-size: 19px;
	margin: 0 0 5px 0;
	text-align: center;
	font-weight: bold;
}

.contact_media .btn {
	margin: 10px auto 0;
}
.confirm h2{font-size: min(4vw, 20px);font-weight: bold;padding: min(10vw, 100px) 0  min(5vw, 60px);text-align: center;}
.confirm .table_a {
	display: block;
	border: none;
	border-radius: 0;
	width: 100%;
	max-width: none;
}
.confirm .table_a tbody {
	display: contents;
}
.confirm .table_a tr {
	display: flex;
	border-bottom: 1px solid #e0e0e0;
}
.confirm .table_a tr:last-child {
	border-bottom: none;
}
.confirm .table_a th {
	background: #f5f5f5;
	width: 35%;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	font-weight: bold;
	border-bottom: none;
}
.confirm .table_a td {
	width: 65%;
	background: #fff;
	display: flex;
	align-items: center;
	border-bottom: none;
}
.confirm .btn_group.flex {
	flex-wrap: nowrap;
	gap: min(4vw, 30px);
}
.confirm .btn_group .btn_wrap {
	width: 50%;
	margin: 0;
}
.confirm .btn_group .r_btn {
	width: 100%;
}
.confirm .r_btn-back .icon01 {
	right: auto;
	left: 30px;
}
.confirm .r_btn-back .icon01 img {
	transform: scaleX(-1);
}
.confirm .r_btn-back:hover .icon01 {
	left: 26px;
}
.contact_contents .table_a .nob.none {
	display: none;
}
.center_a{text-align: center;}
span.notice{color: #b8172b;}
@media screen and (max-width: 768px) {
	.contact_contents .wrap {
		width: 100%;}
	.contact_contents .table_a .nob th {
		padding: 0 0 5px 0;
		border:none;
	}
	.contact_contents .table_a .nob + .nob td{padding: 0 0 10vw 0;}
	.contact_contents .wrap{
		background: none;
	}
	.contact_contents .table_a th {
		width: 80%;
		padding: 7vw 0 0 0;
		display: block;
		margin: 0 auto;
		border: none;
	}

	.contact_contents .table_a td {
		width: 80%;
		display: block;
		margin: 0 auto;
		padding: 0 0 7vw 0;
	}
	.contac
	.contact_contents .table_a .nob th {
		padding: 4vw 0 0 0;
		border:none;
	}
	.contact_contents .table_a .nob td {
		padding: 0 0 4vw 0;
		border:none;
	}
	.contact_contents .table_a .nob.img_text td {
		padding: 4vw 0;
		border:none;
	}
	.contact_contents h2 {
		font-size: 4vw;
	}
	.contact_media {
		width: 90%;
	}

	.confirm .contact_contents .table_a th {
		width: 35%;
		padding: 3vw;
		display: flex;
		margin: 0;
		border: none;
	}

	.confirm .contact_contents .table_a td {
		width: 65%;
		display: flex;
		margin: 0;
		padding: 3vw;
	}
	.confirm .table_a th,
	.confirm .table_a td {
		padding: 4vw 3vw;
	}
	.confirm .btn_group.flex {
		flex-direction: column-reverse;
		gap: min(4vw, 20px);
	}
	.confirm .btn_group .btn_wrap {
		width: 100%;
	}
	.confirm .r_btn-back .icon01 {
		left: 20px;
		width: 16px;
	}
}

@media screen and (max-width: 768px) {
	nav {
		bottom: inherit;
		padding: 0;
	}

	nav ul {
		display: block;
	}

	.drawer-open {
		overflow: hidden !important;
	}

	.drawer-nav {
		position: fixed;
		z-index: 101;
		top: 0;
		overflow: hidden;
		width: 100%;
		height: 100%;
		
		text-align: center;
	}

	.drawer-brand {
		font-weight: bold;
		line-height: 3.75rem;
		display: block;
		padding-right: .75rem;
		padding-left: .75rem;
		text-decoration: none;
	}

	.drawer-menu {
		margin: 0;
		list-style: none;
		position: relative;
		z-index: 103;
		padding: 15vw 0 0 0;
        background: rgba(255, 255, 255, 0.9);
		border: 1px solid #70594f;
		border-bottom: none;
		border-radius: 0 0 20px 20px;
	}
	.drawer-menu .img01{position: absolute;left: 4px;top: 4px;}
	.drawer-menu .img02{position: absolute;right: 4px;top: 4px;}
	.drawer-menu .img03{position: absolute;right: 4px;bottom: 4px;}
	.drawer-menu .img04{position: absolute;left: 4px;bottom: 4px;}
	.drawer-menu > li{
		padding: 0;
		border-bottom: 1px solid #70594f;
	}
	.drawer-menu > li:last-child{
		border: none;
	}

	.drawer-menu > li a {
		width: 100%;
		margin: 0 auto;
		display: block;
		padding: 4vw;
		line-height: 1.8em;
		position: relative;
		z-index: 104;
		text-align: center;
		color: #70594f;
	}
	/* アコーディオンをやめて常に展開表示するため、子リンクはフォントサイズを少し落として区別する */
	.drawer-menu > li.mega_menu ul li a {
		display: flex;
        justify-content: center;
        align-items: center;
		gap: 10px;
		font-size: 13px;
		padding: 1vw 4vw;
	}
	.drawer-menu > li.mega_menu ul li a span{
		width: 7vw;
	}

	.drawer-menu li.sp a {
	}



	.drawer-overlay {
		position: fixed;
		z-index: 1;
		top: 0;
		left: 0;
		display: none;
		width: 100%;
		height: 100%;
		background-color: rgba(0, 0, 0, .1);
	}

	.drawer-open .drawer-overlay {
		display: block;
	}

	.drawer--top .drawer-nav {
		top: -100%;
		left: 0;
		width: 100%;
		height: 100vh;
		max-height: 100%;
		-webkit-transition: top .6s cubic-bezier(0.190, 1.000, 0.220, 1.000);
		transition: top .6s cubic-bezier(0.190, 1.000, 0.220, 1.000);
	}

	.drawer--top.drawer-open .drawer-nav {
		top: 0px;
	}

	.drawer--top .drawer-hamburger{
		right: 10px;
	}
	.drawer--top.drawer-open .drawer-hamburger {
	}
	.drawer-hamburger {
		position: fixed;
		z-index: 999;
		top: 14px;
		right: 0;
		display: block;
		box-sizing: content-box;
		width: 50px;
		height: 42px;
		-webkit-transition: all .6s cubic-bezier(0.190, 1.000, 0.220, 1.000);
		transition: all .6s cubic-bezier(0.190, 1.000, 0.220, 1.000);
		-webkit-transform: translate3d(0, 0, 0);
		transform: translate3d(0, 0, 0);
		border: 0;
		outline: 0;
	}
	.drawer-hamburger.scrolled {
		opacity: 1;
	}
	.drawer-hamburger:hover {
		cursor: pointer;
	}

	/* 開閉アイコン：menuo（閉じている時）/ menuc（開いている時）をtransitionでクロスフェード（PC版 .menu-btn-icon と同じ見た目） */
	.drawer-hamburger-icon {
		position: relative;
		display: block;
		width: 100%;
		height: 100%;
		border-radius: 5px;
		border: 1px solid #cb483f;
		background: #fff;
	}
	.nav-contact-btn{width: 33vw;height: 40px;max-width: 180px;}
	.nav-contact-btn a{
		font-size: 12px;
	}
	.drawer-hamburger-icon img {
		position: absolute;
		top: 50%;
		left: 50%;
		width: 65%;
		height: auto;
		transform: translateY(-50%) translateX(-50%);
		transition: opacity 0.35s cubic-bezier(0.19, 1, 0.22, 1) !important;
	}

	.drawer-hamburger-icon .icon-close {
		opacity: 0;
	}

	.drawer-open .drawer-hamburger-icon .icon-open {
		opacity: 0;
	}

	.drawer-open .drawer-hamburger-icon .icon-close {
		opacity: 1;
	}

	.sr-only {
		position: absolute;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		width: 1px;
		height: 1px;
		margin: -1px;
		padding: 0;
		border: 0;
	}

	.sr-only-focusable:active,
	.sr-only-focusable:focus {
		position: static;
		overflow: visible;
		clip: auto;
		width: auto;
		height: auto;
		margin: 0;
	}

	footer .container dl {
		width: 100%;
		padding: 30px;
	}

	.main_title h1{
	}
	.under .main_title img{

		}


	.top_message {
		background-size: cover;
	}

	.top_message div {
		padding: 9vw 7vw 7vw 7vw;
	}

	.photo_mayor {
		width: 150px;
		margin: 0 auto 10px;
	}

	.top_message_text {
		width: 100%;
	}

	.top_thummenu li {
		width: 100%;
	}

	.facility_thummenu dl {
		width: 100%;
		padding: 20px;
	}

	.facility_thummenu p.shop_photo01 {
		width: 100%;
		height: 300px;
	}

	.facility_thummenu p.shop_photo02 {
		width: 100%;
		height: 300px;
	}

	.news_photo {
		/*width: 280px;
 margin: 0 auto 30px;*/
	}

	.news_box {
		width: 95%;
	}
}

.f03_text00{
	text-align: center;
	margin: 0 auto 20px;
	font-size: 16px;
	font-weight: bold;
}

/***************recapchaマーク削除 20260518記述***************/
.grecaptcha-badge {
  visibility: hidden;
}


/*-------------- header（旧 header.php インラインstyle） --------------*/
@media (min-width: 768px) {
  .menu-panel {
    opacity: 0;
    visibility: hidden;
    transform: translateX(30px);
    /* no-animation.css の transition:none!important を上書きしてスムーズな開閉を有効化 */
    transition: opacity 0.45s cubic-bezier(0.19, 1, 0.22, 1), transform 0.45s cubic-bezier(0.19, 1, 0.22, 1), visibility 0.45s !important;
    position: fixed;
    top: 0;
    right: 0;
    left: auto;
    background-color: white;
    padding: 1em;
    z-index: 11;
    overflow-y: auto;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
	border-radius: 0 0 0 20px;
  }

  .menu-panel .inner {
    position: absolute;
    inset: 0;
    z-index: 2;
  }

  .menu-panel .img01,
  .menu-panel .img02,
  .menu-panel .img03,
  .menu-panel .img04 {
    display: none;
  }

  .menu-panel .menu_logo {
    margin: 60px min(6vw, 100px) 0 min(5vw, 100px);
    width: 86px;
    z-index: 3;
    position: relative;
  }

  .menu-panel .box01 {
    padding: 60px min(6vw, 28px) 0;
    position: relative;
    z-index: 3;
  }

  .menu-panel .box01 ul {
    position: relative;
    display: flex;
    flex-direction: column;
  }

  .menu-panel .box01>ul>li {
    margin: 0;
    display: flex;
    align-items: flex-start;
    gap: 40px;
    padding: 28px 0;
    border-bottom: 1px solid #70594f;
  }
  .menu-panel .box01>ul>li:last-child{
	border: none;
  }

  .menu-panel .box01>ul>li>a {
    flex: 0 0 auto;
    min-width: 260px;
  }

  .menu-panel .small {
    margin: 0;
    flex: 1;
  }

  .menu-panel .small ul {
    display: flex;
    flex-direction: column;
    gap: 14px;
  }

  .menu-panel .small li {
    margin: 0;
    padding: 0;
    border: none;
    height: auto;
    font-size: 16px;
  }

  .menu-panel .small li span {
    width: 24px;
    display: block;
    margin: 0 10px 0 0;
  }

  .menu-panel .small li a {
    display: flex;
    align-items: center;
    font-size: 16px;
  }

  .menu-panel a {
    text-decoration: none;
    color: #70594f;
    font-size: 20px;
    position: relative;
    z-index: 3;
  }

  .menu-panel.active {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
  }

  /* menu-panel（z-index:11）より前面に出す：開いている間もヘッダーの問い合わせ／トグルボタンを表示するため */
  .nav-contact-btn {
    position: relative;
    z-index: 20;
  }

  .menu-btn {
    position: relative;
    z-index: 20;
    cursor: pointer;
    display: none;
    align-items: center;
    justify-content: center;
    height: 50px;
    margin-left: 10px;
	border-radius: 5px;
	border: 1px solid #cb483f;
	background: #fff;
	width: 70px;
  }

  .scrolled .drawer-nav {
    display: none;
  }

  .scrolled .menu-btn {
    display: inline-flex;
	width: 70px;
  }

  /* 開閉アイコン：menuo（閉じている時）/ menuc（開いている時）をtransitionでクロスフェード */
  .menu-btn-icon {
    position: relative;
    display: block;
    width: 46px;
    height: auto;
  }

  .menu-btn-icon img {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: auto;
    transform: translateY(-50%) translateX(-50%);
    transition: opacity 0.35s cubic-bezier(0.19, 1, 0.22, 1) !important;
  }

  .menu-btn-icon .icon-close {
    opacity: 0;
  }

  .menu-btn.active .menu-btn-icon .icon-open {
    opacity: 0;
  }

  .menu-btn.active .menu-btn-icon .icon-close {
    opacity: 1;
  }
}

/* 下層ページ：PCも常にハンバーガー＋ドロワー（インラインnavを出さない） */
@media screen and (min-width: 768px) {
  .is-lower .drawer-nav {
    display: none;
  }
  .is-lower .menu-btn {
    display: inline-flex;
  }
}

/* =========================================================
   concept.php 専用調整: #sec02 .s2_bottom 内の画像・テキスト位置
   index.php の #sec02 とは共通markupだが、ここで上書きすることで
   concept.php だけ位置を変えられる（index.php 側の見た目には影響しない）。
   数値はまず index.php と同じ値をコピーしてあるだけなので、
   ここを直接書き換えて調整する。
   ========================================================= */
   body.page-concept #sec02 .s2_canvas{
	height: 132.1vw;
   }
   body.page-concept #sec02 .s2_canvas .box04 {
    bottom: 38vw;
}
body.page-concept #sec02 .s2_canvas .box04.v01{bottom: 79vw;}
body.page-concept #sec02 .s2_canvas .box04.v02{bottom: 80vw;}
   body.page-concept #sec02 .s2_canvas .box05 {
    bottom: 114vw;
}

   body.page-concept #sec02 .s2_canvas .box03 {
	left: 0;
	bottom: 40vw;
	width: 42.8vw;
}
body.page-concept #sec02 .s2_canvas .s2bg {
	right: -2vw;
	bottom: 0;
	width: 22vw;
}
/* text02 / text03 はconcept.php独自の要素（index.phpのtext01に相当するCSSが無いため新規に用意） */
body.page-concept #sec02 .s2_canvas .text02 {
	position: absolute;
	z-index: 2;
	left: 35vw;
	bottom: 85vw;
	width: 54vw;
	font-size: 1.2vw;
	line-height: 2.4;
}
body.page-concept #sec02 .s2_canvas .text03 {
	position: absolute;
	z-index: 2;
	left: 47vw;
	bottom: 40vw;
	width: 54vw;
	font-size: 1.2vw;
	line-height: 2.4;
}
body.page-concept #sec02 .s2_canvas .box021{
	left: 45vw;
    bottom: 4vw;
    width: 23vw;}
	body.page-concept #sec02 .s2_canvas .box022{
		left: 20vw;
		bottom: 4vw;
		width: 23vw;}
		body.page-concept #sec02 .s2_canvas .box06{bottom: 29vw;}

@media screen and (max-width: 768px) {
	/* concept.php #sec02：SPはGridで再構成（DOMは変更せず、
	   .s2_cluster / .s2_bottom を display:contents で解体して
	   写真×テキストの組み合わせをスクショの並びに合わせる） */
	body.page-concept #sec02 .s2_canvas {
		position: relative;
		height: auto;
		display: grid;
		grid-template-columns: repeat(20, 1fr);
		align-items: start;
		row-gap: 8vw;
		column-gap: 3vw;
		padding: 0 6vw;
	}
	body.page-concept #sec02 .s2_cluster,
	body.page-concept #sec02 .s2_bottom {
		display: contents;
	}
	body.page-concept #sec02 .s2_canvas .box04 {
		position: static;
		z-index: auto;
		left: auto;
		right: auto;
		top: auto;
		bottom: auto;
		width: 100%;
	}
	/* 「みがき光る味わい」「つむぐ絆」：写真1・写真2の右側に縦に並ぶ
	   （.box04.v02 は同一メディアクエリ内より詳細度の高い concept 専用PC調整
	   （bottom:80vw 等）が先に定義されているため、ここで明示的に打ち消す） */
	body.page-concept #sec02 .s2_canvas .box04.v02 {
		position: static;
		top: auto;
		right: auto;
		bottom: auto;
		left: auto;
		width: 100%;
		grid-column: 15 / 21;
		grid-row: 1 / 3;
		align-self: center;
	}
	/* 「食の恵み」「人の温かさ」：写真3の左側 */
	body.page-concept #sec02 .s2_canvas .box04.v01 {
		position: static;
		top: auto;
		right: auto;
		bottom: auto;
		left: auto;
		width: 100%;
		grid-column: 1 / 8;
		grid-row: 3 / 4;
		align-self: end;
	}
	body.page-concept #sec02 .s2_canvas .box05,
	body.page-concept #sec02 .s2_canvas .box06 {
		display: none;
	}
	body.page-concept #sec02 .s2_canvas .box021,
	body.page-concept #sec02 .s2_canvas .box022 {
		position: static;
		left: auto;
		bottom: auto;
		width: 100%;
	}
	body.page-concept #sec02 .s2_canvas .box021 {
		grid-column: 1 / 13;
		grid-row: 1 / 2;
	}
	body.page-concept #sec02 .s2_canvas .box022 {
		grid-column: 3 / 15;
		grid-row: 2 / 3;
	}
	body.page-concept #sec02 .s2_bottom .box03 {
		grid-column: 8 / 21;
		grid-row: 3 / 4;
		position: relative;
		z-index: 1;
		top: auto;
		bottom: auto;
		left: auto;
		width: 100%;
		margin: 0;
	}
	body.page-concept #sec02 .s2_bottom .s2bg {
		right: -6vw;
		bottom: 8vw;
		width: 38vw;
		z-index: 0;
	}
	body.page-concept #sec02 .s2_bottom .text02 {
		grid-column: 1 / 21;
		grid-row: 4 / 5;
		position: relative;
		top: auto;
		left: auto;
		bottom: auto;
		width: 88vw;
		margin: 4vw auto 4vw;
		font-size: 3.6vw;
		line-height: 2;
		text-align: center;
	}
	body.page-concept #sec02 .s2_bottom .text03 {
		grid-column: 1 / 21;
		grid-row: 5 / 6;
		position: relative;
		top: auto;
		left: auto;
		bottom: auto;
		width: 88vw;
		margin: 0 auto 7vw;
		font-size: 3.6vw;
		line-height: 2;
		text-align: center;
	}
}

/* =========================================================
   concept.php #cb01（Art object / #こまもりんご）
   DOM順（h2img → img → text01）は変えず、Grid配置とorderだけで
   PC:左テキスト+右画像 / SP:画像→見出し→テキストの縦積みにする
   ========================================================= */
#cb01 {
	position: relative;
	background: url(../images/cb01bg.jpg) center bottom no-repeat;
	background-size: 100% auto;
	padding: 100px 0 38vw;
}
#cb01 .wrap {
	display: grid;
	grid-template-columns: 62% 38%; /* 左右きっちり半々 */
	grid-template-rows: auto 1fr;
	column-gap: 0;
	align-items: start;
}
#cb01 .h2img {
	grid-column: 1;
	grid-row: 1;
	margin: min(5vw, 100px) 0 min(5vw, 80px) 0; /* 汎用.h2imgのmargin:0 auto(中央寄せ)を上書きし、本文と左端を揃える */
}
#cb01 .text01 {
	grid-column: 1;
	grid-row: 2;
	line-height: 2;
	font-size: min(3.3vw, 18px);
}
/* .img: 右カラム(50%)の中の基準ボックス。position:relativeにして
   中のimgをposition:absoluteで自由に位置・サイズ調整できるようにする。
   aspect-ratioは img が absolute になっても .img の高さが0にならないための仮の比率
   （ci01@2x.pngの実寸1232:1968）。ここも含めて下の値は自由に書き換えて調整する。 */
#cb01 .img {
	grid-column: 2;
	grid-row: 1 / span 2;
	position: relative;
	aspect-ratio: 1232 / 1968;
}
#cb01 .img img {
	position: absolute;
	top: 0;
	left: 0;
	height: auto;
	max-width: none;
	width: 147%;
}

@media screen and (max-width: 768px) {
	#cb01 {
		padding: 15vw 5vw 60vw;
		background: url(../images/cb01bg_sp.jpg) center bottom no-repeat;
	background-size: 100% auto;
		
	}
	#cb01 .wrap {
		display: flex;
		flex-direction: column;
		align-items: center;
		text-align: center;
	}
	/* 見出し→写真（縦横比を保ったまま画面幅いっぱいにブリード）→本文 の順 */
	#cb01 .h2img {
		order: 1;
		margin: 0 auto 6vw;
	}
	#cb01 .img {
		order: 2;
		width: 100vw;
		margin: 0 -5vw 6vw;
		aspect-ratio: 654 / 710; /* SP用画像(ci01sp@2x.png)の実寸比 */
	}
	/* PC用のwidth:147%ブリード指定はSPでは不要（コンテナからの溢れ・見出しとの重なりの原因だったため打ち消す） */
	#cb01 .img img {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		max-width: none;
	}
	#cb01 .text01 {
		order: 3;
		text-align: center;
	}
}
