/* WooCommerce Brand Suite — frontend
   Intentionally uses WooCommerce public/block component classes and classic WooCommerce classes.
   No checkout logic, gateway logic, validation, totals, or form values are changed. */

body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-account {
    color: var(--swbs-text);
}

/* Typography stays inherited from the active theme. */
.woocommerce,
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout,
.wp-block-woocommerce-order-confirmation-status,
.wp-block-woocommerce-order-confirmation-summary,
.wp-block-woocommerce-order-confirmation-totals-wrapper,
.wp-block-woocommerce-order-confirmation-billing-address,
.wp-block-woocommerce-order-confirmation-shipping-address {
    font-family: inherit;
    color: var(--swbs-text);
}

/* Buttons */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.wc-block-components-button:not(.is-link) {
    min-height: 48px;
    border: 1px solid var(--swbs-primary) !important;
    border-radius: calc(var(--swbs-radius) - 4px) !important;
    background: var(--swbs-primary) !important;
    color: #fff !important;
    font: inherit;
    font-weight: 700 !important;
    line-height: 1.1;
    box-shadow: 0 8px 22px rgba(0,0,0,.10);
    transition: transform .16s ease, box-shadow .16s ease, opacity .16s ease;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.wc-block-components-button:not(.is-link):hover {
    color: #fff !important;
    opacity: .92;
    transform: translateY(-1px);
    box-shadow: 0 11px 28px rgba(0,0,0,.14);
}

.woocommerce a.button:focus-visible,
.woocommerce button.button:focus-visible,
.woocommerce input.button:focus-visible,
.wc-block-components-button:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--swbs-accent) 42%, transparent) !important;
    outline-offset: 3px;
}

.wc-block-components-button.is-link,
.woocommerce a.remove,
.woocommerce .woocommerce-remove-coupon {
    color: var(--swbs-primary) !important;
}

/* Form controls */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single,
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-block-components-textarea,
.wc-block-components-select .wc-block-components-select__select {
    min-height: 50px;
    border: 1px solid var(--swbs-border) !important;
    border-radius: calc(var(--swbs-radius) - 5px) !important;
    background: var(--swbs-surface) !important;
    color: var(--swbs-text) !important;
    font: inherit !important;
    box-shadow: none !important;
}

.woocommerce form .form-row textarea,
.wc-block-components-textarea {
    min-height: 110px;
    padding-top: 12px !important;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.wc-block-components-text-input input:focus,
.wc-block-components-combobox .wc-block-components-combobox-control input:focus,
.wc-block-components-textarea:focus,
.wc-block-components-select .wc-block-components-select__select:focus {
    border-color: var(--swbs-primary) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--swbs-primary) 13%, transparent) !important;
    outline: 0 !important;
}

.woocommerce form .form-row label,
.wc-block-components-text-input label,
.wc-block-components-checkbox__label,
.wc-block-components-radio-control__label {
    color: var(--swbs-text) !important;
    font-weight: 600;
}

/* Main cards — classic cart/checkout */
.woocommerce-cart-form,
.cart_totals,
.woocommerce-checkout-review-order,
.woocommerce-checkout-payment,
.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register,
.woocommerce-order-details,
.woocommerce-customer-details,
.woocommerce-order-downloads {
    border: 1px solid var(--swbs-border) !important;
    border-radius: var(--swbs-radius) !important;
    background: var(--swbs-surface) !important;
    box-shadow: 0 12px 34px rgba(24,24,27,.06);
}

.woocommerce-cart-form,
.cart_totals,
.woocommerce-checkout-review-order,
.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register,
.woocommerce-order-details,
.woocommerce-customer-details,
.woocommerce-order-downloads {
    padding: clamp(18px, 2.5vw, 30px);
}

.woocommerce-checkout-payment {
    overflow: hidden;
}

.woocommerce-checkout #payment ul.payment_methods,
.woocommerce-checkout #payment div.form-row {
    padding: 20px 24px;
}

.woocommerce-checkout #payment {
    background: var(--swbs-surface) !important;
}

.woocommerce-checkout #payment div.payment_box {
    border-radius: calc(var(--swbs-radius) - 5px);
    background: var(--swbs-page-bg) !important;
    color: var(--swbs-text) !important;
}

.woocommerce-checkout #payment div.payment_box::before {
    border-bottom-color: var(--swbs-page-bg) !important;
}

/* Block cart/checkout cards */
.wc-block-components-sidebar-layout .wc-block-components-main,
.wc-block-components-sidebar,
.wc-block-components-order-summary,
.wc-block-components-totals-wrapper,
.wc-block-components-checkout-step,
.wc-block-checkout__payment-method,
.wp-block-woocommerce-order-confirmation-summary,
.wp-block-woocommerce-order-confirmation-totals-wrapper,
.wp-block-woocommerce-order-confirmation-billing-address,
.wp-block-woocommerce-order-confirmation-shipping-address {
    color: var(--swbs-text);
}

.wc-block-components-sidebar,
.wc-block-components-checkout-step,
.wp-block-woocommerce-order-confirmation-summary,
.wp-block-woocommerce-order-confirmation-totals-wrapper,
.wp-block-woocommerce-order-confirmation-billing-address,
.wp-block-woocommerce-order-confirmation-shipping-address {
    border-color: var(--swbs-border) !important;
    border-radius: var(--swbs-radius);
}

.wc-block-components-checkout-step,
.wp-block-woocommerce-order-confirmation-summary,
.wp-block-woocommerce-order-confirmation-totals-wrapper,
.wp-block-woocommerce-order-confirmation-billing-address,
.wp-block-woocommerce-order-confirmation-shipping-address {
    background: var(--swbs-surface);
}

.wc-block-components-checkout-step {
    margin-bottom: 16px;
    padding: 22px !important;
    border: 1px solid var(--swbs-border);
    box-shadow: 0 8px 24px rgba(24,24,27,.045);
}

.wc-block-components-sidebar {
    padding: 22px !important;
    border: 1px solid var(--swbs-border) !important;
    background: var(--swbs-surface);
    box-shadow: 0 12px 34px rgba(24,24,27,.06);
}

.wc-block-components-title,
.wc-block-components-checkout-step__title,
.woocommerce h2,
.woocommerce h3 {
    color: var(--swbs-text);
    font-weight: 700;
    letter-spacing: -.02em;
}

.wc-block-components-checkout-step__description,
.wc-block-components-address-card__address-section,
.wc-block-components-order-summary-item__description,
.woocommerce .shop_table small,
.woocommerce .woocommerce-order-details p,
.woocommerce .woocommerce-customer-details address {
    color: var(--swbs-muted);
}

/* Tables and totals */
.woocommerce table.shop_table {
    border: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
    padding: 15px 12px;
    border-color: var(--swbs-border) !important;
}

.woocommerce table.shop_table thead th {
    color: var(--swbs-muted);
    font-size: .82em;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.woocommerce table.shop_table img,
.wc-block-cart-item__image img,
.wc-block-components-order-summary-item__image img {
    border-radius: calc(var(--swbs-radius) - 6px);
}

.wc-block-components-order-summary-item__quantity {
    background: var(--swbs-primary) !important;
    border-color: var(--swbs-surface) !important;
    color: #fff !important;
    box-shadow: 0 0 0 2px var(--swbs-surface) !important;
}

/* Coupon areas */
.wc-block-components-totals-coupon-link,
.woocommerce .coupon label {
    color: var(--swbs-primary) !important;
    font-weight: 700;
}

/* Notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
    border-radius: calc(var(--swbs-radius) - 3px) !important;
    border: 1px solid var(--swbs-border) !important;
    background: var(--swbs-surface) !important;
    color: var(--swbs-text) !important;
    box-shadow: 0 8px 24px rgba(24,24,27,.05);
}

.woocommerce-message,
.wc-block-components-notice-banner.is-success {
    border-left: 4px solid #15803d !important;
}

.woocommerce-info,
.wc-block-components-notice-banner.is-info {
    border-left: 4px solid var(--swbs-primary) !important;
}

.woocommerce-error,
.wc-block-components-notice-banner.is-error {
    border-left: 4px solid #b91c1c !important;
}

/* Order received */
.woocommerce-order,
.wp-block-woocommerce-order-confirmation-status {
    color: var(--swbs-text);
}

.woocommerce-thankyou-order-received {
    margin: 0 0 22px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

.swbs-thankyou-message {
    display: flex;
    align-items: center;
    gap: 16px;
    width: 100%;
    box-sizing: border-box;
    padding: clamp(20px, 3vw, 30px);
    border: 1px solid var(--swbs-border);
    border-radius: var(--swbs-radius);
    background: var(--swbs-surface);
    box-shadow: 0 14px 36px rgba(24,24,27,.07);
}

.swbs-thankyou-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    border-radius: 999px;
    background: var(--swbs-primary);
    color: #fff;
    font-size: 22px;
    font-weight: 800;
}

.swbs-thankyou-copy {
    display: grid;
    gap: 4px;
}

.swbs-thankyou-copy strong {
    color: var(--swbs-text);
    font-size: clamp(1.15rem, 2vw, 1.4rem);
}

.swbs-thankyou-copy small {
    color: var(--swbs-muted);
    font-size: .95rem;
    line-height: 1.55;
}

.woocommerce ul.order_details,
.woocommerce-order-overview {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
    margin: 0 0 28px !important;
    padding: 16px !important;
    border: 1px solid var(--swbs-border);
    border-radius: var(--swbs-radius);
    background: var(--swbs-page-bg);
}

.woocommerce ul.order_details li {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 10px 12px !important;
    border-right: 0 !important;
    color: var(--swbs-muted);
}

.woocommerce ul.order_details li strong {
    margin-top: 5px;
    color: var(--swbs-text);
    font-size: 1rem;
}

/* Account pages, so post-purchase pages stay visually consistent. */
.woocommerce-MyAccount-navigation ul {
    margin: 0;
    padding: 10px;
    list-style: none;
    border: 1px solid var(--swbs-border);
    border-radius: var(--swbs-radius);
    background: var(--swbs-surface);
}

.woocommerce-MyAccount-navigation li a {
    display: block;
    padding: 11px 13px;
    border-radius: calc(var(--swbs-radius) - 6px);
    color: var(--swbs-text);
    text-decoration: none;
}

.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation li a:hover {
    background: var(--swbs-page-bg);
    color: var(--swbs-primary);
}

/* Mobile */
@media (max-width: 782px) {
    .wc-block-components-checkout-step,
    .wc-block-components-sidebar,
    .woocommerce-cart-form,
    .cart_totals,
    .woocommerce-checkout-review-order,
    .woocommerce-order-details,
    .woocommerce-customer-details {
        padding: 16px !important;
    }

    .swbs-thankyou-message {
        align-items: flex-start;
        gap: 12px;
    }

    .swbs-thankyou-icon {
        flex-basis: 42px;
        width: 42px;
        height: 42px;
    }

    .wc-block-cart__submit-container {
        background: var(--swbs-surface) !important;
    }
}

/* Respect reduced motion. */
@media (prefers-reduced-motion: reduce) {
    .woocommerce a.button,
    .woocommerce button.button,
    .woocommerce input.button,
    .wc-block-components-button {
        transition: none !important;
    }
}
