/* V248 — badge rail hardening.
   Restores the V241-style placement: badges occupy their own rail above the
   product image; the wishlist button can never sit on top of a badge. */
.product-card-topline{
    position:relative !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    align-items:center !important;
    column-gap:8px !important;
    width:100% !important;
    min-width:0 !important;
    min-height:40px !important;
    height:auto !important;
    margin:0 0 10px !important;
    padding:0 !important;
    overflow:visible !important;
    box-sizing:border-box !important;
}
.product-card-topline .product-badges{
    position:static !important;
    inset:auto !important;
    display:flex !important;
    align-items:center !important;
    flex-wrap:nowrap !important;
    gap:6px !important;
    width:100% !important;
    min-width:0 !important;
    min-height:32px !important;
    height:32px !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    pointer-events:none !important;
    z-index:1 !important;
    box-sizing:border-box !important;
}
.product-card-topline .product-badges-empty{display:block !important;}
.product-card-topline .product-badge{
    position:relative !important;
    inset:auto !important;
    top:auto !important;
    right:auto !important;
    bottom:auto !important;
    left:auto !important;
    flex:0 1 auto !important;
    min-width:0 !important;
    max-width:100% !important;
    min-height:28px !important;
    height:28px !important;
    margin:0 !important;
    padding:var(--ct-badge-py,6px) var(--ct-badge-px,9px) !important;
    box-sizing:border-box !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    overflow:hidden !important;
    white-space:nowrap !important;
    text-overflow:ellipsis !important;
    border-radius:var(--ct-badge-radius,999px) !important;
    background:var(--ct-badge-bg,#252b33) !important;
    color:var(--ct-badge-text,#fff) !important;
    border:1px solid var(--ct-badge-border,rgba(255,255,255,.22)) !important;
    font-family:var(--ct-badge-font,'IBM Plex Mono',monospace) !important;
    font-size:clamp(8px,var(--ct-badge-size,9px),10px) !important;
    font-weight:var(--ct-badge-weight,800) !important;
    letter-spacing:var(--ct-badge-spacing,.045em) !important;
    line-height:1 !important;
    text-transform:uppercase !important;
    box-shadow:0 5px 16px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.20) !important;
    animation:ctBadge248Pulse 3.4s ease-in-out infinite !important;
    isolation:isolate !important;
}
.product-card-topline .wishlist-heart-btn{
    position:relative !important;
    inset:auto !important;
    top:auto !important;
    right:auto !important;
    bottom:auto !important;
    left:auto !important;
    grid-column:2 !important;
    grid-row:1 !important;
    flex:none !important;
    width:32px !important;
    height:32px !important;
    min-width:32px !important;
    min-height:32px !important;
    margin:0 !important;
    padding:0 !important;
    z-index:6 !important;
    align-self:center !important;
    justify-self:end !important;
    transform:none !important;
}
.product-card-topline .product-badges + .wishlist-heart-btn{margin-left:0 !important;}

/* Keep the shine visible and inside the pill; do not let it paint over nearby UI. */
.product-card-topline .product-badge::after{
    content:"" !important;
    position:absolute !important;
    top:-90% !important;
    bottom:-90% !important;
    left:0 !important;
    width:48% !important;
    min-width:18px !important;
    transform:translate3d(-240%,0,0) skewX(-18deg) !important;
    background:linear-gradient(105deg,transparent 0%,rgba(255,255,255,0) 28%,rgba(255,255,255,.42) 43%,rgba(255,255,255,1) 50%,rgba(255,255,255,.42) 57%,rgba(255,255,255,0) 72%,transparent 100%) !important;
    animation:ctBadge248Shine var(--ct-badge-speed,2.35s) linear infinite !important;
    animation-play-state:running !important;
    opacity:var(--ct-badge-shine,1) !important;
    pointer-events:none !important;
    z-index:2 !important;
    display:block !important;
    will-change:transform,opacity !important;
}
.product-card-topline .product-badge{isolation:isolate !important; overflow:hidden !important;}

@keyframes ctBadge248Shine{
    0%{transform:translate3d(-240%,0,0) skewX(-18deg);opacity:0}
    10%{opacity:.9}
    24%{opacity:1}
    42%{transform:translate3d(330%,0,0) skewX(-18deg);opacity:0}
    100%{transform:translate3d(330%,0,0) skewX(-18deg);opacity:0}
}
@keyframes ctBadge248Pulse{
    0%,100%{box-shadow:0 5px 16px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.18)}
    50%{box-shadow:0 6px 20px rgba(0,0,0,.25),0 0 18px rgba(255,255,255,.22),inset 0 1px 0 rgba(255,255,255,.34)}
}

/* PDP: the badge rail is always before the gallery and never inside the image stage. */
.product-badges-pdp,
.luxury-product-page .product-badges-pdp{
    position:relative !important;
    inset:auto !important;
    display:flex !important;
    align-items:center !important;
    flex-wrap:wrap !important;
    gap:7px !important;
    width:100% !important;
    min-width:0 !important;
    min-height:34px !important;
    height:auto !important;
    margin:0 0 10px !important;
    padding:0 !important;
    overflow:visible !important;
    z-index:3 !important;
}
.product-badges-pdp .product-badge,
.luxury-product-page .product-badges-pdp .product-badge{
    position:relative !important;
    inset:auto !important;
    flex:0 0 auto !important;
    max-width:100% !important;
    min-height:28px !important;
    height:28px !important;
    overflow:hidden !important;
    border-radius:var(--ct-badge-radius,999px) !important;
    background:var(--ct-badge-bg,#252b33) !important;
    color:var(--ct-badge-text,#fff) !important;
    border-color:var(--ct-badge-border,rgba(255,255,255,.22)) !important;
    font-family:var(--ct-badge-font,'IBM Plex Mono',monospace) !important;
    font-size:var(--ct-badge-size,9px) !important;
    font-weight:var(--ct-badge-weight,800) !important;
    letter-spacing:var(--ct-badge-spacing,.045em) !important;
    line-height:1 !important;
    isolation:isolate !important;
    animation:ctBadge248Pulse 3.4s ease-in-out infinite !important;
}
.product-badges-pdp .product-badge::after,
.luxury-product-page .product-badges-pdp .product-badge::after{
    content:"" !important;
    position:absolute !important;
    top:-90% !important;
    bottom:-90% !important;
    left:0 !important;
    width:48% !important;
    transform:translate3d(-240%,0,0) skewX(-18deg) !important;
    background:linear-gradient(105deg,transparent,rgba(255,255,255,.42),rgba(255,255,255,1),rgba(255,255,255,.42),transparent) !important;
    animation:ctBadge248Shine var(--ct-badge-speed,2.35s) linear infinite !important;
    opacity:var(--ct-badge-shine,1) !important;
    z-index:2 !important;
    pointer-events:none !important;
}
.luxury-product-page .crp-gallery-stage > .crp-image-count{display:none !important;}

@media(max-width:700px){
    .product-card-topline{grid-template-columns:minmax(0,1fr) auto !important;column-gap:6px !important;min-height:36px !important;margin-bottom:8px !important;}
    .product-card-topline .product-badges{min-height:29px !important;height:29px !important;gap:5px !important;}
    .product-card-topline .product-badge{min-height:25px !important;height:25px !important;padding:5px 9px !important;font-size:8px !important;}
    .product-card-topline .wishlist-heart-btn{width:29px !important;height:29px !important;min-width:29px !important;min-height:29px !important;}
    .product-badges-pdp,.luxury-product-page .product-badges-pdp{gap:5px !important;min-height:30px !important;margin-bottom:8px !important;}
    .product-badges-pdp .product-badge,.luxury-product-page .product-badges-pdp .product-badge{min-height:25px !important;height:25px !important;padding:5px 9px !important;font-size:8px !important;}
}
