/* ============================================================
   myshop 前台商城样式  front.css
   配套布局：tpl/front/_layout_top.php + _layout_bottom.php
   ============================================================ */
:root{
  --brand:#e4393c;            /* 主色：商城红 */
  --brand-dark:#c81623;
  --brand-light:#fdeaea;
  --ink:#222;                 /* 主文字 */
  --ink-2:#666;               /* 次文字 */
  --ink-3:#999;               /* 弱文字 */
  --line:#e8e8e8;             /* 分割线 */
  --bg:#f5f6f8;               /* 页面背景 */
  --card:#fff;
  --radius:8px;
  --shadow:0 1px 4px rgba(0,0,0,.06);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;}
body{font-family:"Microsoft YaHei","PingFang SC","Helvetica Neue",Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.6;}
a{color:var(--ink);text-decoration:none;}
a:hover{color:var(--brand);}
img{max-width:100%;border:0;vertical-align:middle;}
ul,ol{list-style:none;}
.container{max-width:1200px;margin:0 auto;padding:0 16px;}

/* ============ 顶栏 ============ */
.topbar{background:#fff;border-bottom:1px solid var(--line);font-size:12px;color:var(--ink-2);}
.topbar .container{display:flex;justify-content:space-between;align-items:center;height:34px;}
.topbar a{color:var(--ink-2);margin-left:14px;}
.topbar a:hover{color:var(--brand);}
.topbar .sep{color:#ddd;margin:0 4px;}

/* ============ 主头部：logo + 搜索 + 购物车 ============ */
.header{background:#fff;box-shadow:var(--shadow);}
.header .container{display:flex;align-items:center;gap:32px;padding:20px 16px;}
.logo{font-size:26px;font-weight:bold;color:var(--brand);letter-spacing:1px;white-space:nowrap;}
.logo .logo-sub{font-size:12px;color:var(--ink-3);font-weight:normal;letter-spacing:0;display:block;margin-top:-2px;}
.search-box{flex:1;display:flex;max-width:560px;}
.search-box input{flex:1;height:40px;border:2px solid var(--brand);border-right:0;border-radius:var(--radius) 0 0 var(--radius);padding:0 14px;outline:none;font-size:13px;}
.search-box button{width:76px;height:40px;background:var(--brand);color:#fff;border:0;border-radius:0 var(--radius) var(--radius) 0;cursor:pointer;font-size:14px;}
.search-box button:hover{background:var(--brand-dark);}
.hot-keywords{font-size:12px;color:var(--ink-3);margin-top:6px;max-width:560px;}
.hot-keywords a{margin-right:12px;color:var(--ink-3);}
.hot-keywords a:hover{color:var(--brand);}
.cart-entry{display:flex;align-items:center;gap:8px;padding:9px 22px;border:1px solid var(--line);border-radius:var(--radius);position:relative;white-space:nowrap;}
.cart-entry .cart-icon{font-size:18px;}
.cart-entry .cart-num{position:absolute;top:-8px;right:-8px;min-width:18px;height:18px;line-height:18px;text-align:center;background:var(--brand);color:#fff;border-radius:9px;font-size:11px;padding:0 4px;}
.cart-entry:hover{border-color:var(--brand);color:var(--brand);}

/* ============ 分类导航 ============ */
.cat-nav{background:var(--brand);}
.cat-nav .container{display:flex;align-items:center;}
.cat-nav a{color:#fff;padding:0 22px;line-height:42px;font-size:14px;display:inline-block;}
.cat-nav a:hover,.cat-nav a.active{background:var(--brand-dark);color:#fff;}
.cat-nav a:first-child{padding-left:0;}
.cat-nav a.active{padding-left:8px;padding-right:8px;margin:0 7px;}

/* ============ 面包屑 ============ */
.crumb{padding:14px 0;font-size:12px;color:var(--ink-3);}
.crumb a{color:var(--ink-3);}
.crumb a:hover{color:var(--brand);}
.crumb .arrow{margin:0 6px;color:#ccc;}

/* ============ 卡片与区块 ============ */
.panel{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:16px;}
.panel-title{font-size:17px;font-weight:bold;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:16px;display:flex;justify-content:space-between;align-items:center;}
.panel-title .more{font-size:12px;font-weight:normal;color:var(--ink-3);}
.section-head{display:flex;justify-content:space-between;align-items:baseline;margin:24px 0 14px;}
.section-head h2{font-size:19px;}
.section-head .sub{font-size:12px;color:var(--ink-3);}

/* ============ 首页横幅 ============ */
.hero{background:linear-gradient(120deg,#e4393c 0%,#ff7a45 100%);border-radius:var(--radius);color:#fff;padding:36px 40px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;}
.hero h2{font-size:26px;margin-bottom:8px;}
.hero p{opacity:.9;font-size:13px;}
.hero .hero-btn{display:inline-block;background:#fff;color:var(--brand);border-radius:20px;padding:9px 26px;font-size:14px;font-weight:bold;}
.hero .hero-btn:hover{opacity:.9;color:var(--brand-dark);}

/* ============ 商品卡片网格 ============ */
.goods-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;}
.goods-card{background:var(--card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s;display:block;position:relative;}
.goods-card:hover{transform:translateY(-3px);box-shadow:0 6px 18px rgba(0,0,0,.1);}
.goods-card .g-img{aspect-ratio:1/1;background:#fafafa;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.goods-card .g-img img{width:100%;height:100%;object-fit:cover;}
.goods-card .g-img .no-img{color:#d5d5d5;font-size:40px;line-height:1;}
.goods-card .g-body{padding:12px 14px 14px;}
.goods-card .g-name{font-size:14px;height:42px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:8px;}
.goods-card .g-price{color:var(--brand);font-size:18px;font-weight:bold;}
.goods-card .g-price .yen{font-size:12px;}
.goods-card .g-price .mkt{color:var(--ink-3);font-size:12px;font-weight:normal;text-decoration:line-through;margin-left:8px;}
.goods-card .g-meta{font-size:12px;color:var(--ink-3);margin-top:4px;display:flex;justify-content:space-between;}
.badge{display:inline-block;padding:2px 8px;border-radius:3px;font-size:12px;line-height:1.5;}
.badge.on{background:var(--brand-light);color:var(--brand);}
.badge.off{background:#f2f2f2;color:var(--ink-3);}
.badge.warn{background:#fff4e5;color:#e67700;}

/* ============ 空状态 ============ */
.empty-state{text-align:center;padding:56px 0;color:var(--ink-3);}
.empty-state .icon{font-size:44px;margin-bottom:10px;}
.empty-state p{font-size:14px;}

/* ============ 筛选工具条 ============ */
.filter-bar{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 18px;margin-bottom:16px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;}
.filter-bar .cat-select{height:34px;border:1px solid var(--line);border-radius:6px;padding:0 8px;font-size:13px;color:var(--ink-2);outline:none;}
.filter-bar input[type=text]{height:34px;border:1px solid var(--line);border-radius:6px;padding:0 10px;outline:none;width:220px;font-size:13px;}
.filter-bar input[type=text]:focus{border-color:var(--brand);}
.filter-bar .result-info{margin-left:auto;font-size:13px;color:var(--ink-3);}

/* ============ 分页 ============ */
.pagination{display:flex;justify-content:center;align-items:center;gap:8px;padding:24px 0 8px;}
.pagination a,.pagination span{min-width:34px;height:34px;line-height:34px;text-align:center;border:1px solid var(--line);border-radius:6px;padding:0 12px;background:#fff;font-size:13px;color:var(--ink-2);}
.pagination a:hover{border-color:var(--brand);color:var(--brand);}
.pagination .cur{background:var(--brand);border-color:var(--brand);color:#fff;}
.pagination .page-info{border:0;background:transparent;}

/* ============ 商品详情 ============ */
.detail-layout{display:flex;gap:28px;align-items:flex-start;flex-wrap:wrap;}
.detail-gallery{width:400px;flex-shrink:0;}
.gallery-main{width:400px;height:400px;background:#fafafa;border:1px solid var(--line);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.gallery-main img{max-width:100%;max-height:100%;object-fit:contain;}
.gallery-thumbs{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap;}
.gallery-thumbs img{width:64px;height:64px;object-fit:cover;border:2px solid transparent;border-radius:6px;cursor:pointer;}
.gallery-thumbs img:hover,.gallery-thumbs img.cur{border-color:var(--brand);}
.detail-info{flex:1;min-width:320px;}
.detail-info .d-name{font-size:20px;line-height:1.5;margin-bottom:12px;}
.d-price-bar{background:var(--brand-light);border-radius:var(--radius);padding:14px 18px;margin-bottom:16px;display:flex;align-items:baseline;gap:12px;}
.d-price-bar .label{font-size:13px;color:var(--ink-2);}
.d-price-bar .price{color:var(--brand);font-size:30px;font-weight:bold;}
.d-price-bar .price .yen{font-size:16px;}
.d-price-bar .market{color:var(--ink-3);text-decoration:line-through;font-size:14px;}
.d-props{font-size:13px;color:var(--ink-2);margin-bottom:16px;}
.d-props .item{margin-bottom:8px;}
.d-props .item b{font-weight:normal;color:var(--ink-3);display:inline-block;width:52px;}
.spec-group{margin-bottom:14px;}
.spec-group .s-label{font-size:13px;color:var(--ink-2);margin-bottom:8px;}
.spec-group .s-label b{font-weight:normal;color:var(--ink);margin-right:6px;}
.spec-opts{display:flex;gap:10px;flex-wrap:wrap;}
.spec-opts .opt{border:1px solid var(--line);border-radius:6px;padding:6px 16px;cursor:pointer;background:#fff;font-size:13px;user-select:none;}
.spec-opts .opt:hover{border-color:var(--brand);color:var(--brand);}
.spec-opts .opt.cur{border-color:var(--brand);color:var(--brand);background:var(--brand-light);}
.buy-bar{display:flex;align-items:center;gap:16px;margin:20px 0;padding-top:18px;border-top:1px dashed var(--line);}
.qty-box{display:flex;align-items:center;}
.qty-box button{width:34px;height:36px;border:1px solid var(--line);background:#f8f8f8;cursor:pointer;font-size:16px;color:var(--ink-2);}
.qty-box button:hover{border-color:var(--brand);color:var(--brand);}
.qty-box input{width:52px;height:36px;border:1px solid var(--line);border-left:0;border-right:0;text-align:center;outline:none;font-size:14px;}
.btn{display:inline-block;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:var(--radius);padding:9px 24px;font-size:14px;cursor:pointer;transition:all .15s;text-align:center;}
.btn:hover{border-color:var(--brand);color:var(--brand);}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;}
.btn.primary:hover{background:var(--brand-dark);color:#fff;}
.btn.lg{padding:12px 40px;font-size:15px;}
.btn.sm{padding:4px 12px;font-size:12px;border-radius:5px;}
.btn.ghost-red{border-color:var(--brand);color:var(--brand);}
.btn.ghost-red:hover{background:var(--brand-light);}
.stock-tip{font-size:12px;color:var(--ink-3);}
.stock-tip .warn{color:#e67700;}
.desc-content{line-height:1.8;font-size:14px;word-break:break-word;color:#333;}
.desc-content img{max-width:100%;height:auto;display:block;margin:8px 0;}
.desc-content p{margin:6px 0;}

/* ============ 表格 ============ */
.table{width:100%;border-collapse:collapse;background:#fff;}
.table th{background:#fafafa;color:var(--ink-2);font-weight:normal;font-size:13px;}
.table th,.table td{border-bottom:1px solid var(--line);padding:12px 14px;text-align:left;font-size:13px;}
.table tr:hover td{background:#fdf9f9;}
.table .num{color:var(--brand);font-weight:bold;}
.table .muted{color:var(--ink-3);}
.table .center{text-align:center;}

/* ============ 购物车 ============ */
.cart-goods{display:flex;align-items:center;gap:12px;}
.cart-goods img{width:64px;height:64px;object-fit:cover;border-radius:6px;border:1px solid var(--line);}
.cart-goods .no-img{width:64px;height:64px;border-radius:6px;border:1px solid var(--line);background:#fafafa;display:flex;align-items:center;justify-content:center;color:#d5d5d5;font-size:22px;}
.cart-goods .cg-name{display:block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cart-goods .cg-spec{font-size:12px;color:var(--ink-3);}
.cart-bar{display:flex;justify-content:space-between;align-items:center;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 20px;}
.cart-bar .total{font-size:14px;color:var(--ink-2);}
.cart-bar .total .sum{color:var(--brand);font-size:24px;font-weight:bold;}
.inline-form{display:inline-flex;gap:6px;align-items:center;margin:0;}

/* ============ 会员中心 ============ */
.member-layout{display:flex;gap:16px;align-items:flex-start;}
.member-side{width:220px;flex-shrink:0;}
.member-side .avatar{width:64px;height:64px;border-radius:50%;background:var(--brand-light);color:var(--brand);display:flex;align-items:center;justify-content:center;font-size:26px;margin:0 auto 10px;}
.member-side .uname{text-align:center;font-size:15px;font-weight:bold;margin-bottom:16px;}
.member-side .menu a{display:block;padding:10px 16px;border-radius:6px;color:var(--ink-2);font-size:13px;}
.member-side .menu a:hover{background:#f5f6f8;color:var(--brand);}
.member-side .menu a.active{background:var(--brand-light);color:var(--brand);font-weight:bold;}
.member-main{flex:1;min-width:0;}
.profile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;}
.profile-grid .p-item{background:#fafafa;border-radius:6px;padding:14px 16px;}
.profile-grid .p-item .p-label{font-size:12px;color:var(--ink-3);margin-bottom:4px;}
.profile-grid .p-item .p-value{font-size:15px;font-weight:bold;}

/* ============ 地址卡片 ============ */
.addr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-bottom:20px;}
.addr-card{border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;position:relative;}
.addr-card.default{border-color:var(--brand);background:#fffafa;}
.addr-card .a-name{font-weight:bold;margin-bottom:6px;}
.addr-card .a-phone{color:var(--ink-2);font-size:13px;margin-bottom:6px;}
.addr-card .a-detail{color:var(--ink-2);font-size:13px;}
.addr-card .a-tag{position:absolute;top:12px;right:14px;font-size:12px;color:var(--brand);background:var(--brand-light);border-radius:3px;padding:1px 8px;}
.form-row{margin-bottom:14px;}
.form-row label{display:block;font-size:13px;color:var(--ink-2);margin-bottom:6px;}
.form-row label .req{color:var(--brand);margin-left:2px;}
.form-row input[type=text],.form-row input[type=password],.form-row select{width:100%;height:38px;border:1px solid var(--line);border-radius:6px;padding:0 12px;outline:none;font-size:14px;}
.form-row input:focus,.form-row select:focus{border-color:var(--brand);}
.form-row .hint{font-size:12px;color:var(--ink-3);margin-top:4px;}

/* ============ 登录注册 ============ */
.auth-wrap{max-width:400px;margin:40px auto;}
.auth-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:32px 36px;}
.auth-card h2{font-size:20px;text-align:center;margin-bottom:22px;}
.auth-card .switch{text-align:center;font-size:13px;color:var(--ink-3);margin-top:18px;}
.auth-card .switch a{color:var(--brand);}
.auth-card .btn{width:100%;margin-top:6px;}
.form-msg{font-size:13px;color:var(--brand);min-height:20px;margin-bottom:8px;text-align:center;}

/* ============ 结算页 ============ */
.addr-pick label.addr-item{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin-bottom:10px;cursor:pointer;}
.addr-pick label.addr-item:hover{border-color:var(--brand);}
.addr-pick input[type=radio]{margin-top:4px;}
.addr-pick .addr-item.cur{border-color:var(--brand);background:#fffafa;}
.checkout-total{display:flex;justify-content:flex-end;align-items:center;gap:20px;margin-top:16px;font-size:14px;color:var(--ink-2);}
.checkout-total .sum{color:var(--brand);font-size:26px;font-weight:bold;}

/* ============ 订单状态徽章 ============ */
.order-status{font-size:12px;padding:2px 10px;border-radius:10px;}
.order-status.wait{background:#fff4e5;color:#e67700;}
.order-status.paid{background:#e5f6ec;color:#1a7f37;}
.order-status.cancel{background:#f2f2f2;color:var(--ink-3);}

/* ============ 下单成功提示 ============ */
.order-success{background:#e5f6ec;border:1px solid #c0e5cd;color:#1a7f37;padding:12px 18px;border-radius:8px;margin-bottom:16px;font-size:14px;}

/* ============ toast ============ */
#toast{position:fixed;top:80px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.78);color:#fff;padding:10px 24px;border-radius:20px;font-size:14px;display:none;z-index:999;}

/* ============ 页脚 ============ */
.footer{background:#fff;border-top:1px solid var(--line);margin-top:36px;padding:28px 0;color:var(--ink-3);font-size:12px;text-align:center;}
.footer .f-links{margin-bottom:10px;}
.footer .f-links a{color:var(--ink-3);margin:0 12px;}
.footer .f-links a:hover{color:var(--brand);}

/* ============ 响应式 ============ */
@media (max-width:860px){
  .header .container{flex-wrap:wrap;gap:14px;}
  .detail-layout{flex-direction:column;}
  .detail-gallery,.gallery-main{width:100%;}
  .member-layout{flex-direction:column;}
  .member-side{width:100%;}
  .hero{flex-direction:column;text-align:center;gap:16px;padding:26px;}
  .hide-sm{display:none;}
}
