/*--------------------------------------------------------------
# Header Component (ヘッダーコンポーネント)
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Components (既存コンポーネント)
--------------------------------------------------------------*/

/* Header (ヘッダー)
--------------------------------------------- */
.site-header {
	--header-text-color: #fffdf6; /* 初期値: 白（ページヘッダー上） */
	--header-text-secondary-color: rgba(255, 253, 246, 0.8);
	--header-border-color: rgba(255, 253, 246, 0.4);
	color: var(--header-text-color);
	position: relative;
	z-index: 100;
}

.site-header.scrolled {
	--header-text-color: #282d27;
	--header-text-secondary-color: rgba(40, 45, 39, 0.8);
	--header-border-color: rgba(40, 45, 39, 0.4);
}

/* ページヘッダーを抜けたら黒に変更 */
.site-header.header-past-page-header {
	--header-text-color: #282d27;
	--header-text-secondary-color: rgba(40, 45, 39, 0.8);
	--header-border-color: rgba(40, 45, 39, 0.4);
}

/* 左上のロゴ・サイト名 */
.header__lead-container,
.header__lead-l-container {
	left: 2rem;
	margin: -0.9rem 0;
	max-width: var(--container-width);
	padding: 0 var(--container-padding);
	position: fixed;
	top: 7rem;
	width: 100%;
	z-index: 110;
}

.header__lead {
	align-items: center;
	display: flex;
	gap: 0.8rem; /* 8px */
	padding: 0.9rem 0; /* 9px */
	transition: color 0.3s linear;
	white-space: nowrap;
	text-decoration: none;
	color: var(--header-text-color);
	position: relative; /* ロゴとテキストを重ねるための基準 */
	width: max-content;
}

.header__lead:hover {
	color: var(--header-text-color);
}

.header__lead__logo {
	display: block;
	height: 10rem;
	max-height: 8rem;
	width: auto;
	min-width: 8rem;
	object-fit: contain;
	opacity: 0; /* 初期状態では非表示 */
	transform: translateY(-0.4rem);
	position: absolute; /* テキストと同じ位置に重ねる */
	left: -1rem;
	top: 50%;
	transform: translateY(-50%) translateY(-0.4rem);
	transition: opacity 0.3s ease-out, transform 0.3s ease-out; /* スクロール解除時は即座に消える */
	pointer-events: none; /* 非表示時はクリック不可 */
	z-index: 2; /* テキストの上に表示 */
}

/* スクロール後はロゴを表示、文字を非表示 */
.site-header.scrolled .header__lead__logo {
	opacity: 1;
	transform: translateY(-50%) translateY(0);
	pointer-events: auto;
	transition: opacity 0.3s ease-out 0.3s, transform 0.3s ease-out 0.3s; /* テキストが消えてから表示 */
}

/* 緑の背景セクション上ではロゴを白に */
.site-header.header-on-green.scrolled .header__lead__logo {
	filter: brightness(0) invert(1); /* ロゴを白に */
	transition: filter 0.3s ease-out; /* フィルターのトランジション */
}

/* 緑の背景セクション上ではメニューボタンの背景を白に */
.site-header.header-on-green.scrolled .header__menu-trigger {
	background-color: var(--color-white);
}

/* 緑の背景セクション上ではメニューボタンの線を緑に */
.site-header.header-on-green.scrolled .header__menu-trigger__line {
	background-color: var(--color-primary);
	transition: background-color 0.3s ease-out; /* 線の色のトランジション */
}

/* 緑の背景セクション上ではメニューボタンのテキストを緑に */
.site-header.header-on-green.scrolled .header__menu-trigger__text {
	color: var(--color-white);
	transition: color 0.3s ease-out; /* テキスト色のトランジション */
}

.site-header.header-on-green.scrolled .header__nav__link--selected {
	color: var(--color-white);
	transition: color 0.3s ease-out; /* テキスト色のトランジション */
}

.site-header.scrolled .header__lead__title,
.site-header.scrolled .header__lead__line,
.site-header.scrolled .header__lead__copy {
	opacity: 0;
	transform: translateY(0.4rem);
	pointer-events: none;
	transition: opacity 0.3s ease-out, transform 0.3s ease-out;
}

/* メニューが開いている時は文字を表示 */
.site-header.menu-open .header__lead__logo {
	opacity: 0;
	transform: translateY(-50%) translateY(-0.4rem);
	pointer-events: none;
}

.site-header.menu-open .header__lead__title,
.site-header.menu-open .header__lead__line,
.site-header.menu-open .header__lead__copy {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
	transition: opacity 0.3s ease-out, transform 0.3s ease-out;
}

.header__lead__title {
	display: block;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 1.8rem; /* 18px */
	font-weight: 600;
	line-height: 1;
	opacity: 1;
	transform: translateY(0);
	transition: opacity 0.3s ease-out 0.3s, transform 0.3s ease-out 0.3s; /* ロゴが消えてから表示 */
	position: relative; /* ロゴの下に配置 */
	z-index: 1;
}

.header__lead__line {
	border-bottom: 1px solid var(--header-border-color);
	display: block;
	height: 0.6rem; /* 6px */
	transition: border-color 0.3s linear, opacity 0.3s ease-out 0.3s, transform 0.3s ease-out 0.3s; /* ロゴが消えてから表示 */
	width: 3.6rem; /* 36px */
	opacity: 1;
	transform: translateY(0);
	position: relative; /* ロゴの下に配置 */
	z-index: 1;
}

.header__lead__copy {
	display: block;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 1.6rem; /* 16px */
	line-height: 1;
	margin-top: 0.2rem; /* 2px */
	opacity: 1;
	transform: translateY(0);
	transition: opacity 0.3s ease-out 0.3s, transform 0.3s ease-out 0.3s; /* ロゴが消えてから表示 */
	position: relative; /* ロゴの下に配置 */
	z-index: 1;
}

/* メニューが開いているときのスタイル（常に白） */
.site-header.menu-open .header__lead {
	color: #fffdf6 !important;
}

.site-header.menu-open .header__menu-trigger__text {
	color: #fffdf6 !important;
}

.site-header.menu-open .header__lead__line {
	border-color: rgba(255, 253, 246, 0.4);
}

/* MENUボタン（右上） */
.header__menu-trigger {
	align-items: center;
	background-color: var(--color-primary);
	border: none;
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	height: 6.0rem; /* 60px */
	justify-content: center;
	position: fixed;
	right: 4.0rem; /* 40px */
	transition: background-color 0.3s ease-out; /* 背景色のトランジション */
	top: 5.6rem; /* 56px */
	transition: background-color 0.3s linear;
	width: 6.0rem; /* 60px */
	z-index: 110;
	padding: 0;
}

.header__menu-trigger:hover {
	background-color: var(--color-primary-dark);
}

.header__menu-trigger:before {
	background-color: rgba(40, 45, 39, 0.05);
	border-radius: 50%;
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	opacity: 0;
	transition: opacity 0.1s linear;
}

.header__menu-trigger:hover:before {
	opacity: 1;
}

.header__menu-trigger__line {
	background-color: var(--color-white);
	border-radius: 1px;
	height: 1px;
	position: absolute;
	margin: auto;
	transition: background-color 0.3s linear, transform 0.3s cubic-bezier(0, 0.55, 0.45, 1);
	width: 1.8rem; /* 18px */
	z-index: 2;
}

.header__menu-trigger__line:first-child {
	transform: translate(-0.3rem, -0.7rem); /* -3px, -7px */
}

.header__menu-trigger__line:nth-child(2) {
	transform: translate(0.3rem, 0); /* 3px, 0 */
}

.header__menu-trigger__line:nth-child(3) {
	transform: translate(-0.3rem, 0.7rem); /* -3px, 7px */
}

.header__menu-trigger.toggled .header__menu-trigger__line {
	background-color: var(--color-primary);
}

.header__menu-trigger.toggled .header__menu-trigger__line:first-child {
	transform: translate(0) rotate(45deg);
}

.header__menu-trigger.toggled .header__menu-trigger__line:nth-child(2) {
	transform: translate(0) scaleX(0);
}

.header__menu-trigger.toggled .header__menu-trigger__line:nth-child(3) {
	transform: translate(0) rotate(-45deg);
}

.header__menu-trigger__text {
	bottom: 0;
	display: block;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 1.4rem; /* 14px */
	font-weight: 600;
	height: 1.4rem; /* 14px */
	line-height: 1;
	margin: auto 0;
	overflow: hidden;
	position: absolute;
	right: calc(100% + 16px);
	top: 0;
	color: var(--header-text-color);
	transition: opacity 0.3s linear 0.3s, transform 0.3s cubic-bezier(0, 0.55, 0.45, 1) 0.3s;
}

.header__menu-trigger__text.close {
	color: var(--color-white);
	opacity: 0;
	transform: translate(3px, 0);
	transition: opacity 0.3s linear, transform 0.3s cubic-bezier(0, 0.55, 0.45, 1);
}

.header__menu-trigger.toggled .header__menu-trigger__text.menu {
	opacity: 0;
	transform: translate(3px, 0);
	transition: opacity 0.3s linear, transform 0.3s cubic-bezier(0, 0.55, 0.45, 1);
}

.header__menu-trigger.toggled .header__menu-trigger__text.close {
	opacity: 1;
	transform: translate(0);
	transition: opacity 0.3s linear 0.3s, transform 0.3s cubic-bezier(0, 0.55, 0.45, 1) 0.3s;
}

.header__menu-trigger.toggled {
	background-color: var(--color-white);
}

.header__menu-trigger__text__inner {
	display: block;
}

/* デスクトップナビゲーション（右側縦配置） */
.header__nav {
	padding-right: 1.6rem; /* 16px */
	position: fixed;
	right: 4.0rem; /* 40px */
	top: 14.0rem; /* 140px */
	z-index: 100;
}

.header__nav__list {
	align-items: flex-end;
	display: flex;
	flex-direction: column;
	gap: 0.8rem; /* 8px */
	list-style: none;
	margin: 0;
	padding: 0;
}

.header__nav__list__item {
	margin: 0;
	padding: 0;
}

.header__nav__link {
	color: var(--header-text-secondary-color);
	display: block;
	font-size: 1.6rem; /* 16px */
	font-weight: 600;
	text-decoration: none;
	transition: color 0.3s linear;
	position: relative;
	overflow: hidden;
}

.header__nav__link:hover {
	color: var(--header-text-color);
}

/* 緑背景の上でホバー時は白にする（背景と被らないように） */
.site-header.header-on-green .header__nav__link:hover {
	color: var(--color-white);
}

.header__nav__link:after {
	background-color: var(--header-border-color);
	bottom: 0.2rem; /* 2px */
	content: "";
	height: 1px;
	left: -100%;
	position: absolute;
	transition: transform 0.3s cubic-bezier(0.85, 0, 0.15, 1);
	width: 100%;
}

.header__nav__link:hover:after {
	transform: translate(200%);
}

.header__nav__link--selected {
	color: var(--color-primary);
}

.header__nav__link--selected:hover {
	color: var(--color-primary-dark);
}

/* 全画面メニュー（ヘッダー内のみ） */
.site-header > .menu,
header > .menu {
	--color-text: var(--color-text-white);
	--color-text-80: var(--color-text-white-80);
	--color-ui: var(--color-ui-white);
	--color-ui-40: var(--color-ui-white-40);
	--color-ui-10: var(--color-ui-white-10);
	--color-ui-invert: var(--color-primary);
	--color-primary: var(--color-text-white);
	background-color: #5a9f4d;
	border-radius: 2.4rem; /* 24px */
	bottom: 0.8rem; /* 8px */
	color: var(--color-text);
	display: none;
	left: 0.8rem; /* 8px */
	overflow-x: hidden;
	overflow-y: auto;
	position: fixed;
	right: 0.8rem; /* 8px */
	top: 0.8rem; /* 8px */
	z-index: 105;
	-ms-overflow-style: none; /* IE and Edge */
	scrollbar-width: none; /* Firefox */
}

/* 全画面メニューのスクロールバーを非表示 */
.site-header > .menu::-webkit-scrollbar,
header > .menu::-webkit-scrollbar {
	display: none;
}

@keyframes menuFadeIn {
	from {
		opacity: 0;
		transform: translateY(10px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* 全画面メニューの子要素（ヘッダー内のみ） */
.site-header > .menu .menu__container,
header > .menu .menu__container {
	display: flex;
	min-height: 100%;
	width: 100%;
}

.menu__nav {
	display: flex;
	width: 40%;
}

.menu__nav__container {
	display: flex;
	margin-left: auto;
	min-height: 100%;
	padding: 19.2rem 8.0rem 8.0rem; /* 192px 80px 80px */
	width: 100%;
	gap: 12.0rem; /* 120px */
	max-width: 80.0rem; /* 800px */
}

.menu__nav__main {
	width: 100%;
}

.menu__nav__section {
	display: flex;
	flex-direction: column;
}

.menu__nav__other {
	margin-top: 4.0rem; /* 40px */
}

/* List styles */
.list {
	display: flex;
	flex-direction: column;
	gap: 1.6rem; /* 16px */
	list-style: none;
	margin: 0;
	padding: 0;
}

.list__item {
	display: flex;
	flex-direction: column;
	gap: 1.6rem; /* 16px */
}

.list--menu {
	display: grid;
	gap: 1.6rem 16.0rem; /* 16px 160px */
	grid-auto-flow: column;
	grid-template-columns: 1fr 1fr;
}

.list--contents {
	display: flex;
	flex-direction: column;
	gap: 1.6rem; /* 16px */
}

.list--sub-contents {
	display: flex;
	flex-direction: column;
	gap: 1.2rem; /* 12px */
}

/* Link styles */
.link-container {
	display: flex;
}

.link {
	align-items: center;
	color: var(--color-text);
	display: flex;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 2.4rem; /* 24px */
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	transition: color 0.3s linear;
}

.link--sub {
	font-size: 1.2rem; /* 12px */
	color: var(--color-text-80);
}

.link--disc {
	gap: 0.4rem; /* 4px */
}

.link--disc:before {
	aspect-ratio: 1;
	background-color: var(--color-ui);
	content: "";
	display: block;
	height: 0.4rem; /* 4px */
	margin: 1.2rem; /* 12px */
	width: 0.4rem; /* 4px */
}

.link__text {
	display: block;
	position: relative;
	overflow: hidden;
}

.link__text:after {
	background-color: var(--color-ui-40);
	bottom: 0.2rem; /* 2px */
	content: "";
	height: 1px;
	left: -100%;
	position: absolute;
	transition: transform 0.3s cubic-bezier(0.85, 0, 0.15, 1);
	width: 100%;
}

@media (hover: hover) and (pointer: fine) {
	.link:hover .link__text:after {
		transform: translate(200%);
	}
	
	/* 全画面メニュー内のリンクはホバー時に白にする（緑背景と被らないように） */
	.menu .link:hover {
		color: var(--color-white);
	}
}

/* Instagram button */
.instagram-button-container {
	margin-bottom: 2.4rem; /* 24px */
	--color-button: #3a833d;
}

.instagram-button {
	align-items: center;
	border-radius: 1.2rem; /* 12px */
	display: flex;
	gap: 1.2rem; /* 12px */
	height: 4.8rem; /* 48px */
	max-width: 32.0rem; /* 320px */
	overflow: hidden;
	padding: 0 2.4rem; /* 24px */
	position: relative;
	z-index: 1;
	text-decoration: none;
	color: var(--color-text);
}

.instagram-button:before {
	background-color: var(--color-button);
	border-radius: 1.2rem; /* 12px */
	content: "";
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: -1;
	transition: opacity 0.3s cubic-bezier(0, 0.55, 0.45, 1);
}

.instagram-button:hover:before {
	opacity: 0.6;
}

.instagram-button__icon {
	aspect-ratio: 1;
	background-color: var(--color-ui);
	display: block;
	width: 1.6rem; /* 16px */
	-webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='%23282D27' d='M8 1.442c2.136 0 2.39.008 3.233.047 2.168.098 3.181 1.127 3.28 3.279.038.843.046 1.097.046 3.233s-.008 2.389-.046 3.232c-.1 2.15-1.11 3.181-3.28 3.28-.844.038-1.096.046-3.233.046s-2.39-.008-3.233-.046c-2.173-.1-3.18-1.133-3.279-3.28-.039-.844-.047-1.096-.047-3.233s.009-2.389.047-3.233c.1-2.151 1.11-3.18 3.28-3.279C5.61 1.45 5.863 1.442 8 1.442M8 0C5.827 0 5.555.01 4.702.048 1.797.181.182 1.793.049 4.701.009 5.555 0 5.827 0 8s.01 2.445.048 3.299c.133 2.905 1.745 4.52 4.653 4.653C5.555 15.991 5.827 16 8 16s2.445-.01 3.299-.048c2.902-.133 4.521-1.745 4.652-4.653.04-.854.049-1.126.049-3.299s-.01-2.445-.048-3.298c-.13-2.903-1.745-4.52-4.653-4.653C10.445.009 10.173 0 8 0m0 3.892a4.108 4.108 0 1 0 0 8.216 4.108 4.108 0 0 0 0-8.216m0 6.775a2.666 2.666 0 1 1 0-5.333 2.666 2.666 0 0 1 0 5.333m4.27-7.897a.96.96 0 1 0 0 1.92.96.96 0 0 0 0-1.92'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='%23282D27' d='M8 1.442c2.136 0 2.39.008 3.233.047 2.168.098 3.181 1.127 3.28 3.279.038.843.046 1.097.046 3.233s-.008 2.389-.046 3.232c-.1 2.15-1.11 3.181-3.28 3.28-.844.038-1.096.046-3.233.046s-2.39-.008-3.233-.046c-2.173-.1-3.18-1.133-3.279-3.28-.039-.844-.047-1.096-.047-3.233s.009-2.389.047-3.233c.1-2.151 1.11-3.18 3.28-3.279C5.61 1.45 5.863 1.442 8 1.442M8 0C5.827 0 5.555.01 4.702.048 1.797.181.182 1.793.049 4.701.009 5.555 0 5.827 0 8s.01 2.445.048 3.299c.133 2.905 1.745 4.52 4.653 4.653C5.555 15.991 5.827 16 8 16s2.445-.01 3.299-.048c2.902-.133 4.521-1.745 4.652-4.653.04-.854.049-1.126.049-3.299s-.01-2.445-.048-3.298c-.13-2.903-1.745-4.52-4.653-4.653C10.445.009 10.173 0 8 0m0 3.892a4.108 4.108 0 1 0 0 8.216 4.108 4.108 0 0 0 0-8.216m0 6.775a2.666 2.666 0 1 1 0-5.333 2.666 2.666 0 0 1 0 5.333m4.27-7.897a.96.96 0 1 0 0 1.92.96.96 0 0 0 0-1.92'/%3E%3C/svg%3E");
	-webkit-mask-position: center center;
	mask-position: center center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-size: contain;
}

.instagram-button__text {
	display: block;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 1.4rem; /* 14px */
	line-height: 1.2;
	overflow: hidden;
	position: relative;
}

.instagram-button__text__inner {
	display: block;
}

/* 右側: 情報セクション */
.menu__info {
	background-color: #282d27;
	display: flex;
	position: relative;
	width: 60%;
}

.menu__info__bg,
.menu__info__bg:after {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
}

.menu__info__bg:after {
	background-color: #282d27a3;
	content: "";
	display: block;
}

.menu__info__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.menu__info__container {
	display: flex;
	flex-direction: column;
	gap: 4.0rem; /* 40px */
	justify-content: space-between;
	max-width: 80.0rem; /* 800px */
	min-height: 100%;
	padding: 19.2rem 8.0rem 8.0rem; /* 192px 80px 80px */
	position: relative;
	width: 100%;
}

.menu__info__schedule {
	flex-shrink: 0;
}

.menu__info__footer {
	align-items: flex-end;
	display: flex;
	gap: 2.4rem; /* 24px */
	justify-content: space-between;
}

.menu__info__access {
	flex-shrink: 0;
}

.menu__info__access__title {
	color: var(--color-text);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 1.8rem; /* 18px */
	font-weight: 600;
	margin-bottom: 0.8rem; /* 8px */
}

.menu__info__access__text {
	color: var(--color-text);
	font-size: 1.4rem; /* 14px */
	line-height: 1.8;
}

.menu__info__access__text__link {
	color: var(--color-text);
	text-decoration: underline;
}

/* Schedule table styles (営業時間テーブル) */
.schedule {
	color: var(--color-text);
}

/* .schedule__table 関連のスタイルは schedule-table.css に定義済み */

.schedule__note {
	margin-top: 2.4rem; /* 24px */
}

.schedule__note__item {
	align-items: flex-start;
	color: var(--color-text-white-80);
	display: flex;
}

.schedule__note__item__text {
	font-size: 1.4rem; /* 14px */
	line-height: 1.8;
}

/* 火曜日予約制のアイコン */
.schedule__note__item--reservation {
	align-items: center;
}

.schedule__note__item__icon {
	display: inline-block;
	color: var(--color-text-white);
	font-size: 1.4rem; /* 14px */
	margin-right: 0.4rem; /* 4px */
	line-height: 1;
}

.schedule__note__item__icon i {
	color: var(--color-text-white);
	font-size: inherit;
}

.c-object-fit-cover {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

/* Desktop Navigation (デスクトップナビゲーション) */
@media screen and (min-width: 993px) {
	.header__menu-trigger__text {
		display: block;
	}

	/* デスクトップでも全画面メニューを表示可能にする（テスト用） */
	.site-header.menu-open > .menu {
		display: block !important;
		animation: menuFadeIn 0.3s cubic-bezier(0, 0.55, 0.45, 1);
	}

	.header__nav {
		display: block;
	}

	.menu__nav__logo {
		display: none;
	}
}

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

	.header__menu-trigger__text {
		display: none;
	}

	/* タブレット以下では全画面メニューを表示可能 */
	.site-header.menu-open > .menu {
		display: block !important;
		animation: menuFadeIn 0.3s cubic-bezier(0, 0.55, 0.45, 1);
	}

	.menu__nav__container {
		flex-wrap: wrap;
	}


	.menu__nav__page {
		border-right: 1px solid rgba(255, 253, 246, 0.4);
		flex: 50%;
	}

	.menu__nav__other {
		flex: 50%;
	}
}

@media screen and (min-width: 993px) and (max-width: 1200px) {
	.menu__nav__container {
		gap: 6.0rem; /* 60px */
		padding: 19.2rem 6.0rem 8.0rem; /* 192px 60px 80px */
	}

	.menu__info__container {
		padding: 19.2rem 6.0rem 8.0rem; /* 192px 60px 80px */
	}
}

@media screen and (max-width: 768px) {
	/* スマホで横並びにするため、site-headerをflexコンテナに */
	.site-header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 0 var(--container-padding);
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		width: 100%;
		box-sizing: border-box;
		height: 9.2rem; /* ロゴとメニューボタンの高さ + 余白 */
	}

	.header__lead-container,
	.header__lead-l-container {
		position: relative; /* fixedを解除してflexアイテムにする */
		left: auto;
		top: auto;
		margin: 0;
		transform: none;
		padding: 0;
		width: auto;
		max-width: none;
		flex: 1; /* 残りのスペースを使用 */
		min-width: 0; /* flexアイテムが縮小できるように */
	}

	.header__lead {
		gap: 0.4rem; /* 4px */
		padding: 0.8rem 0; /* 8px */
		display: flex !important; /* 横並びを維持（!importantで確実に適用） */
		align-items: center; /* 縦方向の中央揃え */
		flex-direction: row; /* 横並びを明示 */
		width: max-content; /* コンテンツに合わせた幅 */
		min-width: 0; /* flexアイテムが縮小できるように */
	}
	
	.site-header.scrolled .header__lead__logo {
		width: auto; /* スクロール後は適切な幅に */
		min-width: 3.0rem; /* スクロール後は最小幅を確保 */
		max-height: 8rem;
		left: -1rem;
	}

	.header__lead__title {
		font-size: 1.4rem; /* 14px */
		display: inline-block !important; /* 横並びにする（!importantで確実に適用） */
		white-space: nowrap; /* 改行を防ぐ */
		margin: 0; /* マージンをリセット */
	}

	.header__lead__line {
		width: 1.2rem; /* 32px */
		display: inline-block !important; /* 横並びにする（!importantで確実に適用） */
		vertical-align: middle; /* 縦方向の中央揃え */
		margin: 0 0.4rem; /* 左右の余白 */
		flex-shrink: 0; /* 線は縮小しない */
	}

	.header__lead__copy {
		font-size: 1.2rem; /* 12px */
		display: inline-block !important; /* 横並びにする（!importantで確実に適用） */
		white-space: nowrap; /* 改行を防ぐ */
		margin: 0; /* マージンをリセット */
	}

	.header__menu-trigger {
		position: relative; /* fixedを解除してflexアイテムにする */
		right: auto;
		top: auto;
		height: 5.2rem; /* 52px */
		width: 5.2rem; /* 52px */
		flex-shrink: 0; /* メニューボタンは縮小しない */
	}

	.header__menu-trigger__line:first-child {
		transform: translate(-0.2rem, -0.6rem); /* -2px, -6px */
	}

	.header__menu-trigger__line:nth-child(2) {
		transform: translate(0.2rem, 0); /* 2px, 0 */
	}

	.header__menu-trigger__line:nth-child(3) {
		transform: translate(-0.2rem, 0.6rem); /* -2px, 6px */
	}

	.site-header > .menu {
		border-radius: 1.6rem; /* 16px */
		bottom: 0.4rem; /* 4px */
		left: 0.4rem; /* 4px */
		right: 0.4rem; /* 4px */
		top: 0.4rem; /* 4px */
	}

	/* モバイルでは全画面メニューを表示 */
	.site-header.menu-open > .menu {
		display: block !important;
		animation: menuFadeIn 0.3s cubic-bezier(0, 0.55, 0.45, 1);
	}

	.menu__nav__container {
		flex-direction: column;
		padding: 12.0rem 3.6rem 8.0rem; /* 120px 36px 80px */
		gap: 0;
	}

	.menu__nav__main {
		width: 100%;
	}

	.menu__info {
		display: none;
	}

	.menu__nav__logo {
		display: block;
		margin-top: 3.2rem; /* 32px */
	}

	.list {
		gap: 1.2rem; /* 12px */
	}

	.list__item {
		gap: 1.2rem; /* 12px */
	}

	.instagram-button-container {
		margin-bottom: 3.2rem; /* 32px */
	}

	.schedule__table__head .schedule__table__row {
		height: 4.8rem; /* 48px */
	}

	.schedule__table__tbody .schedule__table__row {
		height: 7.2rem; /* 72px */
	}

	.schedule__table__heading {
		font-size: 1.2rem; /* 12px */
	}

	.schedule__table__time {
		font-size: 1.2rem; /* 12px */
	}

	.schedule__table__note {
		font-size: 1.1rem; /* 11px */
	}

	.schedule__table__open {
		width: 1.2rem; /* 12px */
	}

	.schedule__table__close {
		width: 0.8rem; /* 8px */
	}

	.schedule__table__annotation {
		bottom: calc(50% + 0.1rem); /* 1px */
		font-size: 1.6rem; /* 16px */
		left: calc(50% + 0.8rem); /* 8px */
	}

	.schedule__note {
		margin-top: 1.6rem; /* 16px */
	}

	.schedule__note__item {
		gap: 0.4rem; /* 4px */
	}

	.schedule__note__item__text {
		font-size: 1.2rem; /* 12px */
	}
}

.site-main .comment-navigation,
.site-main
.posts-navigation,
.site-main
.post-navigation {
	margin: 0 0 1.5em;
}

.comment-navigation .nav-links,
.posts-navigation .nav-links,
.post-navigation .nav-links {
	display: flex;
}

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
	flex: 1 0 50%;
}

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
	text-align: end;
	flex: 1 0 50%;
}

/* Posts and pages (投稿とページ)
--------------------------------------------- */
.sticky {
	display: block;
}

.post,
.page {
	margin: 0;
}

.updated:not(.published) {
	display: none;
}

.page-content,
.entry-content,
.entry-summary {
	margin: 1.5em 0 0;
}

.page-links {
	clear: both;
	margin: 0 0 1.5em;
}

/* Comments
--------------------------------------------- */
.comment-content a {
	word-wrap: break-word;
}

.bypostauthor {
	display: block;
}

/* Widgets
--------------------------------------------- */
.widget {
	margin: 0 0 1.5em;
}

.widget select {
	max-width: 100%;
}

/* Media
--------------------------------------------- */
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
	border: none;
	margin-bottom: 0;
	margin-top: 0;
	padding: 0;
}

/* Make sure logo link wraps around logo image. */
.custom-logo-link {
	display: inline-block;
}

/* Captions
--------------------------------------------- */
.wp-caption {
	margin-bottom: 1.5em;
	max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.wp-caption .wp-caption-text {
	margin: 0.8075em 0;
}

.wp-caption-text {
	text-align: center;
}

/* Galleries
--------------------------------------------- */
.gallery {
	margin-bottom: 1.5em;
	display: grid;
	grid-gap: 1.5em;
}

.gallery-item {
	display: inline-block;
	text-align: center;
	width: 100%;
}

.gallery-columns-2 {
	grid-template-columns: repeat(2, 1fr);
}

.gallery-columns-3 {
	grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
	grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5 {
	grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6 {
	grid-template-columns: repeat(6, 1fr);
}

.gallery-columns-7 {
	grid-template-columns: repeat(7, 1fr);
}

.gallery-columns-8 {
	grid-template-columns: repeat(8, 1fr);
}

.gallery-columns-9 {
	grid-template-columns: repeat(9, 1fr);
}

.gallery-caption {
	display: block;
}

/*--------------------------------------------------------------
# Plugins
--------------------------------------------------------------*/

/* Jetpack infinite scroll
--------------------------------------------- */

/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
	display: none;
}

/* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer {
	display: block;
}

/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/

/* Accessibility
--------------------------------------------- */

/* Text meant only for screen readers. */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: #f1f1f1;
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	clip-path: none;
	color: #21759b;
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
	outline: 0;
}

/* Alignments
--------------------------------------------- */
.alignleft {

	/*rtl:ignore*/
	float: left;

	/*rtl:ignore*/
	margin-right: 1.5em;
	margin-bottom: 1.5em;
}

.alignright {

	/*rtl:ignore*/
	float: right;

	/*rtl:ignore*/
	margin-left: 1.5em;
	margin-bottom: 1.5em;
}

.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 1.5em;
}

