/* Native WooCommerce cart and checkout, styled without replacing their blocks. */

body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-account {
  background: var(--wp--preset--color--surface-light);
}

.woocommerce-cart .wc-block-cart,
.woocommerce-checkout .wc-block-checkout,
.woocommerce-checkout .wc-block-checkout__header {
  box-sizing: border-box;
  width: 100%;
  max-width: var(--wp--style--global--content-size);
  margin-inline: auto;
}

body.woocommerce-cart main.wp-block-group > :is(.wp-block-post-title, .wp-block-woocommerce-store-notices, .wp-block-post-content),
body.woocommerce-account main.wp-block-group > :is(.wp-block-post-title, .wp-block-woocommerce-store-notices, .wp-block-post-content),
body.woocommerce-checkout main.wp-block-group > :is(.wp-block-woocommerce-store-notices, .wp-block-post-content) {
  box-sizing: border-box;
  width: 100%;
  max-width: var(--wp--style--global--content-size);
  margin-inline: auto;
}

/* The page already owns the outer gutter. Do not subtract a second one from
 * its content, which previously narrowed the cart relative to the header. */
body.woocommerce-cart main.wp-block-group > .wp-block-post-content,
body.woocommerce-account main.wp-block-group > .wp-block-post-content,
body.woocommerce-checkout main.wp-block-group > .wp-block-post-content {
  padding-inline: 0;
}

.woocommerce-cart main.wp-block-group,
.woocommerce-account main.wp-block-group {
  padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--70);
}

.woocommerce-cart main.wp-block-group > .wp-block-post-title,
.woocommerce-account main.wp-block-group > .wp-block-post-title {
  margin-block: 0 var(--wp--preset--spacing--40);
}

.woocommerce-cart .wc-block-cart__main,
.woocommerce-cart .wc-block-cart__sidebar,
.woocommerce-checkout .wc-block-checkout__main,
.woocommerce-checkout .wc-block-checkout__sidebar {
  box-sizing: border-box;
  border: 1px solid var(--wp--preset--color--border);
  border-radius: var(--wp--custom--product--radius);
}

.woocommerce-cart .wc-block-cart__main,
.woocommerce-checkout .wc-block-checkout__main {
  background: var(--wp--preset--color--base);
}

.woocommerce-cart .wc-block-cart__sidebar,
.woocommerce-checkout .wc-block-checkout__sidebar {
  background: var(--wp--preset--color--surface-soft);
}

.woocommerce-cart .wc-block-cart__main {
  padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40)
    var(--wp--preset--spacing--40);
}

.woocommerce-cart .wc-block-cart__sidebar {
  padding: var(--wp--preset--spacing--40);
}

.woocommerce-cart .wc-block-cart__totals-title {
  padding-top: 0;
  margin-bottom: var(--wp--preset--spacing--20);
  color: var(--wp--preset--color--contrast);
  font-family: var(--wp--preset--font-family--heading);
  font-size: var(--wp--preset--font-size--large);
  font-weight: 600;
  letter-spacing: normal;
  text-align: start;
  text-transform: none;
}

.woocommerce-cart .wc-block-components-product-name,
.woocommerce-checkout .wc-block-components-product-name {
  color: var(--wp--preset--color--contrast);
  font-weight: 600;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.25em;
}

.woocommerce-cart .wc-block-cart-item__image img,
.woocommerce-checkout .wc-block-components-order-summary-item__image img {
  border-radius: calc(var(--wp--custom--product--radius) * 0.67);
}

.woocommerce-cart .wc-block-cart-items__row td {
  padding-block: var(--wp--preset--spacing--30);
}

.woocommerce-cart .wc-block-components-totals-footer-item,
.woocommerce-checkout .wc-block-components-totals-footer-item {
  border-top-color: var(--wp--preset--color--border);
}

.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
  font-family: var(--wp--preset--font-family--heading);
  font-size: var(--wp--preset--font-size--large);
  font-weight: 600;
}

.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  color: var(--wp--preset--color--primary);
  font-weight: 700;
}

.woocommerce-cart .wc-block-components-button.contained,
.woocommerce-checkout .wc-block-components-button.contained,
.woocommerce-checkout .wc-block-components-checkout-place-order-button {
  min-height: 3.25rem;
  border-radius: calc(var(--wp--custom--product--radius) * 2);
  font-weight: 700;
}

.woocommerce-checkout .wc-block-checkout__header {
  min-height: var(--wp--custom--header--height);
  margin-bottom: var(--wp--preset--spacing--40);
  border-bottom: 1px solid var(--wp--preset--color--border);
}

.woocommerce-checkout .wc-block-checkout__header :is(.wc-block-checkout__header-image, .wc-block-checkout__header-text) {
  color: var(--wp--preset--color--contrast);
  font-family: var(--wp--preset--font-family--heading);
  font-size: var(--wp--preset--font-size--large);
  font-weight: 600;
}

.woocommerce-checkout .wc-block-checkout {
  padding-bottom: var(--wp--preset--spacing--70);
}

.woocommerce-checkout .slimwoo-commerce-heading {
  box-sizing: border-box;
  width: 100%;
  max-width: var(--wp--style--global--content-size);
  margin-inline: auto;
  padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--30);
}

.woocommerce-checkout .slimwoo-commerce-heading .wp-block-post-title {
  max-width: none;
  margin-inline: 0;
  margin-block: 0;
}

.woocommerce-checkout .wc-block-checkout__main {
  padding: var(--wp--preset--spacing--50);
}

.woocommerce-checkout .wc-block-checkout__sidebar {
  padding: var(--wp--preset--spacing--40);
}

/* Woo renders a second full summary inside the main form on narrow screens.
 * Keep the single collapsible sidebar summary instead of showing both. */
.woocommerce-checkout .wc-block-checkout.is-mobile
  .wc-block-checkout__main
  .checkout-order-summary-block-fill-wrapper {
  display: none;
}

.woocommerce-checkout :is(.wc-block-components-title, .wc-block-components-checkout-step__title) {
  color: var(--wp--preset--color--contrast);
  font-family: var(--wp--preset--font-family--heading);
  font-weight: 600;
}

.woocommerce-checkout .wc-block-components-checkout-order-summary__title-text {
  font-family: var(--wp--preset--font-family--heading);
  font-size: var(--wp--preset--font-size--large);
  font-weight: 600;
}

.woocommerce-checkout .wc-block-checkout :is(
  .wc-block-components-text-input input,
  textarea,
  .wc-block-components-combobox .wc-block-components-combobox-control input,
  .wc-blocks-components-select .wc-blocks-components-select__select,
  [id$="-country"]
) {
  border-width: 1px;
  border-color: var(--wp--preset--color--border);
  border-radius: calc(var(--wp--custom--product--radius) * 0.67);
  background: var(--wp--preset--color--base);
}

@media (hover: hover) {
  .woocommerce-checkout .wc-block-checkout :is(
    .wc-block-components-text-input input,
    textarea,
    .wc-block-components-combobox .wc-block-components-combobox-control input,
    .wc-blocks-components-select .wc-blocks-components-select__select,
    [id$="-country"]
  ):hover:not(:focus):not([aria-invalid="true"]) {
    border-color: color-mix(
      in srgb,
      var(--wp--preset--color--primary) 24%,
      var(--wp--preset--color--border)
    );
  }
}

@media (prefers-reduced-motion: no-preference) {
  .woocommerce-checkout .wc-block-checkout :is(
    .wc-block-components-text-input input,
    textarea,
    .wc-block-components-combobox .wc-block-components-combobox-control input,
    .wc-blocks-components-select .wc-blocks-components-select__select,
    [id$="-country"]
  ) {
    transition: border-color 160ms ease, box-shadow 160ms ease;
  }
}

.woocommerce-checkout .wc-block-checkout :is(
  .wc-block-components-text-input input,
  textarea,
  .wc-block-components-combobox .wc-block-components-combobox-control input,
  .wc-blocks-components-select .wc-blocks-components-select__select,
  [id$="-country"]
):focus {
  border-width: 1px;
  border-color: var(--wp--preset--color--primary);
  outline: none;
  box-shadow: 0 0 0 2px color-mix(
    in srgb,
    var(--wp--preset--color--primary) 24%,
    transparent
  );
}

.woocommerce-checkout .wc-block-checkout :is(
  .wc-block-components-radio-control__option--checked-option-highlighted,
  .wc-block-components-radio-control-accordion-option--checked-option-highlighted
) {
  border-radius: calc(var(--wp--custom--product--radius) * 0.67);
  background-color: color-mix(
    in srgb,
    var(--wp--preset--color--primary) 5%,
    var(--wp--preset--color--base)
  );
  box-shadow: 0 0 0 1px color-mix(
    in srgb,
    var(--wp--preset--color--primary) 28%,
    var(--wp--preset--color--border)
  ) inset;
}

.woocommerce-checkout .wc-block-checkout .wc-block-components-radio-control--highlight-checked::after {
  border-radius: calc(var(--wp--custom--product--radius) * 0.67);
}

.woocommerce-checkout .wc-block-checkout .wc-block-components-radio-control__input {
  border-color: color-mix(
    in srgb,
    var(--wp--preset--color--primary) 38%,
    var(--wp--preset--color--border)
  );
}

.woocommerce-checkout .wc-block-checkout .wc-block-components-radio-control__input:checked {
  border-color: var(--wp--preset--color--primary);
}

.woocommerce-checkout .wc-block-checkout .wc-block-components-radio-control__input:checked::before {
  background-color: var(--wp--preset--color--primary);
}

.woocommerce-checkout :is(input[type="checkbox"], input[type="radio"]) {
  accent-color: var(--wp--preset--color--primary);
}

.woocommerce-checkout .wc-block-checkout__terms {
  margin-top: var(--wp--preset--spacing--40);
  padding-top: var(--wp--preset--spacing--30);
  border-top: 1px solid var(--wp--preset--color--border);
}

.slimwoo-cart-note {
  display: block;
  color: var(--wp--preset--color--muted);
  font-size: var(--wp--preset--font-size--small);
}

.slimwoo-cart-note p {
  margin: 0;
}

.wc-block-components-product-details .slimwoo-cart-note > span[aria-hidden="true"] {
  display: none;
}

/* Native account and password recovery forms share the checkout controls. */
.woocommerce-account .woocommerce :is(form.login, form.register, form.lost_reset_password, .woocommerce-EditAccountForm, .woocommerce-address-fields) {
  box-sizing: border-box;
  padding: var(--wp--preset--spacing--50);
  border: 1px solid var(--wp--preset--color--border);
  border-radius: var(--wp--custom--product--radius);
  background: var(--wp--preset--color--base);
}

.woocommerce-account .woocommerce form :is(input.input-text, textarea, select) {
  min-height: 3rem;
  border: 1px solid var(--wp--preset--color--border);
  border-radius: calc(var(--wp--custom--product--radius) * 0.67);
  background: var(--wp--preset--color--base);
  color: var(--wp--preset--color--contrast);
  font: inherit;
}

.woocommerce-account .woocommerce form :is(input.input-text, textarea, select):hover {
  border-color: color-mix(in srgb, var(--wp--preset--color--primary) 24%, var(--wp--preset--color--border));
}

.woocommerce-account .woocommerce form :is(input.input-text, textarea, select):focus {
  outline: none;
  border-color: var(--wp--preset--color--primary);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--wp--preset--color--primary) 24%, transparent);
}

/* The native narrow cart grid has a fixed minimum description column. Inside
 * a padded card it can overflow even when the document itself still fits. */
.woocommerce-cart .wc-block-cart.is-mobile table.wc-block-cart-items,
.woocommerce-cart .wc-block-cart.is-mobile table.wc-block-cart-items tbody {
  display: block;
  width: 100%;
}

.woocommerce-cart .wc-block-cart.is-mobile table.wc-block-cart-items .wc-block-cart-items__row {
  grid-template-columns: 3.5rem minmax(0, 1fr) auto;
  gap: var(--wp--preset--spacing--30);
}

.woocommerce-cart .wc-block-cart.is-mobile table.wc-block-cart-items .wc-block-cart-item__image {
  grid-column: 1;
  padding: 0;
}

.woocommerce-cart .wc-block-cart.is-mobile table.wc-block-cart-items .wc-block-cart-item__product {
  grid-column: 2;
  min-width: 0;
}

.woocommerce-cart .wc-block-cart.is-mobile table.wc-block-cart-items .wc-block-cart-item__total {
  grid-column: 3;
  min-width: 0;
}

/* Keep native block breakpoints, but give desktop cards actual separation.
 * Percent widths alone fill the entire row, leaving the two borders touching. */
@media (min-width: 901px) {
  .woocommerce-cart .wc-block-cart,
  .woocommerce-checkout .wc-block-checkout {
    column-gap: var(--wp--preset--spacing--40);
    align-items: flex-start;
  }

  .woocommerce-cart .wc-block-cart__main,
  .woocommerce-checkout .wc-block-checkout__main {
    width: calc(65% - var(--wp--preset--spacing--40));
  }

  .woocommerce-cart .wc-block-cart__sidebar,
  .woocommerce-checkout .wc-block-checkout__sidebar {
    width: 35%;
    margin-inline-start: 0;
  }
}

@media (max-width: 900px) {
  .woocommerce-cart .wc-block-cart,
  .woocommerce-checkout .wc-block-checkout {
    display: flex;
    flex-direction: column;
  }

  .woocommerce-cart :is(.wc-block-cart__main, .wc-block-cart__sidebar),
  .woocommerce-checkout :is(.wc-block-checkout__main, .wc-block-checkout__sidebar) {
    width: 100%;
    max-width: none;
  }

  .woocommerce-cart .wc-block-cart__sidebar {
    margin-top: var(--wp--preset--spacing--30);
  }

  .woocommerce-checkout .wc-block-checkout__sidebar {
    order: -1;
    margin-bottom: var(--wp--preset--spacing--30);
  }
}

@media (max-width: 781px) {
  .woocommerce-checkout .wc-block-checkout,
  .woocommerce-checkout .wc-block-checkout__header,
  .woocommerce-checkout .slimwoo-commerce-heading {
    padding-inline: 0;
  }

  .woocommerce-cart .wc-block-cart__main,
  .woocommerce-cart .wc-block-cart__sidebar,
  .woocommerce-checkout .wc-block-checkout__main,
  .woocommerce-checkout .wc-block-checkout__sidebar {
    padding: var(--wp--preset--spacing--30);
  }

  .woocommerce-checkout .wc-block-checkout__header {
    min-height: var(--wp--custom--header--height-mobile);
    margin-bottom: var(--wp--preset--spacing--30);
  }
}
