/* ═══════════════════════════════════════════════════════════
   海灵膳 · 全站样式（东山岛版）
   调性：沙滩米 60% × 深海墨蓝 30% × 渔火朱红 10%
   记忆点：海浪分割 · 灯塔线描 · 晒匾商品图 · 北纬23.7°
   ═══════════════════════════════════════════════════════════ */

:root{
  --sand:#F6F1E7;
  --paper:#FFFCF5;
  --sea-ink:#0D3B4F;
  --sea:#0E5A73;
  --sea-soft:#E2EEF1;
  --accent:#C8432B;
  --accent-deep:#A83421;
  --ink:#22333A;
  --muted:#5F6E73;
  --line:rgba(13,59,79,.14);
  --ochre:#A8763E;
  --gold:#F4C97B;

  --fs-xs:11px; --fs-sm:12.5px; --fs-md:14px; --fs-lg:16px;
  --fs-xl:20px; --fs-2xl:26px; --fs-3xl:34px;

  --r-sm:8px; --r-md:14px; --r-lg:22px; --r-pill:999px;

  --sh-1:0 2px 8px rgba(13,59,79,.08);
  --sh-2:0 8px 28px rgba(13,59,79,.14);
  --sh-3:0 24px 64px rgba(13,59,79,.22);
}

/* ── 基础 ── */
*,*::before,*::after{box-sizing:border-box;}
body{
  margin:0;
  text-align:left;
  background:var(--sand);
  font-family:'Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;
  color:var(--ink);
  letter-spacing:.02em;
  line-height:1.7;
  -webkit-text-size-adjust:100%;
  word-break:break-word;
}
.serif{font-family:'Noto Serif SC','Songti SC','STSong','SimSun',serif;}
a{color:inherit;text-decoration:none;}
img{border:0;max-width:100%;}
button{font:inherit;cursor:pointer;border:none;background:none;}

/* 固定底部导航时页面预留空间 */
.has-bnav{padding-bottom:70px;}
.has-cartbar{padding-bottom:132px;}
.has-detbar{padding-bottom:146px;}
#bottomNav{position:fixed;bottom:0;left:0;width:100%;z-index:999;}

/* ── 通用组件 ── */
.tag{display:inline-block;font-size:var(--fs-xs);line-height:1;padding:4px 8px;border-radius:var(--r-pill);}
.tag-sea{background:var(--sea-soft);color:var(--sea);}
.tag-fire{background:rgba(200,67,43,.1);color:var(--accent);}
.tag-ochre{background:rgba(168,118,62,.12);color:var(--ochre);}
.btn-fire{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:44px;background:var(--accent);color:#FFFDF8;
  border-radius:var(--r-pill);font-size:var(--fs-md);font-weight:700;
  box-shadow:0 6px 16px rgba(200,67,43,.32);
  transition:transform 160ms ease-out,background 160ms;
}
.btn-fire.w-full{width:100%;}
.btn-fire:hover{background:var(--accent-deep);}
.btn-fire:active{transform:scale(.97);}
.btn-ghost{
  display:inline-flex;align-items:center;justify-content:center;min-height:44px;
  border:1.5px solid var(--sea);color:var(--sea);border-radius:var(--r-pill);
  font-size:var(--fs-md);font-weight:700;transition:background 160ms;
}
.btn-ghost.w-full{width:100%;}
.btn-ghost:hover{background:var(--sea-soft);}
/* 海蓝主按钮（立即购买等）——基础形态对齐 .btn-ghost，兼容 a/button 两种标签 */
.btn-sea{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:44px;padding:0 22px;border-radius:var(--r-pill);
  font-size:var(--fs-md);text-decoration:none;cursor:pointer;
  background:var(--sea);color:#FFFDF8;font-weight:700;border:none;
  box-shadow:0 4px 12px rgba(14,90,115,.32);
}
.btn-sea:hover{background:#0B4A5F;}
.btn-sea.w-full{width:100%;}
.btn-sea:active{transform:scale(.97);}
.det-bar .btn-sea{flex:1;}

/* 晒匾图容器（商品图） */
.platter{
  position:relative;overflow:hidden;
  background:linear-gradient(160deg,#F3E9D4,#EADFC6);
}
.platter img{width:100%;height:100%;object-fit:contain;display:block;}

/* 海浪分割线 */
.wave-div{display:block;width:100%;height:26px;}

/* 渔网纹 */
.net-bg{
  background-image:
    repeating-linear-gradient(45deg,rgba(14,90,115,.05) 0 1px,transparent 1px 14px),
    repeating-linear-gradient(-45deg,rgba(14,90,115,.05) 0 1px,transparent 1px 14px);
}

/* ── 首页 ── */
.home-top{
  background:linear-gradient(178deg,#0D3B4F 0%,#0E5A73 62%,#177993 100%);
  color:#FFFDF8;padding:16px 16px 24px;position:relative;overflow:hidden;
}
.home-top::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(30rem 16rem at 85% -20%,rgba(255,253,248,.16),transparent 60%);
}
.brand-row{display:flex;align-items:baseline;justify-content:space-between;position:relative;}
.brand{font-family:'Noto Serif SC','Songti SC','SimSun',serif;font-weight:900;font-size:var(--fs-2xl);letter-spacing:.06em;}
.brand small{display:block;font-family:'Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;font-weight:400;font-size:var(--fs-xs);opacity:.75;letter-spacing:.3em;margin-top:2px;}
.home-top .tag-gold{background:rgba(255,253,248,.14);color:var(--gold);}
.search{
  display:flex;align-items:center;gap:8px;
  background:rgba(255,253,248,.14);border:1px solid rgba(255,253,248,.3);
  border-radius:var(--r-pill);padding:0 14px;height:40px;
  font-size:var(--fs-sm);backdrop-filter:blur(4px);
}
.search input{
  flex:1;background:none;border:none;outline:none;height:100%;
  color:#FFFDF8;font-size:var(--fs-sm);
}
.search input::placeholder{color:rgba(255,253,248,.6);}
.search .search-btn{
  flex:none;background:var(--accent);color:#FFFDF8;border:none;border-radius:var(--r-pill);
  height:30px;padding:0 14px;font-size:var(--fs-sm);font-weight:700;
}
.notice{
  margin:12px 16px 0;background:rgba(255,253,248,.1);border-radius:var(--r-pill);
  overflow:hidden;display:flex;align-items:center;height:32px;
  border:1px solid rgba(255,253,248,.2);
}
.notice .horn{flex:none;padding:0 10px;font-size:var(--fs-sm);}
.notice .roll{flex:1;overflow:hidden;}
/* 公告逐条向上滚动 */
.notice .ggv{height:30px;}
.ggv-track{will-change:transform;}
.ggv-item{height:30px;line-height:30px;font-size:var(--fs-xs);color:#EAF3F5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:8px;}
.notice .gg-more{flex:none;padding:0 12px 0 6px;font-size:var(--fs-xs);color:#F4C97B;white-space:nowrap;}
/* 公告/资讯列表卡 */
.news-card{margin-bottom:12px;cursor:pointer;}
.news-card .nc-tt{font-weight:700;font-size:var(--fs-md);line-height:1.4;}
.news-card .nc-meta{margin-top:4px;font-size:var(--fs-xs);color:var(--muted);}
.news-card .nc-pic{margin-top:10px;border-radius:var(--r-sm);overflow:hidden;background:#EADFC6;}
.news-card .nc-pic img{display:block;width:100%;object-fit:cover;max-height:170px;}
.news-card .nc-more{margin-top:8px;text-align:right;font-size:var(--fs-xs);color:var(--sea);}
.hero{position:relative;padding:16px 16px 14px;}
.hero h2{font-family:'Noto Serif SC','Songti SC','SimSun',serif;font-weight:900;font-size:24px;line-height:1.18;letter-spacing:-.01em;}
.hero h2 i{font-style:normal;color:var(--gold);}
.hero p{margin-top:5px;font-size:11.5px;color:rgba(255,253,248,.78);max-width:70%;}
.hero .coord{
  display:inline-flex;gap:6px;align-items:center;margin-top:12px;
  font-size:var(--fs-xs);color:#FFFDF8;background:rgba(200,67,43,.85);
  border-radius:var(--r-pill);padding:5px 12px;box-shadow:var(--sh-1);
}
.hero .stone{position:absolute;right:-26px;bottom:8px;opacity:.5;pointer-events:none;}

/* 轮播 */
.hbanner{margin:0 16px;border-radius:var(--r-md);overflow:hidden;box-shadow:var(--sh-2);position:relative;background:#EADFC6;}
.hbanner .swiper-container{overflow:hidden;width:100%;}
.hbanner .swiper-slide img,.hbanner > img{display:block;width:100%;height:158px;object-fit:cover;}
.hbanner .swiper-pagination{bottom:8px;}
.hbanner .swiper-pagination-bullet{background:#FFFDF8;opacity:.55;width:7px;height:7px;transition:all 200ms;}
.hbanner .swiper-pagination-bullet-active{background:var(--gold);opacity:1;width:16px;border-radius:4px;}

/* 广告图卡 */
.ad-band{margin:0 16px;border-radius:var(--r-md);overflow:hidden;box-shadow:var(--sh-1);border:1px solid var(--line);position:relative;background:#EADFC6;display:block;}
.ad-band img{display:block;width:100%;height:104px;object-fit:cover;}
.ad-band .ad-chip{
  position:absolute;top:0;right:0;z-index:2;background:rgba(13,59,79,.55);
  color:#FFFDF8;font-size:10px;line-height:1;padding:5px 9px;border-radius:0 0 0 10px;letter-spacing:.2em;
}
.ad-band .ad-tx{
  position:absolute;left:0;bottom:0;right:0;z-index:1;
  background:linear-gradient(180deg,transparent,rgba(13,59,79,.62));
  color:#FFFDF8;font-size:var(--fs-sm);font-weight:700;letter-spacing:.08em;
  padding:22px 14px 10px;text-align:left;
}

/* 区块 */
.sect{padding:16px;}
.sect-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px;}
.sect-head h3{font-family:'Noto Serif SC','Songti SC','SimSun',serif;font-weight:900;font-size:var(--fs-xl);color:var(--sea-ink);}
.sect-head h3 em{font-style:normal;color:var(--accent);}
.sect-head a{font-size:var(--fs-sm);color:var(--muted);}
.hscroll{display:flex;gap:12px;overflow-x:auto;padding:2px 2px 8px;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.hscroll::-webkit-scrollbar{display:none;}
.gift{
  flex:0 0 148px;background:var(--paper);border-radius:var(--r-lg);overflow:hidden;
  box-shadow:var(--sh-2);border:1px solid var(--line);
  transition:transform 320ms cubic-bezier(.16,1,.3,1);
}
.gift:hover{transform:translateY(-4px);}
/* 报单专区：图片铺满卡片宽度、正方形显示，纵向超出的部分裁掉（由下方标题压住） */
.gift .platter{height:0;padding-bottom:100%;border-radius:0;}
.gift .platter img{
  position:absolute;top:0;left:0;
  width:100%;height:100%;
  object-fit:cover;object-position:center top;
}
.gift .bd{padding:10px 12px 12px;}
.gift .nm{font-size:var(--fs-sm);font-weight:700;color:var(--sea-ink);line-height:1.4;}
.gift .pr{margin-top:6px;font-family:'Noto Serif SC','Songti SC','SimSun',serif;font-weight:900;color:var(--accent);font-size:var(--fs-lg);}
.gift .pr small{font-size:var(--fs-xs);font-weight:400;color:var(--muted);margin-left:4px;font-family:'Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;}

/* 分类宫格 */
.grid8{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.cat{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:12px 4px;text-align:center;box-shadow:var(--sh-1);display:block;transition:transform 160ms ease-out;}
.cat:hover{transform:translateY(-3px);}
.cat .em{font-size:26px;display:block;line-height:1.2;}
.cat b{display:block;margin-top:6px;font-size:var(--fs-xs);color:var(--sea-ink);font-weight:700;}
.cat-promo{background:linear-gradient(135deg,#FFF5EB,#FFE8D6);border-color:var(--accent);color:var(--sea-ink);}
.cat-promo .em{font-size:28px;}
.cat-promo b{color:var(--accent);}

/* 推荐流 */
.flow{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-1);display:block;transition:transform 320ms cubic-bezier(.16,1,.3,1),box-shadow 320ms;}
.card:hover{transform:translateY(-4px);box-shadow:var(--sh-2);}
.card .platter{height:130px;border-radius:0;}
.card .bd{padding:10px 12px 14px;}
.card .nm{font-size:var(--fs-md);font-weight:700;color:var(--sea-ink);}
.card .tg{margin-top:6px;display:flex;gap:4px;}
.card .ft{margin-top:8px;display:flex;align-items:baseline;justify-content:space-between;}
.card .pr{font-family:'Noto Serif SC','Songti SC','SimSun',serif;font-weight:900;color:var(--accent);font-size:var(--fs-lg);}
.card .pr::before{content:"¥";font-size:var(--fs-xs);margin-right:1px;}
.card .sold{font-size:var(--fs-xs);color:var(--muted);}

/* 海风推荐 · 两列卡片（一行两个：上图，下名称两行 + 价格 + 右下购物车；整行卡片价格/按钮对齐） */
.tjlist{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:stretch;}
.tjitem{
  display:flex;flex-direction:column;
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;
  box-shadow:var(--sh-1);transition:transform 320ms cubic-bezier(.16,1,.3,1),box-shadow 320ms;
}
.tjitem:hover{transform:translateY(-3px);box-shadow:var(--sh-2);}
.tjitem .platter{flex:0 0 auto;display:block;height:0;padding-top:100%;border-radius:0;}
.tjitem .platter img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;}
.tjitem .bd{flex:1 1 auto;display:flex;align-items:flex-end;justify-content:space-between;gap:8px;padding:10px 12px 12px;}
.tjitem .info{flex:1 1 auto;min-width:0;}
.tjitem .nm{min-height:2.9em;font-size:var(--fs-sm);font-weight:700;color:var(--sea-ink);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.tjitem .pr{margin-top:6px;font-family:'Noto Serif SC','Songti SC','SimSun',serif;font-weight:900;color:var(--accent);font-size:var(--fs-md);}
.tjitem .pr::before{content:"¥";font-size:var(--fs-xs);margin-right:1px;}
.tjitem .cart{
  flex:0 0 auto;width:30px;height:30px;border-radius:var(--r-pill);background:var(--sea);color:#fff;
  display:flex;align-items:center;justify-content:center;box-shadow:var(--sh-1);
  transition:background 200ms,transform 200ms;
}
.tjitem .cart svg{width:16px;height:16px;display:block;}
.tjitem .cart:hover{background:var(--sea-ink);transform:scale(1.06);}

/* 品牌故事条 */
.story{
  margin:8px 16px 16px;background:var(--sea-ink);color:#F4EFE2;
  border-radius:var(--r-lg);padding:16px;position:relative;overflow:hidden;box-shadow:var(--sh-2);
}
.story::before{content:"";position:absolute;inset:0;background:radial-gradient(20rem 10rem at 100% 0,rgba(244,201,123,.2),transparent 60%);}
.story h4{font-family:'Noto Serif SC','Songti SC','SimSun',serif;font-weight:900;font-size:var(--fs-lg);letter-spacing:.04em;}
.story p{font-size:var(--fs-xs);color:rgba(244,239,226,.8);margin-top:6px;max-width:80%;}
.story .isle{position:absolute;right:8px;bottom:6px;opacity:.6;pointer-events:none;}
.story .chips{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap;position:relative;}
.story .chips span{font-size:var(--fs-xs);border:1px solid rgba(244,239,226,.35);border-radius:var(--r-pill);padding:3px 10px;}

/* ── 底部导航 ── */
.bnav{
  display:flex;background:rgba(255,252,245,.97);
  backdrop-filter:blur(8px);border-top:1px solid var(--line);padding:6px 0 10px;
}
.bnav a{flex:1;text-align:center;font-size:var(--fs-xs);color:var(--muted);padding:5px 0 4px;position:relative;letter-spacing:.08em;transition:color 160ms;}
.bnav a svg{display:block;margin:0 auto 3px;width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:all 160ms;}
.bnav a.on{color:var(--accent);font-weight:700;}
.bnav a.on svg{stroke:var(--accent);fill:rgba(200,67,43,.1);stroke-width:2;}
.bnav a.on::before{content:"";position:absolute;top:-1px;left:50%;transform:translateX(-50%);width:20px;height:3px;border-radius:0 0 3px 3px;background:var(--accent);}
.bnav a:active{transform:scale(.94);}

/* ── 购物车 ── */
.cart-top{background:linear-gradient(180deg,#0E5A73,#177993);color:#FFFDF8;padding:16px 16px 14px;}
.cart-top h1{font-family:'Noto Serif SC','Songti SC','SimSun',serif;font-weight:900;font-size:var(--fs-xl);margin:0;}
.cart-top .sub{font-size:var(--fs-xs);color:rgba(255,253,248,.72);margin-top:2px;}
.cart-list{padding:12px 16px 0;display:flex;flex-direction:column;gap:12px;background:var(--sand);}
/* 购物车空态 */
.cart-empty{margin:20px 16px 4px;padding:30px 16px 26px;text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1);}
.cart-empty .ce-ic{font-size:38px;line-height:1;}
.cart-empty .ce-t{margin-top:12px;font-family:'Noto Serif SC','Songti SC','SimSun',serif;font-weight:900;font-size:var(--fs-lg);color:var(--sea-ink);}
.cart-empty .ce-s{margin-top:4px;font-size:var(--fs-xs);color:var(--muted);}
.cart-empty .btn-sea{margin-top:18px;padding:0 28px;}
.crow{display:flex;gap:12px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:10px;box-shadow:var(--sh-1);align-items:center;}
.crow .platter{width:78px;height:78px;flex:none;border-radius:var(--r-sm);}
.crow .cbd{flex:1;min-width:0;text-align:left;}
.crow .nm{font-size:var(--fs-md);font-weight:700;color:var(--sea-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.crow .ft{margin-top:8px;display:flex;align-items:center;gap:10px;}
.crow .pr{font-family:'Noto Serif SC','Songti SC','SimSun',serif;font-weight:900;color:var(--accent);font-size:var(--fs-lg);flex:1;}
.crow .pr::before{content:"¥";font-size:var(--fs-xs);margin-right:1px;}
.crow select{
  height:32px;border:1.5px solid var(--line);border-radius:var(--r-sm);
  background:#FDFBF4;color:var(--ink);font-size:var(--fs-sm);padding:0 6px;outline:none;
}
.crow select:focus{border-color:var(--sea);}
.crow .del{font-size:var(--fs-xs);color:var(--muted);padding:4px 6px;}
.crow .del:hover{color:var(--accent);}
.cart-bar{
  display:flex;align-items:center;gap:12px;
  background:rgba(255,252,245,.97);backdrop-filter:blur(8px);
  border-top:1px solid var(--line);padding:10px 16px;
}
.cart-bar .sum{flex:1;font-size:var(--fs-xs);color:var(--muted);}
.cart-bar .sum b{font-family:'Noto Serif SC','Songti SC','SimSun',serif;font-weight:900;color:var(--accent);font-size:var(--fs-xl);margin-left:4px;}
.cart-bar .sum b::before{content:"¥";font-size:var(--fs-sm);margin-right:1px;}
.cart-bar .btn-sea{flex:none;min-width:120px;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-pill);font-size:var(--fs-md);padding:0 22px;}

/* ── 商城 ── */
.mall-top{background:linear-gradient(180deg,#0E5A73,#177993);color:#FFFDF8;padding:16px;}
.mall-top .mall-title{font-family:'Noto Serif SC','Songti SC','SimSun',serif;font-weight:900;font-size:var(--fs-lg);}
.mall-body{display:flex;align-items:stretch;min-height:60vh;}
.side{width:88px;flex:none;background:#EEE7D6;}
.side a{display:block;width:100%;text-align:center;padding:14px 4px;font-size:var(--fs-sm);color:var(--muted);border-left:3px solid transparent;transition:all 160ms;box-sizing:border-box;}
.side a.on{background:var(--paper);color:var(--sea);font-weight:700;border-left-color:var(--accent);}
.goods{flex:1;min-width:0;padding:12px;display:flex;flex-direction:column;gap:12px;background:var(--sand);}
.grow{display:flex;gap:12px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:8px;box-shadow:var(--sh-1);transition:transform 320ms cubic-bezier(.16,1,.3,1);}
.grow:hover{transform:translateY(-3px);}
.grow .platter{width:92px;height:92px;flex:none;border-radius:var(--r-sm);}
.grow .bd{flex:1;min-width:0;}
.grow .nm{font-size:var(--fs-md);font-weight:700;color:var(--sea-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.grow .desc{font-size:var(--fs-xs);color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.grow .ft{margin-top:6px;display:flex;justify-content:space-between;align-items:center;}
.grow .pr{font-family:'Noto Serif SC','Songti SC','SimSun',serif;font-weight:900;color:var(--accent);font-size:var(--fs-lg);}
.grow .pr::before{content:"¥";font-size:var(--fs-xs);}
.plus{width:30px;height:30px;border-radius:50%;background:var(--accent);color:#FFFDF8;display:flex;align-items:center;justify-content:center;font-size:18px;box-shadow:0 4px 10px rgba(200,67,43,.3);}

/* ── 商品详情 ── */
.det-hero{position:relative;overflow:hidden;background:#EADFC6;}
.det-hero .platter{height:auto;}
.det-hero .platter img{height:auto;object-fit:contain;background:#FDFBF4;}
.det-hero .back{
  position:absolute;top:14px;left:14px;width:38px;height:38px;border-radius:50%;
  background:rgba(255,252,245,.9);display:flex;align-items:center;justify-content:center;
  box-shadow:var(--sh-1);color:var(--sea-ink);font-size:20px;z-index:2;
}
/* 主图轮播：多张主图时启用，横向滑动（原生滚动 + scroll-snap，无第三方依赖） */
.det-sw-track{
  display:flex;overflow-x:auto;overflow-y:hidden;cursor:grab;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;-ms-overflow-style:none;
  transition:height 220ms ease;
}
.det-sw-track::-webkit-scrollbar{width:0;height:0;display:none;}
.det-sw-slide{
  flex:0 0 100%;height:100%;overflow:hidden;scroll-snap-align:start;scroll-snap-stop:always;
  display:flex;align-items:center;justify-content:center;background:#FDFBF4;
}
.det-sw-slide img{width:100%;height:auto;display:block;object-fit:contain;background:#FDFBF4;-webkit-user-drag:none;user-select:none;}
.det-sw-dots{
  position:absolute;left:0;right:0;bottom:12px;z-index:2;
  display:flex;justify-content:center;gap:6px;pointer-events:none;
}
.det-sw-dots i{
  width:7px;height:7px;border-radius:var(--r-pill);cursor:pointer;pointer-events:auto;
  background:rgba(255,253,248,.7);box-shadow:0 0 0 1px rgba(13,59,79,.18);
  transition:width 200ms,background 200ms;
}
.det-sw-dots i.on{width:18px;background:var(--gold);}
.det-sw-count{
  position:absolute;top:14px;right:14px;z-index:2;
  padding:3px 10px;border-radius:var(--r-pill);
  background:rgba(13,59,79,.45);color:#FFFDF8;
  font-size:var(--fs-xs);line-height:1.6;letter-spacing:.06em;
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
}
.det-sw-count b{font-weight:600;}
.det-bd{padding:16px;}
.det-bd .price{font-family:'Noto Serif SC','Songti SC','SimSun',serif;font-weight:900;color:var(--accent);font-size:var(--fs-3xl);line-height:1;margin-top:10px;}
.det-bd .price::before{content:"¥";font-size:var(--fs-lg);margin-right:2px;}
.det-bd .price small{font-size:var(--fs-sm);color:var(--muted);font-weight:400;margin-left:8px;text-decoration:line-through;font-family:'Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;}
.det-bd h1{font-family:'Noto Serif SC','Songti SC','SimSun',serif;font-weight:900;font-size:var(--fs-xl);color:var(--sea-ink);margin-top:8px;line-height:1.4;}
.det-bd .sub{color:var(--muted);font-size:var(--fs-sm);margin-top:4px;}
.svc{display:flex;gap:12px;margin-top:12px;padding:12px;background:var(--sea-soft);border-radius:var(--r-md);font-size:var(--fs-xs);color:var(--sea);}
.svc span{display:flex;align-items:center;gap:4px;}
.spec{margin-top:16px;}
.spec h5,.sec-t{font-size:var(--fs-sm);color:var(--muted);font-weight:500;margin:0;}
.spec .opts{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap;}
.spec .opts a{
  display:inline-block;border:1.5px solid var(--line);background:var(--paper);border-radius:var(--r-pill);
  padding:9px 16px;font-size:var(--fs-sm);color:var(--ink);transition:all 160ms;
}
.spec .opts a.on{border-color:var(--accent);color:var(--accent);background:rgba(200,67,43,.06);font-weight:700;}
.det-content{margin-top:16px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:14px;font-size:var(--fs-md);line-height:1.9;color:var(--ink);word-break:break-word;}
.det-content img{max-width:100%;height:auto;}
.det-bar{
  display:flex;align-items:center;gap:12px;
  background:rgba(255,252,245,.95);backdrop-filter:blur(8px);
  border-top:1px solid var(--line);padding:10px 16px 12px;
}
.det-bar .cart{flex:none;text-align:center;font-size:var(--fs-xs);color:var(--muted);}
.det-bar .cart svg{width:24px;height:24px;stroke:var(--sea-ink);fill:none;stroke-width:1.8;display:block;margin:0 auto;stroke-linecap:round;stroke-linejoin:round;}
.det-bar .btn-ghost,.det-bar .btn-fire{flex:1;}
.det-soldout{
  display:flex;align-items:center;justify-content:center;min-height:44px;
  background:var(--accent);color:#FFFDF8;border-radius:var(--r-pill);font-weight:700;
}

/* ── 会员中心 ── */
.me-head{background:linear-gradient(178deg,#0D3B4F,#0E5A73 70%,#14708C);color:#FFFDF8;padding:24px 16px 44px;position:relative;overflow:hidden;}
.me-row{display:flex;align-items:center;gap:12px;position:relative;}
.me-ava{width:60px;height:60px;border-radius:50%;background:#FFFDF8;overflow:hidden;display:flex;align-items:center;justify-content:center;box-shadow:var(--sh-1);flex:none;}
.me-ava img{width:100%;height:100%;object-fit:cover;}
.me-name{font-family:'Noto Serif SC','Songti SC','SimSun',serif;font-weight:900;font-size:var(--fs-lg);display:flex;align-items:center;gap:8px;}
.lv{font-family:'Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;font-weight:700;font-size:var(--fs-xs);background:#3E92C0;color:#FFFDF8;border-radius:var(--r-pill);padding:2px 10px;letter-spacing:.06em;}
.me-acc{font-size:var(--fs-xs);color:rgba(255,253,248,.7);margin-top:4px;}
.me-wave{display:block;width:100%;height:26px;margin-top:-25px;position:relative;}
.assets{margin:-30px 16px 0;background:var(--paper);border-radius:var(--r-lg);box-shadow:var(--sh-2);border:1px solid var(--line);position:relative;}
.assets .grid3{display:grid;grid-template-columns:repeat(4,1fr);padding:16px 0 12px;text-align:center;}
.assets .grid3 > *{text-align:center;}
.assets .grid3 a + a{border-left:1px solid var(--line);}
.assets .num{font-family:'Noto Serif SC','Songti SC','SimSun',serif;font-weight:900;font-size:var(--fs-xl);color:var(--sea-ink);}
.assets .num.acc{color:var(--accent);}
.assets .cap{font-size:var(--fs-xs);color:var(--muted);margin-top:2px;}
.assets .rule{height:1px;background:var(--line);margin:0 16px;}
.assets .hint{padding:10px 16px;display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-xs);color:var(--muted);}
.assets .hint b{color:var(--accent);}
.order5{margin:12px 16px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1);padding:12px 0 8px;}
.order5 .hd{display:flex;justify-content:space-between;padding:0 16px 8px;align-items:baseline;}
.order5 .hd b{font-size:var(--fs-md);color:var(--sea-ink);font-family:'Noto Serif SC','Songti SC','SimSun',serif;font-weight:900;}
.order5 .hd a{font-size:var(--fs-xs);color:var(--muted);}
.o5grid{display:grid;grid-template-columns:repeat(5,1fr);}
.o5grid a{text-align:center;padding:6px 0;color:var(--muted);font-size:var(--fs-xs);}
.o5grid a svg{width:24px;height:24px;stroke:var(--sea);fill:none;stroke-width:1.7;display:block;margin:0 auto 4px;stroke-linecap:round;stroke-linejoin:round;}
.o5grid .bdg{position:relative;display:block;}
.o5grid .bdg i{position:absolute;top:-4px;right:18%;min-width:16px;height:16px;border-radius:8px;background:var(--accent);color:#FFFDF8;font-style:normal;font-size:10px;line-height:16px;padding:0 4px;}
.mlist{margin:12px 16px 24px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1);overflow:hidden;}
.mrow{display:flex;align-items:center;gap:12px;padding:0 16px;min-height:52px;transition:background 160ms;}
.mrow:hover{background:#FBF7EC;}
.mrow + .mrow{border-top:1px solid rgba(13,59,79,.07);}
.mrow .ic{width:34px;height:34px;border-radius:10px;background:var(--sea-soft);display:flex;align-items:center;justify-content:center;font-size:16px;flex:none;}
.mrow b{flex:1;font-size:var(--fs-md);color:var(--sea-ink);font-weight:500;}
.mrow .arr{color:#B9C2C5;font-size:14px;}
.logout-btn{
  display:block;margin:4px 16px 24px;min-height:46px;border-radius:var(--r-pill);
  background:var(--paper);border:1.5px solid var(--line);color:var(--sea);
  font-size:var(--fs-md);font-weight:700;text-align:center;line-height:44px;
}

/* ── 登录 / 注册 ── */
.auth{
  min-height:100vh;display:flex;flex-direction:column;
  background:
    radial-gradient(40rem 22rem at 110% -10%,rgba(244,201,123,.35),transparent 55%),
    linear-gradient(178deg,#0D3B4F 0%,#0E5A73 55%,#177993 100%);
}
.auth .brandline{padding:36px 20px 0;color:#FFFDF8;}
.auth .brandline .big{font-family:'Noto Serif SC','Songti SC','SimSun',serif;font-weight:900;font-size:var(--fs-2xl);letter-spacing:.04em;}
.auth .brandline .slg{font-size:var(--fs-sm);color:rgba(255,253,248,.72);margin-top:6px;letter-spacing:.24em;}
.auth-card{margin:32px 16px 24px;background:var(--paper);border-radius:var(--r-lg);box-shadow:var(--sh-3);padding:24px 16px 16px;}
.auth-tabs{display:flex;gap:16px;margin-bottom:16px;}
.auth-tabs button,.auth-tabs span{font-size:var(--fs-lg);font-family:'Noto Serif SC','Songti SC','SimSun',serif;font-weight:900;color:var(--muted);padding:4px 2px;position:relative;}
.auth-tabs .on{color:var(--sea-ink);}
.auth-tabs .on::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:3px;border-radius:2px;background:var(--accent);}
.fld{margin-top:12px;}
.fld label{display:block;font-size:var(--fs-xs);color:var(--muted);margin-bottom:6px;}
.fld input{
  width:100%;height:46px;border:1.5px solid var(--line);border-radius:var(--r-md);
  background:#FDFBF4;padding:0 14px;font-size:var(--fs-md);color:var(--ink);
  transition:border 160ms,box-shadow 160ms;box-sizing:border-box;outline:none;
}
.fld input:focus{border-color:var(--sea);box-shadow:0 0 0 3px rgba(14,90,115,.12);}
.fld input::placeholder{color:#B3BEC1;}
.w-full{width:100%;margin-top:16px;}
.auth-foot{text-align:center;font-size:var(--fs-xs);color:var(--muted);margin-top:12px;}
.auth-foot a{color:var(--sea);font-weight:700;}
.auth .shore{margin-top:auto;height:30px;flex:none;}
.auth .auth-ad{margin:0 16px 20px;border-radius:var(--r-md);overflow:hidden;box-shadow:var(--sh-2);}
.auth .auth-ad img{display:block;width:100%;}

/* ── 我的订单 ── */
.ord-top{background:linear-gradient(180deg,#0E5A73,#177993);padding:16px 16px 0;color:#FFFDF8;}
.ord-top h1{font-family:'Noto Serif SC','Songti SC','SimSun',serif;font-weight:900;font-size:var(--fs-xl);margin:0;}
.ord-tabs{display:flex;margin-top:12px;}
.ord-tabs a{flex:1;text-align:center;font-size:var(--fs-sm);color:rgba(255,253,248,.65);padding:10px 0 12px;position:relative;}
.ord-tabs a.on{color:#FFFDF8;font-weight:700;}
.ord-tabs a.on::after{content:"";position:absolute;left:30%;right:30%;bottom:6px;height:3px;border-radius:2px;background:var(--gold);}
.ord-body{padding:12px 16px 24px;display:flex;flex-direction:column;gap:12px;background:var(--sand);}
.oc{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-1);padding:12px 16px;}
.oc .top{display:flex;justify-content:space-between;font-size:var(--fs-xs);align-items:center;}
.oc .no{color:var(--muted);font-variant-numeric:tabular-nums;}
.oc .st{color:var(--sea);font-weight:700;}
.oc .st.pay{color:var(--accent);}
.oc .it{display:flex;gap:12px;margin-top:8px;align-items:center;}
.oc .it .platter{width:56px;height:56px;flex:none;border-radius:var(--r-sm);}
.oc .it .nm{font-size:var(--fs-md);font-weight:700;color:var(--sea-ink);line-height:1.45;}
.oc .it .sp{font-size:var(--fs-xs);color:var(--muted);margin-top:2px;}
.oc .it .pr-r{text-align:right;font-size:var(--fs-md);color:var(--ink);}
.oc .it .pr-r small{display:block;font-size:var(--fs-xs);color:var(--muted);}
.oc .ft{display:flex;justify-content:space-between;align-items:center;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);}
.oc .sum{font-size:var(--fs-xs);color:var(--muted);}
.oc .sum .date{display:block;}
.oc .sum .payline{display:block;margin-top:3px;font-size:var(--fs-sm);color:var(--ink);}
.oc .sum b{font-family:'Noto Serif SC','Songti SC','SimSun',serif;color:var(--accent);font-size:var(--fs-lg);font-weight:900;}
.oc .acts{display:flex;gap:8px;}
.oc .acts a{font-size:var(--fs-xs);border-radius:var(--r-pill);padding:7px 14px;border:1px solid var(--line);color:var(--muted);background:var(--paper);min-height:32px;line-height:18px;box-sizing:border-box;transition:all 160ms;}
.oc .acts a.fire{border:none;background:var(--accent);color:#FFFDF8;font-weight:700;box-shadow:0 4px 10px rgba(200,67,43,.25);}
.oc .acts a:hover{transform:translateY(-1px);}
.empty{margin:40px auto;text-align:center;color:var(--muted);font-size:var(--fs-sm);}

/* 滚动入场 */
.reveal{opacity:0;transform:translateY(22px);}
.reveal.in{opacity:1;transform:none;transition:opacity 320ms cubic-bezier(.16,1,.3,1),transform 320ms cubic-bezier(.16,1,.3,1);}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
}

/* ═══ 二级页通用（会员中心子页） ═══ */
.sub-top{background:linear-gradient(180deg,#0D3B4F,#0E5A73);color:#FFFDF8;padding:14px 16px 16px;display:flex;align-items:center;gap:12px;}
.sub-top .back{width:34px;height:34px;flex:none;border-radius:50%;background:rgba(255,253,248,.16);display:flex;align-items:center;justify-content:center;font-size:22px;line-height:1;color:#FFFDF8;}
.sub-top .tt{font-family:'Noto Serif SC','Songti SC','STSong','SimSun',serif;font-size:var(--fs-lg);font-weight:900;letter-spacing:.14em;}
.sub-top .tail{margin-left:auto;font-size:var(--fs-xs);color:rgba(255,253,248,.72);}
.sub-body{padding:16px 16px 24px;}
.pcard{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:14px;box-shadow:var(--sh-1);}
.stat-hero{background:linear-gradient(160deg,#0D3B4F,#0E5A73 58%,#177993);color:#FFFDF8;border-radius:var(--r-lg);padding:20px 16px;text-align:center;box-shadow:var(--sh-2);}
.stat-hero .cap{font-size:var(--fs-sm);color:rgba(255,253,248,.75);}
.stat-hero .val{font-family:'Noto Serif SC','Songti SC','STSong','SimSun',serif;font-size:var(--fs-2xl);font-weight:900;margin-top:2px;}
.stat2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.cell{display:flex;align-items:center;gap:10px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:13px 14px;margin-bottom:10px;box-shadow:var(--sh-1);}
.cell .ct{flex:1;min-width:0;}
.cell .ct b{display:block;font-size:var(--fs-md);color:var(--sea-ink);}
.cell .ct i{font-style:normal;font-size:var(--fs-xs);color:var(--muted);}
.cell .chg{font-family:'Noto Serif SC','Songti SC','STSong','SimSun',serif;font-weight:900;font-size:var(--fs-lg);flex:none;}
.chg.up{color:var(--accent);}
.chg.down{color:#1E8E5A;}
.sub-sec{margin-top:14px;font-size:var(--fs-md);font-weight:700;color:var(--sea-ink);display:flex;align-items:baseline;justify-content:space-between;}
.sub-sec i{font-style:normal;font-size:var(--fs-xs);font-weight:400;color:var(--muted);}
.fld select{width:100%;height:46px;border:1.5px solid var(--line);border-radius:var(--r-md);background:#FDFBF4;padding:0 12px;font-size:var(--fs-md);color:var(--ink);box-sizing:border-box;outline:none;}
.fld textarea{width:100%;min-height:70px;border:1.5px solid var(--line);border-radius:var(--r-md);background:#FDFBF4;padding:10px 14px;font-size:var(--fs-md);color:var(--ink);box-sizing:border-box;outline:none;font-family:inherit;}
.addr-card{position:relative;}
.addr-card .mr{position:absolute;top:10px;right:10px;}
.addr-ops{display:flex;border-top:1px dashed var(--line);margin-top:10px;padding-top:10px;}
.addr-ops a{flex:1;text-align:center;font-size:var(--fs-sm);}
.addr-ops a.edit{color:var(--sea);font-weight:700;}
.addr-ops a.del{color:var(--muted);}
.addr-ops a + a{border-left:1px solid var(--line);}
.qr-stage{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-2);padding:20px;text-align:center;}
.qr-stage img{display:block;width:76%;margin:0 auto;border-radius:var(--r-md);box-shadow:var(--sh-1);}
.share-link{display:flex;align-items:center;gap:8px;margin-top:14px;background:#FDFBF4;border:1px dashed var(--line);border-radius:var(--r-sm);padding:10px 12px;}
.share-link code{flex:1;min-width:0;font-size:var(--fs-xs);color:var(--sea);word-break:break-all;font-family:inherit;}
.share-link .cp{flex:none;background:var(--sea);color:#FFFDF8;border-radius:var(--r-pill);font-size:var(--fs-xs);padding:6px 14px;font-weight:700;}
.news-body{font-size:var(--fs-md);color:var(--ink);line-height:2;}
.news-body img{max-width:100%;height:auto;border-radius:var(--r-sm);}
.art-head{font-family:'Noto Serif SC','Songti SC','STSong','SimSun',serif;font-size:var(--fs-xl);font-weight:900;color:var(--sea-ink);}
.art-meta{font-size:var(--fs-xs);color:var(--muted);margin-top:6px;padding-bottom:12px;border-bottom:1px solid var(--line);}

/* ── 公众号关注卡 ── */
.gzh{
  margin:0 16px 20px;
  padding:18px 16px 16px;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--r-md);
  text-align:center;
  box-shadow:var(--sh-1);
}
.gzh .gzh-t{
  display:flex;align-items:center;justify-content:center;gap:10px;
  font-size:var(--fs-md);color:var(--sea-ink);font-weight:700;
  letter-spacing:.12em;margin-bottom:12px;
}
.gzh .gzh-t::before,.gzh .gzh-t::after{content:"";width:28px;height:1px;background:var(--line);}
.gzh img{display:block;width:148px;height:148px;margin:0 auto;border-radius:var(--r-sm);}
.gzh p{margin:10px 0 0;font-size:var(--fs-xs);color:var(--muted);letter-spacing:.08em;}
