/* =====================================================================
 * Cart + Checkout — Buddha Stone Shop theme.
 * Scoped under .shop-wrap; no WooCommerce default styles.
 * ===================================================================== */

.shop-wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 56px 24px 90px;
}
.shop-head { text-align: center; margin-bottom: 40px; }
.shop-title {
  font-size: 30px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #2a241d;
  margin: 0;
}

/* ---- Notices (shared) ---- */
.shop-wrap .woocommerce-message,
.shop-wrap .woocommerce-info,
.shop-wrap .woocommerce-error,
.shop-wrap .woocommerce-noreviews {
  list-style: none;
  border-radius: 0;
  border-left: 3px solid #c9a063;
  background: #faf7f2;
  color: #5b5048;
  padding: 14px 18px;
  margin: 0 0 22px;
  font-size: 13.5px;
}
.shop-wrap .woocommerce-error { border-left-color: #c0392b; background: #fcf3f1; }
.shop-wrap .woocommerce-message .button,
.shop-wrap .woocommerce-info .button { float: right; margin-top: -4px; }

/* ---- Buttons (shared) ---- */
.shop-wrap .woocommerce .button,
.shop-wrap .woocommerce button,
.shop-wrap .woocommerce input[type="submit"] {
  display: inline-block;
  background: #2a241d;
  color: #fff;
  border: 1px solid #2a241d;
  border-radius: 0;
  padding: 13px 28px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .25s ease, border-color .25s ease, color .25s ease;
}
.shop-wrap .woocommerce .button:hover,
.shop-wrap .woocommerce button:hover,
.shop-wrap .woocommerce input[type="submit"]:hover {
  background: #c9a063;
  border-color: #c9a063;
  color: #fff;
}
.shop-wrap .woocommerce .button:disabled,
.shop-wrap .woocommerce .button.disabled { opacity: .5; cursor: not-allowed; }

/* ---- Inputs (shared) ---- */
.shop-wrap .woocommerce input.input-text,
.shop-wrap .woocommerce input[type="text"],
.shop-wrap .woocommerce input[type="email"],
.shop-wrap .woocommerce input[type="tel"],
.shop-wrap .woocommerce input[type="password"],
.shop-wrap .woocommerce input[type="number"],
.shop-wrap .woocommerce select,
.shop-wrap .woocommerce textarea {
  width: 100%;
  border: 1px solid #e2dcd2;
  border-radius: 0;
  padding: 12px 14px;
  font-family: inherit;
  font-size: 14px;
  color: #2a241d;
  background: #fff;
  outline: none;
  transition: border-color .2s ease;
}
.shop-wrap .woocommerce input.input-text:focus,
.shop-wrap .woocommerce select:focus,
.shop-wrap .woocommerce textarea:focus { border-color: #c9a063; }
.shop-wrap .woocommerce label {
  display: block;
  font-size: 12px;
  letter-spacing: .6px;
  text-transform: uppercase;
  color: #8a8178;
  margin-bottom: 7px;
}
.shop-wrap .woocommerce .required { color: #c0392b; border: none; }

/* =====================================================================
 * CART
 * ===================================================================== */
.shop-wrap .woocommerce-cart-form table.cart {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid #ece4d6;
  margin: 0 0 30px;
}
.shop-wrap .woocommerce-cart-form table.cart th {
  background: #faf7f2;
  color: #2a241d;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .6px;
  text-transform: uppercase;
  text-align: left;
  padding: 14px 16px;
  border-bottom: 1px solid #eee5d8;
}
.shop-wrap .woocommerce-cart-form table.cart td {
  padding: 18px 16px;
  border-bottom: 1px solid #f1ebe1;
  vertical-align: middle;
  font-size: 14px;
  color: #5b5048;
}
.shop-wrap .woocommerce-cart-form .product-thumbnail img {
  width: 72px;
  height: 72px;
  object-fit: cover;
  display: block;
  background: #f5f1ec;
}
.shop-wrap .woocommerce-cart-form .product-name a {
  color: #2a241d;
  font-weight: 500;
  text-decoration: none;
}
.shop-wrap .woocommerce-cart-form .product-name a:hover { color: #c9a063; }
.shop-wrap .woocommerce-cart-form td.product-subtotal { font-weight: 600; color: #2a241d; }
.shop-wrap .woocommerce-cart-form .product-remove a.remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: transparent;
  color: #b3a99c !important;
  font-size: 18px;
  line-height: 1;
  text-decoration: none;
  transition: color .2s ease, background .2s ease;
}
.shop-wrap .woocommerce-cart-form .product-remove a.remove:hover { background: #c0392b; color: #fff !important; }
.shop-wrap .woocommerce .quantity { display: inline-flex; }
.shop-wrap .woocommerce .quantity input.qty {
  width: 64px;
  text-align: center;
  padding: 9px 6px;
}

/* Cart actions row (coupon + update) */
.shop-wrap .woocommerce-cart-form td.actions {
  background: #fff;
  padding: 18px 16px;
}
.shop-wrap .woocommerce-cart-form .coupon {
  display: inline-flex;
  gap: 10px;
  margin-right: 14px;
}
.shop-wrap .woocommerce-cart-form .coupon input.input-text { width: 200px; }

/* Cart collaterals / totals */
.shop-wrap .cart-collaterals { display: flex; justify-content: flex-end; }
.shop-wrap .cart_totals {
  width: 100%;
  max-width: 420px;
  border: 1px solid #ece4d6;
  background: #fff;
  padding: 26px 28px;
}
.shop-wrap .cart_totals h2 {
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: #2a241d;
  margin: 0 0 18px;
  padding-bottom: 12px;
  border-bottom: 1px solid #eee5d8;
}
.shop-wrap .cart_totals table { width: 100%; border-collapse: collapse; }
.shop-wrap .cart_totals th,
.shop-wrap .cart_totals td {
  padding: 12px 0;
  text-align: left;
  border-bottom: 1px solid #f1ebe1;
  font-size: 14px;
  color: #5b5048;
}
.shop-wrap .cart_totals th { font-weight: 600; text-transform: uppercase; font-size: 12px; letter-spacing: .5px; }
.shop-wrap .cart_totals .order-total th,
.shop-wrap .cart_totals .order-total td { color: #2a241d; font-size: 16px; font-weight: 700; border-bottom: none; }
.shop-wrap .wc-proceed-to-checkout { margin-top: 20px; }
.shop-wrap .wc-proceed-to-checkout .checkout-button {
  display: block;
  width: 100%;
  text-align: center;
  font-size: 13px;
  padding: 15px 0;
}


/* =====================================================================
 * CHECKOUT
 * ===================================================================== */
.shop-wrap form.checkout.woocommerce-checkout {
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: 44px;
  align-items: start;
}
.shop-wrap #customer_details { grid-column: 1; grid-row: 1 / span 2; min-width: 0; }
.shop-wrap #order_review_heading { grid-column: 2; grid-row: 1; margin: 0; }
.shop-wrap #order_review { grid-column: 2; grid-row: 2; }

.shop-wrap #order_review_heading,
.shop-wrap .woocommerce-billing-fields h3,
.shop-wrap .woocommerce-additional-fields h3,
.shop-wrap .woocommerce-shipping-fields h3 {
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: #2a241d;
  margin: 0 0 18px;
  padding-bottom: 12px;
  border-bottom: 1px solid #eee5d8;
}

/* Billing / additional field columns */
.shop-wrap .col2-set { display: block; }
.shop-wrap .woocommerce-billing-fields__field-wrapper,
.shop-wrap .woocommerce-additional-fields__field-wrapper {
  display: flex;
  flex-wrap: wrap;
  column-gap: 4%;
}
.shop-wrap .woocommerce form .form-row { width: 100%; margin: 0 0 16px; }
.shop-wrap .woocommerce form .form-row-first { width: 48%; }
.shop-wrap .woocommerce form .form-row-last { width: 48%; }
.shop-wrap .woocommerce form .form-row-wide { width: 100%; }

/* Order review panel (sticky) */
.shop-wrap #order_review {
  position: sticky;
  top: 96px;
  border: 1px solid #ece4d6;
  background: #fff;
  padding: 24px 26px;
}
.shop-wrap .woocommerce-checkout-review-order-table {
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 18px;
}
.shop-wrap .woocommerce-checkout-review-order-table th,
.shop-wrap .woocommerce-checkout-review-order-table td {
  padding: 11px 0;
  text-align: left;
  border-bottom: 1px solid #f1ebe1;
  font-size: 13.5px;
  color: #5b5048;
}
.shop-wrap .woocommerce-checkout-review-order-table thead th {
  font-size: 12px;
  letter-spacing: .5px;
  text-transform: uppercase;
  color: #2a241d;
}
.shop-wrap .woocommerce-checkout-review-order-table .order-total th,
.shop-wrap .woocommerce-checkout-review-order-table .order-total td {
  color: #2a241d;
  font-weight: 700;
  font-size: 15px;
  border-bottom: none;
}
.shop-wrap .woocommerce-checkout-review-order-table td.product-total { text-align: right; }
.shop-wrap .woocommerce-checkout-review-order-table th.product-total { text-align: right; }

/* Order review: product thumbnail column */
.shop-wrap .woocommerce-checkout-review-order-table td.product-thumbnail { width: 56px; padding-right: 0; }
.shop-wrap .woocommerce-checkout-review-order-table .ss-order-thumb {
  display: block;
  width: 48px;
  height: 48px;
  overflow: hidden;
  background: #f5f1ec;
}
.shop-wrap .woocommerce-checkout-review-order-table .ss-order-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.shop-wrap .woocommerce-checkout-review-order-table .product-name {
  font-size: 13px;
  color: #2a241d;
  line-height: 1.5;
}
.shop-wrap .woocommerce-checkout-review-order-table .product-quantity { color: #8a8178; font-weight: 600; }
.shop-wrap .woocommerce-checkout-review-order-table dl.variation {
  margin: 4px 0 0;
  font-size: 12px;
  color: #8a8178;
}
.shop-wrap .woocommerce-checkout-review-order-table dl.variation dt,
.shop-wrap .woocommerce-checkout-review-order-table dl.variation dd { display: inline; margin: 0; }
.shop-wrap .woocommerce-checkout-review-order-table dl.variation dd p { display: inline; margin: 0; }

/* Payment box */
.shop-wrap #payment {
  background: #faf7f2;
  border: 1px solid #ece4d6;
  padding: 18px 20px;
  margin-top: 18px;
}
.shop-wrap #payment ul.payment_methods {
  list-style: none;
  margin: 0 0 14px;
  padding: 0;
  border-bottom: 1px solid #eee5d8;
}
.shop-wrap #payment ul.payment_methods li {
  margin: 0 0 10px;
  font-size: 14px;
  color: #2a241d;
}
.shop-wrap #payment ul.payment_methods li label { display: inline; text-transform: none; letter-spacing: 0; color: #2a241d; font-size: 14px; }
.shop-wrap #payment .payment_box {
  background: #fff;
  border: 1px solid #ece4d6;
  padding: 14px 16px;
  margin: 8px 0 4px;
  font-size: 13px;
  color: #6b5f54;
}
.shop-wrap #payment .place-order { padding-top: 8px; }
.shop-wrap #payment #place_order {
  width: 100%;
  font-size: 13px;
  padding: 16px 0;
}
.shop-wrap #payment .woocommerce-terms-and-conditions-wrapper { margin-bottom: 14px; font-size: 13px; }
.shop-wrap #payment .woocommerce-terms-and-conditions-wrapper label { display: inline; text-transform: none; letter-spacing: 0; }

/* Coupon toggle on checkout */
.shop-wrap .woocommerce-form-coupon-toggle { margin-bottom: 18px; }
.shop-wrap .checkout_coupon { border: 1px solid #ece4d6; padding: 18px 20px; margin-bottom: 20px; }
.shop-wrap .checkout_coupon .form-row { display: inline-flex; gap: 10px; }
.shop-wrap .checkout_coupon .input-text { width: 220px; }

/* Login form on checkout */
.shop-wrap .woocommerce-form-login { border: 1px solid #ece4d6; padding: 22px 24px; margin-bottom: 22px; }

@media (max-width: 900px) {
  .shop-wrap form.checkout.woocommerce-checkout { grid-template-columns: 1fr; gap: 28px; }
  .shop-wrap #customer_details,
  .shop-wrap #order_review_heading,
  .shop-wrap #order_review { grid-column: 1; grid-row: auto; }
  .shop-wrap #order_review { position: static; }
}
@media (max-width: 640px) {
  .shop-wrap .woocommerce form .form-row-first,
  .shop-wrap .woocommerce form .form-row-last { width: 100%; }
  .shop-wrap .cart-collaterals { justify-content: stretch; }
  .shop-wrap .cart_totals { max-width: none; }
  .shop-title { font-size: 24px; }
}
