/* ============================================================
 * 涿州家政管家官网样式
 * 遵循 docs/UI设计规范-v1.md
 * 单一主色 #0E7C66（B24 与用户端对齐），无大面积渐变，卡片 12px / 按钮 8px / 标签全圆角
 * ============================================================ */

:root{
  --brand:#0E7C66;
  --brand-dark:#0A5F4E;
  --brand-weak:#E8F2EE;
  --price:#E54848;
  --ink:#1a1a1a;
  --muted:#6b7280;
  --line:#eceff1;
  --bg:#fafafa;
  --card:#ffffff;
  --danger:#dc2626;
  --warn:#d97706;
  --ok:#15803d;
  --done-orange:#ea580c;
  --warn-yellow:#ca8a04;
  --cancel-gray:#6b7280;

  --r-card:12px;
  --r-btn:8px;
  --r-pill:999px;

  --sh1:0 1px 2px rgba(16,24,40,.06);
  --sh2:0 4px 12px rgba(16,24,40,.08);
  --sh3:0 12px 32px rgba(16,24,40,.12);
}

*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",Arial,sans-serif;
  background:var(--bg);
  color:var(--ink);
  font-size:15px;
  line-height:1.6;
  padding-bottom:64px;
}
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
img{ max-width:100%; display:block; }

/* ---------------- 图标（线性 SVG） ---------------- */
.svg-ic{ display:inline-block; vertical-align:middle; flex:0 0 auto; }
.stars{ display:inline-flex; gap:1px; color:#f59e0b; }
.stars .svg-ic{ display:block; }

/* ---------------- 顶栏 ---------------- */
.site-header{
  position:sticky; top:0; z-index:50;
  background:var(--card);
  border-bottom:1px solid var(--line);
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 16px;
}
.site-header .logo{ display:flex; align-items:center; gap:8px; font-weight:700; font-size:17px; }
.site-header .logo .mark{
  width:30px; height:30px; border-radius:var(--r-btn);
  background:var(--brand); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:16px;
}
.site-header .logo small{ display:block; color:var(--muted); font-weight:400; font-size:11px; margin-top:-2px; }
.site-header .nav{ display:flex; gap:18px; font-size:14px; }
.site-header .nav a{ color:var(--muted); padding:4px 0; }
.site-header .nav a:hover{ color:var(--brand); }
.site-header .nav a.active{ color:var(--brand); font-weight:600; }

/* ---------------- 系统公告条（B49-notice） ---------------- */
.site-notice{
  position:sticky; top:0; z-index:9999;
  display:flex; align-items:center; gap:8px;
  padding:9px 38px 9px 14px; box-sizing:border-box;
  background:var(--brand); color:#fff;
  font-size:13px; line-height:1.5;
}
.site-notice .sn-ic{ flex:0 0 auto; font-size:14px; }
.site-notice .sn-txt{ flex:1; min-width:0; overflow:hidden; }
.site-notice .sn-close{
  position:absolute; right:10px; top:50%; transform:translateY(-50%);
  width:22px; height:22px; border:0; border-radius:50%;
  background:rgba(255,255,255,.22); color:#fff; font-size:16px; line-height:1; cursor:pointer;
}

/* ---------------- 通用区块 ---------------- */
.wrap{ max-width:760px; margin:0 auto; padding:16px; }
.section{ margin-bottom:24px; }
.section-title{
  font-size:18px; font-weight:700; margin:0 0 16px;
  display:flex; align-items:center; gap:8px;
}
.section-title::before{
  content:""; width:4px; height:18px; border-radius:2px; background:var(--brand);
}
.section-title .more{ margin-left:auto; font-size:13px; font-weight:400; color:var(--muted); }
.section-title .more:hover{ color:var(--brand); }

/* ---------------- 卡片 ---------------- */
.card{
  display:block; background:var(--card); border-radius:var(--r-card);
  border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(16,24,40,.05); padding:16px; margin-bottom:14px;
}
.card-hover{ transition:box-shadow .15s ease, transform .15s ease; }
.card-hover:hover{ box-shadow:var(--sh2); transform:translateY(-1px); }

/* ---------------- 组合套餐 ---------------- */
.partner-scroll{
  display:flex; gap:12px; overflow-x:auto; padding:2px 2px 12px;
  scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;
}
.partner-scroll::-webkit-scrollbar{ display:none; }
.partner-scroll.marquee{ overflow:hidden; }
.marquee-track{ display:flex; gap:12px; width:max-content; animation:marqueeMove linear infinite; }
.partner-scroll.marquee:hover .marquee-track{ animation-play-state:paused; }
@keyframes marqueeMove{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.partner-cell{
  flex:0 0 240px; scroll-snap-align:start;
  display:flex; flex-direction:column; gap:8px;
  background:var(--card); border-radius:var(--r-card); box-shadow:var(--sh1);
  padding:14px; transition:box-shadow .15s ease, transform .15s ease;
  border-top:3px solid var(--brand);
}
.partner-cell:hover{ box-shadow:var(--sh2); transform:translateY(-1px); }
.partner-cell .ic{ font-size:30px; line-height:1; }
.partner-cell .pic{ width:100%; height:108px; border-radius:8px; overflow:hidden; background:var(--brand-weak); margin-bottom:2px; }
.partner-cell .pic img{ width:100%; height:100%; object-fit:cover; display:block; }
.partner-cell .tag{
  display:inline-block; align-self:flex-start; background:var(--brand-weak); color:var(--brand-dark);
  border-radius:var(--r-pill); padding:2px 10px; font-size:11.5px; margin:0;
}
.partner-cell .nm{ font-weight:700; font-size:15px; color:var(--ink); }
.partner-cell .it{
  font-size:12.5px; color:var(--muted); line-height:1.5;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.partner-cell .ph{ font-size:12px; color:var(--brand-dark); font-weight:600; margin-top:auto; }

.pkg-item{
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  background:var(--card); border-radius:var(--r-card); box-shadow:var(--sh1);
  padding:16px; margin-bottom:14px; overflow:hidden;
  transition:box-shadow .15s ease, transform .15s ease;
}
.pkg-item:hover{ box-shadow:var(--sh2); transform:translateY(-1px); }
.pkg-item .ph{ flex:1; min-width:0; }
.pkg-item .ph .nm{ display:block; font-weight:700; font-size:15px; }
.pkg-item .ph .it{
  display:block; color:var(--muted); font-size:12.5px; margin-top:6px; line-height:1.5;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.pkg-item .pr{ flex:0 0 auto; text-align:right; }
.pkg-item .pr .old{
  display:block; color:var(--muted); font-size:12.5px; text-decoration:line-through;
}
.pkg-item .pr .now{
  display:block; color:var(--price); font-weight:800; font-size:18px; margin-top:2px;
}
.pkg-item .pr .save{
  display:inline-block; margin-top:6px; font-size:12px;
  background:var(--brand-weak); color:var(--brand-dark);
  border-radius:var(--r-pill); padding:2px 10px;
  white-space:nowrap;
}

/* ---------------- 首屏主视觉 ---------------- */
.hero{
  position:relative; overflow:hidden;
  background:var(--brand); border:1px solid transparent;
  border-radius:var(--r-card); box-shadow:var(--sh2);
  padding:28px 22px; margin:16px; color:#fff;
}
.hero::after{
  content:""; position:absolute; right:-46px; bottom:-46px;
  width:160px; height:160px; border-radius:50%;
  border:18px solid rgba(255,255,255,.10); pointer-events:none;
}
.hero h1{ margin:0; font-size:24px; font-weight:800; letter-spacing:.5px; color:#fff; }
.hero p{ margin:10px 0 0; color:rgba(255,255,255,.85); font-size:14px; max-width:34em; }
.hero .facts{ display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; position:relative; z-index:1; }
.hero .facts .tag{
  background:rgba(255,255,255,.14); color:#fff; border-color:transparent;
}
.hero .cta{
  position:relative; z-index:1;
  display:inline-block; margin-top:18px;
  background:#fff; color:var(--brand); font-weight:600;
  padding:10px 22px; border-radius:var(--r-btn); font-size:14px;
}
.hero .cta:hover{ background:rgba(255,255,255,.9); }
/* B38-pages：官网首页 hero 改为封面图 + 覆盖层，视觉对齐 H5（后台可改封面/文案） */
.hero.hero-cover{ padding:0; min-height:200px; display:flex; align-items:flex-end; background:var(--brand-weak); }
.hero.hero-cover::after{ display:none; }
.hero.hero-cover img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.hero.hero-cover .hero-shade{ position:absolute; inset:0; z-index:1; background:linear-gradient(to top, rgba(10,25,18,.62) 0%, rgba(10,25,18,.22) 45%, rgba(10,25,18,0) 70%); }
.hero.hero-cover .hero-copy{ position:relative; z-index:2; padding:18px; color:#fff; width:100%; }
.hero.hero-cover .hero-copy .t{ font-size:21px; font-weight:800; letter-spacing:.5px; text-shadow:0 1px 4px rgba(0,0,0,.35); }
.hero.hero-cover .hero-copy .s{ font-size:13px; margin-top:6px; opacity:.94; text-shadow:0 1px 3px rgba(0,0,0,.35); }
.hero.hero-cover .hero-copy .facts{ margin-top:12px; }
.hero.hero-cover .hero-copy .cta{ margin-top:14px; }
.hero.hero-cover.no-img{ background:linear-gradient(135deg,var(--brand) 0%,var(--brand-dark) 100%); }

/* ---------------- 运营活动 Banner 轮播（P1-3：官网首页） ---------------- */
.banner{ position:relative; background:#fff; overflow:hidden; }
.banner-track{ display:flex; transition:transform .4s ease; }
.banner-slide{
  flex:0 0 100%; height:150px;
  display:flex; flex-direction:column; justify-content:center; padding:0 24px;
  background:linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);
  color:#fff;
}
.banner-slide .bt{ font-size:20px; font-weight:800; }
.banner-slide .bs{ font-size:13px; opacity:.92; margin-top:6px; }
.banner-dots{ position:absolute; left:0; right:0; bottom:10px; display:flex; justify-content:center; gap:6px; }
.b-dot{ width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,.5); }
.b-dot.on{ width:18px; border-radius:6px; background:#fff; }

/* ---------------- 类目宫格 ---------------- */
.cat-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.cat-item{
  background:var(--card); border-radius:var(--r-card); box-shadow:var(--sh1);
  padding:16px 8px; text-align:center;
  transition:box-shadow .15s, transform .15s;
}
.cat-item:hover{ box-shadow:var(--sh2); transform:translateY(-1px); }
.cat-item .ic{
  font-size:26px; width:48px; height:48px; margin:0 auto 2px;
  border-radius:12px; background:var(--brand-weak);
  display:flex; align-items:center; justify-content:center;
}
.cat-item .nm{ font-size:13px; margin-top:6px; color:#374151; }

/* ---------------- 服务项 ---------------- */
.svc-item{ display:flex; align-items:center; gap:14px; padding:14px 0; border-bottom:1px solid var(--line); }
.svc-item:last-child{ border-bottom:none; }
.svc-item .ic{
  width:44px; height:44px; flex:0 0 44px; border-radius:10px;
  background:var(--brand-weak); color:var(--brand-dark);
  display:flex; align-items:center; justify-content:center; font-size:22px;
}
.svc-item .info{ flex:1; min-width:0; }
.svc-item .info .nm{ font-weight:600; font-size:15px; }
.svc-item .info .ds{
  font-size:12.5px; color:var(--muted); margin-top:3px;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.svc-item .pr{ text-align:right; flex:0 0 auto; }
.svc-item .pr .num{ color:var(--price); font-weight:700; font-size:16px; }
.svc-item .pr .num b{ font-size:12px; font-weight:600; }
.svc-item .pr .du{ font-size:11px; color:var(--muted); margin-top:2px; }

/* ---------------- 标签（全圆角） ---------------- */
.tag{
  display:inline-block; background:var(--brand-weak); color:var(--brand-dark);
  border-radius:var(--r-pill); padding:3px 12px; font-size:12px; margin:0 8px 8px 0;
}
.tag-outline{ background:#fff; border:1px solid var(--line); color:var(--muted); }

/* ---------------- 按钮（8px 圆角） ---------------- */
.btn{
  display:inline-block; border:none; border-radius:var(--r-btn);
  padding:10px 18px; font-size:14px; font-weight:600;
  background:var(--brand); color:#fff;
}
.btn:hover{ background:var(--brand-dark); }
.btn-ghost{ background:#fff; color:var(--brand-dark); border:1px solid var(--brand); }
.btn-ghost:hover{ background:var(--brand-weak); }
.btn-block{
  display:block; width:100%; text-align:center;
  border-radius:var(--r-btn); background:var(--brand); color:#fff;
  font-weight:600; padding:12px; font-size:15px;
}
.btn-block:hover{ background:var(--brand-dark); }

/* ---------------- 详情 ---------------- */
.detail-hero{
  background:var(--card); border:1px solid var(--line);
  border-radius:var(--r-card); padding:22px 20px; margin-bottom:16px;
}
.detail-hero .ic{ font-size:36px; }
.detail-hero h2{ margin:10px 0 4px; font-size:22px; }
.detail-hero .meta{ color:var(--muted); font-size:13px; }
.detail-hero .price{ margin-top:14px; font-size:28px; font-weight:800; color:var(--price); }
.detail-hero .price small{ font-size:14px; font-weight:500; color:var(--muted); }
.kv{ display:flex; gap:12px; padding:12px 0; border-bottom:1px solid var(--line); }
.kv:last-child{ border-bottom:none; }
.kv .k{ flex:0 0 80px; color:var(--muted); font-size:14px; }
.kv .v{ flex:1; font-size:14px; }

/* ---------------- 底部操作条 ---------------- */
.book-bar{
  position:fixed; left:0; right:0; bottom:0; z-index:40;
  background:var(--card); border-top:1px solid var(--line); box-shadow:var(--sh2);
  display:flex; align-items:center; gap:10px; padding:10px 16px;
}
.book-bar .price{ font-weight:800; color:var(--price); font-size:18px; }
.book-bar .price small{ font-size:12px; color:var(--muted); font-weight:400; }
.book-bar .btn{ margin-left:auto; }
body.has-bookbar{ padding-bottom:76px; }

/* ---------------- 联系方式 ---------------- */
.contact-row{ display:flex; align-items:center; gap:12px; padding:14px 0; border-bottom:1px solid var(--line); }
.contact-row:last-child{ border-bottom:none; }
.contact-row .ic{
  width:40px; height:40px; flex:0 0 40px; border-radius:10px;
  background:var(--brand-weak); color:var(--brand-dark);
  display:flex; align-items:center; justify-content:center; font-size:20px;
}
.contact-row .t{ font-size:12px; color:var(--muted); }
.contact-row .v{ font-size:15px; font-weight:600; }

/* ---------------- 分类页 ---------------- */
.cat-wrap{ display:flex; align-items:flex-start; }
.side-nav{ width:104px; flex:0 0 104px; background:#fff; border-right:1px solid var(--line); }
.side-nav button{
  display:block; width:100%; text-align:left; padding:14px 12px;
  font-size:13.5px; color:var(--muted); background:#fff;
  border:none; border-left:3px solid transparent;
}
.side-nav button.active{
  background:var(--brand-weak); color:var(--brand-dark);
  font-weight:600; border-left-color:var(--brand);
}
.cat-head{ display:flex; align-items:center; gap:10px; margin:16px 0 10px; }
.cat-head .nm{ font-size:15px; font-weight:700; }
.cat-head .ln{ flex:1; height:1px; background:var(--line); }
.filters{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
.filters button{
  border:1px solid var(--line); background:#fff; color:var(--muted);
  border-radius:var(--r-pill); padding:6px 14px; font-size:13px;
}
.filters button:hover{ border-color:var(--brand); color:var(--brand); }
.filters button.on{ background:var(--brand); border-color:var(--brand); color:#fff; }

/* ---------------- 骨架屏 ---------------- */
.skeleton{
  background:#fff; border-radius:var(--r-card); box-shadow:var(--sh1);
  padding:16px; margin-bottom:14px;
}
.sk-line{
  height:12px; border-radius:6px;
  background:linear-gradient(90deg,#f0f1f2 25%,#e6e8ea 37%,#f0f1f2 63%);
  background-size:400% 100%;
  animation:sk 1.2s ease infinite;
}
.sk-line + .sk-line{ margin-top:10px; }
.sk-line.w40{ width:40%; }
.sk-line.w60{ width:60%; }
.sk-line.w80{ width:80%; }
@keyframes sk{ 0%{background-position:100% 50%} 100%{background-position:0 50%} }

/* ---------------- 空状态 ---------------- */
.empty{ text-align:center; padding:48px 16px; color:var(--muted); }
.empty .ic{ font-size:36px; opacity:.5; }
.empty .t{ margin-top:10px; font-size:14px; }
.empty .s{ margin-top:6px; font-size:12.5px; color:#9ca3af; }

/* ---------------- 图片兜底 ---------------- */
.img-fallback{
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  background:var(--brand-weak); color:var(--brand-dark); font-size:13px;
}

/* ---------------- 提示条 ---------------- */
.note{
  background:var(--brand-weak); color:var(--brand-dark);
  border-radius:var(--r-btn); padding:10px 14px; font-size:12.5px; margin-bottom:14px;
}

/* ---------------- 底栏 tabBar ---------------- */
.tabbar{
  position:fixed; left:0; right:0; bottom:0; z-index:50;
  background:#fff; border-top:1px solid var(--line); box-shadow:var(--sh2);
  display:flex;
}
.tabbar a{ flex:1; text-align:center; padding:8px 0 6px; color:var(--muted); font-size:11px; }
.tabbar a .ic{ font-size:20px; display:block; line-height:1.1; }
.tabbar a.active{ color:var(--brand); }

/* ---------------- 弹窗（淡入 200ms） ---------------- */
.modal-mask{
  position:fixed; inset:0; background:rgba(17,24,39,.42); z-index:100;
  display:flex; align-items:center; justify-content:center; padding:20px;
  opacity:0; transition:opacity .2s ease;
}
.modal-mask.show{ opacity:1; }
.modal{
  background:#fff; border-radius:var(--r-card); box-shadow:var(--sh3);
  width:100%; max-width:420px; overflow:hidden;
}
.modal h3{ margin:0; padding:16px 18px; font-size:16px; border-bottom:1px solid var(--line); }
.modal .bd{ padding:16px 18px; }
.modal .ft{ padding:14px 18px; border-top:1px solid var(--line); display:flex; justify-content:flex-end; gap:10px; }

/* ---------------- 表单 ---------------- */
.field{ margin-bottom:14px; }
.field label{ display:block; font-size:13px; color:var(--muted); margin-bottom:6px; }
.field input, .field select, .field textarea{
  width:100%; padding:10px 12px; border:1px solid var(--line);
  border-radius:var(--r-btn); font-size:14px; background:#fff;
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--brand);
}
.field .err{ color:var(--danger); font-size:12px; margin-top:4px; }

/* ---------------- 响应式 ---------------- */
@media (min-width:740px){
  .site-header, .tabbar{ max-width:760px; margin-left:auto; margin-right:auto; }
  .tabbar{ left:50%; transform:translateX(-50%); border-radius:var(--r-card) var(--r-card) 0 0; }
}
@media (max-width:480px){
  .hero{ margin:12px; padding:22px 18px; }
  .hero h1{ font-size:21px; }
  .cat-grid{ grid-template-columns:repeat(3,1fr); }
  .wrap{ padding:12px; }
}

/* ============================================================
 * 2026-10 视觉升级层（官网）：现代质感 + 动效 + 响应式（增量覆盖，不改既有规则）
 * ============================================================ */
:root{
  --grad-brand:linear-gradient(135deg,#0E7C66 0%,#12A183 100%);
  --grad-hero:linear-gradient(160deg,#0B6455 0%,#0E7C66 55%,#12977E 100%);
  --ease:cubic-bezier(.22,.61,.36,1);
  --r-card:14px; --r-btn:10px;
  --sh1:0 1px 2px rgba(16,40,34,.05);
  --sh2:0 6px 22px rgba(16,40,34,.08);
  --sh3:0 14px 38px rgba(16,40,34,.13);
}
body{ background:#F6F8F7; letter-spacing:.1px; }
h1,h2,h3{ letter-spacing:.2px; }
/* 按钮：渐变 + 按压/悬浮反馈 */
.btn{ transition:transform .16s var(--ease), box-shadow .22s var(--ease), filter .22s var(--ease), background .22s var(--ease); }
.btn:active{ transform:scale(.97); }
.btn-primary{ background:var(--grad-brand); box-shadow:0 4px 14px rgba(14,124,102,.28); }
.btn-primary:hover{ filter:brightness(1.05); box-shadow:0 6px 18px rgba(14,124,102,.32); }
.btn:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{ outline:2px solid rgba(14,124,102,.35); outline-offset:2px; }
input:focus, select:focus, textarea:focus{ border-color:var(--brand); box-shadow:0 0 0 3px rgba(14,124,102,.12); outline:none; }
/* 卡片：柔投影 + 悬浮抬升 */
.card{ border-radius:var(--r-card); box-shadow:var(--sh1); border:1px solid rgba(233,237,236,.9); transition:box-shadow .28s var(--ease), transform .28s var(--ease); }
.card:hover{ box-shadow:var(--sh2); transform:translateY(-2px); }
/* 顶栏毛玻璃 */
.header, .nav, .topbar{ backdrop-filter:saturate(1.3) blur(10px); -webkit-backdrop-filter:saturate(1.3) blur(10px); background:rgba(255,255,255,.92); }
/* 弹窗入场 */
.modal-mask, .mask{ animation:wzFade .22s var(--ease); }
.modal, .dialog{ animation:wzRise .26s var(--ease); border-radius:14px; }
@keyframes wzFade{ from{ opacity:0 } to{ opacity:1 } }
@keyframes wzRise{ from{ opacity:0; transform:translateY(14px) scale(.99) } to{ opacity:1; transform:none } }
/* 链接与滚动条 */
a{ transition:color .18s var(--ease), opacity .18s var(--ease); }
::-webkit-scrollbar{ width:8px; height:8px; }
::-webkit-scrollbar-thumb{ background:#D4DBD8; border-radius:999px; }
::-webkit-scrollbar-thumb:hover{ background:#C1CBC7; }
@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; }
}

/* ============================================================
   2026-10 视觉第四期 v4（客服专项联动 + 全局统一质感）：纯增量覆盖
   ============================================================ */
:root{
  --ease:cubic-bezier(.22,.8,.3,1);
  --shadow-sm:0 1px 3px rgba(14,44,38,.06),0 2px 8px rgba(14,44,38,.05);
  --shadow-md:0 6px 18px rgba(14,44,38,.12),0 1px 4px rgba(14,44,38,.06);
}
/* 卡片：入场动效 + 悬浮微抬升（与用户端/后台同款） */
.card{ box-shadow:var(--shadow-sm); transition:transform .25s var(--ease),box-shadow .25s var(--ease); animation:webIn4 .45s var(--ease) backwards; }
.section .card:nth-child(2){ animation-delay:.05s } .section .card:nth-child(n+3){ animation-delay:.1s }
@keyframes webIn4{ from{ opacity:0; transform:translateY(12px) } to{ opacity:1; transform:none } }
@media (hover:hover){ .card:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); } }
/* 按钮：按压反馈 + 主按钮投影 */
.btn{ transition:transform .16s var(--ease),box-shadow .2s var(--ease),filter .2s var(--ease); }
.btn:active{ transform:scale(.96); }
.btn-primary{ box-shadow:0 2px 10px rgba(14,124,102,.26); }
@media (hover:hover){ .btn-primary:hover{ filter:brightness(1.06); box-shadow:0 5px 16px rgba(14,124,102,.34); } }
/* 表单聚焦光环（获客表单） */
input:focus,select:focus,textarea:focus{ outline:none; border-color:var(--brand,#0E7C66); box-shadow:0 0 0 3px rgba(14,124,102,.12); }
/* 服务类目条目微交互 */
.cat-item{ transition:background .2s var(--ease),transform .2s var(--ease); }
@media (hover:hover){ .cat-item:hover{ background:#f2faf7; transform:translateX(2px); } }
/* 滚动条 */
::-webkit-scrollbar{ width:7px; height:7px; }
::-webkit-scrollbar-thumb{ background:#cdd6d3; border-radius:999px; }
@media (prefers-reduced-motion:reduce){ *{ animation:none!important; transition:none!important; } }

/* ============================================================
   2026-10 视觉第五期 v5（全局微调）：纯增量覆盖
   ============================================================ */
:root{ --ease:cubic-bezier(.22,.8,.3,1); }
.price, .stat .v{ font-variant-numeric: tabular-nums; }
.section .card{ transition:transform .25s var(--ease),box-shadow .25s var(--ease); }
@media (hover:hover){ .section .card:hover{ transform:translateY(-3px); } }
@media (max-width:720px){ .section{ padding-left:14px; padding-right:14px; } }
@media (prefers-reduced-motion:reduce){ *{ animation:none!important; transition:none!important; } }
