/* =========================================================
   色彩變數
   ========================================================= */ :root {
		/* VIP 主題色 */
		--vip-navy: #142b49;
		--vip-dark: #101a2e;
		--vip-gold: #dcb47b;
		--vip-light-gold: #f1d8a3;
		--vip-red: #de3732;
		--vip-cream: #f0e7e9;
		/* 共用色 */
		--color-white: #fff;
		--color-black: #000;
		--color-navbar: #172339;
		--color-kv-bg: #0c0f21;
		--color-link-gold: #c7a77a;
		--color-section-border: #d9b678;
		--color-step-blue: #557096;
		--color-light-surface: #f0f0f3;
		/* 字級 */
		--font-size-xs: .75rem;
		--font-size-sm: clamp(12px, 0.75rem + 0.3vw, 14px);
		--font-size-base: clamp(14px, 0.875rem + 0.3vw, 16px);
		--font-size-md: clamp(16px, 1rem + 0.5vw, 20px);
		--font-size-lg: clamp(18px, 1.125rem + 0.5vw, 24px);
		--font-size-2lg: clamp(20px, 1.25rem + 0.8vw, 28px);
		--font-size-3lg: clamp(22px, 1.375rem + 1vw, 32px);
		--font-size-xl: clamp(26px, 1.625rem + 1.5vw, 46px);
		--font-size-2xl: clamp(30px, 1.875rem + 2vw, 60px);
		--font-size-3xl: clamp(44px, 2.75rem + 3vw, 88px);
		--font-sp: 'Noto Sans TC', 'Microsoft Yahei', "微軟正黑體", sans-serif;
}
/* =========================================================
   Basic
   ========================================================= */
html {
		max-width: 100%;
		overflow-x: hidden;
}
button {
		border: 0;
}
a, a:hover {
		text-decoration: none;
		-webkit-transition: all .3s ease;
		transition: all .3s ease;
}
ol, ul {
		list-style: none;
}
.act-sect {
		position: relative;
}
.c_red {
		color: #e12621 !important;
}
body.modal-open {
		padding-right: 0 !important;
}
.nav-link.btn {
		border: 0;
		background: transparent;
		text-align: center;
		text-decoration: none;
		cursor: pointer;
}
.nav-link.btn:focus {
		-webkit-box-shadow: none;
		box-shadow: none;
}
.wow {
		-webkit-animation-fill-mode: both;
		animation-fill-mode: both;
}
.is-line {
		font-size: 80%;
		position: relative;
		top: -4px;
}
/* =========================================================
   共用按鈕
   ========================================================= */
/* 鍵盤操作時保留可見的焦點提示 */
/*.act-wrap :focus-visible, .navbar-custom :focus-visible, .offcanvas-custom :focus-visible {
		outline: 2px solid var(--vip-light-gold) !important;
		outline-offset: 3px;
}*/
.act-wrap {
		position: relative;
		width: 100%;
		height: auto;
		padding-top: 75px;
		background: var(--color-white);
		color: var(--color-black);
		text-align: left;
		font-size: var(--font-size-base);
		font-weight: 400;
		line-height: 1.5;
}
.act-wrap .act-btn {
		padding: .5em 1em;
		border-radius: 20em;
		letter-spacing: 2px;
		cursor: pointer;
}
.act-wrap .btn-red {
		background: #c43826;
		color: var(--color-white);
}
.act-wrap .btn-red:hover {
		background: #d74431;
		color: var(--color-white);
}
.act-wrap .btn-gold {
		background: #ce802c;
		color: var(--color-white);
}
.act-wrap .btn-gold:hover {
		background: #d78f42;
		color: var(--color-white);
}
.act-wrap .main-btn {
		display: -webkit-inline-box;
		display: -ms-inline-flexbox;
		display: inline-flex;
		-webkit-box-align: center;
		-ms-flex-align: center;
		align-items: center;
		-webkit-box-pack: center;
		-ms-flex-pack: center;
		justify-content: center;
		padding-right: .6em;
		padding-left: 1.4em;
		border-radius: 10em;
		font-weight: bold;
		-webkit-transition: background-color 200ms ease;
		transition: background-color 200ms ease;
}
.act-wrap .main-btn-text {
		margin-right: .5em;
}
.act-wrap .main-btn-arrow {
		position: relative;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		overflow: hidden;
		-webkit-box-align: center;
		-ms-flex-align: center;
		align-items: center;
		-webkit-box-pack: end;
		-ms-flex-pack: end;
		justify-content: flex-end;
		width: 1.6em;
		height: 1.6em;
		border-radius: 50%;
		background: var(--color-white);
}
.act-wrap .btn-arrow-wrapper {
		position: absolute;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		width: 200%;
		height: 100%;
}
.act-wrap .main-btn:hover .btn-arrow-wrapper {
		-webkit-animation: arrow-move .3s both;
		animation: arrow-move .3s both;
		font-size: var(--font-size-base);
}
.act-wrap .btn-arrow-pic {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		-ms-flex-align: center;
		align-items: center;
		-webkit-box-pack: center;
		-ms-flex-pack: center;
		justify-content: center;
		width: 50%;
		height: 100%;
		background-image: url("../images/btn-arrow.svg");
		background-position: center;
		background-repeat: no-repeat;
		background-size: cover;
}
.act-wrap .btn-gold .btn-arrow-pic {
		background-image: url("../images/btn-arrow-gold.svg");
}
@-webkit-keyframes arrow-move {
		from {
				-webkit-transform: translateX(0);
				transform: translateX(0);
		}
		to {
				-webkit-transform: translateX(50%);
				transform: translateX(50%);
		}
}
@keyframes arrow-move {
		from {
				-webkit-transform: translateX(0);
				transform: translateX(0);
		}
		to {
				-webkit-transform: translateX(50%);
				transform: translateX(50%);
		}
}
/* 側邊固定按鈕 */
.act-wrap .side-btn-wrap {
		position: fixed;
		right: 0;
		bottom: 10vh;
		z-index: 999;
		-webkit-transition: all .8s cubic-bezier(.95, .05, .795, .035) !important;
		transition: all .8s cubic-bezier(.95, .05, .795, .035) !important;
}
.act-wrap .side-btn {
		position: relative;
		right: -30px;
		margin: 0 !important;
		padding: 1.3em .6em 1em !important;
		text-align: center;
		-webkit-transform: translateX(100%) rotate(30deg);
		-ms-transform: translateX(100%) rotate(30deg);
		transform: translateX(100%) rotate(30deg);
		-webkit-transition: all .4s ease-in-out !important;
		transition: all .4s ease-in-out !important;
}
.act-wrap .side-btn .main-btn-text {
		margin: 0 0 .5em;
		padding: 0;
		line-height: 1.2;
		font-size: var(--font-size-base);
}
.act-wrap .side-btn01 {
		margin-bottom: .5em !important;
}
.act-wrap .side-btn-show .side-btn {
		right: 10px;
		-webkit-transform: translateX(0) rotate(0);
		-ms-transform: translateX(0) rotate(0);
		transform: translateX(0) rotate(0);
		-webkit-transition: all .8s cubic-bezier(.95, .05, .795, .035) !important;
		transition: all .8s cubic-bezier(.95, .05, .795, .035) !important;
}
/* =========================================================
   導覽列、Offcanvas、Modal
   ========================================================= */
.navbar-custom {
		height: 75px;
		background: var(--color-navbar);
		-webkit-transition: all .3s ease;
		transition: all .3s ease;
}
.navbar-brand img {
		height: 40px;
}
.navbar-nav .nav-link {
		padding: .5rem 1rem;
		color: var(--color-white);
		font-weight: bold;
		-webkit-transition: color .3s ease;
		transition: color .3s ease;
		font-size: var(--font-size-md);
}
.navbar-nav .nav-link.active, .navbar-nav .nav-link:hover {
		color: var(--color-link-gold) !important;
}
.hamburger {
		position: relative;
		display: inline-block;
		width: 30px;
		height: 24px;
		cursor: pointer;
}
.hamburger span {
		position: absolute;
		left: 0;
		display: block;
		width: 100%;
		height: 1px;
		border-radius: 1px;
		background: var(--color-white);
		opacity: 1;
		-webkit-transform: rotate(0);
		-ms-transform: rotate(0);
		transform: rotate(0);
		-webkit-transition: .25s ease-in-out;
		transition: .25s ease-in-out;
}
.hamburger span:nth-child(1) {
		top: 0;
}
.hamburger span:nth-child(2), .hamburger span:nth-child(3) {
		top: 10px;
}
.hamburger span:nth-child(4) {
		top: 20px;
}
.hamburger.active span:nth-child(1), .hamburger.active span:nth-child(4) {
		top: 10px;
		left: 50%;
		width: 0;
}
.hamburger.active span:nth-child(2) {
		-webkit-transform: rotate(45deg);
		-ms-transform: rotate(45deg);
		transform: rotate(45deg);
}
.hamburger.active span:nth-child(3) {
		-webkit-transform: rotate(-45deg);
		-ms-transform: rotate(-45deg);
		transform: rotate(-45deg);
}
.offcanvas-custom {
		width: 280px !important;
}
.offcanvas-custom .btn-close {
		display: none;
}
.offcanvas-custom .navbar-nav .nav-link {
		padding: 1rem 1.5rem;
		border-bottom: 1px solid #eee;
}
.offcanvas-custom .navbar-nav .nav-link:last-child {
		border-bottom: 0;
}
.basic-modal .modal-header {
		padding: 0;
		border: 0;
}
.basic-modal .btn-close {
		position: absolute;
		top: 1rem;
		right: 1rem;
		z-index: 2;
}
.basic-modal .btn-close:focus {
		outline: none !important;
		box-shadow: none !important;
}
/* =========================================================
   共用區塊、KV、頁尾
   ========================================================= */
.act-sect-notice {
		padding-top: 0;
		background: var(--color-white);
}
.act-sect-notice .act-container-wrap {
		max-width: 1100px;
}
.act-sect-footer {
		position: relative;
		z-index: 3;
		width: 100%;
		padding: 2em 0;
		background: #172439;
		color: #d3d4d6;
}
.act-sect-footer .container-wrap {
		text-align: center;
}
.act-sect-footer .text {
		vertical-align: middle;
		list-style: none;
}
.act-sect-footer .text p {
		margin-bottom: 0;
}
.act-sect-footer .text a {
		color: #172439;
		text-decoration: underline;
}
.act-sect-footer .text a:hover {
		color: #f00;
}
.act-sect-footer .copyright {
		margin-top: 1em;
}
.act-sect-footer .copyright p:last-child {
		font-weight: 200;
}
#kv {
		background: var(--color-kv-bg);
}
.topic_text {
		max-width: 100%;
		margin: auto;
}
.item_a, .item_b {
		top: 0;
		right: 0;
		left: 0;
		z-index: 2;
		width: 100%;
		height: 100%;
		margin: auto;
		pointer-events: none;
}
.kv_date {
		position: relative;
		top: -1rem;
		color: var(--color-white);
		font-size: var(--font-size-base);
		letter-spacing: 2px;
		text-align: center;
}
.kv_topic_group {
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		width: -webkit-fit-content;
		width: -moz-fit-content;
		width: fit-content;
		max-width: 35vw;
		height: -webkit-fit-content;
		height: -moz-fit-content;
		height: fit-content;
		margin: auto;
}
.kv_topic_group img {
		top: 0;
		right: 0;
		left: 0;
		margin: auto;
}
.link-block {
		display: block;
		width: 100%;
		height: 25%;
		bottom: 0;
		z-index: 2;
		background-color: RGBA(255, 255, 255, 0);
}
.link-block.is-left {
		left: 0;
		max-width: 50%;
		aspect-ratio: 16 / 8;
}
.link-block.is-right {
		right: 0;
		max-width: 46%;
		aspect-ratio: 16 / 8;
}
.kv_top_mask {
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		overflow: hidden;
		margin: auto;
		background: transparent;
		-webkit-mask-image: url("../images/kv/kv_topic_mask.png");
		mask-image: url("../images/kv/kv_topic_mask.png");
		-webkit-mask-position: center;
		mask-position: center;
		-webkit-mask-repeat: no-repeat;
		mask-repeat: no-repeat;
		-webkit-mask-size: contain;
		mask-size: contain;
}
.kv_top_mask::before {
		position: absolute;
		top: 0;
		left: -100%;
		width: 50%;
		height: 100%;
		background: -webkit-gradient(linear, left top, right top, color-stop(30%, rgba(255, 255, 255, 0)), color-stop(50%, rgba(255, 255, 255, .75)), color-stop(80%, rgba(255, 255, 255, 0)));
		background: linear-gradient(to right, rgba(255, 255, 255, 0) 30%, rgba(255, 255, 255, .75) 50%, rgba(255, 255, 255, 0) 80%);
		content: "";
		pointer-events: none;
		-webkit-transform: skewX(-20deg);
		-ms-transform: skewX(-20deg);
		transform: skewX(-20deg);
		-webkit-animation: sweep 3.5s 2.5s infinite linear;
		animation: sweep 3.5s 2.5s infinite linear;
}
@-webkit-keyframes sweep {
		from {
				left: -100%;
		}
		to {
				left: 200%;
		}
}
@keyframes sweep {
		from {
				left: -100%;
		}
		to {
				left: 200%;
		}
}
#precautions {
		padding: 2.5rem 0;
		background: #ccc;
}
/* =========================================================
   VIP 頁面基礎
   ========================================================= */
.vip-page {
		overflow: clip;
		background: var(--vip-dark);
		color: var(--color-white);
		font-family: var(--vip-font, inherit);
		font-size: var(--font-size-base);
		line-height: 1.6;
}
.vip-page *, .vip-page *::before, .vip-page *::after {
		-webkit-box-sizing: border-box;
		box-sizing: border-box;
}
.vip-page a {
		text-decoration: none;
}
.vip-page section[id] {
		scroll-margin-top: 80px;
}
.vip-container {
		width: min(100% - 2rem, 1100px);
		margin-inline: auto;
		padding: 2rem 0 !important;
}
.vip-heading {
		position: relative;
		display: inline-block;
		margin: 0 auto;
		color: var(--vip-light-gold);
		font-size: var(--font-size-xl);
		font-weight: bolder;
		line-height: 1.35;
		text-align: center;
}
.vip-heading.has-gradient {
		background: -webkit-gradient(linear, left top, right top, from(#e8c476), color-stop(25%, #f7e7c6), color-stop(50%, #d0b374), color-stop(80%, #c2a973), to(#f2dbaa));
		background: linear-gradient(90deg, #e8c476 0%, #f7e7c6 25%, #d0b374 50%, #c2a973 80%, #f2dbaa 100%);
		-webkit-background-clip: text;
		background-clip: text;
		-webkit-text-fill-color: transparent;
}
.vip-heading .accent {
		color: #fa4b43;
}
.vip-lead {
		display: inline-block;
		max-width: 990px;
		margin: 1rem auto;
		font-size: var(--font-size-md);
		line-height: 1.7;
		text-align: start;
}
.vip-btn {
		display: -webkit-inline-box;
		display: -ms-inline-flexbox;
		display: inline-flex;
		-webkit-box-align: center;
		-ms-flex-align: center;
		align-items: center;
		-webkit-box-pack: center;
		-ms-flex-pack: center;
		justify-content: center;
		min-height: 40px;
		padding: .5rem 2rem;
		border: 0;
		border-radius: 5rem;
		background: #dcba84;
		-webkit-box-shadow: 0 .25rem .25rem rgba(0, 0, 0, .125);
		box-shadow: 0 .25rem .25rem rgba(0, 0, 0, .125);
		color: var(--color-black) !important;
		font-size: var(--font-size-base);
		font-weight: bold;
		text-align: center;
		-webkit-transition: all .1s linear;
		transition: all .1s linear;
}
.vip-btn:hover {
		-webkit-box-shadow: 0 .125rem .125rem rgba(0, 0, 0, .5);
		box-shadow: 0 .125rem .125rem rgba(0, 0, 0, .5);
		-webkit-transform: translateY(2px);
		-ms-transform: translateY(2px);
		transform: translateY(2px);
}
.vip-btn .icon {
		position: relative;
		top: 0;
		max-width: 14px;
		margin-left: .5rem;
}
.vip-btn-brown {
		background: #916747;
		color: var(--color-white) !important;
}
.vip-btn-blue {
		background: var(--vip-navy);
		color: var(--color-white) !important;
}
.vip-menu-toggle {
		display: none;
		-webkit-box-align: center;
		-ms-flex-align: center;
		align-items: center;
		-webkit-box-pack: center;
		-ms-flex-pack: center;
		justify-content: center;
		width: 43px;
		height: 39px;
		border: 1px solid #ffffff80;
		border-radius: 5px;
		background: transparent;
		color: var(--color-white);
		font-size: 24px;
		line-height: 1;
}
.vip-mobile-menu {
		display: none;
}
/* =========================================================
   VIP KV、活動卡片
   ========================================================= */
.vip-hero {
		background-color: var(--color-kv-bg);
		background-image: url("../images/kv/kv_bg_bot.jpg");
		background-position: center top;
		background-repeat: no-repeat;
		background-size: 100% auto;
}
.vip-hero .vip-container {
		padding: 0 0 6rem !important;
}
.vip-hero-cards {
		display: -ms-grid;
		display: grid;
		-ms-grid-columns: minmax(0, 1fr) 1.5rem minmax(0, 1fr);
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.5rem;
		max-width: 1100px;
		margin: 0 auto;
}
.vip-hero-card {
		position: relative;
		min-height: 200px;
		padding: 3rem 1rem;
		border-radius: 1.25rem;
		background: -webkit-gradient(linear, left top, right top, color-stop(5%, #fff1ce), color-stop(15%, #f6e7c5), color-stop(50%, #cfb273), color-stop(95%, #f1daa8));
		background: linear-gradient(to right, #fff1ce 5%, #f6e7c5 15%, #cfb273 50%, #f1daa8 95%);
		color: #171312;
		text-align: center;
		aspect-ratio: 977 / 490;
}
.vip-hero-card .bg_item {
		right: 2rem;
		bottom: 1.375rem;
		max-width: 100px;
		pointer-events: none;
}
.vip-hero-card::before {
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 1;
		width: 100%;
		max-width: calc(100% - 1.5rem);
		height: 100%;
		margin: auto;
		background-image: url("../images/card_line.png");
		background-position: center;
		background-repeat: no-repeat;
		background-size: contain;
		content: "";
		pointer-events: none;
}
.vip-hero-card .card-shadow {
		position: absolute;
		right: 0;
		bottom: calc(-35% - 2px);
		left: 0;
		width: 100%;
		height: 35%;
		margin: auto;
		border-radius: 2rem;
		background: -webkit-gradient(linear, left top, left bottom, from(rgba(232, 196, 119, 1)), color-stop(35%, rgba(232, 196, 119, 0)));
		background: linear-gradient(to bottom, rgba(232, 196, 119, 1) 0%, rgba(232, 196, 119, 0) 35%);
		opacity: .65;
		pointer-events: none;
}
.vip-hero-card .eyebrow {
		display: block;
		color: #ae382f;
		font-size: var(--font-size-base);
		font-weight: bold;
}
.vip-hero-card h2 {
		margin: 3px 0;
		font-size: var(--font-size-3lg);
		font-weight: bold;
}
.vip-hero-card p {
		margin: 0 0 13px;
		font-size: var(--font-size-sm);
}
.vip-hero-card .card_text {
		max-width: 55%;
		margin: .75rem auto 1.25rem;
}
/* =========================================================
   尊榮禮遇 Tabs
   ========================================================= */
.vip-page #rewards {
		padding: 55px 0 28px;
		border-top: 3px solid var(--color-section-border);
		background-image: url("../images/tabs_bg.jpg");
		background-position: center;
		background-repeat: no-repeat;
		background-size: cover;
}
.vip-rewards-label {
		position: relative;
		padding: .35rem .35rem .125rem .35rem;
		border: 2px solid #e8c476;
		font-size: 45%;
		border-radius: .5rem;
		margin-left: .5rem;
		top: -10px;
		display: -webkit-inline-box;
		display: -ms-inline-flexbox;
		display: inline-flex;
		-webkit-box-pack: center;
		-ms-flex-pack: center;
		justify-content: center;
		-webkit-box-align: end;
		-ms-flex-align: end;
		align-items: flex-end;
		background: -webkit-gradient(linear, left top, right top, from(#e8c476), color-stop(25%, #f7e7c6), color-stop(50%, #d0b374), color-stop(80%, #c2a973), to(#f2dbaa));
		background: linear-gradient(90deg, #e8c476 0%, #f7e7c6 25%, #d0b374 50%, #c2a973 80%, #f2dbaa 100%);
		-webkit-background-clip: text;
		background-clip: text;
		-webkit-text-fill-color: transparent;
}
.vip-rewards-label .no {
		font-size: 140%;
		position: relative;
		line-height: 1;
		bottom: 2px;
		background: -webkit-gradient(linear, left top, right top, from(#e8c476), color-stop(25%, #f7e7c6), color-stop(50%, #d0b374), color-stop(80%, #c2a973), to(#f2dbaa));
		background: linear-gradient(90deg, #e8c476 0%, #f7e7c6 25%, #d0b374 50%, #c2a973 80%, #f2dbaa 100%);
		-webkit-background-clip: text;
		background-clip: text;
		-webkit-text-fill-color: transparent;
}
.vip-rewards-action {
		margin-top: 25px;
		text-align: center;
}
.vip-tabs-scroll {
		width: min(100%, 800px);
		margin: 26px auto 0;
}
.vip-reward-tabs {
		width: 800px;
		overflow: hidden;
		border-radius: 26px;
		background: var(--color-white);
		color: #202020;
}
.vip-tab-list {
		display: -ms-grid;
		display: grid;
		-ms-grid-columns: 350px 150px 150px 150px;
		grid-template-columns: 350px 150px 150px 150px;
		width: 800px;
		height: 60px;
		background: var(--vip-gold);
}
.vip-tab {
		z-index: 2;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: end;
		-ms-flex-align: end;
		align-items: flex-end;
		-webkit-box-pack: center;
		-ms-flex-pack: center;
		justify-content: center;
		min-width: 0;
		height: 60px;
		padding: 0 0 1rem .5rem;
		border: 0;
		border-left: 2px solid #704633 !important;
		border-radius: 1.5rem 0 0;
		background: var(--vip-gold);
		color: #f6e6c9;
		font-size: var(--font-size-md);
		font-weight: bold;
		line-height: 1;
		white-space: nowrap;
}
.vip-tab .no {
		font-size: 150%;
		position: relative;
		top: 2px;
}
.vip-tab:first-child {
		border-left: 0 !important;
		border-radius: 0 !important;
}
.vip-tab[aria-selected="true"] {
		position: relative;
		z-index: 1;
		background: var(--vip-navy);
		color: var(--color-white);
}
.vip-tab[aria-selected="true"]::after {
		position: absolute;
		top: 0;
		right: -20px;
		z-index: 1;
		display: block;
		width: 20px;
		height: 20px;
		background: var(--vip-navy);
		content: "";
}
.vip-tab .unit {
		margin-left: 5px;
		font-size: var(--font-size-base);
}
.vip-tab-panel {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: end;
		-ms-flex-align: end;
		align-items: flex-end;
		-webkit-box-pack: center;
		-ms-flex-pack: center;
		justify-content: center;
		min-height: 350px;
		padding: 2rem;
		/*background: var(--vip-cream);*/
		background: var(--color-white);
		text-align: center;
}
.vip-tab-panel .reward-lines {
		width: 100%;
		max-width: 100%;
		margin: 0;
		color: #2b2628;
		font-size: var(--font-size-sm);
		line-height: 1.55;
}
.vip-tab-panel .reward-lines .photo {
		display: block;
		aspect-ratio: 16 / 9;
		width: 100%;
}
.vip-tab-panel .reward-lines .photo img {
		-o-object-fit: contain;
		object-fit: contain;
		display: block;
		width: 100%;
		height: 100%;
}
.vip-tab-panel .reward-lines h5 small {
		margin: .5rem auto;
		font-size: var(--font-size-sm);
		font-weight: normal;
}
.vip-tab-panel .reward-lines p {
		margin: .25rem;
}
.vip-tab-panel .reward-lines .vip-btn {
		display: block;
		width: -webkit-fit-content;
		width: -moz-fit-content;
		width: fit-content;
		margin: 0 auto;
}
.vip-tab-panel .reward-lines ul {
		display: inline-block;
		margin-left: 1rem;
		text-align: start;
}
.vip-tab-panel .restricted p {
		font-size: var(--font-size-sm);
}
.vip-tab-panel .restricted .vip-btn {
		margin-top: .75rem;
		font-size: var(--font-size-sm);
		font-weight: normal;
}
.vip-tab-panel[hidden] {
		display: none !important;
}
.vip-tab-panel:not([hidden]) {
		-webkit-animation: vip-panel-fade-in 350ms ease-out both;
		animation: vip-panel-fade-in 350ms ease-out both;
}
@-webkit-keyframes vip-panel-fade-in {
		from {
				opacity: 0;
		}
		to {
				opacity: 1;
		}
}
@keyframes vip-panel-fade-in {
		from {
				opacity: 0;
		}
		to {
				opacity: 1;
		}
}
/* =========================================================
   新戶私享會：講者、城市、步驟、贈禮
   ========================================================= */
.vip-page #vip {
		padding: 58px 0 77px;
		border-top: 3px solid var(--color-section-border);
		background-image: url("../images/center_bg_s.jpg");
		background-position: center top;
		background-repeat: no-repeat;
		background-size: cover;
}
.vip-topic-divider {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		-ms-flex-align: center;
		align-items: center;
		gap: 1rem;
		max-width: 990px;
		margin: 2rem auto;
		color: var(--vip-gold);
		text-align: center;
		white-space: nowrap;
}
.vip-topic-divider::before, .vip-topic-divider::after {
		-webkit-box-flex: 1;
		-ms-flex: 1;
		flex: 1;
		height: 1px;
		background: var(--color-link-gold);
		content: "";
}
.vip-speaker-layout {
		display: -ms-grid;
		display: grid;
		-ms-grid-columns: 1fr 0 1.125fr 0 1fr;
		grid-template-columns: 1fr 1.125fr 1fr;
		-webkit-box-align: start;
		-ms-flex-align: start;
		align-items: flex-start;
		gap: 0;
		max-width: 1100px;
		margin: auto;
}
.vip-person {
		position: relative;
		min-width: 0;
		aspect-ratio: 768 / 1080;
}
.vip-person-detail {
		position: absolute;
		bottom: 0;
		width: 100%;
}
.vip-person-photo--left, .vip-person-photo--right {
		display: block;
		width: 100%;
		height: 100%;
		background-position: center -1.5rem;
		background-repeat: no-repeat;
		background-size: 100% auto;
}
.vip-person-photo--left {
		background-image: url("../images/peo_1.png");
}
.vip-person-photo--right {
		background-image: url("../images/peo_2.png");
}
.vip-person .role {
		display: inline-block;
		padding: 2px 6px;
		border-radius: 5px;
		background: var(--vip-red);
		font-size: var(--font-size-base);
}
.vip-person .name {
		display: block;
		max-width: 140px;
}
.vip-person p {
		margin: .25rem 0 1.25rem;
		font-size: var(--font-size-sm);
		line-height: 1.5;
		text-align: start;
}
.vip-person-info {
		display: block;
		width: 100%;
		min-height: 100px;
}
.vip-person-info > div {
		display: -ms-grid;
		display: grid;
		-ms-grid-columns: 40% 1rem minmax(0, 1fr);
		grid-template-columns: 40% minmax(0, 1fr);
		gap: 1rem;
		width: 420px;
		color: var(--color-white);
		text-align: start;
		overflow-wrap: anywhere;
}
.is-left .vip-person-info > div {
		-ms-grid-columns: 25% minmax(0, 1fr);
		grid-template-columns: 25% minmax(0, 1fr);
		width: 440px;
}
.vip-person-info > div.vip-person-info--equal {
		-ms-grid-columns: (minmax(0, 1fr))[2];
		grid-template-columns: repeat(2, minmax(0, 1fr));
}
.vip-person-info__section {
		min-width: 0;
}
.vip-person-info__section h4 {
		margin: 0;
		font-size: 1.125rem;
		font-weight: bold;
		line-height: 1.3;
}
.vip-person-info__section p {
		margin: 0;
		text-wrap: nowrap;
}
.vip-person-info__experience-grid {
		display: -ms-grid;
		display: grid;
		-ms-grid-columns: minmax(0, 1fr) 16px minmax(0, 1fr);
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 16px;
}
.vip-topic-content .preface {
		margin: 0 auto 2rem;
		font-size: var(--font-size-md);
}
.vip-topic-content h3 {
		margin: 0;
		color: var(--vip-light-gold);
		font-size: var(--font-size-2xl, 48px);
		font-weight: bold;
		line-height: 1.15;
}
.vip-topic-content h3 b {
		font-family: Georgia, serif;
		font-size: clamp(72px, 10vw, 122px);
		line-height: 1;
}
.vip-topic-content h3 span {
		display: block;
}
.vip-subheading {
		margin: 3rem auto 1.5rem;
		font-size: var(--font-size-lg);
		font-weight: bold;
		text-align: center;
}
.vip-cities {
		display: -ms-grid;
		display: grid;
		-ms-grid-columns: minmax(0, 1fr) 1rem minmax(0, 1fr) 1rem minmax(0, 1fr) 1rem minmax(0, 1fr) 1rem minmax(0, 1fr);
		grid-template-columns: repeat(5, minmax(0, 1fr));
		gap: 1rem;
		max-width: 1100px;
		margin: auto;
}
.vip-city {
		min-height: 200px;
		overflow: hidden;
		border-radius: 2rem;
		background: #f0f0f2;
		color: #333;
		text-align: center;
}
.vip-city h4 {
		margin: 0;
		padding: 1.5rem .5rem;
		background: #cfaa79;
		color: var(--color-white);
		font-size: var(--font-size-md);
		font-weight: bold;
}
.vip-city:nth-child(even) h4 {
		background: var(--vip-red);
}
.vip-city p {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		-ms-flex-align: center;
		align-items: center;
		-webkit-box-pack: center;
		-ms-flex-pack: center;
		justify-content: center;
		min-height: 120px;
		margin: 0;
		padding: 1rem;
		font-size: var(--font-size-base);
}
.vip-city-note {
		margin: 9px 0 0;
		color: #d8dce4;
		font-size: var(--font-size-xs);
		text-align: center;
}
.vip-steps-box {
		max-width: 1100px;
		margin: 1rem auto 0;
		padding: 2rem 0;
		border-radius: 2rem;
		background: var(--color-light-surface);
		color: #151515;
		text-align: center;
}
.vip-steps-box h3 {
		margin: 0 0 1.5rem;
		font-size: var(--font-size-lg);
		font-weight: bold;
}
.vip-steps-box h3 span {
		color: var(--vip-red);
}
.vip-steps {
		display: -ms-grid;
		display: grid;
		-ms-grid-columns: (minmax(0, 1fr))[4];
		grid-template-columns: repeat(4, minmax(0, 1fr));
		text-align: left;
}
.vip-step {
		min-width: 0;
		min-height: 100px;
}
.vip-step .head {
		position: relative;
		display: block;
		padding: .5rem 0;
		background: var(--color-step-blue);
		color: var(--color-white);
		font-size: var(--font-size-base);
		text-align: center;
}
.vip-step .head::after {
		position: absolute;
		top: 0;
		left: 100%;
		z-index: 1;
		width: 25px;
		height: 100%;
		background: var(--color-step-blue);
		clip-path: polygon(0 0, 100% 50%, 0 100%);
		content: "";
		pointer-events: none;
}
.vip-step:nth-child(2) .head, .vip-step:nth-child(2) .head::after {
		background: #38577f;
}
.vip-step:nth-child(3) .head, .vip-step:nth-child(3) .head::after {
		background: #172f50;
}
.vip-step:nth-child(4) .head {
		background: var(--vip-red);
}
.vip-step:nth-child(4) .head::after {
		display: none;
}
.vip-step p {
		margin: 1.5rem;
		font-size: var(--font-size-sm);
}
.vip-step .img_item {
		display: block;
		max-width: 90px;
		margin: .5rem auto;
}
.vip-steps-box .vip-btn {
		margin-top: 9px;
}
.vip-bonus {
		margin-top: 39px;
}
.vip-bonus .vip-lead {
		text-align: center;
}
.vip-bonus-cards {
		display: -ms-grid;
		display: grid;
		-ms-grid-columns: minmax(0, 1fr) 1.5rem minmax(0, 1fr) 1.5rem minmax(0, 1fr);
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1.5rem;
		max-width: 990px;
		margin: 32px auto 0;
}
.vip-bonus-card {
		position: relative;
		z-index: 1;
		display: block;
		min-width: 0;
		min-height: 100px;
		padding: 0 1rem 1.5rem;
		border-radius: 1.5rem;
		color: #141414;
		font-size: var(--font-size-md);
		text-align: center;
}
.vip-bonus-card::after {
		position: absolute;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: -1;
		height: calc(100% - 1rem);
		border-radius: 1.5rem;
		background: var(--color-light-surface);
		content: "";
}
.vip-bonus-card .gift-art {
		position: relative;
		top: -1rem;
		display: block;
		max-width: 140px;
		margin: 0 auto;
}
.vip-bonus-card small {
		display: block;
		font-size: 90%;
		font-weight: bold;
}
.vip-open-action {
		margin-top: 26px;
		text-align: center;
}
/* =========================================================
   FAQ、活動辦法、對話視窗
   ========================================================= */
.vip-page #faq {
		padding: 55px 0;
		border-top: 1px solid #a78e6d;
		background: #15243b;
}
.vip-faq-list {
		max-width: 990px;
		margin: 27px auto 0;
		text-align: start;
}
.vip-faq-list details {
		margin-bottom: 10px;
		border: 1px solid #b69c76;
		border-radius: .75rem;
		background: rgba(255, 255, 255, 0);
}
.vip-faq-list summary {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: start;
		-ms-flex-align: start;
		align-items: flex-start;
		gap: 10px;
		padding: 1rem 1.5rem;
		color: #f2dbad;
		list-style: none;
		cursor: pointer;
}
.vip-faq-list summary:hover {
		background: rgba(255, 255, 255, .125);
}
.vip-faq-list details[open] summary:hover {
		background: rgba(255, 255, 255, 0);
}
.vip-faq-list summary::-webkit-details-marker {
		display: none;
}
.vip-faq-list summary::after {
		-ms-flex-negative: 0;
		flex-shrink: 0;
		margin-left: auto;
		content: "▼";
		font-size: 12px;
		-webkit-transition: -webkit-transform .2s ease;
		transition: -webkit-transform .2s ease;
		transition: transform .2s ease;
		transition: transform .2s ease, -webkit-transform .2s ease;
}
.vip-faq-list details[open] summary::after {
		-webkit-transform: rotate(180deg);
		-ms-transform: rotate(180deg);
		transform: rotate(180deg);
}
.vip-faq-list details p {
		margin: 0;
		padding: 0 20px 18px;
		font-size: var(--font-size-sm);
}
.vip-page #precautions {
		background: #d1d1d1;
		color: #172338;
}
.vip-page .vip-notice-toggle {
		display: block;
		width: 100%;
		min-height: 47px;
		border: 0;
		background: transparent;
		color: inherit;
		font-size: var(--font-size-lg);
		font-weight: bold;
		text-align: center;
}
.vip-page .vip-notice-toggle:hover {
		background: #e0e0e0;
}
.vip-legal {
		max-width: 1100px;
		margin: auto;
		padding: 0 1rem;
		font-size: var(--font-size-base);
		line-height: 1.8;
}
.vip-legal[hidden] {
		display: none;
}
.vip-legal h2 {
		margin: 18px 0 8px;
		font-size: var(--font-size-lg);
		font-weight: bold;
}
.vip-legal h3 {
		margin: 18px 0 6px;
		font-size: var(--font-size-md);
		font-weight: bold;
}
.vip-legal h4 {
		margin: 12px 0 5px;
		font-size: var(--font-size-base);
}
.vip-legal p {
		margin: 7px 0;
}
.vip-legal .legal-table {
		width: 100%;
		border-collapse: collapse;
		background: rgba(255, 255, 255, .45);
}
.vip-legal .legal-table th, .vip-legal .legal-table td {
		padding: 9px;
		border: 1px solid #b8b8b8;
		vertical-align: top;
}
.vip-legal .legal-table th {
		background: #e1caab;
}
.vip-legal ol, .vip-legal ul {
		margin: .5rem 0 1rem;
		padding-left: 0;
}
/* 法規條款列表 */
.text-list-disc {
		padding-left: 1.75em;
		list-style-type: disc;
}
/* 1、2、3 */
.text-list-decimal {
		padding-left: 1.75em;
		list-style-type: decimal;
}
.text-list-decimal > li {
		list-style-type: decimal;
}
/* A、B、C */
.text-list-upperlatin {
		padding-left: 1.75em;
		list-style-type: upper-latin;
}
.text-list-upperlatin > li {
		list-style-type: upper-latin;
}
/* （1）（2）（3） */
.text-list-number {
		counter-reset: legal-number;
		padding-left: 2.5em !important;
		list-style: none;
}
.text-list-number > li {
		position: relative;
		list-style: none;
}
.text-list-number > li::before {
		position: absolute;
		left: -2.5em;
		width: 2.3em;
		content: "（"counter(legal-number) "）";
		counter-increment: legal-number;
		white-space: nowrap;
}
/* （一）（二）（三） */
.text-list-cjk {
		counter-reset: legal-cjk;
		padding-left: 3em !important;
		list-style: none;
}
.text-list-cjk > li {
		position: relative;
		list-style: none;
}
.text-list-cjk > li::before {
		position: absolute;
		left: -3em;
		width: 2.3em;
		content: "（"counter(legal-cjk, cjk-ideographic) "）";
		counter-increment: legal-cjk;
		white-space: nowrap;
}
/* 獎項名稱後接子條款時，保留清楚的段落層級 */
.vip-legal .legal-prize-title {
		display: block;
		margin-bottom: .35rem;
}
/* =========================================================
   RWD：Bootstrap 5 斷點
   ========================================================= */
/* lg 以上：桌面導覽 */
@media (min-width: 992px) {
		.hamburger-wrapper {
				display: none !important;
		}
		.navbar-nav-wrapper {
				display: -webkit-box !important;
				display: -ms-flexbox !important;
				display: flex !important;
		}
		.navbar-nav {
				-webkit-box-orient: horizontal;
				-webkit-box-direction: normal;
				-ms-flex-direction: row;
				flex-direction: row;
		}
		.navbar-nav .nav-link {
				border-bottom: 0 !important;
		}
}
/* 小於 xl：1199.98px 以下 */
@media (max-width: 1199.98px) {
		.navbar-nav .nav-link {
				font-size: var(--font-size-base);
		}
		.topic_text {
				bottom: -.5rem;
				max-width: 70%;
		}
		.kv_topic_group {
				max-width: 40vw;
		}
		.vip-heading {
				font-size: var(--font-size-3lg);
		}
		.vip-lead {
				max-width: 100%;
				font-size: var(--font-size-base);
		}
		.vip-tab {
				font-size: var(--font-size-base);
		}
		.vip-tab, .vip-tab-list {
				height: 55px;
		}
		.vip-page .vip-notice-toggle {
				font-size: var(--font-size-md);
		}
		.act-sect-footer .copyright, .act-sect-footer .text p, .vip-legal, .vip-legal h2, .vip-legal h3 {
				font-size: var(--font-size-sm);
		}
		.vip-tab-panel .reward-lines h5 {
				font-size: var(--font-size-base);
		}
		.vip-tab-panel {
				min-height: 250px;
		}
		.vip-legal, .vip-faq-list, .vip-hero-cards, .vip-cities, .vip-bonus-cards, .vip-steps-box, .vip-speaker-layout {
				max-width: calc(100% - 8rem);
		}
		.vip-cities {
				gap: .5rem;
		}
		.vip-step .img_item {
				max-width: 8vw;
				margin: 1rem auto;
		}
		.vip-person .name {
				max-width: 10vw;
		}
		.vip-hero-cards {
				gap: 1rem;
		}
		.vip-hero-card {
				padding: 1.75rem 1rem;
		}
		.vip-hero-card h2 {
				font-size: var(--font-size-2lg);
		}
		.vip-bonus-card .gift-art {
				top: -.5rem;
				max-width: 12vw;
		}
		.vip-page #vip {
				padding: 2rem 0;
		}
		.vip-person-info__section h4, .vip-bonus-card {
				font-size: var(--font-size-base);
		}
		.vip-person {
				aspect-ratio: 768 / 1100;
		}
		.vip-person p {
				font-size: var(--font-size-xs);
				line-height: 1.75;
		}
		.vip-hero-card .card_text {
				max-width: 55%;
				margin: .5rem auto 1rem auto;
		}
		.vip-hero-card .bg_item {
				bottom: 1.125rem;
				max-width: 7vw;
		}
		.topic_text {
				bottom: 0;
				max-width: 92%;
		}
		.kv_date {
				font-size: var(--font-size-xs);
				letter-spacing: 1px;
				top: 0;
		}
		.vip-rewards-label {
				top: -5px;
				padding: .35rem .35rem .25rem .35rem;
		}
		.vip-rewards-label .no {
				bottom: 0;
		}
}
@media (max-width: 992px) {
		.text-list-cjk {
				padding-left: 2.25em !important;
		}
}
/* 小於 lg：991.98px 以下 */
@media (max-width: 991.98px) {
		.is-left .vip-person-info > div {
				-ms-grid-columns: 32% .125rem minmax(0, 1fr);
				grid-template-columns: 32% minmax(0, 1fr);
				width: 340px;
				gap: .125rem;
		}
		.vip-person-info > div {
				width: 340px;
				gap: .125rem;
		}
		.vip-legal, .vip-faq-list, .vip-hero-cards, .vip-cities, .vip-bonus-cards, .vip-steps-box, .vip-speaker-layout {
				max-width: calc(100% - 2rem);
		}
		.vip-person-info__section h4, .vip-bonus-card {
				font-size: var(--font-size-sm);
		}
		.vip-person {
				aspect-ratio: 768 / 920;
		}
		.vip-person .head p {
				margin: .25rem 0 .5rem 0;
		}
		.vip-person p {
				font-size: .675rem;
		}
		.vip-hero-card {
				min-height: 0;
				padding: 1rem .75rem;
		}
		.vip-hero-card::before {
				max-width: calc(100% - 1rem);
		}
		.vip-hero-card .eyebrow {
				font-size: var(--font-size-sm);
		}
		.vip-speaker-layout {
				margin-bottom: 7rem;
				-ms-grid-columns: 1fr 1fr 1fr;
				grid-template-columns: 1fr 1fr 1fr;
		}
		.vip-steps-box h3 {
				font-size: var(--font-size-md);
		}
		.vip-city h4 {
				padding: 1rem .5rem;
				color: var(--color-white);
				font-size: var(--font-size-base);
		}
		.vip-faq-list summary {
				font-size: var(--font-size-sm);
				padding: .5rem 1rem;
		}
		.vip-faq-list details p {
				padding: 0 1rem 1rem 1rem;
				font-size: var(--font-size-xs);
		}
		#precautions {
				padding: 1.5rem 0;
		}
		.act-sect-footer .copyright, .act-sect-footer .text p {
				font-size: var(--font-size-xs);
		}
		.vip-city p {
				font-size: var(--font-size-sm);
		}
		.vip-step .img_item {
				max-width: 10vw;
				margin: 1.5rem auto;
		}
		.vip-step .head::after {
				width: 20px;
		}
		.vip-page #faq {
				padding: 1rem 0;
		}
		.vip-hero .vip-container {
				padding: 0 0 4rem !important;
		}
		.vip-heading {
				font-size: var(--font-size-2lg);
		}
		.vip-city {
				min-height: 180px;
				border-radius: 1.5rem;
		}
		.vip-tab, .vip-tab-list {
				height: 50px;
		}
		.vip-lead {
				font-size: var(--font-size-sm);
		}
		.vip-btn {
				padding: .25rem 2rem;
		}
		.vip-hero-card h2 {
				font-size: var(--font-size-lg);
		}
		.offcanvas-header {
				height: 70px;
		}
		.navbar-custom {
				z-index: 1050;
				height: 60px;
		}
		.navbar-brand img {
				height: 30px;
		}
		.navbar-nav-wrapper {
				display: none;
		}
		.navbar-nav .nav-link {
				color: var(--color-navbar);
		}
		.navbar-nav .nav-link:hover {
				color: #d32f2f;
		}
		.act-wrap {
				max-width: 100%;
				padding-top: 60px;
				overflow-x: clip;
		}
		.act-wrap .footer-btn-m-wrap {
				position: fixed;
				bottom: 0;
				z-index: 999;
				display: -webkit-box;
				display: -ms-flexbox;
				display: flex;
				width: 100%;
		}
		.act-wrap .footer-btn-m {
				width: 100%;
				padding: .8em 0 !important;
				border-radius: 0 !important;
				font-weight: bold;
				letter-spacing: 0;
				white-space: nowrap;
		}
		.act-wrap .btn-arrow-pic {
				background-size: 30px;
		}
		.act-sect-footer {
				padding-bottom: 2em;
		}
		.act-sect-notice .act-container-wrap {
				padding-right: 0;
				padding-left: 0;
		}
		.act-notice {
				margin: 0 .5em;
		}
		.topic_text {
				bottom: 0;
				max-width: 92%;
		}
		.kv_date {
				font-size: var(--font-size-xs);
				letter-spacing: 1px;
				top: 0;
		}
		.vip-menu-toggle {
				display: -webkit-box;
				display: -ms-flexbox;
				display: flex;
		}
		.vip-mobile-menu a {
				display: block;
				padding: 10px 4px;
				color: var(--color-white);
				font-weight: 700;
		}
		.vip-hero, .vip-page #rewards, .vip-page #vip {
				background-size: cover;
		}
		.vip-person-info {
				min-height: 0;
		}
}
/* 小於 md：767.98px 以下 */
@media (max-width: 767.98px) {
		.vip-tab .no {
				top: 0;
		}
		.vip-tab-list {
				-ms-grid-columns: (25%)[4];
				grid-template-columns: repeat(4, 25%);
				width: 100%;
				height: 45px;
				background: var(--vip-gold);
		}
		.vip-reward-tabs {
				width: 100%;
				max-width: calc(100% - 2rem);
				margin: auto;
		}
		.vip-topic-content .title_text {
				max-width: 30vw;
				margin-top: 1rem;
		}
		.vip-tab .unit {
				font-size: var(--font-size-sm);
		}
		.topic_text {
				max-width: 70%;
		}
		.vip-page {
				padding-bottom: 49px;
		}
		.vip-heading {
				font-size: var(--font-size-3lg);
		}
		.vip-hero .vip-container {
				padding-bottom: 3rem !important;
		}
		.vip-hero-cards {
				gap: 1rem;
		}
		.vip-hero-card {
				min-height: 0;
				padding: 1.5rem 1rem;
				aspect-ratio: auto;
				border-radius: .75rem;
		}
		.vip-hero-card .card_text {
				max-width: 60%;
				margin: .5rem auto 1rem;
		}
		.vip-hero-card .bg_item {
				right: .5rem;
				bottom: .5rem;
				max-width: 8vw;
		}
		.vip-page #rewards, .vip-page #vip, .vip-page #faq {
				padding-top: 2.5rem;
				padding-bottom: 2.5rem;
		}
		/* 保留 680px 的頁籤比例，由外層容器水平捲動 */
		.vip-tabs-scroll {
				width: 100%;
				overflow-x: auto;
				overflow-y: hidden;
				border-radius: 20px;
				scrollbar-width: thin;
				-webkit-overflow-scrolling: touch;
		}
		.vip-speaker-layout {
				-ms-grid-columns: 1fr 0 1fr 0 1fr;
				grid-template-columns: 1fr 1fr 1fr;
				gap: 0;
		}
		.vip-person .role {
				font-size: var(--font-size-sm);
		}
		.vip-topic-content .preface {
				font-size: var(--font-size-sm);
		}
		.vip-topic-content h3 {
				font-size: var(--font-size-xl);
		}
		.vip-person {
				aspect-ratio: auto;
		}
		.vip-person-photo--left, .vip-person-photo--right {
				width: 100%;
				height: auto;
				background-position: center top;
				background-size: contain;
				aspect-ratio: 768 / 1016;
		}
		.vip-person .name {
				max-width: 15vw;
		}
		.vip-person p {
				font-size: var(--font-size-xs);
		}
		.vip-person-info > div {
				width: 100%;
		}
		.is-left .vip-person-info > div {
				width: 320px;
		}
		.vip-cities {
				-ms-grid-columns: minmax(0, 1fr) .75rem minmax(0, 1fr);
				grid-template-columns: repeat(2, minmax(0, 1fr));
				gap: .75rem;
				max-width: calc(100% - 8rem);
		}
		.vip-steps-box {
				max-width: calc(100% - 8rem);
		}
		.vip-person-info__experience-grid {
				gap: .125rem;
		}
		.vip-bonus-cards {
				gap: .5rem;
		}
		.vip-city:last-child {
				grid-column: 1 / -1;
		}
		.vip-city h4, .vip-city p {
				font-size: var(--font-size-sm);
		}
		.vip-steps {
				-ms-grid-columns: 1fr;
				grid-template-columns: 1fr;
				gap: .75rem;
		}
		.vip-step p {
				margin: 1rem;
		}
		.vip-legal {
				overflow-x: auto;
		}
		.vip-legal .legal-table {
				min-width: 600px;
		}
		.vip-hero-card::before {
				max-width: calc(100% - 1.25rem);
				max-height: calc(100% - 1.25rem);
				background-image: none;
				border: 1px solid #6c5236;
		}
		.vip-hero-card::after {
				position: absolute;
				top: 0;
				right: 0;
				bottom: 0;
				left: 0;
				z-index: 1;
				width: 100%;
				height: 100%;
				margin: auto;
				max-width: calc(100% - 1rem);
				max-height: calc(100% - 1rem);
				background-image: none;
				border: 1px solid #6c5236;
				content: "";
				pointer-events: none;
		}
		.vip-step .img_item {
				max-width: 70px;
				margin: 1rem auto .5rem auto;
		}
		.vip-step .head::after {
				position: absolute;
				top: 0;
				right: 0;
				bottom: -50px;
				left: 0;
				width: 12px;
				height: 28px;
				margin: auto;
				-webkit-transform: rotate(90deg);
				-ms-transform: rotate(90deg);
				transform: rotate(90deg);
		}
		.kv_topic_group {
				max-width: 50vw;
		}
}
/* 小於 sm：575.98px 以下 */
@media (max-width: 575.98px) {
		.act-sect-footer .text p {
				font-size: var(--font-size-sm);
		}
		.act-notice {
				font-size: var(--font-size-sm);
		}
		.vip-legal, .vip-faq-list, .vip-hero-cards, .vip-cities, .vip-bonus-cards, .vip-steps-box, .vip-speaker-layout {
				max-width: calc(100% - 2rem);
		}
		.vip-person-info > div {
				width: 420px;
		}
		.vip-person .name {
				max-width: 25vw;
		}
		.vip-topic-content {
				-ms-grid-row: 1;
				grid-row: 1;
				grid-column: 1 / -1;
				text-align: center;
		}
		.vip-cities {
				-ms-grid-columns: 1fr;
				grid-template-columns: 1fr;
		}
		.vip-container {
				padding: 1rem 0 !important;
		}
		.vip-page .vip-notice-toggle {
				min-height: 40px;
				font-size: var(--font-size-md);
		}
		.vip-legal h3, .vip-legal h2, .vip-legal {
				font-size: var(--font-size-sm);
		}
		.vip-legal .legal-table th, .vip-legal .legal-table td {
				text-wrap: nowrap;
		}
		.vip-tab {
				height: 45px;
				padding: 0 0 .75rem .25rem;
				font-size: var(--font-size-sm);
		}
		.vip-faq-list summary {
				gap: 8px;
				padding: .75rem 1rem;
		}
		.kv_topic_group {
				top: 1.5rem;
				bottom: auto;
				max-width: 75vw;
				height: 100%;
		}
		.kv_date {
				position: absolute;
				top: auto;
				right: 0;
				bottom: 2rem;
				left: 0;
				margin: auto;
				font-size: var(--font-size-xs);
				letter-spacing: normal;
		}
		.vip-lead {
				font-size: var(--font-size-base);
				line-height: 1.5;
				text-align: center;
		}
		.vip-hero .vip-container {
				padding: 1rem 0 4rem !important;
		}
		.vip-hero-cards {
				-ms-grid-columns: 1fr;
				grid-template-columns: 1fr;
				gap: 2rem;
				max-width: calc(100% - 2rem);
		}
		.vip-hero-card {
				min-height: 180px;
				padding: 1.5rem .25rem;
				border-radius: .75rem;
		}
		.vip-hero-card .card_text {
				max-width: 60%;
		}
		.vip-btn .icon {
				max-width: 10px;
		}
		.vip-hero-card .bg_item {
				right: 1.5rem;
				bottom: .65rem;
				max-width: 16vw;
		}
		.vip-hero-card h2 {
				font-size: var(--font-size-lg);
		}
		.vip-hero-card .eyebrow, .vip-hero-card p {
				font-size: var(--font-size-xs);
		}
		.vip-hero-card .vip-btn {
				min-height: 35px;
				padding: .25rem 1.5rem;
				font-size: var(--font-size-sm);
		}
		.vip-speaker-layout {
				-ms-grid-columns: 1fr;
				grid-template-columns: 1fr;
				gap: 0;
				margin-bottom: 3rem;
		}
		.vip-tab .no {
				font-size: 130%;
		}
		.vip-topic-content {
				-ms-grid-column: 1;
				grid-column: 1;
		}
		.vip-topic-content .title_text {
				max-width: 70%;
		}
		.vip-topic-content h3 {
				font-size: var(--font-size-lg);
		}
		.vip-topic-content h3 b {
				font-size: var(--font-size-2lg);
		}
		.vip-person {
				width: min(100%, 320px);
				margin-inline: auto;
		}
		.vip-person-photo--left, .vip-person-photo--right {
				max-height: 300px;
				background-position: center top;
				aspect-ratio: 768 / 990;
		}
		.vip-person.is-right {
				margin: 4rem auto;
		}
		.vip-person .head p {
				margin: .125rem 0 .5rem;
		}
		.vip-person p {
				font-size: var(--font-size-xs);
		}
		.vip-bonus-card .gift-art {
				top: -.35rem;
				max-width: 36vw;
		}
		.vip-person-info__section h4 {
				margin-bottom: .25rem;
				font-size: var(--font-size-sm);
		}
		.vip-topic-divider {
				gap: .5rem;
				white-space: normal;
		}
		.vip-city {
				min-height: 0;
				border-radius: 13px;
		}
		.vip-city:last-child {
				grid-column: auto;
		}
		.vip-city h4 {
				padding: .75rem;
		}
		.vip-city p {
				min-height: 0;
				padding: 1rem;
				font-size: var(--font-size-base);
		}
		.vip-steps, .vip-bonus-cards {
				-ms-grid-columns: 1fr;
				grid-template-columns: 1fr;
		}
		.vip-bonus-cards {
				gap: 1.5rem;
				max-width: 320px;
		}
		.vip-bonus-card {
				padding-inline: 1rem;
		}
		.vip-bonus-card strong {
				font-size: var(--font-size-base);
		}
}
/* 超寬螢幕：限制背景與 KV 裝飾的放大尺寸 */
@media (min-width: 1600px) {
		.vip-page #vip, .vip-page #rewards {
				background-size: 100% auto;
		}
		.link-block.is-right {
				max-width: calc(50% - 3rem);
		}
}
@media (min-width: 2560px) {
		.vip-page #vip, .vip-page #rewards, .vip-hero {
				background-size: 2560px auto;
		}
		.item_a, .item_b {
				max-width: 2560px;
		}
		.kv_topic_group {
				max-width: 880px;
		}
}
/* 無障礙：尊重減少動態效果設定 */
@media (prefers-reduced-motion: reduce) {
		.vip-tab-panel:not([hidden]), .kv_top_mask::before, .act-wrap .main-btn:hover .btn-arrow-wrapper {
				-webkit-animation: none;
				animation: none;
		}
}

/* =========================================================
   增量尊榮體驗：300億與500億毛玻璃霧化與登入解碼樣式
   ========================================================= */
.vip-locked-tier {
	position: relative;
	border-radius: 16px;
	overflow: hidden;
	min-height: 260px;
	width: 100%;
}

/* 霧化處理：未登入時，圖片及文字模糊化 */
.vip-locked-tier .vip-blur-content {
	width: 100%;
	filter: blur(10px);
	-webkit-filter: blur(10px);
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	pointer-events: none;
	-webkit-transition: filter 0.6s cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
	transition: filter 0.6s cubic-bezier(0.16, 1, 0.3, 1), transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
	will-change: filter, transform;
}

/* 上方遮罩類似毛玻璃 (Frosted Glass Overlay) */
.vip-locked-tier .vip-glass-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	padding: 24px;
	background: rgba(255, 255, 255, 0.52);
	backdrop-filter: blur(40px) saturate(160%);
	-webkit-backdrop-filter: blur(12px) saturate(160%);
	border: 1px solid rgba(255, 255, 255, 0.7);
	border-radius: 16px;
	z-index: 10;
	-webkit-transition: opacity 0.5s ease, visibility 0.5s ease;
	transition: opacity 0.5s ease, visibility 0.5s ease;
}

.vip-locked-tier .glass-content {
	text-align: center;
	max-width: 380px;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-animation: glassFloat 3s ease-in-out infinite alternate;
	animation: glassFloat 3s ease-in-out infinite alternate;
}

.vip-locked-tier .glass-lock-badge {
	width: 54px;
	height: 54px;
	border-radius: 50%;
	background: linear-gradient(135deg, #0B1A33 0%, #1A365D 100%);
	color: #E8CD8A;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	margin-bottom: 12px;
	box-shadow: 0 4px 16px rgba(11, 26, 51, 0.25);
}

.vip-locked-tier .glass-title {
	font-size: 1.25rem;
	font-weight: 700;
	color: #0B1A33;
	margin-bottom: 6px;
	letter-spacing: 0.5px;
}

.vip-locked-tier .glass-desc {
	font-size: 0.9rem;
	color: #4B5563;
	margin-bottom: 14px;
	line-height: 1.4;
}

.vip-locked-tier .glass-btn {
	margin-top: 0 !important;
	padding: 10px 32px !important;
	font-size: 0.95rem !important;
	font-weight: 600 !important;
	border-radius: 50px !important;
	box-shadow: 0 4px 14px rgba(11, 26, 51, 0.2) !important;
	-webkit-transition: transform 0.2s, box-shadow 0.2s !important;
	transition: transform 0.2s, box-shadow 0.2s !important;
}

.vip-locked-tier .glass-btn:hover {
	-webkit-transform: translateY(-2px);
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(11, 26, 51, 0.3) !important;
}

@-webkit-keyframes glassFloat {
	0% { -webkit-transform: translateY(0); transform: translateY(0); }
	100% { -webkit-transform: translateY(-4px); transform: translateY(-4px); }
}
@keyframes glassFloat {
	0% { transform: translateY(0); }
	100% { transform: translateY(-4px); }
}

/* 登入後解碼 (is-unlocked) */
.vip-locked-tier.is-unlocked .vip-blur-content {
	filter: none !important;
	-webkit-filter: none !important;
	-webkit-user-select: auto !important;
	-moz-user-select: auto !important;
	-ms-user-select: auto !important;
	user-select: auto !important;
	pointer-events: auto !important;
}

.vip-locked-tier.is-unlocked .vip-glass-overlay {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

.vip-placeholder-row .photo {
	background: rgba(0, 0, 0, 0.03);
	border-radius: 8px;
}

/* Navbar 客戶登錄狀態按鈕 */
.nav-user-item {
	display: -webkit-inline-box;
	display: -ms-inline-flexbox;
	display: inline-flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	gap: 8px;
	margin-left: 0.75rem;
}
.nav-user-badge {
	color: var(--vip-light-gold) !important;
	font-weight: 600;
	font-size: var(--font-size-sm);
	padding: 3px 12px;
	background: rgba(255, 255, 255, 0.12);
	border-radius: 20px;
	border: 1px solid rgba(220, 180, 123, 0.4);
	display: inline-block;
}
.nav-btn-login, .nav-btn-logout {
	padding: 5px 18px !important;
	border-radius: 20px !important;
	font-size: var(--font-size-sm) !important;
	border: 1px solid var(--vip-gold) !important;
	background: rgba(220, 180, 123, 0.15) !important;
	color: var(--vip-light-gold) !important;
	cursor: pointer;
	text-decoration: none !important;
	-webkit-transition: all 0.2s ease !important;
	transition: all 0.2s ease !important;
	font-weight: 600 !important;
}
.nav-btn-login:hover, .nav-btn-logout:hover {
	background: var(--vip-gold) !important;
	color: #0B1A33 !important;
}