:root {
	--header-height-initial: 80px;
	/* 字體設定 */
	--font-primary: 'Noto Sans TC', 'Inter', sans-serif;
	--font-display: 'Noto Serif TC', 'Crimson Text', serif;
	/* 冬季白色冰藍主題顏色系統 */
	--primary-color: #1a3a5f;
	--accent-color: #60A5FA;
	--accent-light: #FEF3C7;
	--text-primary: #333333;
	--text-secondary: #6c757d;
	--background-primary: #FFFFFF;
	--background-secondary: #F7F9FC;
	--border-light: #EAECEF;
	/* 漸層 */
	--gradient-primary: linear-gradient(135deg, var(--primary-color) 0%, #1a3a5f 100%);
	--gradient-accent: linear-gradient(135deg, var(--accent-color) 0%, #b48f45 100%);
	/* 陰影與圓角 */
	--shadow-soft: 0 4px 8px rgba(0, 0, 0, 0.05);
	--shadow-medium: 0 8px 16px rgba(0, 0, 0, 0.1);
	--shadow-large: 0 12px 24px rgba(0, 0, 0, 0.15);
	--border-radius-md: 8px;
	--border-radius-lg: 12px;
	/* 動畫效果 */
	--transition-fast: all 0.2s ease-in-out;
	--transition-medium: all 0.3s ease-in-out;
}

/* --- UI/UX 修正 END --- */
html {
	scroll-behavior: smooth;
	scroll-padding-top: 80px;
	/* 為 anchor-nav-section 預留空間 */
}

/* --- UI/UX 修正 START --- */
/* 2. 調整為現代懸浮式導覽列版面，移除 body 的 padding-top */
body {
	font-family: var(--font-primary);
	background: var(--background-secondary);
	color: var(--text-primary);
	line-height: 1.75;
	/* padding-top: var(--header-height-initial);  <- 此行已移除，適應新 header */
}

/* --- UI/UX 修正 END --- */
h1,
h2,
h3,
.section-title {
	font-family: var(--font-display);
	color: var(--text-primary);
	font-weight: 600;
}

/* ═══════════════════════════════════════════════════════════
           HERO - 統一風格版（日本訂製）
        ═══════════════════════════════════════════════════════════ */
.hero {
	position: relative;
	height: 100vh;
	min-height: 700px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
	overflow: hidden;
}

.hero-bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background:
		linear-gradient(to bottom, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.6) 50%, rgba(10, 10, 10, 0.98) 100%),
		url('/assets/images/japan--jap002.webp');
	background-size: cover;
	background-position: center;
	transform: scale(1.05);
	animation: heroZoom 20s ease-in-out infinite alternate;
}

/* ═══ 浮動粒子效果 ═══ */
.hero::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background:
		radial-gradient(2px 2px at 20% 30%, rgba(197, 160, 101, 0.3), transparent),
		radial-gradient(2px 2px at 80% 20%, rgba(197, 160, 101, 0.2), transparent),
		radial-gradient(1px 1px at 40% 70%, rgba(255, 255, 255, 0.15), transparent),
		radial-gradient(1px 1px at 60% 50%, rgba(197, 160, 101, 0.25), transparent),
		radial-gradient(2px 2px at 90% 80%, rgba(255, 255, 255, 0.1), transparent);
	background-size: 300px 300px;
	animation: sparkle 8s linear infinite;
	z-index: 1;
	pointer-events: none;
}

@keyframes sparkle {
	0% {
		transform: translateY(0);
	}

	100% {
		transform: translateY(-300px);
	}
}

@keyframes heroZoom {
	0% {
		transform: scale(1.05);
	}

	100% {
		transform: scale(1);
	}
}

.hero-content {
	position: relative;
	z-index: 2;
	max-width: 900px;
	padding: 0 24px;
}

.hero-eyebrow {
	font-size: clamp(0.85rem, 1.5vw, 1rem);
	color: #C5A065;
	letter-spacing: 0.3em;
	margin-bottom: 20px;
	font-weight: 400;
}

.hero-content h1 {
	font-family: 'Playfair Display', 'Crimson Text', serif;
	font-size: clamp(3rem, 8vw, 6rem);
	font-weight: 400;
	color: #FFFFFF;
	margin: 0 0 10px 0;
	line-height: 1.1;
	letter-spacing: -0.02em;
}

.hero-content h1 em {
	font-family: 'Playfair Display', 'Crimson Text', serif;
	font-style: italic;
	font-weight: 400;
	color: #C5A065;
	display: block;
	font-size: 0.85em;
	margin-top: 5px;
}

.hero-subtitle {
	font-size: clamp(0.95rem, 1.8vw, 1.15rem);
	color: rgba(255, 255, 255, 0.8);
	max-width: 600px;
	margin: 25px auto 35px;
	line-height: 1.9;
	font-weight: 300;
}

.hero-cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: transparent;
	color: #C5A065;
	border: 1px solid #C5A065;
	padding: 14px 35px;
	font-size: 0.95rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-decoration: none;
	transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.hero-cta:hover {
	background: #C5A065;
	color: #000;
	transform: translateY(-2px);
	box-shadow: 0 15px 40px rgba(197, 160, 101, 0.3);
}

.hero-cta span {
	transition: transform 0.3s ease;
}

.hero-cta:hover span {
	transform: translateX(5px);
}

/* ═══ 滾動提示 ═══ */
.scroll-indicator {
	position: absolute;
	bottom: 40px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
}

.scroll-indicator span {
	font-size: 0.7rem;
	color: rgba(255, 255, 255, 0.5);
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.scroll-line {
	width: 1px;
	height: 60px;
	background: linear-gradient(to bottom, rgba(197, 160, 101, 0.8), transparent);
	animation: float 2s ease-in-out infinite;
}

@keyframes float {

	0%,
	100% {
		transform: translateY(0);
		opacity: 1;
	}

	50% {
		transform: translateY(10px);
		opacity: 0.5;
	}
}

/* ═══ Hero 響應式 ═══ */
@media (max-width: 768px) {
	.hero {
		min-height: 100vh;
	}

	.hero-content h1 {
		font-size: clamp(2.5rem, 12vw, 4rem);
	}

	.hero-content h1 em {
		font-size: 0.8em;
	}

	.hero-subtitle {
		font-size: 0.95rem;
		padding: 0 10px;
	}

	.scroll-indicator {
		bottom: 25px;
	}

	.scroll-line {
		height: 40px;
	}
}

/* 電腦版設定 */
#hero-section h1,
#hero-section .display-3 {
	color: #FFFFFF !important;
	font-size: clamp(2.5rem, 5vw, 4.5rem) !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	margin-bottom: 1.5rem !important;
	text-shadow: 3px 3px 12px rgba(0, 0, 0, 0.8), 0 0 30px rgba(0, 0, 0, 0.6) !important;
	letter-spacing: 0.02em !important;
	/* 基礎設定 */
	display: block !important;
	width: 100% !important;
}

/* ==================================================
           【重要修正】手機版強制橫排樣式
           ================================================== */
@media (max-width: 767px) {
	#hero-section {
		min-height: 60vh !important;
		height: auto !important;
		padding-top: 80px !important;
		padding-bottom: 2rem !important;
		/* 確保 flex 容器方向正確 */
		display: flex !important;
		flex-direction: column !important;
		justify-content: center !important;
		text-align: center !important;
	}

	/* 強制內容區塊滿寬 */
	#hero-section .container {
		padding: 1.5rem 1rem !important;
		text-align: center !important;
		width: 100% !important;
		max-width: 100% !important;
		display: block !important;
	}

	/* 【核心修正】強制標題橫排、置中、並允許換行 */
	#hero-section h1,
	#hero-section .display-3 {
		font-size: 1.8rem !important;
		margin-bottom: 1rem !important;
		line-height: 1.3 !important;
		/* 強制覆蓋任何直排設定 */
		writing-mode: horizontal-tb !important;
		-webkit-writing-mode: horizontal-tb !important;
		text-orientation: mixed !important;
		direction: ltr !important;
		/* 允許自動換行，但保持單詞完整 */
		white-space: normal !important;
		word-break: keep-all !important;
		/* 佈局設定 */
		text-align: center !important;
		display: block !important;
		width: 100% !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}

	#hero-section p,
	#hero-section .lead {
		font-size: 0.9rem !important;
		margin-top: 0 !important;
		margin-bottom: 1rem !important;
		line-height: 1.6 !important;
		text-align: center !important;
		/* 確保副標題也橫排 */
		writing-mode: horizontal-tb !important;
		white-space: normal !important;
		width: 100% !important;
	}

	.hero-map {
		margin-top: 0.8rem !important;
		margin-bottom: 0.8rem !important;
		text-align: center !important;
	}

	.hero-map p {
		font-size: 0.85rem !important;
		margin: 0 !important;
	}

	.btn-hero,
	#hero-section .btn-lg {
		padding: 0.75rem 1.5rem !important;
		font-size: 1rem !important;
		margin: 0 auto !important;
		display: inline-block !important;
	}
}

#hero-section p {
	color: #E0E7FF !important;
	font-size: clamp(1.1rem, 2.5vw, 1.5rem) !important;
	line-height: 1.8 !important;
	text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.8), 0 0 20px rgba(0, 0, 0, 0.5) !important;
	max-width: 800px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* --- UI/UX 修正 END --- */
.btn-hero {
	background: var(--gradient-accent);
	border: none;
	color: var(--primary-color);
	padding: 12px 40px;
	font-size: 1.1rem;
	font-weight: 600;
	border-radius: 50px;
	transition: var(--transition-fast);
}

.btn-hero:hover {
	transform: translateY(-3px);
	box-shadow: var(--shadow-large);
	color: var(--primary-color);
}

/* =================================================================
         * 錨點導覽列 (Sticky Navigation Bar)
         * 方案 A：動態主題色毛玻璃 - 春節館（紅色主題）
         * ================================================================= */
.anchor-nav-section {
	background: rgba(26, 58, 95, 0.88) !important;
	/* 冬季藍色半透明 */
	backdrop-filter: blur(15px) !important;
	/* 毛玻璃效果 */
	-webkit-backdrop-filter: blur(15px) !important;
	/* 相容 Safari */
	padding: 1rem 0 !important;
	box-shadow: 0 2px 20px rgba(0, 0, 0, 0.3) !important;
	border-bottom: 1px solid rgba(255, 255, 255, 0.15) !important;
	/* 底線光暈 */
	position: sticky !important;
	/* 核心屬性: 啟用黏性定位 */
	top: 80px !important;
	/* 修正: 設定在主導覽列之下 */
	z-index: 1025 !important;
	/* 修正: 略低於主導覽列但高於其他內容 */
	transition: all 0.3s ease-in-out !important;
	width: 100% !important;
	left: 0 !important;
	margin: 0 !important;
	/* 強制確保在所有裝置上的黏性效果 */
	-webkit-position: sticky;
	-moz-position: sticky;
	-ms-position: sticky;
	-o-position: sticky;
}

.anchor-nav-container {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
}

/* =================================================================
         * 確保主導覽列保持最高優先級
         * =================================================================*/
.site-header.fixed-top {
	z-index: 1030 !important;
	/* Bootstrap 預設值，保持最高 */
	position: fixed !important;
	top: 0 !important;
	width: 100% !important;
}

/* 當主導覽列隱藏時，調整子導覽列位置 */
.site-header.header-hidden+main .anchor-nav-section,
.site-header.is-hidden+main .anchor-nav-section {
	top: 0 !important;
	/* 主導覽列隱藏時移至頂部 */
}

.anchor-main-menu {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.5rem;
	width: 100%;
	margin: 0 auto;
}

.airline-btn {
	font-family: var(--font-primary);
	font-weight: 600;
	color: rgba(255, 255, 255, 0.95) !important;
	/* 白字高對比 */
	text-decoration: none;
	padding: 0.7rem 1.8rem;
	border-radius: 50px;
	transition: var(--transition-fast);
	background: rgba(255, 255, 255, 0.1) !important;
	/* 半透明白背景 */
	border: 2px solid rgba(255, 255, 255, 0.3) !important;
	text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.3) !important;
	/* 文字陰影提升可讀性 */
}

.airline-btn:hover {
	color: #FFD700 !important;
	/* 金色懸停 */
	background: rgba(255, 255, 255, 0.2) !important;
	border-color: #FFD700 !important;
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(255, 215, 0, 0.3) !important;
}

.airline-btn.active {
	background: linear-gradient(135deg, #FFD700, #FFA500) !important;
	/* 金色漸層 */
	color: #1a1a1a !important;
	/* 深色文字 */
	border-color: #FFD700 !important;
	font-weight: 700 !important;
	text-shadow: none !important;
	box-shadow: 0 4px 15px rgba(255, 215, 0, 0.4) !important;
}

.intro-section {
	padding: 5rem 1rem;
	background-color: var(--background-primary);
}

.intro-section .section-title {
	text-align: center;
	margin-bottom: 3rem;
}

/* =================================================================
         * 輝達強檔卡片區塊 (全新設計)
         * ================================================================= */
.promo-card {
	position: relative;
	height: 200px;
	overflow: hidden;
	box-shadow: var(--shadow-medium);
	transition: var(--transition-medium);
	cursor: pointer;
	border-radius: var(--border-radius-lg);
	color: white;
}

.promo-card:hover {
	box-shadow: var(--shadow-large);
	transform: translateY(-5px);
}

.promo-card-bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-size: cover;
	background-position: center;
	transition: transform 0.4s ease-out;
}

.promo-card:hover .promo-card-bg {
	transform: scale(1.05);
}

.promo-card-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	padding: 1.5rem;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: flex-start;
	background-color: rgba(10, 27, 46, 0.85);
	clip-path: polygon(0 0, 75% 0, 50% 100%, 0% 100%);
}

.promo-card-title {
	font-family: var(--font-display);
	font-size: 1.5rem;
	font-weight: 700;
	margin-bottom: 0.5rem;
	text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.5);
	color: white;
}

.promo-card-divider {
	width: 40px;
	height: 2px;
	background-color: rgba(255, 255, 255, 0.8);
	margin-bottom: 0.75rem;
}

.promo-card-subtitle {
	font-family: var(--font-primary);
	font-size: 0.8rem;
	font-weight: 400;
	line-height: 1.6;
	margin-bottom: 0;
	color: white;
	flex-grow: 1;
}

.promo-card-btn {
	background-color: transparent;
	color: white;
	padding: 0.4rem 1rem;
	border-radius: 25px;
	text-decoration: none;
	font-weight: 600;
	transition: var(--transition-fast);
	border: 1px solid white;
	font-size: 0.8rem;
	white-space: nowrap;
	min-width: fit-content;
}

.promo-card-btn:hover {
	background-color: var(--accent-color);
	border-color: var(--accent-color);
	color: var(--primary-color);
	transform: scale(1.05);
}

/* =================================================================
         * 輝達強檔卡片區塊結束
         * ================================================================= */
.airline-section {
	padding: 6rem 0;
	border-bottom: 1px solid var(--border-light);
}

/* 網頁版：容器左右留白 - 加強權重 */
@media (min-width: 768px) {

	.airline-section .container,
	#japan-cny .container,
	#luxury-cny .container,
	#hokuriku-cny,
	#shikoku-cny,
	#kyushu-cny,
	#okinawa-cny {
		max-width: 90% !important;
		margin: 0 auto !important;
	}
}

@media (min-width: 1200px) {

	.airline-section .container,
	#japan-cny .container,
	#luxury-cny .container,
	#hokuriku-cny,
	#shikoku-cny,
	#kyushu-cny,
	#okinawa-cny {
		max-width: 1140px !important;
		margin: 0 auto !important;
	}
}

/* =================================================================
         * 標題大小統一規範
         * ================================================================= */
/* H1 - Hero 主標題：響應式大標題 */
h1,
#hero-section h1 {
	font-size: clamp(2.5rem, 5vw, 4.5rem) !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
}

/* H2 - 區塊主標題：統一大小（總監確認版）*/
h2,
.airline-title,
.section-title {
	font-size: 1.8rem !important;
	/* 從 2.2rem 縮小到 1.8rem */
	font-weight: 700 !important;
	line-height: 1.3 !important;
	color: var(--text-primary) !important;
}

/* H3 - 區域標題：統一大小（總監確認版）*/
h3,
.region-title {
	font-size: 1.25rem !important;
	/* 從 1.5rem 縮小到 1.25rem */
	font-weight: 600 !important;
	line-height: 1.4 !important;
	color: var(--primary-color) !important;
	text-align: center !important;
	border-bottom: 2px solid var(--accent-color) !important;
	padding-bottom: 0.5rem !important;
}

/* 手機版標題調整 */
@media (max-width: 767px) {

	h2,
	.airline-title,
	.section-title {
		font-size: 1.5rem !important;
		/* 從 1.8rem 縮小到 1.5rem */
	}

	h3,
	.region-title {
		font-size: 1.1rem !important;
		/* 從 1.3rem 縮小到 1.1rem */
	}
}

.section-header {
	text-align: center;
	margin-bottom: 4rem;
}

.airline-title {
	/* 修改: 移除特定字體大小，使其與 .section-title (h2) 一致 */
	margin-bottom: 1rem;
	color: var(--text-primary);
}

.airline-subtitle {
	font-size: 0.95rem;
	/* 從 1rem 略微縮小 */
	color: var(--text-secondary);
	font-weight: 400;
	text-align: center;
}

/* =================================================================
         * 行程卡片樣式更新 (套用新範本)
         * ================================================================= */
.product-card {
	background-color: var(--background-primary);
	border: 1px solid var(--border-light);
	border-radius: var(--border-radius-lg);
	transition: var(--transition-medium);
	cursor: pointer;
	overflow: hidden;
	box-shadow: var(--shadow-soft);
	margin-bottom: 1.5rem;
}

.product-card:hover {
	transform: translateY(-5px);
	box-shadow: var(--shadow-large);
	border-color: var(--accent-color);
}

/* 網頁版：調整左圖右字比例 (黃金比例) */
.product-card .row {
	display: flex;
	align-items: stretch;
}

/* =================================================================
         * 手機版：隱藏圖片，只顯示文字 (參考山富旅遊手機版)
         * 修正：支援所有圖片列的 class 組合
         * ================================================================= */
@media (max-width: 767px) {

	/* 隱藏所有圖片列（不論是 col-4 或 col-md-2） */
	.product-card .col-4,
	.product-card .col-md-2,
	.product-card [class*="col-"][class*="2"],
	.product-card [class*="col-"][class*="4"] {
		display: none !important;
	}

	/* 文字列佔滿全寬 */
	.product-card .col-8,
	.product-card .col-md-10,
	.product-card [class*="col-"][class*="8"],
	.product-card [class*="col-"][class*="10"] {
		flex: 0 0 100% !important;
		max-width: 100% !important;
	}

	/* 手機版字體調整（總監確認版）*/
	.product-card .card-title {
		font-size: 1.05rem;
		/* 從 1.15rem 縮小到 1.05rem */
		line-height: 1.5;
		margin-bottom: 0.75rem;
	}

	.product-card .price-tag {
		font-size: 1.4rem;
		/* 從 1.6rem 縮小到 1.4rem */
	}
}

/* 網頁版：顯示左圖右字 */
@media (min-width: 768px) {

	/* 圖片列：使用 md breakpoint 的設定 */
	.product-card .col-4.col-md-2,
	.product-card .col-md-2 {
		flex: 0 0 16.666667% !important;
		max-width: 16.666667% !important;
		display: block !important;
	}

	.product-card .col-4:not(.col-md-2) {
		flex: 0 0 33.333333% !important;
		max-width: 33.333333% !important;
		display: block !important;
	}

	/* 文字列：使用 md breakpoint 的設定 */
	.product-card .col-8.col-md-10,
	.product-card .col-md-10 {
		flex: 0 0 83.333333% !important;
		max-width: 83.333333% !important;
	}

	.product-card .col-8:not(.col-md-10) {
		flex: 0 0 66.666667% !important;
		max-width: 66.666667% !important;
	}
}

.product-image-container {
	width: 100%;
	height: 180px;
	/* 固定高度 */
	overflow: hidden;
	border-radius: 0;
	/* 改為直角格式 */
	margin: 0;
	position: relative;
}

.product-image-container img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transition: var(--transition-medium);
}

.product-card:hover .product-image-container img {
	transform: scale(1.05);
}

.product-card .card-body {
	padding: 1.25rem;
	display: flex;
	flex-direction: column;
	height: 100%;
}

/* 桌面版：標題和價格並排，徽章在底部 */
.product-card .card-body>.row {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
}

.product-card .title-price-row {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: 0.75rem;
}

.product-card .title-section {
	flex: 1;
	padding-right: 1rem;
}

.product-card .price-section {
	flex: 0 0 auto;
	text-align: right;
	min-width: 150px;
}

.product-card .badges-section {
	margin-bottom: 0.75rem;
	text-align: left;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.product-card .promo-badge {
	background: transparent;
	color: #C9A961;
	padding: 4px 12px;
	font-size: 0.8rem;
	border-radius: 15px;
	font-weight: 600;
	display: inline-block;
	border: 1.5px solid #C9A961;
}

.product-card .card-title {
	font-weight: 700;
	font-size: 1.2rem;
	/* 從 1.4rem 縮小到 1.2rem（總監確認版）*/
	color: var(--text-primary);
	margin-bottom: 0.75rem;
	line-height: 1.5;
}

.product-card .airline-prefix {
	font-weight: 600;
	margin-right: 8px;
}

.product-card .description {
	font-size: 0.9rem;
	color: var(--text-secondary);
	line-height: 1.5;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin-top: 0.5rem;
}

.product-card .price-tag {
	font-size: 1.35rem;
	/* 從 1.5rem 縮小到 1.35rem（總監確認版）*/
	font-weight: bold;
	color: var(--accent-color);
	margin-bottom: 0.5rem;
}

/* original-price 區塊已從 HTML 中刪除，保留此 CSS 以防萬一 */
.product-card .original-price,
.original-price {
	display: none !important;
}

/* 隱藏描述文字 */
.product-card .description {
	display: none !important;
}

/* 移除 NT$ 英文 - 直接透過 CSS 隱藏 */
.product-card .price-tag {
	font-size: 1.5rem;
	font-weight: bold;
	color: #C9A961;
}

.product-card .promo-badge {
	background: transparent;
	color: #C9A961;
	padding: 4px 12px;
	font-size: 0.8rem;
	border-radius: 15px;
	font-weight: 600;
	display: inline-block;
	border: 1.5px solid #C9A961;
}

.starlux-card .airline-prefix {
	color: #D50000;
}

.vietjet-card .airline-prefix {
	color: #F19100;
}

.starlux-taichung-card .airline-prefix {
	color: #8E24AA;
}

.spring-festival-card .airline-prefix {
	color: #FF6B35;
}

.starlux-card .promo-badge {
	background: linear-gradient(135deg, #D50000 0%, #B71C1C 100%);
	color: white;
}

.vietjet-card .promo-badge {
	background: linear-gradient(135deg, #F19100 0%, #E65100 100%);
	color: white;
}

.starlux-taichung-card .promo-badge {
	background: linear-gradient(135deg, #8E24AA 0%, #6A1B9A 100%);
	color: white;
}

.spring-festival-card .promo-badge {
	background: transparent !important;
	color: #C9A961 !important;
	border: 1.5px solid #C9A961 !important;
}

/* =================================================================
         * 專業UI/UX優化 - 視覺增強與微互動
         * ================================================================= */
/* 1. 產品卡片懸停效果提升 */
.product-card {
	transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	position: relative;
	overflow: hidden;
}

.product-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(252, 211, 77, 0.1), transparent);
	transition: left 0.6s ease;
	pointer-events: none;
}

.product-card:hover::before {
	left: 100%;
}

.product-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15) !important;
}

/* 2. 標題hover效果 */
.product-card .card-title {
	transition: color 0.3s ease;
}

.product-card:hover .card-title {
	color: var(--primary-color);
}

/* 3. 圖片zoom效果 */
.product-image-container {
	overflow: hidden;
	border-radius: 8px 0 0 8px;
}

.product-image-container img {
	transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.product-card:hover .product-image-container img {
	transform: scale(1.08);
}

/* 4. 區域標題美化 */
.region-title {
	position: relative;
	display: block;
	padding-bottom: 1rem;
	text-align: center;
}

.region-title::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 80px;
	height: 3px;
	background: linear-gradient(90deg, #B91C1C 0%, #FCD34D 50%, #B91C1C 100%);
	border-radius: 2px;
	box-shadow: 0 2px 8px rgba(185, 28, 28, 0.3);
}

/* 5. 徽章3D效果 */
.promo-badge {
	box-shadow: 0 2px 8px rgba(201, 169, 97, 0.2);
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.promo-badge:hover {
	transform: translateY(-2px) scale(1.05);
	box-shadow: 0 4px 12px rgba(201, 169, 97, 0.4);
}

/* 6. 價格標籤動態效果 */
.price-tag {
	position: relative;
	transition: all 0.3s ease;
}

.product-card:hover .price-tag {
	transform: scale(1.05);
	text-shadow: 0 2px 8px rgba(201, 169, 97, 0.3);
}

/* 7. 出發日期按鈕脈衝效果 */
@keyframes pulse {

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

	50% {
		transform: scale(1.02);
	}
}

.departure-date-item:hover {
	animation: pulse 0.6s ease-in-out;
}

/* 8. 平滑滾動優化 */
html {
	scroll-behavior: smooth;
}

/* 9. Section間距優化 */
.airline-section,
.faq-section {
	scroll-margin-top: 100px;
	/* 考慮固定導航列高度 */
}

/* 10. 響應式字體優化 */
@media (max-width: 768px) {
	.region-title {
		font-size: 1.3rem !important;
	}

	/* 手機版產品標題字體加大 */
	.product-card .card-title {
		font-size: 1.1rem !important;
		line-height: 1.5;
		font-weight: 600;
	}

	.price-tag {
		font-size: 1.2rem !important;
	}
}

/* 11. Loading狀態優化 */
.product-card {
	animation: fadeInUp 0.6s ease-out both;
}

@keyframes fadeInUp {
	from {
		opacity: 0;
		transform: translateY(20px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* 12. 錨點導航美化 */
.anchor-nav-section {
	backdrop-filter: blur(10px);
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

.airline-btn {
	position: relative;
	transition: all 0.3s ease;
}

.airline-btn::before {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 0;
	height: 3px;
	background: linear-gradient(90deg, #B91C1C, #FCD34D);
	transform: translateX(-50%);
	transition: width 0.3s ease;
	border-radius: 2px 2px 0 0;
}

.airline-btn:hover::before,
.airline-btn.active::before {
	width: 80%;
}

.airline-btn:hover {
	transform: translateY(-2px);
}

/* =================================================================
         * 行程卡片樣式更新結束
         * ================================================================= */
/* 促銷資訊樣式 */
.promo-info {
	margin: 0.75rem 0;
	padding: 0.5rem 0.75rem;
	background: transparent;
	border-left: 3px solid #C9A961;
	border-radius: 4px;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.promo-info-icon {
	color: #C9A961;
	font-size: 1rem;
}

.promo-info-text {
	font-size: 0.85rem;
	color: #C9A961;
	font-weight: 600;
}

/* 刪除優惠方案說明 */
.promo-info-note {
	display: none;
}

/* 出發日期與價格同一排 */
.departure-price-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 1rem;
	flex-wrap: wrap;
	gap: 1rem;
}

/* 出發日期樣式 - 橫向排列 */
.departure-dates {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.5rem;
	flex: 1;
}

.departure-date-item {
	display: inline-block;
	padding: 0.4rem 0.75rem;
	background: transparent;
	border: 1.5px solid #C9A961;
	border-radius: 6px;
	font-size: 0.85rem;
	color: #C9A961;
	font-weight: 600;
	transition: all 0.2s ease;
	cursor: pointer;
	white-space: nowrap;
}

.departure-date-item:hover {
	background: #C9A961;
	color: white;
	transform: translateY(-2px);
	box-shadow: 0 4px 8px rgba(201, 169, 97, 0.3);
}

.departure-date-item .date-label {
	display: none;
}

.departure-date-more {
	color: #C9A961;
	font-weight: 600;
	text-decoration: none;
	font-size: 0.85rem;
	padding: 0.4rem 0.75rem;
	border: 1.5px dashed #C9A961;
	border-radius: 6px;
	transition: all 0.2s ease;
}

.departure-date-more:hover {
	background: #C9A961;
	color: white;
	text-decoration: none;
}

/* 價格區域固定在右下角 */
.price-favorite-container {
	display: flex;
	justify-content: flex-end;
	align-items: center;
}

.price-section {
	text-align: right;
}

.product-card .price-tag {
	font-size: 1.5rem;
	font-weight: bold;
	color: #C9A961;
	text-align: right;
}

/* 隱藏愛心圖示 */
.favorite-icon {
	display: none;
}

/* 搜尋列樣式 - 修正置中問題 */
#search-filter-container {
	max-width: 1200px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 15px !important;
	padding-right: 15px !important;
}

.search-filter-section {
	background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
	padding: 1.5rem;
	border-radius: 12px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
	margin-bottom: 2rem;
	border: 1px solid #e9ecef;
	margin-left: auto;
	margin-right: auto;
}

.search-filter-title {
	font-size: 1rem;
	/* 從 1.1rem 縮小到 1rem（總監確認版）*/
	font-weight: 600;
	color: var(--primary-color);
	margin-bottom: 1rem;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	text-align: center;
}

.search-filter-title i {
	font-size: 1.1rem;
	/* 從 1.2rem 縮小到 1.1rem */
}

/* 自訂旅遊文字樣式 */
.custom-travel-text {
	line-height: 1.6;
}

.filter-group {
	margin-bottom: 1rem;
}

.filter-group:last-child {
	margin-bottom: 0;
}

.filter-label {
	font-size: 0.9rem;
	font-weight: 600;
	color: #495057;
	margin-bottom: 0.5rem;
	display: block;
}

.filter-select {
	width: 100%;
	padding: 0.6rem 1rem;
	border: 2px solid #dee2e6;
	border-radius: 8px;
	font-size: 0.95rem;
	color: #495057;
	background-color: white;
	transition: all 0.3s ease;
	cursor: pointer;
}

.filter-select:focus {
	outline: none;
	border-color: var(--primary-color);
	box-shadow: 0 0 0 0.2rem rgba(201, 169, 97, 0.25);
}

.filter-select:hover {
	border-color: var(--accent-color);
}

.search-results-info {
	padding: 0.75rem 1rem;
	background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
	border-left: 4px solid #2196f3;
	border-radius: 6px;
	margin-bottom: 1.5rem;
	font-size: 0.95rem;
	color: #1976d2;
	font-weight: 500;
}

.no-results {
	text-align: center;
	padding: 3rem 1rem;
	background: #f8f9fa;
	border-radius: 12px;
	margin: 2rem 0;
}

.no-results i {
	font-size: 3rem;
	color: #9e9e9e;
	margin-bottom: 1rem;
}

.no-results h4 {
	color: #666;
	margin-bottom: 0.5rem;
}

.no-results p {
	color: #999;
	font-size: 0.9rem;
}

.reset-filter-btn {
	background: linear-gradient(135deg, var(--primary-color) 0%, var(--accent-color) 100%);
	color: white;
	border: none;
	padding: 0.6rem 1.5rem;
	border-radius: 8px;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.3s ease;
	margin-top: 1rem;
}

.reset-filter-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(201, 169, 97, 0.3);
}

/* 手機版搜尋列調整 */
@media (max-width: 767.98px) {
	#search-filter-container {
		padding-left: 10px !important;
		padding-right: 10px !important;
	}

	.search-filter-section {
		padding: 1rem;
	}

	.search-filter-title {
		font-size: 0.85rem;
		gap: 0.4rem;
	}

	.search-filter-title i {
		font-size: 0.9rem;
		flex-shrink: 0;
	}

	.custom-travel-text {
		font-size: 0.85rem;
		line-height: 1.5;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	.filter-select {
		font-size: 0.9rem;
		padding: 0.5rem 0.75rem;
	}
}

/* --- 手機版與平板響應式設計 --- */
@media (max-width: 991.98px) {

	/* 導覽列優化 - 修復 sticky 效果 */
	.anchor-nav-section {
		padding: 0.8rem 0 !important;
		position: sticky !important;
		top: 80px !important;
		/* 保持在主導覽列之下 */
		z-index: 1025 !important;
		/* 略低於主導覽列 */
		background: rgba(26, 58, 95, 0.95) !important;
		/* 冬季藍色背景 - 修正手機版 */
		backdrop-filter: blur(15px) !important;
		-webkit-backdrop-filter: blur(15px) !important;
		box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1) !important;
		width: 100% !important;
		left: 0 !important;
		margin: 0 !important;
		/* 強制確保在平板上的黏性效果 */
		-webkit-position: sticky;
		-moz-position: sticky;
		-ms-position: sticky;
		-o-position: sticky;
	}

	/* 當主導覽列隱藏時，調整子導覽列位置 */
	.site-header.header-hidden+main .anchor-nav-section,
	.site-header.is-hidden+main .anchor-nav-section {
		top: 0 !important;
	}

	.airline-btn {
		color: rgba(255, 255, 255, 0.95) !important;
		/* 保持白字 */
		background: rgba(255, 255, 255, 0.1) !important;
		/* 半透明白背景 */
		border: 2px solid rgba(255, 255, 255, 0.3) !important;
		font-size: 0.9rem;
		padding: 0.65rem 1.2rem;
	}

	/* 行程卡片圖片尺寸調整 */
	.product-image-container {
		height: 150px;
		/* 平板版高度 */
		border-radius: 0;
		/* 平板版也使用直角 */
	}

	.promo-card {
		height: 180px;
	}

	.promo-card-overlay {
		clip-path: polygon(0 0, 85% 0, 60% 100%, 0% 100%);
		padding: 0.9rem;
	}

	.promo-card-title {
		font-size: 1.2rem;
	}

	.promo-card-subtitle {
		font-size: 0.75rem;
		line-height: 1.4;
	}

	.promo-card-btn {
		font-size: 0.6rem;
		padding: 0.2rem 0.5rem;
		border-radius: 12px;
	}
}

@media (max-width: 767.98px) {

	/* Hero Section 手機版優化 */
	#hero-section {
		min-height: 600px !important;
		padding: var(--header-height-initial) 1rem 2rem 1rem !important;
	}

	#hero-section h1 {
		font-size: clamp(1.8rem, 8vw, 2.8rem) !important;
		margin-bottom: 1rem !important;
		line-height: 1.3 !important;
	}

	#hero-section p {
		font-size: clamp(1rem, 4vw, 1.2rem) !important;
		margin-bottom: 1.5rem !important;
	}

	#hero-section .btn-hero {
		font-size: 1rem !important;
		padding: 10px 24px !important;
	}

	/* 導覽列 - 修復手機版 sticky 效果 */
	.anchor-nav-section {
		padding: 0.75rem 0 !important;
		position: sticky !important;
		top: 70px !important;
		/* 手機版主導覽列較低 */
		z-index: 1025 !important;
		/* 略低於主導覽列 */
		background: rgba(255, 255, 255, 0.98) !important;
		backdrop-filter: blur(15px) !important;
		-webkit-backdrop-filter: blur(15px) !important;
		box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1) !important;
		width: 100% !important;
		left: 0 !important;
		margin: 0 !important;
		/* 強制確保在手機上的黏性效果 */
		-webkit-position: sticky;
		-moz-position: sticky;
		-ms-position: sticky;
		-o-position: sticky;
	}

	/* 當主導覽列隱藏時，調整子導覽列位置 */
	.site-header.header-hidden+main .anchor-nav-section,
	.site-header.is-hidden+main .anchor-nav-section {
		top: 0 !important;
	}

	.anchor-nav-container {
		width: 100%;
	}

	.anchor-main-menu {
		display: flex;
		justify-content: space-around;
		flex-wrap: nowrap;
		gap: 0.25rem;
		padding: 0 0.25rem;
	}

	.airline-btn {
		display: flex;
		align-items: center;
		justify-content: center;
		font-size: 0.85rem;
		font-weight: 600;
		padding: 0.6rem 0.4rem;
		flex-grow: 1;
		text-align: center;
		line-height: 1.2;
		min-height: auto;
		border-radius: 25px;
		color: #60A5FA !important;
		/* 冬季藍字 */
		background: transparent !important;
		/* 透明背景 */
		border: 2px solid #60A5FA !important;
		/* 藍色邊框 */
		transition: all 0.3s ease !important;
	}

	.airline-btn:hover {
		background: #60A5FA !important;
		color: white !important;
		border-color: #60A5FA !important;
	}

	.airline-btn.active {
		background: #60A5FA !important;
		color: white !important;
		border-color: #60A5FA !important;
	}

	.airline-btn i {
		display: none;
		/* 將 display 改為 none 即可隱藏圖示 */
	}

	.promo-card {
		height: 150px;
	}

	.promo-card-overlay {
		padding: 0.8rem;
		clip-path: polygon(0 0, 90% 0, 65% 100%, 0% 100%);
	}

	.promo-card-title {
		font-size: 1rem;
		margin-bottom: 0.4rem;
	}

	.promo-card-subtitle {
		font-size: 0.65rem;
		line-height: 1.2;
		margin-bottom: 0.3rem;
	}

	.promo-card-divider {
		width: 30px;
		height: 1.5px;
		margin-bottom: 0.5rem;
	}

	.promo-card-btn {
		font-size: 0.7rem;
		padding: 0.15rem 0.4rem;
		border-radius: 18px;
	}

	/* 手機版行程卡片樣式 - 統一所有卡片格式 */
	.product-card .row.g-0 {
		align-items: stretch;
		display: flex !important;
	}

	/* 確保圖片完全隱藏 */
	.product-card .col-4,
	.product-card .col-md-2,
	.product-card .product-image-container {
		display: none !important;
	}

	/* 確保文字區域佔滿全寬 */
	.product-card .col-8,
	.product-card .col-md-10 {
		flex: 0 0 100% !important;
		max-width: 100% !important;
		display: block !important;
	}

	.product-card .card-body,
	.product-card .card-body>.row {
		display: block;
		height: auto;
	}

	/* 手機版: 強制垂直佈局 */
	.product-card .title-price-row,
	.product-card .badges-section {
		display: block !important;
	}

	.product-card .title-section,
	.product-card .price-section {
		width: 100% !important;
		text-align: left !important;
		padding: 0 !important;
		margin: 0 !important;
	}

	.product-card .price-section {
		margin-top: 0.5rem !important;
	}

	.product-card .badges-section {
		margin-top: 0.75rem !important;
		text-align: left !important;
	}

	.product-card .card-body {
		padding: 1rem !important;
	}

	.product-card .card-title {
		font-size: 1.1rem !important;
		margin-bottom: 0.5rem !important;
		line-height: 1.5 !important;
		font-weight: 600 !important;
		display: block !important;
		-webkit-line-clamp: unset !important;
		-webkit-box-orient: unset !important;
		overflow: visible !important;
	}

	.product-card .description {
		display: none !important;
	}

	.product-card .price-tag {
		font-size: 1.4rem !important;
		margin-bottom: 0.5rem !important;
		font-weight: 700 !important;
	}

	.product-card .promo-badge {
		font-size: 0.75rem !important;
		padding: 4px 10px !important;
		margin-right: 0.5rem !important;
		margin-bottom: 0.5rem !important;
	}

	.product-card .col-lg-4.text-lg-end {
		text-align: left !important;
		margin-top: 0.5rem !important;
	}

	/* 手機版：出發日期樣式優化 */
	.product-card .departure-price-row {
		display: flex !important;
		flex-direction: column !important;
		align-items: flex-start !important;
		gap: 0.75rem !important;
		margin-top: 1rem !important;
	}

	.product-card .departure-dates {
		display: flex !important;
		flex-wrap: wrap !important;
		gap: 0.5rem !important;
		width: 100% !important;
	}

	.product-card .departure-date-item {
		font-size: 0.85rem !important;
		padding: 0.4rem 0.8rem !important;
	}

	.product-card .price-favorite-container {
		width: 100% !important;
		justify-content: flex-start !important;
	}
}

/* =================================================================
         * 奶華團圓區塊白色背景
         * ================================================================= */
#luxury-cny.airline-section {
	background-color: #ffffff !important;
}

/* =================================================================
         * FAQ 區塊樣式（總監版）
         * ================================================================= */
.faq-section {
	background-color: var(--background-secondary);
	padding: 6rem 0;
}

.faq-section .section-header {
	text-align: center;
	margin-bottom: 3rem;
}

.faq-section .section-title {
	font-size: 2.5rem;
	font-weight: 700;
	color: var(--primary-color);
	margin-bottom: 1rem;
}

.faq-section .section-header p {
	font-size: 1.1rem;
	color: var(--text-secondary);
	margin: 0;
}

.accordion-button {
	font-weight: 600;
	font-family: var(--font-primary);
	color: var(--text-primary);
	background-color: white;
	font-size: 1.05rem;
	padding: 1.25rem 1.5rem;
}

.accordion-button:not(.collapsed) {
	color: var(--primary-color);
	background-color: #FFF8F0;
	box-shadow: inset 0 -1px 0 #e9ecef;
}

.accordion-item {
	border-radius: var(--border-radius-md);
	border: 1px solid var(--border-light);
	margin-bottom: 1rem;
	overflow: hidden;
}

.accordion-button:focus {
	box-shadow: 0 0 0 0.25rem rgba(185, 28, 28, 0.15);
	border-color: var(--primary-color);
}

.accordion-body {
	line-height: 1.8;
	color: var(--text-primary);
	padding: 1.5rem;
}

.accordion-body strong {
	color: var(--primary-color);
	font-weight: 600;
}

.accordion-body ul {
	margin-top: 0.75rem;
	padding-left: 1.5rem;
}

.accordion-body ul li {
	margin-bottom: 0.75rem;
	line-height: 1.7;
}

/* FAQ 手機版優化 */
@media (max-width: 767.98px) {
	.faq-section {
		padding: 3rem 0;
	}

	.faq-section .section-title {
		font-size: 1.8rem;
	}

	.faq-section .section-header p {
		font-size: 1rem;
	}

	.accordion-button {
		font-size: 0.95rem;
		padding: 1rem;
	}

	.accordion-body {
		padding: 1rem;
		font-size: 0.95rem;
	}
}

/* =================================================================
         * Footer 強制覆蓋樣式（確保與首頁一致）
         * ================================================================= */
/* 桶面版 Footer 三區區布局 */
@media (min-width: 992px) {
	.site-footer .footer-top .row {
		display: flex !important;
		justify-content: space-between !important;
		align-items: flex-start !important;
	}

	/* 左側：品牌介紹 - 強制 33.33% */
	.site-footer .footer-about {
		flex: 0 0 33.333333% !important;
		max-width: 33.333333% !important;
		padding-left: 15px !important;
		/* 不要太靠左 */
	}

	/* 中間：旅遊產品 + 特色服務 - 強制 33.33% */
	.site-footer .footer-middle-section {
		flex: 0 0 33.333333% !important;
		max-width: 33.333333% !important;
	}

	/* 右側：聯絡我們 - 強制 33.33% */
	.site-footer .footer-links:last-child,
	.site-footer .col-lg-3.footer-links {
		flex: 0 0 33.333333% !important;
		max-width: 33.333333% !important;
	}
}

/* =================================================================
         * 最終CTA區塊樣式（復製自首頁）
         * ================================================================= */
#final-cta-section {
	background-color: var(--color-dark-bg, #1A1A1A);
	background-image: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), url('/assets/images/bg.webp');
	background-size: cover;
	background-position: center;
	background-attachment: fixed;
	color: white;
	text-align: center;
	padding: 6rem 2rem;
}

#final-cta-section .container {
	max-width: 800px;
	margin: 0 auto;
}

#final-cta-section h2 {
	color: white !important;
	font-size: clamp(2rem, 4vw, 2.5rem);
	margin-bottom: 1.5rem;
}

#final-cta-section p {
	color: white !important;
	font-size: 1.1rem;
}

#final-cta-section .small {
	color: rgba(255, 255, 255, 0.9) !important;
}

.btn-island {
	background: linear-gradient(45deg, #34e89e, #03a5c1);
	border: none;
	color: white;
	padding: 12px 30px;
	font-weight: bold;
	letter-spacing: 1px;
	transition: all 0.3s ease;
	box-shadow: 0 4px 15px rgba(0, 150, 136, 0.3);
	border-radius: 50px;
	text-decoration: none;
	display: inline-block;
}

.btn-island:hover {
	color: white;
	transform: translateY(-3px);
	box-shadow: 0 6px 20px rgba(0, 150, 136, 0.4);
	background: linear-gradient(45deg, #42f9b2, #03b7d6);
}

@media (max-width: 768px) {
	#final-cta-section {
		padding: 4rem 1.5rem;
	}

	#final-cta-section h2 {
		font-size: 1.8rem;
	}

	#final-cta-section p {
		font-size: 1rem;
	}
}

/* =================================================================
         * 量身訂做頁面專屬樣式
         * ================================================================= */
/* 儀表板 (總覽表格) 樣式 */
.itinerary-dashboard {
	width: 90%;
	max-width: 1100px;
	margin: 40px auto;
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 4px 15px rgba(201, 169, 97, 0.12);
	overflow: hidden;
	border: 2px solid rgba(201, 169, 97, 0.15);
}

.itinerary-dashboard h2 {
	font-size: 1.9em;
	text-align: center;
	padding: 22px;
	margin: 0;
	background: linear-gradient(135deg, #FFFBF0 0%, #FEF3C7 100%);
	border-bottom: 2px solid rgba(201, 169, 97, 0.3);
	color: #8B6914;
	font-weight: 700;
}

.dashboard-table-container {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.dashboard-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95rem;
}

.dashboard-table th,
.dashboard-table td {
	padding: 14px 16px;
	text-align: left;
	border-bottom: 1px solid rgba(201, 169, 97, 0.1);
	vertical-align: middle;
}

.dashboard-table th {
	background: linear-gradient(135deg, #FFFBF0 0%, #FEF3C7 100%);
	font-weight: 700;
	color: #8B6914;
	font-size: 1rem;
	white-space: nowrap;
}

.dashboard-table td:first-child,
.dashboard-table th:first-child {
	padding-left: 25px;
}

.dashboard-table tr:last-child td {
	border-bottom: none;
}

.dashboard-table tbody tr:hover {
	background: #FFFBF0;
	transition: background 0.2s ease;
}

/* 城市名稱樣式 */
.city-name {
	position: relative;
	color: #333;
}

.city-name strong {
	color: #8B6914;
	font-size: 1.1em;
	font-weight: 700;
}

.city-name::before {
	content: attr(data-region);
	display: block;
	font-size: 0.75em;
	color: #999;
	font-weight: 400;
	margin-bottom: 2px;
}

/* 主題標籤樣式 */
.tag {
	display: inline-block;
	padding: 4px 10px;
	margin: 2px 4px 2px 0;
	background: linear-gradient(135deg, #FEF3C7 0%, #FFFBF0 100%);
	border: 1px solid #C9A961;
	border-radius: 12px;
	font-size: 0.85em;
	color: #8B6914;
	font-weight: 600;
	white-space: nowrap;
}

/* 表格欄位寬度控制 */
.city-col {
	width: 18%;
	min-width: 100px;
}

.itinerary-col {
	width: 28%;
	min-width: 150px;
}

.days-col {
	width: 12%;
	min-width: 60px;
	text-align: center;
}

.theme-col {
	width: 25%;
	min-width: 140px;
}

.season-col {
	width: 17%;
	min-width: 80px;
}

/* 手機版表格優化 */
@media (max-width: 768px) {
	.itinerary-dashboard {
		width: 95%;
		margin: 30px auto;
	}

	.itinerary-dashboard h2 {
		font-size: 1.4em;
		padding: 16px;
	}

	.dashboard-table {
		font-size: 0.85rem;
	}

	.dashboard-table th,
	.dashboard-table td {
		padding: 10px 8px;
	}

	.dashboard-table td:first-child,
	.dashboard-table th:first-child {
		padding-left: 12px;
	}

	.city-name::before {
		font-size: 0.7em;
		margin-bottom: 1px;
	}

	.city-name strong {
		font-size: 1em;
	}

	.tag {
		padding: 3px 7px;
		font-size: 0.75em;
		margin: 1px 3px 1px 0;
	}

	/* 手機版隐藏不重要欄位 */
	.season-col,
	.dashboard-table tbody tr td:nth-child(5) {
		display: none;
	}
}

@media (max-width: 480px) {
	.itinerary-dashboard {
		width: 98%;
		margin: 20px auto;
		border-radius: 8px;
	}

	.itinerary-dashboard h2 {
		font-size: 1.2em;
		padding: 14px 10px;
	}

	.dashboard-table {
		font-size: 0.8rem;
	}

	.dashboard-table th,
	.dashboard-table td {
		padding: 8px 6px;
	}

	.dashboard-table td:first-child,
	.dashboard-table th:first-child {
		padding-left: 8px;
	}

	.tag {
		padding: 2px 6px;
		font-size: 0.7em;
	}

	/* 超小屏再隐藏天數欄 */
	.days-col,
	.dashboard-table tbody tr td:nth-child(3) {
		display: none;
	}
}

/* 詳細行程卡片 */
.page-title {
	text-align: center;
	margin: 50px 0 30px 0;
	font-size: 2.2rem;
	color: #8B6914;
	font-weight: 700;
	position: relative;
	padding-bottom: 15px;
}

.page-title::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 80px;
	height: 4px;
	background: linear-gradient(90deg, transparent, #C9A961, transparent);
	border-radius: 2px;
}

.itinerary-grid {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 40px;
}

.region-card {
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 3px 15px rgba(201, 169, 97, 0.15);
	margin: 20px auto;
	width: 100%;
	max-width: 1120px;
	overflow: hidden;
	border: 2px solid rgba(201, 169, 97, 0.25);
	transition: all 0.3s ease;
}

.region-card:hover {
	box-shadow: 0 5px 20px rgba(201, 169, 97, 0.25);
	transform: translateY(-2px);
}

.region-card h2 {
	background: linear-gradient(135deg, #8B6914 0%, #C9A961 100%);
	color: white;
	padding: 18px 30px;
	margin: 0;
	font-size: 1.5em;
	font-weight: 700;
	letter-spacing: 0.5px;
	position: relative;
	overflow: hidden;
}

.region-card h2::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 4px;
	height: 100%;
	background: #FEF3C7;
}

.sub-card-container {
	padding: 15px;
}

.service-card {
	background: #ffffff;
	border-radius: 10px;
	box-shadow: 0 2px 8px rgba(201, 169, 97, 0.12);
	margin: 15px;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	overflow: hidden;
	border: 1px solid rgba(201, 169, 97, 0.2);
	transition: all 0.3s ease;
}

.service-card:hover {
	box-shadow: 0 4px 12px rgba(201, 169, 97, 0.2);
	border-color: #C9A961;
	transform: translateY(-2px);
}

.service-details {
	padding: 20px 25px;
	flex-basis: 400px;
	flex-grow: 1;
}

.service-details h3 {
	margin-top: 0;
	margin-bottom: 12px;
	font-size: 1.4em;
	color: #8B6914;
	font-weight: 700;
	border-left: 4px solid #C9A961;
	padding-left: 12px;
}

.service-details p {
	margin: 8px 0;
	font-size: 1em;
	color: #333;
	line-height: 1.7;
}

.service-details strong {
	color: #8B6914;
	font-weight: 600;
}

.service-attractions {
	background: #FFFBF0;
	padding: 20px 25px;
	flex-basis: 300px;
	flex-grow: 1;
	border-left: 1px solid rgba(201, 169, 97, 0.3);
	min-width: 280px;
}

.service-attractions strong {
	display: block;
	margin-bottom: 12px;
	border-bottom: 2px solid #C9A961;
	padding-bottom: 8px;
	color: #8B6914;
	font-weight: 700;
	font-size: 1.05em;
}

.service-attractions ul {
	padding-left: 20px;
	margin: 0;
}

.service-attractions li {
	margin-bottom: 6px;
	color: #6c757d;
	line-height: 1.6;
}

.service-attractions li::marker {
	color: #C9A961;
}

/* 響應式設計 - 平板和手機版 */
@media (max-width: 1024px) {
	.itinerary-grid {
		padding: 0 30px;
	}

	.region-card {
		max-width: 100%;
	}
}

@media (max-width: 768px) {
	.itinerary-grid {
		padding: 0 20px;
	}

	.page-title {
		font-size: 1.6rem;
		margin: 35px 0 25px 0;
	}

	.region-card {
		margin: 15px auto;
		border-radius: 10px;
	}

	.region-card h2 {
		font-size: 1.3em;
		padding: 14px 20px;
	}

	.sub-card-container {
		padding: 10px;
	}

	.service-card {
		flex-direction: column;
		margin: 10px;
	}

	.service-details {
		padding: 15px 20px;
		flex-basis: auto;
	}

	.service-details h3 {
		font-size: 1.25em;
	}

	.service-attractions {
		border-left: none;
		border-top: 1px solid rgba(201, 169, 97, 0.3);
		padding: 15px 20px;
		flex-basis: auto;
		min-width: auto;
	}
}

@media (max-width: 480px) {
	.itinerary-grid {
		padding: 0 15px;
	}

	.page-title {
		font-size: 1.4rem;
		margin: 30px 0 20px 0;
	}

	.page-title::after {
		width: 60px;
		height: 3px;
	}

	.region-card {
		margin: 10px auto;
	}

	.region-card h2 {
		font-size: 1.15em;
		padding: 12px 15px;
	}

	.service-details {
		padding: 12px 15px;
	}

	.service-details h3 {
		font-size: 1.15em;
	}

	.service-details p {
		font-size: 0.95em;
	}

	.service-attractions {
		padding: 12px 15px;
	}

	.service-attractions ul {
		padding-left: 18px;
	}

	.service-attractions li {
		font-size: 0.95em;
	}
}

/* hero-map 區塊 */
.hero-map {
	background: #555;
	color: white;
	padding: 40px;
	margin: 20px auto;
	border-radius: 8px;
	max-width: 800px;
	text-align: center;
}

/* 冬季攻略地圖區塊樣式 - 金色風格 */
.winter-guide-section {
	padding: 50px 0;
	background: linear-gradient(135deg, #FFFBF0 0%, #FEF3C7 100%);
}

.winter-guide-section .section-header {
	margin-bottom: 25px;
}

.winter-guide-section .airline-title {
	color: #8B6914;
	font-size: 2rem;
	font-weight: 700;
}

.winter-guide-section .airline-subtitle {
	color: #6c757d;
	font-size: 1.1rem;
}

.winter-map-container {
	max-width: 900px;
	margin: 0 auto;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 4px 20px rgba(201, 169, 97, 0.25);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	border: 2px solid #C9A961;
}

.winter-map-container:hover {
	transform: translateY(-3px);
	box-shadow: 0 6px 25px rgba(201, 169, 97, 0.35);
}

.winter-map-image {
	width: 100%;
	height: auto;
	display: block;
	transition: transform 0.3s ease;
}

.winter-map-container:hover .winter-map-image {
	transform: scale(1.01);
}

.winter-guide-section .map-description {
	max-width: 800px;
	margin: 0 auto;
	color: #333333;
}

.winter-guide-section .btn-primary {
	background: transparent;
	border: 2px solid #C9A961;
	color: #8B6914;
	padding: 12px 35px;
	font-size: 1rem;
	font-weight: 600;
	border-radius: 50px;
	transition: all 0.3s ease;
	box-shadow: none;
}

.winter-guide-section .btn-primary:hover {
	background: #C9A961;
	color: white;
	transform: translateY(-2px);
	box-shadow: 0 4px 15px rgba(201, 169, 97, 0.4);
}

@media (max-width: 768px) {
	.winter-guide-section {
		padding: 35px 15px;
	}

	.winter-guide-section .airline-title {
		font-size: 1.6rem;
	}

	.winter-guide-section .airline-subtitle {
		font-size: 1rem;
	}

	.winter-map-container {
		max-width: 100%;
		border-radius: 10px;
	}

	.winter-guide-section .btn-primary {
		padding: 10px 28px;
		font-size: 0.95rem;
	}
}

/* 錦點導航欄樣式 - 統一設計 */
.anchor-nav-section {
	background: rgba(255, 248, 230, 0.95);
	padding: 28px 0;
	box-shadow: 0 3px 15px rgba(201, 169, 97, 0.2);
	position: sticky;
	top: 0;
	z-index: 100;
	backdrop-filter: blur(10px);
	border-bottom: 3px solid rgba(201, 169, 97, 0.4);
}

.anchor-nav-grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 14px;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 40px;
}

.anchor-nav-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 20px 16px;
	background: #FFFFFF;
	color: #6B4E1F;
	text-decoration: none;
	border-radius: 12px;
	border: 2px solid #C9A961;
	transition: all 0.3s ease;
	font-weight: 700;
	min-height: 100px;
	box-shadow: 0 2px 8px rgba(201, 169, 97, 0.15);
}

.anchor-nav-item i {
	font-size: 1.8rem;
	margin-bottom: 8px;
	color: #C9A961;
	transition: all 0.3s ease;
}

.anchor-nav-item span {
	font-size: 1.05rem;
	text-align: center;
	line-height: 1.4;
	letter-spacing: 0.5px;
}

.anchor-nav-item:hover {
	background: linear-gradient(135deg, #C9A961 0%, #8B6914 100%);
	color: white;
	transform: translateY(-3px);
	box-shadow: 0 6px 20px rgba(201, 169, 97, 0.4);
	border-color: #8B6914;
}

.anchor-nav-item:hover i {
	color: white;
	transform: scale(1.1);
}

@media (max-width: 768px) {
	.anchor-nav-section {
		padding: 15px 0;
	}

	.anchor-nav-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 8px;
		padding: 0 15px;
	}

	.anchor-nav-item {
		padding: 10px 6px;
		min-height: 65px;
		border-width: 1.5px;
	}

	.anchor-nav-item i {
		font-size: 1.2rem;
		margin-bottom: 3px;
	}

	.anchor-nav-item span {
		font-size: 0.8rem;
		line-height: 1.2;
	}
}

@media (max-width: 480px) {
	.anchor-nav-section {
		padding: 12px 0;
	}

	.anchor-nav-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 6px;
		padding: 0 10px;
	}

	.anchor-nav-item {
		padding: 8px 4px;
		min-height: 58px;
		border-width: 1.5px;
		border-radius: 8px;
	}

	.anchor-nav-item i {
		font-size: 1.1rem;
		margin-bottom: 2px;
	}

	.anchor-nav-item span {
		font-size: 0.7rem;
		line-height: 1.1;
	}
}