@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;700&family=DM+Sans:wght@400;500;700&display=swap');

:root{
  --ink:#1A1A1A;
  --cream:#FFF8EC;
  --mint:#9FE6B8;
  --coral:#FF6B5B;
  --amber:#F2A33D;
  --purple:#8C6FE6;
  --pink:#FF8FB3;
}

*{box-sizing:border-box;margin:0;padding:0;}

body{
  font-family:'DM Sans', sans-serif;
  background:var(--cream);
  color:var(--ink);
}

a{color:inherit;}

img{display:block;max-width:100%;}

/* ---- topbar ---- */
.topbar{
  background:var(--ink);
  color:var(--cream);
  text-align:center;
  font-size:13px;
  font-weight:700;
  letter-spacing:.03em;
  padding:8px 0;
}

/* ---- header ---- */
header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:20px 48px;
  border-bottom:3px solid var(--ink);
  background:var(--cream);
  position:sticky;
  top:0;
  z-index:50;
}
.logo{
  font-family:'Space Grotesk', sans-serif;
  font-weight:700;
  font-size:28px;
  display:flex;
  align-items:center;
  gap:8px;
  text-decoration:none;
  color:var(--ink);
}
.logo .dot{
  display:inline-block;
  width:14px;height:14px;
  background:var(--coral);
  border:2px solid var(--ink);
  border-radius:50%;
}
nav{display:flex;gap:32px;font-weight:700;font-size:15px;}
nav a{color:var(--ink);text-decoration:none;position:relative;padding-bottom:4px;}
nav a.active{border-bottom:3px solid var(--coral);}
.header-icons{display:flex;gap:18px;font-size:20px;align-items:center;}
.header-icons span{cursor:pointer;}
.cart-wrap{position:relative;display:inline-block;}
.cart-badge{
  position:absolute;top:-10px;right:-12px;
  background:var(--coral);border:2px solid var(--ink);border-radius:50%;
  width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:700;color:var(--ink);
}

/* ---- breadcrumb ---- */
.breadcrumb{
  max-width:1200px;
  margin:0 auto;
  padding:20px 48px 0;
  font-size:13px;
  font-weight:700;
}
.breadcrumb a{ text-decoration:none; opacity:.6; }
.breadcrumb a:hover{ opacity:1; }
.breadcrumb .sep{ margin:0 6px; opacity:.4; }

/* ---- hero (home) ---- */
.hero{
  position:relative;
  padding:64px 48px 80px;
  background:var(--mint);
  border-bottom:3px solid var(--ink);
  overflow:hidden;
}
.hero-inner{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:40px;
  align-items:center;
  max-width:1200px;
  margin:0 auto;
  position:relative;
  z-index:2;
}
.hero h1{
  font-family:'Space Grotesk', sans-serif;
  font-size:64px;
  line-height:1.02;
  font-weight:700;
  letter-spacing:-.01em;
}
.hero h1 .underline{
  text-decoration:underline;
  text-decoration-color:var(--coral);
  text-decoration-thickness:8px;
  text-underline-offset:6px;
}
.hero p{
  margin-top:18px;
  font-size:19px;
  max-width:440px;
  font-weight:500;
}
.hero-btns{margin-top:30px;display:flex;gap:16px;}

.btn{
  font-family:'Space Grotesk', sans-serif;
  font-weight:700;
  font-size:16px;
  padding:16px 28px;
  border:3px solid var(--ink);
  border-radius:100px;
  cursor:pointer;
  box-shadow:5px 5px 0 var(--ink);
  transition:transform .1s;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:var(--cream);
  color:var(--ink);
}
.btn:hover{ transform:translate(-2px,-2px); }
.btn-primary{background:var(--coral);color:var(--cream);}
.btn-secondary{background:var(--cream);color:var(--ink);}
.btn-sm{
  font-size:13px;
  padding:10px 18px;
  box-shadow:3px 3px 0 var(--ink);
}

.hero-art{
  position:relative;
  height:380px;
}
.blob{
  position:absolute;
  border:3px solid var(--ink);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-weight:700;
  text-align:center;
  box-shadow:6px 6px 0 var(--ink);
  text-decoration:none;
  color:inherit;
  cursor:pointer;
}
.blob-1{width:160px;height:160px;background:var(--purple);color:var(--cream);top:0;left:10px;font-size:14px;padding:10px;transform:rotate(-8deg);}
.blob-2{width:140px;height:140px;background:var(--amber);color:var(--ink);top:40px;right:90px;font-size:14px;padding:10px;transform:rotate(6deg);}
.blob-3{width:120px;height:120px;background:var(--pink);color:var(--ink);bottom:10px;left:70px;font-size:13px;padding:10px;transform:rotate(4deg);}
.blob-4{width:110px;height:110px;background:var(--coral);color:var(--cream);bottom:0;right:0;font-size:13px;padding:10px;transform:rotate(-5deg);}
.star{
  position:absolute;
  font-family:'Space Grotesk';
  font-size:30px;
}

/* ---- page hero (category pages) ---- */
.page-hero{
  padding:40px 48px 48px;
  max-width:1200px;
  margin:0 auto;
}
.page-hero .eyebrow{
  display:inline-block;
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  background:var(--ink);
  color:var(--cream);
  padding:5px 14px;
  border-radius:100px;
  margin-bottom:16px;
}
.page-hero h1{
  font-family:'Space Grotesk', sans-serif;
  font-size:44px;
  margin-bottom:10px;
}
.page-hero p{
  font-size:16px;
  font-weight:500;
  max-width:560px;
  opacity:.8;
}

/* ---- category strip ---- */
.cats{
  padding:56px 48px;
  max-width:1200px;
  margin:0 auto;
}
.cats h2{
  font-family:'Space Grotesk', sans-serif;
  font-size:32px;
  margin-bottom:28px;
}
.cat-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.cat-card{
  border:3px solid var(--ink);
  border-radius:20px;
  padding:22px 18px;
  box-shadow:5px 5px 0 var(--ink);
  cursor:pointer;
  transition:transform .12s;
  text-decoration:none;
  color:inherit;
  display:block;
}
.cat-card:hover{ transform:translate(-3px,-3px); }
.cat-icon{
  width:50px;height:50px;
  border:3px solid var(--ink);
  border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  font-size:24px;
  margin-bottom:14px;
}
.cat-card h3{
  font-family:'Space Grotesk', sans-serif;
  font-size:17px;
  margin-bottom:5px;
}
.cat-card p{font-size:12.5px;font-weight:500;opacity:.75;}
.cat-toys{background:var(--pink);}
.cat-toys .cat-icon{background:var(--cream);}
.cat-grocery{background:var(--amber);}
.cat-grocery .cat-icon{background:var(--cream);color:var(--ink);}
.cat-beauty{background:var(--purple);color:var(--cream);}
.cat-beauty .cat-icon{background:var(--cream);color:var(--ink);}
.cat-pet{background:var(--coral);color:var(--cream);}
.cat-pet .cat-icon{background:var(--cream);color:var(--ink);}
.cat-home{background:var(--mint);}
.cat-home .cat-icon{background:var(--cream);color:var(--ink);}
.cat-apparel{background:#C9BBF2;}
.cat-apparel .cat-icon{background:var(--cream);color:var(--ink);}

/* ---- product strip / grid ---- */
.products{
  background:var(--ink);
  padding:56px 48px;
}
.products.light{
  background:transparent;
  padding:0 48px 56px;
}
.products-inner{ max-width:1200px;margin:0 auto; }
.products h2{
  font-family:'Space Grotesk', sans-serif;
  color:var(--cream);
  font-size:32px;
  margin-bottom:28px;
}
.products.light h2{ color:var(--ink); }
.section-foot{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:28px; }
.section-foot a{ color:var(--cream); font-weight:700; font-size:14px; text-decoration:none; opacity:.8; }
.products.light .section-foot a{ color:var(--ink); }

.prod-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
}
.prod-card{
  background:var(--cream);
  border:3px solid var(--ink);
  border-radius:18px;
  overflow:hidden;
  box-shadow:5px 5px 0 var(--amber);
  text-decoration:none;
  color:inherit;
  display:block;
  transition:transform .12s;
}
.prod-card:hover{ transform:translate(-2px,-2px); }
.prod-img{
  height:160px;
  background:var(--purple);
  border-bottom:3px solid var(--ink);
  display:flex;align-items:center;justify-content:center;
  font-size:40px;
  overflow:hidden;
}
.prod-img img{ height:100%; width:100%; object-fit:contain; padding:14px; background:#fff; }
.prod-img.bg-mint{background:var(--mint);}
.prod-img.bg-amber{background:var(--amber);}
.prod-img.bg-coral{background:var(--coral);}
.prod-img.bg-pink{background:var(--pink);}
.prod-img.bg-purple{background:var(--purple);}
.prod-body{ padding:16px; }
.prod-tag{
  display:inline-block;
  font-size:10.5px;
  font-weight:700;
  background:var(--mint);
  border:2px solid var(--ink);
  border-radius:100px;
  padding:2px 10px;
  margin-bottom:8px;
}
.prod-tag.placeholder{ background:var(--cream); opacity:.6; }
.prod-body h4{font-size:15px;margin-bottom:6px;font-weight:700;line-height:1.3;}
.prod-price{font-family:'Space Grotesk';font-weight:700;font-size:18px;}
.prod-price.tbd{ font-size:13px; opacity:.55; font-weight:500; font-family:'DM Sans'; }

/* ---- filter bar (category pages) ---- */
.filter-bar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  max-width:1200px;
  margin:0 auto;
  padding:0 48px 24px;
  flex-wrap:wrap;
  gap:14px;
}
.filter-pills{ display:flex; gap:10px; flex-wrap:wrap; }
.filter-pill{
  font-size:13px;
  font-weight:700;
  border:2px solid var(--ink);
  border-radius:100px;
  padding:7px 16px;
  background:var(--cream);
  cursor:pointer;
}
.filter-pill.active{ background:var(--ink); color:var(--cream); }
.sort-select{
  font-family:'DM Sans';
  font-weight:700;
  font-size:13px;
  border:2px solid var(--ink);
  border-radius:100px;
  padding:7px 16px;
  background:var(--cream);
  cursor:pointer;
}

/* ---- banner ---- */
.banner{
  padding:60px 48px;
  text-align:center;
  background:var(--amber);
  border-top:3px solid var(--ink);
  border-bottom:3px solid var(--ink);
}
.banner h2{
  font-family:'Space Grotesk', sans-serif;
  font-size:38px;
  color:var(--ink);
  max-width:600px;
  margin:0 auto 14px;
  line-height:1.1;
}
.banner p{ color:var(--ink); font-weight:500; opacity:.85; }

/* ---- product detail page ---- */
.pdp{
  max-width:1200px;
  margin:0 auto;
  padding:32px 48px 70px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:56px;
}
.pdp-gallery-main{
  border:3px solid var(--ink);
  border-radius:20px;
  box-shadow:6px 6px 0 var(--ink);
  height:440px;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
  background:#fff;
}
.pdp-gallery-main img{ height:100%; width:100%; object-fit:contain; padding:32px; }
.pdp-thumbs{ display:flex; gap:12px; margin-top:16px; }
.pdp-thumb{
  width:70px;height:70px;
  border:2px solid var(--ink);
  border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  overflow:hidden;
  background:#fff;
}
.pdp-thumb img{ height:100%; width:100%; object-fit:contain; padding:6px; }
.pdp-info .cat-link{
  font-size:13px;
  font-weight:700;
  text-decoration:none;
  opacity:.65;
}
.pdp-info h1{
  font-family:'Space Grotesk', sans-serif;
  font-size:32px;
  margin:10px 0 14px;
  line-height:1.2;
}
.pdp-price-row{ display:flex; align-items:baseline; gap:12px; margin-bottom:20px; }
.pdp-price{ font-family:'Space Grotesk'; font-weight:700; font-size:28px; }
.pdp-price.tbd{ font-size:16px; opacity:.55; font-weight:500; font-family:'DM Sans'; }
.pdp-badge{
  display:inline-block;
  font-size:11px;
  font-weight:700;
  border:2px solid var(--ink);
  border-radius:100px;
  padding:3px 12px;
  background:var(--mint);
}
.pdp-desc{ font-size:15.5px; line-height:1.7; margin-bottom:24px; opacity:.85; }
.pdp-options{ margin-bottom:24px; }
.pdp-options label{ font-weight:700; font-size:13px; display:block; margin-bottom:10px; }
.option-pills{ display:flex; gap:10px; }
.option-pill{
  border:2px solid var(--ink);
  border-radius:10px;
  padding:9px 18px;
  font-weight:700;
  font-size:14px;
  cursor:pointer;
  background:var(--cream);
  text-decoration:none;
  color:inherit;
}
.option-pill.active{ background:var(--ink); color:var(--cream); }
.pdp-actions{ display:flex; gap:14px; margin-bottom:28px; }
.pdp-meta{
  border-top:2px dashed var(--ink);
  padding-top:20px;
  font-size:13px;
}
.pdp-meta div{ display:flex; justify-content:space-between; padding:6px 0; opacity:.75; }
.pdp-meta div span:first-child{ font-weight:700; opacity:1; }

/* ---- footer ---- */
footer{
  border-top:3px solid var(--ink);
  background:var(--cream);
}
.footer-inner{
  max-width:1200px;
  margin:0 auto;
  padding:48px 48px 28px;
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:32px;
}
.footer-inner .logo{ margin-bottom:12px; }
.footer-inner p{ font-size:13.5px; opacity:.7; max-width:280px; line-height:1.6; }
.footer-col h5{
  font-family:'Space Grotesk';
  font-size:14px;
  margin-bottom:14px;
}
.footer-col a{
  display:block;
  font-size:13.5px;
  text-decoration:none;
  opacity:.7;
  margin-bottom:10px;
}
.footer-bottom{
  text-align:center;
  font-size:12.5px;
  font-weight:500;
  opacity:.6;
  padding:20px 0;
  border-top:1px solid rgba(26,26,26,.15);
}

/* ---- responsive ---- */
@media (max-width: 980px){
  .cat-grid{ grid-template-columns:repeat(2,1fr); }
  .prod-grid{ grid-template-columns:repeat(2,1fr); }
  .hero-inner{ grid-template-columns:1fr; }
  .pdp{ grid-template-columns:1fr; }
  nav{ display:none; }
  .footer-inner{ grid-template-columns:1fr 1fr; }
}
