@charset "utf-8";

/*--------------------------------
	base
--------------------------------*/
body {
	font-family: "Zen Maru Gothic", system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;
	font-weight: 400;
	color: #333;
	background: url("img/index/bg01.png") repeat;
	background-size: 70px auto;
}

/*--------------------------------
	layout
--------------------------------*/
#container {
	width: 100%;
}

.secInner {
	max-width: 1400px;
	margin: 0 auto;
	padding: 0;
	background: #fff;
}

/* section背景（濃緑） */
.bgDark {
	background: #474b2c;
}

/* セクション共通の余白（仮：後でカンプに合わせて調整） */
#top section .secInner {
	padding-top: 6rem;
	padding-bottom: 6rem;
}

/*--------------------------------
	top セクション見出し（共通）
--------------------------------*/

#top .secHead {
	display: block;
	margin: 0;
	padding: 0;
}

#top .secEn {
	display: inline-flex;
	margin: 0;
	padding: 0;
	font-size: 1.6rem;
	align-items: center;
	gap: 1rem;
	letter-spacing: 0.06em;
}

#top .secEnLine {
	display: inline-block;
	margin-top: 0.4rem;
	width: 14rem;
	height: 1px;
	background: currentColor;
}

#top .secTitle {
	display: block;
	margin-top: 1.2rem;
	padding: 0;
	font-size: 3rem;
	font-weight: 500;
	letter-spacing: 0.04em;
}

/*--------------------------------
	header
--------------------------------*/
#header {
	position: relative;
	background: #fff;
}

#header .headerInner {
	display: flex;
	margin: 0;
	padding: 0 4rem;
	background: #fff;
	align-items: center;
	justify-content: space-between;
	gap: 3.2rem;
}

.siteLogo img {
	display: block;
	width: auto;
	height: 66px;
}

/* nav */
.globalNav {
	flex: 1;
}

.globalNav ul {
	display: flex;
	margin: 0;
	padding: 0;
	list-style: none;
	gap: 3.6rem;
	justify-content: center;
}

.globalNav a {
	display: inline-block;
	padding: 0.6rem 0;
	font-size: 1.6rem;
	text-decoration: none;
	font-weight: 700;
	letter-spacing: 0.06em;
}

/* utility */
.headerUtility {
	display: flex;
	gap: 2rem;
	align-items: center;
}

.headerInsta {
	display: flex;
}

.headerInsta img {
	display: block;
	width: 42px;
	height: auto;
}

/* tel block（ひと塊） */
.headerTel {
	display: grid;
	margin-top: 38px;
	grid-template-columns: 44px auto;
	grid-template-rows: 44px auto auto;
	column-gap: 1.4rem;
	align-items: start;
}

.headerTelIcon {
	display: flex;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #474b2c;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	grid-column: 1;
	grid-row: 1;
}

.headerTelIcon img {
	display: block;
	width: 38px;
	height: auto;
}

/* 子要素を親グリッドに参加させる */
.headerTelTxt {
	display: contents;
	line-height: 1.2;
	letter-spacing: 0.04em;
}

.headerTelNum {
	display: flex;
	align-items: center;
	font-size: 3.0rem;
	font-weight: 700;
	grid-column: 2;
	grid-row: 1;
	text-align: center;
}

.headerTelSub {
	font-size: 1.5rem;
	font-weight: 700;
	grid-column: 2;
	grid-row: 2;
	text-align: center;
	line-height: 1.4;
}

.headerTelLead {
	font-size: 1.5rem;
	font-weight: 700;
	grid-column: 2;
	grid-row: 3;
	text-align: center;
	line-height: 1.4;
}

/*--------------------------------
	hero / main visual（fade）
--------------------------------*/

#hero {
	position: relative;
	padding-bottom: 0;
}

#hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom, rgba(0,0,0,0.1), rgba(0,0,0,0.2));
	pointer-events: none;
}

#hero .heroInner {
	position: relative;
	margin-bottom: 8rem;
}

#hero .heroSlides {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
}

#hero .heroPhoto {
	position:absolute;
	inset:0;
	width:100%;
	opacity:0;
	pointer-events:none;
	transition:opacity 1s ease;
}

#hero .heroPhoto.is-active {
	opacity:1;
	z-index:1;
	pointer-events:auto;
}

#hero .heroPhoto img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/*--------------------------------
	intro / concept（書き換え用）
--------------------------------*/

#intro {
	display: block;
}

#intro .introInner {
	display: block;
	margin: 0 auto;
	padding: 0 6rem 6rem 6rem;
	max-width: 1200px;
	/*background: red;*/
}

/* 3点（見出し→リード→本文）を“順番に横並び” */
#intro .introRow {
	display: flex;
	margin: 0;
	padding: 0;
	gap: 4rem;
	justify-content: flex-start;
	align-items: flex-start;
	flex-direction: row-reverse; /* 右：見出し → 中：リード → 左：本文 */
}

/* ----- 見出し（Conceptを右側、線も右に出す） ----- */

#intro .introHead {
	display: flex;
	margin: 0;
	padding: 0;
	gap: 2.8rem;
	align-items: flex-start;

	/* ★重要：introHead内は “日本語タイトルが左、Conceptが右” に見せたい */
	flex-direction: row-reverse;
}

/* 日本語タイトル（縦書き） */
#intro .introTitle {
	display: block;
	margin: 0 -1rem 0 5rem;
	padding: 0;
	writing-mode: vertical-rl;
	text-orientation: mixed;
	font-size: 3rem;
	color: #474b2c;
	font-weight: 500;
	line-height: 1;
}

/* Concept（縦書き） */
#intro .introEn {
	position: relative;
	display: inline-block;
	margin: 0;
	padding: 5px 0 0 0;
	writing-mode: vertical-rl;
	text-orientation: mixed;
	font-size: 1.6rem;
	color: #474b2c;
	line-height: 1;
}

/* Conceptの“下に伸びる縦線” */
#intro .introEnLine {
	position: absolute;
	top: 7rem;
	right: 65%;
	transform: translateX(50%);
	width: 1px;
	height: 16rem;
	background: #474b2c;
	line-height: 1;
}

/* 念のため：以前の線は無効化 */
#intro .introEn::after {
	content: none;
}
#intro .introTitle::before {
	content: none;
}

/* ----- リード（縦書き） ----- */
#intro .introLead {
	display: block;
	margin: 0 0 0 3rem;
	padding: 0;
	writing-mode: vertical-rl;
	text-orientation: mixed;
}

#intro .introLeadLine {
	display: block;
	margin: 0;
	padding: 0;
	font-size: 3.0rem;
	line-height: 1.75;
	letter-spacing: 0.12em;
}

/* ----- 本文（縦書き）----- */
#intro .introText {
	display: block;
	margin: 0;
	padding: 0;
	writing-mode: vertical-rl;
	text-orientation: mixed;
}

#intro .introText p {
	display: block;
	margin: 0 0 0 4rem;
	padding: 0;
	font-size: 2rem;
	line-height: 2.5;
	letter-spacing: 0.06em;
}

#intro .introText p:last-child {
	margin: 0;
}

/*--------------------------------
	news / 新着情報
--------------------------------*/

#news {
	position: relative;
	padding: 8rem 0;
	color: #fff;
}

#news .newsInner {
	margin: 0 auto;
	padding: 0 0 0 6rem;
	max-width: 1400px;
}

#news .secHead {
	color: #fff;
}

#news .newsSlider {
	position: relative;
	margin-top: 4rem;
}

#news .newsViewport {
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

#news .newsViewport::-webkit-scrollbar {
	display: none;
}

#news .newsTrack {
	display: flex;
	margin: 0;
	padding: 0;
	list-style: none;
	gap: 2.4rem;
	align-items: stretch;
}

#news .newsItem {
	flex: 0 0 300px;
	scroll-snap-align: start;
}

#news .newsItem a {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 38rem;
	border-radius: 1.6rem;
	background: #fff;
	color: #333;
	text-decoration: none;
	overflow: hidden;
}

#news .newsImg {
	display: block;
	margin: 0;
	padding: 0;
	width: 100%;
	height: 22rem;
	background: #fff;
	overflow: hidden;
}

#news .newsImg img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}

#news .newsTi,
#news .newsTxt,
#news .newsDate {
	background: transparent;
}

#news .newsTi {
	margin: 0;
	padding: 1.8rem 2rem 0;
	font-size: 2rem;
	color: #333;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.04em;
}

#news .newsTxt {
	margin: 0;
	padding: 1rem 2rem 0;
	min-height: 11rem;
	font-size: 1.6rem;
	color: #333;
	line-height: 1.7;
	overflow: hidden;
}

#news .newsDate {
	margin-top: auto;
	padding: 0 2rem 2rem;
	font-size: 1.5rem;
	color: #7a7a7a;
	line-height: 1.4;
}

#news .newsItem a {
	transition: opacity .25s ease;
}

#news .newsItem a:hover {
	opacity: 0.9;
}

#news .newsArrow {
	position: absolute;
	top: 22rem;
	z-index: 2;
	width: 44px;
	height: 44px;
	border: 1px solid #ccc !important;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.9);
	cursor: pointer;
	transform: translateY(-50%);
}

#news .newsArrow-prev {
	left: 0;
}

#news .newsArrow-next {
	right: 6rem;
}

#news .newsArrow::before {
	content: "";
	display: block;
	width: 10px;
	height: 10px;
	margin: auto;
	border-top: 2px solid #474b2c;
	border-right: 2px solid #474b2c;
	transform: rotate(-135deg);
}

#news .newsArrow-next::before {
	transform: rotate(45deg);
}

#news .newsArrow:hover {
	background: #fff;
}

/*--------------------------------
	menu / お品書き（PC：丸ごと差し替え）
--------------------------------*/

#menu {
	position: relative;
	padding: 10rem 0 9rem;
	background: #fff;
}

#menu .menuInner {
	position: relative;
	margin: 0 auto;
	padding: 0 6rem;
	max-width: 1200px;
}

/* 右上：お品書きバッジ領域（赤背景の箱を基準に配置する） */
#menu .menuBadge {
	position: absolute;
	top: 4rem;
	right: 0;
	width: 100%;
	height: 48rem;
	pointer-events: none;
}

/* 右端の丸背景（400角） */
#menu .menuBadgeBg {
	position: absolute;
	top: 0;
	right: 0;
	width: 48rem;
	height: 48rem;
	background: url("img/index/bg_suppon.png") no-repeat right top / contain;
	opacity: 1;
}

/* 赤背景の箱（= タイトルを載せたい面） */
#menu .menuBadgeInner {
	position: relative;
	margin: 0 auto;
	padding: 0 6rem;
	max-width: 1200px;
	height: 48rem;
	/*background: red;*/
}

#menu .introHead--menu {
	position: absolute;
	top: 12rem;
	right: 5rem;
	display: flex;
	transform: none;
	align-items: flex-start;
	gap: 2.8rem;
}

/* お品書き（和文：縦書き） */
#menu .introHead--menu .introTitle {
	display: block;
	margin: 0 -1rem 0 0;
	padding: 0;
	writing-mode: vertical-rl;
	text-orientation: mixed;
	font-size: 3rem;
	color: #474b2c;
	font-weight: 500;
	letter-spacing: 0.06em;
	line-height: 1;
}

/* Menu（英字：縦書き） */
#menu .introHead--menu .introEn {
	position: relative;
	display: inline-block;
	margin: 0;
	padding: 5px 0 0 0;
	writing-mode: vertical-rl;
	text-orientation: mixed;
	font-size: 1.6rem;
	color: #474b2c;
	font-weight: 400;
	letter-spacing: 0.12em;
	line-height: 1;
}

/* Menu の直下に伸びる縦線（Conceptと同じ思想） */
#menu .introHead--menu .introEnLine {
	position: absolute;
	top: 6rem;
	right: 65%;
	transform: translateX(50%);
	width: 1px;
	height: 16.5rem;
	background: #474b2c;
	line-height: 1;
}

/* ===== ここから下：メニュー本体（既存踏襲） ===== */

/* 各ブロック（共通） */
#menu .menuBlock {
	--offset: 0rem;
	margin: 0 0 3rem 0;
	padding: 0;
	max-width: 900px;
	transform: translateX(var(--offset));
}

#menu .menuBlockInner {
	display: flex;
	margin: 0;
	padding: 0;
	gap: 6rem;
	align-items: flex-start;
}

/* 左写真 */
#menu .menuMedia {
	flex: 0 0 400px;
}

#menu .menuMedia img {
	display: block;
	width: 100%;
	height: auto;
}

/* 右テキスト */
#menu .menuBody {
	flex: 1;
}

/* 見出し・本文 */
#menu .menuTitle {
	margin: 0 0 1.2rem 0;
	padding: 0;
	font-size: 2.8rem;
	font-weight: 500;
	letter-spacing: 0.04em;
}

#menu .menuPrice {
	margin: 0 0 1.8rem 0;
	padding: 0;
	font-size: 1.6rem;
	font-weight: 400;
}

#menu .menuPrice span {
	font-size: 1.8rem;
	font-weight: 400;
}

#menu .menuText {
	margin: 0 0 3.2rem 0;
	padding: 0;
	font-size: 1.5rem;
	line-height: 1.8;
}

/* 料理名＋料金のリスト */
#menu .menuList {
	margin: 2rem 0 0 0;
	padding: 0;
	list-style: none;
}

#menu .menuList li {
	display: flex;
	margin: 0;
	padding: 0.8rem 0;
	font-size: 1.6rem;
	justify-content: space-between;
	gap: 2rem;
}

#menu .menuList li span:last-child {
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

/* 区切り線（ブロック幅に追従） */
#menu .menuDivider {
	display: block;
	margin: 3.5rem 0 0 0;
	padding: 0;
	height: 1px;
	background: #cfcfcf;
	opacity: 0.85;
}

/* 1つ目（コース）は文章量が多いので少し詰める */
#menu .menuBlock--course .menuText {
	margin: 0 0 2.4rem 0;
}

/* 段差（PC） */
#menu .is-offset1 { --offset: 0rem; }
#menu .is-offset2 { --offset: 6rem; }
#menu .is-offset3 { --offset: 12rem; }

/* ボタン（囲み＋右端揃え） */
#menu .menuBtnWrap {
	position: relative;
	display: block;
	margin: 4rem 6rem 0 12rem;
	padding: 0;
	max-width: 980px;
}

#menu .menuBtnWrap .comBtn04 {
	position: absolute;
	top: 0;
	right: 0;
	display: block;
	margin: 0;
	padding: 1.8rem 4.8rem 1.8rem 2.4rem;
	width: 50rem;
	border: 1px solid #474b2c;
	background: transparent;
	text-decoration: none;
}

#menu .menuBtnWrap .comBtn04:hover {
	background: #eee;
}

#menu .menuBtnWrap .comBtn04::after {
	content: "";
	position: absolute;
	top: 53%;
	right: 2.4rem;
	width: 6rem;
	height: 1px;
	background: #474b2c;
	transform: translateY(-50%);
}

#menu .menuBtnWrap .comBtn04::before {
	content: "";
	position: absolute;
	top: 53%;
	right: 2.4rem;
	width: 0.8rem;
	height: 0.8rem;
	border-top: 1px solid #474b2c;
	border-right: 1px solid #474b2c;
	transform: translateY(-50%) rotate(45deg);
}

#menu .menuBtnWrap .comBtn04 span {
	display: block;
	font-size: 1.6rem;
	color: #474b2c;
	font-weight: 500;
	letter-spacing: 0.04em;
	line-height: 1.4;
}

/*--------------------------------
	gallery / メニュー写真ピックアップ（PC：5枚横並び）
--------------------------------*/

#gallery {
	display: block;
	margin: 0 0 6rem 0;
	padding: 5rem 0 0;
	background: #fff;
}

#gallery .galleryInner {
	display: block;
}

/* 追加：共通HTML用のラッパー */
#gallery .galleryViewport {
	display: block;
	overflow: visible;
}

#gallery .galleryList {
	display: flex;
	margin: 0;
	padding: 0;
	list-style: none;
	gap: 3rem;
	justify-content: flex-start;
	align-items: flex-start;
}

#gallery .galleryItem {
	display: block;
	margin: 0;
	padding: 0;
	width: calc((100% - 9rem) / 4);
}

/* 段差 */
#gallery .galleryItem:nth-child(2),
#gallery .galleryItem:nth-child(4) {
	margin-top: 6rem;
}

#gallery .galleryFigure {
	display: block;
	margin: 0;
	padding: 0;
}

#gallery .galleryFigure img {
	display: block;
	margin: 0;
	padding: 0;
	width: 100%;
	height: auto;
}

#gallery .galleryCaption {
	display: block;
	margin: 2.2rem 0 0;
	padding: 0;
	font-size: 1.6rem;
	font-weight: 400;
	letter-spacing: 0.06em;
	text-align: center;
	white-space: nowrap;
}

/*--------------------------------
	seats（お席）
--------------------------------*/

#seats {
	display: block;
	padding: 9rem 0 0 0;
	color: #fff;
}

/* 中央寄せ（※secInnerは白背景になるので使わない） */
#seats .seatsInner {
	display: block;
	margin: 0 auto;
	padding: 0 6rem;
	max-width: 1400px;
}

/* 見出し色だけ（形は #top .secHead に統一） */
#seats .secHead {
	color: #fff;
}

/* 2カラム */
#seats .seatsGrid {
	display: flex;
	margin-top: 2rem;
	padding: 0;
	gap: 6rem;
	align-items: flex-start;
}

/* 写真カラム（重なりの土台） */
#seats .seatsPhotos {
	display: block;
	margin: 2rem 0 0;
	padding: 0;
	width: 50%;
	position: relative;
}

#seats .seatsPhoto {
	display: block;
	margin: 0;
	padding: 0;
}

#seats .seatsPhoto img {
	display: block;
	margin: 0;
	padding: 0;
	width: 100%;
	height: auto;
}

/* メイン写真 */
#seats .seatsPhoto-main {
	display: block;
	margin: 0;
	padding: 0;
	width: 55%;
	position: relative;
	z-index: 1;
}

/* サブ写真：右下に重ねる */
#seats .seatsPhoto-sub {
	display: block;
	margin: 0;
	padding: 0;
	width: 55%;
	position: absolute;
	right: 0;
	bottom: -45%;
	z-index: 2;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
}

/* テキストカラム */
#seats .seatsText {
	display: block;
	margin: 0;
	padding: 0 0 14vw 0;
	width: 50%;
	font-size: 1.8rem;
	color: #fff;
	line-height: 2.2;
	letter-spacing: 0.04em;
}

/* p は padding-bottom でリズム */
#seats .seatsText p {
	display: block;
	margin: 0;
	padding: 0 0 3rem 0;
}

#seats .seatsText p:last-child {
	padding: 0;
}

/*--------------------------------
	owner（大将 / 店主紹介）
--------------------------------*/

#owner {
	display: block;
	margin: 0;
	padding: 10rem 0 11rem;
	background: #faf9f4;
}

/* inner */
#owner .ownerInner {
	display: block;
	margin: 0 auto;
	padding: 0 6rem;
	max-width: 1400px;
}

/* 見出し色だけ（形は #top .secHead に統一） */
#owner .secHead {
	color: #4f5a2f;
}

/* 2カラム */
#owner .ownerGrid {
	display: flex;
	margin-top: 6rem;
	padding: 0;
	gap: 6rem;
	align-items: flex-start;
}

/* テキスト側 */
#owner .ownerText {
	display: block;
	margin: 0;
	padding: 0;
	width: 48%;
	line-height: 2.1;
	letter-spacing: 0.04em;
}
#owner .ownerText02 {
	display: block;
	margin: 0;
	padding: 0;
	width: auto;
	line-height: 2.1;
	letter-spacing: 0.04em;
}

/* 大将 見出し */
#owner .ownerName {
	display: block;
	margin: 0;
	padding: 0 0 1.6rem 0;
	font-size: 2.4rem;
	font-weight: 500;
	line-height: 1.6;
}

/* 本文（pは padding-bottom でリズム + 両端揃え） */
#owner .ownerText p {
	display: block;
	margin: 0;
	padding: 0;
	font-size: 1.8rem;
	text-align: justify;
	text-justify: inter-ideograph;
}

#owner .ownerText p:last-child {
	padding-bottom: 0;
}

/* 写真側 */
#owner .ownerPhoto {
	display: block;
	margin: 0;
	padding: 0;
	width: 52%;
}

#owner .ownerPhoto img {
	display: block;
	margin: 0;
	padding: 0;
	width: 100%;
	height: auto;
}


#owner .ownerText03 {
	display: grid;
	margin: 0;
	padding: 0;
	width: 100%;
	grid-template-columns: 0.9fr 1.1fr;
	column-gap: 0;
	row-gap: 2rem;
}
#owner .ownerText h4,
#owner .ownerText02 h4 {
	font-size: 2rem;
}
#owner .ownerText03 h4 {
	grid-column: 1 / -1;
	padding: 0;
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.06em;
}

#owner .ownerText03 dl {
	display: block;
	margin: 0;
	padding: 0;
}

#owner .ownerText03 dt {
	margin: 0 0 1.2rem 0;
	padding: 0;
	font-size: 2rem;
	color: #474b2c;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.6;
}

#owner .ownerText03 dd {
	margin: 0;
	padding: 0;
	font-size: 1.8rem;
	line-height: 2.1;
	letter-spacing: 0.04em;
}

#owner .ownerText03 dl:nth-of-type(1) {
	grid-column: 1;
	grid-row: 2;
}

#owner .ownerText03 dl:nth-of-type(2) {
	grid-column: 1;
	grid-row: 3;
}

#owner .ownerText03 dl:nth-of-type(3) {
	grid-column: 2;
	grid-row: 2;
}

#owner .ownerText03 dl:nth-of-type(4) {
	grid-column: 2;
	grid-row: 3;
}


/*--------------------------------
	access-info（店舗情報・ご予約）
--------------------------------*/

#access-info {
	display: block;
	margin: 0;
	padding: 0 0 6rem;
	background: #faf9f4;
}

#access-info .accessInner {
	display: block;
	margin: 0 auto;
	padding: 0 6rem;
	max-width: 1400px;
}

#access-info .accessGrid {
	display: flex;
	margin: 3rem 0 0 0;
	padding: 0;
	gap: 8rem;
	align-items: flex-start;
}

#access-info .accessCol {
	display: block;
	margin: 0;
	padding: 0;
}

#access-info .accessCol-info {
	width: 65%;
}

#access-info .accessCol-reserve {
	width: 35%;
}

/* 見出し（お店情報／ご予約） */
#access-info .accessHead {
	display: block;
	margin: 0 0 3rem 0;
	padding: 0 0 2rem 0;
	border-bottom: 1px solid #222;
}

#access-info .accessHeadTitle {
	display: block;
	margin: 0;
	padding: 0;
	font-size: 2.2rem;
	font-weight: 500;
	letter-spacing: 0.04em;
}


/* 住所 */
#access-info .accessAddress {
	display: block;
	margin: 0 0 2.8rem 0;
	padding: 0;
	font-size: 1.8rem;
	line-height: 1.6;
	letter-spacing: 0.04em;
}

#access-info .accessAddress p {
	display: block;
	margin: 0;
	padding: 0 0 0.6rem 0;
}

#access-info .accessAddress p:last-child {
	padding: 0;
}

/* Map */
#access-info .accessMap {
	display: block;
	margin: 3.2rem 0;
	padding: 0;
	background: #fff;
}

#access-info .accessMap iframe {
	display: block;
	margin: 0;
	padding: 0;
	width: 100%;
	height: 460px;
	border: 0;
}

/* 左下：詳細（箇条書き） */
#access-info .accessSpec {
	margin: 0;
	padding: 0;
	list-style: none;
}

#access-info .accessSpec li {
	margin: 0 0 2.4rem 0;
	font-size: 1.8rem;
	line-height: 2;
	letter-spacing: 0.04em;
}

#access-info .accessSpec li:last-child {
	margin-bottom: 0;
}

/* ◆営業時間 / ◆定休日 など */
#access-info .accessSpecLabel {
	display: block;
}

/* 本文 */
#access-info .accessSpecBody {}


#access-info .accessSpecBody p:last-child {
	padding-bottom: 0;
}

/* 右：電話枠 */
#access-info .reserveBox {
	display: block;
	margin: 0 0 2.4rem 0;
	padding: 2.4rem 2.6rem;
	border: 1px solid rgba(47, 47, 47, 0.35);
	background: #fff;
}

#access-info .reserveTelLabel {
	margin: 0 0 0.5rem 0;
	padding: 0;
	font-size: 1.8rem;
	font-weight: 400;
	letter-spacing: 0.04em;
}

/* 電話 行 */
#access-info .reserveTelRow {
	display: flex;
	margin: 0;
	padding: 0;
	align-items: center;      /* アイコンと右ブロックの基準を中央に */
	gap: 2.4rem;
}

/* 電話アイコン（円） */
#access-info .reserveTelIcon {		
	display: flex;
	margin: 0;
	padding: 0;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: #474b2c;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

/* 電話アイコン画像 */
#access-info .reserveTelIcon img {
	display: block;
	margin: 0;
	padding: 0;
	width: 50px;
	height: auto;
}

/* 電話番号＋定休日ブロック
   ※「全体の中央揃え」をやめて、電話番号を基準にします */
#access-info .reserveTelBody {
	display: block;
	margin: 0;
	padding: 0;
}

/* 電話番号（これを縦中央の基準にする） */
#access-info .reserveTelNum {
	display: block;
	margin: 0;
	padding: 0 0 15px 0;
	font-size: 3.2rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.2;
	position: relative;
	top: 20px;            /* ★調整ポイント：数字だけを中央に寄せる */
}

/* 定休日（電話番号についてくるだけ） */
#access-info .reserveTelNote {
	display: block;
	margin: 0.6rem 0 0 0;
	padding: 0;
	font-size: 1.6rem;
	letter-spacing: 0.04em;
	text-align: center;
}









/* 右：リンク枠 */
#access-info .reserveLinks {
	display: block;
	margin: 0;
	padding: 0;
}

#access-info .reserveLink {
	display: flex;
	margin: 0 0 2rem 0;
	padding: 2.4rem 2.6rem;
	font-size: 1.8rem;
	border: 1px solid rgba(47, 47, 47, 0.35);
	background: #fff;
	text-decoration: none;
	align-items: center;
	justify-content: space-between;
	letter-spacing: 0.04em;
}
#access-info .reserveLink:hover {
	background: #eee;
}

#access-info .reserveLink:last-child {
	margin: 0;
}

/* 矢印（線＋矢尻） */
#access-info .reserveArrow {
	display: block;
	margin: 0;
	padding: 0;
	width: 4.0rem;          /* ← 線の長さ（スクショ差分はここだけ） */
	height: 1px;
	background: #222;
	position: relative;
	flex-shrink: 0;
}

/* 矢尻 */
#access-info .reserveArrow::after {
	content: "";
	display: block;
	margin: 0;
	padding: 0;
	width: 0.9rem;
	height: 0.9rem;
	border-top: 1px solid #222;
	border-right: 1px solid #222;
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%) rotate(45deg);
}
/*#access-info .reserveLink:hover .reserveArrow {
  width: 10rem;
  transition: width .2s ease;
}*/






/* 右下：注意事項 */
#access-info .reserveNotes {
	display: block;
	margin: 3.2rem 0 0;
	padding: 0;
	list-style: none;
}

#access-info .reserveNotes li {
	display: block;
	margin: 0;
	padding: 0 0 2rem 1.8rem;
	font-size: 1.8rem;
	line-height: 2;
	letter-spacing: 0.04em;
	position: relative;
}

#access-info .reserveNotes li:last-child {
	padding-bottom: 0;
}


/*--------------------------------
	footer
--------------------------------*/

/* フッター全体：無地の背景 */
#gFooter {
	display: block;
	margin: 0;
	padding: 0;
	background: #f0eddf;
}

/* 中央寄せ・縦積み */
#gFooter .footerInner {
	margin: 0;
	padding: 2rem 0 0;
	align-items: center;
	text-align: center;
}

/* 上：すっぽんと麹料理（テキスト） */
#gFooter .footerCatch {
	display: block;
	margin: 0 0 1rem 0;
	padding: 0;
	font-size: 1.5rem;
	color: #474b2c;
	font-weight: 500;
	letter-spacing: 0.12em;
}

#gFooter .footerLogo {
	padding-bottom: 1rem;
}

#gFooter .footerLogo img {
	display: block;
	margin: 0 auto;
	width: 54px;   /* 必要に応じて微調整 */
	height: auto;
}

/* 下：コピーライト帯（ここだけ柄背景） */
#gFooter .footerCopy {
	position: relative;
	display: block;
	margin: 0;
	padding: 3rem;
	font-size: 1.4rem;
	color: #fff;
	letter-spacing: 0.06em;
	text-align: right;
	background: url("img/index/bg_footer.png") no-repeat center bottom;
	background-size: 110% auto;
}

#gFooter .footerCopy span {
	display: block;
	position: relative;
	right: 0;
	bottom: 0;
}


/*--------------------------------
	hero / scroll down（丸ごと置き換え・位置確定版）
--------------------------------*/

#hero {
	position: relative;
}

/* Scroll down の基準位置（ミカ確定：bottom:-1rem） */
#hero .scrollDown {
	position: absolute;
	display: block;
	margin: 0;
	padding: 0;
	left: 6rem;
	bottom: -2rem;
	z-index: 5;
}

/* 文字（縦書き・固定） */
#hero .scrollText {
	display: block;
	margin: 0;
	padding: 0;
	font-size: 1.4rem;
	letter-spacing: 0.06em;
	white-space: nowrap;
	writing-mode: vertical-rl;
	text-orientation: mixed;
	line-height: 1;
}

/* 線＋矢印の器（最大長） */
#hero .scrollArrow {
	position: absolute;
	left: 0.3rem;
	top: calc(100% + 1.2rem);
	width: 1px;
	height: 170px; /* 最大長 */
}

/* 線：max=170 / min=50 */
#hero .scrollArrow::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 1px;
	height: 170px;                /* 最大長 */
	background: #222;              /* テスト用 */
	transform-origin: top;
	transform: scaleY(0.294);     /* ★50 / 170 */
	animation: scrollLineGrow 2.6s ease-in-out infinite;
}

/* 矢尻：線の先端に追従 */
#hero .scrollArrow::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 0;
	width: 10px;
	height: 10px;
	border-right: 1px solid #222;
	border-bottom: 1px solid #222;
	transform: translateX(-50%) translateY(40px) rotate(45deg); /* ★50 - 10 */
	animation: scrollArrowFollow 2.6s ease-in-out infinite;
}

/* 線：短 → 長 → 短 */
@keyframes scrollLineGrow {
	0%   { transform: scaleY(0.294); } /* 50 / 170 */
	30%  { transform: scaleY(1); }
	60%  { transform: scaleY(1); }
	100% { transform: scaleY(0.294); }
}

/* 矢尻：min=50 / max=170 に連動 */
@keyframes scrollArrowFollow {
	0%   { transform: translateX(-50%) translateY(40px) rotate(45deg); }
	30%  { transform: translateX(-50%) translateY(160px) rotate(45deg); } /* 170 - 10 */
	60%  { transform: translateX(-50%) translateY(160px) rotate(45deg); }
	100% { transform: translateX(-50%) translateY(40px) rotate(45deg); }
}


/*--------------------------------
	SP用（767px以下）
--------------------------------*/

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

	/* ------------------------------
		共通
	------------------------------ */
	
	body { overflow-x: hidden; }

	.secInner {
		max-width: calc(100% - 2rem);
	}
	
	/* グローバルナビ */
	#header .globalNav { display: none; }
	

	/* hero */
	#hero .scrollDown {
		display: none;
	}
	

	/* ==============================
		SPメニュー（表示制御：最小セット）
	============================== */

	.sp-menu {
		position: fixed;
		inset: 0;
		z-index: 998;
		display: block;
		margin: 0;
		padding: 0;
		background: rgba(0, 0, 0, 0.45);
		opacity: 0;
		pointer-events: none;
		transition: opacity 0.25s ease;
	}

	.sp-menu-inner {
		position: absolute;
		top: 0;
		right: 0;
		display: block;
		margin: 0;
		padding: 2.6rem 2.2rem 2.2rem;
		width: min(84vw, 360px);
		height: 100%;
		background: #fff;
		transform: translateX(100%);
		transition: transform 0.25s ease;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}

	/* JSが付けるクラス */
	.sp-menu.is-open {
		opacity: 1;
		pointer-events: auto;
	}

	.sp-menu.is-open .sp-menu-inner {
		transform: translateX(0);
	}

	/* 閉じるボタン（最低限） */
	.sp-menu-close {
		display: block;
		margin: 0 0 2rem auto;
		width: 44px;
		height: 44px;
		border: none;
		background: transparent;
	}

	/* スクロール固定（body.fixed が付く前提） */
	body.fixed {
		overflow: hidden;
	}
	
	/* メニュー展開中は（右下の）Menu / To Top を非表示 */
	body.is-menu-open .sp-fixed-nav .sp-btn-menu,
	body.is-menu-open .sp-fixed-nav .sp-btn-top {
		display: none;
	}
	
	.sp-fixed-nav {
		position: fixed;
		right: -2px;
		bottom: calc(2.0rem + env(safe-area-inset-bottom));
		z-index: 9999;
		display: flex;
		margin: 0;
		padding: 0;
		flex-direction: column;
		gap: 1.2rem; /* ← 少し詰めて一体感 */
		width: auto;
		background: transparent;
	}
	
	/* ボタン本体：カンプ寄せ（枠なし・半透明・左だけ角丸） */
	.sp-fixed-nav .sp-btn {
		display: flex;
		margin: 0;
		padding: 1.1rem 1.2rem;
		width: 9.6rem;                 /* ← ちょい小さめ＆均整 */
		height: 8.0rem;                /* ← 高さも少し詰め */
		border: 1px solid #aaa;
		border-radius: 1.4rem 0 0 1.4rem; /* ← 左だけ角丸を少し強め */
		background: rgba(71, 75, 44, 0.80);
		align-items: center;
		justify-content: center;
		flex-direction: column;
		gap: 0.7rem;
	}
	
	/* ラベル：少し小さく、字間を整えて上品に */
	.sp-fixed-nav .sp-btn-label {
		display: block;
		margin: 0;
		padding: 0;
		font-size: 1.4rem;
		color: #fff;
		font-weight: 500;
		letter-spacing: 0.08em;
		line-height: 1;
	}

	/* Menu（三本線）：太さを1px落として繊細に */
	.sp-fixed-nav .sp-btn-menu::before {
		content: "";
		display: block;
		margin: 0;
		padding: 0;
		width: 26px;
		height: 16px;
		background:
			linear-gradient(#fff, #fff) 0 0 / 100% 2px no-repeat,
			linear-gradient(#fff, #fff) 0 50% / 100% 2px no-repeat,
			linear-gradient(#fff, #fff) 0 100% / 100% 2px no-repeat;
		opacity: 0.95;
	}

	/* To Top（矢印）：少し小さめ＆線は2pxで上品に */
	.sp-fixed-nav .sp-btn-top::before {
		content: "";
		display: block;
		margin: 0;
		padding: 0;
		width: 14px;
		height: 14px;
		border-top: 2px solid #fff;
		border-right: 2px solid #fff;
		transform: rotate(-45deg);
		opacity: 0.95;
	}
	
	.sp-menu-close {
		position: absolute;
		top: 1.6rem;
		right: 2rem;
		z-index: 5;
		width: 44px;
		height: 44px;
		border: none;
		border-radius: 999px;
		background: rgba(71, 75, 44, 0.08);
	}

	/* ×の線 共通 */
	.sp-menu-close span,
	.sp-menu-close span::before {
		content: "";
		position: absolute;
		left: 50%;
		top: 50%;
		width: 20px;          /* ← 少し長め */
		height: 1px;          /* ← 2pxが一番上品 */
		background: #474b2c;
		transform-origin: center;
	}

	/* 1本目 */
	.sp-menu-close span {
		transform: translate(-50%, -50%) rotate(45deg);
	}

	/* 2本目 */
	.sp-menu-close span::before {
		transform: translate(-50%, -50%) rotate(-90deg);
	}
	
	.sp-menu-inner {
	/* 既存を活かしつつ、余白と背景を上品に */
		padding: 7.2rem 2.4rem 2.8rem;
		background: #faf9f4;
	}

	/* リスト全体 */
	.sp-menu-list {
		display: block;
		margin: 0;
		padding: 0;
		list-style: none;
	}

	/* 各リンクを“項目”として成立させる */
	.sp-menu-list a {
		position: relative;
		display: flex;
		margin: 0;
		padding: 1.6rem 1.4rem;
		font-size: 1.6rem;
		border-bottom: 1px solid rgba(34, 34, 34, 0.22);
		background: transparent;
		text-decoration: none;
		letter-spacing: 0.04em;
		line-height: 1.4;
		align-items: center;
		justify-content: space-between;
	}

	/* 1項目目だけ上に線を入れて“整列感” */
	.sp-menu-list li:first-child a {
		border-top: 1px solid rgba(34, 34, 34, 0.22);
	}

	/* 右側にさりげない矢印（上品な導線） */
	.sp-menu-list a::after {
		content: "";
		display: block;
		width: 8px;
		height: 8px;
		border-top: 1px solid #474b2c;
		border-right: 1px solid #474b2c;
		transform: rotate(45deg);
		opacity: 0.9;
	}

	/* 押した感（SPはhoverよりactiveが効く） */
	.sp-menu-list a:active {
		background: rgba(71, 75, 44, 0.08);
	}

	/* “見出しっぽさ”を足す：リストの前に飾り線（CSSだけで演出） */
	.sp-menu-list::before {
		content: "Menu";
		display: block;
		margin: 0 0 1.2rem 0;
		padding: 0 0 0 1.6rem;
		font-size: 1.6rem;
		color: #474b2c;
		letter-spacing: 0.18em;
		font-weight: 500;
	}

	/* ついでに：メニュー展開中は右下ボタンを消す（前の成功版） */
	body.is-menu-open .sp-fixed-nav .sp-btn-menu,
	body.is-menu-open .sp-fixed-nav .sp-btn-top {
		display: none;
	}
	
	/*--------------------------------
	header
	--------------------------------*/
	#header .headerInner {
		display: flex;
		margin: 0;
		padding: 1.0rem 1.2rem;
		gap: 1.2rem;
		align-items: center;
		justify-content: space-between;
	}

	/* ロゴ：しっかり主役に */
	.siteLogo img {
		display: block;
		margin: 0;
		padding: 0;
		height: 44px;   /* ← 36px → 44px */
		width: auto;
	}

	/* TEL全体：存在感を下げる */
	.headerTel {
		display: grid;
		margin: 0;
		padding: 0;
		grid-template-columns: 26px auto;
		grid-template-rows: auto auto;
		column-gap: 0.6rem;
		row-gap: 0.2rem;
		align-items: center;
	}

	/* 電話アイコン：少し小さく */
	.headerTelIcon {
		display: flex;
		margin: 0;
		padding: 0;
		width: 26px;
		height: 26px;
		border-radius: 50%;
		background: #474b2c;
		align-items: center;
		justify-content: center;
		grid-column: 1;
		grid-row: 1 / 3;
	}

	.headerTelIcon img {
		display: block;
		width: 16px;
		height: auto;
	}

	/* 電話番号：サイズを抑える */
	.headerTelNum {
		display: block;
		margin: 0;
		padding: 1.25rem 0 0 0;
		font-size: 1.5rem;   /* ← 1.7rem → 1.5rem */
		font-weight: 700;
		letter-spacing: 0.04em;
		line-height: 1.1;
		white-space: nowrap;
		grid-column: 2;
		grid-row: 1;
		text-align: right;
	}

	/* 定休日：補足としてさらに控えめ */
	.headerTelSub {
		display: block;
		margin: 0;
		padding: 0;
		font-size: 1.1rem;   /* ← 少しだけ小さく */
		font-weight: 500;
		letter-spacing: 0.04em;
		line-height: 1.2;
		grid-column: 2;
		grid-row: 2;
		text-align: right;
	}

	.headerInsta { display: none; }
	.headerTelLead { display: none; }
	
	/*--------------------------------
	hero
	--------------------------------*/
	#hero {
		position: relative;
	}

	#hero .heroInner {
		margin-bottom: 4rem;
	}

	#hero .heroSlides {
		position: relative;
		width: 100%;
		aspect-ratio: 4 / 3;
		overflow: hidden;
	}

	#hero .heroPhoto {
		position: absolute;
		inset: 0;
		width: 100%;
		opacity: 0;
		pointer-events: none;
		transition: opacity 1s ease;
	}

	#hero .heroPhoto.is-active {
		opacity: 1;
		z-index: 1;
		pointer-events: auto;
	}

	#hero .heroPhoto img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center center;
	}
	
	/*--------------------------------
	concept
	--------------------------------*/
	#intro {
		display: block;
	}

	#intro .introInner {
		display: block;
		margin: 0 auto;
		padding: 0 2rem 4.0rem;
		max-width: 100%;
	}

	/* PCの「3点を横並び」→ SPは縦積み */
	#intro .introRow {
		display: block;
		margin: 0;
		padding: 0;
	}

	/* 見出しブロック：横書きにして上にまとめる */
	#intro .introHead {
		display: block;
		margin: 0 0 1.6rem 0;
		padding: 0;
	}

	/* Concept（横書き＋右にライン） */
	#intro .introEn {
		position: relative;
		display: inline-flex;
		margin: 0 0 1.0rem 0;
		padding: 0;
		writing-mode: horizontal-tb;
		text-orientation: mixed;
		font-size: 1.4rem;
		color: #474b2c;
		align-items: center;
		gap: 1.0rem;
		letter-spacing: 0.06em;
		line-height: 1;
	}

	#intro .introEnLine {
		position: static;
		display: inline-block;
		margin: 0;
		padding: 0;
		width: 10rem;
		height: 1px;
		background: #474b2c;
		transform: none;
	}

	/* 日本語タイトル：横書きに */
	#intro .introTitle {
		display: block;
		margin: 0;
		padding: 0;
		writing-mode: horizontal-tb;
		text-orientation: mixed;
		font-size: 2.4rem;
		color: #474b2c;
		font-weight: 500;
		line-height: 1.3;
	}

	/* リード：横書き（太め・大きめ） */
	#intro .introLead {
		display: block;
		margin: 2.2rem 0 0 0;
		padding: 0;
		writing-mode: horizontal-tb;
		text-orientation: mixed;
	}

	#intro .introLeadLine {
		display: block;
		margin: 0;
		padding: 0;
		font-size: 2.2rem;
		font-weight: 500;
		line-height: 1.4;
	}

	/* 本文：横書き */
	#intro .introText {
		display: block;
		margin: 2.5rem 0 0 0;
		padding: 0;
		writing-mode: horizontal-tb;
		text-orientation: mixed;
	}

	#intro .introText p {
		display: block;
		margin: 0;
		padding: 0 0 2rem 0;
		font-size: 1.8rem;
		line-height: 1.8;
	}

	#intro .introText p:last-child {
		padding: 0;
	}
	
	/*--------------------------------
		news
	--------------------------------*/
	#news {
		padding: 5rem 0 6rem;
	}

	#news .newsInner {
		padding: 0 0 0 1.2rem;
		max-width: 100%;
	}

	#news .secTitle {
		font-size: 2.4rem;
		line-height: 1.3;
	}

	#news .secEn {
		font-size: 1.4rem;
	}

	#news .secEnLine {
		width: 10rem;
	}

	#news .newsSlider {
		margin-top: 2.8rem;
	}

	#news .newsViewport {
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}

	#news .newsViewport::-webkit-scrollbar {
		display: none;
	}

	#news .newsTrack {
		display: flex;
		margin: 0;
		padding: 0;
		list-style: none;
		gap: 1.6rem;
	}

	#news .newsItem {
		flex: 0 0 260px;
		scroll-snap-align: start;
	}

	#news .newsItem a {
		display: flex;
		flex-direction: column;
		height: 100%;
		color: #333;
		text-decoration: none;
	}

	#news .newsImg {
		display: block;
		margin: 0;
		padding: 0;
		width: 100%;
		height: 20rem;
		border-radius: 1.2rem 1.2rem 0 0;
		background: #fff;
		overflow: hidden;
	}

	#news .newsImg img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center top;
	}

	#news .newsTi,
	#news .newsTxt,
	#news .newsDate {
		background: #fff;
	}

	#news .newsTi {
		margin: 0;
		padding: 1.6rem 1.6rem 0;
		min-height: 5.8rem;
		font-size: 2rem;
		color: #333;
		font-weight: 500;
		line-height: 1.4;
		letter-spacing: 0.04em;
	}

	#news .newsTxt {
		margin: 0;
		padding: 1rem 1.6rem 0;
		min-height: 8.2rem;
		font-size: 1.4rem;
		color: #333;
		line-height: 1.7;
		overflow: hidden;
	}

	#news .newsDate {
		margin-top: auto;
		padding: 1.2rem 1.6rem 1.6rem;
		border-radius: 0 0 1.2rem 1.2rem;
		font-size: 1.4rem;
		color: #7a7a7a;
		line-height: 1.4;
	}

	#news .newsArrow {
		top: 20rem;
		width: 36px;
		height: 36px;
		background: rgba(255, 255, 255, 0.85);
	}

	#news .newsArrow::before {
		width: 8px;
		height: 8px;
		border-top-width: 2px;
		border-right-width: 2px;
	}

	#news .newsArrow-prev {
		left: -0.6rem;
	}

	#news .newsArrow-next {
		right: 0.6rem;
	}
	
	/*--------------------------------
	menu
	--------------------------------*/
	
	#menu {
		display: block;
		margin: 0;
		padding: 0 0 3rem 0;
	}

	/* かぶせ設計をやめる */
	#menu .menuBadge {
		position: static;
		margin: 0;
		padding: 0;
		width: auto;
		height: auto;
		pointer-events: none;
	}

	/* 丸背景：SP画像に切替＆サイズ縮小（右上に“置く”だけ） */
	#menu .menuBadgeBg {
		position: static;
		margin: 0 0 1.6rem 0;
		width: 22rem;
		height: 22rem;
		background: url("img/index/bg_suppon_sp.png") no-repeat left top / contain;
		opacity: 1;
	}

	/* 赤箱（=タイトル面）も通常フローへ */
	#menu .menuBadgeInner {
		position: static;
		margin: -18rem 0 0 2rem; /* ← 丸に少し被せたい場合。不要なら 0 に */
		padding: 0;
		max-width: none;
		height: auto;
	}

	/* タイトル：absolute を外して Concept(SP) と同じ“横並び見出し”へ */
	#menu .introHead--menu {
		position: static;
		display: block;
		margin: 0 0 2.4rem 0;
		padding: 0;
		gap: 0;
	}

	#menu .introHead--menu .introEn {
		position: relative;
		display: inline-flex;
		margin: 0;
		padding: 0;
		writing-mode: horizontal-tb;
		text-orientation: mixed;
		font-size: 1.4rem;
		color: #474b2c;
		align-items: center;
		gap: 1.0rem;
		letter-spacing: 0.06em;
		line-height: 1;
	}

	#menu .introHead--menu .introEnLine {
		position: static;
		display: inline-block;
		margin: 0;
		padding: 0;
		width: 10rem;
		height: 1px;
		background: #474b2c;
		transform: none;
	}

	#menu .introHead--menu .introTitle {
		display: block;
		margin: 0;
		padding: 0;
		writing-mode: horizontal-tb;
		text-orientation: mixed;
		font-size: 2.4rem;
		color: #474b2c;
		font-weight: 500;
		line-height: 1.3;
	}

	/* 本体エリア：SP余白に */
	#menu .menuInner {
		position: relative;
		margin: 0 auto;
		padding: 0 2rem;
		max-width: 100%;
	}
	
	/* 見出し全体：縦積み */
	#menu .introHead--menu {
		display: flex;
		flex-direction: column;
		margin: 0 0 2.4rem 0;
		gap: 1.0rem;
		align-items: flex-start;
	}

	/* Menu を上に */
	#menu .introHead--menu .introEn {
		order: 1;
	}

	/* お品書きを下に */
	#menu .introHead--menu .introTitle {
		order: 2;
	}
	
	/* 本体の左右余白（必要なら数値だけ微調整OK） */
	#menu .menuInner {
		margin: 0 auto;
		padding: 0 2rem;
		max-width: 100%;
	}

	/* 段差・横ズレを完全解除（3つとも統一） */
	#menu .menuBlock {
		margin: 0 0 3rem 0;
		padding: 0;
		max-width: 100%;
		transform: none;
	}

	#menu .is-offset1,
	#menu .is-offset2,
	#menu .is-offset3 {
		transform: none;
	}

	/* 写真→本文の縦並びにする */
	#menu .menuBlockInner {
		display: block;
	}

	/* 写真は100% */
	#menu .menuMedia {
		margin: 0 0 2.4rem 0;
	}

	#menu .menuMedia img {
		display: block;
		width: 100%;
		height: auto;
	}

	/* 本文 */
	#menu .menuBody {
		flex: none;
		margin: 0;
		padding: 0;
		width: 100%;
	}

	#menu .menuTitle {
		margin: 0 0 1.2rem 0;
		padding: 0;
		font-size: 2.4rem;
		line-height: 1.3;
	}

	#menu .menuPrice {
		margin: 0 0 1.8rem 0;
		padding: 0;
		font-size: 1.8rem;
		line-height: 1.4;
	}

	#menu .menuPrice span {
		font-size: 1.8rem;
	}

	#menu .menuText {
		margin: 0 0 2.6rem 0;
		padding: 0;
		font-size: 1.6rem;
		line-height: 1.8;
	}

	/* リスト：折り返しに強くする（長い料理名対策） */
	#menu .menuList {
		margin: 1.6rem 0 0 0;
		padding: 0;
		list-style: none;
	}

	#menu .menuList li {
		display: flex;
		margin: 0;
		padding: 0.5rem 0;
		font-size: 1.6rem;
		line-height: 1.6;
		justify-content: space-between;
		gap: 1.6rem;
	}

	#menu .menuList li span:first-child {
		flex: 1;
		min-width: 0;
	}

	#menu .menuList li span:last-child {
		white-space: nowrap;
	}

	/* 区切り線：SPは余白少しだけ増やす */
	#menu .menuDivider {
		margin: 2.5rem 0 0 0;
		padding: 0;
		height: 1px;
		background: #111;
		opacity: 0.85;
	}

	/* ボタン：SPは通常フローで全幅寄り */
	#menu .menuBtnWrap {
		position: relative;
		display: block;
		margin: 0;
		padding: 0;
		max-width: 100%;
	}

	#menu .menuBtnWrap .comBtn04 {
		position: relative;
		top: auto;
		right: auto;
		display: block;
		margin: 0 0 0 auto;
		padding: 1.6rem 4.6rem 1.6rem 2.0rem;
		width: 100%;
		max-width: 42rem;
	}

	#menu .menuBtnWrap .comBtn04::after {
		width: 3rem;
	}
	
	/*--------------------------------
	gallery
	--------------------------------*/
	
	#gallery {
		display: block;
		margin: 0;
		padding: 0 0 6rem;
		background: #fff;
	}

	#gallery .galleryInner {
		display: block;
		margin: 0 auto;
		padding: 0;
		max-width: 100%;
	}

	#gallery .galleryViewport {
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
		padding-left: 2rem;
	}

	#gallery .galleryViewport::-webkit-scrollbar {
		display: none;
	}

	#gallery .galleryList {
		display: flex;
		margin: 0;
		padding: 0;
		list-style: none;
		gap: 1.6rem;
		scroll-snap-stop: always;
	}

	#gallery .galleryItem {
		flex: 0 0 40%;
		width: auto;
		margin: 0;
		padding: 0;
		scroll-snap-align: start;
	}

	#gallery .galleryItem:nth-child(2),
	#gallery .galleryItem:nth-child(4) {
		margin-top: 0 !important;
	}

	#gallery .galleryCaption {
		margin: 1.4rem 0 0;
		font-size: 1.4rem;
		line-height: 1.4;
		overflow: hidden;
		text-overflow: ellipsis;
	}
	
	/*--------------------------------
	seats
	--------------------------------*/
	
	#seats {
		display: block;
		margin: 0;
		padding: 6rem 0 5rem;
	}

	#seats .seatsInner {
		margin: 0 auto;
		padding: 0 2rem;
		max-width: 100%;
	}

	/* 見出し：Concept/SPと同じサイズ感に寄せる */
	#seats .secTitle {
		margin-top: 0;
		font-size: 2.4rem;
		line-height: 1.3;
	}

	#seats .secEn {
		font-size: 1.4rem;
	}

	#seats .secEnLine {
		width: 10rem;
	}

	/* 2カラム解除 → 縦積み */
	#seats .seatsGrid {
		display: block;
		margin: 2.6rem 0 0;
		padding: 0;
	}

	/* 写真エリア（重ねの土台） */
	#seats .seatsPhotos {
		margin: 0;
		padding: 0 0 10rem 0; /* ←重なり分の“逃げ” */
		width: 100%;
		position: relative;
	}

	/* メイン写真：大きめ */
	#seats .seatsPhoto-main {
		width: 65%;
	}

	/* サブ写真：右下に重ねる（SPは重なり量を控えめに） */
	#seats .seatsPhoto-sub {
		width: 50%;
		right: 0;
		bottom: 3rem; /* ←ここで重なり量調整 */
	}

	/* テキスト */
	#seats .seatsText {
		margin: 0;
		padding: 0;
		width: 100%;
		font-size: 1.6rem;
		line-height: 2.0;
		letter-spacing: 0.04em;
	}

	#seats .seatsText p {
		margin: 0;
		padding: 0 0 2.2rem 0;
	}

	#seats .seatsText p:last-child {
		padding: 0;
	}
	
	/*--------------------------------
	owner
	--------------------------------*/
	
	#owner {
		margin: 0;
		padding: 6rem 0 4rem; /* ← 他セクション基準に寄せる */
	}

	#owner .ownerInner {
		margin: 0 auto;
		padding: 0 2rem;      /* ← 左右余白を統一（Conceptと同じ） */
		max-width: 100%;
	}
	
	#owner .ownerGrid {
		display: flex;
		margin: 2.6rem 0 0;
		padding: 0;
		flex-direction: column-reverse; /* ← 写真を上へ */
		gap: 2.4rem;
	}
	
	#owner .secTitle {
		margin-top: 0;
	}

	/* 写真 */
	#owner .ownerPhoto {
		display: block;
		margin: 0;
		padding: 0;
		width: 100%;
	}

	#owner .ownerPhoto img {
		display: block;
		width: 100%;
		height: auto;
	}

	/* テキスト */
	#owner .ownerText {
		display: block;
		margin: 0;
		padding: 0;
		width: 100%;
		line-height: 2.0;
		letter-spacing: 0.04em;
	}

	#owner .ownerName {
		display: block;
		margin: 0 0 1.4rem 0;
		padding: 0;
		font-size: 2.4rem;
		font-weight: 500;
	}

	#owner .ownerText p {
		display: block;
		margin: 0;
		padding: 0;
		font-size: 1.6rem;
		text-align: left;
	}

	#owner .ownerText p:last-child {
		padding: 0;
	}
	
	#access-info {
		display: block;
		margin: 0;
		padding: 0 0 5rem 0;
	}

	#access-info .accessInner {
		display: block;
		margin: 0 auto;
		padding: 0 2rem;
		max-width: 100%;
	}

	#access-info .accessGrid {
		display: flex;
		margin: 0;
		padding: 0;
		gap: 4rem;
		flex-direction: column;   /* ← 縦積み */
		align-items: stretch;
	}

	#access-info .accessCol {
		display: block;
		margin: 2rem 0 0 0;
		padding: 0;
		width: 100%;
	}

	#access-info .accessCol-info {
		width: 100%;
	}

	#access-info .accessCol-reserve {
		width: 100%;
	}

	/* 見出し（お店情報／ご予約） */
	#access-info .accessHead {
		display: block;
		margin: 0 0 2.2rem 0;
		padding: 0 0 1.6rem 0;
		border-bottom: 1px solid #222;
	}

	#access-info .accessHeadTitle {
		display: block;
		margin: 0;
		padding: 0;
		font-size: 2.4rem;
		font-weight: 500; /* ここは見出しなので現状維持でOK */
		letter-spacing: 0.04em;
	}

	/* 住所 */
	#access-info .accessAddress {
		display: block;
		margin: 0 0 2.4rem 0;
		padding: 0;
		font-size: 1.6rem;
		letter-spacing: 0.04em;
	}

	/* Map */
	#access-info .accessMap {
		display: block;
		margin: 2.6rem 0;
		padding: 0;
		background: #fff;
	}

	#access-info .accessMap iframe {
		display: block;
		margin: 0;
		padding: 0;
		width: 100%;
		height: 300px;
		border: 0;
	}

	/* ◆営業時間など（直書きの◆はそのまま） */
	#access-info .accessSpec li {
		margin: 0 0 2.0rem 0;
		font-size: 1.6rem !important;
		line-height: 1.6;
	}

	#access-info .accessSpecLabel {
		display: block;
		margin: 0;
		padding: 0;
	}

	#access-info .accessSpecBody p {
		display: block;
		margin: 0;
		padding: 0;
		font-weight: 400; /* ← 本文も同じ太さ */
	}

	/* 右：電話枠（SPは余白＆文字サイズを現実的に） */
	#access-info .reserveBox {
		display: block;
		margin: 0 0 2rem 0;
		padding: 2.0rem;
		border: 1px solid rgba(47, 47, 47, 0.35);
		background: #fff;
	}

	#access-info .reserveTelRow {
		display: flex;
		margin: 0;
		padding: 0;
		gap: 1.6rem;
		align-items: center;
	}

	#access-info .reserveTelIcon {
		display: flex;
		margin: 0;
		padding: 0;
		width: 56px;
		height: 56px;
		border-radius: 50%;
		background: #474b2c;
		align-items: center;
		justify-content: center;
		flex-shrink: 0;
	}

	#access-info .reserveTelIcon img {
		display: block;
		margin: 0;
		padding: 0;
		width: 44px;
		height: auto;
	}

	/* SPは「top:20px」みたいな微調整を無効化して自然に */
	#access-info .reserveTelNum {
		display: block;
		margin: 0;
		padding: 0;
		font-size: 2.8rem;
		font-weight: 700;
		letter-spacing: 0.04em;
		line-height: 1.2;
		position: static;
		top: auto;
	}

	#access-info .reserveTelNote {
		display: block;
		margin: 0.6rem 0 0 0;
		padding: 0;
		font-size: 1.4rem;
		letter-spacing: 0.04em;
		text-align: left;
	}

	/* リンク */
	#access-info .reserveLink {
		display: flex;
		margin: 0 0 1.6rem 0;
		padding: 2.0rem;
		font-size: 1.6rem;
		border: 1px solid rgba(47, 47, 47, 0.35);
		background: #fff;
		text-decoration: none;
		align-items: center;
		justify-content: space-between;
		letter-spacing: 0.04em;
	}

	#access-info .reserveArrow {
		display: block;
		margin: 0;
		padding: 0;
		width: 3.2rem;
		height: 1px;
		background: #222;
		position: relative;
		flex-shrink: 0;
	}

	/* 注意事項 */
	#access-info .reserveNotes {
		display: block;
		margin: 2.4rem 0 0 0;
		padding: 0;
		list-style: none;
	}

	#access-info .reserveNotes li {
		display: block;
		margin: 0;
		padding: 0 0 1.6rem 0;
		font-size: 1.6rem;
		line-height: 1.6;
		letter-spacing: 0.04em;
		position: relative;
	}
	
	
	#owner .ownerText p:last-child {
		padding: 0;
	}

	/* 当店のこだわり・お客様へ */
	#owner .ownerText02,
	#owner .ownerText03 {
		display: block;
		margin: 0;
		padding: 0;
		width: 100%;
		line-height: 2.0;
		letter-spacing: 0.04em;
	}

	#owner .ownerText h4,
	#owner .ownerText02 h4,
	#owner .ownerText03 h4 {
		margin: 0 0 1.4rem 0;
		padding: 0;
		font-size: 2rem;
		font-weight: 700;
		letter-spacing: 0.06em;
	}

	#owner .ownerText02 p {
		margin: 0;
		padding: 0;
		font-size: 1.6rem;
		line-height: 2.0;
		letter-spacing: 0.04em;
	}

	#owner .ownerText03 dl,
	#owner .ownerText03 dl:nth-of-type(1),
	#owner .ownerText03 dl:nth-of-type(2),
	#owner .ownerText03 dl:nth-of-type(3),
	#owner .ownerText03 dl:nth-of-type(4) {
		display: block;
		margin: 0 0 2.8rem 0;
		padding: 0;
		width: 100%;
		grid-column: auto;
		grid-row: auto;
	}

	#owner .ownerText03 dl:last-child {
		margin-bottom: 0;
	}

	#owner .ownerText03 dt {
		margin: 0 0 1rem 0;
		padding: 0;
		font-size: 1.7rem;
		line-height: 1.6;
	}

	#owner .ownerText03 dd {
		margin: 0;
		padding: 0;
		font-size: 1.6rem;
		line-height: 2.0;
		letter-spacing: 0.04em;
	}
	
	/*--------------------------------
	footer
	--------------------------------*/
	#gFooter {
		display: block;
		margin: 0;
		padding: 0; /* ← 下部固定（Menu/To Top）に被らない保険 */
	}

	#gFooter .footerInner {
		display: block;
		margin: 0;
		padding: 2rem 0 0;
		text-align: center;
	}

	#gFooter .footerCatch {
		display: block;
		margin: 0 0 1rem 0;
		padding: 0;
		font-size: 1.5rem;
		font-weight: 500;
	}

	#gFooter .footerLogo {
		display: block;
		margin: 0;
		padding: 0 0 5rem 0;
	}

	#gFooter .footerLogo img {
		display: block;
		margin: 0 auto;
		padding: 0;
		width: 50px;
		height: auto;
	}

	/* コピーライト帯（SPは中央寄せ＋背景をきれいに見せる） */

	
	#gFooter .footerCopy {
		position: relative;
		display: block;
		margin: 0;
		padding: 2rem 0 6rem;   /* 下部固定ボタンの逃げは維持 */
		font-size: 1.4rem;
		color: #fff;
		letter-spacing: 0.06em;
		text-align: center;
		background-size: cover;
		background-position: center bottom;
	}

	/* コピーライトをロゴ直下へ（上に移動） */
	#gFooter .footerCopy span {
		position: absolute;
		left: 50%;
		top: -4rem;              /* ← ロゴ直下に来るように調整ポイント */
		transform: translateX(-50%);
		margin: 0;
		padding: 0;
		white-space: nowrap;
		color: #222;
	}
	
	
	
	/*--------------------------------
	一旦非表示（スマホ版で横スクロールが出てしまうので調整しにくいため）
	--------------------------------*/
	/*#menu,*/
	/*#gallery,*/
	/*#access-info {
		display: none;
	}*/
	

}

/*--------------------------------
印刷時CSS無効
--------------------------------*/
@media print {

	html,
	body {
		margin: 0 !important;
		padding: 0 !important;
		background: #fff !important;
		color: #000 !important;
		font: 12pt/1.6 sans-serif !important;
		-webkit-print-color-adjust: economy !important;
		print-color-adjust: economy !important;
	}

	body * {
		all: revert !important;
		box-sizing: border-box !important;
	}
	body .accessCol , body .accessCol * {
		all: unset !important;
		box-sizing: border-box !important;
		display: block !important;
	}
	body .accessCol .reserveTelIcon { display: none!important; }
	body .accessCol iframe { width: 100% !important; height: 225px !important; }
	
	body #access-info {
		break-before: page !important;
		page-break-before: always !important;
	}

	img {
		max-width: 100% !important;
		height: auto !important;
	}

	a {
		color: #000 !important;
		text-decoration: underline !important;
	}

	.sp-menu,
	.globalNav,
	.headerUtility,
	.sp-fixed-nav {
		display: none !important;
	}

	#hero .scrollDown,
	#hero .scrollText,
	#hero .scrollArrow,
	#hero .scrollArrow::before,
	#hero .scrollArrow::after,
	#access-info .reserveArrow,
	#access-info .reserveArrow::before,
	#access-info .reserveArrow::after,
	#menu .menuBtnWrap .comBtn04::before,
	#menu .menuBtnWrap .comBtn04::after,
	#menu .menuBtnWrap .comBtn04 span::before,
	#menu .menuBtnWrap .comBtn04 span::after {
		all: unset !important;
		display: none !important;
		content: none !important;
	}

	#hero .heroPhoto img {
		width: 50% !important;
		height: auto !important;
	}

	.heroPhoto {
		display: inline !important;
	}

	#news .newsImg img,
	#menu .menuMedia img,
	#gallery .galleryItem img,
	#seats .seatsPhoto img,
	#owner .ownerPhoto img,
	.singleThumb img {
		width: 50% !important;
		height: auto !important;
	}

	#gFooter img {
		width: 10% !important;
		height: auto !important;
	}

	#gallery .galleryItem:nth-child(1),
	#gallery .galleryItem:nth-child(2),
	#gallery .galleryItem:nth-child(7),
	#gallery .galleryItem:nth-child(8) {
		display: none !important;
	}

	#gallery .galleryItem:nth-child(3),
	#gallery .galleryItem:nth-child(4),
	#gallery .galleryItem:nth-child(5),
	#gallery .galleryItem:nth-child(6) {
		display: block !important;
	}

	/* access-info は印刷で素直な縦組みにする */
	#access-info .accessGrid,
	#access-info .accessCol,
	#access-info .reserveBox,
	#access-info .reserveLinks,
	#access-info .reserveNotes {
		display: block !important;
		width: auto !important;
		break-inside: auto !important;
		page-break-inside: auto !important;
	}

	#access-info .reserveTelRow {
		display: block !important;
	}

	#access-info .reserveTelNum {
		position: static !important;
		top: auto !important;
		padding: 0 !important;
	}

	/* リンクは1件ずつ改行して印刷 */
	#access-info .reserveLink {
		display: block !important;
		margin: 0 0 0.8em 0 !important;
		break-inside: avoid !important;
		page-break-inside: avoid !important;
	}

	/* 注意書きは li 単位だけ守る */
	#access-info .reserveNotes li {
		break-inside: avoid !important;
		page-break-inside: avoid !important;
	}
	
	#owner .ownerPhoto img {
		width: 35% !important;
	}
	
	#gFooter {
		all: unset !important;
		box-sizing: border-box !important;
		display: block !important;
		background: none !important;
	}
	
	#gFooter .footerCopy {
		background-image: none !important;
	}
	
	
}