/* ============================================================
   CART / CHECKOUT — restyle WooCommerce's default output to
   match the rest of the site instead of the stock WC/WP look.
   ============================================================ */
/* WooCommerce renders its own wrapper rather than the theme's .wrap, so give it
   the same measure by hand — otherwise cart and checkout run edge to edge while
   every other page is centred at 1400px. */
.woocommerce,
.woocommerce-page .woocommerce-notices-wrapper {
  max-width:1400px; margin-inline:auto; padding:48px 28px 88px;
}
.woocommerce-page .woocommerce-notices-wrapper { padding-block:24px 0; }
[dir="rtl"] .woocommerce { font-family:'Rubik',sans-serif; }
[dir="ltr"] .woocommerce { font-family:'Inter',sans-serif; }
.woocommerce a { color:var(--teal-d); }

/* Empty-cart state */
.woocommerce .cart-empty-msg,
.woocommerce p.cart-empty {
  font-size:1.1rem; font-weight:700; color:#000;
  padding:40px 0; margin:0;
}
.woocommerce .return-to-shop { margin-top:8px; }
/* `.alt` is WooCommerce's own primary-button class and carries its stock purple
   at a higher specificity than a bare `a.button`, so it has to be named here. */
.woocommerce .return-to-shop .button,
.woocommerce a.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt {
  display:inline-block; font-size:.87rem; font-weight:700; padding:12px 24px;
  background:var(--teal); color:#fff !important; text-decoration:none; border:none;
  transition:.2s; border-radius:0; cursor:pointer;
}
.woocommerce .return-to-shop .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit.alt:hover { background:var(--teal-d); color:#fff !important; }

/* Cart table */
.woocommerce table.shop_table,
.woocommerce table.cart {
  border-collapse:collapse; width:100%; margin:24px 0;
  border:1px solid var(--line); background:#fff;
}
.woocommerce table.shop_table th,
.woocommerce table.cart th {
  background:var(--off); font-size:.78rem; font-weight:900; text-transform:uppercase;
  letter-spacing:.05em; color:var(--grey); padding:14px 16px; text-align:right;
  border-bottom:1px solid var(--line);
}
[dir="ltr"] .woocommerce table.shop_table th { text-align:left; }
.woocommerce table.shop_table td,
.woocommerce table.cart td {
  padding:16px; border-bottom:1px solid var(--line); font-size:.9rem; color:#000; vertical-align:middle;
}
.woocommerce table.shop_table tr:last-child td { border-bottom:none; }
.woocommerce td.product-name a { color:#000; font-weight:700; text-decoration:none; }
.woocommerce td.product-name a:hover { color:var(--teal-d); }
.woocommerce .product-thumbnail img { width:64px; height:64px; object-fit:cover; }
.woocommerce td.product-remove a.remove {
  color:var(--grey) !important; background:none !important; font-size:1.2rem;
  border:1px solid var(--line) !important; width:28px; height:28px; line-height:26px;
  display:inline-flex; align-items:center; justify-content:center; border-radius:50%;
}
.woocommerce td.product-remove a.remove:hover { color:#c5501e !important; border-color:#c5501e !important; }

/* Quantity input */
.woocommerce .quantity .qty {
  width:64px; padding:8px 10px; border:1px solid var(--line); font-family:inherit; font-size:.9rem; text-align:center;
}
.woocommerce .quantity .qty:focus { outline:2px solid var(--teal); outline-offset:1px; }

/* Coupon + update row */
.woocommerce .coupon { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.woocommerce .coupon .input-text {
  padding:11px 14px; border:1px solid var(--line); font-family:inherit; font-size:.9rem; min-width:160px;
}
.woocommerce table.shop_table .actions .button { padding:11px 20px; }

/* Cart totals / checkout box */
.woocommerce-cart-form { margin-bottom:0; }
.woocommerce .cart-collaterals { margin-top:32px; display:flex; justify-content:flex-end; }
.woocommerce .cart_totals { width:100%; max-width:380px; border:1px solid var(--line); background:var(--off); padding:24px; }
.woocommerce .cart_totals h2 { font-size:1.05rem; font-weight:900; color:#000; margin-bottom:16px; }
.woocommerce .cart_totals table { width:100%; }
.woocommerce .cart_totals table th,
.woocommerce .cart_totals table td { padding:10px 0; border-bottom:1px solid var(--line); background:none; font-size:.9rem; }
.woocommerce .cart_totals .order-total .amount { font-weight:900; color:var(--teal-d); font-size:1.15rem; }
.woocommerce .wc-proceed-to-checkout { margin-top:18px; }
.woocommerce .wc-proceed-to-checkout .checkout-button {
  display:block; width:100%; text-align:center; padding:14px; font-size:.95rem;
}

/* Checkout page */
.woocommerce-checkout .col2-set,
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout #order_review { max-width:900px; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
  padding:11px 14px; border:1px solid var(--line); font-family:inherit; font-size:.9rem; width:100%;
}
.woocommerce-checkout #payment { background:var(--off); border:1px solid var(--line); padding:20px; margin-top:20px; }

@media(max-width:700px){
  .woocommerce table.shop_table thead { display:none; }
  .woocommerce table.shop_table tr { display:block; border-bottom:1px solid var(--line); padding:12px 0; }
  .woocommerce table.shop_table td { display:flex; justify-content:space-between; border-bottom:none; padding:6px 0; }
  .woocommerce .cart-collaterals { justify-content:stretch; }
  .woocommerce .cart_totals { max-width:none; }
}
