/* Cart + checkout
   NPC visual layer for WooCommerce Cart / Checkout blocks and the classic
   shortcode templates. WooCommerce remains responsible for behavior. */

/* Block pages are scoped from the block itself, not WooCommerce body classes. */
.np-content:has(> .wp-block-woocommerce-cart),
.np-content:has(> .wp-block-woocommerce-checkout) {
  color: #252830;
}

/* Notices */
body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-error,
body.woocommerce-checkout .woocommerce-message,
body.woocommerce-checkout .woocommerce-info,
body.woocommerce-checkout .woocommerce-error,
body.woocommerce-cart .wc-block-components-notice-banner,
body.woocommerce-checkout .wc-block-components-notice-banner {
  margin: 0 0 22px;
  border-radius: 14px;
  box-shadow: none;
}

/* ================================================================
   WooCommerce Blocks — cart
   ================================================================ */
.wp-block-woocommerce-cart {
  margin: 0;
}

.wp-block-woocommerce-cart .wc-block-cart {
  gap: 30px;
}

.wp-block-woocommerce-cart .wc-block-cart__main {
  padding-right: 0 !important;
}

/* The block uses a table for semantics. Make each tbody row read as a card. */
.wp-block-woocommerce-cart .wc-block-cart-items {
  border: 0 !important;
  border-collapse: separate !important;
  border-spacing: 0 14px !important;
  background: transparent !important;
}

.wp-block-woocommerce-cart .wc-block-cart-items thead {
  display: none;
}

.wp-block-woocommerce-cart .wc-block-cart-items tbody tr.wc-block-cart-items__row {
  position: relative;
  background: #fff;
  box-shadow: 0 0 0 1px #e2e0da, 0 5px 18px rgba(21, 23, 28, .035);
}

.wp-block-woocommerce-cart .wc-block-cart-items tbody tr.wc-block-cart-items__row > td {
  padding-top: 18px !important;
  padding-bottom: 18px !important;
  border: 0 !important;
  background: #fff !important;
}

.wp-block-woocommerce-cart .wc-block-cart-items tbody tr.wc-block-cart-items__row > td:first-child {
  padding-left: 18px !important;
  border-radius: 16px 0 0 16px;
}

.wp-block-woocommerce-cart .wc-block-cart-items tbody tr.wc-block-cart-items__row > td:last-child {
  padding-right: 18px !important;
  border-radius: 0 16px 16px 0;
}

.wp-block-woocommerce-cart .wc-block-cart-item__image {
  width: 96px !important;
  padding-right: 16px !important;
}

.wp-block-woocommerce-cart .wc-block-cart-item__image img {
  width: 78px !important;
  height: 106px !important;
  object-fit: cover;
  border-radius: 11px;
  box-shadow: 0 0 0 1px rgba(22, 24, 29, .08);
}

.wp-block-woocommerce-cart .wc-block-components-product-name {
  color: #20232a;
  font-size: 15px !important;
  font-weight: 780 !important;
  line-height: 1.25 !important;
  text-decoration: none !important;
}

.wp-block-woocommerce-cart .wc-block-components-product-price,
.wp-block-woocommerce-cart .wc-block-cart-item__total-price-and-sale-badge-wrapper {
  font-variant-numeric: tabular-nums;
}

.wp-block-woocommerce-cart .wc-block-cart-item__prices {
  margin: 5px 0 7px !important;
}

.wp-block-woocommerce-cart .wc-block-components-product-metadata {
  margin-top: 5px !important;
  color: #686c74;
  font-size: 12px;
  line-height: 1.45;
}

.wp-block-woocommerce-cart .wc-block-components-product-details {
  margin-top: 7px !important;
  padding-left: 18px;
}

.wp-block-woocommerce-cart .wc-block-components-quantity-selector {
  min-width: 108px;
  height: 38px;
  margin-top: 12px !important;
  border: 1px solid #d6d3cc !important;
  border-radius: 10px !important;
  background: #fff !important;
  box-shadow: none !important;
}

.wp-block-woocommerce-cart .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
  min-width: 38px;
  font-weight: 720;
}

.wp-block-woocommerce-cart .wc-block-components-quantity-selector button {
  color: #62666f !important;
}

.wp-block-woocommerce-cart .wc-block-cart-item__remove-link {
  margin-left: 8px !important;
  color: #72767e !important;
  font-size: 12px !important;
  text-decoration: none !important;
}

.wp-block-woocommerce-cart .wc-block-cart-item__remove-link:hover {
  color: #20232a !important;
  text-decoration: underline !important;
}

.wp-block-woocommerce-cart .wc-block-cart-item__total {
  padding-left: 18px !important;
  text-align: right;
}

.wp-block-woocommerce-cart .wc-block-cart-item__total .wc-block-components-product-price {
  font-size: 15px;
  font-weight: 760;
}

/* Summary becomes a clearly separate checkout card. */
.wp-block-woocommerce-cart .wc-block-cart__sidebar,
.wp-block-woocommerce-cart .wc-block-components-sidebar {
  align-self: start;
  position: sticky;
  top: 22px;
  padding: 24px !important;
  border: 1px solid #dfdcd5 !important;
  border-radius: 18px !important;
  background: #f7f6f3 !important;
  box-shadow: 0 8px 28px rgba(21, 23, 28, .045);
}

body.admin-bar .wp-block-woocommerce-cart .wc-block-cart__sidebar,
body.admin-bar .wp-block-woocommerce-cart .wc-block-components-sidebar {
  top: 54px;
}

.wp-block-woocommerce-cart .wc-block-cart__totals-title {
  padding: 0 0 14px !important;
  border: 0 !important;
  color: #666a72;
  font-size: 11px !important;
  font-weight: 820 !important;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.wp-block-woocommerce-cart .wc-block-components-totals-wrapper {
  padding: 13px 0 !important;
  border-top: 1px solid #dfdcd5 !important;
}

.wp-block-woocommerce-cart .wc-block-components-totals-wrapper:first-of-type {
  border-top: 0 !important;
}

.wp-block-woocommerce-cart .wc-block-components-totals-coupon-link {
  color: #393d45;
  font-weight: 680;
  text-decoration: none;
}

.wp-block-woocommerce-cart .wc-block-components-totals-item__label,
.wp-block-woocommerce-cart .wc-block-components-totals-item__value {
  font-size: 13px;
}

.wp-block-woocommerce-cart .wc-block-components-totals-footer-item {
  padding-top: 18px !important;
  border-top: 1px solid #d4d0c8 !important;
}

.wp-block-woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wp-block-woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-size: 19px !important;
  font-weight: 820 !important;
  letter-spacing: -.02em;
}

.wp-block-woocommerce-cart .wc-block-cart__submit-container {
  margin-top: 18px;
}

.wp-block-woocommerce-cart .wc-block-cart__submit-button,
.wp-block-woocommerce-cart .wc-block-components-button {
  min-height: 50px;
  border: 0 !important;
  border-radius: 12px !important;
  background: #17191f !important;
  color: #fff !important;
  font-weight: 780 !important;
  box-shadow: none !important;
}

.wp-block-woocommerce-cart .wc-block-cart__submit-button:hover,
.wp-block-woocommerce-cart .wc-block-components-button:hover {
  background: #2a2d35 !important;
}

/* ================================================================
   WooCommerce Blocks — checkout
   ================================================================ */
.wp-block-woocommerce-checkout {
  margin: 0;
}

.wp-block-woocommerce-checkout .wc-block-checkout {
  gap: 30px;
}

.wp-block-woocommerce-checkout .wc-block-checkout__main {
  padding-right: 0 !important;
}

.wp-block-woocommerce-checkout .wc-block-components-checkout-step {
  margin-bottom: 16px;
  padding: 23px !important;
  border: 1px solid #e2e0da;
  border-radius: 17px;
  background: #fff;
}

.wp-block-woocommerce-checkout .wc-block-components-checkout-step__heading {
  margin-bottom: 18px;
}

.wp-block-woocommerce-checkout .wc-block-components-checkout-step__title {
  font-size: 20px !important;
  letter-spacing: -.025em;
}

.wp-block-woocommerce-checkout .wc-block-components-text-input input,
.wp-block-woocommerce-checkout .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input {
  border-color: #d8d4cc !important;
  border-radius: 11px !important;
  background: #fff !important;
  box-shadow: none !important;
}

.wp-block-woocommerce-checkout .wc-block-components-text-input input:focus,
.wp-block-woocommerce-checkout .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input:focus {
  border-color: #999287 !important;
  box-shadow: 0 0 0 4px rgba(23, 25, 31, .06) !important;
}


/* Checkout field rhythm: make the field itself feel balanced rather than inset. */
.wp-block-woocommerce-checkout .wc-block-components-text-input,
.wp-block-woocommerce-checkout .wc-block-components-combobox {
  margin-bottom: 14px !important;
}

.wp-block-woocommerce-checkout .wc-block-components-text-input input {
  min-height: 58px !important;
  padding: 24px 12px 9px !important;
  line-height: 1.25 !important;
}

.wp-block-woocommerce-checkout .wc-block-components-text-input label {
  left: 12px !important;
  top: 10px !important;
  margin: 0 !important;
  line-height: 1 !important;
  color: #767a82 !important;
}

.wp-block-woocommerce-checkout .wc-block-components-text-input.is-active label,
.wp-block-woocommerce-checkout .wc-block-components-text-input input:focus + label,
.wp-block-woocommerce-checkout .wc-block-components-text-input input:not(:placeholder-shown) + label {
  transform: none !important;
  font-size: 11px !important;
}

/* Shipping/payment choices. Woo nests several bordered wrappers here. Strip all
   structural borders and let the actual selectable row be the only visual box. */
.wp-block-woocommerce-checkout .wc-block-components-radio-control,
.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-option,
.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-content,
.wp-block-woocommerce-checkout .wc-block-components-radio-control__option,
.wp-block-woocommerce-checkout .wc-block-checkout__shipping-option .wc-block-components-radio-control,
.wp-block-woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control,
.wp-block-woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* Woo adds its own checked/highlight rings on these modifier classes.
   Keep one deliberate border only; no halo around the choice. */
.wp-block-woocommerce-checkout .wc-block-components-radio-control__option--checked-option-highlighted,
.wp-block-woocommerce-checkout .wc-block-components-radio-control__option-checked,
.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
  outline: 0 !important;
  box-shadow: none !important;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control__option--checked-option-highlighted::before,
.wp-block-woocommerce-checkout .wc-block-components-radio-control__option--checked-option-highlighted::after,
.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-option--checked-option-highlighted::before,
.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-option--checked-option-highlighted::after {
  content: none !important;
  display: none !important;
  box-shadow: none !important;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control__option {
  min-height: 52px;
  margin: 0 !important;
  padding: 14px 14px !important;
  border: 1px solid #d7d3cb !important;
  border-radius: 12px !important;
  background: #fff !important;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control__option + .wc-block-components-radio-control__option,
.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-option + .wc-block-components-radio-control-accordion-option {
  margin-top: 9px !important;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control__option:has(input:checked) {
  border-color: #9b958a !important;
  background: #f7f6f3 !important;
  box-shadow: none !important;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control__label,
.wp-block-woocommerce-checkout .wc-block-components-radio-control__description {
  line-height: 1.4 !important;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control__input {
  width: 18px !important;
  height: 18px !important;
  margin: 0 11px 0 0 !important;
  accent-color: #17191f;
  flex: 0 0 18px;
}

/* Payment description belongs to the selected row visually, but should not
   become another bordered box. */
.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-content {
  margin: 0 !important;
  padding: 0 14px 14px 43px !important;
  color: #555a63;
  font-size: 13px;
  line-height: 1.5;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-content > :first-child {
  margin-top: 0 !important;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-content p:last-child {
  margin-bottom: 0 !important;
}

/* When Woo wraps an accordion option around both label and description, make
   the wrapper disappear so there is only one visible hierarchy level. */
.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-option {
  padding: 0 !important;
  border-radius: 0 !important;
}

.wp-block-woocommerce-checkout .wc-block-checkout__sidebar,
.wp-block-woocommerce-checkout .wc-block-components-sidebar {
  align-self: start;
  position: sticky;
  top: 22px;
  padding: 24px !important;
  border: 1px solid #dfdcd5 !important;
  border-radius: 18px !important;
  background: #f7f6f3 !important;
  box-shadow: 0 8px 28px rgba(21, 23, 28, .045);
}

body.admin-bar .wp-block-woocommerce-checkout .wc-block-checkout__sidebar,
body.admin-bar .wp-block-woocommerce-checkout .wc-block-components-sidebar {
  top: 54px;
}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item {
  padding: 13px 0 !important;
  border-bottom-color: #dfdcd5 !important;
}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item__image img {
  border-radius: 9px;
}

.wp-block-woocommerce-checkout .wc-block-components-button {
  min-height: 50px;
  border: 0 !important;
  border-radius: 12px !important;
  background: #17191f !important;
  color: #fff !important;
  font-weight: 780 !important;
  box-shadow: none !important;
}

.wp-block-woocommerce-checkout .wc-block-components-button:hover {
  background: #2a2d35 !important;
}

/* ================================================================
   Classic cart fallback
   ================================================================ */
body.woocommerce-cart .woocommerce {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(300px, .8fr);
  gap: 28px;
  align-items: start;
}

body.woocommerce-cart .woocommerce-notices-wrapper,
body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-error,
body.woocommerce-cart .return-to-shop,
body.woocommerce-cart .cart-empty {
  grid-column: 1 / -1;
}

body.woocommerce-cart .woocommerce-cart-form {
  grid-column: 1;
  min-width: 0;
}

body.woocommerce-cart .cart-collaterals {
  grid-column: 2;
  min-width: 0;
}

body.woocommerce-cart table.shop_table {
  margin: 0;
  overflow: hidden;
  border: 1px solid #e2e0da;
  border-radius: 17px;
  background: #fff;
  border-collapse: separate;
  border-spacing: 0;
}

body.woocommerce-cart table.shop_table th,
body.woocommerce-cart table.shop_table td {
  padding: 15px 14px;
  border-color: #eceae5;
}

body.woocommerce-cart table.shop_table thead th {
  background: #f7f6f3;
  color: #6b6f78;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body.woocommerce-cart td.product-thumbnail {
  width: 92px;
}

body.woocommerce-cart td.product-thumbnail img {
  width: 68px;
  height: 94px;
  object-fit: cover;
  border-radius: 9px;
}

body.woocommerce-cart td.product-name a {
  font-weight: 760;
  line-height: 1.25;
}

body.woocommerce-cart .cart_totals {
  position: sticky;
  top: 22px;
  overflow: hidden;
  padding: 22px;
  border: 1px solid #dfdcd5;
  border-radius: 18px;
  background: #f7f6f3;
}

body.admin-bar.woocommerce-cart .cart_totals {
  top: 54px;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
body.woocommerce-cart .button,
body.woocommerce-checkout #place_order,
body.woocommerce-checkout .button {
  min-height: 44px;
  border: 0;
  border-radius: 12px;
  background: #17191f;
  color: #fff;
  font-weight: 760;
  box-shadow: none;
}

/* ================================================================
   Classic checkout fallback
   ================================================================ */
body.woocommerce-checkout form.checkout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(340px, .8fr);
  gap: 24px 30px;
  align-items: start;
}

body.woocommerce-checkout .woocommerce-NoticeGroup-checkout,
body.woocommerce-checkout .woocommerce-form-coupon-toggle,
body.woocommerce-checkout .woocommerce-form-login-toggle {
  grid-column: 1 / -1;
}

body.woocommerce-checkout #customer_details {
  grid-column: 1;
  display: grid;
  gap: 20px;
}

body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout #customer_details .col-2 {
  float: none;
  width: auto;
  padding: 24px;
  border: 1px solid #e2e0da;
  border-radius: 18px;
  background: #fff;
}

body.woocommerce-checkout #order_review_heading,
body.woocommerce-checkout #order_review {
  grid-column: 2;
}

body.woocommerce-checkout #order_review {
  position: sticky;
  top: 22px;
  overflow: hidden;
  padding: 22px;
  border: 1px solid #e2e0da;
  border-radius: 18px;
  background: #f7f6f3;
}

body.admin-bar.woocommerce-checkout #order_review {
  top: 54px;
}

body.woocommerce-checkout .form-row input.input-text,
body.woocommerce-checkout .form-row textarea,
body.woocommerce-checkout .form-row select,
body.woocommerce-checkout .select2-container .select2-selection--single {
  width: 100%;
  min-height: 46px;
  padding: 10px 12px;
  border: 1px solid #d8d4cc;
  border-radius: 11px;
  background: #fff;
  color: #252830;
  box-shadow: none;
}

body.woocommerce-checkout #place_order {
  width: 100%;
  min-height: 50px;
}

/* Responsive */
@media (max-width: 900px) {
  body.woocommerce-cart .woocommerce,
  body.woocommerce-checkout form.checkout {
    grid-template-columns: 1fr;
  }

  body.woocommerce-cart .woocommerce-cart-form,
  body.woocommerce-cart .cart-collaterals,
  body.woocommerce-checkout #customer_details,
  body.woocommerce-checkout #order_review_heading,
  body.woocommerce-checkout #order_review {
    grid-column: 1;
  }

  .wp-block-woocommerce-cart .wc-block-cart__sidebar,
  .wp-block-woocommerce-cart .wc-block-components-sidebar,
  .wp-block-woocommerce-checkout .wc-block-checkout__sidebar,
  .wp-block-woocommerce-checkout .wc-block-components-sidebar,
  body.woocommerce-cart .cart_totals,
  body.woocommerce-checkout #order_review {
    position: static;
  }
}

@media (max-width: 620px) {
  body.woocommerce-cart .np-page__inner,
  body.woocommerce-checkout .np-page__inner {
    width: min(calc(100% - 22px), var(--np-max));
    padding-top: 22px;
  }

  .wp-block-woocommerce-cart .wc-block-cart-items {
    border-spacing: 0 10px !important;
  }

  .wp-block-woocommerce-cart .wc-block-cart-item__image {
    width: 76px !important;
    padding-left: 12px !important;
    padding-right: 10px !important;
  }

  .wp-block-woocommerce-cart .wc-block-cart-item__image img {
    width: 62px !important;
    height: 86px !important;
  }

  .wp-block-woocommerce-cart .wc-block-cart__sidebar,
  .wp-block-woocommerce-cart .wc-block-components-sidebar,
  .wp-block-woocommerce-checkout .wc-block-components-checkout-step,
  .wp-block-woocommerce-checkout .wc-block-checkout__sidebar,
  .wp-block-woocommerce-checkout .wc-block-components-sidebar {
    border-radius: 14px !important;
  }
}

/* 0.10.8 polish: keep the cart dense, readable and aligned with the storefront. */
.wp-block-woocommerce-cart .wc-block-components-sidebar-layout {
  grid-template-columns: minmax(0, 1.65fr) minmax(320px, .85fr);
  column-gap: 34px;
  align-items: start;
}

.wp-block-woocommerce-cart .wc-block-cart-items tbody tr.wc-block-cart-items__row > td {
  vertical-align: top;
}

.wp-block-woocommerce-cart .wc-block-cart-item__product {
  padding-left: 4px !important;
}

.wp-block-woocommerce-cart .wc-block-components-product-metadata__description > p:first-child:last-child {
  margin-bottom: 0;
}

.wp-block-woocommerce-cart .wc-block-components-product-metadata__description ul {
  margin: 6px 0 0;
  padding-left: 18px;
}

.wp-block-woocommerce-cart .wc-block-cart-item__quantity {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
}

.wp-block-woocommerce-cart .wc-block-cart-item__quantity .wc-block-components-quantity-selector {
  margin-top: 0 !important;
}

.wp-block-woocommerce-cart .wc-block-cart-item__remove-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  margin-left: 0 !important;
  border-radius: 10px;
}

.wp-block-woocommerce-cart .wc-block-cart-item__remove-link:hover {
  background: #f0eeea;
  text-decoration: none !important;
}

.wp-block-woocommerce-cart .wc-block-cart__sidebar {
  min-width: 0;
}

.wp-block-woocommerce-cart .wc-block-cart__submit-button {
  transition: transform .16s ease, background-color .16s ease;
}

.wp-block-woocommerce-cart .wc-block-cart__submit-button:hover {
  transform: translateY(-1px);
}

@media (max-width: 900px) {
  .wp-block-woocommerce-cart .wc-block-components-sidebar-layout {
    grid-template-columns: 1fr;
  }
}

/* 0.10.9: Woo Blocks uses its own responsive flex widths. Force the two-column
   page composition explicitly so the summary cannot wrap beneath the main flow. */
@media (min-width: 901px) {
  .wp-block-woocommerce-cart .wc-block-components-sidebar-layout,
  .wp-block-woocommerce-checkout .wc-block-components-sidebar-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1.65fr) minmax(320px, .85fr) !important;
    column-gap: 34px !important;
    align-items: start !important;
  }

  .wp-block-woocommerce-cart .wc-block-components-main,
  .wp-block-woocommerce-checkout .wc-block-components-main {
    grid-column: 1 !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    padding-right: 0 !important;
  }

  .wp-block-woocommerce-cart .wc-block-components-sidebar,
  .wp-block-woocommerce-checkout .wc-block-components-sidebar {
    grid-column: 2 !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
  }
}


/* ================================================================
   0.11.0 — checkout layout pass
   Keep WooCommerce Blocks in charge of behavior; this section only shapes
   the visual hierarchy and the two-column checkout composition.
   ================================================================ */

.wp-block-woocommerce-checkout .wc-block-components-sidebar-layout {
  align-items: start;
}

.wp-block-woocommerce-checkout .wc-block-checkout__main {
  min-width: 0;
}

/* Give the checkout one consistent vertical rhythm instead of a stack of
   unrelated Woo panels. */
.wp-block-woocommerce-checkout .wc-block-components-checkout-step {
  margin: 0 0 14px !important;
  padding: 24px !important;
  border: 1px solid #e1ded7 !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: 0 2px 10px rgba(21, 23, 28, .025);
}

.wp-block-woocommerce-checkout .wc-block-components-checkout-step__heading {
  margin: 0 0 18px !important;
  padding: 0 !important;
}

.wp-block-woocommerce-checkout .wc-block-components-checkout-step__title {
  margin: 0 !important;
  color: #20232a;
  font-size: 20px !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
  letter-spacing: -.025em;
}

.wp-block-woocommerce-checkout .wc-block-components-checkout-step__description {
  margin-top: 5px !important;
  color: #6a6e76 !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
}

/* Inputs */
.wp-block-woocommerce-checkout .wc-block-components-text-input,
.wp-block-woocommerce-checkout .wc-block-components-combobox {
  margin-bottom: 12px !important;
}

.wp-block-woocommerce-checkout .wc-block-components-text-input input,
.wp-block-woocommerce-checkout .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input {
  min-height: 50px !important;
  padding-left: 14px !important;
  padding-right: 14px !important;
  border: 1px solid #d6d2ca !important;
  border-radius: 12px !important;
  background: #fff !important;
  color: #20232a !important;
}

.wp-block-woocommerce-checkout .wc-block-components-text-input label,
.wp-block-woocommerce-checkout .wc-block-components-combobox label {
  color: #666a72 !important;
}

.wp-block-woocommerce-checkout .wc-block-components-text-input input:focus,
.wp-block-woocommerce-checkout .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input:focus {
  border-color: #8e8980 !important;
  box-shadow: 0 0 0 4px rgba(23, 25, 31, .055) !important;
  outline: none !important;
}

/* Shipping and payment options are choices, not mini admin tables. */
.wp-block-woocommerce-checkout .wc-block-components-radio-control,
.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-option,
.wp-block-woocommerce-checkout .wc-block-components-radio-control__option {
  border-color: #dedbd4 !important;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control__option,
.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-option {
  margin-top: 8px !important;
  padding: 15px 16px !important;
  border: 1px solid #dedbd4 !important;
  border-radius: 12px !important;
  background: #fbfaf8 !important;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control__option:has(input:checked),
.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-option:has(input:checked) {
  border-color: #8e8980 !important;
  background: #f7f6f3 !important;
  box-shadow: 0 0 0 1px #8e8980 inset;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control__label,
.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-option__label {
  font-weight: 720 !important;
}

/* Payment detail copy should read as supporting text. */
.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-content,
.wp-block-woocommerce-checkout .wc-block-components-payment-method-label,
.wp-block-woocommerce-checkout .wc-block-components-payment-method-content {
  color: #555a63;
  font-size: 13px;
  line-height: 1.5;
}

/* Order note gets its own quiet card but should not compete with payment. */
.wp-block-woocommerce-checkout .wc-block-checkout__add-note,
.wp-block-woocommerce-checkout .wc-block-components-checkbox {
  border-radius: 12px;
}

.wp-block-woocommerce-checkout .wc-block-components-checkbox label {
  color: #333740;
}

/* Terms + final action */
.wp-block-woocommerce-checkout .wc-block-checkout__terms,
.wp-block-woocommerce-checkout .wc-block-checkout__actions {
  margin-top: 14px !important;
}

.wp-block-woocommerce-checkout .wc-block-checkout__terms {
  padding-top: 18px;
  border-top: 1px solid #dedbd4;
  color: #555a63;
  font-size: 12px;
  line-height: 1.5;
}

.wp-block-woocommerce-checkout .wc-block-checkout__actions_row {
  gap: 12px;
}

.wp-block-woocommerce-checkout .wc-block-components-checkout-place-order-button {
  min-height: 54px !important;
  width: 100% !important;
  border-radius: 12px !important;
  background: #17191f !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  transition: transform .16s ease, background-color .16s ease;
}

.wp-block-woocommerce-checkout .wc-block-components-checkout-place-order-button:hover {
  transform: translateY(-1px);
  background: #2a2d35 !important;
}

/* Right-hand order overview */
.wp-block-woocommerce-checkout .wc-block-checkout__sidebar,
.wp-block-woocommerce-checkout .wc-block-components-sidebar {
  overflow: hidden;
  padding: 24px !important;
  border: 1px solid #dfdcd5 !important;
  border-radius: 18px !important;
  background: #f7f6f3 !important;
  box-shadow: 0 8px 28px rgba(21, 23, 28, .045);
}

.wp-block-woocommerce-checkout .wc-block-components-checkout-order-summary__title,
.wp-block-woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-title,
.wp-block-woocommerce-checkout .wc-block-components-sidebar > h2 {
  margin: 0 0 14px !important;
  color: #20232a !important;
  font-size: 20px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: -.02em;
}

.wp-block-woocommerce-checkout .wc-block-components-order-summary {
  margin: 0 !important;
}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
  padding: 14px 0 !important;
  border-bottom: 1px solid #dedbd4 !important;
}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item__image {
  width: 54px !important;
}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item__image img {
  width: 50px !important;
  height: 70px !important;
  object-fit: cover;
  border-radius: 9px !important;
}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item__description {
  min-width: 0;
}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item__description .wc-block-components-product-name {
  color: #252830 !important;
  font-size: 13px !important;
  font-weight: 760 !important;
  line-height: 1.3 !important;
}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item__total-price {
  font-size: 13px !important;
  font-weight: 760 !important;
  white-space: nowrap;
}

.wp-block-woocommerce-checkout .wc-block-components-totals-wrapper {
  padding: 13px 0 !important;
  border-top: 1px solid #dedbd4 !important;
}

.wp-block-woocommerce-checkout .wc-block-components-totals-item__label,
.wp-block-woocommerce-checkout .wc-block-components-totals-item__value {
  font-size: 13px;
}

.wp-block-woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wp-block-woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  color: #20232a;
  font-size: 19px !important;
  font-weight: 820 !important;
  letter-spacing: -.02em;
}

@media (min-width: 901px) {
  .wp-block-woocommerce-checkout .wc-block-components-sidebar-layout {
    grid-template-columns: minmax(0, 1.7fr) minmax(330px, .8fr) !important;
    column-gap: 34px !important;
  }
}

@media (max-width: 620px) {
  .wp-block-woocommerce-checkout .wc-block-components-checkout-step,
  .wp-block-woocommerce-checkout .wc-block-checkout__sidebar,
  .wp-block-woocommerce-checkout .wc-block-components-sidebar {
    padding: 18px !important;
  }

  .wp-block-woocommerce-checkout .wc-block-components-order-summary-item {
    grid-template-columns: 48px minmax(0, 1fr) auto;
    gap: 10px;
  }

  .wp-block-woocommerce-checkout .wc-block-components-order-summary-item__image,
  .wp-block-woocommerce-checkout .wc-block-components-order-summary-item__image img {
    width: 44px !important;
  }

  .wp-block-woocommerce-checkout .wc-block-components-order-summary-item__image img {
    height: 62px !important;
  }
}

/* ================================================================
   Checkout controls — exact Woo Blocks markup pass (0.11.3)
   ================================================================ */

/* Text inputs: keep the floating label compact and give the value equal visual
   breathing room on the left and vertically. */
.wp-block-woocommerce-checkout .wc-block-components-address-form .wc-block-components-text-input {
  position: relative;
}

.wp-block-woocommerce-checkout .wc-block-components-address-form .wc-block-components-text-input > input {
  box-sizing: border-box !important;
  min-height: 62px !important;
  padding: 25px 14px 9px !important;
}

.wp-block-woocommerce-checkout .wc-block-components-address-form .wc-block-components-text-input > label {
  position: absolute !important;
  top: 9px !important;
  left: 14px !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  transform-origin: left top !important;
  font-size: 11px !important;
  line-height: 1 !important;
}

/* Woo positions the native radio independently from the option text. Put both
   back into one explicit grid so they cannot overlap or drift vertically. */
.wp-block-woocommerce-checkout .wc-block-components-radio-control > .wc-block-components-radio-control__option,
.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-option > .wc-block-components-radio-control__option {
  display: grid !important;
  grid-template-columns: 18px minmax(0, 1fr) !important;
  column-gap: 12px !important;
  align-items: center !important;
  min-height: 54px !important;
  padding: 13px 14px !important;
  border: 0 !important;
  border-radius: 11px !important;
  outline: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control__option > .wc-block-components-radio-control__input {
  position: static !important;
  inset: auto !important;
  grid-column: 1 !important;
  align-self: center !important;
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
  transform: none !important;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control__option > .wc-block-components-radio-control__option-layout {
  grid-column: 2 !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control__label-group {
  display: flex !important;
  align-items: baseline !important;
  justify-content: space-between !important;
  gap: 16px !important;
  width: 100% !important;
}

/* One visual surface per shipping/payment choice. Woo's highlighted modifier
   classes otherwise create the nested border effect visible in checkout. */
.wp-block-woocommerce-checkout .wc-block-components-shipping-rates-control__package,
.wp-block-woocommerce-checkout .wc-block-components-radio-control,
.wp-block-woocommerce-checkout .wc-block-components-radio-control--highlight-checked,
.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-option,
.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wp-block-woocommerce-checkout .wc-block-components-radio-control__option-checked,
.wp-block-woocommerce-checkout .wc-block-components-radio-control__option--checked-option-highlighted {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

.wp-block-woocommerce-checkout .wc-block-components-shipping-rates-control__package {
  overflow: visible;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-option {
  overflow: hidden;
  border: 1px solid #d9d5cd !important;
  border-radius: 12px !important;
  background: #fff !important;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wp-block-woocommerce-checkout .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option--checked-option-highlighted {
  border-color: #aaa398 !important;
  background: #f8f7f4 !important;
}

/* Shipping has no accordion wrapper, so its selected label itself is the sole
   surface. Do not draw a second inner rectangle. */
.wp-block-woocommerce-checkout .wc-block-components-shipping-rates-control__package > .wc-block-components-radio-control {
  border: 0 !important;
  border-radius: inherit !important;
  background: transparent !important;
}

/* Payment explanation belongs to the same card as the selected payment method. */
.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-option > .wc-block-components-radio-control-accordion-content {
  margin: 0 !important;
  padding: 0 14px 15px 44px !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-content > div,
.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-content > p {
  margin: 0 !important;
}

/* ================================================================
   Checkout radio controls — remove Woo pseudo marker drift (0.11.4)
   ================================================================ */
.wp-block-woocommerce-checkout .wc-block-components-radio-control__input {
  position: static !important;
  inset: auto !important;
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
  transform: none !important;
  -webkit-appearance: radio !important;
  appearance: auto !important;
  accent-color: #17191f !important;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control__input::before,
.wp-block-woocommerce-checkout .wc-block-components-radio-control__input::after {
  content: none !important;
  display: none !important;
}

/* 0.11.5: radio groups - one visual surface per choice.
   Shipping choices have no accordion wrapper, while payment choices do.
   Style those two DOM shapes separately instead of fighting Woo's nested
   highlighted backgrounds. */
.wp-block-woocommerce-checkout .wc-block-components-radio-control--highlight-checked,
.wp-block-woocommerce-checkout .wc-block-components-radio-control--highlight-checked--first-selected,
.wp-block-woocommerce-checkout .wc-block-components-radio-control--highlight-checked--last-selected {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Shipping: the label itself is the choice card. */
.wp-block-woocommerce-checkout .wc-block-checkout__shipping-option .wc-block-components-radio-control__option {
  padding: 14px !important;
  border: 1px solid #d7d3cb !important;
  border-radius: 12px !important;
  background: #fff !important;
  box-shadow: none !important;
}

.wp-block-woocommerce-checkout .wc-block-checkout__shipping-option .wc-block-components-radio-control__option-checked,
.wp-block-woocommerce-checkout .wc-block-checkout__shipping-option .wc-block-components-radio-control__option--checked-option-highlighted {
  border-color: #9b958a !important;
  background: #f7f6f3 !important;
  box-shadow: none !important;
}

/* Payment: the accordion wrapper is the card. The label and explanatory
   content are parts of that same surface, not nested cards. */
.wp-block-woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option {
  overflow: hidden;
  margin: 0 0 9px !important;
  padding: 0 !important;
  border: 1px solid #d7d3cb !important;
  border-radius: 12px !important;
  background: #fff !important;
  box-shadow: none !important;
}

.wp-block-woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
  border-color: #9b958a !important;
  background: #f7f6f3 !important;
  box-shadow: none !important;
}

.wp-block-woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option,
.wp-block-woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option-checked {
  min-height: 52px;
  margin: 0 !important;
  padding: 14px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.wp-block-woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-content {
  margin: 0 !important;
  padding: 0 14px 14px 46px !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Woo paints selected rows using pseudo-elements/background layers in some
   block versions. Keep our native radio dot, but remove those extra surfaces. */
.wp-block-woocommerce-checkout .wc-block-components-radio-control__option::before,
.wp-block-woocommerce-checkout .wc-block-components-radio-control__option::after,
.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-option::before,
.wp-block-woocommerce-checkout .wc-block-components-radio-control-accordion-option::after {
  content: none !important;
  display: none !important;
}


/* ================================================================
   Woo highlighted radio wrapper reset (0.11.8)
   ================================================================
   Woo uses the --highlight-checked modifier on the radio-control wrapper
   to paint an additional selected-state surface around the option. We draw
   the choice card ourselves, so neutralise the wrapper and its paint layers
   completely while leaving the semantic class and behaviour intact. */
.wp-block-woocommerce-checkout .wc-block-components-radio-control--highlight-checked,
.wp-block-woocommerce-checkout .wc-block-components-radio-control--highlight-checked--first-selected,
.wp-block-woocommerce-checkout .wc-block-components-radio-control--highlight-checked--last-selected {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}

.wp-block-woocommerce-checkout .wc-block-components-radio-control--highlight-checked::before,
.wp-block-woocommerce-checkout .wc-block-components-radio-control--highlight-checked::after,
.wp-block-woocommerce-checkout .wc-block-components-radio-control--highlight-checked--first-selected::before,
.wp-block-woocommerce-checkout .wc-block-components-radio-control--highlight-checked--first-selected::after,
.wp-block-woocommerce-checkout .wc-block-components-radio-control--highlight-checked--last-selected::before,
.wp-block-woocommerce-checkout .wc-block-components-radio-control--highlight-checked--last-selected::after {
  content: none !important;
  display: none !important;
  border: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Woo also scopes selected-row decoration through the highlight wrapper.
   Explicitly remove that decoration; our shipping/payment rules below/above
   remain responsible for the single visible border. */
.wp-block-woocommerce-checkout .wc-block-components-radio-control--highlight-checked > .wc-block-components-radio-control__option,
.wp-block-woocommerce-checkout .wc-block-components-radio-control--highlight-checked > .wc-block-components-radio-control__option-checked,
.wp-block-woocommerce-checkout .wc-block-components-radio-control--highlight-checked > .wc-block-components-radio-control__option--checked-option-highlighted {
  outline: 0 !important;
  box-shadow: none !important;
}


/* ================================================================
   Checkout medium-width layout fix (0.11.9)
   ================================================================
   Woo keeps its sidebar flex layout until roughly tablet width. That makes
   the order summary progressively narrower before Woo finally stacks it.
   Stack checkout earlier and explicitly reset Woo's column widths so the
   summary remains readable. */
@media (max-width: 1050px) {
  .wp-block-woocommerce-checkout .wc-block-components-sidebar-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 24px !important;
    align-items: start !important;
  }

  .wp-block-woocommerce-checkout .wc-block-components-main,
  .wp-block-woocommerce-checkout .wc-block-components-sidebar,
  .wp-block-woocommerce-checkout .wc-block-checkout__main,
  .wp-block-woocommerce-checkout .wc-block-checkout__sidebar {
    grid-column: 1 !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .wp-block-woocommerce-checkout .wc-block-components-sidebar,
  .wp-block-woocommerce-checkout .wc-block-checkout__sidebar {
    position: static !important;
  }
}

/* Do the same explicitly for cart once it reaches its existing breakpoint.
   Without display:grid here, Woo's own flex layout takes over again until
   its smaller internal breakpoint. */
@media (max-width: 900px) {
  .wp-block-woocommerce-cart .wc-block-components-sidebar-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 24px !important;
  }

  .wp-block-woocommerce-cart .wc-block-components-main,
  .wp-block-woocommerce-cart .wc-block-components-sidebar,
  .wp-block-woocommerce-cart .wc-block-cart__main,
  .wp-block-woocommerce-cart .wc-block-cart__sidebar {
    grid-column: 1 !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}


/* ================================================================
   Checkout order summary space use (0.11.10)
   ================================================================
   Woo wraps the order summary in another bordered block inside our sidebar.
   Let the sidebar be the card, remove the redundant inner frame, and give
   product names the full text column instead of squeezing them between the
   image and line total. */
.wp-block-woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.wp-block-woocommerce-checkout .wc-block-components-checkout-order-summary__title {
  padding: 0 0 14px !important;
  border: 0 !important;
  border-bottom: 1px solid #dedbd4 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.wp-block-woocommerce-checkout .wc-block-components-checkout-order-summary__content {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

.wp-block-woocommerce-checkout .wc-block-checkout__sidebar,
.wp-block-woocommerce-checkout .wc-block-components-sidebar {
  padding: 18px !important;
}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item {
  grid-template-columns: 54px minmax(0, 1fr) !important;
  column-gap: 12px !important;
  row-gap: 5px !important;
}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item__image {
  grid-column: 1 !important;
  grid-row: 1 / span 2 !important;
}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item__description {
  grid-column: 2 !important;
  grid-row: 1 !important;
  width: auto !important;
  min-width: 0 !important;
  padding-right: 0 !important;
}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item__total-price {
  grid-column: 2 !important;
  grid-row: 2 !important;
  justify-self: end !important;
  margin: 0 !important;
  padding: 0 !important;
  white-space: nowrap;
}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item__description .wc-block-components-product-name {
  margin: 0 0 4px !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: auto;
}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item__description .wc-block-components-product-metadata,
.wp-block-woocommerce-checkout .wc-block-components-order-summary-item__description .wc-block-cart-item__prices {
  max-width: none !important;
}

@media (max-width: 620px) {
  .wp-block-woocommerce-checkout .wc-block-checkout__sidebar,
  .wp-block-woocommerce-checkout .wc-block-components-sidebar {
    padding: 14px !important;
  }

  .wp-block-woocommerce-checkout .wc-block-components-order-summary-item {
    grid-template-columns: 48px minmax(0, 1fr) !important;
    column-gap: 10px !important;
  }
}

/* ================================================================
   Checkout order summary separators (0.11.11)
   ================================================================
   Woo's totals wrappers draw a divider for every block, including empty fee
   and discount blocks. Keep separators where they help scanning, not between
   every internal block. */
.wp-block-woocommerce-checkout .wc-block-components-checkout-order-summary__title {
  border-bottom: 0 !important;
}

.wp-block-woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-wrapper {
  border-top: 0 !important;
}

.wp-block-woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-fee-block:empty,
.wp-block-woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-discount-block:empty {
  display: none !important;
}

.wp-block-woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-coupon-form-block {
  margin-top: 8px !important;
  border-top: 0 !important;
}

.wp-block-woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block {
  margin-top: 2px;
}

.wp-block-woocommerce-checkout .wc-block-components-totals-footer-item {
  margin-top: 8px !important;
  padding-top: 16px !important;
  border-top: 1px solid #d8d4cc !important;
}

/* ================================================================
   Cart item attention state (0.11.12)
   ================================================================
   Woo Blocks presents stock errors globally. cart-status.js links notices that
   name a product back to the matching cart row, so the customer can see which
   line needs action without changing WooCommerce cart behavior. */
.wp-block-woocommerce-cart .wc-block-cart-items tbody tr.wc-block-cart-items__row.np-cart-item--needs-attention {
  background: #fff7f6;
  box-shadow: 0 0 0 1px #df776d, 0 5px 18px rgba(128, 35, 27, .055);
}

.wp-block-woocommerce-cart .wc-block-cart-items tbody tr.wc-block-cart-items__row.np-cart-item--needs-attention > td {
  background: #fff7f6 !important;
}

.wp-block-woocommerce-cart .np-cart-item-alert {
  flex: 1 1 240px;
  min-width: min(240px, 100%);
  margin-left: 10px;
  color: #8f2e26;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.4;
}

.wp-block-woocommerce-cart .wc-block-cart-item__quantity:has(.np-cart-item-alert) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.wp-block-woocommerce-cart .wc-block-cart-item__quantity:has(.np-cart-item-alert) .np-cart-item-alert {
  margin-left: 2px;
}

@media (max-width: 620px) {
  .wp-block-woocommerce-cart .np-cart-item-alert {
    flex-basis: 100%;
    margin: 5px 0 0 !important;
  }
}

/* Checkout navigation: provide an explicit way back to the cart without
   competing visually with the final purchase action. */
.wp-block-woocommerce-checkout .wc-block-checkout__actions_row {
  display: grid !important;
  grid-template-columns: minmax(150px, auto) minmax(0, 1fr);
  align-items: stretch;
  gap: 12px !important;
}

.wp-block-woocommerce-checkout .np-checkout-back-to-cart {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 0 18px;
  border: 1px solid #cfcac1;
  border-radius: 12px;
  background: #fff;
  color: #2f333b;
  font-size: 14px;
  font-weight: 750;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
  transition: border-color .16s ease, background-color .16s ease, transform .16s ease;
}

.wp-block-woocommerce-checkout .np-checkout-back-to-cart::before {
  content: "←";
  margin-right: 8px;
  font-size: 15px;
  line-height: 1;
}

.wp-block-woocommerce-checkout .np-checkout-back-to-cart:hover,
.wp-block-woocommerce-checkout .np-checkout-back-to-cart:focus-visible {
  border-color: #9f9a92;
  background: #f7f6f3;
  color: #17191f;
  text-decoration: none;
  transform: translateY(-1px);
}

@media (max-width: 620px) {
  .wp-block-woocommerce-checkout .wc-block-checkout__actions_row {
    grid-template-columns: 1fr;
  }

  .wp-block-woocommerce-checkout .np-checkout-back-to-cart {
    order: 2;
  }
}


/* Checkout error notices: give customers a direct route back to the cart when
   WooCommerce blocks checkout because the cart needs attention. */
.wp-block-woocommerce-checkout .wc-block-components-notice-banner.is-error .wc-block-components-notice-banner__content {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
}

.wp-block-woocommerce-checkout .np-checkout-notice-back-to-cart {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-left: auto;
  padding: 7px 10px;
  border: 1px solid rgba(143, 46, 38, .28);
  border-radius: 999px;
  background: rgba(255, 255, 255, .72);
  color: #8f2e26;
  font-size: 12px;
  font-weight: 750;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
}

.wp-block-woocommerce-checkout .np-checkout-notice-back-to-cart::before {
  content: "←";
  line-height: 1;
}

.wp-block-woocommerce-checkout .np-checkout-notice-back-to-cart:hover,
.wp-block-woocommerce-checkout .np-checkout-notice-back-to-cart:focus-visible {
  border-color: rgba(143, 46, 38, .5);
  background: #fff;
  color: #75231d;
  text-decoration: none;
}

@media (max-width: 620px) {
  .wp-block-woocommerce-checkout .np-checkout-notice-back-to-cart {
    margin-left: 0;
  }
}
