@charset "utf-8";



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


/*Google Fontsの読み込み
---------------------------------------------------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=LINE+Seed+JP:wght@400;700&display=swap');


/*cssファイルの読み込み
---------------------------------------------------------------------------*/
@import url("slide.css");
@import url("inview.css");


/*CSSカスタムプロパティ（サイト全体を一括管理する為の設定）
---------------------------------------------------------------------------*/
:root {

	--bg-color: #000;			/*主にテンプレートの背景色*/
	--bg-inverse-color: #fff;	/*上のbg-colorの対として使う色*/
	
	--primary-color: #000;		/*テーマカラー*/
	--primary-inverse-color: #fff;	/*上のprimary-colorの対として使う色*/
	--button-gold: #8b6b43;	/*予約・誘導ボタン用の渋いゴールド*/
	--button-gold-hover: #a98455;	/*ボタンのマウスオン色*/
	--nav-hover-red: #7d0017;	/*ページ内ナビのマウスオン番号色*/

	--content-space: 5vw;	/*色々な余白管理用。画面幅100% = 100vwです。*/

}


/*animation11のキーフレーム設定（汎用的）
---------------------------------------------------------------------------*/
@keyframes animation1 {
	0% {left: -200px;}
	100% {left: 0px;}
}


/*opa1のキーフレーム設定（汎用的）
---------------------------------------------------------------------------*/
@keyframes opa1 {
	0% {opacity: 0;}
	100% {opacity: 1;}
}


/*全体の設定
---------------------------------------------------------------------------*/
body * {box-sizing: border-box;}
html,body {
	font-size: 13px;	/*基準となるフォントサイズ。*/
}

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

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

	}/*追加指定ここまで*/


body {
	margin: 0;padding:0;
	font-family: "LINE Seed JP", "ヒラギノ角ゴ Pro W3", Meiryo, "メイリオ", "Osaka", "MS PGothic", "ＭＳ Ｐゴシック", sans-serif;	/*フォント種類（ゴシック）*/
	font-weight: 400;
	-webkit-text-size-adjust: none;
	background: var(--bg-color);	/*背景色*/
	color: var(--bg-inverse-color);		/*文字色*/
	line-height: 2;		/*行間*/
	overflow-x: hidden;
}

/*リセット*/
figure {margin: 0;}
dd {margin: 0;}
nav,ul,li,ol {margin: 0;padding: 0;}
nav ul {list-style: none;}

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

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

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

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

/*他*/
input {font-size: 1rem;}
section > ol,section > ul {margin-left: 2rem;}


/*sectionの設定
---------------------------------------------------------------------------*/
section {
	margin: var(--content-space) 0;
}

/* お問い合わせページ：H1化しても従来のH2と同じ見た目を維持 */
.contact-page main section > h1 {
	margin-block-start: 0.83em;
	margin-block-end: 0.83em;
	font-size: 1.5em;
}

/* お問い合わせフォーム
---------------------------------------------------------------------------*/
.contact-page {
	background: #0b0b0b;
	color: #f5f0e8;
}
.contact-main {
	margin-right: calc(-1 * var(--content-space));
	margin-left: calc(-1 * var(--content-space));
}
.contact-main section {
	margin: 0;
}
.contact-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	min-height: clamp(420px, 54vh, 600px);
	padding: clamp(110px, 13vw, 180px) max(24px, var(--content-space)) clamp(72px, 9vw, 120px);
	background:
		linear-gradient(115deg, rgba(0, 0, 0, 0.98) 5%, rgba(0, 0, 0, 0.72) 55%, rgba(0, 0, 0, 0.28)),
		radial-gradient(circle at 84% 28%, rgba(147, 0, 25, 0.68), transparent 34%),
		linear-gradient(145deg, #21110e, #080808 66%);
}
.contact-hero::after {
	position: absolute;
	right: clamp(24px, 6vw, 90px);
	bottom: -85px;
	width: clamp(210px, 28vw, 420px);
	border-top: 1px solid rgba(200, 151, 104, 0.42);
	content: "CONTACT";
	color: rgba(255, 255, 255, 0.035);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(4rem, 11vw, 10rem);
	letter-spacing: 0.08em;
	line-height: 1;
	transform: rotate(-90deg);
	transform-origin: right top;
}
.contact-hero-inner {
	position: relative;
	z-index: 1;
	width: min(1180px, 100%);
	margin: 0 auto;
}
.contact-eyebrow,
.contact-section-label {
	margin: 0;
	color: #c89768;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.72rem;
	letter-spacing: 0.28em;
	line-height: 1.5;
	text-transform: uppercase;
}
.contact-hero h1,
.contact-page main section > .contact-hero-inner > h1 {
	margin: 18px 0 26px;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: clamp(3rem, 6.4vw, 6rem);
	font-weight: 400;
	letter-spacing: 0.025em;
	line-height: 1.18;
}
.contact-hero h1 span {
	display: block;
	white-space: nowrap;
}
.contact-hero-inner > p:last-child {
	max-width: 650px;
	margin: 0;
	color: #cfc3b8;
	font-size: 0.86rem;
	letter-spacing: 0.04em;
	line-height: 2.05;
}
.contact-form-section {
	padding: clamp(86px, 10vw, 150px) max(20px, var(--content-space));
	background: #eee8df;
	color: #201c19;
}
.contact-form-shell {
	width: min(1180px, 100%);
	margin: 0 auto;
}
.contact-form-heading {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 36px;
	align-items: end;
	margin-bottom: clamp(38px, 5vw, 64px);
}
.contact-form-heading h2 {
	margin: 13px 0 0;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: clamp(2.3rem, 5vw, 4.4rem);
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 1.2;
}
.contact-form-guide {
	display: flex;
	gap: 15px;
	align-items: center;
	padding-bottom: 10px;
	color: #8b8177;
}
.contact-form-guide p {
	margin: 0;
	font-size: 0.72rem;
	white-space: nowrap;
}
.contact-form-guide p:first-child {
	color: #930019;
	font-weight: 700;
}
.contact-form-guide span {
	margin-right: 6px;
	color: #c89768;
	font-family: Georgia, "Times New Roman", serif;
}
.contact-form-guide i {
	font-size: 0.58rem;
	opacity: 0.5;
}
.contact-form {
	background: #11100f;
	box-shadow: 0 30px 80px rgba(41, 29, 20, 0.16);
	color: #f5f0e8;
}
.contact-field {
	display: grid;
	grid-template-columns: minmax(180px, 0.34fr) minmax(0, 1fr);
	gap: clamp(24px, 5vw, 72px);
	align-items: start;
	padding: clamp(28px, 4vw, 46px) clamp(24px, 5vw, 70px);
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
.contact-field > label {
	display: flex;
	gap: 12px;
	align-items: center;
	min-width: 0;
	padding-top: 15px;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	line-height: 1.5;
	white-space: normal;
	word-break: keep-all;
	writing-mode: horizontal-tb;
}
.contact-field > label em {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	min-height: 22px;
	padding: 2px 6px;
	background: #930019;
	color: #fff;
	font-family: "LINE Seed JP", sans-serif;
	font-size: 0.6rem;
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.04em;
}
.contact-field > div {
	min-width: 0;
}
.contact-field input,
.contact-field textarea {
	display: block;
	width: 100%;
	min-width: 0;
	padding: 15px 17px;
	background: #1b1917;
	border: 1px solid rgba(200, 151, 104, 0.32);
	border-radius: 0;
	outline: 0;
	color: #fff;
	font: inherit;
	line-height: 1.65;
	transition: border-color 0.25s, background 0.25s, box-shadow 0.25s;
}
.contact-field textarea {
	min-height: 220px;
}
.contact-field input::placeholder,
.contact-field textarea::placeholder {
	color: #766f68;
}
.contact-field input:focus,
.contact-field textarea:focus {
	background: #201d1a;
	border-color: #c89768;
	box-shadow: 0 0 0 3px rgba(200, 151, 104, 0.13);
}
.contact-field small {
	display: block;
	margin-top: 9px;
	color: #938b84;
	font-size: 0.68rem;
	line-height: 1.7;
}
.contact-form-footer {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(250px, 0.4fr);
	gap: 32px;
	align-items: center;
	padding: clamp(30px, 4.5vw, 54px) clamp(24px, 5vw, 70px);
}
.contact-form-footer p {
	margin: 0;
	color: #a39b93;
	font-size: 0.7rem;
	line-height: 1.9;
}
.contact-form-footer a {
	color: #d8b28d;
}
.contact-submit {
	display: flex;
	gap: 18px;
	align-items: center;
	justify-content: center;
	min-height: 64px;
	padding: 15px 24px;
	background: var(--button-gold);
	border: 1px solid var(--button-gold);
	border-radius: 0;
	color: #fff;
	cursor: pointer;
	font: inherit;
	font-size: 0.84rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	transition: background 0.25s, color 0.25s, transform 0.25s;
}
.contact-submit:hover {
	background: var(--button-gold-hover);
	border-color: var(--button-gold-hover);
	color: #fff;
	transform: translateY(-2px);
}
.contact-submit:focus-visible {
	outline: 2px solid #d7b47c;
	outline-offset: 3px;
}
.contact-honeypot {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}
.contact-direct {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(320px, 1fr);
	gap: clamp(40px, 7vw, 100px);
	margin-top: clamp(70px, 9vw, 125px);
	padding: clamp(44px, 6vw, 72px);
	background: #dcd3c8;
	border-left: 4px solid #930019;
}
.contact-direct h2 {
	margin: 14px 0 0;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: clamp(2rem, 4vw, 3.5rem);
	font-weight: 400;
	line-height: 1.38;
}
.contact-direct > div:last-child {
	display: flex;
	justify-content: center;
	flex-direction: column;
}
.contact-direct a {
	display: flex;
	gap: 22px;
	align-items: center;
	color: #930019;
	text-decoration: none;
}
.contact-direct a > i {
	font-size: 1.5rem;
}
.contact-direct a > span {
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.8rem, 4vw, 3rem);
	letter-spacing: 0.03em;
	line-height: 1.1;
}
.contact-direct a small {
	display: block;
	margin-top: 8px;
	color: #675f58;
	font-family: "LINE Seed JP", sans-serif;
	font-size: 0.66rem;
	letter-spacing: 0.06em;
}
.contact-direct > div:last-child > p {
	margin: 20px 0 0;
	color: #716960;
	font-size: 0.72rem;
	line-height: 1.9;
}
.contact-demo-link {
	margin: 26px 0 0;
	text-align: right;
}
.contact-demo-link a {
	display: inline-flex;
	gap: 9px;
	align-items: center;
	color: #6e655d;
	font-size: 0.7rem;
	text-decoration: none;
}

@media screen and (max-width: 760px) {
	.contact-hero {
		min-height: 520px;
		padding-right: 20px;
		padding-left: 20px;
	}
	.contact-hero h1,
	.contact-page main section > .contact-hero-inner > h1 {
		font-size: min(8.6vw, 4rem);
		line-height: 1.34;
	}
	.contact-hero h1 span {
		white-space: nowrap;
	}
	.contact-hero-inner > p:last-child br {
		display: none;
	}
	.contact-form-heading,
	.contact-field,
	.contact-form-footer,
	.contact-direct {
		grid-template-columns: 1fr;
	}
	.contact-form-guide {
		padding-bottom: 0;
	}
	.contact-field {
		gap: 16px;
	}
	.contact-field > label {
		padding-top: 0;
	}
	.contact-form-footer {
		gap: 24px;
	}
	.contact-direct {
		gap: 30px;
	}
}

/* 下部固定メニュー：通常時は統一し、操作時のみゴールドで強調 */
@media screen and (max-width: 760px) {
	.mobile-action-bar a,
	.mobile-action-bar .reserve {
		background-color: #15130f !important;
		color: #d1ad78 !important;
		opacity: 1;
		transition: background-color 0.2s ease, color 0.2s ease;
	}

	.mobile-action-bar a:hover,
	.mobile-action-bar a:focus,
	.mobile-action-bar a:focus-visible,
	.mobile-action-bar a:active,
	.mobile-action-bar .reserve:hover,
	.mobile-action-bar .reserve:focus,
	.mobile-action-bar .reserve:focus-visible,
	.mobile-action-bar .reserve:active {
		background-color: var(--button-gold-hover) !important;
		color: #fff !important;
		opacity: 1;
	}
}

@media screen and (max-width: 480px) {
	.contact-hero {
		min-height: 500px;
		padding-bottom: 68px;
	}
	.contact-hero h1,
	.contact-page main section > .contact-hero-inner > h1 {
		font-size: min(8.6vw, 2.5rem);
	}
	.contact-form-section {
		padding-right: 16px;
		padding-left: 16px;
	}
	.contact-form-heading h2 {
		font-size: min(8.4vw, 2.2rem);
		white-space: nowrap;
	}
	.contact-form-guide {
		gap: 8px;
		justify-content: space-between;
	}
	.contact-form-guide p {
		font-size: 0.66rem;
	}
	.contact-field,
	.contact-form-footer {
		padding-right: 20px;
		padding-left: 20px;
	}
	.contact-field > label {
		width: 100%;
		min-width: 100%;
		white-space: normal;
		word-break: keep-all;
		writing-mode: horizontal-tb;
	}
	.contact-field textarea {
		min-height: 190px;
	}
	.contact-submit {
		width: 100%;
		padding-right: 16px;
		padding-left: 16px;
	}
	.contact-direct {
		padding: 34px 22px;
	}
	.contact-direct a {
		gap: 14px;
	}
	.contact-direct a > span {
		font-size: clamp(1.55rem, 8.6vw, 2.2rem);
	}
}

/* お問い合わせ：確認・完了画面
---------------------------------------------------------------------------*/
.contact-process-page {
	min-height: 100vh;
	margin: 0;
	background:
		radial-gradient(circle at 82% 16%, rgba(147, 0, 25, 0.32), transparent 28%),
		#0b0b0b;
	color: #f5f0e8;
}
.contact-process-header {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 150px;
	padding: 24px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.contact-process-header img {
	display: block;
	width: 92px;
	height: auto;
}
.contact-process-main {
	display: block;
	width: min(960px, calc(100% - 40px));
	margin: 0 auto;
	padding: clamp(60px, 8vw, 110px) 0;
}
.contact-process-card {
	margin: 0;
	padding: clamp(34px, 6vw, 72px);
	background: #eee8df;
	box-shadow: 0 35px 90px rgba(0, 0, 0, 0.32);
	color: #211d1a;
}
.contact-process-heading {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 30px;
	align-items: end;
}
.contact-process-card h1 {
	margin: 14px 0 0;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: clamp(2.1rem, 5vw, 4rem);
	font-weight: 400;
	letter-spacing: 0.025em;
	line-height: 1.3;
}
.contact-process-card > p:not(.contact-section-label):not(.contact-process-notice) {
	margin: 25px 0 0;
	color: #6f665e;
	font-size: 0.82rem;
	line-height: 2;
}
.contact-process-heading .contact-form-guide .is-current {
	color: #930019;
	font-weight: 700;
}
.contact-process-lead {
	margin: 35px 0 26px !important;
}
.contact-confirm-list {
	margin: 0;
	border-top: 1px solid #cfc5ba;
}
.contact-confirm-list > div {
	display: grid;
	grid-template-columns: 180px minmax(0, 1fr);
	gap: 28px;
	padding: 22px 18px;
	border-bottom: 1px solid #cfc5ba;
}
.contact-confirm-list dt {
	color: #746a62;
	font-size: 0.73rem;
	font-weight: 700;
}
.contact-confirm-list dd {
	min-width: 0;
	color: #211d1a;
	font-size: 0.84rem;
	line-height: 1.9;
	overflow-wrap: anywhere;
}
.contact-process-actions {
	display: flex;
	gap: 14px;
	align-items: center;
	justify-content: flex-end;
	margin-top: 38px;
}
.contact-process-actions form {
	margin: 0;
}
.contact-process-back {
	display: inline-flex;
	gap: 12px;
	align-items: center;
	justify-content: center;
	min-height: 58px;
	padding: 13px 24px;
	background: transparent;
	border: 1px solid #a79d93;
	border-radius: 0;
	color: #4f4842;
	cursor: pointer;
	font: inherit;
	font-size: 0.8rem;
	text-decoration: none;
}
.contact-error-list {
	margin: 28px 0 0;
	padding: 22px 26px 22px 46px;
	background: rgba(147, 0, 25, 0.08);
	border-left: 4px solid #930019;
	color: #740018;
	font-size: 0.8rem;
}
.contact-complete-card {
	text-align: center;
}
.contact-complete-mark {
	margin-bottom: 20px;
	color: #930019;
	font-size: 3.3rem;
}
.contact-complete-data {
	width: min(580px, 100%);
	margin: 34px auto;
	border-top: 1px solid #cfc5ba;
}
.contact-complete-data > div {
	display: grid;
	grid-template-columns: 130px minmax(0, 1fr);
	gap: 20px;
	padding: 15px;
	border-bottom: 1px solid #cfc5ba;
	text-align: left;
}
.contact-complete-data dt {
	color: #746a62;
	font-size: 0.7rem;
}
.contact-complete-data dd {
	min-width: 0;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.86rem;
	overflow-wrap: anywhere;
}
.contact-process-notice {
	width: min(620px, 100%);
	margin: 24px auto !important;
	padding: 14px 18px;
	background: #fff4dd;
	color: #72551e;
	font-size: 0.74rem;
	line-height: 1.8;
}
.contact-complete-card > .contact-submit {
	display: inline-flex;
	margin-top: 15px;
	text-decoration: none;
}

@media screen and (max-width: 700px) {
	.contact-process-header {
		min-height: 120px;
	}
	.contact-process-header img {
		width: 76px;
	}
	.contact-process-heading {
		grid-template-columns: 1fr;
	}
	.contact-confirm-list > div {
		grid-template-columns: 1fr;
		gap: 5px;
	}
	.contact-process-actions {
		align-items: stretch;
		flex-direction: column-reverse;
	}
	.contact-process-actions form,
	.contact-process-actions .contact-submit,
	.contact-process-back {
		width: 100%;
	}
}

@media screen and (max-width: 440px) {
	.contact-process-main {
		width: calc(100% - 24px);
		padding: 36px 0 78px;
	}
	.contact-process-card {
		padding: 30px 20px;
	}
	.contact-complete-data > div {
		grid-template-columns: 1fr;
		gap: 3px;
	}
}


/*リンクテキスト全般の設定
---------------------------------------------------------------------------*/
a {
	color: inherit;
	transition: 0.3s;	/*hoverまでにかける時間。0.3秒。*/
}

/*マウスオン時*/
a:hover {
	opacity: 0.7;	/*色を70%だけ出す*/
}


/*conatiner（サイト全体を囲むブロック）
---------------------------------------------------------------------------*/
#container {
	animation: opa1 0.2s 0.4s both;  /*0.4秒待機後、0.2秒かけてフェードイン*/
	display: grid;
	grid-template-rows: auto auto 1fr;
	min-height: 100vh;
	min-height: 100dvh;
	padding: var(--content-space) var(--content-space) 0;
}
body:not(.home) #container {
	position: relative;
	grid-template-rows: auto 1fr;
	padding-top: 0;
}


/*header（ロゴが入ったブロック）
---------------------------------------------------------------------------*/
header {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
body.home header {
	margin-bottom: var(--content-space);
}

/*ロゴ画像*/
#logo {margin: 0;}
#logo img {
	display: block;
	width: 130px;	/*ロゴの幅*/
}

/*ロゴ（※テキストで使う場合）*/
#logo a {
	text-decoration: none;
	display: block;
	font-size: 1.2rem;	/*文字サイズ120%*/
}


/*ヘッダー内メニュー（大きな端末で見える横並びメニュー設定）
---------------------------------------------------------------------------*/
.large-screen #menubar ul {
	display: flex;
	gap: 1.5rem;	/*メニュー同士の間にとる余白。1.5文字分。*/
	align-items: center;
}
.large-screen #menubar ul a {
	display: block;text-decoration: none;
}


/*開閉メニュー（小さな端末用のメニュー設定）
---------------------------------------------------------------------------*/
/*メニューブロック共通*/
.small-screen #menubar {
	animation: animation1 0.2s both;
	position: fixed;overflow: auto;z-index: 100;
	right: 0px;top: 0px;
	width: 100%;
	height: 100%;
	padding: 100px var(--content-space) 50px;		/*ブロック内の余白*/
	background: var(--bg-color);	/*背景色。冒頭のbg-colorを読み込みます。*/
	color: var(--bg-inverse-color);	/*文字色。冒頭のbg-inverse-colorを読み込みます。*/
}

.small-screen #menubar {display: none;}

/*メニュー１個あたり*/
.small-screen #menubar a {
	display: block;text-decoration: none;
	color: inherit;
	border: 1px solid #ccc;	/*枠線の幅、線種、色*/
	border-radius: 5px;		/*角を少し丸くする*/
	margin-bottom: 1rem;	/*下に１文字分のスペースを空ける。メニュー同士の間隔です。*/
	padding: 1rem 2rem;		/*メニュー内の余白。上下に１文字分、左右に２文字分。*/
}


/*３本バー（ハンバーガー）アイコン設定
---------------------------------------------------------------------------*/
#menubar_hdr {
	display: none; /* デフォルトは非表示 */
	animation: opa1 0s 0.2s both;
	position: fixed;
	z-index: 101;
	cursor: pointer;
	right: 0px;	/*右からの配置場所*/
	top: 0px;	/*上からの配置場所*/
	width: 70px;	/*ボタンの幅*/
	height: 70px;	/*ボタンの高さ*/
}

/*ハンバーガーアイコンの線*/
#menubar_hdr span {
	display: block;
	position: absolute;
	left: 18px;
	width: 35px;
	height: 2px;		/*線の高さ*/
	background: var(--bg-inverse-color);	/*背景色ですが、ここでは線の色になります。冒頭のbg-inverse-colorを読み込みます。*/
	transition: 0.3s;
}

#menubar_hdr span:nth-of-type(1) {
	top: 24px;
}
#menubar_hdr span:nth-of-type(2) {
	top: 34px;
}
#menubar_hdr span:nth-of-type(3) {
	top: 44px;
}

/* ハンバーガーメニュー展開時 */
#menubar_hdr.ham span:nth-of-type(1) {
	transform: translateY(10px) rotate(-45deg);
}
#menubar_hdr.ham span:nth-of-type(2) {
	opacity: 0;
}
#menubar_hdr.ham span:nth-of-type(3) {
	transform: translateY(-10px) rotate(45deg);
}

/*小さな画面での設定*/
.small-screen #menubar_hdr {
	display: flex;
}


/*list-grid（３列に並んだリストブロック）
---------------------------------------------------------------------------*/
.list-grid .list * {margin: 0;padding: 0;}

/*ブロック全体を囲むブロック*/
.list-grid {
	display: grid;
    grid-template-columns: repeat(3, 1fr);	/*3列にする指定。4列にしたければrepeat(4, 1fr)とする。*/
	gap: 5vw;	/*ブロックの間に空けるスペース*/
	text-align: center;	/*ブロック内をセンタリング*/
}

/*ボックス内のfigure画像*/
.list-grid .list figure {
	margin-bottom: 0.5rem;
}

/*ボックス内のp（文章）*/
.list-grid p {
	font-weight: normal;
	font-size: 0.85rem;	/*文字サイズ85%*/
	text-align: left;	/*文章は左寄せで。センタリングがよければこの１行を削除。*/
}


/*2カラムブロック（※900px未満では１カラム）スタッフ紹介ページで使用。
---------------------------------------------------------------------------*/
/*２カラムを囲むブロック*/
.list-half .list {
	display: flex;
	flex-direction: column;	/*子要素を縦並びにする*/
	margin-bottom: 2rem;	/*ボックスの下に2文字分のスペースを空ける*/
}

/*ブロック内のh4見出し*/
.list-half .list h4 {
	font-size: 1.4rem;	/*文字サイズを1.4倍*/
}

/*画像ブロック共通*/
.list-half .image-l img, .list-half .image-r img {
	border-radius: 0px;	/*角を丸くする指定。*/
	box-shadow: 5px 5px rgba(255,255,255,0.2);	/*ボックスの影。右へ、下へ、255,255,255は白の事で0.2は色が20%出た状態。*/
}

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

		/*２カラムを囲むブロック*/
		.list-half .list {
			gap: 2rem;
			flex-direction: row;			/*子要素を横並びにする*/
			justify-content: space-between;	/*並びかたの種類の指定*/
			align-items: center;			/*垂直揃えの指定。天地中央に配置されるように。*/
		}
		
		/*画像ブロック共通*/
		.list-half .image-l, .list-half .image-r {
			width: 50%;			/*画像の幅*/
		}
		
		/*画像を左に配置する場合*/
		.list-half .image-l {
			order: -1;
		}

		/*テキストブロック*/
		.list-half .text {
			flex: 1;
		}

	}/*追加指定ここまで*/


/*お知らせページ（new.html）
---------------------------------------------------------------------------*/
	/*画面幅700px以上の追加指定*/
	@media screen and (min-width:700px) {

	/*ブロック全体*/
	.new {
		display: grid;
		gap: 1rem;  /*日付や文章の間にとるスペース。１文字分。*/
		grid-template-columns: auto 1fr;	/* 日付の幅は自動で、内容が入るブロックは残り幅一杯とる。 */
	}

	}/*追加指定ここまで*/


/*btn（ボタン）
---------------------------------------------------------------------------*/
/*ボタン共通*/
.btn a {
	display: block;text-decoration: none;
	background: var(--primary-color) !important;		/*背景色。冒頭のprimary-colorを読み込みます。*/
	color: var(--primary-inverse-color) !important;	/*文字色。冒頭のprimary-inverse-colorを読み込みます。*/
	border-radius: 5px;	/*角を少し丸くする*/
	width: fit-content;
	margin: 0 auto;
	padding: 0.5rem 2rem;	/*上下、左右への余白。*/
	margin-top: 2rem;		/*上にスペースをとる*/
	font-size: 1.2rem;		/*文字サイズ120%*/
	letter-spacing: 0.1em;	/*文字間隔を少しだけ広く*/
}

/*マウスオン時*/
.btn a:hover {
	opacity: 1;
	background: #000;	/*背景色*/
	color: #fff;		/*文字色*/
}

/*大きな端末で出るヘッダーのメニュー*/
.large-screen #menubar .btn a {
	margin-top: 0;		/*上のスペースのリセット*/
	font-size: 1rem;	/*文字サイズを通常に戻す*/
	letter-spacing: normal;	/*文字間隔を通常に戻す*/
}

/*小さな端末のメニュー*/
.small-screen #menubar .btn a {
	margin: 0 0 1rem;
	width: auto;
	padding: 1rem 2rem;
	background: transparent !important;
	border: 1px solid #ccc;
	color: inherit !important;
	font-size: inherit;
	letter-spacing: normal;
}


/*テーブル（ta1）
---------------------------------------------------------------------------*/
/*テーブル１行目に入った見出し部分（※caption）*/
.ta1 caption {
	font-weight: bold;		/*太字に*/
	padding: 0.2rem 1rem;	/*ボックス内の余白*/
	background: rgba(255,255,255,0.2);	/*背景色。255,255,255は白のことで0.2は色が20%出た状態。*/
	color: #fff;	/*文字色*/
	margin-bottom: 1rem;	/*下に空けるスペース*/
	border-radius: 5px;		/*角を丸くする指定*/
}

/*ta1テーブルブロック設定*/
.ta1 {
	table-layout: fixed;
	border-top: 1px solid rgba(255,255,255,0.3);	/*テーブルの上の線。幅、線種、255,255,255は白のことで0.3は色が30%出た状態。*/
	width: 100%;				/*幅*/
	margin-bottom: 2rem;		/*テーブルの下に空けるスペース。２文字分。*/
}

/*tr（１行分）タグ設定*/
.ta1 tr {
	border-bottom: 1px solid rgba(255,255,255,0.3);	/*テーブルの下の線。幅、線種、255,255,255は白のことで0.3は色が30%出た状態。*/
}

/*th（左側）、td（右側）の共通設定*/
.ta1 th, .ta1 td {
	padding: 1rem;		/*ボックス内の余白*/
	word-break: break-all;	/*英語などのテキストを改行で自動的に折り返す設定。これがないと、テーブルを突き抜けて表示される場合があります。*/
}

/*th（左側）のみの設定*/
.ta1 th {
	width: 30%;			/*幅*/
	text-align: left;	/*左よせにする*/
}

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

		/*th（左側）のみの設定*/
		.ta1 th {
			width: 20%;		/*幅*/
		}

	}/*追加指定ここまで*/


/*フッター
---------------------------------------------------------------------------*/
footer * {margin: 0;padding: 0;}

/*ブロック全体*/
footer {
	margin-left: calc(-1 * var(--content-space));
	margin-right: calc(-1 * var(--content-space));
	text-align: center;
}

/*Copyright部分*/
footer small {
	display: block;
}


/*SNSアイコン
---------------------------------------------------------------------------*/
.icons {
	list-style: none;
	margin: 0;padding: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px;	/*アイコン同士に空けるスペース*/
}
.icons i {
	font-size: 30px;	/*アイコンサイズ*/
}


/*著作部分（※意図的に見えなくしたりしないで下さい。規約違反になります。）
---------------------------------------------------------------------------*/
.pr {
	margin-left: calc(-1 * var(--content-space));
	margin-right: calc(-1 * var(--content-space));
}
.pr a {
	text-decoration: none;display: block;
	text-align: right;
	padding: 0.5rem 1rem;
	font-size: 0.8rem;
	background: #555;
	color: #ccc;
}
.pr a::before {
	font-family: "Font Awesome 6 Free";
	content: "\e2ca";
	font-weight: bold;
	margin-right: 0.5em;
}


/*お知らせブロック
---------------------------------------------------------------------------*/

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

	/*ブロック全体*/
	.new {
		display: grid;
		grid-template-columns: auto 1fr;
	}
	
	/*日付の右側にスペースを作る*/
	.new dt {
		margin-right: 2rem;
	}

	}/*追加指定ここまで*/


/*bg1背景
---------------------------------------------------------------------------*/
.bg1 {
	background: #381300;	/*背景色*/
	margin-left: calc(-1 * var(--content-space));
	margin-right: calc(-1 * var(--content-space));
}
.bg1 section {
	margin-left: var(--content-space);
	margin-right: var(--content-space);
	padding-top: var(--content-space);
	padding-bottom: var(--content-space);
}
.bg1 section h2:first-child {
	margin-top: 0;
}


/*PAGE TOP（↑）設定
---------------------------------------------------------------------------*/
.pagetop-show {display: block;}

/*ボタンの設定*/
.pagetop a {
	display: block;text-decoration: none;text-align: center;z-index: 99;
	animation: opa1 1s 0.4s both;
	position: fixed;	/*スクロールに追従しない(固定で表示)為の設定*/
	right: 20px;		/*右からの配置場所指定*/
	bottom: 20px;		/*下からの配置場所指定*/
	color: #fff;		/*文字色*/
	font-size: 1.5rem;	/*文字サイズ*/
	background: rgba(0,0,0,0.2);	/*背景色。0,0,0は黒の事で0.2は色が20%出た状態。*/
	width: 60px;		/*幅*/
	line-height: 60px;	/*高さ*/
	border-radius: 50%;	/*円形にする*/
}


/*その他
---------------------------------------------------------------------------*/
.clearfix::after {content: "";display: block;clear: both;}
.color-check, .color-check a {color: #c02340 !important;}
.l {text-align: left !important;}
.c {text-align: center !important;}
.r {text-align: right !important;}
.ws {width: 95%;display: block;}
.wl {width: 95%;display: block;}
.padding0 {padding: 0 !important;}
.mb0 {margin-bottom: 0px !important;}
.mb3rem {margin-bottom: 3rem !important;}
.mb30 {margin-bottom: 30px !important;}
.look {display: inline-block;padding: 0px 10px;background: rgba(255,255,255,0.4); color: #fff; border-radius: 3px;margin: 5px 0; word-break: break-all;}
.look .color-check {color: yellow !important;}
.small {font-size: 0.75em;}
.large {font-size: 2em; letter-spacing: 0.1em;}
.block {display: block !important;}


/*GRILL末松 共通フッター
---------------------------------------------------------------------------*/
.site-footer {
	margin-top: clamp(70px, 9vw, 140px);
	margin-left: calc(-1 * var(--content-space));
	margin-right: calc(-1 * var(--content-space));
	background:
		linear-gradient(135deg, rgba(147, 0, 25, 0.18), transparent 42%),
		#0d0d0d;
	border-top: 1px solid rgba(180, 32, 55, 0.55);
	color: #f5f0e8;
	text-align: left;
}
.site-footer a {
	text-decoration: none;
}
.footer-shell {
	width: min(1180px, 100%);
	margin: 0 auto;
	padding: clamp(55px, 7vw, 90px) max(24px, var(--content-space)) 28px;
}
.footer-main {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1.1fr);
	gap: clamp(36px, 6vw, 90px);
	align-items: start;
}
.footer-logo {
	display: inline-block;
	width: min(125px, 36vw);
	margin-bottom: 16px;
}
.footer-logo img {
	display: block;
	width: 100%;
}
.footer-kicker {
	margin-bottom: 18px;
	color: #c89768;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.78rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
}
.footer-address {
	margin-bottom: 20px;
	font-style: normal;
	line-height: 1.9;
}
.footer-address a {
	display: inline-block;
	margin-top: 4px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.35rem;
	letter-spacing: 0.04em;
}
.footer-hours {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 6px 18px;
	margin-bottom: 26px;
	font-size: 0.9rem;
}
.footer-hours dt {
	color: #c89768;
	letter-spacing: 0.08em;
}
.footer-hours dd a {
	color: inherit;
	text-decoration-color: rgba(200, 151, 104, 0.58);
	text-underline-offset: 4px;
}
.footer-hours dd a:hover,
.footer-hours dd a:focus-visible {
	color: #d7b47c;
	opacity: 1;
}
.top-calendar-heading {
	scroll-margin-top: 24px;
}
.footer-actions {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}
.footer-action {
	display: flex;
	gap: 9px;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 10px 12px;
	border: 1px solid rgba(255, 255, 255, 0.34);
	font-size: 0.82rem;
	letter-spacing: 0.06em;
}
.footer-action:hover {
	background: var(--button-gold);
	border-color: var(--button-gold);
	opacity: 1;
}
.footer-map {
	min-width: 0;
}
.footer-map-frame {
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, 0.16);
	aspect-ratio: 16 / 10;
	background: #191919;
}
.footer-map iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	filter: grayscale(0.7) contrast(1.05);
}
.footer-map-link {
	display: inline-flex;
	gap: 8px;
	align-items: center;
	margin-top: 12px;
	color: #d9c8b6;
	font-size: 0.82rem;
	letter-spacing: 0.08em;
}
.footer-nav-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 30px;
	margin-top: clamp(44px, 6vw, 76px);
	padding-top: 34px;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
}
.footer-heading {
	margin-bottom: 14px;
	color: #c89768;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.78rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}
.footer-nav-grid ul {
	display: grid;
	gap: 8px;
	list-style: none;
}
.footer-nav-grid li {
	font-size: 0.88rem;
}
.footer-nav-grid a::before {
	content: "—";
	margin-right: 8px;
	color: #7c6c5c;
}
.footer-bottom {
	display: flex;
	gap: 20px;
	align-items: center;
	justify-content: space-between;
	margin-top: 38px;
	padding-top: 22px;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	color: #8f8982;
	font-size: 0.75rem;
}
.footer-group-link {
	letter-spacing: 0.12em;
}
.mobile-action-bar {
	display: none;
}

@media screen and (max-width: 760px) {
	body {
		padding-bottom: 66px;
	}
	.footer-main {
		grid-template-columns: 1fr;
	}
	.footer-map-frame {
		aspect-ratio: 4 / 3;
	}
	.footer-nav-grid {
		grid-template-columns: 1fr 1fr;
	}
	.footer-nav-grid nav:last-child {
		grid-column: 1 / -1;
	}
	.footer-bottom {
		align-items: flex-start;
		flex-direction: column;
	}
	.mobile-action-bar {
		position: fixed;
		z-index: 100;
		right: 0;
		bottom: 0;
		left: 0;
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		background: rgba(10, 10, 10, 0.97);
		border-top: 1px solid rgba(255, 255, 255, 0.18);
		color: #fff;
	}
	.mobile-action-bar a {
		display: flex;
		gap: 2px;
		align-items: center;
		justify-content: center;
		flex-direction: column;
		min-height: 66px;
		border-right: 1px solid rgba(255, 255, 255, 0.12);
		background: #15130f;
		color: #d1ad78;
		text-decoration: none;
		font-size: 0.68rem;
	}
	.mobile-action-bar a:last-child {
		border-right: 0;
	}
	.mobile-action-bar i {
		font-size: 1.15rem;
	}
	.mobile-action-bar .reserve {
		background: #15130f;
		color: #d1ad78;
	}
	.mobile-action-bar .reserve:hover,
	.mobile-action-bar .reserve:active,
	.mobile-action-bar .reserve:focus-visible,
	.mobile-action-bar a:hover,
	.mobile-action-bar a:active,
	.mobile-action-bar a:focus-visible {
		background: var(--button-gold-hover);
		color: #fff;
	}
	.pagetop a {
		bottom: 80px;
	}
}

@media screen and (max-width: 480px) {
	.footer-shell {
		padding-right: 20px;
		padding-left: 20px;
	}
	.footer-actions,
	.footer-nav-grid {
		grid-template-columns: 1fr;
	}
	.footer-nav-grid nav:last-child {
		grid-column: auto;
	}
}


/*TOPページ
---------------------------------------------------------------------------*/
.home {
	background: #0b0b0b;
	color: #f6f1e9;
}
.home #container {
	display: block;
	padding: 0;
}
.site-header {
	position: relative;
	z-index: 10;
	display: flex;
	gap: 36px;
	align-items: center;
	justify-content: space-between;
	min-height: 88px;
	padding: 16px clamp(24px, 5vw, 76px);
	background: #0b0b0b;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
body:not(.home) .site-header {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	margin: 0;
	background: linear-gradient(180deg, rgba(7, 7, 7, 0.82), rgba(7, 7, 7, 0));
	border-bottom: 0;
}
.home .top-header {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	margin: 0;
	background: linear-gradient(180deg, rgba(7, 7, 7, 0.76), rgba(7, 7, 7, 0));
	border-bottom: 0;
}
.site-header #logo img {
	width: clamp(96px, 8.5vw, 120px);
}
.large-screen .site-header #menubar ul {
	gap: clamp(0.75rem, 1.35vw, 1.65rem);
}
.large-screen .site-header #menubar a {
	position: relative;
	padding: 8px 0;
	color: #e8e1d8;
	font-size: 0.78rem;
	letter-spacing: 0.07em;
}
.large-screen .site-header #menubar a::after {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	width: 0;
	height: 1px;
	margin: auto;
	background: #c89768;
	content: "";
	transition: width 0.3s;
}
.large-screen .site-header #menubar a:hover,
.large-screen .site-header #menubar a.is-current {
	color: #fff;
	opacity: 1;
}
.large-screen .site-header #menubar a:hover::after,
.large-screen .site-header #menubar a.is-current::after {
	width: 100%;
}
.large-screen .site-header #menubar .btn a {
	margin: 0;
	padding: 8px 0;
	background: transparent !important;
	border: 0;
	border-radius: 0;
	color: #fff !important;
}

.top-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	height: min(820px, 100svh);
	min-height: 620px;
	margin: 0;
	background: #130c0a;
}
@keyframes topHeroFade {
	0% {opacity: 0;}
	3% {opacity: 1;}
	18% {opacity: 1;}
	22% {opacity: 0;}
	100% {opacity: 0;}
}
@keyframes topHeroPanRight {
	0% {transform: scale(1.1) translateX(-2.2%);}
	100% {transform: scale(1.1) translateX(2.2%);}
}
@keyframes topHeroPanLeft {
	0% {transform: scale(1.1) translateX(2.2%);}
	100% {transform: scale(1.1) translateX(-2.2%);}
}
.top-hero-image,
.top-hero-shade {
	position: absolute;
	inset: 0;
}
.top-hero-image {
	overflow: hidden;
}
.top-hero-slide {
	position: absolute;
	inset: 0;
	margin: 0;
	opacity: 0;
	animation: topHeroFade 40s ease-in-out infinite;
	will-change: opacity;
}
.top-hero-slide:nth-child(1) {animation-delay: -1s;}
.top-hero-slide:nth-child(2) {animation-delay: 7s;}
.top-hero-slide:nth-child(3) {animation-delay: 15s;}
.top-hero-slide:nth-child(4) {animation-delay: 23s;}
.top-hero-slide:nth-child(5) {animation-delay: 31s;}
.top-hero-slide img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 54%;
	animation: topHeroPanRight 16s linear infinite alternate;
	will-change: transform;
}
.top-hero-slide:nth-child(even) img {
	animation-name: topHeroPanLeft;
}
.top-hero-slide:nth-child(3) img {
	object-position: center 46%;
}
.top-hero-slide:nth-child(4) img {
	object-position: center 50%;
}
.top-hero-shade {
	background:
		linear-gradient(90deg, rgba(0, 0, 0, 0.86) 0%, rgba(0, 0, 0, 0.42) 48%, rgba(0, 0, 0, 0.12) 72%),
		linear-gradient(0deg, rgba(0, 0, 0, 0.66) 0%, transparent 48%);
}
.top-hero-content {
	position: relative;
	z-index: 1;
	width: min(1180px, calc(100% - 48px));
	margin: 0 auto;
	padding: clamp(64px, 9vh, 110px) 0;
}
.top-eyebrow,
.top-section-label {
	color: #c89768;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.72rem;
	letter-spacing: 0.28em;
	line-height: 1.5;
	text-transform: uppercase;
}
.top-hero h1 {
	margin: 22px 0 24px;
	color: #fff;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: clamp(3.7rem, 8vw, 7.5rem);
	font-weight: 400;
	letter-spacing: 0.01em;
	line-height: 0.98;
	text-shadow: 0 4px 28px rgba(0, 0, 0, 0.34);
}
.top-hero h1 span {
	display: block;
	white-space: nowrap;
}
.top-hero-lead {
	margin: 0;
	color: rgba(255, 255, 255, 0.88);
	font-size: clamp(0.92rem, 1.3vw, 1.05rem);
	letter-spacing: 0.08em;
	line-height: 2;
}
.top-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 34px;
}
.top-button {
	display: inline-flex;
	gap: 20px;
	align-items: center;
	justify-content: center;
	min-width: 210px;
	min-height: 54px;
	padding: 12px 22px;
	border: 1px solid rgba(255, 255, 255, 0.52);
	color: #fff;
	font-size: 0.78rem;
	letter-spacing: 0.1em;
	text-decoration: none;
}
.top-button:hover {
	background: #fff;
	color: #111;
	opacity: 1;
}
.top-button-primary {
	background: var(--button-gold);
	border-color: var(--button-gold);
}
.top-button-primary:hover {
	background: var(--button-gold-hover);
	border-color: var(--button-gold-hover);
	color: #fff;
}
.top-hero-side {
	position: absolute;
	z-index: 1;
	right: clamp(18px, 2.5vw, 38px);
	bottom: 64px;
	margin: 0;
	color: rgba(255, 255, 255, 0.58);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.65rem;
	letter-spacing: 0.24em;
	transform: rotate(90deg) translateX(100%);
	transform-origin: right bottom;
}

.top-main {
	background: #f1ede6;
	color: #1b1917;
}
.top-main section {
	margin: 0;
}
.top-intro {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(320px, 0.72fr);
	gap: clamp(60px, 10vw, 150px);
	align-items: end;
	width: min(1120px, calc(100% - 48px));
	margin: 0 auto !important;
	padding: clamp(88px, 11vw, 160px) 0 clamp(72px, 9vw, 126px);
}
.top-intro h2,
.top-section-heading h2,
.top-space h2,
.top-news h2 {
	margin: 18px 0 0;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: clamp(2.2rem, 4.8vw, 4.2rem);
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 1.35;
}
.top-intro h2 span,
.top-section-heading h2 span,
.top-space h2 span {
	display: block;
	white-space: nowrap;
}
.top-intro-copy {
	padding-bottom: 8px;
}
.top-intro-copy > p {
	margin: 0 0 28px;
	color: #5e5851;
	font-size: 0.95rem;
	line-height: 2.25;
}
.top-text-link,
.top-card-link {
	display: inline-flex;
	gap: 14px;
	align-items: center;
	color: #930019;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.78rem;
	letter-spacing: 0.11em;
	text-decoration: none;
	text-transform: uppercase;
}
.top-text-link:hover,
.top-card-link:hover {
	gap: 20px;
	opacity: 1;
}
.top-facts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	background: #12100e;
	color: #e9e2d9;
	border-top: 1px solid #2c2722;
	border-bottom: 1px solid #2c2722;
}
.top-facts p {
	display: flex;
	gap: 12px;
	align-items: center;
	justify-content: center;
	min-height: 92px;
	margin: 0;
	padding: 20px;
	border-right: 1px solid #2c2722;
	font-size: 0.82rem;
	letter-spacing: 0.06em;
}
.top-facts p:last-child {
	border-right: 0;
}
.top-facts span {
	color: #c89768;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.67rem;
	letter-spacing: 0.18em;
}

.top-menu {
	padding: clamp(90px, 11vw, 160px) 0;
}
.top-section-heading {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 0.62fr);
	gap: clamp(50px, 9vw, 130px);
	align-items: end;
	width: min(1120px, calc(100% - 48px));
	margin: 0 auto clamp(54px, 7vw, 90px);
}
.top-section-heading > p {
	margin: 0 0 8px;
	color: #655f58;
	font-size: 0.92rem;
	line-height: 2.1;
}
.top-menu-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(20px, 3vw, 42px);
	width: min(1240px, calc(100% - 48px));
	margin: 0 auto;
}
.top-menu-card {
	min-width: 0;
}
.top-menu-card:nth-child(2) {
	margin-top: 72px;
}
.top-menu-card > a {
	display: block;
	color: #1b1917;
	text-decoration: none;
}
.top-menu-card figure {
	position: relative;
	overflow: hidden;
	aspect-ratio: 4 / 5;
	background: #211915;
}
.top-menu-card figure::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(0, 0, 0, 0.25), transparent 45%);
	content: "";
}
.top-menu-card img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.8s ease;
}
.top-menu-card > a:hover {
	opacity: 1;
}
.top-menu-card > a:hover img {
	transform: scale(1.045);
}
.top-menu-card-body {
	position: relative;
	padding: 28px 4px 0 42px;
}
.top-menu-number {
	position: absolute;
	top: 29px;
	left: 0;
	margin: 0;
	color: #a1998f;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.72rem;
}
.top-menu-card h3 {
	margin: 0 0 12px;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: 1.25rem;
	font-weight: 400;
	line-height: 1.4;
}
.top-menu-card h3 span {
	display: block;
	margin-bottom: 3px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.75rem, 3vw, 2.7rem);
	letter-spacing: 0.03em;
}
.top-menu-card-body > p:not(.top-menu-number) {
	min-height: 3.6em;
	margin: 0 0 20px;
	color: #706961;
	font-size: 0.82rem;
	line-height: 1.8;
}

.top-space {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(380px, 0.8fr);
	min-height: 620px;
	background:
		linear-gradient(145deg, rgba(147, 0, 25, 0.19), transparent 46%),
		#11100f;
	color: #f5f0e8;
}
.top-space figure {
	min-height: 100%;
}
.top-space figure img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.top-space-body {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	flex-direction: column;
	padding: clamp(60px, 8vw, 120px) clamp(36px, 4vw, 72px);
}
.top-space h2 {
	margin-bottom: 28px;
	font-size: clamp(2.1rem, 3.2vw, 3.5rem);
}
.top-space-body > p:not(.top-section-label) {
	margin: 0 0 34px;
	color: #c9c0b6;
	font-size: 0.9rem;
	line-height: 2.15;
}
.top-space .top-button {
	min-width: 200px;
}

.top-news {
	display: grid;
	grid-template-columns: minmax(200px, 0.38fr) minmax(0, 1fr);
	gap: clamp(40px, 8vw, 110px);
	width: min(1120px, calc(100% - 48px));
	margin: 0 auto !important;
	padding: clamp(80px, 10vw, 140px) 0;
}
.top-news h2 {
	font-size: clamp(2rem, 3vw, 3.2rem);
}
.top-news dl {
	display: grid;
	grid-template-columns: auto 1fr;
	align-content: center;
	margin: 0;
	border-top: 1px solid #cfc7bd;
}
.top-news dt,
.top-news dd {
	padding: 24px 4px;
	border-bottom: 1px solid #cfc7bd;
}
.top-news dt {
	padding-right: 34px;
	color: #930019;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.82rem;
	letter-spacing: 0.06em;
}
.top-news dd {
	color: #514c46;
	font-size: 0.9rem;
}

.home .site-footer {
	margin: 0;
}
.home .pr {
	margin: 0;
}

@media screen and (max-width: 899px) {
	.site-header {
		min-height: 76px;
		padding: 14px 22px;
	}
	.site-header #logo img {
		width: 100px;
	}
	.small-screen .site-header #menubar {
		background:
			linear-gradient(150deg, rgba(147, 0, 25, 0.2), transparent 42%),
			#0b0b0b;
	}
	.small-screen .site-header #menubar a {
		border-color: rgba(255, 255, 255, 0.2);
		border-radius: 0;
	}
	.small-screen .site-header #menubar a.is-current {
		border-color: #c89768;
		color: #c89768;
	}
	.top-hero {
		height: min(780px, 100svh);
		min-height: 620px;
	}
	.top-hero-shade {
		background:
			linear-gradient(90deg, rgba(0, 0, 0, 0.77), rgba(0, 0, 0, 0.22)),
			linear-gradient(0deg, rgba(0, 0, 0, 0.72), transparent 62%);
	}
	.top-hero-side {
		display: none;
	}
	.top-intro,
	.top-section-heading {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.top-menu-card:nth-child(2) {
		margin-top: 36px;
	}
	.top-space {
		grid-template-columns: 1.05fr 0.95fr;
	}
	.top-space-body {
		padding: 50px 36px;
	}
}

@media screen and (max-width: 700px) {
	.top-hero-content {
		width: calc(100% - 40px);
		padding-bottom: 58px;
	}
	.top-hero h1 {
		font-size: clamp(3.15rem, 16vw, 5rem);
	}
	.top-hero-lead br {
		display: none;
	}
	.top-hero-actions {
		display: grid;
		grid-template-columns: 1fr 1fr;
	}
	.top-button {
		min-width: 0;
		gap: 10px;
	}
	.top-intro,
	.top-section-heading,
	.top-menu-grid,
	.top-news {
		width: calc(100% - 40px);
	}
	.top-intro {
		padding-top: 80px;
		padding-bottom: 72px;
	}
	.top-intro h2,
	.top-section-heading h2 {
		font-size: clamp(2rem, 9vw, 3rem);
	}
	.top-facts {
		grid-template-columns: 1fr;
		padding: 10px 20px;
	}
	.top-facts p {
		justify-content: space-between;
		min-height: 60px;
		padding: 12px 0;
		border-right: 0;
		border-bottom: 1px solid #2c2722;
	}
	.top-facts p:last-child {
		border-bottom: 0;
	}
	.top-menu {
		padding-top: 84px;
		padding-bottom: 90px;
	}
	.top-menu-grid {
		grid-template-columns: 1fr;
		gap: 64px;
	}
	.top-menu-card:nth-child(2) {
		margin-top: 0;
	}
	.top-menu-card figure {
		aspect-ratio: 5 / 4;
	}
	.top-menu-card-body {
		padding-top: 22px;
	}
	.top-menu-number {
		top: 23px;
	}
	.top-menu-card-body > p:not(.top-menu-number) {
		min-height: auto;
	}
	.top-space {
		grid-template-columns: 1fr;
		min-height: 0;
	}
	.top-space figure {
		min-height: 0;
		aspect-ratio: 4 / 3;
	}
	.top-space-body {
		padding: 68px 24px 76px;
	}
	.top-space h2 {
		font-size: clamp(2rem, 8.5vw, 3rem);
	}
	.top-news {
		grid-template-columns: 1fr;
		gap: 32px;
		padding-top: 76px;
		padding-bottom: 86px;
	}
	.top-news dl {
		grid-template-columns: 1fr;
	}
	.top-news dt {
		padding-bottom: 4px;
		border-bottom: 0;
	}
	.top-news dd {
		padding-top: 4px;
	}
}

@media screen and (max-width: 440px) {
	.top-hero {
		min-height: 650px;
	}
	.top-eyebrow {
		font-size: 0.62rem;
		letter-spacing: 0.19em;
	}
	.top-hero h1 {
		font-size: clamp(3rem, 15vw, 4.15rem);
	}
	.top-hero-actions {
		grid-template-columns: 1fr;
	}
	.top-hero-actions .top-button {
		min-height: 50px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.top-hero-slide img {
		animation: none;
		transform: scale(1.06);
	}
}


/*ディナーページ
---------------------------------------------------------------------------*/
.dinner-page,
.lunch-page,
.wine-page {
	background: #0b0b0b;
	color: #f5f0e8;
}
.dinner-page .dinner-main,
.lunch-page .dinner-main,
.wine-page .dinner-main {
	margin-right: calc(-1 * var(--content-space));
	margin-left: calc(-1 * var(--content-space));
	background: #f1ede6;
	color: #1b1917;
}
.dinner-page .dinner-main section,
.lunch-page .dinner-main section,
.wine-page .dinner-main section {
	margin: 0;
}
.dinner-page .site-footer,
.lunch-page .site-footer,
.wine-page .site-footer {
	margin-top: 0;
}
.dinner-section-label,
.dinner-eyebrow {
	margin: 0;
	color: #c89768;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.72rem;
	letter-spacing: 0.26em;
	line-height: 1.5;
	text-transform: uppercase;
}
.dinner-photo-guide {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	margin: 0;
	background:
		radial-gradient(circle at 78% 28%, rgba(200, 151, 104, 0.22), transparent 31%),
		linear-gradient(135deg, #2b1718 0%, #151210 50%, #321016 100%);
	color: #f4eee6;
}
.dinner-photo-guide::before {
	position: absolute;
	inset: 18px;
	border: 1px dashed rgba(255, 255, 255, 0.24);
	content: "";
}
.dinner-photo-guide::after {
	position: absolute;
	width: 48%;
	height: 140%;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.045), transparent);
	content: "";
	transform: rotate(24deg);
}
.dinner-photo-guide.has-photo::before,
.dinner-photo-guide.has-photo::after {
	display: none;
}
.dinner-photo-guide.has-photo > img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.dinner-photo-guide.has-photo > picture {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
}
.dinner-photo-guide.has-photo > picture > img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.dinner-photo-hero > img {
	object-position: center 56%;
}
.dinner-photo-course > img {
	object-position: center 52%;
}
.dinner-photo-steak > img {
	object-position: 48% center;
}
.dinner-photo-rice > img {
	object-position: center center;
}
.dinner-photo-appetizer > img {
	object-position: center 54%;
}
.lunch-photo-hero > img,
.lunch-photo-hero > picture > img {
	object-position: center 62%;
}
.lunch-photo-course > img {
	object-position: center 52%;
}
.lunch-photo-steak > img {
	object-position: center center;
}
.lunch-photo-hamburg > img {
	object-position: 58% center;
}
.lunch-photo-bowl > img {
	object-position: center 52%;
}
.wine-photo-bottle > img {
	object-position: center 46%;
}
.wine-photo-hero > img {
	object-position: center center;
}
.wine-photo-glass > img {
	object-position: 43% center;
}
.wine-photo-highball {
	min-height: clamp(360px, 66vw, 820px);
}
.wine-photo-highball > img {
	object-position: 70% center;
}
.dinner-photo-guide > div {
	position: relative;
	z-index: 1;
	width: min(540px, calc(100% - 80px));
	text-align: center;
}
.dinner-photo-number {
	display: block;
	margin-bottom: 12px;
	color: #c89768;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.7rem;
	letter-spacing: 0.2em;
}
.dinner-photo-guide strong {
	display: block;
	margin-bottom: 12px;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: clamp(1.25rem, 2vw, 1.8rem);
	font-weight: 400;
	letter-spacing: 0.05em;
}
.dinner-photo-guide p {
	margin: 0 0 9px;
	color: rgba(255, 255, 255, 0.72);
	font-size: 0.82rem;
	line-height: 1.8;
}
.dinner-photo-guide small {
	color: rgba(255, 255, 255, 0.48);
	font-size: 0.68rem;
	letter-spacing: 0.04em;
}
.dinner-photo-guide-light {
	background:
		radial-gradient(circle at 80% 25%, rgba(147, 0, 25, 0.12), transparent 30%),
		linear-gradient(135deg, #d9d0c5, #b9aa9c);
	color: #211c18;
}
.dinner-photo-guide-light::before {
	border-color: rgba(30, 24, 20, 0.24);
}
.dinner-photo-guide-light p {
	color: rgba(30, 24, 20, 0.7);
}
.dinner-photo-guide-light small {
	color: rgba(30, 24, 20, 0.56);
}
.dinner-photo-guide-hero {
	position: absolute;
	inset: 0;
}
.dinner-photo-guide-wide {
	width: min(1240px, calc(100% - 48px));
	min-height: clamp(300px, 38vw, 500px);
	margin: 0 auto clamp(42px, 6vw, 76px);
}
.dinner-photo-guide-tall {
	min-height: 650px;
}

.dinner-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	min-height: clamp(640px, 78vh, 820px);
	background: #1a1110;
}
.dinner-hero-shade {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(0, 0, 0, 0.83), rgba(0, 0, 0, 0.28) 65%, rgba(0, 0, 0, 0.42)),
		linear-gradient(0deg, rgba(0, 0, 0, 0.62), transparent 52%);
}
.dinner-hero .dinner-photo-guide > div {
	position: absolute;
	top: 50%;
	right: clamp(20px, 7vw, 110px);
	width: min(460px, 42vw);
	margin: 0;
	transform: translateY(-50%);
}
.dinner-hero-content {
	position: relative;
	z-index: 2;
	width: min(1180px, calc(100% - 48px));
	margin: 0 auto;
	padding: clamp(74px, 9vw, 120px) 0;
}
.dinner-hero h1 {
	margin: 18px 0 26px;
	color: #fff;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: clamp(3.5rem, 7.5vw, 7rem);
	font-weight: 400;
	letter-spacing: 0.02em;
	line-height: 1.05;
}
.dinner-hero h1 span {
	display: block;
	white-space: nowrap;
}
.dinner-hero-content > p:not(.dinner-eyebrow) {
	margin: 0 0 34px;
	color: rgba(255, 255, 255, 0.84);
	font-size: 0.96rem;
	letter-spacing: 0.06em;
	line-height: 2.1;
}
.dinner-hero .top-button {
	min-width: 220px;
}

.dinner-local-nav {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 1px;
	background: #292420;
	border-top: 1px solid #292420;
	border-bottom: 1px solid #292420;
	color: #eee7de;
}
.dinner-local-nav a {
	display: flex;
	gap: 10px;
	align-items: center;
	justify-content: center;
	min-width: 0;
	min-height: 84px;
	padding: 14px;
	background: #11100f;
	font-size: 0.82rem;
	letter-spacing: 0.07em;
	text-align: center;
	text-decoration: none;
	word-break: keep-all;
}
.dinner-local-nav span {
	flex: 0 0 auto;
	color: #c89768;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.68rem;
}
.dinner-local-nav a:hover,
.dinner-local-nav a:focus-visible {
	background: var(--button-gold-hover);
	color: #fff;
	opacity: 1;
}
.dinner-local-nav a:hover span,
.dinner-local-nav a:focus-visible span {
	color: var(--nav-hover-red);
	font-weight: 700;
}

.dinner-intro {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(320px, 0.72fr);
	gap: clamp(60px, 10vw, 150px);
	align-items: end;
	width: min(1120px, calc(100% - 48px));
	margin: 0 auto !important;
	padding: clamp(90px, 11vw, 160px) 0;
}
.dinner-intro h2,
.dinner-section-heading h2,
.dinner-information h2 {
	margin: 18px 0 0;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: clamp(2.35rem, 4.8vw, 4.3rem);
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 1.34;
	word-break: keep-all;
}
.dinner-intro h2 span {
	display: block;
	white-space: nowrap;
}
.dinner-intro-copy > p {
	margin: 0 0 30px;
	color: #5e5851;
	font-size: 0.94rem;
	line-height: 2.25;
}
.dinner-intro-copy dl {
	margin: 0;
	border-top: 1px solid #cfc7bd;
}
.dinner-intro-copy dl div {
	display: grid;
	grid-template-columns: 130px 1fr;
	padding: 14px 0;
	border-bottom: 1px solid #cfc7bd;
}
.dinner-intro-copy dt {
	color: #930019;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.68rem;
	letter-spacing: 0.12em;
}
.dinner-intro-copy dd {
	color: #514b45;
	font-size: 0.84rem;
}

.dinner-section-heading {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 0.62fr);
	gap: clamp(50px, 9vw, 130px);
	align-items: end;
	width: min(1120px, calc(100% - 48px));
	margin: 0 auto clamp(50px, 7vw, 84px);
}
.dinner-section-heading > p {
	margin: 0 0 9px;
	color: #686159;
	font-size: 0.9rem;
	line-height: 2.1;
}
.dinner-section-heading-light h2 {
	color: #fff;
}
.dinner-section-heading-light > p {
	color: #bdb3a8;
}

.dinner-course,
.dinner-signature {
	padding: clamp(90px, 11vw, 160px) 0;
	background:
		linear-gradient(145deg, rgba(147, 0, 25, 0.18), transparent 38%),
		#11100f;
	color: #f4eee6;
	scroll-margin-top: 20px;
}
.dinner-course-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	width: min(1240px, calc(100% - 48px));
	margin: 0 auto;
	background: rgba(255, 255, 255, 0.13);
	border: 1px solid rgba(255, 255, 255, 0.13);
}
.dinner-course-card {
	padding: clamp(30px, 3.5vw, 52px);
	background: #151412;
}
.dinner-course-card-featured {
	background: #291115;
}
.dinner-course-no {
	margin: 0 0 22px;
	color: #c89768;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.7rem;
	letter-spacing: 0.17em;
	text-transform: uppercase;
}
.dinner-course-card h3 {
	min-height: 3.2em;
	margin: 0 0 18px;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: clamp(1.25rem, 2vw, 1.7rem);
	font-weight: 400;
	line-height: 1.6;
}
.dinner-course-price {
	margin: 0;
	color: #fff;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2.3rem, 4vw, 3.5rem);
	line-height: 1;
}
.dinner-course-price small {
	margin-left: 8px;
	color: #a99f94;
	font-family: "LINE Seed JP", sans-serif;
	font-size: 0.68rem;
}
.dinner-course-count {
	margin: 20px 0 18px;
	padding-bottom: 13px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.18);
	color: #d5cbc0;
	font-size: 0.78rem;
}
.dinner-course-card ul {
	display: grid;
	gap: 7px;
	margin: 0;
	padding: 0;
	color: #c8beb3;
	list-style: none;
	font-size: 0.78rem;
	line-height: 1.65;
}
.dinner-course-card li::before {
	margin-right: 8px;
	color: #765e4d;
	content: "—";
}
.dinner-note {
	width: min(1240px, calc(100% - 48px));
	margin: 16px auto 0;
	color: #8f867e;
	font-size: 0.72rem;
	text-align: right;
}

.dinner-steak,
.dinner-alacarte {
	padding: clamp(90px, 11vw, 160px) 0;
	scroll-margin-top: 20px;
}
.dinner-steak-layout,
.dinner-signature-layout {
	display: grid;
	grid-template-columns: minmax(360px, 0.8fr) minmax(0, 1.2fr);
	gap: clamp(44px, 7vw, 100px);
	align-items: stretch;
	width: min(1180px, calc(100% - 48px));
	margin: 0 auto;
}
.dinner-price-list {
	display: grid;
	align-content: center;
	margin: 0;
	border-top: 1px solid #cfc7bd;
}
.dinner-price-list > div {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 20px;
	align-items: center;
	padding: clamp(18px, 2.3vw, 28px) 4px;
	border-bottom: 1px solid #cfc7bd;
}
.dinner-price-list dt {
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: clamp(1rem, 1.6vw, 1.25rem);
}
.dinner-price-list dt span {
	margin-right: 16px;
	color: #a79e94;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.68rem;
}
.dinner-price-list dd {
	color: #930019;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.6rem, 2.6vw, 2.25rem);
	white-space: nowrap;
}
.dinner-price-list dd small {
	margin-left: 6px;
	color: #756e67;
	font-family: "LINE Seed JP", sans-serif;
	font-size: 0.67rem;
}

.dinner-signature-layout {
	grid-template-columns: minmax(0, 1.2fr) minmax(360px, 0.8fr);
}
.dinner-signature-list {
	display: grid;
	align-content: center;
	border-top: 1px solid rgba(255, 255, 255, 0.17);
}
.dinner-signature-list article {
	display: grid;
	grid-template-columns: 42px 1fr;
	gap: 12px;
	padding: clamp(18px, 2.2vw, 27px) 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.17);
}
.dinner-signature-list article > span {
	padding-top: 3px;
	color: #c89768;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.68rem;
}
.dinner-signature-list h3 {
	margin: 0 0 6px;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: clamp(1rem, 1.8vw, 1.3rem);
	font-weight: 400;
}
.dinner-signature-list p {
	margin: 0;
	color: #a99f95;
	font-size: 0.76rem;
	line-height: 1.7;
}

.dinner-menu-groups {
	width: min(1120px, calc(100% - 48px));
	margin: 0 auto;
	border-top: 1px solid #c7beb4;
}
.dinner-menu-group {
	border-bottom: 1px solid #c7beb4;
}
.dinner-menu-group summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 108px;
	padding: 22px 8px;
	cursor: pointer;
	list-style: none;
}
.dinner-menu-group summary::-webkit-details-marker {
	display: none;
}
.dinner-menu-group summary span {
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: clamp(1.35rem, 2.6vw, 2rem);
}
.dinner-menu-group summary small {
	display: inline-block;
	width: 190px;
	color: #930019;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.67rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}
.dinner-menu-group summary i {
	color: #930019;
	font-size: 0.9rem;
	transition: transform 0.3s;
}
.dinner-menu-group[open] summary i {
	transform: rotate(45deg);
}
.dinner-menu-group dl {
	margin: 0;
	padding: 0 8px 30px 198px;
}
.dinner-menu-group dl > div {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 30px;
	padding: 14px 0;
	border-top: 1px dotted #cbc2b8;
}
.dinner-menu-group dt {
	color: #48433e;
	font-size: 0.84rem;
}
.dinner-menu-group dd {
	color: #6f6861;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.82rem;
	white-space: nowrap;
}
.dinner-tax-note {
	width: min(1120px, calc(100% - 48px));
	margin: 16px auto 0;
	color: #777067;
	font-size: 0.72rem;
	text-align: right;
}

.dinner-information {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(360px, 1fr);
	gap: clamp(60px, 10vw, 150px);
	width: 100%;
	padding: clamp(90px, 11vw, 150px) max(24px, calc((100vw - 1120px) / 2));
	background:
		linear-gradient(135deg, rgba(147, 0, 25, 0.32), transparent 46%),
		#11100f;
	color: #f4eee6;
}
.dinner-information h2 {
	color: #fff;
}
.dinner-information-body dl {
	margin: 0 0 34px;
	border-top: 1px solid rgba(255, 255, 255, 0.18);
}
.dinner-information-body dl > div {
	display: grid;
	grid-template-columns: 110px 1fr;
	padding: 15px 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}
.dinner-information-body dt {
	color: #c89768;
	font-size: 0.78rem;
}
.dinner-information-body dd {
	color: #d6ccc2;
	font-size: 0.85rem;
}
.dinner-information-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

@media screen and (max-width: 1000px) {
	.dinner-course-grid {
		grid-template-columns: 1fr;
	}
	.dinner-course-card h3 {
		min-height: 0;
	}
	.dinner-course-card ul {
		grid-template-columns: 1fr 1fr;
	}
	.dinner-steak-layout,
	.dinner-signature-layout {
		grid-template-columns: minmax(280px, 0.8fr) minmax(0, 1.2fr);
		gap: 40px;
	}
	.dinner-photo-guide-tall {
		min-height: 560px;
	}
}

@media screen and (max-width: 760px) {
	.dinner-hero {
		min-height: 700px;
	}
	.dinner-hero .dinner-photo-guide > div {
		top: 105px;
		right: 0;
		left: 0;
		width: min(440px, calc(100% - 50px));
		margin: 0 auto;
		transform: none;
	}
	.dinner-hero-shade {
		background:
			linear-gradient(0deg, rgba(0, 0, 0, 0.84) 0%, rgba(0, 0, 0, 0.2) 72%),
			linear-gradient(90deg, rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0.2));
	}
	.dinner-hero-content {
		width: calc(100% - 40px);
		padding-bottom: 54px;
	}
	.dinner-hero h1 {
		font-size: min(10.5vw, 4.4rem);
		line-height: 1.34;
	}
	.dinner-hero h1 span {
		white-space: nowrap;
	}
	.dinner-hero-content > p:not(.dinner-eyebrow) br {
		display: none;
	}
	.dinner-local-nav {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.dinner-local-nav a {
		min-width: 0;
	}
	.dinner-intro,
	.dinner-section-heading,
	.dinner-information {
		grid-template-columns: 1fr;
		gap: 34px;
	}
	.dinner-intro,
	.dinner-section-heading,
	.dinner-course-grid,
	.dinner-steak-layout,
	.dinner-signature-layout,
	.dinner-menu-groups,
	.dinner-tax-note,
	.dinner-note {
		width: calc(100% - 40px);
	}
	.dinner-intro {
		padding-top: 80px;
		padding-bottom: 84px;
	}
	.dinner-intro h2,
	.dinner-section-heading h2,
	.dinner-information h2 {
		font-size: clamp(2.15rem, 10vw, 3.3rem);
	}
	.dinner-photo-guide-wide {
		width: calc(100% - 40px);
		min-height: 360px;
	}
	.dinner-course-card {
		padding: 32px 24px;
	}
	.dinner-course-card ul {
		grid-template-columns: 1fr;
	}
	.dinner-steak-layout,
	.dinner-signature-layout {
		grid-template-columns: 1fr;
	}
	.dinner-photo-guide-tall {
		min-height: 460px;
	}
	.dinner-signature-list {
		order: 2;
	}
	.dinner-menu-group summary {
		min-height: 92px;
	}
	.dinner-menu-group summary small {
		display: block;
		width: auto;
		margin-bottom: 3px;
	}
	.dinner-menu-group dl {
		padding-right: 6px;
		padding-left: 6px;
	}
	.dinner-menu-group dl > div {
		grid-template-columns: 1fr;
		gap: 2px;
	}
	.dinner-menu-group dd {
		white-space: normal;
	}
	.dinner-information {
		padding: 82px 20px;
	}
}

@media screen and (max-width: 440px) {
	.dinner-hero h1 {
		font-size: min(10.5vw, 3rem);
	}
	.dinner-hero h1 span {
		white-space: nowrap;
	}
	.dinner-photo-guide > div {
		width: calc(100% - 56px);
	}
	.dinner-photo-guide p {
		font-size: 0.75rem;
	}
	.dinner-intro h2,
	.dinner-section-heading h2,
	.dinner-information h2 {
		font-size: clamp(1.95rem, 9vw, 2.7rem);
	}
	.dinner-intro-copy dl div,
	.dinner-information-body dl > div {
		grid-template-columns: 1fr;
		gap: 3px;
	}
	.dinner-price-list > div {
		grid-template-columns: 1fr;
		gap: 5px;
	}
	.dinner-price-list dd {
		padding-left: 30px;
	}
	.dinner-information-actions {
		display: grid;
	}
}


/*ランチページ（ディナーページの共通レイアウトを継承）
---------------------------------------------------------------------------*/
.lunch-page .dinner-photo-guide {
	background:
		radial-gradient(circle at 76% 26%, rgba(218, 177, 128, 0.28), transparent 32%),
		linear-gradient(135deg, #493126 0%, #211a16 52%, #5a2926 100%);
}
.lunch-page .dinner-photo-guide-light {
	background:
		radial-gradient(circle at 78% 24%, rgba(147, 0, 25, 0.1), transparent 31%),
		linear-gradient(135deg, #e2d7c9, #bca996);
}
.lunch-page .dinner-course,
.lunch-page .dinner-signature,
.lunch-page .dinner-information {
	background:
		linear-gradient(145deg, rgba(177, 111, 60, 0.17), transparent 40%),
		#11100f;
}
.lunch-course-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	max-width: 940px;
}
.lunch-course-option {
	margin: 22px 0 0;
	padding-top: 16px;
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	color: #d6a675;
	font-size: 0.75rem;
}
.lunch-price-list dd {
	text-align: right;
}
.lunch-price-list dd em {
	display: block;
	margin-top: 7px;
	color: #716a63;
	font-family: "LINE Seed JP", sans-serif;
	font-size: 0.7rem;
	font-style: normal;
	letter-spacing: 0.02em;
}
.lunch-steak-selection {
	display: grid;
	grid-template-columns: 190px minmax(0, 1fr);
	gap: 30px 50px;
	width: min(920px, calc(100% - 48px));
	margin: clamp(60px, 8vw, 100px) auto 0;
	padding-top: 40px;
	border-top: 1px solid #cfc7bd;
}
.lunch-steak-selection > .dinner-section-label {
	grid-row: 1 / 3;
}
.lunch-steak-selection dl {
	margin: 0;
}
.lunch-steak-selection dl > div {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 20px;
	padding: 14px 0;
	border-bottom: 1px dotted #c9c0b6;
}
.lunch-steak-selection dt {
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: 0.9rem;
}
.lunch-steak-selection dd {
	color: #930019;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.86rem;
}
.lunch-steak-selection > p:last-child {
	margin: 0;
	color: #766f67;
	font-size: 0.7rem;
	text-align: right;
}
.lunch-signature-list article {
	padding-top: clamp(28px, 3.5vw, 42px);
	padding-bottom: clamp(28px, 3.5vw, 42px);
}
.lunch-signature-list p {
	line-height: 1.9;
}

@media screen and (max-width: 1000px) {
	.lunch-course-grid {
		grid-template-columns: 1fr;
	}
}

@media screen and (max-width: 760px) {
	.lunch-steak-selection {
		grid-template-columns: 1fr;
		gap: 18px;
		width: calc(100% - 40px);
	}
	.lunch-steak-selection > .dinner-section-label {
		grid-row: auto;
	}
}

@media screen and (max-width: 440px) {
	.lunch-price-list dd {
		padding-left: 30px;
		text-align: left;
	}
	.lunch-steak-selection dl > div {
		grid-template-columns: 1fr;
		gap: 3px;
	}
}


/*ワイン・ドリンクページ（共通メニューレイアウトを継承）
---------------------------------------------------------------------------*/
.wine-page .dinner-photo-guide {
	background:
		radial-gradient(circle at 77% 27%, rgba(175, 84, 103, 0.3), transparent 32%),
		linear-gradient(135deg, #39171f 0%, #171213 52%, #4b1622 100%);
}
.wine-page .dinner-photo-guide-light {
	background:
		radial-gradient(circle at 78% 24%, rgba(147, 0, 25, 0.1), transparent 31%),
		linear-gradient(135deg, #ded3c7, #b4a08f);
}
.wine-bottles {
	padding: clamp(90px, 11vw, 160px) 0;
	background:
		linear-gradient(145deg, rgba(147, 0, 25, 0.22), transparent 40%),
		#11100f;
	color: #f4eee6;
	scroll-margin-top: 20px;
}
.wine-bottle-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	width: min(1180px, calc(100% - 48px));
	margin: 0 auto;
	background: rgba(255, 255, 255, 0.14);
	border: 1px solid rgba(255, 255, 255, 0.14);
}
.wine-bottle-card {
	display: grid;
	grid-template-columns: 128px minmax(0, 1fr);
	gap: clamp(22px, 3vw, 40px);
	min-width: 0;
	padding: clamp(24px, 3vw, 38px);
	background: #151311;
}
.wine-label-slot {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	min-height: 180px;
	margin: 0;
	background:
		linear-gradient(155deg, rgba(255, 255, 255, 0.08), transparent 42%),
		#251e1a;
	border: 1px dashed rgba(200, 151, 104, 0.55);
	color: #c89768;
}
.wine-label-slot span {
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.68rem;
	letter-spacing: 0.12em;
}
.wine-label-slot small {
	margin-top: 6px;
	color: #7f746a;
	font-size: 0.62rem;
}
.wine-label-slot.has-image {
	align-self: center;
	display: block;
	overflow: hidden;
	min-height: 0;
	aspect-ratio: 2 / 3;
	background: #0d0c0b;
	border: 1px solid rgba(200, 151, 104, 0.28);
}
.wine-label-slot.has-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.wine-bottle-card > div {
	display: flex;
	justify-content: center;
	flex-direction: column;
	min-width: 0;
}
.wine-type {
	margin: 0 0 8px;
	color: #c89768;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.67rem;
	letter-spacing: 0.17em;
	text-transform: uppercase;
}
.wine-bottle-card h3 {
	margin: 0 0 5px;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: clamp(1.1rem, 1.8vw, 1.4rem);
	font-weight: 400;
}
.wine-bottle-card > div > p:not(.wine-type) {
	margin: 0 0 22px;
	color: #8e847a;
	font-size: 0.75rem;
}
.wine-bottle-card dl {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	margin: auto 0 0;
	padding-top: 14px;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
}
.wine-bottle-card dt {
	color: #8e847a;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.65rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.wine-bottle-card dd {
	color: #f1e9df;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.9rem;
	text-align: right;
}
.wine-edit-note {
	width: min(1180px, calc(100% - 48px));
	margin: 18px auto 0;
	color: #8e847a;
	font-size: 0.7rem;
	text-align: right;
}
.wine-glass,
.wine-drinks {
	padding: clamp(90px, 11vw, 160px) 0;
	scroll-margin-top: 20px;
}
.wine-glass-layout {
	grid-template-columns: minmax(360px, 0.78fr) minmax(0, 1.22fr);
}
.wine-glass-list dd {
	text-align: right;
}
.wine-drinks {
	background: #e8e2da;
}
.wine-drinks #highball {
	scroll-margin-top: 20px;
}
.wine-page .dinner-information {
	background:
		linear-gradient(135deg, rgba(147, 0, 25, 0.36), transparent 48%),
		#11100f;
}
.wine-information-copy {
	margin: 0 0 34px;
	color: #cfc4ba;
	font-size: 0.9rem;
	line-height: 2.1;
}

@media screen and (max-width: 900px) {
	.wine-bottle-grid {
		grid-template-columns: 1fr;
	}
}

@media screen and (max-width: 760px) {
	.wine-bottle-grid,
	.wine-edit-note {
		width: calc(100% - 40px);
	}
	.wine-bottle-card {
		grid-template-columns: 105px minmax(0, 1fr);
		padding: 22px;
	}
	.wine-label-slot {
		min-height: 150px;
	}
	.wine-glass-layout {
		grid-template-columns: 1fr;
	}
}

@media screen and (max-width: 440px) {
	.wine-bottle-card {
		grid-template-columns: 82px minmax(0, 1fr);
		gap: 16px;
		padding: 16px;
	}
	.wine-label-slot {
		min-height: 128px;
	}
	.wine-bottle-card dl {
		align-items: flex-start;
		flex-direction: column;
		gap: 4px;
	}
	.wine-bottle-card dd {
		text-align: left;
	}
}


/*店舗・会社情報／プライバシーポリシー
---------------------------------------------------------------------------*/
.content-page {
	background: #0b0b0b;
	color: #f5f0e8;
}
.content-page .content-main {
	margin-right: calc(-1 * var(--content-space));
	margin-left: calc(-1 * var(--content-space));
	background: #f1ede6;
	color: #1b1917;
}
.content-page .content-main section {
	margin: 0;
}
.content-page .site-footer {
	margin-top: 0;
}
.content-eyebrow,
.content-section-label {
	margin: 0;
	color: #c89768;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.72rem;
	letter-spacing: 0.25em;
	line-height: 1.5;
	text-transform: uppercase;
}
.content-hero {
	display: flex;
	align-items: flex-end;
	min-height: clamp(420px, 55vh, 600px);
	padding: clamp(80px, 10vw, 140px) 24px;
	background:
		linear-gradient(120deg, rgba(147, 0, 25, 0.42), transparent 48%),
		radial-gradient(circle at 82% 28%, rgba(200, 151, 104, 0.15), transparent 26%),
		#11100f;
	color: #f5f0e8;
}
.content-hero > div {
	width: min(1120px, 100%);
	margin: 0 auto;
}
.content-hero h1 {
	margin: 18px 0 24px;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: clamp(3rem, 6vw, 5.8rem);
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 1.15;
}
.content-hero h1 span {
	display: block;
	white-space: nowrap;
}
.content-hero > div > p:not(.content-eyebrow) {
	max-width: 650px;
	margin: 0;
	color: #c9beb3;
	font-size: 0.9rem;
	letter-spacing: 0.05em;
	line-height: 2;
}
.content-local-nav {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1px;
	background: #292420;
	border-top: 1px solid #292420;
	border-bottom: 1px solid #292420;
	color: #eee7de;
}
.content-local-nav a {
	display: flex;
	gap: 10px;
	align-items: center;
	justify-content: center;
	min-width: 0;
	min-height: 82px;
	padding: 14px;
	background: #11100f;
	font-size: 0.82rem;
	letter-spacing: 0.06em;
	text-align: center;
	text-decoration: none;
	word-break: keep-all;
}
.content-local-nav span {
	flex: 0 0 auto;
	color: #c89768;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.67rem;
}
.content-local-nav a:hover,
.content-local-nav a:focus-visible {
	background: var(--button-gold-hover);
	color: #fff;
	opacity: 1;
}
.content-local-nav a:hover span,
.content-local-nav a:focus-visible span {
	color: var(--nav-hover-red);
	font-weight: 700;
}
.legal-local-nav {
	grid-template-columns: repeat(5, minmax(0, 1fr));
}
.content-section-heading {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 0.62fr);
	gap: clamp(50px, 9vw, 130px);
	align-items: end;
	width: min(1120px, calc(100% - 48px));
	margin: 0 auto clamp(50px, 7vw, 82px);
}
.content-section-heading h2 {
	margin: 18px 0 0;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: clamp(2.4rem, 4.8vw, 4.3rem);
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 1.3;
}
.content-section-heading > p {
	margin: 0 0 8px;
	color: #655f58;
	font-size: 0.9rem;
	line-height: 2.1;
}
.content-section-heading-light h2 {
	color: #fff;
}
.content-section-heading-light > p {
	color: #bcb2a7;
}

.company-store,
.company-history {
	padding: clamp(90px, 11vw, 155px) 0;
	scroll-margin-top: 20px;
}
.company-store-grid {
	display: grid;
	grid-template-columns: minmax(360px, 0.9fr) minmax(0, 1.1fr);
	gap: clamp(45px, 8vw, 110px);
	width: min(1180px, calc(100% - 48px));
	margin: 0 auto;
}
.company-data-list,
.company-profile-list {
	margin: 0;
	border-top: 1px solid #ccc3b9;
}
.company-data-list > div,
.company-profile-list > div {
	display: grid;
	grid-template-columns: 125px minmax(0, 1fr);
	gap: 25px;
	padding: 18px 4px;
	border-bottom: 1px solid #ccc3b9;
}
.company-data-list dt,
.company-profile-list dt {
	color: #930019;
	font-size: 0.75rem;
}
.company-data-list dd,
.company-profile-list dd {
	color: #514b45;
	font-size: 0.85rem;
	line-height: 1.9;
}
.company-data-list a {
	text-decoration: none;
}
.company-photo-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 18px;
}
.company-photo-guide {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	min-height: 260px;
	margin: 0;
	padding: 42px;
	background:
		radial-gradient(circle at 78% 28%, rgba(200, 151, 104, 0.2), transparent 30%),
		linear-gradient(135deg, #2d1a18, #141210);
	border: 1px dashed rgba(255, 255, 255, 0.24);
	color: #f3ede5;
	text-align: center;
}
.company-photo-guide.has-photo {
	position: relative;
	overflow: hidden;
	height: 260px;
	min-height: 260px;
	padding: 0;
	border: 0;
}
.company-photo-guide.has-photo > img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.company-photo-guide > span {
	margin-bottom: 10px;
	color: #c89768;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.67rem;
	letter-spacing: 0.17em;
}
.company-photo-guide strong {
	margin-bottom: 8px;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: 1.25rem;
	font-weight: 400;
}
.company-photo-guide p {
	margin: 0 0 7px;
	color: #bfb4a9;
	font-size: 0.76rem;
	line-height: 1.8;
}
.company-photo-guide small {
	color: #817970;
	font-size: 0.66rem;
}
.company-store-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	width: min(1180px, calc(100% - 48px));
	margin: clamp(42px, 6vw, 72px) auto 0;
}
.company-dark-button {
	background: #171412;
	border-color: #171412;
}

.company-profile {
	padding: clamp(90px, 11vw, 155px) 0;
	background:
		linear-gradient(145deg, rgba(147, 0, 25, 0.2), transparent 42%),
		#11100f;
	color: #f4eee6;
	scroll-margin-top: 20px;
}
.company-profile-list {
	width: min(1120px, calc(100% - 48px));
	margin: 0 auto;
	border-color: rgba(255, 255, 255, 0.17);
}
.company-profile-list > div {
	grid-template-columns: 180px minmax(0, 1fr);
	padding: 23px 4px;
	border-color: rgba(255, 255, 255, 0.17);
}
.company-profile-list dt {
	color: #c89768;
}
.company-profile-list dd {
	color: #d1c7bc;
}

.company-history {
	scroll-margin-top: 20px;
}
.company-timeline {
	position: relative;
	width: min(920px, calc(100% - 48px));
	margin: 0 auto;
	padding: 0;
	list-style: none;
}
.company-timeline::before {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 128px;
	width: 1px;
	background: #c9bfb4;
	content: "";
}
.company-timeline li {
	position: relative;
	display: grid;
	grid-template-columns: 105px 1fr;
	gap: 48px;
	min-height: 64px;
	padding-bottom: 25px;
}
.company-timeline li::before {
	position: absolute;
	top: 9px;
	left: 124px;
	width: 9px;
	height: 9px;
	background: #f1ede6;
	border: 2px solid #9a8c7e;
	border-radius: 50%;
	content: "";
}
.company-timeline time {
	color: #930019;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.82rem;
	letter-spacing: 0.05em;
	text-align: right;
}
.company-timeline p {
	margin: 0;
	color: #514b45;
	font-size: 0.88rem;
}
.company-timeline .is-grill::before {
	background: #930019;
	border-color: #930019;
	box-shadow: 0 0 0 6px rgba(147, 0, 25, 0.12);
}
.company-timeline .is-grill p {
	color: #930019;
	font-weight: bold;
}

.company-access {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(380px, 0.75fr);
	width: min(1120px, calc(100% - 48px));
	min-height: 560px;
	margin: 0 auto !important;
	background: #11100f;
	color: #f4eee6;
	scroll-margin-top: 20px;
}
.company-access-map iframe {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 560px;
	border: 0;
	filter: grayscale(0.7) contrast(1.05);
}
.company-access-body {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	flex-direction: column;
	padding: clamp(50px, 7vw, 100px);
}
.company-access-body h2 {
	margin: 17px 0 18px;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: clamp(2.2rem, 4vw, 3.8rem);
	font-weight: 400;
	line-height: 1.4;
}
.company-access-body > p:not(.content-section-label) {
	margin: 0 0 32px;
	color: #bdb2a7;
}
.company-reviews {
	padding: clamp(50px, 7vw, 90px) 0;
	background: #f1ede6;
}
.company-reviews-shell {
	width: min(1120px, calc(100% - 48px));
	margin: 0 auto;
}

.legal-intro {
	width: min(920px, calc(100% - 48px));
	margin: 0 auto !important;
	padding: clamp(90px, 11vw, 150px) 0 clamp(70px, 8vw, 110px);
}
.legal-intro h2 {
	margin: 18px 0 28px;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: clamp(2.2rem, 4vw, 3.7rem);
	font-weight: 400;
	line-height: 1.4;
}
.legal-intro > p:last-child {
	margin: 0;
	color: #56504a;
	font-size: 0.94rem;
	line-height: 2.3;
}
.legal-sections {
	width: min(1000px, calc(100% - 48px));
	margin: 0 auto !important;
	padding-bottom: clamp(90px, 11vw, 150px);
}
.legal-sections article {
	display: grid;
	grid-template-columns: 80px minmax(0, 1fr);
	gap: 30px;
	padding: clamp(30px, 4vw, 52px) 0;
	border-top: 1px solid #c9c0b6;
	scroll-margin-top: 20px;
}
.legal-sections article:last-child {
	border-bottom: 1px solid #c9c0b6;
}
.legal-number {
	margin: 0;
	color: #930019;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.75rem;
	letter-spacing: 0.12em;
}
.legal-sections h2 {
	margin: 0 0 14px;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: clamp(1.25rem, 2vw, 1.7rem);
	font-weight: 400;
}
.legal-sections article p:not(.legal-number) {
	margin: 0;
	color: #5f5952;
	font-size: 0.88rem;
	line-height: 2.15;
}
.legal-sections ul {
	display: grid;
	gap: 6px;
	margin: 15px 0 0;
	padding-left: 1.4rem;
	color: #5f5952;
	font-size: 0.86rem;
}
.legal-contact {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(360px, 1fr);
	gap: clamp(60px, 10vw, 150px);
	padding: clamp(90px, 11vw, 145px) max(24px, calc((100vw - 1050px) / 2));
	background:
		linear-gradient(135deg, rgba(147, 0, 25, 0.34), transparent 48%),
		#11100f;
	color: #f4eee6;
	scroll-margin-top: 20px;
}
.legal-contact h2 {
	margin: 18px 0 0;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: clamp(2.2rem, 4vw, 3.6rem);
	font-weight: 400;
}
.legal-contact dl {
	margin: 0 0 32px;
	border-top: 1px solid rgba(255, 255, 255, 0.17);
}
.legal-contact dl > div {
	display: grid;
	grid-template-columns: 110px 1fr;
	gap: 20px;
	padding: 16px 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.17);
}
.legal-contact dt {
	color: #c89768;
	font-size: 0.76rem;
}
.legal-contact dd {
	color: #d0c6bc;
	font-size: 0.84rem;
}

@media screen and (max-width: 800px) {
	.content-local-nav {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.legal-local-nav {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.content-section-heading,
	.company-store-grid,
	.legal-contact {
		grid-template-columns: 1fr;
		gap: 34px;
	}
	.company-access {
		grid-template-columns: 1fr;
	}
	.company-access-map iframe {
		min-height: 420px;
	}
	.company-access-body {
		padding: 70px 24px 80px;
	}
}

@media screen and (max-width: 520px) {
	.dinner-local-nav,
	.content-local-nav,
	.legal-local-nav {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.dinner-local-nav a,
	.content-local-nav a {
		gap: 7px;
		min-height: 68px;
		padding: 11px 8px;
		font-size: 0.78rem;
		letter-spacing: 0.04em;
	}
	.dinner-local-nav a:last-child,
	.legal-local-nav a:last-child {
		grid-column: 1 / -1;
	}
	.content-hero {
		min-height: 480px;
		padding-right: 20px;
		padding-left: 20px;
	}
	.content-hero h1 {
		font-size: min(9.4vw, 2.6rem);
		line-height: 1.34;
	}
	.legal-hero h1 {
		font-size: min(7.8vw, 2.3rem);
	}
	.content-hero h1 span {
		white-space: nowrap;
	}
	.content-section-heading,
	.company-store-grid,
	.company-store-actions,
	.company-profile-list,
	.company-timeline,
	.company-access,
	.company-reviews-shell,
	.legal-intro,
	.legal-sections {
		width: calc(100% - 40px);
	}
	.content-section-heading h2 {
		font-size: clamp(2.2rem, 10vw, 3.2rem);
	}
	.company-data-list > div,
	.company-profile-list > div {
		grid-template-columns: 1fr;
		gap: 4px;
	}
	.company-photo-guide {
		min-height: 230px;
		padding: 32px 24px;
	}
	.company-photo-guide.has-photo {
		height: 230px;
		min-height: 230px;
		padding: 0;
	}
	.company-store-actions {
		display: grid;
	}
	.company-timeline::before {
		left: 82px;
	}
	.company-timeline li {
		grid-template-columns: 65px 1fr;
		gap: 34px;
	}
	.company-timeline li::before {
		left: 78px;
	}
	.company-timeline time {
		font-size: 0.72rem;
	}
	.legal-sections article {
		grid-template-columns: 45px minmax(0, 1fr);
		gap: 14px;
	}
	.legal-contact {
		padding: 78px 20px;
	}
	.legal-contact dl > div {
		grid-template-columns: 1fr;
		gap: 3px;
	}
}


/*全ページ共通：レスポンシブ時の横切れ防止
---------------------------------------------------------------------------*/
main,
main > *,
.site-header,
.footer-shell,
.footer-main > *,
.footer-nav-grid > *,
.dinner-intro > *,
.dinner-section-heading > *,
.dinner-steak-layout > *,
.dinner-signature-layout > *,
.dinner-information > *,
.content-section-heading > *,
.company-store-grid > *,
.company-access > *,
.legal-contact > * {
	min-width: 0;
}

input,
textarea,
select,
button {
	max-width: 100%;
}

textarea {
	resize: vertical;
}

.footer-address,
.footer-hours dd,
.footer-nav-grid a,
.dinner-information dd,
.company-data-list dd,
.company-profile-list dd,
.legal-contact dd {
	overflow-wrap: anywhere;
}

@media screen and (max-width: 899px) {
	.dinner-local-nav {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.small-screen #menubar {
		padding-right: max(20px, var(--content-space));
		padding-left: max(20px, var(--content-space));
	}
	.small-screen #menubar a {
		width: 100%;
		min-width: 0;
		white-space: normal;
		word-break: keep-all;
	}
}

@media screen and (max-width: 520px) {
	.dinner-local-nav {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media screen and (max-width: 480px) {
	.ta1,
	.ta1 tbody,
	.ta1 tr,
	.ta1 th,
	.ta1 td {
		display: block;
		width: 100%;
	}
	.ta1 th {
		padding-bottom: 0.35rem;
		border-bottom: 0;
	}
	.contact-page .ta1 th {
		min-width: 100%;
		white-space: normal;
		word-break: keep-all;
		overflow-wrap: normal;
		writing-mode: horizontal-tb;
	}
	.ta1 td {
		padding-top: 0.35rem;
	}
	.contact-page .ta1 caption {
		display: block;
		width: 100%;
		max-width: 100%;
		white-space: normal;
		word-break: keep-all;
		overflow-wrap: normal;
		writing-mode: horizontal-tb;
		text-align: center;
	}
	.ws,
	.wl {
		width: 100%;
	}
}


/*ページ内ナビ：タブレット・スマホでは横スライド
---------------------------------------------------------------------------*/
@media screen and (max-width: 899px) {
	.dinner-local-nav,
	.content-local-nav,
	.legal-local-nav {
		display: flex;
		gap: 1px;
		justify-content: flex-start;
		overflow-x: auto;
		overflow-y: hidden;
		padding-bottom: 4px;
		cursor: grab;
		scroll-behavior: smooth;
		scroll-snap-type: x mandatory;
		scrollbar-color: #c89768 #11100f;
		scrollbar-width: thin;
		touch-action: pan-x pan-y;
		-webkit-overflow-scrolling: touch;
	}
	.dinner-local-nav::-webkit-scrollbar,
	.content-local-nav::-webkit-scrollbar,
	.legal-local-nav::-webkit-scrollbar {
		height: 4px;
	}
	.dinner-local-nav::-webkit-scrollbar-track,
	.content-local-nav::-webkit-scrollbar-track,
	.legal-local-nav::-webkit-scrollbar-track {
		background: #11100f;
	}
	.dinner-local-nav::-webkit-scrollbar-thumb,
	.content-local-nav::-webkit-scrollbar-thumb,
	.legal-local-nav::-webkit-scrollbar-thumb {
		background: #c89768;
		border-radius: 4px;
	}
	.dinner-local-nav a,
	.content-local-nav a,
	.legal-local-nav a {
		flex: 0 0 clamp(150px, 42vw, 230px);
		grid-column: auto;
		min-width: 0;
		scroll-snap-align: start;
		scroll-snap-stop: always;
		user-select: none;
		-webkit-user-drag: none;
	}
	.dinner-local-nav.is-dragging,
	.content-local-nav.is-dragging,
	.legal-local-nav.is-dragging {
		cursor: grabbing;
		scroll-behavior: auto;
		scroll-snap-type: none;
	}
}


/*TOP：お知らせ・営業日カレンダー
---------------------------------------------------------------------------*/
.top-information {
	position: relative;
	overflow: hidden;
	padding: clamp(90px, 11vw, 160px) 0 clamp(100px, 12vw, 170px);
	background:
		radial-gradient(circle at 88% 8%, rgba(200, 151, 104, 0.13), transparent 28%),
		linear-gradient(145deg, rgba(147, 0, 25, 0.2), transparent 42%),
		#11100f;
	color: #f5f0e8;
}
.top-information::before {
	position: absolute;
	top: -0.18em;
	right: -0.04em;
	color: rgba(255, 255, 255, 0.025);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(10rem, 27vw, 27rem);
	line-height: 1;
	content: "08·09";
	pointer-events: none;
}
.top-information-shell {
	position: relative;
	z-index: 1;
	width: min(1180px, calc(100% - 48px));
	margin: 0 auto;
}
.top-information-heading {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(300px, 0.55fr);
	gap: clamp(50px, 9vw, 130px);
	align-items: end;
	padding-bottom: clamp(52px, 7vw, 84px);
	border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}
.top-information-heading h2 {
	margin: 18px 0 0;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: clamp(2.5rem, 4.8vw, 4.5rem);
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 1.28;
}
.top-information-heading h2 span {
	display: block;
	white-space: nowrap;
}
.top-information-heading > p {
	margin: 0 0 8px;
	color: #b9afa4;
	font-size: 0.9rem;
	line-height: 2.1;
}
.top-news-panel {
	display: grid;
	grid-template-columns: minmax(170px, 0.28fr) minmax(0, 1fr);
	gap: clamp(34px, 6vw, 80px);
	padding: clamp(44px, 6vw, 72px) 0 clamp(65px, 8vw, 100px);
}
.top-news-panel-heading h3,
.top-calendar-heading h3 {
	margin: 12px 0 0;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: clamp(1.65rem, 2.8vw, 2.6rem);
	font-weight: 400;
	letter-spacing: 0.03em;
}
.top-news-list {
	border-top: 1px solid rgba(255, 255, 255, 0.16);
}
.top-news-list article {
	display: grid;
	grid-template-columns: 100px 100px minmax(0, 1fr);
	gap: 22px;
	align-items: start;
	padding: 24px 4px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}
.top-news-list time {
	padding-top: 4px;
	color: #c89768;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.76rem;
	letter-spacing: 0.06em;
}
.top-news-category {
	margin: 0;
	padding-top: 3px;
	color: #7f756b;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.65rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}
.top-news-list h4 {
	margin: 0 0 8px;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "游明朝", serif;
	font-size: 1rem;
	font-weight: 400;
	letter-spacing: 0.04em;
}
.top-news-list article div p {
	margin: 0;
	color: #9f958b;
	font-size: 0.78rem;
	line-height: 1.85;
}
.top-calendar-heading {
	display: flex;
	gap: 30px;
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: 28px;
}
.top-calendar-heading > p {
	display: flex;
	gap: 9px;
	align-items: center;
	margin: 0 0 4px;
	color: #968b80;
	font-size: 0.72rem;
}
.top-calendar-legend-mark {
	display: inline-block;
	width: 10px;
	height: 10px;
	background: #a9824e;
	border-radius: 50%;
	box-shadow: 0 0 0 4px rgba(169, 130, 78, 0.2);
}
.top-calendar-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(18px, 3vw, 34px);
}
.top-calendar-card {
	min-width: 0;
	padding: clamp(22px, 3.5vw, 42px);
	background:
		linear-gradient(145deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.018));
	border: 1px solid rgba(255, 255, 255, 0.14);
	box-shadow: 0 22px 60px rgba(0, 0, 0, 0.2);
}
.top-calendar-card > header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: 24px;
	padding-bottom: 22px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}
.top-calendar-card > header > p {
	display: flex;
	align-items: flex-start;
	margin: 0;
	color: #fff;
	font-family: Georgia, "Times New Roman", serif;
	line-height: 1;
}
.top-calendar-card > header > p span {
	margin: 7px 8px 0 0;
	color: #746b63;
	font-size: 0.64rem;
	letter-spacing: 0.08em;
	transform: rotate(-90deg);
}
.top-calendar-card > header > p strong {
	font-size: clamp(3.6rem, 6vw, 5.4rem);
	font-weight: 400;
}
.top-calendar-card > header > div {
	padding-bottom: 7px;
	text-align: right;
}
.top-calendar-card > header h3 {
	margin: 0;
	color: #c89768;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.78rem;
	font-weight: 400;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}
.top-calendar-card > header div span {
	color: #817870;
	font-size: 0.7rem;
}
.suematsu-calendar {
	width: 100%;
	table-layout: fixed;
	border-collapse: collapse;
	color: #e6ddd4;
}
.suematsu-calendar caption {
	position: absolute;
	overflow: hidden;
	width: 1px;
	height: 1px;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}
.suematsu-calendar th,
.suematsu-calendar td {
	height: 52px;
	padding: 5px 2px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	text-align: center;
	vertical-align: middle;
}
.suematsu-calendar th {
	color: #716960;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.62rem;
	font-weight: 400;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.suematsu-calendar td {
	position: relative;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.82rem;
}
.suematsu-calendar .sun {
	color: #c46e7c;
}
.suematsu-calendar .sat {
	color: #7895ad;
}
.suematsu-calendar .mute {
	color: rgba(255, 255, 255, 0.14);
}
.suematsu-calendar .today {
	box-shadow: inset 0 0 0 1px #c89768;
	color: #fff;
}
.suematsu-calendar .off {
	background: #a9824e;
	color: #fff;
}
.suematsu-calendar .note {
	display: block;
	margin-top: -2px;
	font-family: "LINE Seed JP", sans-serif;
	font-size: 0.55rem;
	line-height: 1.2;
}
.top-calendar-note {
	display: flex;
	gap: 24px;
	align-items: center;
	justify-content: space-between;
	margin-top: 24px;
	padding: 20px 24px;
	background: rgba(255, 255, 255, 0.035);
	border-left: 2px solid #930019;
}
.top-calendar-note p {
	margin: 0;
	color: #a79d93;
	font-size: 0.76rem;
}
.top-calendar-note p span {
	margin-right: 14px;
	color: #c89768;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.62rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.top-calendar-note a {
	flex: 0 0 auto;
	color: #e4d9ce;
	font-size: 0.72rem;
	letter-spacing: 0.06em;
	text-decoration: none;
}

@media screen and (max-width: 800px) {
	.top-information-shell {
		width: calc(100% - 40px);
	}
	.top-information-heading,
	.top-news-panel {
		grid-template-columns: 1fr;
		gap: 30px;
	}
	.top-information-heading h2 {
		font-size: clamp(2.2rem, 9vw, 3.5rem);
	}
	.top-calendar-grid {
		grid-template-columns: 1fr;
	}
}

@media screen and (max-width: 520px) {
	.top-information {
		padding-top: 78px;
		padding-bottom: 94px;
	}
	.top-information-heading h2 span {
		white-space: normal;
	}
	.top-news-list article {
		grid-template-columns: 1fr auto;
		gap: 5px 14px;
		padding: 22px 2px;
	}
	.top-news-category {
		text-align: right;
	}
	.top-news-list article div {
		grid-column: 1 / -1;
		padding-top: 8px;
	}
	.top-calendar-heading {
		align-items: flex-start;
		flex-direction: column;
		gap: 16px;
	}
	.top-calendar-card {
		padding: 20px 16px 24px;
	}
	.top-calendar-card > header {
		margin-bottom: 16px;
		padding-bottom: 16px;
	}
	.suematsu-calendar th,
	.suematsu-calendar td {
		height: 43px;
		font-size: 0.74rem;
	}
	.top-calendar-note {
		align-items: flex-start;
		flex-direction: column;
		padding: 18px;
	}
	.top-calendar-note p span {
		display: block;
		margin: 0 0 5px;
	}
}
