/*
Theme Name: Shoptimizer Child — Momo Jord
Theme URI: https://momojord.se/
Description: Child theme for Shoptimizer. Holds all Momo Jord–specific CSS so we don't have to scatter <style> blocks across mu-plugins. PHP hooks/filters remain in mu-plugins.
Author: Momo Jord
Author URI: https://momojord.se/
Template: shoptimizer
Version: 1.0.12
Text Domain: shoptimizer-child
*/

/* ============================================================
   Style organisation
   ------------------------------------------------------------
   1. PDP / cart-button polish        (was: layout-fixes.php)
   2. Header polish + mobile menu     (was: header-polish.php)
   3. Design polish — global UI       (was: design-polish.php)
   4. mj-grid-fixes.php — PHP only, no CSS
   5. — to be added in Phase 4 —     momojord-checkout-polish.php
   ============================================================ */


/* ============================================================
   1. PDP / CART-BUTTON POLISH
   Migrated from mu-plugins/layout-fixes.php on 2026-05-12.
   ============================================================ */

/* Quantity + add-to-cart alignment.
   Background: critical CSS sets width:100% on .single_add_to_cart_button, which
   pushed the button below the qty input. Use flex with nowrap and a flex basis
   so the button shrinks to share the row with the qty input. */
.summary form.cart .woocommerce-variation-add-to-cart {
    display: flex !important;
    align-items: center;
    gap: 6px;
    flex-wrap: nowrap;
    margin-top: 24px !important;
}
.summary form.cart .quantity {
    display: inline-flex !important;
    align-items: stretch;
    margin: 0 !important;
    flex: 0 0 auto;
    position: relative;
}
.summary form.cart .quantity .qty {
    width: 64px !important;
    max-width: 64px;
    text-align: center;
    border-radius: 4px;
    border: 1px solid #ddd;
    padding: 8px 18px 8px 8px;
    font-size: 1rem;
    -moz-appearance: textfield;
}
.summary form.cart .quantity .qty::-webkit-outer-spin-button,
.summary form.cart .quantity .qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
/* cgkit / Shoptimizer custom +/- arrows */
.summary form.cart .quantity .quantity-nav {
    position: absolute;
    right: 2px;
    top: 2px;
    bottom: 2px;
    width: 16px;
    display: flex;
    flex-direction: column;
    pointer-events: none;
}
.summary form.cart .quantity .quantity-nav .quantity-button {
    flex: 1;
    cursor: pointer;
    pointer-events: auto;
    display: block;
    position: relative;
    background: transparent;
}
.summary form.cart .quantity .quantity-nav .quantity-up::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 55%;
    transform: translate(-50%, -50%);
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-bottom: 5px solid #555;
}
.summary form.cart .quantity .quantity-nav .quantity-down::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 45%;
    transform: translate(-50%, -50%);
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid #555;
}

/* ATC button — make it the loudest thing on the PDP. */
.summary form.cart .single_add_to_cart_button {
    flex: 1 1 auto;
    width: auto !important;
    max-width: none !important;
    text-align: center !important;
    min-height: 68px;
    padding: 22px 44px !important;
    font-size: 1.25rem !important;
    font-weight: 700 !important;
    letter-spacing: .02em;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 4px 14px rgba(47, 107, 58, .25);
}
.summary form.cart .single_add_to_cart_button:hover {
    box-shadow: 0 6px 18px rgba(47, 107, 58, .35);
}
@media (max-width: 480px) {
    /* On very narrow phones, allow wrap but keep button full-width when it does. */
    .summary form.cart .woocommerce-variation-add-to-cart { flex-wrap: wrap; }
    .summary form.cart .single_add_to_cart_button { flex: 1 1 100%; }
}

/* Force product grid cells to fill their CSS Grid track on archive pages.
   Without this each li shrinks to image natural width (91px). Scoped to
   archives only — related/cross-sells/upsells use their own columns-N grid
   and would get squashed to one-per-row if we applied this globally. */
.woocommerce-shop ul.products li.product,
.tax-product_cat ul.products li.product,
.post-type-archive-product ul.products li.product,
.woocommerce-page.archive ul.products li.product {
    width: 100% !important;
    min-width: 100% !important;
    justify-self: stretch !important;
}

/* Shop grid badges */
li.product .momo-instock-badge {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 3;
    background: #4CAF50;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 3px;
    text-transform: uppercase;
    letter-spacing: .5px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .15);
}

/* Välj alternativ + composite buttons in shop grid — brand green (was muddy olive
   #565f3a, inconsistent with the palette green). polish.css Group N also covers these. */
ul.products li.product .button.product_type_variable,
ul.products li.product .button.product_type_composite {
    background: var(--brand, #2f6b3a) !important;
    color: #fff !important;
}

/* Gallery thumbnails */
.woocommerce-product-gallery .flex-control-thumbs li img {
    border: 2px solid transparent;
    border-radius: 4px;
    transition: border-color .2s;
}
.woocommerce-product-gallery .flex-control-thumbs li img.flex-active,
.woocommerce-product-gallery .flex-control-thumbs li img:hover {
    border-color: #dd9933;
}

/* Variation selector */
.summary .variations td.value select {
    min-height: 44px;
    border-radius: 6px;
    border: 1px solid #ddd;
    padding: 8px 12px;
    font-size: .95rem;
    background: #fff;
}
.summary .variations td.label label {
    font-weight: 600;
    font-size: .9rem;
    color: #333;
}

/* ---- CGKit attribute swatches polish (variable PDPs like UQ) ----
   Default cgkit styles render each variant as a small pill with an inverted
   black "selected" state. Restyle to match the hammock kit configurator:
   card-style options with a light green selected state, proper hover, and
   room for a price suffix injected via JS (cgkit-as-price). */
.summary .cgkit-attribute-swatches {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 8px;
    margin: 4px 0 0;
    padding: 0;
    list-style: none;
}
.summary .cgkit-attribute-swatches > li {
    margin: 0;
    padding: 0;
    list-style: none;
}
.summary .cgkit-attribute-swatches .cgkit-swatch.cgkit-as-single {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    gap: 2px !important;
    width: 100%;
    min-height: 56px;
    padding: 10px 14px !important;
    background: #fff !important;
    color: #1a1a1a !important;
    border: 1.5px solid #e8e6df !important;
    border-radius: 8px !important;
    font-size: .92rem !important;
    font-weight: 500 !important;
    line-height: 1.25 !important;
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease, transform .1s ease;
    text-align: left;
    white-space: normal;
}
.summary .cgkit-attribute-swatches .cgkit-swatch.cgkit-as-single:hover {
    border-color: #c9c4b5 !important;
    background: #fafaf7 !important;
}
.summary .cgkit-attribute-swatches .cgkit-swatch.cgkit-as-single.cgkit-swatch-selected {
    border-color: #5f8e38 !important;
    background: #f4fbf5 !important;
    color: #1a1a1a !important;
    box-shadow: 0 0 0 1px #5f8e38 inset;
    font-weight: 600 !important;
}
.summary .cgkit-attribute-swatches .cgkit-swatch.cgkit-as-single .cgkit-as-price {
    display: inline-block;
    font-size: .82rem;
    font-weight: 700;
    color: #555;
    white-space: nowrap;
}
.summary .cgkit-attribute-swatches .cgkit-swatch.cgkit-swatch-selected .cgkit-as-price {
    color: #2e7d32;
}
/* OOS swatches: dim and overlay a thin cross via existing .cross span. */
.summary .cgkit-attribute-swatches .cgkit-swatch.cgkit-as-single[disabled],
.summary .cgkit-attribute-swatches .cgkit-swatch.cgkit-swatch-disabled.cgkit-as-single {
    opacity: .5;
    cursor: not-allowed;
    background: #f6f5f1 !important;
}
/* The default "cross" span is rendered as &nbsp; — keep it invisible and let
   .opacity carry the OOS signal. */
.summary .cgkit-attribute-swatches .cgkit-swatch .cross {
    display: none;
}

/* Make the chosen-attribute label clearer ("UNDERQUILT: UQ500 – ..."). */
.summary .cgkit-chosen-attribute-wrap {
    margin: 0 0 6px;
    font-size: .85rem;
    color: #555;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.summary .cgkit-chosen-attribute {
    color: #1a1a1a;
    text-transform: none;
    letter-spacing: 0;
    font-weight: 600;
    font-size: .95rem;
}

/* Tidy the reset link */
.summary .reset_variations {
    display: inline-block;
    margin-top: 8px;
    font-size: .82rem;
    color: #888;
    text-decoration: underline;
}
.summary .reset_variations:hover { color: #5f8e38; }

/* Price */
.summary .price {
    font-size: 1.5rem !important;
    font-weight: 700;
    color: #111;
    margin: .75rem 0;
}

/* Stock status */
.summary .stock.in-stock { color: #4CAF50; font-weight: 600; font-size: .9rem; }
.summary .stock.out-of-stock { color: #c0392b; font-weight: 600; }

/* Hide .product_meta on PDPs (SKU/categories/tags/brand = noise for end users). */
.single-product .product_meta { display: none !important; }

/* footer.site-footer only contains the hidden newsletter pop-up. Strip its
   wrapper so the theme doesn't render a thin white band under the footer info. */
footer.site-footer {
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    min-height: 0 !important;
    border: 0 !important;
}
footer.site-footer > .col-full {
    padding: 0 !important;
    margin: 0 !important;
}
footer.site-footer > .col-full > #block-31 {
    margin: 0 !important;
    padding: 0 !important;
}


/* ============================================================
   2. HEADER POLISH  — RETIRED 2026-06-01
   The Shoptimizer header (#masthead / .col-full-nav) is now hidden in
   modules/design/assets/momojord-chrome.css; the editorial single-row nav
   + mobile drawer are rendered by MJ_Chrome::nav(). All the old header-4
   tightening + mobile off-canvas rules that lived here are obsolete and
   were removed so they can't force the hidden nav back into view.
   ============================================================ */


/* ============================================================
   3. DESIGN POLISH — global UI niceness
   Migrated from mu-plugins/design-polish.php on 2026-05-12.
   Product cards, ATC buttons, mobile gutter+hero, typography,
   reviews, footer, Kadence overrides.
   ============================================================ */
ul.products li.product {
        transition: transform 0.25s ease, box-shadow 0.25s ease;
        border-radius: 8px;
    }
    ul.products li.product:hover {
        transform: translateY(-3px);
        box-shadow: 0 8px 24px rgba(0,0,0,0.08);
    }

    ul.products li.product .attachment-woocommerce_thumbnail {
        transition: transform 0.4s ease;
    }
    ul.products li.product:hover .attachment-woocommerce_thumbnail {
        transform: scale(1.03);
    }
    ul.products li.product a.woocommerce-LoopProduct-link {
        overflow: hidden;
        border-radius: 8px 8px 0 0;
    }

    ul.products li.product .woocommerce-loop-product__title {
        margin-top: 0.75rem;
        margin-bottom: 0.35rem;
        line-height: 1.35;
    }

    ul.products li.product .price {
        margin-bottom: 0.6rem;
    }

    ul.products li.product.instock .button.add_to_cart_button {
        font-weight: 600;
        letter-spacing: 0.01em;
        transition: all 0.2s ease;
        box-shadow: 0 2px 8px rgba(221, 153, 51, 0.25);
    }
    ul.products li.product.instock .button.add_to_cart_button:hover {
        box-shadow: 0 4px 14px rgba(221, 153, 51, 0.35);
        transform: translateY(-1px);
    }

    ul.products li.product.instock .button.product_type_variable {
        box-shadow: 0 2px 8px rgba(221, 153, 51, 0.2);
    }

    .product .cart .single_add_to_cart_button {
        padding: 0.9em 2em;
        font-size: 1.05rem;
        letter-spacing: 0.01em;
        transition: all 0.2s ease;
        box-shadow: 0 3px 12px rgba(221, 153, 51, 0.3);
    }
    .product .cart .single_add_to_cart_button:hover {
        box-shadow: 0 5px 18px rgba(221, 153, 51, 0.4);
        transform: translateY(-1px);
    }

    ul.products li.product.outofstock .attachment-woocommerce_thumbnail {
        opacity: 0.55;
        filter: saturate(0.4);
        transition: opacity 0.3s ease, filter 0.3s ease;
    }
    ul.products li.product.outofstock:hover .attachment-woocommerce_thumbnail {
        opacity: 0.7;
        filter: saturate(0.6);
    }

    ul.products li.product.outofstock .price {
        opacity: 0.5;
    }

    ul.products li.product.outofstock .button {
        background-color: #888 !important;
        opacity: 0.7;
        box-shadow: none !important;
    }
    ul.products li.product.outofstock .button:hover {
        opacity: 0.85;
        transform: none;
    }

    .summary.entry-summary .product_title.entry-title {
        margin-bottom: 0.6rem;
        line-height: 1.25;
    }

    div.product .summary .price,
    div.product .summary .woocommerce-variation-price .price {
        font-size: 1.45rem;
        font-weight: 700;
        margin-bottom: 0.75rem;
    }

    .variations_form .variations {
        margin-bottom: 1rem;
    }
    .variations_form .variations td {
        padding-bottom: 0.75rem;
    }

    .cgkit-attribute-swatch.cgkit-button {
        transition: all 0.15s ease;
    }
    .cgkit-attribute-swatch.cgkit-button:hover {
        transform: translateY(-1px);
    }

    .quantity {
        border-radius: 6px;
        overflow: hidden;
    }
    .quantity .quantity-button {
        transition: background-color 0.15s ease;
    }

    .woocommerce-product-details__short-description {
        margin-bottom: 1.25rem;
        line-height: 1.65;
    }

    .woocommerce-product-attributes.shop_attributes {
        border-radius: 6px;
        overflow: hidden;
    }
    .woocommerce-product-attributes-item__label {
        font-weight: 600;
    }

    .momo-trust {
        border-radius: 6px;
        background: #fafaf8;
        padding: 0.85rem 1rem !important;
        margin-top: 1.25rem !important;
        border: 1px solid #eee !important;
        border-top: 1px solid #eee !important;
    }

    @media (max-width: 767px) {
        ul.products li.product {
            margin-bottom: 1.5rem;
            padding-bottom: 0.75rem;
        }

        ul.products li.product .button {
            padding: 0.7em 1em;
            font-size: 0.9rem;
            min-height: 44px;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .summary.entry-summary {
            padding: 0 0.5rem;
        }

        div.product .summary .price {
            font-size: 1.3rem;
        }

        .product .cart .single_add_to_cart_button {
            width: 100%;
            text-align: center;
            padding: 0.85em 1.5em;
        }

        .woocommerce-tabs .woocommerce-Tabs-panel {
            padding: 1rem 0.75rem;
        }

        .momo-reviews-bar {
            padding: 1rem;
        }
        .momo-review-card {
            padding: 0.85rem;
        }

        footer.site-footer .widget {
            margin-bottom: 1.5rem;
        }

        .mj-oos-badge {
            font-size: 0.7rem;
            padding: 5px 9px 4px;
        }
        .momo-instock-badge {
            font-size: 10px;
            padding: 2px 7px;
        }

        .site-content,
        .site-content .col-full,
        main.site-main {
            padding-left: 6px !important;
            padding-right: 6px !important;
        }
        .home .wp-block-kadence-rowlayout.alignfull > .kt-row-column-wrap {
            padding-left: 14px !important;
            padding-right: 14px !important;
        }
        .home .kt-row-has-bg.alignfull > .kt-row-column-wrap,
        .home .kt-jarallax.alignfull > .kt-row-column-wrap {
            padding-left: 0 !important;
            padding-right: 0 !important;
        }
        .home .kb-row-layout-wrap.kt-jarallax.alignfull:first-of-type {
            min-height: 72vh !important;
        }
        .mj-season-banner {
            padding: 6px 12px 5px !important;
            font-size: 0.82rem !important;
            line-height: 1.35;
        }
    }

    @media (max-width: 480px) {
        .summary.entry-summary .product_title.entry-title {
            font-size: 1.4rem;
        }

        .variations_form .variations select {
            width: 100%;
        }

        .mj-season-banner {
            padding: 8px 14px 6px;
        }
        .mj-season-banner__title {
            font-size: 1rem;
        }
        .mj-season-banner__text {
            font-size: 0.88rem;
        }
    }

    .woocommerce-products-header__title.page-title {
        letter-spacing: -0.01em;
        margin-bottom: 0.5rem;
    }

    .woocommerce-breadcrumb,
    .rank-math-breadcrumb {
        font-size: 0.85rem;
        opacity: 0.75;
        margin-bottom: 0.5rem;
    }

    .term-description p,
    .page-description p {
        line-height: 1.65;
    }

    .woocommerce-Tabs-panel p,
    .woocommerce-Tabs-panel li {
        line-height: 1.7;
    }

    .woocommerce-Tabs-panel--reviews,
    .woocommerce-Tabs-panel--cr-qna {
        max-width: 800px;
    }

    #reviews .commentlist li .comment_container {
        padding: 1.25rem 0;
    }

    .cr-nosummary-rating-val {
        font-size: 2.2rem;
        font-weight: 700;
    }

    .cr-nosummary-add a,
    #review_form #respond .form-submit input[type="submit"] {
        transition: all 0.2s ease;
    }
    .cr-nosummary-add a:hover,
    #review_form #respond .form-submit input[type="submit"]:hover {
        transform: translateY(-1px);
    }

    .cr-review-form-item input,
    .cr-review-form-item textarea {
        border-radius: 6px;
        transition: border-color 0.2s ease;
    }
    .cr-review-form-item input:focus,
    .cr-review-form-item textarea:focus {
        border-color: #565f3a;
        outline: none;
    }

    .momo-reviews-bar {
        box-shadow: 0 1px 4px rgba(0,0,0,0.04);
        transition: box-shadow 0.3s ease;
    }
    .momo-reviews-bar:hover {
        box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    }
    .momo-review-card {
        transition: transform 0.2s ease;
    }
    .momo-review-card:hover {
        transform: translateY(-2px);
    }

    footer.site-footer .widget .widget-title,
    footer.site-footer .widget .gamma {
        letter-spacing: 0.02em;
        margin-bottom: 0.85rem;
    }

    footer.site-footer .widget p {
        line-height: 1.7;
    }

    footer.site-footer a:not(.button) {
        transition: color 0.2s ease;
    }

    .below-content .widget {
        padding: 1.5rem;
    }
    .below-content .widget svg {
        transition: transform 0.3s ease;
    }
    .below-content .widget:hover svg {
        transform: scale(1.05);
    }

    footer.site-footer .widget_media_image {
        text-align: center;
    }
    footer.site-footer .widget_media_image img {
        margin: 0 auto;
        opacity: 0.85;
        transition: opacity 0.2s ease;
    }
    footer.site-footer .widget_media_image:hover img {
        opacity: 1;
    }

    html {
        scroll-behavior: smooth;
    }

    a:focus-visible,
    button:focus-visible,
    input:focus-visible,
    select:focus-visible {
        outline: 2px solid #565f3a;
        outline-offset: 2px;
        border-radius: 3px;
    }

    ul.products li.product img {
        background-color: #f5f5f3;
    }

    .woocommerce-message,
    .woocommerce-info,
    .woocommerce-error {
        border-radius: 6px;
    }

    .images .gallery-image {
        border-radius: 6px;
        overflow: hidden;
    }

    .momo-low-stock {
        animation: pulse-subtle 2s ease-in-out infinite;
    }
    @keyframes pulse-subtle {
        0%, 100% { opacity: 1; }
        50% { opacity: 0.75; }
    }

    .momo-restock-notice {
        border-radius: 8px !important;
    }

    .cart-drawer-heading {
        letter-spacing: 0.02em;
    }

    ::selection {
        background-color: rgba(86, 95, 58, 0.2);
    }

    @media (max-width: 1399px) {
        .wp-block-kadence-advancedheading,
        .wp-block-kadence-advanced-text {
            max-width: min(620px, 78vw) !important;
        }
    }
    @media (max-width: 768px) {
        .wp-block-kadence-advancedheading,
        .wp-block-kadence-advanced-text {
            max-width: 92vw !important;
        }
    }

    /* Shop-page hero "Välj stillheten" — Kadence xxl font (64px) breaks
       mid-word inside its narrow 50/50 column on desktop. Cap font-size so
       it breaks between words instead. */
    .kt-adv-heading5_afba19-6f {
        font-size: clamp(28px, 4.2vw, 48px) !important;
    }



/* ============================================================
   4. CHECKOUT POLISH — KCO + Swish/Stripe fallback
   Migrated from mu-plugins/momojord-checkout-polish.php on 2026-05-12.
   PHP hooks (Klarna iframe a11y, gettext patches, address field inputmode,
   kco_wc_after_order_review reassurance block) stay in the mu-plugin.
   ============================================================ */
:root {
        --mjco-green: #5f8e38;
        --mjco-green-dark: #2e3a22;
        --mjco-green-soft: #eef3e7;
        --mjco-ink: #2b2b2b;
        --mjco-mute: #6b6b66;
        --mjco-line: #e6e3dc;
        --mjco-bg: #ffffff;
        --mjco-card: #faf9f5;
        --mjco-radius: 10px;
        --mjco-shadow: 0 8px 28px rgba(46, 58, 34, 0.08);
    }

    body.woocommerce-checkout,
    body.woocommerce-cart {
        background: var(--paper, #f7f4ee);
    }

    body.woocommerce-checkout .site-content,
    body.woocommerce-cart .site-content {
        padding-top: 28px;
    }

    .mjco-reassurance {
        margin: 18px 0 0;
        padding: 14px 16px;
        background: #fff;
        border: 1px solid var(--mjco-line);
        border-radius: var(--mjco-radius);
        font-size: 0.92rem;
        color: var(--mjco-mute);
        text-align: center;
    }
    .mjco-reassurance strong {
        color: var(--mjco-ink);
        display: block;
        margin-bottom: 2px;
    }
    .mjco-reassurance a {
        color: var(--mjco-green);
        text-decoration: underline;
    }

    .kco-checkout {
        max-width: 1180px;
        margin: 0 auto;
        padding: 0 18px 60px;
    }
    #kco-wrapper {
        display: grid;
        grid-template-columns: minmax(340px, 1fr) minmax(420px, 1.2fr);
        gap: 36px;
        align-items: start;
    }
    #kco-order-review {
        background: var(--mjco-card);
        border-radius: var(--mjco-radius);
        padding: 22px 22px 18px;
        box-shadow: var(--mjco-shadow);
    }
    #kco-iframe {
        background: var(--mjco-bg);
        border-radius: var(--mjco-radius);
        padding: 8px;
        box-shadow: var(--mjco-shadow);
        min-height: 480px;
    }
    #kco-iframe iframe {
        border-radius: 6px;
    }

    #kco-wrapper #kco-order-review,
    #kco-wrapper #kco-iframe {
        width: 100% !important;
        float: none !important;
    }

    #kco-order-review .shop_table {
        background: transparent;
        border: 0;
        margin: 0;
    }
    #kco-order-review .shop_table th,
    #kco-order-review .shop_table td {
        padding: 10px 6px;
        border-color: var(--mjco-line);
        font-size: 0.95rem;
        color: var(--mjco-ink);
    }
    #kco-order-review .product-name {
        font-weight: 500;
    }
    #kco-order-review .order-total .amount {
        color: var(--mjco-green-dark);
        font-size: 1.15rem;
    }

    .klarna-checkout-select-other-wrapper {
        margin: 18px 0 0;
        text-align: center;
    }
    #klarna-checkout-select-other {
        display: inline-block;
        background: #fff !important;
        color: var(--mjco-green-dark) !important;
        border: 1.5px solid var(--mjco-green) !important;
        padding: 12px 22px !important;
        border-radius: 999px !important;
        font-weight: 600 !important;
        font-size: 0.95rem !important;
        text-decoration: none !important;
        transition: background 0.18s ease, transform 0.18s ease;
        box-shadow: none;
    }
    #klarna-checkout-select-other:hover,
    #klarna-checkout-select-other:focus {
        background: var(--mjco-green-soft) !important;
        transform: translateY(-1px);
    }

    form.woocommerce-checkout:not(.kco-checkout) {
        max-width: 1080px;
        margin: 0 auto;
        background: #fff;
        border-radius: var(--mjco-radius);
        padding: 28px;
        box-shadow: var(--mjco-shadow);
    }
    form.woocommerce-checkout:not(.kco-checkout) h3 {
        font-size: 1.15rem;
        color: var(--mjco-green-dark);
        margin: 22px 0 14px;
        padding-bottom: 8px;
        border-bottom: 1px solid var(--mjco-line);
    }
    form.woocommerce-checkout:not(.kco-checkout) .form-row {
        margin-bottom: 14px;
    }
    form.woocommerce-checkout:not(.kco-checkout) .form-row label {
        font-size: 0.88rem;
        font-weight: 500;
        color: var(--mjco-mute);
        margin-bottom: 4px;
    }
    form.woocommerce-checkout:not(.kco-checkout) .input-text,
    form.woocommerce-checkout:not(.kco-checkout) select {
        width: 100%;
        padding: 12px 14px;
        font-size: 1rem;
        border: 1px solid var(--mjco-line);
        border-radius: 8px;
        background: #fff;
        color: var(--mjco-ink);
        transition: border-color 0.18s ease, box-shadow 0.18s ease;
    }
    form.woocommerce-checkout:not(.kco-checkout) .input-text:focus,
    form.woocommerce-checkout:not(.kco-checkout) select:focus {
        border-color: var(--mjco-green);
        box-shadow: 0 0 0 3px rgba(95, 142, 56, 0.18);
        outline: 0;
    }
    form.woocommerce-checkout:not(.kco-checkout) #payment {
        background: var(--mjco-card);
        border-radius: var(--mjco-radius);
        padding: 18px;
        margin-top: 18px;
    }
    form.woocommerce-checkout:not(.kco-checkout) #payment ul.payment_methods {
        background: transparent;
        padding: 0;
        margin: 0;
        border: 0;
    }
    form.woocommerce-checkout:not(.kco-checkout) #payment ul.payment_methods li {
        background: #fff;
        border: 1px solid var(--mjco-line);
        border-radius: 8px;
        padding: 12px 14px;
        margin-bottom: 8px;
        list-style: none;
    }
    form.woocommerce-checkout:not(.kco-checkout) #payment ul.payment_methods li label {
        font-weight: 600;
        color: var(--mjco-ink);
    }
    form.woocommerce-checkout:not(.kco-checkout) #place_order {
        width: 100%;
        background: linear-gradient(135deg, var(--mjco-green) 0%, #6f9f43 100%);
        color: #fff;
        border: 0;
        padding: 16px 22px;
        font-size: 1.05rem;
        font-weight: 700;
        border-radius: 10px;
        cursor: pointer;
        box-shadow: 0 12px 28px rgba(95, 142, 56, 0.22);
        transition: transform 0.18s ease, box-shadow 0.18s ease;
    }
    form.woocommerce-checkout:not(.kco-checkout) #place_order:hover {
        transform: translateY(-1px);
        box-shadow: 0 16px 32px rgba(95, 142, 56, 0.28);
    }

    @media (max-width: 900px) {
        #kco-wrapper {
            grid-template-columns: 1fr;
            gap: 14px;
        }
        #kco-order-review {
            order: 1;
            padding: 14px 14px 10px;
            font-size: 0.95rem;
        }
        #kco-iframe {
            order: 2;
            padding: 4px;
            min-height: auto;
        }
        .kco-checkout {
            padding: 0 12px 80px;
        }
        form.woocommerce-checkout:not(.kco-checkout) {
            padding: 18px 16px 100px;
            border-radius: 0;
            box-shadow: none;
        }
        form.woocommerce-checkout:not(.kco-checkout) .form-row.place-order {
            /* Negative-margin sticky breakout caused visual offset on Swish/Stripe
               checkout (button wandered left of card). Simpler: in-flow row with
               normal margins. The card itself isn't huge so sticky is overkill. */
            position: relative;
            margin: 18px 0 0;
            padding: 0;
            background: transparent;
            border-top: 0;
            box-shadow: none;
        }
        form.woocommerce-checkout:not(.kco-checkout) .form-row.place-order #place_order {
            width: 100%;
        }
    }

    .checkout-trust-badges,
    .woocommerce-checkout .shoptimizer-checkout-trust,
    .woocommerce-checkout .mj-trust-bar,
    .mj-checkout-reassurance { display: none !important; }

    @media (prefers-reduced-motion: reduce) {
        *, *::before, *::after {
            animation-duration: 0.01ms !important;
            transition-duration: 0.01ms !important;
            transform: none !important;
        }
    }

/* ============================================================================
