/*
 * CIGARFIN 茄臻 — Design System v7 「明亮木盒 · 现代藏家」
 * Product-first layout with a single functional motif: the cigar-band spec strip.
 */

/* 移动端触控优化（2026-09-07）：防文字膨胀 + 去点按延迟/双击缩放 */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
button, a, input, select, textarea, label { touch-action: manipulation; }
input, select, textarea { -webkit-appearance: none; appearance: none; }
input, select, textarea:focus { font-size: var(--fs-xl); line-height: var(--lh-xl); } /* iOS 兜底：聚焦时也 ≥16px */

/* 全站字体：2026-09-06 起改用系统字体栈（PingFang SC / Microsoft YaHei 等），
 * 移除自托管 Noto Sans SC 全量 CJK 字体（4 个字重约 4.5MB，拖慢首屏）。
 * 视觉对中文用户几乎无差，加载大幅提速。libre-caslon-display 拉丁字体保留（24KB）。 */
/* ═══════════════════ TOKENS ═══════════════════ */
:root {
    --cf-paper: #F0EFEC;
    --cf-paper-2: #E8E2D8;
    --cf-paper-3: #D8D1C6;
    --cf-card: #FCFAF6;
    --cf-ink: #1C1A17;
    --cf-brown: #5A4636;
    --cf-brown-deep: #211A15;
    --cf-cedar: #8E6547;
    --cf-gold: #805033;
    --cf-gold-soft: #B79B6B;
    --cf-red: #641F1B;
    --cf-success: #355D49;
    --cf-muted: #726E68;
    --cf-muted-dim: #A39B91;
    --cf-line: #DCD5CB;
    --cf-line-soft: rgba(33, 26, 21, .11);
    --cf-line-light: rgba(244, 241, 235, .18);
    --cf-font-display: "Noto Sans SC", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;

    /* 圆角刻度 v2（2026-09-11 方向 B · 直角微圆）—— 全站只用这 4 档 + 真圆 50% */
    --r-xs: 2px;   /* 小标记：列表符号、复选框 */
    --r-s: 3px;    /* 按钮、次级控件、下拉 */
    --r-m: 4px;    /* 输入框、卡片、面板、提示框 */
    --r-l: 5px;    /* 大区块、图片、弹窗 */

    /* ═══════════════════════════════════════════════════════════
       排版刻度 v1（2026-09-11 建立）
       背景：此前全站有 **52 种**「字号/行高」组合，比例从 1.00 到 2.10 混乱无章。
       规则：**行高随字号反向变化** —— 小字紧凑、大字宽松。
         ≤11px → 1.40 ｜ 12–13px → 1.45 ｜ 14–16px → 1.60 ｜ 17–22px → 1.40 ｜ ≥24px → 1.25
       ═══════════════════════════════════════════════════════════ */
    --fs-2xs: 10px;  --lh-2xs: 1.45;   /* 角标 / eyebrow */
    --fs-xs:  11px;  --lh-xs:  1.40;   /* 极小注释 */
    --fs-s:   12px;  --lh-s:   1.45;   /* 提示 / 法务 / 次要说明 */
    --fs-m:   13px;  --lh-m:   1.45;   /* 卡片元信息 / 按钮 */
    --fs-base:14px;  --lh-base:1.60;   /* 正文 */
    --fs-lg:  15px;  --lh-lg:  1.60;   /* 卡片标题 / 强调正文 */
    --fs-xl:  16px;  --lh-xl:  1.60;   /* 表单 / 区块小标题 */
    --fs-2xl: 18px;  --lh-2xl: 1.40;   /* 小标题 */
    --fs-3xl: 22px;  --lh-3xl: 1.40;   /* 区块标题 */
    --fs-4xl: 26px;  --lh-4xl: 1.25;   /* 页面标题（移动） */
    --fs-5xl: 34px;  --lh-5xl: 1.25;   /* 页面标题（桌面） */
    /* ⚠️ 刻度例外：**按钮/单行控件**允许使用紧凑行高 1.2
       （高度由 padding 决定，行高只影响文字在按钮内的垂直位置；
         若强行套 1.55 会让小按钮显得虚高）—— 见 排版体系.md「例外」一节 */
    --fs-6xl: 44px;  --lh-6xl: 1.20;   /* 大标题 */
    --fs-7xl: 56px;  --lh-7xl: 1.20;   /* Hero 标题 */
    --fs-8xl: 72px;  --lh-8xl: 1.15;   /* 首屏主标题 */

    /* 间距刻度 v2（2026-09-11 · 4px 基准）—— 4/8/12/16/24/32/48/64/96 */
    
    /* 🔴 2026-09-11：补上遗漏的 --sp-0 —— 被引用 15 次却从未定义，
       导致该声明整条失效（padding/gap/margin 回退成 0）。
       症状：产品卡左右内边距丢失、「完整规格」表格贴左边框。 */
    --sp-0: 2px;
    --sp-1: 4px;   --sp-2: 8px;   --sp-3: 12px;
    --sp-4: 16px;  --sp-5: 24px;  --sp-6: 32px;
    --sp-7: 48px;  --sp-8: 64px;  --sp-9: 96px;
    --cf-font-body: "Noto Sans SC", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
    /* 旧变量名重映射到新刻度（保留兼容） */
    --cf-radius-xs: var(--r-xs);
    --cf-radius-s: var(--r-s);
    --cf-radius-input: var(--r-m);
    --cf-radius-m: var(--r-m);
    --cf-radius-l: var(--r-l);
}

/* ═══════════════════ RESET ═══════════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: var(--fs-xl); line-height: var(--lh-xl); -webkit-font-smoothing: antialiased; overflow-x: clip; }
body {
    font-family: var(--cf-font-body);
    background: var(--cf-paper);
    color: var(--cf-ink);
    line-height: var(--lh-lg);
    font-size: var(--fs-lg);
    overflow-x: clip;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: color .2s; }
button { cursor: pointer; font: inherit; background: none; border: 0; color: inherit; }
ul, ol { list-style: none; }
::selection { background: var(--cf-gold-soft); color: var(--cf-brown-deep); }
:focus-visible { outline: 2px solid var(--cf-gold); outline-offset: 3px; }
input[type="checkbox"], input[type="radio"] { accent-color: var(--cf-gold); }

/* ═══════════════════ TYPOGRAPHY ═══════════════════ */
h1, h2, h3, .cf-display {
    font-family: var(--cf-font-display);
    font-weight: 600;
    line-height: 1.22;
    color: var(--cf-ink);
}
h1 { font-size: var(--fs-8xl); line-height: var(--lh-8xl); letter-spacing: -.025em; }
h2 { font-size: var(--fs-6xl); line-height: 1.20; letter-spacing: -.018em; }
h3 { font-size: var(--fs-3xl); line-height: var(--lh-3xl); letter-spacing: -.01em; }
h1 em, h2 em { font-style: normal; font-weight: 600; color: var(--cf-gold); }
.cf-lede { font-size: var(--fs-xl); color: var(--cf-muted); max-width: 620px; line-height: 1.60; }
.cf-price { font-family: var(--cf-font-body); font-size: var(--fs-2xl); line-height: var(--lh-2xl); font-weight: 500; color: var(--cf-ink); letter-spacing: 0; }
.cf-price small { display: inline; font-size: var(--fs-m); line-height: var(--lh-m); color: var(--cf-muted); font-family: var(--cf-font-body); letter-spacing: 0; }
.cf-price-status { display: block; color: var(--cf-muted); font-size: var(--fs-s); line-height: var(--lh-s); }
/* 价格模块 v4：第一行折算¥（最大）+ 第二行结算货币价 + 第三行小字说明 */
.cf-price-main { display: block; font-weight: 600; }
.cf-price-main__label { font-size: var(--fs-xl); line-height: 1.60; font-weight: 400; color: var(--cf-muted); letter-spacing: .06em; margin-right: .3em; }
.cf-price-sub { display: block; margin-top: 3px; font-size: var(--fs-m); font-weight: 500; color: var(--cf-ink); letter-spacing: 0; line-height: var(--lh-m); }
.cf-price-note { display: block; margin-top: 5px; font-size: var(--fs-s); font-weight: 400; color: var(--cf-muted); letter-spacing: 0; line-height: var(--lh-s); }
/* 交货地标识（卡片用，小字小圆角） */
.cf-delivery-badge {
    display: inline-flex; align-items: center;
    margin-top: 6px; padding: var(--sp-1) var(--sp-3);
    font-size: var(--fs-s); line-height: var(--lh-s); letter-spacing: .08em; color: var(--cf-gold);
    border: 1px solid color-mix(in srgb, var(--cf-gold) 45%, transparent);
    border-radius: var(--cf-radius-xs);
}
.cf-pdp__price .cf-price-sub { font-size: var(--fs-base); line-height: var(--lh-base); margin-top: 8px; }
.cf-pdp__price .cf-price-note { margin-top: 8px; }

/* 拉丁小字眉题 */
.cf-kicker, .cf-eyebrow {
    display: inline-flex; align-items: center; gap: var(--sp-4);
    font-family: var(--cf-font-body);
    font-size: var(--fs-s); line-height: var(--lh-s); font-weight: 500;
    letter-spacing: .16em; text-transform: uppercase;
    color: var(--cf-cedar);
}
.cf-eyebrow::before, .cf-eyebrow::after { display: none; }

/* 菱形分隔饰 */
.cf-ornament { display: none; }
.cf-ornament::before, .cf-ornament::after { content: ''; flex: 0 0 64px; height: 1px; background: var(--cf-line); }
.cf-ornament i { width: 7px; height: 7px; background: var(--cf-gold); transform: rotate(45deg); display: block; }

/* content pages */
.cf-content { font-size: var(--fs-lg); line-height: var(--lh-lg); color: var(--cf-brown); }
@media (max-width: 768px) {
    .cf-content a[href^="mailto:"], .cf-content a[href^="tel:"] { display: inline-block; padding: var(--sp-2) 0; }
}
/* 详情页面包屑 */
.cf-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-2); font-size: var(--fs-m); line-height: var(--lh-m); color: var(--cf-muted); margin-bottom: 18px; }
.cf-breadcrumb a { color: var(--cf-muted); display: inline-flex; align-items: center; min-height: 44px; letter-spacing: 0; }
.cf-breadcrumb a:hover { color: var(--cf-gold); }
.cf-breadcrumb__sep { color: var(--cf-muted-dim); }
.cf-breadcrumb__current { color: var(--cf-brown); }
@media (max-width: 768px) {
    .cf-breadcrumb { font-size: var(--fs-s); line-height: var(--lh-s); flex-wrap: nowrap; overflow-x: auto; white-space: nowrap; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
    .cf-breadcrumb::-webkit-scrollbar { display: none; }
    .cf-breadcrumb a { min-height: 44px; }
    .cf-breadcrumb__current { overflow: hidden; text-overflow: ellipsis; max-width: 40vw; }
}
.cf-content h2 { font-size: var(--fs-5xl); line-height: var(--lh-5xl); margin: var(--sp-7) 0 var(--sp-4); }
.cf-content h3 { font-size: var(--fs-3xl); line-height: 1.40; margin: var(--sp-6) 0 var(--sp-3); }
.cf-content p { margin-bottom: 18px; }
.cf-content ol, .cf-content ul { padding-left: 24px; margin-bottom: 18px; }
.cf-content ol { list-style: decimal; }
.cf-content ul { list-style: disc; }
.cf-content li { margin-bottom: 8px; }
.cf-content a { color: var(--cf-gold); border-bottom: 1px solid var(--cf-line); }
.cf-content strong { color: var(--cf-ink); font-weight: 600; }
.cf-copy-intro { max-width: 760px; margin-bottom: 42px; }
.cf-copy-intro h2 { margin-top: 12px; }
.cf-copy-intro p:last-child { color: var(--cf-muted); }
.cf-process-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; padding: 0 !important; margin: 0 0 var(--sp-7) !important; list-style: none !important; border-top: 1px solid var(--cf-line); }
.cf-process-list li { margin: 0; padding: var(--sp-5) var(--sp-5) var(--sp-5) 0; border-bottom: 1px solid var(--cf-line-soft); }
.cf-process-list li::before { content: counter(list-item, decimal-leading-zero); display: block; margin-bottom: 16px; color: var(--cf-cedar); font-family: var(--cf-font-display); font-size: var(--fs-2xl); line-height: var(--lh-2xl); }
.cf-process-list strong { display: block; margin-bottom: 10px; font-size: var(--fs-base); line-height: var(--lh-base); }
.cf-process-list span { display: block; color: var(--cf-muted); font-size: var(--fs-m); line-height: var(--lh-m); }
.cf-copy-note { padding: var(--sp-6) var(--sp-6); background: var(--cf-card); border-left: 3px solid var(--cf-cedar); }
.cf-copy-note h2 { margin-top: 0; }
.cf-copy-note p:last-child { margin-bottom: 0; }
.cf-faq-list { border-top: 1px solid var(--cf-line); }
.cf-faq-list details { border-bottom: 1px solid var(--cf-line); }
.cf-faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-5); min-height: 64px; padding: var(--sp-4) 0; color: var(--cf-ink); font-family: var(--cf-font-display); font-size: var(--fs-3xl); line-height: 1.40; cursor: pointer; list-style: none; }
.cf-faq-list summary::-webkit-details-marker { display: none; }
.cf-faq-list summary::after { content: '+'; flex: 0 0 24px; color: var(--cf-cedar); font-family: var(--cf-font-body); font-size: var(--fs-3xl); line-height: var(--lh-3xl); font-weight: 400; text-align: center; }
.cf-faq-list details[open] summary::after { content: '−'; }
.cf-faq-list details p { max-width: 760px; margin: 0 0 var(--sp-5); color: var(--cf-muted); }

/* ═══════════════════ LAYOUT ═══════════════════ */
.cf-wrap { width: min(1240px, calc(100% - 64px)); margin: 0 auto; }
.cf-section { padding: clamp(var(--sp-8), 7vw, var(--sp-9)) 0; }
.cf-section--dark { background: var(--cf-brown-deep); color: var(--cf-paper); }
.cf-section--dark h2, .cf-section--dark h3 { color: var(--cf-paper); }
.cf-section--dark .cf-lede { color: var(--cf-muted-dim); }
.cf-section__head { display: flex; align-items: end; justify-content: space-between; gap: var(--sp-6); text-align: left; margin-bottom: clamp(var(--sp-6), 4vw, var(--sp-7)); }
.cf-section__head h2 { margin-top: var(--sp-2); }
.cf-text-link { display: inline-flex; align-items: center; gap: var(--sp-2); min-height: 44px; color: var(--cf-ink); font-size: var(--fs-m); line-height: var(--lh-m); font-weight: 500; }
.cf-text-link:hover { color: var(--cf-cedar); }
.cf-text-link .cf-icon { width: 15px; height: 15px; }
.cf-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(var(--sp-5), 4vw, var(--sp-7)); }
.cf-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(var(--sp-4), 2.5vw, var(--sp-6)); }

/* 首页品牌墙 */
.cf-brandwall { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(var(--sp-3), 1.8vw, var(--sp-5)); }
.cf-brandwall__item {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--sp-3);
    padding: var(--sp-5) var(--sp-4) var(--sp-4);
    background: #fff; border: 1px solid var(--cf-line-soft); border-radius: var(--cf-radius-m);
    transition: border-color .2s, transform .2s;
}
.cf-brandwall__item:hover { border-color: var(--cf-gold); transform: translateY(-2px); }
.cf-brandwall__logo { display: flex; align-items: center; justify-content: center; height: 44px; }
.cf-brandwall__logo img { max-height: 40px; width: auto; max-width: 130px; object-fit: contain; }
.cf-brandwall__name { font-size: var(--fs-s); color: var(--cf-muted); text-align: center; line-height: var(--lh-s); }
@media (max-width: 980px) { .cf-brandwall { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px) { .cf-brandwall { grid-template-columns: repeat(2, 1fr); } .cf-brandwall__name { font-size: var(--fs-s); line-height: var(--lh-s); } }

@keyframes cf-rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.cf-rise { animation: cf-rise .9s cubic-bezier(.22, .8, .3, 1) both; }
.cf-rise--1 { animation-delay: .1s; }
.cf-rise--2 { animation-delay: .24s; }
.cf-rise--3 { animation-delay: .38s; }

/* ═══════════════════ HEADER ═══════════════════ */
.cf-nav {
    position: sticky; top: 0; z-index: 100;
    background: var(--cf-paper); /* 完全不透明（原为半透明毛玻璃） */
    border-bottom: 1px solid var(--cf-line-soft);
}
.cf-nav__row {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    height: 76px;
    padding: 0 clamp(var(--sp-5), 3.5vw, var(--sp-7));
    gap: var(--sp-5);
}
.cf-nav__links { display: flex; align-items: center; gap: clamp(var(--sp-4), 2.2vw, var(--sp-6)); }
.cf-nav__links--right { justify-content: flex-end; }
.cf-nav__links a {
    display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px;
    font-size: var(--fs-m); line-height: var(--lh-m); font-weight: 500;
    letter-spacing: .02em;
    color: var(--cf-brown);
    padding: var(--sp-2) var(--sp-0);
    position: relative;
    white-space: nowrap;
}
.cf-nav__links a::after {
    content: ''; position: absolute; left: 50%; bottom: 0;
    width: 0; height: 1px; background: var(--cf-gold);
    transition: width .25s ease, left .25s ease;
}
.cf-nav__links a:hover { color: var(--cf-gold); }
.cf-nav__links a:hover::after { left: 0; width: 100%; }

/* 品牌 logo */
.cf-nav__brand { display: flex; align-items: center; justify-content: center; min-height: 44px; }
.cf-nav__logo { height: 38px; width: auto; display: block; }
/* 文字版品牌标（logo 设计稿到位后换回 img） */
.cf-brand-text { display: block; font-weight: 600; letter-spacing: .26em; color: var(--cf-ink); line-height: 1.40; font-size: var(--fs-3xl); }
.cf-brand-text--footer { font-size: var(--fs-4xl); line-height: var(--lh-4xl); letter-spacing: .3em; text-align: center; margin: 0 auto var(--sp-4); }

.cf-nav__side { display: flex; align-items: center; justify-content: flex-end; gap: clamp(var(--sp-4), 2.2vw, var(--sp-6)); }
.cf-nav__actions { display: flex; align-items: center; gap: var(--sp-4); justify-content: flex-end; }
.cf-nav__mobile { display: none; }
.cf-nav__icon-link { display: flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; color: var(--cf-brown); }
.cf-nav__icon-link:hover { color: var(--cf-gold); }
.cf-nav__icon-link svg { width: 19px; height: 19px; }
.cf-nav__text-link { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; font-size: var(--fs-m); line-height: var(--lh-m); letter-spacing: .02em; color: var(--cf-brown); white-space: nowrap; }
.cf-nav__text-link:hover { color: var(--cf-gold); }
.cf-nav__cart-link { position: relative; }
.cf-nav__cart-count {
    position: absolute; top: -7px; right: -9px;
    background: var(--cf-red); color: var(--cf-paper);
    width: 17px; height: 17px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: var(--fs-2xs); font-weight: 700; line-height: var(--lh-2xs);
}
.cf-nav__menu-foot { display: none; }

/* search */
.cf-search {
    position: absolute; top: 100%; left: 0; right: 0;
    background: var(--cf-paper);
    border-bottom: 1px solid var(--cf-line);
    padding: var(--sp-5) 0;
    display: none;
    box-shadow: 0 12px 24px rgba(42, 33, 22, .08);
}
.cf-search.is-open { display: block; }
.cf-search form { display: flex; max-width: 600px; margin: 0 auto; border-bottom: 1px solid var(--cf-gold); }
.cf-search input[type="search"] {
    flex: 1; background: none; border: 0;
    font-family: var(--cf-font-display); font-size: var(--fs-3xl); line-height: var(--lh-3xl); letter-spacing: .06em;
    color: var(--cf-ink); padding: var(--sp-3) var(--sp-1);
}
.cf-search input:focus { outline: none; }
.cf-search input::placeholder { color: var(--cf-muted-dim); }
.cf-search button { color: var(--cf-gold); font-size: var(--fs-base); line-height: var(--lh-base); letter-spacing: .2em; padding: 0 var(--sp-2); }

/* hamburger */
.cf-nav__toggle { display: none; width: 44px; height: 44px; flex-direction: column; align-items: center; justify-content: center; gap: var(--sp-2); padding: 0; position: relative; z-index: 102; }
.cf-nav__toggle-bar { width: 22px; height: 1.5px; background: var(--cf-ink); transition: transform .3s, opacity .3s; }
.cf-nav__toggle[aria-expanded="true"] .cf-nav__toggle-bar:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
.cf-nav__toggle[aria-expanded="true"] .cf-nav__toggle-bar:nth-child(2) { opacity: 0; }
.cf-nav__toggle[aria-expanded="true"] .cf-nav__toggle-bar:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }

/* ═══════════════════ BUTTONS ═══════════════════ */
.btn, .woocommerce .button, .woocommerce a.button, .woocommerce button.button,
.woocommerce input.button, .woocommerce #respond input#submit {
    display: inline-flex; align-items: center; justify-content: center; gap: var(--sp-3);
    padding: var(--sp-3) var(--sp-5);
    border: 1px solid var(--cf-ink);
    border-radius: var(--cf-radius-m);
    background: transparent;
    font-family: var(--cf-font-body);
    font-size: var(--fs-m); font-weight: 500;
    letter-spacing: .04em;
    color: var(--cf-ink);
    transition: background-color .2s, color .2s, border-color .2s, transform .12s; cursor: pointer;
    min-height: 50px; line-height: var(--lh-m);
}
.btn:active, .woocommerce .button:active, .woocommerce a.button:active, .woocommerce button.button:active,
.woocommerce input.button:active { transform: scale(.97); }
.btn:hover, .woocommerce .button:hover, .woocommerce a.button:hover,
.woocommerce button.button:hover, .woocommerce input.button:hover {
    background: var(--cf-ink); color: var(--cf-paper); border-color: var(--cf-ink);
}
.btn--primary, .woocommerce .button.alt, .woocommerce a.button.alt,
.woocommerce button.button.alt, .woocommerce input.button.alt,
.woocommerce #place_order {
    background: var(--cf-brown-deep); border-color: var(--cf-brown-deep);
    color: var(--cf-paper);
}
.btn--primary:hover, .woocommerce .button.alt:hover, .woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover, .woocommerce #place_order:hover {
    background: var(--cf-cedar); border-color: var(--cf-cedar);
    color: var(--cf-paper);
}
.btn--quiet { padding-left: 0; padding-right: 0; border-color: transparent; min-height: 44px; }
.btn--quiet:hover { background: transparent; color: var(--cf-cedar); border-color: transparent; }
.btn--sm { padding: var(--sp-2) var(--sp-4); font-size: var(--fs-s); line-height: var(--lh-s); min-height: 40px; letter-spacing: .03em; }
.btn .cf-icon { width: 15px; height: 15px; }

/* ═══════════════════ HERO ═══════════════════ */
.cf-hero { padding: clamp(var(--sp-6), 5vw, var(--sp-8)) 0 clamp(var(--sp-7), 7vw, var(--sp-9)); position: relative; }
.cf-hero__grid { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: clamp(var(--sp-7), 7vw, var(--sp-9)); align-items: center; }
.cf-hero__copy { max-width: 560px; }
.cf-hero h1 { margin: var(--sp-4) 0 var(--sp-5); }
.cf-hero .cf-lede { margin-bottom: var(--sp-6); }
.cf-hero__cta { display: flex; align-items: center; gap: var(--sp-5); flex-wrap: wrap; }
.cf-hero__visual { position: relative; background: var(--cf-paper-2); border-radius: var(--cf-radius-l); }
.cf-hero__reveal { aspect-ratio: 3 / 2; overflow: hidden; background: var(--cf-cedar); border-radius: var(--cf-radius-l); animation: cf-box-reveal .9s cubic-bezier(.22,.8,.3,1) both; }
.cf-hero__reveal img { width: 100%; height: 100%; object-fit: cover; }
/* 公开层 hero 字标面板（不用产品图，见 front-page.php 注释） */
.cf-hero__panel { aspect-ratio: 3 / 2; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--sp-4); background: var(--cf-brown, #2b2118); border-radius: var(--cf-radius-l); animation: cf-box-reveal .9s cubic-bezier(.22,.8,.3,1) both; }
.cf-hero__panel-mark { font-size: var(--fs-8xl); line-height: var(--lh-8xl); font-weight: 600; letter-spacing: .3em; padding-left: .3em; color: var(--cf-gold); }
.cf-hero__panel-line { font-size: var(--fs-m); line-height: var(--lh-m); font-weight: 500; letter-spacing: .42em; padding-left: .42em; color: rgba(244, 241, 235, .9); }
.cf-hero__panel-sub { font-size: var(--fs-s); line-height: var(--lh-s); letter-spacing: .12em; color: rgba(244, 241, 235, .55); }
/* 2026-09-02：原「服务特点」胶囊条改为图片下方一行小字（去掉按钮感） */
.cf-hero__meta {
    display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-1) var(--sp-3);
    margin-top: 14px; color: var(--cf-muted);
    font-size: var(--fs-s); line-height: var(--lh-s); letter-spacing: .04em;
}
.cf-hero__meta span { white-space: nowrap; }
.cf-hero__meta i { font-style: normal; color: var(--cf-muted-dim); }
@keyframes cf-box-reveal { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0); } }

/* ═══════════════════ RESERVATION FLOW ═══════════════════ */
.cf-flowline { border-top: 1px solid var(--cf-line-soft); padding: clamp(var(--sp-7), 6vw, var(--sp-8)) 0; }
.cf-flowline .cf-wrap { display: grid; grid-template-columns: minmax(180px, .65fr) minmax(0, 2fr) auto; gap: clamp(var(--sp-5), 4vw, var(--sp-8)); align-items: end; }
.cf-flowline__intro h2 { margin-top: 8px; font-size: var(--fs-5xl); line-height: var(--lh-5xl); }
.cf-flowline__steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-4); }
.cf-flowline__steps li { border-left: 1px solid var(--cf-line); padding-left: var(--sp-4); font-size: var(--fs-m); font-weight: 500; line-height: var(--lh-m); }
.cf-flowline__steps li span { display: block; margin-bottom: var(--sp-2); color: var(--cf-cedar); font-family: var(--cf-font-display); font-size: var(--fs-2xl); line-height: var(--lh-2xl); }

/* ═══════════════════ PRODUCT CARD ═══════════════════ */
.cf-product-card {
    position: relative; min-width: 0; background: transparent;
}
.cf-product-card__link { display: block; height: 100%; }
.cf-product-card__media { position: relative; aspect-ratio: 4/3; overflow: hidden; background: #fff; border-radius: var(--cf-radius-m); }
.cf-product-card__media img { width: 100%; height: 100%; object-fit: contain; padding: 6% 8%; transition: transform .55s cubic-bezier(.22, .8, .3, 1); }
.cf-product-card:hover .cf-product-card__media img { transform: scale(1.025); }
.cf-product-card__body { padding: var(--sp-4) var(--sp-0) var(--sp-1); }
.cf-product-card__origin {
    font-size: var(--fs-s); line-height: var(--lh-s); font-weight: 500;
    letter-spacing: .12em; text-transform: uppercase;
    color: var(--cf-cedar); margin-bottom: 7px;
}
.cf-product-card__title { min-height: 2.45em; font-size: var(--fs-2xl); line-height: var(--lh-2xl); margin-bottom: 11px; }
.cf-product-card__title a:hover { color: var(--cf-gold); }
.cf-spec-band { display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-2); color: var(--cf-muted); }
.cf-spec-band span { display: inline-flex; align-items: center; justify-content: center; text-align: center; padding: var(--sp-1) var(--sp-2); font-size: var(--fs-s); line-height: var(--lh-s); border: 1px solid var(--cf-line-soft); border-radius: var(--cf-radius-xs); }
.cf-spec-band span .cf-vitola-cn { font-weight: 500; }
.cf-spec-band span .cf-vitola-en { font-size: var(--fs-xs); line-height: var(--lh-xs); color: var(--cf-muted); margin-left: 3px; }
.cf-product-card__footer { padding-top: var(--sp-2); }  /* 🔴 同上 12→8px */
.cf-product-card__footer .cf-price { display: block; font-size: var(--fs-5xl); font-weight: 600; line-height: var(--lh-5xl); }
.cf-product-card__footer .cf-price-sub { font-size: var(--fs-lg); line-height: var(--lh-lg); font-weight: 400; color: var(--cf-muted); }
.cf-product-card__footer .cf-price-note { display: none; }

/* ═══════════════════ PROCESS — 罗马数字 ═══════════════════ */
.cf-steps { max-width: 860px; margin: 0 auto; }
.cf-steps__row {
    display: grid;
    grid-template-columns: 90px minmax(0, .8fr) minmax(0, 1.6fr);
    gap: clamp(var(--sp-4), 3.5vw, var(--sp-7));
    align-items: baseline;
    padding: clamp(var(--sp-5), 3vw, var(--sp-6)) 0;
    border-bottom: 1px solid var(--cf-line-light);
}
.cf-steps__row:last-child { border-bottom: 0; }
.cf-steps__num {
    font-family: var(--cf-font-display);
    font-size: var(--fs-5xl); line-height: var(--lh-5xl);
    font-weight: 500;
    color: var(--cf-gold-soft);
    letter-spacing: .06em;
}
.cf-steps__title { font-size: var(--fs-4xl); line-height: var(--lh-4xl); }
.cf-steps__desc { font-size: var(--fs-base); color: var(--cf-muted-dim); line-height: var(--lh-base); }

/* ═══════════════════ RULES ═══════════════════ */
.cf-rules li { padding: 0 0 var(--sp-5); margin-bottom: 26px; border-bottom: 1px solid var(--cf-line-soft); }
.cf-rules li:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.cf-rules strong {
    display: block;
    font-family: var(--cf-font-display); font-weight: 600;
    font-size: var(--fs-2xl); line-height: var(--lh-2xl); letter-spacing: .03em;
    color: var(--cf-ink);
    margin-bottom: 8px;
}
.cf-rules strong::before { content: '◆ '; color: var(--cf-gold); font-size: var(--fs-2xs); line-height: var(--lh-2xs); vertical-align: 3px; }
.cf-rules p { font-size: var(--fs-m); color: var(--cf-muted); line-height: var(--lh-m); }

/* ═══════════════════ SHOP ═══════════════════ */
.cf-shop { padding: clamp(var(--sp-6), 5vw, var(--sp-8)) 0 clamp(var(--sp-8), 8vw, var(--sp-9)); }
.cf-shop__head { max-width: 720px; margin-bottom: clamp(26px, 3.5vw, 42px); }
.cf-shop__head h1 { font-size: var(--fs-7xl); line-height: 1.20; margin-top: 10px; }
.cf-shop__head .cf-lede { margin-top: 14px; }

/* 品牌筛选条 */
.cf-brandbar {
    display: flex; flex-wrap: wrap; gap: var(--sp-2);
    margin: -6px 0 var(--sp-4);
}
.cf-brandbar a {
    display: inline-flex; align-items: baseline; gap: var(--sp-1);
    min-height: 38px; padding: var(--sp-2) var(--sp-4);
    border: 1px solid var(--cf-line-soft);
    border-radius: var(--cf-radius-s);
    background: var(--cf-card);
    font-size: var(--fs-m); line-height: var(--lh-m); color: var(--cf-brown);
    transition: border-color .2s, color .2s, background .2s;
    white-space: nowrap;
}
.cf-brandbar a small { font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-muted-dim); }
.cf-brandbar a:hover { border-color: var(--cf-gold); color: var(--cf-gold); }
.cf-brandbar a.is-active { background: var(--cf-brown-deep); border-color: var(--cf-brown-deep); color: var(--cf-paper); }
.cf-brandbar a.is-active small { color: var(--cf-gold-soft); }
.cf-brandbar--sub { margin-top: -8px; }
.cf-brandbar--sub a { min-height: 32px; padding: var(--sp-1) var(--sp-3); font-size: var(--fs-s); line-height: var(--lh-s); border-style: dashed; border-radius: var(--cf-radius-xs); }
.cf-brandbar--sub a.is-active { border-style: solid; }
@media (max-width: 640px) {
    .cf-brandbar { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 6px; -webkit-overflow-scrolling: touch; }
}
.cf-shop__toolbar {
    display: flex; justify-content: space-between; align-items: center; gap: var(--sp-5);
    padding: var(--sp-3) 0; margin-bottom: 32px;
    border-top: 1px solid var(--cf-line-soft); border-bottom: 1px solid var(--cf-line-soft);
    flex-wrap: wrap;
}
.woocommerce-result-count { font-size: var(--fs-s); line-height: var(--lh-s); letter-spacing: 0; color: var(--cf-muted); margin: 0; }
.woocommerce-ordering select {
    background: var(--cf-card); color: var(--cf-brown);
    border: 1px solid var(--cf-line-soft);
    padding: var(--sp-3) var(--sp-4); font-size: var(--fs-m); line-height: var(--lh-m);
    font-family: var(--cf-font-body);
}
.cf-shop__products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(var(--sp-5), 3vw, var(--sp-6)); margin: 0; }
.woocommerce-pagination { margin-top: 56px; }
.woocommerce-pagination ul { display: flex; flex-wrap: wrap; gap: var(--sp-2); justify-content: center; border: 0; }
.woocommerce-pagination ul li { border: 0; }
.woocommerce-pagination .page-numbers {
    display: flex; align-items: center; justify-content: center;
    min-width: 44px; height: 44px; padding: 0 var(--sp-2);
    border: 1px solid var(--cf-line-soft);
    font-size: var(--fs-m); line-height: var(--lh-m); color: var(--cf-muted);
    background: var(--cf-card);
}
.woocommerce-pagination .page-numbers.current { border-color: var(--cf-gold); color: var(--cf-gold); }
.woocommerce-pagination .page-numbers:hover:not(.current) { border-color: var(--cf-line); color: var(--cf-ink); }
@media (max-width: 640px) { .woocommerce-pagination .page-numbers { min-width: 44px; height: 44px; font-size: var(--fs-m); line-height: var(--lh-m); } .woocommerce-pagination { margin-top: 40px; } }

/* ═══════════════════ PRODUCT DETAIL ═══════════════════ */
.cf-pdp { padding: clamp(var(--sp-6), 5vw, var(--sp-8)) 0 clamp(var(--sp-8), 7vw, var(--sp-9)); }
.cf-pdp__grid { display: grid; grid-template-columns: minmax(0, 1.28fr) minmax(360px, .8fr); gap: clamp(var(--sp-6), 3.5vw, var(--sp-8)); align-items: start; }

/* 同系列规格侧栏（hacico 式） */
.cf-pdp__series { position: sticky; top: 104px; max-height: calc(100vh - 140px); overflow-y: auto; }
.cf-pdp__series-title { font-size: var(--fs-m); line-height: var(--lh-m); font-weight: 600; letter-spacing: .06em; color: var(--cf-ink); padding-bottom: 10px; margin-bottom: 4px; border-bottom: 1px solid var(--cf-line); }
.cf-pdp__series-item {
    display: block; padding: var(--sp-2) 0 var(--sp-2) var(--sp-3);
    border-bottom: 1px solid var(--cf-line-soft);
    border-left: 2px solid transparent;
    font-size: var(--fs-m); color: var(--cf-brown); line-height: var(--lh-m);
}
.cf-pdp__series-item small { display: block; font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-muted-dim); margin-top: 2px; }
.cf-pdp__series-item:hover { color: var(--cf-gold); }
.cf-pdp__series-item.is-current { border-left-color: var(--cf-gold); color: var(--cf-ink); font-weight: 600; background: var(--cf-card); border-radius: 0 var(--cf-radius-s) var(--cf-radius-s) 0; }
.cf-pdp__gallery { min-width: 0; }
.cf-pdp__stage { position: relative; overflow: hidden; background: #fff; border: 1px solid var(--cf-line-soft); border-radius: var(--cf-radius-m); }
.cf-pdp__main-image {
    width: 100%; aspect-ratio: 4/3; object-fit: contain; padding: 3% 5%;
    transition: transform .18s ease-out; will-change: transform;
}
@media (hover: hover) and (pointer: fine) and (min-width: 981px) {
    .cf-pdp__stage { cursor: zoom-in; }
    .cf-pdp__main-image.is-zoomed { transform: scale(2); cursor: zoom-out; }
}
.cf-pdp__thumbs { display: flex; gap: var(--sp-3); margin-top: 12px; overflow-x: auto; padding-bottom: 4px; }
.cf-pdp__thumb { flex: 0 0 88px; border: 1px solid transparent; padding: var(--sp-1); background: #fff; border-radius: var(--cf-radius-s); }
.cf-pdp__thumb img { width: 100%; aspect-ratio: 1; object-fit: contain; }
.cf-pdp__thumb.is-active { border-color: var(--cf-red); }
.cf-pdp__info { position: sticky; top: 104px; display: flex; flex-direction: column; gap: var(--sp-5); }
.cf-pdp__title { font-size: var(--fs-6xl); line-height: 1.20; margin: 0; }
.cf-pdp__line-zh { font-size: var(--fs-lg); line-height: var(--lh-lg); color: var(--cf-gold); letter-spacing: .08em; margin: -8px 0 0; }
.cf-product-card__line { font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-gold); margin-top: 2px; letter-spacing: .04em; }
.cf-spec-band--pdp { color: var(--cf-ink); }
.cf-spec-band--pdp span { padding-top: 10px; padding-bottom: 10px; font-size: var(--fs-s); line-height: var(--lh-s); }
.cf-pdp__price-block { display: grid; gap: var(--sp-1); }
.cf-pdp__price { font-size: var(--fs-5xl); font-weight: 600; line-height: var(--lh-5xl); }
.cf-pdp__desc { font-size: var(--fs-base); color: var(--cf-muted); line-height: var(--lh-base); max-width: 560px; }
.cf-flavors { display: grid; gap: var(--sp-2); }
.cf-flavors__label { font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-muted); }
.cf-flavors > div { display: flex; gap: var(--sp-2); flex-wrap: wrap; }
.cf-flavors > div span { padding: var(--sp-1) var(--sp-3); border: 1px solid var(--cf-line-soft); background: var(--cf-card); font-size: var(--fs-s); line-height: var(--lh-s); border-radius: var(--cf-radius-xs); }
.cf-pdp__specs-table { margin-top: 2px; }
/* 完整规格手风琴（默认收起） */
.cf-pdp__specs-acc { border: 1px solid var(--cf-line-soft); border-radius: var(--cf-radius-m); background: var(--cf-card); overflow: hidden; }
.cf-pdp__specs-title { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); font-size: var(--fs-m); line-height: var(--lh-m); font-weight: 600; letter-spacing: .06em; color: var(--cf-ink); padding: var(--sp-4) var(--sp-4); margin: 0; cursor: pointer; list-style: none; }
.cf-pdp__specs-title::-webkit-details-marker { display: none; }
.cf-caret { width: 8px; height: 8px; border-right: 2px solid var(--cf-muted); border-bottom: 2px solid var(--cf-muted); transform: rotate(45deg); transition: transform .2s; flex: none; }
.cf-pdp__specs-acc[open] .cf-caret { transform: rotate(-135deg); }
.cf-pdp__specs-body { padding: var(--sp-0) var(--sp-4) var(--sp-3); }
.cf-pdp__specs { width: 100%; border-collapse: collapse; }
.cf-pdp__specs tr { border-bottom: 1px solid var(--cf-line-soft); }
.cf-pdp__specs tr:last-child { border-bottom: 0; }
.cf-pdp__specs th { font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-muted); font-weight: 400; text-align: left; padding: var(--sp-2) 0; width: 42%; vertical-align: top; }
.cf-pdp__specs td { font-size: var(--fs-m); line-height: var(--lh-m); font-weight: 500; color: var(--cf-ink); text-align: left; padding: var(--sp-2) 0; }
.cf-pdp__pickup-note { font-size: var(--fs-s); color: var(--cf-muted); line-height: var(--lh-s); border-left: 2px solid var(--cf-red); padding-left: 14px; }

/* 交货地点选择器（EMS 双交货地必选） */
.cf-delivery-select { border: 0; display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-2); flex: 1 1 100%; }  /* 🔴 2026-09-11 改等宽两列 */
/* 🔴 2026-09-11 修复（客户报 Davidoff 商品页溢出/错乱）：
   原 `flex: 1 1 100%` 中的 100% 在**纵向 flex 里指的是高度** ✗（与之前按钮那次同一个坑），
   且 `flex-grow:1` 会强占空间 → 面板被撑乱、其余元素被挤压。
   Davidoff 商品（_cf_delivery=HK）渲染的是静态 <p>，而 EMS 商品渲染 <fieldset.cf-delivery-select>，
   两者布局规则不一致才暴露此 bug。现让静态版与 fieldset 表现一致。 */
.cf-delivery-static { font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-muted); flex: 0 0 auto; align-self: stretch; margin: 0; }
/* 面板内所有直接子元素不得超出表单宽度（防御性，避免同类溢出复发） */
.mpanel form.cart > * { max-width: 100%; min-width: 0; }
.cf-delivery-select legend { grid-column: 1 / -1; font-size: var(--fs-s); line-height: var(--lh-s); font-weight: 500; color: var(--cf-muted); margin-bottom: var(--sp-1); padding: 0; }
.cf-delivery-select__option { position: relative; cursor: pointer; }
.cf-delivery-select__option input { position: absolute; opacity: 0; pointer-events: none; }
.cf-delivery-select__option span {
    display: inline-flex; align-items: center; gap: var(--sp-2);
    padding: 0 var(--sp-3); min-height: 44px; width: 100%; justify-content: flex-start;
    border: 1px solid var(--cf-line-soft); border-radius: var(--cf-radius-s);
    background: var(--cf-card);
    transition: border-color .2s, background .2s, color .2s;
}
.cf-delivery-select__option strong { font-size: var(--fs-m); line-height: var(--lh-m); font-weight: 500; color: var(--cf-brown); transition: color .2s; }
.cf-delivery-select__option span::before {
    content: ''; width: 12px; height: 12px; border-radius: 50%;
    border: 1px solid var(--cf-line); flex: none; transition: border-color .2s, box-shadow .2s;
}
.cf-delivery-select__option:hover span { border-color: var(--cf-gold); }
.cf-delivery-select__option input:checked + span { border-color: var(--cf-gold); background: #9a7b450f; }  /* 🔴 选中加淡金底，减少描边堆叠感 */
.cf-delivery-select__option input:checked + span::before { border-color: var(--cf-gold); box-shadow: inset 0 0 0 3px var(--cf-gold); }
.cf-delivery-select__option input:checked + span strong { color: var(--cf-ink); }
.cf-delivery-select__option input:focus-visible + span { outline: 2px solid var(--cf-gold); outline-offset: 2px; }
/* 未选交货地点被拦截时的高亮 */
.cf-delivery-select.is-required .cf-delivery-select__option span { border-color: var(--cf-red); box-shadow: 0 0 0 3px #641f1b1a; }
.cf-delivery-select__legend--alert { color: var(--cf-red); font-weight: 500; }
@media (max-width: 480px) {
    .cf-delivery-select__option span { padding: 0 var(--sp-2); min-height: 44px; }
}
.cf-pdp__full-desc { padding: clamp(var(--sp-7), 6vw, var(--sp-9)) 0; }
.cf-pdp__full-desc .cf-content { max-width: 760px; }
.woocommerce .quantity { display: inline-flex; border: 1px solid var(--cf-line); background: var(--cf-card); border-radius: var(--cf-radius-s); overflow: hidden; }
.woocommerce .quantity .qty {
    width: 56px; height: 46px; background: transparent; border: 0;
    color: var(--cf-ink); font-size: var(--fs-xl); line-height: var(--lh-xl); text-align: center;
    font-family: var(--cf-font-body);
}
.woocommerce form.cart { display: flex; gap: var(--sp-4); align-items: stretch; flex-wrap: wrap; }
.woocommerce form.cart .single_add_to_cart_button { flex: 1; min-width: 200px; }
.cf-qty-label { align-self: flex-start; font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-muted); letter-spacing: 0; }  /* 🔴 2026-09-11 与配送地点 legend 统一 */

/* ═══════════════════ LIGHTBOX（点击放大看图器） ═══════════════════ */
.cf-lightbox { position: fixed; inset: 0; z-index: 200; display: none; }
.cf-lightbox.is-open { display: block; }
.cf-lightbox__backdrop { position: absolute; inset: 0; background: rgba(23, 17, 13, .92); animation: cf-lb-fade .25s ease both; }
.cf-lightbox__stage {
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    overflow: hidden; touch-action: none;
}
.cf-lightbox__img {
    max-width: 88vw; max-height: 82vh;
    object-fit: contain; user-select: none; -webkit-user-drag: none;
    cursor: grab; touch-action: none;
}
.cf-lightbox.is-open .cf-lightbox__img { animation: cf-lb-pop .28s cubic-bezier(.22,.8,.3,1); }
.cf-lightbox__img:active { cursor: grabbing; }
.cf-lightbox__close, .cf-lightbox__prev, .cf-lightbox__next {
    position: absolute; z-index: 2;
    display: flex; align-items: center; justify-content: center;
    width: 46px; height: 46px; border-radius: 50%;
    background: rgba(244, 241, 235, .12); color: #F4F1EB;
    font-size: var(--fs-3xl); line-height: var(--lh-3xl);
    transition: background .2s;
}
.cf-lightbox__close:hover, .cf-lightbox__prev:hover, .cf-lightbox__next:hover { background: rgba(244, 241, 235, .28); }
.cf-lightbox__close { top: max(14px, env(safe-area-inset-top)); right: 16px; font-size: var(--fs-4xl); line-height: var(--lh-4xl); }
.cf-lightbox__prev { left: 14px; top: 50%; transform: translateY(-50%); }
.cf-lightbox__next { right: 14px; top: 50%; transform: translateY(-50%); }
.cf-lightbox__counter {
    position: absolute; left: 50%; bottom: max(16px, env(safe-area-inset-bottom)); transform: translateX(-50%);
    color: rgba(244, 241, 235, .75); font-size: var(--fs-s); line-height: var(--lh-s); letter-spacing: .12em;
}
.cf-lightbox__hint {
    position: absolute; left: 50%; bottom: max(40px, calc(env(safe-area-inset-bottom) + 24px)); transform: translateX(-50%);
    color: rgba(244, 241, 235, .5); font-size: var(--fs-xs); line-height: var(--lh-xs); white-space: nowrap;
    transition: opacity .8s;
}
.cf-lightbox__hint.is-faded { opacity: 0; }
body.cf-lightbox-open { overflow: hidden; }
@keyframes cf-lb-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes cf-lb-pop { from { opacity: 0; transform: scale(.92); } to { opacity: 1; transform: scale(1); } }

/* ═══════════════════ FORMS ═══════════════════ */
.woocommerce .form-row { margin-bottom: 20px; }
.woocommerce label, .woocommerce-form__label { display: block; font-size: var(--fs-s); line-height: var(--lh-s); font-weight: 500; letter-spacing: 0; color: var(--cf-muted); margin-bottom: 8px; }
.woocommerce .required { color: var(--cf-red); }
.woocommerce input[type="text"], .woocommerce input[type="email"],
.woocommerce input[type="tel"], .woocommerce input[type="password"],
.woocommerce input[type="number"], .woocommerce select,
.woocommerce textarea, .woocommerce .input-text {
    width: 100%;
    background: var(--cf-card);
    border: 1px solid var(--cf-line-soft);
    border-radius: var(--cf-radius-s);
    color: var(--cf-ink);
    padding: var(--sp-3) var(--sp-4);
    font-size: var(--fs-xl); line-height: var(--lh-xl); font-family: var(--cf-font-body); /* iOS ≥16px 防自动放大 */
    transition: border-color .2s;
}
.woocommerce input:focus, .woocommerce select:focus, .woocommerce textarea:focus { outline: none; border-color: var(--cf-gold); }
.woocommerce ::placeholder { color: var(--cf-muted-dim); }
.woocommerce .form-row-first, .woocommerce .form-row-last { width: 100%; float: none; }

/* notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
    border: 1px solid var(--cf-line-soft);
    border-left: 3px solid var(--cf-gold);
    border-radius: var(--cf-radius-s);
    background: var(--cf-card);
    color: var(--cf-brown);
    padding: var(--sp-4) var(--sp-5);
    font-size: var(--fs-base); line-height: var(--lh-base);
    margin-bottom: 28px;
    list-style: none;
}
.woocommerce-error { border-left-color: var(--cf-red); }
.woocommerce-message .button, .woocommerce-info .button { float: right; padding: var(--sp-2) var(--sp-4); min-height: 0; font-size: var(--fs-s); line-height: var(--lh-s); }
@media (max-width: 480px) {
    .woocommerce-message, .woocommerce-info { display: flex; flex-direction: column; align-items: flex-start; gap: var(--sp-3); }
    .woocommerce-message .button, .woocommerce-info .button { float: none; order: 2; align-self: flex-start; }
}

/* tables */
.woocommerce table.shop_table { width: 100%; border-collapse: collapse; border: 1px solid var(--cf-line-soft); font-size: var(--fs-base); line-height: var(--lh-base); background: var(--cf-card); }
.woocommerce table.shop_table th {
    text-align: left; font-size: var(--fs-s); line-height: var(--lh-s); font-weight: 600;
    letter-spacing: .2em; color: var(--cf-gold);
    padding: var(--sp-4) var(--sp-4); border-bottom: 1px solid var(--cf-line);
}
.woocommerce table.shop_table td { padding: var(--sp-4); border-bottom: 1px solid var(--cf-line-soft); color: var(--cf-brown); vertical-align: middle; }
.woocommerce table.shop_table tr:last-child td { border-bottom: 0; }
.woocommerce table.shop_table .product-name a { color: var(--cf-ink); font-family: var(--cf-font-display); font-size: var(--fs-2xl); line-height: var(--lh-2xl); font-weight: 600; }
.woocommerce table.shop_table .product-name a:hover { color: var(--cf-gold); }
.woocommerce table.shop_table .product-thumbnail img { width: 56px; height: auto; }
/* 购物车手机端：商品行转卡片（参考京东/淘宝式手机商品行） */
@media (max-width: 768px) {
    .woocommerce-cart-form table.shop_table, .woocommerce-cart-form table.shop_table tbody,
    .woocommerce-cart-form table.shop_table tr, .woocommerce-cart-form table.shop_table td { display: block; width: 100%; }
    .woocommerce-cart-form table.shop_table thead { display: none; }
    .woocommerce-cart-form table.shop_table tbody { border: 0; }
    .woocommerce-cart-form table.shop_table tr.cart_item {
        border: 1px solid var(--cf-line-soft); border-radius: var(--cf-radius-m);
        background: var(--cf-card); margin-bottom: 16px; padding: var(--sp-4) var(--sp-4) var(--sp-3);
        position: relative; clear: both; overflow: hidden;
    }
    .woocommerce-cart-form table.shop_table tr.cart_item td { border: 0; padding: 0; float: left; }
    .woocommerce-cart-form table.shop_table .product-remove { position: absolute; top: 8px; right: 8px; }
    .woocommerce-cart-form table.shop_table .product-thumbnail { width: 84px; margin-right: 14px; }
    .woocommerce-cart-form table.shop_table .product-thumbnail img { width: 84px; border-radius: var(--cf-radius-s); }
    .woocommerce-cart-form table.shop_table .product-name { width: calc(100% - 98px); padding-right: 20px !important; }
    .woocommerce-cart-form table.shop_table .product-name a { font-size: var(--fs-lg); line-height: var(--lh-lg); }
    .woocommerce-cart-form table.shop_table .product-price,
    .woocommerce-cart-form table.shop_table .product-subtotal { width: 50%; margin-top: 10px; }
    .woocommerce-cart-form table.shop_table .product-price { color: var(--cf-muted); font-size: var(--fs-s); line-height: var(--lh-s); }
    .woocommerce-cart-form table.shop_table .product-price::before { content: attr(data-title) '：'; color: var(--cf-muted-dim); }
    .woocommerce-cart-form table.shop_table .product-subtotal { text-align: right; font-weight: 600; color: var(--cf-ink); font-size: var(--fs-base); line-height: var(--lh-base); }
    .woocommerce-cart-form table.shop_table .product-subtotal::before { content: attr(data-title) '：'; font-weight: 400; color: var(--cf-muted-dim); font-size: var(--fs-s); line-height: var(--lh-s); }
    .woocommerce-cart-form table.shop_table .product-quantity { width: 100%; margin-top: 10px; }
    .woocommerce-cart-form table.shop_table .product-quantity .quantity { margin: 0; }
    .woocommerce-cart-form table.shop_table .product-quantity .qty { height: 38px; width: 72px; }
}
.woocommerce .product-remove .remove {
    color: var(--cf-muted-dim); font-size: var(--fs-2xl); line-height: var(--lh-2xl);
    width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid var(--cf-line-soft); border-radius: 50%;
}
.woocommerce .product-remove .remove:hover { color: var(--cf-red); border-color: var(--cf-red); background: none; }
.woocommerce .amount { font-family: var(--cf-font-display); font-weight: 600; color: var(--cf-brown); font-size: var(--fs-xl); line-height: var(--lh-xl); }
.woocommerce .cart-collaterals .cart_totals { border: 1px solid var(--cf-line-soft); padding: var(--sp-6); background: var(--cf-card); max-width: 420px; margin-left: auto; }
.woocommerce .cart_totals h2 { font-size: var(--fs-3xl); line-height: var(--lh-3xl); margin-bottom: 16px; }
.woocommerce .order-total .amount { font-size: var(--fs-4xl); line-height: var(--lh-4xl); }
.woocommerce .wc-proceed-to-checkout { margin-top: 20px; text-align: right; }
/* 手机端：购物车「去结账/提交预订」按钮加大（全宽主按钮） */
@media (max-width: 768px) {
    .woocommerce .wc-proceed-to-checkout .checkout-button { width: 100%; text-align: center; padding: var(--sp-4) var(--sp-5); font-size: var(--fs-lg); line-height: var(--lh-lg); min-height: 52px; }
}

/* ═══════════════════ CHECKOUT ═══════════════════ */
.cf-checkout { padding: clamp(var(--sp-7), 6vw, var(--sp-9)) 0; }
.cf-checkout__head { max-width: 720px; margin-bottom: clamp(32px, 4vw, 48px); }
.cf-checkout__head h1 { font-size: var(--fs-7xl); line-height: 1.20; margin-top: 18px; }
.cf-checkout__head .cf-lede { margin-top: 14px; }
form.woocommerce-checkout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 400px); gap: clamp(var(--sp-6), 5vw, var(--sp-8)); align-items: start; }
/* 显式归位：WC 的标题与订单框是独立 grid item，否则自动落位会把订单框挤到左列（2026-08-24） */
form.woocommerce-checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; }
form.woocommerce-checkout #order_review_heading { grid-column: 2; grid-row: 1; }
form.woocommerce-checkout .woocommerce-checkout-review-order { grid-column: 2; grid-row: 2; }
.woocommerce-checkout #customer_details .col-1, .woocommerce-checkout #customer_details .col-2 { width: 100%; float: none; }
.woocommerce-checkout h3, .woocommerce-checkout-review-order h3, #order_review_heading {
    font-family: var(--cf-font-display); font-size: var(--fs-4xl); line-height: var(--lh-4xl); font-weight: 600;
    color: var(--cf-ink); margin-bottom: 24px;
}
.woocommerce-checkout-review-order {
    position: sticky; top: 110px;
    background: var(--cf-card);
    border: 1px solid var(--cf-line);
    padding: clamp(var(--sp-5), 3vw, var(--sp-6));
}
.woocommerce-checkout-review-order .shop_table { border: 0; background: transparent; }
.woocommerce-checkout-review-order .shop_table th, .woocommerce-checkout-review-order .shop_table td { padding-left: 0; padding-right: 0; }
.woocommerce-checkout-payment { margin-top: 24px; border-top: 1px solid var(--cf-line); padding-top: 24px; }
.woocommerce #place_order { width: 100%; }
.cf-checkout__note { margin-top: 16px; font-size: var(--fs-m); color: var(--cf-muted); line-height: var(--lh-m); }
/* 手机端：结账条款/隐私政策链接加大触控 */
@media (max-width: 768px) {
    .woocommerce-checkout .woocommerce-terms-and-conditions-wrapper a,
    .woocommerce-checkout .woocommerce-privacy-policy-text a,
    .woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .woocommerce-form__label a { display: inline-block; padding: var(--sp-2) 0; }
}
/* 购物车商品行删除按钮加大触控 */
.woocommerce-cart-form a.remove, .woocommerce-cart a.remove, .cart_item a.remove { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; min-height: 40px; }

/* order received */
.woocommerce-order { max-width: 760px; margin: 0 auto; padding: clamp(var(--sp-7), 6vw, var(--sp-9)) 0; }
.woocommerce-thankyou-order-received { font-family: var(--cf-font-display); font-size: var(--fs-5xl); line-height: var(--lh-5xl); color: var(--cf-ink); margin-bottom: 28px; }
.woocommerce-order-overview { display: flex; flex-wrap: wrap; border: 1px solid var(--cf-line-soft); margin-bottom: 40px; background: var(--cf-card); }
.woocommerce-order-overview li { flex: 1; min-width: 140px; padding: var(--sp-4); border-right: 1px solid var(--cf-line-soft); font-size: var(--fs-s); line-height: var(--lh-s); letter-spacing: .12em; color: var(--cf-muted); }
.woocommerce-order-overview li:last-child { border-right: 0; }
.woocommerce-order-overview li strong { display: block; margin-top: 6px; font-size: var(--fs-lg); line-height: var(--lh-lg); color: var(--cf-ink); }

/* ═══════════════════ ORDER STATUS ═══════════════════ */
.cf-order-payment { margin: var(--sp-6) 0; }
.cf-notice { padding: clamp(var(--sp-6), 4vw, var(--sp-7)); border: 1px solid var(--cf-gold); outline: 1px solid var(--cf-line-soft); outline-offset: 4px; background: var(--cf-card); text-align: center; }
.cf-notice h3 { color: var(--cf-gold); margin-bottom: 18px; font-size: var(--fs-4xl); line-height: var(--lh-4xl); }
.cf-qr { display: inline-block; padding: var(--sp-4); background: #fff; border: 1px solid var(--cf-line-soft); margin-bottom: 18px; }
.cf-qr img { max-width: 200px; }
.cf-pay-note { margin-top: 14px; font-size: var(--fs-m); line-height: var(--lh-m); color: var(--cf-muted); }
.cf-pickup-code { margin: var(--sp-5) 0; }
.cf-code-label { display: block; font-size: var(--fs-s); line-height: var(--lh-s); letter-spacing: .24em; color: var(--cf-muted); margin-bottom: 8px; }
.cf-code-value { font-size: var(--fs-6xl); line-height: 1.20; font-weight: 700; letter-spacing: .28em; color: var(--cf-gold); font-family: var(--cf-font-display); }
.cf-pickup-note { font-size: var(--fs-m); color: var(--cf-muted); max-width: 400px; margin: 0 auto; line-height: var(--lh-m); }

/* ═══════════════════ MY ACCOUNT ═══════════════════ */
.cf-account { padding: clamp(var(--sp-7), 6vw, var(--sp-9)) 0; }
.cf-account__masthead {
    display: flex; align-items: flex-end; justify-content: space-between; gap: var(--sp-5);
    margin-bottom: clamp(32px, 4vw, 48px);
    padding-bottom: clamp(20px, 3vw, 28px);
    border-bottom: 1px solid var(--cf-line-soft);
}
.cf-account__masthead h1 { font-size: var(--fs-6xl); line-height: 1.20; margin-top: 14px; }
.cf-tier-badge {
    display: inline-block; padding: var(--sp-2) var(--sp-4); margin: 0 0 var(--sp-2);
    border: 1px solid var(--cf-gold); border-radius: var(--r-xs);
    font-size: var(--fs-s); line-height: var(--lh-s); letter-spacing: .22em; white-space: nowrap;
    color: var(--cf-gold);
}
@media (max-width: 640px) {
    .cf-account__masthead { flex-direction: column; align-items: center; text-align: center; }
    .cf-tier-badge { margin: 0; }
}
.cf-tier-badge--vip { background: var(--cf-gold); color: var(--cf-paper); }
.woocommerce-account .woocommerce-MyAccount-navigation { float: left; width: 220px; border: 1px solid var(--cf-line-soft); background: var(--cf-card); }
.woocommerce-account .woocommerce-MyAccount-navigation ul li { border-bottom: 1px solid var(--cf-line-soft); }
.woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child { border-bottom: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
    display: flex; align-items: center;
    padding: var(--sp-4) var(--sp-5); min-height: 48px;
    font-size: var(--fs-base); line-height: var(--lh-base); letter-spacing: .1em;
    color: var(--cf-brown);
    border-left: 2px solid transparent;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover { color: var(--cf-gold); }
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a { color: var(--cf-gold); border-left-color: var(--cf-gold); }
.woocommerce-account .woocommerce-MyAccount-content {
    float: right; width: calc(100% - 220px - clamp(28px, 4vw, 48px));
    border: 1px solid var(--cf-line-soft);
    background: var(--cf-card);
    padding: clamp(var(--sp-5), 4vw, var(--sp-7));
    min-height: 300px;
}
.cf-account__wc::after, .woocommerce-account .woocommerce::after { content: ''; display: table; clear: both; }
.woocommerce .order-status { display: inline-block; padding: var(--sp-1) var(--sp-3); border: 1px solid var(--cf-line); font-size: var(--fs-s); line-height: var(--lh-s); letter-spacing: .1em; color: var(--cf-gold); }
.woocommerce-MyAccount-content mark { background: none; color: var(--cf-gold); }
.woocommerce-MyAccount-content .woocommerce-Button { margin-top: 8px; }
.cf-account .woocommerce > h2 { display: none; }

/* guest auth card：标签页式，一次只显示一个表单（2026-08-22 第二阶段） */
.cf-account__guest { max-width: 480px; margin: 0 auto; text-align: center; }
.cf-account__guest .cf-lede { margin: var(--sp-4) auto 0; }
.cf-auth {
    margin-top: clamp(28px, 4vw, 40px);
    text-align: left;
    background: var(--cf-card);
    border: 1px solid var(--cf-line-soft);
    border-radius: var(--cf-radius-l);
    padding: clamp(var(--sp-5), 4vw, var(--sp-7));
}
.cf-auth__tabs {
    display: flex; gap: var(--sp-1); padding: var(--sp-1);
    margin-bottom: clamp(24px, 3vw, 32px);
    background: var(--cf-paper);
    border: 1px solid var(--cf-line-soft);
    border-radius: var(--cf-radius-m);
}
.cf-auth__tab {
    flex: 1; min-height: 48px; padding: var(--sp-3) var(--sp-4);
    border: 0; border-radius: var(--cf-radius-s); background: transparent; cursor: pointer;
    font-family: var(--cf-font-body); font-size: var(--fs-lg); line-height: var(--lh-lg); letter-spacing: .12em;
    color: var(--cf-muted);
    transition: background .2s ease, color .2s ease;
}
.cf-auth__tab:hover { color: var(--cf-ink); }
.cf-auth__tab.is-active { background: var(--cf-brown-deep); color: var(--cf-paper); }
.cf-auth__row { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); }
.cf-auth__lost { font-size: var(--fs-m); line-height: var(--lh-m); color: var(--cf-muted); }
.cf-auth__lost:hover { color: var(--cf-gold); }
.cf-auth__hint { margin-top: 16px; font-size: 12.5px; line-height: 1.9; color: var(--cf-muted); text-align: center; }
.woocommerce-form-login, .woocommerce-form-register { text-align: left; }
.woocommerce-form-login .button, .woocommerce-form-register .button { width: 100%; margin-top: 8px; }
.woocommerce-form-login__rememberme { display: inline-flex !important; align-items: center; gap: var(--sp-2); min-height: 44px; margin: 0; }
.woocommerce-form-login__rememberme input[type="checkbox"] { width: 18px; height: 18px; }
.cf-auth .woocommerce-form__label-for-checkbox { display: flex !important; align-items: center; gap: var(--sp-3); min-height: 44px; margin-bottom: 0; font-size: var(--fs-m); line-height: var(--lh-m); color: var(--cf-brown); }
.cf-auth .woocommerce-form__label-for-checkbox input[type="checkbox"] { width: 18px; height: 18px; flex: 0 0 auto; margin: 0; }
/* 忘记密码 / 重置密码：与登录注册同一卡片语言 */
.cf-account__guest .woocommerce-ResetPassword {
    margin-top: clamp(28px, 4vw, 40px);
    background: var(--cf-card);
    border: 1px solid var(--cf-line-soft);
    border-radius: var(--cf-radius-l);
    padding: clamp(var(--sp-5), 4vw, var(--sp-7));
    text-align: left;
}
.cf-account__guest .woocommerce-ResetPassword > p:first-child { margin-top: 0; color: var(--cf-muted); font-size: var(--fs-base); line-height: var(--lh-base); }
.cf-account__guest .woocommerce-ResetPassword .button { width: 100%; margin-top: 8px; }
.woocommerce-cart-form .product-name a { display: inline-flex; align-items: center; min-height: 44px; }
.woocommerce-cart-form a.remove { display: inline-flex !important; align-items: center; justify-content: center; width: 44px !important; height: 44px !important; }

/* ═══════════════════ FOOTER ═══════════════════ */
.cf-footer { background: var(--cf-brown-deep); color: var(--cf-muted-dim); padding: clamp(var(--sp-7), 7vw, var(--sp-9)) 0 var(--sp-6); }
.cf-footer__logo { height: 48px; width: auto; display: block; margin: 0 auto var(--sp-4); }
.cf-footer__motto { text-align: center; font-size: var(--fs-s); line-height: var(--lh-s); letter-spacing: .18em; color: var(--cf-gold-soft); margin-bottom: clamp(var(--sp-6), 5vw, var(--sp-8)); }
.cf-footer__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(var(--sp-5), 4vw, var(--sp-7)); max-width: 900px; margin: 0 auto; text-align: left; }
.cf-footer h3 { font-family: var(--cf-font-body); font-size: var(--fs-m); line-height: var(--lh-m); font-weight: 500; letter-spacing: .04em; color: var(--cf-gold-soft); margin-bottom: var(--sp-4); }
.cf-footer__grid a { color: var(--cf-muted-dim); font-size: var(--fs-base); line-height: var(--lh-base); display: flex; align-items: center; min-height: 44px; padding: var(--sp-1) 0; letter-spacing: 0; }
.cf-footer__grid a:hover { color: var(--cf-gold-soft); }
.cf-footer__bottom {
    margin-top: clamp(36px, 5vw, 56px); padding-top: 22px;
    border-top: 1px solid rgba(244, 238, 225, .1);
    display: flex; justify-content: space-between; flex-wrap: wrap; gap: var(--sp-2);
    font-size: var(--fs-s); line-height: var(--lh-s); letter-spacing: .08em; color: rgba(154, 139, 112, .7);
}

/* ═══════════════════ BRANDS INDEX ═══════════════════ */
.cf-brands { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(var(--sp-5), 3vw, var(--sp-6)); }
.cf-brands__group { background: #fff; border: 1px solid var(--cf-line-soft); border-radius: var(--cf-radius-m); padding: var(--sp-5) var(--sp-5); } /* 2026-09-07 品牌 logo 白底，分类框改纯白以协调 */
/* 🔴 2026-09-11 客户要求：分组标题字号**上调三个档位**（15px → 22px），国旗改长方形 —— 见下方 .cf-flag */
.cf-brands__origin { display: flex; align-items: center; gap: var(--sp-3); font-size: var(--fs-3xl); line-height: var(--lh-3xl); font-weight: 600; letter-spacing: .04em; padding-bottom: var(--sp-4); border-bottom: 1px solid var(--cf-line); }
/* 长方形国旗：3:2 比例，细边框，不拉伸变形 */
.cf-brands__flag { display: inline-flex; align-items: center; flex: 0 0 auto; }
.cf-flag { display: block; width: 42px; height: 28px; border: 1px solid var(--cf-line-soft); border-radius: 2px; box-shadow: 0 1px 2px rgba(33,26,21,.10); }
.cf-brands__list a {
    display: flex; justify-content: space-between; align-items: center; gap: var(--sp-3);
    padding: var(--sp-2) 0; border-bottom: 1px solid var(--cf-line-soft);
    font-size: var(--fs-base); line-height: var(--lh-base); color: var(--cf-brown);
}
.cf-brands__logo { flex: 0 0 84px; display: flex; align-items: center; }
.cf-brands__logo img { max-height: 30px; width: auto; max-width: 84px; object-fit: contain; }
.cf-brands__name { flex: 1; }
.cf-brands__list li:last-child a { border-bottom: 0; }
.cf-brands__list a:hover { color: var(--cf-gold); }
.cf-brands__list small { font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-muted-dim); white-space: nowrap; }
@media (max-width: 980px) { .cf-brands { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .cf-brands { grid-template-columns: 1fr; } }

/* ═══════════════════ PAGE HERO ═══════════════════ */
.cf-page-hero { padding: clamp(var(--sp-7), 6vw, var(--sp-8)) 0 clamp(var(--sp-6), 4vw, var(--sp-8)); border-bottom: 1px solid var(--cf-line-soft); }
.cf-page-hero h1 { margin-top: 12px; font-size: var(--fs-7xl); line-height: 1.20; }
.cf-page-hero .cf-ornament { margin-top: 24px; }

/* ═══════════════════ RESPONSIVE ═══════════════════ */
@media (max-width: 1080px) {
    .cf-nav__row { display: flex; justify-content: space-between; height: 64px; padding-left: 20px; padding-right: 16px; }
    .cf-nav__links { display: none; }
    .cf-nav__toggle { display: flex; order: 3; }
    .cf-nav__brand { order: 1; }
    .cf-nav__logo { height: 30px; }
    .cf-nav__side { order: 2; margin-left: auto; }
    .cf-nav__side .cf-nav__text-link { display: none; }
    /* 移动端保留搜索入口 */
    .cf-nav__side .cf-search__toggle { display: flex; }
    .cf-kicker, .cf-eyebrow { letter-spacing: .12em; font-size: var(--fs-s); line-height: var(--lh-s); }

    /* 右侧滑出菜单（深棕皮面，左边留白显示 logo） */
    .cf-nav { backdrop-filter: none; -webkit-backdrop-filter: none; }
    .cf-menu-backdrop { position: fixed; inset: 0; background: rgba(33,26,21,.45); z-index: 210; opacity: 0; pointer-events: none; transition: opacity .3s; }
    body.cf-menu-open .cf-menu-backdrop { opacity: 1; pointer-events: auto; }
    .cf-nav__mobile {
        position: fixed; top: 0; right: 0; bottom: auto; left: auto; height: auto; min-height: 340px; max-height: 82vh;
        width: min(75%, 460px); z-index: 220;
        background: var(--cf-brown-deep);
        display: flex; flex-direction: column;
        padding: var(--sp-5) var(--sp-5) var(--sp-7);
        overflow-y: auto;
        transform: translateX(100%);
        transition: transform .32s cubic-bezier(.22,.8,.3,1);
    }
    .cf-nav__mobile.is-open { transform: translateX(0); }
    .cf-nav__mobile > a {
        font-size: var(--fs-2xl); line-height: 1.40; font-weight: 600; letter-spacing: .02em;
        color: var(--cf-paper);
        padding: var(--sp-4) 0;
        border-bottom: 1px solid rgba(244, 238, 225, .12);
    }
    .cf-nav__mobile > a:hover { color: var(--cf-gold-soft); }
    .cf-nav__mobile > a::after { display: none; }
    .cf-nav__menu-profile { display: flex; align-items: center; gap: var(--sp-3); margin: var(--sp-2) 0 var(--sp-3); padding: var(--sp-4); border: 1px solid rgba(244,238,225,.25); border-radius: var(--cf-radius-m); background: rgba(244,238,225,.07); color: var(--cf-paper); font-size: var(--fs-base); line-height: var(--lh-base); font-weight: 600; text-decoration: none; }
    .cf-nav__menu-profile svg { width: 18px; height: 18px; color: var(--cf-gold-soft); }
    .cf-nav__menu-foot { margin-top: 8px; padding-top: 18px; }
    .cf-nav__menu-close { margin-top: 22px; align-self: flex-start; display: flex; align-items: center; justify-content: flex-start; padding: var(--sp-1) 0; border: 0; background: transparent; color: var(--cf-paper); cursor: pointer; }
    .cf-nav__menu-close svg { width: 20px; height: 20px; }
    .cf-nav__menu-close:hover { color: var(--cf-gold); }
    .cf-nav__menu-foot a { font-size: var(--fs-m); line-height: var(--lh-m); color: var(--cf-gold-soft); letter-spacing: .02em; }
    body.cf-menu-open { overflow: hidden; }
    body.cf-menu-open .cf-nav { background: transparent; box-shadow: none; border-bottom-color: transparent; }
    body.cf-menu-open .cf-nav__toggle-bar { background: var(--cf-paper); }
    body.cf-menu-open .cf-nav__brand, body.cf-menu-open .cf-nav__actions { z-index: 215; }
    body.cf-menu-open .cf-nav__logo { filter: invert(1) brightness(1.5) grayscale(1); }
    body.cf-menu-open .cf-nav__icon-link, body.cf-menu-open .cf-nav__text-link, body.cf-menu-open .cf-nav__action { color: var(--cf-paper); }
    body.cf-menu-open .cf-nav__action svg { color: var(--cf-paper); }
    .cf-nav__brand, .cf-nav__actions { position: relative; z-index: 102; }
}

@media (max-width: 980px) {
    .cf-shop__products, .cf-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cf-hero__grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: var(--sp-7); }
    .cf-flowline .cf-wrap { grid-template-columns: 1fr; align-items: start; }
    form.woocommerce-checkout { grid-template-columns: 1fr; }
    form.woocommerce-checkout #customer_details,
    form.woocommerce-checkout #order_review_heading,
    form.woocommerce-checkout .woocommerce-checkout-review-order { grid-column: auto; grid-row: auto; }
    .woocommerce-checkout-review-order { position: static; }
}

@media (max-width: 768px) {
    .cf-process-list { grid-template-columns: 1fr; }
    .cf-process-list li { padding: var(--sp-5) 0; }
    .cf-wrap { width: calc(100% - 40px); }
    h1 { font-size: var(--fs-6xl); line-height: 1.20; }
    .cf-section { padding: var(--sp-8) 0; }
    .cf-section__head { align-items: start; margin-bottom: 28px; }
    .cf-grid-3 { grid-template-columns: 1fr; }
    .cf-hero { padding-top: 30px; }
    .cf-hero__grid { grid-template-columns: 1fr; gap: var(--sp-6); }
    .cf-hero__copy { max-width: 620px; }
    .cf-hero__reveal { aspect-ratio: 3 / 2; }
    .cf-hero__meta { margin-top: 12px; font-size: var(--fs-s); line-height: var(--lh-s); }
    .cf-flowline__steps { grid-template-columns: repeat(2, 1fr); gap: var(--sp-5) var(--sp-4); }
    .cf-shop__products, .cf-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-5) var(--sp-4); }
    .cf-product-card__body { padding-top: 12px; }
    .cf-product-card__title { min-height: 2.5em; font-size: var(--fs-lg); line-height: var(--lh-lg); margin-bottom: 9px; }
    .cf-product-card__origin { font-size: var(--fs-s); line-height: var(--lh-s); }
    .cf-spec-band { flex-wrap: wrap; }
    .cf-spec-band span { flex: 0 1 auto; padding: var(--sp-2); white-space: nowrap; font-size: var(--fs-s); line-height: var(--lh-s); word-break: keep-all; }
    .cf-price { font-size: var(--fs-2xl); line-height: var(--lh-2xl); }
    .cf-pdp__price { font-size: var(--fs-5xl); line-height: var(--lh-5xl); }
    .cf-pdp__price .cf-price-sub { font-size: var(--fs-3xl); line-height: var(--lh-3xl); }
    .cf-product-card__footer .cf-price { font-size: var(--fs-4xl); line-height: var(--lh-4xl); }
    .cf-product-card__footer .cf-price-sub { font-size: var(--fs-m); line-height: var(--lh-m); }
    .cf-price-status { font-size: var(--fs-s); line-height: var(--lh-s); }
    .cf-steps__row { grid-template-columns: 52px 1fr; }
    .cf-steps__desc { grid-column: 2; }
    .cf-pdp__grid { grid-template-columns: 1fr; }
    .cf-pdp__main-image { aspect-ratio: 2/1; padding: 2% 4%; }
    .cf-pdp__info { position: static; gap: var(--sp-4); }
    .cf-pdp__series { position: static; max-height: none; order: 3; }
    .cf-pdp__series ul { display: grid; grid-template-columns: 1fr 1fr; }
    .cf-pdp__series-item { padding-left: 10px; }
    .cf-pdp__title { font-size: var(--fs-5xl); line-height: var(--lh-5xl); }
    .woocommerce-account .woocommerce-MyAccount-navigation { float: none; width: 100%; margin-bottom: 20px; overflow-x: auto; }
    .woocommerce-account .woocommerce-MyAccount-navigation ul { display: flex; }
    .woocommerce-account .woocommerce-MyAccount-navigation ul li { border-bottom: 0; border-right: 1px solid var(--cf-line-soft); flex-shrink: 0; }
    .woocommerce-account .woocommerce-MyAccount-navigation ul li a { border-left: 0; border-top: 2px solid transparent; white-space: nowrap; }
    .woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a { border-top-color: var(--cf-gold); }
    .woocommerce-account .woocommerce-MyAccount-content { float: none; width: 100%; }
    .cf-footer__grid { grid-template-columns: repeat(3, 1fr); gap: var(--sp-4); }
    .cf-footer__bottom { display: grid; }

    .woocommerce-cart-form table.shop_table { border: 0; background: transparent; }
    .woocommerce-cart-form table.shop_table thead { display: none; }
    .woocommerce-cart-form table.shop_table tbody,
    .woocommerce-cart-form table.shop_table tr,
    .woocommerce-cart-form table.shop_table td { display: block; width: 100%; }
    .woocommerce-cart-form table.shop_table tr.cart_item { position: relative; margin-bottom: 16px; padding: var(--sp-4) var(--sp-8) var(--sp-4) var(--sp-9); min-height: 112px; border: 1px solid var(--cf-line-soft); border-radius: var(--cf-radius-m); background: var(--cf-card); }
    .woocommerce-cart-form table.shop_table td { padding: var(--sp-1) 0; border: 0; }
    .woocommerce-cart-form table.shop_table .product-thumbnail { position: absolute; left: 14px; top: 16px; width: 60px; }
    .woocommerce-cart-form table.shop_table .product-thumbnail img { width: 60px; }
    .woocommerce-cart-form table.shop_table .product-remove { position: absolute; right: 6px; top: 6px; width: 44px; }
    .woocommerce-cart-form table.shop_table .product-price,
    .woocommerce-cart-form table.shop_table .product-subtotal { display: inline-block; width: auto; margin-right: 12px; }
    .woocommerce-cart-form table.shop_table .actions { padding: var(--sp-4) 0; }
    .woocommerce-cart-form td.product-quantity .quantity { border-radius: var(--cf-radius-s); }
    .woocommerce-cart-form td.product-quantity .quantity .qty { width: 48px; height: 36px; font-size: var(--fs-m); line-height: var(--lh-m); }
}

@media (max-width: 480px) {
    .cf-wrap { width: calc(100% - 32px); }
    .cf-shop { padding-top: 30px; }
    .cf-shop__head { margin-bottom: 22px; }
    .cf-shop__head h1 { font-size: var(--fs-5xl); line-height: var(--lh-5xl); }
    .cf-shop__toolbar { margin-bottom: 24px; }
    .cf-section__head { display: grid; gap: var(--sp-2); }
    .cf-section__head .cf-text-link { justify-self: start; }
    .cf-pdp { padding-top: 22px; }
    .cf-pdp__thumb { flex-basis: 64px; }
    .cf-pdp__info { gap: var(--sp-3); }
    .cf-pdp__title { font-size: var(--fs-4xl); line-height: var(--lh-4xl); }
    .cf-footer__grid { grid-template-columns: 1fr 1fr; }
    .cf-footer__grid > div:last-child { grid-column: 1 / -1; }
    .cf-notice { padding: var(--sp-6) var(--sp-5); }
    .btn { letter-spacing: .03em; }
}

@media (max-width: 359px) {
    .cf-shop__products, .cf-grid-4 { grid-template-columns: 1fr; }
}

/* ═══════════════════ 威士忌板块（.cfw = 后台可编辑内容区） ═══════════════════ */
.cf-whisky-hero { margin-bottom: clamp(28px, 4vw, 44px); }
.cf-whisky-hero__img { width: 100%; aspect-ratio: 21/9; object-fit: cover; border-radius: var(--cf-radius-l); }
.cfw .cfw-lead { font-size: var(--fs-3xl); line-height: 1.40; color: var(--cf-ink); max-width: 760px; }
.cfw-figure { margin: var(--sp-5) 0; }
.cfw-figure img { width: 100%; border-radius: var(--cf-radius-m); }
.cfw h2 { margin-top: clamp(var(--sp-6), 5vw, var(--sp-8)); }
.cfw h2:first-of-type { margin-top: 0; }
.cfw-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(var(--sp-4), 2vw, var(--sp-5)); margin: var(--sp-5) 0 var(--sp-2); }
.cfw-card { background: #fff; border: 1px solid var(--cf-line-soft); border-radius: var(--cf-radius-m); overflow: hidden; transition: border-color .2s, box-shadow .2s; }
.cfw-card:hover { border-color: var(--cf-gold); box-shadow: 0 10px 26px rgba(31, 26, 20, .07); }
.cfw-card img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.cfw-card__body { padding: var(--sp-4) var(--sp-5) var(--sp-5); }
.cfw-card h3 { margin: 0 0 var(--sp-1); font-size: var(--fs-2xl); line-height: var(--lh-2xl); font-weight: 600; }
.cfw-card .cfw-tag { font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-gold); letter-spacing: .06em; margin-bottom: var(--sp-2); }
.cfw-card p { font-size: var(--fs-m); line-height: var(--lh-m); margin: 0; color: var(--cf-muted); }
.cfw-points { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-4); margin: var(--sp-5) 0 var(--sp-2); }
.cfw-points > div { background: #fff; border: 1px solid var(--cf-line-soft); border-radius: var(--cf-radius-m); padding: var(--sp-5); font-size: var(--fs-m); line-height: var(--lh-m); color: var(--cf-muted); }
.cfw-points > div strong { position: relative; display: block; padding-left: var(--sp-4); font-size: var(--fs-lg); line-height: var(--lh-lg); font-weight: 600; color: var(--cf-ink); margin-bottom: var(--sp-2); }
.cfw-points > div strong::before { content: ""; position: absolute; left: 0; top: .5em; width: 6px; height: 6px; border-radius: var(--r-xs); background: var(--cf-gold); }
.cfw-quote { position: relative; margin: clamp(var(--sp-6), 5vw, var(--sp-7)) 0; padding: var(--sp-5) var(--sp-6); border-left: 3px solid var(--cf-gold); background: #fff; border-radius: var(--cf-radius-m); font-size: var(--fs-lg); line-height: var(--lh-lg); color: var(--cf-brown); }
.cfw-member { display: grid; grid-template-columns: 240px 1fr; gap: clamp(var(--sp-5), 3vw, var(--sp-6)); align-items: center; background: #fff; border: 1px solid var(--cf-line-soft); border-radius: var(--cf-radius-m); padding: clamp(var(--sp-5), 2.6vw, var(--sp-6)); margin: var(--sp-4) 0; }
.cfw-member img { width: 100%; aspect-ratio: 4/5; object-fit: cover; border-radius: var(--cf-radius-s); }
.cfw-member h3 { margin: 0 0 var(--sp-0); font-size: var(--fs-3xl); line-height: var(--lh-3xl); font-weight: 600; }
.cfw-member .cfw-role { font-size: var(--fs-m); line-height: var(--lh-m); color: var(--cf-gold); letter-spacing: .04em; margin-bottom: var(--sp-3); }
.cfw-member p { font-size: var(--fs-base); line-height: var(--lh-base); color: var(--cf-muted); margin: 0; }
.cfw-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(var(--sp-3), 1.8vw, var(--sp-5)); margin: var(--sp-5) 0; }
.cfw-gallery figure { margin: 0; background: #fff; border: 1px solid var(--cf-line-soft); border-radius: var(--cf-radius-m); overflow: hidden; }
.cfw-gallery img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.cfw-gallery figcaption { padding: var(--sp-3) var(--sp-4); font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-muted); text-align: center; }
.cf-whisky-nav { margin-top: clamp(44px, 6vw, 64px); padding-top: 30px; border-top: 1px solid var(--cf-line-soft); }
.cf-whisky-nav__home { display: inline-block; margin-bottom: 16px; font-size: var(--fs-m); line-height: var(--lh-m); color: var(--cf-muted); }
.cf-whisky-nav__home:hover { color: var(--cf-gold); }
.cf-whisky-nav__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-3); }
.cf-whisky-nav__card { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); padding: var(--sp-4) var(--sp-4); background: #fff; border: 1px solid var(--cf-line-soft); border-radius: var(--cf-radius-m); transition: border-color .2s; }
.cf-whisky-nav__card strong { font-size: var(--fs-base); line-height: var(--lh-base); font-weight: 500; color: var(--cf-ink); }
.cf-whisky-nav__card .cf-icon { flex: 0 0 16px; color: var(--cf-muted-dim); }
.cf-whisky-nav__card:hover { border-color: var(--cf-gold); }
.cf-whisky-nav__card:hover .cf-icon { color: var(--cf-gold); }

/* 首页威士忌导流横幅 */
.cf-whisky-banner { display: grid; grid-template-columns: 1.1fr 1fr; align-items: stretch; background: #fff; border: 1px solid var(--cf-line-soft); border-radius: var(--cf-radius-l); overflow: hidden; transition: border-color .2s, box-shadow .2s; }
.cf-whisky-banner:hover { border-color: var(--cf-gold); box-shadow: 0 12px 32px rgba(31, 26, 20, .08); }
.cf-whisky-banner__img { display: block; min-height: 240px; }
.cf-whisky-banner__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cf-whisky-banner__body { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: var(--sp-3); padding: clamp(var(--sp-5), 4vw, var(--sp-7)); }
.cf-whisky-banner__title { font-size: var(--fs-5xl); line-height: var(--lh-5xl); font-weight: 600; letter-spacing: .02em; color: var(--cf-ink); }
.cf-whisky-banner__desc { font-size: var(--fs-base); line-height: var(--lh-base); color: var(--cf-muted); }
@media (max-width: 900px) {
    .cfw-cards, .cfw-points { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cf-whisky-nav__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
    .cfw-cards, .cfw-points, .cfw-gallery { grid-template-columns: 1fr; }
    .cfw-member { grid-template-columns: 1fr; }
    .cfw-member img { max-width: 260px; margin: 0 auto; }
    .cf-whisky-hero__img { aspect-ratio: 4/3; }
    .cf-whisky-banner { grid-template-columns: 1fr; }
    .cf-whisky-banner__img { min-height: 0; }
    .cf-whisky-banner__img img { aspect-ratio: 16/9; }
}

/* 首页会员步骤卡（复用 points 网格） */
.cf-home-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) { .cf-home-steps { grid-template-columns: 1fr; } }

/* 首页「仓储与渠道」深色三栏 */
.cf-caps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(var(--sp-6), 4vw, var(--sp-8)); text-align: left; }
.cf-caps h3 { font-family: var(--cf-font-body); font-size: var(--fs-lg); line-height: var(--lh-lg); font-weight: 600; letter-spacing: .06em; color: var(--cf-gold-soft); margin-bottom: 12px; }
.cf-caps p { font-size: var(--fs-base); line-height: var(--lh-base); color: var(--cf-muted-dim); margin: 0; }
@media (max-width: 900px) { .cf-caps { grid-template-columns: 1fr; gap: var(--sp-6); } }

/* 深色区块内的链接与按钮 */
.cf-section--dark .cf-text-link { color: var(--cf-gold-soft); }
.cf-section--dark .cf-text-link:hover { color: var(--cf-paper); }
.cf-section--dark .btn { border-color: rgba(244, 241, 235, .35); color: var(--cf-paper); }
.cf-section--dark .btn:hover { border-color: var(--cf-gold-soft); color: var(--cf-gold-soft); background: transparent; }
.cf-section--dark .btn--primary { background: var(--cf-gold); border-color: var(--cf-gold); color: var(--cf-brown-deep); }
.cf-section--dark .btn--primary:hover { background: var(--cf-gold-soft); border-color: var(--cf-gold-soft); color: var(--cf-brown-deep); }

/* 首页收尾 CTA */
.cf-home-cta { text-align: center; }
.cf-home-cta .cf-lede { margin: var(--sp-4) auto 0; max-width: 560px; }
.cf-home-cta .cf-member-cta { justify-content: center; margin-bottom: 0; }

/* 会员制度页 CTA */
.cf-member-cta { display: flex; gap: var(--sp-4); flex-wrap: wrap; margin: clamp(var(--sp-6), 4vw, var(--sp-7)) 0 var(--sp-4); }
.cf-member-note { font-size: var(--fs-m); line-height: var(--lh-m); color: var(--cf-muted); max-width: 640px; }

/* ═══════════════════ MOTION SAFETY ═══════════════════ */
@media (prefers-reduced-motion: reduce) {
    .cf-rise { animation: none; }
    .cf-hero__reveal { animation: none; }
    html { scroll-behavior: auto; }
    * { transition-duration: .01ms !important; }
}

/* section 导语（标题下正文说明，如"货在哪里货从何来"下的 EMS 行货说明） */
.cf-section__lede { margin-top: 16px; max-width: 640px; font-size: var(--fs-lg); line-height: var(--lh-lg); color: var(--cf-muted-dim); }

/* ── header 导航（图标+文字：在售目录 / 预订清单） ── */
.cf-nav__action { display: inline-flex; align-items: center; gap: var(--sp-1); font-size: var(--fs-m); line-height: var(--lh-m); font-weight: 500; color: var(--cf-muted); white-space: nowrap; padding: var(--sp-2) var(--sp-1); text-decoration: none; }
.cf-nav__action:hover, .cf-nav__action.is-active { color: var(--cf-ink); }
.cf-nav__action svg { width: 20px; height: 20px; }
.cf-nav__action--cart { margin-left: 2px; }
.cf-nav__action .cf-nav__cart-count { display: inline-flex; align-items: center; justify-content: center; min-width: 16px; height: 16px; padding: 0 var(--sp-1); margin-left: 1px; border-radius: var(--r-xs); background: var(--cf-red); color: #fff; font-size: var(--fs-xs); font-weight: 700; line-height: var(--lh-xs); font-style: normal; }
@media (min-width: 981px) { .cf-nav__action--shop { display: none; } }
/* 菜单内「我的资料」 */
.cf-nav__menu-profile { display: flex; align-items: center; gap: var(--sp-3); margin: var(--sp-2) 0 var(--sp-3); padding: var(--sp-4); border: 1px solid var(--cf-line-soft); border-radius: var(--cf-radius-m); background: transparent; color: var(--cf-ink); font-size: var(--fs-base); line-height: var(--lh-base); font-weight: 600; text-decoration: none; }
.cf-nav__menu-profile svg { width: 18px; height: 18px; color: var(--cf-gold); }
/* ── 会员固定「预订摘要栏」（产品页底部，登录会员） ── */
.cf-cartbar { display: none; }
@media (max-width: 768px) {
  body.single-product:has(.cf-cartbar) { padding-bottom: 58px; }
  .cf-cartbar {
    display: flex; align-items: center; gap: var(--sp-3);
    position: fixed; bottom: 0; left: 0; right: 0; z-index: 150;
    padding: var(--sp-2) var(--sp-4) calc(var(--sp-2) + env(safe-area-inset-bottom));
    background: #fff; border-top: 1px solid var(--cf-line-soft);
    box-shadow: 0 -4px 18px -10px rgba(33,26,21,.12);
  }
  .cf-cartbar__info { display: flex; flex-direction: column; gap: var(--sp-0); min-width: 0; flex: 1; }
  .cf-cartbar__count { font-size: var(--fs-s); color: var(--cf-brown); line-height: var(--lh-s); }
  .cf-cartbar__total { font-size: var(--fs-xl); font-weight: 600; color: var(--cf-ink); line-height: var(--lh-xl); }
  .cf-cartbar__delivery { font-size: var(--fs-xs); color: var(--cf-muted); line-height: var(--lh-xs); }
  .cf-cartbar__btn {
    flex: none; background: var(--cf-ink); color: var(--cf-paper);
    border: 0; border-radius: var(--r-m); padding: var(--sp-3) var(--sp-5);
    font-size: var(--fs-base); line-height: var(--lh-base); font-weight: 500; letter-spacing: .08em; cursor: pointer;
  }
}

/* 结账：地址簿选择器 */
.cf-checkout__addr-pick { margin-bottom: 22px; }
.cf-checkout__addr-pick .mfield__label { display: block; font-size: var(--fs-m); line-height: var(--lh-m); font-weight: 500; color: var(--cf-brown); margin-bottom: 8px; }
.cf-checkout__addr-pick select { width: 100%; height: 48px; border: 1px solid var(--cf-line-soft); border-radius: var(--r-s); background: var(--cf-card); color: var(--cf-ink); font-size: var(--fs-lg); line-height: var(--lh-lg); padding: 0 var(--sp-4); }

/* ── 品牌索引模块（Shop by Brand）── */
.cf-brand-index { margin-top: 8px; margin-bottom: 6px; }
.cf-brand-index__head { margin-bottom: 18px; }
.cf-brand-index__head h2 { font-size: var(--fs-4xl); line-height: var(--lh-4xl); margin-top: 6px; }
.cf-brand-index__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(132px, 1fr)); gap: var(--sp-3); }
.cf-brand-index__card { display: flex; align-items: center; justify-content: center; padding: var(--sp-5) var(--sp-4); border: 1px solid var(--cf-line-soft); border-radius: var(--cf-radius-m); background: var(--cf-card); min-height: 78px; transition: border-color .2s, box-shadow .2s; }
.cf-brand-index__card:hover { border-color: #9a7b4580; box-shadow: 0 14px 32px -20px rgba(33,26,21,.5); }
.cf-brand-index__card img { max-width: 100%; max-height: 46px; object-fit: contain; }
.cf-brand-index__wordmark { font-size: var(--fs-base); line-height: var(--lh-base); font-weight: 600; letter-spacing: .1em; color: var(--cf-brown); text-align: center; }
@media (max-width: 640px) {
    .cf-brand-index__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-2); }
    .cf-brand-index__card { padding: var(--sp-4) var(--sp-2); min-height: 62px; }
    .cf-brand-index__card img { max-height: 38px; }
}

/* ── 多维筛选 │ 移动抽屉 + 桌面行 ── */
.cf-filterbar { display: flex; align-items: center; gap: var(--sp-3); margin: var(--sp-1) 0 var(--sp-0); }
.cf-filterbar__toggle { min-height: 42px; }
.cf-filterbar__clear { font-size: var(--fs-m); line-height: var(--lh-m); color: var(--cf-muted); text-decoration: underline; }
.cf-filter-drawer { position: fixed; inset: 0; z-index: 260; display: none; }
.cf-filter-drawer.is-open { display: block; }
.cf-filter-drawer__backdrop { position: absolute; inset: 0; background: rgba(33,26,21,.5); }
.cf-filter-drawer__panel { position: absolute; bottom: 0; left: 0; right: 0; background: #fff; border-radius: var(--r-l) var(--r-l) 0 0; max-height: 82vh; overflow-y: auto; padding: var(--sp-4) var(--sp-5) calc(var(--sp-4) + env(safe-area-inset-bottom)); animation: cf-drawer-up .25s ease; }
@keyframes cf-drawer-up { from { transform: translateY(24px); opacity: .5; } to { transform: none; opacity: 1; } }
.cf-filter-drawer__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.cf-filter-drawer__head h3 { font-size: var(--fs-2xl); line-height: var(--lh-2xl); font-weight: 600; }
.cf-filter-drawer__close { font-size: var(--fs-4xl); line-height: var(--lh-4xl); background: none; border: 0; color: var(--cf-muted); }
.cf-filter-drawer__foot { margin-top: 16px; }
.cf-filter-drawer__foot .mbtn-primary { width: 100%; }
.cf-filter__head { display: none; }
.cf-filter__group { margin-bottom: 20px; }
.cf-filter__label { font-size: var(--fs-m); line-height: var(--lh-m); font-weight: 600; color: var(--cf-brown); margin-bottom: 10px; }
.cf-filter__opts { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.cf-filter__opt { font-size: var(--fs-m); color: var(--cf-brown); border: 1px solid var(--cf-line-soft); border-radius: var(--r-s); background: var(--cf-card); padding: var(--sp-2) var(--sp-4); text-decoration: none; line-height: var(--lh-m); }
.cf-filter__opt:hover { border-color: var(--cf-gold); }
.cf-filter__opt.is-on { border-color: var(--cf-gold); background: #9A7B4518; color: var(--cf-ink); }
.cf-filter__opt .cf-vitola-en { font-size: var(--fs-xs); line-height: var(--lh-xs); }
@media (min-width: 981px) {
  .cf-filterbar { display: none; }
  .cf-filter__head { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4); margin-bottom: 2px; grid-column: 1 / -1; }
  .cf-filter-drawer { position: static; display: block; }
  .cf-filter-drawer__backdrop, .cf-filter-drawer__close, .cf-filter-drawer__foot { display: none; }
  .cf-filter-drawer__panel { position: static; max-height: none; border-radius: 0; padding: 0; animation: none; background: transparent; }
  .cf-filter-drawer__head { display: none; }
  .cf-filter { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-4); background: var(--cf-card); border: 1px solid var(--cf-line-soft); border-radius: var(--cf-radius-m); padding: var(--sp-4) var(--sp-4); margin-bottom: 10px; }
}

/* 菜单内搜索框 */
.cf-nav__menu-search { display: flex; gap: var(--sp-2); margin: var(--sp-3) var(--sp-4) var(--sp-1); }
.cf-nav__menu-search input[type=search] { flex: 1; min-width: 0; border: 1px solid var(--cf-line-soft); border-radius: var(--r-s); background: var(--cf-card); color: var(--cf-ink); font-size: var(--fs-base); line-height: var(--lh-base); padding: var(--sp-3) var(--sp-4); min-height: 42px; }
.cf-nav__menu-search input[type=search]:focus { border-color: var(--cf-gold); outline: none; box-shadow: 0 0 0 3px #9a7b4538; }
.cf-nav__menu-search button { display: inline-flex; align-items: center; gap: var(--sp-2); flex: none; border: 1px solid var(--cf-ink); border-radius: var(--r-s); background: var(--cf-ink); color: var(--cf-paper); padding: var(--sp-2) var(--sp-4); font-size: var(--fs-m); line-height: var(--lh-m); cursor: pointer; }
.cf-nav__menu-search button svg { width: 15px; height: 15px; }

/* ── 选品入口 3 卡 ── */
.cf-entry { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--sp-3); margin-bottom: 26px; }
.cf-entry__card { display: flex; flex-direction: column; align-items: center; gap: var(--sp-2); padding: var(--sp-5) var(--sp-4); border: 1px solid var(--cf-line-soft); border-radius: var(--cf-radius-m); background: var(--cf-card); text-align: center; transition: border-color .2s, box-shadow .2s, transform .2s; }
.cf-entry__card:hover { border-color: #9a7b4580; box-shadow: 0 14px 30px -18px rgba(33,26,21,.5); transform: translateY(-2px); }
.cf-entry__icon { display: flex; color: var(--cf-gold); }
.cf-entry__body strong { display: block; font-size: var(--fs-lg); line-height: var(--lh-lg); font-weight: 600; color: var(--cf-ink); }
.cf-entry__body small { display: block; margin-top: 3px; font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-muted); }
@media (max-width: 640px) {
  .cf-entry { gap: var(--sp-2); }
  .cf-entry__card { padding: var(--sp-4) var(--sp-2); gap: var(--sp-2); }
  .cf-entry__icon svg { width: 22px; height: 22px; }
  .cf-entry__body small { display: none; }
}
/* 搜索（cf_search=1 顶部搜索条） */
.cf-searchbar { display: flex; gap: var(--sp-2); margin-bottom: 20px; }
.cf-searchbar input[type=search] { flex: 1; min-width: 0; border: 1px solid var(--cf-line-soft); border-radius: var(--r-s); background: var(--cf-card); color: var(--cf-ink); font-size: var(--fs-lg); line-height: var(--lh-lg); padding: var(--sp-3) var(--sp-4); min-height: 46px; }
.cf-searchbar input[type=search]:focus { border-color: var(--cf-gold); outline: none; box-shadow: 0 0 0 3px #9a7b4538; }
.cf-searchbar button { flex: none; border: 1px solid var(--cf-ink); border-radius: var(--r-s); background: var(--cf-ink); color: var(--cf-paper); padding: var(--sp-3) var(--sp-5); font-size: var(--fs-base); line-height: var(--lh-base); cursor: pointer; }

/* ── 设计改版（codex 稿）：信任条 / 搜索条 / 入口主卡 / 商品卡 ── */
/* 信任条 */
.cf-trust { display: flex; align-items: center; gap: var(--sp-3); margin: var(--sp-4) 0 var(--sp-5); padding: var(--sp-3) var(--sp-4); border: 1px solid #9A7B4566; border-radius: var(--cf-radius-m); background: linear-gradient(135deg,#9a7b451f,#9a7b4508), var(--cf-card); color: var(--cf-brown); font-size: var(--fs-m); line-height: var(--lh-m); }
.cf-trust svg { color: var(--cf-gold); flex: none; }
/* 搜索条 */
.cf-searchbar { display: flex; align-items: center; gap: var(--sp-2); margin-bottom: 20px; padding: var(--sp-1) var(--sp-2) var(--sp-1) var(--sp-4); border: 1px solid var(--cf-line); border-radius: var(--cf-radius-input); background: #fff; }
.cf-searchbar__icon { color: var(--cf-muted); flex: none; }
.cf-searchbar input[type=search] { flex: 1; min-width: 0; border: 0; background: transparent; color: var(--cf-ink); font-size: var(--fs-base); line-height: var(--lh-base); min-height: 40px; padding: 0; }
.cf-searchbar input[type=search]:focus { outline: none; }
.cf-searchbar button { flex: none; border: 0; background: transparent; color: var(--cf-cedar); font-size: var(--fs-base); line-height: var(--lh-base); font-weight: 500; padding: var(--sp-2) var(--sp-3); cursor: pointer; }
.cf-searchbar button:hover { color: var(--cf-gold); }
/* 入口主卡（按属性筛选） */
.cf-entry__card--primary { border-color: var(--cf-ink); background: var(--cf-ink); }
.cf-entry__card--primary strong { color: var(--cf-paper); }
.cf-entry__card--primary small { color: var(--cf-gold-soft); }
.cf-entry__card--primary .cf-entry__icon { color: var(--cf-gold); }
.cf-entry__card--primary:hover { border-color: var(--cf-ink); box-shadow: 0 14px 30px -18px rgba(33,26,21,.6); }
/* 商品卡新布局 */
.cf-product-card__eyebrow { font-size: var(--fs-2xs); line-height: var(--lh-2xs); font-weight: 700; letter-spacing: .14em; color: var(--cf-cedar); text-transform: uppercase; margin-bottom: 5px; }
.cf-product-card__title { font-size: var(--fs-lg); font-weight: 600; line-height: var(--lh-lg); color: var(--cf-ink); margin-bottom: 4px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cf-product-card__vitola { font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-brown); margin-bottom: 3px; }
.cf-product-card__vitola .cf-vitola-en { color: var(--cf-muted); }
.cf-product-card__meta { font-size: var(--fs-xs); line-height: var(--lh-xs); color: var(--cf-muted); margin-bottom: var(--sp-1); }  /* 🔴 2026-09-11 客户反馈「价格跟产品信息间距太大」10→4px */
.cf-product-card .cf-price { font-size: var(--fs-3xl); line-height: var(--lh-3xl); font-weight: 700; }

/* ── PDP 改版（codex 稿）── */
/* 2×2 规格定义格 */
.cf-pdp__spec-grid { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--cf-line); border-radius: var(--cf-radius-m); background: var(--cf-card); overflow: hidden; margin: var(--sp-1) 0 var(--sp-4); }
.cf-pdp__spec-cell { padding: var(--sp-3) var(--sp-4); border-right: 1px solid var(--cf-line); border-bottom: 1px solid var(--cf-line); min-width: 0; }
.cf-pdp__spec-cell:nth-child(2n) { border-right: 0; }
/* 🔴 2026-09-11：规格格由 4 格改为 6 格（3 行）—— 原 nth-child(n+3) 假设只有 2 行会丢分隔线 */
.cf-pdp__spec-cell:nth-last-child(-n+2) { border-bottom: 0; }
.cf-pdp__spec-cell dt { font-size: var(--fs-2xs); line-height: var(--lh-2xs); letter-spacing: .12em; color: var(--cf-muted); margin-bottom: 4px; }
.cf-pdp__spec-cell dd { font-size: var(--fs-m); line-height: var(--lh-m); font-weight: 600; color: var(--cf-ink); margin: 0; }
.cf-pdp__spec-cell dd .cf-vitola-en { color: var(--cf-muted); font-weight: 400; }
/* 档案签（包装·仓储） */
.cf-tag { position: absolute; top: 12px; right: 12px; z-index: 2; padding: var(--sp-2) var(--sp-3); border: 1px solid var(--cf-gold); border-radius: var(--r-xs); background: var(--cf-card); color: var(--cf-brown); font-size: var(--fs-s); line-height: var(--lh-s); font-weight: 600; letter-spacing: .04em; }
/* 预订面板头 */
.mpanel__head { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); margin-bottom: 4px; }
.mpanel__title { font-size: var(--fs-lg); line-height: var(--lh-lg); font-weight: 600; color: var(--cf-ink); }
.mpanel__safe { font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-muted); }
/* 3 步说明 */
.cf-pdp__steps { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-2); margin: var(--sp-4) 0 0; padding: 0; }
.cf-pdp__steps li { display: flex; flex-direction: column; gap: var(--sp-1); padding: var(--sp-3); border: 1px solid var(--cf-line); border-radius: var(--cf-radius-s); background: var(--cf-card); }
.cf-pdp__steps strong { font-size: var(--fs-s); line-height: var(--lh-s); font-weight: 600; color: var(--cf-cedar); }
.cf-pdp__steps span { font-size: var(--fs-xs); line-height: var(--lh-xs); color: var(--cf-muted); }

/* 筛选抽屉改版：折叠组/已选条件/底部栏 */
.cf-filter__head { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--sp-1) var(--sp-3); }
.cf-filter__title { font-size: var(--fs-3xl); line-height: var(--lh-3xl); font-weight: 600; color: var(--cf-ink); margin: 0; }
.cf-filter__sub { width: 100%; font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-muted); margin: 0; }
.cf-filter__clear { margin-left: auto; font-size: var(--fs-m); line-height: var(--lh-m); color: var(--cf-cedar); text-decoration: underline; }
.cf-filter__selected { border: 1px solid var(--cf-line); border-radius: var(--cf-radius-s); background: var(--cf-card); padding: var(--sp-3) var(--sp-3); margin-bottom: 14px; }
.cf-filter__selected-label { font-size: var(--fs-s); line-height: var(--lh-s); font-weight: 600; color: var(--cf-brown); }
.cf-filter__selected-chips { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin-top: 8px; }
.cf-filter__chip { display: inline-flex; align-items: center; gap: var(--sp-1); font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-brown); border: 1px solid #9A7B4588; background: #9A7B4518; border-radius: var(--r-xs); padding: var(--sp-1) var(--sp-2) var(--sp-1) var(--sp-3); }
.cf-filter__chip-x { border: 0; background: none; color: var(--cf-muted); font-size: var(--fs-m); cursor: pointer; line-height: var(--lh-m); }
/* 折叠组 */
.cf-filter__group { border: 0; border-bottom: 1px solid var(--cf-line); padding: var(--sp-3) 0; margin: 0; }
.cf-filter__group:last-of-type { border-bottom: 0; }
.cf-filter__label { display: flex; align-items: center; gap: var(--sp-2); font-size: var(--fs-m); line-height: var(--lh-m); font-weight: 600; color: var(--cf-ink); margin-bottom: 10px; cursor: pointer; list-style: none; padding: 0; }
.cf-filter__label::-webkit-details-marker { display: none; }
.cf-filter__label::after { content: ''; margin-left: auto; width: 7px; height: 7px; border-right: 2px solid var(--cf-muted); border-bottom: 2px solid var(--cf-muted); transform: rotate(45deg); transition: transform .2s; }
.cf-filter__group[open] > .cf-filter__label::after { transform: rotate(-135deg); }
.cf-filter__cur { margin-left: auto; margin-right: 2px; font-size: var(--fs-s); line-height: var(--lh-s); font-weight: 500; color: var(--cf-cedar); }
.cf-filter__cur + * { margin-left: 0; }
/* 底部动作栏 */
.cf-filter__actions { position: sticky; bottom: 0; display: flex; gap: var(--sp-3); margin-top: 14px; padding-top: 12px; background: #fff; border-top: 1px solid var(--cf-line); }
.cf-filter__reset { flex: none; }
.cf-filter__apply { flex: 1; border: 1px solid var(--cf-ink); border-radius: var(--cf-radius-m); background: var(--cf-ink); color: var(--cf-paper); font-size: var(--fs-base); line-height: var(--lh-base); font-weight: 600; padding: var(--sp-3) var(--sp-5); cursor: pointer; }

/* ── 预订清单：3 步进度 ── */
.cf-sheet { display: flex; align-items: center; gap: var(--sp-3); margin: var(--sp-3) 0 var(--sp-4); }
.cf-sheet__item { display: flex; flex-direction: column; align-items: center; gap: var(--sp-2); font-size: var(--fs-xs); line-height: var(--lh-xs); color: var(--cf-muted); }
.cf-sheet__num { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border: 1px solid var(--cf-line); border-radius: 50%; color: var(--cf-muted); font-size: var(--fs-base); line-height: var(--lh-base); font-weight: 600; }
.cf-sheet__item.is-active .cf-sheet__num { background: var(--cf-gold); border-color: var(--cf-gold); color: #fff; }
.cf-sheet__item.is-active { color: var(--cf-ink); font-weight: 600; }
.cf-sheet__bar { flex: 1; height: 1px; background: var(--cf-line); margin-bottom: 22px; }

/* ── 会员中心：深墨身份区 ── */
.cf-member-hero { display: flex; flex-direction: column; align-items: flex-start; gap: var(--sp-1); background: var(--cf-ink); color: var(--cf-paper); border-radius: var(--cf-radius-l); padding: var(--sp-5) var(--sp-5); position: relative; overflow: hidden; margin-bottom: 18px; }
.cf-member-hero::after { content: ''; position: absolute; right: -60px; top: -60px; width: 180px; height: 180px; border-radius: 50%; background: radial-gradient(circle, #9A7B4533, transparent 70%); }
.cf-member-hero__eyebrow { font-size: var(--fs-2xs); line-height: var(--lh-2xs); font-weight: 700; letter-spacing: .16em; color: var(--cf-gold-soft); text-transform: uppercase; }
.cf-member-hero__name { font-size: var(--fs-4xl); line-height: var(--lh-4xl); font-weight: 600; color: #fff; margin: var(--sp-1) 0 0; }
.cf-member-hero__no { font-size: var(--fs-s); line-height: var(--lh-s); color: #f4f1eb99; }
.cf-member-hero__badge { position: absolute; right: 20px; top: 26px; padding: var(--sp-1) var(--sp-4); border: 1px solid var(--cf-gold); border-radius: var(--r-xs); color: var(--cf-gold-soft); font-size: var(--fs-s); line-height: var(--lh-s); font-weight: 600; }

/* ── 改版剩余：响应式 + 表单状态 + 无障碍 ── */
/* 响应式网格：>980px 4列；768-980 3列；<768 2列 */
@media (max-width: 1180px) { .cf-shop__products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 980px) { .cf-shop__products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* 表单状态 */
.mform input.input-text, .mauth input.input-text, .mform select, .mform textarea, .cf-checkout .form-row input, .cf-checkout .form-row select { border: 1px solid var(--cf-line); background: #fff; border-radius: var(--cf-radius-input); height: 48px; font-size: var(--fs-xl); line-height: var(--lh-xl); color: var(--cf-ink); padding: var(--sp-3) var(--sp-4); transition: border-color .18s, box-shadow .18s, background .18s; }
.mform input.input-text:focus, .mform select:focus, .mform textarea:focus, .cf-checkout .form-row input:focus, .cf-checkout .form-row select:focus { border-color: var(--cf-gold); outline: none; box-shadow: 0 0 0 3px #9A7B4538; }
.cf-checkout .form-row input[data-validated], .mform input.cf-valid { border-color: var(--cf-success); }
.mform input.cf-invalid, .woocommerce-form .form-row.woocommerce-invalid input.input-text, .woocommerce-form .form-row.woocommerce-invalid select { border-color: var(--cf-red); background: #641F1B0D; }
.cf-checkout .form-row .woocommerce-error { color: var(--cf-red); font-size: var(--fs-s); line-height: var(--lh-s); margin-top: 6px; }
.mform input:disabled, .cf-checkout .form-row input:disabled { background: var(--cf-paper-2); color: var(--cf-muted); cursor: not-allowed; }
.mfield__label .required, .mform .required { color: var(--cf-red); }
/* 无障碍：可见键盘焦点 */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, .cf-product-card__link:focus-visible, .cf-filter__opt:focus-visible { outline: 2px solid var(--cf-gold); outline-offset: 2px; }
/* 触摸目标 ≥44px：图标按钮类 */
.cf-nav__action, .cf-nav__icon-link, .cf-fav, .mqty__btn, .cf-addr-act, .cf-search__toggle { min-width: 44px; min-height: 44px; }
/* 底部固定安全区（iPhone） */
@media (max-width: 768px) {
  .cf-cartbar, .msticky-cta, .cf-filter-drawer__panel { padding-bottom: calc(10px + env(safe-area-inset-bottom)); }
  .cf-cartbar { min-height: 74px; }
}
/* 内容与底部栏不重叠 */
body.single-product:has(.cf-cartbar) { padding-bottom: 78px; }

/* ── 会员中心：当前预订时间线 + 会员服务 ── */
.cf-order-timeline__head { display: flex; align-items: center; gap: var(--sp-3); margin-bottom: 8px; flex-wrap: wrap; }
.cf-order-timeline__num { font-weight: 600; color: var(--cf-ink); }
.cf-order-timeline__date { font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-muted); }
.cf-order-timeline__more { margin-left: auto; font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-cedar); text-decoration: underline; }
.cf-order-timeline__product { font-size: var(--fs-m); line-height: var(--lh-m); color: var(--cf-brown); margin-bottom: 16px; }
.cf-timeline { display: flex; align-items: flex-start; }
.cf-timeline__step { display: flex; flex-direction: column; align-items: center; gap: var(--sp-2); flex: 1; font-size: var(--fs-2xs); line-height: var(--lh-2xs); color: var(--cf-muted); position: relative; }
.cf-timeline__step::before { content: ''; position: absolute; top: 9px; left: -50%; width: 100%; height: 1px; background: var(--cf-line); z-index: 0; }
.cf-timeline__step:first-child::before { display: none; }
.cf-timeline__dot { position: relative; z-index: 1; width: 18px; height: 18px; border: 1px solid var(--cf-line); border-radius: 50%; background: var(--cf-card); }
.cf-timeline__step.is-done .cf-timeline__dot { background: var(--cf-gold); border-color: var(--cf-gold); }
.cf-timeline__step.is-current .cf-timeline__dot { background: var(--cf-gold); border-color: var(--cf-gold); box-shadow: 0 0 0 4px #9A7B4533; }
.cf-timeline__step.is-current { color: var(--cf-ink); font-weight: 600; }
/* 会员服务 */
.cf-services__title { font-size: var(--fs-2xl); line-height: var(--lh-2xl); font-weight: 600; margin: var(--sp-6) 0 var(--sp-1); color: var(--cf-ink); }
.cf-services__sub { font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-muted); margin: 0 0 var(--sp-4); }
.cf-services { display: grid; gap: var(--sp-3); }
.cf-services__item { display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-4) var(--sp-4); border: 1px solid var(--cf-line-soft); border-radius: var(--cf-radius-m); background: var(--cf-card); color: var(--cf-ink); text-decoration: none; }
.cf-services__item:hover { border-color: var(--cf-gold); }
.cf-services__item svg { width: 20px; height: 20px; color: var(--cf-cedar); flex: none; }
.cf-services__item > span { display: flex; flex-direction: column; gap: var(--sp-0); }
.cf-services__item strong { font-size: var(--fs-base); line-height: var(--lh-base); font-weight: 600; }
.cf-services__item small { font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-muted); }
.cf-services__item::after { content: ''; margin-left: auto; width: 7px; height: 7px; border-right: 2px solid var(--cf-muted); border-bottom: 2px solid var(--cf-muted); transform: rotate(-45deg); flex: none; }
.cf-help { margin-top: 14px; padding: var(--sp-4) var(--sp-4); border: 1px solid var(--cf-line-soft); border-radius: var(--cf-radius-m); background: var(--cf-card); font-size: var(--fs-m); line-height: var(--lh-m); color: var(--cf-muted); }
.cf-help svg { width: 16px; height: 16px; }

/* 账户页头去冗余：有深墨身份区时不显示默认 masthead */
.cf-wrap:has(.cf-member-hero) .cf-account__masthead { display: none; }

/* 订单详情：配送码 */
.cf-codedisplay { margin: var(--sp-5) 0; padding: var(--sp-4) var(--sp-5); border: 1px solid var(--cf-gold); border-radius: var(--cf-radius-m); background: #9A7B450F; text-align: center; }
.cf-codedisplay__label { font-size: var(--fs-s); line-height: var(--lh-s); font-weight: 600; color: var(--cf-cedar); letter-spacing: .04em; }
.cf-codedisplay__code { font-size: var(--fs-6xl); line-height: 1.20; font-weight: 700; letter-spacing: .3em; color: var(--cf-ink); font-variant-numeric: tabular-nums; margin: var(--sp-2) 0 var(--sp-1); }
.cf-codedisplay__note { font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-muted); }

/* ── 预订清单：卡片（信息上/数量小计下） ── */
.cf-cartlist { display: grid; gap: var(--sp-4); }
.cf-cartitem { position: relative; border: 1px solid var(--cf-line-soft); border-radius: var(--cf-radius-m); background: var(--cf-card); padding: var(--sp-4); display: grid; grid-template-columns: 84px 1fr; gap: var(--sp-3) var(--sp-4); }
.cf-cartitem__remove { position: absolute; top: 10px; right: 12px; display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border: 1px solid var(--cf-line-soft); border-radius: 50%; color: var(--cf-muted); font-size: var(--fs-3xl); line-height: var(--lh-3xl); text-decoration: none; }
.cf-cartitem__remove:hover { color: var(--cf-red); border-color: var(--cf-red); }
.cf-cartitem__thumb a { display: block; }
.cf-cartitem__thumb img { display: block; width: 84px; height: 84px; object-fit: cover; border-radius: var(--cf-radius-s); }
.cf-cartitem__info { min-width: 0; padding-right: 38px; }
.cf-cartitem__eyebrow { font-size: var(--fs-2xs); line-height: var(--lh-2xs); font-weight: 700; letter-spacing: .12em; color: var(--cf-cedar); text-transform: uppercase; margin-bottom: 4px; }
.cf-cartitem__name { font-size: var(--fs-lg); font-weight: 600; color: var(--cf-ink); line-height: var(--lh-lg); margin-bottom: 3px; }
.cf-cartitem__meta { font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-muted); margin-bottom: 2px; }
.cf-cartitem__delivery { font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-brown); }
.cf-cartitem__row { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); border-top: 1px solid var(--cf-line-soft); padding-top: 12px; }
.cf-cartitem__qty { display: flex; align-items: center; gap: var(--sp-3); }
.cf-cartitem__qty .quantity { margin: 0; }
.cf-cartitem__subtotal { text-align: right; }
.cf-cartitem__subtotal-label { display: block; font-size: var(--fs-xs); line-height: var(--lh-xs); color: var(--cf-muted); margin-bottom: 2px; }
.cf-cartitem__subtotal .amount { font-size: var(--fs-xl); line-height: var(--lh-xl); font-weight: 600; color: var(--cf-ink); }
/* 🔴 2026-09-11 客户反馈：底边距仅 4px，按钮贴在「预订清单汇总」上，两个模块之间没有空间 */
.cf-cartlist__actions { margin: var(--sp-5) 0 var(--sp-7); }

/* ── 结账四卡 ── */
.cf-checkout-grid { display: grid; gap: var(--sp-4); }
.cf-checkout-card { border: 1px solid var(--cf-line-soft); border-radius: var(--cf-radius-m); background: var(--cf-card); padding: var(--sp-5) var(--sp-5) var(--sp-3); }
.cf-checkout-card__title { display: flex; align-items: center; gap: var(--sp-2); font-size: var(--fs-xl); line-height: var(--lh-xl); font-weight: 600; color: var(--cf-ink); margin: 0 0 var(--sp-4); }
.cf-checkout-card__title::before { content: ''; width: 3px; height: 16px; background: var(--cf-gold); border-radius: var(--r-xs); }
.cf-checkout-card .form-row { margin-bottom: 14px; }
.cf-checkout-card .form-row:last-child { margin-bottom: 12px; }
.cf-checkout-card .cf-checkout__addr-pick { margin-bottom: 16px; }
.cf-checkout-card--review .woocommerce-checkout-review-order-table { margin: var(--sp-3) 0 var(--sp-4); }
.cf-checkout-card--review #place_order { width: 100%; }
@media (min-width: 981px) {
  .cf-checkout-grid { grid-template-columns: 1fr 1fr; gap: var(--sp-5); }
  .cf-checkout-card--review { grid-column: 1 / -1; }
}

/* 账户设置：设计稿细节 */
.mfield__with-valid { position: relative; }
.mfield__with-valid .input-text { padding-right: 64px; }
.mfield__valid { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); font-size: var(--fs-s); line-height: var(--lh-s); font-weight: 500; color: var(--cf-success); }
.mfield__note { margin: var(--sp-1) 0 var(--sp-4); padding: var(--sp-3) var(--sp-4); border: 1px solid #641F1B38; border-radius: var(--cf-radius-s); background: #641F1B0D; color: var(--cf-brown); font-size: var(--fs-s); line-height: var(--lh-s); }

/* 会员制度页：CTA 按钮高对比度（.btn 在前，.btn--primary 在后，后者胜出） */
.cf-member-cta .btn { background: var(--cf-card); border: 1px solid var(--cf-ink); color: var(--cf-ink); min-height: 50px; line-height: 1.2; }
.cf-member-cta .btn:hover { border-color: var(--cf-gold); color: var(--cf-ink); }
.cf-member-cta .btn--primary { background: var(--cf-ink); border-color: var(--cf-ink); color: var(--cf-paper); }
.cf-member-cta .btn--primary:hover { background: var(--cf-cedar); border-color: var(--cf-cedar); color: var(--cf-paper); }

/* 首页「现在开始」深色区块：按钮反色（对比度）+ 布局收紧 */
.cf-section--dark .btn, .cf-home-cta .btn { background: transparent; border: 1px solid rgba(244,241,235,.45); color: var(--cf-paper); }
.cf-section--dark .btn:hover, .cf-home-cta .btn:hover { border-color: var(--cf-gold); color: var(--cf-gold); }
.cf-section--dark .btn--primary, .cf-home-cta .btn--primary { background: var(--cf-paper); border-color: var(--cf-paper); color: var(--cf-ink); }
.cf-section--dark .btn--primary:hover, .cf-home-cta .btn--primary:hover { background: var(--cf-gold); border-color: var(--cf-gold); color: var(--cf-ink); }
.cf-home-cta .cf-member-cta { margin: var(--sp-5) 0 0; }
.cf-section--dark .cf-lede, .cf-home-cta .cf-lede { color: rgba(244,241,235,.72); }

/* 首页 CTA 标题：平衡断行（避免"在售目/录"这类难看的断法） */
.cf-home-cta h2 { text-wrap: balance; }
@media (max-width: 480px) { .cf-home-cta h2 { font-size: var(--fs-5xl); line-height: var(--lh-5xl); } }
.cf-home-cta .cf-lede { max-width: 30em; margin-left: auto; margin-right: auto; text-wrap: pretty; }

/* 抽屉菜单：登录/退出登录 */
.cf-nav__menu-foot { display: flex; align-items: center; gap: var(--sp-4); }
.cf-nav__menu-footlink { color: var(--cf-gold-soft); font-size: var(--fs-m); line-height: var(--lh-m); }
.cf-nav__menu-logout { display: inline-flex; align-items: center; gap: var(--sp-1); margin-left: auto; color: rgba(244,241,235,.6); font-size: var(--fs-m); line-height: var(--lh-m); }
.cf-nav__menu-logout svg { width: 14px; height: 14px; transform: rotate(180deg); }
.cf-nav__menu-logout:hover { color: var(--cf-gold); }
.cf-nav__menu-login { display: inline; padding: 0; border: 0; background: transparent; color: var(--cf-gold-soft); font-size: var(--fs-base); line-height: var(--lh-base); font-weight: 600; letter-spacing: .02em; }
.cf-nav__menu-login:hover { color: var(--cf-gold); text-decoration: underline; text-underline-offset: 3px; }

/* 移动端专用换行（桌面保持一行） */
.cf-br-mobile { display: none; }
@media (max-width: 640px) { .cf-br-mobile { display: inline; } }

/* PDP 型号规格副行 */
.cf-pdp__spec-sub { display: block; margin-top: 4px; font-size: var(--fs-xs); line-height: var(--lh-xs); color: var(--cf-muted); font-weight: 400; }

/* 雪茄型号说明页 */
.cf-vit-note { font-size: var(--fs-m); line-height: var(--lh-m); color: var(--cf-muted); padding: var(--sp-3) var(--sp-4); background: var(--cf-card); border: 1px solid var(--cf-line-soft); border-radius: var(--cf-radius-s); margin: 0 0 var(--sp-4); }
.cf-vit-h2 { margin: var(--sp-6) 0 var(--sp-3); font-size: var(--fs-2xl); line-height: var(--lh-2xl); font-weight: 600; }
.cf-vit-tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--cf-line-soft); border-radius: var(--cf-radius-m); background: #fff; }
.cf-vit-table { width: 100%; border-collapse: collapse; font-size: var(--fs-m); line-height: var(--lh-m); min-width: 660px; }
.cf-vit-table th { text-align: left; font-size: var(--fs-xs); line-height: var(--lh-xs); font-weight: 500; letter-spacing: .1em; color: var(--cf-muted); padding: var(--sp-3) var(--sp-4); border-bottom: 1px solid var(--cf-line); background: var(--cf-card); white-space: nowrap; }
.cf-vit-table td { padding: var(--sp-3) var(--sp-4); border-bottom: 1px solid var(--cf-line-soft); color: var(--cf-brown); vertical-align: top; }
.cf-vit-table tr:last-child td { border-bottom: 0; }
.cf-vit-cn { font-weight: 600; color: var(--cf-ink); white-space: nowrap; }
.cf-vit-en { color: var(--cf-muted); white-space: nowrap; }
.cf-vit-alias { color: var(--cf-muted); font-size: var(--fs-s); line-height: var(--lh-s); }
.cf-filter__help { display: inline-flex; align-items: center; gap: var(--sp-1); margin-left: auto; font-size: var(--fs-xs); line-height: var(--lh-xs); color: var(--cf-gold); }

/* ── 桌面端筛选器：默认关闭，点击后以弹层打开（2026-09-11）── */
@media (min-width: 981px) {
  .cf-filter-drawer { position: fixed; inset: 0; z-index: 260; display: none; }
  .cf-filter-drawer.is-open { display: block; }
  .cf-filter-drawer__backdrop { display: block; position: absolute; inset: 0; background: rgba(33,26,21,.45); }
  .cf-filter-drawer__panel {
    position: relative; margin: 5vh auto; width: calc(100% - 48px); max-width: 1080px;
    max-height: 86vh; overflow-y: auto; border-radius: var(--r-l); background: #fff;
    padding: var(--sp-5) var(--sp-5) var(--sp-4); animation: cf-drawer-up .22s ease;
  }
  .cf-filter-drawer__head { display: flex; }
  .cf-filter-drawer__close { display: block; }
  .cf-filter-drawer__foot {
    display: block; position: sticky; bottom: -14px; margin-top: 18px;
    padding: var(--sp-3) 0 var(--sp-2); background: #fff; border-top: 1px solid var(--cf-line-soft);
  }
  .cf-filter-drawer__foot .mbtn-primary { width: auto; min-width: 260px; }
  .cf-filter { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: var(--sp-4) var(--sp-5); }
}

/* ═══════════════════════════════════════════════════════════════
   🔴 F14 修复（2026-09-11）：校验错误后提交表单被挤到最右侧
   根因：form.woocommerce-checkout 自身是两列 grid，WooCommerce 在 AJAX 校验失败时
   会把 .woocommerce-NoticeGroup-checkout **prepend 到 form** 成为第一个 grid item，
   于是「四卡内容网格」被挤到第 2 列（实测输入框 332px → 148px，表单高度 1199 → 1371）。
   处理：表单改为单列栅格，并让通知条与内容网格都占满整行。
   ═══════════════════════════════════════════════════════════════ */
form.woocommerce-checkout { grid-template-columns: minmax(0, 1fr); }
form.woocommerce-checkout > .woocommerce-NoticeGroup,
form.woocommerce-checkout > .woocommerce-error,
form.woocommerce-checkout > .woocommerce-message,
form.woocommerce-checkout > .woocommerce-info,
form.woocommerce-checkout > .cf-checkout-grid {
  grid-column: 1 / -1;
}
form.woocommerce-checkout > .woocommerce-NoticeGroup { margin-bottom: 18px; }
/* 地址簿表单里「提交预订时需要」的轻提示（F15） */
.cf-addr-hint { font-size: var(--fs-xs); line-height: var(--lh-xs); font-weight: 400; color: var(--cf-muted, #8E6547); letter-spacing: 0; }

/* ═══════════════════════════════════════════════════════════════
   🔴 F17 修复（2026-09-11）：桌面清单数量徽标偏出窗口右上角
   根因：.cf-nav__cart-count 是 position:absolute（top:-7/right:-9），
   而它的父级 .cf-nav__action 没有 position:relative → 徽标相对更外层定位，
   1440px 下量到 x=1432 / y=-7，部分被窗口裁掉。
   处理：父级建立定位上下文，并让徽标回到行内（与移动端一致的呈现）。
   ═══════════════════════════════════════════════════════════════ */
.cf-nav__action { position: relative; }
.cf-nav__action .cf-nav__cart-count { position: static; top: auto; right: auto; }

/* ═══════════════════════════════════════════════════════════════
   🔴 F16 修复（2026-09-11）：清单缩略图被裁成难以识别的局部
   根因：84×84 方形槽位 + object-fit:cover 把长条雪茄放大裁切，只剩棕色中段。
   处理：改为完整展示（contain）+ 中性底色，保留主体与关键标识。
   ═══════════════════════════════════════════════════════════════ */
.cf-cartitem__thumb img { object-fit: contain; background: var(--cf-card); }

/* 🔴 F07 修复：结算币种行（清单 / 提交页 / 订单） */
.cf-settle-row th { font-weight: 600; }
.cf-settle-amount { font-size: var(--fs-2xl); line-height: var(--lh-2xl); color: var(--cf-ink); }
.cf-settle-note, .cf-settle-order .cf-settle-note { display: block; margin-top: 4px; font-size: var(--fs-xs); font-weight: 400; color: var(--cf-muted); line-height: var(--lh-xs); }
.cf-settle-order { margin: var(--sp-3) 0 0; font-size: var(--fs-base); line-height: var(--lh-base); }

/* ═══════════════════════════════════════════════════════════════
   🔴 修复（2026-09-11）：F01 补的桌面账户入口在移动端造成顶栏溢出
   现象：≤1080px 时顶栏 flex 内容超宽 → **logo 被压缩成 0 宽（不可见）**、
   汉堡按钮被推到视口外（x=384..406 > 390）。
   处理：账户入口只在 ≥1081px（桌面）显示 —— 移动端账户入口本来就在抽屉菜单里
   （「会员中心 / 退出登录」），顶栏无需重复。
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 1080px) {
  .cf-nav__action--account { display: none; }
}

/* ═══════════════════════════════════════════════════════════════
   🔴 修复（2026-09-11）：.cf-toast 全站从未定义样式
   cfToast() 会把提示 div 追加到 <body> 末尾并加 .is-show，
   但 main.css / member.css / 构建产物 / git 历史里都**没有** .cf-toast 样式
   → 它只是文档流末尾的纯文本，用户看不到任何提示。
   **影响范围：全站所有提示** —— 加购成功/失败、配送冲突、断网重试、
   地址簿保存、收藏等，全部走这个 toast。
   此处按 member.js 注释的意图补上「居中浮动提示」。
   ═══════════════════════════════════════════════════════════════ */
/* ═══════════════════════════════════════════════════════════════
   🔴 2026-09-11 客户反馈「弹出的提示框排版很乱」——实测根因：
   ① 只写了 `left:50%` **没有 width** → 浏览器按"剩余可用宽度"收缩，
      可用宽度只有视口一半（420px 视口 → 只有 210px）→ 被挤成 6 行、每行 12 字 ✗
   ② `text-align:center` 对多行提示很难读 ✗
   修法：`width: max-content` 让它按内容撑开（再受 max-width 约束）+ 左对齐 + 放宽内边距。
   ═══════════════════════════════════════════════════════════════ */
.cf-toast {
  position: fixed;
  left: 50%;
  top: 50%;
  transform: translate(-50%, calc(-50% + 10px));
  z-index: 400;
  width: max-content;                              /* ← 关键：否则只拿到视口一半宽 */
  max-width: min(520px, calc(100vw - 32px));
  padding: var(--sp-4) var(--sp-5);
  border-radius: var(--r-m);
  background: var(--cf-ink);
  color: var(--cf-paper);
  font-size: var(--fs-base);                     /* 🔴 客户要求升一档：13px → 14px */
  line-height: var(--lh-base);                     /* 行距随之 18.85 → 22.4px */
  letter-spacing: .01em;
  text-align: left;                                /* ← 多行左对齐才好读 */
  white-space: pre-line;                           /* 🔴 让文案里的 \n 生效（支持分行显示） */
  box-shadow: 0 20px 48px -20px rgba(33, 26, 21, .6);
  opacity: 0;
  pointer-events: none;
  transition: opacity .22s ease, transform .22s ease;
}
.cf-toast.is-show { opacity: 1; transform: translate(-50%, -50%); }
@media (max-width: 640px) {
  .cf-toast { padding: var(--sp-3) var(--sp-4); max-width: calc(100vw - 32px); }
}

/* 🔴 2026-09-11：清单汇总卡与上方模块的最小间距兜底 */
.woocommerce .cart-collaterals { margin-top: var(--sp-2); }

/* ═══════════════════════════════════════════════════════════════
   🔴 2026-09-11 客户反馈：**点搜索框会放大网页，放大后页面会飘动**
   根因：iOS Safari 在聚焦 `font-size < 16px` 的表单控件时会**自动放大页面**。
   实测全站仅 2 个控件低于 16px：搜索框 14px、排序下拉 13px。
   修法：移动端把表单控件统一到 ≥16px。
   ⚠️ 不使用 `user-scalable=no` / `maximum-scale=1` —— 那会禁掉用户的缩放能力，破坏无障碍。
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
    /* 保险网：移动端所有文本类表单控件至少 16px（max 保证不会把已够大的控件缩小） */
    input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]),
    select,
    textarea { font-size: max(16px, 1em); }
    /* 精确修正两处实测低于 16px 的控件 */
    .cf-searchbar input[type="search"] { font-size: var(--fs-xl); line-height: var(--lh-xl); }
    /* 排序下拉的修正放在 src/member.css —— 原规则在 member.css，后加载会赢过这里 */
}

/* ═══════════════════════════════════════════════════════════════
   🔴 2026-09-11：清单页操作按钮在移动端统一居中（与会员中心一致）
   + 「清空预订清单」为破坏性操作，文字用红色以示区别
   ═══════════════════════════════════════════════════════════════ */
/* 桌面端：两个按钮是 inline-block，间距只剩空白字符的 ~4px（客户反馈"太近"在桌面同样存在）
   → 用相邻兄弟选择器补足间距。居中仍只在移动端生效（客户要求的就是移动端居中）。 */
.cf-cartlist__actions .button + .button,
.cf-cartlist__actions .button + a.button { margin-left: var(--sp-5); }

@media (max-width: 768px) {
    .cf-cartlist__actions { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: var(--sp-5); }
    .cf-cartlist__actions .button + .button,
    .cf-cartlist__actions .button + a.button { margin-left: 0; }  /* flex 下用 gap，避免双份间距 */
}

/* ═══════════════════════════════════════════════════════════════
   🔴 2026-09-11 客户要求：提交预订页的「您的个人数据……」提示
   原为 15px + 全墨色，与上一段（同为 15px 墨色）**完全没有层级区分**
   → 改为**小字号 + 弱化色**
   ═══════════════════════════════════════════════════════════════ */
.woocommerce-privacy-policy-text,
.woocommerce-privacy-policy-text p {
    font-size: var(--fs-s);
    line-height: var(--lh-s);              /* 🔴 客户两次反馈偏松 → 12px 用 1.40(16.8px) */
    color: var(--cf-muted);
    /* 🔴 客户反馈「文字距离下面的按钮空间太窄」—— 原来下边距为 0，文字紧贴按钮 */
    margin: var(--sp-2) 0 var(--sp-4);
}
.woocommerce-privacy-policy-text a { color: var(--cf-muted); text-decoration: underline; }
.woocommerce-privacy-policy-text a:hover { color: var(--cf-brown); }

/* ═══════════════════════════════════════════════════════════════
   🔴 2026-09-11 客户要求：**搜索框取消聚焦高亮**
   来源：全局 `:focus-visible`（100 行）与 `input:focus-visible`（1385 行）
        都会给输入框加 2px 金色外框。此处针对搜索框撤销。
   注：搜索框外层 `.cf-searchbar` 本身有边框，聚焦后仍有光标提示，可用性不受影响。
   ═══════════════════════════════════════════════════════════════ */
.cf-searchbar input[type="search"]:focus,
.cf-searchbar input[type="search"]:focus-visible {
    outline: none !important;
    box-shadow: none !important;
    border-color: transparent;
}

/* ═══════════════════════════════════════════════════════════════
   🔴 2026-09-11 客户要求：手机端**排序选择框缩小一级**，
   以便与左侧「显示 1-24 个结果（共 413 个结果）」在**同一行完整显示**。
   做法：字号降一档（16→13）、内边距收窄、去掉多余右留白 —— 而不是换行堆叠。
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
    .cf-shop__toolbar { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-2); flex-wrap: nowrap; }
    /* 统计：优先单行；窄屏空间不足时**允许换行**，避免被裁切 */
    .cf-shop__toolbar .woocommerce-result-count { flex: 0 1 auto; min-width: 0; font-size: var(--fs-xs); line-height: var(--lh-xs); }
    .cf-shop__toolbar .woocommerce-ordering { flex: 0 0 auto; margin: 0; }
    .cf-shop .cf-shop__toolbar .woocommerce-ordering select.orderby {   /* 提权到 (0,4,1) 压过 member.css */
        /* ⚠️ 字号**保持 16px** —— 不低于 16px 才不会触发 iOS 聚焦自动放大（客户既有要求）
           改为**收窄框体**：左内边距 16→12、右侧箭头留白 32→24，整体约 162→150px，
           既"小了一号"、又保证与左侧统计同行完整显示。 */
        font-size: var(--fs-xl);         /* 16px（iOS 安全线） */
        line-height: var(--lh-xl);
        min-height: 38px;
        padding: var(--sp-2) var(--sp-6) var(--sp-2) var(--sp-3);
        background-position: right var(--sp-2) center;
    }
}

/* ═══════════════════════════════════════════════════════════════
   🔴 2026-09-11 客户反馈「预订摘要表格显示效果很差」——版式优化
   实测问题：列宽 50/50 → 商品列仅 166px，名称折成 5–6 行（144px 高）；
             金额未右对齐；表头与「小计」行同名；说明文字挤在下半格。
   ═══════════════════════════════════════════════════════════════ */
/* 🔴 2026-09-11 二次修正：原本写死 `table-layout:fixed` + 62/38，
   导致 18px 的「HK$ 47,400」在 128px 列里换行 ✗
   改为「**商品列吃满剩余 + 金额列按内容收缩且绝不换行**」——数字永远成一行且右对齐。 */
.woocommerce-checkout-review-order-table { width: 100%; }
.woocommerce-checkout-review-order-table th.product-name,
.woocommerce-checkout-review-order-table td.product-name { width: 100%; }
.woocommerce-checkout-review-order-table th.product-total,
.woocommerce-checkout-review-order-table td.product-total { width: 1%; white-space: nowrap; }
/* 金额永不断行 */
.woocommerce-checkout-review-order-table .amount,
.woocommerce-checkout-review-order-table .cf-settle-amount { white-space: nowrap; }
/* 「配送地点: 香港」压成一行（WC 默认 dl/dt/dd 会分行） */
.woocommerce-checkout-review-order-table dl.variation { display: flex; flex-wrap: wrap; gap: 0 var(--sp-1); margin: var(--sp-1) 0 0; }
.woocommerce-checkout-review-order-table dl.variation dt,
.woocommerce-checkout-review-order-table dl.variation dd { display: inline; margin: 0; padding: 0; float: none; }
.woocommerce-checkout-review-order-table dl.variation p { margin: 0; display: inline; }
/* 表头：弱化处理，明确它是"列名"而非数据 */
.woocommerce-checkout-review-order-table thead th {
    font-size: var(--fs-xs); line-height: var(--lh-xs);
    font-weight: 500; letter-spacing: .08em; color: var(--cf-muted);
    padding-top: var(--sp-3); padding-bottom: var(--sp-3);
    border-bottom: 1px solid var(--cf-line);
}
/* 金额一律右对齐，数字成列 */
.woocommerce-checkout-review-order-table td.product-total,
.woocommerce-checkout-review-order-table td .amount,
.woocommerce-checkout-review-order-table .order-total td,
.woocommerce-checkout-review-order-table .cart-subtotal td { text-align: right; }
/* 单元格内边距：手机端收紧，避免整表过高 */
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td { padding: var(--sp-3) var(--sp-3); vertical-align: top; }
.woocommerce-checkout-review-order-table td.product-name { line-height: var(--lh-base); }
/* 「配送地点」等副信息弱化 */
.woocommerce-checkout-review-order-table .cf-summary-line,
.woocommerce-checkout-review-order-table .variation,
.woocommerce-checkout-review-order-table small { font-size: var(--fs-xs); line-height: var(--lh-xs); color: var(--cf-muted); }
/* 「结算货币」说明文字：更小更紧凑，避免把行撑到 109px */
.woocommerce-checkout-review-order-table .cf-settle-note,
.woocommerce-checkout-review-order-table td .cf-settle-note { font-size: var(--fs-2xs); line-height: var(--lh-2xs); color: var(--cf-muted); display: block; margin-top: var(--sp-1); }
@media (max-width: 480px) {
    .woocommerce-checkout-review-order-table th,
    .woocommerce-checkout-review-order-table td { padding: var(--sp-2) var(--sp-2); }
}

/* 🔴 2026-09-11：原 clamp() 响应式字号改为「固定刻度 + 移动端降级」——
   目的：消除 clamp 计算出的零散尺寸（22.32px、41.3px 等），全站字号只用刻度值。 */
@media (max-width: 640px) {
    h1 { font-size: var(--fs-5xl); line-height: var(--lh-5xl); }
    h2 { font-size: var(--fs-4xl); line-height: var(--lh-4xl); }
    h3 { font-size: var(--fs-2xl); line-height: var(--lh-2xl); }
    .cf-lede { font-size: var(--fs-base); line-height: var(--lh-base); }
    .cf-price-main__label { font-size: var(--fs-s); line-height: var(--lh-s); }
    .cf-content h2 { font-size: var(--fs-3xl); line-height: var(--lh-3xl); }
    .cf-content h3 { font-size: var(--fs-2xl); line-height: var(--lh-2xl); }
    .cf-faq-list summary { font-size: var(--fs-2xl); line-height: var(--lh-2xl); }
    /* 文字版品牌标（logo 设计稿到位后换回 img） */ .cf-brand-text { font-size: var(--fs-2xl); line-height: var(--lh-2xl); }
    .cf-hero__panel-mark { font-size: var(--fs-6xl); line-height: var(--lh-6xl); }
    .cf-flowline__intro h2 { font-size: var(--fs-4xl); line-height: var(--lh-4xl); }
    .cf-steps__num { font-size: var(--fs-3xl); line-height: var(--lh-3xl); }
    .cf-steps__title { font-size: var(--fs-2xl); line-height: var(--lh-2xl); }
    .cf-shop__head h1 { font-size: var(--fs-5xl); line-height: var(--lh-5xl); }
    .cf-pdp__title { font-size: var(--fs-4xl); line-height: var(--lh-4xl); }
    .cf-checkout__head h1 { font-size: var(--fs-5xl); line-height: var(--lh-5xl); }
    .woocommerce-thankyou-order-received { font-size: var(--fs-4xl); line-height: var(--lh-4xl); }
    .cf-code-value { font-size: var(--fs-5xl); line-height: var(--lh-5xl); }
    .cf-account__masthead h1 { font-size: var(--fs-4xl); line-height: var(--lh-4xl); }
    .cf-page-hero h1 { font-size: var(--fs-5xl); line-height: var(--lh-5xl); }
    .cf-nav__mobile > a { font-size: var(--fs-lg); line-height: var(--lh-lg); }
    h1 { font-size: var(--fs-5xl); line-height: var(--lh-5xl); }
    .cf-pdp__title { font-size: var(--fs-4xl); line-height: var(--lh-4xl); }
    .cf-pdp__title { font-size: var(--fs-3xl); line-height: var(--lh-3xl); }
    .cfw .cfw-lead { font-size: var(--fs-2xl); line-height: var(--lh-2xl); }
    .cf-whisky-banner__title { font-size: var(--fs-3xl); line-height: var(--lh-3xl); }
    .cf-brand-index__head h2 { font-size: var(--fs-3xl); line-height: var(--lh-3xl); }
    .cf-codedisplay__code { font-size: var(--fs-5xl); line-height: var(--lh-5xl); }
    .cf-home-cta h2 { font-size: var(--fs-4xl); line-height: var(--lh-4xl); }
}

/* ═══════════════════════════════════════════════════════════════
   🔴 2026-09-11 客户要求：/brands/ 改为**正方形品牌墙**（白底 + logo + 中英两行）
   关键：原 `.cf-brands` 是「3 栏分组」布局，每组仅占 1/3 宽 → 组内格子只有 56px ✗
   现改为**分组纵向排列**（每组占满整行），组内再排正方形墙 ✓
   ═══════════════════════════════════════════════════════════════ */
.cf-brands { display: block; }                     /* 取消 3 栏分组 */
.cf-brands__group {
    background: transparent;                       /* 白底交给每个品牌格 */
    border: 0;
    padding: 0;
    margin: 0 0 var(--sp-7);
}
.cf-brands__list {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: var(--sp-4);
    list-style: none;
    padding: 0;
    margin: var(--sp-4) 0 0;
}
.cf-brands__list > li { min-width: 0; }
.cf-brands__list > li > a {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--sp-3);
    aspect-ratio: 1 / 1;                 /* 正方形 */
    padding: var(--sp-3) var(--sp-3);
    background: #fff;                    /* 白底 */
    border: 1px solid var(--cf-line-soft);
    border-radius: var(--r-m);
    text-align: center;
    transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.cf-brands__list > li > a:hover {
    border-color: var(--cf-gold);
    transform: translateY(-2px);
    box-shadow: 0 10px 24px -16px rgba(33, 26, 21, .35);
}
.cf-brands__logo { display: flex; align-items: center; justify-content: center; flex: 0 1 auto; min-height: 0; width: 100%; height: 96px; }
/* ⚠️ 必须给显式高度：父级没有确定高度时 `max-height:100%` 不生效，图片会按原尺寸撑高卡片 → 方形失效 */
.cf-brands__logo img { max-height: 96px; max-width: 90%; width: auto; height: auto; object-fit: contain; }
.cf-brands__initial { font-family: var(--cf-font-display); font-size: var(--fs-4xl); line-height: var(--lh-4xl); color: var(--cf-muted-dim); }
.cf-brands__name { display: block; flex: 0 0 auto; }
.cf-brands__cn { display: block; font-size: var(--fs-m); line-height: var(--lh-m); font-weight: 600; color: var(--cf-ink); }
.cf-brands__en { display: block; font-size: var(--fs-xs); line-height: var(--lh-xs); color: var(--cf-muted); margin-top: 2px; word-break: break-word; }
/* 响应式列数 */
@media (max-width: 1100px) { .cf-brands__list { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 860px)  { .cf-brands__list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px)  { .cf-brands__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); }
    .cf-brands__list > li > a { padding: var(--sp-3) var(--sp-2); gap: var(--sp-2); }
    .cf-brands__logo { height: 76px; }
    .cf-brands__logo img { max-height: 76px; max-width: 92%; } }

/* 🔴 2026-09-11 客户要求：品牌页 hero 下方的分隔线去掉（该 hero 为共用组件，故用修饰类局部覆盖） */
.cf-page-hero--plain { border-bottom: 0; }

/* ═══════════════════════════════════════════════════════════════
   🔴 2026-09-11 客户要求：筛选/排序改为「不同方向的抽屉」
   · 手机 <1024px  → 筛选抽屉**从左侧滑入**（原为底部弹出 ✗）
   · 桌面 ≥1024px  → 筛选改为**左侧常驻侧栏**，商品区在右（原为上方通栏 ✗）
   抽屉的 markup / JS / 筛选内容**早已存在**，本次只改呈现方式（不动模板 ✓）
   ═══════════════════════════════════════════════════════════════ */

/* ── ① 手机端：底部弹出 → 左侧滑入 ── */
@media (max-width: 1023.98px) {
    .cf-filter-drawer__panel {
        top: 0; bottom: 0; left: 0; right: auto;
        width: min(360px, 88vw);
        max-height: none;
        border-radius: 0 var(--r-l) var(--r-l) 0;
        padding: var(--sp-4) var(--sp-5) calc(var(--sp-4) + env(safe-area-inset-bottom));
        animation: cf-drawer-left .26s cubic-bezier(.22,.8,.3,1);
    }
}
@keyframes cf-drawer-left {
    from { transform: translateX(-28px); opacity: .55; }
    to   { transform: none; opacity: 1; }
}

/* ── ② 桌面端：左侧常驻侧栏 + 右侧商品区 ──
   用「浮动 + 左外边距」而非 CSS Grid ——
   Grid 自动排布会与「跨整行的元素」（hero/信任条/入口卡/搜索条/品牌条）相互打架，
   实测出现侧栏被塞进第一行并与 hero 重叠 ✗；浮动法顺序确定、不会重叠 ✓ */
@media (min-width: 1024px) {
    /* 两栏容器（模板已加 .cf-shop__body / .cf-shop__main 包裹）*/
    .cf-shop .cf-shop__body {
        display: flex;
        align-items: flex-start;
        gap: var(--sp-7);
    }
    .cf-shop .cf-shop__main { flex: 1 1 auto; min-width: 0; }
    /* 左侧常驻侧栏 */
    .cf-shop .cf-shop__body > .cf-filter-drawer {
        flex: 0 0 304px;
        max-width: 304px;
        display: block !important;        /* 原规则是 display:none，只靠 .is-open 显示 */
        position: sticky;
        top: 92px;
        max-height: calc(100vh - 112px);
        overflow-y: auto;
        overscroll-behavior: contain;
    }
    /* 侧栏内部 */
    .cf-filter-drawer__backdrop { display: none; }
    .cf-filter-drawer__head,
    .cf-filter-drawer__foot { display: none; }   /* 桌面不需要抽屉标题/关闭/「查看结果」 */
    .cf-filter-drawer__panel { position: static; background: transparent; padding: 0; }
    /* ⚠️ 侧栏内必须单列 —— 原 .cf-filter 是 3 列网格，塞进 208px 侧栏会把 5 个组压成窄条 ✗ */
    .cf-filter-drawer .cf-filter {
        display: grid;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: var(--sp-4) !important;
        background: transparent; border: 0; padding: 0; margin: 0;
    }
    .cf-filter-drawer .cf-filter__group { min-width: 0; }
    .cf-filter-drawer .cf-filter__opts { display: flex; flex-wrap: wrap; gap: var(--sp-1) var(--sp-2); }
    .cf-shop__toolbar { margin-bottom: var(--sp-3); }
}

/* ── ③ 排序：手机端底部升起的抽屉（桌面保留原生 select）── */
.cf-sortbtn {
    display: none; align-items: center; gap: var(--sp-2);
    min-height: 38px; padding: var(--sp-2) var(--sp-4);
    border: 1px solid var(--cf-line); border-radius: var(--r-s);
    background: #fff; color: var(--cf-ink);
    font-size: var(--fs-m); line-height: var(--lh-m); cursor: pointer; white-space: nowrap;
}
.cf-sortbtn:hover { border-color: var(--cf-gold); }
.cf-sort-sheet { position: fixed; inset: 0; z-index: 270; display: none; }
.cf-sort-sheet.is-open { display: block; }
.cf-sort-sheet__backdrop { position: absolute; inset: 0; background: rgba(33,26,21,.5); }
.cf-sort-sheet__panel {
    position: absolute; left: 0; right: 0; bottom: 0; background: #fff;
    border-radius: var(--r-l) var(--r-l) 0 0;
    padding: var(--sp-4) var(--sp-5) calc(var(--sp-4) + env(safe-area-inset-bottom));
    animation: cf-drawer-up .26s cubic-bezier(.22,.8,.3,1);
}
.cf-sort-sheet__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--sp-2); }
.cf-sort-sheet__head h3 { font-size: var(--fs-2xl); line-height: var(--lh-2xl); font-weight: 600; }
.cf-sort-sheet__close { width: 40px; height: 40px; border: 0; background: transparent; font-size: 22px; line-height: 1; color: var(--cf-muted); cursor: pointer; }
.cf-sort-sheet__list { list-style: none; margin: 0; padding: 0; }
.cf-sort-sheet__opt {
    display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3);
    min-height: 52px; padding: var(--sp-3) 0; border-bottom: 1px solid var(--cf-line-soft);
    font-size: var(--fs-lg); line-height: var(--lh-lg); color: var(--cf-ink); text-decoration: none;
}
.cf-sort-sheet__list li:last-child .cf-sort-sheet__opt { border-bottom: 0; }
.cf-sort-sheet__opt.is-on { color: var(--cf-gold); font-weight: 600; }
@media (max-width: 1023.98px) {
    .cf-sortbtn { display: inline-flex; }
    .cf-shop__toolbar .woocommerce-ordering { display: none; }   /* 手机端以弹层替代原生 select */
}

/* ═══════════════════════════════════════════════════════════════════════════
   筛选面板 v2（2026-09-12）—— 完全对齐 Shopify 参考站形态
   · 复选项（链接 + CSS 画方框，无 JS 也可用）
   · 每项显示「当前筛选下的真实分面数量」
   · 分组标题带该组已选数；组内可单独「全部清除」
   · 长列表限高可滚动（细滚动条）
   · 价格改为双滑块区间（?cf_price=min-max）
   全部尺寸/字色只用主题既有 token：--fs-* / --lh-* / --r-* / --sp-* / --cf-*
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 分组标题：名称 + （该组已选数） ── */
.cf-facet__title { min-width: 0; }
.cf-facet__sel { color: var(--cf-gold); font-weight: 700; }

/* ── 选项列表 ── */
.cf-facet__list { display: flex; flex-direction: column; gap: var(--sp-2); }
.cf-facet__list--scroll {
    max-height: 280px;                 /* 需求指定：长列表（品牌 34 / 型号 34）限高 */
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-right: var(--sp-1);
    scrollbar-width: thin;
    scrollbar-color: var(--cf-line) transparent;
}
.cf-facet__list--scroll::-webkit-scrollbar { width: 6px; }
.cf-facet__list--scroll::-webkit-scrollbar-track { background: transparent; }
.cf-facet__list--scroll::-webkit-scrollbar-thumb { background: var(--cf-line); border-radius: var(--r-s); }

/* ── 单个选项（整行就是一个链接） ── */
.cf-facet__opt {
    display: flex; align-items: center; gap: var(--sp-2);
    min-height: var(--sp-6);
    font-size: var(--fs-m); line-height: var(--lh-m);
    color: var(--cf-brown); text-decoration: none;
}
.cf-facet__opt:hover { color: var(--cf-ink); }
.cf-facet__opt:hover .cf-facet__box { border-color: var(--cf-gold); }
.cf-facet__opt.is-on { color: var(--cf-ink); font-weight: 600; }
.cf-facet__opt.is-zero { color: var(--cf-muted-dim); }
.cf-facet__opt.is-zero .cf-facet__box { border-color: var(--cf-line-soft); }
.cf-facet__opt.is-zero.is-on { color: var(--cf-muted); }

/* 方框：16px（--sp-4）× 16px，圆角 2px（--r-xs）；已选 = 深色勾 */
.cf-facet__box {
    position: relative; flex: 0 0 auto;
    width: var(--sp-4); height: var(--sp-4);
    border: 1px solid var(--cf-line); border-radius: var(--r-xs);
    background: #fff;
}
.cf-facet__opt.is-on .cf-facet__box {
    border-color: var(--cf-gold);
    background: var(--cf-card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.4 8.6l3.1 3.1 6.1-7.2' fill='none' stroke='%23211A15' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 72% no-repeat;
}

.cf-facet__name { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.cf-facet__name .cf-vitola-en { font-size: var(--fs-xs); line-height: var(--lh-xs); color: var(--cf-muted); font-weight: 400; }
.cf-facet__n { flex: 0 0 auto; font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-muted); font-weight: 400; }
.cf-facet__opt.is-zero .cf-facet__n { color: var(--cf-muted-dim); }

/* ── 组内「全部清除」（只在该组有已选值时渲染） ── */
.cf-facet__clear {
    display: inline-block; margin-top: var(--sp-2);
    font-size: var(--fs-s); line-height: var(--lh-s);
    color: var(--cf-muted); text-decoration: underline;
}
.cf-facet__clear:hover { color: var(--cf-gold); }

/* ── 价格：双滑块区间 ── */
.cf-facet__price { padding-top: var(--sp-1); }
.cf-facet__pricelabels {
    display: flex; align-items: center; justify-content: space-between; gap: var(--sp-2);
    font-size: var(--fs-s); line-height: var(--lh-s);
    color: var(--cf-ink); font-variant-numeric: tabular-nums;
}
.cf-facet__pdash { color: var(--cf-muted); }
.cf-facet__range { position: relative; height: var(--sp-5); margin-top: var(--sp-2); }
.cf-facet__track {
    position: absolute; left: 0; right: 0; top: 50%; height: 2px; margin-top: -1px;
    background: var(--cf-line); border-radius: var(--r-xs);
}
.cf-facet__fill { position: absolute; top: 0; bottom: 0; background: var(--cf-gold); border-radius: var(--r-xs); }
.cf-facet__input {
    position: absolute; left: 0; top: 0; width: 100%; height: 100%;
    margin: 0; padding: 0; border: 0; background: none;
    -webkit-appearance: none; appearance: none;
    pointer-events: none;               /* 只有滑块手柄可拖，两个 input 才能叠放 */
}
.cf-facet__input::-webkit-slider-runnable-track { height: var(--sp-5); background: transparent; border: 0; }
.cf-facet__input::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none;
    pointer-events: auto; cursor: pointer;
    width: var(--sp-4); height: var(--sp-4);
    margin-top: calc((var(--sp-5) - var(--sp-4)) / 2);
    border: 2px solid var(--cf-gold); border-radius: 50%;
    background: #fff; box-shadow: 0 1px 3px rgba(33, 26, 21, .25);
}
.cf-facet__input::-moz-range-track { height: var(--sp-5); background: transparent; border: 0; }
.cf-facet__input::-moz-range-thumb {
    pointer-events: auto; cursor: pointer;
    width: var(--sp-4); height: var(--sp-4);
    border: 2px solid var(--cf-gold); border-radius: 50%;
    background: #fff; box-shadow: 0 1px 3px rgba(33, 26, 21, .25);
}
.cf-facet__applyprice {
    display: flex; align-items: center; justify-content: center;
    margin-top: var(--sp-3); min-height: var(--sp-6);
    border: 1px solid var(--cf-ink); border-radius: var(--r-s);
    background: var(--cf-ink); color: var(--cf-paper);
    font-size: var(--fs-m); line-height: var(--lh-m); font-weight: 600; text-decoration: none;
}
.cf-facet__applyprice:hover { background: var(--cf-brown-deep); }
.cf-facet__quick { display: flex; flex-wrap: wrap; gap: var(--sp-1) var(--sp-2); margin-top: var(--sp-3); }
.cf-facet__quick a { font-size: var(--fs-xs); line-height: var(--lh-xs); color: var(--cf-muted); text-decoration: underline; }
.cf-facet__quick a:hover { color: var(--cf-gold); }
.cf-facet__quick a.is-on { color: var(--cf-gold); font-weight: 600; text-decoration: none; }

/* `.cf-filter__label` 的 chevron 用 margin-left:auto 顶到最右；
   价格组标题较长时允许换行不撑破 304px 侧栏 */
.cf-facet__head { flex-wrap: nowrap; }
.cf-filter__group.cf-facet { min-width: 0; }

/* 双滑块的命名钩子（JS 会改写 inline z-index，此处给出无 JS 时的默认层级） */
.cf-facet__input--lo { z-index: 1; }
.cf-facet__input--hi { z-index: 1; }
.cf-facet__plo, .cf-facet__phi { font-variant-numeric: tabular-nums; }

/* FFIX-2026-09-12 ── 抽屉底部按钮区修复（客户反馈「还是一样，按钮后面还有白色底」）
   上一版修复因用了「部分字符串存在性判断」而被整体跳过 ✗ —— 本次逐条确认落地。
   三处问题：
   ① `.cf-filter` 在抽屉里仍是 **3 列 grid**（那是给已废弃的页内面板用的）→ 单列
   ② 模板原有 `.cf-filter-drawer__foot`（第二个「查看结果」）**没被隐藏** → 隐藏
   ③ 底部动作条需要**吸底**，且底色与筛选面板一致（原为纯白面板底，与米色列表不搭） */
/* ① 抽屉内一律单列 */
.cf-filter-drawer .cf-filter {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: var(--sp-4) !important;
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}
/* ② 彻底隐藏模板原有的重复底栏 */
.cf-filter-drawer .cf-filter-drawer__foot { display: none !important; }
/* ③ 底部动作条：吸底 + 与面板同底色的「栏」 */
.cf-filter-drawer .cf-filter__actions {
    position: sticky;
    bottom: 0;
    z-index: 2;
    display: flex;
    align-items: stretch;
    gap: var(--sp-3);
    margin: var(--sp-5) calc(-1 * var(--sp-5)) calc(-1 * var(--sp-4));
    padding: var(--sp-3) var(--sp-5) calc(var(--sp-4) + env(safe-area-inset-bottom));
    background: var(--cf-card);
    border-top: 1px solid var(--cf-line);
}
.cf-filter-drawer .cf-filter__actions .cf-filter__reset {
    flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
    min-height: 46px; padding: var(--sp-3) var(--sp-5); background: #fff;
}
.cf-filter-drawer .cf-filter__actions .cf-filter__apply {
    flex: 1 1 auto; min-height: 46px; padding: var(--sp-3) var(--sp-5);
    background: var(--cf-ink); color: var(--cf-paper);
    border: 1px solid var(--cf-ink); border-radius: var(--r-xs);
    font-size: var(--fs-base); line-height: var(--lh-base); letter-spacing: .1em; cursor: pointer;
}
/* 桌面侧栏：筛选即时生效，不需要「查看结果」，只留「重置」，也不吸底 */
@media (min-width: 1024px) {
    .cf-filter-drawer .cf-filter__actions {
        position: static;
        margin: var(--sp-5) 0 0;
        padding: var(--sp-4) 0 0;
        background: transparent;
        gap: 0;
    }
    .cf-filter-drawer .cf-filter__actions .cf-filter__apply { display: none; }
    .cf-filter-drawer .cf-filter__actions .cf-filter__reset { flex: 1 1 auto; background: #fff; }
}

/* ═══════════════════════════════════════════════════════════════
   邀请推荐体系样式（2026-09-12）
   · 注册页「邀请码（选填）」字段 + 邀请人提示
   · 会员中心「邀请好友」面板（仅邀请人可见）
   🔴 全部使用既有 token ✗ 不新增字号/圆角/间距数字
   ═══════════════════════════════════════════════════════════════ */
.cf-invite-field { margin-bottom: var(--sp-3); }
.cf-invite-field label { display: block; font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-muted); margin-bottom: var(--sp-1); }
.cf-invite-field .cf-invite-hint { display: block; margin-top: var(--sp-1); font-size: var(--fs-xs); line-height: var(--lh-xs); color: var(--cf-gold); }

.cf-invite .cf-invite__title { font-size: var(--fs-2xl); line-height: var(--lh-2xl); font-weight: 600; margin: 0 0 var(--sp-2); }
.cf-invite .cf-invite__desc { font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-muted); margin: 0 0 var(--sp-5); }
.cf-invite .cf-invite__row { display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap; padding: var(--sp-3) 0; border-bottom: 1px solid var(--cf-line-soft); }
.cf-invite .cf-invite__row:last-child { border-bottom: 0; }
.cf-invite .cf-invite__label { flex: 0 0 84px; font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-muted); }
.cf-invite .cf-invite__code { font-size: var(--fs-xl); line-height: var(--lh-xl); letter-spacing: 2px; font-weight: 600; color: var(--cf-ink); }
.cf-invite .cf-invite__link { flex: 1 1 220px; min-width: 0; font-size: var(--fs-s); line-height: var(--lh-s); color: var(--cf-brown); word-break: break-all; }
.cf-invite .cf-invite__copy { flex: 0 0 auto; }
@media (max-width: 767.98px) {
    .cf-invite .cf-invite__row { align-items: flex-start; }
    .cf-invite .cf-invite__label { flex: 0 0 100%; }
    .cf-invite .cf-invite__link { flex: 1 1 100%; }
}

/* ═══ 筛选侧栏简化（2026-09-13 客户要求）═══════════════════════
   ① 分组默认折叠 → 选项隐藏，侧栏不再需要滚动 ✓（照参考站 ✓）
   ② 价格模块简化 → 快捷链接隐藏 ✗ 只留滑块 + 应用 ✓
   ③ 修「重置」按钮：原来被撑成整栏宽的大空框 ✗ → 改成自适应宽度 ✓
   ═══════════════════════════════════════════════════════════ */

/* ② 价格快捷链接默认隐藏（滑块 + 应用已足够 ✓；无 JS 时由 @media 兜底显示）*/
.cf-filter-drawer .cf-facet__quick { display: none; }
@media (scripting: none) {           /* 无 JS 环境才显示兜底链接 ✓ */
    .cf-filter-drawer .cf-facet__quick { display: block; }
}

/* ③ 「重置」按钮：自适应宽度、不撑满、不出现空框 */
.cf-filter-drawer .cf-filter__actions {
    justify-content: flex-start;
    padding-top: var(--sp-4);
    border-top: 1px solid var(--cf-line-soft);
}
.cf-filter-drawer .cf-filter__actions .cf-filter__reset {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 38px;
    padding: var(--sp-2) var(--sp-5);
    background: #fff;
    border: 1px solid var(--cf-line);
    border-radius: var(--r-xs);
    font-size: var(--fs-m);
    line-height: var(--lh-m);
    color: var(--cf-brown);
    text-decoration: none;
}
.cf-filter-drawer .cf-filter__actions .cf-filter__reset:hover {
    border-color: var(--cf-gold);
    color: var(--cf-gold);
}

/* 折叠后的组标题：整行可点，右侧加展开箭头 */
.cf-filter-drawer .cf-facet > summary,
.cf-filter-drawer .cf-filter__group > summary {
    cursor: pointer;
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-2);
    padding: var(--sp-2) 0;
}
.cf-filter-drawer .cf-facet > summary::-webkit-details-marker,
.cf-filter-drawer .cf-filter__group > summary::-webkit-details-marker { display: none; }
.cf-filter-drawer .cf-facet > summary::after,
.cf-filter-drawer .cf-filter__group > summary::after {
    content: "";
    width: 8px; height: 8px;
    border-right: 1.5px solid var(--cf-muted);
    border-bottom: 1.5px solid var(--cf-muted);
    transform: rotate(45deg);
    transition: transform .18s ease;
}
.cf-filter-drawer .cf-facet[open] > summary::after,
.cf-filter-drawer .cf-filter__group[open] > summary::after { transform: rotate(-135deg); }

/* 折叠态下侧栏更短 → 不再需要滚动 ✓（限高仅作安全兜底） */
@media (min-width: 1024px) {
    .cf-shop .cf-shop__body > .cf-filter-drawer { max-height: calc(100vh - 112px); overflow-y: auto; }
}

/* ═══ 筛选侧栏视觉对齐参考站（2026-09-13，实测参考站截图后）═══════════
   参考站真实长相（hk.cohcigars.com 侧栏）：
     BRANDS                        ← 组标题【大写 + 下方细横线】
       ☐ Bolivar (34)              ← 选项可见 ✓（不是折叠 ✗）
     PRICE
       ●━━━━━━━●  [ $0 ] to [ $126000 ]   ← 滑块 + 【两个数字输入框】
       [        Apply        ]     ← 深色【胶囊】按钮
   我上一轮把分组全折叠了 ✗ —— 那是理解错误，现已恢复展开 ✓
   ═══════════════════════════════════════════════════════════ */

/* 组标题：大写 + 细横线（照参考站 ✓） */
.cf-filter-drawer .cf-facet > summary,
.cf-filter-drawer .cf-filter__group > summary {
    text-transform: uppercase;
    letter-spacing: .12em;
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
    font-weight: 600;
    color: var(--cf-ink);
    border-bottom: 1px solid var(--cf-line);
    padding: var(--sp-2) 0 var(--sp-2);
    margin-bottom: var(--sp-2);
}
/* 紧凑间距（参考站很紧 ✓） */
.cf-filter-drawer .cf-filter { gap: var(--sp-3) !important; }
.cf-filter-drawer .cf-facet__opt { padding: var(--sp-1) 0; gap: var(--sp-2); }

/* 价格：两个数字输入框（照参考站 ✓） */
.cf-filter-drawer .cf-facet__priceinputs {
    display: flex; align-items: center; gap: var(--sp-2);
    margin: var(--sp-2) 0 var(--sp-3);
    font-size: var(--fs-s); color: var(--cf-muted);
}
.cf-filter-drawer .cf-facet__priceinputs input[type="number"] {
    width: 100%; min-width: 0; min-height: 36px;
    padding: var(--sp-1) var(--sp-2);
    border: 1px solid var(--cf-line); border-radius: var(--r-xs);
    background: #fff; color: var(--cf-ink);
    font-size: var(--fs-s); line-height: var(--lh-s);
}
.cf-filter-drawer .cf-facet__priceinputs .sep { flex: 0 0 auto; }
/* Apply 按钮：深色胶囊（照参考站 ✓） */
.cf-filter-drawer .cf-facet__applyprice {
    display: block; width: 100%; min-height: 44px;
    display: flex; align-items: center; justify-content: center;
    background: var(--cf-ink); color: var(--cf-paper);
    border-radius: 999px; text-decoration: none;
    font-size: var(--fs-m); line-height: var(--lh-m); letter-spacing: .06em;
}
.cf-filter-drawer .cf-facet__applyprice:hover { background: var(--cf-cedar); }

/* ═══ 筛选组标题：中文加粗 + 细横线（2026-09-13 客户指定）═══════════
   参考站用「大写 + 细横线」✓ 但 `text-transform:uppercase` 对中文无效 ✗
   → 改用 **中文加粗** 达到等效观感 ✓（客户确认 ✓）
   真实 DOM：<summary class="cf-filter__label cf-facet__head">
                <span class="cf-facet__title">品牌</span></summary>
   ⚠️ 必须打到 .cf-facet__title 上 ✗ —— 只写 summary 会被既有的
      `.cf-filter__label` 规则盖掉 ✗（实测未生效 ✓）
   ═══════════════════════════════════════════════════════════ */
.cf-filter-drawer .cf-facet > .cf-facet__head {
    border-bottom: 1px solid var(--cf-line);
    padding: 0 0 var(--sp-2);
    margin-bottom: var(--sp-3);
    align-items: center;
}
.cf-filter-drawer .cf-facet > .cf-facet__head .cf-facet__title {
    font-size: var(--fs-m);
    line-height: var(--lh-m);
    font-weight: 700;            /* 中文加粗 ✓ */
    letter-spacing: 0;
    color: var(--cf-ink);
}
.cf-filter-drawer .cf-facet__head .cf-facet__sel {
    font-weight: 600;
    color: var(--cf-gold);
}
/* 折叠箭头跟着标题走 ✓ */
.cf-filter-drawer .cf-facet > .cf-facet__head::after {
    content: "";
    flex: 0 0 auto;
    width: 8px; height: 8px;
    margin-left: var(--sp-2);
    border-right: 1.5px solid var(--cf-muted);
    border-bottom: 1.5px solid var(--cf-muted);
    transform: rotate(45deg);
    transition: transform .18s ease;
}
.cf-filter-drawer .cf-facet[open] > .cf-facet__head::after { transform: rotate(-135deg); }

/* ═══ 顶栏统一（2026-09-13 客户要求：PC 与手机一致）═══════════════
   改前：PC = [左菜单] [logo 居中] [右菜单 + 图标动作]   ✗
   改后：PC = [logo 最左] [菜单合并成一排] [图标动作靠右]  ✓
   菜单项与顺序与手机端抽屉完全一致 ✓（会员制度·预订流程·威士忌单桶定制·
   品牌与服务·常见问题·联系·登录 ✓）
   ═══════════════════════════════════════════════════════════ */
@media (min-width: 1081px) {
    .cf-nav__row {
        justify-content: flex-start !important;
        gap: 0;
    }
    /* ① logo 放最左 */
    .cf-nav__brand {
        order: 1;
        margin: 0 var(--sp-6) 0 0 !important;
        flex: 0 0 auto;
    }
    /* ② 左菜单紧跟 logo */
    .cf-nav__links--left {
        order: 2;
        margin: 0 !important;
        flex: 0 0 auto;
    }
    /* ③ 右菜单与左菜单连成一条（去掉被推到右侧的自动外边距 ✗）*/
    .cf-nav__side {
        order: 3;
        flex: 1 1 auto;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: var(--sp-5);
    }
    .cf-nav__links--right {
        order: 1;
        margin: 0 !important;
        flex: 0 0 auto;
        display: flex;
        align-items: center;
        gap: var(--sp-4);
    }
    /* ④ 图标动作靠最右 */
    .cf-nav__actions {
        order: 2;
        flex: 0 0 auto;
        margin-left: var(--sp-4);
    }
}

/* 顶栏补丁：logo 块被原样式撑到 567px 宽 ✗ → 菜单被挤到 x=647 ✗
   收紧 brand 与 logo 的实际宽度 ✓ */
@media (min-width: 1024px) {
    .cf-nav__row > .cf-nav__brand {
        flex: 0 0 auto !important;
        width: auto !important;
        max-width: none !important;
        display: inline-flex !important;
        align-items: center;
    }
    .cf-nav__brand .cf-nav__logo {
        width: auto !important;
        max-width: 132px !important;
        height: auto !important;
        display: block;
    }
    /* 菜单紧跟 logo ✓ */
    .cf-nav__row > .cf-nav__links--left { margin: 0 !important; }
}

/* 顶栏 logo 最终补丁（2026-09-13）
   实锤原因：原规则 `.cf-nav__brand{display:flex;justify-content:center}` ✗
   → logo 在 567px 宽的 brand 块里【居中】✗ → 菜单被挤到 x=647 ✗
   这里用高优先级把它压成「左对齐 + 收敛宽度」✓ */
@media (min-width: 1081px) {
    header.cf-nav .cf-nav__row .cf-nav__brand {
        flex: 0 0 auto !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        justify-content: flex-start !important;
        margin: 0 28px 0 0 !important;
        padding: 0 !important;
    }
    header.cf-nav .cf-nav__row .cf-nav__brand > .cf-nav__logo {
        width: auto !important;
        max-width: 132px !important;
        height: auto !important;
        margin: 0 !important;
        display: block !important;
    }
    header.cf-nav .cf-nav__row .cf-nav__links--left { margin: 0 !important; }
}

/* 顶栏最终修复：.cf-nav__row 原本是【CSS Grid 三列】(1fr auto 1fr) ✗
   → logo 被固定在中间列 ✗，用 flex 属性压不动 ✗（实测 brand 块恒为 571px ✗）
   → 直接把容器改成 flex 一排 ✓ */
@media (min-width: 1081px) {
    header.cf-nav > .cf-nav__row {
        display: flex !important;
        grid-template-columns: none !important;
        grid-template-areas: none !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 0 !important;
    }
    header.cf-nav > .cf-nav__row > .cf-nav__brand { order: 1; }
    header.cf-nav > .cf-nav__row > .cf-nav__links--left { order: 2; }
    header.cf-nav > .cf-nav__row > .cf-nav__side { order: 3; flex: 1 1 auto; }
}

/* 顶栏：去掉左右菜单之间的空隙，合并成一排 ✓（客户要求"菜单选项统一"✓）
   原 .cf-nav__side{flex:1} 会把右菜单推到最右 ✗ → 收成内容宽度 ✓ */
@media (min-width: 1081px) {
    header.cf-nav > .cf-nav__row > .cf-nav__side {
        flex: 0 0 auto !important;
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: var(--sp-5) !important;
        margin: 0 0 0 var(--sp-2) !important;
    }
    header.cf-nav > .cf-nav__row > .cf-nav__side > .cf-nav__links--right {
        display: flex !important;
        align-items: center !important;
        gap: var(--sp-4) !important;
        margin: 0 !important;
    }
    header.cf-nav > .cf-nav__row > .cf-nav__side > .cf-nav__actions {
        display: flex !important;
        align-items: center !important;
        gap: var(--sp-2) !important;
        margin: 0 !important;
    }
}

/* 顶栏方案 B（2026-09-13 客户选定 ✓）
   logo 最左 ✓ ｜ 主菜单紧跟 logo ✓ ｜ 「登录 / 在售目录 / 预订清单」图标推到最右 ✓
   做法：.cf-nav__side 撑满剩余宽度 + space-between
        → 右侧菜单留在左边（紧接主菜单 ✓）、图标动作落到最右 ✓ */
@media (min-width: 1081px) {
    header.cf-nav > .cf-nav__row > .cf-nav__side {
        flex: 1 1 auto !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;   /* ← 关键 ✓ */
        gap: var(--sp-5) !important;
        margin: 0 0 0 var(--sp-2) !important;
    }
}

/* 🔴 顶栏 logo 溢出修复（2026-09-13）
   实测：logo 自然尺寸 256×207（近方形 ✓），我用 max-width:132px 约束 ✗
   → 高度被算成 107px ✗ > 头部 64–76px ✗ → 纵向溢出 15–21px ✗（1024px 下还与菜单重叠 ✗）
   ✅ 正解：**约束高度**（logo 是近方形，必须按高度定尺 ✓），宽度随之自适应 ✓ */
@media (min-width: 1081px) {
    header.cf-nav .cf-nav__row .cf-nav__brand > .cf-nav__logo {
        height: 30px !important;      /* 头部 64–76px，留足上下呼吸 ✓ */
        width: auto !important;
        max-width: none !important;
        max-height: 30px !important;
        object-fit: contain;
        display: block !important;
        margin: 0 !important;
    }
    /* 品牌块高度跟随内容，不撑高头部 ✓ */
    header.cf-nav .cf-nav__row > .cf-nav__brand {
        height: auto !important;
        max-height: 64px !important;
        overflow: visible !important;
    }
}

/* 🔴 logo 尺寸：**全宽度生效**（2026-09-13）
   实测 1024px（主题走手机版头部）时 logo 仍为 132×107 ✗ → 溢出 21px ✗
   原因：我先前的修复被包在 min-width:1025px 里 ✗ → 窄断点漏掉 ✗
   ✅ 提到媒体查询外，任何宽度都按高度约束 ✓ */
.cf-nav .cf-nav__brand > .cf-nav__logo,
.cf-nav .cf-nav__logo {
    height: 30px !important;
    width: auto !important;
    max-width: none !important;
    max-height: 30px !important;
    object-fit: contain;
}
@media (max-width: 1024.98px) {
    .cf-nav .cf-nav__brand > .cf-nav__logo { height: 26px !important; max-height: 26px !important; }
}

/* ═══════════════════════════════════════════
   BEST SELLER 角标（2026-09-13 客户指示）
   来源：客户 Excel「香港Daviduff…V20260813.xlsx」Priority 列 = "★ BEST SELLER"
   红色 + 左上角（右上角是 cf-pack-badge 支数，互不冲突）
   ═══════════════════════════════════════════ */
.cf-best-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 3;
  padding: 3px 9px;
  border-radius: var(--cf-radius-xs, 6px);
  background: var(--cf-red, #641F1B);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .06em;
  line-height: 1.5;
  white-space: nowrap;
  pointer-events: none;
}
.cf-best-badge--pdp {
  top: 14px;
  left: 14px;
  font-size: 11px;
  padding: 4px 11px;
}

/* 🔴 2026-09-13 修正：窄卡片上 BEST SELLER 与支数徽章会重叠（媒体区仅 171px）
   → 小屏收紧字号与内边距，保证两个角标不相撞 ✓ */
@media (max-width: 900px) {
  .cf-best-badge {
    top: 7px;
    left: 7px;
    padding: 2px 6px;
    font-size: 9px;
    letter-spacing: .02em;
  }
  .cf-best-badge--pdp {
    top: 12px;
    left: 12px;
    padding: 3px 9px;
    font-size: 11px;
    letter-spacing: .05em;
  }
}

/* ═══════════════════════════════════════════
   收藏按钮样式（2026-09-13 客户指示：收藏只在商品页）
   卡片版已移除；此处定型「标签版」在商品页预订面板内的外观
   ═══════════════════════════════════════════ */
.cf-fav--tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  justify-content: center;
  box-sizing: border-box;
  margin-top: 12px;
  padding: 11px 18px;
  min-height: 44px;
  border: 1px solid var(--cf-line, rgba(33,26,21,.24));
  border-radius: 999px;
  background: #fff;
  color: var(--cf-brown, #5A4636);
  font: inherit;
  font-size: 13px;
  letter-spacing: .04em;
  cursor: pointer;
  transition: border-color .18s, color .18s, background-color .18s;
}
.cf-fav--tag:hover { border-color: var(--cf-gold, #9A7B45); color: var(--cf-gold, #9A7B45); }
.cf-fav--tag svg { width: 16px; height: 16px; flex: none; }
.cf-fav--tag.is-active {
  background: var(--cf-red, #641F1B);
  border-color: var(--cf-red, #641F1B);
  color: #fff;
}
.cf-fav--tag.is-active:hover { border-color: var(--cf-red, #641F1B); color: #fff; }
.cf-fav--tag:focus-visible { outline: 2px solid var(--cf-gold, #9A7B45); outline-offset: 2px; }

/* 🔴 修正：member.css 里 `.cf-fav{min-width:44px;min-height:44px}` 把标签版压成 44×44 ✗
   → 用更高优先级 .mpanel .cf-fav--tag 恢复整宽 ✓ */
.mpanel .cf-fav--tag {
  width: 100%;
  min-width: 0;
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 12px;
  padding: 11px 18px;
  border: 1px solid var(--cf-line, rgba(33,26,21,.24));
  border-radius: 999px;
  background: #fff;
  color: var(--cf-brown, #5A4636);
  font: inherit;
  font-size: 13px;
  letter-spacing: .04em;
  cursor: pointer;
  transition: border-color .18s, color .18s, background-color .18s;
}
.mpanel .cf-fav--tag:hover { border-color: var(--cf-gold, #9A7B45); color: var(--cf-gold, #9A7B45); }
.mpanel .cf-fav--tag svg { width: 17px; height: 17px; flex: none; }
.mpanel .cf-fav--tag.is-active { background: var(--cf-red, #641F1B); border-color: var(--cf-red, #641F1B); color: #fff; }
.mpanel .cf-fav--tag.is-active:hover { color: #fff; }

/* 🔴 修正2：.mpanel 是 grid + 自动放置，按钮被塞到空网格位（y=-505）✗
   → 显式锁定自动放置位置 ✓ */
.mpanel .cf-fav--tag {
  grid-row: auto;
  grid-column: auto;
  align-self: start;
  justify-self: stretch;
  position: static;
  inset: auto;
}

/* ═══════════════════════════════════════════
   收藏按钮（2026-09-13 客户指示 V2）
   · 只在商品页；位置=价格之前；形态=爱心图标（不要「收藏」文字）✓
   ═══════════════════════════════════════════ */
.cf-pdp__price-block .cf-fav--tag {
  grid-row: auto;
  grid-column: auto;
  justify-self: end;      /* 靠右 */
  align-self: center;
  width: 40px;
  min-width: 0;
  height: 40px;
  min-height: 0;
  padding: 0;
  margin: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--cf-line, rgba(33,26,21,.24));
  border-radius: 50%;
  background: #fff;
  color: var(--cf-brown, #5A4636);
  cursor: pointer;
  transition: border-color .18s, color .18s, background-color .18s;
}
.cf-pdp__price-block .cf-fav--tag:hover { border-color: var(--cf-gold, #9A7B45); color: var(--cf-gold, #9A7B45); }
.cf-pdp__price-block .cf-fav--tag svg { width: 18px; height: 18px; flex: none; }
.cf-pdp__price-block .cf-fav--tag.is-active {
  background: var(--cf-red, #641F1B);
  border-color: var(--cf-red, #641F1B);
  color: #fff;
}
.cf-pdp__price-block .cf-fav--tag.is-active:hover { color: #fff; }
/* 图标版隐藏「收藏/已收藏」文字 */
.cf-pdp__price-block .cf-fav--tag .cf-fav__text { display: none; }
/* 价格区：收藏靠右与价格同一行 */
.cf-pdp__price-block { position: relative; }
.cf-pdp__price-block .cf-price { padding-right: 52px; }

/* ═══════════════════════════════════════════
   预订步骤条合并为一个方框（客户：现在太零散了）
   ═══════════════════════════════════════════ */
.mpanel .cf-pdp__steps {
  grid-template-columns: 1fr;          /* 竖排 */
  gap: 0;
  border: 1px solid var(--cf-line, rgba(33,26,21,.24));
  border-radius: var(--cf-radius-s, 8px);
  background: var(--cf-card, #FAF8F3);
  overflow: hidden;
  padding: 0;
}
.mpanel .cf-pdp__steps li {
  flex-direction: row;
  align-items: baseline;
  gap: 10px;
  padding: 11px 14px;
  border: 0;
  border-bottom: 1px solid var(--cf-line, rgba(33,26,21,.24));
  border-radius: 0;
  background: transparent;
}
.mpanel .cf-pdp__steps li:last-child { border-bottom: 0; }
.mpanel .cf-pdp__steps strong { flex: none; min-width: 62px; }
.mpanel .cf-pdp__steps span { color: var(--cf-muted, #7B756D); }

/* 🔴 修正：价格区是 grid 单列，收藏与价格各占一行 ✗ → 显式分列成一行 ✓ */
.cf-pdp__price-block {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 12px;
}
.cf-pdp__price-block .cf-fav--tag   { grid-column: 2; grid-row: 1; }
.cf-pdp__price-block .cf-price      { grid-column: 1; grid-row: 1; padding-right: 0; }
.cf-pdp__price-block > .cf-price-status,
.cf-pdp__price-block > p,
.cf-pdp__price-block > .cf-price-note { grid-column: 1 / -1; }

/* 🔴 修正：价格文字最小内容宽把 40px 收藏按钮挤出视口（390px 屏 → 收藏右边 422）✗ */
.cf-pdp__price-block .cf-price { min-width: 0; }
.cf-pdp__price-block .cf-price > * { min-width: 0; }
@media (max-width: 768px) {
  .cf-pdp__price-block { column-gap: 8px; }
  .cf-pdp__price-block .cf-fav--tag { width: 36px; height: 36px; }
  .cf-pdp__price-block .cf-fav--tag svg { width: 16px; height: 16px; }
}

/* 🔴 最终修正：主题某条 `.cf-fav` 规则带 `position:absolute; inset:8px -44px …`
   与我的规则同优先级但位置更靠后 → 把我的规则反超 ✗
   用更高优先级（.cf-pdp .cf-pdp__price-block .cf-fav）整体覆盖 ✓ */
.cf-pdp .cf-pdp__price-block .cf-fav--tag {
  position: static;
  inset: auto;
  top: auto; right: auto; bottom: auto; left: auto;
  grid-column: 2;
  grid-row: 1;
  justify-self: end;
  align-self: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  min-width: 0;
  height: 40px;
  min-height: 0;
  padding: 0;
  margin: 0;
  z-index: auto;
  border: 1px solid var(--cf-line, rgba(33,26,21,.24));
  border-radius: 50%;
  background: #fff;
  color: var(--cf-brown, #5A4636);
  cursor: pointer;
}
.cf-pdp .cf-pdp__price-block .cf-fav--tag svg { width: 18px; height: 18px; flex: none; }
.cf-pdp .cf-pdp__price-block .cf-fav--tag .cf-fav__text { display: none; }
.cf-pdp .cf-pdp__price-block .cf-fav--tag.is-active { background: var(--cf-red, #641F1B); border-color: var(--cf-red, #641F1B); color: #fff; }
.cf-pdp .cf-pdp__price-block .cf-fav--tag:hover { border-color: var(--cf-gold, #9A7B45); color: var(--cf-gold, #9A7B45); }
.cf-pdp .cf-pdp__price-block .cf-fav--tag.is-active:hover { color: #fff; }
@media (max-width: 768px) {
  .cf-pdp .cf-pdp__price-block .cf-fav--tag { width: 36px; height: 36px; }
  .cf-pdp .cf-pdp__price-block .cf-fav--tag svg { width: 16px; height: 16px; }
}

/* ═══════════════════════════════════════════
   收藏按钮 V3（2026-09-13 客户指示）：跟在品牌名后面、与品牌同一行
   ═══════════════════════════════════════════ */
.cf-pdp__brandline {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.cf-pdp__brandline .cf-kicker { min-width: 0; }

.cf-pdp .cf-pdp__brandline .cf-fav--tag {
  position: static;
  inset: auto;
  top: auto; right: auto; bottom: auto; left: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  min-width: 0;
  height: 28px;
  min-height: 0;
  padding: 0;
  margin: 0;
  flex: none;
  z-index: auto;
  border: 1px solid var(--cf-line, rgba(33,26,21,.24));
  border-radius: 50%;
  background: #fff;
  color: var(--cf-brown, #5A4636);
  cursor: pointer;
  transition: border-color .18s, color .18s, background-color .18s;
}
.cf-pdp .cf-pdp__brandline .cf-fav--tag svg { width: 15px; height: 15px; flex: none; }
.cf-pdp .cf-pdp__brandline .cf-fav--tag .cf-fav__text { display: none; }
.cf-pdp .cf-pdp__brandline .cf-fav--tag:hover { border-color: var(--cf-gold, #9A7B45); color: var(--cf-gold, #9A7B45); }
.cf-pdp .cf-pdp__brandline .cf-fav--tag.is-active {
  background: var(--cf-red, #641F1B);
  border-color: var(--cf-red, #641F1B);
  color: #fff;
}
.cf-pdp .cf-pdp__brandline .cf-fav--tag.is-active:hover { color: #fff; }

/* 价格区恢复原状（收藏已移走，不再需要分列/占位） */
.cf-pdp__price-block { grid-template-columns: minmax(0, 1fr); }
.cf-pdp__price-block .cf-price { min-width: 0; padding-right: 0; }

/* ═══════════════════════════════════════════
   预订步骤模块重设计（2026-09-13 客户要求）
   · 合并为一个方框 ✓  · 编号做成金色圆形徽章 ✓  · 层次更清晰 ✓
   实现方式：CSS 伪元素提取「01/02/03」，不改模板（零风险）✓
   ═══════════════════════════════════════════ */
.mpanel .cf-pdp__steps {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  list-style: none;
  margin: 16px 0 0;
  padding: 4px 0;
  border: 1px solid var(--cf-line, rgba(33,26,21,.24));
  border-radius: var(--cf-radius-s, 8px);
  background: var(--cf-card, #FAF8F3);
  overflow: hidden;
}
.mpanel .cf-pdp__steps li {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  align-items: center;
  column-gap: 10px;
  row-gap: 1px;
  padding: 10px 14px;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.mpanel .cf-pdp__steps li + li { border-top: 1px solid var(--cf-line-soft, rgba(33,26,21,.11)); }

/* 编号：隐藏原文，改用伪元素画圆形徽章 */
.mpanel .cf-pdp__steps strong {
  position: relative;
  grid-column: 1;
  grid-row: 1 / span 2;
  width: 26px;
  height: 26px;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0;                 /* 隐藏「01 提交」原文 */
  color: transparent;
  border: 1px solid var(--cf-gold, #9A7B45);
  border-radius: 50%;
  background: #fff;
}
.mpanel .cf-pdp__steps strong::after {
  content: attr(data-n);
  font-size: 11px;
  font-weight: 600;
  color: var(--cf-gold, #9A7B45);
  letter-spacing: 0;
  line-height: 1;
}
/* 步骤名：从原文里取不出来，改用 li 的序号做视觉引导 */
.mpanel .cf-pdp__steps span {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  font-size: var(--fs-xs, 12px);
  line-height: 1.6;
  color: var(--cf-muted, #7B756D);
}

/* ═══════════════════════════════════════════
   数量模块与「加入预订清单」按钮之间加大间距（客户要求）
   ═══════════════════════════════════════════ */
.mpanel form.cart { row-gap: 22px; }
.mpanel form.cart .single_add_to_cart_button { margin-top: 4px; }
.mpanel .cf-qty-label { margin-bottom: 2px; }

/* ═══════════════════════════════════════════
   收藏按钮 V4（2026-09-13 客户指示）：纯文字，去掉爱心符号
   ═══════════════════════════════════════════ */
.cf-pdp .cf-pdp__brandline .cf-fav--tag {
  width: auto;
  min-width: 0;
  height: auto;
  min-height: 0;
  padding: 3px 10px;
  border-radius: 999px;
  background: #fff;
  font-size: 11px;
  line-height: 1.6;
  letter-spacing: .04em;
}
/* 去掉爱心图标，只留文字 */
.cf-pdp .cf-pdp__brandline .cf-fav--tag svg { display: none; }
.cf-pdp .cf-pdp__brandline .cf-fav--tag .cf-fav__text {
  display: inline-block;
  font-size: 11px;
  font-weight: 500;
}
/* 选中态：深红填充白字 */
.cf-pdp .cf-pdp__brandline .cf-fav--tag.is-active {
  background: var(--cf-red, #641F1B);
  border-color: var(--cf-red, #641F1B);
  color: #fff;
}
.cf-pdp .cf-pdp__brandline .cf-fav--tag.is-active:hover { color: #fff; }

/* ═══════════════════════════════════════════
   预订步骤模块（2026-09-13 客户要求重设计 V5）
   结构：每个 li = [编号徽章] [标题 / 说明]，整套一个方框
   ═══════════════════════════════════════════ */
.mpanel .cf-pdp__steps {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  list-style: none;
  margin: 16px 0 0;
  padding: 4px 0;
  border: 1px solid var(--cf-line, rgba(33,26,21,.24));
  border-radius: var(--cf-radius-s, 8px);
  background: var(--cf-card, #FAF8F3);
  overflow: hidden;
}
.mpanel .cf-pdp__steps li {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  column-gap: 11px;
  row-gap: 1px;
  align-items: center;
  padding: 11px 14px;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.mpanel .cf-pdp__steps li + li { border-top: 1px solid var(--cf-line-soft, rgba(33,26,21,.11)); }

/* 编号徽章（金色圆形） */
.mpanel .cf-pdp__steps .cf-step__n {
  grid-column: 1;
  grid-row: 1 / span 2;
  width: 26px;
  height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--cf-gold, #9A7B45);
  border-radius: 50%;
  background: #fff;
  color: var(--cf-gold, #9A7B45);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 1;
}
/* 步骤标题 */
.mpanel .cf-pdp__steps .cf-step__t {
  grid-column: 2;
  grid-row: 1;
  font-size: var(--fs-s, 12px);
  font-weight: 600;
  line-height: 1.5;
  color: var(--cf-cedar, #8E6547);
}
/* 步骤说明 */
.mpanel .cf-pdp__steps .cf-step__d {
  grid-column: 2;
  grid-row: 2;
  font-size: var(--fs-xs, 11px);
  line-height: 1.5;
  color: var(--cf-muted, #7B756D);
}

/* ═══════════════════════════════════════════
   数量模块 →「加入预订清单」按钮 间距加大（客户要求）
   ═══════════════════════════════════════════ */
.mpanel form.cart { row-gap: 22px; }
.mpanel .cf-qty-label { margin-bottom: 2px; }
.mpanel form.cart .single_add_to_cart_button { margin-top: 2px; }

/* 2026-09-13 客户指示：预订步骤模块已从模板移除 → 样式一并停用（保留选择器便于日后恢复） */
.mpanel .cf-pdp__steps { display: none; }

