/* =========================================================
   VASTRAM HOUSE — WooCommerce style overrides
   Maps WooCommerce's default markup to our design tokens
   ========================================================= */

/* ---------- General WC resets ---------- */
.woocommerce, .woocommerce-page{
  font-family:var(--body);
  color:var(--charcoal);
}
.woocommerce ul.products{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:28px;
  list-style:none;
  margin:0; padding:0;
}
@media (max-width:1100px){ .woocommerce ul.products{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:800px){ .woocommerce ul.products{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .woocommerce ul.products{ grid-template-columns:1fr; } }

.woocommerce ul.products li.product{
  background:#fff;
  border-radius:var(--radius-lg);
  overflow:hidden;
  border:1px solid var(--line);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
  padding:0 !important;
  list-style:none;
  position:relative;
}
.woocommerce ul.products li.product:hover{
  transform:translateY(-5px);
  box-shadow:0 18px 40px -22px rgba(43,39,48,0.3);
}

.woocommerce ul.products li.product a img{
  width:100%;
  aspect-ratio:3/4;
  object-fit:cover;
  border-radius:0;
  margin:0 !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--display);
  font-size:1.05rem;
  font-weight:500;
  color:var(--charcoal);
  padding:16px 18px 0;
  margin:0;
}
.woocommerce ul.products li.product .price{
  padding:6px 18px 16px;
  display:block;
  font-size:1rem;
}
.woocommerce ul.products li.product .price .amount{
  color:var(--maroon);
  font-weight:700;
}
.woocommerce ul.products li.product .price del .amount{
  color:var(--muted);
  font-weight:400;
  text-decoration:line-through;
  font-size:0.85rem;
  margin-right:6px;
}
.woocommerce ul.products li.product .price ins{
  text-decoration:none;
}

/* Sale badge */
.woocommerce span.onsale{
  background:var(--maroon);
  color:#fff;
  font-size:0.7rem;
  font-weight:700;
  letter-spacing:0.05em;
  padding:5px 12px;
  border-radius:999px;
  position:absolute;
  top:14px; left:14px;
  z-index:2;
  min-height:0; min-width:0;
  width:auto; height:auto;
  line-height:1.4;
  text-transform:uppercase;
}

/* Add to cart button in loop */
.woocommerce ul.products li.product .button{
  display:block;
  margin:0 18px 18px;
  width:calc(100% - 36px);
  padding:11px;
  border-radius:999px;
  background:var(--charcoal);
  color:#fff;
  border:none;
  font-size:0.84rem;
  font-weight:600;
  letter-spacing:0.03em;
  text-align:center;
  cursor:pointer;
  transition:background .25s var(--ease);
}
.woocommerce ul.products li.product .button:hover{
  background:var(--maroon);
  color:#fff;
}
.woocommerce ul.products li.product .added_to_cart{
  display:block;
  margin:0 18px 18px;
  text-align:center;
  font-size:0.8rem;
  color:var(--green);
  font-weight:600;
}

/* ---------- Result count / ordering ---------- */
.woocommerce-result-count, .woocommerce-ordering{
  font-size:0.88rem;
  color:var(--muted);
}
.woocommerce-ordering select{
  border-radius:999px;
  padding:9px 18px;
}
.woocommerce-result-count{ margin-bottom:0; }
.shop-toolbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:32px;
  flex-wrap:wrap;
  gap:16px;
}

/* ---------- Category filter chips (built from product_cat widget/menu) ---------- */
.vh-cat-filters{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:36px;
}
.vh-cat-filters a{
  padding:9px 22px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  font-size:0.85rem;
  font-weight:500;
  transition:all .2s var(--ease);
}
.vh-cat-filters a:hover{ border-color:var(--maroon); }
.vh-cat-filters a.active{
  background:var(--maroon);
  color:#fff;
  border-color:var(--maroon);
}

/* ---------- Single product page ---------- */
.woocommerce div.product{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  margin-bottom:60px;
}
@media (max-width:900px){
  .woocommerce div.product{ grid-template-columns:1fr; }
}
.woocommerce div.product div.images{ margin:0; }
.woocommerce div.product div.images img{
  border-radius:var(--radius-lg);
  width:100%;
}
.woocommerce div.product .summary{ margin:0; }
.woocommerce div.product .summary h1.product_title{
  font-family:var(--display);
  font-size:2rem;
  margin-bottom:12px;
}
.woocommerce div.product .summary p.price{
  font-size:1.3rem;
  margin-bottom:18px;
}
.woocommerce div.product .summary p.price .amount{ color:var(--maroon); font-weight:700; }
.woocommerce div.product .summary .woocommerce-product-details__short-description{
  color:var(--muted);
  margin-bottom:24px;
}
.woocommerce div.product form.cart{
  display:flex;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
}
.woocommerce div.product form.cart .quantity{ margin:0; }
.woocommerce div.product form.cart .quantity input{
  width:70px;
  text-align:center;
  border-radius:999px;
}
.woocommerce div.product form.cart button.single_add_to_cart_button{
  background:var(--maroon);
  color:#fff;
  border:none;
  padding:14px 34px;
  border-radius:999px;
  font-weight:600;
  font-size:0.92rem;
  letter-spacing:0.02em;
  cursor:pointer;
  transition:background .25s var(--ease);
}
.woocommerce div.product form.cart button.single_add_to_cart_button:hover{
  background:var(--maroon-deep);
}

.woocommerce-tabs{ margin-top:50px; }
.woocommerce-tabs ul.tabs{
  display:flex;
  gap:30px;
  list-style:none;
  padding:0; margin:0 0 24px;
  border-bottom:1px solid var(--line);
}
.woocommerce-tabs ul.tabs li{ padding-bottom:14px; }
.woocommerce-tabs ul.tabs li a{
  font-weight:600;
  font-size:0.92rem;
  color:var(--muted);
}
.woocommerce-tabs ul.tabs li.active a{ color:var(--maroon); }

/* ---------- Cart page ---------- */
.woocommerce table.shop_table{
  border:none;
  width:100%;
  border-collapse:collapse;
}
.woocommerce table.shop_table th{
  text-align:left;
  font-size:0.75rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--muted);
  padding:12px 8px;
  border-bottom:1px solid var(--line);
}
.woocommerce table.shop_table td{
  padding:18px 8px;
  border-bottom:1px solid var(--line);
  vertical-align:middle;
}
.woocommerce table.shop_table td.product-name a{
  font-family:var(--display);
  font-size:1rem;
  color:var(--charcoal);
}
.woocommerce table.shop_table td.product-thumbnail img{
  border-radius:8px;
  width:64px;
}
.woocommerce td.actions .button, .woocommerce a.button, .woocommerce button.button{
  background:var(--maroon);
  color:#fff;
  border:none;
  padding:12px 26px;
  border-radius:999px;
  font-weight:600;
  font-size:0.85rem;
  cursor:pointer;
  transition:background .25s var(--ease);
}
.woocommerce td.actions .button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover{
  background:var(--maroon-deep);
  color:#fff;
}
.woocommerce .cart-collaterals .cart_totals{
  background:var(--blush);
  border-radius:var(--radius-lg);
  padding:28px;
}
.woocommerce .cart_totals h2{ margin-bottom:16px; }
.woocommerce .cart_totals table{ border:none; }
.woocommerce .cart_totals .order-total .amount{
  color:var(--maroon);
  font-weight:700;
  font-size:1.2rem;
  font-family:var(--display);
}

/* Quantity input styling */
.woocommerce .quantity .qty{
  border:1px solid var(--line);
  border-radius:999px;
  padding:10px 14px;
  text-align:center;
}

/* Coupon form */
.woocommerce .coupon{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.woocommerce .coupon input{ width:auto; flex:1; min-width:160px; }

/* ---------- Checkout page ---------- */
.woocommerce-checkout #payment{
  background:var(--blush);
  border-radius:var(--radius-lg);
  padding:24px;
}
.woocommerce-checkout #payment ul.payment_methods{
  list-style:none;
  padding:0;
}
.woocommerce-checkout .form-row label{
  font-size:0.75rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:600;
}
.woocommerce-checkout #order_review{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:24px;
}
.woocommerce-checkout-review-order-table{ border:none; }

#place_order{
  background:var(--maroon) !important;
  width:100%;
  padding:16px !important;
  font-size:0.95rem !important;
  border-radius:999px !important;
}
#place_order:hover{ background:var(--maroon-deep) !important; }

/* ---------- Mini cart (header) ---------- */
.widget_shopping_cart_content{
  position:absolute;
  top:100%; right:0;
  width:340px;
  background:#fff;
  border-radius:var(--radius-lg);
  box-shadow:0 18px 40px -10px rgba(43,39,48,0.25);
  padding:20px;
  z-index:150;
}
.woocommerce-mini-cart{ list-style:none; padding:0; margin:0; }
.woocommerce-mini-cart-item{
  display:flex;
  gap:12px;
  padding:12px 0;
  border-bottom:1px solid var(--line);
  position:relative;
}
.woocommerce-mini-cart-item img{
  width:52px; border-radius:6px;
}
.woocommerce-mini-cart__total .amount{ color:var(--maroon); font-weight:700; }
.woocommerce-mini-cart__buttons .button{
  display:inline-block;
  margin-top:14px;
  margin-right:8px;
}

/* ---------- Notices ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error{
  border-top-color:var(--maroon) !important;
  background:var(--blush);
  border-radius:var(--radius);
  padding:16px 20px !important;
}
.woocommerce-message::before, .woocommerce-info::before{ color:var(--maroon) !important; }

/* ---------- Stars / reviews ---------- */
.woocommerce .star-rating span::before, .woocommerce .star-rating::before{
  color:var(--marigold);
}

/* ---------- Breadcrumb ---------- */
.woocommerce-breadcrumb{
  font-size:0.85rem;
  color:var(--muted);
  margin-bottom:24px;
}
.woocommerce-breadcrumb a{ color:var(--charcoal); }
