/* ═══════════════════════════════════════════════════════════════
   SP COMMERCE DESIGN SYSTEM  v3.0
   Single source of truth for all SkinPoint commerce surfaces.

   Sections:
    1. Commerce Tokens (unified)
    2. Checkout — Shell, Grid, Stepper, Panels
    3. Checkout — Form Fields
    4. Checkout — Order Table (sidebar)
    5. Checkout — Payment Methods
    6. Checkout — CTA, Trust, Notices
    7. Checkout — Invoice (FV) Block
    8. Cart Page — Desktop
    9. Cart Page — Mobile Card Layout
   10. Thank-You / Order Received
   11. Thank-You — DM Suite Enhancer Override
   12. Minicart / Drawer Override
   13. Global WooCommerce Notices
   14. Scroll-to-top
   15. Responsive — Tablet (≤ 768px)
   16. Responsive — Phone (≤ 480px)
   17. Animations & Reduced Motion
   ═══════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════
   1. COMMERCE TOKENS (unified)
   Extends :root from style.css. Absorbs --spcux-* legacy system.
   ═══════════════════════════════════════════ */

:root {
    /* Spacing scale */
    --sp-space-xs: 4px;
    --sp-space-sm: 8px;
    --sp-space-md: 12px;
    --sp-space-lg: 16px;
    --sp-space-xl: 24px;
    --sp-space-2xl: 32px;
    --sp-space-3xl: 48px;

    /* Commerce-specific */
    --sp-commerce-max: 1440px;
    --sp-sidebar-width: 540px;
    --sp-field-height: 46px;
    --sp-field-radius: 12px;
    --sp-card-radius: 20px;
    --sp-btn-radius: 14px;
    --sp-btn-radius-pill: 999px;

    /* CTA gradient */
    --sp-cta-bg: linear-gradient(135deg, var(--sp-burgundy), var(--sp-burgundy-deep));
    --sp-cta-shadow: 0 6px 20px rgba(111, 29, 53, 0.28);
    --sp-cta-shadow-hover: 0 10px 28px rgba(111, 29, 53, 0.32);

    /* Success */
    --sp-success: #22713b;
    --sp-success-light: rgba(34, 113, 59, 0.06);
    --sp-success-border: rgba(34, 113, 59, 0.15);

    /* Error */
    --sp-error: #b41e1e;
    --sp-error-light: rgba(180, 30, 30, 0.04);
    --sp-error-border: rgba(180, 30, 30, 0.15);

    /* Legacy --spcux-* → --sp-* bridge (consumed by sp-checkout-ux.js runtime) */
    --spcux-bg: var(--sp-white);
    --spcux-surface: var(--sp-white);
    --spcux-text: var(--sp-ink);
    --spcux-muted: var(--sp-ink-soft);
    --spcux-border: var(--sp-line);
    --spcux-accent: var(--sp-burgundy);
    --spcux-radius: var(--sp-btn-radius);
}


/* ═══════════════════════════════════════════
   2. CHECKOUT — Shell, Grid, Stepper, Panels
   ═══════════════════════════════════════════ */

.sp-checkout-shell {
    width: min(calc(100% - 2rem), var(--sp-commerce-max));
    margin: 0 auto;
    padding: 1.5rem 0 4rem;
    overflow-x: hidden;
}

/* Stepper */
.sp-stepper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    padding: 0.85rem 1rem;
    margin-bottom: 1.25rem;
    flex-wrap: nowrap;
}
.sp-stepper__step {
    display: flex; align-items: center; gap: 0.4rem;
    opacity: 0.5; font-size: 0.82rem; font-weight: 600;
    white-space: nowrap;
}
.sp-stepper__step--current { opacity: 1; color: var(--sp-burgundy); }
.sp-stepper__step--done    { opacity: 0.65; color: var(--sp-ink); }
.sp-stepper__dot {
    display: flex; align-items: center; justify-content: center;
    width: 28px; height: 28px; border-radius: 50%;
    font-size: 0.72rem; font-weight: 700;
    background: var(--sp-beige); color: var(--sp-ink-soft);
}
.sp-stepper__step--current .sp-stepper__dot {
    background: var(--sp-burgundy); color: var(--sp-white);
    box-shadow: 0 2px 8px rgba(111, 29, 53, 0.25);
}
.sp-stepper__step--done .sp-stepper__dot {
    background: var(--sp-burgundy-mist); color: var(--sp-burgundy);
}
.sp-stepper__bar {
    width: 36px; height: 2px; margin: 0 0.5rem;
    background: var(--sp-beige-deep); border-radius: 2px; flex-shrink: 0;
}
.sp-stepper__bar--filled { background: var(--sp-burgundy); }

/* Grid */
.sp-checkout__grid {
    display: grid;
    grid-template-columns: 1fr minmax(420px, var(--sp-sidebar-width));
    gap: 3rem;
    align-items: start;
}

/* Prevent left column from stretching too wide on large screens */
.sp-checkout__left {
    max-width: 760px;
}

/* Prevent sidebar overflow — visible overflow for Stripe iframes */
.sp-checkout__right,
.sp-checkout__right * {
    max-width: 100%;
    box-sizing: border-box;
}
.sp-checkout__right {
    min-width: 0;
    overflow: visible;
}

/* Panels */
.sp-panel {
    background: var(--sp-white);
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-card-radius);
    padding: 1.5rem;
    margin-bottom: 1rem;
    box-shadow: 0 2px 16px rgba(78, 18, 38, 0.04);
    overflow: visible;
}
.sp-panel__head {
    display: flex; align-items: center; gap: 0.65rem;
    margin-bottom: 1.25rem; padding-bottom: 1rem;
    border-bottom: 1px solid var(--sp-line);
}
.sp-panel__ico {
    flex-shrink: 0; padding: 8px; border-radius: 10px;
    background: var(--sp-burgundy-mist);
}
.sp-panel__title {
    margin: 0; font-family: var(--sp-font-body);
    font-size: 1.1rem; font-weight: 700; color: var(--sp-ink);
}
.sp-panel__title--sm { font-size: 1rem; margin-bottom: 1rem; }

/* Sidebar sticky */
.sp-checkout__sticky { position: sticky; top: 1.5rem; }
.sp-panel--summary {
    background: transparent;
    overflow: visible;
    margin-bottom: 1rem;
    border-radius: 0;
    border: 0;
    box-shadow: none;
    padding: 0;
}

/* Trust badges */
.sp-trust {
    display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem;
    padding: 0.85rem 1rem; border-radius: var(--sp-btn-radius);
    background: var(--sp-beige); margin-top: 1rem;
    width: 100%;
}
.sp-trust__row {
    display: flex; align-items: center; gap: 0.4rem;
    color: var(--sp-ink-soft); font-size: 0.78rem;
    font-weight: 600; white-space: nowrap;
}
.sp-trust__row svg { color: var(--sp-burgundy); flex-shrink: 0; }


/* ═══════════════════════════════════════════
   3. CHECKOUT — Form Fields
   ═══════════════════════════════════════════ */

.sp-checkout .form-row label,
.sp-checkout .woocommerce-billing-fields label,
.sp-checkout .woocommerce-shipping-fields label {
    color: var(--sp-ink); font-weight: 600; font-size: 0.85rem; margin-bottom: 0.2rem;
}
.sp-checkout input.input-text,
.sp-checkout textarea,
.sp-checkout select,
.sp-checkout .select2-container .select2-selection--single {
    width: 100%; min-height: var(--sp-field-height); padding: 0.6rem 0.85rem;
    border: 1.5px solid rgba(111, 29, 53, 0.12); border-radius: var(--sp-field-radius);
    background: var(--sp-white); font-size: 0.92rem; color: var(--sp-ink);
    box-sizing: border-box;
    transition: border-color 150ms ease, box-shadow 150ms ease;
}
/* Prevent iOS zoom on focus — 16px minimum */
@media (max-width: 768px) {
    .sp-checkout input.input-text,
    .sp-checkout textarea,
    .sp-checkout select {
        font-size: 16px !important;
    }
}
.sp-checkout textarea { min-height: 90px; }
.sp-checkout input.input-text:focus,
.sp-checkout textarea:focus,
.sp-checkout select:focus {
    border-color: var(--sp-burgundy);
    box-shadow: 0 0 0 3px rgba(111, 29, 53, 0.08); outline: none;
}


/* ═══════════════════════════════════════════
   4. CHECKOUT — Order Table (sidebar)
   ═══════════════════════════════════════════ */

.sp-checkout .woocommerce-checkout-review-order-table,
.sp-checkout .shop_table {
    width: 100% !important;
    min-width: 100% !important;
    background: transparent;
    border: 0;
    border-collapse: collapse;
    table-layout: fixed;
}
.sp-checkout .woocommerce-checkout-review-order-table th,
.sp-checkout .woocommerce-checkout-review-order-table td {
    padding: 0.55rem 0.35rem;
    border-bottom: 1px solid var(--sp-line);
    font-size: 0.82rem;
    vertical-align: top;
    word-break: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
    white-space: normal !important;
}
.sp-checkout .woocommerce-checkout-review-order-table thead th {
    font-size: 0.72rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: var(--sp-ink-soft);
}
.sp-checkout .woocommerce-checkout-review-order-table .product-name {
    width: 62%;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.sp-checkout .woocommerce-checkout-review-order-table .product-total {
    width: 40%; text-align: right; white-space: normal !important;
}
/* Recurring text wrapping */
.sp-checkout .woocommerce-checkout-review-order-table .product-total .amount,
.sp-checkout .woocommerce-checkout-review-order-table .product-total small {
    display: inline; white-space: normal; word-break: break-word;
    font-size: 0.8rem;
}
.sp-checkout .order-total td,
.sp-checkout .order-total th {
    font-size: 1rem; font-weight: 700; border-bottom: 0;
    padding-top: 0.75rem; color: var(--sp-ink);
}
.sp-checkout .order-total .amount {
    color: var(--sp-burgundy); font-weight: 800; font-size: 1.1rem;
    white-space: nowrap;
}
.sp-checkout .order-total td {
    white-space: normal !important;
    line-height: 1.4;
}
.sp-checkout .order-total .includes_tax {
    display: block; font-size: 0.72rem; font-weight: 500;
    color: var(--sp-ink-soft); margin-top: 0.2rem;
    white-space: normal;
}
/* Subtotal row — lighter weight for hierarchy */
.sp-checkout .woocommerce-checkout-review-order-table .cart-subtotal td,
.sp-checkout .woocommerce-checkout-review-order-table .cart-subtotal th {
    font-size: 0.88rem;
    color: var(--sp-ink-soft);
    padding-top: 0.85rem;
}
/* Tax rows — subtle */
.sp-checkout .woocommerce-checkout-review-order-table tr[class*="tax-"] td,
.sp-checkout .woocommerce-checkout-review-order-table tr[class*="tax-"] th {
    font-size: 0.82rem;
    color: var(--sp-ink-soft);
}
/* Subscription recurring price */
.sp-checkout .order-total small,
.sp-checkout .woocommerce-checkout-review-order-table small {
    display: block; font-size: 0.72rem; line-height: 1.35;
    margin-top: 0.3rem; white-space: normal !important;
}
/* Container bound */
.sp-checkout .woocommerce-checkout-review-order {
    width: 100% !important;
    overflow: hidden;
}
/* Tame Checkout Field Editor Pro */
.sp-checkout .thwcfe-checkout-fields-set,
.sp-checkout #order_review .shop_table {
    width: 100% !important;
    table-layout: fixed;
}


/* ═══════════════════════════════════════════
   5. CHECKOUT — Payment Methods
   ═══════════════════════════════════════════ */

.sp-checkout #payment {
    margin-top: 0;
    padding: 1rem 0 0;
    border: none;
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    overflow: visible;
}
/* Payment section heading */
.sp-checkout #payment::before {
    content: 'Metoda płatności';
    display: block;
    font-family: var(--sp-font-body);
    font-size: 1rem;
    font-weight: 700;
    color: var(--sp-ink);
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--sp-line);
}
/* Stripe test environment notice — visually muted */
.sp-checkout #payment .wc-stripe-upe-element > p,
.sp-checkout #payment .payment_box > p:first-child:not(:last-child) {
    font-size: 0.72rem;
    color: var(--sp-ink-soft);
    opacity: 0.55;
    margin-bottom: 0.5rem;
    line-height: 1.4;
}
.sp-checkout #payment ul.payment_methods { border: 0; padding: 0; margin: 0; }
.sp-checkout #payment ul.payment_methods li.wc_payment_method {
    background: var(--sp-white); border: 1.5px solid var(--sp-line);
    border-radius: var(--sp-field-radius); padding: 0.85rem 1rem; margin-bottom: 0.5rem;
    list-style: none; display: flex; flex-wrap: wrap; align-items: center;
    transition: border-color 150ms ease, box-shadow 150ms ease;
}
.sp-checkout #payment ul.payment_methods li.wc_payment_method > input[type=radio] {
    accent-color: var(--sp-burgundy); margin-right: 0.65rem;
    width: 16px; height: 16px; cursor: pointer;
}
.sp-checkout #payment ul.payment_methods li.wc_payment_method label {
    font-weight: 600; color: var(--sp-ink); margin: 0;
    cursor: pointer; flex: 1; font-size: 0.88rem;
}
.sp-checkout #payment ul.payment_methods li.wc_payment_method:hover {
    border-color: rgba(111, 29, 53, 0.25);
    box-shadow: 0 2px 10px rgba(111, 29, 53, 0.05);
}
/* Active payment method — :has() + JS fallback (.sp-payment-active) */
.sp-checkout #payment ul.payment_methods li.wc_payment_method:has(> input:checked),
.sp-checkout #payment ul.payment_methods li.wc_payment_method.sp-payment-active {
    border-color: var(--sp-burgundy);
    background: var(--sp-burgundy-mist);
    box-shadow: 0 2px 12px rgba(111, 29, 53, 0.08);
}
.sp-checkout #payment div.payment_box {
    background: var(--sp-beige); color: var(--sp-ink-soft);
    border-radius: 8px; margin-top: 0.6rem; padding: 0.75rem;
    width: 100%; font-size: 0.82rem; line-height: 1.5; border: 0;
    overflow: visible;  /* Stripe iframes must not be clipped */
    box-sizing: border-box;
}
.sp-checkout #payment div.payment_box::before { display: none; }

/* Stripe UPE / P24 — full-width, no clipping */
.sp-checkout #payment .wc-stripe-upe-element,
.sp-checkout #payment .wc-stripe-elements-field,
.sp-checkout #payment .wc-stripe-upe-form,
.sp-checkout .woocommerce-checkout-payment {
    width: 100%;
    max-width: 100%;
    min-height: 44px;
    border-radius: 8px;
    overflow: visible;
}
/* Stripe iframe / PrivateElement — force full width */
.sp-checkout #payment .wc-stripe-upe-element iframe,
.sp-checkout #payment .wc-stripe-elements-field iframe,
.sp-checkout #payment div.payment_box iframe,
.sp-checkout iframe,
.sp-checkout .StripeElement,
.sp-checkout .__PrivateStripeElement {
    max-width: 100% !important;
    width: 100% !important;
}

/* Kill vertical border artifacts in order table */
.sp-checkout .woocommerce-checkout-review-order-table,
.sp-checkout .woocommerce-checkout-review-order-table th,
.sp-checkout .woocommerce-checkout-review-order-table td {
    border-left: 0 !important;
    border-right: 0 !important;
}


/* ═══════════════════════════════════════════
   6. CHECKOUT — CTA, Notices
   ═══════════════════════════════════════════ */

/* Place Order button */
.sp-checkout #payment #place_order,
.sp-checkout #place_order {
    width: 100%; min-height: 52px; margin-top: 0.85rem;
    padding: 0.9rem 1.5rem; border: 0; border-radius: var(--sp-btn-radius);
    font-size: 1rem; font-weight: 700; color: var(--sp-white);
    background: var(--sp-cta-bg);
    box-shadow: var(--sp-cta-shadow);
    cursor: pointer; transition: transform 150ms ease, box-shadow 150ms ease;
}
.sp-checkout #payment #place_order:hover {
    transform: translateY(-1px);
    box-shadow: var(--sp-cta-shadow-hover);
}

/* Checkout notices */
.sp-checkout .woocommerce-info,
.sp-checkout .woocommerce-message,
.sp-checkout .woocommerce-error {
    border-radius: var(--sp-field-radius); border: 1px solid var(--sp-line);
    background: var(--sp-champagne); padding: 0.85rem 1rem; font-size: 0.9rem;
}

/* Checkout notice toggles — "Powracający klient?" / "Masz kupon?" */
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.85rem 1.15rem;
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-field-radius);
    background: var(--sp-champagne);
    font-size: 0.88rem;
    font-weight: 500;
    color: var(--sp-ink);
    line-height: 1.45;
    margin-bottom: 0.6rem;
}
/* Hide the broken default WC checkbox pseudo-element icon */
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info::before,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before {
    display: none !important;
}
/* Style the toggle link inside the notice */
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info a,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info a {
    color: var(--sp-burgundy, #6f1d35);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info a:hover,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info a:hover {
    color: var(--sp-burgundy-deep, #4a1423);
}
/* Revealed login/coupon forms */
.woocommerce-checkout form.login,
.woocommerce-checkout form.checkout_coupon {
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-field-radius);
    background: var(--sp-white);
    padding: 1.25rem;
    margin-bottom: 1rem;
    box-shadow: 0 2px 12px rgba(78, 18, 38, 0.04);
}

/* Hide Astra page title on checkout */
.woocommerce-checkout .entry-title { display: none; }


/* ═══════════════════════════════════════════
   7. CHECKOUT — Invoice (FV) Block
   ═══════════════════════════════════════════ */

.sp-checkout .spcux-invoice-block {
    margin: 1.25rem 0; padding: 1.25rem;
    border: 1px solid rgba(111, 29, 53, 0.1); border-radius: 16px;
    background: linear-gradient(180deg, rgba(255, 249, 242, 0.98), rgba(244, 237, 227, 0.84));
}
.sp-checkout .spcux-invoice-toggle {
    padding: 0.85rem; border: 1px solid rgba(111, 29, 53, 0.12);
    border-radius: var(--sp-field-radius); background: rgba(255, 255, 255, 0.86);
}
.sp-checkout .spcux-invoice-toggle label {
    display: inline-flex; align-items: center; gap: 0.6rem;
    margin: 0; color: var(--sp-ink); font-weight: 700;
}
.sp-checkout #sp_invoice_wants { accent-color: var(--sp-burgundy); width: 18px; height: 18px; }
.sp-checkout .spcux-invoice-field label { color: var(--sp-ink); font-weight: 600; }
.sp-checkout .spcux-invoice-hidden { display: none !important; }
.sp-checkout .spcux-gus-btn {
    display: inline-flex; align-items: center; min-height: 42px;
    padding: 0.6rem 1rem; border: 1px solid rgba(111, 29, 53, 0.15);
    border-radius: var(--sp-btn-radius-pill); background: rgba(255, 255, 255, 0.9);
    color: var(--sp-burgundy-deep); font-weight: 700;
    transition: transform 180ms ease, border-color 180ms ease;
}
.sp-checkout .spcux-gus-btn:hover { border-color: var(--sp-burgundy); transform: translateY(-1px); }
/* GUS row layout */
.sp-checkout .spcux-gus-row {
    display: flex; gap: 8px; align-items: center; margin-top: 6px;
}
.sp-checkout .spcux-gus-msg {
    font-size: 0.82rem; color: var(--sp-ink-soft);
}
/* Invoice title & note */
.sp-checkout .spcux-invoice-title {
    font-family: var(--sp-font-body);
    font-size: 1rem; font-weight: 700; color: var(--sp-ink);
    margin: 0 0 0.5rem;
}
.sp-checkout .spcux-invoice-note {
    font-size: 0.82rem; color: var(--sp-ink-soft);
    margin: 0 0 0.85rem; line-height: 1.4;
}


/* ═══════════════════════════════════════════
   8. CART PAGE — Desktop
   ═══════════════════════════════════════════ */

.woocommerce-cart .woocommerce {
    max-width: var(--sp-commerce-max);
    margin: 0 auto;
    padding: 1rem 1rem 4rem;
}
.woocommerce-cart .entry-title { display: none; }

/* Cart table — desktop */
.woocommerce-cart table.shop_table {
    border: 1px solid var(--sp-line) !important;
    border-radius: var(--sp-card-radius) !important;
    overflow: hidden;
    background: var(--sp-white);
    box-shadow: 0 2px 16px rgba(78, 18, 38, 0.04);
    border-collapse: separate !important;
    border-spacing: 0;
    table-layout: fixed;
    width: 100%;
}
.woocommerce-cart table.shop_table .product-remove  { width: 40px; }
.woocommerce-cart table.shop_table .product-thumbnail { width: 90px; overflow: hidden; }
.woocommerce-cart table.shop_table .product-name { width: auto; }
.woocommerce-cart table.shop_table .product-price,
.woocommerce-cart table.shop_table .product-subtotal { width: 160px; text-align: center; white-space: normal; word-break: normal; }
.woocommerce-cart table.shop_table .product-quantity { width: 90px; text-align: center; }

.woocommerce-cart table.shop_table thead th {
    background: var(--sp-beige);
    color: var(--sp-ink);
    font-family: var(--sp-font-body);
    font-weight: 700; font-size: 0.82rem;
    text-transform: uppercase; letter-spacing: 0.04em;
    padding: 0.9rem 1rem;
    border-bottom: 1px solid var(--sp-line);
    white-space: normal; word-break: break-word;
}
.woocommerce-cart table.shop_table td {
    padding: 1rem;
    border-top: 1px solid var(--sp-line);
    vertical-align: middle;
    font-size: 0.92rem;
    color: var(--sp-ink);
    white-space: normal;
    word-break: break-word;
    overflow-wrap: break-word;
}
.woocommerce-cart table.shop_table td.product-thumbnail {
    padding: 0.75rem 0.5rem;
    text-align: center;
    overflow: hidden;
    font-size: 0; line-height: 0; color: transparent;
}
.woocommerce-cart table.shop_table td.product-thumbnail a {
    display: block; overflow: hidden;
    font-size: 0; line-height: 0; color: transparent;
}
.woocommerce-cart table.shop_table td.product-thumbnail img {
    border-radius: var(--sp-field-radius);
    border: 1px solid var(--sp-line);
    width: 70px; height: 70px; object-fit: cover;
    display: block; margin: 0 auto;
}
.woocommerce-cart table.shop_table td.product-name a {
    color: var(--sp-ink); font-weight: 600; text-decoration: none;
}
.woocommerce-cart table.shop_table td.product-name a:hover {
    color: var(--sp-burgundy);
}
.woocommerce-cart table.shop_table td.product-price .amount,
.woocommerce-cart table.shop_table td.product-subtotal .amount {
    color: var(--sp-burgundy); font-weight: 700;
}
.woocommerce-cart table.shop_table td.product-remove a.remove {
    color: var(--sp-ink-soft) !important;
    font-size: 1.4rem; width: 32px; height: 32px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 8px; transition: background 150ms ease, color 150ms ease;
}
.woocommerce-cart table.shop_table td.product-remove a.remove:hover {
    background: rgba(111, 29, 53, 0.08) !important;
    color: var(--sp-burgundy) !important;
}

/* Quantity input */
.woocommerce-cart .quantity .qty {
    min-height: 40px; width: 60px; text-align: center;
    border: 1.5px solid rgba(111, 29, 53, 0.12); border-radius: 10px;
    font-weight: 600; font-size: 0.92rem;
}

/* Coupon */
.woocommerce-cart .coupon {
    display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap;
}
.woocommerce-cart .coupon .input-text {
    min-height: 44px; padding: 0.5rem 0.85rem;
    border: 1.5px solid rgba(111, 29, 53, 0.12); border-radius: var(--sp-field-radius);
    font-size: 0.88rem; flex: 1; min-width: 160px;
}
.woocommerce-cart .coupon .button,
.woocommerce-cart button[name="update_cart"] {
    min-height: 44px; padding: 0.5rem 1.2rem;
    border: 1.5px solid rgba(111, 29, 53, 0.22); border-radius: var(--sp-field-radius);
    background: var(--sp-white); color: var(--sp-burgundy-deep);
    font-weight: 700; font-size: 0.85rem; cursor: pointer;
    transition: border-color 150ms ease, transform 150ms ease, background 150ms ease;
}
.woocommerce-cart button[name="update_cart"] {
    border-color: var(--sp-burgundy);
    color: var(--sp-burgundy);
    background: var(--sp-burgundy-mist);
}
.woocommerce-cart .coupon .button:hover,
.woocommerce-cart button[name="update_cart"]:hover {
    border-color: var(--sp-burgundy); transform: translateY(-1px);
    background: var(--sp-burgundy-mist);
}
/* Actions row */
.woocommerce-cart table.shop_table td.actions {
    padding: 1rem;
    text-align: right;
    vertical-align: middle;
}

/* Cart Collaterals */
.woocommerce-cart .cart-collaterals {
    margin-top: 1.5rem;
}
.woocommerce-cart .cart_totals {
    float: right; width: var(--sp-sidebar-width); max-width: 100%;
    background: var(--sp-white);
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-card-radius);
    padding: 1.5rem;
    box-shadow: 0 2px 16px rgba(78, 18, 38, 0.04);
}
.woocommerce-cart .cart_totals h2 {
    font-family: var(--sp-font-body);
    font-size: 1.1rem; font-weight: 700; color: var(--sp-ink);
    margin: 0 0 1rem; padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--sp-line);
}
.woocommerce-cart .cart_totals table.shop_table {
    border: 0 !important; border-radius: 0 !important;
    box-shadow: none; background: transparent;
}
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td {
    padding: 0.6rem 0; border-top: 0;
    border-bottom: 1px solid var(--sp-line); font-size: 0.9rem;
}
/* Prevent digit stacking on ALL totals amounts (subtotal, shipping, total) */
.woocommerce-cart .cart_totals .amount {
    white-space: nowrap;
}
.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td {
    font-size: 1.05rem; font-weight: 700; border-bottom: 0;
    padding-top: 0.75rem;
}
.woocommerce-cart .cart_totals .order-total .amount {
    color: var(--sp-burgundy); font-weight: 800; font-size: 1.15rem;
    white-space: nowrap;
}
.woocommerce-cart .cart_totals .order-total .includes_tax {
    display: block; font-size: 0.72rem; font-weight: 500;
    color: var(--sp-ink-soft); margin-top: 0.15rem;
    white-space: normal;
}

/* Proceed to checkout CTA */
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
    display: block; width: 100%; min-height: 52px;
    margin-top: 1rem; padding: 0.9rem 1.5rem;
    border: 0; border-radius: var(--sp-btn-radius);
    font-size: 1rem; font-weight: 700; color: var(--sp-white);
    background: var(--sp-cta-bg);
    box-shadow: var(--sp-cta-shadow);
    text-align: center; text-decoration: none;
    transition: transform 150ms ease, box-shadow 150ms ease;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
    transform: translateY(-1px); color: var(--sp-white);
    box-shadow: var(--sp-cta-shadow-hover);
}

/* Empty cart */
.woocommerce-cart .cart-empty {
    text-align: center; padding: 3rem 1rem;
    color: var(--sp-ink-soft); font-size: 1.05rem;
}
.woocommerce-cart .return-to-shop a {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 48px; padding: 0.8rem 1.5rem;
    border-radius: var(--sp-btn-radius); font-weight: 700; color: var(--sp-white);
    background: var(--sp-cta-bg);
    box-shadow: var(--sp-cta-shadow);
    text-decoration: none;
}


/* ═══════════════════════════════════════════
   9. CART — Mobile Card Layout
   Override Astra woocommerce-smallscreen-grid.css which targets
   .shop_table_responsive with its own mobile layout.
   We use body.woocommerce-cart for maximum specificity.
   ═══════════════════════════════════════════ */

@media (max-width: 768px) {
    /* Break table layout — override Astra responsive */
    body.woocommerce-cart .woocommerce table.shop_table,
    body.woocommerce-cart .woocommerce table.shop_table_responsive {
        display: block !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        background: transparent !important;
    }
    body.woocommerce-cart .woocommerce table.shop_table thead,
    body.woocommerce-cart .woocommerce table.shop_table_responsive thead {
        display: none !important;
    }
    body.woocommerce-cart .woocommerce table.shop_table tbody,
    body.woocommerce-cart .woocommerce table.shop_table_responsive tbody {
        display: block !important;
    }

    /* Kill Astra/WC mobile data-title pseudo-labels */
    body.woocommerce-cart .woocommerce table.shop_table tr td::before,
    body.woocommerce-cart .woocommerce table.shop_table_responsive tr td::before {
        display: none !important;
        content: none !important;
    }

    /* All cells: override Astra's display:block + text-align:right */
    body.woocommerce-cart .woocommerce table.shop_table tr td,
    body.woocommerce-cart .woocommerce table.shop_table_responsive tr td {
        display: block !important;
        border: 0 !important;
        padding: 0 !important;
        width: auto !important;
        text-align: left !important;
        float: none !important;
    }

    /* Each product row = card */
    body.woocommerce-cart .woocommerce table.shop_table tbody tr:not(.actions),
    body.woocommerce-cart .woocommerce table.shop_table_responsive tbody tr:not(.actions) {
        display: grid !important;
        grid-template-columns: 56px 1fr minmax(0, auto);
        grid-template-rows: auto auto;
        gap: 2px var(--sp-space-md);
        align-items: center;
        background: var(--sp-white);
        border: 1px solid var(--sp-line);
        border-radius: 16px;
        padding: var(--sp-space-lg);
        margin-bottom: var(--sp-space-md);
        box-shadow: 0 2px 12px rgba(78, 18, 38, 0.04);
        overflow: hidden;
    }

    /* Thumbnail: spans both rows, col 1 */
    body.woocommerce-cart .woocommerce table.shop_table td.product-thumbnail,
    body.woocommerce-cart .woocommerce table.shop_table_responsive td.product-thumbnail {
        grid-row: 1 / 3; grid-column: 1;
        text-align: left !important;
    }
    body.woocommerce-cart .woocommerce table.shop_table td.product-thumbnail img,
    body.woocommerce-cart .woocommerce table.shop_table_responsive td.product-thumbnail img {
        width: 52px !important; height: 52px !important; border-radius: 10px;
        object-fit: cover; display: block;
    }

    /* Name: row 1, col 2 */
    body.woocommerce-cart .woocommerce table.shop_table td.product-name,
    body.woocommerce-cart .woocommerce table.shop_table_responsive td.product-name {
        grid-row: 1; grid-column: 2;
        font-weight: 600; font-size: 0.88rem;
        line-height: 1.3;
        min-width: 0;
        overflow-wrap: break-word;
        word-break: break-word;
    }

    /* Price: hidden (subtotal suffices) */
    body.woocommerce-cart .woocommerce table.shop_table td.product-price,
    body.woocommerce-cart .woocommerce table.shop_table_responsive td.product-price {
        display: none !important;
    }

    /* Quantity: row 2, col 2 */
    body.woocommerce-cart .woocommerce table.shop_table td.product-quantity,
    body.woocommerce-cart .woocommerce table.shop_table_responsive td.product-quantity {
        grid-row: 2; grid-column: 2;
        padding-top: 4px !important;
    }
    body.woocommerce-cart .woocommerce table.shop_table td.product-quantity .qty,
    body.woocommerce-cart .woocommerce table.shop_table_responsive td.product-quantity .qty {
        width: 48px; min-height: 34px; font-size: 0.85rem;
    }

    /* Subtotal: row 1, col 3 */
    body.woocommerce-cart .woocommerce table.shop_table td.product-subtotal,
    body.woocommerce-cart .woocommerce table.shop_table_responsive td.product-subtotal {
        grid-row: 1; grid-column: 3;
        text-align: right !important;
        font-weight: 700;
        white-space: normal;
        min-width: 0;
        overflow-wrap: break-word;
        word-break: break-word;
        max-width: 140px;
        font-size: 0.85rem;
    }
    /* Keep plain price amounts on one line */
    body.woocommerce-cart .woocommerce table.shop_table td.product-subtotal .woocommerce-Price-amount,
    body.woocommerce-cart .woocommerce table.shop_table_responsive td.product-subtotal .woocommerce-Price-amount {
        white-space: nowrap;
    }

    /* Remove: row 2, col 3 */
    body.woocommerce-cart .woocommerce table.shop_table td.product-remove,
    body.woocommerce-cart .woocommerce table.shop_table_responsive td.product-remove {
        grid-row: 2; grid-column: 3;
        text-align: right !important;
    }
    body.woocommerce-cart .woocommerce table.shop_table td.product-remove a.remove,
    body.woocommerce-cart .woocommerce table.shop_table_responsive td.product-remove a.remove {
        width: 28px; height: 28px; font-size: 1.1rem;
        display: inline-flex; align-items: center; justify-content: center;
    }

    /* Actions row: full width, not grid card */
    body.woocommerce-cart .woocommerce table.shop_table tbody tr.actions,
    body.woocommerce-cart .woocommerce table.shop_table td.actions,
    body.woocommerce-cart .woocommerce table.shop_table_responsive tbody tr.actions,
    body.woocommerce-cart .woocommerce table.shop_table_responsive td.actions {
        display: block !important;
        grid-column: 1 / -1;
        text-align: center;
        padding: var(--sp-space-lg) 0 0 !important;
        border-top: 0;
        background: transparent;
        border: 0 !important;
        border-radius: 0;
        box-shadow: none !important;
        margin-bottom: 0;
    }

    /* Coupon: stack */
    .woocommerce-cart .coupon {
        flex-direction: column; width: 100%;
    }
    .woocommerce-cart .coupon .input-text {
        width: 100%; min-width: auto;
    }
    .woocommerce-cart .coupon .button {
        width: 100%;
    }
    .woocommerce-cart button[name="update_cart"] {
        width: 100%; margin-top: var(--sp-space-sm);
    }
    /* Cart totals: full width */
    .woocommerce-cart .cart_totals {
        float: none; width: 100%;
    }
    /* Cart totals — prevent digit stacking on mobile */
    .woocommerce-cart .cart_totals .order-total .amount {
        white-space: nowrap;
        font-size: 1.05rem;
    }
    .woocommerce-cart .cart_totals .order-total td {
        white-space: normal !important;
        line-height: 1.4;
    }
    .woocommerce-cart .cart_totals .order-total .includes_tax {
        display: block;
        font-size: 0.68rem;
        white-space: normal;
        line-height: 1.35;
    }
    .woocommerce-cart .cart_totals th,
    .woocommerce-cart .cart_totals td {
        padding: 0.55rem 0.35rem;
        word-break: normal;
    }
}


/* ═══════════════════════════════════════════
   10. THANK-YOU / ORDER RECEIVED — WC Core
   ═══════════════════════════════════════════ */

.woocommerce-order .woocommerce {
    max-width: 960px;
    margin: 0 auto;
    padding: 2rem 1rem 4rem;
}
.woocommerce-order .entry-title { display: none; }

/* Success banner */
.woocommerce-order .woocommerce-thankyou-order-received {
    text-align: center;
    padding: 2.5rem 2rem;
    border: 1px solid var(--sp-success-border);
    border-radius: var(--sp-card-radius);
    background: linear-gradient(180deg, var(--sp-success-light) 0%, var(--sp-white) 100%);
    box-shadow: 0 2px 16px rgba(78, 18, 38, 0.04);
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--sp-ink);
    margin-bottom: 2rem;
    position: relative;
}
.woocommerce-order .woocommerce-thankyou-order-received::before {
    content: '✓';
    display: flex; align-items: center; justify-content: center;
    width: 48px; height: 48px; margin: 0 auto 1rem;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--sp-success), #1a5c2f);
    color: #fff; font-size: 1.5rem; font-weight: 800;
    box-shadow: 0 4px 14px rgba(34, 113, 59, 0.25);
}

/* Order overview cards */
.woocommerce-order .woocommerce-order-overview {
    list-style: none; padding: 0; margin: 0 0 2rem;
    display: flex; flex-wrap: nowrap;
    gap: 0.45rem;
}
.woocommerce-order .woocommerce-order-overview li {
    flex: 1 1 0;
    min-width: 0;
    padding: 0.75rem 0.35rem;
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-btn-radius);
    background: var(--sp-white);
    text-align: center;
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--sp-ink-soft);
    overflow: hidden;
    line-height: 1.3;
    white-space: nowrap;
}
.woocommerce-order .woocommerce-order-overview li strong {
    display: block; margin-top: 0.3rem;
    font-size: 0.8rem; color: var(--sp-ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.25;
}

/* Order details table */
.woocommerce-order table.shop_table {
    border: 1px solid var(--sp-line) !important;
    border-radius: 16px !important;
    overflow: hidden;
    background: var(--sp-white);
    box-shadow: 0 2px 16px rgba(78, 18, 38, 0.04);
    border-collapse: separate !important;
    border-spacing: 0;
    width: 100%;
    table-layout: fixed;
}
.woocommerce-order table.shop_table thead th {
    background: var(--sp-beige);
    font-family: var(--sp-font-body);
    font-weight: 700; font-size: 0.8rem;
    text-transform: uppercase; letter-spacing: 0.04em;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--sp-line);
    color: var(--sp-ink);
}
.woocommerce-order table.shop_table td,
.woocommerce-order table.shop_table th {
    padding: 0.75rem 1rem;
    border-top: 1px solid var(--sp-line);
    font-size: 0.9rem; color: var(--sp-ink);
    word-break: break-word;
    overflow-wrap: break-word;
}
.woocommerce-order table.shop_table .amount {
    color: var(--sp-burgundy); font-weight: 700;
    white-space: nowrap;
}
.woocommerce-order table.shop_table tfoot th {
    text-align: left;
}
.woocommerce-order table.shop_table tfoot .order-total th,
.woocommerce-order table.shop_table tfoot .order-total td {
    font-size: 1.05rem; font-weight: 700;
    padding-top: 0.85rem; border-bottom: 0;
}
.woocommerce-order table.shop_table tfoot .order-total .amount {
    color: var(--sp-burgundy); font-weight: 800; font-size: 1.12rem;
}
.woocommerce-order table.shop_table .includes_tax {
    display: block; font-size: 0.72rem; font-weight: 500;
    color: var(--sp-ink-soft); margin-top: 0.15rem; white-space: normal;
}

/* Section headings */
.woocommerce-order .woocommerce-order-details,
.woocommerce-order .woocommerce-customer-details {
    margin-top: 2rem;
}
.woocommerce-order .woocommerce-order-details h2,
.woocommerce-order .woocommerce-customer-details h2,
.woocommerce-order .woocommerce-column__title {
    font-family: var(--sp-font-body);
    font-size: 1.1rem; font-weight: 700;
    color: var(--sp-ink); margin: 0 0 0.85rem;
    padding-bottom: 0.6rem;
    border-bottom: 1px solid var(--sp-line);
}
/* Customer details / address */
.woocommerce-order .woocommerce-customer-details address {
    padding: 1.25rem;
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-btn-radius);
    background: var(--sp-white);
    font-size: 0.9rem; line-height: 1.7; color: var(--sp-ink-soft);
    box-shadow: 0 2px 8px rgba(78, 18, 38, 0.03);
}
/* BACS payment instructions */
.woocommerce-order .woocommerce-bacs-bank-details {
    margin-top: 1.5rem;
    padding: 1.25rem;
    border: 1px solid var(--sp-line);
    border-radius: 16px;
    background: var(--sp-champagne);
}
.woocommerce-order .wc-bacs-bank-details-heading {
    font-family: var(--sp-font-body);
    font-size: 1rem; font-weight: 700;
    color: var(--sp-ink); margin: 0 0 0.75rem;
}
.woocommerce-order .wc-bacs-bank-details-account-name {
    font-weight: 700; color: var(--sp-ink);
}


/* ═══════════════════════════════════════════
   11. THANK-YOU — DM Suite Enhancer Override
   Overrides spty-* inline styles with --sp-* tokens.
   ═══════════════════════════════════════════ */

body.woocommerce-order .spty-thankyou {
    max-width: 680px; margin: 1.5rem auto 0;
}
body.woocommerce-order .spty-card {
    background: var(--sp-white);
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-card-radius);
    padding: 1.5rem;
    margin-bottom: 1rem;
    box-shadow: 0 2px 16px rgba(78, 18, 38, 0.04);
}
body.woocommerce-order .spty-heading {
    font-family: var(--sp-font-body);
    font-size: 1.1rem; font-weight: 800;
    color: var(--sp-ink); margin: 0 0 0.85rem;
}
body.woocommerce-order .spty-items li {
    padding: 0.6rem 0;
    border-bottom: 1px solid var(--sp-line);
    font-size: 0.88rem; color: var(--sp-ink);
}
body.woocommerce-order .spty-item-name {
    font-weight: 600; color: var(--sp-ink);
}
body.woocommerce-order .spty-item-amount {
    font-weight: 700; color: var(--sp-burgundy);
}
body.woocommerce-order .spty-total {
    border-top: 2px solid var(--sp-ink);
    padding-top: 0.85rem;
    font-weight: 800; color: var(--sp-ink);
}
body.woocommerce-order .spty-cta {
    min-height: 48px;
    padding: 0.85rem 1.25rem;
    border-radius: var(--sp-btn-radius);
    font-size: 0.92rem; font-weight: 700;
    text-decoration: none;
}
body.woocommerce-order .spty-cta-primary {
    background: var(--sp-cta-bg);
    color: var(--sp-white);
    box-shadow: var(--sp-cta-shadow);
}
body.woocommerce-order .spty-cta-primary:hover {
    transform: translateY(-1px);
    box-shadow: var(--sp-cta-shadow-hover);
    color: var(--sp-white);
}
body.woocommerce-order .spty-cta-secondary {
    background: var(--sp-beige);
    color: var(--sp-ink);
    border: 1px solid var(--sp-line);
}
body.woocommerce-order .spty-cta-secondary:hover {
    background: var(--sp-burgundy-mist);
    border-color: rgba(111, 29, 53, 0.2);
}
body.woocommerce-order .spty-note {
    color: var(--sp-ink-soft);
    font-size: 0.82rem;
}


/* ═══════════════════════════════════════════
   12. MINICART / DRAWER Override
   Overrides DM Suite astra-cart-drawer.css with design system.
   ═══════════════════════════════════════════ */

/* Product items */
.widget_shopping_cart .mini_cart_item {
    padding: 0.6rem 0.75rem !important;
    overflow: hidden;  /* contain long names */
}
.widget_shopping_cart .mini_cart_item a:not(.remove) {
    font-weight: 600; font-size: 0.88rem; color: var(--sp-ink);
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: calc(100% - 40px);  /* leave room for remove button */
}
.widget_shopping_cart .mini_cart_item .quantity {
    font-size: 0.82rem; color: var(--sp-ink-soft);
    white-space: normal;
    overflow-wrap: break-word;
}
.widget_shopping_cart .mini_cart_item .amount {
    color: var(--sp-burgundy); font-weight: 700;
}

/* CTA buttons hierarchy */
.widget_shopping_cart .woocommerce-mini-cart__buttons {
    display: flex; flex-direction: column; gap: 0.5rem;
    padding: 0.75rem !important;
}
.widget_shopping_cart .woocommerce-mini-cart__buttons a.button {
    display: flex; align-items: center; justify-content: center;
    min-height: 44px; border-radius: var(--sp-field-radius);
    font-weight: 700; font-size: 0.88rem; text-decoration: none;
    transition: transform 150ms ease, background 150ms ease;
}
/* "Zamówienie" = primary */
.widget_shopping_cart .woocommerce-mini-cart__buttons a.button.checkout {
    background: var(--sp-cta-bg);
    color: var(--sp-white) !important;
    box-shadow: var(--sp-cta-shadow);
    order: 1;
}
.widget_shopping_cart .woocommerce-mini-cart__buttons a.button.checkout:hover {
    transform: translateY(-1px);
}
/* "Zobacz koszyk" = secondary */
.widget_shopping_cart .woocommerce-mini-cart__buttons a.button:not(.checkout) {
    background: var(--sp-white);
    color: var(--sp-burgundy) !important;
    border: 1.5px solid rgba(111, 29, 53, 0.18);
    order: 2;
}
.widget_shopping_cart .woocommerce-mini-cart__buttons a.button:not(.checkout):hover {
    border-color: var(--sp-burgundy);
    background: var(--sp-burgundy-mist);
}
/* Minicart total */
.widget_shopping_cart .total {
    padding: 0.6rem 0.75rem !important;
    font-weight: 700;
    border-top: 1px solid var(--sp-line);
}
.widget_shopping_cart .total .amount {
    color: var(--sp-burgundy); font-weight: 800;
}

/* DM Suite drawer token override — map to design system */
#astra-mobile-cart-drawer {
    --paper: var(--sp-white);
}
@media (max-width: 544px) {
    body:not(.ast-mobile-cart-active) #astra-mobile-cart-drawer:not(.active) {
        display: none !important;
    }
    #astra-mobile-cart-drawer {
        left: auto !important;
        right: 0 !important;
        max-width: calc(100vw - 32px);
        transform: translateX(100%);
    }
    .ast-mobile-cart-active #astra-mobile-cart-drawer,
    .astra-cart-drawer.active {
        transform: translateX(0);
    }
}
/* Drawer typography */
#astra-mobile-cart-drawer .astra-cart-drawer-title,
#astra-mobile-cart-drawer .astra-cart-drawer-header {
    font-family: var(--sp-font-body);
}


/* ═══════════════════════════════════════════
   13. GLOBAL WOOCOMMERCE NOTICES
   ═══════════════════════════════════════════ */

.woocommerce .woocommerce-info,
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-error {
    border-radius: var(--sp-field-radius); border: 1px solid var(--sp-line);
    background: var(--sp-champagne); padding: 0.85rem 1rem;
    font-size: 0.9rem; color: var(--sp-ink);
}
.woocommerce .woocommerce-message {
    border-color: var(--sp-success-border);
    background: var(--sp-success-light);
}
.woocommerce .woocommerce-error {
    border-color: var(--sp-error-border);
    background: var(--sp-error-light);
}

/* Checkout login/coupon prompts */
.woocommerce-form-login-toggle .woocommerce-info,
.woocommerce-form-coupon-toggle .woocommerce-info {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 0 0 1rem;
    padding: 0.95rem 1rem;
    border: 1px solid rgba(111, 29, 53, 0.14);
    border-radius: var(--sp-card-radius);
    background: linear-gradient(135deg, var(--sp-white) 0%, var(--sp-champagne) 100%);
    box-shadow: 0 14px 32px rgba(38, 21, 27, 0.06);
    color: var(--sp-ink);
}
.woocommerce-form-login-toggle .woocommerce-info::before,
.woocommerce-form-coupon-toggle .woocommerce-info::before {
    position: static;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    margin: 0;
    border-radius: 50%;
    background: var(--sp-burgundy-mist);
    color: var(--sp-burgundy);
    font-size: 0.85rem;
    line-height: 1;
}
.woocommerce-form-login-toggle .woocommerce-info a,
.woocommerce-form-coupon-toggle .woocommerce-info a {
    color: var(--sp-burgundy);
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.woocommerce form.login,
.woocommerce form.checkout_coupon {
    margin: 0 0 1.25rem;
    padding: 1rem;
    border: 1px solid var(--sp-line);
    border-radius: var(--sp-card-radius);
    background: var(--sp-white);
    box-shadow: 0 16px 40px rgba(38, 21, 27, 0.06);
}
@media (max-width: 640px) {
    .woocommerce-form-login-toggle .woocommerce-info,
    .woocommerce-form-coupon-toggle .woocommerce-info {
        align-items: flex-start;
        padding: 0.85rem;
        font-size: 0.86rem;
    }
}

/* DM Suite discount row integration */
.sp-dm-savings-label { font-size: 0.75rem; color: var(--sp-ink-soft); }
.sp-dm-savings-amount { font-size: 0.75rem; font-weight: 600; color: var(--sp-ink); }
.sp-dm-price-old del { color: var(--sp-ink-soft); font-size: 0.75rem; }
.sp-dm-price-new { font-weight: 700; color: var(--sp-ink); }
.sp-dm-discount-total-amount { font-size: 0.82rem; font-weight: 700; color: var(--sp-ink); }


/* ═══════════════════════════════════════════
   14. SCROLL-TO-TOP
   ═══════════════════════════════════════════ */

#ast-scroll-top {
    z-index: 99 !important;
    bottom: 5rem !important;
    right: 1.25rem !important;
    width: 40px; height: 40px;
    border-radius: var(--sp-field-radius);
    background: rgba(111, 29, 53, 0.7) !important;
    backdrop-filter: blur(6px);
    box-shadow: 0 2px 12px rgba(111, 29, 53, 0.15);
    opacity: 0.6;
    transition: opacity 200ms ease, transform 200ms ease, background 200ms ease;
}
#ast-scroll-top:hover {
    opacity: 1;
    background: var(--sp-burgundy) !important;
    transform: translateY(-2px);
}
.woocommerce-checkout #ast-scroll-top { display: none !important; }


/* ═══════════════════════════════════════════
   15. RESPONSIVE — Tablet (≤ 768px)
   ═══════════════════════════════════════════ */

@media (max-width: 768px) {
    /* Checkout shell */
    .sp-checkout-shell { padding: 1rem 0 2.5rem; }
    .sp-stepper { padding: 0.7rem 0.8rem; }
    .sp-stepper__text { font-size: 0.72rem; }
    .sp-stepper__bar { width: 20px; margin: 0 0.3rem; }
    .sp-stepper__dot { width: 24px; height: 24px; font-size: 0.7rem; }

    /* Stack columns: summary first, then form */
    .sp-checkout__grid { grid-template-columns: 1fr; }
    .sp-checkout__right { order: -1; overflow: visible; }
    .sp-checkout__sticky { position: static; }

    /* Stack name fields on mobile — prevent cramped side-by-side inputs */
    .sp-checkout .form-row-first,
    .sp-checkout .form-row-last {
        width: 100% !important;
        float: none !important;
        margin-right: 0 !important;
    }

    /* Panels */
    .sp-panel { padding: 1.15rem; border-radius: 16px; }

    /* Left column — no max-width on mobile */
    .sp-checkout__left { max-width: none; }

    /* Payment section — tighter padding on mobile */
    .sp-checkout #payment {
        padding: 1rem 1.15rem 1.25rem;
        border-radius: 0 0 16px 16px;
    }

    /* Trust badges: column */
    .sp-trust { flex-direction: column; gap: 0.4rem; }

    /* Invoice GUS: full-width */
    .sp-checkout .spcux-gus-btn { width: 100%; }

    /* Order review table — tighter */
    .sp-checkout .woocommerce-checkout-review-order-table {
        table-layout: fixed; font-size: 0.78rem;
    }
    .sp-checkout .woocommerce-checkout-review-order-table .product-name {
        width: 60%; overflow-wrap: break-word; word-break: normal; hyphens: none;
        white-space: normal !important; line-height: 1.35;
    }
    .sp-checkout .woocommerce-checkout-review-order-table .product-total {
        width: 40%; white-space: normal !important; text-align: right;
    }

    /* Thank-You mobile */
    .woocommerce-order .woocommerce {
        padding: 1.5rem 0.75rem 3rem;
    }
    .woocommerce-order .woocommerce-thankyou-order-received {
        padding: 2rem 1rem; font-size: 1rem;
    }
    .woocommerce-order .woocommerce-order-overview {
        flex-wrap: wrap;
    }
    .woocommerce-order .woocommerce-order-overview li {
        flex: 1 1 calc(33.33% - 0.3rem);
        font-size: 0.6rem; padding: 0.6rem 0.35rem;
        white-space: normal;
    }
    .woocommerce-order .woocommerce-order-overview li strong {
        font-size: 0.78rem;
        white-space: normal;
        overflow: visible;
        text-overflow: unset;
    }
    .woocommerce-order table.shop_table td,
    .woocommerce-order table.shop_table th {
        padding: 0.6rem 0.65rem; font-size: 0.82rem;
    }

    /* Checkout sticky bar (sp-checkout-ux.js runtime) */
    .spcux-sticky-bar {
        position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999;
        padding: 10px calc(12px + env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left));
        background: rgba(255, 255, 255, 0.96);
        border-top: 1px solid var(--sp-line);
        box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.08);
    }
    .spcux-sticky-inner {
        display: flex; align-items: center; justify-content: space-between; gap: 12px;
    }
    .spcux-sticky-total { font-size: 16px; font-weight: 800; color: var(--sp-ink); }
    .spcux-sticky-btn {
        border: none; border-radius: var(--sp-field-radius);
        padding: 12px 14px;
        background: var(--sp-cta-bg); color: var(--sp-white);
        font-weight: 800; cursor: pointer;
        min-height: 44px;
    }

    /* Form fields scroll margin for sticky bar */
    .woocommerce-checkout input,
    .woocommerce-checkout select,
    .woocommerce-checkout textarea {
        scroll-margin-bottom: 140px;
    }
}


/* ═══════════════════════════════════════════
   16. RESPONSIVE — Phone (≤ 480px)
   ═══════════════════════════════════════════ */

@media (max-width: 480px) {
    /* Checkout — tighter shell */
    .sp-checkout-shell { width: calc(100% - 1rem); }
    .sp-stepper { gap: 0; padding: 0.5rem; }
    .sp-stepper__text { font-size: 0.65rem; }
    .sp-panel { padding: 1rem; }

    /* Checkout — payment methods tighter padding */
    .sp-checkout #payment ul.payment_methods li.wc_payment_method {
        padding: 0.7rem 0.75rem;
    }
    .sp-checkout #payment div.payment_box {
        padding: 0.65rem;
    }

    /* GUS NIP row — prevent overflow on narrow viewports */
    .sp-checkout .spcux-gus-row {
        flex-wrap: wrap;
    }

    /* Checkout — order review table tighter */
    .sp-checkout .woocommerce-checkout-review-order-table {
        font-size: 0.75rem;
    }
    .sp-checkout .woocommerce-checkout-review-order-table .product-name {
        width: 55%;
    }
    .sp-checkout .woocommerce-checkout-review-order-table .product-total {
        width: 45%;
    }

    /* Checkout — sticky bar tighter */
    .spcux-sticky-total { font-size: 14px; }
    .spcux-sticky-btn { padding: 10px 12px; font-size: 0.85rem; }

    /* Cart mobile — smaller thumbnail, tighter cards */
    .woocommerce-cart table.shop_table tbody tr:not(.actions) {
        grid-template-columns: 48px 1fr minmax(0, auto) !important;
        padding: var(--sp-space-md) !important;
    }
    .woocommerce-cart table.shop_table td.product-thumbnail img {
        width: 44px !important; height: 44px !important;
    }
    .woocommerce-cart table.shop_table td.product-name {
        font-size: 0.82rem !important;
    }
    .woocommerce-cart table.shop_table td.product-subtotal {
        font-size: 0.8rem !important;
        max-width: 110px !important;
    }
    .woocommerce-cart table.shop_table td.product-quantity .qty {
        width: 42px; min-height: 30px; font-size: 0.8rem;
    }

    /* Cart totals — full width */
    .woocommerce-cart .cart_totals th,
    .woocommerce-cart .cart_totals td { font-size: 0.82rem; padding: 0.55rem 0.6rem; }

    /* Cart CTA — min touch target */
    .woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
        min-height: 48px; font-size: 0.95rem;
    }

    /* Thank-you overview: 2 columns */
    .woocommerce-order .woocommerce-order-overview li {
        flex: 1 1 calc(50% - 0.25rem);
    }
    .woocommerce-order table.shop_table td,
    .woocommerce-order table.shop_table th {
        padding: 0.5rem 0.5rem; font-size: 0.78rem;
    }

    /* DM Suite ThankYou Enhancer */
    body.woocommerce-order .spty-thankyou {
        margin: 1rem 0.5rem 0;
    }
    body.woocommerce-order .spty-card {
        padding: 1.15rem;
    }

    /* Minicart — tighter */
    .widget_shopping_cart .mini_cart_item a:not(.remove) {
        font-size: 0.82rem;
    }
    .widget_shopping_cart .woocommerce-mini-cart__buttons a.button {
        min-height: 42px; font-size: 0.82rem;
    }
}


/* ═══════════════════════════════════════════
    16b. RESPONSIVE — Stress Test (≤ 320px)
    Extreme narrow devices (iPhone SE 1st gen, Galaxy Fold)
    ═══════════════════════════════════════════ */

@media (max-width: 320px) {
    /* Checkout shell — edge-to-edge */
    .sp-checkout-shell { width: calc(100% - 0.5rem); }
    .sp-panel { padding: 0.75rem; border-radius: 12px; }
    .sp-stepper__text { font-size: 0.58rem; }
    .sp-stepper__dot { width: 20px; height: 20px; font-size: 0.6rem; }
    .sp-stepper__bar { width: 14px; }

    /* Cart cards — minimal grid */
    .woocommerce-cart table.shop_table tbody tr:not(.actions) {
        grid-template-columns: 40px 1fr minmax(0, auto) !important;
        padding: 10px !important;
        border-radius: 12px;
    }
    .woocommerce-cart table.shop_table td.product-thumbnail img {
        width: 36px !important; height: 36px !important; border-radius: 8px;
    }
    .woocommerce-cart table.shop_table td.product-name {
        font-size: 0.78rem !important;
    }
    .woocommerce-cart table.shop_table td.product-subtotal {
        font-size: 0.75rem !important;
        max-width: 90px !important;
    }
    .woocommerce-cart table.shop_table td.product-quantity .qty {
        width: 36px; min-height: 28px; font-size: 0.75rem;
    }

    /* Cart totals */
    .woocommerce-cart .cart_totals th,
    .woocommerce-cart .cart_totals td { font-size: 0.78rem; padding: 0.45rem 0.5rem; }

    /* Checkout — fields */
    .sp-checkout .woocommerce-billing-fields .form-row,
    .sp-checkout .woocommerce-shipping-fields .form-row {
        margin-bottom: 0.5rem;
    }
    .sp-checkout .woocommerce-input-wrapper input,
    .sp-checkout .woocommerce-input-wrapper select {
        font-size: 16px !important; /* iOS zoom prevention — must be ≥ 16px */
        height: 40px;
    }

    /* Payment methods — ultra compact */
    .sp-checkout #payment ul.payment_methods li.wc_payment_method {
        padding: 0.55rem 0.6rem;
    }
    .sp-checkout #payment ul.payment_methods li.wc_payment_method label {
        font-size: 0.8rem;
    }
    .sp-checkout #payment ul.payment_methods li.wc_payment_method {
        min-height: 44px; /* Apple HIG minimum touch target */
    }
    .sp-checkout #payment div.payment_box {
        padding: 0.5rem; font-size: 0.78rem;
    }

    /* Thank-you — single column overview */
    .woocommerce-order .woocommerce-order-overview li {
        flex: 1 1 100%;
    }
    .woocommerce-order .woocommerce-thankyou-order-received {
        padding: 1.5rem 0.75rem; font-size: 0.9rem;
    }
    .woocommerce-order .woocommerce-thankyou-order-received::before {
        width: 40px; height: 40px; font-size: 1.2rem;
    }

    /* Sticky bar — compact */
    .spcux-sticky-total { font-size: 13px; }
    .spcux-sticky-btn { padding: 8px 10px; font-size: 0.8rem; min-height: 40px; }

    /* Minicart */
    .widget_shopping_cart .mini_cart_item a:not(.remove) {
        font-size: 0.78rem;
        max-width: calc(100% - 32px);
    }
}


/* ═══════════════════════════════════════════
   17. ANIMATIONS & REDUCED MOTION
   ═══════════════════════════════════════════ */

@keyframes spRiseFade {
    from { opacity: 0; transform: translateY(18px); }
    to   { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .sp-checkout #place_order,
    .sp-checkout #payment #place_order,
    .woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
    .woocommerce-cart .coupon .button,
    .woocommerce-cart button[name="update_cart"],
    .widget_shopping_cart .woocommerce-mini-cart__buttons a.button,
    .spty-cta,
    .spcux-sticky-btn,
    .spcux-loader-dot,
    .spcux-skeleton-target::after {
        transition: none !important;
        animation: none !important;
    }
}


/* ═══════════════════════════════════════════
   18. CHECKOUT — Panel Summary & Payment Hard-Fix
   1. Makes .sp-panel--summary properly contain all children
      (order review, payment, consents, CTA).
   2. Forces full-width on the entire Stripe/P24 rendering chain.
   3. Hides invoice block from right column (moved to billing via PHP).
   ═══════════════════════════════════════════ */

/* ─── Panel summary: proper containment ─── */
.sp-panel--summary {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    padding: 1.5rem !important;
    background: #fff !important;
    border: 1px solid rgba(122, 24, 55, 0.14) !important;
    border-radius: 22px !important;
}

/* All children inside panel must flow normally */
.sp-panel--summary #order_review,
.sp-panel--summary .woocommerce-checkout-review-order,
.sp-panel--summary #payment,
.sp-panel--summary .place-order {
    position: static !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    float: none !important;
    clear: both !important;
}

/* Hide invoice block from right column (it's rendered in left via PHP) */
.sp-panel--summary .spcux-invoice-block {
    display: none !important;
}

/* ─── Full chain: right col → sticky → panel → payment → UPE → iframe ─── */
.sp-checkout__right,
.sp-checkout__sticky,
#order_review,
#payment .wc_payment_methods,
#payment .wc_payment_method,
#payment .payment_box,
#wc-stripe-upe-form,
.wc-stripe-upe-element,
.StripeElement,
.__PrivateStripeElement {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

/* ─── Minimalist payment box — clean white, no panels ─── */
#payment,
#payment .payment_box,
#payment .wc-upe-form,
#wc-stripe-upe-form,
.wc-stripe-upe-element,
.StripeElement {
    background: #fff !important;
    border: 0 !important;
    box-shadow: none !important;
}
#payment {
    padding: 0 !important;
}
#payment .payment_box {
    padding: 0 !important;
    margin: 0 !important;
}
#payment .wc_payment_method {
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
}
/* Hide WC payment method labels — Stripe accordion renders its own */
#payment .wc_payment_method > label {
    display: none !important;
}
#wc-stripe-upe-form {
    display: block !important;
    padding: 0 !important;
}
/* Subtle border + radius on the Stripe element container */
.wc-stripe-upe-element {
    border: 1px solid rgba(32, 32, 32, 0.12) !important;
    border-radius: 14px !important;
    padding: 0 !important;
    background: #fff !important;
    overflow: hidden !important;
}
/* Payment description text */
#payment p {
    font-size: 14px !important;
    color: #6f6066 !important;
    margin: 0 0 12px !important;
}
.payment_box.payment_method_stripe {
    outline: none !important;
}
/* iframe full-width */
#payment iframe {
    width: 100% !important;
    min-width: 100% !important;
    max-width: none !important;
}

/* Desktop: give actual net room to Stripe — hardened 600px sidebar */
@media (min-width: 1024px) {
    .sp-checkout__grid {
        grid-template-columns: minmax(0, 1fr) minmax(600px, 660px) !important;
        gap: 3rem !important;
    }
    .sp-checkout__right {
        width: 100% !important;
        max-width: 660px !important;
    }
}

/* Tablet / mobile: stack columns */
@media (max-width: 1023px) {
    .sp-checkout__grid {
        grid-template-columns: 1fr !important;
    }
    .sp-checkout__right {
        max-width: 100% !important;
    }
}

/* ═══════════════════════════════════════════════════════════════════
   HIGH-END Order Summary — Custom cards (replaces WC table)
   ═══════════════════════════════════════════════════════════════════ */

/* Hide default WooCommerce table — our custom .sp-summary replaces it */
.woocommerce-checkout-review-order-table {
    display: none !important;
}

/* ─── Summary header ─────────────────────────────────────────────── */
.sp-summary-head {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    gap: 16px !important;
    margin-bottom: 18px !important;
}
.sp-edit-cart {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--sp-burgundy, #7a1837) !important;
    text-decoration: none !important;
}
.sp-edit-cart:hover {
    text-decoration: underline !important;
}

/* ─── Product list ───────────────────────────────────────────────── */
.sp-summary-list {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    margin: 0 0 18px !important;
}

/* Product item card — 3-column grid */
.sp-summary-item {
    display: grid !important;
    grid-template-columns: 64px minmax(0, 1fr) auto !important;
    gap: 14px !important;
    align-items: center !important;
    padding: 14px 0 !important;
    border-bottom: 1px solid rgba(35, 35, 40, .07) !important;
}

/* Thumbnail */
.sp-summary-item__image img {
    width: 64px !important;
    height: 64px !important;
    object-fit: cover !important;
    border-radius: 14px !important;
    background: #f8f3f5 !important;
    display: block !important;
}

/* Body: name + meta row */
.sp-summary-item__body {
    min-width: 0 !important;
}
.sp-summary-item__name {
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    color: #241b20 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}
.sp-summary-item__meta {
    margin-top: 5px !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    font-size: 12px !important;
    color: #7a6d73 !important;
}

/* Remove link — subtle, not aggressive */
.sp-cart-remove {
    font-size: 12px !important;
    font-weight: 600 !important;
    color: #8b6b75 !important;
    text-decoration: none !important;
    cursor: pointer !important;
}
.sp-cart-remove:hover {
    color: var(--sp-burgundy, #7a1837) !important;
    text-decoration: underline !important;
}

/* Price */
.sp-summary-item__price {
    white-space: nowrap !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #241b20 !important;
}

/* ─── Totals section ─────────────────────────────────────────────── */
.sp-summary-totals {
    margin-top: 12px !important;
    padding-top: 8px !important;
}
.sp-summary-row {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 16px !important;
    padding: 8px 0 !important;
    font-size: 14px !important;
    color: #5e5157 !important;
}
.sp-summary-row--total {
    margin-top: 8px !important;
    padding-top: 16px !important;
    border-top: 1px solid rgba(35, 35, 40, .10) !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    color: #241b20 !important;
}
.sp-summary-row--total .amount {
    color: var(--sp-burgundy, #7a1837) !important;
    font-size: 20px !important;
}
.sp-summary-tax {
    display: block !important;
    margin-top: 4px !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    color: #7c6d74 !important;
    text-align: right !important;
}

/* ═══════════════════════════════════════════════════════════════════
   3. UNIFIED CHECKBOX SYSTEM — all checkboxes same size/gap/font
   ═══════════════════════════════════════════════════════════════════ */
.sp-checkout input[type="checkbox"],
.sp-checkout .input-checkbox {
    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
    margin: 0 !important;
    accent-color: var(--sp-burgundy, #7a1837) !important;
}
.sp-checkout label.checkbox,
.sp-checkout .woocommerce-form__label-for-checkbox,
.sp-checkout .spcux-invoice-toggle label.checkbox,
.sp-checkout .spcux-invoice-toggle label,
.sp-checkout .woocommerce-terms-and-conditions-wrapper label.checkbox {
    display: inline-flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
    font-weight: 500 !important;
    color: #34272d !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    cursor: pointer !important;
}
.sp-checkout label.checkbox span,
.sp-checkout .woocommerce-form__label-for-checkbox span {
    line-height: 1.45 !important;
}

/* ═══════════════════════════════════════════════════════════════════
   4. UNIFIED SPACING — same margins between all checkout sections
   ═══════════════════════════════════════════════════════════════════ */
.spcux-invoice-block,
.woocommerce-shipping-fields,
.sp-checkout-consent,
.woocommerce-terms-and-conditions-wrapper {
    margin-top: 18px !important;
}
.spcux-invoice-toggle,
#ship-to-different-address,
.sp-consent-row,
.woocommerce-terms-and-conditions-wrapper .form-row {
    margin: 0 0 12px !important;
    padding: 0 !important;
}

/* ═══════════════════════════════════════════════════════════════════
   B2C-first Invoice Toggle
   ═══════════════════════════════════════════════════════════════════ */
.spcux-invoice-block {
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-top: 0 !important;
    box-shadow: none !important;
}
.spcux-invoice-title,
.spcux-invoice-note {
    display: none !important;
}

/* 2. Toggle — no border/box */
.spcux-invoice-toggle,
.spcux-invoice-toggle label,
.spcux-invoice-toggle .woocommerce-input-wrapper {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
}

/* 1. Hide "(opcjonalnie)" from expanded invoice fields */
.spcux-invoice-field .optional {
    display: none !important;
}

/* ─── 5. Invoice fields — compact premium layout ────────────────── */
/* The invoice fields (.spcux-invoice-field) are direct <p> children
   of .spcux-invoice-block — no wrapper div exists. We style them
   individually since the toggle + hidden fields make CSS grid on
   the parent unreliable. Instead: clean margins + side-by-side for
   postcode/city via existing form-row-first/form-row-last. */
.spcux-invoice-block .spcux-invoice-field.form-row {
    margin: 0 0 12px !important;
    padding: 0 !important;
}
.spcux-invoice-block .spcux-invoice-field label {
    font-size: 13px !important;
    line-height: 1.25 !important;
    margin-bottom: 6px !important;
    display: block !important;
}
.spcux-invoice-block .spcux-invoice-field input,
.spcux-invoice-block .spcux-invoice-field select {
    height: 42px !important;
    font-size: 14px !important;
}

/* Side-by-side: postcode + city */
.spcux-invoice-block .spcux-invoice-field.form-row-first {
    width: 48% !important;
    float: left !important;
    clear: left !important;
    margin-right: 4% !important;
}
.spcux-invoice-block .spcux-invoice-field.form-row-last {
    width: 48% !important;
    float: left !important;
    margin-right: 0 !important;
}
/* Clear after side-by-side pair */
.spcux-invoice-block .spcux-invoice-field.form-row-last + .spcux-invoice-field.form-row-wide {
    clear: both !important;
}

/* Individual invoice field rows — no extra margins when visible */
.spcux-invoice-block .spcux-invoice-field:not(.spcux-invoice-hidden) {
    margin-top: 0 !important;
}

/* 6. Fix label "Kod pocztowy" line break */
#sp_invoice_postcode_field label,
#sp_invoice_city_field label {
    white-space: nowrap !important;
}

@media (max-width: 640px) {
    .spcux-invoice-block .spcux-invoice-field.form-row-first,
    .spcux-invoice-block .spcux-invoice-field.form-row-last {
        width: 100% !important;
        float: none !important;
        margin-right: 0 !important;
    }
    .spcux-invoice-block .form-row {
        width: 100% !important;
        float: none !important;
    }
}


/* ═══════════════════════════════════════════════════════════════════
   Stripe / Payment Box Cleanup
   ═══════════════════════════════════════════════════════════════════ */
#payment fieldset:empty,
#payment fieldset:not(#wc-stripe-upe-form):empty {
    display: none !important;
}
#payment fieldset:not(#wc-stripe-upe-form) {
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}
#payment .woocommerce-SavedPaymentMethods-saveNew {
    margin-top: 14px !important;
    padding: 14px !important;
    border: 1px solid rgba(35, 35, 40, .08) !important;
    border-radius: 14px !important;
    background: #fff !important;
}
#payment .woocommerce-SavedPaymentMethods-saveNew label {
    font-size: 13px !important;
    line-height: 1.45 !important;
    color: #4e4248 !important;
}

/* ═══════════════════════════════════════════════════════════════════
   Checkout Compliance Checkboxes
   ═══════════════════════════════════════════════════════════════════ */
.sp-checkout-consent {
    padding: 0 !important;
}
.sp-consent-row label {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    cursor: pointer !important;
    line-height: 1.45 !important;
}
.sp-consent-row input[type="checkbox"] {
    flex-shrink: 0 !important;
    margin-top: 3px !important;
}
.sp-consent-text {
    font-size: 12px !important;
    color: var(--sp-ink-soft, #5a4f54) !important;
    line-height: 1.4 !important;
    font-weight: 400 !important;
}
.sp-consent-text abbr.required {
    color: var(--sp-burgundy, #7a1837) !important;
    text-decoration: none !important;
    margin-left: 2px !important;
}
.sp-consent-row--required .sp-consent-text {
    color: var(--sp-ink, #3d3538) !important;
}
.sp-consent-row--optional .sp-consent-text {
    color: var(--sp-ink-soft, #6f6066) !important;
}

/* Validation error state */
.sp-consent-row.woocommerce-invalid input[type="checkbox"] {
    outline: 2px solid #c44 !important;
    outline-offset: 1px !important;
}

/* ═══════════════════════════════════════════
   XX. THANK-YOU PAGE OVERRIDE
   ═══════════════════════════════════════════ */
.sp-thankyou { max-width: 800px; margin: 40px auto; padding: 0 16px; font-family: var(--sp-font-sans, sans-serif); }
.sp-thankyou-success { text-align: center; margin-bottom: 32px; }
.sp-thankyou-success svg { margin-bottom: 16px; }
.sp-thankyou-title { font-size: 28px; font-weight: 800; color: #111; line-height: 1.3; margin: 0; }
.sp-thankyou-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 24px; align-items: start; }
@media(max-width: 768px) { .sp-thankyou-grid { grid-template-columns: 1fr; } }
.sp-thankyou-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding: 0; margin: 0 0 24px; list-style: none; }
.sp-thankyou-tiles li { background: #fff; padding: 16px; border: 1px solid rgba(17,17,17,0.08); border-radius: 12px; font-size: 13px; color: #555; }
.sp-thankyou-tiles li strong { display: block; font-size: 15px; color: #111; margin-top: 4px; font-weight: 700; word-break: break-word; }
.sp-address-card { background: #fff; padding: 24px; border: 1px solid rgba(17,17,17,0.08); border-radius: 12px; }
.sp-address-card h3 { font-size: 16px; margin: 0 0 12px; color: #111; }
.sp-address-card address { font-style: normal; font-size: 14px; color: #444; line-height: 1.5; }
.sp-consent-text { font-size: 12px !important; line-height: 1.4 !important; font-weight: 400 !important; }
