/* ========================================
   NECOX Product Showcase Widget Styles
   ======================================== */

/* Base Wrapper */
.necox-products-wrapper {
    position: relative;
    width: 100%;
    isolation: isolate; /* Stacking context'i widget içine hapseder, dışarıdaki elementleri etkilemez */
    /* overflow: hidden — kaldırıldı: diğer elementlerin layout'unu bozuyordu */
}

/* Carousel wrapper needs controlled overflow */
.necox-products-wrapper[data-layout="carousel"] {
    overflow: hidden;
}

/* Background Video Container */
.necox-card-bg-video-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}

.necox-card-bg-video {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    transform: translate(-50%, -50%);
    object-fit: cover;
}

/* Ensure content is above video — z-index sadece video olan kartın içinde yönetilir */
.necox-products-grid {
    position: relative;
    /* z-index kaldırıldı: sayfa genelinde stacking context bozuyordu */
}

/* Grid Layout - only for grid type */
.necox-products-wrapper[data-layout="grid"] .necox-products-grid,
.necox-products-wrapper:not([data-layout]) .necox-products-grid {
    display: grid;
    gap: 0; /* Default 0, widget kontrollerinden ayarlanacak */
    /* grid-template-columns Elementor kontrollerinden ayarlanacak */
}

/* Fallback for non-configured grids - only for grid layout */
.necox-products-wrapper[data-layout="grid"] .necox-products-grid:not([style*="grid-template-columns"]),
.necox-products-wrapper:not([data-layout]) .necox-products-grid:not([style*="grid-template-columns"]) {
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}


/* Product Item - Initial Hidden State */
.necox-product-item {
    opacity: 1;
    transform: none;
}

/* Only hide if entrance animation is set (not 'none') - NOT for carousel */
.necox-products-wrapper:not([data-entrance-animation="none"]):not([data-layout="carousel"]) .necox-product-item:not(.animated) {
    opacity: 0;
}

.necox-products-wrapper[data-entrance-animation="fade-in-up"]:not([data-layout="carousel"]) .necox-product-item:not(.animated),
.necox-products-wrapper[data-entrance-animation="fade-in-down"]:not([data-layout="carousel"]) .necox-product-item:not(.animated) {
    transform: translateY(30px);
}

.necox-products-wrapper[data-entrance-animation="zoom-in"]:not([data-layout="carousel"]) .necox-product-item:not(.animated) {
    transform: scale(0.8);
}

.necox-products-wrapper[data-entrance-animation="slide-in-left"]:not([data-layout="carousel"]) .necox-product-item:not(.animated) {
    transform: translateX(-50px);
}

.necox-products-wrapper[data-entrance-animation="slide-in-right"]:not([data-layout="carousel"]) .necox-product-item:not(.animated) {
    transform: translateX(50px);
}

/* Elementor Editor - Show items immediately (ONLY in editor) */
.elementor-editor-active .necox-product-item,
.elementor-editor-preview .necox-product-item {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    visibility: visible !important;
}

/* Force visibility in editor */
.elementor-editor-active .necox-products-wrapper,
.elementor-editor-preview .necox-products-wrapper {
    min-height: 200px;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Ensure grid displays in editor */
.elementor-editor-active .necox-products-wrapper[data-layout="grid"] .necox-products-grid,
.elementor-editor-preview .necox-products-wrapper[data-layout="grid"] .necox-products-grid,
.elementor-editor-active .necox-products-wrapper:not([data-layout]) .necox-products-grid,
.elementor-editor-preview .necox-products-wrapper:not([data-layout]) .necox-products-grid {
    display: grid !important;
    opacity: 1 !important;
    visibility: visible !important;
}


/* Override: Carousel layout uses flex */
.elementor-editor-active .necox-products-wrapper[data-layout="carousel"] .necox-products-grid,
.elementor-editor-preview .necox-products-wrapper[data-layout="carousel"] .necox-products-grid {
    display: flex !important;
}

/* Card visibility - editor only */
.elementor-editor-active .necox-product-card,
.elementor-editor-preview .necox-product-card {
    opacity: 1 !important;
    visibility: visible !important;
}

/* Content visibility - editor only */
.elementor-editor-active .necox-product-content,
.elementor-editor-preview .necox-product-content {
    opacity: 1 !important;
    visibility: visible !important;
}

/* Product Card Outer */
.necox-product-card-outer {
    position: relative;
    display: block;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Product Card */
.necox-product-card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Background Image Overlay */
.necox-product-card::before {
    z-index: 0;
}

/* Ensure content is above background overlay — sadece bg-video varsa z-index uygula */
.necox-card-bg-video-container ~ * {
    position: relative;
    z-index: 1;
}

/* Product Image */
.necox-product-image {
    position: relative;
    width: 100%;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.necox-product-image img,
.necox-product-image video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Discount Badge */
.necox-discount-badge {
    position: absolute;
    padding: 8px 15px;
    border-radius: 25px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    z-index: 10;
}

/* Badge with animation enabled */
.necox-discount-badge[data-animation]:not([data-animation="none"]) {
    animation-iteration-count: infinite;
}

/* Badge Positions */
.necox-discount-badge[data-position="top-left"] {
    top: var(--badge-offset-y, 15px);
    left: var(--badge-offset-x, 15px);
}

.necox-discount-badge[data-position="top-right"] {
    top: var(--badge-offset-y, 15px);
    right: var(--badge-offset-x, 15px);
}

.necox-discount-badge[data-position="top-center"] {
    top: var(--badge-offset-y, 15px);
    left: 50%;
    transform: translateX(-50%);
}

.necox-discount-badge[data-position="bottom-left"] {
    bottom: var(--badge-offset-y, 15px);
    left: var(--badge-offset-x, 15px);
}

.necox-discount-badge[data-position="bottom-right"] {
    bottom: var(--badge-offset-y, 15px);
    right: var(--badge-offset-x, 15px);
}

.necox-discount-badge[data-position="bottom-center"] {
    bottom: var(--badge-offset-y, 15px);
    left: 50%;
    transform: translateX(-50%);
}

/* Badge Animations */

/* 💓 Pulse Animation */
.necox-discount-badge[data-animation="pulse"] {
    animation-name: badgePulse;
}

@keyframes badgePulse {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.1);
    }
}

/* Top/Bottom center pulse fix */
.necox-discount-badge[data-position="top-center"][data-animation="pulse"],
.necox-discount-badge[data-position="bottom-center"][data-animation="pulse"] {
    animation-name: badgePulseCenter;
}

@keyframes badgePulseCenter {
    0%, 100% {
        transform: translateX(-50%) scale(1);
    }
    50% {
        transform: translateX(-50%) scale(1.1);
    }
}

/* 🎾 Bounce Animation */
.necox-discount-badge[data-animation="bounce"] {
    animation-name: badgeBounce;
}

@keyframes badgeBounce {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-10px);
    }
}

.necox-discount-badge[data-position="top-center"][data-animation="bounce"],
.necox-discount-badge[data-position="bottom-center"][data-animation="bounce"] {
    animation-name: badgeBounceCenter;
}

@keyframes badgeBounceCenter {
    0%, 100% {
        transform: translate(-50%, 0);
    }
    50% {
        transform: translate(-50%, -10px);
    }
}

/* 🎪 Swing Animation */
.necox-discount-badge[data-animation="swing"] {
    animation-name: badgeSwing;
    transform-origin: top center;
}

@keyframes badgeSwing {
    20% {
        transform: rotate(15deg);
    }
    40% {
        transform: rotate(-10deg);
    }
    60% {
        transform: rotate(5deg);
    }
    80% {
        transform: rotate(-5deg);
    }
    100% {
        transform: rotate(0deg);
    }
}

/* 🔄 Rotate Animation */
.necox-discount-badge[data-animation="rotate"] {
    animation-name: badgeRotate;
}

@keyframes badgeRotate {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

.necox-discount-badge[data-position="top-center"][data-animation="rotate"],
.necox-discount-badge[data-position="bottom-center"][data-animation="rotate"] {
    animation-name: badgeRotateCenter;
}

@keyframes badgeRotateCenter {
    from {
        transform: translateX(-50%) rotate(0deg);
    }
    to {
        transform: translateX(-50%) rotate(360deg);
    }
}

/* ⚡ Flash Animation */
.necox-discount-badge[data-animation="flash"] {
    animation-name: badgeFlash;
}

@keyframes badgeFlash {
    0%, 50%, 100% {
        opacity: 1;
    }
    25%, 75% {
        opacity: 0;
    }
}

/* 📳 Shake Animation */
.necox-discount-badge[data-animation="shake"] {
    animation-name: badgeShake;
}

@keyframes badgeShake {
    0%, 100% {
        transform: translateX(0);
    }
    10%, 30%, 50%, 70%, 90% {
        transform: translateX(-5px);
    }
    20%, 40%, 60%, 80% {
        transform: translateX(5px);
    }
}

.necox-discount-badge[data-position="top-center"][data-animation="shake"],
.necox-discount-badge[data-position="bottom-center"][data-animation="shake"] {
    animation-name: badgeShakeCenter;
}

@keyframes badgeShakeCenter {
    0%, 100% {
        transform: translateX(-50%);
    }
    10%, 30%, 50%, 70%, 90% {
        transform: translateX(calc(-50% - 5px));
    }
    20%, 40%, 60%, 80% {
        transform: translateX(calc(-50% + 5px));
    }
}

/* ✨ Glow Animation */
.necox-discount-badge[data-animation="glow"] {
    animation-name: badgeGlow;
}

@keyframes badgeGlow {
    0%, 100% {
        box-shadow: 0 0 5px currentColor;
        filter: brightness(1);
    }
    50% {
        box-shadow: 0 0 20px currentColor, 0 0 30px currentColor;
        filter: brightness(1.5);
    }
}

/* 🎈 Float Animation */
.necox-discount-badge[data-animation="float"] {
    animation-name: badgeFloat;
}

@keyframes badgeFloat {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-15px);
    }
}

.necox-discount-badge[data-position="top-center"][data-animation="float"],
.necox-discount-badge[data-position="bottom-center"][data-animation="float"] {
    animation-name: badgeFloatCenter;
}

@keyframes badgeFloatCenter {
    0%, 100% {
        transform: translate(-50%, 0);
    }
    50% {
        transform: translate(-50%, -15px);
    }
}

/* Product Content */
.necox-product-content {
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    flex-grow: 1;
}

/* Category Badge */
.necox-product-category {
    display: inline-block;
    padding: 5px 12px;
    border-radius: 15px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    align-self: flex-start;
    text-decoration: none;
    transition: all 0.3s ease;
    cursor: pointer;
}

.necox-product-category:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    opacity: 0.9;
}

/* Title */
.necox-product-title {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.3;
    transition: color 0.3s ease;
}

/* Price */
.necox-product-price {
    display: flex;
    align-items: center;
    gap: 10px;
}

.necox-product-old-price {
    text-decoration: line-through;
    font-size: 16px;
    opacity: 0.6;
}

.necox-product-new-price {
    font-size: 24px;
    font-weight: 700;
}

/* Description */
.necox-product-description {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    opacity: 0.8;
}

/* Buttons */
.necox-product-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: auto;
}

.necox-product-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    text-decoration: none;
    border-radius: 5px;
    font-size: 14px;
    font-weight: 600;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
    flex: 1 1 calc(50% - 5px); /* 2 buttons per row, equal width */
    min-width: 0; /* Allow flex shrinking */
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Single button takes full width */
.necox-product-buttons:has(.necox-product-button:only-child) .necox-product-button {
    flex: 1 1 100%;
}

/* Three buttons: 2 on top, 1 on bottom full width */
.necox-product-buttons:has(.necox-product-button:nth-child(3):last-child) .necox-product-button:nth-child(3) {
    flex: 1 1 100%;
}

/* Four buttons: 2x2 grid */
.necox-product-buttons:has(.necox-product-button:nth-child(4)) .necox-product-button {
    flex: 1 1 calc(50% - 5px);
}

.necox-product-button:hover {
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.necox-product-button i,
.necox-product-button svg {
    transition: transform 0.3s ease;
    margin-right: 0; /* Removed margin, using gap instead */
    font-size: inherit;
    vertical-align: middle;
    flex-shrink: 0;
}

.necox-product-button span {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.necox-product-button:hover i,
.necox-product-button:hover svg {
    transform: scale(1.2);
}

/* Icon only buttons */
.necox-product-button:not(:has(span)) i,
.necox-product-button:not(:has(span)) svg {
    margin-right: 0;
}

/* Ensure FontAwesome icons display */
.necox-product-button i:before {
    display: inline-block;
}

/* ========================================
   ENTRANCE ANIMATIONS
   ======================================== */

/* Fade In Up */
.necox-products-wrapper[data-entrance-animation="fade-in-up"] .necox-product-item.animated {
    animation: fadeInUp 0.6s ease forwards;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Fade In Down */
.necox-products-wrapper[data-entrance-animation="fade-in-down"] .necox-product-item.animated {
    animation: fadeInDown 0.6s ease forwards;
}

@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translateY(-30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Zoom In */
.necox-products-wrapper[data-entrance-animation="zoom-in"] .necox-product-item.animated {
    animation: zoomIn 0.6s ease forwards;
}

@keyframes zoomIn {
    from {
        opacity: 0;
        transform: scale(0.8);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* Flip In Y */
.necox-products-wrapper[data-entrance-animation="flip-in-y"] .necox-product-item.animated {
    animation: flipInY 0.8s ease forwards;
}

@keyframes flipInY {
    from {
        opacity: 0;
        transform: perspective(400px) rotateY(90deg);
    }
    to {
        opacity: 1;
        transform: perspective(400px) rotateY(0);
    }
}

/* Bounce In */
.necox-products-wrapper[data-entrance-animation="bounce-in"] .necox-product-item.animated {
    animation: bounceIn 0.8s ease forwards;
}

@keyframes bounceIn {
    0% {
        opacity: 0;
        transform: scale(0.3);
    }
    50% {
        opacity: 1;
        transform: scale(1.05);
    }
    70% {
        transform: scale(0.9);
    }
    100% {
        transform: scale(1);
    }
}

/* Slide In Left */
.necox-products-wrapper[data-entrance-animation="slide-in-left"] .necox-product-item.animated {
    animation: slideInLeft 0.6s ease forwards;
}

@keyframes slideInLeft {
    from {
        opacity: 0;
        transform: translateX(-50px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Slide In Right */
.necox-products-wrapper[data-entrance-animation="slide-in-right"] .necox-product-item.animated {
    animation: slideInRight 0.6s ease forwards;
}

@keyframes slideInRight {
    from {
        opacity: 0;
        transform: translateX(50px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Rotate In */
.necox-products-wrapper[data-entrance-animation="rotate-in"] .necox-product-item.animated {
    animation: rotateIn 0.8s ease forwards;
}

@keyframes rotateIn {
    from {
        opacity: 0;
        transform: rotate(-180deg) scale(0.5);
    }
    to {
        opacity: 1;
        transform: rotate(0) scale(1);
    }
}

/* Scale Up */
.necox-products-wrapper[data-entrance-animation="scale-up"] .necox-product-item.animated {
    animation: scaleUp 0.6s ease forwards;
}

@keyframes scaleUp {
    from {
        opacity: 0;
        transform: scale(0.5);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* Swing In */
.necox-products-wrapper[data-entrance-animation="swing-in"] .necox-product-item.animated {
    animation: swingIn 0.8s ease forwards;
    transform-origin: top center;
}

@keyframes swingIn {
    0% {
        opacity: 0;
        transform: rotateX(-90deg);
    }
    100% {
        opacity: 1;
        transform: rotateX(0deg);
    }
}

/* Fade In Left */
.necox-products-wrapper[data-entrance-animation="fade-in-left"] .necox-product-item.animated {
    animation: fadeInLeft 0.6s ease forwards;
}

@keyframes fadeInLeft {
    from {
        opacity: 0;
        transform: translateX(-50px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Fade In Right */
.necox-products-wrapper[data-entrance-animation="fade-in-right"] .necox-product-item.animated {
    animation: fadeInRight 0.6s ease forwards;
}

@keyframes fadeInRight {
    from {
        opacity: 0;
        transform: translateX(50px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Zoom Out */
.necox-products-wrapper[data-entrance-animation="zoom-out"] .necox-product-item.animated {
    animation: zoomOut 0.6s ease forwards;
}

@keyframes zoomOut {
    from {
        opacity: 0;
        transform: scale(1.5);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* Flip In X */
.necox-products-wrapper[data-entrance-animation="flip-in-x"] .necox-product-item.animated {
    animation: flipInX 0.8s ease forwards;
}

@keyframes flipInX {
    from {
        opacity: 0;
        transform: perspective(400px) rotateX(90deg);
    }
    to {
        opacity: 1;
        transform: perspective(400px) rotateX(0);
    }
}

/* Rotate In Down Left */
.necox-products-wrapper[data-entrance-animation="rotate-in-down-left"] .necox-product-item.animated {
    animation: rotateInDownLeft 0.8s ease forwards;
}

@keyframes rotateInDownLeft {
    from {
        opacity: 0;
        transform: rotate(-45deg) translateY(-50px);
    }
    to {
        opacity: 1;
        transform: rotate(0) translateY(0);
    }
}

/* Rotate In Down Right */
.necox-products-wrapper[data-entrance-animation="rotate-in-down-right"] .necox-product-item.animated {
    animation: rotateInDownRight 0.8s ease forwards;
}

@keyframes rotateInDownRight {
    from {
        opacity: 0;
        transform: rotate(45deg) translateY(-50px);
    }
    to {
        opacity: 1;
        transform: rotate(0) translateY(0);
    }
}

/* Light Speed In */
.necox-products-wrapper[data-entrance-animation="light-speed-in"] .necox-product-item.animated {
    animation: lightSpeedIn 0.8s ease forwards;
}

@keyframes lightSpeedIn {
    from {
        opacity: 0;
        transform: translateX(100%) skewX(-30deg);
    }
    60% {
        opacity: 1;
        transform: translateX(-20%) skewX(20deg);
    }
    80% {
        transform: translateX(0) skewX(-5deg);
    }
    to {
        transform: translateX(0) skewX(0);
    }
}

/* Roll In */
.necox-products-wrapper[data-entrance-animation="roll-in"] .necox-product-item.animated {
    animation: rollIn 0.8s ease forwards;
}

@keyframes rollIn {
    from {
        opacity: 0;
        transform: translateX(-100%) rotate(-120deg);
    }
    to {
        opacity: 1;
        transform: translateX(0) rotate(0);
    }
}

/* Jack In The Box */
.necox-products-wrapper[data-entrance-animation="jack-in-the-box"] .necox-product-item.animated {
    animation: jackInTheBox 0.8s ease forwards;
}

@keyframes jackInTheBox {
    from {
        opacity: 0;
        transform: scale(0.1) rotate(30deg);
        transform-origin: center bottom;
    }
    50% {
        transform: scale(1.1) rotate(-10deg);
    }
    70% {
        transform: scale(0.95) rotate(3deg);
    }
    to {
        opacity: 1;
        transform: scale(1) rotate(0);
    }
}

/* Wobble */
.necox-products-wrapper[data-entrance-animation="wobble"] .necox-product-item.animated {
    animation: wobbleIn 0.8s ease forwards;
}

@keyframes wobbleIn {
    0% {
        opacity: 0;
        transform: translateX(-100%);
    }
    15% {
        transform: translateX(-25%) rotate(5deg);
    }
    30% {
        transform: translateX(20%) rotate(-3deg);
    }
    45% {
        transform: translateX(-15%) rotate(2deg);
    }
    60% {
        transform: translateX(10%) rotate(-1deg);
    }
    75% {
        transform: translateX(-5%) rotate(1deg);
    }
    100% {
        opacity: 1;
        transform: translateX(0) rotate(0);
    }
}

/* ========================================
   HOVER ANIMATIONS
   ======================================== */

/* Lift + Shadow (New Default) */
.necox-products-wrapper[data-hover-animation="lift-shadow"] .necox-product-card-outer {
    transition: all 0.3s ease;
}

.necox-products-wrapper[data-hover-animation="lift-shadow"] .necox-product-card-outer:hover {
    transform: translateY(-15px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
}

/* Tilt & Shine */
.necox-products-wrapper[data-hover-animation="tilt-shine"] .necox-product-card-outer {
    position: relative;
    overflow: hidden;
}

.necox-products-wrapper[data-hover-animation="tilt-shine"] .necox-product-card-outer:hover {
    transform: translateY(-10px) rotateX(5deg) rotateY(5deg);
}

.necox-products-wrapper[data-hover-animation="tilt-shine"] .necox-product-card-outer::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: linear-gradient(
        45deg,
        transparent 30%,
        rgba(255, 255, 255, 0.3) 50%,
        transparent 70%
    );
    transform: translateX(-100%);
    transition: transform 0.6s ease;
    z-index: 1;
    pointer-events: none;
}

.necox-products-wrapper[data-hover-animation="tilt-shine"] .necox-product-card-outer:hover::before {
    transform: translateX(100%);
}

/* Float & Shadow */
.necox-products-wrapper[data-hover-animation="float-shadow"] .necox-product-card-outer:hover {
    transform: translateY(-15px);
    box-shadow: 0 25px 50px rgba(0, 0, 0, 0.2);
}

/* Zoom & Blur Background */
.necox-products-wrapper[data-hover-animation="zoom-blur"] .necox-product-card-outer:hover {
    transform: scale(1.05);
}

.necox-products-wrapper[data-hover-animation="zoom-blur"] .necox-product-image {
    position: relative;
}

.necox-products-wrapper[data-hover-animation="zoom-blur"] .necox-product-card-outer:hover .necox-product-image::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.3);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    z-index: 1;
    pointer-events: none;
}

/* Flip Card */
.necox-products-wrapper[data-hover-animation="flip-card"] .necox-product-card-outer {
    perspective: 1000px;
}

.necox-products-wrapper[data-hover-animation="flip-card"] .necox-product-card {
    transform-style: preserve-3d;
    transition: transform 0.8s ease;
}

.necox-products-wrapper[data-hover-animation="flip-card"] .necox-product-card-outer:hover .necox-product-card {
    transform: rotateY(180deg);
}

/* Slide Content */
.necox-products-wrapper[data-hover-animation="slide-content"] .necox-product-content {
    transition: transform 0.4s ease;
}

.necox-products-wrapper[data-hover-animation="slide-content"] .necox-product-card-outer:hover .necox-product-content {
    transform: translateY(-20px);
}

/* Rotate Border */
.necox-products-wrapper[data-hover-animation="rotate-border"] .necox-product-card-outer {
    position: relative;
}

.necox-products-wrapper[data-hover-animation="rotate-border"] .necox-product-card-outer::after {
    content: '';
    position: absolute;
    inset: -3px;
    background: linear-gradient(45deg, #f093fb 0%, #f5576c 50%, #4facfe 100%);
    border-radius: inherit;
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: -1;
    pointer-events: none;
}

.necox-products-wrapper[data-hover-animation="rotate-border"] .necox-product-card-outer::before {
    content: '';
    position: absolute;
    inset: 0;
    background: inherit;
    border-radius: inherit;
    z-index: 1;
    pointer-events: none;
}

.necox-products-wrapper[data-hover-animation="rotate-border"] .necox-product-card-outer:hover::after {
    opacity: 1;
    animation: rotateBorderGradient 3s linear infinite;
}

@keyframes rotateBorderGradient {
    0% {
        filter: hue-rotate(0deg);
    }
    100% {
        filter: hue-rotate(360deg);
    }
}

/* Neon Glow */
.necox-products-wrapper[data-hover-animation="neon-glow"] .necox-product-card-outer:hover {
    box-shadow: 
        0 0 20px rgba(255, 0, 255, 0.6),
        0 0 40px rgba(0, 255, 255, 0.4),
        0 0 60px rgba(255, 255, 0, 0.2);
    animation: neonPulse 1.5s ease-in-out infinite;
}

@keyframes neonPulse {
    0%, 100% {
        filter: brightness(1);
    }
    50% {
        filter: brightness(1.3);
    }
}

/* Ripple Effect */
.necox-products-wrapper[data-hover-animation="ripple"] .necox-product-card-outer {
    position: relative;
}

.necox-products-wrapper[data-hover-animation="ripple"] .necox-product-card-outer::before {
    content: '';
    position: absolute;
    inset: -5px;
    border: 3px solid #667eea;
    border-radius: inherit;
    opacity: 0;
    transform: scale(0.9);
    pointer-events: none;
    z-index: -1;
}

.necox-products-wrapper[data-hover-animation="ripple"] .necox-product-card-outer:hover::before {
    animation: rippleEffect 1s ease-out;
}

@keyframes rippleEffect {
    0% {
        transform: scale(0.9);
        opacity: 0.8;
    }
    50% {
        opacity: 0.4;
    }
    100% {
        transform: scale(1.3);
        opacity: 0;
    }
}

/* Parallax */
.necox-products-wrapper[data-hover-animation="parallax"] .necox-product-image {
    transform-style: preserve-3d;
}

.necox-products-wrapper[data-hover-animation="parallax"] .necox-product-card-outer:hover .necox-product-image img,
.necox-products-wrapper[data-hover-animation="parallax"] .necox-product-card-outer:hover .necox-product-image video {
    transform: translateZ(30px) scale(1.1);
}

.necox-products-wrapper[data-hover-animation="parallax"] .necox-product-card-outer:hover .necox-product-content {
    transform: translateZ(15px);
}

/* Morph */
.necox-products-wrapper[data-hover-animation="morph"] .necox-product-card-outer:hover {
    border-radius: 50% 20% / 20% 50%;
    transform: rotate(5deg) scale(1.05);
}

/* Glitch Effect */
.necox-products-wrapper[data-hover-animation="glitch"] .necox-product-card-outer {
    position: relative;
}

.necox-products-wrapper[data-hover-animation="glitch"] .necox-product-card-outer:hover {
    animation: glitch 0.3s infinite;
}

@keyframes glitch {
    0% {
        transform: translate(0);
    }
    20% {
        transform: translate(-2px, 2px);
    }
    40% {
        transform: translate(-2px, -2px);
    }
    60% {
        transform: translate(2px, 2px);
    }
    80% {
        transform: translate(2px, -2px);
    }
    100% {
        transform: translate(0);
    }
}

/* Pulse Border */
.necox-products-wrapper[data-hover-animation="pulse-border"] .necox-product-card-outer {
    border: 2px solid transparent;
    transition: all 0.3s ease;
}

.necox-products-wrapper[data-hover-animation="pulse-border"] .necox-product-card-outer:hover {
    animation: pulseBorder 1s ease-in-out infinite;
}

@keyframes pulseBorder {
    0%, 100% {
        border-color: #667eea;
        box-shadow: 0 0 0 0 rgba(102, 126, 234, 0.7);
    }
    50% {
        border-color: #764ba2;
        box-shadow: 0 0 0 10px rgba(118, 75, 162, 0);
    }
}

/* Expand 3D */
.necox-products-wrapper[data-hover-animation="expand-3d"] .necox-product-card-outer {
    perspective: 1000px;
}

.necox-products-wrapper[data-hover-animation="expand-3d"] .necox-product-card-outer:hover {
    transform: translateZ(30px) scale(1.1);
}

.necox-products-wrapper[data-hover-animation="expand-3d"] .necox-product-card-outer:hover .necox-product-image {
    transform: translateZ(20px);
}

.necox-products-wrapper[data-hover-animation="expand-3d"] .necox-product-card-outer:hover .necox-product-content {
    transform: translateZ(10px);
}

/* Skew Shine */
.necox-products-wrapper[data-hover-animation="skew-shine"] .necox-product-card-outer {
    position: relative;
    overflow: hidden;
}

.necox-products-wrapper[data-hover-animation="skew-shine"] .necox-product-card-outer:hover {
    transform: skewY(-2deg) scale(1.05);
}

.necox-products-wrapper[data-hover-animation="skew-shine"] .necox-product-card-outer::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(255, 255, 255, 0.3),
        transparent
    );
    transition: left 0.5s ease;
    z-index: 10;
    pointer-events: none;
}

.necox-products-wrapper[data-hover-animation="skew-shine"] .necox-product-card-outer:hover::before {
    left: 100%;
}

/* ========================================
   PRESET THEMES - MODERN DESIGN TRENDS
   ======================================== */

/* 🎨 SCRATCH - Fully Customizable
   This is the default theme. It applies NO preset styles,
   allowing you to fully customize every aspect of the card
   using Elementor's style controls.
   
   All the controls in the Style tab will work when this is selected.
*/
.necox-products-wrapper[data-theme="scratch"] .necox-product-card-outer,
.necox-products-wrapper[data-theme="scratch"] .necox-product-card {
    /* No preset styles - fully controlled by Elementor */
}

/* 💎 GLASSMORPHISM - Frosted Glass Effect */
.necox-products-wrapper[data-theme="glassmorphism"]:not([data-theme="scratch"]) .necox-product-card-outer {
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}

.necox-products-wrapper[data-theme="glassmorphism"]:not([data-theme="scratch"]) .necox-product-card {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.necox-products-wrapper[data-theme="glassmorphism"]:not([data-theme="scratch"]) .necox-product-image {
    border-radius: 15px;
    overflow: hidden;
}

.necox-products-wrapper[data-theme="glassmorphism"]:not([data-theme="scratch"]) .necox-discount-badge {
    background: rgba(255, 255, 255, 0.3);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.4);
    color: #333;
}

.necox-products-wrapper[data-theme="glassmorphism"]:not([data-theme="scratch"]) .necox-product-button {
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.necox-products-wrapper[data-theme="glassmorphism"]:not([data-theme="scratch"]) .necox-product-button:hover {
    background: rgba(255, 255, 255, 0.4);
    transform: translateY(-2px);
}

/* 🎨 NEUMORPHISM - Soft UI */
.necox-products-wrapper[data-theme="neumorphism"]:not([data-theme="scratch"]) .necox-product-card-outer {
    background: #e0e5ec;
    border-radius: 30px;
    box-shadow: 
        20px 20px 60px #bebebe,
        -20px -20px 60px #ffffff;
}

.necox-products-wrapper[data-theme="neumorphism"]:not([data-theme="scratch"]) .necox-product-card {
    background: #e0e5ec;
    border-radius: 25px;
    box-shadow: 
        inset 8px 8px 16px #bebebe,
        inset -8px -8px 16px #ffffff;
}

.necox-products-wrapper[data-theme="neumorphism"]:not([data-theme="scratch"]) .necox-product-image {
    border-radius: 20px;
    box-shadow: 
        8px 8px 16px #bebebe,
        -8px -8px 16px #ffffff;
}

.necox-products-wrapper[data-theme="neumorphism"]:not([data-theme="scratch"]) .necox-discount-badge {
    background: #e0e5ec;
    box-shadow: 
        5px 5px 10px #bebebe,
        -5px -5px 10px #ffffff;
    color: #667eea;
    border: none;
}

.necox-products-wrapper[data-theme="neumorphism"]:not([data-theme="scratch"]) .necox-product-button {
    background: #e0e5ec;
    box-shadow: 
        5px 5px 10px #bebebe,
        -5px -5px 10px #ffffff;
    border: none;
}

.necox-products-wrapper[data-theme="neumorphism"]:not([data-theme="scratch"]) .necox-product-button:hover {
    box-shadow: 
        inset 5px 5px 10px #bebebe,
        inset -5px -5px 10px #ffffff;
}

/* 🌆 CYBERPUNK NEON */
.necox-products-wrapper[data-theme="cyberpunk"]:not([data-theme="scratch"]) .necox-product-card-outer {
    background: #0a0e27;
    border: 2px solid #00ffff;
    box-shadow: 
        0 0 20px rgba(0, 255, 255, 0.5),
        inset 0 0 20px rgba(0, 255, 255, 0.1);
    animation: neonPulseCard 2s ease-in-out infinite;
}

@keyframes neonPulseCard {
    0%, 100% {
        box-shadow: 
            0 0 20px rgba(0, 255, 255, 0.5),
            inset 0 0 20px rgba(0, 255, 255, 0.1);
    }
    50% {
        box-shadow: 
            0 0 40px rgba(0, 255, 255, 0.8),
            inset 0 0 30px rgba(0, 255, 255, 0.2);
    }
}

.necox-products-wrapper[data-theme="cyberpunk"]:not([data-theme="scratch"]) .necox-product-card {
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
    border: 1px solid #ff00ff;
}

.necox-products-wrapper[data-theme="cyberpunk"]:not([data-theme="scratch"]) .necox-product-title {
    color: #00ffff;
    text-shadow: 0 0 10px rgba(0, 255, 255, 0.8);
}

.necox-products-wrapper[data-theme="cyberpunk"]:not([data-theme="scratch"]) .necox-product-new-price {
    color: #ff00ff;
    text-shadow: 0 0 10px rgba(255, 0, 255, 0.8);
}

.necox-products-wrapper[data-theme="cyberpunk"]:not([data-theme="scratch"]) .necox-discount-badge {
    background: #ff00ff;
    color: #000;
    box-shadow: 0 0 20px rgba(255, 0, 255, 0.8);
    animation: neonPulseBadge 1.5s ease-in-out infinite;
}

@keyframes neonPulseBadge {
    0%, 100% {
        box-shadow: 0 0 20px rgba(255, 0, 255, 0.8);
    }
    50% {
        box-shadow: 0 0 40px rgba(255, 0, 255, 1);
    }
}

.necox-products-wrapper[data-theme="cyberpunk"]:not([data-theme="scratch"]) .necox-product-button {
    background: transparent;
    border: 2px solid #00ffff;
    color: #00ffff;
    text-shadow: 0 0 5px rgba(0, 255, 255, 0.8);
}

.necox-products-wrapper[data-theme="cyberpunk"]:not([data-theme="scratch"]) .necox-product-button:hover {
    background: #00ffff;
    color: #000;
    box-shadow: 0 0 30px rgba(0, 255, 255, 1);
}

/* 🌙 DARK MODE PREMIUM */
.necox-products-wrapper[data-theme="dark-mode"]:not([data-theme="scratch"]) .necox-product-card-outer {
    background: #1e1e1e;
    border: 1px solid #333;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
}

.necox-products-wrapper[data-theme="dark-mode"]:not([data-theme="scratch"]) .necox-product-card {
    background: linear-gradient(135deg, #2d2d2d 0%, #1a1a1a 100%);
    border: 1px solid #404040;
}

.necox-products-wrapper[data-theme="dark-mode"]:not([data-theme="scratch"]) .necox-product-title {
    color: #ffffff;
}

.necox-products-wrapper[data-theme="dark-mode"]:not([data-theme="scratch"]) .necox-product-description {
    color: #b0b0b0;
}

.necox-products-wrapper[data-theme="dark-mode"]:not([data-theme="scratch"]) .necox-product-new-price {
    color: #ffd700;
}

.necox-products-wrapper[data-theme="dark-mode"]:not([data-theme="scratch"]) .necox-discount-badge {
    background: linear-gradient(135deg, #ffd700, #ffed4e);
    color: #000;
}

.necox-products-wrapper[data-theme="dark-mode"]:not([data-theme="scratch"]) .necox-product-button {
    background: #333;
    border: 1px solid #555;
    color: #fff;
}

.necox-products-wrapper[data-theme="dark-mode"]:not([data-theme="scratch"]) .necox-product-button:hover {
    background: #ffd700;
    color: #000;
    border-color: #ffd700;
}

/* 🌈 GRADIENT MESH */
.necox-products-wrapper[data-theme="gradient-mesh"]:not([data-theme="scratch"]) .necox-product-card-outer {
    background: linear-gradient(135deg, 
        #667eea 0%, 
        #764ba2 25%, 
        #f093fb 50%, 
        #4facfe 75%, 
        #00f2fe 100%);
    padding: 3px;
    animation: gradientShift 10s ease infinite;
    background-size: 400% 400%;
}

@keyframes gradientShift {
    0%, 100% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
}

.necox-products-wrapper[data-theme="gradient-mesh"]:not([data-theme="scratch"]) .necox-product-card {
    background: #ffffff;
}

.necox-products-wrapper[data-theme="gradient-mesh"]:not([data-theme="scratch"]) .necox-product-image {
    position: relative;
    overflow: hidden;
}

.necox-products-wrapper[data-theme="gradient-mesh"]:not([data-theme="scratch"]) .necox-product-image::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, 
        rgba(102, 126, 234, 0.2) 0%, 
        rgba(118, 75, 162, 0.2) 100%);
}

.necox-products-wrapper[data-theme="gradient-mesh"]:not([data-theme="scratch"]) .necox-discount-badge {
    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
    color: #fff;
}

.necox-products-wrapper[data-theme="gradient-mesh"]:not([data-theme="scratch"]) .necox-product-button {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: #fff;
    border: none;
}

.necox-products-wrapper[data-theme="gradient-mesh"]:not([data-theme="scratch"]) .necox-product-button:hover {
    background: linear-gradient(135deg, #764ba2 0%, #667eea 100%);
    transform: translateY(-3px);
}

/* ✨ MINIMAL SHADOW */
.necox-products-wrapper[data-theme="minimal-shadow"]:not([data-theme="scratch"]) .necox-product-card-outer {
    background: #ffffff;
    border: none;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    transition: box-shadow 0.3s ease;
}

.necox-products-wrapper[data-theme="minimal-shadow"]:not([data-theme="scratch"]) .necox-product-card-outer:hover {
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
}

.necox-products-wrapper[data-theme="minimal-shadow"]:not([data-theme="scratch"]) .necox-product-card {
    background: #ffffff;
    border: none;
}

.necox-products-wrapper[data-theme="minimal-shadow"]:not([data-theme="scratch"]) .necox-product-image {
    border-radius: 12px;
    overflow: hidden;
}

.necox-products-wrapper[data-theme="minimal-shadow"]:not([data-theme="scratch"]) .necox-discount-badge {
    background: #000;
    color: #fff;
}

.necox-products-wrapper[data-theme="minimal-shadow"]:not([data-theme="scratch"]) .necox-product-button {
    background: #f5f5f5;
    color: #000;
    border: none;
}

.necox-products-wrapper[data-theme="minimal-shadow"]:not([data-theme="scratch"]) .necox-product-button:hover {
    background: #000;
    color: #fff;
}

/* ⚡ BRUTALISM */
.necox-products-wrapper[data-theme="brutalism"]:not([data-theme="scratch"]) .necox-product-card-outer {
    background: #fff;
    border: 4px solid #000;
    box-shadow: 8px 8px 0 #000;
    transform: rotate(0deg);
    transition: all 0.3s ease;
}

.necox-products-wrapper[data-theme="brutalism"]:not([data-theme="scratch"]) .necox-product-card-outer:hover {
    transform: rotate(-1deg) translate(-4px, -4px);
    box-shadow: 12px 12px 0 #000;
}

.necox-products-wrapper[data-theme="brutalism"]:not([data-theme="scratch"]) .necox-product-card {
    background: #fff;
    border: none;
}

.necox-products-wrapper[data-theme="brutalism"]:not([data-theme="scratch"]) .necox-product-image {
    border: 3px solid #000;
}

.necox-products-wrapper[data-theme="brutalism"]:not([data-theme="scratch"]) .necox-product-title {
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 2px;
}

.necox-products-wrapper[data-theme="brutalism"]:not([data-theme="scratch"]) .necox-discount-badge {
    background: #ff0;
    color: #000;
    border: 3px solid #000;
    font-weight: 900;
    transform: rotate(-5deg);
}

.necox-products-wrapper[data-theme="brutalism"]:not([data-theme="scratch"]) .necox-product-button {
    background: #000;
    color: #fff;
    border: 3px solid #000;
    font-weight: 700;
    text-transform: uppercase;
}

.necox-products-wrapper[data-theme="brutalism"]:not([data-theme="scratch"]) .necox-product-button:hover {
    background: #fff;
    color: #000;
    transform: translate(2px, 2px);
}

/* 🍃 ORGANIC SOFT */
.necox-products-wrapper[data-theme="organic"]:not([data-theme="scratch"]) .necox-product-card-outer {
    background: linear-gradient(135deg, #ffecd2 0%, #fcb69f 100%);
    border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
    border: none;
    animation: morphShape 8s ease-in-out infinite;
}

@keyframes morphShape {
    0%, 100% {
        border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
    }
    50% {
        border-radius: 30% 60% 70% 40% / 50% 60% 30% 60%;
    }
}

.necox-products-wrapper[data-theme="organic"]:not([data-theme="scratch"]) .necox-product-card {
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-radius: 30px;
}

.necox-products-wrapper[data-theme="organic"]:not([data-theme="scratch"]) .necox-product-image {
    border-radius: 25px;
    overflow: hidden;
}

.necox-products-wrapper[data-theme="organic"]:not([data-theme="scratch"]) .necox-discount-badge {
    background: linear-gradient(135deg, #ff9a9e 0%, #fecfef 100%);
    color: #333;
    border-radius: 20px;
}

.necox-products-wrapper[data-theme="organic"]:not([data-theme="scratch"]) .necox-product-button {
    background: linear-gradient(135deg, #a1c4fd 0%, #c2e9fb 100%);
    color: #333;
    border: none;
    border-radius: 20px;
}

.necox-products-wrapper[data-theme="organic"]:not([data-theme="scratch"]) .necox-product-button:hover {
    background: linear-gradient(135deg, #ffecd2 0%, #fcb69f 100%);
    transform: scale(1.05);
}

/* ========================================
   RESPONSIVE
   ======================================== */

@media (max-width: 1024px) {
    .necox-products-wrapper[data-layout="grid"] .necox-products-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    /* Tablet: Max 3 columns */
    .necox-products-wrapper[data-layout="grid"] .necox-products-grid[data-items="1"] {
        grid-template-columns: 1fr;
    }
    
    .necox-products-wrapper[data-layout="grid"] .necox-products-grid[data-items="2"] {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .necox-products-wrapper[data-layout="grid"] .necox-products-grid[data-items="3"],
    .necox-products-wrapper[data-layout="grid"] .necox-products-grid[data-items="4"],
    .necox-products-wrapper[data-layout="grid"] .necox-products-grid[data-items="5"],
    .necox-products-wrapper[data-layout="grid"] .necox-products-grid[data-items="6"],
    .necox-products-wrapper[data-layout="grid"] .necox-products-grid[data-items="7"],
    .necox-products-wrapper[data-layout="grid"] .necox-products-grid[data-items="8"],
    .necox-products-wrapper[data-layout="grid"] .necox-products-grid[data-items="9"],
    .necox-products-wrapper[data-layout="grid"] .necox-products-grid[data-items="10"] {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    /* Mobile: Always 1 column - ONLY for grid layout */
    .necox-products-wrapper[data-layout="grid"] .necox-products-grid,
    .necox-products-wrapper[data-layout="grid"] .necox-products-grid[data-items="1"],
    .necox-products-wrapper[data-layout="grid"] .necox-products-grid[data-items="2"],
    .necox-products-wrapper[data-layout="grid"] .necox-products-grid[data-items="3"],
    .necox-products-wrapper[data-layout="grid"] .necox-products-grid[data-items="4"],
    .necox-products-wrapper[data-layout="grid"] .necox-products-grid[data-items="5"],
    .necox-products-wrapper[data-layout="grid"] .necox-products-grid[data-items="6"],
    .necox-products-wrapper[data-layout="grid"] .necox-products-grid[data-items="7"],
    .necox-products-wrapper[data-layout="grid"] .necox-products-grid[data-items="8"],
    .necox-products-wrapper[data-layout="grid"] .necox-products-grid[data-items="9"],
    .necox-products-wrapper[data-layout="grid"] .necox-products-grid[data-items="10"] {
        grid-template-columns: 1fr !important;
    }
    
    .necox-product-title {
        font-size: 18px;
    }
    
    .necox-product-new-price {
        font-size: 20px;
    }
    
    .necox-product-buttons {
        flex-direction: column;
    }
    
    .necox-product-button {
        width: 100%;
        flex: 1 1 100% !important; /* Full width on mobile */
        justify-content: center;
    }
}

/* ========================================
   UTILITIES
   ======================================== */

/* Glassmorphism Effect */
.necox-glassmorphism {
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.2);
}

/* Gradient Text */
.necox-gradient-text {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Loading Skeleton */
.necox-skeleton {
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s ease-in-out infinite;
}

@keyframes skeleton-loading {
    0% {
        background-position: 200% 0;
    }
    100% {
        background-position: -200% 0;
    }
}

/* Smooth Scrollbar */
.necox-products-wrapper::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

.necox-products-wrapper::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 10px;
}

.necox-products-wrapper::-webkit-scrollbar-thumb {
    background: #888;
    border-radius: 10px;
}

.necox-products-wrapper::-webkit-scrollbar-thumb:hover {
    background: #555;
}

/* Print Styles */
@media print {
    .necox-product-button,
    .necox-card-bg-video-container {
        display: none !important;
    }
}


/* ========================================
   CAROUSEL NAVIGATION - CLEAN v2.0
   ======================================== */

/* ---- Wrapper position context ---- */
.necox-products-wrapper {
    position: relative;
}

/* ---- Base arrow button ---- */
.necox-carousel-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    border: none;
    outline: none;
    background: var(--arrow-bg, rgba(99, 102, 241, 0.9));
    color: var(--arrow-color, #fff);
    width:  var(--arrow-size, 48px);
    height: var(--arrow-size, 48px);
    border-radius: var(--arrow-radius, 50%);
    font-size: var(--arrow-icon-size, 16px);
    box-shadow: 0 4px 15px rgba(0,0,0,0.15);
    transition: all var(--arrow-transition, 300ms) ease;
    pointer-events: auto;
    -webkit-user-select: none;
    user-select: none;
}

.necox-carousel-nav.necox-carousel-prev { left:  -24px; }
.necox-carousel-nav.necox-carousel-next { right: -24px; }

.necox-carousel-nav:hover {
    background: var(--arrow-bg-hover, rgba(79, 70, 229, 1));
    color: var(--arrow-color-hover, #fff);
    transform: translateY(-50%) scale(var(--arrow-scale-hover, 1.1));
    box-shadow: 0 8px 25px rgba(0,0,0,0.25);
}

/* Disabled state */
.necox-carousel-nav.is-disabled {
    opacity: 0.35;
    pointer-events: none;
    cursor: default;
}

/* ---- Arrow position modes ---- */
.necox-products-wrapper[data-arrow-position="inside"] .necox-carousel-prev { left:  16px; }
.necox-products-wrapper[data-arrow-position="inside"] .necox-carousel-next { right: 16px; }

.necox-products-wrapper[data-arrow-position="edge"] .necox-carousel-prev { left:  0; transform: translateY(-50%) translateX(-50%); }
.necox-products-wrapper[data-arrow-position="edge"] .necox-carousel-next { right: 0; transform: translateY(-50%) translateX(50%); }
.necox-products-wrapper[data-arrow-position="edge"] .necox-carousel-prev:hover { transform: translateY(-50%) translateX(-50%) scale(var(--arrow-scale-hover, 1.1)); }
.necox-products-wrapper[data-arrow-position="edge"] .necox-carousel-next:hover { transform: translateY(-50%) translateX(50%)  scale(var(--arrow-scale-hover, 1.1)); }

/* ---- Presets ---- */
/* Modern (default) */
.necox-carousel-nav.necox-preset-modern {
    --arrow-bg:       rgba(99,102,241,0.9);
    --arrow-bg-hover: rgba(79,70,229,1);
    --arrow-color:    #fff;
    border-radius:    12px;
}

/* Minimal */
.necox-carousel-nav.necox-preset-minimal {
    --arrow-bg:       rgba(255,255,255,0.85);
    --arrow-color:    #374151;
    --arrow-bg-hover: #fff;
    --arrow-color-hover: #1f2937;
    border-radius:    50%;
    box-shadow:       0 2px 8px rgba(0,0,0,0.1);
}

/* Bold */
.necox-carousel-nav.necox-preset-bold {
    --arrow-bg:       #1e1e2e;
    --arrow-color:    #fff;
    --arrow-bg-hover: #7c3aed;
    border-radius:    6px;
    font-weight:      700;
}

/* Neon */
.necox-carousel-nav.necox-preset-neon {
    --arrow-bg:       transparent;
    --arrow-color:    #00f5ff;
    --arrow-bg-hover: rgba(0,245,255,0.1);
    border:           2px solid #00f5ff;
    border-radius:    50%;
    box-shadow:       0 0 12px rgba(0,245,255,0.5);
    text-shadow:      0 0 8px #00f5ff;
}

/* Glass */
.necox-carousel-nav.necox-preset-glass {
    --arrow-bg:       rgba(255,255,255,0.15);
    --arrow-color:    #fff;
    --arrow-bg-hover: rgba(255,255,255,0.25);
    backdrop-filter:  blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border:           1px solid rgba(255,255,255,0.3);
    border-radius:    12px;
}

/* Gradient */
.necox-carousel-nav.necox-preset-gradient {
    background:    linear-gradient(135deg, #667eea, #764ba2);
    --arrow-color: #fff;
    border-radius: 50%;
}
.necox-carousel-nav.necox-preset-gradient:hover {
    background:  linear-gradient(135deg, #764ba2, #667eea);
    transform:   translateY(-50%) scale(1.1);
}

/* ---- Gradient Border ---- */
.necox-carousel-nav.has-gradient-border {
    position: relative;
    background: var(--arrow-bg, rgba(99,102,241,0.9));
    background-clip: padding-box;
    border: var(--border-width, 3px) solid transparent;
}
.necox-carousel-nav.has-gradient-border::before {
    content: '';
    position: absolute;
    inset: calc(-1 * var(--border-width, 3px));
    border-radius: inherit;
    background: linear-gradient(var(--gradient-angle, 135deg), var(--gradient-color1, #667eea), var(--gradient-color2, #764ba2));
    z-index: -1;
}

/* ---- Border Animations ---- */
.necox-carousel-nav.border-animation-rotate::before   { animation: necox-border-rotate 2s linear infinite; }
.necox-carousel-nav.border-animation-pulse::before    { animation: necox-border-pulse  1.5s ease-in-out infinite; }
.necox-carousel-nav.border-animation-shimmer::before  { animation: necox-border-shimmer 2s linear infinite; }

@keyframes necox-border-rotate {
    0%   { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
@keyframes necox-border-pulse {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0.4; }
}
@keyframes necox-border-shimmer {
    0%   { background-position: -200% center; }
    100% { background-position:  200% center; }
}

/* ---- Double Border ---- */
.necox-carousel-nav.has-double-border {
    box-shadow: 0 0 0 var(--double-border-width, 3px) var(--double-border-color, rgba(99,102,241,0.3));
}

/* ========================================
   CUSTOM CAROUSEL LAYOUT - v3.0
   ======================================== */

/* Track: clips content, fills wrapper exactly */
.necox-carousel-track {
    position:   relative;
    overflow:   hidden;
    width:      100%;
}

/* Slide wrapper */
.necox-carousel-slide {
    box-sizing: border-box;
    width:      100%;
}

/* Strip (multi-slide flex container) */
.necox-carousel-track .necox-strip {
    display:   flex;
    width:     100%;
}

/*
 * Single-effect carousel (fade, zoom-rotate vb.) için JS yüklenmeden önce
 * tüm slide'ları gizle — JS gelince ilk slide'ı gösterir, diğerleri gizli kalır.
 * Bu sayede sayfa açılışında kartların yan yana görünmesi engellenir.
 *
 * smooth-slide modunda strip flex ile çalışır, gizleme gerekmez.
 * JS, isSingle=true ise _setupSingle() çağırır ve slide'lara position:absolute + opacity:0 uygular.
 * CSS'deki bu kural JS'den ÖNCE devreye girer, flash'ı önler.
 */
.necox-products-wrapper[data-layout="carousel"]:not([data-effect="smooth-slide"]) .necox-carousel-slide {
    opacity: 0;
    position: absolute;
    top: 0; left: 0;
    width: 100%;
}
/* İlk slide başlangıçta görünür */
.necox-products-wrapper[data-layout="carousel"]:not([data-effect="smooth-slide"]) .necox-carousel-slide:first-child {
    opacity: 1;
    position: relative;
    z-index: 1;
}

/* Items inside carousel */
.necox-carousel-track .necox-product-item {
    width: 100%;
}

/* Single-effect slides stacked */
.necox-carousel-track .necox-carousel-slide[style*="absolute"] {
    box-sizing: border-box;
}

/* Carousel item'larında entrance animation opacity'sini etkisiz kıl */
.necox-products-wrapper[data-layout="carousel"] .necox-product-item {
    opacity: 1 !important;
}
