:root{
  --shop-ink:#17171a;
  --shop-wine:#7c1025;
  --shop-wine-dark:#4d0714;
  --shop-cream:#fbf7f5;
  --shop-blush:#f6ecef;
  --shop-line:#e8dfe2;
  --shop-gold:#b99563;
}
.shop-hero{
  padding:72px 0 54px;
  background:
    radial-gradient(circle at 82% 18%, rgba(185,149,99,.18), transparent 26%),
    linear-gradient(135deg,#fff 0%,#fbf7f5 55%,#f4e8ec 100%);
  border-bottom:1px solid var(--shop-line);
}
.shop-hero-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:52px;
  align-items:center;
}
.shop-hero h1{
  font-size:clamp(3rem,6vw,5.7rem);
  line-height:.95;
  letter-spacing:-.045em;
  margin:12px 0 20px;
}
.shop-hero h1 em{color:var(--shop-wine);font-style:italic}
.shop-kicker{
  text-transform:uppercase;
  letter-spacing:.18em;
  color:var(--shop-wine);
  font-weight:850;
  font-size:.76rem;
}
.shop-hero-card{
  min-height:420px;
  border-radius:34px;
  background:#fff;
  box-shadow:0 28px 70px rgba(67,6,17,.12);
  border:1px solid rgba(124,16,37,.08);
  display:grid;
  place-items:center;
  position:relative;
  overflow:hidden;
}
.shop-hero-card:before{
  content:"";
  position:absolute;
  inset:22px;
  border:1px solid rgba(185,149,99,.42);
  border-radius:24px;
  pointer-events:none;
}
.shop-hero-card img{
  width:min(430px,72%);
  height:auto;
  object-fit:contain;
  position:relative;
  z-index:1;
}
.shop-benefits{
  display:flex;
  flex-wrap:wrap;
  gap:10px 22px;
  margin-top:24px;
  color:#575159;
  font-size:.92rem;
  font-weight:750;
}
.shop-benefits span:before{content:"✓";color:var(--shop-wine);font-weight:900;margin-right:7px}
.free-ship-banner{
  background:var(--shop-ink);
  color:#fff;
  text-align:center;
  padding:12px 18px;
  font-weight:800;
  letter-spacing:.02em;
}
.free-ship-banner strong{color:#f1d8b4}
.shop-toolbar{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:30px;
}
.shop-toolbar p{margin:0;color:#6d666d}
.cart-open{
  display:inline-flex;
  align-items:center;
  gap:10px;
  border:1px solid var(--shop-wine);
  background:#fff;
  color:var(--shop-wine);
  border-radius:999px;
  padding:11px 18px;
  font-weight:850;
  cursor:pointer;
}
.cart-count{
  min-width:24px;
  height:24px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:var(--shop-wine);
  color:#fff;
  font-size:.78rem;
}
.product-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}
.product-card{
  border:1px solid var(--shop-line);
  border-radius:24px;
  background:#fff;
  overflow:hidden;
  box-shadow:0 8px 30px rgba(39,22,29,.05);
  display:flex;
  flex-direction:column;
}
.product-media{
  min-height:330px;
  padding:26px;
  display:grid;
  place-items:center;
  background:linear-gradient(145deg,#fff,#f8f4f5);
  border-bottom:1px solid var(--shop-line);
}
.product-media img{
  max-width:100%;
  max-height:285px;
  width:auto;
  height:auto;
  object-fit:contain;
}
.product-placeholder{
  width:100%;
  min-height:278px;
  border-radius:18px;
  border:1px dashed #cdbfc4;
  display:grid;
  place-items:center;
  text-align:center;
  padding:28px;
  background:
    linear-gradient(145deg,#151519,#2a292d);
  color:#fff;
}
.product-placeholder span{display:block;font-family:Georgia,serif;font-size:1.65rem;margin-bottom:8px}
.product-placeholder small{color:rgba(255,255,255,.72)}
.product-body{padding:23px;display:flex;flex-direction:column;flex:1}
.product-name{font-family:Georgia,serif;font-size:1.5rem;margin:0 0 7px}
.product-meta{color:#766e74;font-size:.9rem;min-height:22px}
.product-desc{color:#565057;font-size:.95rem;margin:12px 0 18px}
.product-bottom{margin-top:auto}
.product-price-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.product-price{font-family:Georgia,serif;font-size:1.7rem;color:var(--shop-wine);font-weight:700}
.size-select{
  width:100%;
  border:1px solid #d8ced2;
  border-radius:12px;
  padding:11px 12px;
  margin-bottom:12px;
  background:#fff;
  font:inherit;
}
.add-cart{
  width:100%;
  border:0;
  border-radius:12px;
  padding:13px 16px;
  background:var(--shop-wine);
  color:#fff;
  font-weight:850;
  cursor:pointer;
}
.add-cart:hover{background:var(--shop-wine-dark)}
.shop-note{
  margin-top:34px;
  padding:22px 24px;
  border-radius:18px;
  background:var(--shop-blush);
  border:1px solid #ead9df;
  color:#5a5156;
}
.shop-note strong{color:var(--shop-wine)}
.cart-overlay{
  position:fixed;
  inset:0;
  background:rgba(16,14,16,.48);
  z-index:150;
  opacity:0;
  visibility:hidden;
  transition:.2s ease;
}
.cart-overlay.open{opacity:1;visibility:visible}
.cart-drawer{
  position:absolute;
  top:0;
  right:0;
  width:min(470px,100%);
  height:100%;
  background:#fff;
  display:flex;
  flex-direction:column;
  transform:translateX(100%);
  transition:.24s ease;
  box-shadow:-24px 0 60px rgba(0,0,0,.14);
}
.cart-overlay.open .cart-drawer{transform:translateX(0)}
.cart-head{
  padding:22px 24px;
  border-bottom:1px solid var(--shop-line);
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.cart-head h2{font-size:1.45rem;margin:0}
.cart-close{
  border:0;background:#f3edef;width:38px;height:38px;border-radius:50%;cursor:pointer;font-size:1.25rem
}
.cart-items{padding:12px 24px;overflow:auto;flex:1}
.cart-empty{padding:40px 10px;text-align:center;color:#766e74}
.cart-item{display:grid;grid-template-columns:72px 1fr;gap:14px;padding:16px 0;border-bottom:1px solid var(--shop-line)}
.cart-thumb{width:72px;height:82px;border-radius:12px;border:1px solid var(--shop-line);display:grid;place-items:center;background:#faf7f8;overflow:hidden}
.cart-thumb img{max-width:90%;max-height:74px}
.cart-thumb.placeholder{background:#1c1b1f;color:#fff;font-size:.68rem;text-align:center;padding:6px}
.cart-item-top{display:flex;justify-content:space-between;gap:10px}
.cart-item-name{font-weight:850}
.cart-item-meta{font-size:.82rem;color:#786f75;margin-top:2px}
.cart-item-price{font-weight:850;color:var(--shop-wine)}
.cart-controls{display:flex;justify-content:space-between;align-items:center;margin-top:10px}
.qty{display:inline-flex;align-items:center;border:1px solid #ddd3d7;border-radius:999px;overflow:hidden}
.qty button{width:30px;height:30px;border:0;background:#fff;cursor:pointer;font-size:1rem}
.qty span{min-width:28px;text-align:center;font-size:.88rem;font-weight:750}
.remove-item{border:0;background:none;color:#8b4c59;text-decoration:underline;cursor:pointer;font-size:.8rem}
.cart-foot{border-top:1px solid var(--shop-line);padding:20px 24px 24px;background:#fff}
.ship-progress{margin-bottom:18px}
.ship-progress-line{height:8px;border-radius:999px;background:#eee5e8;overflow:hidden}
.ship-progress-bar{height:100%;width:0;background:var(--shop-wine);transition:.2s ease}
.ship-message{font-size:.83rem;color:#655e63;margin-top:7px}
.summary-row{display:flex;justify-content:space-between;gap:12px;margin:8px 0;color:#575158}
.summary-row.total{font-size:1.08rem;font-weight:900;color:var(--shop-ink);padding-top:8px}
.checkout-btn{
  width:100%;
  border:0;
  border-radius:13px;
  padding:14px 18px;
  background:var(--shop-ink);
  color:#fff;
  font-weight:900;
  cursor:pointer;
  margin-top:12px;
}
.checkout-btn:disabled{opacity:.5;cursor:not-allowed}
.checkout-secure{text-align:center;color:#81787e;font-size:.76rem;margin-top:9px}
.checkout-error{margin-top:9px;color:#9b1c31;font-size:.82rem;display:none}
.success-wrap{max-width:820px;margin:0 auto;text-align:center}
.success-mark{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;background:var(--shop-wine);color:#fff;font-size:2rem;margin:0 auto 22px}
@media(max-width:980px){
  .shop-hero-grid{grid-template-columns:1fr}
  .shop-hero-card{min-height:340px}
  .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
  .shop-hero{padding:50px 0 38px}
  .shop-hero h1{font-size:clamp(2.8rem,15vw,4rem)}
  .shop-hero-card{min-height:280px}
  .product-grid{grid-template-columns:1fr}
  .product-media{min-height:300px}
  .shop-toolbar{align-items:flex-start;flex-direction:column}
  .cart-open{width:100%;justify-content:center}
}

.stock-status{font-size:.82rem;font-weight:800;color:#176a35;margin-top:7px}
.stock-status.low-stock{color:#9a5c18}
.stock-status.sold-out{color:#9b1c31}
.add-cart:disabled{opacity:.48;cursor:not-allowed;background:#777}
.cart-stock-warning{font-size:.78rem;font-weight:800;color:#9b1c31;margin-top:4px}
