/* ===================== CART DRAWER ===================== */
.cart-overlay{
  position:fixed; inset:0; background:rgba(31,42,36,0.35); opacity:0; pointer-events:none;
  transition:opacity .2s; z-index:200;
}
.cart-overlay.open{opacity:1; pointer-events:auto;}
.cart-drawer{
  position:fixed; top:0; right:0; height:100%; width:min(420px, 92vw); background:var(--bg-card);
  box-shadow:-8px 0 32px rgba(31,42,36,0.14); transform:translateX(100%); transition:transform .25s ease;
  z-index:201; display:flex; flex-direction:column;
}
.cart-drawer.open{transform:translateX(0);}
.cart-drawer-head{display:flex; align-items:center; justify-content:space-between; padding:22px 24px; border-bottom:1px solid var(--border-soft);}
.cart-drawer-head h3{font-size:18px;}
.cart-close{background:none; border:none; font-size:26px; line-height:1; color:var(--ink-faint); cursor:pointer; padding:0;}
.cart-close:hover{color:var(--ink);}
.cart-items{flex:1; overflow-y:auto; padding:16px 24px;}
.cart-empty{font-size:14px; color:var(--ink-dim); padding:20px 0;}
.cart-empty a{color:var(--accent-dark); font-weight:600; text-decoration:none;}
.cart-item{display:flex; gap:12px; padding:14px 0; border-bottom:1px solid var(--border-soft);}
.cart-item img{width:64px; height:64px; object-fit:cover; border-radius:10px; flex-shrink:0; background:var(--bg-soft);}
.cart-item-info{flex:1;}
.cart-item-name{font-size:13.5px; font-weight:600; margin-bottom:4px;}
.cart-item-price{font-family:var(--font-head); color:var(--accent-dark); font-size:14px; margin-bottom:8px;}
.cart-qty-row{display:flex; align-items:center; gap:8px;}
.qty-btn{
  width:26px; height:26px; border-radius:50%; border:1px solid var(--border); background:var(--bg-soft);
  color:var(--ink); font-size:15px; cursor:pointer; line-height:1;
}
.qty-btn:hover{border-color:var(--accent);}
.cart-remove{background:none; border:none; color:var(--ink-faint); font-size:12px; text-decoration:underline; cursor:pointer; margin-left:auto; padding:0;}
.cart-remove:hover{color:#C0503A;}
.cart-drawer-foot{padding:20px 24px; border-top:1px solid var(--border-soft);}
.cart-total-row{display:flex; justify-content:space-between; align-items:baseline; font-family:var(--font-head); font-size:16px; font-weight:700; margin-bottom:14px;}
.cart-total-row span:last-child{color:var(--warm); font-size:24px;}
.btn-checkout{
  display:block; width:100%; text-align:center; padding:15px 20px; background:var(--accent); color:#fff;
  border:none; border-radius:14px; font-family:var(--font-head); font-weight:700; font-size:15px; cursor:pointer; transition:.15s;
}
.btn-checkout:hover:not(:disabled){background:var(--accent-dark);}
.btn-checkout:disabled{background:var(--border); color:var(--ink-faint); cursor:not-allowed;}
.cart-note{font-size:11.5px; color:var(--ink-faint); margin-top:10px; text-align:center; line-height:1.5;}

.cart-btn{
  position:relative; display:flex; align-items:center; gap:7px; background:none; border:1px solid var(--border);
  border-radius:999px; padding:9px 16px; font-family:var(--font-body); font-weight:600; font-size:13.5px;
  color:var(--ink); cursor:pointer; transition:.15s;
}
.cart-btn:hover{border-color:var(--accent); color:var(--accent-dark);}
.cart-badge{
  display:none; align-items:center; justify-content:center; min-width:18px; height:18px; padding:0 4px; border-radius:999px;
  background:var(--warm); color:#fff; font-size:11px; font-weight:700; line-height:1;
}

/* ===================== SHOP GRID ===================== */
.shop-hero{max-width:820px; margin:0 auto; padding:56px 24px 8px; text-align:center;}
.shop-hero h1{font-size:clamp(28px,4.5vw,42px); line-height:1.15;}
.shop-hero p{font-size:16px; max-width:56ch; margin:16px auto 0;}

.shop-wrap{max-width:1180px; margin:0 auto; padding:40px 48px 90px;}
@media (max-width:900px){ .shop-wrap{padding:30px 20px 60px;} }
.shop-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
@media (max-width:900px){ .shop-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .shop-grid{grid-template-columns:1fr;} }

.product-card{
  background:var(--bg-card); border:1px solid var(--border-soft); border-radius:20px; overflow:hidden;
  box-shadow:var(--shadow-sm); transition:.2s; display:flex; flex-direction:column;
}
.product-card:hover{box-shadow:var(--shadow-md); transform:translateY(-2px);}
.product-card a.thumb-link{display:block;}
.product-card .thumb{aspect-ratio:4/3; overflow:hidden; background:var(--bg-soft);}
.product-card .thumb img{width:100%; height:100%; object-fit:cover; display:block;}
.product-card-body{padding:18px 20px 20px; display:flex; flex-direction:column; gap:8px; flex:1;}
.product-card .cat{font-family:var(--font-body); font-size:11.5px; font-weight:600; color:var(--accent-dark); text-transform:uppercase; letter-spacing:.04em;}
.product-card h3{font-size:16px; line-height:1.35;}
.product-card h3 a{color:var(--ink); text-decoration:none;}
.product-card p.blurb{font-size:13.5px; margin:0; flex:1;}
.product-card .price-row{display:flex; align-items:center; justify-content:space-between; margin-top:6px;}
.product-card .price{font-family:var(--font-head); font-size:18px; font-weight:700; color:var(--ink);}
.add-btn{
  background:var(--accent); color:#fff; border:none; border-radius:999px; padding:10px 18px; font-family:var(--font-head);
  font-weight:700; font-size:13px; cursor:pointer; transition:.15s; white-space:nowrap;
}
.add-btn:hover{background:var(--accent-dark);}
.add-btn.added{background:#2f9e6f;}

/* ===================== PRODUCT DETAIL PAGE ===================== */
.product-wrap{max-width:1100px; margin:0 auto; padding:40px 48px 90px;}
@media (max-width:900px){ .product-wrap{padding:24px 20px 60px;} }
.breadcrumb{font-size:13px; color:var(--ink-faint); margin-bottom:24px;}
.breadcrumb a{color:var(--ink-faint); text-decoration:none;}
.breadcrumb a:hover{color:var(--accent-dark);}
.product-detail{display:grid; grid-template-columns:1.1fr 1fr; gap:44px;}
@media (max-width:900px){ .product-detail{grid-template-columns:1fr; gap:28px;} }

.product-gallery-main{aspect-ratio:4/3; border-radius:20px; overflow:hidden; background:var(--bg-soft); border:1px solid var(--border-soft);}
.product-gallery-main img{width:100%; height:100%; object-fit:cover; display:block;}
.product-gallery-thumbs{display:flex; gap:10px; margin-top:12px;}
.product-gallery-thumbs img{width:72px; height:72px; object-fit:cover; border-radius:12px; cursor:pointer; border:2px solid transparent; opacity:.7; transition:.15s;}
.product-gallery-thumbs img:hover, .product-gallery-thumbs img.active{opacity:1; border-color:var(--accent);}

.product-info .cat{font-family:var(--font-body); font-size:12px; font-weight:600; color:var(--accent-dark); text-transform:uppercase; letter-spacing:.05em;}
.product-info h1{font-size:clamp(24px,3vw,32px); line-height:1.25; margin-top:10px;}
.product-info .price{font-family:var(--font-head); font-size:28px; font-weight:800; color:var(--ink); margin-top:14px;}
.product-info .tier-note{font-size:13px; color:var(--ink-dim); margin-top:6px;}
.product-info .desc{margin-top:18px; font-size:15px; line-height:1.65;}
.detail-list{list-style:none; padding:0; margin:20px 0 0; display:flex; flex-direction:column; gap:9px;}
.detail-list li{font-size:14px; color:var(--ink-dim); padding-left:22px; position:relative;}
.detail-list li::before{content:"\2713"; position:absolute; left:0; color:var(--accent); font-weight:700;}

.qty-select-row{display:flex; align-items:center; gap:14px; margin-top:26px;}
.qty-select-row label{font-family:var(--font-body); font-weight:600; font-size:13.5px;}
.qty-select-row select{width:80px; background:var(--bg-card); border:1.5px solid var(--border); border-radius:12px; color:var(--ink); padding:10px 12px; font-family:var(--font-body); font-size:14.5px;}

.product-cta{margin-top:22px; display:flex; gap:12px; flex-wrap:wrap;}
.product-cta .add-btn{flex:1; min-width:180px; padding:15px 20px; font-size:14.5px; border-radius:14px;}
.product-cta .buy-now-btn{
  flex:1; min-width:180px; text-align:center; padding:15px 20px; background:var(--ink); color:#fff; border:none;
  border-radius:14px; font-family:var(--font-head); font-weight:700; font-size:14.5px; cursor:pointer; transition:.15s;
}
.product-cta .buy-now-btn:hover{background:#0f1b16;}
.related-note{margin-top:26px; font-size:13px; color:var(--ink-faint);}
.related-note a{color:var(--accent-dark); text-decoration:none; font-weight:600;}
