/* NLC Product Highlights & Badges — frontend v1.1.12 */

.nlcph-image-host > .nlcph-badges.nlcph-badges--anchored { visibility:visible !important; opacity:1 !important; }
.nlcph-card-config { display:none !important; }

.nlcph-image-host {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    line-height: 0 !important;
    overflow: visible !important;
    isolation: isolate;
    --nlcph-pulse-duration:2.8s;
    --nlcph-orbit-duration:4.8s;
}
.nlcph-image-host > img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto;
}

.nlcph-host-speed--slow { --nlcph-pulse-duration:4.5s; --nlcph-orbit-duration:7.2s; }
.nlcph-host-speed--normal { --nlcph-pulse-duration:2.8s; --nlcph-orbit-duration:4.8s; }
.nlcph-host-speed--fast { --nlcph-pulse-duration:1.65s; --nlcph-orbit-duration:2.7s; }

.nlcph-badges,
.nlcph-badges.nlcph-badges--anchored {
    position: absolute !important;
    top: 10px !important;
    z-index: 999 !important;
    display: flex !important;
    gap: 7px;
    max-width: calc(100% - 20px);
    flex-wrap: wrap;
    pointer-events: none;
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
    transform: none !important;
    --nlcph-badge-duration:2.15s;
}
.nlcph-badges--right { right: 10px !important; left: auto !important; justify-content:flex-end; }
.nlcph-badges--left  { left: 10px !important; right: auto !important; justify-content:flex-start; }
.nlcph-badges--speed-slow { --nlcph-badge-duration:3.4s; }
.nlcph-badges--speed-normal { --nlcph-badge-duration:2.15s; }
.nlcph-badges--speed-fast { --nlcph-badge-duration:1.25s; }

.nlcph-badge {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:28px;
    padding:6px 10px;
    border-radius:8px;
    color:var(--nlcph-text,#fff);
    font-size:12px;
    line-height:1;
    font-weight:800;
    letter-spacing:.02em;
    box-shadow:0 4px 12px rgba(0,0,0,.16);
    text-transform:uppercase;
    white-space:nowrap;
    border:1px solid rgba(255,255,255,.22);
    backdrop-filter:blur(4px);
}
.nlcph-badge--sale { background:linear-gradient(135deg,var(--nlcph-sale,#011d83),var(--nlcph-electric,#00a8ff)); }
.nlcph-badge--discount { background:linear-gradient(135deg,var(--nlcph-discount,#011d83),var(--nlcph-electric,#00a8ff)); }
.nlcph-badge--new { background:linear-gradient(135deg,var(--nlcph-new,#00a8ff),var(--nlcph-primary,#011d83)); }
.nlcph-badge--featured { background:linear-gradient(135deg,var(--nlcph-featured,#011d83),var(--nlcph-electric,#00a8ff)); }
.nlcph-badge--preorder { background:linear-gradient(135deg,var(--nlcph-preorder,#011d83),var(--nlcph-electric,#00a8ff)); }
.nlcph-badge--wholesale { background:linear-gradient(135deg,var(--nlcph-wholesale,#011d83),var(--nlcph-electric,#00a8ff)); }
.nlcph-badge--custom { background:linear-gradient(135deg,var(--nlcph-custom,#011d83),var(--nlcph-electric,#00a8ff)); }

/* Optional commercial shipping label shown beside the product price. */
.nlcph-shipping-label {
    display:inline-flex !important;
    align-items:center;
    margin-left:10px;
    color:var(--nlcph-shipping,#16c95b) !important;
    font-size:14px;
    font-weight:800;
    line-height:1.2;
    white-space:nowrap;
    vertical-align:middle;
    text-transform:none;
}


/* Base aura: always restricted to the product photo. */
.nlcph-image-host.nlcph-host-highlight::after {
    content:"";
    position:absolute;
    inset:0;
    z-index:20;
    pointer-events:none;
    box-sizing:border-box;
    border-radius:6px;
    border:2px solid transparent;
    transition:border-color .3s ease, box-shadow .3s ease, opacity .3s ease;
}
.nlcph-image-host.nlcph-host-glow--electric.nlcph-host-intensity--soft::after {
    border-color:var(--nlcph-glow-electric);
    box-shadow:inset 0 0 7px var(--nlcph-glow-electric-soft),0 0 8px var(--nlcph-glow-electric-soft);
}
.nlcph-image-host.nlcph-host-glow--electric.nlcph-host-intensity--medium::after {
    border-color:var(--nlcph-glow-electric);
    box-shadow:inset 0 0 10px var(--nlcph-glow-electric-rgba),inset 0 0 20px var(--nlcph-glow-electric-soft),0 0 13px var(--nlcph-glow-electric-rgba);
}
.nlcph-image-host.nlcph-host-glow--electric.nlcph-host-intensity--strong::after {
    border-color:var(--nlcph-glow-electric);
    box-shadow:inset 0 0 14px var(--nlcph-glow-electric-rgba),inset 0 0 30px var(--nlcph-glow-electric-soft),0 0 18px var(--nlcph-glow-electric-rgba),0 0 30px var(--nlcph-glow-electric-soft);
}
.nlcph-image-host.nlcph-host-glow--primary.nlcph-host-intensity--soft::after {
    border-color:var(--nlcph-glow-primary);
    box-shadow:inset 0 0 7px var(--nlcph-glow-primary-soft),0 0 8px var(--nlcph-glow-primary-soft);
}
.nlcph-image-host.nlcph-host-glow--primary.nlcph-host-intensity--medium::after {
    border-color:var(--nlcph-glow-primary);
    box-shadow:inset 0 0 10px var(--nlcph-glow-primary-rgba),inset 0 0 20px var(--nlcph-glow-primary-soft),0 0 13px var(--nlcph-glow-primary-rgba);
}
.nlcph-image-host.nlcph-host-glow--primary.nlcph-host-intensity--strong::after {
    border-color:var(--nlcph-glow-primary);
    box-shadow:inset 0 0 14px var(--nlcph-glow-primary-rgba),inset 0 0 30px var(--nlcph-glow-primary-soft),0 0 18px var(--nlcph-glow-primary-rgba),0 0 30px var(--nlcph-glow-primary-soft);
}

/* Aura mode 1: smooth breathing pulse. */
.nlcph-image-host.nlcph-host-animation--pulse.nlcph-host-glow--electric::after {
    animation:nlcphHostPulseElectric var(--nlcph-pulse-duration) ease-in-out infinite;
}
.nlcph-image-host.nlcph-host-animation--pulse.nlcph-host-glow--primary::after {
    animation:nlcphHostPulsePrimary var(--nlcph-pulse-duration) ease-in-out infinite;
}
@keyframes nlcphHostPulseElectric {
    0%,100% { opacity:.72; box-shadow:inset 0 0 7px var(--nlcph-glow-electric-rgba),inset 0 0 16px var(--nlcph-glow-electric-soft),0 0 9px var(--nlcph-glow-electric-soft); }
    50% { opacity:1; box-shadow:inset 0 0 15px var(--nlcph-glow-electric-rgba),inset 0 0 32px var(--nlcph-glow-electric-soft),0 0 20px var(--nlcph-glow-electric-rgba),0 0 34px var(--nlcph-glow-electric-soft); }
}
@keyframes nlcphHostPulsePrimary {
    0%,100% { opacity:.72; box-shadow:inset 0 0 7px var(--nlcph-glow-primary-rgba),inset 0 0 16px var(--nlcph-glow-primary-soft),0 0 9px var(--nlcph-glow-primary-soft); }
    50% { opacity:1; box-shadow:inset 0 0 15px var(--nlcph-glow-primary-rgba),inset 0 0 32px var(--nlcph-glow-primary-soft),0 0 20px var(--nlcph-glow-primary-rgba),0 0 34px var(--nlcph-glow-primary-soft); }
}

/* Aura mode 2: three smooth luminous segments orbit the image border.
   This replaces the old point lights, which looked like dots at the corners. */
.nlcph-orbit-lights {
    position:absolute;
    inset:0;
    z-index:24;
    pointer-events:none;
    overflow:hidden;
    border-radius:6px;
}
.nlcph-orbit-lights::before {
    content:"";
    position:absolute;
    inset:0;
    padding:3px;
    border-radius:inherit;
    background:conic-gradient(
        from 0deg,
        transparent 0deg 18deg,
        currentColor 28deg,
        transparent 44deg 126deg,
        currentColor 138deg,
        transparent 154deg 238deg,
        currentColor 250deg,
        transparent 266deg 360deg
    );
    -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
    -webkit-mask-composite:xor;
    mask-composite:exclude;
    animation:nlcphOrbitSpin var(--nlcph-orbit-duration) linear infinite;
    will-change:transform;
}
.nlcph-host-glow--electric .nlcph-orbit-lights { color:var(--nlcph-glow-electric); }
.nlcph-host-glow--primary .nlcph-orbit-lights { color:var(--nlcph-glow-primary); }
.nlcph-host-intensity--soft .nlcph-orbit-lights::before { opacity:.70; filter:drop-shadow(0 0 3px currentColor); padding:2px; }
.nlcph-host-intensity--medium .nlcph-orbit-lights::before { opacity:.92; filter:drop-shadow(0 0 5px currentColor) drop-shadow(0 0 8px currentColor); padding:3px; }
.nlcph-host-intensity--strong .nlcph-orbit-lights::before { opacity:1; filter:drop-shadow(0 0 6px currentColor) drop-shadow(0 0 12px currentColor); padding:4px; }
.nlcph-image-host.nlcph-host-animation--orbit::after { opacity:.30; }
@keyframes nlcphOrbitSpin { to { transform:rotate(360deg); } }

/* Optional independent pulse for badges. */
.nlcph-badges--pulse .nlcph-badge {
    animation:nlcphBadgePulse var(--nlcph-badge-duration) ease-in-out infinite;
    animation-delay:0s !important;
    transform-origin:center;
    will-change:transform,filter;
}
@keyframes nlcphBadgePulse {
    0%,100% { transform:scale(1); filter:brightness(1); }
    50% { transform:scale(1.055); filter:brightness(1.16) drop-shadow(0 0 5px rgba(0,168,255,.38)); }
}

img.nlcph-img-highlight { outline:none !important; box-shadow:none !important; animation:none !important; }

@media (prefers-reduced-motion: reduce) {
    .nlcph-image-host.nlcph-host-highlight::after,
    .nlcph-orbit-lights::before,
    .nlcph-badges--pulse .nlcph-badge { animation:none !important; }
    .nlcph-orbit-lights { display:none !important; }
}
@media (max-width:767px) {
    .nlcph-badges,.nlcph-badges.nlcph-badges--anchored { top:7px !important; gap:5px; max-width:calc(100% - 14px); }
    .nlcph-badges--right { right:7px !important; }
    .nlcph-badges--left { left:7px !important; }
    .nlcph-badge { min-height:25px;padding:5px 8px;font-size:10px;border-radius:7px; }
    .nlcph-shipping-label { margin-left:7px; font-size:13px; }
}



/* v1.1.13 — stable price + shipping row, especially for variable products */
.nlcph-price-row {
    display:flex !important;
    align-items:baseline !important;
    align-content:flex-start !important;
    flex-wrap:wrap !important;
    column-gap:10px !important;
    row-gap:3px !important;
    width:100%;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
}

.nlcph-price-row > .price,
.nlcph-price-row > .woocommerce-loop-product__price,
.nlcph-price-row > .wc-block-grid__product-price,
.nlcph-price-row > [class*="product-price"] {
    display:inline-flex !important;
    align-items:baseline !important;
    flex-wrap:wrap !important;
    width:auto !important;
    min-height:0 !important;
    margin-top:0 !important;
    margin-bottom:0 !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
}

.nlcph-price-row > .nlcph-shipping-label {
    flex:0 0 auto;
    margin:0 !important;
    padding:0 !important;
    line-height:1.2 !important;
}

/* If a long variable price and FREE SHIPPING do not fit together,
   the label moves immediately to the next line without creating a gap above. */
@media (max-width:767px) {
    .nlcph-price-row {
        column-gap:7px !important;
        row-gap:2px !important;
    }
    .nlcph-price-row > .nlcph-shipping-label {
        font-size:13px;
    }
}


/* v1.1.14 — badge sizes, image badges, compact shipping and hidden variation-gap cleanup */
.nlcph-badge {
    min-height:var(--nlcph-badge-min-height,28px) !important;
    padding:var(--nlcph-badge-pad-y,6px) var(--nlcph-badge-pad-x,10px) !important;
    border-radius:var(--nlcph-badge-radius,8px) !important;
    font-size:var(--nlcph-badge-font-size,12px) !important;
}
.nlcph-badge.nlcph-badge--image {
    min-height:0 !important; padding:0 !important; border:0 !important;
    border-radius:0 !important; background:transparent !important;
    box-shadow:none !important; backdrop-filter:none !important; overflow:visible;
}
.nlcph-badge--image img {
    display:block; width:auto; height:auto; max-height:var(--nlcph-badge-image-height,52px);
    max-width:min(160px,calc(100vw - 36px)); object-fit:contain;
    filter:drop-shadow(0 3px 6px rgba(0,0,0,.18));
}
.nlcph-shipping-label {
    margin-left:0 !important; font-size:11px !important; font-weight:850 !important;
    letter-spacing:-.05px; line-height:1.08 !important;
}
.nlcph-price-row { column-gap:6px !important; row-gap:2px !important; }
.nlcph-collapse-hidden-variation,.nlcph-collapse-hidden-variation-parent {
    display:none !important; visibility:hidden !important; height:0 !important;
    min-height:0 !important; max-height:0 !important; margin:0 !important;
    padding:0 !important; border:0 !important; overflow:hidden !important;
}
@media (max-width:767px) {
    .nlcph-badge {
        min-height:var(--nlcph-badge-mobile-min-height,25px) !important;
        padding:var(--nlcph-badge-mobile-pad-y,5px) var(--nlcph-badge-mobile-pad-x,8px) !important;
        font-size:var(--nlcph-badge-mobile-font-size,10px) !important;
    }
    .nlcph-badge.nlcph-badge--image { min-height:0 !important; padding:0 !important; }
    .nlcph-badge--image img { max-height:var(--nlcph-badge-mobile-image-height,44px); }
    .nlcph-shipping-label { font-size:10px !important; }
    .nlcph-price-row { column-gap:5px !important; row-gap:1px !important; }
}


/* v1.1.15 — right-aligned shipping label + stronger variable-card gap cleanup */
.nlcph-price-row {
    display:flex !important;
    align-items:baseline !important;
    justify-content:flex-start !important;
    flex-wrap:wrap !important;
    width:100% !important;
    min-width:0 !important;
    column-gap:6px !important;
    row-gap:2px !important;
}

.nlcph-price-row > .price,
.nlcph-price-row > .woocommerce-loop-product__price,
.nlcph-price-row > .wc-block-grid__product-price,
.nlcph-price-row > [class*="product-price"] {
    flex:0 1 auto !important;
    width:auto !important;
    min-width:0 !important;
    margin-right:0 !important;
}

.nlcph-price-row > .nlcph-shipping-label {
    flex:0 0 auto !important;
    margin-left:auto !important;
    text-align:right !important;
    white-space:nowrap !important;
    font-size:11px !important;
    line-height:1.08 !important;
}

/* Hidden variation/swatches placeholders must not reserve vertical space. */
.nlcph-collapse-hidden-variation,
.nlcph-collapse-hidden-variation-parent {
    display:none !important;
    visibility:hidden !important;
    position:static !important;
    width:0 !important;
    height:0 !important;
    min-width:0 !important;
    min-height:0 !important;
    max-width:0 !important;
    max-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    overflow:hidden !important;
}

@media (max-width:767px) {
    .nlcph-price-row > .nlcph-shipping-label {
        font-size:10px !important;
    }
}


/* v1.1.16 — leave variation layout to NLC Shop UX; keep shipping compact */
.nlcph-price-row > .nlcph-shipping-label {
    margin-left:auto !important;
    text-align:right !important;
    white-space:nowrap !important;
    font-size:9px !important;
    line-height:1.05 !important;
    letter-spacing:-.08px !important;
}

@media (max-width:767px) {
    .nlcph-price-row > .nlcph-shipping-label {
        font-size:8.5px !important;
    }
}
