.nmf-hero,
.nmf-banners,
.nmf-gallery-carousel,
.nmf-scroll-intro,
.nmf-product-essentials,
.nmf-product-gallery,
.nmf-hero *,
.nmf-banners *,
.nmf-gallery-carousel *,
.nmf-scroll-intro *,
.nmf-product-essentials *,
.nmf-product-gallery * {
    box-sizing: border-box;
}

.nmf-hero,
.nmf-banners,
.nmf-gallery-carousel,
.nmf-scroll-intro,
.nmf-product-essentials,
.nmf-product-gallery {
    --nmf-ease: cubic-bezier(.22, .61, .36, 1);
    --nmf-text: #141217;
    --nmf-muted: rgba(20, 18, 23, .72);
    font-family: inherit;
}

.nmf-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .65em;
    min-height: 44px;
    padding: 13px 22px 12px;
    border: 1px solid currentColor;
    border-radius: 0;
    background: transparent;
    color: inherit;
    font-size: 11px;
    line-height: 1;
    letter-spacing: .16em;
    text-transform: uppercase;
    text-decoration: none !important;
    transition: color .35s var(--nmf-ease), background-color .35s var(--nmf-ease), border-color .35s var(--nmf-ease), transform .35s var(--nmf-ease);
}

.nmf-button::after {
    content: "→";
    font-size: 1.1em;
    line-height: 1;
    transform: translateY(-.02em);
    transition: transform .35s var(--nmf-ease);
}

.nmf-button:hover {
    text-decoration: none !important;
    transform: translateY(-1px);
}

.nmf-button:hover::after {
    transform: translate(.25em, -.02em);
}

@media (prefers-reduced-motion: reduce) {
    .nmf-hero *,
    .nmf-banners *,
    .nmf-gallery-carousel *,
    .nmf-scroll-intro *,
    .nmf-product-essentials *,
    .nmf-product-gallery *,
    .nmf-button,
    .nmf-button::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}


/* v0.4.8 fashion labels */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.product-grid-item,
.wd-products .product-grid-item,
.wd-product {
    position: relative;
}

.nmf-product-labels {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.nmf-product-labels--loop {
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 24;
    max-width: calc(100% - 28px);
    pointer-events: none;
}

.nmf-product-labels--single {
    margin: 0 0 18px;
}

.nmf-product-label {
    --nmf-label-bg: #141217;
    --nmf-label-color: #ffffff;
    --nmf-label-border: #141217;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 7px 12px 6px;
    border: 1px solid var(--nmf-label-border);
    border-radius: 0;
    font-size: 10px;
    line-height: 1;
    font-weight: 500;
    letter-spacing: .16em;
    text-transform: uppercase;
    box-shadow: 0 8px 22px rgba(0,0,0,.06);
    white-space: nowrap;
}

.nmf-product-label--solid {
    background: var(--nmf-label-bg);
    color: var(--nmf-label-color);
}

.nmf-product-label--outline {
    background: rgba(255,255,255,.88);
    color: var(--nmf-label-border);
}

.nmf-product-label--soft {
    background: rgba(255,255,255,.82);
    color: var(--nmf-label-border);
    backdrop-filter: blur(6px);
}

@media (max-width: 767px) {
    .nmf-product-labels--loop {
        top: 10px;
        left: 10px;
        max-width: calc(100% - 20px);
    }

    .nmf-product-label {
        min-height: 28px;
        padding: 6px 10px 5px;
        font-size: 9px;
    }
}


/* v0.4.9 automatic + glass fashion labels */
.nmf-product-labels {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.nmf-product-labels--single {
    margin: 0 0 18px;
}

.nmf-product-labels--loop {
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 24;
    max-width: calc(100% - 28px);
    pointer-events: none;
}

.nmf-product-label {
    --nmf-label-bg: rgba(255,255,255,.22);
    --nmf-label-color: #141217;
    --nmf-label-border: rgba(255,255,255,.44);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 7px 13px 6px;
    border: 1px solid var(--nmf-label-border);
    border-radius: 999px;
    font-size: 10px;
    line-height: 1;
    font-weight: 500;
    letter-spacing: .16em;
    text-transform: uppercase;
    box-shadow: 0 10px 30px rgba(0,0,0,.08);
    white-space: nowrap;
    -webkit-backdrop-filter: blur(12px) saturate(130%);
    backdrop-filter: blur(12px) saturate(130%);
}

.nmf-product-label--glass {
    background: color-mix(in srgb, var(--nmf-label-bg) 72%, transparent);
    color: var(--nmf-label-color);
}

@supports not (background: color-mix(in srgb, white 50%, transparent)) {
    .nmf-product-label--glass {
        background: rgba(255,255,255,.22);
    }
}

.nmf-product-label--solid {
    background: var(--nmf-label-bg);
    color: var(--nmf-label-color);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

.nmf-product-label--outline {
    background: rgba(255,255,255,.08);
    color: var(--nmf-label-border);
}

.nmf-product-label--soft {
    background: rgba(255,255,255,.62);
    color: var(--nmf-label-border);
}

@media (max-width: 767px) {
    .nmf-product-labels--loop {
        top: 10px;
        left: 10px;
        max-width: calc(100% - 20px);
    }

    .nmf-product-label {
        min-height: 28px;
        padding: 6px 10px 5px;
        font-size: 9px;
    }
}


/* v0.5.0 Fashion Labels Pro - square glass + positions */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.product-grid-item,
.wd-products .product-grid-item,
.wd-product {
    position: relative;
}

.nmf-product-labels {
    gap: 7px;
    pointer-events: none;
}

.nmf-product-labels--loop {
    position: absolute;
    z-index: 35;
    flex-direction: column;
    max-width: calc(100% - 28px);
}

.nmf-product-labels--pos-top-left { top: 14px; left: 14px; align-items: flex-start; }
.nmf-product-labels--pos-top-right { top: 14px; right: 14px; left: auto; align-items: flex-end; }
.nmf-product-labels--pos-bottom-left { bottom: 14px; left: 14px; top: auto; align-items: flex-start; }
.nmf-product-labels--pos-bottom-right { bottom: 14px; right: 14px; top: auto; left: auto; align-items: flex-end; }
.nmf-product-labels--pos-center { top: 50%; left: 50%; transform: translate(-50%, -50%); align-items: center; }

.nmf-product-label {
    border-radius: 0 !important;
}

.nmf-product-label--glass {
    background: linear-gradient(135deg, rgba(255,255,255,.48), color-mix(in srgb, var(--nmf-label-bg) 72%, transparent));
    border-color: var(--nmf-label-border);
    box-shadow: 0 12px 30px rgba(0,0,0,.09);
    -webkit-backdrop-filter: blur(12px) saturate(140%);
    backdrop-filter: blur(12px) saturate(140%);
}

@supports not (background: color-mix(in srgb, white 50%, transparent)) {
    .nmf-product-label--glass { background: rgba(255,255,255,.28); }
}

.nmf-product-label--editorial {
    background: rgba(244,238,235,.78);
    color: var(--nmf-label-color);
    border-color: rgba(20,18,23,.12);
    box-shadow: none;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}

.nmf-product-label--ribbon {
    background: var(--nmf-label-bg);
    color: var(--nmf-label-color);
    border-color: var(--nmf-label-border);
    box-shadow: 0 14px 28px rgba(0,0,0,.12);
    clip-path: polygon(0 0, 100% 0, calc(100% - 9px) 50%, 100% 100%, 0 100%);
}

.nmf-product-labels--pos-top-right .nmf-product-label--ribbon,
.nmf-product-labels--pos-bottom-right .nmf-product-label--ribbon {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 9px 50%);
}

@media (max-width: 767px) {
    .nmf-product-labels--pos-top-left { top: 10px; left: 10px; }
    .nmf-product-labels--pos-top-right { top: 10px; right: 10px; }
    .nmf-product-labels--pos-bottom-left { bottom: 10px; left: 10px; }
    .nmf-product-labels--pos-bottom-right { bottom: 10px; right: 10px; }
}


/* v0.5.1 Fashion Labels polish + Woodmart grid compatibility */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.product-grid-item,
.wd-products .product-grid-item,
.wd-product,
.wd-product .product-wrapper,
.wd-product .product-element-top,
.product-grid-item .product-wrapper,
.product-grid-item .product-element-top,
.product-grid-item .product-image-link,
.wd-product .product-image-link {
    position: relative;
}

.nmf-product-labels--loop {
    z-index: 60;
    max-width: calc(100% - 24px);
    line-height: 1;
}

.nmf-product-labels--pos-top-left { top: 12px; right: auto; bottom: auto; left: 12px; transform: none; align-items: flex-start; }
.nmf-product-labels--pos-top-center { top: 12px; right: auto; bottom: auto; left: 50%; transform: translateX(-50%); align-items: center; }
.nmf-product-labels--pos-top-right { top: 12px; right: 12px; bottom: auto; left: auto; transform: none; align-items: flex-end; }
.nmf-product-labels--pos-middle-left { top: 50%; right: auto; bottom: auto; left: 12px; transform: translateY(-50%); align-items: flex-start; }
.nmf-product-labels--pos-center { top: 50%; right: auto; bottom: auto; left: 50%; transform: translate(-50%, -50%); align-items: center; }
.nmf-product-labels--pos-middle-right { top: 50%; right: 12px; bottom: auto; left: auto; transform: translateY(-50%); align-items: flex-end; }
.nmf-product-labels--pos-bottom-left { top: auto; right: auto; bottom: 12px; left: 12px; transform: none; align-items: flex-start; }
.nmf-product-labels--pos-bottom-center { top: auto; right: auto; bottom: 12px; left: 50%; transform: translateX(-50%); align-items: center; }
.nmf-product-labels--pos-bottom-right { top: auto; right: 12px; bottom: 12px; left: auto; transform: none; align-items: flex-end; }

.nmf-product-label {
    max-width: min(100%, 16rem);
    min-height: 29px;
    padding: 7px 12px 6px;
    border-radius: 0 !important;
    font-size: 9.5px;
    font-weight: 500;
    letter-spacing: .155em;
    text-align: center;
    white-space: normal;
    overflow-wrap: anywhere;
}

.nmf-product-label--glass {
    background: linear-gradient(135deg, rgba(255,255,255,.60), rgba(255,255,255,.22));
    color: var(--nmf-label-color);
    border-color: var(--nmf-label-border);
    box-shadow: 0 14px 34px rgba(20,18,23,.10), inset 0 1px 0 rgba(255,255,255,.34);
    -webkit-backdrop-filter: blur(14px) saturate(145%);
    backdrop-filter: blur(14px) saturate(145%);
}

.nmf-product-label--editorial {
    background: rgba(246,241,238,.86);
    color: var(--nmf-label-color);
    border-color: rgba(20,18,23,.12);
    box-shadow: none;
}

.nmf-product-label--outline {
    background: rgba(255,255,255,.48);
    color: var(--nmf-label-color);
    border-color: var(--nmf-label-border);
    box-shadow: none;
}

.nmf-product-label--soft {
    background: rgba(246,241,238,.78);
    color: var(--nmf-label-color);
    border-color: rgba(20,18,23,.08);
    box-shadow: 0 10px 26px rgba(20,18,23,.06);
}

.nmf-product-label--ribbon {
    padding-right: 18px;
    white-space: nowrap;
}

.nmf-product-labels--pos-top-right .nmf-product-label--ribbon,
.nmf-product-labels--pos-middle-right .nmf-product-label--ribbon,
.nmf-product-labels--pos-bottom-right .nmf-product-label--ribbon {
    padding-right: 12px;
    padding-left: 18px;
}

.nmf-product-labels--single {
    gap: 8px;
    align-items: center;
    margin: 0 0 16px;
}

@media (max-width: 767px) {
    .nmf-product-labels--loop {
        max-width: calc(100% - 18px);
        gap: 5px;
    }

    .nmf-product-labels--pos-top-left { top: 9px; left: 9px; }
    .nmf-product-labels--pos-top-center { top: 9px; left: 50%; }
    .nmf-product-labels--pos-top-right { top: 9px; right: 9px; }
    .nmf-product-labels--pos-middle-left { left: 9px; }
    .nmf-product-labels--pos-middle-right { right: 9px; }
    .nmf-product-labels--pos-bottom-left { bottom: 9px; left: 9px; }
    .nmf-product-labels--pos-bottom-center { bottom: 9px; left: 50%; }
    .nmf-product-labels--pos-bottom-right { right: 9px; bottom: 9px; }

    .nmf-product-label {
        min-height: 25px;
        padding: 6px 9px 5px;
        font-size: 8.5px;
        letter-spacing: .12em;
    }
}
