/*
 * Basket, checkout, order received and WooCommerce notices (functions/custom/shop.php).
 * Styles WooCommerce's own classic templates, which are shown through page-shop.php.
 * Plain CSS rather than SCSS so it doesn't depend on the WP-SCSS plugin compiling.
 */

body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-account,
body.woocommerce-page {
  --s-navy: #201b4e;
  --s-navy-dark: #140f36;
  --s-green: #a1bf60;
  --s-green-hover: #b3cf78;
  --s-green-soft: #eef4e2;
  --s-green-dark: #5f6e2f;
  --s-grey: #f6f6f9;
  --s-line: #e3e2ea;
  --s-muted: #6f6c85;
  --s-error: #c0392b;
  --s-error-soft: #fdecea;
  --s-radius: 14px;
}

/* Page frame */

.woocommerce-cart .fullwidth-content.shop,
.woocommerce-checkout .fullwidth-content.shop {
  padding: 50px 0 80px;
}

.woocommerce-cart .fullwidth-content.shop h1,
.woocommerce-checkout .fullwidth-content.shop h1 {
  margin-bottom: 28px;
  font-size: 36px;
}

/* The theme sets 20px on every element; bring the shop back to a readable body size.
   :where() keeps this at zero specificity, so it only beats the theme's `*` rule, never the rules below. */
:where(.woocommerce-cart .fullwidth-content.shop .woocommerce, .woocommerce-checkout .fullwidth-content.shop .woocommerce) * {
  font-size: 16px;
  line-height: 1.5;
}

/* ------------------------------------------------------------------
 * Notices (also shown on the booking page)
 * ------------------------------------------------------------------ */

.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 16px;
  margin: 0 0 24px;
  padding: 16px 20px 16px 52px;
  border: 0;
  border-left: 4px solid var(--s-navy);
  border-radius: 10px;
  background: var(--s-grey);
  color: var(--s-navy);
  font-size: 16px;
  list-style: none;
}

.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-error::before {
  top: 50%;
  left: 20px;
  transform: translateY(-50%);
  color: var(--s-navy);
}

/* WooCommerce's clearfix pseudo-element would become a flex item. */
/* WooCommerce focuses new notices so screen readers announce them; no visible ring needed on a non-interactive box. */
.woocommerce .woocommerce-message:focus,
.woocommerce .woocommerce-info:focus,
.woocommerce .woocommerce-error:focus {
  outline: none;
}

.woocommerce .woocommerce-message::after,
.woocommerce .woocommerce-info::after,
.woocommerce .woocommerce-error::after {
  content: none;
}

.woocommerce .woocommerce-message {
  border-left-color: var(--s-green);
  background: var(--s-green-soft);
}

.woocommerce .woocommerce-message::before {
  color: var(--s-green-dark);
}

.woocommerce .woocommerce-error {
  border-left-color: var(--s-error);
  background: var(--s-error-soft);
  color: var(--s-error);
}

.woocommerce .woocommerce-error::before,
.woocommerce .woocommerce-error li,
.woocommerce .woocommerce-error a {
  color: var(--s-error);
}

.woocommerce .woocommerce-error li {
  flex-basis: 100%;
  margin: 0;
  padding: 0;
}

.woocommerce .woocommerce-message a:not(.button),
.woocommerce .woocommerce-info a:not(.button) {
  font-weight: 700;
  color: inherit;
  text-decoration: underline;
}

/* "View basket" etc. inside a notice */
.woocommerce .woocommerce-message .button,
.woocommerce .woocommerce-info .button {
  order: 2;
  float: none;
  min-width: 0;
  margin: 0;
  padding: 10px 20px;
  border-radius: 999px;
  background: var(--s-navy);
  color: #fff;
  font-size: 15px;
  line-height: 1;
  text-transform: none;
}

/* ------------------------------------------------------------------
 * Shared buttons and form fields
 * ------------------------------------------------------------------ */

/* .fullwidth-content.shop is included to out-rank the theme's `.woocommerce .button.button.alt` (10px margin, uppercase). */
.woocommerce-cart .fullwidth-content.shop .woocommerce .button,
.woocommerce-checkout .fullwidth-content.shop .woocommerce .button {
  min-width: 0;
  margin: 0;
  padding: 14px 24px;
  border: 2px solid var(--s-navy);
  border-radius: 999px;
  background: #fff;
  color: var(--s-navy);
  font-weight: 700;
  line-height: 1;
  text-transform: none;
  letter-spacing: 0.02em;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.woocommerce-cart .fullwidth-content.shop .woocommerce .button:hover,
.woocommerce-checkout .fullwidth-content.shop .woocommerce .button:hover {
  background: var(--s-navy);
  color: #fff;
}

/* Main actions: proceed to checkout, place order, empty-basket "Book a session" */
.woocommerce-cart .fullwidth-content.shop .woocommerce a.checkout-button.button,
.woocommerce-cart .fullwidth-content.shop .woocommerce .return-to-shop .button,
.woocommerce-checkout .fullwidth-content.shop .woocommerce #place_order {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 56px;
  border-color: var(--s-green);
  background: var(--s-green);
  color: var(--s-navy);
  font-size: 18px;
}

.woocommerce-cart .fullwidth-content.shop .woocommerce a.checkout-button.button:hover,
.woocommerce-cart .fullwidth-content.shop .woocommerce .return-to-shop .button:hover,
.woocommerce-checkout .fullwidth-content.shop .woocommerce #place_order:hover {
  border-color: var(--s-green-hover);
  background: var(--s-green-hover);
  color: var(--s-navy);
}

.woocommerce-cart .woocommerce .button:disabled,
.woocommerce-cart .woocommerce .button.disabled {
  opacity: 0.5;
}

.woocommerce-cart .woocommerce input.input-text,
.woocommerce-checkout .woocommerce form .form-row input.input-text,
.woocommerce-checkout .woocommerce form .form-row textarea,
.woocommerce-checkout .woocommerce form .form-row select,
.woocommerce-checkout .select2-container .select2-selection--single {
  width: 100%;
  height: auto;
  min-height: 50px;
  margin: 0;
  padding: 12px 14px;
  border: 1.5px solid var(--s-line);
  border-radius: 8px;
  background: #fff;
  color: var(--s-navy);
  font-size: 16px;
  box-shadow: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.woocommerce-checkout .woocommerce form .form-row textarea {
  min-height: 110px;
}

/* The theme capitalises every placeholder ("Notes About Your Order, E.G."). */
.woocommerce-cart .woocommerce ::placeholder,
.woocommerce-checkout .woocommerce ::placeholder {
  text-transform: none;
  font-weight: 400;
  color: #9d9aae;
}

.woocommerce-cart .woocommerce input.input-text:focus,
.woocommerce-checkout .woocommerce form .form-row input.input-text:focus,
.woocommerce-checkout .woocommerce form .form-row textarea:focus,
.woocommerce-checkout .woocommerce form .form-row select:focus,
.woocommerce-checkout .select2-container--focus .select2-selection--single,
.woocommerce-checkout .select2-container--open .select2-selection--single {
  border-color: var(--s-navy);
  box-shadow: 0 0 0 3px rgba(32, 27, 78, 0.12);
  outline: none;
}

.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered {
  padding: 0;
  line-height: 24px;
  color: var(--s-navy);
}

.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow {
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
}

.woocommerce-checkout .woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce-checkout .woocommerce form .form-row.woocommerce-invalid .select2-selection {
  border-color: var(--s-error);
}

/* ------------------------------------------------------------------
 * Basket
 * ------------------------------------------------------------------ */

.woocommerce-cart .fullwidth-content.shop .woocommerce {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 0 40px;
  align-items: start;
}

.woocommerce-cart .fullwidth-content.shop .woocommerce > :not(.woocommerce-cart-form):not(.cart-collaterals) {
  grid-column: 1 / -1;
}

/* Empty basket */
.woocommerce-cart .fullwidth-content.shop .woocommerce:has(.wc-empty-cart-message) {
  display: block;
  max-width: 560px;
}

.woocommerce-cart .return-to-shop {
  margin: 0;
}

.woocommerce-cart table.shop_table.cart {
  margin: 0;
  border: 0;
  border-collapse: collapse;
}

.woocommerce-cart table.shop_table.cart thead th {
  padding: 0 12px 12px;
  border: 0;
  border-bottom: 1px solid var(--s-line);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--s-muted);
}

.woocommerce-cart table.shop_table.cart td {
  padding: 20px 12px;
  border: 0;
  border-bottom: 1px solid var(--s-line);
  vertical-align: middle;
}

.woocommerce-cart table.shop_table.cart td.product-thumbnail {
  width: 96px;
}

.woocommerce-cart table.shop_table.cart td.product-thumbnail img {
  display: block;
  width: 80px;
  height: 80px;
  object-fit: cover;
  border-radius: 10px;
}

.woocommerce-cart table.shop_table.cart td.product-name > a {
  font-size: 17px;
  font-weight: 700;
  color: var(--s-navy);
  text-decoration: none;
}

/* Booking details: "Session: Sat 26 September at 8am", "Dogs: 3–4 dogs" */
.woocommerce-cart table.shop_table.cart dl.variation,
.woocommerce-checkout table.shop_table dl.variation {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 2px 8px;
  margin: 6px 0 0;
}

.woocommerce table.shop_table dl.variation dt,
.woocommerce table.shop_table dl.variation dd {
  float: none;
  margin: 0;
  padding: 0;
  color: var(--s-muted);
  font-size: 14px;
}

.woocommerce table.shop_table dl.variation dt,
.woocommerce table.shop_table dl.variation dd {
  font-weight: 400;
}

.woocommerce table.shop_table dl.variation dd,
.woocommerce table.shop_table dl.variation dd p {
  color: var(--s-navy);
}

.woocommerce table.shop_table dl.variation dd p {
  margin: 0;
  font-size: 14px;
}

.woocommerce-cart table.shop_table.cart td.product-subtotal,
.woocommerce-cart table.shop_table.cart td.product-price {
  font-weight: 700;
  white-space: nowrap;
}

.woocommerce-cart table.shop_table.cart td.product-remove {
  width: 48px;
  padding-right: 0;
}

.woocommerce-cart table.cart td.product-remove a.remove {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--s-grey);
  color: var(--s-muted) !important;
  font-size: 20px;
  line-height: 1;
  transition: background 0.2s, color 0.2s;
}

.woocommerce-cart table.cart td.product-remove a.remove:hover {
  background: var(--s-error-soft);
  color: var(--s-error) !important;
}

/* Bookings are always one per line. When nothing in the basket has an editable quantity, drop the
   quantity column, the price column (it just repeats the subtotal) and the "Update basket" button. */
.woocommerce-cart-form:not(:has(td.product-quantity input.qty:not([type="hidden"]))) .product-quantity,
.woocommerce-cart-form:not(:has(td.product-quantity input.qty:not([type="hidden"]))) .product-price,
.woocommerce-cart-form:not(:has(td.product-quantity input.qty:not([type="hidden"]))) button[name="update_cart"] {
  display: none;
}

.woocommerce-cart table.shop_table.cart td.actions {
  padding: 20px 0 0;
  border: 0;
}

.woocommerce-cart table.cart td.actions .coupon {
  display: flex;
  gap: 8px;
  float: none;
  max-width: 420px;
}

.woocommerce-cart table.cart td.actions .coupon .input-text {
  flex: 1;
  width: auto;
  min-height: 48px;
  margin: 0;
}

.woocommerce-cart table.cart td.actions .coupon .button {
  flex: none;
}

/* Basket totals card */

.woocommerce-cart .cart-collaterals {
  position: sticky;
  top: 20px;
}

.woocommerce-cart .cart-collaterals .cart_totals {
  float: none;
  width: 100%;
  padding: 28px;
  border-radius: var(--s-radius);
  background: var(--s-grey);
}

.woocommerce-cart .cart-collaterals .cart_totals h2 {
  margin: 0 0 12px;
  font-size: 24px;
}

.woocommerce-cart .cart_totals table.shop_table {
  margin: 0 0 20px;
  border: 0;
}

.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td {
  padding: 12px 0;
  border: 0;
  border-top: 1px solid var(--s-line);
  background: transparent;
}

.woocommerce-cart .cart_totals table.shop_table th {
  font-weight: 400;
  color: var(--s-muted);
}

.woocommerce-cart .cart_totals table.shop_table td {
  text-align: right;
}

.woocommerce-cart .cart_totals table.shop_table tr.order-total th,
.woocommerce-cart .cart_totals table.shop_table tr.order-total td,
.woocommerce-cart .cart_totals table.shop_table tr.order-total td * {
  font-size: 20px;
  font-weight: 700;
  color: var(--s-navy);
}

.woocommerce-cart .wc-proceed-to-checkout {
  padding: 0;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  margin-bottom: 0;
}

.woocommerce-cart #wc-stripe-express-checkout-element {
  margin-top: 12px;
}

/* ------------------------------------------------------------------
 * Checkout
 * ------------------------------------------------------------------ */

/* Two columns: your details, and the "Your order" summary (wrapped in .cleeve-checkout-summary by
   functions/custom/shop.php). Everything else in the form (Stripe's Google Pay / Link buttons, error notices)
   is full width and, being earlier in the form, stays at the top. */
.woocommerce-checkout form.checkout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 420px;
  gap: 0 48px;
  align-items: start;
}

.woocommerce-checkout form.checkout > * {
  grid-column: 1 / -1;
}

.woocommerce-checkout form.checkout > #customer_details {
  grid-column: 1;
}

.woocommerce-checkout form.checkout > .cleeve-checkout-summary {
  grid-column: 2;
  position: sticky;
  top: 20px;
  padding: 28px;
  border-radius: var(--s-radius);
  background: var(--s-grey);
}

.woocommerce-checkout .cleeve-checkout-summary #order_review_heading {
  margin: 0 0 12px;
  font-size: 24px;
}

/* Stripe's "— OR —" between the Google Pay / Link buttons and the form. Its script sets an inline
   display, hence !important. */
#wc-stripe-express-checkout-button-separator {
  display: none !important;
}

.woocommerce-checkout form.checkout > #wc-stripe-express-checkout-element {
  margin-bottom: 28px;
}

/* Your details */

.woocommerce-checkout #customer_details.col2-set .col-1,
.woocommerce-checkout #customer_details.col2-set .col-2 {
  float: none;
  width: 100%;
}

.woocommerce-checkout #customer_details h3 {
  margin: 0 0 16px;
  font-size: 24px;
}

.woocommerce-checkout #customer_details .col-2 h3 {
  margin-top: 16px;
}

.woocommerce-checkout .woocommerce form .form-row {
  margin: 0 0 16px;
  padding: 0;
}

.woocommerce-checkout .woocommerce form .form-row label {
  position: static;
  display: block;
  margin: 0 0 6px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--s-navy);
  opacity: 1;
  pointer-events: auto;
}

.woocommerce-checkout .woocommerce form .form-row label .required {
  color: var(--s-error);
  text-decoration: none;
}

.woocommerce-checkout .woocommerce form .form-row label .optional {
  font-weight: 400;
  color: var(--s-muted);
}

/* Coupon form (behind the "Have a coupon?" notice) */
.woocommerce-checkout form.checkout_coupon {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  max-width: 520px;
  margin: 0 0 24px;
  padding: 20px;
  border: 1px solid var(--s-line);
  border-radius: var(--s-radius);
}

.woocommerce-checkout form.checkout_coupon p:not(.form-row) {
  flex-basis: 100%;
  margin: 0;
}

.woocommerce-checkout form.checkout_coupon .form-row {
  float: none;
  width: auto;
  margin: 0;
}

.woocommerce-checkout form.checkout_coupon .form-row-first {
  flex: 1;
}

/* Order summary */

.woocommerce-checkout table.woocommerce-checkout-review-order-table {
  margin: 0 0 20px;
  border: 0;
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table th,
.woocommerce-checkout table.woocommerce-checkout-review-order-table td {
  padding: 12px 0;
  border: 0;
  border-top: 1px solid var(--s-line);
  background: transparent;
  vertical-align: top;
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table thead {
  display: none;
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table tbody tr:first-child td {
  border-top: 0;
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-name {
  font-weight: 700;
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table .product-quantity {
  font-weight: 400;
  color: var(--s-muted);
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-total,
.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot td {
  text-align: right;
  white-space: nowrap;
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot th {
  font-weight: 400;
  color: var(--s-muted);
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table tr.order-total th,
.woocommerce-checkout table.woocommerce-checkout-review-order-table tr.order-total td,
.woocommerce-checkout table.woocommerce-checkout-review-order-table tr.order-total td * {
  font-size: 20px;
  font-weight: 700;
  color: var(--s-navy);
}

/* Payment */

.woocommerce-checkout #payment {
  border-radius: 0;
  background: transparent;
}

.woocommerce-checkout #payment ul.payment_methods {
  margin: 0 0 16px;
  padding: 0;
  border: 0;
}

.woocommerce-checkout #payment ul.payment_methods li {
  margin: 0 0 10px;
  padding: 16px;
  border: 1.5px solid var(--s-line);
  border-radius: 10px;
  background: #fff;
  line-height: 1.4;
}

.woocommerce-checkout #payment ul.payment_methods li:has(input.input-radio:checked) {
  border-color: var(--s-navy);
}

.woocommerce-checkout #payment ul.payment_methods li > label {
  font-weight: 700;
  color: var(--s-navy);
  cursor: pointer;
}

.woocommerce-checkout #payment ul.payment_methods li img {
  max-height: 24px;
  vertical-align: middle;
}

.woocommerce-checkout #payment div.payment_box {
  margin: 12px 0 0;
  padding: 0;
  background: transparent;
  color: var(--s-muted);
  font-size: 15px;
}

.woocommerce-checkout #payment div.payment_box::before {
  content: none;
}

.woocommerce-checkout #payment div.form-row.place-order {
  margin: 0;
  padding: 0;
}

.woocommerce-checkout .woocommerce-privacy-policy-text p,
.woocommerce-checkout .woocommerce-terms-and-conditions-checkbox-text {
  font-size: 14px;
  color: var(--s-muted);
}

.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
  margin-bottom: 16px;
}

.woocommerce-checkout .woocommerce form .form-row .input-checkbox {
  width: 18px;
  height: 18px;
  margin: 0 8px 0 0;
  vertical-align: -3px;
  accent-color: var(--s-navy);
}

.woocommerce-checkout .woocommerce form .form-row label.checkbox {
  font-weight: 400;
}

/* Google Pay / Link buttons shown above the checkout form */
.woocommerce-checkout #wc-stripe-express-checkout-element {
  max-width: 520px;
}

/* ------------------------------------------------------------------
 * Order received (thank you) page
 * ------------------------------------------------------------------ */

.woocommerce-checkout .woocommerce-order > p.woocommerce-thankyou-order-received {
  padding: 20px 24px;
  border-left: 4px solid var(--s-green);
  border-radius: 10px;
  background: var(--s-green-soft);
  font-size: 18px;
  font-weight: 700;
}

.woocommerce-checkout ul.woocommerce-order-overview {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
  margin: 0 0 32px;
  padding: 0;
}

.woocommerce-checkout ul.woocommerce-order-overview::before,
.woocommerce-checkout ul.woocommerce-order-overview::after {
  content: none;
}

.woocommerce-checkout ul.woocommerce-order-overview li {
  float: none;
  margin: 0;
  padding: 16px;
  border: 0;
  border-radius: 10px;
  background: var(--s-grey);
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--s-muted);
}

.woocommerce-checkout ul.woocommerce-order-overview li strong {
  display: block;
  margin-top: 4px;
  font-size: 16px;
  text-transform: none;
  letter-spacing: 0;
  color: var(--s-navy);
}

.woocommerce-checkout .woocommerce-order-details table.shop_table,
.woocommerce-checkout .woocommerce-customer-details address {
  border: 1px solid var(--s-line);
  border-radius: 10px;
}

/* ------------------------------------------------------------------
 * Tablets and phones
 * ------------------------------------------------------------------ */

@media (max-width: 1000px) {
  .woocommerce-cart .fullwidth-content.shop .woocommerce,
  .woocommerce-checkout form.checkout {
    grid-template-columns: 1fr;
  }

  .woocommerce-cart .cart-collaterals {
    position: static;
    margin-top: 28px;
  }

  .woocommerce-checkout form.checkout > #customer_details,
  .woocommerce-checkout form.checkout > .cleeve-checkout-summary {
    grid-column: 1;
  }

  .woocommerce-checkout form.checkout > .cleeve-checkout-summary {
    position: static;
    margin-top: 16px;
  }
}

/* WooCommerce turns the basket table into stacked rows below 768px. */
@media (max-width: 768px) {
  .woocommerce-cart .fullwidth-content.shop,
  .woocommerce-checkout .fullwidth-content.shop {
    padding: 30px 0 50px;
  }

  .woocommerce-cart .fullwidth-content.shop h1,
  .woocommerce-checkout .fullwidth-content.shop h1 {
    font-size: 28px;
  }

  .woocommerce-cart table.shop_table_responsive.cart tr.cart_item {
    display: grid;
    grid-template-columns: 72px 1fr auto;
    gap: 4px 14px;
    align-items: center;
    padding: 16px 0;
    border-bottom: 1px solid var(--s-line);
  }

  .woocommerce-cart table.shop_table_responsive.cart tr.cart_item td {
    display: block;
    padding: 0;
    border: 0;
    text-align: left !important;
    background: transparent !important;
  }

  /* WooCommerce shades alternate stacked rows grey. */
  .woocommerce-cart table.shop_table_responsive tr:nth-child(2n) td {
    background: transparent;
  }

  .woocommerce-cart table.shop_table_responsive.cart tr.cart_item td::before {
    content: none !important;
  }

  .woocommerce-cart table.shop_table_responsive.cart td.product-thumbnail {
    display: block !important;
    grid-column: 1;
    grid-row: 1 / span 2;
    width: auto;
  }

  .woocommerce-cart table.shop_table_responsive.cart td.product-thumbnail img {
    width: 72px;
    height: 72px;
  }

  .woocommerce-cart table.shop_table_responsive.cart td.product-name {
    grid-column: 2;
    grid-row: 1 / span 2;
  }

  .woocommerce-cart table.shop_table_responsive.cart td.product-remove {
    grid-column: 3;
    grid-row: 1;
    width: auto;
  }

  .woocommerce-cart table.shop_table_responsive.cart td.product-subtotal {
    grid-column: 3;
    grid-row: 2;
  }

  .woocommerce-cart table.shop_table_responsive.cart td.actions {
    padding-top: 16px;
  }

  .woocommerce-cart table.cart td.actions .coupon {
    max-width: none;
  }

  .woocommerce-cart .cart-collaterals .cart_totals,
  .woocommerce-checkout form.checkout > .cleeve-checkout-summary {
    padding-left: 20px;
    padding-right: 20px;
  }

  .woocommerce-checkout .woocommerce form .form-row-first,
  .woocommerce-checkout .woocommerce form .form-row-last {
    float: none;
    width: 100%;
  }

  .woocommerce-cart .cart_totals table.shop_table_responsive tr td::before {
    content: none;
  }

  .woocommerce-cart .cart_totals table.shop_table_responsive tr {
    display: flex;
    justify-content: space-between;
    border-top: 1px solid var(--s-line);
  }

  .woocommerce-cart .cart_totals table.shop_table_responsive tr th,
  .woocommerce-cart .cart_totals table.shop_table_responsive tr td {
    display: block;
    border: 0;
  }

  .woocommerce-cart .cart_totals table.shop_table_responsive tr th {
    display: block !important;
  }
}
