/* KS 1.1.157. The homepage sheen has an 8s ease-in-out cycle, moving from
   70% to 92%, across 220.5% of the button width. Match that exact timing and
   travel with a 45%-wide background layer; preserve the basket/spinner pseudos. */
html body #page-view :is(#ks-product-detail, .kss-product) .single_add_to_cart_button.button {
    background-image: linear-gradient(112deg, transparent, #ffffff22, transparent),
        linear-gradient(135deg, #216c43, #155e39) !important;
    background-size: 45% 200%, 100% 100% !important;
    background-position: -127.272727% 50%, 0 0;
    animation: ks-purchase-home-sheen-156 8s ease-in-out infinite;
    transform: none !important;
    filter: none;
    transition: box-shadow .25s ease !important;
}
html body #page-view :is(#ks-product-detail, .kss-product) .single_add_to_cart_button.button:hover {
    background-image: linear-gradient(112deg, transparent, #ffffff22, transparent),
        linear-gradient(135deg, #216e43, #104e2e) !important;
    box-shadow: 0 6px 18px #133e2526 !important;
    transform: none !important;
}
@keyframes ks-purchase-home-sheen-156 {
    0%, 70% { background-position: -127.272727% 50%, 0 0; }
    92%, 100% { background-position: 273.636364% 50%, 0 0; }
}
html body #page-view :is(#ks-product-detail, .kss-product) .single_add_to_cart_button.button:is(:disabled, .disabled, [aria-disabled="true"], .loading) {
    animation: none;
    background-position: -127.272727% 50%, 0 0;
}
html.motion-paused body #page-view :is(#ks-product-detail, .kss-product) .single_add_to_cart_button.button {
    animation-play-state: paused;
}
@media (prefers-reduced-motion: reduce) {
    html body #page-view :is(#ks-product-detail, .kss-product) .single_add_to_cart_button.button {
        animation: none;
        transition: none !important;
        background-position: -127.272727% 50%, 0 0;
    }
}

/* Cart: native express checkout occupies its own full-width row beneath the
   ordinary cart actions, instead of becoming a third half-width grid item. */
html body .ksc-page .wc-proceed-to-checkout > :is(.wcpay-express-checkout-wrapper, .wcpay-payment-request-wrapper) {
    grid-column: 1 / -1;
    grid-row: 2;
    margin: 6px 0 0;
    padding: 0;
}
html body .ksc-page :is(.wcpay-express-checkout-wrapper, .wcpay-payment-request-wrapper) {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    float: none;
    clear: both;
}
/* The gateway controls availability, iframe height and its responsive button
   layout. Do not force display/height on the iframe or redraw branded buttons. */
html body .ksc-page #wcpay-express-checkout-element {
    width: 100%;
    min-width: 0;
    max-width: 100%;
}

/* Checkout: a single stable native host, following the payment choices in
   source/keyboard order. AJAX replaces #payment, not this host. */
html body .ksc-page .ksc-express-payments {
    grid-column: 1;
    grid-row: 5;
    order: 3;
    width: 100%;
    min-width: 0;
    margin: 0 0 22px;
}
html body .ksc-page .ksc-express-payments > :is(.wcpay-express-checkout-wrapper, .wcpay-payment-request-wrapper) {
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0;
}
html body .ksc-page .ksc-express-payments #wcpay-express-checkout-button-separator {
    order: -1;
    margin: 0 0 16px !important;
    color: var(--muted);
}
html body .ksc-page .ksc-express-payments:empty,
html body .ksc-page .ksc-express-payments:not(:has(.wcpay-express-checkout-wrapper, .wcpay-payment-request-wrapper)) {
    display: none;
}
html body .ksc-page .ksc-notes-panel { grid-row: 6; }
html body .ksc-steps-ready .ksc-express-payments { grid-row: 4; }
html body .ksc-steps-ready[data-step="delivery"] .ksc-notes-panel { grid-row: 5; }
html body .ksc-steps-ready .ksc-step-actions { grid-row: 6; }
html body .ksc-steps-ready .ksc-step-feedback { grid-row: 7; }

/* Details and final review never contain express purchase buttons. Scope the
   fallback to known native wrappers too, in case a future gateway changes hooks. */
html body .ksc-steps-ready:not([data-step="delivery"]) :is(.ksc-express-payments, .wcpay-express-checkout-wrapper, .wcpay-payment-request-wrapper),
html body .ksc-steps-ready:not([data-step="delivery"]) #wcpay-express-checkout-button-separator,
html body .ksc-page:has(#payment[data-shipping-ready="false"]) .ksc-express-payments,
html body .ksc-page:has(.ksc-retry-update:not([hidden])) .ksc-express-payments,
html body .ksc-page.ksc-calculating .ksc-express-payments {
    display: none !important;
}
@media (max-width: 700px) {
    html body .ksc-page .ksc-express-payments { margin-block-end: 20px; }
    html body .ksc-page .wc-proceed-to-checkout > :is(.wcpay-express-checkout-wrapper, .wcpay-payment-request-wrapper) {
        margin-block-start: 8px;
    }
}

/* All native card brands are visible; wrap under the label on narrow screens. */
html body .ksc-page .woocommerce #payment ul.payment_methods > li > label:has(.ks-payment-card-logos) {
    display: inline-flex; flex-wrap: wrap; align-items: center; gap: 10px 14px;
}
html body .ksc-page .woocommerce #payment .payment-methods--logos.ks-payment-card-logos {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end;
    gap: 6px; float: none; min-width: 0; max-width: 100%; margin-inline-start: auto; overflow: visible;
}
html body .ksc-page .woocommerce #payment ul.payment_methods > li > label .ks-payment-card-logos > img {
    display: block; flex: 0 0 38px; width: 38px !important; height: 24px !important;
    max-width: 38px !important; max-height: 24px !important; margin: 0 !important;
    padding: 0; object-fit: contain; border-radius: 2px;
}
@media (max-width: 700px) {
    html body .ksc-page .woocommerce #payment .payment-methods--logos.ks-payment-card-logos {
        flex-basis: 100%; justify-content: flex-start; margin-inline-start: 0;
    }
}
