/* WooCommerce Cart & Checkout (block-based) overrides
   — aligned with the site design system (my-account, course pages).
   Sharp corners everywhere except buttons, no shadows, colors from theme tokens. */

/* ---- Layout (matches the site .container: max-w-9xl + px-5/md:px-8/lg:px-12) ---- */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
    max-width: 96rem;
    margin-inline: auto;
    padding-inline: 1.25rem !important;
    padding-top: 7rem !important;
    padding-bottom: 6rem !important;
    color: var(--color-secondary);
}

@media (min-width: 768px) {
    .wp-block-woocommerce-cart,
    .wp-block-woocommerce-checkout {
        padding-inline: 2rem !important;
        padding-top: 9rem !important;
    }
}

@media (min-width: 1024px) {
    .wp-block-woocommerce-cart,
    .wp-block-woocommerce-checkout {
        padding-inline: 3rem !important;
    }
}

/* Sticky sidebar offset — clear the fixed nav so the order summary card
   doesn't slide behind it when scrolling. */
.wp-block-woocommerce-cart-totals-block,
.wc-block-cart__sidebar,
.wp-block-woocommerce-checkout-totals-block,
.wc-block-components-sidebar {
    position: sticky !important;
    top: 6rem !important;
    align-self: flex-start !important;
}

/* ---- Typography ---- */
.wp-block-woocommerce-cart h1,
.wp-block-woocommerce-cart h2,
.wp-block-woocommerce-cart h3,
.wp-block-woocommerce-cart h4,
.wp-block-woocommerce-checkout h1,
.wp-block-woocommerce-checkout h2,
.wp-block-woocommerce-checkout h3,
.wp-block-woocommerce-checkout h4,
.wc-block-components-title {
    font-family: var(--font-heading), sans-serif;
    color: var(--color-secondary);
    letter-spacing: -0.01em;
    line-height: 1.2;
    font-weight: 700;
}

.wc-block-components-checkout-step__title {
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
}

.wc-block-components-checkout-step__description {
    color: var(--color-gray-5);
    font-family: var(--font-sans), sans-serif;
    font-size: 0.95rem;
    margin-bottom: 1.5rem;
}

/* Cart item table headers ("PRODUCT", "TOTAL", "CART TOTALS") */
.wc-block-cart-items__header,
.wc-block-cart__totals-title {
    font-family: var(--font-heading), sans-serif;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-secondary);
}

/* ---- Inputs (match my-account: gray bg, no border, sharp corners) ---- */
.wc-block-components-text-input input,
.wc-block-components-text-input textarea,
.wc-block-components-select select,
.wc-block-components-combobox input,
.wc-block-components-address-form input,
.wc-block-checkout__add-note textarea,
.wc-block-components-country-input input,
.wc-block-components-state-input input,
.wc-block-components-country-input select,
.wc-block-components-state-input select,
.components-combobox-control input[type="text"] {
    font-family: var(--font-sans), sans-serif !important;
    background: var(--color-gray-1) !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 1.5rem 1rem 0.75rem !important;
    min-height: 4rem !important;
    font-size: 1rem !important;
    color: var(--color-secondary) !important;
    transition: box-shadow 0.15s ease !important;
    box-shadow: none !important;
}

.wc-block-components-text-input input:focus,
.wc-block-components-text-input textarea:focus,
.wc-block-components-select select:focus,
.wc-block-components-combobox input:focus,
.wc-block-checkout__add-note textarea:focus,
.wc-block-components-country-input input:focus,
.wc-block-components-state-input input:focus,
.wc-block-components-country-input select:focus,
.wc-block-components-state-input select:focus,
.components-combobox-control input[type="text"]:focus {
    outline: none !important;
    box-shadow: inset 0 0 0 2px var(--color-primary) !important;
}

/* Combobox + country/state wrappers: strip the default thin border so only the gray
   input shows (matches other form fields). */
.wc-block-components-combobox,
.wc-block-components-country-input,
.wc-block-components-state-input,
.components-combobox-control,
.components-combobox-control__suggestions-container,
.wc-block-components-combobox-control {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Native <select> fallback (used by State when no combobox) — match the floating-label
   text-input pattern: gray bg on the container, label floated over the top-left,
   select sits beneath with padding to clear the label, chevron on the right. */
.wc-blocks-components-select,
.wc-block-components-state-input .wc-blocks-components-select {
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
}

.wc-blocks-components-select__container {
    position: relative !important;
    background: var(--color-gray-1) !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    min-height: 4rem !important;
    transition: box-shadow 0.15s ease !important;
}

.wc-blocks-components-select__container:focus-within {
    box-shadow: inset 0 0 0 2px var(--color-primary) !important;
}

.wc-blocks-components-select__label {
    position: absolute !important;
    top: 0.5rem !important;
    left: 1rem !important;
    margin: 0 !important;
    padding: 0 !important;
    font-family: var(--font-sans), sans-serif !important;
    font-size: 0.75rem !important;
    font-weight: 400 !important;
    color: var(--color-gray-6) !important;
    line-height: 1 !important;
    pointer-events: none !important;
    transform: none !important;
}

.wc-blocks-components-select__select {
    width: 100% !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 1.75rem 2.75rem 0.75rem 1rem !important;
    font-family: var(--font-sans), sans-serif !important;
    font-size: 1rem !important;
    color: var(--color-secondary) !important;
    line-height: 1.2 !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    box-shadow: none !important;
    outline: none !important;
    height: 4rem !important;
    min-height: 4rem !important;
    box-sizing: border-box !important;
}

.wc-blocks-components-select__expand {
    position: absolute !important;
    right: 0.75rem !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    pointer-events: none !important;
    color: var(--color-secondary) !important;
}

/* The suggestion dropdown that opens under country/state */
.components-form-token-field__suggestions-list,
.components-combobox-control__suggestions-list {
    background: #fff !important;
    border: 1px solid var(--color-gray-4) !important;
    border-radius: 0 !important;
    box-shadow: 0 4px 12px rgba(0, 16, 37, 0.08) !important;
    font-family: var(--font-sans), sans-serif !important;
}

.components-form-token-field__suggestion.is-selected,
.components-combobox-control__suggestions-list [aria-selected="true"] {
    background: var(--color-primary) !important;
    color: #fff !important;
}

/* Floating labels — vertically centered over the input (min-height: 4rem, so 2rem
   centers it). Using a fixed value (not 50%) so an error message appearing below
   the input doesn't expand the wrapper and push the label down with it.
   Left-aligned at 1rem to match the input's padding-left (so label and value sit
   in the same horizontal gutter). */
.wc-block-components-text-input label,
.wc-block-components-select label,
.wc-block-components-combobox label {
    font-family: var(--font-sans), sans-serif !important;
    color: var(--color-gray-5) !important;
    font-size: 1rem !important;
    left: 1rem !important;
    padding-left: 0 !important;
    top: 2rem !important;
    transform: translateY(-50%) !important;
    transition: top 0.15s ease, transform 0.15s ease, font-size 0.15s ease, color 0.15s ease !important;
}

.wc-block-components-text-input.is-active label,
.wc-block-components-select.is-active label,
.wc-block-components-combobox.is-active label {
    color: var(--color-gray-6) !important;
    font-size: 0.75rem !important;
    top: 0.6rem !important;
    transform: none !important;
}

/* ---- Buttons — match .button-primary exactly ---- */
.wc-block-components-button.contained,
button.wc-block-components-button.contained,
a.wc-block-components-button.contained,
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-button,
.wp-block-woocommerce-proceed-to-checkout-block a {
    background: var(--color-primary) !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 9999px !important;
    font-family: var(--font-heading), sans-serif !important;
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    letter-spacing: normal !important;
    padding: 0.75rem 1.5rem !important;
    min-height: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.4rem !important;
    transition: background-color 0.2s cubic-bezier(0.31, 0.75, 0.22, 1) !important;
    text-decoration: none !important;
}

.wc-block-components-button.contained:hover,
.wc-block-components-checkout-place-order-button:hover,
.wc-block-cart__submit-button:hover,
.wp-block-woocommerce-proceed-to-checkout-block a:hover {
    background: var(--color-primary-2) !important;
    color: #fff !important;
}

/* Large submit buttons (Proceed to Checkout, Place Order) — full width, generous sizing
   to match the hero CTAs (py-5 px-9 text-base font-bold, slightly taller than base lg) */
.wp-block-woocommerce-proceed-to-checkout-block a,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
a.wc-block-components-button.contained.wc-block-cart__submit-button,
button.wc-block-components-button.contained.wc-block-components-checkout-place-order-button {
    width: 100% !important;
    padding: 1.25rem 2.25rem !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    line-height: 1.1 !important;
}

/* Checkout actions row: keep Place Order full-width (WooCommerce default layout
   has Return to Cart positioned absolute on the left overlapping the button),
   just stop the Return to Cart text from wrapping to multiple lines. */
.wc-block-components-checkout-return-to-cart-button {
    white-space: nowrap !important;
    flex-shrink: 0 !important;
    margin-right: 1.5rem !important;
}

.wp-block-woocommerce-checkout-actions-block {
    gap: 1.5rem !important;
}

.wp-block-woocommerce-proceed-to-checkout-block,
.wc-block-cart__submit,
.wc-block-cart__submit-container,
.wc-block-cart__submit.wp-block-woocommerce-proceed-to-checkout-block,
.wp-block-woocommerce-cart-totals-block > .wc-block-cart__submit-container {
    display: block;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
}

.wc-block-cart__submit-button,
a.wc-block-cart__submit-button {
    margin: 0 !important;
}

/* PayPal reCAPTCHA container renders empty and adds a phantom gap below the button */
#ppcp-recaptcha-v2-container:empty {
    display: none !important;
}

/* Text-style buttons (Remove item, coupon toggle) */
.wc-block-cart-item__remove-link,
.wc-block-components-button.text,
.wc-block-components-panel__button {
    color: var(--color-gray-5) !important;
    font-family: var(--font-sans), sans-serif !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
    background: none !important;
    border: 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
}

.wc-block-cart-item__remove-link:hover,
.wc-block-components-button.text:hover {
    color: var(--color-secondary) !important;
}

/* ---- Cart line items ---- */
.wc-block-cart-items {
    border-top: 1px solid var(--color-gray-4);
}

.wc-block-cart-items__row {
    border-bottom: 1px solid var(--color-gray-4);
    padding-block: 1.5rem;
}

.wc-block-cart-item__image img,
.wc-block-cart-item__image .components-placeholder {
    border-radius: 0 !important;
    background: var(--color-gray-1);
}

.wc-block-cart-item__product-name,
.wc-block-components-product-name {
    font-family: var(--font-heading), sans-serif;
    font-weight: 600;
    color: var(--color-secondary) !important;
    text-decoration: none !important;
}

.wc-block-components-product-price {
    color: var(--color-secondary);
    font-weight: 500;
}

/* ---- Order summary / cart totals sidebar ----
   Gray card lives on the sidebar wrapper; inner summary block is padding-free
   so nothing adds vertical padding on top of the card's own padding. */
.wp-block-woocommerce-cart-totals-block,
.wc-block-cart__sidebar,
.wp-block-woocommerce-checkout-totals-block,
.wc-block-components-sidebar {
    background: var(--color-gray-1);
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 2rem !important;
}

.wp-block-woocommerce-cart-order-summary-block,
.wp-block-woocommerce-checkout-order-summary-block {
    background: transparent !important;
    padding: 0 !important;
    margin: 0 0 1.5rem 0 !important;
    border: 0 !important;
}

/* Strip horizontal padding/margin from nested block wrappers so everything
   aligns cleanly to the card's inner edge (keep vertical spacing intact) */
.wp-block-woocommerce-cart-order-summary-block > *,
.wp-block-woocommerce-checkout-order-summary-block > *,
.wc-block-components-sidebar > * {
    padding-inline: 0 !important;
    margin-inline: 0 !important;
}

/* Strip WC's default frames from inner container/panel wrappers — this is
   what was creating the "strange border" (framed boxes) inside the card.
   Only targets wrapper components, NOT the sub-blocks themselves. */
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-panel,
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-coupon,
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-order-summary,
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-order-summary__content,
.wp-block-woocommerce-cart-order-summary-block .wc-block-components-panel,
.wp-block-woocommerce-cart-order-summary-block .wc-block-components-totals-coupon,
.wp-block-woocommerce-cart-order-summary-block .wc-block-components-order-summary,
.wp-block-woocommerce-cart-order-summary-block .wc-block-components-order-summary__content {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Single divider above each sub-section (heading stays flush at top, no border).
   NOTE: `.totals-block` is a wrapper around subtotal/discount/fee rows — it
   must NOT get its own padding/border, otherwise we double-pad the row inside. */
.wp-block-woocommerce-checkout-order-summary-cart-items-block,
.wp-block-woocommerce-checkout-order-summary-coupon-form-block,
.wp-block-woocommerce-checkout-order-summary-subtotal-block,
.wp-block-woocommerce-checkout-order-summary-fee-block,
.wp-block-woocommerce-checkout-order-summary-shipping-block,
.wp-block-woocommerce-checkout-order-summary-taxes-block,
.wp-block-woocommerce-checkout-order-summary-discount-block,
.wp-block-woocommerce-cart-order-summary-coupon-form-block,
.wp-block-woocommerce-cart-order-summary-subtotal-block,
.wp-block-woocommerce-cart-order-summary-fee-block,
.wp-block-woocommerce-cart-order-summary-shipping-block,
.wp-block-woocommerce-cart-order-summary-taxes-block,
.wp-block-woocommerce-cart-order-summary-discount-block {
    border-top: 1px solid var(--color-gray-4) !important;
    border-bottom: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    padding: 1rem 0 !important;
    margin: 0 !important;
    background: transparent !important;
}

/* Outer totals wrapper — zero padding/border, it's just a container for rows */
.wp-block-woocommerce-checkout-order-summary-totals-block,
.wp-block-woocommerce-cart-order-summary-totals-block {
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

/* Heading block: flush at the top-left of the card. Only zero margin-top/left
   on the offending wrappers — keep margin-bottom intact so there's still a gap
   between the title and the divider below. */
.wp-block-woocommerce-checkout-order-summary-heading-block,
.wp-block-woocommerce-checkout-order-summary-heading-block > *,
.wp-block-woocommerce-cart-order-summary-heading-block,
.wp-block-woocommerce-cart-order-summary-heading-block > *,
.wc-block-components-checkout-order-summary__title,
.wc-block-components-checkout-order-summary__title-text,
.wc-block-components-checkout-order-summary__title-price,
.wc-block-components-checkout-order-summary__title-icon,
.wc-block-cart__totals-title,
.wp-block-woocommerce-cart-order-summary-heading-block .wc-block-components-title {
    margin-top: 0 !important;
    margin-left: 0 !important;
    margin-inline-start: 0 !important;
    padding-top: 0 !important;
    padding-left: 0 !important;
    padding-inline-start: 0 !important;
    border: 0 !important;
    text-indent: 0 !important;
}

/* Hide empty fee/shipping/tax/discount blocks — WC Blocks renders these as
   empty wrappers even when there's nothing to show, and they were picking up
   the divider rule above, producing multiple stacked lines with no content. */
.wp-block-woocommerce-checkout-order-summary-shipping-block:empty,
.wp-block-woocommerce-checkout-order-summary-taxes-block:empty,
.wp-block-woocommerce-checkout-order-summary-fee-block:empty,
.wp-block-woocommerce-checkout-order-summary-discount-block:empty,
.wp-block-woocommerce-checkout-order-summary-shipping-block:not(:has(.wc-block-components-totals-item)),
.wp-block-woocommerce-checkout-order-summary-taxes-block:not(:has(.wc-block-components-totals-item)),
.wp-block-woocommerce-checkout-order-summary-fee-block:not(:has(.wc-block-components-totals-item)),
.wp-block-woocommerce-checkout-order-summary-discount-block:not(:has(.wc-block-components-totals-item)),
.wp-block-woocommerce-cart-order-summary-shipping-block:empty,
.wp-block-woocommerce-cart-order-summary-taxes-block:empty,
.wp-block-woocommerce-cart-order-summary-fee-block:empty,
.wp-block-woocommerce-cart-order-summary-discount-block:empty,
.wp-block-woocommerce-cart-order-summary-shipping-block:not(:has(.wc-block-components-totals-item)),
.wp-block-woocommerce-cart-order-summary-taxes-block:not(:has(.wc-block-components-totals-item)),
.wp-block-woocommerce-cart-order-summary-fee-block:not(:has(.wc-block-components-totals-item)),
.wp-block-woocommerce-cart-order-summary-discount-block:not(:has(.wc-block-components-totals-item)) {
    display: none !important;
}

/* Order summary cart items: clean product row without a framed card */
.wc-block-components-order-summary-item,
.wc-block-components-order-summary__content > * {
    background: transparent !important;
    border: 0 !important;
    padding-inline: 0 !important;
}

.wc-block-components-order-summary-item {
    padding-block: 0.75rem !important;
}

.wc-block-components-order-summary-item__image img,
.wc-block-components-order-summary-item__image .components-placeholder {
    border-radius: 0 !important;
    background: #fff !important;
}

.wp-block-woocommerce-cart-order-summary-block .wp-block-woocommerce-cart-order-summary-heading-block,
.wp-block-woocommerce-cart-order-summary-block .wp-block-woocommerce-cart-order-summary-coupon-form-block,
.wp-block-woocommerce-cart-order-summary-block .wp-block-woocommerce-cart-order-summary-subtotal-block,
.wp-block-woocommerce-cart-order-summary-block .wp-block-woocommerce-cart-order-summary-totals-block {
    padding-inline: 0 !important;
}

.wc-block-components-totals-item {
    padding-block: 0.5rem;
    padding-inline: 0 !important;
    font-family: var(--font-sans), sans-serif;
    color: var(--color-secondary);
}

.wc-block-components-totals-item__label {
    font-family: var(--font-sans), sans-serif;
    font-weight: 500;
}

.wc-block-components-totals-footer-item,
.wc-block-components-totals-item--total {
    padding-top: 1rem;
    margin-top: 0.5rem;
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-family: var(--font-heading), sans-serif;
    font-weight: 700;
    font-size: 1.125rem;
}

/* ---- Coupon accordion — styled like the blog hero newsletter input, but white ---- */
.wc-block-components-totals-coupon-link,
.wc-block-components-totals-coupon-link *,
.wp-block-woocommerce-cart-order-summary-coupon-form-block > button,
.wp-block-woocommerce-cart-order-summary-coupon-form-block > button *,
.wp-block-woocommerce-checkout-order-summary-coupon-form-block > button,
.wp-block-woocommerce-checkout-order-summary-coupon-form-block > button * {
    color: var(--color-secondary) !important;
    font-family: var(--font-sans), sans-serif !important;
    opacity: 1 !important;
}

.wc-block-components-totals-coupon-link,
.wp-block-woocommerce-cart-order-summary-coupon-form-block > button,
.wp-block-woocommerce-checkout-order-summary-coupon-form-block > button {
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
    padding: 1rem 0 !important;
    margin: 0 !important;
    display: flex !important;
    width: 100% !important;
    align-items: center !important;
    justify-content: space-between !important;
    font-size: 1rem !important;
    font-weight: 500 !important;
}

/* Coupon input container: white "pill"-looking (but sharp corners) with button inside */
.wc-block-components-totals-coupon {
    padding-block: 0.5rem 1rem !important;
    margin: 0 !important;
}

.wc-block-components-totals-coupon__content,
.wc-block-components-totals-coupon__form {
    position: relative;
    display: block;
    padding: 0 !important;
    margin: 0 !important;
}

.wc-block-components-totals-coupon__input {
    position: relative;
}

/* White input so it stands out against the gray card */
.wc-block-components-totals-coupon .wc-block-components-text-input input,
.wc-block-components-totals-coupon__input .wc-block-components-text-input input,
.wc-block-components-totals-coupon input[type="text"] {
    background: #fff !important;
    padding: 1.25rem 6rem 0.5rem 1.25rem !important;
    border: 0 !important;
    border-radius: 0 !important;
    min-height: 3.25rem !important;
}

/* Floating label for the coupon input — mirrors the checkout input pattern but
   scaled for the shorter input (min-height 3.25rem, so centered at ~1.625rem). */
.wc-block-components-totals-coupon .wc-block-components-text-input label,
.wc-block-components-totals-coupon__input .wc-block-components-text-input label {
    left: 1.25rem !important;
    padding-left: 0 !important;
    top: 1.625rem !important;
    transform: translateY(-50%) !important;
    font-size: 1rem !important;
    color: var(--color-gray-5) !important;
    transition: top 0.15s ease, transform 0.15s ease, font-size 0.15s ease, color 0.15s ease !important;
}

.wc-block-components-totals-coupon .wc-block-components-text-input.is-active label,
.wc-block-components-totals-coupon__input .wc-block-components-text-input.is-active label {
    top: 0.4rem !important;
    transform: none !important;
    font-size: 0.7rem !important;
    color: var(--color-gray-6) !important;
}

/* The Apply button → inline text-link with animated underline on hover
   (higher specificity via triple-class selector so it beats the blue `.contained` rule) */
.wc-block-components-button.contained.wc-block-components-totals-coupon__button,
button.wc-block-components-button.contained.wc-block-components-totals-coupon__button {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: auto !important;
    background: transparent !important;
    color: var(--color-secondary) !important;
    font-family: var(--font-heading), sans-serif !important;
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    padding: 0 1.25rem !important;
    border: 0 !important;
    border-radius: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 0 !important;
    height: 100% !important;
    box-shadow: none !important;
}

.wc-block-components-button.contained.wc-block-components-totals-coupon__button:hover,
button.wc-block-components-button.contained.wc-block-components-totals-coupon__button:hover {
    background: transparent !important;
    color: var(--color-secondary) !important;
}

.wc-block-components-totals-coupon__button > span {
    position: relative;
}

.wc-block-components-totals-coupon__button > span::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: -2px;
    height: 1px;
    background: var(--color-secondary);
    opacity: 0;
    transition: opacity 0.2s cubic-bezier(0.31, 0.75, 0.22, 1);
}

.wc-block-components-totals-coupon__button:hover > span::after {
    opacity: 1;
}

/* ---- Checkout form layout ---- */
.wc-block-checkout__form .wc-block-components-address-form,
.wc-block-checkout__form .wc-block-components-address-form > * {
    gap: 1rem !important;
}

.wc-block-components-address-form > .wc-block-components-text-input,
.wc-block-components-address-form > .wc-block-components-combobox,
.wc-block-components-address-form > .wc-block-components-country-input,
.wc-block-components-address-form > .wc-block-components-state-input {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Payment methods "no methods available" block — already uses notice-banner markup
   but the outer radio group wrapper may add unwanted spacing */
.wc-block-components-payment-methods,
.wp-block-woocommerce-checkout-payment-block {
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
}

/* "Add a note to your order" checkbox row */
.wp-block-woocommerce-checkout-order-note-block,
.wc-block-checkout__add-note {
    padding: 0 !important;
    margin-top: 1.5rem !important;
}

/* ---- Notices / errors ---- */
.wc-block-components-notice-banner {
    border-radius: 0 !important;
    font-family: var(--font-sans), sans-serif !important;
    padding: 1rem 1.25rem !important;
}

/* Stray plain-text errors (e.g. "Cannot read properties of undefined (reading 'notices')")
   that some payment-gateway plugins render without a notice-banner wrapper: style them
   consistently instead of letting them sit as unstyled text in the sidebar. */
.wc-block-components-sidebar .wc-block-components-validation-error,
.wc-block-components-sidebar [role="alert"]:not(.wc-block-components-notice-banner) {
    font-family: var(--font-sans), sans-serif !important;
    font-size: 0.875rem !important;
    color: #991b1b !important;
    background: #fef2f2 !important;
    border-left: 4px solid #ef4444 !important;
    padding: 0.75rem 1rem !important;
    margin-top: 1rem !important;
}

.wc-block-components-notice-banner.is-error {
    background: #fef2f2 !important;
    border: 0 !important;
    border-left: 4px solid #ef4444 !important;
    color: #991b1b !important;
}

.wc-block-components-notice-banner.is-info {
    background: rgba(82, 113, 255, 0.08) !important;
    border: 0 !important;
    border-left: 4px solid var(--color-primary) !important;
    color: var(--color-secondary) !important;
}

/* ---- Checkboxes / radios ---- */
.wc-block-components-checkbox__label,
.wc-block-components-radio-control__label {
    font-family: var(--font-sans), sans-serif;
    color: var(--color-secondary);
}

.wc-block-components-checkbox__input:checked {
    background: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
}

/* ---- Terms & policy footer text ---- */
.wc-block-checkout__terms {
    color: var(--color-gray-5);
    font-size: 0.875rem;
}

.wc-block-checkout__terms a {
    color: var(--color-primary);
    text-decoration: none;
}

.wc-block-checkout__terms a:hover {
    color: var(--color-primary-2);
    text-decoration: underline;
}

/* ============================================================================
   Order Received / Thank-you page
   Same design language as Cart & Checkout — gray-1 cards, sharp corners,
   Commuters Sans headings, primary-blue accents, heading-divider motif.
   Scoped to the .woocommerce-order-received body class so these rules never
   leak into other WooCommerce views (e.g. past orders in My Account).
   ============================================================================ */

/* Outer wrapper — same container rules as .wp-block-woocommerce-cart/checkout
   above. The checkout block wrapper is NOT present on the order-received view,
   so we apply the container directly to .woocommerce-order. */
.woocommerce-order-received .woocommerce-order {
    max-width: 96rem;
    margin-inline: auto;
    padding-inline: 1.25rem;
    padding-top: 7rem;
    padding-bottom: 6rem;
    color: var(--color-secondary);
}

@media (min-width: 768px) {
    .woocommerce-order-received .woocommerce-order {
        padding-inline: 2rem;
        padding-top: 9rem;
    }
}

@media (min-width: 1024px) {
    .woocommerce-order-received .woocommerce-order {
        padding-inline: 3rem;
    }
}

/* ---- Hero: thank-you message as display heading ----
   Default markup is a plain <p class="woocommerce-thankyou-order-received">
   with "Thank you. Your order has been received." — restyle as a big
   Commuters Sans heading with a status pill above (::before) and the
   signature heading-divider below (::after). */
.woocommerce-order-received .woocommerce-thankyou-order-received {
    position: relative;
    display: block;
    font-family: var(--font-heading), sans-serif;
    font-size: 1.5rem;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    letter-spacing: -0.025em !important;
    color: var(--color-secondary);
    max-width: 50rem;
    margin: 0 0 3rem 0 !important;
    padding: 0 !important;
    background: transparent;
    border: 0;
    text-wrap: balance;
}

@media (min-width: 640px) {
    .woocommerce-order-received .woocommerce-thankyou-order-received {
        font-size: 1.875rem;
    }
}

@media (min-width: 768px) {
    .woocommerce-order-received .woocommerce-thankyou-order-received {
        font-size: 2.25rem;
        margin-bottom: 3.5rem !important;
    }
}

@media (min-width: 1024px) {
    .woocommerce-order-received .woocommerce-thankyou-order-received {
        font-size: 3rem;
    }
}

.woocommerce-order-received .woocommerce-thankyou-order-received::before {
    content: '● Order Confirmed';
    display: flex;
    align-items: center;
    width: fit-content;
    font-family: var(--font-heading), sans-serif;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1;
    color: var(--color-primary);
    border: 1px solid var(--color-primary);
    border-radius: 9999px;
    padding: 0.5rem 0.875rem;
    margin-bottom: 2rem;
    letter-spacing: normal;
}

/* Failed state — swap the celebratory blue for a warning red */
.woocommerce-order-received .woocommerce-thankyou-order-failed::before {
    content: '● Payment Failed';
    color: #991b1b;
    border-color: #ef4444;
}

.woocommerce-order-received .woocommerce-thankyou-order-failed-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin: -1.5rem 0 3rem 0;
}

.woocommerce-order-received .woocommerce-thankyou-order-failed-actions .button {
    background: var(--color-primary);
    color: #fff;
    border: 0;
    border-radius: 9999px;
    font-family: var(--font-heading), sans-serif;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.1;
    padding: 1.25rem 2.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    text-decoration: none;
    transition: background-color 0.2s cubic-bezier(0.31, 0.75, 0.22, 1);
}

.woocommerce-order-received .woocommerce-thankyou-order-failed-actions .button:hover {
    background: var(--color-primary-2);
    color: #fff;
}

/* ---- Stat row: order overview ----
   Default: <ul> with inline <li>s, each containing a label text node +
   <strong>value</strong>. Render as a responsive grid of stacked label/value
   pairs inside a gray-1 card. */
.woocommerce-order-received .woocommerce-order-overview {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    width: 100%;
    list-style: none;
    padding: 2rem;
    margin: 0 0 3rem 0;
    background: var(--color-gray-1);
    border-radius: 0;
    border: 0;
    box-sizing: border-box;
}

/* Kill WooCommerce's default clearfix ::before/::after pseudos — they turn into
   phantom grid cells and leave an empty first column. */
.woocommerce-order-received .woocommerce-order-overview::before,
.woocommerce-order-received .woocommerce-order-overview::after {
    content: none !important;
    display: none !important;
}

@media (min-width: 640px) {
    .woocommerce-order-received .woocommerce-order-overview {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.5rem 2rem;
    }
}

@media (min-width: 768px) {
    .woocommerce-order-received .woocommerce-order-overview {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .woocommerce-order-received .woocommerce-order-overview {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}

.woocommerce-order-received .woocommerce-order-overview li {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    min-width: 0; /* allow grid column to clamp long values like emails */
    font-family: var(--font-sans), sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-gray-5);
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    float: none !important;
    line-height: 1.4 !important;
    text-align: left !important;
}

/* Dashed dividers between stat items — per-breakpoint so only items within
   the same row get a right-side divider (no orphans). */
@media (min-width: 640px) and (max-width: 767px) {
    /* 2 cols: divider on odd items (left column) when not last */
    .woocommerce-order-received .woocommerce-order-overview li:nth-child(odd):not(:last-child) {
        border-right: 1px dashed var(--color-gray-4) !important;
        padding-right: 1rem !important;
    }
}

@media (min-width: 768px) and (max-width: 1023px) {
    /* 3 cols: divider on items not at 3n position, excluding last */
    .woocommerce-order-received .woocommerce-order-overview li:not(:nth-child(3n)):not(:last-child) {
        border-right: 1px dashed var(--color-gray-4) !important;
        padding-right: 1rem !important;
    }
}

@media (min-width: 1024px) {
    /* 5 cols: every item gets a divider except the last */
    .woocommerce-order-received .woocommerce-order-overview li:not(:last-child) {
        border-right: 1px dashed var(--color-gray-4) !important;
        padding-right: 1rem !important;
    }
}

.woocommerce-order-received .woocommerce-order-overview li strong {
    font-family: var(--font-heading), sans-serif;
    font-size: 1rem;
    font-weight: 700;
    text-transform: none;
    letter-spacing: normal;
    color: var(--color-secondary);
    overflow-wrap: break-word;
    min-width: 0;
    max-width: 100%;
}

/* At narrow 5-col widths (1024-1279), shrink the strong value slightly so long
   emails fit in ~190px content area without wrapping. */
@media (min-width: 1024px) and (max-width: 1279px) {
    .woocommerce-order-received .woocommerce-order-overview li strong {
        font-size: 0.9375rem;
    }
}

/* ---- Receipt card: order details table ---- */
.woocommerce-order-received .woocommerce-order-details {
    margin: 0 0 3rem 0;
}

.woocommerce-order-received .woocommerce-order-details__title {
    font-family: var(--font-heading), sans-serif;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.01em;
    color: var(--color-secondary);
    margin: 0 0 1.5rem 0;
}

@media (min-width: 768px) {
    .woocommerce-order-received .woocommerce-order-details__title {
        font-size: 1.875rem;
    }
}

.woocommerce-order-received .woocommerce-table--order-details {
    width: 100%;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    font-family: var(--font-sans), sans-serif;
    background: var(--color-gray-1);
    border: 0 !important;
    border-radius: 0 !important;
    margin: 0 !important;
}

/* Kill WC shop_table defaults on every cell — we'll re-add only the borders
   we want explicitly. */
.woocommerce-order-received .woocommerce-table--order-details th,
.woocommerce-order-received .woocommerce-table--order-details td {
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
}

.woocommerce-order-received .woocommerce-table--order-details thead th {
    font-family: var(--font-heading), sans-serif;
    font-size: 0.75rem;
    font-weight: 600 !important;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-secondary);
    text-align: left;
    padding: 1.75rem 2rem 1rem !important;
    border-bottom: 1px solid var(--color-gray-4) !important;
    line-height: 1.2;
}

.woocommerce-order-received .woocommerce-table--order-details thead th.product-total {
    text-align: right;
}

.woocommerce-order-received .woocommerce-table--order-details tbody td {
    padding: 1.25rem 2rem !important;
    border-bottom: 1px solid var(--color-gray-4) !important;
    color: var(--color-secondary);
    vertical-align: top;
    font-size: 1rem;
    font-weight: 500;
}

.woocommerce-order-received .woocommerce-table--order-details tbody td.product-name {
    font-family: var(--font-heading), sans-serif;
    font-weight: 600 !important;
}

.woocommerce-order-received .woocommerce-table--order-details tbody td.product-name a {
    color: var(--color-secondary);
    text-decoration: none;
    transition: color 0.15s ease;
}

.woocommerce-order-received .woocommerce-table--order-details tbody td.product-name a:hover {
    color: var(--color-primary);
}

.woocommerce-order-received .woocommerce-table--order-details tbody .product-quantity {
    font-family: var(--font-sans), sans-serif;
    color: var(--color-gray-5);
    font-weight: 500;
    margin-left: 0.25rem;
}

.woocommerce-order-received .woocommerce-table--order-details tbody td.product-total {
    text-align: right;
    font-weight: 500;
    white-space: nowrap;
}

/* tfoot: uniform subtle rows (label in gray, value right-aligned) */
.woocommerce-order-received .woocommerce-table--order-details tfoot th {
    font-family: var(--font-sans), sans-serif;
    font-size: 0.95rem;
    font-weight: 500 !important;
    color: var(--color-gray-5);
    text-align: left;
    padding: 0.65rem 2rem !important;
    line-height: 1.4;
}

.woocommerce-order-received .woocommerce-table--order-details tfoot td {
    padding: 0.65rem 2rem !important;
    text-align: right;
    color: var(--color-secondary);
    font-weight: 500 !important;
    font-size: 0.95rem;
    line-height: 1.4;
}

/* First tfoot row — add breathing room above the totals block */
.woocommerce-order-received .woocommerce-table--order-details tfoot tr:first-child th,
.woocommerce-order-received .woocommerce-table--order-details tfoot tr:first-child td {
    padding-top: 1.5rem !important;
}

/* Last tfoot row (Payment method) — bottom breathing room */
.woocommerce-order-received .woocommerce-table--order-details tfoot tr:last-child th,
.woocommerce-order-received .woocommerce-table--order-details tfoot tr:last-child td {
    padding-bottom: 1.75rem !important;
}

/* Total row — second-to-last in tfoot (before Payment method). Emphasized
   with heading font, larger size, and a divider above separating it from
   Subtotal/Shipping/Tax. */
.woocommerce-order-received .woocommerce-table--order-details tfoot tr:nth-last-child(2) th,
.woocommerce-order-received .woocommerce-table--order-details tfoot tr:nth-last-child(2) td {
    font-family: var(--font-heading), sans-serif !important;
    font-weight: 700 !important;
    font-size: 1.25rem !important;
    color: var(--color-secondary) !important;
    padding-top: 1.25rem !important;
    padding-bottom: 1.25rem !important;
    border-top: 1px solid var(--color-gray-4) !important;
    line-height: 1.3;
}

/* ---- Billing / Customer details ---- */
.woocommerce-order-received .woocommerce-customer-details {
    margin: 0;
}

.woocommerce-order-received .woocommerce-customer-details .woocommerce-column__title {
    font-family: var(--font-heading), sans-serif;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.01em;
    color: var(--color-secondary);
    margin: 0 0 1rem 0;
}

@media (min-width: 768px) {
    .woocommerce-order-received .woocommerce-customer-details .woocommerce-column__title {
        font-size: 1.5rem;
    }
}

/* Top-level "Billing address" / "Shipping address" — smaller section heading */
.woocommerce-order-received .woocommerce-customer-details > h2 {
    font-family: var(--font-heading), sans-serif;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.01em;
    color: var(--color-secondary);
    margin: 0 0 1.5rem 0;
}

@media (min-width: 768px) {
    .woocommerce-order-received .woocommerce-customer-details > h2 {
        font-size: 1.875rem;
    }
}

.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns--addresses {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    margin: 0;
    padding: 0;
}

@media (min-width: 768px) {
    .woocommerce-order-received .woocommerce-customer-details .woocommerce-columns--addresses {
        grid-template-columns: 1fr 1fr;
        gap: 1.5rem;
    }
}

.woocommerce-order-received .woocommerce-customer-details .woocommerce-column {
    margin: 0;
    padding: 0;
    float: none;
    width: 100%;
}

.woocommerce-order-received .woocommerce-customer-details address {
    font-style: normal;
    color: var(--color-secondary);
    line-height: 1.65;
    padding: 2rem;
    background: var(--color-gray-1);
    border: 0;
    border-radius: 0;
    font-family: var(--font-sans), sans-serif;
    box-shadow: none;
    font-size: 1rem;
}

.woocommerce-order-received .woocommerce-customer-details--phone,
.woocommerce-order-received .woocommerce-customer-details--email {
    margin: 0.65rem 0 0 0;
    color: var(--color-gray-5);
    font-size: 0.9rem;
}

/* ---- Stripe gateway "thank you" blocks (if the plugin injects content) ----
   Style any receipt-like block the Stripe gateway hooks into
   `woocommerce_thankyou_stripe` so it matches. */
.woocommerce-order-received .wc-stripe-voucher-details,
.woocommerce-order-received .wc-stripe-order-details,
.woocommerce-order-received .woocommerce-bacs-bank-details {
    background: var(--color-gray-1);
    padding: 1.5rem 2rem;
    margin: 0 0 3rem 0;
    border: 0;
    border-left: 4px solid var(--color-primary);
    font-family: var(--font-sans), sans-serif;
    color: var(--color-secondary);
}

.woocommerce-order-received .wc-stripe-voucher-details h3,
.woocommerce-order-received .wc-stripe-order-details h3,
.woocommerce-order-received .woocommerce-bacs-bank-details h3,
.woocommerce-order-received .woocommerce-bacs-bank-details h2 {
    font-family: var(--font-heading), sans-serif;
    font-weight: 700;
    color: var(--color-secondary);
    margin: 0 0 1rem 0;
    font-size: 1.125rem;
}

/* ============================================================================
   Empty Cart block — same design language as the filled Cart & Checkout.
   Replaces the default sad-face emoji + generic "New in store" products
   block with a clean, centered message and a branded product grid.
   ============================================================================ */

/* Container / padding — the outer .wp-block-woocommerce-cart wrapper already
   provides the max-width and top padding, but we add the same rules defensively
   in case the empty state renders outside that wrapper. */
.wp-block-woocommerce-empty-cart-block {
    max-width: 96rem;
    margin-inline: auto;
    padding-inline: 1.25rem;
    padding-top: 2rem;
    padding-bottom: 4rem;
    color: var(--color-secondary);
    text-align: center;
}

@media (min-width: 768px) {
    .wp-block-woocommerce-empty-cart-block {
        padding-inline: 2rem;
        padding-bottom: 6rem;
    }
}

@media (min-width: 1024px) {
    .wp-block-woocommerce-empty-cart-block {
        padding-inline: 3rem;
    }
}

/* Hide the default sad-face SVG / image — be aggressive, it may sit inside
   nested group/paragraph blocks depending on the empty-cart configuration. */
.wp-block-woocommerce-empty-cart-block .wp-block-image,
.wp-block-woocommerce-empty-cart-block figure,
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__image {
    display: none !important;
}

/* Main "Your cart is currently empty!" heading */
.wp-block-woocommerce-empty-cart-block h2,
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title {
    font-family: var(--font-heading), sans-serif;
    font-size: 1.5rem;
    font-weight: 700 !important;
    line-height: 1.25;
    letter-spacing: -0.025em;
    color: var(--color-secondary);
    margin: 0 auto 1rem !important;
    padding: 0 !important;
    max-width: 40rem;
    text-wrap: balance;
}

@media (min-width: 640px) {
    .wp-block-woocommerce-empty-cart-block h2 {
        font-size: 1.875rem;
    }
}

@media (min-width: 768px) {
    .wp-block-woocommerce-empty-cart-block h2 {
        font-size: 2.25rem;
    }
}

/* Hide the default dot separator (• • •) */
.wp-block-woocommerce-empty-cart-block .wp-block-separator,
.wp-block-woocommerce-empty-cart-block hr {
    display: none !important;
}

/* "New in store" subheading — small uppercase eyebrow */
.wp-block-woocommerce-empty-cart-block h3 {
    font-family: var(--font-heading), sans-serif;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-gray-5);
    margin: 3rem 0 1.5rem !important;
}

/* Outer grid wrapper — WC Blocks "New Products" uses .wc-block-grid. Force
   it to fill the full container width (text-align:center on the parent would
   otherwise shrink its ul to content width). */
.wp-block-woocommerce-empty-cart-block .wc-block-grid {
    width: 100% !important;
    display: block !important;
    text-align: left;
}

/* Product list — override WC's default flex-wrap + percentage widths with a
   proper responsive grid. `.has-N-columns` classes are ignored in favor of
   our breakpoints. */
.wp-block-woocommerce-empty-cart-block .wc-block-grid__products {
    display: grid !important;
    grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
    gap: 1.5rem;
    list-style: none;
    padding: 0 !important;
    margin: 0 !important;
    width: 100%;
}

@media (min-width: 640px) {
    .wp-block-woocommerce-empty-cart-block .wc-block-grid__products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (min-width: 1024px) {
    .wp-block-woocommerce-empty-cart-block .wc-block-grid__products {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}

/* Individual product card */
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product {
    background: var(--color-gray-1);
    padding: 1.5rem;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    text-align: center;
    display: flex !important;
    flex-direction: column;
    gap: 0.75rem;
    list-style: none;
    width: auto !important;
    max-width: none !important;
    float: none !important;
}

/* Product link wrapper */
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-link {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    text-decoration: none;
    color: var(--color-secondary);
}

/* Product image */
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-image {
    margin: 0;
    display: block;
    width: 100%;
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-image img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    background: #fff;
    border-radius: 0 !important;
    margin: 0 !important;
    display: block;
}

/* Product title (it's a <div>, not an <h_>) */
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-title {
    font-family: var(--font-heading), sans-serif !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    color: var(--color-secondary) !important;
    text-decoration: none !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.3 !important;
}

/* Product price */
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-price {
    font-family: var(--font-sans), sans-serif !important;
    color: var(--color-secondary) !important;
    font-weight: 500;
    font-size: 1rem;
    margin: 0 !important;
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-price .amount {
    color: var(--color-secondary);
}

/* Add to cart / Read more — the block renders a .wp-block-button wrapper with
   an inner .wp-block-button__link anchor. Push the button to the bottom of
   the card so all cards align regardless of title length. */
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart {
    margin-top: auto !important;
    width: 100%;
    display: flex;
    justify-content: center;
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart .wp-block-button__link,
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart a.add_to_cart_button {
    background: var(--color-primary) !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 9999px !important;
    font-family: var(--font-heading), sans-serif !important;
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    padding: 0.75rem 1.5rem !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.4rem !important;
    white-space: nowrap;
    width: auto;
    transition: background-color 0.2s cubic-bezier(0.31, 0.75, 0.22, 1) !important;
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart .wp-block-button__link:hover,
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart a.add_to_cart_button:hover {
    background: var(--color-primary-2) !important;
    color: #fff !important;
}
