
    :root{
      --jj-bg: #f3f4f6;
      --jj-soft: #f8fafc;
      --jj-soft-2:#f1f5f9;
      --jj-line:#e2e8f0;
      --jj-text:#0f172a;
      --jj-muted:#64748b;
      --jj-muted-2:#94a3b8;
      --jj-dark:#111827;
      --jj-primary:#111827;
      --jj-primary-2:#0b1220;
      --jj-danger:#b91c1c;
      --jj-radius: 14px;
      --jj-radius-sm: 12px;
      --jj-shadow: 0 14px 40px rgba(2,6,23,.08);
      --jj-btn-h: 40px;
      --jj-font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto,
                 "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Arial, "Noto Sans CJK SC", "Noto Sans", sans-serif;
    }

    html,body{background:var(--jj-bg); color:var(--jj-text); font-family: var(--jj-font); font-size:15px; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;}
    body{line-height:1.6;}
    .container{
      max-width: 100% !important;
      padding-left: 32px;
      padding-right: 32px;
    }
    @media (max-width: 991.98px){
      .container{
        padding-left: 18px;
        padding-right: 18px;
      }
    }
    a{color:inherit; text-decoration:none;}
    .jj-muted{color:var(--jj-muted)!important;}
    .jj-muted-2{color:var(--jj-muted-2)!important;}

    .jj-topbar{
      position: sticky; top:0; z-index:1030;
      background:#fff;
      border-bottom: 1px solid #e5e7eb;
      transition: box-shadow .25s ease, border-color .25s ease;
    }
    .jj-topbar--scrolled{
      box-shadow: 0 8px 20px rgba(2,6,23,.06);
      border-bottom-color: #e2e8f0;
    }
    .jj-brand{display:flex; align-items:center; gap:9px; font-weight: 800; letter-spacing:.2px; color:#111827;}
    .jj-logo{
      width:40px;
      height:40px;
      border-radius:0;
      background: #111827;
      -webkit-mask: linear-gradient(135deg, transparent 0 42%, #000 42% 58%, transparent 58%) center/100% 100% no-repeat;
      mask: linear-gradient(135deg, transparent 0 42%, #000 42% 58%, transparent 58%) center/100% 100% no-repeat;
    }
    .jj-brand-text{font-size:16px;}
    .jj-nav-main{
      flex: 1 1 auto;
      display: flex;
      align-items: center;
      justify-content: center;
      min-width: 0;
    }
    .jj-nav-menu{
      flex: 0 0 auto;
      justify-content: center;
    }
    .jj-nav-actions{
      flex: 0 0 auto;
      margin-left: auto;
    }
    .navbar .nav-link{
      font-size: 14px;
      font-weight: 500;
      border-radius: 8px;
      padding: 7px 12px;
      color:#4b5563!important;
      transition: color .2s ease, background-color .2s ease;
    }
    .navbar .nav-link:hover{
      color:#111827!important;
      background:#f3f4f6;
    }

    .btn{border-radius: 12px;}
    .jj-btn{height: 34px; padding: 0 14px; font-size:13px; font-weight: 600; border-radius: 999px; transition: transform .16s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease;}
    .jj-btn:hover{transform: translateY(-1px);}
    .jj-btn:active{transform: translateY(0);}
    .jj-btn-primary{background: #1188c9; border-color: #1188c9; color:#fff;}
    .jj-btn-primary:hover{background: #0e79b2; border-color: #0e79b2; color:#fff; box-shadow:none;}
    .jj-btn-outline{border-color: #e5e7eb; color: #111827; background:#fff;}
    .jj-btn-ghost{border:1px solid #e5e7eb; background: #fff; color: #6b7280;}

    .jj-search .form-control{
      height: 34px;
      border-radius: 999px;
      border-color: #e5e7eb;
      padding-left: 38px;
      font-size: 13px;
      width: 140px;
    }
    .jj-search .jj-search-icon{
      position:absolute; left:12px; top:50%; transform: translateY(-50%);
      color: var(--jj-muted-2);
      font-size: 14px;
    }

    .jj-promo{
      background: linear-gradient(90deg,#030712,#0b1022 45%,#030712);
      border-bottom: 1px solid rgba(148,163,184,.14);
    }
    .jj-promo-card{
      border:0;
      border-radius: 0;
      background:transparent;
      box-shadow:none;
      padding: 4px 0;
      color:#dbeafe;
      font-size:12px;
      transition: none;
      min-height: 30px;
    }
    .jj-promo-card:hover{transform:none; box-shadow:none;}
    .jj-promo-pill{
      margin: 0 auto;
      background: rgba(17,24,39,.75);
      border:1px solid rgba(148,163,184,.35);
      border-radius:999px;
      padding: 4px 14px;
      display:flex;
      align-items:center;
      gap:10px;
      color:#dbeafe;
      max-width: fit-content;
    }
    .jj-promo-title{font-weight: 700; font-size:11px; color:#c4b5fd; margin-right:0;}
    .jj-promo-desc{color:#dbeafe; font-size: 11px; line-height: 1.3; white-space:nowrap;}
    .jj-promo .jj-btn-primary{
      height: 24px;
      padding: 0 12px;
      font-size: 11px;
      border-radius: 999px;
      background: #111827;
      border-color: rgba(148,163,184,.4);
    }
    .jj-nav-icon{
      width:34px;
      min-width:34px;
      height:34px;
      border-radius:999px;
      border:1px solid #e5e7eb;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      color:#6b7280;
      background:#fff;
      font-size:13px;
    }
    .jj-lang{min-width:98px; justify-content:space-between;}

    .jj-hero-wrap{
      background:#fff;
      border:1px solid #e5e7eb;
      border-radius: 22px;
      padding: 26px 26px 20px;
    }
    .jj-hero-mini{
      font-size:11px;
      color:#9ca3af;
      margin-bottom:8px;
    }
    .jj-hero-title{
      font-weight: 600;
      letter-spacing: .1px;
      line-height: 1.3;
      font-size: clamp(30px, 3.1vw, 40px);
      color:#111827;
      margin-bottom: 4px;
    }
    .jj-hero-title .em{
      display:block;
      color:#1d64a8;
      font-weight:700;
    }
    .jj-hero-sub{
      color: #6b7280;
      font-size: 12px;
      line-height: 1.8;
      margin-top: 6px;
      max-width: 60ch;
    }
    .jj-hero-banner{
      border-radius: 14px;
      overflow:hidden;
      border:1px solid #e5e7eb;
      background:#fafafa;
    }
    .jj-hero-banner .jj-thumb{aspect-ratio: 16/10;}
    .jj-tabs{
      margin-top: 14px;
      background:#f3f4f6;
      border-radius: 999px;
      padding: 5px 6px;
      display:flex;
      gap:6px;
      justify-content:space-between;
      overflow:auto;
    }
    .jj-tab{
      flex:1;
      min-width:86px;
      border:0;
      border-radius:999px;
      padding:6px 10px;
      background:transparent;
      color:#6b7280;
      font-size:11px;
      white-space:nowrap;
    }
    .jj-tab.active{
      background:#ffffff;
      color:#111827;
      font-weight:600;
      box-shadow: 0 4px 10px rgba(15,23,42,.06);
    }

    .jj-stat{
      border:1px solid #e5e7eb;
      border-radius: 14px;
      background:#f9fafb;
      padding: 10px 14px;
    }
    .jj-stat .num{font-weight: 700; font-size: 20px; letter-spacing:.2px;}
    .jj-stat .lbl{color: var(--jj-muted); font-size: 13px; margin-top: 2px;}

    .jj-section-title{font-weight: 900; letter-spacing:.2px; font-size: clamp(20px, 2.1vw, 24px);}
    .jj-section-sub{color: var(--jj-muted); font-size: 14px; margin-top: 6px;}

    .jj-card{border:1px solid var(--jj-line); border-radius: var(--jj-radius); overflow:hidden; background:#fff; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;}
    .jj-card:hover{transform: translateY(-3px); box-shadow: var(--jj-shadow); border-color:#d8e2ec;}
    .jj-thumb{
      aspect-ratio: 4/3;
      background: linear-gradient(135deg, var(--jj-line), var(--jj-soft));
      display:flex; align-items:center; justify-content:center;
      color: var(--jj-muted-2);
      font-size: 12px;
    }
    .jj-card .title{font-weight: 800; font-size: 14px; line-height: 1.35; min-height: 38px;}
    .jj-price{font-weight: 900; font-size: 14px; color: var(--jj-text);}
    .jj-tag{
      font-size: 12px;
      color: var(--jj-muted);
      border:1px solid var(--jj-line);
      background: var(--jj-soft);
      padding: 4px 10px;
      border-radius: 999px;
      display:inline-flex;
      align-items:center;
      gap:6px;
    }

    .jj-event{
      border:1px solid #e5e7eb;
      border-radius: 16px;
      background: #eceff3;
      padding: 14px;
    }
    .jj-event-head{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:12px;
      margin-bottom: 10px;
    }
    .jj-event-title{font-size: clamp(26px, 2.6vw, 40px); font-weight: 700; line-height: 1.2; letter-spacing:.2px;}
    .jj-event-copy{font-size: 13px; line-height: 1.7; color:#6b7280; margin-top:6px;}
    .jj-countdown{
      background:#fff;
      border:1px solid #d1d5db;
      border-radius: 10px;
      padding: 8px 10px;
      display:flex;
      gap:10px;
      align-items:flex-end;
    }
    .jj-countdown .box{
      background:transparent;
      border:0;
      text-align:center;
      min-width:auto;
      padding:0;
    }
    .jj-countdown .val{font-weight: 700; font-size: 16px; line-height: 1;}
    .jj-countdown .unit{margin-top: 3px; color: #9ca3af; font-size: 10px; line-height:1;}
    .jj-event-grid{
      display:grid;
      grid-template-columns: repeat(2,minmax(0,1fr));
      gap:10px;
    }
    .jj-event-item{
      border: 1px solid #e5e7eb;
      border-radius: 12px;
      background:#fff;
      padding: 10px 12px;
      display:flex;
      align-items:center;
      gap:12px;
    }
    .jj-event-thumb{
      width:58px;
      min-width:58px;
      aspect-ratio:1/1;
      border-radius:9px;
      border:1px solid #e5e7eb;
      background:linear-gradient(135deg,#e5e7eb,#f8fafc);
      display:flex;
      align-items:center;
      justify-content:center;
      color:#94a3b8;
      font-size:11px;
    }
    .jj-event-meta{
      width:100%;
      min-width:0;
    }
    .jj-event-line{
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:10px;
      margin-bottom:2px;
    }
    .jj-mini-tag{
      font-size:10px;
      color:#6b7280;
      border:1px solid #e5e7eb;
      background:#f9fafb;
      border-radius:999px;
      padding:1px 6px;
    }
    .jj-mini-save{
      font-size:10px;
      color:#6b7280;
      border:1px solid #e5e7eb;
      border-radius:999px;
      padding:1px 6px;
      background:#fff;
    }
    .jj-event-name{
      font-size:13px;
      line-height:1.45;
      color:#111827;
      margin-bottom:2px;
    }
    .jj-event-desc{
      font-size:11px;
      color:#6b7280;
      margin-bottom:4px;
    }
    .jj-event-price{
      font-size:27px;
      font-weight:700;
      line-height:1;
      color:#111827;
      letter-spacing:.2px;
      display:flex;
      align-items:baseline;
      gap:6px;
    }
    .jj-event-price small{
      font-size:12px;
      color:#9ca3af;
      text-decoration: line-through;
    }
    .jj-event-action{
      margin-left:auto;
      border:0;
      background:#e0f2fe;
      color:#0284c7;
      border-radius:999px;
      padding:4px 10px;
      font-size:11px;
      font-weight:600;
      white-space:nowrap;
    }
    @media (max-width: 991.98px){
      .jj-event-grid{grid-template-columns:1fr;}
      .jj-event-head{flex-direction:column;}
    }

    .jj-case{border:1px solid var(--jj-line); border-radius: var(--jj-radius); background:#fff; padding: 16px;}
    .jj-case .name{font-weight:900;}
    .jj-case .meta{color:var(--jj-muted); font-size: 13px; margin-top: 6px;}
    .jj-faq-case-wrap{
      background:#f3f4f6;
      border:1px solid #e5e7eb;
      border-radius: 14px;
      padding: 10px;
    }
    .jj-pane{
      background:#f9fafb;
      border:1px solid #e5e7eb;
      border-radius: 12px;
      padding: 10px;
      height: 100%;
    }
    .jj-pane-title{
      font-size: 16px;
      font-weight: 700;
      margin-bottom: 8px;
      color: #111827;
    }
    .jj-faq-item{
      background:#fff;
      border:1px solid #e5e7eb;
      border-radius: 10px;
      padding: 10px 12px;
    }
    .jj-faq-q{
      font-size: 13px;
      color:#1f2937;
      margin-bottom:4px;
      display:flex;
      align-items:center;
      gap:7px;
    }
    .jj-faq-dot{
      width:8px;
      height:8px;
      border-radius:999px;
      background:#10b981;
      display:inline-block;
      flex:0 0 auto;
    }
    .jj-faq-a{
      font-size: 12px;
      color:#6b7280;
      line-height: 1.65;
      margin-bottom: 4px;
    }
    .jj-faq-link{
      font-size:12px;
      color:#9ca3af;
    }
    .jj-case-list{
      display:flex;
      flex-direction:column;
      gap:8px;
    }
    .jj-case-row{
      display:flex;
      gap:10px;
      align-items:flex-start;
      background:#fff;
      border:1px solid #e5e7eb;
      border-radius:10px;
      padding:10px;
    }
    .jj-case-thumb{
      width:54px;
      min-width:54px;
      aspect-ratio:1/1;
      border-radius:8px;
      border:1px solid #e5e7eb;
      background:linear-gradient(135deg,#e5e7eb,#f9fafb);
      display:flex;
      align-items:center;
      justify-content:center;
      color:#9ca3af;
      font-size:11px;
    }
    .jj-case-title{
      font-size:13px;
      font-weight:700;
      color:#111827;
      margin-bottom:2px;
    }
    .jj-case-desc{
      font-size:12px;
      color:#6b7280;
      line-height:1.6;
      margin-bottom:4px;
    }
    .jj-case-meta{
      font-size:12px;
      color:#9ca3af;
    }
    .jj-case-meta .price{
      color:#0ea5e9;
      font-weight:700;
    }
    .jj-reco-wrap{
      background:#f3f4f6;
      border:1px solid #e5e7eb;
      border-radius: 14px;
      padding: 12px;
    }
    .jj-reco-left{
      background:#f9fafb;
      border:1px solid #e5e7eb;
      border-radius:12px;
      padding:16px;
      min-height: 180px;
    }
    .jj-reco-title{
      font-size:15px;
      font-weight:700;
      color:#111827;
    }
    .jj-reco-sub{
      color:#6b7280;
      font-size:12px;
      line-height:1.75;
      margin-top:8px;
      max-width: 56ch;
    }
    .jj-reco-empty{
      margin-top: 14px;
      color:#9ca3af;
      font-size:12px;
    }
    .jj-reco-card{
      background:#fff;
      border:1px solid #e5e7eb;
      border-radius:12px;
      padding:10px;
      display:flex;
      gap:10px;
      align-items:flex-start;
    }
    .jj-reco-thumb{
      width:74px;
      min-width:74px;
      aspect-ratio:1/1;
      border:1px solid #e5e7eb;
      border-radius:10px;
      background:linear-gradient(135deg,#e5e7eb,#f8fafc);
      display:flex;
      align-items:center;
      justify-content:center;
      color:#94a3b8;
      font-size:11px;
    }
    .jj-reco-name{
      font-size:13px;
      font-weight:700;
      line-height:1.45;
      color:#111827;
      margin-bottom:4px;
    }
    .jj-reco-desc{
      font-size:12px;
      color:#6b7280;
      line-height:1.6;
      margin-bottom:6px;
    }
    .jj-reco-tags{
      display:flex;
      gap:6px;
      flex-wrap:wrap;
      margin-bottom:6px;
    }
    .jj-reco-tag{
      font-size:10px;
      color:#6b7280;
      border:1px solid #e5e7eb;
      border-radius:999px;
      padding:1px 6px;
      background:#f9fafb;
    }
    .jj-reco-price{
      font-size:20px;
      font-weight:700;
      color:#111827;
      line-height:1;
    }

    .jj-member-wrap{
      background:#f3f4f6;
      border:1px solid #e5e7eb;
      border-radius:14px;
      padding:12px;
    }
    .jj-member-left{
      padding:6px 4px;
    }
    .jj-member-mini{
      font-size:11px;
      color:#9ca3af;
      margin-bottom:8px;
    }
    .jj-member-title{
      font-size:45px;
      line-height:1.15;
      font-weight:700;
      letter-spacing:.2px;
      color:#111827;
      margin-bottom:8px;
    }
    .jj-member-desc{
      font-size:13px;
      color:#6b7280;
      line-height:1.7;
      max-width: 62ch;
    }
    .jj-member-card{
      background:#e5e7eb;
      border:1px solid #d1d5db;
      border-radius:12px;
      padding:12px 12px 10px;
      max-width: 300px;
      margin-left:auto;
    }
    .jj-member-price{
      font-size:15px;
      font-weight:700;
      color:#111827;
      margin-bottom:8px;
    }
    .jj-member-list{
      list-style:none;
      padding:0;
      margin:0 0 8px 0;
      display:flex;
      flex-direction:column;
      gap:4px;
      color:#4b5563;
      font-size:12px;
      line-height:1.5;
    }
    .jj-member-list li::before{
      content:"✓ ";
      color:#475569;
    }
    .jj-member-btn{
      width:100%;
      border:0;
      border-radius:999px;
      height:30px;
      background:linear-gradient(90deg,#0ea5e9,#3b82f6 52%,#64748b);
      color:#fff;
      font-size:12px;
      font-weight:700;
    }
    @media (max-width: 991.98px){
      .jj-member-title{font-size:30px;}
      .jj-member-card{max-width:100%;}
    }

    .jj-footer{
      background: transparent;
      padding-bottom: 12px;
    }
    .jj-footer-card{
      background:#e5e7eb;
      border:1px solid #d1d5db;
      border-radius:14px;
      overflow:hidden;
    }
    .jj-footer-main{
      padding:18px 18px 16px;
    }
    .jj-footer-brand{
      display:flex;
      align-items:center;
      gap:8px;
      font-size:40px;
      font-weight:800;
      color:#111827;
      line-height:1;
      margin-bottom:10px;
    }
    .jj-footer-brand-text{
      font-size:35px;
      font-weight:800;
      letter-spacing:.2px;
    }
    .jj-footer-contact{
      color:#4b5563;
      font-size:14px;
      line-height:1.95;
    }
    .jj-footer-col-title{
      font-size:16px;
      font-weight:700;
      color:#111827;
      margin-bottom:8px;
    }
    .jj-footer-links{
      display:flex;
      flex-direction:column;
      gap:6px;
    }
    .jj-footer-links a{
      color:#4b5563;
      font-size:14px;
      line-height:1.45;
    }
    .jj-footer-links a:hover{color:#111827;}
    .jj-footer-bottom{
      border-top:1px solid #d1d5db;
      padding:8px 18px 10px;
      color:#6b7280;
      font-size:11px;
      line-height:1.7;
    }

    .jj-cart-btn{
      position: fixed;
      right: 18px;
      bottom: 18px;
      z-index: 1080;
      box-shadow: var(--jj-shadow);
    }
    .jj-cart-badge{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-width:22px;
      height:22px;
      border-radius:999px;
      background:#0ea5e9;
      color:#fff;
      font-size:12px;
      font-weight:700;
      margin-left:4px;
      padding:0 6px;
    }
    .jj-cart-panel{
      width:min(420px,100vw);
      border-left:1px solid #e5e7eb;
      background:#f3f4f6;
      position:relative;
      padding:0;
    }
    .jj-cart-panel .offcanvas-header{
      background:#fff;
      padding:14px 16px;
    }
    .jj-cart-toolbar{
      padding:14px 16px 8px;
      background:#fff;
      border-bottom:1px solid #e5e7eb;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
    }
    .jj-cart-toolbar-left{
      display:flex;
      flex-direction:column;
      gap:6px;
    }
    .jj-cart-title{
      display:flex;
      align-items:center;
      gap:8px;
      font-size:34px;
      font-weight:700;
      line-height:1;
      color:#111827;
    }
    .jj-cart-toolbar{
      display:flex;
      align-items:center;
      justify-content:space-between;
      padding:10px 4px 8px;
      color:#6b7280;
      font-size:14px;
    }
    .jj-check{
      width:18px;
      height:18px;
      margin-right:6px;
      vertical-align:-3px;
      accent-color:#0ea5e9;
    }
    .jj-cart-list{
      display:flex;
      flex-direction:column;
      gap:10px;
      max-height:calc(100vh - 250px);
      overflow:auto;
      padding-bottom:10px;
    }
    .jj-cart-item{
      display:flex;
      gap:10px;
      align-items:flex-start;
      background:#e5e7eb;
      border:1px solid #d1d5db;
      border-radius:12px;
      padding:10px;
    }
    .jj-cart-item-image{
      width:78px;
      min-width:78px;
      height:78px;
      border:1px solid #d1d5db;
      border-radius:10px;
      background:linear-gradient(135deg,#e5e7eb,#f8fafc);
      display:flex;
      align-items:center;
      justify-content:center;
      color:#9ca3af;
      font-size:11px;
    }
    .jj-cart-item-title{
      font-size:13px;
      line-height:1.4;
      font-weight:600;
      color:#111827;
      display:-webkit-box;
      -webkit-line-clamp:2;
      -webkit-box-orient:vertical;
      overflow:hidden;
      margin-bottom:4px;
    }
    .jj-cart-item-spec{font-size:12px;color:#6b7280;margin-bottom:4px}
    .jj-cart-item-price{font-size:26px;font-weight:700;line-height:1;color:#0ea5e9}
    .jj-cart-item-price small{font-size:13px}
    .jj-cart-op{
      margin-left:auto;
      display:flex;
      flex-direction:column;
      align-items:flex-end;
      gap:8px;
    }
    .jj-delete-btn{
      border:0;
      background:transparent;
      color:#6b7280;
      font-size:16px;
      line-height:1;
      cursor:pointer;
    }
    .jj-qty{
      display:inline-flex;
      align-items:center;
      border:1px solid #cbd5e1;
      border-radius:8px;
      overflow:hidden;
      background:#f8fafc;
    }
    .jj-qty button{
      width:30px;
      height:30px;
      border:0;
      background:transparent;
      color:#111827;
      font-size:18px;
      line-height:1;
    }
    .jj-qty strong{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width:34px;
      height:30px;
      font-size:14px;
      color:#111827;
      border-left:1px solid #d1d5db;
      border-right:1px solid #d1d5db;
    }
    .jj-cart-footer{
      margin-top:auto;
      background:#fff;
      border-top:1px solid #d1d5db;
      padding:12px 14px 16px;
      position:relative;
    }
    .jj-cart-total{
      display:flex;
      align-items:center;
      justify-content:space-between;
      margin-bottom:10px;
      color:#6b7280;
    }
    .jj-cart-total strong{
      color:#0ea5e9;
      font-size:38px;
      line-height:1;
      font-weight:700;
    }
    .jj-cart-actions{
      display:grid;
      grid-template-columns:1fr 1.7fr;
      gap:10px;
    }
    .jj-cart-clear{
      height:46px;
      border:1px solid #d1d5db;
      border-radius:10px;
      background:#fff;
      color:#374151;
      font-size:14px;
      font-weight:600;
    }
    .jj-cart-checkout{
      height:46px;
      border:0;
      border-radius:10px;
      background:linear-gradient(90deg,#7dd3fc,#60a5fa);
      color:#fff;
      font-size:14px;
      font-weight:700;
    }
    .jj-cart-service{
      position:absolute;
      right:18px;
      bottom:50px;
      width:56px;
      height:56px;
      border-radius:999px;
      border:0;
      background:#0ea5e9;
      color:#fff;
      font-size:24px;
      box-shadow:0 10px 24px rgba(14,165,233,.35);
    }

    /* Mobile nav dropdown (collapse) */
    .jj-nav-close{
      display:none;
      position:absolute;
      right:12px;
      top:10px;
      width:32px;
      height:32px;
      border-radius:999px;
      border:1px solid #e5e7eb;
      background:#fff;
      color:#6b7280;
      font-weight:700;
      line-height:1;
      padding:0;
    }
    @media (max-width: 991.98px){
      #navMain.jj-nav-main{
        margin:0 -14px;
        padding:20px 14px 16px;
        border-top:1px solid #e5e7eb;
        background:#fff;
        box-shadow: 0 16px 40px rgba(2,6,23,.08);
        border-bottom-left-radius:16px;
        border-bottom-right-radius:16px;
        position:relative;
      }
      .jj-nav-close{display:inline-flex;align-items:center;justify-content:center;}
      .jj-nav-menu{
        flex-direction:column;
        align-items:flex-start !important;
        margin:8px 0 0;
        gap:6px;
      }
      .jj-nav-actions{
        width:100%;
        flex-direction:column;
        align-items:stretch !important;
        gap:10px;
        margin-top:14px;
      }
      .jj-search{width:100%;}
      .jj-search input{width:100%; height:38px; font-size:13px;}
      .jj-search .jj-search-icon{left:14px;}
      .jj-lang{width:100%;}
      .jj-nav-icon{display:none;}
      .jj-nav-menu .nav-link{width:100%; padding:10px 12px;}
    }

    .carousel-control-prev-icon,
    .carousel-control-next-icon{
      width: 2.1rem;
      height: 2.1rem;
      border-radius: 999px;
      background-color: rgba(15,23,42,.72);
      background-size: 55% 55%;
    }
    .jj-products-carousel{
      border:1px solid var(--jj-line);
      border-radius: var(--jj-radius);
      padding: 12px;
      background: #fff;
    }
    .jj-products-carousel .carousel-control-prev,
    .jj-products-carousel .carousel-control-next{
      width: 44px;
    }
    .jj-products-carousel .carousel-control-prev-icon,
    .jj-products-carousel .carousel-control-next-icon{
      background-color: rgba(15,23,42,.65);
      width: 1.85rem;
      height: 1.85rem;
    }

    .jj-reveal{
      opacity: 0;
      transform: translateY(18px);
      transition: opacity .55s ease, transform .55s ease;
      will-change: transform, opacity;
    }
    .jj-reveal.is-visible{
      opacity: 1;
      transform: translateY(0);
    }

    @media (prefers-reduced-motion: reduce){
      *{animation:none!important; transition:none!important; scroll-behavior:auto!important;}
      .jj-reveal{opacity:1; transform:none;}
    }
    
    
    .panel{
      background:var(--panel);
      border:1px solid var(--line);
      border-radius:14px;
      padding:14px;
    }
    .list-shell{
      margin-top: 16px;
      background:#fff;
      border:1px solid var(--line);
      border-radius: 14px;
      padding:18px 16px 16px;
    }
    .list-head{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:16px;
      flex-wrap:wrap;
    }
    .list-head .crumb{font-size:12px;color:#9ca3af}
    .list-head h1{font-size:52px;line-height:1.12;margin:6px 0 6px;font-weight:600}
    .list-head .sub{font-size:12px;color:var(--muted)}
    .list-search{
      width: 230px;
      position: relative;
      margin-top: 18px;
    }
    .list-search input{
      width:100%;
      height:38px;
      border:1px solid var(--line);
      border-radius:999px;
      background:#f3f4f6;
      padding:0 12px 0 34px;
      font-size:12px;
      color:#6b7280;
    }
    .list-search .icon{
      position:absolute;left:12px;top:10px;color:#9ca3af;font-size:12px
    }
    .list-divider{margin:14px 0 10px;border-top:1px solid #eceff3}
    .filters{
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:12px;
      flex-wrap:wrap;
      margin-bottom:12px;
    }
    .catalog{
      display:flex;gap:8px;overflow:auto;white-space:nowrap;
    }
    .catalog button{
      border:1px solid var(--line);
      background:#fff;
      border-radius:999px;
      padding:6px 12px;
      font-size:11px;
      color:#6b7280;
    }
    .catalog .active{background:#111827;border-color:#111827;color:#fff}
    .sort{
      display:flex;align-items:center;gap:10px;font-size:12px;color:#4b5563;
    }
    .sort select{
      border:0;
      background:transparent;
      font-size:12px;
      color:#111827;
      outline:0;
    }
    .products{margin-top:2px}
    .product{
      background:#fff;border:1px solid #eceff3;border-radius:8px;padding:0 0 10px; overflow:hidden;
    }
    .product .ph{
      aspect-ratio: 3 / 3.2;
      border-bottom:1px solid #f1f5f9;
      background:linear-gradient(135deg,#eef2f7,#f8fafc);
      display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:12px
    }
    .product .name{font-size:13px;color:#1f2937;line-height:1.55;min-height:42px;margin:8px 10px 0}
    .product .price{font-size:32px;font-weight:700;line-height:1; margin-left:10px;}
    .product .buy{height:26px;border:0;border-radius:999px;background:#0b0b0b;color:#fff;padding:0 14px;font-size:11px;margin-right:10px}
    .buy::before{content:"↳ ";font-size:10px;vertical-align:1px}
    .pagination-wrap{margin-top:14px}
    .page-btn{
      border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 12px;font-size:12px
    }
    .page-btn.active{background:#111827;color:#fff;border-color:#111827}

    .shell{
      margin-top:16px;
      background:var(--panel);
      border:1px solid var(--line);
      border-radius:14px;
      padding:14px 14px 10px;
    }
    .crumb{
      font-size:12px;color:#9ca3af;margin-bottom:10px;
    }
    .gallery{
      display:grid;
      grid-template-columns:64px 1fr;
      gap:12px;
      align-items:start;
    }
    .thumbs{display:flex;flex-direction:column;gap:8px}
    .thumb{
      width:54px;height:54px;border:1px solid var(--line);border-radius:8px;
      background:linear-gradient(135deg,#edf2f7,#f8fafc);
      display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:11px;cursor:pointer;
      transition:border-color .2s ease, box-shadow .2s ease, transform .15s ease;
    }
    .thumb:hover{transform:translateY(-1px)}
    .thumb.active{border-color:#0ea5e9;box-shadow:0 0 0 2px rgba(14,165,233,.16) inset}
    .media{
      border:1px solid var(--line);
      border-radius:12px;
      background:#fff;
      aspect-ratio:1/1;
      display:flex;align-items:center;justify-content:center;
      color:#94a3b8;font-size:13px;
      overflow:hidden;
    }
    .badge-type{
      display:none;
    }
    .title{font-size:var(--title);line-height:1.28;font-weight:650;letter-spacing:.2px;margin:2px 0 12px}
    .price-box{
      border:1px solid var(--line);
      border-radius:10px;
      background:#f9fafb;
      padding:10px 12px;
      margin-bottom:6px;
    }
    .row-item{
      display:flex;gap:12px;align-items:center;flex-wrap:wrap;
      padding:11px 0;border-bottom:1px dashed #edf2f7;
    }
    .row-item:last-child{border-bottom:0}
    .label{min-width:52px;color:#6b7280;font-size:var(--micro);font-weight:500}
    .price-now{font-size:var(--price);line-height:1;font-weight:750;color:#0ea5e9;letter-spacing:.4px}
    .price-old{font-size:14px;color:#9ca3af;text-decoration:line-through}
    .save{font-size:13px;color:var(--danger);font-weight:600}
    .ship{font-size:13px;color:#4b5563}

    .specs{display:flex;gap:8px;flex-wrap:wrap}
    .chip{
      border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 11px;font-size:12px;color:#4b5563
      ;transition:all .2s ease;cursor:pointer;
    }
    .chip.active{border-color:#22b5ee;background:#eff9ff;color:#0369a1}
    .color-chip{
      display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;border:1px solid var(--line);background:#fff;font-size:12px;color:#374151;
      transition:all .2s ease;cursor:pointer;
    }
    .color-chip:hover,.chip:hover{border-color:#93c5fd}
    .color-chip.active{border-color:#22b5ee;background:#eff9ff}
    .sw{
      width:14px;height:14px;border-radius:3px;border:1px solid #cbd5e1;display:inline-block;
    }
    .qty{
      display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:8px;overflow:hidden;
    }
    .qty button{
      width:34px;height:34px;border:0;background:#fff;color:#111827;font-size:16px
      ;transition:background-color .15s ease;
    }
    .qty button:hover{background:#f3f4f6}
    .qty input{
      width:46px;height:34px;border:0;border-left:1px solid var(--line);border-right:1px solid var(--line);
      text-align:center;font-size:13px;outline:0;
    }
    .stock{font-size:12px;color:#6b7280}
    .stock .count{color:#0ea5e9;font-weight:700}
    .stock .lack{color:#ef4444;font-weight:600}

    .actions{display:flex;gap:8px;flex-wrap:wrap}
    .btn-main,.btn-second,.btn-service{
      height:36px;border-radius:8px;padding:0 16px;font-size:13px;font-weight:600;
      transition:transform .15s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease;
    }
    .btn-main:hover,.btn-second:hover,.btn-service:hover{transform:translateY(-1px)}
    .btn-main{background:#fff;color:#374151;border:1px solid var(--line)}
    .btn-second{background:#111827;color:#fff;border:1px solid #111827}
    .btn-service{background:#fff;color:#374151;border:1px solid var(--line)}
    .btn-main[disabled]{opacity:1;cursor:default}

    .assure{
      margin-top:12px;
      padding-top:10px;
      border-top:1px solid #eef2f7;
      display:flex;gap:16px;flex-wrap:wrap;color:#6b7280;font-size:12px;
    }
    .assure span::before{content:"◌ ";color:#9ca3af;font-weight:700}

    .sticky-buy{display:none}

    .detail{
      margin-top:14px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:0 14px 14px;
    }
    .tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);padding:12px 4px 0;margin-bottom:12px}
    .tab{
      border:0;background:transparent;border-radius:0;padding:8px 2px 10px;font-size:14px;color:#6b7280
      ;transition:color .2s ease,border-color .2s ease;
    }
    .tab.active{color:#111827;border-bottom:2px solid #111827;font-weight:600}
    @media (max-width: 991.98px){
      .gallery{grid-template-columns:1fr}
      .thumbs{flex-direction:row;order:2}
      .title{font-size:30px}
      .price-now{font-size:34px}
    }
    .detail p{font-size:13px;color:#4b5563;line-height:1.75}
    table{width:100%;border-collapse:collapse;font-size:13px}
    th,td{border:1px solid var(--line);padding:10px 12px;text-align:left}
    th{width:130px;background:#f8fafc;color:#374151}

    .main{margin-top:14px}
    .cardx{
      background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;
    }
    .crumb{font-size:12px;color:#9ca3af;margin:2px 0 10px}
    .sec-title{font-size:16px;font-weight:700;margin-bottom:8px}

    .addr-selected{
      border:1px solid var(--line);border-radius:10px;background:#f9fafb;padding:10px;
    }
    .addr-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
    .addr-tag{font-size:12px;color:#0ea5e9;background:#ecfeff;border:1px solid #bae6fd;padding:3px 8px;border-radius:999px}
    .addr-text{font-size:12px;color:#6b7280;background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px}
    .addr-tip{font-size:11px;color:#9ca3af;margin-top:8px}
    .switch-btn{height:30px;border:0;border-radius:999px;padding:0 14px;background:linear-gradient(90deg,#38bdf8,#60a5fa);color:#fff;font-size:12px}

    .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
    @media (max-width:991.98px){.form-grid{grid-template-columns:1fr}}
    .f-item label{display:block;font-size:12px;color:#6b7280;margin-bottom:4px}
    .f-item input,.f-item select,.f-item textarea{
      width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:13px;padding:9px 10px;outline:0;
    }
    .f-item textarea{min-height:84px;resize:vertical}
    .checkline{display:flex;align-items:center;gap:8px;font-size:12px;color:#4b5563;margin-top:2px}
    .save-btn{height:32px;border:1px solid var(--line);border-radius:999px;background:#fff;padding:0 14px;font-size:12px}

    .goods-item{
      display:flex;justify-content:space-between;align-items:center;gap:12px;
      border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff;
    }
    .goods-left{display:flex;align-items:center;gap:10px}
    .goods-thumb{width:58px;height:58px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(135deg,#e5e7eb,#f8fafc)}
    .goods-name{font-size:13px;color:#1f2937;line-height:1.45}
    .goods-meta{font-size:12px;color:#9ca3af}
    .goods-price{font-size:16px;font-weight:700}

    .summary{
      position:sticky;top:92px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;
    }
    .sum-title{font-size:26px;font-weight:700;margin-bottom:10px}
    .sum-line{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#4b5563;padding:4px 0}
    .sum-line.discount .val{color:#16a34a}
    .sum-divider{border-top:1px dashed #e5e7eb;margin:8px 0}
    .sum-total{display:flex;justify-content:space-between;align-items:baseline}
    .sum-total .k{font-size:12px;color:#6b7280}
    .sum-total .v{font-size:34px;font-weight:700;color:#0ea5e9;line-height:1}
    .submit-btn{
      width:100%;height:38px;border:0;border-radius:999px;margin-top:12px;
      background:linear-gradient(90deg,#67e8f9,#3b82f6 50%,#94a3b8);color:#fff;font-size:14px;font-weight:700;
    }
    .submit-tip{margin-top:8px;font-size:11px;color:#9ca3af}
    
    
    11
    .footer{margin-top:18px;}
    .footer-card{background:#e5e7eb;border:1px solid #d1d5db;border-radius:14px;overflow:hidden}
    .footer-main{padding:18px}
    .footer-brand{display:flex;align-items:center;gap:8px;font-size:35px;font-weight:800;margin-bottom:10px}
    .footer-brand .arrow{font-size:40px;line-height:1}
    .footer-contact{font-size:14px;color:#4b5563;line-height:1.95}
    .footer-col-title{font-size:16px;font-weight:700;margin-bottom:8px}
    .footer-links{display:flex;flex-direction:column;gap:6px}
    .footer-links a{font-size:14px;color:#4b5563}
    .footer-bottom{border-top:1px solid #d1d5db;padding:8px 18px 10px;font-size:11px;color:#6b7280;line-height:1.7}

    .cart-fab{
      position:fixed;right:14px;bottom:14px;z-index:1040;width:44px;height:44px;border-radius:999px;
      border:0;background:#0ea5e9;color:#fff;box-shadow:0 8px 20px rgba(14,165,233,.35)
    }
    .toast-lite{
      position:fixed;right:18px;bottom:72px;z-index:1100;
      background:#111827;color:#fff;border-radius:8px;padding:8px 12px;font-size:12px;
      opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s ease;
    }
    .toast-lite.show{opacity:1;transform:translateY(0)}