/* /assets/css/woo-overrides.css */

/* USE WooCommerce's native grid system - DON'T override it */

/* Only fix container issues, not the grid itself */
#primary,
#main,
.content-area,
.site-main {
  overflow: visible !important;
  width: 100% !important;
}

/* Remove any conflicting margins/padding */
.woocommerce ul.products {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.woocommerce li.product {
  margin: 0 !important;
  padding: 0 !important;
}

/* Allow WooCommerce's native grid layout to work */
/* Don't override display property - let WooCommerce handle it */

/* ========================================
   CLASSIC CHECKOUT PAGE LAYOUT FIX
   ======================================== */

/* Force checkout to be centered and properly contained */
.woocommerce-checkout .woocommerce,
.woocommerce-checkout .woocommerce-notices-wrapper,
.woocommerce-checkout form.checkout {
    max-width: 960px !important;
    width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    float: none !important;
    clear: both !important;
}

/* Override max-width for payment step — needs wider grid */
body.cfl-step-payment.woocommerce-checkout form.checkout {
    max-width: 1100px !important;
}

/* Fix the two-column layout */
.woocommerce-checkout .col2-set {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.25rem !important;
    width: 100% !important;
    max-width: 880px !important;
    margin: 0 auto 1.5rem auto !important;
    padding: 0 !important;
}

.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

@media (max-width: 768px) {
    .woocommerce-checkout .col2-set {
        grid-template-columns: 1fr !important;
        gap: 1.5rem !important;
    }
}

/* Fix order review section */
.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review {
    width: 100% !important;
    max-width: 960px !important;
    float: none !important;
    clear: both !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Desktop grid only when NOT in multi-step mode */
@media (min-width: 1024px) {
    body.woocommerce-checkout:not(.cfl-step-details):not(.cfl-step-payment) .woocommerce,
    body.woocommerce-checkout:not(.cfl-step-details):not(.cfl-step-payment) form.checkout,
    body.woocommerce-checkout:not(.cfl-step-details):not(.cfl-step-payment) #customer_details,
    body.woocommerce-checkout:not(.cfl-step-details):not(.cfl-step-payment) #order_review,
    body.woocommerce-checkout:not(.cfl-step-details):not(.cfl-step-payment) #order_review_heading {
        max-width: 1200px !important;
    }

    body.woocommerce-checkout:not(.cfl-step-details):not(.cfl-step-payment) form.checkout {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) minmax(320px, 420px) !important;
        gap: 2rem !important;
        align-items: start !important;
    }

    body.woocommerce-checkout:not(.cfl-step-details):not(.cfl-step-payment) #customer_details {
        grid-column: 1 / 2 !important;
    }

    body.woocommerce-checkout:not(.cfl-step-details):not(.cfl-step-payment) #order_review_heading,
    body.woocommerce-checkout:not(.cfl-step-details):not(.cfl-step-payment) .cfl-order-summary {
        grid-column: 2 / 3 !important;
    }

    body.woocommerce-checkout:not(.cfl-step-details):not(.cfl-step-payment) .cfl-order-summary {
        position: sticky !important;
        top: 110px !important;
    }

    body.woocommerce-checkout:not(.cfl-step-details):not(.cfl-step-payment) .col2-set {
        max-width: 100% !important;
        margin: 0 0 1.25rem 0 !important;
    }
}

/* Ensure content doesn't overflow */
.cyclefix-checkout-wrapper {
    overflow-x: hidden !important;
}

.cyclefix-checkout-wrapper * {
    box-sizing: border-box !important;
}

/* Stripe/Saved payment methods alignment */
.woocommerce-checkout .woocommerce-SavedPaymentMethods,
.woocommerce-checkout .woocommerce-SavedPaymentMethods-new,
.woocommerce-checkout .wc-saved-payment-methods {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.woocommerce-checkout .woocommerce-SavedPaymentMethods li,
.woocommerce-checkout .woocommerce-SavedPaymentMethods-new li,
.woocommerce-checkout .wc-saved-payment-methods li {
    display: flex !important;
    align-items: center !important;
    gap: 0.6rem !important;
    margin: 0.5rem 0 !important;
    padding: 0 !important;
}

.woocommerce-checkout .woocommerce-SavedPaymentMethods label,
.woocommerce-checkout .woocommerce-SavedPaymentMethods-new label,
.woocommerce-checkout .wc-saved-payment-methods label {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.6rem !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    font-weight: 700 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-size: 0.85rem !important;
}

.woocommerce-checkout .woocommerce-SavedPaymentMethods input[type="radio"],
.woocommerce-checkout .woocommerce-SavedPaymentMethods input[type="checkbox"],
.woocommerce-checkout .woocommerce-SavedPaymentMethods-new input[type="radio"],
.woocommerce-checkout .woocommerce-SavedPaymentMethods-new input[type="checkbox"] {
    margin: 0 !important;
    flex-shrink: 0 !important;
}

.woocommerce-checkout .wc-stripe-new-payment-method {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
}

.woocommerce-checkout .wc-stripe-new-payment-method .form-row {
    display: flex !important;
    align-items: center !important;
    gap: 0.6rem !important;
    margin: 0.5rem 0 !important;
}

.woocommerce-checkout .wc-stripe-new-payment-method label {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.6rem !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    font-weight: 700 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-size: 0.85rem !important;
}

.woocommerce-checkout .wc-stripe-new-payment-method input[type="radio"],
.woocommerce-checkout .wc-stripe-new-payment-method input[type="checkbox"] {
    margin: 0 !important;
    flex-shrink: 0 !important;
}

.woocommerce-checkout .wc-stripe-save-source,
.woocommerce-checkout .woocommerce-SavedPaymentMethods-saveNew {
    display: flex !important;
    align-items: center !important;
    gap: 0.6rem !important;
}

.woocommerce-checkout .wc-stripe-save-source label,
.woocommerce-checkout .woocommerce-SavedPaymentMethods-saveNew label {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.6rem !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-size: 0.85rem !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
}

.woocommerce-checkout .wc-stripe-save-source input[type="checkbox"],
.woocommerce-checkout .woocommerce-SavedPaymentMethods-saveNew input[type="checkbox"] {
    margin: 0 !important;
    flex-shrink: 0 !important;
}

/* Hide Stripe "save payment info" row */
.woocommerce-checkout .wc-stripe-save-source,
.woocommerce-checkout .woocommerce-SavedPaymentMethods-saveNew,
.woocommerce-checkout p.woocommerce-SavedPaymentMethods-saveNew {
    display: none !important;
}

/* Hide the default coupon toggle notice (we show the form directly) */
.woocommerce-checkout .woocommerce-form-coupon-toggle,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
    display: none !important;
}

/* Coupon input + button aligned and themed */
.woocommerce-checkout form.checkout_coupon {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 0.75rem !important;
    align-items: center !important;
    background: #f0f9ff !important;
    border: 2px solid #009FE3 !important;
    border-radius: 1rem !important;
    padding: 1rem !important;
}

.woocommerce-checkout form.checkout_coupon .form-row-first,
.woocommerce-checkout form.checkout_coupon .form-row-last {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
}

.woocommerce-checkout form.checkout_coupon .form-row-first {
    grid-column: 1 / 2 !important;
}

.woocommerce-checkout form.checkout_coupon .form-row-last {
    grid-column: 2 / 3 !important;
}

.woocommerce-checkout form.checkout_coupon .clear {
    display: none !important;
}

.woocommerce-checkout form.checkout_coupon input[type="text"] {
    width: 100% !important;
    border: 2px solid #009FE3 !important;
    border-radius: 999px !important;
    padding: 0.85rem 1.1rem !important;
}

.woocommerce-checkout form.checkout_coupon button {
    background: linear-gradient(135deg, #009FE3 0%, #0077b3 100%) !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 999px !important;
    padding: 0.85rem 1.5rem !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    box-shadow: 0 4px 12px rgba(0, 159, 227, 0.3) !important;
    white-space: nowrap !important;
    line-height: 1 !important;
}

.woocommerce-checkout form.checkout_coupon button:hover {
    background: linear-gradient(135deg, #0B1120 0%, #1e293b 100%) !important;
}

@media (max-width: 640px) {
    .woocommerce-checkout form.checkout_coupon {
        grid-template-columns: 1fr !important;
    }
    .woocommerce-checkout form.checkout_coupon .form-row-last {
        grid-column: 1 / -1 !important;
    }
}

/* Stripe express buttons inside card section */
/* Hide express buttons at top of checkout - BUT NOT on payment step */
body.woocommerce-checkout:not(.cfl-step-payment) #wc-stripe-payment-request-wrapper,
body.woocommerce-checkout:not(.cfl-step-payment) .wc-stripe-payment-request-wrapper,
body.woocommerce-checkout:not(.cfl-step-payment) .wc-stripe-express-checkout-wrapper,
body.woocommerce-checkout:not(.cfl-step-payment) #wc-stripe-express-checkout-element {
    display: none !important;
}

/* Show express buttons inside Stripe card method */
body.woocommerce-checkout .payment_method_stripe #wc-stripe-payment-request-wrapper,
body.woocommerce-checkout .payment_method_stripe .wc-stripe-payment-request-wrapper,
body.woocommerce-checkout .payment_method_stripe .wc-stripe-express-checkout-wrapper,
body.woocommerce-checkout .payment_method_stripe #wc-stripe-express-checkout-element,
body.woocommerce-checkout .cfl-stripe-express-slot #wc-stripe-payment-request-wrapper,
body.woocommerce-checkout .cfl-stripe-express-slot .wc-stripe-payment-request-wrapper,
body.woocommerce-checkout .cfl-stripe-express-slot .wc-stripe-express-checkout-wrapper,
body.woocommerce-checkout .cfl-stripe-express-slot #wc-stripe-express-checkout-element {
    display: block !important;
}

.woocommerce-checkout .cfl-stripe-express-slot {
    margin-top: 0.75rem !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0.6rem !important;
}

.woocommerce-checkout #wc-stripe-payment-request-wrapper .payment-request-button,
.woocommerce-checkout .wc-stripe-payment-request-wrapper .payment-request-button {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    border: 2px solid #e5e7eb !important;
    border-radius: 0.75rem !important;
    background: #ffffff !important;
    overflow: hidden !important;
}

.woocommerce-checkout .wc-stripe-payment-request-button-separator,
.woocommerce-checkout .payment-request-button-separator {
    display: none !important;
}

/* Additional information accordion */
.woocommerce-checkout .cfl-additional-details {
    border: 2px solid #e5e7eb;
    border-radius: 1rem;
    background: #ffffff;
    padding: 0.5rem 0.75rem;
}

.woocommerce-checkout .cfl-additional-details summary {
    cursor: pointer;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 0.75rem;
    color: #0B1120;
    list-style: none;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 0.4rem;
}

.woocommerce-checkout .cfl-additional-details summary::-webkit-details-marker {
    display: none;
}

.woocommerce-checkout .cfl-additional-details summary::after {
    content: '▾';
    margin-left: auto;
    font-size: 0.85rem;
    color: #009FE3;
    transition: transform 0.2s ease;
}

.woocommerce-checkout .cfl-additional-details[open] summary::after {
    transform: rotate(180deg);
}

.woocommerce-checkout .cfl-additional-content {
    padding: 0.5rem 0.5rem 0.75rem;
}

/* Order summary accordion */
.woocommerce-checkout .cfl-order-summary {
    background: #fff;
    border: 2px solid #e5e7eb;
    border-radius: 1rem;
    padding: 0.5rem;
}

.woocommerce-checkout .cfl-order-summary__summary {
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.75rem;
    padding: 0.75rem 0.75rem;
    list-style: none;
}

.woocommerce-checkout .cfl-order-summary__summary::-webkit-details-marker {
    display: none;
}

.woocommerce-checkout .cfl-order-summary__summary::after {
    content: '▾';
    margin-left: 0.5rem;
    color: #009FE3;
    transition: transform 0.2s ease;
}

.woocommerce-checkout .cfl-order-summary[open] .cfl-order-summary__summary::after {
    transform: rotate(180deg);
}

.woocommerce-checkout .cfl-order-summary__total {
    font-weight: 900;
    color: #009FE3;
}

@media (min-width: 1024px) {
    .woocommerce-checkout .cfl-order-summary__summary::after {
        display: none;
    }
}

/* PAYMENT STEP: Strip accordion wrapper — remove the grey box header */
body.cfl-step-payment .cfl-order-summary {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
}

body.cfl-step-payment .cfl-order-summary__summary {
    display: none !important;
}

/* Reduce vertical density for faster checkout */
body.woocommerce-checkout .form-row {
    margin-bottom: 0.75rem !important;
}

body.woocommerce-checkout label {
    margin-bottom: 0.35rem !important;
    font-size: 0.68rem !important;
    letter-spacing: 0.08em !important;
}

body.woocommerce-checkout input[type="text"],
body.woocommerce-checkout input[type="email"],
body.woocommerce-checkout input[type="tel"],
body.woocommerce-checkout input[type="password"],
body.woocommerce-checkout input[type="number"],
body.woocommerce-checkout select,
body.woocommerce-checkout textarea,
body.woocommerce-checkout .select2-container--default .select2-selection--single {
    padding: 0.75rem 0.9rem !important;
}

/* Remove custom alt payment buttons if present */
.woocommerce-checkout .cyclefix-alt-payments {
    display: none !important;
}

.woocommerce-checkout #payment .payment_box,
.woocommerce-checkout .woocommerce-checkout-payment .payment_box,
.woocommerce-checkout .wc_payment_method .payment_box {
    background: #ffffff !important;
    border-top-color: #e5e7eb !important;
    box-shadow: none !important;
}

.woocommerce-checkout #wc-stripe-cc-form {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
}

/* ========================================
   SERVICE FINDER - EQUAL HEIGHT CARDS
   ======================================== */

/* Force grid layout for equal heights */
.sf-results-grid.visible {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 4px !important;
    align-items: stretch !important;
    justify-content: center !important;
}

/* Force package cards to stretch to full height */
.sf-results-grid > .package-card,
.sf-results-grid.visible > .package-card {
    display: flex !important;
    flex-direction: column !important;
    align-self: stretch !important;
}

/* Push button to bottom */
.sf-results-grid .package-card .package-item-list,
.sf-results-grid.visible .package-card .package-item-list {
    flex: 1 1 auto !important;
}

.sf-results-grid .package-card .btn-select-package,
.sf-results-grid.visible .package-card .btn-select-package {
    margin-top: auto !important;
}

/* Checkout typography */
body.woocommerce-checkout {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
    color: #0B1120 !important;
}

/* Payment method list bullets align */
.woocommerce-checkout .wc_payment_methods,
.woocommerce-checkout .wc_payment_methods ul,
.woocommerce-checkout .woocommerce-SavedPaymentMethods,
.woocommerce-checkout .woocommerce-SavedPaymentMethods-new,
.woocommerce-checkout .wc-saved-payment-methods {
    list-style: none !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
}

.woocommerce-checkout .wc_payment_methods li::marker,
.woocommerce-checkout .woocommerce-SavedPaymentMethods li::marker,
.woocommerce-checkout .wc-saved-payment-methods li::marker {
    content: '' !important;
}

/* Force centered classic checkout (only when NOT in multi-step mode) */
body.woocommerce-checkout:not(.cfl-step-details):not(.cfl-step-payment) .woocommerce-main .container,
body.woocommerce-checkout:not(.cfl-step-details):not(.cfl-step-payment) .cyclefix-checkout-wrapper,
body.woocommerce-checkout:not(.cfl-step-details):not(.cfl-step-payment) .woocommerce-checkout-content,
body.woocommerce-checkout:not(.cfl-step-details):not(.cfl-step-payment) form.checkout,
body.woocommerce-checkout:not(.cfl-step-details):not(.cfl-step-payment) #customer_details,
body.woocommerce-checkout:not(.cfl-step-details):not(.cfl-step-payment) #order_review,
body.woocommerce-checkout:not(.cfl-step-details):not(.cfl-step-payment) #order_review_heading {
    max-width: 880px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    float: none !important;
    display: block !important;
}

/* ========================================
   MULTI-STEP CHECKOUT - STEP INDICATOR
   ======================================== */
.cfl-step-indicator {
    background: #fff;
    border-bottom: 2px solid #e5e7eb;
    padding: 1.25rem 0;
}

.cfl-steps {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    max-width: 500px;
    margin: 0 auto;
}

.cfl-step {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    opacity: 0.35;
    transition: opacity 0.3s ease;
    text-decoration: none;
    cursor: default;
}

a.cfl-step {
    cursor: pointer;
    text-decoration: none;
}

a.cfl-step:hover {
    opacity: 0.7;
}

.cfl-step.is-active,
.cfl-step.is-completed {
    opacity: 1;
}

.cfl-step-number {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #e5e7eb;
    color: #6b7280;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 0.8rem;
    font-family: 'Montserrat', sans-serif;
    transition: all 0.3s ease;
    flex-shrink: 0;
}

.cfl-step.is-active .cfl-step-number {
    background: #009FE3;
    color: #fff;
    box-shadow: 0 4px 14px rgba(0, 159, 227, 0.35);
}

.cfl-step.is-completed .cfl-step-number {
    background: #10b981;
    color: #fff;
    box-shadow: 0 4px 14px rgba(16, 185, 129, 0.3);
}

.cfl-step-label {
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #0B1120;
    font-family: 'Inter', sans-serif;
}

.cfl-step-connector {
    flex: 1;
    height: 2px;
    background: #e5e7eb;
    margin: 0 1rem;
    min-width: 40px;
    transition: background 0.3s ease;
}

.cfl-step-connector.is-completed {
    background: #10b981;
}

/* ========================================
   MULTI-STEP CHECKOUT - LAYOUT
   ======================================== */

/* Multi-step wrapper */
.cfl-checkout-multistep {
    max-width: 1200px;
    margin: 0 auto;
}

/* Continue to Payment button */
#cfl-continue-to-payment {
    display: block;
    width: 100%;
    max-width: 640px;
    margin: 2rem auto 0;
    padding: 1.25rem 2rem;
    background: #009FE3;
    color: #fff;
    border: none;
    border-radius: 0.75rem;
    font-weight: 900;
    font-size: 0.9rem;
    font-family: 'Inter', sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    cursor: pointer;
    transition: all 0.2s ease;
    box-shadow: 0 4px 14px rgba(0, 159, 227, 0.25);
}

/* Ensure button stays below form on details step */
body.cfl-step-details #cfl-continue-to-payment {
    display: block !important;
    max-width: 640px !important;
    margin: 2rem auto 0 !important;
}

#cfl-continue-to-payment:hover {
    background: #00d4ff;
    box-shadow: 0 8px 24px rgba(0, 159, 227, 0.35);
    transform: translateY(-1px);
}

#cfl-continue-to-payment:active {
    transform: translateY(0);
}

/* Back link - Bubble/Pill format */
.cfl-back-link {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    color: #fff !important;
    background: #009FE3 !important;
    padding: 0.75rem 1.5rem !important;
    border-radius: 50px !important;
    font-weight: 700 !important;
    font-size: 0.85rem !important;
    text-decoration: none !important;
    transition: all 0.2s ease !important;
    box-shadow: 0 2px 8px rgba(0, 159, 227, 0.2) !important;
}

.cfl-back-link:hover {
    background: #00d4ff !important;
    color: #fff !important;
    box-shadow: 0 4px 12px rgba(0, 159, 227, 0.3) !important;
    transform: translateY(-1px) !important;
}

/* Hide back link on payment step */
body.cfl-step-payment .cfl-back-link {
    display: none !important;
}

/* ========================================
   MULTI-STEP: OVERRIDE LAYOUT WHEN ACTIVE
   ======================================== */

/* DETAILS STEP: Single column, centered layout */
body.cfl-step-details form.checkout {
    display: block !important;
    max-width: 640px !important;
    margin: 0 auto !important;
}

/* PAYMENT STEP: layout is handled by the HARD OVERRIDE section below */

/* ---- DETAILS STEP: show billing, hide payment/order ---- */

/* Hide everything payment-related */
body.cfl-step-details #payment,
body.cfl-step-details #order_review,
body.cfl-step-details #order_review_heading,
body.cfl-step-details .cfl-order-summary,
body.cfl-step-details .woocommerce-checkout-review-order,
body.cfl-step-details .woocommerce-checkout-payment,
body.cfl-step-details .wc_payment_methods,
body.cfl-step-details #place_order,
body.cfl-step-details .woocommerce-terms-and-conditions-wrapper {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Show customer details */
body.cfl-step-details #customer_details {
    display: block !important;
    visibility: visible !important;
    height: auto !important;
    overflow: visible !important;
}

/* ---- PAYMENT STEP: hide billing, show payment ---- */

/* Hide customer details and the continue button */
body.cfl-step-payment #customer_details,
body.cfl-step-payment #cfl-continue-to-payment {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Show order review and payment */
body.cfl-step-payment #order_review {
    /* display handled by GRID SINGLE SOURCE OF TRUTH section */
    visibility: visible !important;
    height: auto !important;
    overflow: visible !important;
}

body.cfl-step-payment #order_review_heading,
body.cfl-step-payment .cfl-order-summary,
body.cfl-step-payment .woocommerce-checkout-review-order {
    display: block !important;
    visibility: visible !important;
    height: auto !important;
    overflow: visible !important;
}

/* Hide the separate order_review_heading */
body.cfl-step-payment #order_review_heading {
    display: none !important;
}

/* Payment step visibility - moved to HARD OVERRIDE section below */
body.cfl-step-payment .woocommerce-checkout-payment,
body.cfl-step-payment .wc_payment_methods,
body.cfl-step-payment #place_order,
body.cfl-step-payment .woocommerce-terms-and-conditions-wrapper {
    display: block !important;
    visibility: visible !important;
    height: auto !important;
    overflow: visible !important;
}

/* ========================================
   PAYMENT METHOD CARDS
   ======================================== */
body.woocommerce-checkout.cfl-step-payment .wc_payment_methods,
body.woocommerce-checkout:not(.cfl-step-details):not(.cfl-step-payment) .wc_payment_methods {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0.75rem !important;
    padding: 0 !important;
    margin: 0 0 1.5rem !important;
    list-style: none !important;
}

body.woocommerce-checkout .wc_payment_methods .wc_payment_method {
    border: 2px solid #e5e7eb !important;
    border-radius: 1rem !important;
    padding: 1.25rem !important;
    transition: all 0.2s ease !important;
    cursor: pointer !important;
    background: #fff !important;
    list-style: none !important;
    margin: 0 !important;
}

body.woocommerce-checkout .wc_payment_methods .wc_payment_method:hover {
    border-color: #009FE3 !important;
    box-shadow: 0 2px 8px rgba(0, 159, 227, 0.1) !important;
}

body.woocommerce-checkout .wc_payment_methods .wc_payment_method.cfl-selected {
    border-color: #009FE3 !important;
    background: #f0f9ff !important;
    box-shadow: 0 0 0 1px #009FE3, 0 4px 12px rgba(0, 159, 227, 0.15) !important;
}

body.woocommerce-checkout .wc_payment_methods .wc_payment_method > label {
    display: flex !important;
    align-items: center !important;
    gap: 0.75rem !important;
    font-weight: 800 !important;
    font-size: 0.85rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    cursor: pointer !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

/* CSS fallback: hide "Stripe" text and replace with "Credit / Debit Card" */
body.woocommerce-checkout .wc_payment_methods .payment_method_stripe > label {
    font-size: 0 !important;
}
body.woocommerce-checkout .wc_payment_methods .payment_method_stripe > label::after {
    content: 'Credit / Debit Card' !important;
    font-size: 0.85rem !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
}
body.woocommerce-checkout .wc_payment_methods .payment_method_stripe > label input[type="radio"] {
    font-size: initial !important;
}

body.woocommerce-checkout .wc_payment_methods .wc_payment_method input[type="radio"] {
    accent-color: #009FE3 !important;
    width: 18px !important;
    height: 18px !important;
    flex-shrink: 0 !important;
}

body.woocommerce-checkout .wc_payment_methods .wc_payment_method .payment_box {
    margin-top: 1rem !important;
    padding-top: 1rem !important;
    border-top: 1px solid #e5e7eb !important;
    background: transparent !important;
    box-shadow: none !important;
}

/* Place Order button styling (only visible on payment step) */
body.woocommerce-checkout.cfl-step-payment #place_order {
    display: block !important;
    width: 100% !important;
    padding: 1.25rem 2rem !important;
    background: #009FE3 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 0.75rem !important;
    font-weight: 900 !important;
    font-size: 0.9rem !important;
    font-family: 'Inter', sans-serif !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    box-shadow: 0 4px 14px rgba(0, 159, 227, 0.25) !important;
    margin-top: 1rem !important;
}

body.woocommerce-checkout.cfl-step-payment #place_order:hover {
    background: #00d4ff !important;
    box-shadow: 0 8px 24px rgba(0, 159, 227, 0.35) !important;
    transform: translateY(-1px) !important;
}

/* Fallback for non-multi-step checkout */
body.woocommerce-checkout:not(.cfl-step-details):not(.cfl-step-payment) #place_order {
    display: block !important;
    width: 100% !important;
    padding: 1.25rem 2rem !important;
    background: #009FE3 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 0.75rem !important;
    font-weight: 900 !important;
    font-size: 0.9rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    cursor: pointer !important;
}

/* ========================================
   COMPACT BILLING FORM (DETAILS STEP)
   ======================================== */

/* Tighter form spacing */
body.cfl-step-details .form-row {
    margin-bottom: 0.35rem !important;
    padding: 0 !important;
}

body.cfl-step-details label {
    margin-bottom: 0.15rem !important;
    font-size: 0.65rem !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    color: #6b7280 !important;
}

body.cfl-step-details input[type="text"],
body.cfl-step-details input[type="email"],
body.cfl-step-details input[type="tel"],
body.cfl-step-details input[type="password"],
body.cfl-step-details input[type="number"],
body.cfl-step-details select,
body.cfl-step-details textarea,
body.cfl-step-details .select2-container--default .select2-selection--single {
    padding: 0.55rem 0.75rem !important;
    font-size: 0.85rem !important;
    border: 2px solid #e5e7eb !important;
    border-radius: 0.5rem !important;
    transition: border-color 0.2s !important;
}

body.cfl-step-details .select2-container--default .select2-selection--single {
    height: auto !important;
    min-height: 38px !important;
}

body.cfl-step-details .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 1.4 !important;
    padding: 0 !important;
}

body.cfl-step-details input:focus,
body.cfl-step-details select:focus,
body.cfl-step-details textarea:focus {
    border-color: #009FE3 !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(0, 159, 227, 0.1) !important;
}

/* Single column col2-set, no extra spacing */
body.cfl-step-details .col2-set {
    display: block !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.cfl-step-details .col2-set .col-1,
body.cfl-step-details .col2-set .col-2 {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Make billing fields use two columns where appropriate */
body.cfl-step-details .woocommerce-billing-fields__field-wrapper {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0.5rem 0.75rem !important;
}

/* Full-width fields */
body.cfl-step-details .woocommerce-billing-fields__field-wrapper .form-row-wide {
    grid-column: 1 / -1 !important;
}

/* Email: full width, first row */
body.cfl-step-details #billing_email_field {
    grid-column: 1 / -1 !important;
    order: -10 !important;
}

/* First/last name side by side, equal width, second row */
body.cfl-step-details #billing_first_name_field {
    grid-column: 1 / 2 !important;
    order: -9 !important;
    width: 100% !important;
}

body.cfl-step-details #billing_last_name_field {
    grid-column: 2 / 3 !important;
    order: -8 !important;
    width: 100% !important;
}

/* Ensure inputs inside name fields take full width */
body.cfl-step-details #billing_first_name_field input,
body.cfl-step-details #billing_last_name_field input {
    width: 100% !important;
    box-sizing: border-box !important;
}

/* Phone full width after name */
body.cfl-step-details #billing_phone_field {
    grid-column: 1 / -1 !important;
    order: -7 !important;
}

/* Postcode and city side by side */
body.cfl-step-details #billing_postcode_field {
    grid-column: 1 / 2 !important;
    order: -6 !important;
}

body.cfl-step-details #billing_city_field {
    grid-column: 2 / 3 !important;
    order: -5 !important;
}

/* Address fields full width */
body.cfl-step-details #billing_address_1_field,
body.cfl-step-details #billing_address_2_field {
    grid-column: 1 / -1 !important;
    order: -4 !important;
}

/* Country full width */
body.cfl-step-details #billing_country_field {
    grid-column: 1 / -1 !important;
    order: -3 !important;
}

/* State/county */
body.cfl-step-details #billing_state_field {
    grid-column: 1 / -1 !important;
    order: -2 !important;
}

/* Company (if shown) full width at end */
body.cfl-step-details #billing_company_field {
    grid-column: 1 / -1 !important;
    order: 10 !important;
}

/* Section headings */
body.cfl-step-details h3,
body.cfl-step-details .woocommerce-billing-fields h3 {
    font-size: 0.8rem !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    color: #0B1120 !important;
    margin: 0.75rem 0 0.5rem !important;
    padding-bottom: 0.4rem !important;
    border-bottom: 2px solid #e5e7eb !important;
}

/* Hide "Ship to different address" entirely */
#ship-to-different-address,
body.cfl-step-details #ship-to-different-address,
body.cfl-step-payment #ship-to-different-address,
.woocommerce-shipping-fields #ship-to-different-address,
.shipping_address,
body.cfl-step-details .col2-set .col-2 .shipping_address,
.woocommerce-shipping-fields {
    display: none !important;
}

/* Email validation indicator — removed, using WooCommerce native validation */
/* Hide any leftover .cfl-email-status elements */
.cfl-email-status {
    display: none !important;
}

/* Postcode finder - removed */

/* Hide Additional Information entirely on Details step */
body.cfl-step-details .woocommerce-additional-fields {
    display: none !important;
}

/* Hide coupon form toggle, login toggle, and notices on checkout (coupon is on cart page) */
body.cfl-step-details .woocommerce-form-coupon-toggle,
body.cfl-step-details form.checkout_coupon,
body.cfl-step-payment .woocommerce-form-coupon-toggle,
body.cfl-step-payment form.checkout_coupon,
body.cfl-step-details .woocommerce-form-login-toggle,
body.cfl-step-details form.woocommerce-form-login,
body.cfl-step-payment .woocommerce-form-login-toggle,
body.cfl-step-payment form.woocommerce-form-login,
body.cfl-step-details .woocommerce-info,
body.cfl-step-payment .woocommerce-info {
    display: none !important;
}

/* ========================================
   COMPACT PAYMENT FORM (PAYMENT STEP)
   ======================================== */

/* Order review table heading hidden - "Order Summary" heading added via ::before in HARD OVERRIDE */
body.cfl-step-payment .woocommerce-checkout-review-order-table thead {
    display: none !important;
}

/* Payment heading */
body.cfl-step-payment #order_review_heading {
    font-size: 0.85rem !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    margin-bottom: 1rem !important;
    padding-bottom: 0.5rem !important;
    border-bottom: 2px solid #e5e7eb !important;
}

/* Payment methods list - clean styling */
body.cfl-step-payment .wc_payment_methods {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 0 1rem !important;
}

body.cfl-step-payment .wc_payment_method {
    background: #f8fafc !important;
    border: 2px solid #e5e7eb !important;
    border-radius: 0.75rem !important;
    margin-bottom: 0.5rem !important;
    overflow: hidden !important;
}

body.cfl-step-payment .wc_payment_method.cfl-selected,
body.cfl-step-payment .wc_payment_method:has(input:checked) {
    border-color: #009FE3 !important;
    background: #f0f9ff !important;
}

body.cfl-step-payment .wc_payment_method > label {
    padding: 0.875rem 1rem !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.75rem !important;
    font-weight: 700 !important;
    font-size: 0.85rem !important;
}

body.cfl-step-payment .wc_payment_method .payment_box {
    padding: 1rem !important;
    border-top: 1px solid #e5e7eb !important;
    background: #fff !important;
}

/* ========================================
   APPLE PAY / GOOGLE PAY EXPRESS BUTTONS
   ======================================== */

/* Ensure express checkout wrapper is visible on payment step - OVERRIDE the global hide */
body.cfl-step-payment #wc-stripe-payment-request-wrapper,
body.cfl-step-payment .wc-stripe-payment-request-wrapper,
body.cfl-step-payment .wc-stripe-express-checkout-wrapper,
body.cfl-step-payment #wc-stripe-express-checkout-element,
body.cfl-step-payment #payment #wc-stripe-payment-request-wrapper,
body.cfl-step-payment #payment .wc-stripe-payment-request-wrapper,
body.cfl-step-payment .payment_method_stripe #wc-stripe-payment-request-wrapper,
body.cfl-step-payment .payment_method_stripe .wc-stripe-express-checkout-wrapper {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    margin-bottom: 1.5rem !important;
    order: -1 !important; /* Move to top of payment box */
}

/* Style the express buttons container - prominent placement */
body.cfl-step-payment .wc-stripe-payment-request-wrapper,
body.cfl-step-payment #wc-stripe-payment-request-wrapper,
body.cfl-step-payment .wc-stripe-express-checkout-wrapper {
    background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%) !important;
    border: 2px solid #009FE3 !important;
    border-radius: 0.75rem !important;
    padding: 1.25rem !important;
    text-align: center !important;
}

/* Add heading for express checkout */
body.cfl-step-payment .wc-stripe-payment-request-wrapper::before,
body.cfl-step-payment #wc-stripe-payment-request-wrapper::before {
    content: 'Express Checkout' !important;
    display: block !important;
    font-size: 0.75rem !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    color: #0B1120 !important;
    margin-bottom: 0.75rem !important;
}

/* Express buttons styling */
body.cfl-step-payment .gpay-button,
body.cfl-step-payment .apple-pay-button,
body.cfl-step-payment #wc-stripe-payment-request-button,
body.cfl-step-payment .StripeElement--payment-request-button {
    min-height: 48px !important;
    border-radius: 0.5rem !important;
    display: block !important;
    width: 100% !important;
}

/* Hide Stripe Link completely */
body.cfl-step-payment .wc-stripe-link-payment-method,
body.cfl-step-payment #wc-stripe-link-button-wrapper,
body.cfl-step-payment [class*="stripe-link"],
body.cfl-step-details .wc-stripe-link-payment-method,
body.cfl-step-details #wc-stripe-link-button-wrapper {
    display: none !important;
}

/* Hide save payment checkbox */
body.cfl-step-payment .wc-stripe-save-source,
body.cfl-step-payment #wc-stripe-new-payment-method,
body.cfl-step-payment .woocommerce-SavedPaymentMethods-saveNew,
body.cfl-step-payment p:has(#wc-stripe-new-payment-method),
body.cfl-step-payment .form-row:has([id*="save_source"]),
body.cfl-step-payment .form-row:has([id*="save_payment"]) {
    display: none !important;
}

/* Hide ALL saved payment methods (they show pre-filled emails) */
body.cfl-step-payment .woocommerce-SavedPaymentMethods,
body.cfl-step-payment ul.woocommerce-SavedPaymentMethods,
body.cfl-step-payment .wc-saved-payment-methods,
body.cfl-step-details .woocommerce-SavedPaymentMethods,
body.cfl-step-details ul.woocommerce-SavedPaymentMethods {
    display: none !important;
}

/* Hide any Stripe Link email prefill */
body.cfl-step-payment .wc-stripe-link-email,
body.cfl-step-payment .wc-stripe-upe-link,
body.cfl-step-payment #wc-stripe-payment-request-email,
body.cfl-step-payment .wc-stripe-payment-request-login-email {
    display: none !important;
}

/* ========================================
   CART PAGE COUPON FORM
   ======================================== */
.cfl-coupon-input:focus {
    border-color: #009FE3 !important;
    box-shadow: 0 0 0 3px rgba(0, 159, 227, 0.1) !important;
}

.cfl-coupon-btn:hover {
    background: linear-gradient(135deg, #0B1120, #1e293b) !important;
}

.cfl-coupon-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* ========================================
   MULTI-STEP RESPONSIVE
   ======================================== */
@media (max-width: 768px) {
    .cfl-step-label {
        font-size: 0.6rem;
        letter-spacing: 0.05em;
    }

    .cfl-step-number {
        width: 30px;
        height: 30px;
        font-size: 0.7rem;
    }

    .cfl-step-connector {
        min-width: 24px;
        margin: 0 0.5rem;
    }

    #cfl-continue-to-payment {
        padding: 1rem 1.5rem;
        font-size: 0.8rem;
    }

    body.woocommerce-checkout .cfl-order-summary {
        position: static !important;
    }

    .cfl-cart-coupon .cfl-coupon-form {
        flex-direction: column !important;
    }

    /* Payment step mobile overrides moved after HARD OVERRIDE section */
}

/* ========================================
   PAYMENT STEP GRID - SINGLE SOURCE OF TRUTH
   ======================================== */
body.cfl-step-payment form.checkout,
body.cfl-step-payment .cfl-checkout-multistep,
body.cfl-step-payment .woocommerce,
body.cfl-step-payment .woocommerce-checkout-content {
    display: block !important;
    max-width: 1100px !important;
    margin: -3rem auto 0 auto !important;
    padding: 2rem 0 2rem 0 !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* #order_review wraps both #payment and the order table — make it the grid container */
body.cfl-step-payment #order_review {
    display: grid !important;
    grid-template-columns: 1.2fr 1fr !important;
    gap: 2rem !important;
    align-items: start !important;
    max-width: 1100px !important;
    margin: 0 auto !important;
    /* Kill the grey border/padding/shadow — individual boxes have their own styling */
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 !important;
}

/* PAYMENT - left column */
body.cfl-step-payment #payment {
    grid-column: 1 !important;
    grid-row: 1 !important;
    display: block !important;
    visibility: visible !important;
    height: auto !important;
    overflow: hidden !important;
    background: #fff !important;
    border-radius: 1.25rem !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08) !important;
    border: 1px solid #e5e7eb !important;
}

/* Payment section heading - dark navy bar matching order summary */
body.cfl-step-payment #payment::before {
    content: 'Payment Method' !important;
    display: block !important;
    font-size: 1.1rem !important;
    font-weight: 900 !important;
    font-family: 'Inter', sans-serif !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    color: #fff !important;
    background: linear-gradient(135deg, #0B1120 0%, #1a2744 100%) !important;
    padding: 1.25rem 1.5rem !important;
    margin: 0 !important;
    border-bottom: 3px solid #009FE3 !important;
}

/* Payment inner content padding */
body.cfl-step-payment #payment .wc_payment_methods,
body.cfl-step-payment #payment .place-order {
    padding: 0 1.5rem !important;
}

body.cfl-step-payment #payment .wc_payment_methods {
    padding-top: 1.5rem !important;
    padding-bottom: 1rem !important;
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
    height: auto !important;
}

/* Ensure all payment method items are fully visible */
body.cfl-step-payment #payment .wc_payment_method {
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
    height: auto !important;
}

body.cfl-step-payment #payment .place-order {
    padding-bottom: 1.5rem !important;
}

/* ORDER SUMMARY WRAPPER - right column outer box */
body.cfl-step-payment #cfl-order-summary-wrapper {
    grid-column: 2 !important;
    grid-row: 1 !important;
    display: block !important;
    background: #fff !important;
    border-radius: 1.25rem !important;
    overflow: hidden !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08) !important;
    border: 1px solid #e5e7eb !important;
}

/* Order summary heading - on wrapper div so it spans full width */
body.cfl-step-payment #cfl-order-summary-wrapper::before {
    content: 'Order Summary' !important;
    display: block !important;
    font-size: 1.1rem !important;
    font-weight: 900 !important;
    font-family: 'Inter', sans-serif !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    color: #fff !important;
    background: linear-gradient(135deg, #0B1120 0%, #1a2744 100%) !important;
    padding: 1.25rem 1.5rem !important;
    margin: 0 !important;
    border-bottom: 3px solid #009FE3 !important;
}

/* ORDER SUMMARY TABLE - inside the wrapper */
body.cfl-step-payment .woocommerce-checkout-review-order-table,
body.cfl-step-payment table.shop_table.woocommerce-checkout-review-order-table {
    background: #fff !important;
    padding: 0 !important;
    color: #0B1120 !important;
    border: none !important;
    margin: 0 !important;
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* Remove the old ::before on the table itself */
body.cfl-step-payment .woocommerce-checkout-review-order-table::before {
    display: none !important;
}

body.cfl-step-payment .woocommerce-checkout-review-order-table th,
body.cfl-step-payment .woocommerce-checkout-review-order-table td {
    border: none !important;
    background: transparent !important;
    color: #374151 !important;
    padding: 0.75rem 1.5rem !important;
    font-size: 0.9rem !important;
    border-bottom: 1px solid #f0f0f0 !important;
}

body.cfl-step-payment .woocommerce-checkout-review-order-table thead th {
    color: #6b7280 !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    font-size: 0.7rem !important;
    letter-spacing: 0.05em !important;
    padding-top: 1rem !important;
}

body.cfl-step-payment .woocommerce-checkout-review-order-table .product-name {
    font-weight: 700 !important;
    color: #0B1120 !important;
}

body.cfl-step-payment .woocommerce-checkout-review-order-table .product-total,
body.cfl-step-payment .woocommerce-checkout-review-order-table .amount {
    color: #0B1120 !important;
    font-weight: 700 !important;
}

/* Subtotal, shipping, VAT rows */
body.cfl-step-payment .woocommerce-checkout-review-order-table tfoot th {
    font-weight: 600 !important;
    color: #6b7280 !important;
    font-size: 0.85rem !important;
}

body.cfl-step-payment .woocommerce-checkout-review-order-table tfoot td {
    font-weight: 700 !important;
    color: #0B1120 !important;
}

/* Shipping row */
body.cfl-step-payment .woocommerce-checkout-review-order-table .shipping th,
body.cfl-step-payment .woocommerce-checkout-review-order-table .shipping td {
    border-bottom: 1px solid #f0f0f0 !important;
}

/* Click & Collect - hide radio buttons and shipping method list styling */
body.cfl-step-payment .woocommerce-checkout-review-order-table .shipping td ul,
body.cfl-step-payment .woocommerce-checkout-review-order-table .shipping td .woocommerce-shipping-methods {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

body.cfl-step-payment .woocommerce-checkout-review-order-table .shipping td input[type="radio"],
body.cfl-step-payment .woocommerce-checkout-review-order-table .shipping td input[type="hidden"] {
    display: none !important;
}

body.cfl-step-payment .woocommerce-checkout-review-order-table .shipping td label {
    font-weight: 700 !important;
    color: #009FE3 !important;
    font-size: 0.85rem !important;
    cursor: default !important;
}

/* Click & Collect notice row */
body.cfl-step-payment .woocommerce-checkout-review-order-table .cfl-click-collect-notice td {
    border-bottom: 1px solid #f0f0f0 !important;
}

/* Tax/VAT row */
body.cfl-step-payment .woocommerce-checkout-review-order-table .tax-rate th,
body.cfl-step-payment .woocommerce-checkout-review-order-table .tax-rate td,
body.cfl-step-payment .woocommerce-checkout-review-order-table .tax-total th,
body.cfl-step-payment .woocommerce-checkout-review-order-table .tax-total td {
    color: #6b7280 !important;
    font-size: 0.85rem !important;
    border-bottom: 1px solid #f0f0f0 !important;
}

/* Total row — branded highlight */
body.cfl-step-payment .woocommerce-checkout-review-order-table tfoot tr:last-child th,
body.cfl-step-payment .woocommerce-checkout-review-order-table tfoot tr:last-child td,
body.cfl-step-payment .woocommerce-checkout-review-order-table .order-total th,
body.cfl-step-payment .woocommerce-checkout-review-order-table .order-total td {
    font-size: 1.15rem !important;
    font-weight: 900 !important;
    color: #0B1120 !important;
    padding: 1.25rem 1.5rem !important;
    border-top: 2px solid #0B1120 !important;
    border-bottom: none !important;
    background: #f8fafc !important;
}

body.cfl-step-payment .woocommerce-checkout-review-order-table tfoot tr:last-child .amount,
body.cfl-step-payment .woocommerce-checkout-review-order-table .order-total .woocommerce-Price-amount {
    color: #009FE3 !important;
    font-size: 1.4rem !important;
}

/* CHECKOUT ACTIONS (Place Order + Terms) - inside the order summary wrapper, sits right after content */
body.cfl-step-payment #cfl-checkout-actions {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.75rem !important;
    padding: 1.25rem 1.5rem !important;
    margin-top: 0 !important;
}

body.cfl-step-payment #cfl-checkout-actions #place_order {
    display: block !important;
    width: 100% !important;
    padding: 1.25rem 2rem !important;
    background: #009FE3 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 0.75rem !important;
    font-weight: 900 !important;
    font-size: 0.9rem !important;
    font-family: 'Inter', sans-serif !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    box-shadow: 0 4px 14px rgba(0, 159, 227, 0.25) !important;
    margin: 0 !important;
}

body.cfl-step-payment #cfl-checkout-actions #place_order:hover {
    background: #00d4ff !important;
    box-shadow: 0 8px 24px rgba(0, 159, 227, 0.35) !important;
    transform: translateY(-1px) !important;
}

body.cfl-step-payment #cfl-checkout-actions .woocommerce-terms-and-conditions-wrapper {
    font-size: 0.75rem !important;
    color: #94a3b8 !important;
    text-align: center !important;
    line-height: 1.5 !important;
}

body.cfl-step-payment #cfl-checkout-actions .woocommerce-terms-and-conditions-wrapper a {
    color: #009FE3 !important;
    text-decoration: underline !important;
}

/* Mobile: stack payment grid to single column */
@media (max-width: 768px) {
    body.cfl-step-payment #order_review {
        grid-template-columns: 1fr !important;
        gap: 1.5rem !important;
    }

    body.cfl-step-payment form.checkout {
        max-width: 100% !important;
        padding: 0 1rem !important;
    }

    body.cfl-step-payment #payment {
        grid-column: 1 !important;
        grid-row: 1 !important;
        padding: 1.5rem !important;
    }

    body.cfl-step-payment #cfl-order-summary-wrapper {
        grid-column: 1 !important;
        grid-row: 2 !important;
    }
}

@media (max-width: 480px) {
    .cfl-steps {
        padding: 0 0.5rem;
    }

    .cfl-step-label {
        display: none;
    }

    .cfl-step-number {
        width: 38px;
        height: 38px;
        font-size: 0.85rem;
    }

    .cfl-step-connector {
        min-width: 30px;
    }
}

/* ========================================
   HEADER & RESPONSIVE OPTIMIZATION
   ======================================== */

/* Ensure consistent header height across all pages */
:root {
    --header-height: 64px;
}

@media (max-width: 768px) {
    :root {
        --header-height: 64px; /* Keep consistent on mobile */
    }
}

/* All WooCommerce pages with hero sections */
.woocommerce .hero-standard,
body.woocommerce-shop .hero-standard,
body.woocommerce-cart .hero-standard,
body.woocommerce-checkout .hero-standard {
    padding-top: calc(var(--header-height) + 1rem) !important;
    padding-bottom: 1.5rem !important;
    margin-bottom: 0 !important;
}

@media (max-width: 768px) {
    .woocommerce .hero-standard,
    body.woocommerce-shop .hero-standard,
    body.woocommerce-cart .hero-standard,
    body.woocommerce-checkout .hero-standard {
        padding-top: calc(var(--header-height) + 0.75rem) !important;
        padding-bottom: 1rem !important;
    }
}

/* Responsive: WooCommerce product grid */
.woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
    gap: 1.5rem !important;
}

@media (max-width: 1200px) {
    .woocommerce ul.products {
        grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)) !important;
    }
}

@media (max-width: 768px) {
    .woocommerce ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 1rem !important;
    }
}

@media (max-width: 480px) {
    .woocommerce ul.products {
        grid-template-columns: 1fr !important;
        gap: 1rem !important;
    }
}

/* Cart page totals box - dark blue with white text */
body.woocommerce-cart .cart-collaterals,
body.woocommerce-cart .woocommerce-cart-collaterals .cart_totals,
body.woocommerce-cart table.shop_table.woocommerce-cart-totals {
    background: linear-gradient(135deg, #0B1120 0%, #1a2744 100%) !important;
    color: #fff !important;
    border-radius: 1.25rem !important;
    padding: 1.5rem !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08) !important;
    border: 1px solid #1a2744 !important;
}

body.woocommerce-cart .woocommerce-cart-totals th,
body.woocommerce-cart .woocommerce-cart-totals td,
body.woocommerce-cart .cart_totals th,
body.woocommerce-cart .cart_totals td {
    color: #fff !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
}

body.woocommerce-cart .woocommerce-cart-totals .amount,
body.woocommerce-cart .cart_totals .amount {
    color: #00d4ff !important;
    font-weight: 700 !important;
}

/* Cart page responsive */
body.woocommerce-cart .woocommerce-cart-form {
    overflow-x: auto !important;
}

body.woocommerce-cart .return-to-shop a.button,
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
body.woocommerce-cart a.button[name="proceed"],
body.woocommerce-cart button.button {
    background: #0B1120 !important;
    color: #fff !important;
    border: none !important;
    padding: 0.75rem 1.5rem !important;
    border-radius: 0.75rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    transition: all 0.2s ease !important;
}

body.woocommerce-cart .return-to-shop a.button:hover,
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
body.woocommerce-cart a.button[name="proceed"]:hover,
body.woocommerce-cart button.button:hover {
    background: #1a2744 !important;
    color: #00d4ff !important;
    box-shadow: 0 4px 12px rgba(0, 159, 227, 0.2) !important;
}

body.woocommerce-cart table.shop_table {
    min-width: 100% !important;
    width: 100% !important;
}

@media (max-width: 768px) {
    body.woocommerce-cart table.shop_table {
        font-size: 0.9rem !important;
    }

    body.woocommerce-cart table.shop_table td,
    body.woocommerce-cart table.shop_table th {
        padding: 0.75rem !important;
    }
}

/* Checkout responsive */
body.woocommerce-checkout .container {
    max-width: 100% !important;
    padding: 0 1rem !important;
}

@media (max-width: 768px) {
    body.woocommerce-checkout .container {
        padding: 0 0.75rem !important;
    }

    /* Stack grid on smaller screens */
    body.cfl-step-payment form.checkout {
        grid-template-columns: 1fr !important;
        gap: 1.5rem !important;
    }

    body.cfl-step-payment #payment,
    body.cfl-step-payment #order_review {
        grid-column: 1 !important;
        grid-row: auto !important;
    }

    body.cfl-step-payment #order_review {
        position: static !important;
    }
}

/* Touch-friendly buttons on mobile */
@media (max-width: 768px) {
    button,
    .button,
    a.button,
    .wp-block-button__link {
        min-height: 48px !important;
        padding: 0.75rem 1.5rem !important;
        font-size: 1rem !important;
    }

    .cfl-back-link {
        min-height: 48px !important;
        padding: 0.75rem 1.5rem !important;
    }
}

/* ========================================
   HEADER & FOOTER CONSISTENCY FIX
   Replicate homepage header/footer across all pages
   ======================================== */

/* HEADER - Force homepage styling everywhere */
.site-header {
    background: rgba(255, 255, 255, 0.95) !important;
    backdrop-filter: blur(10px) !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 999 !important;
    height: auto !important;
    padding: 0.5rem 0 !important;
    margin: 0 !important;
    border: none !important;
    box-shadow: none !important;
}

/* Header on WooCommerce pages - exact same as homepage */
body.woocommerce .site-header,
body.woocommerce-page .site-header,
body.woocommerce-checkout .site-header,
body.woocommerce-cart .site-header {
    background: rgba(255, 255, 255, 0.95) !important;
    backdrop-filter: blur(10px) !important;
    border-bottom: none !important;
    box-shadow: none !important;
    height: auto !important;
}

/* Header container - match homepage padding exactly (px-4 lg:px-6 py-2) */
.site-header .container,
body.woocommerce .site-header .container,
body.woocommerce-page .site-header .container,
body.woocommerce-checkout .site-header .container,
body.woocommerce-cart .site-header .container {
    padding: 0.5rem 1rem !important;
    height: auto !important;
    max-width: 1280px !important;
    margin: 0 auto !important;
}

@media (min-width: 1024px) {
    .site-header .container,
    body.woocommerce .site-header .container,
    body.woocommerce-page .site-header .container,
    body.woocommerce-checkout .site-header .container,
    body.woocommerce-cart .site-header .container {
        padding: 0.5rem 1.5rem !important;
    }
}

/* Ensure logo stays visible and consistent */
.site-logo,
.woocommerce .site-logo,
.woocommerce-page .site-logo,
.woocommerce-checkout .site-logo,
.woocommerce-cart .site-logo {
    display: flex !important;
    visibility: visible !important;
    flex-shrink: 0 !important;
    height: auto !important;
}

/* FOOTER - Force homepage styling everywhere */
/* Match HTML classes: pt-10 md:pt-16 pb-24 md:pb-10 */
footer {
    background: var(--dark) !important;
    background: #0B1120 !important;
    color: white !important;
    padding: 2.5rem 0 6rem 0 !important;
    border: none !important;
    border-top: none !important;
    margin: 0 !important;
    margin-top: 0 !important;
    box-shadow: none !important;
}

@media (min-width: 768px) {
    footer {
        padding: 4rem 0 2.5rem 0 !important;
    }
}

/* Footer on all WooCommerce pages - exact same as homepage */
body.woocommerce footer,
body.woocommerce-page footer,
body.woocommerce-checkout footer,
body.woocommerce-cart footer {
    background: #0B1120 !important;
    color: white !important;
    padding: 2.5rem 0 6rem 0 !important;
    border: none !important;
    border-top: none !important;
    margin-top: 0 !important;
    box-shadow: none !important;
    margin-bottom: 0 !important;
}

@media (min-width: 768px) {
    body.woocommerce footer,
    body.woocommerce-page footer,
    body.woocommerce-checkout footer,
    body.woocommerce-cart footer {
        padding: 4rem 0 2.5rem 0 !important;
    }
}

/* Remove all footer border variations */
footer,
body.woocommerce footer,
body.woocommerce-page footer,
body.woocommerce-checkout footer,
body.woocommerce-cart footer {
    border-color: transparent !important;
    border-width: 0 !important;
    outline: none !important;
}

/* Footer container - consistent padding across all pages */
footer > .container,
body.woocommerce footer > .container,
body.woocommerce-page footer > .container,
body.woocommerce-checkout footer > .container,
body.woocommerce-cart footer > .container {
    max-width: 1280px !important;
    margin: 0 auto !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
}

@media (min-width: 768px) {
    footer > .container,
    body.woocommerce footer > .container,
    body.woocommerce-page footer > .container,
    body.woocommerce-checkout footer > .container,
    body.woocommerce-cart footer > .container {
        padding-left: 1.5rem !important;
        padding-right: 1.5rem !important;
    }
}

/* Remove white/blue lines in footer */
footer::before,
footer::after,
body.woocommerce footer::before,
body.woocommerce-page footer::before,
body.woocommerce-checkout footer::before,
body.woocommerce-cart footer::before {
    display: none !important;
    border: none !important;
    background: transparent !important;
}

/* Remove gaps between content and footer */
.page-fade,
main.flex-grow,
.woocommerce main,
.woocommerce-page main {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* Ensure body has proper min height */
body {
    display: flex !important;
    flex-direction: column !important;
    min-height: 100vh !important;
}

body > * {
    flex-shrink: 0 !important;
}

body > main,
body > .page-fade {
    flex-grow: 1 !important;
}

/* ========================================
   FIX: Shop page - spacing between category nav and product grid
   ======================================== */
.shop-category-nav {
    margin-bottom: 0 !important;
}

/* Ensure main content sits below the nav dropdown in stacking order */
.woocommerce-main {
    position: relative;
    z-index: 1;
}

body.woocommerce-shop .woocommerce-main,
body.tax-product_cat .woocommerce-main,
body.tax-product_tag .woocommerce-main {
    padding-top: 2.5rem !important;
    padding-bottom: 3rem !important;
    margin-bottom: 3rem !important;
}

@media (min-width: 768px) {
    body.woocommerce-shop .woocommerce-main,
    body.tax-product_cat .woocommerce-main,
    body.tax-product_tag .woocommerce-main {
        padding-top: 3rem !important;
    }
}

/* ========================================
   FIX: Checkout page - spacing between content and footer
   ======================================== */
body.woocommerce-checkout .woocommerce-main {
    margin-bottom: 3rem !important;
    padding-bottom: 3rem !important;
}

body.woocommerce-checkout .cfl-checkout-multistep {
    padding-bottom: 2rem !important;
}

/* ========================================
   FIX: Remove blue/white lines in footer on checkout pages
   ======================================== */
body.woocommerce-checkout footer *,
body.woocommerce-cart footer *,
body.woocommerce footer * {
    border-color: transparent !important;
}

/* Restore only the intentional subtle borders */
body.woocommerce-checkout footer .border-white\/10,
body.woocommerce-cart footer .border-white\/10,
body.woocommerce footer .border-white\/10 {
    border-color: rgba(255, 255, 255, 0.1) !important;
}

body.woocommerce-checkout footer .border-white\/5,
body.woocommerce-cart footer .border-white\/5,
body.woocommerce footer .border-white\/5 {
    border-color: rgba(255, 255, 255, 0.05) !important;
}

body.woocommerce-checkout footer .border-\[\#009FE3\]\/20,
body.woocommerce-cart footer .border-\[\#009FE3\]\/20,
body.woocommerce footer .border-\[\#009FE3\]\/20 {
    border-color: rgba(0, 159, 227, 0.2) !important;
}

body.woocommerce-checkout footer .border-\[\#009FE3\]\/30,
body.woocommerce-cart footer .border-\[\#009FE3\]\/30,
body.woocommerce footer .border-\[\#009FE3\]\/30 {
    border-color: rgba(0, 159, 227, 0.3) !important;
}

/* Remove any stray hr or separator elements in footer */
body.woocommerce-checkout footer hr,
body.woocommerce-cart footer hr,
body.woocommerce footer hr {
    display: none !important;
}

/* Remove any unexpected borders on footer grid columns */
body.woocommerce-checkout footer .grid > div,
body.woocommerce-cart footer .grid > div,
body.woocommerce footer .grid > div {
    border: none !important;
    outline: none !important;
}

/* ========================================
   FIX: Remove hero banner hyperlinks on checkout/cart pages
   ======================================== */
body.woocommerce-checkout .hero-standard a.hero-badge,
body.woocommerce-cart .hero-standard a.hero-badge {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
}

body.woocommerce-checkout .hero-standard a.hero-badge:hover,
body.woocommerce-cart .hero-standard a.hero-badge:hover {
    opacity: 1;
    transform: none;
}
