@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@100..900&display=swap');


/* ============================================================
   全頁共用：CSS 變數、版型、通用元件
   ============================================================ */

:root {
	--kv-b: #103f55;
	--ez-green: #11d073;
	--basic-txt: #ffffff;
	--main-color: #009b4a;
	--sub-color: var(--main-blue);
	--accent-color: var(--main-gd);
	--light-gd: #cca97a;
	--main-gd: #c19d68;
	--deep-gd: #936f3f;
	/* #a37d50*/
	--light-blue: #234485;
	--main-blue: #19334d;
	--deep-blue: #081423;

	--content-p: calc(3vw + 42px);
	--col-p: clamp(8px, 1vw + 2px, 15px);
	--transition-com: all 0.25s ease;
}

/* ---------- 標題字級 ---------- */
.title {
	/* font-family: 'Noto Sans TC', "微軟正黑體", "微软雅黑", sans-serif; */
	color: var(--light-gd);
	display: inline-block;
	position: relative;
	font-weight: 700;
	margin-bottom: 1rem;
	letter-spacing: 0.1rem;
	padding-bottom: 0.5rem;
	z-index: 100;
	line-height: 3.5rem;
}

.title span {
	font-size: 1.5rem;
}

.title::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 1px;
	background: linear-gradient(to right, var(--main-gd) 0%, white 50%, var(--main-gd) 100%);
	transform: scaleX(1);
	transform-origin: center;
	animation: extendLine 0.4s 0.5s ease-out forwards;
}

@keyframes extendLine {
	to {
		transform: scaleX(1);
	}
}

h1.display-5 {
	font-family: 'Noto Sans TC', "微軟正黑體", "微软雅黑", sans-serif;
	position: relative;
	font-weight: 700;
	transform: scaleX(0.87);
	margin-bottom: 1rem;
	animation: glow 2s ease-in-out infinite alternate;
	z-index: 100;
}

.hotel-title {
	color: var(--basic-txt);
	font-weight: 400;
	border: solid 1px var(--basic-txt);
	display: inline-block;
	padding: 0 30px;
	margin-bottom: 25px;
}

.Package-title {
	color: var(--basic-txt);
	font-weight: 400;
	border: solid 1px transparent;
	border-image-source: linear-gradient(135deg, var(--light-blue) 0%, white 50%, var(--light-blue) 100%);
	border-image-slice: 1;
	display: inline-block;
	padding: 0 1.5rem;
	margin-bottom: 1.5rem;
	text-shadow: 0 0 10px rgba(128, 168, 218, .75), 0 0 20px rgba(128, 168, 218, .75);

}

.h2 {
	font-family: 'Noto Sans TC', "微軟正黑體", "微软雅黑", sans-serif;
	font-size: clamp(1.5rem, 3vw, 1.7rem);
	position: relative;
	font-weight: 800;
	animation: glow 2s ease-in-out infinite alternate;
	z-index: 100;
	letter-spacing: 1.5px;
	margin: 0 0 calc(var(--content-p) * 0.75) 0;
	color: var(--ez-green);
}

@keyframes glow {
	from {
		text-shadow: 0 0 20px var(--light-blue);
	}

	to {
		text-shadow: 0 0 20px var(--bs-cyan), 0 0 30px var(--light-blue), 0 0 40px var(--light-blue);
	}
}

.h4 {
	color: var(--main-color);
	font-weight: 600;
	line-height: 2rem;
	text-align: center;
}

.h5 {
	color: var(--sub-color);
	font-weight: 400;
	line-height: 1.4;
	text-align: center;
	margin-bottom: 20px;
}

.h5>b {
	font-size: 1.125em;
	color: var(--light-blue);
}

.h6 {
	margin-bottom: clamp(1rem, 2vw + 1rem, 0.875rem);
}

img {
	max-width: 100%;
}

p {
	font-size: .9rem;
	letter-spacing: .8px;
	font-weight: 200;
	line-height: 1.4;
}


@media (max-width: 767px) {
	p {
		line-height: 1rem;
	}
}

.sale_info .h3 {
	color: var(--sub-color);
	font-weight: 600;
	text-align: center;
}

/* ---------- 按鈕 ---------- */
.btn {
	font-size: 1.1rem;
	color: var(--main-color);
	border-color: var(--main-color);
	border-radius: 0;
	padding: 0.5rem 1.7rem;
	border: none;
}

.btn:hover {
	color: #fff;
	background-color: var(--main-color);
}

.btn-lg {
	padding: 0.8rem 2rem;
	color: #fff !important;
	white-space: nowrap;
}

@media screen and (max-width: 991px) {
	.btn-lg {
		font-size: 1.125rem;
	}
}

.btn-other {
	font-size: 1.1rem;
	color: var(--basic-txt);
	border-radius: 100px;
	padding: 0.5rem 1.7rem;
	/*background: linear-gradient(135deg, var(--main-color), var(--main-color)) 0/200%;*/
	background: var(--ez-green);
	transition: .25s;
	animation: s 3s ease infinite;
	border: none;
}

.btn-other:hover {
	color: #fff;
	background: linear-gradient(135deg, var(--main-color), var(--main-color)) 0/200%;
	transform: scale(0.97);
	border: none;
}

@keyframes s {
	50% {
		background-position: 100%;
	}
}

.btn .material-symbols-outlined {
	font-size: 1.1rem;
	vertical-align: middle;
	display: inline-block;
	width: 1.1rem;
	height: 1.1rem;
	overflow: hidden;
	line-height: 1;
}

.btn-sec {
	padding: 2rem 0;
	margin-bottom: 0;
	text-align: center;
}

/* ---------- 版型輔助 ---------- */

h1+.intro-txt>p:not(:last-of-type) {
	margin-bottom: 0.2rem;
}

h1+.intro-txt>.font-en {
	font-family: "Oswald", sans-serif;
	color: var(--sub-color);
	line-height: 1.3;
	font-weight: 500;
}

h1+.intro-txt>.font-en>i {
	display: inline-block;
	font-style: normal;
	padding-inline: 0.25rem;
	border: 1px solid var(--sub-color);
}

h1+.intro-txt>.font-ch {
	font-size: 1.15em;
	color: var(--main-color);
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.15rem;
	transform: scaleX(0.87);
}

.intro-notice {
	display: inline-block;
	margin-inline: auto;
	color: var(--sub-color);
}

.intro-notice>li::before {
	content: "\e88e";
	font-family: "Material Symbols Outlined";
	font-size: 100%;
	color: inherit;
	vertical-align: middle;
	margin-right: 0.25rem;
	font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

/*-------------------- 主視覺 --------------------*/

#main_top>h1 {
	display: block;
	max-width: 0;
	max-height: 0;
	overflow: hidden;
	line-height: 0;
	font-size: 1px;
	padding: 0;
	margin: 0;
}

#main_top {
	width: 100%;
	height: 0;
	padding-bottom: calc(408 / 1920 * 100%);
	position: relative;
	background: url(https://event.cdn-eztravel.com.tw/events/f3n1/f3n1_1920x408-20260616.jpg) no-repeat center;
	background-size: cover;
	z-index: 999;
}

@media screen and (max-width: 767px) {
	#main_top {
		padding-bottom: calc(400 / 768 * 100%);
		background: url(https://event.cdn-eztravel.com.tw/events/f3n1/f3n1_768x400-20260616.jpg) no-repeat center;
		background-size: cover;
		z-index: 999;
	}
}

/*-------------------- 主視覺 END --------------------*/
/*-------------------- NAV --------------------*/

.nav_bar {
	display: block;
	position: relative;
	padding: 0;
	background: linear-gradient(to right, #1c355b 5%, #0f2342 95%);
	margin: 0 auto;
	overflow: hidden;
	z-index: 100;
}

.nav_bar::after {
	content: "";
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 100%;
	height: 2px;
	background: linear-gradient(to right, #007e9e 5%, #212457 50%, #007e9e 95%);
	z-index: 5;
}

.nav_bar::before {
	content: "";
	display: inline-block;
	position: absolute;
	width: 80%;
	max-width: 630px;
	height: 30px;
	background-color: rgba(33, 36, 87, 0.4);
	-webkit-filter: blur(8px);
	/* Safari */
	filter: blur(8px);
	border-radius: 50%;
	top: 0;
	left: 50%;
	transform: translate(-50%, -50%);
	transition: var(--transition-com);
}

.nav_bar:hover::before {
	filter: blur(10px);
	width: 85%;
	max-width: 650px;
	background-color: rgba(0, 126, 158, 0.7);
	mix-blend-mode: screen;
}

.nav_bar ul.rowline {
	display: flex;
	justify-content: center;
	padding-inline-start: 0;
	margin-bottom: 0;
}

.nav_bar ul.rowline>li {
	position: relative;
	display: inline-block;
	text-align: center;
	padding: 0.83rem calc(var(--col-p) * 2);
	margin: 0;
	font-size: 1.125rem;
	letter-spacing: 0.2rem;
	font-weight: 500;
	color: #ffffff;
	transition: var(--transition-com);
}

.nav_bar ul.rowline>li>a {
	display: block;
	color: inherit;
	text-decoration: none;
	transition: var(--transition-com);
}

.nav_bar ul.rowline>li>a .material-symbols-outlined {
	margin-right: 0.5rem;
	font-size: 1.35em;
	vertical-align: sub;
	color: var(--accent-color);
	font-variation-settings:
		"FILL" 0,
		"wght" 100,
		"GRAD" -25,
		"opsz" 24;
}

.nav_bar ul.rowline>li:hover {
	transform: scale(1.1);
	text-shadow: 0 3px 4px #000;
}

.nav_bar ul.rowline>li:hover::before {
	color: var(--bs-danger);
	height: 40px;
	transform: scale(1) translateY(-2px);
}

@media screen and (max-width: 767px) {
	.nav_bar ul.rowline>li {
		padding: 0.5rem calc(var(--col-p) * 0.65);
		font-size: 1rem;
	}

	.nav_bar ul.rowline>li>a .material-symbols-outlined {
		margin-right: 0.25rem;
	}
}

/*-------------------- NAV END --------------------*/


/* ============================================================
   背景特效：particles-js 螢光粒子
   ============================================================ */

#wrapper {
	position: relative;
	isolation: isolate;
	min-height: 100dvh;
	width: 100%;
	overflow: hidden;
	/* 把 canvas 裁切在 wrapper 範圍內 */
}



/*
     * Canvas 使用 position: fixed，固定於 viewport。
     * 因為父層 #wrapper 設有 isolation: isolate + overflow: hidden，
     * 視覺上只顯示在 wrapper 範圍內，捲動時背景保持不動（視差感）。
     * z-index: 0 確保在內容之下。
     */
#ff-canvas {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: -1;
	pointer-events: none;
	display: block;
}

/* ── 所有內容層 —— 放在 canvas 之上 ── */
.content-layer {
	position: relative;
	z-index: 1;
	width: 100%;
}

/* ── Hero section ── */
.hero {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 100dvh;
	padding: 4rem 1.5rem;
	text-align: center;
	gap: 0.75rem;
	user-select: none;
}

.hero-label {
	font-size: clamp(8px, 1.5vw, 11px);
	letter-spacing: 0.4em;
	color: rgba(200, 172, 108, .72);
	text-transform: uppercase;
}

.hero-title {
	font-size: clamp(32px, 7vw, 58px);
	letter-spacing: 0.28em;
	color: #f2eed9;
	font-family: 'Georgia', 'Times New Roman', serif;
	font-weight: 300;
	line-height: 1.2;
	opacity: 0;
	transform: translateY(12px);
	transition: opacity 1.4s ease, transform 1.4s ease;
}

.hero-title.visible {
	opacity: 1;
	transform: translateY(0);
}

.hero-cities {
	display: flex;
	align-items: center;
	gap: clamp(8px, 2vw, 16px);
	flex-wrap: wrap;
	justify-content: center;
	margin-top: 0.25rem;
}

.hero-cities span {
	font-size: clamp(7px, 1.2vw, 9px);
	letter-spacing: 0.36em;
	color: rgba(128, 168, 218, .55);
	text-transform: uppercase;
}

.hero-cities .dot {
	color: rgba(200, 172, 108, .32);
	font-size: 14px;
}

.hero-artists {
	font-size: clamp(7px, 1.1vw, 9px);
	letter-spacing: 0.42em;
	color: rgba(175, 148, 88, .38);
	text-transform: uppercase;
	margin-top: 1rem;
}

.hero-dates {
	display: flex;
	gap: clamp(12px, 3vw, 28px);
	margin-top: 1.25rem;
	flex-wrap: wrap;
	justify-content: center;
}

.hero-dates .date-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
}

.hero-dates .date-item span {
	font-size: clamp(7px, 1.1vw, 9px);
	letter-spacing: 0.2em;
	color: rgba(200, 172, 108, .55);
}

.hero-dates .date-item hr {
	width: 32px;
	border: none;
	border-top: 1px solid rgba(200, 172, 108, .25);
}


/* ============================================================
   套票商品
   ============================================================ */

#concert_ticket {
	min-height: auto;
	overflow: visible;
	position: relative;
}

/* 側邊閃光效果 */
.side-glow {
	position: absolute;
	top: 0;
	width: 400px;
	height: 100%;
	pointer-events: none;
	z-index: 0;
	opacity: 0;
}

.side-glow.left {
	left: -100px;
	background: radial-gradient(ellipse at left center, #32697d 0%, transparent 70%);
	animation: glowLeft 6s ease-in-out infinite;
}

.side-glow.right {
	right: 0;
	background: radial-gradient(ellipse at right center, #32697d 0%, transparent 70%);
	animation: glowRight 6s ease-in-out infinite;
}

@keyframes glowLeft {
	0% {
		opacity: 0;
	}

	20% {
		opacity: 1;
	}

	40% {
		opacity: 0;
	}

	100% {
		opacity: 0;
	}
}

@keyframes glowRight {
	0% {
		opacity: 0;
	}

	50% {
		opacity: 0;
	}

	70% {
		opacity: 1;
	}

	90% {
		opacity: 0;
	}

	100% {
		opacity: 0;
	}
}

/* ---------- 套票商品列 .pro-ticket ---------- */
.title_01 {
	font-family: 'Noto Sans TC', "微軟正黑體", "微软雅黑", sans-serif;
	display: inline-block;
	position: relative;
	font-weight: 700;
	margin-bottom: 1rem;
	letter-spacing: 0.1rem;
	padding-top: 0.25rem;
	z-index: 100;
	/* line-height: 2.5rem; */
}

.title_01 span {
	color: var(--deep-color);
}

.title_01::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 1px;
	background: linear-gradient(to right, var(--main-gd) 0%, white 50%, var(--main-gd) 100%);
	transform: scaleX(1);
	transform-origin: center;
	animation: extendLine 0.4s 0.5s ease-out forwards;
}

.title_sec {
	color: var(--main-gd);
}

.pro-ticket {
	width: 100%;
	height: 100%;
	margin-bottom: calc(var(--content-p) * 0.5);
}

.pro-ticket>div {
	margin-bottom: calc(var(--col-p) * 3);
}

.pro-box {
	display: flex;
	flex-direction: column;
	position: relative;
	width: 100%;
	height: 100%;
	text-align: left;
	text-decoration: none;
	color: var(--basic-txt);
	padding: 0;
	padding-block-end: 2.5rem;
	background: #ffffff;
	z-index: 10;
	transition: var(--transition-com);
	border: none;
	overflow: hidden;
}

/* 綠光掃入動畫 */
.pro-box::after {
	content: '';
	position: absolute;
	bottom: 0;
	right: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, rgba(159, 232, 255, 0) 50%, rgba(159, 232, 255, 0.3) 100%);
	transform: translate(100%, 0);

	opacity: 0;
	transition: all 0.5s ease;
	pointer-events: none;
	z-index: -1;
}

.pro-box:hover::after {
	transform: translate(0, 0);

	opacity: 1;
}

.pro-box:hover {
	transform: translateY(-3px);
	text-decoration: none;
	color: var(--basic-txt);
	box-shadow:
		0 0 0 2px white,
		0 0 0.3rem var(--basic-txt),
		0 0 0.6rem var(--basic-txt),
		0 0 0.8rem var(--basic-txt),
		0 0 1rem var(--basic-txt);
	border: none;
}

.pro-box:hover .btn_sale {
	color: white;
	background: linear-gradient(80deg, var(--light-blue), var(--main-blue)) 0/115%;
}

.pro-box .sale_img {
	flex-shrink: 0;
	aspect-ratio: 16 / 9;
	position: relative;
	overflow: hidden;
}

.pro-box .sale_img>img {
	position: absolute;
	width: 100%;
	height: auto;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
}

.sale_Group {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: stretch;
	padding: 1.3rem;
	flex-grow: 1;
	height: auto;
}

.sale_Group {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: stretch;
	padding: 1.3rem;
	flex-grow: 1;
	height: auto;
}

.pro-box .sale_info {
	position: relative;
	display: flex;
	justify-content: center;
	align-content: space-around;
	flex-direction: column;
}

.pro-box .sale_info>.h2 {
	color: var(--main-color);
	line-height: 1.3;
}

.sale_info>.spec_txt {
	color: #000;
	padding-inline-start: 0;
	font-weight: 400;
}

.sale_info>.spec_txt strong {
	color: white;
}

.pro-box .sale_info>.spec_txt>li::before {
	font-family: 'Material Symbols Outlined';
	content: '\e53f';
	vertical-align: middle;
	margin-right: 0.4rem;
	color: var(--main-color);
	font-weight: 500;
}

.pro-box .sale_info>.vip::before {
	font-family: 'Material Symbols Outlined';
	content: '\ead5';
	vertical-align: middle;
	margin-right: 0.4rem;
	color: var(--main-color);
	font-weight: 500;
}

.price_txt {
	display: block;
	text-align: right;
	color: var(--deep-gd);
}

.price_txt>span {
	display: inline-block;
	font-weight: 700;
	margin-bottom: 0;
}

.spec_info {
	display: block;
	padding-left: 24px;
}

.spec_info>li::before {
	font-family: 'Material Symbols Outlined';
	content: '\e5ca';
	vertical-align: middle;
	margin-right: 0.4rem;
	color: var(--main-color);
	font-weight: 400;
}

.spec_info span {
	margin-left: 25px;
}

/* 尚未開賣狀態 */
.pro-box.is-upcoming {
	pointer-events: none;
	cursor: not-allowed;
}

/* 購買按鈕 */
.pro-box .btn_sale {
	position: absolute;
	width: 100%;
	font-size: 1.2rem;
	font-weight: 600;
	background: linear-gradient(80deg, var(--light-gd), var(--deep-gd));
	/* background-color: #11d073; */
	color: #ffffff;
	border-radius: 0;
	bottom: 0;
	white-space: nowrap;
	transition: all 0.25s ease;
}

.pro-box .btn_sale>strong {
	font-weight: 900 !important;
}

.pro-box .btn_sale::after {
	font-family: 'Material Symbols Outlined';
	content: '\e913';
	vertical-align: middle;
	margin-inline-start: 0.25rem;
	font-weight: 400;
	font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

.pro-box .btn_sale:hover {
	background: linear-gradient(80deg, var(--light-blue), var(--main-blue)) 0/115%;
	color: white;
}

/* 售完狀態 */
.pro-box.sold_out {
	box-shadow: 0 0 0 1px var(--bs-warning);
}

.pro-box.sold_out::before {
	content: url(https://event.cdn-eztravel.com.tw/events/wu-qing-feng_concert/icon-soldout.png);
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	background: rgba(0, 0, 0, 0.5);
	z-index: 10;
}



/* ============================================================
   B區：LINE 開賣提醒
   ============================================================ */

/* .line_remind { padding-block-start: calc(var(--col-p) * 2); } */

/* 步驟流程容器 */
ul.flow-container {
	display: inline-flex;
	gap: calc(var(--col-p) * 2);
	margin-inline: auto;
	margin-block-start: 2rem;
	background: #218eb9;
	border-radius: 20px;
	overflow: visible;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
	width: 100%;
	max-width: 65%;
}

.arrow-step {
	position: relative;
	width: calc((100% - (var(--col-p) * 2) * 2) / 3);
	flex-shrink: 0;
	font-size: 0.89rem;
	color: var(--basic-txt);
	padding: 15px 20px 25px;
	text-align: center;
	line-height: 1.5;
	letter-spacing: 0.1rem;
}

.arrow-step>h6>i {
	display: inline;
	font-size: 1.35em;
	font-style: normal;
	margin-left: 0.1em;
	white-space: nowrap;
}

/* 步驟箭頭（桌機） */
.arrow-step:not(:last-child)::after {
	content: '';
	position: absolute;
	right: calc(var(--col-p) * -1 - 18px);
	top: 50%;
	transform: translateY(-50%);
	width: 100%;
	height: 101%;
	background: url('https://event.cdn-eztravel.com.tw/events/2026_SUN-YANZI/arrow.png') center / 100% 100% no-repeat;
	z-index: 2;
}

@media (max-width: 1400px) {
	.arrow-step>br {
		display: none;
	}
}

@media (max-width: 1200px) {
	ul.flow-container {
		max-width: 88%;
	}
}

/* 步驟箭頭（手機） */
@media (max-width: 767px) {
	ul.flow-container {
		flex-direction: column;
		align-items: stretch;
		border-radius: 15px;
		padding: 0;
		overflow: hidden;
		width: 100%;
		max-width: 90%;
	}

	.arrow-step {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		position: relative;
		width: 100%;
		padding: 25px 0;
		text-align: center;
		margin-bottom: 0;
	}

	.arrow-step:not(:last-child)::after {
		content: '';
		position: absolute;
		left: 50%;
		bottom: -20px;
		width: 200%;
		height: 88%;
		background: url('https://event.cdn-eztravel.com.tw/events/2026_SUN-YANZI/arrow_m.png') center / contain no-repeat;
		background-size: 50% 100%;
		transform: translate(-50%, -50%);
		transform-origin: center;
		z-index: 2;
		margin-top: 34px;
	}
}

/* ============================================================
   適用優惠 (#Bonus_gifts)
   ============================================================ */
.coupon-box {
	position: relative;
	justify-content: center;
	margin: 0 auto;
	width: min(100%, auto);
}

.coupon-box>div {
	padding-inline: calc(var(--col-p) * 3) !important;
	padding-bottom: calc(var(--col-p) * 3);

	img {
		max-width: 100%;
		transition: var(--transition-com);
	}
}

@media screen and (max-width: 767px) {
	.coupon-box>div {
		padding-inline: calc(var(--col-p) * 1) !important;
	}

}

.coupon-box a:not(.btn) {
	cursor: pointer;
	display: inline-block;
	position: relative;
	height: 100%;
	transition: var(--transition-com);
}

.coupon-box a:not(.btn):hover img {
	filter: drop-shadow(0 0 5px rgba(255, 255, 255, 1)) drop-shadow(0 1px 5px rgba(255, 255, 255, 1)) drop-shadow(0 5px 15px rgba(255, 255, 255, 0.7));
	transform: scale(1.05);
}

.coupon-box a:not(.btn):hover::before {
	opacity: 0.5;
}

/* ============================================================
   C區：飯店輪播介紹 (.summary-sec)
   ============================================================ */

.summary-sec {
	position: relative;
	margin-block-end: calc(var(--content-p) * 0.75);
	z-index: 10;
}

.summary-txt {
	font-size: 1rem;
	/* line-height: 1.9rem; */
	padding-inline: 1rem;
	font-weight: 300;
	margin-bottom: 15px;
}

@media screen and (max-width: 1023px) {
	.summary-txt {
		text-align: justify;
		text-justify: inter-ideograph;
		word-break: break-all;
	}

	.summary-txt>br {
		display: none;
	}
}

#JX_Airlines .summary-txt {
	font-size: 1.125rem;
	font-weight: 400;
	text-align: center;

	>br {
		display: inline;
	}
}


/* 輪播容器 */
.summary-pic {
	width: 100%;
	overflow: hidden;
	position: relative;
	background-color: #3d480f;
	transform: translateZ(0);
	-webkit-transform: translateZ(0);
}

.summary-track {
	display: flex;
	width: calc(25vw * 10);
	animation: trainSlideScroll 30s linear infinite;
	-webkit-animation: trainSlideScroll 30s linear infinite;
	will-change: transform;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	transform: translateZ(0);
	-webkit-transform: translateZ(0);
	-webkit-perspective: 1000;
	perspective: 1000;
}

/* 飯店A捲動 */
.summary-sec.hotel .summary-track {
	animation: hotelSlideScroll 30s linear infinite;
	-webkit-animation: hotelSlideScroll 30s linear infinite;
}

/* 飯店B捲動 */
.summary-sec.train .summary-track {
	width: calc(25vw * 10);
	animation: trainSlideScrollB 30s linear infinite;
	-webkit-animation: trainSlideScrollB 30s linear infinite;
}

/* 飯店C捲動 */
.summary-sec.hotel-c .summary-track {
	width: calc(25vw * 10);
	animation: hotelSlideScrollC 30s linear infinite;
	-webkit-animation: hotelSlideScrollC 30s linear infinite;
}

.summary-item {
	width: 25vw;
	flex-shrink: 0;
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	transform: translateZ(0);
	backface-visibility: hidden;
}

.summary-item>figcaption {
	position: absolute;
	display: inline-block;
	background-color: rgba(0, 0, 0, 0.5);
	padding: 0.2rem 0.75rem;
	bottom: 0;
	right: 0;
}

@media (max-width: 991px) {
	.summary-item>figcaption {
		font-size: 0.875rem;
	}
}

.summary-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* ④ Hover 暫停限制只給桌機 */
@media (hover: hover) and (pointer: fine) {
	.summary-pic:hover .summary-track {
		animation-play-state: paused;
	}
}

/* ── 桌機版 keyframes ── */
@keyframes trainSlideScroll {
	0% {
		transform: translate3d(0, 0, 0);
	}

	100% {
		transform: translate3d(-125vw, 0, 0);
	}
}

@-webkit-keyframes trainSlideScroll {
	0% {
		-webkit-transform: translate3d(0, 0, 0);
	}

	100% {
		-webkit-transform: translate3d(-125vw, 0, 0);
	}
}

@keyframes hotelSlideScroll {
	0% {
		transform: translate3d(-125vw, 0, 0);
	}

	100% {
		transform: translate3d(0, 0, 0);
	}
}

@-webkit-keyframes hotelSlideScroll {
	0% {
		-webkit-transform: translate3d(-125vw, 0, 0);
	}

	100% {
		-webkit-transform: translate3d(0, 0, 0);
	}
}

@keyframes trainSlideScrollB {
	from {
		transform: translate3d(0, 0, 0);
	}

	to {
		transform: translate3d(-125vw, 0, 0);
	}
}

@-webkit-keyframes trainSlideScrollB {
	from {
		-webkit-transform: translate3d(0, 0, 0);
	}

	to {
		-webkit-transform: translate3d(-125vw, 0, 0);
	}
}

@keyframes hotelSlideScrollC {
	from {
		transform: translate3d(-125vw, 0, 0);
	}

	to {
		transform: translate3d(0, 0, 0);
	}
}

@-webkit-keyframes hotelSlideScrollC {
	from {
		-webkit-transform: translate3d(-125vw, 0, 0);
	}

	to {
		-webkit-transform: translate3d(0, 0, 0);
	}
}

/* ── 手機版（僅一個 media block）── */
@media (max-width: 767px) {
	.summary-track {
		width: calc(50vw * 10);
	}

	.summary-item {
		width: 50vw;
		aspect-ratio: 4 / 3;
	}

	.summary-item>figcaption {
		font-size: 0.75rem;
		padding: 0.15rem 0.5rem;
	}

	.summary-sec.train .summary-track {
		width: calc(50vw * 10);

	}

	.summary-sec.hotel-c .summary-track {
		width: calc(50vw * 10);

	}

	@keyframes trainSlideScroll {
		0% {
			transform: translate3d(0, 0, 0);
		}

		100% {
			transform: translate3d(-250vw, 0, 0);
		}
	}

	@-webkit-keyframes trainSlideScroll {
		0% {
			-webkit-transform: translate3d(0, 0, 0);
		}

		100% {
			-webkit-transform: translate3d(-250vw, 0, 0);
		}
	}

	@keyframes hotelSlideScroll {
		0% {
			transform: translate3d(-250vw, 0, 0);
		}

		100% {
			transform: translate3d(0, 0, 0);
		}
	}

	@-webkit-keyframes hotelSlideScroll {
		0% {
			-webkit-transform: translate3d(-250vw, 0, 0);
		}

		100% {
			-webkit-transform: translate3d(0, 0, 0);
		}
	}

	@keyframes trainSlideScrollB {
		from {
			transform: translate3d(0, 0, 0);
		}

		to {
			transform: translate3d(-250vw, 0, 0);
		}
	}

	@-webkit-keyframes trainSlideScrollB {
		from {
			-webkit-transform: translate3d(0, 0, 0);
		}

		to {
			-webkit-transform: translate3d(-250vw, 0, 0);
		}
	}

	@keyframes hotelSlideScrollC {
		from {
			transform: translate3d(-250vw, 0, 0);
		}

		to {
			transform: translate3d(0, 0, 0);
		}
	}

	@-webkit-keyframes hotelSlideScrollC {
		from {
			-webkit-transform: translate3d(-250vw, 0, 0);
		}

		to {
			-webkit-transform: translate3d(0, 0, 0);
		}
	}
}


/* ============================================================
   演唱會資訊 
   ============================================================ */

#concert_canvas {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
}

/* 演唱會資訊格線 */
.concert-info-sec {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	background: #0e3f56;
	margin-top: 30px;
}

@media screen and (max-width: 767px) {
	.concert-info-sec {
		grid-template-columns: 1fr;
		gap: 0;
		margin-top: 10px;
	}
}

.concert-info-title {
	color: var(--deep-color);
	font-weight: 600;
	border: solid 2px var(--deep-color);
	display: inline-block;
	padding: 0 30px;
	margin-bottom: 25px;
}

.concert-info-txt {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	padding: calc(var(--col-p) * 3);
}

.concert-info-txt h6 {
	display: inline-block;
	border-radius: 500px;
	color: var(--main-gd);
	background-color: var(--main-blue);
	padding: 0 2rem;
	margin-bottom: 6px;
}

.concert-info-txt .concert-info-notice {
	color: rgb(207, 207, 207);
	font-size: .9rem;
	letter-spacing: .8px;
	font-weight: 200;
	line-height: 1.5rem;
}


.concert-info-pic {
	position: relative;
}

.concert-info-pic a {
	color: #fff;
}

.concert-info-pic img {
	max-width: 100%;
	width: 100%;
	height: auto;
}

.concert-info-pic .small {
	position: absolute;
	bottom: 0;
	right: 0;
	white-space: nowrap;
}

.concert-txt {
	font-size: 1rem;
	line-height: 1.9rem;
	padding-inline: 1rem;
	font-weight: 300;
	margin-bottom: 20px;
	text-align: center;
}

.concert-txt>br {
	display: block;
}

@media screen and (max-width: 767px) {
	.concert-txt {
		line-height: 1.5rem;
		text-justify: inter-ideograph;
		word-break: break-all;
	}

	.concert-txt>br {
		display: none;
	}
}

/* APP 下載區塊 */
.appfirst-sec .day-title {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	margin-bottom: 0.5rem;
}

.appfirst-sec .day-title>b {
	width: auto;
	padding-inline-start: 0.6rem;
	padding-inline-end: 0.6rem;
	align-items: center;
	letter-spacing: 0.05rem;
	line-height: 100%;
}

.appfirst-sec .day-title>i {
	position: relative;
	display: block;
	flex: 1 0 0%;
	height: min(1px, 1px);
	background: linear-gradient(to right, var(--main-color) 60%);
}

.appfirst-sec .day-title>i:last-of-type {
	background: linear-gradient(to left, var(--main-color) 60%);
}

.appfirst-sec .btn::after,
.appfirst-sec .btn::before {
	font-family: 'Material Symbols Outlined';
	content: '\f2b2';
	font-size: 1.2em;
	vertical-align: middle;
	font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

.appfirst-sec .btn::after {
	margin-left: 0.25rem;
}

.appfirst-sec .btn::before {
	margin-right: 0.25rem;
}



/* ============================================================
  注意事項
   ============================================================ */

#concert_notice {
	padding-bottom: var(--content-p);
}

#concert_notice ul {
	color: #ffffff;
	font-size: 0.89rem;
	font-weight: 300;
	padding-inline-start: 1.32em;
}

#concert_notice ul li {
	text-indent: -1.32em;
}

#concert_notice ul li::before {
	font-family: 'Material Symbols Outlined';
	content: '\e3e4';
	font-size: 0.9em;
	margin-right: 0.4em;
	vertical-align: middle;
	color: var(--ez-green);
	font-variation-settings: 'wght' 400, 'GRAD' 0, 'opsz' 24;
}




/* -------------------- 折價券_使用完畢+禁用點擊 -------------------- */

.close {
	position: relative;
	pointer-events: none;
	cursor: not-allowed;
}

.close img {
	filter: brightness(0.25);
}


.close::after {
	content: '使用完畢';
	position: absolute;
	top: 47%;
	left: 50%;
	transform: translate(-50%, -50%) rotate(-15deg);
	color: #fff;
	font-size: clamp(1.2rem, 0.8rem + 1vw, 2rem);
	font-weight: 600;
	z-index: 10;
	/* pointer-events: none;  */
	letter-spacing: 0.05em;

}





/* 售完覆蓋效果 */
.pro-box.sold-out {
	position: relative;
	pointer-events: none;
	cursor: not-allowed;
	/* filter: brightness(0.35) grayscale(0.6); */
}

.sold-out .sale_img::after,
.sold-out .sale_Group::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.55);
	/* 60% 黑色 */
	z-index: 1;
	pointer-events: none;
}

.pro-box.sold-out::before {
	content: '已售完';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) rotate(-15deg);
	color: #fff;
	font-size: clamp(1.5rem, 8vw, 2rem);
	font-weight: 600;
	z-index: 999;
	letter-spacing: 0.15em;
	pointer-events: none;

}

/* .sold-out .btn_sale {
  display: none;
} */

/* 固定背景 */

#f3n1-nav {
	position: sticky;
	top: 0;
	z-index: 1000;
}

@media screen and (max-width: 576px) {
	#f3n1-nav {
		position: static;
	}

	#wrapper {
		position: sticky;
		top: 0;
		z-index: 5;
		padding-bottom: 3rem;
	}
}


/* 其他 */
#btn_app {
	position: fixed;
	right: 5px;
	bottom: calc(60px + 95px + 5px);
	z-index: 999;
}

#btn_top {
	position: fixed;
	right: 5px;
	z-index: 999;
}

@media screen and (max-width: 767px) {
	#note .contentbox>ul {
		width: 95%;
	}

	#btn_top,
	#btn_app {
		right: 0;
	}
}