/* ============================================================================
 * Qicura — Editorial Wellness 视觉层 v3
 * ----------------------------------------------------------------------------
 * 参考：Aesop / goop / Mansur Gavriel / The Row — 高端健康品牌
 * 调性：暖骨白大面 × 深墨字 × 古金发丝 × 鼠尾草绿
 * 字体：Fraunces 400-500（拉丁展示，正体不斜）+ Noto Serif SC 300-400（中文展示，禁用斜体）
 *       Inter 400-500（拉丁正文） + Noto Sans SC 400（中文正文）
 * 本层只覆盖外观，加载在 styles.css 之后；不触碰任何功能/数据/JS
 * ========================================================================== */

/* ============================ 1. DESIGN TOKENS ============================ */
:root{
  /* ---- 暖骨白主底（Aesop 调） ---- */
  --bone:       #F4EFE6;   /* 页面底 */
  --bone-2:     #EDE7DA;   /* 板块交替 */
  --paper:      #FBFAF5;   /* 卡片 */
  --paper-2:    #F0EBE0;
  --warm-line:  #D9D2C2;   /* 浅金灰发丝线 */
  --warm-line2: #E4DDCB;

  /* ---- 深墨（高级品牌文字色） ---- */
  --espresso:   #1A1814;   /* 主文 */
  --espresso-2: #2B2720;   /* 次级 */
  --ash:        #5C5750;   /* 副文 */
  --ash-2:      #665F52;   /* 标签（已提对比度至 5.1:1） */
  --mist:       #6E6659;   /* 提示（已提对比度至 4.8:1） */

  /* ---- 古金（顶奢强调，亮底用） ---- */
  --gilt:       #9C7E4E;   /* 主金（亮底文字安全） */
  --gilt-soft:  #B89A6B;   /* 浅金 */
  --gilt-deep:  #6E5634;   /* 深金 */
  --gilt-glow:  rgba(156,126,78,.12);

  /* ---- 鼠尾草绿（替代墨绿的高级色） ---- */
  --sage:       #5C6B5A;   /* 主绿（亮底用） */
  --sage-soft:  #D4D8CC;
  --sage-glow:  rgba(92,107,90,.1);

  /* ---- 陶土（提醒/状态） ---- */
  --clay:       #A35A36;
  --clay-soft:  #E5D2C5;
  --clay-glow:  rgba(163,90,54,.1);

  /* ---- 暗域（仅 3D 铜人展台使用） ---- */
  --noir:       #14110D;
  --noir-2:     #1C1812;

  /* ---- 语义 ---- */
  --ok:#3F7A57; --warn:#A35A36; --danger:#B0453A; --danger-soft:#F6E6E3; --info:#3E6B85;

  /* ---- 字体（中文禁用斜体：所有 font-style:italic 都会在 Noto Serif SC 上被合成出难看的伪斜体） ---- */
  --serif:    'Fraunces','Cormorant Garamond','Noto Serif SC',Georgia,'Times New Roman','Noto Sans Arabic','Geeza Pro','Segoe UI Arabic',Tahoma,serif;
  --serif-cn: 'Noto Serif SC','Fraunces','Cormorant Garamond',Georgia,serif;
  --sans:     'Inter','Noto Sans SC',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,'Noto Sans Arabic','Geeza Pro','Segoe UI Arabic',Tahoma,sans-serif;
  --sans-cn:  'Noto Sans SC','Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:     ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  /* ---- 字阶（更克制：编辑式排版） ---- */
  --fs-display:clamp(2.5rem, .9rem + 4.4vw, 4.6rem);
  --fs-h1:     clamp(2.1rem, 1.0rem + 3vw, 3.3rem);
  --fs-h2:     clamp(1.7rem, 1.1rem + 1.8vw, 2.55rem);
  --fs-h3:     clamp(1.18rem, 1rem + .55vw, 1.42rem);
  --fs-h4:     1.06rem;
  --fs-lead:   clamp(1rem, .94rem + .28vw, 1.12rem);
  --fs-body:   1rem;
  --fs-sm:     .875rem;
  --fs-xs:     .75rem;

  /* ---- 间距 ---- */
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:20px; --s-6:24px;
  --s-7:28px; --s-8:32px; --s-10:40px; --s-12:48px; --s-14:56px;
  --s-16:64px; --s-20:80px; --s-24:96px; --s-32:128px;

  /* ---- 圆角（更克制：3-10px） ---- */
  --r-xs:2px; --r-sm: 4px; --r: 14px; --r-lg: 20px; --r-xl:18px; --r-pill:999px;
  --r-btn:2px;

  /* ---- 阴影（极轻：高级品牌不爱用大阴影） ---- */
  --shadow-sm:0 1px 2px rgba(26,24,20,.04);
  --shadow:0 1px 3px rgba(26,24,20,.06), 0 8px 24px rgba(26,24,20,.04);
  --shadow-lg:0 1px 2px rgba(26,24,20,.05), 0 30px 60px rgba(26,24,20,.10);

  --ease:cubic-bezier(.22,.61,.36,1);
  --t-fast:160ms var(--ease); --t:280ms var(--ease); --t-slow:540ms var(--ease);
  --ring:0 0 0 2px rgba(156,126,78,.28);
}

/* ============================ 2. BASE ============================ */
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  background:var(--bone);
  color:var(--espresso);
  font-family:var(--sans);
  font-size:var(--fs-body);
  line-height:1.7;
  letter-spacing:.002em;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  font-optical-sizing:auto;
}
::selection{ background:var(--gilt); color:#FBFAF5; }

/* 关键铁律：中文标题与正文一律正体，绝不斜体 */
:lang(zh) h1,:lang(zh) h2,:lang(zh) h3,:lang(zh) h4,:lang(zh) h5,
h1,h2,h3,h4,h5,p,li,dd,dt,blockquote,.lead,.section-title,.center h1,.center h2,
.eyebrow,.nav-links a,.scard-hook,.story-card-b h3,.acu-card-name,.qcard{
  font-style:normal !important;
}

h1,h2,h3,h4,h5{
  font-family:var(--serif); font-weight:500; letter-spacing:-.018em; line-height:1.1;
  color:var(--espresso);
}
h1{ font-weight:400; line-height:1.04; letter-spacing:-.025em; }
h2{ line-height:1.1; letter-spacing:-.022em; }
h3{ line-height:1.2; }
a{ color:inherit; text-decoration:none; }
p{ color:var(--ash); }

.wrap{ max-width:1280px; padding:0 clamp(20px,4.5vw,48px); }
section{ padding:clamp(72px,9vw,140px) 0; }

.eyebrow{
  font-family:var(--sans); font-size:11px; font-weight:500;
  letter-spacing:.3em; text-transform:uppercase;
  color:var(--gilt-deep); margin-bottom:22px;
  display:inline-flex; align-items:center; gap:14px;
}
.eyebrow::before{
  content:""; display:inline-block; width:28px; height:1px;
  background:var(--gilt); opacity:.7;
}
.lead{
  font-size:var(--fs-lead); line-height:1.7; color:var(--ash);
  max-width:54ch; font-weight:400;
}
.center .lead{ margin-inline-start:auto; margin-inline-end:auto; }
.section-title{ font-size:var(--fs-h2); margin-bottom:18px; font-weight:400; }
.muted{ color:var(--ash-2); }
.hairline{ background:linear-gradient(90deg,transparent,var(--warm-line),transparent); }

:focus-visible{ outline:1.5px solid var(--gilt); outline-offset:3px; border-radius:2px; }
button:focus-visible,a:focus-visible,select:focus-visible,
input:focus-visible,textarea:focus-visible,
.opt:focus-visible,.gpick:focus-visible,.qcard:focus-visible,.scard:focus-visible{
  outline:1.5px solid var(--gilt); outline-offset:3px;
}

/* ============================ 3. BUTTONS ============================ */
.btn{
  font-family:var(--sans); font-size:13px; font-weight:500; letter-spacing:.12em;
  text-transform:uppercase;
  padding:14px 28px;
  border-radius:var(--r-btn);
  border:1px solid transparent;
  transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast),
             transform var(--t-fast);
  display:inline-flex; align-items:center; gap:10px;
  cursor:pointer;
}
.btn:active{ transform:translateY(0); }
.btn-primary{ background:var(--espresso); color:var(--paper); }
.btn-primary:hover{ background:var(--gilt-deep); }
.btn-clay{ background:var(--espresso); color:var(--paper); }
.btn-clay:hover{ background:var(--gilt-deep); }
.btn-ghost{ background:transparent; color:var(--espresso); border-color:var(--warm-line); }
.btn-ghost:hover{ border-color:var(--espresso); background:transparent; }
.btn-gold{ background:var(--gilt); color:#FBFAF5; }
.btn-gold:hover{ background:var(--gilt-deep); }
.btn-lg{ padding:16px 34px; font-size:13px; }
.btn-block{ width:100%; justify-content:center; }
.btn-toggle{ border:1px solid var(--warm-line); color:var(--gilt); border-radius:var(--r-pill); background:transparent; }
.btn-toggle:hover{ background:var(--gilt-glow); border-color:var(--gilt); }

/* ============================ 4. NAV（暖骨白顶栏） ============================ */
.nav{
  background:rgba(244,239,230,.86);
  backdrop-filter:saturate(140%) blur(18px);
  -webkit-backdrop-filter:saturate(140%) blur(18px);
  border-bottom:1px solid var(--warm-line2);
}
.nav.scrolled{
  background:rgba(244,239,230,.95);
  border-bottom-color:var(--warm-line);
}
.nav-in{ height:80px; gap:26px; }
.brand{ gap:12px; font-size:18px; letter-spacing:-.012em; font-weight:500; color:var(--espresso); }
.brand .seal{
  width:30px; height:30px; border-radius:var(--r-xs);
  background:transparent; border:1px solid var(--gilt); color:var(--gilt);
  display:grid; place-items:center;
}
.brand .seal svg{ width:16px; height:16px; }
.nav-links{ gap:34px; font-size:13px; letter-spacing:.04em; }
.nav-links a{ color:var(--ash); position:relative; }
.nav-links a::after{
  content:""; position:absolute; left:0; right:0; bottom:-6px; height:1px;
  background:var(--gilt); transform:scaleX(0); transform-origin:left;
  transition:transform var(--t);
}
.nav-links a:hover{ color:var(--espresso); }
.nav-links a:hover::after{ transform:scaleX(1); }
.nav-cta{ gap:10px; }
.nav-login{
  font-size:12px; font-weight:500; letter-spacing:.08em; color:var(--espresso);
  border-color:var(--warm-line); border-radius:var(--r-btn); padding:10px 18px; background:transparent;
  text-transform:uppercase;
}
.nav-login:hover{ color:var(--gilt-deep); border-color:var(--gilt); }
.nav-cart{
  border-radius:var(--r-xs); border-color:var(--warm-line);
  width:38px; height:38px; color:var(--espresso); background:transparent;
}
.nav-cart:hover{ background:var(--gilt-glow); border-color:var(--gilt); color:var(--gilt-deep); }
.lang select{
  background:transparent; border-color:var(--warm-line);
  color:var(--espresso); border-radius:var(--r-btn); font-size:12px; padding-block: 9px 9px; padding-inline: 13px 30px;
  letter-spacing:.06em;
}
.lang select:hover{ border-color:var(--gilt); }
.lang select option{ color:var(--espresso); background:#fff; }
.lang::after{ color:var(--ash-2); }
.nav-user{ border-radius:var(--r-pill); border-color:var(--warm-line); background:transparent; }
.nav-user-avatar{ background:var(--gilt); color:#FBFAF5; }
.nav-user-name{ color:var(--espresso); }
.nav-user-link:hover .nav-user-name{ color:var(--gilt-deep); }
.nav-user-logout{ color:var(--ash-2); }
.nav-user-logout:hover{ color:var(--gilt-deep); background:transparent; }
.nav-burger{ border-color:var(--warm-line); background:transparent; color:var(--espresso); }
.nav-burger:hover{ color:var(--gilt-deep); border-color:var(--gilt); }
.nav-sheet{ background:rgba(244,239,230,.96); }
.nav-sheet-card{ background:var(--bone); border:1px solid var(--warm-line); border-radius:0 0 var(--r-lg) var(--r-lg); }
.nav-sheet-card a{ color:var(--espresso); border-bottom-color:var(--warm-line2); }
.nav-sheet-card a:hover{ color:var(--gilt-deep); }
.nav-sheet-lang select{ background:transparent; border-color:var(--warm-line); color:var(--espresso); }
.nav-sheet-card .btn-ghost{ color:var(--espresso); border-color:var(--warm-line); }
.coming-later-badge,.soon-pill{ background:rgba(156,126,78,.08); border-color:rgba(156,126,78,.25); color:var(--gilt-deep); }
.nav-links a.soon::after{ background:rgba(156,126,78,.08); border-color:rgba(156,126,78,.25); color:var(--gilt-deep); }

/* ============================ 5. HERO（暖骨白编辑式） ============================ */
.hero{
  background:
    radial-gradient(900px 540px at 95% 8%, rgba(156,126,78,.08), transparent 62%),
    radial-gradient(720px 480px at 6% 100%, rgba(92,107,90,.07), transparent 60%),
    var(--bone);
  color:var(--espresso);
  overflow:hidden;
  border-bottom:1px solid var(--warm-line2);
}
.hero .eyebrow{ color:var(--gilt-deep); }
.hero-in{
  display:grid; grid-template-columns:1.05fr .95fr;
  gap:clamp(28px,4.5vw,64px);
  padding:clamp(56px,7vw,108px) 0 clamp(60px,7vw,112px);
  align-items:center;
}
.hero h1{
  font-size:var(--fs-display); color:var(--espresso);
  font-weight:400; letter-spacing:-.028em; line-height:1.04;
  max-width:18ch;
}
.hero h1 em,.hero h1 i,.hero h1 .accent{ font-style:normal; color:var(--gilt-deep); font-weight:400; }
.hero .sub{
  color:var(--ash); margin:28px 0 36px; max-width:46ch;
  font-size:var(--fs-lead); line-height:1.7;
}
.hero-cta{ display:flex; gap:14px; flex-wrap:wrap; }

/* —— 问诊入口卡：暖白底金边 —— */
.hero-ask{
  background:var(--paper);
  border:1px solid var(--warm-line);
  border-radius:var(--r);
  padding:24px 26px; gap:20px; max-width:640px; margin-top:34px;
  box-shadow:var(--shadow-sm);
  color:var(--espresso);
  transition:border-color var(--t-fast),transform var(--t-fast),box-shadow var(--t);
}
.hero-ask:hover{ transform:translateY(-1px); border-color:var(--gilt); box-shadow:var(--shadow); }
.hero-ask .ha-toprule,.hero-ask .ha-glow{ display:none; }
.hero-ask .ha-icon{
  width:48px; height:48px; border-radius:50%;
  background:var(--gilt-glow); border:1px solid rgba(156,126,78,.4);
  color:var(--gilt-deep); font-size:18px;
}
.hero-ask .ha-eyebrow{ color:var(--gilt); font-size:10px; letter-spacing:.3em; }
.hero-ask .ha-title{ color:var(--espresso); font-size:18px; font-weight:500; }
.hero-ask .ha-body{ color:var(--ash); }
.hero-ask .ha-cta{
  background:var(--espresso); color:var(--paper); border-radius:var(--r-btn);
  padding:11px 20px; font-size:12px; text-transform:uppercase; letter-spacing:.12em; font-weight:500;
}
.hero-ask:hover .ha-cta{ background:var(--gilt-deep); transform:translateX(3px); }

.hero-trust{ background:transparent; border:none; box-shadow:none; padding:0; color:var(--ash-2); margin-top:28px; }
.hero-trust .dot{ background:var(--gilt); width:4px; height:4px; }
.hero-trustlabels li{ color:var(--ash-2); font-size:12px; letter-spacing:.04em; }
.hero-trustlabels .ht-ic{ color:var(--gilt); }
.hero-reassure{ color:var(--ash-2); }
.dot{ background:var(--gilt); width:5px; height:5px; }

.hero-visual{ position:relative; height:auto; min-height:520px; }
.hero-svg{ max-width:380px; }

/* ============================ 6. 3D 针灸铜人（暗域画框） ============================ */
.acu-stage{
  position:relative; width:100%; height:clamp(440px,52vh,580px);
  background:var(--noir);
  border:1px solid rgba(156,126,78,.18);
  border-radius:var(--r);
  overflow:hidden;
  box-shadow:var(--shadow-lg);
}
.acu-canvas-root{ position:absolute; inset:0; }
.acu-canvas-root canvas{ display:block; }
.acu-legend{
  position:absolute; top:18px; right:22px; z-index:4; pointer-events:none;
  display:flex; align-items:flex-start; gap:12px; text-align: end;
}
.acu-legend-n{
  font-family:var(--serif); font-size:clamp(2.1rem,3.6vw,3rem); line-height:.9;
  color:rgba(232,217,184,.55); font-weight:400; font-style:normal !important;
}
.acu-legend-t{
  font:500 10px/1.5 var(--sans); letter-spacing:.26em; text-transform:uppercase;
  color:rgba(232,217,184,.4); padding-top:5px;
}
.acu-hint{
  position:absolute; left:50%; bottom:14px; transform:translateX(-50%);
  font:500 10px/1 var(--sans); letter-spacing:.26em; text-transform:uppercase;
  color:rgba(232,217,184,.5); pointer-events:none; white-space:nowrap;
}
.acu-tip{
  position:absolute; z-index:5; pointer-events:none; white-space:nowrap;
  background:rgba(20,17,13,.96); border:1px solid rgba(156,126,78,.5);
  color:#F2EFE8; font:500 12px/1 var(--sans); letter-spacing:.06em;
  padding:7px 11px; border-radius:var(--r-xs);
}
.acu-card{
  position:absolute; left:18px; bottom:18px; z-index:6; width:min(348px,94%);
  background:rgba(20,17,13,.96); border:1px solid rgba(156,126,78,.42);
  border-radius:var(--r-sm); padding:20px 22px 18px;
  color:#EDE8DB; backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  box-shadow:0 20px 50px rgba(0,0,0,.5);
  animation:acuIn .3s var(--ease);
}
@keyframes acuIn{ from{opacity:0; transform:translateY(10px)} to{opacity:1; transform:none} }
.acu-card-x{
  position:absolute; top:8px; right:10px; width:30px; height:30px;
  border:none; background:transparent; color:rgba(237,232,219,.55);
  font-size:20px; line-height:1; cursor:pointer; border-radius:50%;
}
.acu-card-x:hover{ color:#E8D9B8; }
.acu-card-code{ font:500 10px/1 var(--sans); letter-spacing:.26em; text-transform:uppercase; color:#E8D9B8; }
.acu-card-name{ font-family:var(--serif); font-size:1.25rem; font-weight:400; color:#F6F2E7; margin:9px 0 12px; letter-spacing:-.012em; font-style:normal !important; }
.acu-card-row{ font-size:13px; line-height:1.66; color:rgba(237,232,219,.74); margin:0 0 8px; }
.acu-card-row b{ color:#E8D9B8; font-weight:500; margin-inline-end:2px; }
.acu-card-row--care{ border-top:1px solid rgba(156,126,78,.2); padding-top:11px; }
.acu-card-caution{
  font-size:12px; line-height:1.5; color:#E8C49A;
  background:rgba(156,126,78,.12); border:1px solid rgba(156,126,78,.3);
  border-radius:var(--r-xs); padding:8px 10px; margin:0 0 9px;
}
.acu-card-note{
  font-size:10px; line-height:1.55; color:rgba(237,232,219,.4); margin:0;
  border-top:1px solid rgba(237,232,219,.1); padding-top:10px;
}
.acu-fallback-svg{ width:100%; height:100%; }
.acu-fb-dot{ transition:r .15s ease; }
.acu-fb-dot:hover{ r:8; }

@media(max-width:900px){
  .hero-in{ grid-template-columns:1fr; padding:48px var(--s-7,28px) 56px; }
  .hero h1{ font-size:clamp(2.3rem,9.5vw,3rem); max-width:none; }
  .hero-visual{ display:block; min-height:0; }
  .acu-stage{ height:min(104vw,440px); }
  .acu-card{ left:50%; transform:translateX(-50%); bottom:14px; width:min(360px,94%); }
  .hero-ask{ flex-wrap:wrap; padding:20px; gap:16px; }
  .hero-ask .ha-cta{ width:100%; justify-content:center; }
}

/* ============================ 7. 亮域区块 ============================ */
.symptom-wall{ background:var(--bone-2); border-top:1px solid var(--warm-line2); border-bottom:1px solid var(--warm-line2); }
.story-strip{ background:var(--bone); }
.quick{ background:var(--bone); }

.swall-grid{ gap:14px; margin-top:clamp(28px,4vw,48px); display:grid; grid-template-columns:repeat(4,1fr); }
@media(max-width:900px){ .swall-grid{ grid-template-columns:repeat(2,1fr); } }
.scard{
  background:var(--paper); border:1px solid var(--warm-line);
  border-radius:var(--r-sm); padding:28px 24px; gap:16px;
  transition:border-color var(--t-fast),background var(--t-fast);
}
.scard::after{ display:none; }
.scard:hover{ border-color:var(--gilt); background:#fff; }
.scard-ic{ width:40px; height:40px; border-radius:var(--r-xs); background:var(--sage-glow); color:var(--sage); }
.scard:hover .scard-ic{ transform:none; }
.scard.theme-energy .scard-ic{ color:var(--clay); background:var(--clay-glow); }
.scard.theme-calm  .scard-ic{ color:var(--gilt-deep); background:var(--gilt-glow); }
.scard-hook{ font-size:15px; line-height:1.5; font-weight:500; color:var(--espresso); }

.story-strip-grid{ gap:20px; margin-top:clamp(28px,4vw,46px); display:grid; grid-template-columns:repeat(3,1fr); }
@media(max-width:900px){ .story-strip-grid{ grid-template-columns:1fr; } }
.story-card{
  background:var(--paper); border:1px solid var(--warm-line);
  border-radius:var(--r-sm); overflow:hidden;
  transition:border-color var(--t-fast),transform var(--t-fast),box-shadow var(--t);
}
.story-card:hover{ transform:translateY(-2px); border-color:var(--gilt); box-shadow:var(--shadow); }
.story-card-cv{ height:140px; background:linear-gradient(165deg,#E0E4D6,#D7DCCE); padding:18px; position:relative; }
.story-card-tag{
  background:rgba(26,24,20,.88); color:#E8D9B8;
  font-size:10px; font-weight:500; letter-spacing:.22em; text-transform:uppercase;
  padding:6px 11px; border-radius:var(--r-xs);
}
.story-card-b{ padding:22px 24px 24px; }
.story-card-b h3{ font-size:1.18rem; line-height:1.32; margin-bottom:10px; font-weight:500; }
.story-card-b p{ font-size:14px; color:var(--ash); line-height:1.65; }
.story-card-m{ font-size:12px; color:var(--ash-2); letter-spacing:.04em; }

.quick-grid{ gap:14px; margin-top:clamp(28px,4vw,44px); display:grid; grid-template-columns:repeat(4,1fr); }
@media(max-width:900px){ .quick-grid{ grid-template-columns:repeat(2,1fr); } }
.qcard{
  background:var(--paper); border:1px solid var(--warm-line);
  border-radius:var(--r-sm); padding:18px; gap:12px; font-size:15px;
  transition:border-color var(--t-fast),background var(--t-fast);
}
.qcard:hover{ border-color:var(--gilt); background:#fff; }
.q-ic{ background:var(--sage-glow); color:var(--sage); border-radius:var(--r-xs); }
.q-go{ color:var(--gilt-deep); }

/* ============================ 8. 24 节气（暖白编辑式） ============================ */
.solar{ background:var(--bone-2); border-top:1px solid var(--warm-line2); border-bottom:1px solid var(--warm-line2); }
.solar-grid{ gap:14px; margin-top:clamp(28px,4vw,48px); display:grid; grid-template-columns:repeat(6,1fr); }
@media(max-width:1100px){ .solar-grid{ grid-template-columns:repeat(3,1fr); } }
@media(max-width:600px){ .solar-grid{ grid-template-columns:repeat(2,1fr); } }
.scard-solar{
  background:var(--paper); border:1px solid var(--warm-line);
  border-radius:var(--r-sm); padding:18px 16px; gap:8px;
  transition:border-color var(--t-fast),background var(--t-fast);
}
.scard-solar:hover{ border-color:var(--gilt); background:#fff; }
.scard-solar .ss-name{ font-family:var(--serif-cn); font-size:1rem; font-weight:500; color:var(--espresso); }
.scard-solar .ss-en{ font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--ash-2); }

/* ============================ 9. CTA / FOOTER（暖白收尾） ============================ */
.cta-section{ background:var(--bone-2); border-top:1px solid var(--warm-line2); }
.cta-card{
  background:var(--paper);
  border:1px solid var(--warm-line);
  border-radius:var(--r);
  padding:clamp(40px,5vw,72px) clamp(28px,4vw,56px);
  text-align:center;
  box-shadow:var(--shadow-sm);
}
.cta-card h2{ font-weight:400; }
.cta-card .lead{ margin:0 auto 24px; }
.cta-card .btn{ margin:0 6px; }

footer{
  background:var(--bone);
  border-top:1px solid var(--warm-line2);
  color:var(--ash-2);
  padding:clamp(40px,5vw,72px) 0 28px;
}
footer .brand{ color:var(--espresso); }
footer .brand .seal{ border-color:var(--gilt); color:var(--gilt-deep); }
footer a{ color:var(--ash); }
footer a:hover{ color:var(--gilt-deep); }
footer h4{ color:var(--espresso); font-family:var(--sans); font-size:12px; font-weight:500; letter-spacing:.18em; text-transform:uppercase; margin-bottom:18px; }
footer .ft-eyebrow{ color:var(--gilt); font-size:11px; letter-spacing:.3em; text-transform:uppercase; }
footer .ft-bottom{ border-top:1px solid var(--warm-line2); margin-top:48px; padding-top:24px; font-size:12px; color:var(--ash-2); }

/* ============================ 10. MODAL ============================ */
.modal-bg{ background:rgba(26,24,20,.45); }
.modal{
  background:var(--paper); border:1px solid var(--warm-line);
  border-radius:var(--r); box-shadow:var(--shadow-lg); color:var(--espresso);
}
.modal-close{ color:var(--ash-2); }
.modal-close:hover{ color:var(--espresso); }
.modal-eyebrow{ color:var(--gilt); font-size:11px; letter-spacing:.3em; text-transform:uppercase; }
.modal h3,.modal h2{ color:var(--espresso); font-weight:500; }
.modal p{ color:var(--ash); }
.tab{ color:var(--ash); border-bottom:1px solid var(--warm-line2); }
.tab.is-active{ color:var(--espresso); border-bottom-color:var(--gilt); }
.tab:hover{ color:var(--espresso); }

/* ============================ 11. QUIZ / 问卷 ============================ */
.quiz{ background:var(--bone); }
.quiz-card{
  background:var(--paper); border:1px solid var(--warm-line);
  border-radius:var(--r); padding:32px; box-shadow:var(--shadow-sm);
}
.quiz h2{ font-weight:400; }
.opt{
  background:var(--paper); border:1px solid var(--warm-line);
  border-radius:var(--r-sm); color:var(--espresso);
  transition:border-color var(--t-fast),background var(--t-fast);
}
.opt:hover{ border-color:var(--gilt); background:#fff; }
.opt.is-selected{ border-color:var(--espresso); background:var(--bone-2); }
.gpick{
  background:var(--paper); border:1px solid var(--warm-line);
  border-radius:var(--r-sm); color:var(--espresso);
}
.gpick:hover{ border-color:var(--gilt); }
.gpick.is-selected{ border-color:var(--espresso); background:var(--bone-2); }

/* ============================ 12. REPORT / 结果 ============================ */
.report{ background:var(--bone); }
.report-card{
  background:var(--paper); border:1px solid var(--warm-line);
  border-radius:var(--r); padding:clamp(28px,4vw,52px); box-shadow:var(--shadow-sm);
}
.report-card .pln-summary{ background:var(--bone-2); border:1px solid var(--warm-line2); border-radius:var(--r-sm); padding:18px 22px; }
.report-card .pln-summary h4{ color:var(--gilt); font-size:11px; letter-spacing:.3em; text-transform:uppercase; margin-bottom:8px; font-weight:500; }
.report-card .pln-summary p{ color:var(--espresso); font-size:1.05rem; line-height:1.6; margin:0; }

.severity-banner{
  background:#FBF5E5; border:1px solid #D7BC79; color:#7A5A21;
  border-radius:var(--r-sm); padding:18px 22px;
}
.severity-banner.is-emergency{
  background:#FBEDED; border-color:#C8807C; color:#8A2E2A;
}

.chip{ background:var(--bone-2); border:1px solid var(--warm-line2); color:var(--ash); border-radius:var(--r-pill); }
.chip.is-on{ background:var(--gilt-glow); border-color:var(--gilt); color:var(--gilt-deep); }

/* ============================ 13. 辨证 / 方案卡 ============================ */
.tip-block{ background:var(--paper-2); border:1px solid var(--warm-line2); border-radius:var(--r-sm); padding:14px 18px; }
.tip-block-title{ color:var(--gilt-deep); font-weight:500; }

.remedy{
  background:var(--paper); border:1px solid var(--warm-line);
  border-radius:var(--r-sm); padding:18px 22px;
}
.remedy-head{ color:var(--gilt); font-size:11px; letter-spacing:.26em; text-transform:uppercase; }
.remedy-title{ font-family:var(--serif); color:var(--espresso); font-size:1.06rem; font-weight:500; }
.remedy-book{ color:var(--ash-2); font-size:12px; }
.remedy-body{ color:var(--ash); font-size:14px; line-height:1.7; }

/* 方案展开/折叠 */
.ex-block{
  background:var(--bone-2); border:1px solid var(--warm-line2);
  border-radius:var(--r-sm); padding:14px 18px; color:var(--ash); font-size:14px; line-height:1.7;
}

/* ============================ 14. 表单 ============================ */
.field label{ color:var(--ash); font-size:12px; letter-spacing:.06em; text-transform:uppercase; }
.input,.textarea,.select{
  background:var(--paper); border:1px solid var(--warm-line);
  color:var(--espresso); border-radius:var(--r-sm);
  transition:border-color var(--t-fast),box-shadow var(--t-fast);
}
.input:focus,.textarea:focus,.select:focus{
  border-color:var(--gilt); box-shadow:var(--ring);
  outline:none;
}
.input::placeholder,.textarea::placeholder{ color:var(--mist); }
.check{ accent-color:var(--gilt); }

/* ============================ 15. 通用卡片 / 色带 ============================ */
.card,.panel{
  background:var(--paper); border:1px solid var(--warm-line);
  border-radius:var(--r); padding:24px; box-shadow:var(--shadow-sm);
}
.band-cream{ background:var(--bone); }
.band-paper{ background:var(--paper); }
.band-soft{ background:var(--bone-2); }
.band-noir{ background:var(--noir); color:#EDE8DB; }
.band-sage{ background:var(--sage-soft); }
.band-clay{ background:var(--clay-soft); }

.divider{ border-top:1px solid var(--warm-line2); }

.callout{ background:var(--gilt-glow); border:1px solid rgba(156,126,78,.3); color:var(--gilt-deep); border-radius:var(--r-sm); padding:14px 18px; }
.callout-warn{ background:rgba(163,90,54,.08); border:1px solid rgba(163,90,54,.3); color:var(--clay); border-radius:var(--r-sm); padding:14px 18px; }

/* ============================ 16. 大师客服 ============================ */
.master-card{
  background:var(--paper); border:1px solid var(--warm-line);
  border-radius:var(--r); box-shadow:var(--shadow-sm);
}
.master-head{ border-bottom:1px solid var(--warm-line2); }
.master-name{ font-family:var(--serif); color:var(--espresso); font-weight:500; }
.master-eyebrow{ color:var(--gilt); font-size:11px; letter-spacing:.3em; text-transform:uppercase; }
.master-msg{ background:var(--bone-2); border-radius:var(--r-sm); }
.master-msg--user{ background:var(--gilt-glow); color:var(--gilt-deep); }
.master-msg--bot{ background:var(--bone-2); color:var(--espresso); }
.master-input{ background:var(--paper); border:1px solid var(--warm-line); color:var(--espresso); border-radius:var(--r-sm); }
.master-input:focus{ border-color:var(--gilt); box-shadow:var(--ring); }
.master-send{ background:var(--espresso); color:var(--paper); border-radius:var(--r-btn); }
.master-send:hover{ background:var(--gilt-deep); }

/* ============================ 17. 购物 / Toast / 记录 ============================ */
.cart-drawer{ background:var(--paper); border-inline-start:1px solid var(--warm-line); }
.cart-row{ border-bottom:1px solid var(--warm-line2); }
.cart-total{ color:var(--espresso); border-top:1px solid var(--warm-line2); }
.toast{ background:var(--espresso); color:var(--paper); border-radius:var(--r-sm); }
.record-card{ background:var(--paper); border:1px solid var(--warm-line); border-radius:var(--r-sm); }
.record-empty{ color:var(--ash-2); }

/* ============================ 18. 无障碍 / 降级 ============================ */
@media(prefers-reduced-motion:reduce){
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}
@media(max-width:600px){
  .wrap{ padding:0 18px; }
  .hero-in{ gap:36px; }
  .hero .sub{ font-size:1rem; }
  .nav-in{ height:64px; }
  .brand{ font-size:16px; }
}
