/* One card action treatment, independent of WooCommerce's wrapper placement.
 * View options, Add to cart and Notify me keep their original behavior.
 * The unavailable selector also supersedes the old notification color rules.
 * Loaded after the catalogue UI via the WordPress stylesheet dependency.
 */
body .nb-product-card .nb-product-card__actions .nb-product-card__cta,
.woocommerce ul.products li.product .nb-product-card .nb-product-card__actions .nb-product-card__cta,
.woocommerce ul.products li.product .nb-product-card.is-out-of-stock-product .nb-product-card__body .nb-product-card__actions .nb-product-card__cta.nb-product-card__cta--unavailable {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    box-sizing: border-box !important;
    width: 100% !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 9px 12px !important;
    background: transparent !important;
    color: #000000 !important;
    border: 1px solid #B8BFCA !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    font-family: inherit !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
    text-align: center !important;
    text-decoration: none !important;
    text-transform: none !important;
    transform: none !important;
    transition: border-color .15s ease !important;
}
body .nb-product-card .nb-product-card__actions .nb-product-card__cta:hover,
.woocommerce ul.products li.product .nb-product-card .nb-product-card__actions .nb-product-card__cta:hover,
.woocommerce ul.products li.product .nb-product-card.is-out-of-stock-product .nb-product-card__body .nb-product-card__actions .nb-product-card__cta.nb-product-card__cta--unavailable:hover {
    background: transparent !important;
    color: #000000 !important;
    border-color: var(--nb-primary-text, #172033) !important;
    box-shadow: none !important;
    transform: none !important;
}
body .nb-product-card .nb-product-card__actions .nb-product-card__cta:focus-visible {
    outline: 2px solid var(--nb-primary-blue, #2549B8) !important;
    outline-offset: 3px !important;
}
/* Empty decorative SVG masks leave the link's text/accessible name unchanged.
 * Existing action classes also support previously cached and AJAX card markup.
 */
body .nb-product-card .nb-product-card__actions .nb-product-card__cta::before {
    content: "";
    display: inline-block;
    flex: 0 0 15px;
    width: 15px;
    height: 15px;
    background-color: currentColor;
    opacity: .65;
    -webkit-mask: url('icons/card-options.svg') center / contain no-repeat;
    mask: url('icons/card-options.svg') center / contain no-repeat;
}
body .nb-product-card .nb-product-card__actions .nb-product-card__cta.add_to_cart_button::before {
    -webkit-mask-image: url('icons/card-cart.svg');
    mask-image: url('icons/card-cart.svg');
}
body .nb-product-card .nb-product-card__actions .nb-product-card__cta.nb-product-card__cta--unavailable::before {
    -webkit-mask-image: url('icons/card-bell.svg');
    mask-image: url('icons/card-bell.svg');
}
/* Repeat three restrained palette tints across every product loop. These are
 * decorative outlines, not stock/deal signals, and need no JS on grid swaps.
 */
body .products > :nth-child(3n+1) {
    --nb-card-accent: var(--nb-primary-blue, #2549B8);
    --nb-card-outline: #BEC8EA;
}
body .products > :nth-child(3n+2) {
    --nb-card-accent: var(--nb-primary-text, #172033);
    --nb-card-outline: #B9BCC2;
}
body .products > :nth-child(3n) {
    --nb-card-accent: var(--nb-price-amber, #B46A00);
    --nb-card-outline: #E9D2B3;
}
body .nb-product-card,
body ul.products li.product .nb-product-card {
    border-color: var(--nb-card-outline, #E3E8F0) !important;
}
body .nb-product-card:is(:hover, :focus-within),
body ul.products li.product .nb-product-card:is(:hover, :focus-within) {
    border-color: var(--nb-card-accent, #2549B8) !important;
}
@supports (color: color-mix(in srgb, #000000, #FFFFFF)) {
    body .nb-product-card,
    body ul.products li.product .nb-product-card {
        border-color: color-mix(in srgb, var(--nb-card-accent, #2549B8) 30%, var(--nb-main-bg, #FFFFFF)) !important;
    }
    body .nb-product-card:is(:hover, :focus-within),
    body ul.products li.product .nb-product-card:is(:hover, :focus-within) {
        border-color: color-mix(in srgb, var(--nb-card-accent, #2549B8) 55%, var(--nb-main-bg, #FFFFFF)) !important;
    }
}
@media (max-width: 767px) {
    body .nb-product-card .nb-product-card__actions .nb-product-card__cta,
    .woocommerce ul.products li.product .nb-product-card .nb-product-card__actions .nb-product-card__cta,
.woocommerce ul.products li.product .nb-product-card.is-out-of-stock-product .nb-product-card__body .nb-product-card__actions .nb-product-card__cta.nb-product-card__cta--unavailable {
        min-height: 44px !important;
        padding: 9px 8px !important;
        font-size: 12px !important;
    }
}
@media (prefers-reduced-motion: reduce) {
    body .nb-product-card .nb-product-card__actions .nb-product-card__cta { transition: none !important; }
}
