/* ============================================================
   DELFA — WooCommerce Checkout & Cart Override
   Mobile-first, matching DELFA brand identity
   ============================================================ */

/* ---- GLOBAL WC PAGES ---- */
.woocommerce-cart .delfa-main,
.woocommerce-checkout .delfa-main,
.woocommerce-account .delfa-main,
.delfa-woo-page {
  max-width: 1140px;
  margin: 0 auto;
  padding: 100px 20px 60px;
}
/* Kill the narrow container if it leaks through */
.delfa-woo-page .delfa-container-narrow {
  max-width: 1140px !important;
}
.woocommerce-cart .entry-title,
.woocommerce-checkout .entry-title,
.woocommerce-account .entry-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 36px !important;
  font-weight: 700 !important;
  color: var(--charcoal) !important;
  text-align: center !important;
  margin-bottom: 40px !important;
}

/* ---- CART TABLE ---- */
.woocommerce table.shop_table {
  border: none !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  background: var(--white) !important;
  box-shadow: 0 2px 20px rgba(26,20,16,.04) !important;
  border-collapse: separate !important;
}
.woocommerce table.shop_table th {
  font-family: 'Josefin Sans', sans-serif !important;
  font-size: 10px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
  color: var(--text-muted) !important;
  background: var(--cream) !important;
  border: none !important;
  padding: 16px 20px !important;
}
.woocommerce table.shop_table td {
  border: none !important;
  border-top: 1px solid var(--cream-dark) !important;
  padding: 18px 20px !important;
  vertical-align: middle !important;
  font-size: 14px !important;
  color: var(--text-dark) !important;
}
.woocommerce table.shop_table .product-name a {
  color: var(--charcoal) !important;
  text-decoration: none !important;
  font-weight: 500 !important;
  font-size: 15px !important;
  transition: color .2s !important;
}
.woocommerce table.shop_table .product-name a:hover {
  color: var(--terra) !important;
}
.woocommerce table.shop_table img {
  width: 64px !important;
  height: 64px !important;
  object-fit: cover !important;
  border-radius: 10px !important;
  border: 1px solid var(--cream-dark) !important;
}
.woocommerce table.shop_table .product-remove a {
  color: var(--text-muted) !important;
  font-size: 18px !important;
  transition: color .2s !important;
}
.woocommerce table.shop_table .product-remove a:hover {
  color: #c00 !important;
  background: none !important;
}

/* Quantity input in cart */
.woocommerce .quantity .qty {
  width: 60px !important;
  height: 44px !important;
  border: 1.5px solid var(--cream-dark) !important;
  border-radius: 10px !important;
  text-align: center !important;
  font-family: 'Josefin Sans', sans-serif !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  background: var(--white) !important;
  transition: border-color .2s !important;
}
.woocommerce .quantity .qty:focus {
  border-color: var(--terra) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(183,71,42,.08) !important;
}

/* Cart totals */
.woocommerce .cart_totals {
  background: var(--white) !important;
  border-radius: 16px !important;
  padding: 28px !important;
  box-shadow: 0 2px 20px rgba(26,20,16,.04) !important;
  border: 1px solid var(--cream-dark) !important;
}

/* === CLASSIC CART — two-column layout === */
@media (min-width: 769px) {
  .woocommerce-cart .woocommerce {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 30px !important;
  }
  .woocommerce-cart .woocommerce > .woocommerce-notices-wrapper,
  .woocommerce-cart .woocommerce > .woocommerce-message,
  .woocommerce-cart .woocommerce > .woocommerce-info,
  .woocommerce-cart .woocommerce > .woocommerce-error {
    width: 100% !important;
    flex: 0 0 100% !important;
  }
  .woocommerce-cart form.woocommerce-cart-form {
    flex: 1.3 !important;
    min-width: 0 !important;
  }
  .woocommerce-cart .cart-collaterals {
    flex: 0 0 340px !important;
    position: sticky !important;
    top: 100px !important;
    align-self: start !important;
  }
}
.woocommerce .cart_totals h2 {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  color: var(--charcoal) !important;
  margin-bottom: 20px !important;
}
.woocommerce .cart_totals table th {
  font-family: 'Josefin Sans', sans-serif !important;
  font-size: 11px !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
  color: var(--text-muted) !important;
  font-weight: 600 !important;
  background: transparent !important;
}
.woocommerce .cart_totals table td {
  font-size: 15px !important;
  font-weight: 500 !important;
  color: var(--charcoal) !important;
}
.woocommerce .cart_totals .order-total td {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 28px !important;
  font-weight: 700 !important;
  color: var(--terra) !important;
}

/* ---- COUPON ---- */
.woocommerce .coupon {
  display: flex !important;
  gap: 8px !important;
  align-items: center !important;
}
.woocommerce .coupon .input-text {
  max-width: 200px !important;
  height: 44px !important;
  border: 1.5px solid var(--cream-dark) !important;
  border-radius: 10px !important;
  padding: 0 14px !important;
  font-size: 13px !important;
}
.woocommerce .coupon .button {
  height: 44px !important;
  font-size: 10px !important;
  padding: 0 18px !important;
}

/* ---- ALL WC BUTTONS ---- */
.woocommerce .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #payment #place_order {
  background: var(--terra) !important;
  color: var(--cream) !important;
  border: none !important;
  border-radius: 12px !important;
  font-family: 'Josefin Sans', sans-serif !important;
  font-weight: 600 !important;
  font-size: 11px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  padding: 14px 28px !important;
  min-height: 48px !important;
  transition: all .3s !important;
  cursor: pointer !important;
  line-height: 1 !important;
}
.woocommerce .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce #payment #place_order:hover {
  background: var(--terra-dark) !important;
  color: var(--cream) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 20px rgba(183,71,42,.25) !important;
}
.woocommerce .button.disabled,
.woocommerce .button:disabled {
  opacity: .5 !important;
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}

/* Proceed to checkout — larger */
.woocommerce .wc-proceed-to-checkout a.checkout-button {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
  padding: 18px 28px !important;
  font-size: 12px !important;
  letter-spacing: 3px !important;
  border-radius: 14px !important;
  margin-top: 12px !important;
}

/* ---- CHECKOUT FORM ---- */

/* === TWO-COLUMN CLASSIC CHECKOUT LAYOUT === */
.delfa-woo-page form.woocommerce-checkout,
.woocommerce-checkout form.woocommerce-checkout {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 30px !important;
  width: 100% !important;
}
@media (min-width: 769px) {
  .delfa-woo-page form.woocommerce-checkout,
  .woocommerce-checkout form.woocommerce-checkout {
    grid-template-columns: 1.2fr 1fr !important;
    align-items: start !important;
  }
  /* Notices span full width */
  .delfa-woo-page form.woocommerce-checkout > .woocommerce-NoticeGroup,
  .woocommerce-checkout form.woocommerce-checkout > .woocommerce-NoticeGroup {
    grid-column: 1 / -1 !important;
  }
  /* Billing/shipping on the left */
  .delfa-woo-page #customer_details,
  .woocommerce-checkout #customer_details {
    grid-column: 1 !important;
  }
  /* Order review heading + box on the right */
  .delfa-woo-page #order_review_heading,
  .woocommerce-checkout #order_review_heading {
    grid-column: 2 !important;
    grid-row: 1 !important;
    align-self: end !important;
  }
  .delfa-woo-page #order_review,
  .woocommerce-checkout #order_review {
    grid-column: 2 !important;
    grid-row: 2 !important;
    position: sticky !important;
    top: 100px !important;
  }
}

/* Customer details: no extra bottom margin */
.woocommerce-checkout #customer_details,
.delfa-woo-page #customer_details {
  margin-bottom: 0;
}

/* Billing / Shipping card style */
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2,
.delfa-woo-page #customer_details .col-1,
.delfa-woo-page #customer_details .col-2 {
  background: var(--white) !important;
  border: 1px solid var(--cream-dark) !important;
  border-radius: 16px !important;
  padding: 28px !important;
  box-shadow: 0 2px 20px rgba(26,20,16,.04) !important;
  margin-bottom: 20px !important;
}

/* === INLINE FORM FIELDS (first/last name, city/state/zip) === */
.woocommerce form .form-row-first,
.woocommerce form .form-row-last {
  float: none !important;
  width: 100% !important;
}
@media (min-width: 480px) {
  .woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
  .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
  .delfa-woo-page .woocommerce-billing-fields__field-wrapper,
  .delfa-woo-page .woocommerce-shipping-fields__field-wrapper {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0 16px !important;
  }
  .woocommerce-checkout .form-row-first,
  .delfa-woo-page .form-row-first {
    grid-column: 1 !important;
  }
  .woocommerce-checkout .form-row-last,
  .delfa-woo-page .form-row-last {
    grid-column: 2 !important;
  }
  .woocommerce-checkout .form-row-wide,
  .delfa-woo-page .form-row-wide {
    grid-column: 1 / -1 !important;
  }
}

/* Also handle the outer .woocommerce wrapper for non-form elements */
.delfa-woo-page .woocommerce > .woocommerce-form-coupon-toggle,
.delfa-woo-page .woocommerce > .woocommerce-form-login-toggle,
.delfa-woo-page .woocommerce > form.checkout_coupon,
.delfa-woo-page .woocommerce > form.login {
  margin-bottom: 20px !important;
}
.woocommerce form .form-row {
  margin-bottom: 16px !important;
  padding: 0 !important;
}
.woocommerce form .form-row label {
  font-family: 'Josefin Sans', sans-serif !important;
  font-size: 10px !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
  color: var(--text-muted) !important;
  margin-bottom: 6px !important;
  display: block !important;
}
.woocommerce form .form-row label .required {
  color: var(--terra) !important;
}
.woocommerce form .form-row .input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea,
.woocommerce-checkout .select2-container--default .select2-selection--single {
  border: 1.5px solid var(--cream-dark) !important;
  border-radius: 12px !important;
  background: var(--white) !important;
  padding: 14px 16px !important;
  font-size: 15px !important;
  font-family: 'DM Sans', sans-serif !important;
  color: var(--text-dark) !important;
  width: 100% !important;
  height: auto !important;
  min-height: 48px !important;
  transition: border-color .2s !important;
  box-shadow: none !important;
  -webkit-appearance: none !important;
}
.woocommerce form .form-row .input-text:focus,
.woocommerce form .form-row select:focus {
  border-color: var(--terra) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(183,71,42,.08) !important;
}

/* Select2 dropdown */
.select2-container--default .select2-selection--single {
  border: 1.5px solid var(--cream-dark) !important;
  border-radius: 12px !important;
  height: 48px !important;
  display: flex !important;
  align-items: center !important;
  padding: 0 16px !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
  font-size: 15px !important;
  color: var(--text-dark) !important;
  font-family: 'DM Sans', sans-serif !important;
  padding: 0 !important;
  line-height: 48px !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 48px !important;
  right: 12px !important;
}
.select2-dropdown {
  border: 1.5px solid var(--cream-dark) !important;
  border-radius: 12px !important;
  box-shadow: 0 8px 30px rgba(26,20,16,.1) !important;
  overflow: hidden !important;
}
.select2-results__option {
  padding: 10px 16px !important;
  font-size: 14px !important;
  font-family: 'DM Sans', sans-serif !important;
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background: var(--terra) !important;
  color: var(--cream) !important;
}

/* Checkout sections headings */
.woocommerce-checkout h3,
.woocommerce-checkout #order_review_heading,
.delfa-woo-page h3#order_review_heading {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  color: var(--charcoal) !important;
  margin-bottom: 12px !important;
  padding-bottom: 10px !important;
  border-bottom: 2px solid var(--cream-dark) !important;
}
.woocommerce-checkout #customer_details h3,
.delfa-woo-page #customer_details h3 {
  border-bottom: 2px solid var(--cream-dark) !important;
  margin-bottom: 20px !important;
}

/* Order review box */
.woocommerce-checkout #order_review,
.delfa-woo-page #order_review {
  background: var(--white) !important;
  border: 1px solid var(--cream-dark) !important;
  border-radius: 16px !important;
  padding: 28px !important;
  box-shadow: 0 2px 20px rgba(26,20,16,.04) !important;
}
.woocommerce-checkout #order_review table.shop_table,
.delfa-woo-page #order_review table.shop_table {
  box-shadow: none !important;
  border-radius: 0 !important;
}

/* Payment methods */
.woocommerce-checkout #payment {
  background: var(--cream) !important;
  border-radius: 14px !important;
  border: none !important;
  padding: 20px !important;
}
.woocommerce-checkout #payment ul.payment_methods {
  border: none !important;
  padding: 0 !important;
  margin: 0 0 16px !important;
}
.woocommerce-checkout #payment ul.payment_methods li {
  list-style: none !important;
  background: var(--white) !important;
  border: 1.5px solid var(--cream-dark) !important;
  border-radius: 12px !important;
  margin-bottom: 8px !important;
  padding: 14px 16px !important;
  transition: border-color .2s !important;
}
.woocommerce-checkout #payment ul.payment_methods li:hover {
  border-color: var(--sand) !important;
}
.woocommerce-checkout #payment ul.payment_methods li input[type="radio"] {
  accent-color: var(--terra) !important;
}
.woocommerce-checkout #payment ul.payment_methods li label {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--charcoal) !important;
  cursor: pointer !important;
}
.woocommerce-checkout #payment .payment_box {
  background: var(--cream) !important;
  color: var(--text-muted) !important;
  font-size: 13px !important;
  border-radius: 8px !important;
  padding: 12px !important;
  margin-top: 8px !important;
}
.woocommerce-checkout #payment .payment_box::before {
  display: none !important;
}

/* Place order button — hero size */
.woocommerce-checkout #payment #place_order {
  width: 100% !important;
  padding: 18px 28px !important;
  font-size: 13px !important;
  letter-spacing: 3px !important;
  border-radius: 14px !important;
  margin-top: 10px !important;
}

/* ---- NOTICES ---- */
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info {
  background: var(--white) !important;
  border: 1px solid var(--cream-dark) !important;
  border-left: 4px solid var(--terra) !important;
  border-radius: 12px !important;
  color: var(--text-dark) !important;
  padding: 16px 20px !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
  box-shadow: 0 2px 12px rgba(26,20,16,.04) !important;
  margin-bottom: 20px !important;
}
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before {
  color: var(--terra) !important;
}
.woocommerce .woocommerce-error {
  background: var(--white) !important;
  border: 1px solid #f5c6cb !important;
  border-left: 4px solid #c0392b !important;
  border-radius: 12px !important;
  padding: 16px 20px !important;
  list-style: none !important;
}

/* ---- ORDER RECEIVED / THANK YOU ---- */
.woocommerce-order-received .woocommerce-thankyou-order-received {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 28px !important;
  font-weight: 700 !important;
  color: var(--charcoal) !important;
  text-align: center !important;
  margin-bottom: 30px !important;
}

/* ---- MY ACCOUNT ---- */
.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none !important;
  background: var(--white) !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  border: 1px solid var(--cream-dark) !important;
  box-shadow: 0 2px 12px rgba(26,20,16,.03) !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li {
  border-bottom: 1px solid var(--cream-dark) !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child {
  border-bottom: none !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
  display: block !important;
  padding: 14px 20px !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 14px !important;
  color: var(--text-dark) !important;
  text-decoration: none !important;
  transition: all .2s !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
  background: var(--cream) !important;
  color: var(--terra) !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
  background: var(--terra) !important;
  color: var(--cream) !important;
  font-weight: 500 !important;
}

/* ---- LOGIN / REGISTER ---- */
.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.checkout_coupon,
.woocommerce form.lost_reset_password {
  background: var(--white) !important;
  border: 1px solid var(--cream-dark) !important;
  border-radius: 16px !important;
  padding: 30px !important;
  box-shadow: 0 2px 20px rgba(26,20,16,.04) !important;
  margin-bottom: 20px !important;
}

/* ============================================================
   WOOCOMMERCE BLOCKS — Cart & Checkout (WC 8+)
   ============================================================ */

/* ---- BLOCK CART PAGE ---- */
.wc-block-cart,
.wp-block-woocommerce-cart {
  max-width: 1140px !important;
  margin: 0 auto !important;
  padding-top: 30px !important;
  font-family: 'DM Sans', sans-serif !important;
}

/* Product image */
.wc-block-cart-items .wc-block-cart-items__row img,
.wc-block-cart-item__image img {
  border-radius: 12px !important;
  border: 1px solid var(--cream-dark) !important;
}

/* Product name */
.wc-block-cart-item__product .wc-block-components-product-name,
.wc-block-cart-items a {
  color: var(--charcoal) !important;
  font-weight: 500 !important;
  font-size: 16px !important;
  text-decoration: none !important;
}
.wc-block-cart-items a:hover {
  color: var(--terra) !important;
}

/* Quantity selector */
.wc-block-components-quantity-selector {
  border: 1.5px solid var(--cream-dark) !important;
  border-radius: 10px !important;
  overflow: hidden !important;
}
.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
  font-family: 'Josefin Sans', sans-serif !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--charcoal) !important;
  background: var(--white) !important;
}
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
  color: var(--text-muted) !important;
  background: var(--cream) !important;
  border: none !important;
  transition: background .2s !important;
}
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover {
  background: var(--cream-dark) !important;
  color: var(--terra) !important;
}

/* Remove item link */
.wc-block-cart-item__remove-link,
.wc-block-cart-item__remove-link a {
  color: var(--text-muted) !important;
  font-size: 13px !important;
  text-decoration: none !important;
  transition: color .2s !important;
}
.wc-block-cart-item__remove-link:hover,
.wc-block-cart-item__remove-link a:hover {
  color: #c00 !important;
}

/* Prices */
.wc-block-cart .wc-block-components-product-price,
.wc-block-cart .wc-block-components-product-price__value {
  font-family: 'Josefin Sans', sans-serif !important;
  font-weight: 700 !important;
  color: var(--charcoal) !important;
}

/* Cart totals sidebar */
.wc-block-cart__totals-title,
.wc-block-components-totals-wrapper h2,
.wp-block-woocommerce-cart .wc-block-cart__totals-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  color: var(--charcoal) !important;
}
.wc-block-components-totals-item__label {
  font-family: 'Josefin Sans', sans-serif !important;
  font-size: 11px !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
  color: var(--text-muted) !important;
  font-weight: 600 !important;
}
.wc-block-components-totals-item__value {
  font-weight: 600 !important;
  color: var(--charcoal) !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 28px !important;
  font-weight: 700 !important;
  color: var(--terra) !important;
}

/* Coupon/discount expand */
.wc-block-components-totals-coupon__button-link,
.wc-block-components-panel__button {
  color: var(--terra) !important;
  font-size: 13px !important;
}

/* Proceed to checkout button */
.wc-block-cart__submit-button a,
.wc-block-cart__submit-button .wc-block-components-button,
.wc-block-cart .wc-block-components-button,
.wp-block-woocommerce-proceed-to-checkout-block a,
a.wc-block-cart__submit-button,
.wc-block-cart__submit .wc-block-components-button {
  background: var(--terra) !important;
  color: var(--cream) !important;
  border: none !important;
  border-radius: 14px !important;
  font-family: 'Josefin Sans', sans-serif !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  padding: 18px 28px !important;
  min-height: 52px !important;
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-decoration: none !important;
  transition: all .3s !important;
  line-height: 1 !important;
}
.wc-block-cart__submit-button a:hover,
.wc-block-cart__submit-button .wc-block-components-button:hover,
.wc-block-cart .wc-block-components-button:hover,
.wp-block-woocommerce-proceed-to-checkout-block a:hover {
  background: var(--terra-dark) !important;
  color: var(--cream) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 8px 24px rgba(183,71,42,.3) !important;
}

/* ---- BLOCK CHECKOUT PAGE ---- */
.wc-block-checkout,
.wp-block-woocommerce-checkout {
  max-width: 1140px !important;
  margin: 0 auto !important;
  font-family: 'DM Sans', sans-serif !important;
}

/* Section titles */
.wc-block-checkout .wc-block-components-checkout-step__title,
.wc-block-components-checkout-step__heading {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  color: var(--charcoal) !important;
}

/* Form labels */
.wc-block-checkout .wc-block-components-text-input label,
.wc-block-components-text-input label {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 13px !important;
  color: var(--text-muted) !important;
}

/* Text inputs */
.wc-block-checkout .wc-block-components-text-input input,
.wc-block-checkout .wc-block-components-text-input textarea,
.wc-block-components-text-input input,
.wc-block-components-text-input textarea {
  border: 1.5px solid var(--cream-dark) !important;
  border-radius: 12px !important;
  background: var(--white) !important;
  padding: 14px 16px !important;
  font-size: 15px !important;
  font-family: 'DM Sans', sans-serif !important;
  color: var(--text-dark) !important;
  transition: border-color .2s !important;
}
.wc-block-checkout .wc-block-components-text-input input:focus,
.wc-block-components-text-input input:focus {
  border-color: var(--terra) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(183,71,42,.08) !important;
}

/* Select / Combobox */
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-block-checkout select {
  border: 1.5px solid var(--cream-dark) !important;
  border-radius: 12px !important;
  min-height: 48px !important;
  font-size: 15px !important;
  font-family: 'DM Sans', sans-serif !important;
}

/* Checkout step numbers/icons */
.wc-block-components-checkout-step__container::after {
  border-color: var(--cream-dark) !important;
}

/* Payment methods */
.wc-block-checkout__payment-method .wc-block-components-radio-control__option,
.wc-block-components-payment-method-label {
  background: var(--white) !important;
  border: 1.5px solid var(--cream-dark) !important;
  border-radius: 12px !important;
  padding: 14px 16px !important;
  margin-bottom: 8px !important;
  transition: border-color .2s !important;
}
.wc-block-checkout__payment-method .wc-block-components-radio-control__option:hover {
  border-color: var(--sand) !important;
}
.wc-block-components-radio-control input[type="radio"] {
  accent-color: var(--terra) !important;
}
.wc-block-components-radio-control__option--checked {
  border-color: var(--terra) !important;
}

/* Place order button */
.wc-block-checkout__actions .wc-block-components-button,
.wc-block-components-checkout-place-order-button,
.wc-block-checkout__actions button {
  background: var(--terra) !important;
  color: var(--cream) !important;
  border: none !important;
  border-radius: 14px !important;
  font-family: 'Josefin Sans', sans-serif !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  padding: 18px 28px !important;
  min-height: 56px !important;
  width: 100% !important;
  transition: all .3s !important;
}
.wc-block-checkout__actions .wc-block-components-button:hover,
.wc-block-components-checkout-place-order-button:hover {
  background: var(--terra-dark) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 8px 24px rgba(183,71,42,.3) !important;
}

/* Order summary in checkout */
.wc-block-components-order-summary .wc-block-components-order-summary-item__image img {
  border-radius: 10px !important;
}
.wc-block-components-order-summary .wc-block-components-order-summary-item__description .wc-block-components-product-name {
  font-weight: 500 !important;
  color: var(--charcoal) !important;
}

/* Express payment buttons */
.wc-block-components-express-payment .wc-block-components-express-payment__event-buttons button {
  border-radius: 12px !important;
}

/* ---- NOTICES (Blocks) ---- */
.wc-block-components-notice-banner {
  border-radius: 12px !important;
  font-size: 14px !important;
  padding: 14px 18px !important;
}
.wc-block-components-notice-banner.is-error {
  border-left: 4px solid #c0392b !important;
}
.wc-block-components-notice-banner.is-success {
  border-left: 4px solid var(--green) !important;
}
.wc-block-components-notice-banner.is-info {
  border-left: 4px solid var(--terra) !important;
}

/* ---- GLOBAL: All WC block buttons ---- */
.wc-block-components-button:not(.is-link) {
  background: var(--terra) !important;
  color: var(--cream) !important;
  border-radius: 12px !important;
  font-family: 'Josefin Sans', sans-serif !important;
  font-weight: 600 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  transition: all .3s !important;
}
.wc-block-components-button:not(.is-link):hover {
  background: var(--terra-dark) !important;
}

/* Link-style buttons */
.wc-block-components-button.is-link {
  color: var(--terra) !important;
  text-decoration: none !important;
}
.wc-block-components-button.is-link:hover {
  color: var(--terra-dark) !important;
}

/* ---- RESPONSIVE — MOBILE ---- */
@media (max-width: 768px) {
  /* Block checkout/cart */
  .wc-block-cart,
  .wc-block-checkout {
    padding: 20px 10px !important;
  }
  .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-size: 24px !important;
  }
  .wc-block-checkout .wc-block-components-text-input input {
    font-size: 16px !important; /* prevents iOS zoom */
  }

  /* Classic checkout/cart — single column */
  .delfa-woo-page form.woocommerce-checkout,
  .woocommerce-checkout form.woocommerce-checkout {
    grid-template-columns: 1fr !important;
  }
  .woocommerce-cart .woocommerce {
    flex-direction: column !important;
  }
  .woocommerce-cart .cart-collaterals {
    position: static !important;
    flex: none !important;
    width: 100% !important;
  }
  .woocommerce-checkout #customer_details .col-1,
  .woocommerce-checkout #customer_details .col-2,
  .delfa-woo-page #customer_details .col-1,
  .delfa-woo-page #customer_details .col-2 {
    padding: 20px !important;
  }
  .woocommerce-checkout #order_review,
  .delfa-woo-page #order_review {
    padding: 20px !important;
    position: static !important;
  }
  .woocommerce form .form-row .input-text,
  .woocommerce form .form-row select {
    font-size: 16px !important; /* prevents iOS zoom */
  }
  .delfa-woo-page {
    padding: 80px 12px 40px !important;
  }
  .woocommerce-cart .delfa-main,
  .woocommerce-checkout .delfa-main,
  .woocommerce-account .delfa-main {
    padding: 80px 12px 40px !important;
  }
  .woocommerce-cart .entry-title,
  .woocommerce-checkout .entry-title,
  .woocommerce-account .entry-title {
    font-size: 28px !important;
    margin-bottom: 24px !important;
  }
}
