:root{
  --cream:#FBF3EF;
  --blush:#F6DCE0;
  --rose:#E8A0BF;
  --plum:#4A2E3B;
  --plum-soft:#7A5468;
  --gold:#C9A66B;
  --white:#FFFFFF;
  --radius:18px;
  --shadow: 0 10px 30px rgba(74,46,59,0.08);
}

*{box-sizing:border-box;margin:0;padding:0;}

body{
  font-family:'Poppins', sans-serif;
  background:var(--cream);
  color:var(--plum);
  font-weight:300;
  line-height:1.6;
}

h1,h2,h3,.logo{
  font-family:'Fraunces', serif;
  font-weight:600;
  color:var(--plum);
}

a{color:inherit;text-decoration:none;}

.wrap{max-width:1160px;margin:0 auto;padding:0 24px;}

/* Header */
.site-header{
  background:var(--white);
  border-bottom:1px solid rgba(74,46,59,0.08);
  position:sticky;top:0;z-index:50;
}
.header-inner{
  display:flex;align-items:center;justify-content:space-between;
  height:80px;
}
.logo{font-size:1.5rem;letter-spacing:0.5px;display:flex;align-items:center;height:100%;}
.logo span{color:var(--rose);margin:0 4px;font-style:italic;}
.logo-img{
  height:100px;
  width:auto;
  max-width:340px;
  object-fit:contain;
  display:block;
}
.main-nav{display:flex;gap:28px;}
<?php
require_once __DIR__ . '/cart.php';
require_once __DIR__ . '/wishlist.php';
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><?= isset($page_title) ? htmlspecialchars($page_title) . ' — justagirl' : 'justagirl — Cute Makeup Bags & Jewelry Storage' ?></title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Fraunces:ital,wght@0,400;0,600;1,500&family=Poppins:wght@300;400;500;600&display=swap" rel="stylesheet">
<link rel="stylesheet" href="assets/css/style.css">
</head>
<body>

<header class="site-header">
  <div class="wrap header-inner">
    <button class="mobile-menu-btn" id="mobileMenuBtn" aria-label="Menu">☰</button>

    <a href="index.php" class="logo">
      <img src="assets/img/logo.png" alt="justagirl" class="logo-img">
    </a>

    <nav class="main-nav">
      <a href="index.php">Home</a>
      <a href="shop.php">Shop</a>
      <a href="rewards.php">Rewards</a>
      <a href="shop.php?category=Mugs">Mugs</a>
      <a href="shop.php?category=Mirrors">Mirrors</a>
      <a href="shop.php?category=Pouches">Pouches</a>
      <a href="shop.php?category=Boxes">Boxes</a>
      <a href="shop.php?category=Journals">Journals</a>
      <a href="shop.php?category=Bundles">Bundles</a>
    </nav>

    <div class="header-icons">
      <a href="wishlist.php" class="icon-link" aria-label="Wishlist">
        <span class="icon-heart">♡</span>
        <?php if (wishlist_count() > 0): ?>
          <span class="icon-badge"><?= wishlist_count() ?></span>
        <?php endif; ?>
      </a>
      <a href="cart.php" class="icon-link" aria-label="Cart">
        <span class="icon-cart">🛍</span>
        <?php if (cart_count() > 0): ?>
          <span class="icon-badge"><?= cart_count() ?></span>
        <?php endif; ?>
      </a>
      <a href="cart.php" class="cart-link cart-link-desktop">
        Cart
        <span class="cart-count"><?= cart_count() ?></span>
      </a>
    </div>
  </div>
</header>

<div class="mobile-menu-overlay" id="mobileMenuOverlay">
  <div class="mobile-menu-panel">
    <button class="mobile-menu-close" id="mobileMenuClose" aria-label="Close">&times;</button>
    <nav class="mobile-menu-nav">
      <a href="index.php">Home</a>
      <a href="shop.php">Shop</a>
      <a href="rewards.php">Rewards</a>
      <a href="wishlist.php">Wishlist</a>
      <a href="shop.php?category=Mugs">Mugs</a>
      <a href="shop.php?category=Mirrors">Mirrors</a>
      <a href="shop.php?category=Pouches">Pouches</a>
      <a href="shop.php?category=Boxes">Boxes</a>
      <a href="shop.php?category=Journals">Journals</a>
      <a href="shop.php?category=Bundles">Bundles</a>
    </nav>
  </div>
</div>

<script>
(function(){
  var btn = document.getElementById('mobileMenuBtn');
  var overlay = document.getElementById('mobileMenuOverlay');
  var closeBtn = document.getElementById('mobileMenuClose');
  if (btn && overlay && closeBtn) {
    btn.addEventListener('click', function(){ overlay.classList.add('open'); });
    closeBtn.addEventListener('click', function(){ overlay.classList.remove('open'); });
    overlay.addEventListener('click', function(e){
      if (e.target === overlay) overlay.classList.remove('open');
    });
  }
})();
</script>
.main-nav a{font-size:0.92rem;letter-spacing:0.3px;transition:color .2s;}
.main-nav a:hover{color:var(--rose);}
.cart-link{
  display:flex;align-items:center;gap:8px;
  font-size:0.92rem;font-weight:500;
  border:1px solid var(--plum);
  padding:8px 16px;border-radius:999px;
  transition:background .2s,color .2s;
}
.cart-link:hover{background:var(--plum);color:var(--white);}
.cart-count{
  background:var(--rose);color:var(--white);
  font-size:0.75rem;min-width:20px;height:20px;
  border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  padding:0 4px;
}

/* Hero */
.hero{
  padding:80px 0 60px;
  background:linear-gradient(180deg, var(--blush) 0%, var(--cream) 100%);
  position:relative;
  overflow:hidden;
}
.hero-inner{
  display:grid;grid-template-columns:1.1fr 0.9fr;gap:48px;align-items:center;
}
.eyebrow{
  text-transform:uppercase;letter-spacing:3px;font-size:0.75rem;
  color:var(--gold);font-weight:500;margin-bottom:14px;
}
.hero h1{
  font-size:3.2rem;line-height:1.08;margin-bottom:20px;
}
.hero h1 em{color:var(--rose);font-style:italic;}
.hero p{
  font-size:1.05rem;color:var(--plum-soft);max-width:440px;margin-bottom:32px;
}
.btn{
  display:inline-block;padding:14px 32px;border-radius:999px;
  font-size:0.95rem;font-weight:500;letter-spacing:0.3px;
  transition:transform .2s, box-shadow .2s;
}
.btn-primary{background:var(--plum);color:var(--white);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow);}
.btn-outline{background:transparent;border:1.5px solid var(--plum);color:var(--plum);}
.btn-outline:hover{background:var(--plum);color:var(--white);}

.hero-visual{
  aspect-ratio:1/1;border-radius:32px;
  background:radial-gradient(circle at 30% 30%, var(--rose), var(--blush) 70%);
  position:relative;
  box-shadow:var(--shadow);
  background-size:cover;
  background-position:center;
}
#hero3d{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border-radius:32px;
  cursor:grab;
}
.hero-visual::before{
  content:'';position:absolute;inset:20px;
  border:1.5px dashed rgba(255,255,255,0.6);border-radius:24px;
  pointer-events:none;
}
.hero-visual::after{
  content:'✦';position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  font-size:3rem;color:var(--white);opacity:0.85;
  pointer-events:none;
}

/* Scallop divider - signature ruffle element */
.scallop{
  height:36px;width:100%;
  background:
    radial-gradient(circle at 18px 0, transparent 17px, var(--cream) 18px) 0 -18px / 36px 36px repeat-x;
}
.scallop.flip{transform:scaleY(-1);}

/* Section headings */
.section{padding:64px 0;}
.section-head{
  display:flex;justify-content:space-between;align-items:flex-end;
  margin-bottom:36px;flex-wrap:wrap;gap:16px;
}
.section-head h2{font-size:2rem;}
.section-head p{color:var(--plum-soft);max-width:420px;}

/* Category cards - image style, swipeable on mobile */
.categories{
  display:flex;gap:14px;margin-bottom:16px;
}
.category-card{
  position:relative;
  flex:1;
  height:220px;
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow);
  transition:transform .2s;
  display:flex;align-items:flex-end;
}
.category-card:hover{transform:translateY(-4px);}
.category-card-label{
  color:var(--white);
  font-family:'Fraunces', serif;
  font-weight:600;
  font-size:1.15rem;
  padding:20px;
  text-shadow:0 2px 8px rgba(0,0,0,0.25);
}
.categories-dots{
  display:none;
  justify-content:center;
  gap:8px;
  margin-top:14px;
}
.categories-dots .dot{
  width:7px;height:7px;border-radius:50%;
  background:rgba(74,46,59,0.2);
  transition:background .2s;
}
.categories-dots .dot.active{
  background:var(--plum);
}

@media (max-width:600px){
  .categories{
    flex-wrap:nowrap;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    padding-bottom:4px;
  }
  .categories::-webkit-scrollbar{display:none;}
  .categories{scrollbar-width:none;}
  .category-card{
    flex:0 0 78%;
    scroll-snap-align:start;
    height:280px;
  }
  .categories-dots{display:flex;}
}

/* Product grid */
.product-grid{
  display:grid;grid-template-columns:repeat(auto-fill, minmax(230px, 1fr));
  gap:28px;
}
.product-card{
  background:var(--white);border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow);
  transition:transform .2s;
  display:flex;flex-direction:column;
}
.product-card:hover{transform:translateY(-4px);}
.product-thumb{
  aspect-ratio:1/1;
  display:flex;align-items:center;justify-content:center;
  position:relative;
}
.product-thumb::after{
  content:'';position:absolute;inset:16%;
  border:1.5px solid rgba(255,255,255,0.55);border-radius:14px;
}
.product-card-body{padding:18px 20px 22px;flex:1;display:flex;flex-direction:column;}
.product-cat{font-size:0.72rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--gold);margin-bottom:6px;}
.product-card h3{font-size:1.02rem;margin-bottom:6px;}
.product-card p{font-size:0.88rem;color:var(--plum-soft);flex:1;margin-bottom:14px;}
.product-price{font-weight:500;font-size:1.05rem;margin-bottom:14px;}
.product-card form{margin-top:auto;}
.btn-small{
  width:100%;padding:10px;border-radius:999px;
  background:var(--plum);color:var(--white);border:none;
  font-family:'Poppins',sans-serif;font-size:0.85rem;font-weight:500;
  cursor:pointer;transition:background .2s;
}
.btn-small:hover{background:var(--rose);}

/* Filter bar */
.filter-bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:32px;}
.filter-pill{
  padding:8px 18px;border-radius:999px;border:1px solid var(--plum);
  font-size:0.85rem;transition:.2s;
}
.filter-pill.active,.filter-pill:hover{background:var(--plum);color:var(--white);}

/* Product detail */
.product-detail{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:flex-start;}
.detail-visual{aspect-ratio:1/1;border-radius:24px;box-shadow:var(--shadow);position:relative;}
.detail-visual::after{
  content:'';position:absolute;inset:14%;border:1.5px solid rgba(255,255,255,0.55);border-radius:16px;
}
.detail-info .product-cat{margin-bottom:10px;}
.detail-info h1{font-size:2.2rem;margin-bottom:12px;}
.detail-price{font-size:1.4rem;color:var(--rose);font-weight:500;margin-bottom:20px;}
.detail-info p.desc{color:var(--plum-soft);margin-bottom:28px;max-width:480px;}
.qty-row{display:flex;align-items:center;gap:16px;margin-bottom:24px;}
.qty-row input{
  width:70px;padding:10px;border-radius:10px;border:1px solid rgba(74,46,59,0.2);
  font-family:'Poppins',sans-serif;text-align:center;
}
.back-link{display:inline-block;margin-bottom:24px;font-size:0.88rem;color:var(--plum-soft);}
.back-link:hover{color:var(--rose);}

/* Cart page */
.cart-table{width:100%;border-collapse:collapse;margin-bottom:32px;}
.cart-table th{
  text-align:left;font-size:0.78rem;text-transform:uppercase;letter-spacing:1px;
  color:var(--plum-soft);padding-bottom:12px;border-bottom:1px solid rgba(74,46,59,0.12);
}
.cart-table td{padding:18px 0;border-bottom:1px solid rgba(74,46,59,0.08);vertical-align:middle;}
.cart-product{display:flex;align-items:center;gap:16px;}
.cart-thumb{width:64px;height:64px;border-radius:12px;flex-shrink:0;}
.cart-table input[type=number]{
  width:60px;padding:6px;border-radius:8px;border:1px solid rgba(74,46,59,0.2);
  text-align:center;font-family:'Poppins',sans-serif;
}
.cart-table button.link-btn{
  background:none;border:none;color:var(--plum-soft);cursor:pointer;
  font-family:'Poppins',sans-serif;font-size:0.85rem;text-decoration:underline;
}
.cart-summary{
  max-width:360px;margin-left:auto;background:var(--white);
  border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);
}
.cart-summary .row{display:flex;justify-content:space-between;margin-bottom:12px;font-size:0.92rem;}
.cart-summary .row.total{font-weight:500;font-size:1.15rem;border-top:1px solid rgba(74,46,59,0.1);padding-top:14px;margin-top:14px;}
.empty-state{text-align:center;padding:60px 0;color:var(--plum-soft);}

/* Checkout */
.checkout-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:flex-start;}
.form-group{margin-bottom:18px;}
.form-group label{display:block;font-size:0.85rem;margin-bottom:6px;color:var(--plum-soft);}
.form-group input,.form-group textarea,.form-group select{
  width:100%;padding:12px 14px;border-radius:10px;border:1px solid rgba(74,46,59,0.2);
  font-family:'Poppins',sans-serif;font-size:0.92rem;background:var(--white);
}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.order-summary{
  background:var(--white);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);
}
.order-summary .item-row{display:flex;justify-content:space-between;font-size:0.88rem;margin-bottom:10px;color:var(--plum-soft);}
.confirmation{
  text-align:center;padding:80px 0;
}
.confirmation .icon{font-size:3rem;margin-bottom:20px;}
.confirmation h1{margin-bottom:14px;}
.confirmation p{color:var(--plum-soft);margin-bottom:28px;}

/* Newsletter band */
.newsletter{
  background:var(--plum);color:var(--white);padding:60px 0;text-align:center;
}
.newsletter h2{color:var(--white);margin-bottom:12px;}
.newsletter p{color:rgba(255,255,255,0.75);margin-bottom:28px;}
.newsletter-form{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;}
.newsletter-form input{
  padding:13px 18px;border-radius:999px;border:none;min-width:280px;
  font-family:'Poppins',sans-serif;
}
.newsletter-form button{
  padding:13px 28px;border-radius:999px;border:none;background:var(--gold);color:var(--plum);
  font-family:'Poppins',sans-serif;font-weight:500;cursor:pointer;
}

/* Footer */
.site-footer{
  background:var(--blush);
  margin-top:40px;
}
.footer-bottom{
  padding:24px 0;
  font-size:0.85rem;
  color:var(--plum-soft);
  text-align:center;
}

/* Responsive */
@media (max-width:820px){
  .hero-inner{grid-template-columns:1fr;}
  .main-nav{display:none;}
  .product-detail{grid-template-columns:1fr;}
  .checkout-grid{grid-template-columns:1fr;}
  .hero h1{font-size:2.3rem;}
}