body { background-image: linear-gradient(rgba(0,0,0,.88),rgba(0,0,0,.91)),url("../../thumbnail.php?file=background-texture.jpg&w=720"); background-size: cover,720px auto; background-attachment: fixed; }
.site-header nav a.active { color: var(--gold); border-color: var(--gold); }
.page-title,.section-title { margin: 0 0 30px; color: var(--gold); font-size: clamp(1.5rem,3vw,2rem); }
.business-calendar{margin:0 0 70px;padding:clamp(20px,4vw,40px);border:1px solid #a6a77c55;border-radius:24px;background:linear-gradient(145deg,#171b16,#0b0d0b);box-shadow:0 24px 70px #0006}.business-calendar__head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:26px}.business-calendar__head span{color:#929475;font-size:.72rem;font-weight:900;letter-spacing:.25em}.business-calendar__head h2{margin:5px 0 0}.business-calendar__head>strong{color:var(--cream);font-size:clamp(1.25rem,3vw,2rem);letter-spacing:.08em}.business-calendar__weekdays,.business-calendar__days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.business-calendar__weekdays{margin-bottom:8px;text-align:center;color:#a6a77c;font-size:.78rem;font-weight:900}.business-calendar__day,.business-calendar__days>.is-blank{min-height:118px;border:1px solid #ffffff12;border-radius:12px;background:#ffffff08;padding:10px}.business-calendar__day>div{display:flex;align-items:center;justify-content:space-between}.business-calendar__day>div strong{font-size:1.15rem}.business-calendar__day small{color:#85877c}.business-calendar__day>b{display:inline-block;margin:12px 0 6px;padding:3px 7px;border-radius:20px;background:#73825c;color:#fff;font-size:.68rem}.business-calendar__day time{display:block;color:#d9d8ce;font-size:.75rem}.business-calendar__day p{margin:6px 0 0;color:#b9b9ad;font-size:.72rem;line-height:1.35}.business-calendar__day.is-closed{background:#301d1b66}.business-calendar__day.is-closed>b{background:#8a4f49}.business-calendar__day.is-event{background:#413a1966}.business-calendar__day.is-event>b{background:#9b873f}.business-calendar__day.is-today{outline:2px solid var(--gold);outline-offset:1px}.business-calendar__legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:20px;color:#aaa;font-size:.78rem}.business-calendar__legend span{display:flex;align-items:center;gap:6px}.business-calendar__legend i{width:9px;height:9px;border-radius:50%;background:#73825c}.business-calendar__legend i.is-closed{background:#8a4f49}.business-calendar__legend i.is-event{background:#9b873f}
@media(max-width:760px){.business-calendar{margin-bottom:50px;padding:18px 12px;border-radius:16px}.business-calendar__head{align-items:flex-start}.business-calendar__weekdays,.business-calendar__days{gap:4px}.business-calendar__day,.business-calendar__days>.is-blank{min-height:74px;padding:6px 3px;border-radius:7px}.business-calendar__day>div{justify-content:center}.business-calendar__day>div strong{font-size:.95rem}.business-calendar__day small,.business-calendar__day p{display:none}.business-calendar__day>b{display:block;margin:7px 0 4px;padding:2px;text-align:center;font-size:.55rem;white-space:nowrap;overflow:hidden}.business-calendar__day time{font-size:.55rem;text-align:center;line-height:1.25}.business-calendar__legend{gap:10px}}
.one-page-section { position:relative; padding-top:100px; padding-bottom:100px; scroll-margin-top:20px; }
.one-page-section + .one-page-section::before { content:""; position:absolute; top:0; left:50%; width:100vw; height:1px; transform:translateX(-50%); background:linear-gradient(90deg,transparent,rgba(166,167,124,.42),transparent); }
.one-page-section > .page-title { margin-bottom:42px; font-size:clamp(2rem,5vw,4.2rem); letter-spacing:.08em; }
.full-bleed { width: 100vw; margin-left: calc(50% - 50vw); }
.character-hero { height: clamp(340px,50vw,560px); }
.about-hero { height: clamp(380px,62vw,680px); }
.about-hero .kusa-carousel__slide img { object-fit: contain; background: radial-gradient(circle at 50% 50%, #151815 0%, #050605 75%); }
.site-header nav a[data-section="home"] { border: 1px solid rgba(166,167,124,.7); border-radius: 4px; padding: 4px 14px; }
.site-header nav a[data-section="home"]:hover, .site-header nav a[data-section="home"].active { border-color: var(--gold); color: var(--gold); box-shadow: 0 0 12px rgba(166,167,124,.35); }
#special-event > .page-title { display: inline-block; border: 1px solid var(--gold); padding: 6px 28px; letter-spacing: .16em; font-size: clamp(1.4rem,3.2vw,2.2rem); margin-bottom: 36px; background: rgba(5,6,5,.65); border-radius: 2px; }

/* KUSA CAFE 逐張交錯與筆刷遮罩 (Storyboard 02 - 06 Staggered Photos) */
.kusa-stagger-flow { position: relative; background: #050605; width: 100vw; margin-left: calc(50% - 50vw); padding: 30px 0 70px; overflow: hidden; }
.kusa-stagger-item { position: relative; max-width: 1240px; margin: 0 auto; min-height: clamp(340px, 46vw, 560px); display: flex; align-items: center; box-sizing: border-box; }
.kusa-stagger-item + .kusa-stagger-item { margin-top: clamp(-60px, -7vw, -30px); }
.kusa-stagger-item.is-left { justify-content: flex-start; }
.kusa-stagger-item.is-left .kusa-stagger-card { width: min(880px, 75vw); margin-right: auto; -webkit-mask-image: url('../img/brush-mask-left.png?v=20261019'); mask-image: url('../img/brush-mask-left.png?v=20261019'); -webkit-mask-size: 100% 100%; mask-size: 100% 100%; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; }
.kusa-stagger-item.is-left .kusa-stagger-caption { position: absolute; right: clamp(24px, 6vw, 70px); top: 50%; transform: translateY(-50%); max-width: clamp(260px, 28vw, 360px); z-index: 5; text-align: right; }
.kusa-stagger-item.is-right { justify-content: flex-end; }
.kusa-stagger-item.is-right .kusa-stagger-card { width: min(880px, 75vw); margin-left: auto; -webkit-mask-image: url('../img/brush-mask-right.png?v=20261019'); mask-image: url('../img/brush-mask-right.png?v=20261019'); -webkit-mask-size: 100% 100%; mask-size: 100% 100%; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; }
.kusa-stagger-item.is-right .kusa-stagger-caption { position: absolute; left: clamp(24px, 6vw, 70px); top: 50%; transform: translateY(-50%); max-width: clamp(260px, 28vw, 360px); z-index: 5; text-align: left; }
.kusa-stagger-item.is-center { justify-content: center; }
.kusa-stagger-item.is-center .kusa-stagger-card { width: min(940px, 82vw); margin: 0 auto; -webkit-mask-image: url('../img/brush-mask-center.png?v=20261019'); mask-image: url('../img/brush-mask-center.png?v=20261019'); -webkit-mask-size: 100% 100%; mask-size: 100% 100%; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; }
.kusa-stagger-item.is-center .kusa-stagger-caption { position: absolute; right: clamp(24px, 8vw, 90px); top: 38%; max-width: clamp(260px, 28vw, 360px); z-index: 5; text-align: right; }
.kusa-stagger-card { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: #050605; transition: transform 0.4s ease; }
.kusa-stagger-photo { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; filter: brightness(0.92) contrast(1.05); }
.kusa-stagger-caption { opacity: 0; transform: translateY(24px); transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1); }
.kusa-stagger-caption.is-visible { opacity: 1; transform: translateY(-50%); }
.kusa-stagger-title { color: #bfe073; font-size: clamp(1.4rem, 2.5vw, 2rem); font-weight: 900; letter-spacing: 0.08em; margin: 0 0 10px; text-shadow: 0 2px 14px rgba(0,0,0,0.95), 0 0 6px rgba(0,0,0,0.9); }
.kusa-stagger-caption p { color: #a3c46e; font-size: clamp(0.95rem, 1.4vw, 1.15rem); line-height: 1.85; letter-spacing: 0.04em; margin: 0; font-weight: 700; text-shadow: 0 2px 12px rgba(0,0,0,0.95), 0 0 8px rgba(0,0,0,0.9); }
@media (max-width: 760px) {
  .kusa-stagger-item { flex-direction: column; min-height: auto; padding: 18px 12px; }
  .kusa-stagger-item + .kusa-stagger-item { margin-top: -10px; }
  .kusa-stagger-item.is-left .kusa-stagger-card, .kusa-stagger-item.is-right .kusa-stagger-card, .kusa-stagger-item.is-center .kusa-stagger-card { width: 100%; aspect-ratio: 16 / 11; }
  .kusa-stagger-item.is-left .kusa-stagger-caption, .kusa-stagger-item.is-right .kusa-stagger-caption, .kusa-stagger-item.is-center .kusa-stagger-caption { position: relative; right: auto; left: auto; top: auto; transform: none; max-width: 100%; margin-top: 14px; text-align: center; }
  .kusa-stagger-caption.is-visible { transform: none; }
  .kusa-stagger-caption p { font-size: 0.95rem; line-height: 1.7; }
}
.kusa-carousel { position:relative; min-height:0; overflow:hidden; background:#050605; }
.kusa-carousel__stage { position:relative; width:100%; height:100%; overflow:hidden; touch-action:pan-y; }
.kusa-carousel__slide { position:absolute; inset:0; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .55s ease,visibility .55s ease; }
.kusa-carousel__slide.is-active { z-index:1; opacity:1; visibility:visible; pointer-events:auto; }
.kusa-carousel__slide>a { display:block; width:100%; height:100%; color:inherit; text-decoration:none; }
.kusa-carousel__slide img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; background:#050605; }
.kusa-carousel__nav { position:absolute; z-index:3; top:50%; width:46px; height:56px; border:1px solid rgba(255,255,255,.45); border-radius:12px; color:#fff; background:rgba(0,0,0,.58); transform:translateY(-50%); cursor:pointer; font:700 2rem/1 sans-serif; backdrop-filter:blur(8px); }
.kusa-carousel__nav.is-prev { left:clamp(10px,2vw,26px); }
.kusa-carousel__nav.is-next { right:clamp(10px,2vw,26px); }
.kusa-carousel__nav:hover,.kusa-carousel__nav:focus-visible { color:#10110c; background:var(--gold); outline:none; }
.kusa-carousel__tabs { position:absolute; z-index:4; right:clamp(10px,2vw,26px); bottom:clamp(10px,2vw,22px); display:flex; gap:6px; padding:5px; border:1px solid rgba(255,255,255,.28); border-radius:999px; background:rgba(5,6,5,.72); box-shadow:0 8px 30px rgba(0,0,0,.32); backdrop-filter:blur(10px); }
.kusa-carousel__tabs button { min-width:74px; padding:8px 15px; border:0; border-radius:999px; color:#ddd; background:transparent; cursor:pointer; font:800 .8rem/1 "Noto Sans TC","Microsoft JhengHei",sans-serif; letter-spacing:.04em; }
.kusa-carousel__tabs button.is-active { color:#10110c; background:var(--gold); }
.kusa-carousel__tabs button:focus-visible { outline:2px solid #fff; outline-offset:2px; }
.kusa-carousel__tabs button:disabled { display:none; }
.character-list { display: flex; flex-direction: column; gap: 26px; max-width: 830px; margin: 38px auto; }
.character-list article { display: grid; grid-template-columns: 290px 1fr; align-items: center; gap: 68px; }
.character-list h2 { color: var(--gold); font-size: 1.5rem; }
.character-art .image-box { min-height: 280px; }
.character-art img { object-fit: cover; }
.card .square img { object-fit: cover; }
.about-collage { display: grid; grid-template-columns: .9fr 1.2fr; gap: 24px; }
.about-collage > div { display: grid; gap: 24px; }
.about-tall { min-height: 720px; }
.kusa-ad-wall { margin: 60px 0 72px; }
.kusa-ad-wall__head { display:flex; align-items:baseline; gap:16px; margin-bottom:18px; }
.kusa-ad-wall__head span { color:var(--gold); font-size:.72rem; font-weight:900; letter-spacing:.26em; }
.kusa-ad-wall__head h2 { margin:0; color:var(--cream); font-size:clamp(1.45rem,3vw,2rem); }
.kusa-ad-wall__stage { position:relative; min-height:clamp(270px,52vw,660px); overflow:hidden; border:1px solid rgba(166,167,124,.4); border-radius:18px; background:#0a0b09; box-shadow:0 26px 80px rgba(0,0,0,.46); }
.kusa-ad-wall__slide { position:absolute; inset:0; opacity:0; pointer-events:none; transition:opacity .7s ease; }
.kusa-ad-wall__slide.is-active { opacity:1; pointer-events:auto; }
.kusa-ad-wall__slide>a { display:block; width:100%; height:100%; color:inherit; text-decoration:none; }
.kusa-ad-wall__slide img { display:block; width:100%; height:100%; object-fit:cover; }
.kusa-ad-wall__caption { position:absolute; left:0; right:0; bottom:0; display:flex; justify-content:space-between; align-items:center; gap:16px; padding:clamp(16px,3vw,28px); color:#fff; background:linear-gradient(transparent,rgba(0,0,0,.9)); text-shadow:0 2px 12px #000; }
.kusa-ad-wall__caption strong { font-size:clamp(1rem,2.4vw,1.5rem); }
.kusa-ad-wall__caption span { white-space:nowrap; color:#dff35d; font-size:.9rem; font-weight:900; }
.kusa-ad-wall__nav { position:absolute; z-index:3; top:50%; width:46px; height:54px; border:1px solid rgba(255,255,255,.35); border-radius:12px; color:#fff; background:rgba(0,0,0,.55); transform:translateY(-50%); cursor:pointer; font-size:2rem; }
.kusa-ad-wall__nav.is-prev { left:14px; }
.kusa-ad-wall__nav.is-next { right:14px; }
.kusa-ad-wall__nav:hover,.kusa-ad-wall__nav:focus-visible { color:#10110c; background:var(--gold); outline:none; }
.view3d { width:100%; height:clamp(480px,56vw,650px); min-height:0; position:relative; overflow:hidden; border:1px solid #35372f; border-radius:12px; background:radial-gradient(circle at 50% 45%,#30352d,#0b0d0c 64%); box-shadow:0 24px 70px rgba(0,0,0,.45); }
.view3d:fullscreen { width:100vw; height:100vh; max-width:none; border:0; border-radius:0; background:#080a09; }
.view3d::before { content:"3D SPACE"; position:absolute; inset:0; display:grid; place-items:center; color:rgba(166,167,124,.08); font-size:clamp(4rem,15vw,12rem); font-weight:900; letter-spacing:-.06em; pointer-events:none; }
.view3d iframe { position:relative; z-index:1; display:block; width:100%; height:100%; border:0; opacity:0; transition:opacity .45s ease; }
.view3d iframe.ready { opacity:1; }
.view3d-play { position:absolute; inset:0; z-index:2; width:100%; border:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; color:var(--cream); background:rgba(4,6,5,.35); cursor:pointer; }
.view3d-play span { width:82px; height:82px; padding-left:6px; display:grid; place-items:center; border:2px solid var(--gold); border-radius:50%; color:var(--gold); background:rgba(5,6,5,.8); font-size:2rem; transition:.2s; }
.view3d-play strong { font-size:1.25rem; }
.view3d-play small { color:#a9aa9e; }
.view3d-play:hover span { transform:scale(1.08); background:var(--gold); color:#090a08; }
.view3d-play.hidden { display:none; }
.view3d-loading { position:absolute; left:50%; bottom:30px; z-index:1; padding:8px 14px; border-radius:20px; color:var(--gold); background:#090b09dd; opacity:0; transform:translateX(-50%); pointer-events:none; }
.view3d-loading.show { opacity:1; }
.view3d-fullscreen { position:absolute; top:14px; right:14px; z-index:4; min-height:40px; padding:8px 13px; border:1px solid rgba(166,167,124,.55); border-radius:7px; color:var(--cream); background:rgba(8,10,8,.82); font:inherit; font-size:.84rem; cursor:pointer; backdrop-filter:blur(8px); }
.view3d-fullscreen:hover,.view3d-fullscreen:focus-visible { color:#090a08; background:var(--gold); outline:none; }
.zone-controls button { padding:0; border:1px solid transparent; color:inherit; background:transparent; text-align:center; cursor:pointer; transition:.2s; }
.zone-controls button:hover,.zone-controls button.active { border-color:var(--gold); transform:translateY(-4px); }
.zone-controls button h2 { margin:10px 4px 0; color:var(--cream); font-size:1rem; }
.zone-controls button>span { display:block; margin:0 0 10px; color:var(--gold); font-size:.75rem; }
@media (max-width:760px) {
  .about-hero { height:auto; aspect-ratio:1.415; }
  .kusa-carousel__nav { width:40px; height:48px; border-radius:10px; }
  .kusa-carousel__tabs button { min-width:62px; padding:7px 11px; font-size:.72rem; }
  .character-list article { grid-template-columns: 145px 1fr; gap: 24px; }
  .character-art .image-box { min-height: 190px; }
  .about-collage { grid-template-columns: 1fr; }
  .about-tall { min-height: 420px; }
  .kusa-ad-wall { margin:40px 0 56px; }
  .kusa-ad-wall__stage { min-height:0; aspect-ratio:1.42; border-radius:12px; }
  .kusa-ad-wall__caption span { display:none; }
  .view3d { height: min(72vh,560px); min-height:420px; border-radius:8px; }
  .view3d-fullscreen span { display:none; }
}

/* PARTNERS 合作夥伴專區樣式 */
.partner-section { position:relative; padding-top:90px; padding-bottom:90px; }
.partner-head { text-align:center; max-width:720px; margin:0 auto 36px; }
.partner-head .page-title { margin-bottom:6px; letter-spacing:.12em; }
.partner-head .section-title { margin:0 0 10px; font-size:clamp(1.2rem,2.5vw,1.6rem); }
.partner-desc { margin:0; color:#a7a99f; font-size:.95rem; letter-spacing:.04em; }

/* 跑馬燈無限流動效果 */
.partner-marquee {
  width:100vw;
  margin-left:calc(50% - 50vw);
  overflow:hidden;
  position:relative;
  padding:22px 0;
  background:rgba(5,6,5,.68);
  border-top:1px solid rgba(166,167,124,.28);
  border-bottom:1px solid rgba(166,167,124,.28);
  margin-bottom:48px;
  mask-image:linear-gradient(90deg,transparent 0%,#000 12%,#000 88%,transparent 100%);
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 12%,#000 88%,transparent 100%);
}
.partner-marquee__track {
  display:flex;
  width:max-content;
  gap:32px;
  animation:partnerScroll 55s linear infinite;
}
.partner-marquee:hover .partner-marquee__track { animation-play-state:paused; }
@keyframes partnerScroll {
  from { transform:translateX(0); }
  to { transform:translateX(-50%); }
}
.partner-marquee__item { flex-shrink:0; width:145px; text-align:center; }
.partner-marquee__item a,
.partner-marquee__item div {
  display:flex;
  flex-direction:column;
  align-items:center;
  text-decoration:none;
  color:inherit;
  transition:transform .25s ease,filter .25s ease;
}
.partner-marquee__item:hover a,
.partner-marquee__item:hover div { transform:translateY(-4px) scale(1.08); }
.partner-marquee__item img {
  width:96px;
  height:96px;
  object-fit:contain;
  filter:drop-shadow(0 4px 10px rgba(0,0,0,.6));
  transition:filter .25s ease;
}
.partner-marquee__item:hover img {
  filter:drop-shadow(0 0 14px rgba(166,167,124,.75)) drop-shadow(0 6px 12px rgba(0,0,0,.8));
}
.partner-marquee__item span {
  display:block;
  margin-top:8px;
  font-size:.82rem;
  font-weight:700;
  color:#cfd2c6;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:138px;
}
.partner-marquee__item:hover span { color:var(--gold); }

/* 完整矩陣網格排版 (電腦版 5 欄完全契合排序參考圖 4x5) */
.partner-grid {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:22px 18px;
  margin-top:16px;
}
.partner-card {
  position:relative;
  background:rgba(18,22,17,.55);
  border:1px solid rgba(166,167,124,.22);
  border-radius:12px;
  overflow:hidden;
  backdrop-filter:blur(8px);
  transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;
}
.partner-card:hover {
  transform:translateY(-5px);
  border-color:rgba(166,167,124,.65);
  box-shadow:0 12px 28px rgba(0,0,0,.5),0 0 18px rgba(166,167,124,.18);
}
.partner-card__inner {
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:20px 14px 16px;
  text-decoration:none;
  color:inherit;
  height:100%;
}
.partner-card__logo {
  width:100%;
  aspect-ratio:1;
  max-width:125px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:12px;
}
.partner-card__logo img {
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  transition:transform .25s ease,filter .25s ease;
  filter:drop-shadow(0 4px 10px rgba(0,0,0,.6));
}
.partner-card:hover .partner-card__logo img {
  transform:scale(1.08);
  filter:drop-shadow(0 0 12px rgba(166,167,124,.65));
}
.partner-card__name {
  margin:0;
  font-size:.88rem;
  font-weight:700;
  color:#cfd2c6;
  text-align:center;
  word-break:break-word;
  transition:color .2s;
}
.partner-card:hover .partner-card__name { color:var(--gold); }

@media (max-width:1024px) {
  .partner-grid { grid-template-columns:repeat(4,1fr); gap:18px 14px; }
}
@media (max-width:760px) {
  .partner-grid { grid-template-columns:repeat(3,1fr); gap:14px 10px; }
  .partner-card__inner { padding:14px 8px 12px; }
  .partner-card__name { font-size:.78rem; }
  .partner-marquee { padding:16px 0; margin-bottom:34px; }
  .partner-marquee__item { width:115px; }
  .partner-marquee__item img { width:72px; height:72px; }
}
@media (max-width:480px) {
  .partner-grid { grid-template-columns:repeat(2,1fr); gap:12px; }
}

/* 商品組合 (Product Bundles) 前台專區樣式 */
.bundle-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 26px;
  margin-bottom: 30px;
}
.bundle-card {
  background: rgba(18, 22, 18, 0.85);
  border: 1px solid rgba(166, 167, 124, 0.35);
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.bundle-card:hover {
  transform: translateY(-4px);
  border-color: var(--gold);
  box-shadow: 0 12px 30px rgba(0,0,0,.5);
}
.bundle-card__img-wrap {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1.15;
  background: #0d100d;
}
.bundle-card__img-wrap .image-box,
.bundle-card__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.bundle-card__badge {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  background: #e0441a;
  color: #fff;
  font-size: .8rem;
  font-weight: 800;
  padding: 4px 11px;
  border-radius: 20px;
  box-shadow: 0 2px 8px rgba(0,0,0,.4);
  letter-spacing: .02em;
}
.bundle-card__body {
  padding: 20px 22px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}
.bundle-card__title {
  margin: 0 0 12px;
  font-size: 1.25rem;
  color: #fff;
  font-weight: 800;
  letter-spacing: .02em;
}
.bundle-card__items {
  margin-bottom: 18px;
  background: rgba(0,0,0,.35);
  padding: 10px 14px;
  border-radius: 6px;
  border: 1px solid rgba(255,255,255,.07);
}
.bundle-card__label {
  color: var(--gold);
  font-weight: 700;
  font-size: .8rem;
  margin-bottom: 4px;
  display: block;
}
.bundle-card__items p {
  margin: 0;
  font-size: .85rem;
  color: #cad0c0;
  line-height: 1.5;
}
.bundle-card__price-row {
  margin-top: auto;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  padding-top: 10px;
  border-top: 1px dashed rgba(166,167,124,.25);
}
.bundle-card__price {
  font-size: 1.45rem;
  font-weight: 900;
  color: var(--gold);
}
.bundle-card__price .currency {
  font-size: .95rem;
  margin-right: 2px;
}
.bundle-card__orig-price {
  font-size: .88rem;
  color: #888c80;
  text-decoration: line-through;
}
@media (max-width:760px) {
  .bundle-grid { grid-template-columns: 1fr; gap: 20px; }
  .bundle-card__title { font-size: 1.15rem; }
  .bundle-card__price { font-size: 1.3rem; }
}

/* ========================================================
   KUSA CAFE AI 智慧客服懸浮面板與反饋控制
   ======================================================== */
.kusaAiChat {
  position: fixed;
  right: 24px;
  bottom: 84px;
  z-index: 1100;
  font-family: inherit;
}
.kusaAiChat__toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 18px;
  border: 1px solid var(--gold, #a6a77c);
  border-radius: 999px;
  background: #151a14;
  color: var(--cream, #f2eee5);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.45);
  cursor: pointer;
  font-size: 14px;
  font-weight: 700;
  transition: all 0.2s ease;
}
.kusaAiChat__toggle:hover {
  background: #1f271e;
  border-color: #c4c59a;
  transform: translateY(-2px);
}
.kusaAiChat__toggle svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: var(--gold, #a6a77c);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.kusaAiChat__panel {
  display: none;
  position: absolute;
  right: 0;
  bottom: 60px;
  width: min(390px, calc(100vw - 32px));
  height: min(600px, calc(100vh - 120px));
  border: 1px solid rgba(166, 167, 124, 0.4);
  border-radius: 12px;
  background: #121611;
  color: var(--cream, #f2eee5);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6);
  overflow: hidden;
  flex-direction: column;
}
.kusaAiChat.is-open .kusaAiChat__panel {
  display: flex;
}
.kusaAiChat__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 14px 16px;
  border-bottom: 1px solid rgba(166, 167, 124, 0.25);
  background: #181f17;
}
.kusaAiChat__titleGroup strong {
  display: block;
  font-size: 15px;
  color: var(--gold, #a6a77c);
}
.kusaAiChat__titleGroup span {
  display: block;
  margin-top: 2px;
  font-size: 11px;
  color: #9ba092;
}
.kusaAiChat__headActions {
  display: flex;
  align-items: center;
  gap: 6px;
}
.kusaAiChat__clear {
  height: 28px;
  padding: 0 8px;
  border: 1px solid rgba(166, 167, 124, 0.35);
  border-radius: 6px;
  background: transparent;
  color: #c9c9b7;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.15s ease;
}
.kusaAiChat__clear:hover {
  background: rgba(166, 167, 124, 0.15);
  color: #fff;
}
.kusaAiChat__close {
  width: 28px;
  height: 28px;
  border: 1px solid rgba(166, 167, 124, 0.35);
  border-radius: 6px;
  background: transparent;
  color: #c9c9b7;
  font-size: 14px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.15s ease;
}
.kusaAiChat__close:hover {
  background: rgba(239, 68, 68, 0.2);
  border-color: #ef4444;
  color: #f87171;
}
.kusaAiChat__quickWrap {
  display: flex;
  gap: 6px;
  padding: 8px 12px;
  overflow-x: auto;
  background: #151a14;
  border-bottom: 1px solid rgba(166, 167, 124, 0.15);
  scrollbar-width: thin;
}
.kusaAiChat__quickBtn {
  flex-shrink: 0;
  padding: 4px 10px;
  border: 1px solid rgba(166, 167, 124, 0.3);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.04);
  color: var(--gold, #a6a77c);
  font-size: 12px;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.15s ease;
}
.kusaAiChat__quickBtn:hover {
  background: rgba(166, 167, 124, 0.2);
  border-color: var(--gold, #a6a77c);
  color: #fff;
}
.kusaAiChat__log {
  flex: 1;
  padding: 14px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: #0d110d;
}
.kusaAiChat__msg {
  max-width: 88%;
  padding: 10px 14px;
  border-radius: 10px;
  line-height: 1.6;
  font-size: 13.5px;
  white-space: pre-wrap;
  word-break: break-word;
}
.kusaAiChat__msg--ai {
  align-self: flex-start;
  background: #1b221a;
  border: 1px solid rgba(166, 167, 124, 0.28);
  color: #f2eee5;
}
.kusaAiChat__msg--user {
  align-self: flex-end;
  background: #a6a77c;
  color: #0b0f0b;
  font-weight: 500;
}
.kusaAiChat__actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
  padding-top: 6px;
  border-top: 1px dashed rgba(166, 167, 124, 0.25);
}
.kusaAiChat__actionBtn {
  pointer-events: auto !important;
  position: relative;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  height: 26px;
  padding: 2px 6px;
  font-size: 14px;
  line-height: 1;
  border-radius: 5px;
  border: 1px solid rgba(166, 167, 124, 0.35);
  background: #141913;
  color: #c9c9b7;
  cursor: pointer;
  transition: all 0.15s ease;
  user-select: none;
}
.kusaAiChat__actionBtn:hover:not(:disabled) {
  background: #252e23;
  border-color: var(--gold, #a6a77c);
  color: #fff;
  transform: translateY(-1px);
}
.kusaAiChat__actionBtn:disabled {
  opacity: 0.7;
  cursor: default;
}
.kusaAiChat__actionBtn.is-active-like {
  background: rgba(16, 185, 129, 0.15);
  border-color: #10b981;
  color: #34d399;
  font-weight: 600;
}
.kusaAiChat__actionBtn.is-active-dislike {
  background: rgba(239, 68, 68, 0.15);
  border-color: #f87171;
  color: #fca5a5;
}
.kusaAiChat__actionBtn.is-playing {
  background: rgba(59, 130, 246, 0.18);
  border-color: #60a5fa;
  color: #93c5fd;
}
.kusaAiChat__form {
  display: flex;
  gap: 8px;
  padding: 12px;
  background: #151a14;
  border-top: 1px solid rgba(166, 167, 124, 0.25);
}
.kusaAiChat__form input {
  flex: 1;
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid rgba(166, 167, 124, 0.35);
  border-radius: 8px;
  background: #0d110d;
  color: #fff;
  font-size: 13.5px;
}
.kusaAiChat__form input:focus {
  outline: none;
  border-color: var(--gold, #a6a77c);
}
.kusaAiChat__form button[type="submit"] {
  padding: 0 16px;
  border: 0;
  border-radius: 8px;
  background: var(--gold, #a6a77c);
  color: #0d110d;
  font-weight: 700;
  font-size: 13.5px;
  cursor: pointer;
  transition: opacity 0.2s ease;
}
.kusaAiChat__form button[type="submit"]:hover:not(:disabled) {
  opacity: 0.9;
}
.kusaAiChat__form button[type="submit"]:disabled {
  opacity: 0.55;
  cursor: default;
}
@media (max-width: 760px) {
  .kusaAiChat {
    right: 14px;
    bottom: 76px;
  }
  .kusaAiChat__panel {
    bottom: 56px;
    height: min(540px, calc(100vh - 100px));
  }
}

