/* ============================================================
   ZD PACK — MODULE 5: CART / CARRITO STYLES
   ============================================================ */

/* Main Cart Container */
.zd-cart-container {
  width: 100%;
  max-width: 1360px;
  margin-left: auto;
  margin-right: auto;
  padding: 24px 20px 60px;
}
@media (min-width: 640px) {
  .zd-cart-container { padding-left: 32px; padding-right: 32px; }
}
@media (min-width: 1280px) {
  .zd-cart-container { padding-left: 48px; padding-right: 48px; }
}

/* Compact Cart Header */
.zd-cart-header {
  border-bottom: 1px solid var(--border-subtle);
  padding-bottom: 16px;
  margin-bottom: 24px;
}
.zd-cart-h1 {
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 800;
  letter-spacing: -0.035em;
  color: var(--brand-black);
  margin: 0;
}

/* WooCommerce Cart Form Grid Layout: 65% Items / 35% Sidebar */
.woocommerce-cart .woocommerce {
  display: flex;
  flex-direction: column;
}
.woocommerce-cart .woocommerce-cart-form {
  width: 100%;
}
@media (min-width: 1024px) {
  .woocommerce-cart .woocommerce {
    display: grid !important;
    grid-template-columns: 65% 35% !important;
    gap: 36px !important;
    align-items: start !important;
  }
}

/* Native Shop Table Overrides */
.woocommerce-cart table.shop_table {
  border-collapse: collapse !important;
  width: 100% !important;
  border: none !important;
  margin-bottom: 20px !important;
}
.woocommerce-cart table.shop_table thead {
  border-bottom: 1px solid var(--border-medium) !important;
}
.woocommerce-cart table.shop_table th {
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color: var(--text-primary) !important;
  padding: 12px 10px !important;
  background: none !important;
}
.woocommerce-cart table.shop_table tr.cart_item {
  border-bottom: 1px solid var(--border-subtle) !important;
}
.woocommerce-cart table.shop_table td {
  padding: 16px 10px !important;
  vertical-align: middle !important;
}

/* Cart Item Elements */
.woocommerce-cart td.product-remove a.remove {
  font-size: 18px !important;
  color: var(--text-muted) !important;
  width: 24px !important;
  height: 24px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-decoration: none !important;
  border-radius: 50% !important;
  transition: all 150ms ease !important;
}
.woocommerce-cart td.product-remove a.remove:hover {
  color: var(--status-danger) !important;
  background-color: #fdf2f2 !important;
}
.woocommerce-cart td.product-thumbnail img {
  width: 64px !important;
  height: 64px !important;
  object-fit: contain !important;
  background-color: var(--surface-soft) !important;
  border: 1px solid var(--border-subtle) !important;
}
.woocommerce-cart td.product-name a {
  font-size: 13px !important;
  font-weight: 700 !important;
  color: var(--brand-black) !important;
  text-decoration: none !important;
}
.woocommerce-cart td.product-name a:hover {
  color: var(--brand-gold-hover) !important;
}
.zd-cart-item-sku {
  display: inline-block;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
  background-color: var(--surface-soft);
  padding: 2px 6px;
  border-radius: 2px;
  margin-top: 4px;
}
.woocommerce-cart td.product-price .woocommerce-Price-amount,
.woocommerce-cart td.product-subtotal .woocommerce-Price-amount {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--brand-black) !important;
}

/* Quantity Input Styling */
.woocommerce-cart td.product-quantity input.qty {
  height: 38px !important;
  width: 64px !important;
  text-align: center !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  border: 1px solid var(--border-medium) !important;
  border-radius: var(--radius-sm) !important;
}

/* Update Cart Button & Coupon Actions Row */
.woocommerce-cart td.actions {
  padding: 16px 0 !important;
  border-top: 1px solid var(--border-subtle) !important;
}
.woocommerce-cart .coupon {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}
.woocommerce-cart .coupon input[type="text"] {
  height: 40px !important;
  padding: 0 12px !important;
  font-size: 12px !important;
  border: 1px solid var(--border-subtle) !important;
  border-radius: var(--radius-sm) !important;
  max-width: 180px !important;
}
.woocommerce-cart .coupon button,
.woocommerce-cart button[name="update_cart"] {
  height: 40px !important;
  padding: 0 16px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  background-color: var(--surface-soft) !important;
  color: var(--brand-black) !important;
  border: 1px solid var(--border-medium) !important;
  border-radius: var(--radius-sm) !important;
  cursor: pointer !important;
  transition: all 150ms ease !important;
}
.woocommerce-cart button[name="update_cart"]:hover,
.woocommerce-cart .coupon button:hover {
  border-color: var(--brand-black) !important;
}

/* Cart Collaterals / Order Summary Sidebar */
.woocommerce-cart .cart-collaterals {
  width: 100% !important;
}
.woocommerce-cart .cart_totals {
  background-color: var(--surface-soft) !important;
  border: 1px solid var(--border-subtle) !important;
  padding: 24px !important;
  width: 100% !important;
  float: none !important;
}
.woocommerce-cart .cart_totals h2 {
  font-size: 14px !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color: var(--brand-black) !important;
  border-bottom: 1px solid var(--border-medium) !important;
  padding-bottom: 12px !important;
  margin: 0 0 16px !important;
}
.woocommerce-cart .cart_totals table.shop_table {
  background: none !important;
}
.woocommerce-cart .cart_totals table.shop_table tr th,
.woocommerce-cart .cart_totals table.shop_table tr td {
  padding: 10px 0 !important;
  border-bottom: 1px solid var(--border-subtle) !important;
  font-size: 13px !important;
}
.woocommerce-cart .cart_totals tr.order-total th,
.woocommerce-cart .cart_totals tr.order-total td {
  border-bottom: none !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  color: var(--brand-black) !important;
  padding-top: 14px !important;
}

/* Proceed to Checkout CTAs Block */
.woocommerce-cart .wc-proceed-to-checkout {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  padding: 16px 0 0 !important;
}
.woocommerce-cart .checkout-button {
  height: 46px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background-color: var(--brand-black) !important;
  color: var(--brand-white) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  border-radius: var(--radius-sm) !important;
  transition: background-color 150ms ease !important;
  width: 100% !important;
  border: none !important;
  margin: 0 !important;
}
.woocommerce-cart .checkout-button:hover {
  background-color: #333333 !important;
}

/* Secondary Commercial CTAs */
.zd-cart-secondary-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 10px;
}
.zd-btn-quote-cart,
.zd-btn-continue-shopping {
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
  border-radius: var(--radius-sm);
  transition: all 150ms ease;
  width: 100%;
}
.zd-btn-quote-cart {
  background-color: var(--brand-white);
  color: var(--brand-black);
  border: 1px solid var(--border-medium);
}
.zd-btn-quote-cart:hover {
  border-color: var(--brand-black);
}
.zd-btn-continue-shopping {
  background-color: transparent;
  color: var(--text-secondary);
  border: 1px solid transparent;
}
.zd-btn-continue-shopping:hover {
  color: var(--brand-black);
  text-decoration: underline;
}

/* Styled WooCommerce Notices */
.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-info,
.woocommerce-cart .woocommerce-error {
  font-size: 13px !important;
  padding: 12px 20px !important;
  margin-bottom: 20px !important;
  border-radius: var(--radius-sm) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}
.woocommerce-cart .woocommerce-message {
  background-color: #eef7f0 !important;
  border: 1px solid #c3e6cb !important;
  color: var(--status-success) !important;
}
.woocommerce-cart .woocommerce-info {
  background-color: var(--surface-soft) !important;
  border: 1px solid var(--border-subtle) !important;
  color: var(--text-primary) !important;
}
.woocommerce-cart .woocommerce-error {
  background-color: #fdf2f2 !important;
  border: 1px solid #f5c6cb !important;
  color: var(--status-danger) !important;
  list-style: none !important;
}

/* Empty Cart State */
.zd-cart-empty-box {
  padding: 64px 20px;
  text-align: center;
  background-color: var(--surface-soft);
  border: 1px solid var(--border-subtle);
  margin-top: 16px;
}
.zd-cart-empty-icon {
  width: 48px;
  height: 48px;
  color: var(--text-muted);
  margin: 0 auto 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.zd-cart-empty-box h2 {
  font-size: 20px;
  font-weight: 800;
  color: var(--brand-black);
  margin: 0 0 8px;
}
.zd-cart-empty-box p {
  font-size: 13px;
  color: var(--text-secondary);
  margin: 0 0 24px;
}

/* Mobile Responsive Adjustments (Stacked Items on < 768px) */
@media (max-width: 767px) {
  .woocommerce-cart table.shop_table_responsive tr {
    display: block !important;
    border-bottom: 1px solid var(--border-subtle) !important;
    padding: 16px 0 !important;
    position: relative !important;
  }
  .woocommerce-cart table.shop_table_responsive td {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 6px 0 !important;
    border: none !important;
  }
  .woocommerce-cart table.shop_table_responsive td.product-remove {
    position: absolute !important;
    top: 12px !important;
    right: 0 !important;
  }
  .woocommerce-cart table.shop_table_responsive td.product-thumbnail {
    display: block !important;
  }
}

/* Mobile Sticky Checkout Bar */
.zd-mobile-sticky-checkout {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: var(--brand-white);
  border-top: 1px solid var(--border-medium);
  box-shadow: 0 -4px 16px rgba(0,0,0,0.1);
  padding: 12px 20px;
  z-index: 99990;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  transform: translateY(100%);
  transition: transform 250ms ease;
}
@media (min-width: 768px) {
  .zd-mobile-sticky-checkout { display: none !important; }
}
.zd-mobile-sticky-checkout.is-visible {
  transform: translateY(0);
}
.zd-sticky-checkout-info {
  display: flex;
  flex-direction: column;
}
.zd-sticky-checkout-label { font-size: 11px; font-weight: 500; color: var(--text-muted); }
.zd-sticky-checkout-total { font-size: 15px; font-weight: 800; color: var(--brand-black); }
.zd-sticky-checkout-btn {
  height: 40px;
  padding: 0 20px;
  background-color: var(--brand-black);
  color: var(--brand-white);
  font-size: 12px;
  font-weight: 700;
  border-radius: var(--radius-sm);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
