/**
 * Campaign stylesheet — cleaned for the supplied 2026 campaign HTML.
 * Legacy campaign families removed; dynamic modal/login/navigation rules retained.
 * Selector specificity, asset paths and breakpoint order preserved.
 */

/* =========================================================
   01. FONT / TOKENS / BASE
   ========================================================= */

@font-face {
	font-family: "SweiCurveSansCJKtc-Regular";
	src: url(https://cdn.jsdelivr.net/gh/max32002/swei-curve-sans@2.129/WebFont/CJK%20TC/SweiCurveSansCJKtc-Regular.woff2) format("woff2")
	, url(https://cdn.jsdelivr.net/gh/max32002/swei-curve-sans@2.129/WebFont/CJK%20TC/SweiCurveSansCJKtc-Regular.woff) format("woff");
}

/* Campaign design tokens: centralized only for repeated existing values. */
:root {
	--color-ink: #152127;
	--color-accent: #e21b4f;
	--color-lime: #c8f06c;
	--color-red: #e9033d;
	--color-cream: #fffff0;
}

img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

body {
	font-family: Microsoft JhengHei;
	background-image: url(../images/bg.jpg);
	background-size: contain;
}

.desktop {
	display: block;
}

.mobile {
	display: none;
}

/* =========================================================
   02. SECTION HEADING
   ========================================================= */

.section_title {
	top: -2.5vw;
	left: 50%;
	transform: translate(-50%, 0);
	position: absolute;
	z-index: 1;
	margin: 0;
	width: 700px;
	height: 200px;
	padding: 60px 0 60px 0;
	background-size: 100%;
	background-repeat: no-repeat;
	background-position: center;
	font-weight: bolder;
	line-height: 1.5;
	letter-spacing: -0.2rem;
	text-align: center;
}

.section_title h1 {
	font-family: "SweiCurveSansCJKtc-Regular";
	font-weight: 900;
	font-size: 3.4rem;
	line-height: 1.5;
	letter-spacing: -0.05rem;
	text-align: center;
	color: var(--color-ink);
}

.section_title p {
	white-space: nowrap;
	position: absolute;
	letter-spacing: 0;
	font-size: 1.42rem;
	display: block;
	width: fit-content;
	transform: translateX(-50%);
	padding: 0.5rem 1rem 0.3rem;
	left: 50%;
	color: var(--color-cream);
	background-color: var(--color-ink);
	border-radius: 50px;
}

.section_title .color01 {
	color: var(--color-accent);
	margin: 0 0.3rem 0;
}

.section_title .color02 {
	color: #7023d9;
	margin: 0 0.3rem 0;
}

.section_title span {
	color: var(--color-lime);
	margin: 0 0.2rem 0 0.2rem;
}

.gift .section_title,
.ten .section_title,
.tenten .section_title,
.brandHighlight .section_title,
.eventHighlight .section_title {
	background-image: url(../images/section_title_bg.png);
}

/* =========================================================
   03. LAYOUT PRIMITIVES
   ========================================================= */

.grid-container {
	padding: 0 8rem;
	display: grid;
	gap: 1.2rem;
	align-items: anchor-center;
	padding-bottom: 20px;
}

.grid-container .pic img {
	display: block;
	object-fit: cover;
}

.grid-container .gridBox {
	overflow: hidden;
	border: var(--color-ink) 1px solid;
	border-radius: 30px;
	background-color: #fff;
	box-shadow: 0 20px 0 0 rgba(0, 0, 0, 0.15);
}

.shadowFx {
	box-shadow: 0 30px 5px -15px rgb(0, 0, 0, 0.3);
}

.boxFx {
	border: #114e67 solid 2px;
	transition: all 0.3s;
	border-radius: 60px;
	box-shadow: 0 20px 0 0 rgba(0, 0, 0, 0.15);
}

.boxFx:hover {
	transform: scale(0.95);
	transition: all 0.1s;
}

.eventContainer {
	margin: 4vw 15vw;
	align-content: center;
	position: relative;
	z-index: 1;
}

.style-wrap {
	position: relative;
	padding-top: 210px;
	padding-bottom: 150px;
}

.wrap-bg {
	background: url(../images/wp_c_bg.png) repeat-y;
	background-size: 100%;
	max-width: 1400px;
	margin: auto;
}

.notice p{
	text-align: center;
	font-size: 1rem;
	font-weight: 600;
	color: var(--color-ink);
	margin: 2rem 0 0;
}

.notice span {
	color: var(--color-accent);
	font-size: 1.2rem;
	font-weight: 600;
	margin: 0 0.2rem;
}

.style-wrap::before {
	content: "";
	position: absolute;
	top: 0;
	background: url(../images/wp_t_bg.png) bottom center no-repeat;
	background-size: contain;
	height: 210px;
	width: 100%;
}

.style-wrap::after {
	content: "";
	position: absolute;
	bottom: 0;
	background: url(../images/wp_b_bg.png) top center no-repeat;
	background-size: contain;
	height: 150px;
	width: 100%;
}

.flexBox {
	box-sizing: border-box;
	overflow: hidden;
	padding-bottom: 1rem;
}

.grid-item {
	overflow: hidden;
	text-align: center;
}

.content {
	position: relative;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.actionBtn {
	text-decoration: none;
	filter: none;
	transform: scale(1);
	transition: all 0.3s;
}

.actionBtn:hover {
	transform: scale(1.05);
	transition: all 0.1s;
}

.boxShadow {
	box-shadow: 0.75rem 0.75rem 0px rgba(0, 0, 0, 0.1);
}

/* =========================================================
   04. PRODUCT CARD
   ========================================================= */

.productInfo {
	margin: 1rem auto;
	width: 100%;
	display: flex;
	position: relative;
	flex-direction: column;
	align-items: center;
}

.price-container {
	display: flex;
	flex-direction: row;
	justify-content: flex-end;
	align-items: flex-end;
}

.productname-label {
	color: var(--color-ink);
	font-weight: 600;
	font-size: 1.1rem;
	margin: 0 0.5rem;
	line-height: 1.2;
	text-align: center;
}

.product-tag {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	width: 80px;
	height: 80px;
	font-size: 0.8rem;
	text-align: center;
	vertical-align: middle;
	font-weight: bolder;
	background: var(--color-lime);
	color: var(--color-ink);
	border: var(--color-red) solid 1px;
	box-shadow: var(--color-red) 5px 5px 0;
	border-top: 0;
	padding: 0.8rem 0;
	position: absolute;
	border-radius: 100rem;
	top: 1vw;
	right: 1vw;
}

.product-tag span {
	width: 100%;
	color: var(--color-red);
	font-family: Verdana, Geneva, Tahoma, sans-serif;
	font-weight: bolder;
	letter-spacing: -0.1rem;
	font-size: 1.6rem;
}

.brand-label {
	font-family: "Gill Sans", "Gill Sans MT", Calibri, "Trebuchet MS", sans-serif;
	color: var(--color-cream);
	background-color: var(--color-ink);
	font-size: 1rem;
	padding: 0.5rem 0.8rem;
	margin: 0 0.8rem 0.6rem;
	border-radius: 5rem;
	white-space: nowrap;
}

.brand-label span {
	font-weight: bolder;
	color: var(--color-lime);
}

.full-price-label {
	text-decoration: line-through;
	color: gray;
	font-size: 1rem;
	margin-right: 0.3rem;
	line-height: 1.3;
}

.sale-price-label {
	font-family: Verdana, Geneva, Tahoma, sans-serif;
	margin-top: 0.3rem;
	color: var(--color-accent);
	font-weight: bold;
	font-size: 1.6rem;
	letter-spacing: -0.1rem;
	font-style: italic;
}

.sale-price-label span {
	margin-right: 0.2rem;
	font-size: 1rem;
	letter-spacing: normal;
}

/* =========================================================
   05. COMMON CONTROLS / CTA
   ========================================================= */

.shop-more-wrapper {
	text-align: center;
	margin: 1rem 0 0;
}

.shop-more-btn {
	font-family: Verdana, Geneva, Tahoma, sans-serif;
	display: inline-block;
	border-radius: 50px;
	background: var(--color-ink);
	border: var(--color-ink) 1px solid;
	color: #fff;
	font-size: 1.36rem;
	padding: 1rem 1.5rem;
	text-decoration: none;
	font-weight: 500;
	margin: 0 0.3vw;
}

.shop-more-btn span {
	color: var(--color-lime);
}

.shop-more-btn::after {
	margin-left: 1rem;
	display: inline-block;
	font: 25px FontAwesome;
	content: "";
}

.shop-more-btn:hover {
	transform: translateY(-8px) scale(1.05);
}

.section-subheader {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px 0;
}

.section-title-image img {
	height: auto;
	width: fit-content;
}

.btn-shop-more {
	letter-spacing: -0.05rem;
	padding: 10px 25px 10px 15px;
	background-color: #114e67;
	color: #ffffe9;
	font-size: 1.2rem;
	text-decoration: none;
	border-radius: 0.6rem;
	white-space: nowrap;
	transition: background-color 0.3s;
	position: relative;
}

.btn-shop-more::after {
	content: "";
	position: absolute;
	right: 8px;
	top: 50%;
	transform: translateY(-50%);
	width: 0;
	height: 0;
	border-left: 8px solid var(--color-cream);
	border-top: 5px solid transparent;
	border-bottom: 5px solid transparent;
}

.btn-shop-more:hover {
	background-color: #333;
}

.tab-container {
	display: flex;
	justify-content: center;
	margin: 0 0 30px;
}

.tab-button {
	font-family: "SweiCurveSansCJKtc-Regular";
	font-weight: bold;
	letter-spacing: 0.01rem;
	border: var(--color-ink) 1px solid;
	background: var(--color-cream);
	color: var(--color-ink);
	font-size: 1.5rem;
	padding: 15px 25px;
	cursor: pointer;
	margin: 0 5px;
	border-radius: 50px;
	white-space: nowrap;
}

.tab-button:hover {
	transform: translateY(-6px);
}

.tab-button.active {
	color: var(--color-ink);
	background: linear-gradient(to top, #e7d023, #ede289);
	position: relative;
}

.shopNow {
	font-size: 1.1rem;
	font-weight: 600;
	color: #FEF8DD;
	border-radius: 50px;
	padding: 1rem 1.5rem;
	letter-spacing: -0.05rem;
	background: var(--color-ink);
}

.shopNow::after {
	margin-left: 0.5rem;
	display: inline-block;
	font: 1rem FontAwesome;
	content: "";
}

.shopNow_b {
	width: 100%;
	font-size: 1.3rem;
	font-weight: bold;
	padding: 1.3rem 0;
	color: #fff;
	background: var(--color-ink);
}

.learnMore_b {
	width: fit-content;
	font-size: 1.05rem;
	font-weight: bold;
	padding: 0.75rem 1rem;
	color: var(--color-cream);
	background: var(--color-ink);
}

.learnMore_b::after {
	margin-left: 0.75rem;
	display: inline-block;
	font: 15px FontAwesome;
	content: "";
}

.shopMore {
	display: block;
	width: fit-content;
	font-size: 1.5rem;
	border-radius: 50px;
	border: #edd2ae solid 2px;
	padding: 0.75rem 1.5rem;
	color: #edd2ae;
	background: rgba(0, 0, 0, 0.8);
	margin: auto auto 0.5rem;
}

.event-info {
	color: #333;
	font-weight: bold;
	margin: 1rem 0 0.5rem;
	display: flex;
	flex-direction: column;
	align-items: center;
}

/* =========================================================
   06. DISCOUNT BLOCK
   ========================================================= */

.Box_bg {
	background-color: var(--color-cream);
	background-image: url(../images/discount_bg.png);
	background-size: cover;
	background-position: bottom;
}

.promos {
	margin-top: -10vw;
}

.promos .title {
    font-family: monospace;
    color: var(--color-ink);
    font-weight: 600;
    font-size: 1.65rem;
    letter-spacing: -0.1rem;
    width: 100%;
    padding: 2rem 0 1.3rem;
    margin: 0 0 2rem;
    text-align: center;
    background-size: 100% 100%;
    background-repeat: no-repeat;
    background-position: center;
    border-bottom: 2px var(--color-ink) solid;
}

/* --- 依序為不同主題的標題替換背景圖 --- */

/* 1. 獨家優惠 (第 1、2 個區塊) */
.promos .flexBox:nth-child(1) .title,
.promos .flexBox:nth-child(2) .title {
    background-image: url(../images/discount_title01_bg.png);
}

/* 2. 連假限定 (第 3、4 個區塊) */
.promos .flexBox:nth-child(3) .title,
.promos .flexBox:nth-child(4) .title {
    background-image: url(../images/discount_title02_bg.png);
}

/* 3. 女神降臨 (第 5、6 個區塊) */
.promos .flexBox:nth-child(5) .title,
.promos .flexBox:nth-child(6) .title {
    background-image: url(../images/discount_title03_bg.png);
}

/* 4. 台味加料 (第 7、8 個區塊) */
.promos .flexBox:nth-child(7) .title,
.promos .flexBox:nth-child(8) .title {
    background-image: url(../images/discount_title04_bg.png);
}

.promos h1 {
	color: var(--color-ink);
	font-size: 1.6rem;
	letter-spacing: 0.05rem;
	margin-bottom: 0.6rem;
	padding: 0 0.5rem 0.4rem;
	font-family: "SweiCurveSansCJKtc-Regular";
	background: linear-gradient(transparent 45%, rgba(231, 252, 46, 1) 0%);
}

.promos p {
	margin: 0 1rem 1rem;
	line-height: 1.5;
	text-align: center;
	font-weight: 600;
	font-size: 1.3rem;
	letter-spacing: -0.05rem;
}

.promos p span {
	font-size: 1rem;
	letter-spacing: -0.03rem;
	margin: 0 0.1rem;
}

.promos p .promo-accent {
	color: var(--color-accent);
	font-size: inherit;
	margin: 0;
}

.promos b {
	line-height: 1.3;
	color: var(--color-accent);
	font-size: 1.55rem;
	font-weight: 600;
	letter-spacing: -0.1rem;
	margin: 1rem 0.3rem 0 0;
	font-family: Verdana, Geneva, Tahoma, sans-serif;
}

.promos p a {
	color: var(--color-ink);
	text-decoration: underline;
}

.promos .grid-container {
	background: none;
	display: grid;
	padding: 0;
	gap: 1rem;
	align-items: stretch;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-auto-rows: 1fr;
	grid-template-areas: "item01 item02 item03 item04"
	  "item05 item06 item07 item08";
}

.promos .grid-container > .flexBox:nth-child(1) {
	grid-area: item01;
}

.promos .grid-container > .flexBox:nth-child(2) {
	grid-area: item02;
}

.promos .grid-container > .flexBox:nth-child(3) {
	grid-area: item03;
}

.promos .grid-container > .flexBox:nth-child(4) {
	grid-area: item04;
}

.promos .grid-container > .flexBox:nth-child(5) {
	grid-area: item05;
}

.promos .grid-container > .flexBox:nth-child(6) {
	grid-area: item06;
}

.promos .grid-container > .flexBox:nth-child(7) {
	grid-area: item07;
}

.promos .grid-container > .flexBox:nth-child(8) {
	grid-area: item08;
}

/* =========================================================
   07. PRODUCT / GIFT GRIDS
   ========================================================= */

.ten .productImg {
	object-fit: contain;
	box-sizing: border-box;
}

.ten .gridBox {
	position: relative;
	overflow: hidden;
	text-align: center;
}

.gift .grid-container > div,
.ten .grid-container > div {
	height: 100%;
}

.ten .grid-container {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-template-areas: "item01 item02 item03 item04"
	  "item05 item06 item07 item08";
	margin: 0 auto;
}

.gift .grid-container {
	display: grid;
	grid-template-areas: "item01"
	  "item02";
	margin: 0 auto;
	gap: 15px;
}

.gift .grid-container .item01,
.ten .grid-container .item01 {
	grid-area: item01;
}

.gift .grid-container .item02,
.ten .grid-container .item02 {
	grid-area: item02;
}

.ten .grid-container .item03 {
	grid-area: item03;
}

.ten .grid-container .item04 {
	grid-area: item04;
}

.ten .grid-container .item05 {
	grid-area: item05;
}

.ten .grid-container .item06 {
	grid-area: item06;
}

.ten .grid-container .item07 {
	grid-area: item07;
}

.ten .grid-container .item08 {
	grid-area: item08;
}

/* =========================================================
   08. TENTEN PRODUCT CARDS
   ========================================================= */

.tenten .grid-container {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	margin: 0 auto;
}

.tenten .grid-container .text-container {
	color: var(--color-ink);
	position: absolute;
	width: 80%;
	left: 50%;
	bottom: 1.6rem;
	transform: translateX(-50%);
	z-index: 2;
}

.tenten .grid-container h2 {
	font-size: 1.4rem;
	margin: 0.6rem 0 0;
}

.tenten .grid-container p {
	z-index: 2;
	font-size: 1rem;
}

.tenten .grid-container .gridBox {
	overflow: hidden;
	position: relative;
}

.tenten .grid-container .gridBox img:not(.shopNow img) {
	width: 100%;
	height: 100%;
	display: block;
}

.tenten .grid-container .gridBox .shopNow {
	position: absolute;
	bottom: 20px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 2;
}

.tenten .grid-container .gridBox .shopNow img {
	width: 100%;
	height: auto;
}

/* =========================================================
   09. BRAND / EVENT HIGHLIGHT
   ========================================================= */

.brandHighlight .grid-container,
.eventHighlight .grid-container {
	grid-template-columns: repeat(4, 1fr);
}

.brandHighlight .content {
	align-items: normal;
	box-sizing: border-box;
}

.brandHighlight .grid-item {
	overflow: hidden;
	border: var(--color-ink) 1px solid;
	border-radius: 30px;
	background-color: #fff;
	box-shadow: rgba(0, 0, 0, 0.15) 0px 20px 0px 0px;
}

.brandHighlight .brandTitleTag {
	color: #CD1D47;
	display: inline-block;
	font-size: 1.05rem;
	line-height: 1.5rem;
	border-width: 1px;
	border-style: solid;
	border-color: #CD1D47;
	border-image: initial;
	padding: 0.1vw 0.5vw;
	width: fit-content;
	margin: auto;
}

.brandHighlight .brandTitleTag.none {
	line-height: 1.5rem;
	visibility: hidden;
}

.brandHighlight .brandTitle {
	text-transform: uppercase;
	font-size: 1.3rem;
	font-weight: bolder;
	color: var(--color-ink);
	margin: 0.75rem 0;
}

.brandHighlight .brandTitle02 {
	color: #646464;
	font-size: 1.1rem;
	font-weight: bold;
}

.brandHighlight .pic {
	border-top: 1px solid #9b9b9b;
	margin-top: 1vw;
}

.brandHighlight .actionBtn {
	text-decoration: none;
	filter: none;
}

.brandHighlight .actionBtn:hover {
	transform: scale(1);
}

.eventHighlight .grid-item {
	overflow: hidden;
	border: var(--color-ink) 1px solid;
	border-radius: 30px;
	background-color: #fff;
	padding-bottom: 2rem;
	box-shadow: rgba(0, 0, 0, 0.15) 0px 20px 0px 0px;
}

.eventHighlight h2 {
	padding: 0.8rem;
	font-size: 1.25rem;
	line-height: 1.3;
	color: #CD1D47;
	font-weight: bolder;
}

.eventHighlight p {
	line-height: 1.5rem;
	margin: 0 auto 1rem auto;
	color: #333;
}

/* =========================================================
   11. MODAL / POPUP
   ========================================================= */

.overlay {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	transition: opacity 200ms;
	visibility: hidden;
	opacity: 0;
}

.overlay:target {
	visibility: visible;
	opacity: 1;
}

.pop-modal {
	background-color: rgba(0, 0, 0, 0.45);
	display: none;
	overflow: auto;
	position: fixed;
	z-index: 9999;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	padding-top: 10%;
}

.modal-content {
	position: relative;
	top: 0px;
	width: 750px;
	margin: 0 auto;
	background-color: #434343;
}

.modal-animated-in {
	animation: totop-in .3s ease;
}

.modal-animated-out {
	animation: totop-out .3s ease forwards;
}

.modal-header {
	background-color: #111111;
	width: 100%;
	height: 60px;
	line-height: 60px;
	padding-left: 20px;
	box-sizing: border-box;
}

.modal-content .close {
	font-size: 40px;
	position: absolute;
	right: 0;
	top: 0;
	background-color: rgba(0, 0, 0, .2);
	width: 60px;
	height: 60px;
	color: #fff;
	line-height: 55px;
	text-align: center;
	cursor: pointer;
	transition: all .3s;
}

.modal-content .close:hover {
	color: #fff;
}

.modal-header h3 {
	color: #fff;
	font-weight: bolder;
	font-size: 1.5rem;
	letter-spacing: 0.1rem;
}

.no-logged {
	display: block;
}

.logged-in {
	display: none;
}

.modal-body {
	padding: 2rem;
	color: var(--color-ink);
	background-color: #fff;
}

.modal-body h3 {
	font-size: 18px;
}

.modal-body-inner {
	overflow-y: auto;
	height: 350px;
	padding: 0 0.25rem;
}

.modal-body-inner hr {
	width: 97%;
}

.modal-body-inner h3 {
	margin-bottom: 5px;
}

.modal-body-inner::-webkit-scrollbar-track {
	background-color: white;
}

.modal-body-inner::-webkit-scrollbar {
	width: 5px;
	background-color: #352D23;
}

.modal-body-inner::-webkit-scrollbar-thumb {
	background-color: #352D23;
}

.modal-body ul, .modal-body ol {
	margin: 1rem 0;
	list-style: none;
}

.modal-body li {
	padding: 0.25rem;
	line-height: 2rem;
}

.modal-body ol li {
	position: relative;
	margin-left: 30px;
	list-style-type: decimal;
}

.modal-body ul li {
	position: relative;
	margin-left: 30px;
	list-style-type: disc;
	padding: 0;
}

.modal-body .link {
	color: var(--color-accent);
	text-decoration: underline;
}

.modal-body-text-wrap {
	margin-bottom: 20px;
}

.modal-body-text {
	letter-spacing: 0.05rem;
	font-size: large;
}

.modal-body-text p {
	font-size: 0.9rem;
	line-height: 1.5;
}

.modal-body-text-center {
	font-size: x-large;
	text-align: center;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 280px;
}

.modal-body-text-center p {
	margin: 0.75rem;
}

.modal-body-text-center > div {
	cursor: pointer;
}

.modal-body-text-wrap h2 {
	color: var(--color-accent);
	font-size: 1.8rem;
	font-weight: 600;
	line-height: 1.3;
	margin: 1vw 0;
}

.modal-body-text-wrap h5 {
	line-height: normal;
	display: inline;
	color: var(--color-ink);
	letter-spacing: 0;
	font-size: 1.3rem;
	font-weight: bolder;
	background: linear-gradient(#fff 60%, #E3F815 0%);
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

.modal-body-text-wrap h3 {
	border: var(--color-accent) 1px solid;
	padding: 0.1rem 1rem;
	color: var(--color-accent);
	border-radius: 3px;
	width: fit-content;
}

.modal-body-text-wrap h6 {
	color: #999;
	font-size: 12px;
}

.modal-body-text a {
	text-decoration: underline;
}

.modal-footer {
	background-color: #656464;
	width: 100%;
	height: 60px;
	line-height: 60px;
	padding-left: 20px;
}

/* =========================================================
   12. SIDE NAV / TO TOP
   ========================================================= */

.menu {
	right: 1%;
	bottom: 10%;
	position: fixed;
	z-index: 999;
}

.menu__style {
	padding: 5% 5%;
	background-color: #fff;
	background-size: 100% 100%;
	text-align: center;
	margin: 0;
	border: var(--color-ink) 1px solid;
}

.menu ul li {
	font-weight: 800;
	opacity: 1 !important;
	color: #111111;
	border-bottom: 1px solid #333;
	padding: 1.6vh 0;
	width: 100%;
	letter-spacing: 1px;
	font-size: 1.1rem;
	display: block;
}

.menu a {
	text-decoration: none;
}

.menu ul li:hover {
	color: var(--color-accent);
	font-weight: 700;
}

.menu > img {
	max-width: 250px;
	padding: 0;
}

#sidebar {
	transition: all 300ms linear;
}

#sidebar.active {
	right: -800px;
}

#sidebar .toggle-btn {
	position: fixed;
	right: 0;
	cursor: pointer;
	background-color: var(--color-ink);
}

#sidebar .toggle-btn span {
	font-size: 1.2rem;
	display: block;
	width: 30px;
	color: #fff;
	margin: 1px 0px;
	padding: 3px 5px 10px 5px;
	text-align: center;
	cursor: pointer;
}

.toTop-arrow {
	width: 50px;
	height: 50px;
	border: 0;
	border-radius: 50%;
	opacity: 0.8;
	background: #222222;
	color: #fff;
	cursor: pointer;
	position: fixed;
	right: 10px;
	bottom: 10px;
	padding-top: 10px;
	z-index: 999;
}

.toTop-arrow::before, .toTop-arrow::after {
	width: 8px;
	height: 2px;
	border-radius: 5px;
	top: 12px;
	background: #fff;
	position: absolute;
	content: "";
}

.toTop-arrow::before {
	transform: rotate(-45deg) translate(0, -50%);
	left: 1.2rem;
}

.toTop-arrow::after {
	transform: rotate(45deg) translate(0, -50%);
	right: 1.2rem;
}

.toTop-arrow:focus {
	outline: none;
}

/* =========================================================
   13. MODAL TABLE
   ========================================================= */

.card-table {
	width: 100%;
	border-collapse: collapse;
	margin: 10px 0;
}

.card-table td {
	width: 50%;
	padding: 8px 12px;
	border: 1px solid #ccc;
	text-align: left;
	line-height: 1.5;
	word-break: break-word;
	vertical-align: middle;
}

.card-table tr:first-child td {
	background: #f8f8f8;
	font-weight: bold;
}

.card-table img {
	object-fit: contain;
}

/* =========================================================
   14. RESPONSIVE
   ========================================================= */

/* ---------- <= 1440px : compact desktop ---------- */
@media (max-width: 1440px) {
	.brand-label {
		font-size: 0.85rem;
		padding: 0.45rem 0.8rem;
		margin: 0 0.5rem 0.3rem;
	}

	.productInfo {
		margin: 0.8rem auto;
	}

	.product-tag {
		width: 5vw;
		height: 5vw;
		font-size: 0.8vw;
		padding: 1vw 0.5vw;
		box-shadow: var(--color-red) 0.3vw 0.3vw 0;
		right: 2vw;
		top: 1vw;
	}

	.product-tag span {
		font-size: 1.6vw;
	}

	.section_title {
		padding: 4rem 0 2rem;
		box-sizing: border-box;
	}

	.section_title h1 {
		font-size: 3.6rem;
	}

	.section-subheader {
		width: 90%;
		margin: auto;
	}

	.eventContainer {
		margin: 0 3%;
	}

	.grid-container {
		width: 100%;
		margin: auto;
		gap: 0.8rem;
		padding: 0 6.5vw;
	}

	.productname-label {
		font-size: 1.3vw;
		margin: 0.5vw;
	}

	.imageBlock {
		width: 90%;
		margin: auto;
	}

	.promos .eventContainer {
		max-width: 95%;
		margin: auto;
	}

	.promos .grid-container {
		gap: 0.8rem;
	}

	.promos {
		margin-top: -5vw;
	}

	.promos h1 {
		font-size: 2vw;
		margin-bottom: 1vw;
	}

	.promos p, .promos b {
		font-size: 1.8vw;
		line-height: 1.5;
	}

	.eventHighlight h2 {
		font-size: 1.2rem;
		line-height: 1.3;
		padding: 1rem 0.6rem;
	}

	.brandHighlight .grid-container {
		grid-template-columns: repeat(3, 1fr);
	}

	.full-price-label {
		font-size: 1vw;
	}

	.sale-price-label {
		font-size: 2.2vw;
	}

	.sale-price-label span {
		font-size: 1.4vw;
	}
}

/* ---------- <= 1024px : tablet ---------- */
@media (max-width: 1024px) {
	.product-tag {
		width: 8vw;
		height: 8vw;
		font-size: 1.8vw;
		padding: 1.5vw 0.5vw;
		right: 5%;
	}

	.product-tag span {
		font-size: 2.5vw;
	}

	.boxFx:hover, .shop-more-btn:hover, .btn-shop-more:hover, .actionBtn:hover {
		transform: scale(1);
	}

	.shop-more-btn {
		font-size: 1.5rem;
		padding: 1rem 1.5rem;
	}

	.section_title {
		margin: 0 auto;
	}

	.section_title h1 {
		letter-spacing: -0.15rem;
		font-size: 3.6rem;
	}

	.promos {
		margin-top: -5%;
	}

	.promos .grid-container {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-areas: "item01 item02"
				"item03 item04"
				"item05 item06"
				"item07 item08";
	}

	.promos h1 {
		font-size: 4vw;
	}

	.promos p, .promos b {
		font-size: 2.8vw;
	}

	.ten .grid-container {
		grid-template-columns: repeat(2, 1fr);
		grid-template-areas: "item01 item02"
			"item03 item04"
			"item05 item06"
			"item07 item08";
	}

	.productname-label {
		font-size: 2vw;
	}

	.tenten .grid-container {
		grid-template-columns: repeat(2, 1fr);
	}

	.eventHighlight .grid-container {
		grid-template-columns: repeat(2, 1fr);
	}

	.eventHighlight h2 {
		line-height: 1.3;
	}

	.brandHighlight .grid-container {
		grid-template-columns: repeat(2, 1fr);
	}

	.full-price-label {
		font-size: 2vw;
	}

	.sale-price-label {
		font-size: 3.6vw;
	}

	.sale-price-label span {
		font-size: 2.2vw;
	}
}

/* ---------- <= 768px : mobile/tablet ---------- */
@media (max-width: 768px) {
	/* Campaign layout */
	.desktop {
		display: none;
	}

	.mobile {
		display: block;
	}

	.boxFx {
		box-shadow: 0 15px 0 -5px rgba(0, 0, 0, 0.2);
		border-radius: 8vw;
	}

	.productInfo {
		margin: 3vw auto;
	}

	.style-wrap {
		padding-top: 33vw;
		padding-bottom: 0;
	}

	.wrap-bg {
		max-width: 100%;
	}

	.notice p {
		line-height: 1.5;
		font-size: 1rem;
		margin: 3vw auto 1vw;
		width: 80%;
	}

	.style-wrap::before {
		height: 33vw;
	}

	.style-wrap::after {
		bottom: -150px;
	}

	.promos .eventContainer {
		margin: auto 5%;
	}

	.eventContainer {
		margin: 15% 5%;
	}

	.grid-container {
		gap: 1.8vw;
	}

	.section-subheader {
		width: 90%;
		margin: auto;
	}

	.section-title-image img {
		width: 100%;
	}

	.section_title {
		width: 100%;
		height: auto;
		padding: 3vw 0;
	}

	.section_title h1 {
		letter-spacing: 0;
		font-size: 7vw;
	}

	.section_title b {
		letter-spacing: -0.2vw;
	}

	.section_title p {
		width: fit-content;
		font-size: 3vw;
		padding: 1vw 2vw;
	}

	.btn-shop-more {
		font-size: 1rem;
	}

	.promos {
		margin-top: -5vw;
	}

	.promos .title {
		font-size: 4vw;
		padding: 3.6vw 0 3vw;
		margin-bottom: 3vw;
	}

	.promos .grid-container {
		gap: 0.6rem;
	}

	.promos h1 {
		font-size: 5vw;
		margin-bottom: 3vw;
	}

	.promos p, .promos b {
		font-size: 2.8vw;
		margin-bottom: 2vw;
	}

	.promos p span {
		font-size: 4vw;
		margin: 0 0.1rem;
	}

	.imageBlock {
		margin: 0 auto 5vw;
	}

	.shopNow {
		font-size: 3.2vw;
		padding: 2.5vw 3.6vw;
	}

	.price-container {
		display: block;
	}

	.product-tag {
		width: 13vw;
		height: 13vw;
		font-size: 3vw;
		padding: 2.5vw;
		position: absolute;
		box-shadow: var(--color-red) 0.6vw 0.6vw 0;
	}

	.product-tag span {
		font-size: 3.4vw;
		margin: auto;
	}

	.brand-label {
		font-size: 2.6vw;
		padding: 1.2vw 2vw;
		margin-bottom: 2vw;
	}

	.productname-label {
		font-size: 3vw;
		font-weight: bold;
		margin: 0 2vw;
	}

	.tab-button {
		font-size: 4vw;
		white-space: nowrap;
		margin: 0 0.5vw;
		padding: 2vw 3vw;
	}

	.full-price-label {
		font-size: 2.6vw;
	}

	.sale-price-label {
		font-size: 4.6vw;
	}

	.sale-price-label span {
		margin-right: 0.5vw;
		font-size: 3.6vw;
	}

	.gift .grid-container {
		grid-template-columns: repeat(2, 1fr);
		grid-template-areas: "item01 item01"
			"item02 item02";
	}

	/* Modal / side navigation */
	.modal-content {
		width: 90%;
	}

	.modal-body-text-wrap h2 {
		font-size: 4.2vw;
		line-height: 1.3;
		margin: 1vw 0;
	}

	.modal-body-text-wrap h5 {
		font-size: 3vw;
	}

	.menu {
		max-width: 100%;
		bottom: 0%;
		right: 0;
	}

	.menu > img {
		max-width: 23%;
		padding: 0;
		opacity: 0.9;
	}

	.menu__style {
		padding: 2% 4% 2% 1%;
	}

	.menu ul li {
		padding: 2px 8px;
		font-size: 0.95em;
		line-height: 2.1em;
		width: auto;
		display: inline-block;
	}

	.menu ul li:hover {
		color: var(--color-accent);
	}

	#sidebar .toggle-btn {
		bottom: 0px;
	}

	.toTop-arrow {
		bottom: 20%;
	}
}

/* ---------- <= 510px : modal / nav fine-tuning ---------- */
@media (max-width: 510px) {
	.modal-body {
		padding: 5vw;
	}

	.modal-body p {
		font-size: 3.2vw;
		margin: 2vw;
	}

	.modal-body ol li {
		margin-left: 6vw;
	}

	.modal-body ul li {
		margin-left: 6vw;
	}

	.modal-body-text-wrap h2 {
		font-size: 7.5vw;
		line-height: 1.3;
		margin: 1vw 0;
	}

	.modal-body-text-wrap h5 {
		font-size: 5.2vw;
	}

	.modal-body li {
		font-size: 4vw;
		line-height: 1.5;
	}

	.menu>img {
		max-width: 30%;
		padding: 0;
	}

	.menu__style {
		padding: 5vw;
	}

	.menu ul li {
		font-size: 0.9rem;
		line-height: 2.1rem;
	}
}

/* ---------- <= 500px : small mobile ---------- */
@media (max-width: 500px) {
	.full-price-label {
		font-size: 4.2vw;
	}

	.sale-price-label {
		font-size: 4.6vw;
	}

	.brand-label {
		letter-spacing: 0.1vw;
		font-size: 3vw;
		padding: 1.5vw 2.2vw;
		margin-bottom: 2vw;
	}

	.shop-more-wrapper {
		text-align: center;
		margin: 3vw 0 0;
	}

	.shop-more-btn {
		font-size: 4vw;
		padding: 2vw 3.5vw;
	}

	.shop-more-btn::after {
		margin-left: 3vw;
		font: 5vw FontAwesome;
	}

	.boxFx {
		border-radius: 10vw;
	}

	.shopNow {
		font-size: 3.6vw;
		padding: 2.2vw 3.5vw;
	}

	.wrap-bg p {
		font-size: 4vw;
	}

	.notice {
		padding: 3vw auto;
	}

	.section_title p {
		font-size: 4vw;
		padding: 0.5vw 2vw;
	}

	.eventContainer {
		padding: 0;
	}

	.flexBox {
		padding-bottom: 5vw;
	}

	.grid-container .gridBox {
		border-radius: 6vw;
		box-shadow: 0 3vw 0 0 rgba(0, 0, 0, 0.15);
	}

	.promos .title {
		font-size: 4.6vw;
		letter-spacing: 0.1vw;
		padding: 5vw 0 3vw;
		margin-bottom: 2vw;
	}

	.promos h1 {
		font-size: 6vw;
		margin: 2vw;
	}

	.promos p, .promos b {
		font-size: 3.8vw;
		margin-bottom: 2vw;
	}

	.promos p span {
		font-size: 2.8vw;
	}

	.event-info {
		font-size: 4vw;
		margin: 3vw 0 0;
	}

	.gift .grid-container {
		grid-template-columns: repeat(2, 1fr);
		grid-template-areas: "item01 item01"
			"item02 item02";
	}

	.brandHighlight .grid-container {
		gap: 1.8vw;
	}

	.brandHighlight .grid-container .gridBox {
		border-radius: 8vw;
	}

	.brandHighlight .brandTitle {
		font-size: 4.2vw;
		margin: 0.2rem 0;
	}

	.brandHighlight .brandTitle02 {
		padding: 0 3vw 3vw;
		line-height: 1.5;
		font-size: 3.8vw;
		letter-spacing: 0;
	}

	.shopNow_b {
		font-size: 3.6vw;
		padding: 3vw;
	}

	.eventHighlight .grid-container {
		gap: 1.8vw;
		grid-template-columns: 1fr;
	}

	.eventHighlight h2 {
		line-height: 1.2;
		padding: 5vw;
		font-size: 5vw;
	}

	.eventHighlight p {
		font-size: 3.2vw;
		line-height: 1.2;
	}

	.productname-label {
		font-size: 3vw;
		letter-spacing: -0.1vw;
		margin-bottom: 1vw;
	}
}
