@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@100..900&display=swap');
 
 
/* ============================================================
   全頁共用：CSS 變數、版型、通用元件
   ============================================================ */
 
:root {
	--kv-b: 		 #103f55;
	--ez-green:      #13ca6e;
	--basic-txt:     #ffffff;
	--main-color:    #009b4a;
	--sub-color:     #dfdfdf;
	--accent-color:  #f38292;
	--deep-color:    #ffd93d;
	--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;
	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: 3px;
	background-color: var(--main-color);
	transform: scaleX(0);
	transform-origin: center;
	animation: extendLine 0.4s 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: 800;
	border: solid 2px var(--basic-txt);
	display: inline-block;
	padding: 0 30px;
	margin-bottom: 25px;
}
.Package-title {
	color: var(--deep-color);
	font-weight: 800;
	border: solid 2px var(--deep-color);
	display: inline-block;
	padding: 0 30px;
	margin-bottom: 25px;
}
 
.h2 {
	font-family: 'Noto Sans TC', "微軟正黑體", "微软雅黑", sans-serif;
	font-size: clamp(1.5rem, 3vw, 1.7rem);
	position: relative;
	font-weight: 600;
	animation: glow 2s ease-in-out infinite alternate;
	z-index: 100;
	letter-spacing: 1.5px;
	margin: 40px 0 50px 0;
	color: var(--deep-color);
}
 
@keyframes glow {
	from {
		text-shadow: 0 0 10px var(--main-color), 0 0 20px var(--main-color);
	}
	to {
		text-shadow: 0 0 20px var(--main-color), 0 0 30px var(--main-color), 0 0 40px var(--main-color);
	}
}
 
.h4 {
	color: var(--main-color);
	font-weight: 600;
	line-height: 2rem;
	text-align: center;
}
.h5 {
	color: var(--main-color);
	font-weight: 400;
	line-height: 1.5rem;
	text-align: center;
	margin-bottom: 20px;
}
.h5 > b { font-size: 1.23rem; }
.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: .8rem;
}
p > br { display: none; }
 
@media (max-width: 767px) {
	p { line-height: 1rem; }
	p > br { display: block; }
}
 
.sale_info .h3 {
	color: var(--main-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;
}
 
/* ---------- 版型輔助 ---------- */
#wrapper {
	width: 100%;
	min-width: 100%;
	overflow-x: hidden;
	position: relative;
}
 
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/rene/rene_taipei_1920x408.jpg) no-repeat center;
    background-size: cover;
    z-index: 2;
}

@media screen and (max-width: 767px) {
    #main_top {
        padding-bottom: calc(400 / 768 * 100%);
        background: url(https://event.cdn-eztravel.com.tw/events/rene/rene_taipei_768x400.jpg) no-repeat center;
        background-size: cover;
    }
}
/*-------------------- 主視覺 END --------------------*/
/*-------------------- NAV --------------------*/

.nav_bar {
    display: block;
    position: relative;
    padding: 0;
    background: linear-gradient(to right, #057093 5%, #145569 50%, #0b3448 95%);
    margin: 0 auto;
    overflow: hidden;
}
.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 {
        background: linear-gradient(to right, #0d6273 5%, #105d6f 50%, #124f63 95%);
    }
    /*.nav_bar ul.rowline > li {
        display: block;
        width: 100%;
    }*/
}

/*-------------------- NAV END --------------------*/
 
 
/* ============================================================
   背景特效：particles-js 螢光粒子
   ============================================================ */
 
#particles-js {
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	z-index: 1;
	pointer-events: none;
	overflow: hidden;
}
 
 
 
/* ============================================================
   套票商品
   ============================================================ */
 
#concert_ticket {
	min-height: auto;
	overflow: visible;
	position: relative;
}
 
/* 背景圖片（偽元素） */
#concert_ticket::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 905px;
	background-image: url('https://event.cdn-eztravel.com.tw/events/rene/BG-top.jpg');
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
	z-index: -1;
}
@media (max-width: 768px) {
	#concert_ticket::before {
		background-image: url('https://event.cdn-eztravel.com.tw/events/rene/BG-top_m.jpg');
	}
}
  
/* 側邊閃光效果 */
.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-bottom: 0.5rem;
	z-index: 100;
	line-height: 2.5rem;
	color: var(--ez-green);
}
.title_01 span {
	color: var(--deep-color);
}
.title_01::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 1px;
	background-color: #ffffff;
	transform: scaleX(0);
	transform-origin: center;
	animation: extendLine 0.4s ease-out forwards;
}
.title_sec{	color: var(--deep-color);}
.pro-ticket { width: 100%; height: 100%; }
.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;
	top: 0;
	right: -100%;
	width: 50%;
	height: 100%;
	background: linear-gradient(to left, rgba(17, 208, 115, 0.3), transparent);
	opacity: 0;
	transition: all 0.5s ease;
	pointer-events: none;
	z-index: -1;
}
.pro-box:hover::after { right: 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(--main-color),
		0 0 0.6rem var(--main-color),
		0 0 0.8rem var(--main-color),
		0 0 1rem var(--main-color);
	border: none;
}
.pro-box:hover .btn_sale {
	color: white;
	background: linear-gradient(80deg, var(--main-color), var(--deep-color)) 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: 300;
}
.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(--main-color);
}
.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: 400;
	background: linear-gradient(80deg, var(--ez-green), var(--main-color));
	/* 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: sub;
	margin-inline-start: 0.25rem;
	font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}
.pro-box .btn_sale:hover {
	background: linear-gradient(80deg, var(--main-color), var(--kv-b)) 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;
	}
}
 
 
 
/* ============================================================
   C區：飯店輪播介紹 (.summary-sec)
   ============================================================ */
 
.summary-sec {
    position: relative;
    margin-block-start: calc(var(--content-p) * 2 / 4);
    z-index: 10;
}

.summary-txt {
    font-size: 1rem;
    line-height: 1.9rem;
    padding-inline: 1rem;
    font-weight: 300;
    margin-bottom: 15px;
}
.summary-txt > br { display: block; }

@media screen and (max-width: 1023px) {
    .summary-txt {
        line-height: 1.5rem;
        text-align: justify;
        text-justify: inter-ideograph;
        word-break: break-all;
    }
    .summary-txt > br { display: none; }
}

/* 輪播容器 */
.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 * 12);
    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：8 張一組 */
.summary-sec.train .summary-track {
    width: calc(25vw * 16);
    animation: trainSlideScrollB 32s linear infinite;
    -webkit-animation: trainSlideScrollB 32s linear infinite;
}

/* 飯店C：10 張一組 */
.summary-sec.hotel-c .summary-track {
    width: calc(25vw * 20);
    animation: hotelSlideScrollC 40s linear infinite;
    -webkit-animation: hotelSlideScrollC 40s 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(-150vw, 0, 0); }
}
@-webkit-keyframes trainSlideScroll {
    0%   { -webkit-transform: translate3d(0, 0, 0); }
    100% { -webkit-transform: translate3d(-150vw, 0, 0); }
}

@keyframes hotelSlideScroll {
    0%   { transform: translate3d(-150vw, 0, 0); }
    100% { transform: translate3d(0, 0, 0); }
}
@-webkit-keyframes hotelSlideScroll {
    0%   { -webkit-transform: translate3d(-150vw, 0, 0); }
    100% { -webkit-transform: translate3d(0, 0, 0); }
}

@keyframes trainSlideScrollB {
    from { transform: translate3d(0, 0, 0); }
    to   { transform: translate3d(-200vw, 0, 0); }
}
@-webkit-keyframes trainSlideScrollB {
    from { -webkit-transform: translate3d(0, 0, 0); }
    to   { -webkit-transform: translate3d(-200vw, 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); }
}

/* ── 手機版（僅一個 media block）── */
@media (max-width: 767px) {
    .summary-track { width: calc(50vw * 12); }
    .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 * 16);
    }
    .summary-sec.hotel-c .summary-track {
        width: calc(50vw * 20);
    }

    @keyframes trainSlideScroll {
        0%   { transform: translate3d(0, 0, 0); }
        100% { transform: translate3d(-300vw, 0, 0); }
    }
    @-webkit-keyframes trainSlideScroll {
        0%   { -webkit-transform: translate3d(0, 0, 0); }
        100% { -webkit-transform: translate3d(-300vw, 0, 0); }
    }
    @keyframes hotelSlideScroll {
        0%   { transform: translate3d(-300vw, 0, 0); }
        100% { transform: translate3d(0, 0, 0); }
    }
    @-webkit-keyframes hotelSlideScroll {
        0%   { -webkit-transform: translate3d(-300vw, 0, 0); }
        100% { -webkit-transform: translate3d(0, 0, 0); }
    }
    @keyframes trainSlideScrollB {
        from { transform: translate3d(0, 0, 0); }
        to   { transform: translate3d(-400vw, 0, 0); }
    }
    @-webkit-keyframes trainSlideScrollB {
        from { -webkit-transform: translate3d(0, 0, 0); }
        to   { -webkit-transform: translate3d(-400vw, 0, 0); }
    }
    @keyframes hotelSlideScrollC {
        from { transform: translate3d(-500vw, 0, 0); }
        to   { transform: translate3d(0, 0, 0); }
    }
    @-webkit-keyframes hotelSlideScrollC {
        from { -webkit-transform: translate3d(-500vw, 0, 0); }
        to   { -webkit-transform: translate3d(0, 0, 0); }
    }
}


/* ============================================================
   中信加碼 (#Bonus_gifts)
   ============================================================ */
 
.ctbc img { transition: transform 0.25s ease; }
.ctbc-link:hover img { transform: scale(1.01); }
#ctbc-LOGO{
	display: flex;
    flex-direction: column;
    align-items: center;
    /* justify-content: center; */
    margin-bottom: 20px;
}
.ctbc_txt{
	display: flex;
    max-height: 600px;
    height: 100%;
    align-items: center;
    justify-content: center;
}
.ctbc_text_1{
	font-size: 1.3rem;
    font-weight: 200;
    line-height: 2.8rem;
	text-align: center;  
}
.ctbc_text_1 span{
	font-size: 1.6rem;
    font-weight: 400;
	color:var(--ez-green);
}
.ctbc_text_2{
	font-size: 1.3rem;
    font-weight: 200;
    line-height: 2.8rem;
	text-align: center;  
}
.ctbc_text_2 span{
	font-size: 1.6rem;
    font-weight: 800;
	color:var(--deep-color);
}
.ctbc_waring{
	text-align: center;
    font-size: 1.5rem;
    margin-top: 50%;
}
@media (max-width: 768px) {
	.ctbc_waring{ margin-top: 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: 800;
    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-block: 1.5rem;
}
.concert-info-txt h6 {
	display: inline-block;
	border-radius: 100px;
	color: #000;
	background-color: var(--deep-color);
	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: var(--sub-color);
	font-size: 0.89rem;
	padding-inline-start: 1.32em;
}
#concert_notice ul li {
	text-indent: -1.32em;
}
#concert_notice ul li::before {
	font-family: 'Material Symbols Outlined';
	content: '\e836';
	font-size: 1em;
	margin-right: 0.4em;
	vertical-align: middle;
	color: var(--deep-color);
	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;
} */

/* 固定背景 */

#rene_taipei-nav {
    position: sticky;
    top: 0;
    z-index: 1000;
}
@media screen and (max-width: 576px) {
    #rene_taipei-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;
    }
}