@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&family=Inter:wght@400;500;600;700&family=Barlow+Condensed:wght@600;700&display=swap');

:root{
  --ink:#1A1A1A;
  --paper:#F5F3EC;
  --panel:#FFFFFF;
  --navy:#16213E;
  --navy-2:#223055;
  --red:#E3402A;
  --gold:#F4A623;
  --green:#2E9E5B;
  --line:#E4E0D5;
  --muted:#6B675C;
  --font-display:'Archivo Black', sans-serif;
  --font-body:'Inter', sans-serif;
  --font-label:'Barlow Condensed', sans-serif;
  --bottom-nav-height:60px;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{
  font-family:var(--font-body);
  background:var(--paper);
  color:var(--ink);
  padding-bottom:var(--bottom-nav-height);
}
a{color:inherit;text-decoration:none;}
button{font-family:var(--font-body);}

/* ---------- header ---------- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:var(--navy);
  padding:12px;
  display:flex;align-items:center;gap:10px;
}

/* Add to wherever your site-header / bottom-nav CSS currently lives. */

/* ===== Header nav — desktop only ===== */

.header-nav {
  display: none; /* mobile: bottom-nav already covers Home/Cart/Profile */
  align-items: center;
  gap: 4px;
}

.header-nav-link {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  border-radius: 8px;
  font-family: "Inter", sans-serif;
  font-weight: 600;
  font-size: 14px;
  color: #16213E;
  text-decoration: none;
  opacity: 0.65;
  position: relative;
  transition: opacity 0.15s ease, background-color 0.15s ease;
}

.header-nav-link:hover {
  opacity: 1;
  background-color: rgba(22, 33, 62, 0.05);
}

.header-nav-link.active {
  opacity: 1;
  color: #E3402A;
}

.header-nav-badge {
  background: #E3402A;
  color: #FFFFFF;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  min-width: 16px;
  height: 16px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px;
}

.site-logo{font-family:var(--font-display);color:#fff;font-size:16px;flex-shrink:0;}
.search-form{flex:1;display:flex;}
.search-form input{
  flex:1;border:none;border-radius:20px 0 0 20px;height:38px;padding:0 14px;
  font-family:var(--font-body);font-size:13px;min-width:0;
}
.search-form button{
  border:none;background:#fff;border-radius:0 20px 20px 0;width:40px;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
}
.header-cart{position:relative;flex-shrink:0;}
.icon-btn{
  width:34px;height:34px;display:flex;align-items:center;justify-content:center;
  color:#fff;background:none;border:none;cursor:pointer;
}
.cart-badge{
  position:absolute;top:-2px;right:-2px;background:var(--red);color:#fff;
  font-family:var(--font-label);font-weight:700;font-size:11px;
  min-width:16px;height:16px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;padding:0 3px;
}

main{max-width:1080px;margin:0 auto;min-height:60vh;}

/* ---------- footer ---------- */
.site-footer{background:var(--navy);color:#fff;padding:24px 16px;margin-top:24px;}
.footer-links{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:14px;}
.footer-links a{font-size:13px;color:#fff;opacity:.85;}
.footer-copy{font-size:11.5px;opacity:.6;}

/* ---------- bottom nav ---------- */
.bottom-nav{
  position:fixed;left:0;right:0;bottom:0;z-index:50;
  background:#fff;border-top:1px solid var(--line);
  display:flex;height:var(--bottom-nav-height);
  max-width:1080px;margin:0 auto;
}
.bottom-nav a{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  color:var(--muted);font-size:11px;font-family:var(--font-label);font-weight:600;position:relative;
}
.bottom-nav a.active{color:var(--red);}
.bottom-nav .nav-badge{
  position:absolute;top:2px;right:calc(50% - 22px);background:var(--red);color:#fff;
  font-family:var(--font-label);font-weight:700;font-size:10px;
  min-width:15px;height:15px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 3px;
}
@media (min-width:768px){
  .bottom-nav{display:none;}
  body{padding-bottom:0;}
}

/* ---------- home / search: banner, chips, grid, cards ---------- */
.banner{
  margin:10px 12px;
  background:linear-gradient(115deg, var(--red) 55%, var(--navy) 55%);
  border-radius:14px;padding:18px 16px;color:#fff;position:relative;overflow:hidden;
}
.banner .tag{
  font-family:var(--font-label);font-weight:700;font-size:12px;
  background:var(--gold);color:var(--navy);
  display:inline-block;padding:2px 10px;border-radius:10px;letter-spacing:.03em;margin-bottom:8px;
}
.banner h1{font-family:var(--font-display);font-size:21px;line-height:1.15;margin-bottom:6px;}
.banner p{font-size:12px;opacity:.9;max-width:75%;}

.chip-row{display:flex;gap:8px;overflow-x:auto;padding:0 12px 10px;scrollbar-width:none;}
.chip-row::-webkit-scrollbar{display:none;}
.chip{
  font-family:var(--font-label);font-weight:600;font-size:13px;
  border:1px solid var(--line);background:var(--panel);
  padding:6px 14px;border-radius:16px;white-space:nowrap;flex-shrink:0;
}
.chip.active{background:var(--navy);color:#fff;border-color:var(--navy);}

.section-label{
  font-family:var(--font-label);font-weight:700;font-size:14px;letter-spacing:.03em;
  text-transform:uppercase;color:var(--navy);padding:6px 12px;
}

.grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 12px 20px;}
@media (min-width:600px){.grid{grid-template-columns:repeat(4,1fr);}}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden;display:block;}
.thumb{
  position:relative;height:110px;display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,0.85);font-family:var(--font-label);font-size:12px;font-weight:600;text-align:center;padding:0 8px;
}
.thumb-img{width:100%;object-fit:cover;display:block;}
.ribbon{
  position:absolute;top:8px;left:-26px;background:var(--red);color:#fff;
  font-family:var(--font-label);font-weight:700;font-size:11px;padding:2px 30px;transform:rotate(-40deg);
}
.moq-tag{
  position:absolute;bottom:6px;left:6px;background:rgba(0,0,0,0.55);color:#fff;
  font-family:var(--font-label);font-size:11px;font-weight:600;padding:1px 7px;border-radius:8px;
}
.card-body{padding:8px 9px 10px;}
.card-name{
  font-size:12.5px;font-weight:600;line-height:1.3;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  min-height:32px;margin-bottom:4px;
}
.card-price{font-family:var(--font-display);font-size:14px;color:var(--red);}
.card-price span{font-family:var(--font-body);font-weight:500;font-size:10px;color:var(--muted);}
.card-meta{font-size:10.5px;color:var(--muted);margin-top:2px;}

/* ---------- search results list ---------- */
.results-header{padding:12px 12px 8px;font-size:12px;color:var(--muted);}
.results-header b{color:var(--ink);}
.result-row{display:flex;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line);}
.result-thumb{
  width:92px;height:92px;border-radius:8px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,0.85);font-family:var(--font-label);font-size:11px;font-weight:600;text-align:center;
}
.result-info{flex:1;min-width:0;}
.result-name{
  font-size:13.5px;font-weight:600;line-height:1.3;margin-bottom:4px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.result-price{font-family:var(--font-display);font-size:14px;color:var(--red);}
.result-meta{font-size:11px;color:var(--muted);margin-top:3px;}

/* ---------- profile hub ---------- */
.profile-header{background:var(--navy);color:#fff;padding:24px 16px;display:flex;align-items:center;gap:14px;}
.profile-avatar{
  width:52px;height:52px;border-radius:50%;background:var(--gold);color:var(--navy);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:18px;flex-shrink:0;
}
.profile-name{font-size:16px;font-weight:700;}
.profile-email{font-size:12.5px;opacity:.75;}
.menu-section-label{
  font-family:var(--font-label);font-weight:700;font-size:12px;letter-spacing:.03em;
  text-transform:uppercase;color:var(--muted);padding:14px 16px 6px;
}
.menu-list{background:var(--panel);}
.menu-item{
  display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;
  padding:14px 16px;border:none;border-bottom:1px solid var(--line);
  font-family:var(--font-body);font-size:14px;font-weight:600;color:var(--ink);background:none;cursor:pointer;
}
.menu-item .chev{color:var(--muted);}
.menu-item.danger{color:var(--red);}

/* ---------- generic content page ---------- */
.page-header{padding:16px;}
.page-title{font-family:var(--font-display);font-size:20px;}
.page-body{padding:0 16px 24px;font-size:13.5px;line-height:1.7;color:var(--muted);}
.page-body h2{font-family:var(--font-label);font-size:16px;color:var(--ink);margin:18px 0 6px;text-transform:uppercase;letter-spacing:.02em;}
.page-body p{margin-bottom:10px;}
.page-body p.form-row{display:flex;flex-direction:column;gap:4px;margin-bottom:14px;}
.page-body input,.page-body textarea,.page-body select{
  border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-family:var(--font-body);font-size:14px;background:var(--panel);
}

/* ---------- buttons ---------- */
.btn-primary{
  background:var(--red);color:#fff;border:none;border-radius:10px;height:44px;
  font-family:var(--font-label);font-weight:700;font-size:15px;letter-spacing:.02em;cursor:pointer;
}
.btn-primary:active{transform:scale(0.98);}

/* ---------- order list ---------- */
.order-row{background:var(--panel);border:1px solid var(--line);border-radius:10px;margin:0 16px 10px;padding:12px 14px;}
.order-row-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;}
.order-ref{font-family:var(--font-label);font-weight:700;font-size:13px;}
.order-status{
  font-family:var(--font-label);font-weight:700;font-size:11px;text-transform:uppercase;
  padding:2px 8px;border-radius:8px;background:var(--paper);color:var(--muted);
}
.order-status.paid{background:#E4F4EB;color:var(--green);}
.order-status.pending{background:#FDF0DD;color:#B27A0F;}
.order-meta{font-size:12px;color:var(--muted);}
.order-total{font-family:var(--font-display);font-size:15px;color:var(--red);margin-top:6px;}

.empty-state{padding:40px 16px;text-align:center;color:var(--muted);font-size:13.5px;grid-column:1/-1;}

/* ---------- cart page ---------- */
.cart-line{
  display:flex;justify-content:space-between;align-items:flex-start;gap:10px;
  background:var(--panel);border:1px solid var(--line);border-radius:10px;margin:0 16px 10px;padding:12px 14px;
}
.cart-line-name{font-weight:600;font-size:13.5px;}
.cart-line-variant{font-size:11.5px;color:var(--muted);margin:2px 0;text-transform:capitalize;}
.cart-line-price{font-family:var(--font-display);font-size:13px;color:var(--red);margin-top:4px;}
.cart-line-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0;}
.qty-form{display:flex;align-items:center;gap:6px;}
.qty-input{width:52px;border:1px solid var(--line);border-radius:6px;padding:4px 6px;font-size:13px;text-align:center;font-family:var(--font-body);}
.link-btn{background:none;border:none;font-family:var(--font-label);font-weight:700;font-size:11.5px;color:var(--navy);cursor:pointer;padding:0;text-transform:uppercase;letter-spacing:.02em;}
.link-btn.danger{color:var(--red);}
.cart-summary{padding:16px;}
.cart-summary-total{font-family:var(--font-display);font-size:18px;margin-bottom:12px;text-align:right;}

/* ---------- product detail: gallery ---------- */
.gallery{position:relative;background:#000;}
.gallery-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;}
.gallery-track::-webkit-scrollbar{display:none;}
.slide{
  min-width:100%;height:320px;scroll-snap-align:center;position:relative;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;background:var(--navy);
}
.slide-img,.slide-video{width:100%;height:100%;object-fit:contain;display:block;}
.play-badge{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,0.25);cursor:pointer;border:none;
}
.play-circle{width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,0.92);display:flex;align-items:center;justify-content:center;}
.dots{position:absolute;bottom:10px;left:0;right:0;display:flex;justify-content:center;gap:5px;}
.dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,0.45);}
.dot.active{background:#fff;width:16px;border-radius:3px;}

/* ---------- product detail: info ---------- */
.pd-body{padding:14px 16px 100px;}
.pd-name{font-size:17px;font-weight:700;line-height:1.3;margin-bottom:5px;}
.pd-meta-row{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted);margin-bottom:10px;}
.pd-price-row{display:flex;align-items:baseline;gap:8px;margin-bottom:2px;}
.pd-price{font-family:var(--font-display);font-size:26px;color:var(--red);}
.pd-price-unit{font-size:12px;color:var(--muted);}
.pd-moq{font-size:12px;color:var(--navy);font-weight:600;margin-bottom:14px;}
.divider{height:1px;background:var(--line);margin:14px 0;}

.variant-group{margin-bottom:14px;}
.variant-label{font-family:var(--font-label);font-weight:700;font-size:13px;text-transform:capitalize;letter-spacing:.02em;margin-bottom:8px;}
.variant-pills{display:flex;flex-wrap:wrap;gap:8px;}
.pill{
  font-family:var(--font-body);font-weight:600;font-size:13px;padding:7px 14px;border-radius:8px;
  border:1.5px solid var(--line);background:var(--panel);cursor:pointer;color:var(--ink);
}
.pill.active{border-color:var(--navy);background:var(--navy);color:#fff;}
.pill:disabled{color:#B9B5A8;background:#EFEDE4;border-color:var(--line);cursor:not-allowed;text-decoration:line-through;}

.qty-row{display:flex;align-items:center;justify-content:space-between;margin:16px 0 4px;}
.qty-label{font-size:13px;font-weight:600;}
.stepper{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:8px;}
.stepper button{width:34px;height:34px;background:none;border:none;font-size:16px;cursor:pointer;color:var(--navy);}
.stepper input{
  width:44px;text-align:center;border:none;border-left:1.5px solid var(--line);border-right:1.5px solid var(--line);
  height:34px;font-family:var(--font-body);font-weight:600;font-size:14px;background:var(--panel);
}
.qty-hint{font-size:11.5px;color:var(--muted);margin-bottom:6px;}
.extra-desc{font-size:12.5px;color:var(--muted);line-height:1.6;}

.sticky-cart{
  position:fixed;left:0;right:0;bottom:var(--bottom-nav-height);max-width:1080px;margin:0 auto;
  background:#fff;border-top:1px solid var(--line);padding:10px 14px;display:flex;align-items:center;gap:10px;z-index:40;
}
@media (min-width:768px){.sticky-cart{bottom:0;}}
.sticky-total{flex-shrink:0;}
.sticky-total .lbl{font-size:10px;color:var(--muted);}
.sticky-total .amt{font-family:var(--font-display);font-size:16px;color:var(--ink);}
.add-btn{
  flex:1;background:var(--red);color:#fff;border:none;border-radius:10px;height:44px;
  font-family:var(--font-label);font-weight:700;font-size:15px;letter-spacing:.02em;cursor:pointer;
}
.add-btn:active{transform:scale(0.98);}

.flyer{width:34px;height:34px;border-radius:8px;background:var(--red);z-index:200;pointer-events:none;}

.toast{
  position:fixed;left:50%;bottom:calc(var(--bottom-nav-height) + 70px);transform:translateX(-50%) translateY(10px);
  background:var(--ink);color:#fff;font-size:12.5px;padding:8px 14px;border-radius:8px;
  opacity:0;transition:opacity .2s ease, transform .2s ease;z-index:210;white-space:nowrap;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* Adjust this breakpoint if your project uses a different one elsewhere */
@media (min-width: 1024px) {
  .header-nav {
    display: flex;
  }
 
  /* Shrink the search bar instead of letting it stretch across the header.
     If .search-form isn't a flex child in your base CSS, max-width alone
     still caps it. */
  .search-form {
    flex: 0 1 320px;
    max-width: 320px;
  }
 
  /* The nav's Cart link replaces this on desktop — see the JS note about
     updating your fly-to-cart animation target. */
  .header-cart {
    display: none;
  }
}
