/* ============================================================
   hcy310.com 前台样式  深蓝/靛蓝渐变 · 白色卡片 · 响应式
   ============================================================ */
:root{
  --primary:#1d4ed8;
  --primary-dark:#1e3a8a;
  --indigo:#4f46e5;
  --gradient:linear-gradient(120deg,#1d4ed8 0%,#4f46e5 100%);
  --bg:#f4f6fb;
  --card:#ffffff;
  --text:#1e293b;
  --text-2:#64748b;
  --border:#e7ebf3;
  --red:#e11d48;
  --orange:#f97316;
  --green:#059669;
  --radius:14px;
  --shadow:0 2px 12px rgba(30,58,138,.06);
  --shadow-hover:0 10px 30px rgba(30,58,138,.14);
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{font-family:"PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.6}
a{color:inherit;text-decoration:none;transition:color .2s}
a:hover{color:var(--primary)}
img{max-width:100%;display:block}
ul,ol{list-style:none}
input,button,textarea,select{font-family:inherit;font-size:inherit;outline:none}
.container{max-width:1200px;margin:0 auto;padding:0 16px}

/* ---------------- 顶部条 ---------------- */
.topbar{background:#0b1e4d;color:#c7d2fe;font-size:12px}
.topbar-inner{display:flex;justify-content:space-between;align-items:center;height:34px}
.topbar-links b{color:#fff;font-weight:600}
.topbar-links a{color:#c7d2fe;margin:0 6px}
.topbar-links a:hover{color:#fff}
.topbar-links i{color:#3b4f7e;font-style:normal}

/* ---------------- 头部 ---------------- */
.header-main{background:#fff;box-shadow:var(--shadow)}
.header-inner{display:flex;align-items:center;gap:28px;height:86px}
.logo{flex-shrink:0}
.logo-text{font-size:28px;font-weight:800;background:var(--gradient);-webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:2px;display:flex;flex-direction:column;line-height:1.1}
.logo-text small{font-size:10px;letter-spacing:4px;color:var(--text-2);-webkit-text-fill-color:var(--text-2);font-weight:500;margin-top:2px}
.logo img{height:48px;width:auto}
.search-box{flex:1;display:flex;max-width:560px;border:2px solid var(--primary);border-radius:999px;overflow:hidden;background:#fff}
.search-box input{flex:1;border:0;padding:0 20px;height:42px;font-size:14px}
.search-box button{width:104px;border:0;background:var(--gradient);color:#fff;font-size:15px;cursor:pointer;letter-spacing:2px}
.header-publish{height:42px;line-height:42px;padding:0 20px;border-radius:999px;background:linear-gradient(120deg,#f97316,#e11d48);color:#fff!important;font-weight:600;white-space:nowrap;box-shadow:0 6px 16px rgba(225,29,72,.28)}
.header-cart{position:relative;display:flex;align-items:center;gap:6px;font-size:15px;font-weight:600;color:var(--primary-dark)}
.cart-badge{position:absolute;top:-8px;left:14px;background:var(--red);color:#fff;font-style:normal;font-size:11px;min-width:18px;height:18px;line-height:18px;text-align:center;border-radius:999px;padding:0 4px}

/* ---------------- 主导航 ---------------- */
.main-nav{background:var(--gradient);position:relative;z-index:50}
.nav-inner{display:flex;align-items:stretch;height:48px}
.all-cats{width:210px;position:relative}
.all-cats-btn{width:100%;height:100%;border:0;background:rgba(255,255,255,.12);color:#fff;font-size:15px;font-weight:600;cursor:pointer;text-align:left;padding:0 18px;letter-spacing:2px}
.cat-mega{position:absolute;top:100%;left:0;width:210px;background:#fff;box-shadow:var(--shadow-hover);border-radius:0 0 12px 12px;overflow:hidden;display:none}
.all-cats:hover .cat-mega,.all-cats:focus-within .cat-mega{display:block}
.cat-row{position:relative}
.cat-parent{display:flex;align-items:center;gap:8px;padding:11px 18px;font-weight:600;border-bottom:1px solid var(--border)}
.cat-parent i{margin-left:auto;color:#cbd5e1;font-style:normal}
.cat-icon{width:22px;text-align:center}
.cat-subs{display:none;position:absolute;left:100%;top:0;width:520px;background:#fff;height:100%;box-shadow:var(--shadow-hover);padding:14px 18px;border-left:1px solid var(--border)}
.cat-row:hover .cat-subs{display:block}
.cat-subs a{display:inline-block;padding:5px 14px;margin:3px;border-radius:6px;color:var(--text-2)}
.cat-subs a:hover{background:#eef2ff;color:var(--primary)}
.nav-links{display:flex;align-items:stretch;margin-left:12px}
.nav-links a{display:flex;align-items:center;padding:0 22px;color:#e8edff;font-size:15px;font-weight:500;height:48px;position:relative}
.nav-links a:hover,.nav-links a.on{color:#fff;background:rgba(255,255,255,.12)}

/* ---------------- 通用 ---------------- */
.site-main{min-height:60vh;padding:22px 0 40px}
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}
.section-head{display:flex;align-items:center;justify-content:space-between;margin:26px 0 16px}
.section-head:first-child{margin-top:0}
.section-title{font-size:20px;font-weight:700;display:flex;align-items:center;gap:10px}
.section-title::before{content:"";width:5px;height:20px;border-radius:3px;background:var(--gradient)}
.section-more{color:var(--text-2);font-size:13px}
.btn{display:inline-block;border:1px solid var(--border);background:#fff;color:var(--text);padding:9px 22px;border-radius:999px;cursor:pointer;font-size:14px;transition:.2s;text-align:center}
.btn:hover{border-color:var(--primary);color:var(--primary)}
.btn-primary{background:var(--gradient);color:#fff!important;border:0;box-shadow:0 6px 16px rgba(29,78,216,.25)}
.btn-primary:hover{opacity:.92;color:#fff}
.btn-danger{background:var(--red);color:#fff!important;border:0}
.btn-orange{background:var(--orange);color:#fff!important;border:0}
.btn-sm{padding:5px 14px;font-size:12px}
.btn-block{display:block;width:100%}
[disabled]{opacity:.5;cursor:not-allowed}
.flash{border-radius:10px;padding:12px 18px;margin:14px auto;font-size:14px}
.flash-ok{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}
.flash-err{background:#fff1f2;color:#be123c;border:1px solid #fecdd3}
.tag{display:inline-block;font-size:11px;padding:1px 8px;border-radius:4px;font-weight:600}
.tag-top{background:#fff1e6;color:#ea580c}
.tag-new{background:#ecfdf5;color:#059669}
.tag-hot{background:#fff1f2;color:#e11d48}

/* ---------------- 首页 Hero ---------------- */
.hero-wrap{display:flex;gap:16px}
.hero{flex:1;border-radius:var(--radius);overflow:hidden;position:relative;height:380px;box-shadow:var(--shadow)}
.hero-slides{height:100%;position:relative}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity .6s}
.hero-slide.on{opacity:1}
.hero-slide img{width:100%;height:100%;object-fit:cover}
.hero-dots{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);display:flex;gap:8px;z-index:2}
.hero-dots i{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.55);cursor:pointer}
.hero-dots i.on{background:#fff;width:24px;border-radius:5px}
.hero-side{width:260px;display:flex;flex-direction:column;gap:16px}
.hero-notice{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px;flex:1}
.hero-notice h3{font-size:15px;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.hero-notice li{padding:5px 0;font-size:13px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hero-notice li a:hover{color:var(--primary)}
.hero-service{background:var(--gradient);border-radius:var(--radius);padding:18px;color:#fff;flex:1;display:flex;flex-direction:column;justify-content:space-between}
.hero-service h3{font-size:17px;margin-bottom:6px}
.hero-service p{font-size:12px;opacity:.85}
.hero-service .tel{font-size:22px;font-weight:800;letter-spacing:1px}

/* 分类宫格 */
.cat-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:12px}
.cat-grid a{background:#fff;border-radius:12px;padding:18px 6px;text-align:center;box-shadow:var(--shadow);font-weight:600;transition:.2s}
.cat-grid a:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover);color:var(--primary)}
.cat-grid .gi{font-size:26px;display:block;margin-bottom:8px}

/* 两栏布局 */
.home-cols{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
.info-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.info-item{display:flex;gap:12px;background:#fff;border-radius:10px;padding:12px;border:1px solid var(--border);transition:.2s}
.info-item:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}
.info-item .thumb{width:108px;height:80px;border-radius:8px;object-fit:cover;flex-shrink:0;background:#eef2ff}
.info-item .meta{flex:1;min-width:0;display:flex;flex-direction:column}
.info-item h3{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.info-item .area{color:var(--text-2);font-size:12px;margin-top:auto}
.info-item .price{color:var(--red);font-weight:700}
.side-card .side-title{font-weight:700;margin-bottom:10px}
.news-mini li{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px dashed var(--border);font-size:13px}
.news-mini li:last-child{border:0}
.news-mini a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.news-mini a:hover{color:var(--primary)}
.news-mini time{color:var(--text-2);font-size:12px;flex-shrink:0}

/* 商品网格 */
.goods-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.goods-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:.2s;display:flex;flex-direction:column}
.goods-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-hover)}
.goods-card .cover{position:relative;width:100%;aspect-ratio:1;background:#eef2ff;overflow:hidden}
.goods-card .cover img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.goods-card:hover .cover img{transform:scale(1.06)}
.goods-card .badges{position:absolute;top:8px;left:8px;display:flex;gap:4px}
.goods-card .body{padding:12px 14px;display:flex;flex-direction:column;gap:8px;flex:1}
.goods-card h3{font-size:14px;font-weight:500;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:40px}
.goods-card .price-row{margin-top:auto;display:flex;align-items:flex-end;justify-content:space-between}
.goods-card .price{color:var(--red);font-size:19px;font-weight:800}
.goods-card .price small{font-size:12px;font-weight:400}
.goods-card .market{color:#94a3b8;text-decoration:line-through;font-size:12px;margin-left:4px}
.goods-card .sales{color:var(--text-2);font-size:12px}

/* 店铺 */
.store-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.store-card{display:flex;gap:14px;background:#fff;border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);transition:.2s}
.store-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-3px)}
.store-card img{width:84px;height:84px;border-radius:14px;object-fit:cover;flex-shrink:0;background:#eef2ff}
.store-card h3{font-size:16px;margin-bottom:6px}
.store-card p{font-size:12px;color:var(--text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ---------------- 面包屑 / 列表页 ---------------- */
.crumb{font-size:13px;color:var(--text-2);margin-bottom:14px}
.crumb a:hover{color:var(--primary)}
.layout-2col{display:grid;grid-template-columns:200px minmax(0,1fr);gap:18px;align-items:start}
.subcat-box .subcat-title{font-weight:700;padding:14px 16px;background:var(--gradient);color:#fff;border-radius:12px 12px 0 0}
.subcat-box .subcat-title small{font-weight:400;font-size:12px;opacity:.85}
.subcat-box ul{background:#fff;border-radius:0 0 12px 12px;box-shadow:var(--shadow);padding:8px 0}
.subcat-box li a{display:block;padding:9px 16px;font-size:13px}
.subcat-box li a.on,.subcat-box li a:hover{background:#eef2ff;color:var(--primary);border-right:3px solid var(--primary)}
.filter-bar{background:#fff;border-radius:12px;padding:14px 18px;box-shadow:var(--shadow);display:flex;align-items:center;gap:14px;margin-bottom:14px;flex-wrap:wrap}
.filter-bar select,.filter-bar input{border:1px solid var(--border);border-radius:8px;padding:8px 12px}
.filter-bar .spacer{margin-left:auto}
.info-table{background:#fff;border-radius:12px;box-shadow:var(--shadow);overflow:hidden}
.info-row{display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid var(--border);transition:background .15s}
.info-row:hover{background:#f8faff}
.info-row:last-child{border:0}
.info-row .thumb{width:120px;height:84px;object-fit:cover;border-radius:8px;background:#eef2ff;flex-shrink:0}
.info-row .main{flex:1;min-width:0}
.info-row .main h3{font-size:15px;margin-bottom:6px}
.info-row .main p{font-size:12px;color:var(--text-2);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.info-row .tags{margin-top:4px}
.info-row .right{text-align:right;flex-shrink:0;width:110px}
.info-row .price{color:var(--red);font-size:18px;font-weight:800}
.info-row .time{color:var(--text-2);font-size:12px;margin-top:6px}

/* 分页 */
.pager{display:flex;gap:6px;justify-content:center;margin:28px 0 8px;flex-wrap:wrap}
.pager a,.pager .current{min-width:36px;height:36px;line-height:36px;text-align:center;padding:0 10px;border-radius:8px;background:#fff;border:1px solid var(--border);font-size:13px}
.pager .current{background:var(--gradient);color:#fff;border:0}
.pager a:hover{border-color:var(--primary);color:var(--primary)}
.pager .dots{line-height:36px;color:#94a3b8}
.pager .info{border:0;background:none;color:var(--text-2);font-size:12px}

/* ---------------- 详情页 ---------------- */
.detail-wrap{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}
.gallery{background:#fff;border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
.gallery .big{width:100%;aspect-ratio:4/3;object-fit:contain;border-radius:10px;background:#f8faff}
.gallery .thumbs{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.gallery .thumbs img{width:74px;height:60px;object-fit:cover;border-radius:8px;border:2px solid transparent;cursor:pointer;background:#eef2ff}
.gallery .thumbs img.on{border-color:var(--primary)}
.detail-side .panel{background:#fff;border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
.detail-title{font-size:22px;line-height:1.4;margin-bottom:12px}
.detail-price{background:linear-gradient(120deg,#fff7ed,#fff1f2);border-radius:12px;padding:18px 20px;margin-bottom:16px}
.detail-price .p{color:var(--red);font-size:30px;font-weight:800}
.detail-price .p small{font-size:14px;font-weight:400}
.detail-meta{display:grid;grid-template-columns:80px 1fr;gap:8px 12px;font-size:13px;color:var(--text-2);margin-bottom:18px}
.detail-meta b{color:var(--text);font-weight:600}
.qty-box{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:8px;overflow:hidden;margin:10px 0}
.qty-box button{width:34px;height:34px;border:0;background:#f1f5f9;cursor:pointer;font-size:16px}
.qty-box input{width:52px;height:34px;border:0;text-align:center}
.action-row{display:flex;gap:10px;margin-top:8px}
.action-row .btn{flex:1;padding:12px;border-radius:10px;font-size:15px;font-weight:600}
.article{background:#fff;border-radius:var(--radius);padding:26px;margin-top:18px;box-shadow:var(--shadow)}
.article h2{font-size:18px;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid var(--bg)}
.article .content{font-size:15px;line-height:1.9}
.article .content p{margin-bottom:12px}
.article .content img{border-radius:10px;margin:10px auto}
.contact-card .phone{font-size:22px;font-weight:800;color:var(--primary)}
.related-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:14px}

/* ---------------- 表单 / 认证 ---------------- */
.auth-wrap{max-width:430px;margin:30px auto;background:#fff;border-radius:18px;box-shadow:var(--shadow-hover);padding:34px 32px}
.auth-wrap.auth-wide{max-width:760px}
.auth-wrap h2{text-align:center;font-size:22px;margin-bottom:6px;background:var(--gradient);-webkit-background-clip:text;background-clip:text;color:transparent}
.auth-wrap .sub{text-align:center;color:var(--text-2);font-size:13px;margin-bottom:22px}
.form-row{margin-bottom:16px}
.form-row label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}
.form-row label .req{color:var(--red)}
.form-row input[type=text],.form-row input[type=password],.form-row input[type=tel],.form-row input[type=email],.form-row input[type=number],.form-row textarea,.form-row select{
  width:100%;border:1px solid var(--border);border-radius:10px;padding:11px 14px;background:#fbfcfe;transition:.2s}
.form-row input:focus,.form-row textarea:focus,.form-row select:focus{border-color:var(--primary);background:#fff;box-shadow:0 0 0 3px rgba(29,78,216,.1)}
.form-row textarea{min-height:120px;resize:vertical}
.captcha-row{display:flex;gap:10px}
.captcha-row input{flex:1}
.captcha-row img{height:44px;width:120px;border-radius:10px;cursor:pointer;border:1px solid var(--border)}
.form-error{color:var(--red);font-size:12px;margin-top:4px}
.form-tips{font-size:12px;color:var(--text-2);margin-top:16px;text-align:center}
.form-tips a{color:var(--primary)}

/* ---------------- 会员中心 ---------------- */
.user-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;align-items:start}
.user-side{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.user-side .me{padding:22px 18px;background:var(--gradient);color:#fff;text-align:center}
.user-side .me img{width:64px;height:64px;border-radius:50%;margin:0 auto 8px;background:#fff;object-fit:cover}
.user-side .me .avatar-fallback{width:64px;height:64px;border-radius:50%;margin:0 auto 8px;background:rgba(255,255,255,.25);line-height:64px;font-size:26px}
.user-side .me b{font-size:16px}
.user-side .me small{opacity:.85;font-size:12px}
.user-side nav a{display:block;padding:13px 22px;font-size:14px;border-left:3px solid transparent}
.user-side nav a.on,.user-side nav a:hover{background:#eef2ff;color:var(--primary);border-left-color:var(--primary)}
.user-content{min-width:0}
.user-content .card{margin-bottom:16px}
.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}
.stat-box{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;text-align:center}
.stat-box b{font-size:28px;background:var(--gradient);-webkit-background-clip:text;background-clip:text;color:transparent;display:block}
.stat-box span{color:var(--text-2);font-size:13px}

/* 表格（后台也用） */
.tbl{width:100%;border-collapse:collapse;font-size:13px;background:#fff;border-radius:12px;overflow:hidden}
.tbl th{background:#f8faff;text-align:left;padding:12px 14px;font-weight:600;color:var(--text-2);white-space:nowrap}
.tbl td{padding:12px 14px;border-top:1px solid var(--border);vertical-align:middle}
.tbl tr:hover td{background:#fafcff}
.status{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600}
.st-pending{background:#fef3c7;color:#b45309}
.st-approved,.st-paid,.st-completed{background:#dcfce7;color:#15803d}
.st-rejected,.st-cancelled,.st-refunded{background:#fee2e2;color:#b91c1c}
.st-offline{background:#e2e8f0;color:#475569}
.st-shipped{background:#dbeafe;color:#1d4ed8}
.st-applying{background:#ffedd5;color:#c2410c}

/* ---------------- 购物车 / 订单 ---------------- */
.cart-item{display:flex;align-items:center;gap:16px;background:#fff;border-radius:12px;padding:14px 18px;margin-bottom:10px;box-shadow:var(--shadow)}
.cart-item img{width:72px;height:72px;object-fit:cover;border-radius:10px;background:#eef2ff}
.cart-item .name{flex:1;font-weight:600}
.cart-item .cell{width:110px;text-align:center}
.cart-summary{background:#fff;border-radius:12px;padding:18px 22px;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:space-between;margin-top:14px}
.cart-summary .total b{color:var(--red);font-size:24px}
.order-card{background:#fff;border-radius:12px;margin-bottom:14px;box-shadow:var(--shadow);overflow:hidden}
.order-head{display:flex;justify-content:space-between;padding:12px 18px;background:#f8faff;font-size:13px;color:var(--text-2)}
.order-goods{display:flex;align-items:center;gap:12px;padding:14px 18px;border-top:1px solid var(--border)}
.order-goods img{width:56px;height:56px;border-radius:8px;object-fit:cover;background:#eef2ff}
.order-foot{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-top:1px solid var(--border)}
.order-foot .amount b{color:var(--red);font-size:18px}
.step-bar{display:flex;justify-content:space-between;margin:10px 0 24px;position:relative}
.step-bar::before{content:"";position:absolute;top:15px;left:8%;right:8%;height:2px;background:var(--border);z-index:0}
.step{position:relative;z-index:1;text-align:center;font-size:12px;color:var(--text-2);flex:1}
.step i{display:block;width:30px;height:30px;line-height:30px;border-radius:50%;background:#fff;border:2px solid var(--border);margin:0 auto 6px;font-style:normal;font-weight:700}
.step.on{color:var(--primary);font-weight:600}
.step.on i{background:var(--gradient);color:#fff;border:0}

/* ---------------- 站内页 ---------------- */
.page-article{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:36px 44px}
.page-article h1{font-size:26px;margin-bottom:20px;text-align:center}
.page-article h2{font-size:17px;margin:22px 0 10px;color:var(--primary-dark)}
.page-article p{line-height:1.9;margin-bottom:10px;color:#334155}

/* ---------------- 页脚 ---------------- */
.site-footer{background:#0b1e4d;color:#94a3b8;margin-top:40px;font-size:13px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:32px;padding:40px 16px}
.footer-logo{font-size:22px;font-weight:800;color:#fff;margin-bottom:12px}
.footer-about p{line-height:1.9;font-size:12px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.footer-col h4{color:#fff;font-size:14px;margin-bottom:14px}
.footer-col a{display:block;padding:4px 0;color:#94a3b8;font-size:13px}
.footer-col a:hover{color:#fff}
.footer-col p{margin-bottom:6px;font-size:13px}
.footer-compliance{border-top:1px solid #1e305e;padding:16px 0;font-size:12px}
.compliance-inner{display:flex;flex-wrap:wrap;gap:16px;align-items:center}
.compliance-inner a{color:#94a3b8}
.compliance-inner a:hover{color:#fff}

/* ---------------- 响应式 ---------------- */
@media(max-width:1024px){
  .goods-grid{grid-template-columns:repeat(3,1fr)}
  .related-grid{grid-template-columns:repeat(3,1fr)}
  .cat-grid{grid-template-columns:repeat(4,1fr)}
  .home-cols{grid-template-columns:1fr}
  .detail-wrap{grid-template-columns:1fr}
  .store-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:768px){
  .topbar span{display:none}
  .header-inner{flex-wrap:wrap;height:auto;padding:12px 16px;gap:12px}
  .logo-text{font-size:22px}
  .search-box{order:3;max-width:none;flex-basis:100%}
  .header-publish{height:38px;line-height:38px;padding:0 14px;font-size:13px;margin-left:auto}
  .header-cart span{display:none}
  .all-cats{width:150px}
  .all-cats-btn{font-size:13px;padding:0 12px}
  .nav-links a{padding:0 12px;font-size:13px}
  .cat-mega{width:150px}
  .cat-subs{width:280px}
  .hero{height:220px}
  .hero-side{display:none}
  .goods-grid{grid-template-columns:repeat(2,1fr)}
  .related-grid{grid-template-columns:repeat(2,1fr)}
  .store-grid{grid-template-columns:1fr}
  .layout-2col{grid-template-columns:1fr}
  .subcat-box ul{display:flex;overflow-x:auto}
  .subcat-box li a{white-space:nowrap}
  .subcat-box li a.on{border-right:0;border-bottom:3px solid var(--primary)}
  .info-list{grid-template-columns:minmax(0,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr;gap:22px}
  .user-layout{grid-template-columns:1fr}
  .stat-row{grid-template-columns:repeat(2,1fr)}
  .page-article{padding:22px 18px}
  .info-row .thumb{width:80px;height:60px}
}
@media(max-width:480px){
  .cat-grid{grid-template-columns:repeat(3,1fr)}
  .goods-grid{gap:10px}
  .goods-card .body{padding:10px}
  .footer-grid{grid-template-columns:1fr}
  .detail-title{font-size:18px}
  .detail-price .p{font-size:24px}
}

/* ============================================================
   购物车 / 结算 / 订单 / 收银台
   ============================================================ */
.price{color:var(--red);font-weight:700}
.page-tit{font-size:22px;font-weight:700;margin:6px 0 18px}
.page-tit small{font-size:13px;color:var(--text-2);font-weight:400;margin-left:8px}
.empty-box{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:70px 20px;text-align:center;color:var(--text-2)}
.empty-box p{margin:14px 0 22px}
.card-h{font-size:16px;font-weight:700;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border)}

/* 购物车 */
.cart-box{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.cart-tbl td{vertical-align:middle}
.cart-goods{display:flex;align-items:center;gap:14px;color:var(--text)}
.cart-goods img{width:64px;height:64px;object-fit:cover;border-radius:10px;background:#eef2ff;flex-shrink:0}
.cart-goods span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:320px}
.cart-bar{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);margin-top:14px;padding:14px 20px;display:flex;align-items:center;gap:16px;position:sticky;bottom:10px;z-index:5}
.cart-sum{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:14px;color:var(--text-2)}
.cart-sum .total{color:var(--red);font-size:22px;font-weight:800}

/* 结算页 */
.checkout-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}
.co-side{position:sticky;top:80px}
.co-form{max-width:640px}
.pay-chk{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--border);border-radius:12px;margin-bottom:12px;cursor:pointer}
.pay-chk:has(input:checked){border-color:var(--primary);background:#f8faff}
.pay-ic{width:38px;height:38px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:17px}
.pay-tag{font-style:normal;font-size:11px;background:#dbeafe;color:#1d4ed8;padding:1px 8px;border-radius:6px;margin-left:8px}
.pay-tag.gray{background:#e2e8f0;color:#64748b}
.pay-bar p{display:flex;justify-content:space-between;color:var(--text-2);font-size:13.5px;margin-bottom:10px}
.pay-bar p b{color:var(--text);font-weight:600}
.pay-total{border-top:1px dashed var(--border);margin:14px 0;padding-top:14px;display:flex;justify-content:space-between;align-items:center;font-size:14px}
.pay-total span{color:var(--red);font-size:22px;font-weight:800}
.back-cart{display:block;text-align:center;margin-top:12px;font-size:13px;color:var(--text-2)}
.co-tip{font-size:12px;color:var(--text-2);text-align:center;margin-top:12px;line-height:1.7}

/* 订单列表 */
.order-tabs{display:flex;gap:6px;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:8px;margin-bottom:16px;flex-wrap:wrap}
.order-tabs a{padding:8px 18px;border-radius:8px;font-size:14px;color:var(--text-2)}
.order-tabs a.on{background:var(--gradient);color:#fff;font-weight:600}
.order-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:14px;overflow:hidden}
.oc-head{display:flex;gap:20px;background:#f8faff;padding:10px 18px;font-size:12.5px;color:var(--text-2);border-bottom:1px solid var(--border)}
.oc-no{margin-left:auto}
.oc-st{font-weight:700;color:var(--primary)}
.rf-badge{font-style:normal;background:#ffedd5;color:#c2410c;padding:1px 8px;border-radius:6px;font-size:11px;margin-left:6px}
.rf-badge.ok{background:#dcfce7;color:#15803d}
.oc-body{padding:14px 18px;display:grid;gap:12px}
.oc-item{display:flex;gap:14px;align-items:center}
.oc-item img{width:56px;height:56px;object-fit:cover;border-radius:10px;background:#eef2ff}
.oc-info b{font-size:13.5px;font-weight:500;display:block;margin-bottom:4px}
.oc-info span{font-size:12.5px;color:var(--text-2)}
.oc-foot{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;border-top:1px solid var(--border);background:#fcfdff;flex-wrap:wrap;gap:10px}
.oc-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.oc-actions form{display:inline}

/* 订单详情 */
.oc-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.mini-step{text-align:center;padding:26px;font-size:15px;color:var(--text-2);background:#f8faff;border-radius:10px;margin-top:14px}
.kv-tbl{width:100%;font-size:13.5px}
.kv-tbl td{padding:9px 6px;border:0!important;border-bottom:1px dashed var(--border)!important;background:#fff!important}
.kv-tbl td:first-child{color:var(--text-2);width:96px;white-space:nowrap}
.oc-detail-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}

/* 收银台 */
.cashier{max-width:760px;margin:0 auto}
.cashier-top{text-align:center;padding:10px 0 24px;border-bottom:1px solid var(--border)}
.cashier-top h2{font-size:19px;margin-bottom:8px}
.cashier-top p{color:var(--text-2);font-size:13px}
.cashier-amount{color:var(--red);font-size:44px;font-weight:800;margin:14px 0 6px}
.cashier-amount small{font-size:20px}
.cashier-tip{font-size:12.5px}
.sandbox-tip{background:#fffbeb;border:1px solid #fde68a;color:#92400e;border-radius:10px;padding:14px 18px;margin:18px 0;font-size:13px;line-height:1.8}
.pay-methods{padding:20px 0;display:grid;gap:14px}
.pay-btn{display:flex;align-items:center;gap:14px;width:100%;border:1px solid var(--border);border-radius:12px;padding:16px 20px;background:#fff;cursor:pointer;transition:.15s}
a.pay-btn{color:var(--text)}
.pay-btn:hover{border-color:var(--primary);box-shadow:0 6px 18px rgba(29,78,216,.1)}
.pay-btn.disabled{opacity:.6;cursor:not-allowed;pointer-events:none}
.pay-btn .pay-name{font-weight:600;font-size:15px}
.pay-btn .pay-go{margin-left:auto;color:var(--primary);font-size:13.5px;font-weight:600}
.pay-btn .pay-go.warn{color:var(--text-2);font-weight:400}
.cashier-foot{border-top:1px solid var(--border);padding-top:16px;display:flex;gap:22px;justify-content:center;font-size:13.5px}

@media(max-width:900px){
  .checkout-layout{grid-template-columns:1fr}
  .co-side{position:static}
  .oc-head{flex-wrap:wrap;gap:6px}
  .oc-no{margin-left:0}
  .cart-bar{position:static;flex-wrap:wrap}
  .cart-sum{margin-left:0;width:100%;justify-content:flex-end}
}

/* ============================================================
   移动端 H5 适配（触控优先 · 安全区 · 抽屉导航）
   断点：≤1024 平板横屏 / ≤768 平板竖屏·大屏手机 / ≤480 手机
   ============================================================ */

/* ---------- 全局触控基础 ---------- */
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
body,
a,button,input,select,textarea,label,summary,
.btn,.goods-card,.info-item,.info-row,.store-card,.cat-grid a,
.pay-chk,.qty-box button,.pager a,.hero-dots i{
  -webkit-tap-highlight-color:transparent;
}
button,.btn,.nav-links a,.cat-grid a,.pager a,.hero-dots i,summary{touch-action:manipulation}
img{height:auto}
.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.table-scroll table{min-width:560px}
.table-scroll.tbl-free table{min-width:0}

/* ---------- 汉堡按钮（桌面隐藏） ---------- */
.nav-toggle{display:none;width:42px;height:42px;border:0;background:transparent;flex-direction:column;justify-content:center;align-items:center;gap:5px;cursor:pointer;border-radius:10px;flex-shrink:0}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--primary-dark);border-radius:2px;transition:.25s}
body.menu-open{overflow:hidden}

/* ---------- 移动端抽屉（桌面隐藏） ---------- */
.m-menu,.m-backdrop{display:none}
.m-menu{position:fixed;top:0;left:0;width:min(82vw,330px);height:100dvh;background:#fff;z-index:200;transform:translateX(-105%);transition:transform .28s ease;box-shadow:0 0 40px rgba(15,31,74,.25);flex-direction:column}
body.menu-open .m-menu{transform:none}
.m-backdrop{position:fixed;inset:0;background:rgba(11,30,77,.5);z-index:190;opacity:0;pointer-events:none;transition:opacity .25s}
body.menu-open .m-backdrop{opacity:1;pointer-events:auto}
.m-menu-head{display:flex;align-items:center;justify-content:space-between;padding:calc(14px + env(safe-area-inset-top)) 18px 14px;background:var(--gradient);color:#fff;flex-shrink:0}
.m-menu-head b{font-size:17px}
.m-menu-close{width:38px;height:38px;border:0;background:rgba(255,255,255,.18);color:#fff;border-radius:9px;font-size:15px;cursor:pointer}
.m-menu-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:10px 0 calc(20px + env(safe-area-inset-bottom))}
.m-nav-links{padding:4px 12px}
.m-nav-links a{display:flex;align-items:center;min-height:46px;padding:0 14px;border-radius:10px;font-size:15px;font-weight:500;color:var(--text)}
.m-nav-links a:active{background:#eef2ff}
.m-cats-title{padding:14px 22px 8px;font-size:12px;color:var(--text-2);letter-spacing:1px}
.m-cats{padding:0 12px}
.m-cats details{border-bottom:1px solid var(--border)}
.m-cats details[open] summary .m-cat-parent::after{content:"−"}
.m-cats summary{list-style:none;cursor:pointer;position:relative}
.m-cats summary::-webkit-details-marker{display:none}
.m-cat-parent{display:flex;align-items:center;gap:10px;min-height:46px;padding:0 14px;font-size:15px;font-weight:600;border-radius:10px}
.m-cat-parent:active{background:#eef2ff}
.m-cat-parent::after{content:"+";margin-left:auto;color:var(--text-2);font-size:18px;font-weight:400}
.m-cat-parent .cat-icon{width:24px;text-align:center}
.m-cat-subs{padding:2px 0 10px 14px}
.m-cat-subs a{display:block;padding:10px 14px;font-size:14px;color:var(--text-2);border-radius:8px;min-height:42px;line-height:1.3}
.m-cat-subs a:active{background:#eef2ff;color:var(--primary)}

/* ---------- 平板（≤1024）补充 ---------- */
@media(max-width:1024px){
  .header-inner{gap:18px}
  .nav-links a{padding:0 16px}
  .site-main{padding:18px 0 32px}
  .hero{height:300px}
}

/* ---------- 平板竖屏 / 大屏手机（≤768） ---------- */
@media(max-width:768px){
  body{font-size:14px;overflow-x:hidden}
  .container{padding:0 12px}
  .form-grid-2{grid-template-columns:1fr;gap:0}

  /* grid/flex 子项允许收缩到内容以下，杜绝 nowrap 文本撑出横向滚动 */
  .home-cols,.layout-2col,.user-layout,.checkout-layout{grid-template-columns:minmax(0,1fr)}
  .home-cols>*,.layout-2col>*,.user-layout>*,.checkout-layout>*{min-width:0}
  .goods-grid>*,.related-grid>*,.store-grid>*,.info-list>*{min-width:0}
  .news-mini a{min-width:0}
  .subcat-box{min-width:0;max-width:none}
  /* 卡片内宽表格横滚的溢出不计入卡片宽度，避免整页被撑宽 */
  .user-content .card{overflow-x:hidden}
  /* 键值表的值列允许换行，长单号/地址不再撑宽 */
  .kv-tbl td:not(:first-child){white-space:normal;word-break:break-word;overflow-wrap:anywhere}

  /* 顶部条：仅保留账号入口 */
  .topbar{font-size:11px}
  .topbar-inner{height:32px;justify-content:flex-end;gap:10px}
  .topbar-links{display:flex;align-items:center;gap:2px;white-space:nowrap;overflow-x:auto}
  .topbar-links span{white-space:nowrap}

  /* 头部：第一行 logo+操作，第二行搜索 */
  .header-inner{flex-wrap:wrap;height:auto;padding:10px 12px;gap:10px}
  .nav-toggle{display:flex;-webkit-box-ordinal-group:1;order:0}
  .logo{margin-right:auto}
  .logo-text{font-size:22px;letter-spacing:1px}
  .logo img{height:40px}
  .header-cart{font-size:20px;padding:6px;order:3}
  .header-cart span{display:none}
  .header-publish{height:38px;line-height:38px;padding:0 16px;font-size:13px;order:2}
  .cart-badge{top:-2px;left:16px}
  .search-box{order:4;flex-basis:100%;max-width:none;border-width:1px;border-radius:999px}
  .search-box input{height:44px;font-size:16px;padding:0 16px}
  .search-box button{width:88px;height:44px;font-size:15px;letter-spacing:1px}

  /* 桌面导航隐藏，改用抽屉 */
  .main-nav{display:none}
  .m-menu{display:flex}
  .m-backdrop{display:block}

  /* 防 iOS 聚焦自动放大：表单控件 ≥16px */
  .form-row input[type=text],.form-row input[type=password],.form-row input[type=tel],
  .form-row input[type=email],.form-row input[type=number],.form-row input[type=search],
  .form-row textarea,.form-row select,
  .filter-bar input,.filter-bar select,
  input[type=text],input[type=tel],input[type=email],input[type=number],input[type=search],
  textarea,select{font-size:16px}

  /* 触控区域 ≥44px */
  .btn{min-height:42px;display:inline-flex;align-items:center;justify-content:center;padding:10px 20px}
  .btn-sm{min-height:34px;padding:7px 13px;font-size:12.5px}
  .pager a,.pager .current{min-width:40px;height:40px;line-height:40px}
  .qty-box button{width:42px;height:42px}
  .qty-box input{width:56px;height:42px;font-size:16px}
  .hero-dots i{width:11px;height:11px;min-width:11px}

  /* 首页 */
  .hero-wrap{gap:0}
  .hero{height:210px;border-radius:12px}
  .hero-dots{bottom:10px;gap:10px}
  .section-head{margin:20px 0 12px}
  .section-title{font-size:18px}
  .cat-grid{gap:8px}
  .cat-grid a{padding:14px 4px;border-radius:10px;font-size:13px}
  .cat-grid .gi{font-size:24px;margin-bottom:5px}

  /* 信息条目 */
  .info-item{padding:10px;gap:10px}
  .info-item .thumb{width:96px;height:72px}
  .info-item h3{font-size:14px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .info-row{padding:12px;gap:10px}
  .info-row .thumb{width:84px;height:64px}
  .info-row .main h3{font-size:14px;margin-bottom:3px}
  .info-row .right{width:88px}
  .info-row .price{font-size:16px}

  /* 商品 */
  .goods-grid{gap:10px}
  .goods-card{border-radius:12px}
  .goods-card .body{padding:10px 12px 12px;gap:5px}
  .goods-card h3{font-size:13.5px;min-height:38px}
  .goods-card .price{font-size:17px}
  .store-card{padding:14px;gap:12px}
  .store-card img{width:64px;height:64px}

  /* 列表筛选条 */
  .filter-bar{padding:12px;gap:10px;border-radius:12px}
  .filter-bar input,.filter-bar select{flex:1 1 130px;min-height:42px;padding:9px 12px}
  .filter-bar .btn{flex:0 0 auto}
  .subcat-box{margin:0 -12px}
  .subcat-box .subcat-title{border-radius:0;padding:12px 16px}
  .subcat-box ul{border-radius:0;-webkit-overflow-scrolling:touch;padding:0 8px}
  .subcat-box li a{min-height:44px;display:flex;align-items:center;padding:9px 14px}

  /* 详情页：图 → 标题/价格/购买 → 描述 重排 */
  .detail-wrap{display:flex;flex-direction:column;gap:14px}
  .detail-wrap>div{display:contents}
  .gallery{order:1;padding:12px;border-radius:12px}
  .detail-wrap>aside{order:2}
  .article{order:3;margin-top:0;padding:20px 16px;border-radius:12px}
  .detail-side .panel{padding:16px;border-radius:12px}
  .detail-title{font-size:18px;margin-bottom:8px}
  .detail-price{padding:14px 16px}
  .detail-price .p{font-size:27px}
  .detail-meta{grid-template-columns:72px 1fr;gap:7px 10px}
  .action-row .btn{min-height:48px}
  .gallery .thumbs img{width:60px;height:48px;min-width:60px}
  .related-grid{gap:10px}

  /* 会员中心：侧栏导航横向滚动 */
  .user-layout{gap:14px}
  .user-side .me{display:flex;align-items:center;gap:12px;text-align:left;padding:14px 16px}
  .user-side .me img,.user-side .me .avatar-fallback{width:44px;height:44px;line-height:44px;font-size:20px;margin:0}
  .user-side .me br{display:none}
  .user-side .me small{display:block}
  .user-side nav{display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:0 8px}
  .user-side nav a{border-left:0;border-bottom:3px solid transparent;white-space:nowrap;padding:12px 14px;min-height:46px;display:flex;align-items:center}
  .user-side nav a.on,.user-side nav a:hover{border-left-color:transparent;border-bottom-color:var(--primary)}

  /* 购物车：表格横滚，结算条全宽 + 安全区 */
  .cart-box{border-radius:12px}
  .cart-bar{bottom:0;border-radius:12px 12px 0 0;padding:12px calc(14px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(14px + env(safe-area-inset-left));gap:10px}
  .cart-sum{flex-wrap:wrap;row-gap:8px;font-size:13px}
  .cart-sum .total{font-size:20px}
  #btnCheckout{min-height:44px;padding:10px 26px}
  .cart-goods span{max-width:none}

  /* 结算/订单 */
  .pay-chk{min-height:54px;padding:12px 14px}
  .pay-btn{padding:14px 16px;min-height:56px}
  .order-tabs a{padding:10px 14px;min-height:42px;display:inline-flex;align-items:center}
  .oc-foot{flex-direction:column;align-items:stretch}
  .oc-actions{justify-content:flex-end}
  .step{font-size:11px}
  .cashier-amount{font-size:36px}
  .cashier-foot{flex-wrap:wrap;gap:10px 18px}
  .page-article{padding:22px 16px}
  .page-article h1{font-size:22px}

  /* 卡片/页签/弹窗 */
  .card{padding:16px;border-radius:12px}
  .auth-wrap{margin:16px auto;padding:26px 18px;border-radius:16px}
  .empty-box{padding:48px 16px}
  .flash{margin:10px 12px;padding:11px 14px}

  /* 页脚 */
  .site-footer{margin-top:28px}
  .footer-grid{padding:28px 12px;gap:22px}
  .footer-compliance{padding:14px 12px calc(14px + env(safe-area-inset-bottom))}
}

/* ---------- 小屏手机（≤480） ---------- */
@media(max-width:480px){
  .logo-text small{letter-spacing:2px}
  .header-publish{padding:0 12px}
  .header-publish{font-size:12px}
  .hero{height:180px}
  .goods-card .price{font-size:16px}
  .goods-card h3{-webkit-line-clamp:1}
  .detail-price .p{font-size:24px}
  .article .content{font-size:14.5px}
  .stat-row{gap:10px}
  .stat-box{padding:16px 8px}
  .stat-box b{font-size:23px}
  .kv-tbl td:first-child{width:84px}
  .info-row .thumb{width:72px;height:56px}
  .info-row .right{width:78px}
  .info-row .time{font-size:11px}
  .m-menu{width:86vw}
}

/* ---------- 触屏设备：取消悬停位移，改用 :active 即时反馈 ---------- */
@media(hover:none){
  .goods-card:hover,.store-card:hover,.info-item:hover,.cat-grid a:hover{transform:none;box-shadow:var(--shadow)}
  .goods-card:active,.store-card:active{transform:scale(.985)}
  .info-item:active,.info-row:active{background:#f4f7ff}
  .cat-grid a:active{background:#eef2ff}
  .btn:active{opacity:.82}
  .btn-primary:active{opacity:.9}
  .nav-links a:hover{background:transparent}
}

/* ---------- 尊重"减少动态效果"系统设置 ---------- */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}

/* ---------- 横屏矮屏：压缩 Hero，避免首屏全是图 ---------- */
@media(max-width:900px) and (orientation:landscape) and (max-height:500px){
  .hero{height:170px}
  .hero-side{display:none}
}
