/* ===== lifestyle 主題：移植自 Demo(Tailwind)→ Bootstrap5 + 自訂 ===== */
.lifestyle {
  --foreground: #0a0a0a;
  --primary: #030213;
  --muted-foreground: #717182;
  --accent: #e9ebef;
  --border: rgba(0, 0, 0, 0.1);
  --stone-100: #f5f5f4;
  --stone-200: #e7e5e4;
  --stone-300: #d6d3d1;
  --stone-500: #78716c;
  --stone-600: #57534e;
  font-family: "Noto Serif TC", "Songti TC", "PingFang TC", "Microsoft JhengHei", serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: var(--foreground);
}

.lifestyle img {
  height: auto;
  vertical-align: middle;
}

.lifestyle a {
  text-decoration: none;
  color: inherit;
}

/* Tailwind Preflight：標題預設字重 400(不是 Bootstrap 的 500)；間距由各元素自訂 */
.lifestyle h1,
.lifestyle h2,
.lifestyle h3,
.lifestyle h4 {
  font-weight: 400;
  line-height: 1.2;
  margin: 0;
}

.ls-container {
  max-width: 1440px;
  margin: 0 auto;
  padding-inline: 24px;
}

@media (min-width: 992px) {
  .ls-container {
    padding-inline: 48px;
  }
}

/* ---------- 通用按鈕(用 .lifestyle 前綴提高權重，避免被 .lifestyle a 的 color:inherit 蓋掉) ---------- */
.lifestyle .btn-ls-dark {
  display: inline-block;
  border: 1px solid var(--foreground);
  background: var(--foreground);
  color: #fff;
  padding: 12px 28px;
  border-radius: 9999px;
  font-size: 14px;
  cursor: pointer;
  transition: .25s;
}

.lifestyle .btn-ls-dark:hover {
  background: rgba(10, 10, 10, .9);
  color: #fff;
}

.lifestyle .btn-ls-outline {
  display: inline-block;
  border: 1px solid var(--foreground);
  background: transparent;
  color: var(--foreground);
  padding: 10px 22px;
  border-radius: 9999px;
  font-size: 14px;
  cursor: pointer;
  transition: .25s;
}

.lifestyle .btn-ls-outline:hover {
  background: var(--foreground);
  color: #fff;
}

/* ---------- Header ---------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  transition: background-color .3s, box-shadow .3s;
}

/* 內頁也走透明標頭：內容上移到標頭底下，第一個區塊補回上內距（含標頭高度） */
.lifestyle.page-inner main {
  margin-top: -64px;
}

.lifestyle.page-inner main> :first-child {
  padding-top: 112px;
}

@media (min-width: 768px) {
  .lifestyle.page-inner main {
    margin-top: -80px;
  }

  .lifestyle.page-inner main> :first-child {
    padding-top: 144px;
  }
}

.site-header.is-transparent {
  background: transparent;
}

.site-header.is-solid {
  background: #fff;
  box-shadow: 0 1px 0 var(--border);
}

.lifestyle .site-header .ls-container {
  max-width: 85%;
  padding-inline: 0;
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 64px;
}

@media (min-width: 768px) {
  .header-inner {
    height: 80px;
  }
}

.header-logo {
  font-size: 20px;
  letter-spacing: -.025em;
}

@media (min-width: 768px) {
  .header-logo {
    font-size: 24px;
  }
}

.header-nav {
  display: none;
  align-items: center;
  gap: 32px;
}

@media (min-width: 992px) {
  .header-nav {
    display: flex;
  }
}

.header-nav-link {
  font-size: 14px;
  letter-spacing: .02em;
  transition: color .2s;
}

.header-nav-item {
  position: relative;
}

.header-nav-item .caret {
  font-size: 10px;
}

/* 透明態文字白、實心態文字黑 */
.is-transparent .header-logo,
.is-transparent .header-nav-link,
.is-transparent .header-icon-btn {
  color: rgba(255, 255, 255, .95);
}

.is-transparent .header-nav-link:hover,
.is-transparent .header-icon-btn:hover {
  color: #fff;
}

.is-solid .header-logo,
.is-solid .header-icon-btn {
  color: var(--foreground);
}

.is-solid .header-nav-link {
  color: rgba(10, 10, 10, .75);
}

.is-solid .header-nav-link:hover {
  color: var(--foreground);
}

.is-solid .header-icon-btn:hover {
  background: var(--stone-100);
}

.header-tools {
  display: flex;
  align-items: center;
  gap: 16px;
}

@media (min-width: 768px) {
  .header-tools {
    gap: 24px;
  }
}

.header-icon-btn {
  display: inline-flex;
  padding: 8px;
  border-radius: 9999px;
  border: 0;
  background: transparent;
  cursor: pointer;
  transition: .2s;
}

.header-icon-btn svg {
  width: 20px;
  height: 20px;
}

.header-burger {
  display: inline-flex;
}

@media (min-width: 992px) {
  .header-burger {
    display: none;
  }
}

/* Mega 選單 */
.header-mega {
  position: absolute;
  left: 50%;
  top: 100%;
  transform: translateX(-50%);
  padding-top: 16px;
  width: min(700px, 90vw);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: .2s;
}

.header-nav-item.has-mega:hover .header-mega {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.header-mega-inner {
  display: grid;
  grid-template-columns: 300px 1fr;
  overflow: hidden;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 40px rgba(0, 0, 0, .12);
}

.header-mega-cover {
  position: relative;
  min-height: 200px;
}

.header-mega-cover img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.header-mega-cover-text {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 24px;
  color: #fff;
  background: linear-gradient(to top, rgba(0, 0, 0, .6), rgba(0, 0, 0, .2), transparent);
}

.header-mega-cover-text .t1 {
  font-size: 20px;
  margin: 0 0 4px;
}

.header-mega-cover-text .t2 {
  font-size: 14px;
  opacity: .8;
  margin: 0 0 8px;
}

.header-mega-cover-text .t3 {
  font-size: 14px;
}

.header-mega-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  padding: 24px;
}

.header-mega-title {
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .03em;
  margin: 0 0 16px;
}

.header-mega-cols a {
  display: block;
  font-size: 14px;
  color: rgba(10, 10, 10, .7);
  padding: 6px 0;
}

.header-mega-cols a:hover {
  color: var(--foreground);
}

@media (max-width: 767px) {
  .header-mega-inner {
    grid-template-columns: 1fr;
  }

  .header-mega-cover {
    display: none;
  }
}

/* 手機選單：浮在內容之上不推擠版面，展開時像捲簾由上往下拉開 */
.mobile-nav-panel {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 40;
  background: #fff;
  box-shadow: 0 18px 40px rgba(78, 23, 10, .18);
  visibility: hidden;
  opacity: 0;
  clip-path: inset(0 0 100% 0);
  transition: clip-path .45s cubic-bezier(.4, 0, .2, 1), opacity .18s ease, visibility .45s;
}

.mobile-nav-panel.is-open {
  visibility: visible;
  opacity: 1;
  clip-path: inset(0 0 0 0);
}

/* 頂端一道品牌紅細線，與標頭區隔 */
.mobile-nav-panel::before {
  content: '';
  display: block;
  height: 3px;
  background: var(--jz-red);
}

.mobile-nav-panel nav {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 10px 22px 22px;
}

/* 注意：底下主選項不可再宣告 transition（會整個覆蓋掉這裡的 opacity/transform 過渡） */
.mobile-nav-panel nav>* {
  opacity: 0;
  transform: translateY(-10px);
  transition: opacity .34s ease, transform .34s cubic-bezier(.16, .84, .28, 1), color .2s ease;
}

/* 展開時選項跟在捲簾後方逐條浮現 */
.mobile-nav-panel.is-open nav>* {
  opacity: 1;
  transform: none;
}

.mobile-nav-panel.is-open nav>*:nth-child(1) {
  transition-delay: .10s;
}

.mobile-nav-panel.is-open nav>*:nth-child(2) {
  transition-delay: .16s;
}

.mobile-nav-panel.is-open nav>*:nth-child(3) {
  transition-delay: .22s;
}

.mobile-nav-panel.is-open nav>*:nth-child(4) {
  transition-delay: .28s;
}

.mobile-nav-panel.is-open nav>*:nth-child(n+5) {
  transition-delay: .34s;
}

/* 主選項：襯線字、逐列分隔，右側箭頭在 hover 時前推 */
.lifestyle .mobile-nav-panel nav>a,
.lifestyle .jz-mobile-nav-row>a {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: "Noto Serif TC", "Songti TC", "PingFang TC", "Microsoft JhengHei", serif;
  font-size: 17px;
  font-weight: 600;
  color: var(--jz-title);
  letter-spacing: .1em;
  padding: 16px 2px;
}

.lifestyle .jz-mobile-nav-row>a {
  transition: color .2s ease;
}

.lifestyle .mobile-nav-panel nav>a::after {
  content: '›';
  font-size: 20px;
  color: rgba(122, 92, 74, .45);
  transition: transform .25s, color .2s;
}

.lifestyle .mobile-nav-panel nav>a:hover {
  color: var(--jz-red);
}

.lifestyle .mobile-nav-panel nav>a:hover::after {
  color: var(--jz-red);
  transform: translateX(4px);
}

.lifestyle .jz-mobile-nav-row>a:hover {
  color: var(--jz-red);
}

/* 「全部商品」與展開鈕同一列 */
.jz-mobile-nav-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.mobile-nav-panel nav>a:not(:last-child),
.jz-mobile-nav-row {
  border-bottom: 1px solid rgba(122, 92, 74, .14);
}

.lifestyle .jz-mobile-nav-caret {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 50%;
  background: rgba(206, 47, 33, .08);
  color: var(--jz-red);
  cursor: pointer;
  transition: transform .3s cubic-bezier(.16, .84, .28, 1), background-color .2s;
}

.lifestyle .jz-mobile-nav-caret:hover {
  background: rgba(206, 47, 33, .16);
}

.lifestyle .jz-mobile-nav-caret svg {
  width: 16px;
  height: 16px;
}

.lifestyle .jz-mobile-nav-caret[aria-expanded="true"] {
  transform: rotate(180deg);
}

/* 子選單：0fr → 1fr 讓高度可過渡，不必寫死 max-height */
.jz-mobile-sub {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .34s cubic-bezier(.16, .84, .28, 1);
}

.jz-mobile-sub.is-open {
  grid-template-rows: 1fr;
}

.jz-mobile-sub-inner {
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

.lifestyle .jz-mobile-nav-sub {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 15px;
  color: #4a2c22;
  letter-spacing: .06em;
  padding: 12px 2px 12px 14px;
  transition: color .2s, padding-left .2s;
}

/* 子項左側短橫線，hover 時延長並轉紅 */
.lifestyle .jz-mobile-nav-sub::before {
  content: '';
  width: 12px;
  height: 1px;
  background: rgba(122, 92, 74, .4);
  flex: 0 0 auto;
  transition: width .25s, background-color .2s;
}

.lifestyle .jz-mobile-nav-sub:hover {
  color: var(--jz-red);
}

.lifestyle .jz-mobile-nav-sub:hover::before {
  width: 20px;
  background: var(--jz-red);
}

@media (prefers-reduced-motion: reduce) {

  .mobile-nav-panel,
  .mobile-nav-panel nav>*,
  .jz-mobile-sub,
  .jz-mobile-nav-caret {
    transition: none;
  }
}

/* 搜尋覆蓋層 */
.search-overlay {
  position: fixed;
  inset: 0;
  z-index: 60;
  background: rgba(0, 0, 0, .5);
  padding: 96px 16px 0;
  display: none;
  flex-direction: column;
  align-items: center;
}

.search-overlay.is-open {
  display: flex;
}

.search-box {
  position: relative;
  width: 100%;
  max-width: 576px;
  background: #fff;
  border-radius: 16px;
  padding: 24px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, .2);
}

.search-close {
  position: absolute;
  right: 16px;
  top: 16px;
  border: 0;
  background: transparent;
  border-radius: 9999px;
  padding: 8px;
  cursor: pointer;
}

.search-close svg {
  width: 20px;
  height: 20px;
}

.search-title {
  font-size: 18px;
  font-weight: 500;
  margin: 0 0 16px;
}

.search-input {
  border: 1px solid var(--border);
  background: var(--stone-100);
  border-radius: 12px;
  padding: 12px 16px;
}

/* ---------- 區塊通用 ---------- */
.section {
  padding: 64px 0;
}

@media (min-width: 768px) {
  .section {
    padding: 96px 0;
  }
}

.bg-white {
  background: #fff;
}

.bg-stone {
  background: var(--stone-100);
}

.section-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 32px;
}

.section-title {
  font-size: 30px;
  margin: 0 0 8px;
}

@media (min-width: 768px) {
  .section-title {
    font-size: 36px;
  }
}

.section-eyebrow {
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: .025em;
  color: var(--muted-foreground);
  margin: 0;
}

/* ---------- Hero ---------- */
.hero-section {
  position: relative;
  height: 88vh;
  min-height: 520px;
  margin-top: -80px;
  overflow: hidden;
  background: var(--accent);
}

.hero-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity .5s ease;
}

.hero-slide.is-active {
  opacity: 1;
  pointer-events: auto;
}

.hero-slide>img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .9;
}

.hero-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(0, 0, 0, .4), transparent);
}

.hero-caption {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
}

.hero-caption-inner {
  max-width: 600px;
  color: #fff;
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .5s, transform .5s;
}

.hero-slide.is-active .hero-caption-inner {
  opacity: 1;
  transform: translateY(0);
}

.hero-caption h1 {
  font-size: 36px;
  line-height: 1.1;
  margin: 0 0 24px;
}

@media (min-width: 768px) {
  .hero-caption h1 {
    font-size: 60px;
    line-height: 1;
  }
}

.hero-caption p {
  font-size: 18px;
  color: rgba(255, 255, 255, .9);
  margin: 0 0 32px;
}

@media (min-width: 768px) {
  .hero-caption p {
    font-size: 20px;
  }
}

.hero-cta {
  display: inline-flex;
  align-items: center;
  background: #fff;
  border-radius: 9999px;
  overflow: hidden;
  transition: .3s;
}

.hero-cta:hover {
  box-shadow: 0 10px 30px rgba(0, 0, 0, .2);
}

.hero-cta-text {
  padding: 16px 32px;
  color: var(--foreground);
}

.hero-cta-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-left: 1px solid rgba(0, 0, 0, .1);
  color: var(--foreground);
  font-size: 20px;
  transition: background .2s;
}

.hero-cta:hover .hero-cta-icon {
  background: var(--accent);
}

.hero-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 9999px;
  background: rgba(255, 255, 255, .12);
  color: #fff;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  backdrop-filter: blur(4px);
  transition: .2s;
}

.hero-arrow:hover {
  background: rgba(255, 255, 255, .25);
}

.hero-arrow-prev {
  left: 16px;
}

.hero-arrow-next {
  right: 16px;
}

@media (min-width: 768px) {
  .hero-arrow-prev {
    left: 32px;
  }

  .hero-arrow-next {
    right: 32px;
  }
}

.hero-dots {
  position: absolute;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
}

.hero-dot {
  width: 8px;
  height: 8px;
  border: 0;
  border-radius: 9999px;
  background: rgba(255, 255, 255, .5);
  cursor: pointer;
  transition: .3s;
}

.hero-dot.is-current {
  background: #fff;
  width: 32px;
}

/* ---------- 商品卡 ---------- */
.product-card {
  display: block;
}

.product-card-media {
  position: relative;
  aspect-ratio: 4/3;
  overflow: hidden;
  border-radius: 8px;
  background: var(--accent);
  margin-bottom: 16px;
}

.product-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s;
}

.product-card:hover .product-card-media img {
  transform: scale(1.05);
}

.product-badges {
  position: absolute;
  left: 16px;
  top: 16px;
  display: flex;
  gap: 8px;
}

.badge-pill {
  background: var(--primary);
  color: #fff;
  font-size: 12px;
  padding: 4px 12px;
  border-radius: 9999px;
  letter-spacing: .02em;
}

.badge-pill.is-sale {
  background: #dc2626;
}

.quick-add {
  position: absolute;
  right: 16px;
  bottom: 16px;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 9999px;
  background: #fff;
  color: var(--foreground);
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(0, 0, 0, .15);
  opacity: 0;
  transition: .25s;
}

.product-card:hover .quick-add {
  opacity: 1;
}

.quick-add:hover {
  background: #000;
  color: #fff;
}

.product-cat {
  font-size: 12px;
  color: var(--muted-foreground);
  margin: 0 0 4px;
}

.product-name {
  font-size: 16px;
  margin: 0 0 8px;
}

.product-price {
  font-size: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.product-price .is-sale {
  color: #dc2626;
  font-weight: 500;
}

.product-price .price-old {
  color: rgba(10, 10, 10, .4);
  text-decoration: line-through;
  font-size: 12px;
}

/* ---------- 服務特色 ---------- */
.service-no {
  font-size: 12px;
  color: var(--muted-foreground);
  margin: 0 0 16px;
}

.service-title {
  font-size: 20px;
  margin: 0 0 16px;
}

.service-desc {
  font-size: 14px;
  line-height: 1.7;
  color: var(--muted-foreground);
  margin: 0;
}

/* ---------- 精選系列(bento) ---------- */
.collections-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

.collection-card {
  position: relative;
  overflow: hidden;
  border-radius: 8px;
  background: var(--accent);
  min-height: 250px;
  display: block;
}

.collection-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .7s;
  position: absolute;
  inset: 0;
}

.collection-card:hover img {
  transform: scale(1.05);
}

.collection-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, .7), rgba(0, 0, 0, .2), transparent);
}

.collection-text {
  position: absolute;
  inset: auto 0 0 0;
  padding: 32px;
  color: #fff;
}

.collection-text h3 {
  font-size: 24px;
  margin: 0 0 8px;
}

.collection-text p {
  font-size: 12px;
  color: rgba(255, 255, 255, .8);
  margin: 0 0 12px;
}

.collection-tall .collection-text h3,
.collection-wide .collection-text h3 {
  font-size: 30px;
}

.collection-tall .collection-text p,
.collection-wide .collection-text p {
  font-size: 14px;
}

.collection-link {
  font-size: 14px;
  display: inline-block;
  transition: transform .3s;
}

.collection-card:hover .collection-link {
  transform: translateX(8px);
}

.collection-tall {
  grid-row: span 2;
  min-height: 524px;
}

.collection-wide {
  grid-column: span 2;
  min-height: 300px;
}

@media (max-width: 767px) {
  .collections-grid {
    grid-template-columns: 1fr;
  }

  .collection-tall,
  .collection-wide {
    grid-row: auto;
    grid-column: auto;
    min-height: 280px;
  }
}

/* ---------- 顧客好評跑馬燈 ---------- */
.testimonial-viewport {
  overflow: hidden;
}

.testimonial-track {
  display: flex;
  gap: 24px;
  width: max-content;
  animation: ls-marquee 45s linear infinite;
}

.testimonial-track.is-paused {
  animation-play-state: paused;
}

@keyframes ls-marquee {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }
}

.testimonial-card {
  width: 300px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 12px;
  padding: 24px;
  box-shadow: 0 2px 20px rgba(0, 0, 0, .06);
}

.testimonial-stars {
  color: #fbbf24;
  letter-spacing: 2px;
  margin-bottom: 16px;
}

.testimonial-text {
  font-size: 14px;
  line-height: 1.7;
  color: var(--stone-600);
  flex: 1;
  margin: 0 0 24px;
}

.testimonial-author {
  display: flex;
  align-items: center;
  gap: 12px;
}

.testimonial-author img {
  width: 40px;
  height: 40px;
  border-radius: 9999px;
  object-fit: cover;
}

.ta-name {
  font-size: 14px;
  font-weight: 500;
  margin: 0;
}

.ta-role {
  font-size: 12px;
  color: var(--stone-500);
  margin: 0;
}

/* ---------- 品牌視差 ---------- */
.brand-story {
  position: relative;
  overflow: hidden;
  background: var(--stone-200);
}

.brand-parallax-bg {
  position: fixed;
  inset: 0;
  z-index: -1;
}

.brand-parallax-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.brand-shade {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .2);
}

.brand-story-inner {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  min-height: 80vh;
  padding: 0 24px 96px;
  text-align: center;
  color: #fff;
}

.brand-story-inner h2 {
  font-size: 36px;
  line-height: 1.1;
  margin: 0 0 16px;
}

@media (min-width: 768px) {
  .brand-story-inner {
    min-height: 100vh;
  }

  .brand-story-inner h2 {
    font-size: 60px;
    line-height: 1;
  }
}

@media (min-width: 992px) {
  .brand-story-inner h2 {
    font-size: 72px;
  }
}

.brand-story-inner p {
  font-size: 18px;
  color: rgba(255, 255, 255, .9);
  margin: 0;
}

@media (min-width: 768px) {
  .brand-story-inner p {
    font-size: 20px;
  }
}

/* ---------- 最新消息 ---------- */
.news-feature {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 8px;
  background: var(--stone-100);
  height: 100%;
}

.news-feature-media {
  height: 300px;
  overflow: hidden;
}

@media (min-width: 768px) {
  .news-feature-media {
    height: 400px;
  }
}

.news-feature-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .7s;
}

.news-feature:hover .news-feature-media img {
  transform: scale(1.05);
}

.news-feature-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 24px;
}

@media (min-width: 768px) {
  .news-feature-body {
    padding: 32px;
  }
}

.news-feature-body h3 {
  font-size: 24px;
  margin: 0 0 12px;
}

@media (min-width: 768px) {
  .news-feature-body h3 {
    font-size: 30px;
  }
}

.news-feature-body>p {
  font-size: 14px;
  line-height: 1.7;
  color: var(--muted-foreground);
  flex: 1;
  margin: 0 0 24px;
}

.news-feature-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-top: 1px solid var(--border);
  padding-top: 24px;
}

.news-author {
  display: flex;
  align-items: center;
  gap: 12px;
}

.news-author img {
  width: 40px;
  height: 40px;
  border-radius: 9999px;
  object-fit: cover;
}

.na-name {
  font-size: 14px;
  font-weight: 500;
  margin: 0;
}

.na-role {
  font-size: 12px;
  color: var(--muted-foreground);
  margin: 0;
}

.news-date {
  text-align: right;
  font-size: 12px;
  color: var(--muted-foreground);
}

.news-date p {
  margin: 0;
}

.news-side {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 16px;
  border-radius: 8px;
  transition: background .2s;
  margin-bottom: 8px;
}

@media (min-width: 576px) {
  .news-side {
    flex-direction: row;
  }
}

.news-side:hover {
  background: rgba(233, 235, 239, .3);
}

.news-side-media {
  height: 180px;
  overflow: hidden;
  border-radius: 8px;
  flex-shrink: 0;
}

@media (min-width: 576px) {
  .news-side-media {
    height: 128px;
    width: 192px;
  }
}

.news-side-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .7s;
}

.news-side:hover .news-side-media img {
  transform: scale(1.05);
}

.news-side-body h3 {
  font-size: 18px;
  margin: 0 0 8px;
}

.news-side-body p {
  font-size: 14px;
  line-height: 1.6;
  color: var(--muted-foreground);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ---------- Footer(金讚：紅底四欄，對齊設計稿) ---------- */
.lifestyle .jz-footer {
  background: var(--jz-red);
  color: #fff;
}

.jz-footer-top {
  padding-block: 72px 56px;
}

.lifestyle .jz-footer-logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 22px;
  color: #fff;
}

.jz-footer-logo img {
  width: 44px;
  height: 44px;
  display: block;
}

.jz-footer-logo span {
  font-family: "Noto Serif TC", "Songti TC", "PingFang TC", "Microsoft JhengHei", serif;
  font-weight: 600;
  font-size: 21px;
  letter-spacing: .14em;
}

.jz-footer-slogan {
  font-size: 16px;
  line-height: 2;
  letter-spacing: .06em;
  color: rgba(255, 255, 255, .92);
  margin: 0 0 26px;
}

.jz-footer-social {
  display: flex;
  gap: 12px;
}

.lifestyle .jz-footer-social a {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #fff;
  color: var(--jz-red);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: .25s;
}

.lifestyle .jz-footer-social a:hover {
  color: var(--jz-red-dark);
  transform: translateY(-3px);
}

.jz-footer-social svg {
  width: 20px;
  height: 20px;
}

.lifestyle .jz-footer-heading {
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  letter-spacing: .12em;
  margin: 12px 0 26px;
}

.jz-footer-contact,
.jz-footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
}

.jz-footer-contact li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  letter-spacing: .06em;
  margin-bottom: 18px;
}

.jz-footer-ico {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.jz-footer-ico svg {
  width: 18px;
  height: 18px;
  display: block;
}

.lifestyle .jz-footer-contact-link {
  color: #fff;
  letter-spacing: .06em;
  transition: opacity .2s;
}

.lifestyle .jz-footer-contact-link:hover {
  color: #fff;
  opacity: .75;
}

.jz-footer-links li {
  margin-bottom: 18px;
}

.lifestyle .jz-footer-links a {
  font-size: 16px;
  color: #fff;
  letter-spacing: .06em;
  transition: opacity .2s;
}

.lifestyle .jz-footer-links a:hover {
  color: #fff;
  opacity: .75;
}

.jz-footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, .28);
  padding: 18px 16px;
  text-align: center;
}

.jz-footer-bottom p {
  margin: 0;
  font-size: 12px;
  letter-spacing: .08em;
  color: rgba(255, 255, 255, .9);
}

@media (max-width: 767px) {
  .jz-footer-top {
    padding-block: 52px 40px;
  }
}

/* ---------- 登入 ---------- */
.login-wrap {
  display: flex;
  justify-content: center;
}

.login-card {
  width: 100%;
  max-width: 440px;
  background: #fff;
  border-radius: 16px;
  padding: 40px;
  box-shadow: 0 2px 30px rgba(0, 0, 0, .06);
}

.login-title {
  font-size: 28px;
  margin: 0 0 8px;
}

.login-sub {
  font-size: 14px;
  color: var(--muted-foreground);
  margin: 0 0 28px;
}

.login-form {
  display: flex;
  flex-direction: column;
}

.login-label {
  font-size: 13px;
  color: var(--foreground);
  margin-bottom: 6px;
}

.login-input {
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px 14px;
  margin-bottom: 18px;
}

.login-input:focus {
  outline: none;
  border-color: var(--foreground);
  box-shadow: none;
}

.login-submit {
  width: 100%;
  margin-top: 4px;
}

.login-links {
  display: flex;
  justify-content: space-between;
  margin-top: 18px;
  font-size: 13px;
}

.login-links a {
  color: var(--muted-foreground);
}

.login-links a:hover {
  color: var(--foreground);
}

.login-divider {
  display: flex;
  align-items: center;
  text-align: center;
  color: var(--muted-foreground);
  font-size: 12px;
  margin: 22px 0;
}

.login-divider::before,
.login-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--border);
}

.login-divider span {
  padding: 0 12px;
}

/* ---------- 錯誤頁 / 佔位 ---------- */
.error-page {
  min-height: calc(100vh - 80px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 64px 24px;
}

.error-inner {
  max-width: 520px;
  text-align: center;
}

.error-code {
  font-size: 72px;
  line-height: 1;
  font-weight: 600;
  letter-spacing: -.02em;
  color: rgba(10, 10, 10, .9);
  margin: 0 0 16px;
}

@media (min-width: 768px) {
  .error-code {
    font-size: 96px;
  }
}

.error-title {
  font-size: 24px;
  font-weight: 500;
  margin: 0 0 16px;
}

@media (min-width: 768px) {
  .error-title {
    font-size: 30px;
  }
}

.error-desc {
  color: var(--muted-foreground);
  line-height: 1.7;
  margin: 0 0 32px;
}

.error-actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: stretch;
  justify-content: center;
}

@media (min-width: 576px) {
  .error-actions {
    flex-direction: row;
  }
}

.error-foot {
  margin-top: 32px;
  font-size: 14px;
  color: var(--muted-foreground);
}

.error-foot a {
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ============================================================
   金讚鱸魚湯 — 品牌標頭 + 首頁 Hero
   ============================================================ */
:root {
  --jz-red: #CE2F21;
  --jz-red-dark: #a5301f;
  --jz-ink: #4a2c22;
  --jz-title: #4E170A;
}

/* 首頁區塊輪播的左右箭頭：桌機 Swiper 不初始化,一律隱藏 */
.jz-why-swiper .swiper-button-prev,
.jz-why-swiper .swiper-button-next,
.jz-who-swiper .swiper-button-prev,
.jz-who-swiper .swiper-button-next,
.jz-products-swiper .swiper-button-prev,
.jz-products-swiper .swiper-button-next,
.jz-reviews-swiper .swiper-button-prev,
.jz-reviews-swiper .swiper-button-next {
  display: none;
}

@media (max-width: 767px) {

  .jz-why-swiper .swiper-button-prev,
  .jz-why-swiper .swiper-button-next,
  .jz-who-swiper .swiper-button-prev,
  .jz-who-swiper .swiper-button-next,
  .jz-products-swiper .swiper-button-prev,
  .jz-products-swiper .swiper-button-next,
  .jz-reviews-swiper .swiper-button-prev,
  .jz-reviews-swiper .swiper-button-next {
    display: flex;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--jz-title);
    box-shadow: 0 4px 14px rgba(78, 23, 10, .12);
    color: #fff;
    margin-top: 0;
    transform: translateY(-50%);
  }

  .jz-why-swiper .swiper-button-prev::after,
  .jz-why-swiper .swiper-button-next::after,
  .jz-who-swiper .swiper-button-prev::after,
  .jz-who-swiper .swiper-button-next::after,
  .jz-products-swiper .swiper-button-prev::after,
  .jz-products-swiper .swiper-button-next::after,
  .jz-reviews-swiper .swiper-button-prev::after,
  .jz-reviews-swiper .swiper-button-next::after {
    font-size: 16px;
    font-weight: 700;
  }

  .jz-why-swiper .swiper-button-disabled,
  .jz-who-swiper .swiper-button-disabled,
  .jz-products-swiper .swiper-button-disabled,
  .jz-reviews-swiper .swiper-button-disabled {
    opacity: .35;
  }
}

/* 導覽靠右,與帳號/購物車/聯絡我們群組在一起(對齊設計稿) */
.lifestyle .header-nav {
  margin-left: auto;
  margin-right: 24px;
  gap: 25px;
}

.lifestyle .header-nav-link {
  font-family: "Noto Serif TC", "Songti TC", "PingFang TC", "Microsoft JhengHei", serif;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: .10em;
}

/* 「全部商品」子分類下拉（一層） */
.jz-nav-caret {
  margin-left: 6px;
  font-size: 10px;
  vertical-align: middle;
}

.jz-nav-sub {
  position: absolute;
  left: 50%;
  top: 100%;
  transform: translateX(-50%);
  margin: 0;
  padding: 8px 0;
  min-width: 160px;
  list-style: none;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 8px 28px rgba(0, 0, 0, .12);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: .2s;
  z-index: 60;
}

.jz-nav-has-sub:hover .jz-nav-sub {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.lifestyle .jz-nav-sub a {
  display: block;
  padding: 8px 20px;
  white-space: nowrap;
  font-size: 14px;
  letter-spacing: .06em;
  color: var(--jz-ink);
}

.lifestyle .jz-nav-sub a:hover {
  background: var(--stone-100);
  color: var(--jz-red);
}

/* 帳號/購物車:紅底圓 + 白色 icon(對齊設計稿) */
.lifestyle .jz-icon-btn {
  width: 38px;
  height: 38px;
  padding: 0;
  align-items: center;
  justify-content: center;
  background: var(--jz-red);
  border-radius: 9999px;
  color: #fff;
}

.lifestyle .jz-icon-btn svg {
  width: 19px;
  height: 19px;
  color: #fff;
}

.lifestyle .jz-icon-btn:hover {
  background: var(--jz-red-dark);
  color: #fff;
}

.lifestyle .site-header.is-transparent .jz-icon-btn,
.lifestyle .site-header.is-transparent .jz-icon-btn:hover {
  color: #fff;
}

/* 漢堡三條線：展開時上下線交叉成 X、中線淡出 */
.lifestyle .header-burger .jz-burger-lines {
  position: relative;
  display: block;
  width: 18px;
  height: 14px;
}

.lifestyle .header-burger .jz-burger-lines span {
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  background: #fff;
  border-radius: 2px;
  transition: transform .32s cubic-bezier(.16, .84, .28, 1), opacity .2s ease;
}

.lifestyle .header-burger .jz-burger-lines span:nth-child(1) {
  top: 0;
}

.lifestyle .header-burger .jz-burger-lines span:nth-child(2) {
  top: 6px;
}

.lifestyle .header-burger .jz-burger-lines span:nth-child(3) {
  top: 12px;
}

.lifestyle .header-burger[aria-expanded="true"] .jz-burger-lines span:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
}

.lifestyle .header-burger[aria-expanded="true"] .jz-burger-lines span:nth-child(2) {
  opacity: 0;
  transform: scaleX(.4);
}

.lifestyle .header-burger[aria-expanded="true"] .jz-burger-lines span:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
}

/* 購物車數量標記 */
.lifestyle .jz-cart-btn {
  position: relative;
}

.jz-cart-badge {
  position: absolute;
  top: -4px;
  right: -6px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  color: var(--jz-red);
  border: 1px solid var(--jz-red);
  border-radius: 9999px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
}

/* 聯絡我們按鈕內的餐具 icon */
.jz-contact-ico {
  width: 16px;
  height: 16px;
  margin-left: 6px;
  flex: 0 0 auto;
}

/* 品牌 Logo(紅底魚徽章 + 品牌字) */
.lifestyle .jz-logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.jz-logo-badge {
  width: 42px;
  height: 42px;
  border-radius: 9999px;
  flex: 0 0 auto;
  display: block;
  box-shadow: 0 4px 12px rgba(192, 57, 43, .28);
}

.jz-logo-text {
  font-family: "Noto Serif TC", "Songti TC", "PingFang TC", "Microsoft JhengHei", serif;
  font-weight: 700;
  letter-spacing: .08em;
}

/* 淺色 hero:透明態標頭文字色(依設計稿取樣:LOGO 近黑、選單暖棕紅) */
.lifestyle .site-header.is-transparent .header-logo,
.lifestyle .site-header.is-transparent .jz-logo-text {
  color: #201a16;
}

.lifestyle .site-header.is-transparent .header-nav-link,
.lifestyle .site-header.is-transparent .header-icon-btn {
  color: #6a3a2e;
}

.lifestyle .site-header.is-transparent .header-nav-link:hover,
.lifestyle .site-header.is-transparent .header-icon-btn:hover {
  color: var(--jz-red);
}

/* 捲動後標頭收合:高度縮短、LOGO 與品牌字縮小 */
.lifestyle .header-inner,
.lifestyle .header-logo,
.lifestyle .jz-logo-badge {
  transition: height .3s ease, font-size .3s ease, width .3s ease;
}

.lifestyle .site-header.is-solid .header-inner {
  height: 56px;
}

.lifestyle .site-header.is-solid .header-logo {
  font-size: 17px;
}

.lifestyle .site-header.is-solid .jz-logo-badge {
  width: 32px;
  height: 32px;
}

@media (min-width: 768px) {
  .lifestyle .site-header.is-solid .header-inner {
    height: 60px;
  }

  .lifestyle .site-header.is-solid .header-logo {
    font-size: 19px;
  }

  .lifestyle .site-header.is-solid .jz-logo-badge {
    width: 36px;
    height: 36px;
  }
}

/* 聯絡我們按鈕 */
.lifestyle .jz-contact-btn {
  display: inline-flex;
  align-items: center;
  background: var(--jz-red);
  color: #fff;
  padding: 9px 22px;
  border-radius: 9999px;
  font-size: 14px;
  letter-spacing: .06em;
  transition: .25s;
  white-space: nowrap;
  font-weight: 600;
}

.lifestyle .jz-contact-btn:hover {
  background: var(--jz-red-dark);
  color: #fff;
}

@media (max-width: 767px) {
  .lifestyle .jz-contact-btn {
    display: none;
  }
}

/* Hero 主視覺 */
.lifestyle .jz-hero {
  position: relative;
  height: 100vh;
  margin-top: -80px;
  padding-top: 80px;
  display: flex;
  overflow: hidden;
}

.jz-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: url('../img/home-bg-01.webp') center top / cover no-repeat;
}

.jz-hero-inner {
  position: relative;
  z-index: 3;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding-top: clamp(24px, 6vh, 96px);
}

.jz-hero-copy {
  max-width: 820px;
  padding-top: 50px;
}

.lifestyle .jz-hero-title {
  font-family: "Noto Serif TC", "Songti TC", "PingFang TC", "Microsoft JhengHei", serif;
  font-weight: 600;
  color: var(--jz-title);
  font-size: 48px;
  letter-spacing: .04em;
  line-height: 1.4;
  margin: 0 0 28px;
}

.jz-hero-sub {
  margin: 0 0 46px;
}

.jz-hero-bowl {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  z-index: 2;
  width: min(760px, 82vw);
  margin: 0;
  filter: drop-shadow(0 30px 42px rgba(60, 40, 30, .28));
}

.jz-hero-bowl img {
  width: 100%;
  display: block;
}

/* 外層 span 負責定位與 AOS 進場，內層 img 負責常駐飄動，兩層各自佔用 transform 才不會互相覆蓋 */
.jz-hero-smoke {
  position: absolute;
  z-index: 1;
  pointer-events: none;
  display: block;
}

.jz-hero-smoke img {
  width: 100%;
  height: auto;
  display: block;
}

/* 左 hero-04:近垂直、略斜 */
.jz-smoke-1 {
  top: 19%;
  left: 6%;
  max-width: 19% !important;
  z-index: 3;
}

.jz-smoke-1 img {
  opacity: .5;
  transform: rotate(135deg);
}

/* 中 hero-02:最大那團,自然方向(大捲在上、尾巴往下),從碗升起 */
.jz-smoke-2 {
  top: -1%;
  left: 34%;
  width: 28%;
  z-index: 3;
}

.jz-smoke-2 img {
  opacity: .42;
}

/* 右 hero-03:斜向右上飄 */
.jz-smoke-3 {
  top: 13%;
  right: 7%;
  max-width: 18%;
  z-index: 3;
}

.jz-smoke-3 img {
  opacity: .5;
  transform: rotate(52deg);
}

/* 寬螢幕：碗的位置相對下移，蒸氣跟著往下才不會壓到標題 */
@media (min-width: 1500px) {
  .jz-smoke-1 {
    top: 28%;
  }

  .jz-smoke-2 {
    top: 8%;
  }

  .jz-smoke-3 {
    top: 22%;
  }
}

@media (max-width: 767px) {
  .lifestyle .jz-hero {
    flex-direction: column;
    padding-bottom: 0;
  }

  .jz-hero-inner {
    flex: 0 0 auto;
  }

  /* 碗吃掉剩餘高度並靠底,讓 hero 撐滿 100vh */
  .jz-hero-bowl {
    position: static;
    left: auto;
    bottom: auto;
    transform: none;
    width: 96vw;
    margin: auto auto 0;
  }

  .jz-smoke-1 {
    top: 57%;
    left: -2%;
    z-index: 3;
  }

  .jz-smoke-2 {
    top: 40%;
    left: 18%;
    width: 50%;
    z-index: 3;
  }

  .jz-smoke-3 {
    top: 52%;
    right: -9%;
    max-width: 30%;
  }
}

/* hero 文字區塊：768 以下（含 768）縮小上距 */
@media (max-width: 768px) {
  .lifestyle .jz-hero {
    margin-top: -64px;
  }

  .lifestyle .jz-hero-title {
    font-size: 42px;
  }

  .jz-hero-copy {
    padding-top: 0;
  }

  .lifestyle .jz-hero-copy .jz-cta {
    margin-top: 0;
  }
}

/* ============================================================
   金讚鱸魚湯 — 品牌故事區(一碗湯的背後)
   ============================================================ */
.lifestyle .jz-story {
  position: relative;
  overflow: hidden;
  padding: 350px 24px 160px;
  background: url('../img/home-bg-02.webp') center / cover no-repeat;
}

/* 四角水彩插圖：外層 span 定位 + AOS 進場，內層 img 常駐浮動 */
.jz-story-deco {
  position: absolute;
  z-index: 1;
  pointer-events: none;
  height: auto;
  display: block;
}

.jz-story-deco img {
  width: 100%;
  height: auto;
  display: block;
}

.jz-deco-tl {
  top: 5%;
  left: 0;
  width: 31%;
}

.jz-deco-tr {
  top: 4%;
  right: 0;
  width: 24%;
}

.jz-deco-bl {
  bottom: 4%;
  left: 0;
  width: 20%;
}

.jz-deco-br {
  bottom: 4%;
  right: 0;
  width: 33%;
}

/* 中央文案 */
.jz-story-inner {
  position: relative;
  z-index: 2;
  max-width: 680px;
  margin: 0 auto;
  text-align: center;
}

.jz-eyebrow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  color: var(--jz-red);
  font-size: 18px;
  letter-spacing: .12em;
  margin: 0 0 18px;
}

.jz-eyebrow::before,
.jz-eyebrow::after {
  content: '';
  width: 34px;
  height: 1px;
  background: var(--jz-red);
  opacity: .7;
}

.jz-story-body p {
  margin: 0 0 6px;
}

.jz-story .jz-cta {
  margin-top: 40px;
}

@media (max-width: 1499px) {
  .jz-deco-tr {
    width: 33%;
  }
}

@media (max-width: 1199px) {
  .lifestyle .jz-story {
    padding: 210px 24px 160px;
  }
}

@media (max-width: 991px) {
  .jz-deco-tl {
    width: 30%;
  }

  .jz-deco-tr {
    width: 26%;
  }

  .jz-deco-bl {
    width: 24%;
  }

  .jz-deco-br {
    width: 32%;
  }
}

@media (max-width: 767px) {
  .lifestyle .jz-story {
    padding: 90% 20px 90%;
  }

  .jz-deco-tl {
    top: 0;
    left: -55px;
    width: 100%;
  }

  .jz-deco-tr {
    display: none;
  }

  .jz-deco-bl {
    bottom: 8%;
    left: -50px;
    width: 56%;
  }

  .jz-deco-br {
    bottom: 0;
    right: -57px;
    width: 75%;
  }
}

/* ============================================================
   金讚鱸魚湯 — 通用區塊標題(襯線大標)
   ============================================================ */
.lifestyle .jz-section-title {
  font-family: "Noto Serif TC", "Songti TC", "PingFang TC", "Microsoft JhengHei", serif;
  font-weight: 600;
  color: var(--jz-title);
  font-size: 38px;
  letter-spacing: .04em;
  line-height: 1.4;
  text-align: center;
  margin: 0 0 77px;
}

@media (max-width: 767px) {
  .lifestyle .jz-section-title {
    margin: 0 0 20px;
    padding: 0 0 20px;
  }
}

/* 通用內文文字(首頁各區塊內文共用) */
.lifestyle .jz-body-text,
.lifestyle .jz-body-text p {
  font-size: 18px;
  color: #404040;
  line-height: 2;
  letter-spacing: .04em;
  position: relative;
}

/* 通用紅色膠囊 CTA(hero / story / 商品區共用) */
.lifestyle .jz-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--jz-red);
  color: #fff;
  padding: 12px 32px;
  border-radius: 9999px;
  font-size: 16px;
  letter-spacing: .06em;
  transition: .25s;
  font-weight: 600;
}

.lifestyle .jz-cta:hover {
  background: var(--jz-red-dark);
  color: #fff;
  transform: translateY(-2px);
}

.jz-cta span {
  transition: transform .25s;
}

.lifestyle .jz-cta:hover span {
  transform: translateX(4px);
}

/* ============================================================
   金讚鱸魚湯 — 四道嚴格工序
   ============================================================ */
.lifestyle .jz-steps {
  padding: 100px 0 0;
  background: url('../img/home-bg-03.webp') center top / cover no-repeat;
}

.jz-steps-inner {
  margin: 0 auto;
}

.lifestyle .jz-steps-title {
  padding-left: 20px;
  padding-right: 20px;
}

.jz-steps-row {
  margin-top: 100px;
}

.jz-step-card {
  display: flex;
  align-items: stretch;
  height: 100%;
  background: #fff;
  box-shadow: 0 6px 22px rgba(78, 23, 10, .06);
}

.jz-step-photo {
  flex: 0 0 46%;
}

.jz-step-photo img {
  width: 100%;
  height: 100%;
  aspect-ratio: 16 / 11;
  object-fit: cover;
  display: block;
}

.jz-step-text {
  flex: 1;
  padding: 30px 28px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.jz-step-num {
  font-family: "Noto Serif TC", "Songti TC", "PingFang TC", "Microsoft JhengHei", serif;
  font-weight: 700;
  font-size: 26px;
  color: var(--jz-red);
  letter-spacing: .12em;
  line-height: 1;
  margin-bottom: 16px;
}

.lifestyle .jz-step-title {
  font-size: 24px;
  font-weight: 700;
  color: var(--jz-ink);
  letter-spacing: .08em;
  margin: 0 0 12px;
}

.jz-step-text p {
  margin: 0;
}

@media (max-width: 767px) {
  .lifestyle .jz-steps {
    padding: 64px 0 0;
  }

  .jz-steps-row {
    margin-top: 50px;
  }

  .jz-step-card {
    flex-direction: column;
    height: auto;
  }

  .jz-step-photo img {
    height: auto;
    aspect-ratio: 16 / 14;
  }
}

/* ============================================================
   金讚鱸魚湯 — 為什麼選鱸魚
   ============================================================ */
.lifestyle .jz-why {
  padding: 150px 0 100px;
  background: url('../img/home-bg-03.webp') center bottom / cover no-repeat;
}

.jz-why-inner {
  margin: 0 auto;
  text-align: center;
}

.jz-section-lead {
  margin: -18px auto 100px;
  text-align: center;
  max-width: 1000px;
  font-size: 18px;
}

@media (max-width: 991px) {
  .jz-section-lead {
    margin-bottom: 0;
  }
}

.jz-why-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 100%;
}

.jz-why-icon {
  width: 200px;
  height: 200px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 6px 20px rgba(78, 23, 10, .08);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 26px;
}

.jz-why-icon img {
  width: 80%;
  object-fit: contain;
}

.lifestyle .jz-why-title {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 20px;
  font-weight: 700;
  color: var(--jz-ink);
  letter-spacing: .08em;
  margin: 0 0 12px;
}

.jz-why-check {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--jz-red);
  position: relative;
  flex: 0 0 auto;
}

.jz-why-check::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 4px;
  margin: auto;
  width: 7px;
  height: 10px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.jz-why-item p {
  max-width: 250px;
  margin: 0;
}

/* 桌機:Swiper 不初始化,用 flex 還原三欄格線 */
.jz-why-swiper .swiper-wrapper {
  flex-wrap: wrap;
}

.jz-why-swiper .swiper-slide {
  width: 33.3333%;
  height: auto;
  padding: 0 12px;
  margin-bottom: 48px;
}

/* 767 以下由 JS 初始化 Swiper,還原單列滑動 */
@media (max-width: 767px) {
  .jz-why-swiper .swiper-wrapper {
    flex-wrap: nowrap;
  }

  .jz-why-swiper .swiper-slide {
    width: auto;
    padding: 0;
    margin-bottom: 0;
  }
}

@media (max-width: 575px) {
  .lifestyle .jz-why {
    padding: 64px 20px 72px;
  }

  .jz-why .jz-section-lead {
    margin-bottom: 48px;
  }
}

/* ============================================================
   金讚鱸魚湯 — 食安把關(SGS 檢驗)
   ============================================================ */
.lifestyle .jz-sgs {
  padding: 96px 0;
}

.jz-sgs-photo img {
  width: 100%;
  display: block;
}

.jz-eyebrow-left {
  justify-content: flex-start;
}

.jz-eyebrow-left::after {
  display: none;
}

.lifestyle .jz-title-left {
  text-align: left;
  margin-bottom: 26px;
}

.jz-sgs-text {
  max-width: 520px;
  margin: 0;
}

@media (max-width: 767px) {
  .lifestyle .jz-sgs {
    padding: 64px 0;
  }
}

/* ============================================================
   金讚鱸魚湯 — 哪些人適合喝(六種生活情境)
   ============================================================ */
.lifestyle .jz-who {
  position: relative;
  overflow: hidden;
  padding: 96px 0 100px;
  background: url('../img/contact-bg-02.webp') center bottom / contain no-repeat;
}

.jz-who-deco {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  height: auto;
}

.jz-who-deco-bowl {
  top: 2%;
  left: 24px;
  width: 17%;
}

.jz-who-deco-fish {
  top: 6%;
  right: 0;
  width: 20%;
}

.jz-who-head {
  position: relative;
  z-index: 1;
  margin: 0 auto;
  padding: 0 24px;
  text-align: center;
}

.jz-who-head .jz-section-title {
  margin-left: auto;
  margin-right: auto;
}

.jz-who-row+.jz-who-row {
  margin-top: 0;
}

.jz-who-photo {
  height: 100%;
}

.jz-who-photo img {
  width: 100%;
  height: 100%;
  min-height: 340px;
  object-fit: cover;
  display: block;
  aspect-ratio: 16 / 9;
}

.jz-who-text {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 48px clamp(28px, 6vw, 96px);
}

.lifestyle .jz-who-label {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 20px;
  font-weight: 700;
  color: var(--jz-ink);
  letter-spacing: .1em;
  margin: 0 0 20px;
}

.jz-who-label::before {
  content: '';
  width: 34px;
  height: 1px;
  background: var(--jz-red);
  opacity: .7;
}

.jz-who-text p {
  margin: 0 0 18px;
}

.jz-who-tip {
  display: flex;
  gap: 8px;
}

.jz-who-text p.jz-who-tip {
  margin-bottom: 0;
}

.jz-who-star {
  color: var(--jz-red);
  flex: 0 0 auto;
}

@media (max-width: 1499px) {
  .jz-who-deco-bowl {
    top: 0;
    left: 24px;
    width: 16%;
  }

  .jz-who-deco-fish {
    top: 11%;
    right: 0;
    width: 15%;
  }
}

@media (max-width: 991px) {
  .jz-who-text {
    padding: 36px 24px 44px;
  }

  .jz-who-head .jz-section-lead {
    margin-bottom: 40px;
  }
}

@media (max-width: 767px) {
  .lifestyle .jz-who {
    padding-top: 43%;
  }

  .jz-who-deco-bowl {
    top: 1%;
    left: -35px;
    width: 45%;
  }

  .jz-who-deco-fish {
    top: 0;
    right: -57px;
    width: 50%;
  }
}

/* 桌機:Swiper 不初始化,每位對象各佔一整列 */
.jz-who-swiper {
  position: relative;
  z-index: 1;
}

.jz-who-swiper .swiper-wrapper {
  flex-wrap: wrap;
}

.jz-who-swiper .swiper-slide {
  width: 100%;
  height: auto;
}

@media (max-width: 767px) {
  .jz-who-swiper .swiper-wrapper {
    flex-wrap: nowrap;
  }

  .jz-who-swiper .swiper-slide {
    width: auto;
  }

  /* 箭頭壓在照片上（照片 min-height 340px 的垂直中心） */
  .jz-who-swiper .swiper-button-prev,
  .jz-who-swiper .swiper-button-next {
    top: 170px;
  }

  .jz-who-swiper .swiper-button-prev {
    left: 12px;
  }

  .jz-who-swiper .swiper-button-next {
    right: 12px;
  }
}

/* ============================================================
   金讚鱸魚湯 — 我們的商品(三款湯品)
   ============================================================ */
/* 我們的商品＋顧客怎麼說 共用背景 */
.lifestyle .jz-products-reviews-wrap {
  background: url('../img/home-bg-05.webp') center bottom / cover no-repeat;
}

.lifestyle .jz-products {
  padding: 96px 0 110px;
}

.jz-product-card {
  height: 100%;
  display: flex;
  flex-direction: column;
}

.jz-product-img {
  background: #fff;
}

.jz-product-img img {
  width: 100%;
  display: block;
}

.lifestyle .jz-product-name {
  font-family: "Noto Serif TC", "Songti TC", "PingFang TC", "Microsoft JhengHei", serif;
  font-size: 24px;
  font-weight: 700;
  color: var(--jz-ink);
  letter-spacing: .08em;
  margin: 26px 0 0;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(122, 92, 74, .28);
}

.jz-product-price {
  font-size: 20px;
  font-weight: 700;
  color: var(--jz-ink);
  letter-spacing: .06em;
  margin: 16px 0 12px;
}

.jz-price-original {
  text-decoration: line-through;
  color: #a09085;
  font-weight: 400;
  margin-right: 8px;
}

.jz-product-desc {
  flex: 1;
  margin: 0 0 18px;
}

.lifestyle .jz-product-more {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 16px;
  color: var(--jz-red);
  letter-spacing: .06em;
  font-weight: 600;
}

.lifestyle .jz-product-more:hover {
  color: var(--jz-red-dark);
}

.jz-products-more {
  text-align: center;
  margin-top: 64px;
}

/* 桌機:Swiper 不初始化,用 flex 還原三欄格線 */
.jz-products-swiper .swiper-wrapper {
  flex-wrap: wrap;
  justify-content: center;
}

.jz-products-swiper .swiper-slide {
  width: 33.3333%;
  height: auto;
  padding: 0 12px;
  margin-bottom: 24px;
}

@media (max-width: 767px) {
  .lifestyle .jz-products {
    padding: 64px 0 72px;
  }

  .jz-products-swiper .swiper-wrapper {
    flex-wrap: nowrap;
    justify-content: flex-start;
  }

  .jz-products-swiper .swiper-slide {
    width: auto;
    padding: 0;
    margin-bottom: 0;
  }
}

/* ============================================================
   金讚鱸魚湯 — 顧客怎麼說(顧客評價)
   ============================================================ */
.lifestyle .jz-reviews {
  padding: 0 0 110px;
}

.jz-review-card {
  height: 100%;
  background: #fff;
  box-shadow: 0 6px 22px rgba(78, 23, 10, .06);
}

.jz-review-photo img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: contain;
  display: block;
}

.jz-review-body {
  padding: 50px 25px;
  position: relative;
}

.jz-review-quote {
  display: block;
  width: fit-content;
  line-height: 1;
  margin-bottom: 8px;
  position: absolute;
  top: -15px;
}

.lifestyle .jz-review-name {
  font-size: 20px;
  font-weight: 500;
  color: var(--jz-ink);
  letter-spacing: .08em;
  margin: 0 0 14px;
}

.jz-review-body p {
  margin: 0;
}

/* 桌機:Swiper 不初始化,用 flex 還原兩欄格線 */
.jz-reviews-swiper .swiper-wrapper {
  flex-wrap: wrap;
}

.jz-reviews-swiper .swiper-slide {
  width: 50%;
  height: auto;
  padding: 0 12px;
  margin-bottom: 24px;
}

@media (max-width: 767px) {
  .lifestyle .jz-reviews {
    padding: 64px 0 0;
  }

  .jz-block {
    padding: 0;
  }

  .jz-reviews-swiper .swiper-wrapper {
    flex-wrap: nowrap;
  }

  .jz-reviews-swiper .swiper-slide {
    width: auto;
    padding: 0;
    margin-bottom: 0;
  }
}

/* ============================================================
   金讚鱸魚湯 — 聯絡我們：找到我們（地址/電話/LINE/營業時間 + 地圖）
   ============================================================ */
.lifestyle .jz-contact-hero {
  padding: 96px 0 110px;
  background: url('../img/contact-bg-01.webp') center top / cover no-repeat;
}

.lifestyle .jz-contact-title {
  margin-bottom: 30px;
}

.jz-find-row {
  margin-top: 24px;
}

.jz-contact-list {
  list-style: none;
  padding: 0;
  margin: 0;
  font-weight: 600;
}

.jz-contact-list li+li {
  margin-top: 28px;
}

.lifestyle .jz-contact-label {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 20px;
  font-weight: 700;
  color: var(--jz-ink);
  letter-spacing: .1em;
  margin: 0 0 10px;
}

.jz-contact-badge {
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--jz-red);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.jz-contact-badge svg {
  width: 13px;
  height: 13px;
}

.jz-contact-list p {
  font-size: 16px;
  color: #4a2c22;
  line-height: 1.9;
  letter-spacing: .05em;
  margin: 0;
}

.lifestyle .jz-contact-list a {
  color: #4a2c22;
  transition: color .2s;
}

.lifestyle .jz-contact-list a:hover {
  color: var(--jz-red);
}

.jz-map-frame {
  aspect-ratio: 4 / 3;
  background: #fff;
  box-shadow: 0 6px 22px rgba(78, 23, 10, .1);
}

.jz-map-frame iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.lifestyle .jz-map-cta {
  margin-top: 28px;
}

@media (max-width: 991px) {
  .lifestyle .jz-contact-hero {
    padding: 96px 0 0;
  }

  .lifestyle .jz-map-cta {
    display: block;
    width: fit-content;
    margin: 28px auto 0;
  }
}

@media (max-width: 767px) {
  .lifestyle .jz-contact-hero {
    padding: 64px 0 0;
  }
}

/* ============================================================
   金讚鱸魚湯 — 聯絡我們：歡迎來店裡坐坐
   ============================================================ */
.lifestyle .jz-visit {
  padding: 96px 0 110px;
  background: #fff url('../img/contact-bg-02.webp') center bottom / cover no-repeat;
}

.lifestyle .jz-visit-title,
.lifestyle .jz-find-title,
.lifestyle .jz-menu-title,
.lifestyle .jz-faq-title {
  display: inline-block;
  font-family: "Noto Serif TC", "Songti TC", "PingFang TC", "Microsoft JhengHei", serif;
  font-weight: 600;
  color: var(--jz-title);
  font-size: 30px;
  letter-spacing: .06em;
  margin: 0 0 24px;
}

.jz-visit-body p {
  font-size: 18px;
  color: #404040;
  line-height: 2.1;
  letter-spacing: .04em;
  margin: 0 0 8px;
}

.jz-visit-features {
  list-style: none;
  padding: 0;
  margin: 28px 0 0;
}

.jz-visit-features li {
  display: flex;
  align-items: center;
  gap: 14px;
}

.jz-visit-features li+li {
  margin-top: 18px;
}

.jz-visit-ico {
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--jz-red);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.jz-visit-ico svg {
  width: 19px;
  height: 19px;
}

.jz-visit-ico img {
  width: 20px;
  height: 20px;
  object-fit: contain;
}

.jz-visit-features p {
  font-size: 18px;
  color: #404040;
  line-height: 1.3;
  letter-spacing: .04em;
  margin: 4px 0 0;
}

.jz-visit-features strong {
  font-weight: 700;
  color: var(--jz-ink);
}

@media (max-width: 767px) {
  .lifestyle .jz-visit {
    padding: 64px 0 0;
  }
}

/* ============================================================
   金讚鱸魚湯 — 聯絡我們：通用輪播（店面照片 / 店內菜單）
   ============================================================ */
.jz-carousel {
  position: relative;
}

.jz-carousel-viewport {
  overflow: hidden;
}

.jz-carousel-track {
  display: flex;
  transition: transform .45s ease;
}

.jz-carousel-item {
  flex: 0 0 100%;
  min-width: 0;
}

.lifestyle .jz-carousel-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 50%;
  background: var(--jz-title);
  color: #fff;
  font-size: 15px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 6px 16px rgba(78, 23, 10, .25);
  transition: .2s;
}

.lifestyle .jz-carousel-arrow:hover {
  filter: brightness(1.35);
}

.jz-carousel-prev {
  left: -16px;
}

.jz-carousel-next {
  right: -16px;
}

/* jz-reveal 動畫的結束狀態是 clip-path: inset(0 0 0 0)，會沿 border-box 裁掉掛在容器外緣的
   左右箭頭（left/right: -16px 再加陰影），故左右各留 40px 不裁切的餘裕 */
.jz-carousel[data-aos="jz-reveal-left"] {
  clip-path: inset(0 -40px 0 28%);
}

.jz-carousel[data-aos="jz-reveal-left"].aos-animate {
  clip-path: inset(0 -40px 0 -40px);
}

.jz-carousel-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 16px;
}

.lifestyle .jz-carousel-dot {
  width: 8px;
  height: 8px;
  padding: 0;
  border: 0;
  border-radius: 9999px;
  background: rgba(78, 23, 10, .25);
  cursor: pointer;
  transition: .3s;
}

.lifestyle .jz-carousel-dot.is-current {
  width: 32px;
  background: var(--jz-title);
}

.jz-visit-photo {
  background: #fff;
  padding: 10px;
  box-shadow: 0 6px 22px rgba(78, 23, 10, .1);
}

.jz-visit-photo img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}

@media (max-width: 575px) {
  .jz-carousel-prev {
    left: 8px;
  }

  .jz-carousel-next {
    right: 8px;
  }
}

/* ============================================================
   金讚鱸魚湯 — 聯絡我們：店內菜單（湯品/飯類）
   ============================================================ */
.lifestyle .jz-menu {
  padding: 96px 0 110px;
  background: url('../img/contact-bg-03.webp') center top / cover no-repeat;
}

.lifestyle .jz-menu-title,
.lifestyle .jz-faq-title {
  display: block;
  text-align: center;
  margin-bottom: 30px;
}

.jz-menu-note {
  max-width: 640px;
  margin: 0 auto 40px;
  font-size: 18px;
  color: #404040;
  line-height: 2;
  letter-spacing: .04em;
  text-align: center;
}

.jz-menu-tabs {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 26px;
  margin-bottom: 48px;
}

.lifestyle .jz-menu-tab {
  border: 0;
  background: transparent;
  padding: 4px 2px;
  cursor: pointer;
  font-family: "Noto Serif TC", "Songti TC", "PingFang TC", "Microsoft JhengHei", serif;
  font-weight: 600;
  font-size: 20px;
  color: var(--jz-ink);
  letter-spacing: .12em;
  transition: color .2s;
}

.lifestyle .jz-menu-tab:hover,
.lifestyle .jz-menu-tab.is-active {
  color: var(--jz-red);
}

.jz-menu-tab-sep {
  width: 1px;
  height: 20px;
  background: rgba(122, 92, 74, .4);
}

.jz-menu-panel {
  display: none;
  max-width: 1240px;
  margin: 0 auto;
}

/* display 無法過渡，改在切成 is-active 的當下播一次淡入上移 */
.jz-menu-panel.is-active {
  display: block;
  animation: jz-menu-panel-in .4s cubic-bezier(.16, .84, .28, 1) both;
}

.jz-menu-panel .jz-carousel-item {
  padding-inline: 14px;
}

@keyframes jz-menu-panel-in {
  from {
    opacity: 0;
    transform: translate3d(0, 14px, 0);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .jz-menu-panel.is-active {
    animation: none;
  }
}

.jz-menu-card {
  text-align: center;
}

.jz-menu-photo {
  background: #fff;
  padding: 10px;
  box-shadow: 0 6px 22px rgba(78, 23, 10, .08);
}

.jz-menu-photo img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}

.lifestyle .jz-menu-name {
  font-size: 18px;
  font-weight: 700;
  color: var(--jz-ink);
  letter-spacing: .08em;
  margin: 22px 0 0;
}

@media (max-width: 991px) {
  .lifestyle .jz-menu {
    padding: 55px 0 110px;
  }

  .lifestyle .jz-faq {
    padding: 0;
  }
}

@media (max-width: 767px) {
  .lifestyle .jz-menu {
    padding: 64px 0 0;
  }

  .jz-menu-note {
    margin-bottom: 32px;
  }

  .jz-menu-panel .jz-carousel-item {
    padding-inline: 8px;
  }
}

/* ============================================================
   金讚鱸魚湯 — 聯絡我們：常見聯絡問題（Q&A）
   ============================================================ */
.lifestyle .jz-faq {
  padding: 0 0 110px;
  background: url('../img/contact-bg-03.webp') center bottom / cover no-repeat;
}

.jz-faq-photo img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}

@media (min-width: 992px) {
  .jz-faq-photo {
    height: 100%;
  }

  .jz-faq-photo img {
    height: 100%;
    aspect-ratio: auto;
  }
}

.jz-faq-card-wrap {
  height: 100%;
}

.jz-faq-card {
  background: #fff;
  box-shadow: 0 6px 22px rgba(78, 23, 10, .08);
  padding: 40px clamp(24px, 3vw, 48px);
  height: 100%;
}

.jz-faq-item+.jz-faq-item {
  margin-top: 28px;
}

.jz-faq-q,
.jz-faq-a {
  display: flex;
  align-items: center;
  gap: 12px;
}

.jz-faq-q {
  margin-bottom: 12px;
}

.jz-faq-badge {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--jz-red);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 20px;
  font-weight: 500;
}

.lifestyle .jz-faq-q h3 {
  font-size: 20px;
  font-weight: 700;
  color: var(--jz-ink);
  letter-spacing: .06em;
  margin: 3px 0 0;
}

.jz-faq-a p {
  font-size: 18px;
  color: #404040;
  letter-spacing: .04em;
  margin: 0;
}

@media (max-width: 767px) {
  .lifestyle .jz-faq {
    padding: 64px 0 0;
  }

  .jz-faq-card {
    padding: 28px 20px;
  }
}

/* ============================================================
   金讚鱸魚湯 — 全部商品（商品列表頁）
   ============================================================ */
.lifestyle .jz-plist {
  padding: 72px 0 110px;
  min-height: 70vh;
  background: url('../img/product-bg.webp') center top / 100% no-repeat;
}

.jz-plist .jz-plist-title {
  margin-bottom: 16px;
}

.jz-breadcrumb {
  text-align: center;
  font-size: 16px;
  color: #4a2c22;
  letter-spacing: .06em;
  margin-bottom: 72px;
}

.lifestyle .jz-breadcrumb a {
  color: #4a2c22;
  transition: color .2s;
}

.lifestyle .jz-breadcrumb a:hover {
  color: var(--jz-red);
}

.jz-breadcrumb-sep {
  margin: 0 8px;
}

.jz-breadcrumb-current {
  color: var(--jz-red);
}

.jz-plist-empty {
  color: #4a2c22;
  font-size: 14px;
  letter-spacing: .06em;
}

.jz-price-old {
  margin-left: 10px;
  font-size: 12px;
  font-weight: 400;
  color: rgba(125, 108, 97, .65);
  text-decoration: line-through;
}

.jz-pagination .page-link {
  color: var(--jz-red);
  border-color: rgba(122, 92, 74, .28);
}

.jz-pagination .page-link:focus {
  box-shadow: none;
}

.jz-pagination .page-item.disabled .page-link {
  color: #a99a8f;
  background: transparent;
}

.jz-pagination .page-item.active .page-link {
  background: var(--jz-red);
  border-color: var(--jz-red);
  color: #fff;
}

@media (max-width: 767px) {
  .lifestyle .jz-plist {
    padding: 56px 0 72px;
  }

  .jz-breadcrumb {
    margin-bottom: 48px;
  }
}

/* ============================================================
   金讚鱸魚湯 — 商品內容頁（靜態）
   ============================================================ */
.lifestyle .jz-goods {
  padding: 56px 0 110px;
  min-height: 70vh;
  background: url('../img/home-bg-01.webp') center top / 100% no-repeat;
}

.jz-goods .jz-goods-breadcrumb {
  text-align: left;
  margin-bottom: 56px;
}

.jz-goods-photo {
  background: #fff;
  padding: 24px;
  box-shadow: 0 6px 22px rgba(78, 23, 10, .08);
}

.jz-goods-photo img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: contain;
  display: block;
}

.jz-goods-info {
  max-width: 480px;
}

.lifestyle .jz-goods-title {
  font-family: "Noto Serif TC", "Songti TC", "PingFang TC", "Microsoft JhengHei", serif;
  font-weight: 600;
  color: var(--jz-title);
  font-size: clamp(22px, 1.9vw, 28px);
  letter-spacing: .06em;
  margin: 0 0 22px;
  padding-bottom: 22px;
  border-bottom: 1px solid rgba(122, 92, 74, .28);
}

.jz-goods-price {
  font-size: 20px;
  font-weight: 700;
  color: var(--jz-title);
  letter-spacing: .06em;
  margin: 0 0 18px;
}

.jz-goods-intro {
  font-size: 18px;
  color: #404040;
  letter-spacing: .04em;
  margin: 0 0 22px;
}

.jz-goods-specs {
  list-style: none;
  padding: 0;
  margin: 0 0 36px;
}

.jz-goods-specs li {
  position: relative;
  padding-left: 18px;
  font-size: 16px;
  color: #404040;
  letter-spacing: .04em;
}

.jz-goods-specs li+li {
  margin-top: 10px;
}

.jz-goods-specs li::before {
  content: '・';
  position: absolute;
  left: 0;
  color: var(--jz-ink);
}

.jz-goods-specs strong {
  font-weight: 700;
  color: var(--jz-ink);
}

.jz-goods-specs ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.jz-goods-specs p {
  display: inline;
  margin: 0;
  font-size: 18px;
}

.jz-goods-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.lifestyle .jz-goods-actions .jz-cta {
  border: 1px solid var(--jz-red);
  cursor: pointer;
}

.lifestyle .jz-cta-outline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  cursor: pointer;
  border: 1px solid var(--jz-red);
  color: var(--jz-red);
  padding: 12px 32px;
  border-radius: 9999px;
  font-size: 14px;
  letter-spacing: .06em;
  transition: .25s;
}

.lifestyle .jz-cta-outline:hover {
  background: var(--jz-red);
  color: #fff;
  transform: translateY(-2px);
}

.jz-cta-outline span {
  transition: transform .25s;
}

.lifestyle .jz-cta-outline:hover span {
  transform: translateX(4px);
}

/* 手機：加入購物車／立即購買 並排各佔一半 */
@media (max-width: 767px) {
  .jz-goods-actions {
    flex-wrap: nowrap;
  }

  .lifestyle .jz-goods-actions .jz-cta,
  .lifestyle .jz-goods-actions .jz-cta-outline {
    flex: 1 1 0;
    min-width: 0;
    justify-content: center;
    padding-inline: 12px;
  }
}

/* ============================================================
   金讚鱸魚湯 — 會員登入彈窗（僅 LINE 登入）
   ============================================================ */
.jz-login-modal {
  position: fixed;
  inset: 0;
  z-index: 80;
  background: rgba(0, 0, 0, .5);
  padding: 24px;
  display: none;
  align-items: center;
  justify-content: center;
}

.jz-login-modal.is-open {
  display: flex;
}

.jz-login-card {
  position: relative;
  width: 100%;
  max-width: 520px;
  background: #fff;
  border-radius: 16px;
  padding: 48px 40px 44px;
  text-align: center;
  box-shadow: 0 20px 50px rgba(0, 0, 0, .25);
}

.lifestyle .jz-login-close {
  position: absolute;
  right: 18px;
  top: 14px;
  border: 0;
  background: transparent;
  color: var(--jz-red);
  font-size: 18px;
  line-height: 1;
  padding: 8px;
  cursor: pointer;
  transition: .2s;
}

.lifestyle .jz-login-close:hover {
  color: var(--jz-red-dark);
  transform: scale(1.15);
}

.lifestyle .jz-login-title {
  font-family: "Noto Serif TC", "Songti TC", "PingFang TC", "Microsoft JhengHei", serif;
  font-weight: 700;
  color: var(--jz-title);
  font-size: 22px;
  letter-spacing: .08em;
  margin: 0 0 18px;
}

.jz-login-sub {
  font-size: 14px;
  color: #4a2c22;
  letter-spacing: .05em;
  line-height: 1.8;
  margin: 0 0 28px;
}

.lifestyle .jz-line-btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  border: 0;
  background: #06C755;
  color: #fff;
  padding: 14px 52px;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .1em;
  cursor: pointer;
  transition: .25s;
}

.lifestyle .jz-line-btn:hover {
  background: #05b34c;
}

.jz-line-ico {
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.jz-line-ico i {
  font-size: 28px;
  line-height: 1;
}

/* 登入頁（/login）：與登入彈窗同一套字體與 LINE 按鈕 */
.lifestyle .jz-login-page {
  padding: 72px 0 110px;
  min-height: 70vh;
  background: url('../img/contact-bg-01.webp') center top / auto no-repeat;
}

.jz-login-page .jz-breadcrumb {
  margin-bottom: 56px;
}

.jz-login-panel {
  max-width: 520px;
  margin: 0 auto;
  background: #fff;
  border-radius: 16px;
  padding: 48px 40px 44px;
  text-align: center;
  box-shadow: 0 6px 22px rgba(78, 23, 10, .1);
}

@media (max-width: 575px) {

  .jz-login-card,
  .jz-login-panel {
    padding: 40px 22px 36px;
  }

  .lifestyle .jz-login-page {
    padding: 64px 0 72px;
  }
}

/* ============================================================
   金讚鱸魚湯 — 會員專區（側欄 + 內容白卡）
   ============================================================ */
/* 背景圖寬度滿版、高度依原比例，不裁切 */
.lifestyle .jz-member,
.lifestyle .jz-cart {
  padding: 72px 0 110px;
  min-height: 70vh;
  background: url('../img/contact-bg-01.webp') center top / 100% auto no-repeat;
}

.jz-member .jz-breadcrumb,
.jz-cart .jz-breadcrumb {
  margin-bottom: 56px;
}

.jz-member-side {
  background: #fff;
  border-radius: 6px;
  box-shadow: 0 6px 22px rgba(78, 23, 10, .08);
  padding: 28px 24px;
}

.jz-member-user {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}

.jz-member-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--stone-200);
  color: #9b9b9b;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

.jz-member-avatar svg {
  width: 22px;
  height: 22px;
}

.jz-member-name {
  font-family: "Noto Serif TC", "Songti TC", "PingFang TC", "Microsoft JhengHei", serif;
  font-weight: 700;
  font-size: 17px;
  color: var(--jz-ink);
  letter-spacing: .1em;
}

.jz-member-line-state {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: #4a2c22;
  letter-spacing: .04em;
  margin: 0 0 22px;
  padding-bottom: 22px;
  border-bottom: 1px solid rgba(122, 92, 74, .2);
}

.jz-member-check {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #22c55e;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

.jz-member-check svg {
  width: 10px;
  height: 10px;
}

.jz-member-nav {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding-bottom: 22px;
  margin-bottom: 22px;
  border-bottom: 1px solid rgba(122, 92, 74, .2);
}

.lifestyle .jz-member-nav a {
  font-size: 16px;
  color: var(--jz-ink);
  letter-spacing: .08em;
  transition: color .2s;
}

.lifestyle .jz-member-nav a:hover,
.lifestyle .jz-member-nav a.is-active {
  color: var(--jz-red);
}

.lifestyle .jz-member-logout a {
  font-size: 16px;
  color: var(--jz-ink);
  letter-spacing: .08em;
  transition: color .2s;
}

.lifestyle .jz-member-logout a:hover {
  color: var(--jz-red);
}

.jz-member-panel {
  background: #fff;
  border-radius: 6px;
  border: 1px solid rgba(122, 92, 74, .1);
  box-shadow: 0 10px 30px rgba(78, 23, 10, .12);
  padding: 12px 28px;
  min-height: 100%;
}

.jz-member-empty {
  padding: 48px 0;
  text-align: center;
  font-size: 16px;
  color: #4a2c22;
  letter-spacing: .06em;
  margin: 0;
}

.jz-member-table {
  width: 100%;
  border-collapse: collapse;
}

.jz-member-table th,
.jz-member-table td {
  text-align: left;
  padding: 18px 12px;
  white-space: nowrap;
}

.jz-member-table thead th {
  font-size: 15px;
  font-weight: 700;
  color: var(--jz-ink);
  letter-spacing: .08em;
  border-bottom: 1px solid rgba(122, 92, 74, .28);
}

.jz-member-table tbody td {
  font-size: 15px;
  color: #4a2c22;
  letter-spacing: .04em;
  border-bottom: 1px solid rgba(122, 92, 74, .14);
}

.jz-member-table tbody tr:last-child td {
  border-bottom: 0;
}

.jz-member-table-actions {
  text-align: right;
}

.jz-member-table-actions .jz-btn-sm+.jz-btn-sm {
  margin-left: 8px;
}

.jz-member-table td.jz-member-table-wrap {
  white-space: normal;
  min-width: 220px;
}

.jz-member-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 12px 4px;
}

.lifestyle .jz-member-panel-title {
  font-size: 17px;
  font-weight: 700;
  color: var(--jz-ink);
  letter-spacing: .1em;
  margin: 0;
}

.jz-badge-default {
  display: inline-block;
  padding: 3px 12px;
  border-radius: 9999px;
  font-size: 12px;
  letter-spacing: .1em;
  color: var(--jz-red);
  border: 1px solid var(--jz-red);
}

.jz-member-form {
  padding: 20px 12px 28px;
}

.jz-member-label {
  display: block;
  font-size: 15px;
  font-weight: 700;
  color: var(--jz-ink);
  letter-spacing: .08em;
  margin-bottom: 8px;
}

.jz-member-input {
  width: 100%;
  border: 1px solid rgba(122, 92, 74, .28);
  border-radius: 8px;
  background: #fff;
  padding: 10px 14px;
  font-size: 16px;
  color: var(--jz-ink);
  letter-spacing: .04em;
  transition: border-color .2s;
}

.jz-member-input:focus {
  outline: none;
  border-color: var(--jz-red);
}

.jz-member-line-state-form {
  margin: 4px 0 0;
  padding-bottom: 0;
  border-bottom: 0;
}

.lifestyle .jz-member-form-section-title {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 16px;
  font-weight: 700;
  color: var(--jz-red);
  letter-spacing: .12em;
  margin: 0 0 20px;
}

.jz-member-form-section-title::after {
  content: '';
  flex: 1;
  height: 1px;
  background: rgba(122, 92, 74, .2);
}

.lifestyle .jz-member-form-section-gap {
  margin-top: 48px;
}

select.jz-member-input {
  appearance: auto;
  cursor: pointer;
}

.jz-member-form-actions {
  margin-top: 36px;
}

.lifestyle .jz-member-form-actions .jz-cta {
  border: 0;
  cursor: pointer;
}

.lifestyle .jz-btn-sm {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 5px 16px;
  border-radius: 9999px;
  font-size: 14px;
  letter-spacing: .1em;
  cursor: pointer;
  transition: .2s;
}

.lifestyle .jz-btn-sm-solid {
  border: 1px solid var(--jz-red);
  background: var(--jz-red);
  color: #fff;
}

.lifestyle .jz-btn-sm-solid:hover {
  background: var(--jz-red-dark);
}

.lifestyle .jz-btn-sm-outline {
  border: 1px solid var(--jz-red);
  background: transparent;
  color: var(--jz-red);
}

.lifestyle .jz-btn-sm-outline:hover {
  background: var(--jz-red);
  color: #fff;
}

/* Vue 掛載前隱藏未編譯模板 */
[v-cloak] {
  display: none !important;
}

.jz-member-input[disabled],
.jz-member-input[readonly] {
  background: var(--stone-100, #f5f5f4);
  color: #a09085;
  cursor: not-allowed;
}

.jz-member-input-group {
  display: flex;
  align-items: center;
  gap: 12px;
}

.jz-member-input-group .jz-member-input {
  flex: 1 1 auto;
}

.jz-member-input-group .jz-btn-sm {
  flex: 0 0 auto;
  white-space: nowrap;
}

.jz-member-hint {
  margin: 8px 0 0;
  font-size: 14px;
  color: #a09085;
  letter-spacing: .04em;
}

/* 會員註冊頁 */
.jz-register-line {
  padding: 24px 12px 4px;
  text-align: center;
}

.jz-register-line .jz-line-btn {
  max-width: 360px;
  margin: 0 auto;
}

.jz-register-line-bound {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 20px 12px 0;
  padding: 14px 20px;
  border: 1px solid rgba(122, 92, 74, .28);
  border-radius: 8px;
  font-size: 13px;
  color: #4a2c22;
  letter-spacing: .06em;
}

/* ============================================================
   金讚鱸魚湯 — 全螢幕讀取覆蓋層
   ============================================================ */
.jz-loading {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(78, 23, 10, .45);
  backdrop-filter: blur(2px);
}

.jz-loading[hidden] {
  display: none;
}

.jz-loading-spinner {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  border: 4px solid rgba(255, 255, 255, .35);
  border-top-color: #fff;
  animation: jz-loading-spin .8s linear infinite;
}

body.jz-loading-open {
  overflow: hidden;
}

@keyframes jz-loading-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .jz-loading-spinner {
    animation-duration: 2s;
  }
}

/* ============================================================
   金讚鱸魚湯 — 回到最上方
   ============================================================ */
.jz-back-to-top {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 60;
  width: 48px;
  height: 48px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: var(--jz-red);
  color: #fff;
  box-shadow: 0 6px 18px rgba(78, 23, 10, .28);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity .25s, transform .25s, visibility .25s, background-color .25s;
}

.jz-back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.jz-back-to-top:hover {
  background: var(--jz-red-dark);
}

.jz-back-to-top-arrow {
  width: 22px;
  height: 22px;
}

/* 捲動進度環：--jz-scroll 由 site.js 依捲動比例設為 0~1，捲到底時剛好繞滿一圈 */
.jz-back-to-top-ring {
  position: absolute;
  inset: -5px;
  width: auto;
  height: auto;
  transform: rotate(-90deg);
  pointer-events: none;
  overflow: visible;
}

.jz-back-to-top-ring circle {
  fill: none;
}

.jz-back-to-top-track {
  stroke: rgba(206, 47, 33, .2);
  stroke-width: 3;
}

.jz-back-to-top-progress {
  stroke: var(--jz-red);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-dasharray: 163.363;
  stroke-dashoffset: calc(163.363px * (1 - var(--jz-scroll, 0)));
  transition: stroke-dashoffset .12s linear;
}

@media (max-width: 767px) {
  .jz-back-to-top {
    right: 16px;
    bottom: 16px;
    width: 42px;
    height: 42px;
  }

  .jz-back-to-top-arrow {
    width: 19px;
    height: 19px;
  }
}

/* ============================================================
   金讚鱸魚湯 — 服務條款/條款內容頁
   ============================================================ */
.lifestyle .jz-policy {
  padding: 72px 0 110px;
  min-height: 70vh;
  background: url('../img/contact-bg-01.webp') center top / auto no-repeat;
}

.jz-policy .jz-breadcrumb {
  margin-bottom: 56px;
}

.jz-policy-panel {
  max-width: 930px;
  margin: 0 auto;
  background: #fff;
  border-radius: 6px;
  box-shadow: 0 6px 22px rgba(78, 23, 10, .08);
  padding: 48px 40px;
}

.jz-policy-content {
  font-size: 16px;
  color: var(--jz-ink);
  letter-spacing: .06em;
  line-height: 2;
}

.jz-policy-content img {
  max-width: 100%;
  height: auto;
}

/* 後台編輯器輸出的內文標題：縮小到與 14px 內文相稱 */
.lifestyle .jz-goods-desc-body h1 {
  font-size: 22px;
}

.lifestyle .jz-goods-desc-body h2 {
  font-size: 19px;
}

.lifestyle .jz-goods-desc-body h3 {
  font-size: 17px;
}

.lifestyle .jz-goods-desc-body h4 {
  font-size: 15px;
}

.lifestyle .jz-goods-desc-body h5 {
  font-size: 14px;
}

.lifestyle .jz-goods-desc-body h6 {
  font-size: 14px;
}

/* 條款頁內文為 16px，標題等比往上一階 */
.lifestyle .jz-policy-content h1 {
  font-size: 24px;
}

.lifestyle .jz-policy-content h2 {
  font-size: 21px;
}

.lifestyle .jz-policy-content h3 {
  font-size: 19px;
}

.lifestyle .jz-policy-content h4 {
  font-size: 17px;
}

.lifestyle .jz-policy-content h5 {
  font-size: 16px;
}

.lifestyle .jz-policy-content h6 {
  font-size: 16px;
}

.jz-policy-content h1,
.jz-policy-content h2,
.jz-policy-content h3,
.jz-policy-content h4,
.jz-policy-content h5,
.jz-policy-content h6,
.jz-goods-desc-body h1,
.jz-goods-desc-body h2,
.jz-goods-desc-body h3,
.jz-goods-desc-body h4,
.jz-goods-desc-body h5,
.jz-goods-desc-body h6 {
  font-weight: 700;
  line-height: 1.6;
  margin: 1.6em 0 .6em;
}

.jz-policy-content> :first-child,
.jz-goods-desc-body> :first-child {
  margin-top: 0;
}

@media (max-width: 767px) {
  .lifestyle .jz-policy {
    padding: 56px 0 72px;
  }

  .jz-policy .jz-breadcrumb {
    margin-bottom: 40px;
  }

  .jz-policy-panel {
    padding: 32px 20px;
  }
}

.jz-register-line-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 auto;
}

.jz-register-terms {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: #4a2c22;
  letter-spacing: .04em;
  cursor: pointer;
}

.jz-register-terms input[type="checkbox"] {
  accent-color: var(--jz-red);
}

.lifestyle .jz-register-terms a {
  color: var(--jz-red);
  text-decoration: underline;
}

.jz-register-countdown {
  font-size: 13px;
  color: var(--jz-red);
  letter-spacing: .06em;
}

@media (max-width: 767px) {
  .lifestyle .jz-member {
    padding: 56px 0 72px;
  }

  .jz-member .jz-breadcrumb {
    margin-bottom: 40px;
  }

  .jz-member-panel {
    padding: 8px 16px;
  }

  /* 訂單紀錄：手機改為卡片式，避免七欄表格需左右捲動 */
  #page-member-order .table-responsive {
    overflow-x: visible;
  }

  #page-member-order .jz-member-table thead {
    display: none;
  }

  #page-member-order .jz-member-table,
  #page-member-order .jz-member-table tbody,
  #page-member-order .jz-member-table tr,
  #page-member-order .jz-member-table td {
    display: block;
    width: 100%;
  }

  #page-member-order .jz-member-table tbody tr {
    border: 1px solid rgba(122, 92, 74, .18);
    border-radius: 8px;
    padding: 4px 14px 10px;
    margin: 14px 0;
    background: #fffdfa;
  }

  #page-member-order .jz-member-table tbody td {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 0;
    white-space: normal;
  }

  #page-member-order .jz-member-table tbody td[data-label]::before {
    content: attr(data-label);
    flex: 0 0 auto;
    font-size: 14px;
    font-weight: 700;
    color: var(--jz-ink);
    letter-spacing: .06em;
  }

  #page-member-order .jz-member-td-value {
    flex: 1 1 auto;
    text-align: right;
    word-break: break-all;
  }

  #page-member-order .jz-order-tracking {
    white-space: normal;
    word-break: break-all;
  }

  #page-member-order .jz-member-table tbody td.jz-member-table-id .jz-member-td-value {
    font-size: 17px;
    font-weight: 700;
    color: var(--jz-ink);
  }

  #page-member-order .jz-member-table tbody td:last-child {
    border-bottom: 0;
  }

  #page-member-order .jz-member-table tbody td.jz-member-table-actions {
    gap: 8px;
    padding-top: 14px;
  }

  #page-member-order .jz-member-table-actions .jz-btn-sm {
    flex: 1 1 0;
  }

  #page-member-order .jz-member-table-actions .jz-btn-sm+.jz-btn-sm {
    margin-left: 0;
  }

  /* 載入中／無資料維持整列置中 */
  #page-member-order .jz-member-table tbody td[colspan] {
    display: block;
    text-align: center;
  }
}

/* ============================================================
   金讚鱸魚湯 — 購物車 / 結帳 / 訂單完成
   ============================================================ */
.jz-cart-panel {
  background: #fff;
  border-radius: 6px;
  border: 1px solid rgba(122, 92, 74, .1);
  box-shadow: 0 10px 30px rgba(78, 23, 10, .12);
  padding: 16px 28px 24px;
}

.jz-cart-panel+.jz-cart-panel {
  margin-top: 24px;
}

.jz-cart-table {
  width: 100%;
  border-collapse: collapse;
}

.jz-cart-table th,
.jz-cart-table td {
  text-align: left;
  padding: 18px 12px;
  vertical-align: middle;
  white-space: nowrap;
}

.jz-cart-table thead th {
  font-size: 15px;
  font-weight: 700;
  color: var(--jz-ink);
  letter-spacing: .08em;
  border-bottom: 1px solid rgba(122, 92, 74, .28);
}

.jz-cart-table tbody td {
  font-size: 15px;
  color: #4a2c22;
  letter-spacing: .04em;
  border-bottom: 1px solid rgba(122, 92, 74, .14);
}

.jz-cart-table tbody tr:last-child td {
  border-bottom: 0;
}

.jz-cart-col-product {
  min-width: 240px;
  white-space: normal;
}

.jz-cart-product {
  display: flex;
  align-items: flex-start;
  gap: 16px;
}

.jz-cart-thumb {
  flex: 0 0 auto;
  width: 76px;
  background: #fff;
  border: 1px solid rgba(122, 92, 74, .2);
  padding: 4px;
}

.jz-cart-thumb img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  display: block;
}

.lifestyle .jz-cart-name {
  font-size: 16px;
  font-weight: 700;
  color: var(--jz-ink);
  letter-spacing: .06em;
  margin: 4px 0 10px;
}

.lifestyle .jz-cart-name a {
  color: inherit;
  text-decoration: none;
}

.lifestyle .jz-cart-name a:hover {
  color: var(--jz-red);
}

.jz-cart-specs {
  list-style: none;
  padding: 0;
  margin: 0;
}

.jz-cart-specs li {
  position: relative;
  padding-left: 16px;
  font-size: 14px;
  color: #a09085;
  line-height: 1.8;
  letter-spacing: .04em;
}

.jz-cart-specs li::before {
  content: '・';
  position: absolute;
  left: 0;
}

.jz-cart-qty {
  width: 72px;
  border: 1px solid rgba(122, 92, 74, .28);
  border-radius: 6px;
  background: #fff;
  padding: 6px 8px;
  font-size: 16px;
  color: var(--jz-ink);
  text-align: center;
}

.jz-cart-qty:focus {
  outline: none;
  border-color: var(--jz-red);
}

.lifestyle .jz-cart-remove {
  border: 0;
  background: transparent;
  color: var(--jz-red);
  font-size: 17px;
  line-height: 1;
  padding: 8px;
  cursor: pointer;
  transition: .2s;
}

.lifestyle .jz-cart-remove:hover {
  color: var(--jz-red-dark);
  transform: scale(1.2);
}

.jz-cart-empty {
  padding: 40px 0 32px;
  text-align: center;
  font-size: 16px;
  color: #4a2c22;
  letter-spacing: .06em;
  margin: 0;
}

.lifestyle .jz-cart-empty a {
  color: var(--jz-red);
}

/* 總金額卡（購物車/結帳共用） */
.jz-cart-summary {
  padding-bottom: 32px;
}

.lifestyle .jz-cart-summary-title {
  font-size: 17px;
  font-weight: 700;
  color: var(--jz-ink);
  letter-spacing: .1em;
  margin: 0 0 4px;
  padding: 12px 12px 16px;
  border-bottom: 1px solid rgba(122, 92, 74, .28);
}

.jz-cart-summary-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 12px;
  font-size: 15px;
  color: #4a2c22;
  letter-spacing: .06em;
  border-bottom: 1px solid rgba(122, 92, 74, .14);
}

.jz-cart-summary-count {
  color: var(--jz-red);
}

.jz-cart-summary-total {
  font-weight: 700;
  color: var(--jz-ink);
  border-bottom: 0;
}

.lifestyle .jz-cart-checkout {
  display: block;
  width: calc(100% - 24px);
  margin: 8px 12px 0;
  padding: 12px;
  text-align: center;
  border: 0;
  cursor: pointer;
  background: var(--jz-red);
  color: #fff;
  border-radius: 8px;
  font-size: 16px;
  letter-spacing: .1em;
  transition: .25s;
}

.lifestyle .jz-cart-checkout:hover {
  background: var(--jz-red-dark);
  color: #fff;
}

.lifestyle .jz-cart-checkout.is-disabled {
  opacity: .5;
  cursor: default;
}

.jz-cart-summary-note {
  margin: 16px 12px 0;
  text-align: center;
  font-size: 14px;
  color: var(--jz-red);
  letter-spacing: .06em;
}

/* 結帳右欄 */
.jz-checkout-items {
  padding: 4px 0;
}

.jz-checkout-items-head {
  display: flex;
  justify-content: space-between;
  padding: 14px 12px;
  font-size: 15px;
  font-weight: 700;
  color: var(--jz-red);
  letter-spacing: .08em;
  border-bottom: 1px solid rgba(122, 92, 74, .28);
}

.jz-checkout-item {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 12px;
  font-size: 15px;
  color: #4a2c22;
  letter-spacing: .04em;
  border-bottom: 1px solid rgba(122, 92, 74, .14);
}

.lifestyle .jz-checkout-subtitle {
  font-size: 15px;
  font-weight: 700;
  color: var(--jz-ink);
  letter-spacing: .08em;
  margin: 18px 0 4px;
  padding: 0 12px 12px;
  border-bottom: 1px solid rgba(122, 92, 74, .14);
}

.jz-checkout-options {
  border-bottom: 1px solid rgba(122, 92, 74, .14);
  padding: 6px 0;
}

.jz-checkout-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 8px 12px;
  font-size: 15px;
  color: #4a2c22;
  letter-spacing: .04em;
  cursor: pointer;
}

.jz-checkout-option input[type="radio"] {
  accent-color: var(--jz-red);
  margin-right: 8px;
}

.jz-checkout-option-empty {
  margin: 0;
  padding: 8px 12px;
  font-size: 15px;
  color: #a09085;
  letter-spacing: .04em;
}

.jz-checkout-hint {
  margin: 6px 0 0;
  font-size: 14px;
  color: #a09085;
  letter-spacing: .04em;
}

.jz-checkout-terms {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 12px 12px 0;
  font-size: 15px;
  color: #4a2c22;
  letter-spacing: .04em;
  cursor: pointer;
}

.jz-checkout-terms input[type="checkbox"] {
  margin-top: 3px;
  accent-color: var(--jz-red);
}

.jz-checkout-terms a {
  color: var(--jz-red);
  text-decoration: underline;
}

.lifestyle .jz-cart-checkout[disabled] {
  opacity: .5;
  cursor: default;
}

/* ---------- sweetalert2 確認按鈕（統一紅色，蓋掉套件預設藍色） ---------- */
/* 錯誤／成功提示要蓋在全螢幕 loading 之上（.jz-loading 的 z-index 為 2000） */
.swal2-container {
  z-index: 2100;
}

.swal2-styled.swal2-confirm {
  background-color: var(--jz-red) !important;
}

.swal2-styled.swal2-confirm:hover {
  background-color: var(--jz-red-dark) !important;
}

.swal2-styled.swal2-confirm:focus {
  box-shadow: 0 0 0 3px rgba(192, 57, 43, .3) !important;
}

.jz-checkout-total {
  color: var(--jz-red);
}

/* 折價券 */
.jz-checkout-coupon {
  padding: 10px 12px 14px;
  border-bottom: 1px solid rgba(122, 92, 74, .14);
}

.jz-checkout-coupon-input {
  display: flex;
  gap: 8px;
}

.jz-checkout-coupon-input input {
  flex: 1;
  min-width: 0;
  padding: 8px 12px;
  border: 1px solid rgba(122, 92, 74, .3);
  border-radius: 4px;
  font-size: 15px;
  color: var(--jz-ink);
  letter-spacing: .04em;
}

.jz-checkout-coupon-input input:focus {
  outline: none;
  border-color: var(--jz-red);
}

.lifestyle .jz-checkout-coupon-btn {
  flex: 0 0 auto;
  padding: 6px 20px;
  border: 1px solid var(--jz-red);
  border-radius: 9999px;
  background: transparent;
  color: var(--jz-red);
  font-size: 14px;
  letter-spacing: .08em;
  cursor: pointer;
  transition: .2s;
}

.lifestyle .jz-checkout-coupon-btn:hover {
  background: var(--jz-red);
  color: #fff;
}

.lifestyle .jz-checkout-coupon-btn[disabled] {
  opacity: .5;
  cursor: default;
}

.jz-checkout-coupon-applied {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 15px;
  color: var(--jz-ink);
  letter-spacing: .04em;
}

.lifestyle .jz-checkout-coupon-remove {
  padding: 0;
  border: none;
  background: transparent;
  color: #a09085;
  font-size: 14px;
  letter-spacing: .06em;
  text-decoration: underline;
  cursor: pointer;
}

.lifestyle .jz-checkout-coupon-remove:hover {
  color: var(--jz-red);
}

.jz-checkout-discount-row {
  color: var(--jz-red);
}

/* 超商取貨門市 */
.jz-cvs-store {
  padding: 4px 12px 14px;
}

.jz-cvs-store-name {
  margin: 0 0 4px;
  font-size: 15px;
  font-weight: 700;
  color: var(--jz-ink);
  letter-spacing: .06em;
}

.jz-cvs-store-code {
  margin: 0 0 4px;
  font-size: 14px;
  color: #4a2c22;
  letter-spacing: .04em;
}

.jz-cvs-store-address {
  margin: 0;
  font-size: 14px;
  color: #4a2c22;
  letter-spacing: .04em;
}

.jz-cvs-store-empty {
  margin: 0;
  font-size: 14px;
  color: #a09085;
  letter-spacing: .04em;
}

.lifestyle .jz-cvs-store-btn {
  margin-top: 10px;
  padding: 6px 18px;
  border: 1px solid var(--jz-red);
  border-radius: 9999px;
  background: transparent;
  color: var(--jz-red);
  font-size: 14px;
  letter-spacing: .08em;
  cursor: pointer;
  transition: .2s;
}

.lifestyle .jz-cvs-store-btn:hover {
  background: var(--jz-red);
  color: #fff;
}

/* 訂單完成 */
.jz-order-done-head {
  max-width: 720px;
  margin: 0 auto 56px;
  text-align: center;
}

.jz-order-done-check {
  display: inline-flex;
  width: 56px;
  height: 56px;
  color: var(--jz-red);
  margin-bottom: 20px;
}

.jz-order-done-check svg {
  width: 100%;
  height: 100%;
}

.jz-order-done-head .jz-section-lead {
  margin-bottom: 0;
}

.jz-order-info {
  margin: 0;
  padding: 8px 0 12px;
  display: flex;
  flex-wrap: wrap;
}

.jz-order-info>div {
  display: flex;
  gap: 24px;
  width: 100%;
  padding: 10px 12px;
}

.jz-order-info>.jz-order-info-half {
  width: 50%;
}

.jz-order-info dt {
  flex: 0 0 auto;
  min-width: 96px;
  font-size: 15px;
  color: var(--jz-ink);
  font-weight: 400;
  letter-spacing: .06em;
}

.jz-order-info dd {
  margin: 0;
  font-size: 15px;
  color: #4a2c22;
  letter-spacing: .04em;
}

.jz-order-bank {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0 12px;
  padding: 14px 20px;
  border: 1px solid var(--jz-red);
  border-radius: 8px;
}

.jz-order-bank-no {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(18px, 1.8vw, 24px);
  font-weight: 700;
  color: var(--jz-title);
  letter-spacing: .18em;
  white-space: nowrap;
}

.jz-order-bank-note {
  margin: 16px 12px 8px;
  font-size: 14px;
  color: var(--jz-red);
  letter-spacing: .04em;
  line-height: 1.8;
}

.jz-order-report {
  padding: 4px 12px 12px;
}

/* 訂單明細 */
.jz-order-detail .jz-member-panel {
  min-height: 0;
  margin-bottom: 24px;
  padding-bottom: 20px;
}

.jz-order-detail .jz-member-panel:last-child {
  margin-bottom: 0;
}

.jz-order-detail .jz-order-loading {
  padding: 48px 0;
  text-align: center;
  font-size: 16px;
  color: #4a2c22;
  letter-spacing: .06em;
}

.lifestyle .jz-order-back {
  display: inline-block;
  margin: 16px 12px 0;
  font-size: 15px;
  color: var(--jz-red);
  letter-spacing: .06em;
  transition: opacity .2s;
}

.lifestyle .jz-order-back:hover {
  opacity: .7;
}

.jz-order-detail-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px 24px;
  padding: 16px 12px 20px;
}

.jz-order-detail-head .jz-member-panel-title {
  font-size: 18px;
}

.jz-order-detail-date {
  margin: 0;
  font-size: 16px;
  color: var(--jz-ink);
  letter-spacing: .06em;
}

.jz-order-detail-status {
  margin: 4px 0 0;
  font-size: 16px;
  color: var(--jz-ink);
  letter-spacing: .06em;
}

/* 物流單號：接在訂單狀態後面，已出貨後才由 JS 判斷顯示 */
.jz-order-tracking {
  display: inline-block;
  margin-left: 8px;
  font-size: 13px;
  letter-spacing: .04em;
  white-space: nowrap;
}

.jz-order-tracking a {
  color: var(--jz-title);
  text-decoration: underline;
}

/* 已退貨退款以紅字提示；權重需壓過 .jz-member-table tbody td 的文字色 */
.jz-member-table tbody td.jz-order-returned,
p.jz-order-returned {
  color: #c0392b;
  font-weight: 700;
}

.jz-order-detail-table {
  width: 100%;
  border-collapse: collapse;
}

.jz-order-detail-table th,
.jz-order-detail-table td {
  text-align: left;
  padding: 14px 12px;
}

.jz-order-detail-table th:last-child,
.jz-order-detail-table td:last-child {
  width: 40%;
}

.jz-order-detail-table thead th {
  font-size: 15px;
  font-weight: 700;
  color: var(--jz-ink);
  letter-spacing: .08em;
  border-top: 1px solid rgba(122, 92, 74, .28);
  border-bottom: 1px solid rgba(122, 92, 74, .28);
}

.jz-order-detail-table tbody td {
  font-size: 15px;
  color: #4a2c22;
  letter-spacing: .04em;
}

.jz-order-detail-table tbody tr:first-child td {
  padding-top: 22px;
}

.jz-order-detail-table tbody tr:last-child td {
  padding-bottom: 22px;
}

.jz-order-detail-qty {
  color: #a09085;
}

.jz-order-detail-table tfoot td {
  font-size: 15px;
  color: #4a2c22;
  letter-spacing: .04em;
  padding: 8px 12px;
}

.jz-order-detail-table tfoot tr:first-child td {
  border-top: 1px solid rgba(122, 92, 74, .14);
  padding-top: 20px;
}

.jz-order-detail-table tfoot tr:last-child td {
  padding-bottom: 4px;
}

.jz-order-detail-total td {
  color: var(--jz-title);
  font-weight: 700;
}

/* flatpickr 在 SweetAlert2 彈窗內：日曆用 inline 排進文件流，才不會蓋住按鈕或被裁切 */
.swal2-popup.jz-swal-picker .flatpickr-wrapper {
  display: block;
}

.swal2-popup.jz-swal-picker .flatpickr-calendar.inline {
  margin: 6px auto 4px;
}

@media (max-width: 575px) {
  .jz-cart-panel {
    padding: 8px 16px 20px;
  }

  .jz-order-info>.jz-order-info-half {
    width: 100%;
  }

  .jz-order-bank {
    flex-direction: column;
  }

  .jz-order-detail-table th:last-child,
  .jz-order-detail-table td:last-child {
    width: auto;
  }
}

.jz-goods-desc {
  margin-top: 88px;
}

.lifestyle .jz-goods-desc-title {
  font-family: "Noto Serif TC", "Songti TC", "PingFang TC", "Microsoft JhengHei", serif;
  font-weight: 600;
  color: var(--jz-title);
  font-size: 18px;
  letter-spacing: .1em;
  margin: 0 0 0;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(122, 92, 74, .28);
}

.jz-goods-desc-body {
  max-width: 930px;
  margin: 56px auto 0;
  box-shadow: 0 6px 22px rgba(78, 23, 10, .08);
}

.jz-goods-desc-body img {
  width: 100%;
  display: block;
}

@media (max-width: 767px) {
  .lifestyle .jz-goods {
    padding: 40px 0 72px;
  }

  .jz-goods .jz-goods-breadcrumb {
    margin-bottom: 36px;
  }

  .jz-goods-info {
    max-width: none;
  }

  .jz-goods-desc {
    margin-top: 64px;
  }

  .jz-goods-desc-body {
    margin-top: 36px;
  }
}

/* ============================================================
   金讚鱸魚湯 — 網站維護中（後台網站功能開關關閉時顯示）
   ============================================================ */
.jz-maintenance {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: #f7f1e7;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 24px;
}

.jz-maintenance-box h1 {
  font-family: "Noto Serif TC", "Songti TC", "PingFang TC", "Microsoft JhengHei", serif;
  font-weight: 700;
  color: var(--jz-title);
  font-size: clamp(26px, 3vw, 36px);
  letter-spacing: .1em;
  margin: 0 0 16px;
}

.jz-maintenance-box p {
  color: #4a2c22;
  font-size: 15px;
  letter-spacing: .06em;
  margin: 0;
}

/* ============================================================
   金讚鱸魚湯 — 全站進場動畫（AOS 自訂效果 + 環境微動態）
   ============================================================ */
html {
  scroll-behavior: smooth;
  /* AOS 進場前用 translateX 把元素推到畫面外，會在 viewport 產生水平溢出；
     夾在 html（真正的捲動容器）才擋得住，只設在 body 無效 */
  overflow-x: clip;
}

body.lifestyle {
  overflow-x: clip;
}

/* 自訂緩動曲線，由 site.js 的 AOS.init({ easing: 'jz-smooth' }) 寫進 body。
   :not([data-aos-easing]) 是必要的，否則會蓋掉元素自帶的 easing（例如 ease-out-back） */
body[data-aos-easing="jz-smooth"] [data-aos]:not([data-aos-easing]) {
  transition-timing-function: cubic-bezier(.16, .84, .28, 1);
}

/* 自訂動畫必須自行宣告 transition-property，AOS 只負責 duration / delay / easing */
[data-aos^="jz-"] {
  transition-property: opacity, transform, filter, clip-path;
  will-change: opacity, transform;
}

[data-aos^="jz-"].aos-animate {
  will-change: auto;
}

/* 上升淡入：段落、清單、按鈕 */
[data-aos="jz-rise"] {
  opacity: 0;
  transform: translate3d(0, 44px, 0);
}

[data-aos="jz-rise"].aos-animate {
  opacity: 1;
  transform: none;
}

/* 模糊上升：標題、引言，散景收斂的質感 */
[data-aos="jz-blur-up"] {
  opacity: 0;
  filter: blur(12px);
  transform: translate3d(0, 30px, 0) scale(.98);
}

[data-aos="jz-blur-up"].aos-animate {
  opacity: 1;
  filter: blur(0);
  transform: none;
}

/* 遮罩揭示：由下往上拉開，適合照片 */
[data-aos="jz-reveal-up"] {
  opacity: 0;
  clip-path: inset(42% 0 0 0);
  transform: translate3d(0, 34px, 0);
}

[data-aos="jz-reveal-up"].aos-animate {
  opacity: 1;
  clip-path: inset(0 0 0 0);
  transform: none;
}

/* 遮罩揭示：從左／右側滑入並拉開 */
[data-aos="jz-reveal-left"] {
  opacity: 0;
  clip-path: inset(0 0 0 28%);
  transform: translate3d(-46px, 0, 0);
}

[data-aos="jz-reveal-left"].aos-animate {
  opacity: 1;
  clip-path: inset(0 0 0 0);
  transform: none;
}

[data-aos="jz-reveal-right"] {
  opacity: 0;
  clip-path: inset(0 28% 0 0);
  transform: translate3d(46px, 0, 0);
}

[data-aos="jz-reveal-right"].aos-animate {
  opacity: 1;
  clip-path: inset(0 0 0 0);
  transform: none;
}

/* 柔和放大：卡片、圖示 */
[data-aos="jz-zoom-soft"] {
  opacity: 0;
  transform: scale(.92);
}

[data-aos="jz-zoom-soft"].aos-animate {
  opacity: 1;
  transform: none;
}

/* 彈跳浮現：小徽章、數字、圖示，搭配 data-aos-easing="ease-out-back" */
[data-aos="jz-pop"] {
  opacity: 0;
  transform: scale(.68) translate3d(0, 18px, 0);
}

[data-aos="jz-pop"].aos-animate {
  opacity: 1;
  transform: none;
}

/* 立起：卡片以底邊為軸翻正 */
[data-aos="jz-flip-up"] {
  opacity: 0;
  transform: perspective(1200px) rotateX(24deg) translate3d(0, 40px, 0);
  transform-origin: center bottom;
}

[data-aos="jz-flip-up"].aos-animate {
  opacity: 1;
  transform: perspective(1200px) rotateX(0) translate3d(0, 0, 0);
}

/* 純淡入：不動位置，給有既有 transform 的元素用 */
[data-aos="jz-fade"] {
  opacity: 0;
}

[data-aos="jz-fade"].aos-animate {
  opacity: 1;
}

/* 蒸氣升起：由下往上冒、放大並散開模糊，給 hero 的三團煙用 */
[data-aos="jz-smoke-rise"] {
  opacity: 0;
  transform: translate3d(0, 70px, 0) scale(.62);
  filter: blur(14px);
}

[data-aos="jz-smoke-rise"].aos-animate {
  opacity: 1;
  transform: none;
  filter: blur(0);
}

/* 旋入：帶輕微旋轉與模糊的浮現，給四角裝飾圖用 */
[data-aos="jz-swirl-in"] {
  opacity: 0;
  transform: rotate(-14deg) scale(.72);
  filter: blur(10px);
}

[data-aos="jz-swirl-in"].aos-animate {
  opacity: 1;
  transform: none;
  filter: blur(0);
}

/* 照片容器加上此 class，滑鼠移入時內圖緩緩放大至 1.14 倍 */
.jz-photo-in {
  display: block;
  overflow: hidden;
}

.jz-photo-in img {
  transform: scale(1);
  transition: transform 1.6s cubic-bezier(.16, .84, .28, 1);
}

.jz-photo-in:hover img {
  transform: scale(1.14);
}

/* 首頁 hero 蒸氣：緩慢飄升，強化「現煮」的氛圍（掛在內層 img，外層 span 留給 AOS 進場） */
.jz-smoke-1 img {
  animation: jz-smoke-a 11s ease-in-out infinite;
}

.jz-smoke-2 img {
  animation: jz-smoke-b 9s ease-in-out infinite;
}

.jz-smoke-3 img {
  animation: jz-smoke-c 13s ease-in-out infinite;
}

@keyframes jz-smoke-a {

  0%,
  100% {
    transform: rotate(135deg) translate3d(0, 0, 0);
    opacity: .5;
  }

  50% {
    transform: rotate(135deg) translate3d(0, -16px, 0) scale(1.05);
    opacity: .66;
  }
}

@keyframes jz-smoke-b {

  0%,
  100% {
    transform: translate3d(0, 0, 0);
    opacity: .42;
  }

  50% {
    transform: translate3d(6px, -20px, 0) scale(1.06);
    opacity: .6;
  }
}

@keyframes jz-smoke-c {

  0%,
  100% {
    transform: rotate(52deg) translate3d(0, 0, 0);
    opacity: .5;
  }

  50% {
    transform: rotate(52deg) translate3d(0, -14px, 0) scale(1.04);
    opacity: .64;
  }
}

/* 品牌故事／適合誰喝 的四角裝飾：極慢浮動 */
.jz-story-deco img,
.jz-who-deco {
  animation: jz-float 9s ease-in-out infinite;
}

.jz-deco-tr img {
  animation-delay: -2.2s;
}

.jz-deco-bl img {
  animation-delay: -4.4s;
}

.jz-deco-br img {
  animation-delay: -6.6s;
}

.jz-who-deco-fish {
  animation-delay: -3.5s;
}

@keyframes jz-float {

  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }

  50% {
    transform: translate3d(0, -12px, 0);
  }
}