/* ===================================================================
   RISE DISPENSARY — COMPLETE DESIGN SYSTEM v3
   Mobile-first, fully responsive
   =================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;900&family=Inter:wght@300;400;500;600;700&display=swap');

/* ── CSS Variables ─────────────────────────────────────────────── */
:root {
  --green-deep:    #1a3a0f;
  --green-mid:     #2d5a1b;
  --green-light:   #3d7a24;
  --green-accent:  #4a9030;
  --gold:          #c9a84c;
  --gold-light:    #e8c96a;
  --gold-dark:     #9e7d2e;
  --black:         #0a0a0a;
  --dark-1:        #111111;
  --dark-2:        #1c1c1c;
  --dark-3:        #252525;
  --grey:          #888888;
  --grey-light:    #cccccc;
  --white:         #ffffff;
  --font-display:  'Playfair Display', Georgia, serif;
  --font-body:     'Inter', sans-serif;
  --radius:        8px;
  --radius-lg:     16px;
  --shadow:        0 4px 24px rgba(0,0,0,0.4);
  --transition:    all 0.3s ease;
}

/* ── Reset ─────────────────────────────────────────────────────── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
  background:var(--black);
  color:var(--white);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img { max-width:100%; height:auto; display:block; }
a { color:var(--gold); text-decoration:none; transition:var(--transition); }
a:hover { color:var(--gold-light); }
button { font-family:var(--font-body); cursor:pointer; }
input, select, textarea { font-family:var(--font-body); }

/* ── Layout ────────────────────────────────────────────────────── */
.container    { max-width:1280px; margin:0 auto; padding:0 20px; }
.container-sm { max-width:900px;  margin:0 auto; padding:0 20px; }
.section      { padding:80px 0; }
.section-sm   { padding:40px 0; }

/* ── Typography ────────────────────────────────────────────────── */
.section-eyebrow {
  font-size:11px; font-weight:700; color:var(--gold);
  text-transform:uppercase; letter-spacing:3px; margin-bottom:12px;
  display:block;
}
.section-title {
  font-family:var(--font-display);
  font-size:clamp(28px,4vw,44px);
  font-weight:900; color:var(--white);
  margin-bottom:12px; line-height:1.1;
}
.section-title span { color:var(--gold); }
.section-desc { font-size:15px; color:var(--grey); max-width:520px; line-height:1.7; }
.section-header { margin-bottom:48px; }
.section-header.center { text-align:center; }
.section-header.center .section-desc { margin:0 auto; }

/* ── Header ────────────────────────────────────────────────────── */
.site-header {
  position:sticky; top:0; z-index:1000;
  background:rgba(10,10,10,0.97);
  backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(201,168,76,0.2);
}
.header-inner {
  display:flex; align-items:center; justify-content:space-between;
  padding:0 24px; height:72px;
  max-width:1280px; margin:0 auto;
}
.logo { display:flex; align-items:center; gap:10px; text-decoration:none; }
.logo-icon {
  width:42px; height:42px;
  background:linear-gradient(135deg,var(--green-mid),var(--green-accent));
  border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  font-size:22px; overflow:hidden; flex-shrink:0;
}
.logo-icon img { width:100%; height:100%; object-fit:cover; }
.logo-text { line-height:1.1; }
.logo-text .rise { font-family:var(--font-display); font-size:22px; font-weight:900; color:var(--gold); letter-spacing:3px; }
.logo-text .sub  { font-size:9px; color:var(--grey-light); letter-spacing:2px; text-transform:uppercase; }

.nav-desktop { display:flex; align-items:center; gap:4px; }
.nav-desktop a {
  color:var(--grey-light); font-size:12px; font-weight:500;
  padding:8px 12px; border-radius:var(--radius);
  letter-spacing:0.5px; text-transform:uppercase; transition:var(--transition);
  white-space:nowrap;
}
.nav-desktop a:hover,
.nav-desktop a.active { color:var(--gold); background:rgba(201,168,76,0.08); }

.header-actions { display:flex; align-items:center; gap:10px; }
.cart-btn {
  display:flex; align-items:center; gap:8px;
  background:rgba(201,168,76,0.1);
  border:1px solid rgba(201,168,76,0.3);
  color:var(--gold); padding:9px 16px;
  border-radius:var(--radius); font-size:13px; font-weight:600;
  text-decoration:none; transition:var(--transition); white-space:nowrap;
}
.cart-btn:hover { background:var(--gold); color:var(--black); border-color:var(--gold); }
.cart-count {
  background:var(--gold); color:var(--black);
  font-size:10px; font-weight:700;
  width:18px; height:18px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}
.hamburger {
  display:none; flex-direction:column; gap:5px;
  cursor:pointer; padding:8px; background:none; border:none;
}
.hamburger span {
  display:block; width:24px; height:2px;
  background:var(--gold); border-radius:2px; transition:var(--transition);
}
.hamburger.active span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hamburger.active span:nth-child(2) { opacity:0; }
.hamburger.active span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* ── Mobile Nav ────────────────────────────────────────────────── */
.nav-mobile {
  display:none; position:fixed;
  top:72px; left:0; right:0; bottom:0;
  background:rgba(10,10,10,0.99);
  z-index:999; flex-direction:column;
  padding:24px 20px; gap:4px; overflow-y:auto;
}
.nav-mobile.open { display:flex; }
.nav-mobile a {
  color:var(--white); font-size:17px; font-weight:500;
  padding:14px 8px; border-bottom:1px solid rgba(255,255,255,0.05);
  transition:var(--transition);
}
.nav-mobile a:hover { color:var(--gold); padding-left:16px; }

/* ── Hero ──────────────────────────────────────────────────────── */
.hero {
  position:relative; min-height:90vh;
  display:flex; align-items:center;
  background:linear-gradient(135deg,var(--black) 0%,var(--green-deep) 60%,var(--black) 100%);
  overflow:hidden;
}
.hero::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse at 60% 50%,rgba(74,144,48,0.15) 0%,transparent 70%),
              radial-gradient(ellipse at 20% 80%,rgba(201,168,76,0.08) 0%,transparent 50%);
}
.hero-grid {
  position:absolute; inset:0;
  background-image:linear-gradient(rgba(201,168,76,0.04) 1px,transparent 1px),
                    linear-gradient(90deg,rgba(201,168,76,0.04) 1px,transparent 1px);
  background-size:60px 60px;
}
.hero-content {
  position:relative; z-index:2;
  max-width:1280px; margin:0 auto; padding:80px 24px;
}
.hero-badge {
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(201,168,76,0.1); border:1px solid rgba(201,168,76,0.3);
  color:var(--gold); font-size:11px; font-weight:600;
  letter-spacing:2px; text-transform:uppercase;
  padding:8px 16px; border-radius:100px; margin-bottom:28px;
}
.hero h1 {
  font-family:var(--font-display);
  font-size:clamp(38px,7vw,88px);
  font-weight:900; line-height:1.0;
  color:var(--white); max-width:800px; margin-bottom:24px;
}
.hero h1 span { color:var(--gold); }
.hero-desc {
  font-size:clamp(15px,2vw,18px); color:var(--grey-light);
  max-width:560px; margin-bottom:40px; line-height:1.7;
}
.hero-actions { display:flex; gap:16px; flex-wrap:wrap; margin-bottom:48px; }
.hero-stats {
  display:flex; gap:40px; flex-wrap:wrap;
  padding-top:40px; border-top:1px solid rgba(255,255,255,0.08);
}
.hero-stat-num { font-family:var(--font-display); font-size:32px; font-weight:900; color:var(--gold); }
.hero-stat-label { font-size:12px; color:var(--grey); text-transform:uppercase; letter-spacing:1px; margin-top:4px; }

/* ── Buttons ───────────────────────────────────────────────────── */
.btn-primary {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  background:linear-gradient(135deg,var(--gold),var(--gold-dark));
  color:var(--black); font-size:14px; font-weight:700;
  padding:14px 28px; border-radius:var(--radius);
  letter-spacing:0.5px; border:none; cursor:pointer;
  transition:var(--transition); text-decoration:none; white-space:nowrap;
}
.btn-primary:hover {
  background:linear-gradient(135deg,var(--gold-light),var(--gold));
  color:var(--black); transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(201,168,76,0.3);
}
.btn-secondary {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  background:transparent; color:var(--gold);
  border:1px solid rgba(201,168,76,0.4);
  font-size:14px; font-weight:600;
  padding:13px 24px; border-radius:var(--radius);
  transition:var(--transition); text-decoration:none; white-space:nowrap;
}
.btn-secondary:hover {
  background:rgba(201,168,76,0.1); color:var(--gold-light);
  border-color:var(--gold);
}

/* ── Shipping Banner ───────────────────────────────────────────── */
.shipping-banner-section {
  background:var(--dark-2);
  border-bottom:1px solid rgba(255,255,255,0.04);
  padding:18px 0;
}
.shipping-banner {
  display:flex; gap:24px; flex-wrap:wrap;
  justify-content:center; align-items:center;
}
.shipping-badge { display:flex; align-items:center; gap:12px; }
.shipping-icon  { font-size:22px; }
.shipping-label { font-size:13px; font-weight:600; color:var(--white); }
.shipping-desc  { font-size:11px; color:var(--grey); }

/* ── Category Grid ─────────────────────────────────────────────── */
.category-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
  gap:16px;
}
.category-card {
  display:block; background:var(--dark-2);
  border:1px solid rgba(255,255,255,0.06);
  border-radius:var(--radius-lg); overflow:hidden;
  transition:var(--transition); text-decoration:none;
}
.category-card:hover {
  border-color:rgba(201,168,76,0.3);
  transform:translateY(-4px);
  box-shadow:0 8px 24px rgba(0,0,0,0.3);
}
.category-img-wrap {
  position:relative; height:140px; overflow:hidden;
  background:linear-gradient(135deg,var(--green-deep),var(--dark-3));
}
.category-img-wrap img { width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.category-card:hover .category-img-wrap img { transform:scale(1.06); }
.category-img-fallback {
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  font-size:42px;
}
.category-info { padding:14px 16px; }
.category-name  { font-family:var(--font-display); font-size:17px; font-weight:700; color:var(--white); margin-bottom:3px; }
.category-count { font-size:11px; color:var(--grey); margin-bottom:6px; }
.category-arrow { font-size:12px; color:var(--gold); font-weight:600; }

/* ── Product Grid & Cards ──────────────────────────────────────── */
.product-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:20px;
}
.product-card {
  background:var(--dark-2);
  border:1px solid rgba(255,255,255,0.06);
  border-radius:var(--radius-lg); overflow:hidden;
  transition:var(--transition); display:flex; flex-direction:column;
}
.product-card:hover {
  border-color:rgba(201,168,76,0.25);
  transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(0,0,0,0.3);
}
.product-img-wrap {
  position:relative; height:220px; overflow:hidden;
  background:linear-gradient(135deg,var(--dark-3),var(--green-deep));
  flex-shrink:0;
}
.product-img-wrap img {
  width:100%; height:100%; object-fit:cover;
  transition:transform .4s ease;
}
.product-card:hover .product-img-wrap img { transform:scale(1.04); }
.product-img-fallback {
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  font-size:52px;
}
.product-badge {
  position:absolute; top:10px; right:10px;
  background:rgba(201,168,76,0.92); color:var(--black);
  font-size:9px; font-weight:800;
  padding:3px 10px; border-radius:100px;
  letter-spacing:1px; text-transform:uppercase;
}
.product-info { padding:16px; flex:1; display:flex; flex-direction:column; }
.product-type   { font-size:10px; color:var(--gold); text-transform:uppercase; letter-spacing:1px; font-weight:700; margin-bottom:4px; }
.product-name   { font-family:var(--font-display); font-size:17px; font-weight:700; color:var(--white); margin-bottom:8px; line-height:1.3; }
.product-desc   { font-size:12px; color:var(--grey); line-height:1.5; margin-bottom:8px; flex:1; }
.product-thc    { font-size:11px; color:var(--green-accent); font-weight:600; margin-bottom:12px; }
.product-footer { display:flex; align-items:center; justify-content:space-between; margin-top:auto; }
.product-price  { font-family:var(--font-display); font-size:22px; font-weight:900; color:var(--gold); }
.product-weight { font-size:11px; color:var(--grey); margin-top:2px; }
.add-to-cart-btn {
  background:linear-gradient(135deg,var(--green-mid),var(--green-accent));
  color:var(--white); border:none;
  padding:9px 16px; border-radius:var(--radius);
  font-size:12px; font-weight:700; cursor:pointer;
  transition:var(--transition); white-space:nowrap;
}
.add-to-cart-btn:hover {
  background:linear-gradient(135deg,var(--gold),var(--gold-dark));
  color:var(--black);
}

/* ── Feature Cards ─────────────────────────────────────────────── */
.feature-card {
  background:var(--dark-2);
  border:1px solid rgba(255,255,255,0.06);
  border-radius:var(--radius-lg); padding:28px;
  transition:var(--transition);
}
.feature-card:hover { border-color:rgba(201,168,76,0.2); }
.feature-icon  { font-size:36px; margin-bottom:16px; }
.feature-title { font-family:var(--font-display); font-size:20px; color:var(--white); margin-bottom:10px; }
.feature-desc  { font-size:13px; color:var(--grey); line-height:1.7; }

/* ── Reviews ───────────────────────────────────────────────────── */
.reviews-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  gap:20px;
}
.review-card {
  background:var(--dark-2);
  border:1px solid rgba(255,255,255,0.06);
  border-radius:var(--radius-lg); padding:24px;
}
.review-stars  { color:var(--gold); font-size:18px; letter-spacing:2px; margin-bottom:12px; }
.review-text   { font-size:14px; color:var(--grey-light); line-height:1.7; margin-bottom:16px; font-style:italic; }
.review-author { font-size:13px; font-weight:700; color:var(--white); }
.review-date   { font-size:11px; color:var(--grey); margin-top:4px; }

/* ── Blog Grid ─────────────────────────────────────────────────── */
.blog-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  gap:24px;
}
.blog-card {
  background:var(--dark-2);
  border:1px solid rgba(255,255,255,0.06);
  border-radius:var(--radius-lg); overflow:hidden;
  transition:var(--transition);
}
.blog-card:hover { border-color:rgba(201,168,76,0.2); transform:translateY(-4px); }
.blog-thumb {
  height:200px;
  background:linear-gradient(135deg,var(--green-deep),var(--dark-3));
  display:flex; align-items:center; justify-content:center;
  font-size:56px; overflow:hidden;
}
.blog-thumb img { width:100%; height:100%; object-fit:cover; }
.blog-content  { padding:24px; }
.blog-date     { font-size:11px; color:var(--gold); text-transform:uppercase; letter-spacing:1px; margin-bottom:10px; }
.blog-title    { font-family:var(--font-display); font-size:20px; font-weight:700; color:var(--white); margin-bottom:12px; line-height:1.3; }
.blog-excerpt  { font-size:13px; color:var(--grey); line-height:1.6; margin-bottom:20px; }
.blog-read-more { font-size:13px; font-weight:600; color:var(--gold); }

/* ── Blog Post ─────────────────────────────────────────────────── */
.blog-post-layout {
  display:grid;
  grid-template-columns:1fr 300px;
  gap:48px; align-items:start;
}
.article-body { color:var(--grey-light); font-size:16px; line-height:1.9; }
.article-lead {
  font-size:18px; font-weight:500; color:var(--white);
  margin-bottom:28px; padding:20px 24px;
  background:rgba(201,168,76,0.06);
  border-left:3px solid var(--gold);
  border-radius:0 8px 8px 0;
}
.article-body h2 {
  font-family:var(--font-display); font-size:24px; color:var(--white);
  margin:40px 0 14px; padding-bottom:10px;
  border-bottom:1px solid rgba(201,168,76,0.15);
}
.article-body p { margin-bottom:20px; }

/* ── Sidebar ───────────────────────────────────────────────────── */
.sidebar-card {
  background:var(--dark-2);
  border:1px solid rgba(255,255,255,0.06);
  border-radius:var(--radius-lg); padding:24px;
  position:sticky; top:90px;
}
.sidebar-title {
  font-size:12px; font-weight:700; color:var(--white);
  letter-spacing:1px; text-transform:uppercase;
  margin-bottom:20px; padding-bottom:16px;
  border-bottom:1px solid rgba(255,255,255,0.08);
}

/* ── Page Hero ─────────────────────────────────────────────────── */
.page-hero {
  background:linear-gradient(135deg,var(--green-deep) 0%,var(--black) 60%);
  padding:72px 0 56px;
  border-bottom:1px solid rgba(201,168,76,0.1);
}
.page-hero h1 {
  font-family:var(--font-display);
  font-size:clamp(32px,5vw,64px);
  font-weight:900; color:var(--white);
  margin-bottom:16px; line-height:1.1;
}
.page-hero h1 span { color:var(--gold); }
.page-intro { font-size:15px; color:var(--grey); max-width:560px; line-height:1.7; }

/* ── Breadcrumb ────────────────────────────────────────────────── */
.breadcrumb {
  display:flex; align-items:center; gap:8px;
  font-size:12px; color:var(--grey);
  padding:20px 0; flex-wrap:wrap;
}
.breadcrumb a { color:var(--grey); }
.breadcrumb a:hover { color:var(--gold); }
.breadcrumb .sep { color:rgba(255,255,255,0.2); }
.breadcrumb .current { color:var(--gold); }

/* ── Product Detail ────────────────────────────────────────────── */
.prod-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:56px; align-items:start;
}
.prod-main-img {
  background:linear-gradient(135deg,var(--dark-2),var(--green-deep));
  border-radius:var(--radius-lg); overflow:hidden;
  aspect-ratio:1; border:1px solid rgba(255,255,255,0.06);
}
.prod-main-img img { width:100%; height:100%; object-fit:cover; }
.prod-img-fallback {
  width:100%; height:100%; min-height:360px;
  display:flex; align-items:center; justify-content:center;
  font-size:96px;
}
.prod-tags { display:flex; gap:8px; flex-wrap:wrap; margin-top:16px; }
.prod-specs {
  background:var(--dark-2);
  border:1px solid rgba(255,255,255,0.06);
  border-radius:var(--radius); overflow:hidden; margin-bottom:24px;
}
.spec-row {
  display:flex; align-items:flex-start;
  padding:12px 18px; border-bottom:1px solid rgba(255,255,255,0.04); gap:16px;
}
.spec-row:last-child { border:none; }
.spec-label {
  font-size:10px; color:var(--grey); text-transform:uppercase;
  letter-spacing:1px; font-weight:700; width:120px; flex-shrink:0; padding-top:2px;
}
.spec-val { font-size:14px; color:var(--white); font-weight:500; }
.prod-buy-box {
  display:flex; align-items:flex-end; justify-content:space-between;
  padding:20px 0;
  border-top:1px solid rgba(255,255,255,0.06);
  border-bottom:1px solid rgba(255,255,255,0.06);
  margin-bottom:20px;
}

/* ── Cart Layout ───────────────────────────────────────────────── */
.cart-layout {
  display:grid;
  grid-template-columns:1fr 360px;
  gap:40px; align-items:start;
}

/* ── Checkout Layout ───────────────────────────────────────────── */
.checkout-layout {
  display:grid;
  grid-template-columns:1fr 340px;
  gap:40px; align-items:start;
}
.form-section {
  margin-bottom:36px; padding-bottom:36px;
  border-bottom:1px solid rgba(255,255,255,0.06);
}
.form-section:last-of-type { border:none; }
.form-section-title { font-family:var(--font-display); font-size:20px; color:var(--white); margin-bottom:20px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-group { display:flex; flex-direction:column; gap:6px; }
.form-group label {
  font-size:11px; font-weight:700; color:var(--grey-light);
  text-transform:uppercase; letter-spacing:0.5px;
}
.form-group input,
.form-group select,
.form-group textarea {
  background:var(--dark-2);
  border:1px solid rgba(255,255,255,0.1);
  color:var(--white); padding:14px 16px;
  border-radius:var(--radius); font-size:14px;
  font-family:var(--font-body); outline:none;
  width:100%; transition:var(--transition);
  -webkit-appearance:none; appearance:none;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color:var(--gold);
  background:rgba(201,168,76,0.04);
}
.form-group select option { background:var(--dark-2); color:var(--white); }
.payment-select { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.payment-opt { cursor:pointer; }
.payment-opt input { display:none; }
.payment-card {
  background:var(--dark-2);
  border:2px solid rgba(255,255,255,0.08);
  border-radius:var(--radius); padding:16px;
  display:flex; align-items:center; gap:12px;
  transition:var(--transition);
}
.payment-opt input:checked + .payment-card {
  border-color:var(--gold);
  background:rgba(201,168,76,0.06);
}
.payment-icon { font-size:24px; }
.payment-name { font-size:14px; font-weight:700; color:var(--white); }
.payment-desc { font-size:11px; color:var(--grey); margin-top:2px; }

/* ── Confirmation ──────────────────────────────────────────────── */
.confirm-card {
  background:linear-gradient(135deg,var(--green-deep),var(--dark-2));
  border:1px solid rgba(74,144,48,0.3);
  border-radius:var(--radius-lg); padding:48px;
  text-align:center; max-width:600px; margin:0 auto;
}
.confirm-icon { font-size:64px; margin-bottom:24px; }
.confirm-card h1,
.confirm-card h2 { font-family:var(--font-display); font-size:36px; color:var(--white); margin-bottom:16px; }
.confirm-card p  { color:var(--grey); font-size:16px; line-height:1.7; }

/* ── Tags ──────────────────────────────────────────────────────── */
.tag {
  display:inline-flex; align-items:center;
  background:rgba(74,144,48,0.1);
  border:1px solid rgba(74,144,48,0.2);
  color:var(--green-accent);
  font-size:10px; font-weight:700;
  padding:4px 12px; border-radius:100px;
  letter-spacing:1px; text-transform:uppercase;
  white-space:nowrap;
}
.tag.gold {
  background:rgba(201,168,76,0.1);
  border-color:rgba(201,168,76,0.2);
  color:var(--gold);
}

/* ── Notice Boxes ──────────────────────────────────────────────── */
.notice {
  border-radius:var(--radius); padding:16px 20px;
  font-size:14px; line-height:1.6;
  display:flex; align-items:flex-start; gap:12px; margin:16px 0;
}
.notice-icon { font-size:20px; flex-shrink:0; margin-top:2px; }
.notice.info { background:rgba(74,144,48,0.08); border:1px solid rgba(74,144,48,0.2); color:var(--grey-light); }
.notice.gold { background:rgba(201,168,76,0.08); border:1px solid rgba(201,168,76,0.2); color:var(--grey-light); }

/* ── FAQ ───────────────────────────────────────────────────────── */
.faq-list { display:flex; flex-direction:column; gap:12px; }
.faq-item {
  background:var(--dark-2);
  border:1px solid rgba(255,255,255,0.06);
  border-radius:var(--radius); overflow:hidden;
}
.faq-question {
  width:100%; background:none; border:none;
  color:var(--white); font-size:15px; font-weight:600;
  text-align:left; padding:20px 24px; cursor:pointer;
  display:flex; justify-content:space-between;
  align-items:center; gap:16px;
  transition:var(--transition); font-family:var(--font-body);
}
.faq-question:hover { color:var(--gold); }
.faq-icon { font-size:20px; color:var(--gold); flex-shrink:0; transition:var(--transition); }
.faq-item.open .faq-icon { transform:rotate(45deg); }
.faq-answer { padding:0 24px; max-height:0; overflow:hidden; transition:all 0.4s ease; }
.faq-answer p { color:var(--grey); font-size:14px; line-height:1.7; padding-bottom:20px; }
.faq-item.open .faq-answer { max-height:600px; }

/* ── Divider ───────────────────────────────────────────────────── */
.divider {
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(201,168,76,0.2),transparent);
  margin:32px 0;
}

/* ── Footer ────────────────────────────────────────────────────── */
.site-footer {
  background:var(--dark-1);
  border-top:1px solid rgba(255,255,255,0.06);
  padding:64px 0 0;
}
.footer-grid {
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;
  gap:48px; margin-bottom:48px;
}
.footer-brand .logo  { margin-bottom:16px; display:inline-flex; }
.footer-brand p { font-size:13px; color:var(--grey); line-height:1.7; max-width:280px; margin-bottom:20px; }
.footer-col h4 {
  font-size:11px; font-weight:700; color:var(--white);
  text-transform:uppercase; letter-spacing:2px; margin-bottom:18px;
}
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:10px; }
.footer-col ul li a { font-size:13px; color:var(--grey); transition:var(--transition); }
.footer-col ul li a:hover { color:var(--gold); }
.footer-bottom {
  border-top:1px solid rgba(255,255,255,0.06);
  padding:24px 0;
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:16px;
}
.footer-bottom p { font-size:12px; color:var(--grey); }
.footer-bottom-links { display:flex; gap:24px; }
.footer-bottom-links a { font-size:12px; color:var(--grey); }
.footer-bottom-links a:hover { color:var(--gold); }
.footer-disclaimer {
  background:rgba(255,255,255,0.02);
  border-top:1px solid rgba(255,255,255,0.04);
  padding:20px 0;
  font-size:11px; color:rgba(255,255,255,0.3);
  text-align:center; line-height:1.6;
}

/* ── States Grid ───────────────────────────────────────────────── */
.states-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:10px; }
.state-link {
  background:var(--dark-2); border:1px solid rgba(255,255,255,0.06);
  border-radius:var(--radius); padding:12px 16px;
  font-size:13px; color:var(--grey-light);
  transition:var(--transition); text-align:center;
}
.state-link:hover { border-color:rgba(201,168,76,0.3); color:var(--gold); }

/* ── Toast ─────────────────────────────────────────────────────── */
@keyframes slideIn {
  from { opacity:0; transform:translateX(20px); }
  to   { opacity:1; transform:translateX(0); }
}
.cart-toast {
  position:fixed; bottom:24px; right:24px;
  background:var(--green-mid); color:#fff;
  padding:14px 24px; border-radius:var(--radius);
  font-size:14px; font-weight:600; z-index:9999;
  box-shadow:0 4px 20px rgba(0,0,0,0.4);
  border-left:4px solid var(--gold);
  animation:slideIn .3s ease;
}

/* ── Mobile Cart Bar ───────────────────────────────────────────── */
.mobile-checkout-bar {
  display:none;
  position:fixed; bottom:0; left:0; right:0;
  background:rgba(17,17,17,0.98);
  backdrop-filter:blur(12px);
  border-top:1px solid rgba(201,168,76,0.3);
  padding:14px 20px; z-index:998;
  box-shadow:0 -4px 24px rgba(0,0,0,0.5);
}
.mobile-checkout-inner {
  display:flex; align-items:center;
  justify-content:space-between;
  max-width:600px; margin:0 auto; gap:16px;
}

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE — TABLET
   ═══════════════════════════════════════════════════════════════ */
@media (max-width:1024px) {
  .footer-grid        { grid-template-columns:1fr 1fr; }
  .blog-post-layout   { grid-template-columns:1fr; }
  .blog-post-layout aside { display:none; }
  .checkout-layout    { grid-template-columns:1fr; }
  .cart-layout        { grid-template-columns:1fr; }
}

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE — MOBILE
   ═══════════════════════════════════════════════════════════════ */
@media (max-width:768px) {
  /* Header */
  .nav-desktop { display:none; }
  .hamburger   { display:flex; }

  /* Hero */
  .hero        { min-height:80vh; }
  .hero h1     { font-size:clamp(32px,8vw,52px); }
  .hero-stats  { gap:24px; }
  .hero-actions { flex-direction:column; }
  .hero-actions a,
  .hero-actions button { width:100%; justify-content:center; }

  /* Shipping banner */
  .shipping-banner { gap:16px; justify-content:flex-start; overflow-x:auto; flex-wrap:nowrap; padding:0 4px; }
  .shipping-badge  { flex-shrink:0; }

  /* Grids */
  .category-grid  { grid-template-columns:repeat(2,1fr); gap:12px; }
  .product-grid   { grid-template-columns:repeat(2,1fr); gap:12px; }
  .reviews-grid   { grid-template-columns:1fr; }
  .blog-grid      { grid-template-columns:1fr; }

  /* Product images smaller on mobile */
  .product-img-wrap { height:180px; }

  /* Product detail */
  .prod-layout    { grid-template-columns:1fr; gap:32px; }

  /* Checkout form */
  .form-grid      { grid-template-columns:1fr; }
  .payment-select { grid-template-columns:1fr; }

  /* Cart — show mobile bar, hide sidebar */
  .cart-layout    { grid-template-columns:1fr; }
  .cart-summary-desktop { display:none !important; }
  .mobile-checkout-bar  { display:block !important; }
  section.has-mobile-bar { padding-bottom:100px; }

  /* Footer */
  .footer-grid    { grid-template-columns:1fr 1fr; gap:32px; }
  .footer-bottom  { flex-direction:column; text-align:center; }
  .footer-bottom-links { justify-content:center; }

  /* Section spacing */
  .section { padding:56px 0; }
  .page-hero { padding:52px 0 40px; }
}

@media (max-width:480px) {
  .footer-grid    { grid-template-columns:1fr; }
  .category-grid  { grid-template-columns:repeat(2,1fr); gap:10px; }
  .product-grid   { grid-template-columns:repeat(2,1fr); gap:10px; }
  .category-img-wrap { height:120px; }
  .container      { padding:0 16px; }
}
