@charset "UTF-8";
/* --------------------------------------------------
   モバイルファーストの基本スタイル
   -------------------------------------------------- */
html {
	scroll-padding-top: 100px;
	scroll-behavior: smooth;
}

html,body {
	overflow-x: hidden;
}

/* --- 既存のスタイル（body, header, logo, global-nav, main）はそのまま --- */
body {
	font-family: 'Noto Sans JP', sans-serif;
	line-height: 1.6;
	color: #3B2D25;
}

.color-accent {
	color: #EA5071;
	display: contents;
}

/* ★ モーダル表示時に背景スクロールを禁止するスタイル (そのまま) */
body.modal-open {
		overflow: hidden;
}

/* ===============================================
  ヘッダー　共通
=============================================== */
	.header {
		display: flex; /* Flexboxは維持 */
		justify-content: flex-end; /* ★ ハンバーガーボタンを右寄せにする */
		padding-top: 25px;
		padding-bottom: 25px;
		align-items: center;
		height: 96px; /* ★ モバイルでのヘッダーの高さを指定 */
		background: #FFFDF3; /* 背景色を変更 */
	}

	.header-logo {
		display: block; /* ブロック要素にして中央揃え */
		margin: 0 auto; /* ★ ロゴを中央揃え */
		left: 50%;
		transform: translateX(-50%);
		position: absolute;
		line-height: 0; /* 画像下の余白対策 */
	}

	.header-logo img {
		max-width: 150px; /* スマホ向けロゴサイズ */
	}

	/* ★ PC用の電話番号やSNSアイコンを非表示 */
	.header-info {
		display: none;
	}

	.global-nav {
		display: none; /* PC用ナビ非表示 */
	}

/* ===============================================
   ページトップへ戻るボタン
   =============================================== */
	 #backToTop {
		position: fixed;
		bottom: 4%;
		right: 4%;
		width: 50px;
		height: 50px;
		border: none;
		padding: 0;
		cursor: pointer;
		z-index: 998;
		/* overflow: hidden; は不要なら削除 */
		/* ▼ 初期状態 (非表示) ▼ */
		opacity: 0;
		visibility: hidden;
		transform: translateY(10px);
		/* ▲ 初期状態 (非表示) ▲ */
		/* ▼ 表示・非表示のアニメーション ▼ */
		/* background-color の transition は不要なら削除 */
		transition: opacity 0.4s ease, visibility 0.4s ease, transform 0.4s ease;
	}

	/* ▼ 表示状態のスタイル (JSで is-visible クラスを付与) ▼ */
	#backToTop.is-visible {
		opacity: 1;
		visibility: visible;
		transform: translateY(0); /* ★ 元の位置に戻す */
	}

	/* ▼ ボタン内のアイコンコンテナの配置調整 ▼ */
	#backToTop .scrollbutton { /* ボタン自体に scrollbutton クラスが付いているので不要かも？ */
		width: 100%;
		height: 100%;
		position: relative; /* アイコンの絶対配置の基準 */
	}



/* --------------------------------------------------
		ハンバーガーメニュー
-------------------------------------------------- */
/* ▼▼▼ ハンバーガーメニューのスタイル (spanタグ版) ▼▼▼ */
.hamburger-menu {
	display: block; /* ハンバーガー表示 */
	position: absolute; /* ★ PCでは右上に配置 (メディアクエリで解除) */
	top: 47px;       /* ★ ヘッダーの高さ(94px)の垂直中央に配置 */
	right: 20px;
	transform: translateY(-50%);
	width: 44px; /* ボタンの幅 */
	height: 44px; /* ボタンの高さ (クリックエリア確保) */
	padding: 10px; /* 内側の余白 */
	background: none;
	border: none;
	cursor: pointer;
	z-index: 1100; /* モーダルより手前にする場合など */
	box-sizing: border-box;
}

.hamburger-menu.is-active {
	display: block;
	position: fixed;
	top: 48px;
	right: 20px;
	transform: translateY(-50%);
}

.hamburger-menu span {
	display: block;
	width: 100%;
	height: 3px;
	background-color: #3B2D25;
	position: relative;
	transition: transform 0.3s ease, background-color 0.3s ease, opacity 0.3s ease; /* アニメーション用 */
}

/* span間のマージン（2本目と3本目の上にマージンを追加） */
.hamburger-menu span:nth-of-type(2),
.hamburger-menu span:nth-of-type(3) {
	margin-top: 6px; /* 線と線の間のスペース */
}

/* (オプション) メニューが開いている状態のスタイル (JSで .is-active を付与想定) */
/* ★ is-active 時の共通スタイル（色変更）を追加 */
.hamburger-menu.is-active span {
	background-color: #fff;
}

.hamburger-menu.is-active span:nth-of-type(1) {
		transform: translateY(9px) rotate(45deg); /* 1本目: 下に移動して回転 */
}
.hamburger-menu.is-active span:nth-of-type(2) {
		opacity: 0; /* 2本目: 透明にする */
}
.hamburger-menu.is-active span:nth-of-type(3) {
		transform: translateY(-9px) rotate(-45deg); /* 3本目: 上に移動して回転 */
}
/* ▲▲▲ ハンバーガーメニューのスタイル (spanタグ版) ▲▲▲ */

/* --- ▼▼▼ モバイルナビゲーションのスタイル ▼▼▼ --- */
.mobile-nav {
	position: fixed; /* 画面に固定 */
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #3B2D25;
	z-index: 1050; /* ハンバーガーボタン(1100)より下、モーダル(1000)より上 */
	opacity: 0;
	visibility: hidden;
	/* ★ transform を追加して初期位置を少し上にずらす */
	transform: translateY(-40px); /* 例: 20px上にずらす */
	transition: opacity 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94), /* easeOutQuad に近い */
							visibility 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94),
							transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
	overflow-y: auto; /* メニュー項目が多い場合にスクロール可能に */
  padding-top: 100px; /* ★ ヘッダー高さ(96px) + 余白 */
	box-sizing: border-box;
}

.mobile-nav.is-active {
	opacity: 1;
	visibility: visible;
	/* ★ 表示時に transform を元の位置(0)に戻す */
	transform: translateY(0);
}

/* ▼▼▼ モバイルナビヘッダーのスタイルを追加 ▼▼▼ */
.mobile-nav-header {
  position: absolute; /* .mobile-nav 内で上部に固定 */
  top: 0;
  left: 0;
  width: 100%;
  height: 96px; /* ★ ヘッダーの高さ (適宜調整) */
  background-color: #3B2D25; /* ★ 背景色を統一 */
  display: flex;
  justify-content: center; /* ロゴを水平中央揃え */
  align-items: center; /* ロゴを垂直中央揃え */
  z-index: 1; /* コンテンツより手前 */
  /* ヘッダー自体はスクロールさせない */
}

.mobile-nav-logo {
  display: block;
  width: 150px;
  height: auto;
}

/* ▼▼▼ モバイルナビ内コンテンツのスタイル ▼▼▼ */
.mobile-nav-text {
	color: #fff;
	text-align: left;
	width: 65.33%;      /* ★ 横幅を指定 */
	margin-left: auto;  /* ★ 中央揃え */
	margin-right: auto; /* ★ 中央揃え */
	margin-bottom: 20px;
	font-size: 16px;
	max-width: 245px;   /* ★ 最大幅を追加 */
	line-height: 28px;
}

.mobile-sns {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 20px;
	margin-bottom: 30px;
	width: 65.33%;      /* ★ 横幅を他の要素と合わせる */
	max-width: 245px;   /* ★ 最大幅を他の要素と合わせる */
	margin-left: auto;  /* ★ 中央揃え */
	margin-right: auto; /* ★ 中央揃え */
}

/* ▼▼▼ mobile-sns内のボタン共通スタイル ▼▼▼ */
.mobile-sns .reserve-button {
	background: none;
	padding: 0;
	width: auto;
	height: auto;
}

.mobile-sns .phone-icon,
.mobile-sns .line-icon {
	width: 80px;
	height: auto;
}

.mobile-nav ul {
	list-style: none;
	margin: 0 auto 40px; /* ★ 下に40pxの余白を追加 */
	text-align: left; /* ★ 左揃えに変更 */
	position: relative;
  z-index: 0;
	width: 65.33%;
	max-width: 245px;   /* ★ 最大幅を追加 */
	display: flex;
	flex-direction: column;
	gap: 30px;
}

.mobile-nav li {
	/* ▼▼▼ メニュー項目アニメーション用の初期状態 ▼▼▼ */
	opacity: 0;
	transform: translateY(15px); /* 少し下にずらしておく */
	/* ★ 閉じる時の transition (速め、遅延なし) */
	transition: opacity 0.2s ease, transform 0.2s ease;
	/* ▲▲▲ メニュー項目アニメーション用の初期状態 ▲▲▲ */
}

.mobile-nav a,
.mobile-nav a:visited { /* :visitedを追加して訪問後も色を維持 */
	font-family: "Noto Sans jp", sans-serif;
	text-decoration: none;
	color: #fff; /* テキスト色を白に */
	font-size: 15px; /* ★ 日本語テキストのサイズ */
	font-weight: normal;
	/* ▼▼▼ 英語表記を上に表示するためのFlexbox設定 ▼▼▼ */
	display: flex;
	flex-direction: column;
	align-items: flex-start; /* ★ 左揃えに変更 */
	transition: color 0.3s ease;
	line-height: 1.2; /* 日本語テキストの行の高さを調整 */
}

/* ▼▼▼ data-en属性のテキストを疑似要素で表示 ▼▼▼ */
.mobile-nav a::before {
	content: attr(data-en);
	font-size: 22px; /* ★ 英語テキストのサイズ */
	margin-bottom: 5px; /* 英語と日本語の間隔 */
	opacity: 0.8;
}

.mobile-nav a:hover {
	color: #d2a84c; /* ホバー色をサイトのアクセントカラーに合わせる */
}

/* ▼▼▼ メニュー表示時の項目アニメーション ▼▼▼ */
.mobile-nav.is-active li {
	opacity: 1;
	transform: translateY(0);
	/* ★ 開く時の transition (少しゆっくり、遅延あり) */
	transition: opacity 0.4s ease-out, transform 0.4s ease-out, border-color 0.3s ease;
}

/* ★ モバイルナビ表示時にbodyのスクロールを禁止 */
/* body.modal-open と同じルールを適用 */
body.mobile-nav-open {
	overflow: hidden;
	/* スクロールバー分のガタつき防止 (padding-right はJSで制御) */
}

/* メインコンテンツのラッパー */
.main-wrapper {
	width: 100%; /* 幅は100% */
	margin: 0 auto; /* 中央揃え */
	background-color: #fff; /* 背景色 */
	/* ▼▼▼ スマホ表示での左右の余白を追加 ▼▼▼ */
	padding: 0 4%;
	box-sizing: border-box; /* paddingを含めて幅を計算 */
}


/* ===============================================
   CTAボタン
   =============================================== */
	.cta-button:hover {
		opacity: 0.9; /* ホバー時に少し透明にする */
		background-position: 0;
	}


/* ===============================================
   予約ボックス (Accessセクション下など)
	=============================================== */
 .reservation-box {
	margin: 20px 0 0 0;
	display: flex;
	flex-direction: column; /* ボタンを縦に並べる */
	align-items: center;    /* ボタンを中央に揃える */
	gap: 20px;              /* ボタン間の余白 */
 }


/* 予約ボタン 電話*/
.reservation-button.phone {
	/* ▼▼▼ ご依頼のレイアウトと装飾を適用 ▼▼▼ */
	display: flex;
	width: 270px;
	height: 80px;
	flex-direction: column;
	align-items: center;
	justify-content: center; /* 垂直・水平方向の中央揃え */
	gap: 4px;
	box-sizing: border-box;
	/* 装飾 */
	border-radius: 8px;
	border: 2px solid #EA5071;
	background: #FFF;
	box-shadow: 4px 4px 6px 0 rgba(0, 0, 0, 0.20);
	/* ホバーエフェクトをリセット */
	background-image: none;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.reservation-button.phone:hover {
	opacity: 1; /* 既存のホバー効果をリセット */
}

.phone-line-num {
	display: flex;
	align-items: baseline; /* アイコンとテキストのベースライン（下端）を揃えます */
	gap: 8px; /* アイコンと番号の間隔 */
}

.reservation-button.phone .phone-number {
	font-size: 26px;
	color: #EA5071;
	font-weight: bold;
	line-height: 1;
}

.reservation-button.phone .phone-hours {
	font-size: 15px;
	color: #3B2D25;
	font-weight: bold;
	line-height: 1;
}

/* 予約ボタン 電話*/
.reservation-button.line-button {
	/* ▼▼▼ ご依頼のレイアウトと装飾を適用 ▼▼▼ */
	display: flex;
	width: 270px;
	height: 80px;
	padding: 7px 10px;
	justify-content: center; /* アイコンとテキストを中央に配置 */
	align-items: center;
	gap: 3px;
	box-sizing: border-box;
	/* 装飾 */
	border-radius: 8px;
	background: #4CC764;
	box-shadow: 4px 4px 6px 0 rgba(0, 0, 0, 0.20);
	/* 既存スタイルのリセットと調整 */
	color: #fff;
	font-size: 22px;
	font-weight: bold;
	background-image: none;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.reserve-button.line-button:hover {
	opacity: 1;
}

.cta-button.line-button .line-button {
	width: 66px; /* アイコンサイズは維持 */
	height: 66px;
	margin-right: 0; /* gapで制御するためリセット */
}

.text-attention span {
	color:#da1515;
}

.hosoku {
	color: #4b8eba;
	font-weight: bold;
}

.extra-fee {
	color:#da1515;
	font-size: 14px;
}

/* --------------------------------------------------
		 フッター　セクション
-------------------------------------------------- */
.footer {
	background: #FFFDF5;
	padding: 2rem 0 .75rem 0;
	margin: 7rem 0 0 0;
	position: relative;
}

.footer::before {
	content: '';
	position: absolute;
	top: -71px;
	left: 0;
	width: 80px;
  height: 103.5px;
	background-image: url('/assets/images/common/cat-illust.png');
	background-repeat: no-repeat;
	background-size: cover;
}

.footer-content {
	width: 100%;
	margin: 0 auto 1.5rem;
	padding: 0 4%;
}

.footer-logo {
	width: 50%;
	height: auto;
	margin: 0 auto 1rem;
	text-align: center;
}

.footer-info {
	display: flex;
	align-items: center;
	gap: 20px;
	flex-direction: column;
}

.footer-contact {
	text-align: center;
}

.footer-tel {
	display: inline-flex;
	gap: 8px;
	align-items: center;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 25px;
	color: #3B2D25;
	line-height: 1;
	transition: opacity 0.3s ease;
}

.footer-tel .phone-icon {
	width: 16px;
	height: 16px;
}

.footer-hours {
	display: block;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 15px;
	font-weight: 400;
}

.footer-sns {
	display: flex;
	align-items: center;
	gap: 15px;
}

.footer .reserve-button.line, .footer .cta-button.insta {
	background: none;
	width: auto;
	height: auto;
	max-width: none;
	margin-top: 0;
	padding: 0;
	background-image: none;
	transition: opacity 0.3s ease;
}

.footer.cta-button.line .line-icon {
	width: 48px;
	height: 48px;
	margin-right: 0;
}

.copyright {
	font-size: 15px;
	text-align: center;
	display: block;
}

 /* フワッと出現するアニメーション */
 @keyframes fadeIn {
	from {
		opacity: 0;
		transform: translateY(10px) scale(0.9); /* 少し下から小さめに開始 */
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1); /* 元の位置・サイズに戻る */
	}
}


/* --------------------------------------------------
		ブレイクポイント: 768px以上
-------------------------------------------------- */
	@media (min-width: 768px) {
.header {
	/* PC表示で横並びにするための設定 */
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap; /* ★項目が折り返すように設定 */
	padding: 20px 40px 0 240px;
	background: #FFFDF3;
	position: relative; /* ロゴを絶対配置するための基準として追加 */
	height: 100%;
}

.header-logo {
	display: block;
	margin: 0; /* 中央揃えのマージンをリセット */
	line-height: 0; /* 画像下の余白対策 */
	position: absolute;
	top: 40%;
	left: 40px;
	transform: translateY(-50%);
	z-index: 10;
}

.header-logo img {
	max-width: 230px;
	height: auto;
}

.header-info {
	display: flex;
	align-items: center;
	gap: 20px;
	margin-left: auto;
}

/* 電話番号と営業時間エリア */
.header-contact {
	text-align: center;
}

/* 電話番号リンク */
.header-tel {
	display: inline-flex; /* アイコンとテキストを横並び＆中央揃え */
	align-items: center;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 32px;
	font-weight: 400;
	line-height: 32px; /* 100% */
	color: #3B2D25; /* 基本文字色 */
	text-decoration: none;
	transition: opacity 0.3s ease;
}

.header-tel:hover {
	opacity: 0.8;
}

.header-tel .phone-icon {
	width: 16px;
	height: 16px;
	margin-right: 8px; /* アイコンと番号の間隔 */
}

/* 営業時間 */
.header-hours {
	display: block; /* 電話番号の下に表示 */
	font-family: "Noto Sans JP", sans-serif;
	font-size: 15px;
	font-weight: 400;
}
/* SNSアイコンエリア */
.header-sns {
	display: flex;
	align-items: center;
	gap: 15px; /* アイコン間の間隔 */
}
/* ▲▲▲ ヘッダーのSNSアイコンボタンのスタイル調整 ▲▲▲ */

/* ▼▼▼ ヘッダーのSNSアイコンボタンのスタイル調整 ▼▼▼ */
.header .reserve-button.line,
.header .cta-button.insta {
	background: none; /* 背景を削除 */
	width: auto;      /* 幅を自動に */
	height: auto;     /* 高さを自動に */
	max-width: none;  /* 最大幅の制限を解除 */
	margin-top: 0;    /* 上マージンをリセット */
	padding: 0;       /* パディングをリセット */
	/* ホバーエフェクトもリセット */
	background-image: none;
	transition: opacity 0.3s ease;
}

.header .reserve-button.line:hover,
.header .cta-button.insta:hover {
	background-position: initial; /* ホバーエフェクトを無効化 */
	opacity: 0.8; /* 代わりに少し透明にする */
}

.header .cta-button.line .line-icon {
	width: 48px; /* LINEアイコンの幅 */
	height: 48px; /* LINEアイコンの高さ */
	margin-right: 0; /* アイコンの右マージンをリセット */
}

.header .cta-button.insta .insta-icon {
	width: 46px; /* Instagramアイコンの幅 */
	height: 46px; /* Instagramアイコンの高さ */
	margin-right: 0; /* アイコンの右マージンをリセット */
}

.hamburger-menu {
	display: none;
}

.global-nav {
	/* max-width, margin は不要になるので削除 */
	width: 100%;
	margin-top: 50px; /* 上の要素とのマージン */
	/* ▼▼▼ display:flex を追加して、中身を右寄せに ▼▼▼ */
	display: flex;
	justify-content: flex-end;
 }

.global-nav ul {
	display: flex;
	justify-content: center;   /* ご指定の通り項目を中央揃え */
	align-items: flex-end;   /* ご指定の通り下揃え */
	height: 46px;            /* ご指定の通り高さを46pxに */
	width: 650px;            /* ★ 全体の幅を640pxに固定 */
	list-style: none;
	margin: 0;                 /* ★ autoマージンを削除 */
}

/* liタグのスタイルはulで制御するため、ここではリセットのみ */
.global-nav li {
	margin: 0;
	/* ▼▼▼ liをFlexコンテナにして、アイコンとテキストを縦に並べる準備 ▼▼▼ */
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-end;
	height: 100%; /* 親(ul)の高さいっぱいに広げる */
	position: relative;
}

.global-nav a {
	font-family: 'Noto Sans JP', sans-serif; /* ナビゲーションはサンセリフ体 */
	color: #3B2D25;
	font-size: 20px;
	font-weight: normal;
	padding: 0 25px 5px 25px; /* アイコン分の高さを考慮し、テキストに少し底パディングを追加 */
	transition: color 0.3s ease;
	position: relative;
	white-space: nowrap;
}

.global-nav a:hover {
	 color: #EA5071;
 }

/* ▼▼▼ 疑似要素をliに付け替え、:has()で.currentを持つaタグを含むliを選択 ▼▼▼ */
.global-nav li:has(a.current)::before {
	content: '';
	display: block; /* ★ ブロック要素として扱うために追加 */
	width: 26px;  /* SVGファイルの幅に合わせる */
	height: 22px; /* SVGファイルの高さに合わせる */
	flex-shrink: 0; /* ★ コンテナが小さくても縮まないように指定 */
	background-image: url('/assets/images/common/pow-icon.svg');
	background-repeat: no-repeat;
	position: absolute; /* 位置を調整するための基準 */
	top: -3px;
}

.global-nav a:hover::after {
	width: 100%;
}

.global-nav a.current {
	color: #EA5071;
}

.main-wrapper {
	/* ▼▼▼ PCでは左右のpaddingをリセット（各セクションのinnerで制御するため） ▼▼▼ */
	padding: 0 4%;
}

.reservation-button {
	width: 270px; /* PCでのボタン幅を固定 */
	margin-top: 0; /* display:flex により不要に */
}


/* ===============================================
   ページトップへ戻るボタン
   =============================================== */
	 #backToTop {
		position: fixed;
		bottom: 25px;
		right: 25px;
		width: 60px;
		height: 60px;
		border: none;
		padding: 0;
		cursor: pointer;
		z-index: 998;
		/* overflow: hidden; は不要なら削除 */
		/* ▼ 初期状態 (非表示) ▼ */
		opacity: 0;
		visibility: hidden;
		transform: translateY(10px);
		/* ▲ 初期状態 (非表示) ▲ */
		/* ▼ 表示・非表示のアニメーション ▼ */
		/* background-color の transition は不要なら削除 */
		transition: opacity 0.4s ease, visibility 0.4s ease, transform 0.4s ease;
	}

	/* ▼ 表示状態のスタイル (JSで is-visible クラスを付与) ▼ */
	#backToTop.is-visible {
		opacity: 1;
		visibility: visible;
		transform: translateY(0); /* ★ 元の位置に戻す */
	}

	/* ▼ ボタン内のアイコンコンテナの配置調整 ▼ */
	#backToTop .scrollbutton { /* ボタン自体に scrollbutton クラスが付いているので不要かも？ */
		width: 100%;
		height: 100%;
		position: relative; /* アイコンの絶対配置の基準 */
	}

/* ローカルナビゲーション
-------------------------------------------------- */
.local-nav {
  /* 初期状態: 非表示または通常位置 */
  background-color: #fff; /* 背景色 */
  border-bottom: 1px solid #eee; /* 下線 */
  padding: 0;
  box-sizing: border-box;
  width: 100%;
  z-index: 500; /* ヘッダー(仮に1000)より下、コンテンツより上 */
  /* ▼ アニメーションのための初期設定 ▼ */
  transition: opacity 0.4s ease, visibility 0.4s ease, transform 0.4s ease;
	display: block;
}

.local-nav.is-fixed {
  /* 固定表示時のスタイル */
  position: fixed;
  top: 0; /* 画面上部に固定 */
  left: 0;
  display: block; /* 表示する */
  opacity: .8;
  visibility: visible;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); /* 影 */
}

.local-nav-inner {
  max-width: 1024px; /* コンテンツの最大幅に合わせる */
  margin: 0 auto; /* 中央揃え */
  display: flex;
  justify-content: center; /* ナビ項目を中央揃え */
}

.local-nav ul {
  display: flex;
  margin: 0;
	width: 1024px;
	justify-content: flex-start;
}

.local-nav li {
  padding: 0 0 0 40px;
}

.local-nav a {
  display: block;
  padding: 15px 0px; /* 上下のパディングで高さを確保 */
  color: #3B2D25;
  text-decoration: none;
  font-size: 13px;
  font-family: "Noto Sans JP", sans-serif;
  transition: color 0.3s ease;
  white-space: nowrap; /* 折り返さない */
  position: relative; /* 下線アニメーション用 */
}

.local-nav a::after { /* ホバー時の下線アニメーション */
  content: '';
  position: absolute;
  bottom: 10px; /* 下線の位置 */
  left: 50%;
  width: 0;
  height: 1px;
  background-color: #4b8eba;
  transition: all 0.3s ease;
  transform: translateX(0);
}

.local-nav a:hover {
  color: #4b8eba; /* ホバー時の文字色 */
}

.local-nav a:hover::after {
  width: 100%;
	left: 0;
}

.local-nav .material-symbols-outlined {
	font-size: 22px;
	vertical-align: bottom;
	margin-left: 4px;
}

/* --------------------------------------------------
		フッター　セクション
-------------------------------------------------- */
.footer {
	background: #FFFDF5;
	padding: 48px 0 .75rem 0;
	margin: 120px 0 0 0;
}

.footer::before {
	content: "";
	left: 100px;
}


}

/* --------------------------------------------------
		ブレイクポイント: 1024px (PC以上)
-------------------------------------------------- */
@media (min-width: 1024px) {
	.header {
		/* PC表示で横並びにするための設定 */
		display: flex;
		justify-content: space-between;
		align-items: center;
		flex-wrap: wrap; /* ★項目が折り返すように設定 */
		padding: 20px 40px 0 240px;
		background: #FFFDF3;
		position: relative; /* ロゴを絶対配置するための基準として追加 */
		height: 100%;
	}

	.header-logo {
		display: block;
		margin: 0; /* 中央揃えのマージンをリセット */
		line-height: 0; /* 画像下の余白対策 */
		position: absolute;
		top: 50%;
		left: 80px;
		transform: translateY(-50%);
		z-index: 10;
	}

	.header-logo img {
		max-width: 230px;
		height: auto;
	}

	/* ハンバーガーメニューを非表示 */
	.hamburger {
		display: none;
	}

	/* ドロワーメニューを非表示 */
	.drawer-nav {
		display: none;
	}

	.footer {
		margin: 160px 0 0 0;
	}

	.footer::before {
		content: "";
		left: 10%;
	}

	#backToTop {
		bottom: 40px;
	}

}

/* --------------------------------------------------
ブレイクポイント: 1440px (PC以上)
-------------------------------------------------- */
		@media (min-width: 1440px) {
		:root {
			--header-height: 215px; /* ← 確認したヘッダーの高さを設定 */
		}

		.footer-content {
			padding: 0;
		}


	}