/*
Theme Name: 禪風水韻藏品館
Template: twentytwentyfive
 Version: 2.6.19
Description: 繁體中文優先的禪風水韻藏品館主題。
Text Domain: zen-feng-shui-charm
*/

:root {
  --zf-paper: #faf6f0;
  --zf-paper-deep: #f3eadf;
  --zf-ink: #292723;
  --zf-muted: #71695f;
  --zf-cinnabar: #9a2820;
  --zf-cinnabar-deep: #762117;
  --zf-gold: #b8954d;
  --zf-glaze: #f4c430;
  --zf-peacock: #006d61;
  --zf-porcelain: #315f7f;
  --zf-sand: #e8d5b7;
  --zf-line: rgba(93, 73, 47, .18);
  --zf-shadow: 0 14px 38px rgba(48, 36, 23, .10);
  --zf-shadow-premium: 0 16px 42px rgba(0, 109, 97, .16);
  --zf-serif: "Noto Serif TC", "Noto Serif CJK TC", "Songti TC", "PMingLiU", serif;
  --zf-sans: "Noto Sans TC", "Noto Sans CJK TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
  --zf-container: min(1240px, calc(100% - 48px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.zf-site {
  margin: 0;
  color: var(--zf-ink);
  background: var(--zf-paper);
  font-family: var(--zf-sans);
  line-height: 1.68;
  -webkit-font-smoothing: antialiased;
}
body.zf-site::before {
  position: fixed;
  z-index: -1;
  inset: 0;
  content: "";
  opacity: .42;
  pointer-events: none;
  background-image: radial-gradient(rgba(116, 92, 57, .045) .6px, transparent .8px);
  background-size: 10px 10px;
}
a { color: inherit; text-decoration: none; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid var(--zf-glaze); outline-offset: 3px; }
img { display: block; max-width: 100%; }
button, input, select { font: inherit; }
.zf-container { width: var(--zf-container); margin: 0 auto; }
.screen-reader-text { position: absolute; left: -9999px; }
.zf-skip-link { position: fixed; z-index: 100; top: 10px; left: 10px; padding: 10px 14px; transform: translateY(-180%); border: 1px solid var(--zf-cinnabar); color: #fff; background: var(--zf-cinnabar); font-weight: 700; transition: transform .18s ease; }
.zf-skip-link:focus { transform: translateY(0); }

/* Header */
.zf-tilebar {
  height: 14px;
  background-color: #486d77;
  background-image: radial-gradient(ellipse at 50% 135%, rgba(255,255,255,.35) 0 11%, transparent 12%), linear-gradient(90deg, rgba(255,255,255,.15) 1px, transparent 1px);
  background-size: 24px 14px, 24px 14px;
  border-bottom: 2px solid #274c57;
}
.zf-header { position: sticky; top: 0; z-index: 20; background: rgba(250,246,240,.96); backdrop-filter: blur(14px); border-bottom: 1px solid var(--zf-line); }
.zf-header-inner { min-height: 76px; display: flex; align-items: center; gap: 26px; width: var(--zf-container); margin: 0 auto; }
.zf-brand { display: inline-flex; align-items: center; gap: 10px; min-width: max-content; color: var(--zf-cinnabar); }
.zf-brand-mark { display: grid; place-items: center; width: 35px; height: 35px; border: 1px solid currentColor; border-radius: 50%; font-size: 19px; }
.zf-brand-name { font-family: var(--zf-serif); font-size: 26px; font-weight: 700; letter-spacing: .16em; }
.zf-nav { flex: 1; display: flex; align-items: center; justify-content: center; gap: clamp(12px, 1.8vw, 29px); }
.zf-nav a { position: relative; padding: 26px 0 22px; font-size: 14px; white-space: nowrap; }
.zf-nav a::after { content: ""; position: absolute; right: 0; bottom: 16px; left: 0; height: 2px; transform: scaleX(0); transform-origin: center; background: var(--zf-cinnabar); transition: transform .2s ease; }
.zf-nav a:hover::after, .zf-nav a[aria-current="page"]::after { transform: scaleX(1); }
.zf-header-tools { display: flex; align-items: center; gap: 9px; color: var(--zf-muted); }
.zf-control, .zf-icon-link { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: 0 10px; border: 1px solid transparent; color: inherit; background: transparent; border-radius: 999px; font-size: 12px; white-space: nowrap; }
.zf-control:hover, .zf-icon-link:hover { border-color: var(--zf-sand); color: var(--zf-cinnabar); }
.zf-icon-link { gap: 5px; padding: 0 7px; font-size: 18px; }
.zf-icon-link small { font-size: 11px; }
.zf-menu-toggle { display: none; }

/* Generic */
.zf-section { padding: 86px 0; }
.zf-eyebrow { display: inline-flex; align-items: center; gap: 9px; margin: 0 0 10px; color: var(--zf-gold); font-size: 13px; letter-spacing: .12em; }
.zf-eyebrow::before { content: ""; width: 22px; height: 1px; background: currentColor; }
.zf-heading { margin: 0; color: var(--zf-cinnabar); font-family: var(--zf-serif); font-size: clamp(31px, 4vw, 52px); letter-spacing: .1em; line-height: 1.28; }
.zf-lead { max-width: 680px; margin: 18px 0 0; color: var(--zf-muted); font-size: 16px; }
.zf-title-row { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 32px; }
.zf-text-link { color: var(--zf-cinnabar); font-weight: 700; font-size: 14px; }
.zf-text-link::after { margin-left: 7px; content: "→"; }
.zf-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 26px; border: 1px solid transparent; border-radius: 4px; font-weight: 700; letter-spacing: .08em; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.zf-btn:active { transform: scale(.98); }
.zf-btn-primary { color: #fff; background: linear-gradient(135deg, var(--zf-cinnabar), #bf392d); box-shadow: 0 10px 20px rgba(154,40,32,.22); }
.zf-btn-primary:hover { background: var(--zf-cinnabar-deep); box-shadow: 0 14px 28px rgba(154,40,32,.3); transform: translateY(-2px); }
.zf-btn-outline { color: var(--zf-cinnabar); border-color: var(--zf-gold); background: rgba(255,255,255,.36); }
.zf-btn-outline:hover { color: #fff; background: var(--zf-cinnabar); border-color: var(--zf-cinnabar); }
.zf-empty { padding: 36px; text-align: center; border: 1px dashed var(--zf-sand); color: var(--zf-muted); }

/* Home Hero */
.zf-hero { position: relative; min-height: 610px; overflow: hidden; background: #e8dfd2; }
.zf-hero-media { position: absolute; inset: 0; background: #e8dfd2; }
.zf-hero-art { position: absolute; z-index: 0; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.zf-hero-media::before { position: absolute; z-index: 1; inset: 0; content: ""; background: linear-gradient(90deg, rgba(250,246,240,.98) 0%, rgba(250,246,240,.87) 33%, rgba(250,246,240,.11) 71%, rgba(250,246,240,.03)); }
.zf-hero-inner { position: relative; z-index: 2; display: flex; align-items: center; min-height: 610px; }
.zf-hero-copy { max-width: 590px; padding: 70px 0; }
.zf-hero-copy h1 { margin: 0; color: var(--zf-cinnabar); font-family: var(--zf-serif); font-size: clamp(48px, 6vw, 82px); font-weight: 700; line-height: 1.14; letter-spacing: .15em; text-shadow: 1px 2px 1px rgba(255,255,255,.5); }
.zf-hero-copy h1 + p { max-width: 480px; margin: 22px 0 14px; font-family: var(--zf-serif); color: #5d4c3c; font-size: clamp(19px, 2vw, 26px); letter-spacing: .1em; }
.zf-hero-copy .zf-hero-note { max-width: 440px; margin: 0 0 30px; color: var(--zf-muted); font-size: 15px; }
.zf-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; }
.zf-hero-actions .zf-text-link { padding: 12px 0; }
.zf-hero-seal { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; margin-left: 12px; border: 1px solid var(--zf-cinnabar); color: var(--zf-cinnabar); font-family: var(--zf-serif); font-size: 12px; vertical-align: top; transform: rotate(-7deg); }

/* Collection portals */
.zf-portals { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.zf-portal { position: relative; min-height: 180px; overflow: hidden; padding: 28px; border: 1px solid var(--zf-sand); background: linear-gradient(140deg, #fcf9f3, #eee0c7); box-shadow: var(--zf-shadow); }
.zf-portal:nth-child(2) { color: #fff; border-color: #235e59; background: linear-gradient(140deg, #0d665e, #194a49); }
.zf-portal:nth-child(3) { background: linear-gradient(140deg, #fff4ce, #e8c36c); }
.zf-portal::after { position: absolute; right: -14px; bottom: -25px; color: rgba(154,40,32,.10); content: "☁"; font-size: 170px; line-height: 1; }
.zf-portal:nth-child(2)::after { color: rgba(255,255,255,.13); content: "☯"; }
.zf-portal h3 { position: relative; margin: 0 0 9px; font-family: var(--zf-serif); font-size: 26px; letter-spacing: .1em; }
.zf-portal p { position: relative; max-width: 210px; margin: 0 0 18px; font-size: 14px; opacity: .86; }
.zf-portal .zf-circle-link { position: relative; display: inline-grid; place-items: center; width: 33px; height: 33px; border: 1px solid currentColor; border-radius: 50%; }

/* Artifacts */
.zf-artifact-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.zf-artifact-card { position: relative; display: flex; flex-direction: column; min-height: 365px; overflow: hidden; border: 1px solid var(--zf-line); background: rgba(255,255,255,.50); box-shadow: 0 6px 17px rgba(48,36,23,.06); transition: transform .2s ease, box-shadow .2s ease; }
.zf-artifact-card:hover { transform: translateY(-5px); box-shadow: var(--zf-shadow); }
.zf-artifact-card::before { position: absolute; z-index: 1; top: 13px; left: 13px; width: 20px; height: 20px; content: ""; border-top: 1px solid var(--zf-gold); border-left: 1px solid var(--zf-gold); pointer-events: none; }
.zf-artifact-card.zf-tier-premium { border: 1.5px solid var(--zf-glaze); box-shadow: var(--zf-shadow-premium); }
.zf-artifact-card.zf-tier-premium::after { position: absolute; z-index: 0; inset: 0; content: ""; opacity: .08; pointer-events: none; background-image: radial-gradient(ellipse at 50% 50%, transparent 0 28%, #006d61 29% 30%, transparent 31%), linear-gradient(45deg, transparent 44%, #006d61 45% 46%, transparent 47%); background-size: 150px 150px; }
.zf-artifact-card.zf-tier-limited { border: 2px solid transparent; border-image: linear-gradient(135deg, #d4af37, #f4c430, #d4af37) 1; background: linear-gradient(135deg, rgba(255,255,255,.82), rgba(250,236,191,.66)); box-shadow: 0 9px 26px rgba(244,196,48,.20); }
.zf-artifact-image { position: relative; z-index: 1; display: grid; place-items: center; height: 205px; overflow: hidden; color: var(--zf-porcelain); background: linear-gradient(145deg, #f3eee7, #e8ded0); }
.zf-artifact-image.has-image img { width: 100%; height: 100%; object-fit: cover; }
.zf-artifact-image .zf-symbol { opacity: .72; font-family: var(--zf-serif); font-size: 92px; text-shadow: 1px 2px 0 rgba(255,255,255,.5); }
.zf-artifact-image .zf-family-text { position: absolute; right: 17px; bottom: 14px; color: rgba(49,95,127,.52); font-family: var(--zf-serif); font-size: 15px; letter-spacing: .18em; writing-mode: vertical-rl; }
.zf-artifact-body { position: relative; z-index: 2; display: flex; flex: 1; flex-direction: column; padding: 20px 22px 22px; }
.zf-badges { display: flex; flex-wrap: wrap; gap: 7px; min-height: 25px; }
.zf-badge { display: inline-flex; align-items: center; min-height: 23px; padding: 2px 8px; border-radius: 999px; color: var(--zf-porcelain); background: #e8f0f2; font-size: 11px; font-weight: 700; }
.zf-badge-premium { color: #fff; background: var(--zf-peacock); }
.zf-badge-limited { color: #725116; background: #f7df9e; }
.zf-artifact-card h3 { margin: 11px 0 6px; font-family: var(--zf-serif); font-size: 24px; line-height: 1.35; letter-spacing: .06em; }
.zf-artifact-number { margin: 0; color: var(--zf-muted); font-size: 12px; letter-spacing: .06em; }
.zf-artifact-meta { margin-top: auto; padding-top: 17px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--zf-line); }
.zf-artifact-meta span { color: var(--zf-muted); font-size: 12px; }
.zf-artifact-meta a { color: var(--zf-cinnabar); font-size: 13px; font-weight: 700; }
.zf-artifact-meta a::after { content: " →"; }

/* Archive and single */
.zf-page-hero { padding: 74px 0 52px; border-bottom: 1px solid var(--zf-line); background: linear-gradient(135deg, rgba(49,95,127,.07), transparent 58%); }
.zf-page-hero .zf-heading { max-width: 660px; }
.zf-page-hero .zf-lead { margin-bottom: 0; }
.zf-catalog-layout { display: grid; grid-template-columns: 230px 1fr; gap: 34px; padding-top: 45px; }
.zf-filter { align-self: start; padding: 20px; border: 1px solid var(--zf-sand); background: rgba(255,255,255,.38); }
.zf-filter h2 { margin: 0 0 16px; color: var(--zf-cinnabar); font-family: var(--zf-serif); font-size: 21px; }
.zf-filter a { display: block; padding: 11px 4px; border-bottom: 1px solid var(--zf-line); color: var(--zf-muted); font-size: 14px; }
.zf-filter a:hover, .zf-filter a.active { color: var(--zf-cinnabar); font-weight: 700; }
.zf-filter-note { margin: 20px 0 0; color: var(--zf-muted); font-size: 12px; }
.zf-artifact-detail { display: grid; grid-template-columns: minmax(0, 1fr) minmax(330px, .8fr); gap: clamp(28px, 5vw, 74px); padding: 54px 0 78px; }
.zf-detail-media { min-height: 560px; overflow: hidden; border: 1px solid var(--zf-sand); background: linear-gradient(145deg, #eee5d8, #f9f6f0); }
.zf-detail-media img { width: 100%; height: 100%; object-fit: cover; }
.zf-detail-media .zf-symbol { display: grid; height: 560px; place-items: center; color: var(--zf-porcelain); font-family: var(--zf-serif); font-size: 220px; }
.zf-detail-main { padding: 6px 0; }
.zf-detail-collection { margin: 0 0 14px; color: var(--zf-peacock); font-size: 14px; font-weight: 700; letter-spacing: .08em; }
.zf-detail-main h1 { margin: 0; font-family: var(--zf-serif); font-size: clamp(34px, 4vw, 52px); letter-spacing: .08em; line-height: 1.24; }
.zf-detail-number { margin: 12px 0 24px; color: var(--zf-muted); font-size: 13px; }
.zf-detail-specs { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 26px 0; padding: 20px; border: 1px solid var(--zf-sand); background: rgba(255,255,255,.42); }
.zf-detail-specs dt { color: var(--zf-muted); font-size: 12px; }
.zf-detail-specs dd { margin: 3px 0 0; font-size: 14px; }
.zf-inquiry { padding: 19px; border-left: 3px solid var(--zf-gold); background: #f6efe2; }
.zf-inquiry p { margin: 0 0 13px; color: var(--zf-muted); font-size: 14px; }
.zf-accordion { margin-top: 23px; border-top: 1px solid var(--zf-line); }
.zf-accordion details { border-bottom: 1px solid var(--zf-line); }
.zf-accordion summary { position: relative; padding: 17px 26px 17px 0; cursor: pointer; color: var(--zf-cinnabar); font-family: var(--zf-serif); font-size: 18px; font-weight: 700; list-style: none; }
.zf-accordion summary::after { position: absolute; top: 17px; right: 4px; content: "+"; font-family: var(--zf-sans); }
.zf-accordion details[open] summary::after { content: "−"; }
.zf-accordion .zf-accordion-body { padding: 0 0 20px; color: var(--zf-muted); font-size: 14px; }
.zf-accordion .zf-accordion-body p:first-child { margin-top: 0; }

/* Simple pages */
.zf-prose { max-width: 830px; padding: 68px 0 90px; }
.zf-prose h1, .zf-prose h2, .zf-prose h3 { color: var(--zf-cinnabar); font-family: var(--zf-serif); }
.zf-prose h1 { font-size: clamp(34px, 4vw, 52px); }
.zf-prose p, .zf-prose li { color: var(--zf-muted); }
.zf-prose a { color: var(--zf-cinnabar); text-decoration: underline; }

/* Footer */
.zf-footer { position: relative; overflow: hidden; padding: 62px 0 22px; color: #f6eee2; background: #2d302d; }
.zf-footer::before { position: absolute; right: -30px; bottom: -70px; color: rgba(232,213,183,.06); content: "☁☁☁"; font-size: 250px; line-height: 1; letter-spacing: -80px; }
.zf-footer-grid { position: relative; display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 35px; }
.zf-footer .zf-brand { color: #f6eee2; }
.zf-footer .zf-brand-name { font-size: 24px; }
.zf-footer h2 { margin: 0 0 13px; color: #e7c67d; font-family: var(--zf-serif); font-size: 17px; letter-spacing: .1em; }
.zf-footer p, .zf-footer a { color: rgba(246,238,226,.73); font-size: 13px; }
.zf-footer a { display: block; padding: 4px 0; }
.zf-footer a:hover { color: #fff; }
.zf-footer-contact-details { display: grid; gap: 3px; margin: 13px 0 9px; overflow-wrap: anywhere; }
.zf-footer-contact-details .zf-footer-company { margin: 0; color: #f6eee2; font-weight: 700; }
.zf-footer-contact-details address { margin: 0; color: rgba(246,238,226,.73); font-size: 13px; font-style: normal; line-height: 1.6; }
.zf-footer-bottom { position: relative; margin-top: 45px; padding-top: 18px; border-top: 1px solid rgba(232,213,183,.17); color: rgba(246,238,226,.54); font-size: 12px; }

/* Verified public business identity: contact information, not a payment or delivery claim. */
.zf-contact-identity { margin-top: 34px; padding: 27px; border: 1px solid var(--zf-sand); background: rgba(255,255,255,.45); box-shadow: 0 10px 28px rgba(48,36,23,.05); }
.zf-contact-identity h2 { margin: 5px 0 18px; color: var(--zf-porcelain); font-family: var(--zf-serif); font-size: clamp(25px, 3vw, 33px); }
.zf-contact-identity-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px 26px; margin: 0; }
.zf-contact-identity-list > div { min-width: 0; padding-top: 13px; border-top: 1px solid rgba(93,73,47,.16); }
.zf-contact-identity-list dt { margin: 0 0 6px; color: var(--zf-gold); font-size: 11px; font-weight: 700; letter-spacing: .08em; }
.zf-contact-identity-list dd { margin: 0; color: var(--zf-ink); font-size: 15px; line-height: 1.7; overflow-wrap: anywhere; }
.zf-contact-identity-list address { margin: 0; font-style: normal; }
.zf-contact-identity-list a { color: var(--zf-cinnabar); text-decoration: underline; text-underline-offset: 3px; }

/* Notice */
.zf-site-notice { padding: 12px 0; border-bottom: 1px solid var(--zf-sand); background: #fff8e7; color: #6c552b; font-size: 13px; text-align: center; }

@media (max-width: 1080px) {
  .zf-header-inner { gap: 15px; }
  .zf-nav { gap: 14px; }
  .zf-nav a { font-size: 13px; }
  .zf-header-tools .zf-control:nth-child(2) { display: none; }
  .zf-artifact-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .zf-footer-grid { grid-template-columns: 1.3fr 1fr 1fr; }
  .zf-footer-grid > :last-child { grid-column: 2 / 4; }
}

@media (max-width: 760px) {
  /* Keep inherited block and WooCommerce copy at a compact, readable phone scale.
     Archive/block templates do not always receive .zf-site; component headings
     retain their own explicit design tokens below. */
  body { font-size: 16px; line-height: 1.65; }
  :root { --zf-container: min(100% - 32px, 650px); }
  .zf-tilebar { height: 11px; }
  .zf-header-inner { min-height: 63px; justify-content: space-between; }
  .zf-brand { gap: 7px; }
  .zf-brand-mark { width: 29px; height: 29px; font-size: 15px; }
  .zf-brand-name { font-size: 21px; }
  .zf-menu-toggle { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; color: var(--zf-ink); background: transparent; font-size: 23px; }
  .zf-nav { position: absolute; top: 63px; right: 0; left: 0; display: none; padding: 12px 22px 18px; border-bottom: 1px solid var(--zf-sand); background: var(--zf-paper); box-shadow: var(--zf-shadow); }
  .zf-nav.is-open { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
  .zf-nav a { padding: 13px 0; border-bottom: 1px solid var(--zf-line); }
  .zf-nav a::after { bottom: 7px; }
  .zf-header-tools { gap: 0; }
  .zf-header-tools .zf-control, .zf-icon-link small { display: none; }
  .zf-icon-link { min-width: 36px; }
  .zf-section { padding: 55px 0; }
  .zf-title-row { align-items: flex-start; flex-direction: column; margin-bottom: 24px; }
  .zf-heading { font-size: 32px; }
  .zf-hero, .zf-hero-inner { min-height: 530px; }
  .zf-hero-art { object-position: 66% center; }
  .zf-hero-media::before { background: linear-gradient(90deg, rgba(250,246,240,.98), rgba(250,246,240,.84) 53%, rgba(250,246,240,.27)); }
  .zf-hero-copy { max-width: 345px; padding: 52px 0 142px; }
  .zf-hero-copy h1 { font-size: 49px; }
  .zf-hero-copy h1 + p { margin-top: 15px; font-size: 20px; }
  .zf-hero-copy .zf-hero-note { margin-bottom: 22px; font-size: 13px; }
  .zf-hero-seal { display: none; }
  .zf-portals { grid-template-columns: 1fr; gap: 13px; }
  .zf-portal { min-height: 145px; }
  .zf-artifact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .zf-artifact-card { min-height: 280px; }
  .zf-artifact-image { height: 135px; }
  .zf-artifact-image .zf-symbol { font-size: 61px; }
  .zf-artifact-image .zf-family-text { display: none; }
  .zf-artifact-body { padding: 13px; }
  .zf-badges { min-height: 20px; gap: 4px; }
  .zf-badge { min-height: 19px; padding: 1px 6px; font-size: 9px; }
  .zf-artifact-card h3 { margin: 8px 0 4px; font-size: 19px; }
  .zf-artifact-number { font-size: 10px; }
  .zf-artifact-meta { padding-top: 10px; }
  .zf-artifact-meta span { display: none; }
  .zf-artifact-meta a { font-size: 12px; }
  .zf-page-hero { padding: 45px 0 35px; }
  .zf-catalog-layout { display: block; padding-top: 28px; }
  .zf-filter { display: flex; gap: 8px; overflow-x: auto; margin-bottom: 20px; padding: 6px 0 11px; border: 0; background: transparent; }
  .zf-filter h2, .zf-filter-note { display: none; }
  .zf-filter a { flex: 0 0 auto; padding: 8px 12px; border: 1px solid var(--zf-sand); border-radius: 999px; }
  .zf-filter a.active { color: #fff; border-color: var(--zf-porcelain); background: var(--zf-porcelain); }
  .zf-artifact-detail { display: block; padding: 31px 0 55px; }
  .zf-detail-media { min-height: 360px; }
  .zf-detail-media .zf-symbol { height: 360px; font-size: 150px; }
  .zf-detail-main { padding-top: 26px; }
  .zf-detail-specs { grid-template-columns: 1fr; }
  .zf-footer { padding-top: 45px; }
  .zf-footer-grid { grid-template-columns: 1fr 1fr; gap: 28px 20px; }
  .zf-footer-grid > :first-child { grid-column: 1 / -1; }
  .zf-footer-grid > :last-child { grid-column: auto; }
  .zf-contact-identity { padding: 21px 17px; }
  .zf-contact-identity-list { grid-template-columns: 1fr; gap: 13px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
}
/* production-account-entry-explicit-label: explicit customer access in the custom PHP header. */
.zf-account-link { gap: 5px; min-width: 94px; text-decoration: none; }
.zf-account-link .zf-account-text { display: inline !important; font-size: 11px; line-height: 1; white-space: nowrap; }
.zf-nav-account-link { display: none; }
@media (max-width: 760px) {
  .zf-header-tools .zf-account-link { display: inline-flex; min-width: 94px; padding: 0 5px; color: var(--zf-cinnabar); }
  .zf-header-tools .zf-account-link .zf-account-text { display: inline !important; font-size: 10px; }
  .zf-nav-account-link { display: block; }
}
/* production-mobile-account-entry-v2: keep the header compact; expose the named account action inside the mobile menu. */
@media (max-width: 760px) {
  .zf-header-tools .zf-account-link {
    flex: 0 0 44px;
    width: 44px;
    min-width: 44px;
    min-height: 44px;
    padding: 0;
    overflow: hidden;
  }
  .zf-header-tools .zf-account-link .zf-account-text {
    display: none !important;
  }
  .zf-header-tools .zf-account-link > span[aria-hidden="true"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 44px;
    font-size: 18px;
  }
  .zf-nav-account-link {
    display: block;
    min-height: 44px;
  }
}


/* 强制显示移动端登录/注册文字 - 修复版 2026-09-17 */
@media (max-width: 760px) {
  body .zf-header-tools .zf-account-link {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 90px !important;
    max-width: none !important;
    padding: 0 8px !important;
    overflow: visible !important;
  }
  body .zf-header-tools .zf-account-link .zf-account-text {
    display: inline !important;
    font-size: 10px !important;
    opacity: 1 !important;
    visibility: visible !important;
  }
}

/* 最终修复：移动端登录按钮完整显示 - 2026-09-17 16:55 */
@media (max-width: 760px) {
  body .zf-header-tools .zf-account-link {
    flex: 0 0 auto !important;
    width: 100px !important;
    min-width: 100px !important;
    max-width: 100px !important;
    padding: 0 6px !important;
    overflow: visible !important;
    white-space: nowrap !important;
    font-size: 9px !important;
  }
  body .zf-header-tools .zf-account-link .zf-account-text {
    display: inline !important;
    font-size: 9px !important;
    line-height: 1.2 !important;
    opacity: 1 !important;
    visibility: visible !important;
    white-space: nowrap !important;
  }
  body .zf-header-tools .zf-account-link > span[aria-hidden=true] {
    margin-right: 2px !important;
    font-size: 12px !important;
  }
}

/* 移动端隐藏國家/地區按鈕，為登入/註冊騰出空間 - 2026-09-17 */
@media (max-width: 760px) {
  /* 隱藏國家/地區按鈕 */
  body .zf-header-tools button[data-market-open] {
    display: none !important;
  }
  
  /* 優化登入/註冊按鈕 */
  body .zf-header-tools .zf-account-link {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 80px !important;
    max-width: none !important;
    padding: 0 10px !important;
    overflow: visible !important;
    white-space: nowrap !important;
  }
  
  body .zf-header-tools .zf-account-link .zf-account-text {
    display: inline !important;
    font-size: 11px !important;
    line-height: 1.3 !important;
    opacity: 1 !important;
    visibility: visible !important;
    white-space: nowrap !important;
  }
  
  body .zf-header-tools .zf-account-link > span[aria-hidden=true] {
    margin-right: 4px !important;
    font-size: 14px !important;
  }
}
















/* 移动端登入/註冊按钮 - 正常字间距版 2026-09-17 19:15 */
@media (max-width: 760px) {
  /* 隐藏國家/地區按钮 */
  body .zf-header-tools button[data-market-open] {
    display: none !important;
  }
  
  /* 登入/註冊按钮 */
  body .zf-header-tools .zf-icon-link.zf-account-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0 !important;  /* 改为 0，使用正常字间距 */
    flex: 0 0 auto !important;
    width: auto !important;
    height: 32px !important;
    padding: 0 8px !important;
    border: 1px solid transparent !important;
    border-radius: 999px !important;
    background-color: transparent !important;
    white-space: nowrap !important;
    overflow: visible !important;
  }
  
  /* 红点图标 */
  body .zf-header-tools .zf-icon-link.zf-account-link > span[aria-hidden="true"] {
    display: inline !important;
    font-size: 10px !important;
    margin: 0 !important;
  }
  
  /* 显示文字「登入/註冊」 */
  body .zf-header-tools .zf-icon-link.zf-account-link .zf-account-text {
    font-size: 0 !important;
    width: auto !important;
    overflow: visible !important;
    margin: 0 !important;
  }
  
  body .zf-header-tools .zf-icon-link.zf-account-link .zf-account-text::before {
    content: '登入/註冊' !important;
    font-size: 9px !important;
    color: var(--zf-cinnabar) !important;
    display: inline !important;
    white-space: nowrap !important;
    margin-left: 0.1em !important;  /* 添加一点点间距，相当于正常字间距 */
  }
}

/* ZFSY-MOBILE-ACCOUNT-SPACING-20260918: compact red indicator and member label without reducing the 44px control height. */
@media (max-width: 760px) {
  body .zf-header-tools .zf-icon-link.zf-account-link {
    gap: 4px !important;
    min-width: 0 !important;
    width: auto !important;
    padding: 0 8px !important;
  }

  body .zf-header-tools .zf-icon-link.zf-account-link > span[aria-hidden="true"] {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    font-size: 10px !important;
    line-height: 1 !important;
  }

  body .zf-header-tools .zf-icon-link.zf-account-link .zf-account-text::before {
    margin-left: 0 !important;
  }
}

/* ZFSY-MOBILE-HEADER-SAFE-INSET-20260918: preserve 16px visual insets so account controls do not touch the right viewport edge. */
@media (max-width: 760px) {
  body .zf-header .zf-header-inner {
    width: calc(100% - 32px) !important;
    max-width: 650px !important;
    box-sizing: border-box !important;
  }
}

/* ZFSY-MOBILE-HEADER-TOOL-CONTAINMENT-20260918: prevent header tool items from extending beyond the mobile safe inset. */
@media (max-width: 760px) {
  body .zf-header .zf-header-tools {
    flex: 0 1 auto !important;
    min-width: 0 !important;
    margin-left: auto !important;
  }
}

/* ZFSY-MOBILE-ACCOUNT-HALF-CHARACTER-OFFSET-20260918: move account entry left by half of the current 9px label character width. */
@media (max-width: 760px) {
  body .zf-header .zf-header-tools .zf-icon-link.zf-account-link {
    margin-right: 0.5em !important;
  }
}
