
        /*=============================================
        =            Reset CSS            =
        =============================================*/
        *, *::before, *::after {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        /*=============================================
        =            Variables Globales            =
        =============================================*/
        :root {
            --text-color: #2c3e50;
            --background-color: #f5f5f5;
            --card-shadow: 0 2px 15px rgba(0,0,0,0.1);
            --transition-speed: 0.3s;
        }

        /*=============================================
        =            Estilos Base            =
        =============================================*/
html{
    overflow-x: hidden;
}
body{
    overflow-x: hidden;
    background: linear-gradient(270deg,#0f0f0f,#1a1a1a,#0f0f0f);
    background-size:600% 600%;
    animation: fondoMove 10s ease infinite;
    color:white;
}

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

        /*=============================================
        =            Header            =
        =============================================*/
.hero-header {
    position: relative;
    min-height: clamp(230px, 30vw, 270px);
    padding: clamp(16px, 3vw, 24px) 20px clamp(10px, 2vw, 16px);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: clamp(8px, 1.6vw, 14px);
    border-bottom: 2px solid #ff00ff;
    background: linear-gradient(270deg, #05070c, #1a0033, #001f26, #05070c);
    background-size: 400% 400%;
    animation: heroGradient 14s ease infinite;
}

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

.hero-orb {
    position: absolute;
    z-index: 0;
    border-radius: 50%;
    filter: blur(40px);
    pointer-events: none;
}

.hero-orb-1 {
    width: 320px;
    height: 320px;
    left: -60px;
    top: -80px;
    background: radial-gradient(circle, rgba(0,247,255,.55), transparent 70%);
    animation: orbFloat1 9s ease-in-out infinite alternate;
}

.hero-orb-2 {
    width: 380px;
    height: 380px;
    right: -90px;
    bottom: -100px;
    background: radial-gradient(circle, rgba(255,0,255,.5), transparent 70%);
    animation: orbFloat2 11s ease-in-out infinite alternate;
}

@keyframes orbFloat1 {
    0%   { transform: translate(0, 0) scale(1); }
    100% { transform: translate(60px, 30px) scale(1.3); }
}

@keyframes orbFloat2 {
    0%   { transform: translate(0, 0) scale(1); }
    100% { transform: translate(-50px, -20px) scale(1.2); }
}

/* Partículas de energía flotando */
.hero-particles {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}

.hero-particles .particula {
    position: absolute;
    bottom: -10px;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: #00f7ff;
    box-shadow: 0 0 8px 2px rgba(0,247,255,.8);
    animation: flotarParticula linear infinite;
}

.hero-particles .particula:nth-child(3n) {
    background: #ff00ff;
    box-shadow: 0 0 8px 2px rgba(255,0,255,.8);
}

@keyframes flotarParticula {
    0%   { transform: translateY(0) translateX(0); opacity: 0; }
    10%  { opacity: 1; }
    90%  { opacity: 1; }
    100% { transform: translateY(-400px) translateX(30px); opacity: 0; }
}

/* Línea de escaneo horizontal */
.hero-scanline {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background: linear-gradient(to bottom, transparent 0%, rgba(0,247,255,.06) 50%, transparent 100%);
    background-size: 100% 8px;
    animation: escanear 6s linear infinite;
}

@keyframes escanear {
    0%   { background-position: 0 0; }
    100% { background-position: 0 400px; }
}

/* Destello neón que cruza el header */
.hero-header::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(100deg, transparent 40%, rgba(0,247,255,.18) 50%, transparent 60%);
    background-size: 250% 100%;
    animation: sweep 7s linear infinite;
    pointer-events: none;
}

@keyframes sweep {
    0%   { background-position: 150% 0; }
    100% { background-position: -50% 0; }
}

.hero-header::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    background:
        linear-gradient(to bottom, rgba(0,0,0,.25), rgba(0,0,0,.7)),
        radial-gradient(circle at center, rgba(0,247,255,.22), transparent 45%);
    pointer-events: none;
}

.hero-content {
    position: relative;
    z-index: 4;
    width: min(90%, 480px);
    text-align: center;
}

/* Título con efecto glitch */
.glitch-text {
    font-size: clamp(1.7rem, 6vw, 3.2rem);
    font-weight: 900;
    color: white;
    letter-spacing: 3px;
    margin-bottom: 0;
    text-shadow: 0 0 18px #ff00ff;
    position: relative;
}

.glitch-text span {
    color: #00f7ff;
}

.glitch-text::before,
.glitch-text::after {
    content: attr(data-text);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.glitch-text::before {
    color: #00f7ff;
    animation: glitch1 3.5s infinite;
    clip-path: inset(0 0 60% 0);
}

.glitch-text::after {
    color: #ff00ff;
    animation: glitch2 3.5s infinite;
    clip-path: inset(60% 0 0 0);
}

@keyframes glitch1 {
    0%, 92%, 100% { transform: translate(0); opacity: 0; }
    93% { transform: translate(-4px, 1px); opacity: .8; }
    95% { transform: translate(4px, -1px); opacity: .8; }
    97% { transform: translate(0); opacity: 0; }
}

@keyframes glitch2 {
    0%, 92%, 100% { transform: translate(0); opacity: 0; }
    93% { transform: translate(4px, -1px); opacity: .8; }
    95% { transform: translate(-4px, 1px); opacity: .8; }
    97% { transform: translate(0); opacity: 0; }
}

.hero-tagline {
    color: #9fe8ff;
    letter-spacing: 4px;
    font-size: 0.8rem;
    font-weight: 600;
    margin-bottom: 0;
    text-shadow: 0 0 10px rgba(0,247,255,.6);
    position: relative;
}

/* Buscador con anillo de pulso */
.search-wrap {
    position: relative;
    width: 100%;
    margin-top: 30px;
}

.search-wrap {
    position: relative;
    width: 100%;
    margin-top: 30px;
    isolation: isolate;
}

/* Capas del marco animado (glow, difuminado, borde fino) */
.search-glow,
.search-white,
.search-border,
.search-dark-bg {
    position: absolute;
    inset: 0;
    border-radius: 999px;
    pointer-events: none;
    z-index: -1;
    overflow: hidden;
}

.search-dark-bg { inset: -3px; filter: blur(3px); }
.search-white   { inset: -2px; filter: blur(2px); }
.search-border  { inset: -1px; filter: blur(.5px); }
.search-glow    { inset: -14px; filter: blur(24px); opacity: .45; }

.search-dark-bg::before,
.search-white::before,
.search-border::before,
.search-glow::before {
    content: "";
    position: absolute;
    top: 50%; left: 50%;
    width: 600px; height: 600px;
    background-repeat: no-repeat;
    transform: translate(-50%, -50%) rotate(80deg);
    transition: transform 2.5s ease;
}

.search-dark-bg::before {
    background-image: conic-gradient(rgba(0,0,0,0), #063a4a, rgba(0,0,0,0) 10%, rgba(0,0,0,0) 50%, #4a0a44, rgba(0,0,0,0) 60%);
}
.search-white::before {
    filter: brightness(1.4);
    background-image: conic-gradient(rgba(0,0,0,0) 0%, #00f7ff, rgba(0,0,0,0) 8%, rgba(0,0,0,0) 50%, #ff00ff, rgba(0,0,0,0) 58%);
}
.search-border::before {
    filter: brightness(1.3);
    background-image: conic-gradient(#05070c, #00d9e0 5%, #05070c 14%, #05070c 50%, #d400c4 60%, #05070c 64%);
}
.search-glow::before {
    background-image: conic-gradient(#000, #00b8c9 5%, #000 38%, #000 50%, #c200b0 60%, #000 87%);
}

#search-poda:hover .search-dark-bg::before,
#search-poda:hover .search-white::before,
#search-poda:hover .search-border::before,
#search-poda:hover .search-glow::before {
    transform: translate(-50%, -50%) rotate(-100deg);
}

#search-poda:focus-within .search-dark-bg::before,
#search-poda:focus-within .search-white::before,
#search-poda:focus-within .search-border::before,
#search-poda:focus-within .search-glow::before {
    transform: translate(-50%, -50%) rotate(440deg);
    transition: transform 4s ease;
}

.search-cursor {
    display: inline-block;
    margin-left: 2px;
    color: #00f7ff;
    animation: cursorBlink 1s step-start infinite;
}

@keyframes cursorBlink {
    50% { opacity: 0; }
}
#search-main {
    background: #05070c;
    border-radius: 999px;
    position: relative;
    z-index: 2;
    width: 100%;
    display: flex;
    align-items: center;
    height: clamp(48px, 7vw, 58px);
    padding: 0 clamp(20px, 4vw, 30px);
}
#search-main {
    background: #05070c;
    border-radius: 999px;
}

/* Campo de texto */
.search-field {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
}

.hero-content .search {
    width: 100%;
    padding: 0;
    border: none;
    outline: none;
    background: transparent;
    font-size: clamp(0.85rem, 2vw, 1rem);
    font-family: 'Courier New', monospace;
    letter-spacing: .5px;

    background-image: linear-gradient(90deg, #00f7ff, #ff00ff, #00f7ff, #ff00ff);
    background-size: 300% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: #00f7ff; /* respaldo para navegadores sin soporte al truco */

    animation: textoGradienteMovil 4s linear infinite;
    filter: drop-shadow(0 0 6px rgba(0,247,255,.5));
}

@keyframes textoGradienteMovil {
    0%   { background-position: 0% 50%; }
    100% { background-position: 300% 50%; }
}

/* Barra inferior que "vibra" con color al escribir */
.search-pulse-bar {
    position: absolute;
    left: 0;
    bottom: -6px;
    height: 2px;
    width: 100%;
    border-radius: 2px;
    background: linear-gradient(90deg, #00f7ff, #ff00ff);
    transform: scaleX(0);
    transform-origin: left;
    opacity: 0;
    transition: transform .35s ease, opacity .35s ease;
}

.search-pulse-bar.activo {
    transform: scaleX(1);
    opacity: 1;
    box-shadow: 0 0 10px rgba(0,247,255,.8), 0 0 16px rgba(255,0,255,.5);
}

.search-terminal {
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
    pointer-events: none;
    font-family: 'Courier New', monospace;
    color: rgba(154, 245, 255, .55);
    font-size: clamp(0.8rem, 2vw, 0.95rem);
    white-space: nowrap;
    overflow: hidden;
    transition: opacity .2s ease;
}

.search-cursor {
    display: inline-block;
    margin-left: 2px;
    color: #00f7ff;
    animation: cursorBlink 1s step-start infinite;
}

@keyframes cursorBlink {
    50% { opacity: 0; }
}


@media screen and (max-width: 768px) {
    .hero-tagline {
        font-size: 0.65rem;
        letter-spacing: 2.5px;
    }

    .hero-content .search {
        padding: 11px 18px;
        font-size: 0.85rem;
    }
}
/*=============================================
=        Destacados: slider temporizado        =
=============================================*/
/*=============================================
=       Destacados: carrusel 3D giratorio      =
=============================================*/
.featured-slider {
    position: relative;
    padding: clamp(24px, 5vw, 34px) 20px clamp(30px, 5vw, 40px);
    background: #060810;
    border-bottom: 1px solid rgba(0,247,255,.15);
    overflow: hidden;
}

/* Capa 1: ondas de color cromáticas, muy saturadas */
.featured-bg-waves {
    position: absolute;
    inset: -30%;
    z-index: 0;
    background:
        radial-gradient(ellipse 45% 40% at 20% 30%, rgba(255,0,230,.5), transparent 60%),
        radial-gradient(ellipse 40% 45% at 80% 25%, rgba(0,247,255,.5), transparent 60%),
        radial-gradient(ellipse 42% 40% at 30% 80%, rgba(140,0,255,.45), transparent 60%),
        radial-gradient(ellipse 38% 38% at 78% 78%, rgba(0,255,170,.4), transparent 60%);
    filter: blur(55px);
    animation: ondasCromaticas 16s ease-in-out infinite alternate, girarTono 12s linear infinite;
    pointer-events: none;
}

@keyframes ondasCromaticas {
    0%   { transform: translate(0,0) scale(1); }
    50%  { transform: translate(4%, -3%) scale(1.15); }
    100% { transform: translate(-4%, 3%) scale(1.05); }
}

@keyframes girarTono {
    0%   { filter: blur(55px) hue-rotate(0deg); }
    100% { filter: blur(55px) hue-rotate(360deg); }
}

/* Capa 2: circuito tecnológico con pulso de energía viajando */
.featured-bg-circuit {
    position: absolute;
    inset: 0;
    z-index: 1;
    opacity: .5;
    background-image:
        linear-gradient(90deg, rgba(0,247,255,.18) 1px, transparent 1px),
        linear-gradient(0deg, rgba(255,0,255,.14) 1px, transparent 1px);
    background-size: 42px 42px;
    -webkit-mask-image: radial-gradient(ellipse 70% 90% at center, #000 40%, transparent 85%);
    mask-image: radial-gradient(ellipse 70% 90% at center, #000 40%, transparent 85%);
    animation: pulsoCircuito 5s ease-in-out infinite;
    pointer-events: none;
}

@keyframes pulsoCircuito {
    0%, 100% { opacity: .35; }
    50%      { opacity: .7; }
}

/* Capa 3: partículas flotando */
.featured-bg-particles {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
}

.featured-bg-particles .particula {
    position: absolute;
    bottom: -10px;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: #00f7ff;
    box-shadow: 0 0 8px 2px rgba(0,247,255,.8);
    animation: flotarParticula linear infinite;
}

.featured-bg-particles .particula:nth-child(3n) {
    background: #ff00ff;
    box-shadow: 0 0 8px 2px rgba(255,0,255,.8);
}

.featured-title,
.carousel-wrap,
.carousel-dots {
    position: relative;
    z-index: 5;
}

.featured-title {
    text-align: center;
    color: #00f7ff;
    letter-spacing: 4px;
    font-size: clamp(0.75rem, 2vw, 0.95rem);
    font-weight: 800;
    margin-bottom: clamp(18px, 3.5vw, 28px);
    text-shadow: 0 0 10px rgba(0,247,255,.7);
}

/* Fila: flecha - escenario 3D - flecha, todo centrado y espaciado parejo */
.carousel-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(10px, 3vw, 28px);
    max-width: 900px;
    margin: 0 auto;
}

.carousel-arrow {
    flex-shrink: 0;
    width: clamp(34px, 4vw, 44px);
    height: clamp(34px, 4vw, 44px);
    border-radius: 50%;
    border: 1px solid rgba(0,247,255,.4);
    background: rgba(6,10,20,.6);
    backdrop-filter: blur(6px);
    color: #00f7ff;
    font-size: 0.95rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all .25s ease;
}

.carousel-arrow:hover {
    background: rgba(0,247,255,.15);
    box-shadow: 0 0 16px rgba(0,247,255,.5);
    transform: scale(1.08);
}

/* Escenario con perspectiva 3D */
.carousel-scene {
    --radio-anillo: clamp(150px, 24vw, 260px);
    position: relative;
    flex: 1 1 auto;
    height: clamp(190px, 30vw, 260px);
    display: flex;
    align-items: center;
    justify-content: center;
    perspective: 1100px;
    min-width: 0;
}

/* Puntos indicadores */
.carousel-dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-top: clamp(18px, 3vw, 26px);
}

.carousel-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255,255,255,.25);
    border: none;
    cursor: pointer;
    padding: 0;
    transition: all .3s ease;
}

.carousel-dot:hover {
    background: rgba(0,247,255,.6);
}

.carousel-dot.active {
    width: 22px;
    border-radius: 5px;
    background: #00f7ff;
    box-shadow: 0 0 10px rgba(0,247,255,.8);
}

/* Anillo que gira: cada card se posiciona alrededor con rotateY + translateZ */
.carousel-3d {
    position: relative;
    width: clamp(110px, 16vw, 150px);
    height: clamp(140px, 20vw, 190px);
    transform-style: preserve-3d;
    cursor: grab;
    touch-action: pan-y;
}

.carousel-3d.arrastrando {
    cursor: grabbing;
}

.featured-card {
    position: absolute;
    inset: 0;
    border-radius: 14px;
    overflow: visible;
    border: 1px solid rgba(255,255,255,.14);
    background: rgba(15, 22, 40, 0.55);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 8px 24px rgba(0,0,0,.4);
    cursor: pointer;
    backface-visibility: hidden;
    transition: box-shadow .35s ease, border-color .35s ease;
    /* la posición en el círculo se fija por JS via --ang */
    transform: rotateY(var(--ang)) translateZ(var(--radio-anillo));
}

.featured-card img {
    width: 100%;
    height: 100%;
    border-radius: 13px;
    object-fit: cover;
    transition: transform .5s ease, filter .5s ease;
    filter: brightness(.72) saturate(1.15);
    pointer-events: none;
}

.featured-card .featured-info {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    padding: 10px;
    border-radius: 0 0 13px 13px;
    overflow: hidden;
    background: linear-gradient(to top, rgba(0,0,0,.92), transparent);
    display: flex;
    flex-direction: column;
    gap: 2px;
    pointer-events: none;
}

.featured-card .featured-info span {
    color: white;
    font-size: 0.78rem;
    font-weight: 600;
}

.featured-card .featured-info b {
    color: #00f7ff;
    font-size: 0.85rem;
    text-shadow: 0 0 8px rgba(0,247,255,.7);
}

/* Borde eléctrico: la tarjeta que mira al frente lo activa */
.featured-card.spotlight {
    border-color: transparent;
}

.featured-card.spotlight::before {
    content: "";
    position: absolute;
    inset: -4px;
    border-radius: 17px;
    border: 3px solid #00f7ff;
    box-shadow:
        0 0 12px 2px rgba(0,247,255,.9),
        0 0 28px 6px rgba(255,0,255,.45),
        inset 0 0 14px rgba(0,247,255,.4);
    animation: hologramaPulso 1.8s ease-in-out infinite;
    pointer-events: none;
    z-index: 2;
}

@keyframes hologramaPulso {
    0%, 100% {
        border-color: #00f7ff;
        box-shadow:
            0 0 12px 2px rgba(0,247,255,.9),
            0 0 28px 6px rgba(255,0,255,.45),
            inset 0 0 14px rgba(0,247,255,.4);
    }
    50% {
        border-color: #ff00ff;
        box-shadow:
            0 0 16px 3px rgba(255,0,255,.95),
            0 0 34px 8px rgba(0,247,255,.55),
            inset 0 0 16px rgba(255,0,255,.45);
    }
}

.featured-card.spotlight img {
    transform: scale(1.08);
    filter: brightness(1) saturate(1.35);
}

@media screen and (max-width: 768px) {
    .carousel-scene { perspective: 800px; }
    .featured-title { letter-spacing: 2.5px; }
}
/*=============================================
        =            Fondo animado            =
        =============================================*/
.background-nebula{
    position:fixed;
    inset:-20%;
    z-index:-3;
    background:
        radial-gradient(ellipse 60% 40% at 15% 20%, rgba(255,0,255,.22), transparent 60%),
        radial-gradient(ellipse 50% 45% at 85% 15%, rgba(0,247,255,.22), transparent 60%),
        radial-gradient(ellipse 55% 40% at 30% 85%, rgba(122,0,255,.20), transparent 60%),
        radial-gradient(ellipse 50% 45% at 80% 80%, rgba(0,255,180,.18), transparent 60%),
        radial-gradient(ellipse 45% 35% at 50% 50%, rgba(255,60,60,.12), transparent 60%);
    filter: blur(60px) hue-rotate(0deg);
    animation: derivaFondo 26s ease-in-out infinite alternate, girarCromatico 18s linear infinite;
    pointer-events:none;
}

@keyframes derivaFondo{
    0%   { transform: translate(0,0) scale(1) rotate(0deg); }
    25%  { transform: translate(3%, -2%) scale(1.08) rotate(3deg); }
    50%  { transform: translate(-2%, 3%) scale(1.12) rotate(-2deg); }
    75%  { transform: translate(2%, 2%) scale(1.05) rotate(2deg); }
    100% { transform: translate(-3%, -1%) scale(1.02) rotate(0deg); }
}

@keyframes girarCromatico{
    0%   { filter: blur(60px) hue-rotate(0deg); }
    100% { filter: blur(60px) hue-rotate(360deg); }
}

.background-grid{
    position:fixed;
    inset:0;
    z-index:-2;

    background-image:
    linear-gradient(rgba(0, 247, 255, 0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 0, 255, 0.06) 1px, transparent 1px);
    background-size:50px 50px;
    animation:gridMove 20s linear infinite;
}
@keyframes gridMove{
    from{
        transform:translateY(0);
    }
    to{
        transform:translateY(50px);
    }
}
.nav{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:15px 30px;
}

.logo{
    font-size:28px;
    color:white;
    font-weight:bold;
    letter-spacing:2px;
    animation: glow 2s infinite alternate;
}

.logo span{
    color:#00f7ff;
}

@keyframes glow{
    from{
        text-shadow:0 0 5px #ff4800;
    }
    to{
        text-shadow:0 0 20px #a600ff, 0 0 30px #a600ff;
    }
}

/* MENU */
.menu{
    display:flex;
    gap:20px;
    list-style:none;
}

.menu a{
    color:white;
    text-decoration:none;
    position:relative;
}

.menu a::after{
    content:"";
    position:absolute;
    width:0;
    height:2px;
    background:#00f7ff;
    left:0;
    bottom:-5px;
    transition:0.3s;
}

.menu a:hover::after{
    width:100%;
}

/* BUSCADOR */
.search{
    padding:8px 15px;
    border-radius:20px;
    border:none;
    outline:none;
    background:#1c1c1c;
    color:white;
    transition:0.3s;
}

.search:focus{
    box-shadow:0 0 10px #00f7ff;
} 
        /*=============================================
                    Logo
        ==============================================*/
        .loader {
            display: flex;
            justify-content: center;
            align-items: center;
            background: black;
            padding: 10px 20px;
            border-radius: 15px;
            white-space: nowrap;
        }
        
        .loader > span {
            font-size: 50px;
            font-family: "Franklin Gothic Medium", sans-serif;
            display: inline-block;
            color: #ff00ff;
            text-shadow: 0 0 5px #ff00ff, 0 0 10px #ff00ff, 0 0 15px #ff00ff;
            animation: neonGlow 1.5s infinite alternate;
        }
        
        @keyframes neonGlow {
            0% {
                text-shadow: 0 0 5px #ff00ff, 0 0 10px #ff00ff, 0 0 20px #ff00ff;
            }
            100% {
                text-shadow: 0 0 10px #00ffff, 0 0 20px #00ffff, 0 0 30px #00ffff;
            }
        }
        
        .loader > span:nth-child(odd) {
            animation-delay: 0.3s;
        }
        /*=============================================
        =            filtro productos                =
        =============================================*/
    .filters{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    align-items:center;
    gap:10px;
    margin:20px;
    position:relative;
}

.filter-glow{
    position:absolute;
    top:0;
    left:0;
    z-index:1;
    border-radius:10px;
    background:linear-gradient(135deg,#00eaff,#00aaff);
    box-shadow:
        0 0 12px #00eaff,
        0 0 28px rgba(0,234,255,.7);
    transition:transform .35s cubic-bezier(.34,1.56,.64,1), width .35s ease, height .35s ease;
    pointer-events:none;
}

.filters button{
    position: relative;
    z-index: 2;
    overflow: hidden;

    background:transparent;
    color:#00eaff;
    border:2px solid rgba(0,234,255,.4);
    border-radius:10px;

    padding:10px 18px;
    font-size:0.95rem;
    font-weight:600;
    font-family:inherit;
    white-space:nowrap;

    cursor:pointer;

    transition:all .3s ease;
}

.filters button:hover{
    transform:translateY(-3px);
    border-color:#00eaff;

    box-shadow:
        0 0 10px #00eaff,
        0 0 25px rgba(0,234,255,.5);
}

.filters button.active{
    color:#000;
    border-color:transparent;
    font-weight:800;
}


        /*=============================================
        =            Contenedor Productos            =
        =============================================*/
        /*=============================================
        =            Cards Productos            =
        =============================================*/

.product-card{
    position:relative;
    height:400px;
    border-radius:20px;
    overflow:hidden;
    display:flex;
    justify-content:center;
    align-items:center;
    background:#07182E;
    border:1px solid rgba(0,255,255,.15);
    will-change: transform;
    opacity: 0;
    transform: translateY(40px);
    transition:
    transform .5s cubic-bezier(.2,.8,.2,1),
    box-shadow .4s ease,
    opacity .5s ease;
}

.product-card.en-vista{
    opacity: 1;
    transform: translateY(0);
}
/* BARRA NEON GIRATORIA */
.product-card::before{
    filter:
    drop-shadow(0 0 10px #00ffff)
    drop-shadow(0 0 22px #ff00ff)
    drop-shadow(0 0 38px #7a00ff);
    content:"";
    position:absolute;
    width:220px;
    height:220%;
    inset:2px;
    background:conic-gradient(
        from 0deg,
        #00ffff,
        #ff00ff,
        #7a00ff,
        #00ffea,
        #ff00ff,
        #00ffff
    );
    animation:rotBGimg 2.8s linear infinite, electroFlicker 2.4s steps(12) infinite;
    z-index:1;
}

@keyframes electroFlicker{
    0%, 100% { opacity: 1; }
    5%  { opacity: .7; }
    8%  { opacity: 1; }
    22% { opacity: .85; }
    24% { opacity: 1; }
    47% { opacity: .6; }
    49% { opacity: 1; }
    71% { opacity: .8; }
    73% { opacity: 1; }
}
/* FONDO INTERNO */
.product-card::after{
    content:"";
    position:absolute;
    inset:3px;
    background:#07182E;
    border-radius:17px;
    z-index:1;
}
/* IMAGEN */
.product-image{
    position:absolute;
    top:50%;
    left:50%;
    width:96%;
    height:96%;
    object-fit:cover;
    border-radius:16px;
    transform:translate(-50%,-50%);
    z-index:2;
    transition:transform .4s ease;
}
@keyframes borderGlow{
    0%{
        background-position:0% 50%;
    }

    50%{
        background-position:100% 50%;
    }

    100%{
        background-position:0% 50%;
    }
}
/*=============================================
=     Panel de información (estilo glass)      =
=============================================*/
.product-info{
    position:absolute;
    bottom:0;
    left:0;
    right:0;
    z-index:3;
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    padding: clamp(0.9rem, 3vw, 1.4rem);
    gap: 4px;

    background: rgba(7, 12, 24, 0.55);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-top: 1px solid rgba(0, 247, 255, 0.25);

    transform: translateY(0);
    transition: background .3s ease, box-shadow .3s ease;
}

.product-title{
    width:100%;
    text-align:center;
    line-height:1.25;
    color:white;
    font-size: clamp(1rem, 2vw, 1.2rem);
}

.product-description{
    margin-top:4px;
    color:#c9d6e8;
    font-size: clamp(0.7rem, 1.4vw, 0.8rem);
    line-height:1.4;
    opacity: .85;
}

/* HOVER */

.product-card:hover{
    transform:translateY(-8px);

    box-shadow:
    0 0 20px #00f7ff,
    0 0 40px rgba(0,247,255,.5);
}

.product-card:hover .product-image{
    transform:
    translate(-50%,-50%)
    scale(1.03);
}

.product-card:hover .product-info{
    background: rgba(7, 12, 24, 0.72);
    box-shadow: 0 -10px 30px rgba(0,247,255,.15);
}

/* FILTRO */

.product-card.oculto{
    display:none;
}

/* ANIMACION NEON */

@keyframes rotBGimg{
    from{
        transform:rotate(0deg);
    }

    to{
        transform:rotate(360deg);
    }
}

        /*=============================================
        =        Grid Bento: catálogo de productos     =
        =============================================*/

/* Variables globales con breakpoints */
:root {
    --mobile-s: 320px;
    --mobile-m: 375px;
    --mobile-l: 425px;
    --tablet: 768px;
    --laptop: 1024px;
    --laptop-l: 1440px;
    --desktop: 1920px;
}

.products-container {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: clamp(0.5rem, 2vw, 2rem);
}

/* Grid uniforme: todas las tarjetas del mismo tamaño, se adapta solo */
.products-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
    gap: clamp(14px, 2vw, 22px);
    padding: clamp(10px, 2vw, 20px);
}

.products-grid .product-card {
    height: clamp(280px, 30vw, 380px);
    width: 100%;
    margin: 0;
}

/* Slider responsive (sección de detalle de producto) */
.slider-container {
    height: clamp(250px, 50vh, 400px);
    width: 100%;
}

.slide img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.slider-btn {
    padding: clamp(0.5rem, 2vw, 1rem);
    font-size: clamp(1rem, 2vw, 1.5rem);
}

@media (max-width: 1024px) and (min-width: 601px) {
    .slider-container {
        height: clamp(200px, 40vh, 300px);
    }

    .product-card::before {
        width: 80px;
    }
}

@media (max-width: 600px) {
    .products-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
        padding: 12px;
    }

    .products-grid .product-card {
        height: clamp(210px, 46vw, 280px);
    }

    .product-card::before {
        width: 80px;
    }

    .slider-container {
        height: clamp(200px, 40vh, 300px);
    }

    /* Panel de info: limitado en altura para que la imagen siempre se vea */
    .products-grid .product-info {
        max-height: 48%;
        padding: 0.55rem 0.7rem;
        gap: 2px;
        overflow: hidden;
    }

    .products-grid .product-title {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        font-size: 0.78rem;
        line-height: 1.2;
    }

    .products-grid .product-description {
        display: none; /* en 2 columnas no hay espacio para descripción sin tapar la imagen */
    }

    .products-grid .button {
        transform: scale(0.85);
        margin-top: 0;
    }
}

/* Optimizaciones para dispositivos de alta densidad */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    .product-image {
        image-rendering: -webkit-optimize-contrast;
    }
}

/* Ajustes para orientación landscape en móviles */
@media (max-height: 500px) and (orientation: landscape) {
    .slider-container {
        height: 80vh;
    }

    .product-card {
        height: 220px;
    }
}

/*========================================================
                            Boton
==========================================================*/
.button {
    --black-700: hsla(0 0% 12% / 1);
    --border_radius: 9999px;
    --transtion: 0.3s ease-in-out;
    --offset: 2px;
    cursor: pointer;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    transform-origin: center;
    width: min(200px, 90%);
    box-sizing: border-box;
    margin: 0 auto;
    padding: 0.6rem 1rem;
    background-color: transparent;
    border: none;
    border-radius: var(--border_radius);
    transform: scale(calc(1 + (var(--active, 0) * 0.1)));
    transition: transform var(--transtion);
  }
  
  .button::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  
    width: 100%;
    height: 100%;
    background-color: var(--black-700);
  
    border-radius: var(--border_radius);
    box-shadow: inset 0 0.5px hsl(0, 0%, 100%), inset 0 -1px 2px 0 hsl(0, 0%, 0%),
      0px 4px 10px -4px hsla(0 0% 0% / calc(1 - var(--active, 0))),
      0 0 0 calc(var(--active, 0) * 0.375rem) hsl(260 97% 50% / 0.75);
  
    transition: all var(--transtion);
    z-index: 0;
  }
  
  .button::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  
    width: 100%;
    height: 100%;
    background-color: hsla(260 97% 61% / 0.75);
    background-image: radial-gradient(
        at 51% 89%,
        hsla(266, 45%, 74%, 1) 0px,
        transparent 50%
      ),
      radial-gradient(at 100% 100%, hsla(266, 36%, 60%, 1) 0px, transparent 50%),
      radial-gradient(at 22% 91%, hsla(266, 36%, 60%, 1) 0px, transparent 50%);
    background-position: top;
  
    opacity: var(--active, 0);
    border-radius: var(--border_radius);
    transition: opacity var(--transtion);
    z-index: 2;
  }
  
  .button:is(:hover, :focus-visible) {
    --active: 1;
  }
  .button:active {
    transform: scale(1);
  }
  
  .button .dots_border {
    --size_border: calc(100% + 2px);
  
    overflow: hidden;
  
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  
    width: var(--size_border);
    height: var(--size_border);
    background-color: transparent;
  
    border-radius: var(--border_radius);
    z-index: -10;
  }
  
  .button .dots_border::before {
    content: "";
    position: absolute;
    top: 30%;
    left: 50%;
    transform: translate(-50%, -50%);
    transform-origin: left;
    transform: rotate(0deg);
  
    width: 100%;
    height: 2rem;
    background-color: white;
  
    mask: linear-gradient(transparent 0%, white 120%);
    animation: rotate 2s linear infinite;
  }
  
  @keyframes rotate {
    to {
      transform: rotate(360deg);
    }
  }
  
  .button .sparkle {
    position: relative;
    z-index: 10;
  
    width: 1.75rem;
  }
  
  .button .sparkle .path {
    fill: currentColor;
    stroke: currentColor;
  
    transform-origin: center;
  
    color: hsl(0, 0%, 100%);
  }
  
  .button:is(:hover, :focus) .sparkle .path {
    animation: path 1.5s linear 0.5s infinite;
  }
  
  .button .sparkle .path:nth-child(1) {
    --scale_path_1: 1.2;
  }
  .button .sparkle .path:nth-child(2) {
    --scale_path_2: 1.2;
  }
  .button .sparkle .path:nth-child(3) {
    --scale_path_3: 1.2;
  }
  
  @keyframes path {
    0%,
    34%,
    71%,
    100% {
      transform: scale(1);
    }
    17% {
      transform: scale(var(--scale_path_1, 1));
    }
    49% {
      transform: scale(var(--scale_path_2, 1));
    }
    83% {
      transform: scale(var(--scale_path_3, 1));
    }
  }
  
  .button .text_button {
    position: relative;
    z-index: 10;
  
    background-image: linear-gradient(
      90deg,
      rgb(6, 181, 239) 0%,
      hsla(0 0% 100% / var(--active, 0)) 120%
    );
    background-clip: text;
  
    font-size: clamp(1.1rem, 5vw, 2rem);
    white-space: nowrap;
    color: transparent;
  }  
  a {
    text-decoration: none;
  }

  /*========================================================
                            boton whatsapp
==========================================================*/
.whatsapp-btn{
    position:fixed;
    right:25px;
    bottom:25px;
    width:70px;
    height:70px;
    border-radius:50%;
    background:#25D366;
    display:flex;
    justify-content:center;
    align-items:center;
    box-shadow:
      0 0 15px #25D366,
      0 0 40px #25D366;
    animation:pulse 2s infinite;
}

.whatsapp-btn:hover{
    transform:scale(1.1);
}
/* ==========================================
   RESPONSIVE CELULAR
========================================== */

@media screen and (max-width:768px){

    /* HEADER */

    .nav{
        flex-direction:column;
        gap:10px;
        padding:10px;
    }

    .logo{
        font-size:1.8rem;
        text-align:center;
    }

    .search{
        width:90%;
    }

    /* SLIDER */

    .slider-container{
        height:250px;
    }

    .slide img{
        object-fit:contain;
    }

    /* FILTROS */

    .filters{
        gap:8px;
        padding:10px 24px;
        overflow-x:auto;
        flex-wrap:nowrap;
        justify-content:flex-start;
        padding-bottom:10px;
        scroll-snap-type:x proximity;
        -webkit-mask-image:linear-gradient(to right, transparent 0, #000 24px, #000 calc(100% - 24px), transparent 100%);
        mask-image:linear-gradient(to right, transparent 0, #000 24px, #000 calc(100% - 24px), transparent 100%);
    }

    .filters::-webkit-scrollbar{
        display:none;
    }

    .filters button{
        padding:8px 12px;
        font-size:.9rem;
        scroll-snap-align:start;
        flex-shrink:0;
    }

    /* PRODUCTOS */

    .product-info{
        text-align:center;
        width:100%;
    }

    .product-title{
        text-align:center;
        width:100%;
        font-size:1rem;
    }

    /* WHATSAPP */

    .whatsapp-btn{
        width:55px;
        height:55px;
        right:10px;
        bottom:10px;
    }

}
.product-info{
    display:flex;
    flex-direction:column;
    align-items:center;
}
/*=============================================
=        Detalle de producto global           =
=============================================*/

.product-detail-page {
    min-height: 100vh;
    background:
        radial-gradient(circle at top left, rgba(0, 247, 255, 0.12), transparent 35%),
        radial-gradient(circle at bottom right, rgba(255, 0, 255, 0.12), transparent 35%),
        linear-gradient(270deg, #0f0f0f, #1a1a1a, #0f0f0f);
    color: white;
}

.product-detail-page .container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 100px 20px 40px;
}

.product-detail-page .product-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
}

.product-detail-page .main-image {
    width: 100%;
    border-radius: 18px;
    border: 2px solid rgba(0, 247, 255, 0.35);
    box-shadow:
        0 0 20px rgba(0, 247, 255, 0.35),
        0 0 40px rgba(255, 0, 255, 0.18);
}

.product-detail-page .product-info {
    position: static;
    transform: none;
    opacity: 1;
    background: rgba(8, 12, 20, 0.8);
    border: 1px solid rgba(0, 247, 255, 0.25);
    border-radius: 18px;
    padding: 30px;
    box-shadow: 0 0 25px rgba(0, 247, 255, 0.18);
}

.product-detail-page .price {
    color: #00f7ff;
    text-shadow: 0 0 12px rgba(0, 247, 255, 0.8);
}

.product-detail-page .tabs {
    margin-top: 30px;
    border-bottom: 1px solid rgba(0, 247, 255, 0.25);
}

.product-detail-page .tab-btn {
    color: white;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
}

.product-detail-page .tab-btn.active {
    color: #00f7ff;
    border-bottom-color: #00f7ff;
}

.product-detail-page .description,
.product-detail-page .specs-grid,
.product-detail-page .reviews-container {
    background: rgba(8, 12, 20, 0.96);
    border: 1px solid rgba(0, 247, 255, 0.25);
    border-radius: 18px;
    padding: 25px;
    box-shadow: 0 0 25px rgba(0, 247, 255, 0.15);
}

@media screen and (max-width: 768px) {
    .product-detail-page .product-grid {
        grid-template-columns: 1fr;
    }

    .product-detail-page .container {
        padding-top: 120px;
    }
}
/* Corrección para descripción junto al precio */
.product-detail-page .product-info .product-description {
    display: block;
    opacity: 1;
    transform: none;
    visibility: visible;

    margin-top: 20px;
    color: #dffcff;
    font-size: 0.95rem;
    line-height: 1.6;
    text-align: left;

    max-height: none;
}

/* Caja de información del producto más clara */
.product-detail-page .product-info {
    min-height: 260px;
    background:
        radial-gradient(circle at top right, rgba(0, 247, 255, 0.12), transparent 35%),
        linear-gradient(135deg, rgba(8, 12, 20, 0.92), rgba(13, 18, 28, 0.96));
}

/* Descripción inferior más legible */
.product-detail-page .description {
    color: #e8fbff;
    background:
        radial-gradient(circle at top left, rgba(0, 247, 255, 0.14), transparent 35%),
        linear-gradient(135deg, rgba(8, 12, 20, 0.88), rgba(18, 12, 28, 0.92));
}

/* Texto y lista dentro de descripción */
.product-detail-page .description p {
    color: #ffffff;
    font-weight: bold;
    margin-bottom: 12px;
}

.product-detail-page .description li {
    color: #dffcff;
    margin-bottom: 8px;
}

/* Bordes un poco más visibles */
.product-detail-page .description,
.product-detail-page .product-info,
.product-detail-page .main-image {
    border-color: rgba(0, 247, 255, 0.45);
    box-shadow:
        0 0 18px rgba(0, 247, 255, 0.22),
        0 0 35px rgba(255, 0, 255, 0.12);
}
/*=============================================
=        Vista celular producto detalle        =
=============================================*/

@media screen and (max-width: 768px) {

    body.product-detail-page {
        overflow-x: hidden;
    }

    .product-detail-page .header {
        position: sticky;
        top: 0;
        padding: 10px 14px;
        background: rgba(0, 0, 0, 0.92);
    }

    .product-detail-page .nav {
        display: grid;
        grid-template-columns: auto 1fr auto;
        align-items: center;
        gap: 10px;
        padding: 0;
    }

    .product-detail-page .btn-container {
        width: 82px;
        height: 32px;
        margin: 0;
    }

    .product-detail-page #space-btn {
        height: 32px;
        border-radius: 10px;
    }

    .product-detail-page #space-btn span {
        font-size: 12px;
    }

    .product-detail-page .logo {
        width: 42px;
        height: 42px;
        margin: 0 auto;
    }

    /* En celular el slider del header estorba: lo ocultamos */
   /* Mostrar productos del header en celular */
@media screen and (max-width: 768px) {

    .product-detail-page .product-slider {
        display: flex;
        width: 96px;
        max-width: 96px;
        height: 38px;
        overflow: hidden;
        flex-shrink: 0;
        align-items: center;
    }

    .product-detail-page .product-slide {
        padding: 2px;
    }

    .product-detail-page .product-slide img {
        width: 30px;
        height: 30px;
        max-width: 30px;
        object-fit: cover;
        border-radius: 7px;
    }

    .product-detail-page .slick-list,
    .product-detail-page .slick-track {
        height: 38px;
        display: flex;
        align-items: center;
    }
}
}
@media screen and (max-width: 768px) {
    .slider-container {
        height: 115px !important;
        margin-top: 0;
        overflow: hidden;
        background: #0b0f14;
    }

    .slider {
        height: 100% !important;
    }

    .slide {
        height: 100% !important;
        min-width: 100%;
    }

    .slide img {
        width: 100%;
        height: 100%;
        object-fit: cover !important;
        object-position: center !important;
        display: block;
    }

    .slider-btn {
        display: none !important;
    }

    .slider-dots {
        bottom: 6px;
    }
}

/*=============================================
=     Header limpio para páginas sin producto  =
=============================================*/
.nav {
    justify-content: space-between;
    gap: 16px;
}
.btn-container {
    margin-right: 0;
}

/*=============================================
=     Cosmos Hero: planeta + Nuevos Ingresos   =
=============================================*/
.cosmos-hero {
    position: relative;
    height: 620px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    background:
        radial-gradient(circle at 20% 20%, rgba(255,0,255,.10), transparent 45%),
        radial-gradient(circle at 80% 75%, rgba(0,247,255,.12), transparent 45%),
        radial-gradient(ellipse at center, #12082e 0%, #04010c 78%);
    border-bottom: 2px solid #ff00ff;
}

/* Nebulosa de fondo, deriva lenta */
.cosmos-nebula {
    position: absolute;
    inset: -10%;
    z-index: 0;
    background:
        radial-gradient(circle at 30% 40%, rgba(255,0,255,.16), transparent 30%),
        radial-gradient(circle at 70% 30%, rgba(0,247,255,.16), transparent 30%),
        radial-gradient(circle at 50% 80%, rgba(122,0,255,.16), transparent 32%);
    filter: blur(30px);
    animation: derivaNebulosa 22s ease-in-out infinite alternate;
}

@keyframes derivaNebulosa {
    0%   { transform: translate(0, 0) scale(1); }
    100% { transform: translate(3%, -3%) scale(1.08); }
}

/* Estrellas: variadas en color, con leve deriva */
.cosmos-stars {
    position: absolute;
    inset: 0;
    z-index: 1;
    animation: derivaEstrellas 60s linear infinite;
}

.cosmos-stars .estrella {
    position: absolute;
    border-radius: 50%;
    animation: parpadeoColor 3.5s ease-in-out infinite;
}

@keyframes derivaEstrellas {
    from { transform: translateY(0); }
    to   { transform: translateY(-40px); }
}

@keyframes parpadeoColor {
    0%, 100% { opacity: .25; transform: scale(1); }
    50%      { opacity: 1;   transform: scale(1.5); }
}

/* Título arriba, limpio */
.cosmos-title {
    position: relative;
    z-index: 3;
    text-align: center;
    margin-top: 34px;
}

.cosmos-title h1 {
    font-size: 2.3rem;
    font-weight: 900;
    color: white;
    letter-spacing: 4px;
    text-shadow: 0 0 12px #00f7ff, 0 0 30px #ff00ff;
}

.cosmos-title p {
    margin-top: 8px;
    color: #cfd6ff;
    font-size: 0.95rem;
    letter-spacing: .5px;
}

/* Contenedor del planeta, centrado y grande */
.earth-wrap {
    position: relative;
    z-index: 2;
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}

.earth-glow {
    position: absolute;
    width: 420px;
    height: 420px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(0,247,255,.35), transparent 70%);
    filter: blur(10px);
    animation: pulsoGlow 4s ease-in-out infinite;
}

@keyframes pulsoGlow {
    0%, 100% { opacity: .6; transform: scale(1); }
    50%      { opacity: 1;  transform: scale(1.08); }
}

/* Esfera realista: luz, sombra de terminador y textura */
.earth {
    position: relative;
    width: 300px;
    height: 300px;
    border-radius: 50%;
    overflow: hidden;
    background:
        radial-gradient(circle at 32% 28%, rgba(255,255,255,.55), transparent 35%),
        radial-gradient(circle at 55% 55%, #1fb6ff 0%, #0a3d91 45%, #050a2e 78%, #01030f 100%);
    box-shadow:
        0 0 50px rgba(0,247,255,.5),
        0 0 110px rgba(255,0,255,.28),
        inset -40px -25px 70px rgba(0,0,0,.75);
    animation: girarLento 26s linear infinite;
}

/* Meridianos: líneas verticales que se desplazan = ilusión de rotación */
.earth-grid {
    position: absolute;
    inset: 0;
    background-image:
        repeating-linear-gradient(90deg, rgba(120,220,255,.35) 0px, transparent 1.5px, transparent 26px),
        repeating-linear-gradient(0deg, rgba(120,220,255,.18) 0px, transparent 1px, transparent 34px);
    mix-blend-mode: screen;
    animation: girarMeridianos 12s linear infinite;
}

@keyframes girarMeridianos {
    from { background-position: 0 0, 0 0; }
    to   { background-position: -300px 0, 0 0; }
}

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

/* Luces de ciudad: puntos generados por JS */
.earth-lights {
    position: absolute;
    inset: 0;
}

.earth-lights .luz {
    position: absolute;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: #eafcff;
    box-shadow: 0 0 6px 2px rgba(150,235,255,.9);
    animation: parpadeoLuz 2.6s ease-in-out infinite;
}

@keyframes parpadeoLuz {
    0%, 100% { opacity: .35; }
    50%      { opacity: 1;   }
}

/* Anillo orbital fino alrededor del planeta */
.earth-ring {
    position: absolute;
    width: 400px;
    height: 400px;
    border-radius: 50%;
    border: 1px solid rgba(0,247,255,.3);
    box-shadow: 0 0 20px rgba(0,247,255,.15);
    animation: girarAnillo 40s linear infinite;
}

.earth-ring::before,
.earth-ring::after {
    content: "";
    position: absolute;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #00f7ff;
    box-shadow: 0 0 10px #00f7ff;
    top: 50%;
    left: -3px;
}

.earth-ring::after {
    top: auto;
    bottom: -3px;
    left: 50%;
    background: #ff00ff;
    box-shadow: 0 0 10px #ff00ff;
}

@keyframes girarAnillo {
    to { transform: rotate(360deg); }
}

/* Iconos "misteriosos" orbitando (sin revelar el producto) */
.mystery-orbit {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 2;
}

.mystery-orbit i {
    position: absolute;
    top: 0;
    left: 50%;
    width: 46px;
    height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(5, 4, 20, 0.75);
    border: 1px solid rgba(0,247,255,.5);
    color: #00f7ff;
    font-size: 1.1rem;
    box-shadow: 0 0 16px rgba(0,247,255,.55);
    animation: pulsoIcono 3s ease-in-out infinite;
}

@keyframes pulsoIcono {
    0%, 100% { box-shadow: 0 0 16px rgba(0,247,255,.55); color: #00f7ff; }
    50%      { box-shadow: 0 0 22px rgba(255,0,255,.65); color: #ff8bfd; }
}

.orbit-a { width: 380px; height: 380px; margin: -190px 0 0 -190px; animation: orbitarCW 14s linear infinite; }
.orbit-b { width: 460px; height: 460px; margin: -230px 0 0 -230px; animation: orbitarCCW 20s linear infinite; }
.orbit-c { width: 540px; height: 540px; margin: -270px 0 0 -270px; animation: orbitarCW 26s linear infinite; }
.orbit-d { width: 610px; height: 610px; margin: -305px 0 0 -305px; animation: orbitarCCW 32s linear infinite; }
.orbit-e { width: 680px; height: 680px; margin: -340px 0 0 -340px; animation: orbitarCW 38s linear infinite; }

@keyframes orbitarCW  { from { transform: rotate(0deg);   } to { transform: rotate(360deg);  } }
@keyframes orbitarCCW { from { transform: rotate(0deg);   } to { transform: rotate(-360deg); } }

.orbit-a i { animation: pulsoIcono 3s ease-in-out infinite, contraCW 14s linear infinite; }
.orbit-b i { animation: pulsoIcono 3s ease-in-out infinite .3s, contraCCW 20s linear infinite; }
.orbit-c i { animation: pulsoIcono 3s ease-in-out infinite .6s, contraCW 26s linear infinite; }
.orbit-d i { animation: pulsoIcono 3s ease-in-out infinite .9s, contraCCW 32s linear infinite; }
.orbit-e i { animation: pulsoIcono 3s ease-in-out infinite 1.2s, contraCW 38s linear infinite; }

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

@media screen and (max-width: 768px) {
    .cosmos-hero { height: 480px; }
    .cosmos-title h1 { font-size: 1.5rem; letter-spacing: 2px; }
    .earth-glow { width: 260px; height: 260px; }
    .earth { width: 180px; height: 180px; }
    .earth-ring { width: 240px; height: 240px; }
    .orbit-a { width: 240px; height: 240px; margin: -120px 0 0 -120px; }
    .orbit-b { width: 290px; height: 290px; margin: -145px 0 0 -145px; }
    .orbit-c { width: 340px; height: 340px; margin: -170px 0 0 -170px; }
    .orbit-d, .orbit-e { display: none; }
    .mystery-orbit i { width: 36px; height: 36px; font-size: 0.9rem; }
}
/*Globo*/
/* ============================================================
   URBANSHOP GLOBAL
   CSS FUTURISTA
   ============================================================ */


/* ============================================================
   RESET
   ============================================================ */

* {

    box-sizing:
        border-box;

    margin:
        0;

    padding:
        0;

}


html,
body {

    width:
        100%;

    min-height:
        100%;

}


body {

    background:
        #02050c;

    color:
        white;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    overflow-x:
        hidden;

}


/* ============================================================
   FONDO
   ============================================================ */

.space-background {

    position:
        fixed;

    inset:
        0;

    overflow:
        hidden;

    pointer-events:
        none;

    z-index:
        0;

}


.space-background::before {

    content:
        "";

    position:
        absolute;

    inset:
        0;

    background:

        radial-gradient(
            circle at 15% 50%,
            rgba(0, 230, 255, .10),
            transparent 35%
        ),

        radial-gradient(
            circle at 85% 55%,
            rgba(225, 0, 255, .12),
            transparent 38%
        ),

        linear-gradient(
            135deg,
            #020a10,
            #02050c 50%,
            #08030f
        );

}

/* ============================================================
   NEBULOSAS
   ============================================================ */

.nebula {

    position:
        absolute;

    width:
        500px;

    height:
        500px;

    border-radius:
        50%;

    filter:
        blur(100px);

    opacity:
        .12;

}


.nebula-cyan {

    left:
        -180px;

    top:
        30%;

    background:
        #00eaff;

}


.nebula-purple {

    right:
        -180px;

    top:
        40%;

    background:
        #d000ff;

}


/* ============================================================
   PÁGINA
   ============================================================ */

.global-page {

    position:
        relative;

    z-index:
        2;

    width:
        min(1100px, 100%);

    margin:
        auto;

    min-height:
        100vh;

    padding:
        22px 18px 25px;

}


/* ============================================================
   HEADER
   ============================================================ */

.global-header {

    position:
        relative;

    z-index:
        5;

}


.status-row {

    display:
        flex;

    gap:
        12px;

    align-items:
        center;

}


.status-badge,
.live-badge {

    border:
        1px solid rgba(0, 238, 255, .30);

    background:
        rgba(2, 15, 24, .65);

    backdrop-filter:
        blur(10px);

    border-radius:
        30px;

    padding:
        8px 14px;

    font-size:
        10px;

    font-weight:
        800;

    letter-spacing:
        1.2px;

}


.status-dot {

    display:
        inline-block;

    width:
        6px;

    height:
        6px;

    margin-right:
        7px;

    border-radius:
        50%;

    background:
        #00f0ff;

    box-shadow:
        0 0 12px #00f0ff;

}


.live-badge {

    color:
        #00eaff;

}


/* ============================================================
   TITULO
   ============================================================ */

.hero-title {

    text-align:
        center;

    margin-top:
        12px;

}


.hero-title > span {

    color:
        #00eaff;

    font-size:
        12px;

    font-weight:
        900;

    letter-spacing:
        4px;

}


.hero-title h1 {

    margin-top:
        5px;

    font-size:
        clamp(30px, 6vw, 62px);

    font-weight:
        950;

    letter-spacing:
        1px;

    line-height:
        .95;

    text-shadow:

        0 0 8px rgba(0,238,255,.7),

        0 0 28px rgba(0,238,255,.3);

}


.hero-title p {

    margin:
        12px auto 0;

    max-width:
        650px;

    color:
        rgba(255,255,255,.72);

    font-size:
        13px;

    line-height:
        1.6;

}


/* ============================================================
   SECCIÓN GLOBO
   ============================================================ */

.globe-section {

    position:
        relative;

    width:
        100%;

    height:
        min(680px, 72vh);

    min-height:
        510px;

    margin-top:
        5px;

}


/* ============================================================
   CONTENEDOR THREE
   ============================================================ */

.globe-container {

    position:
        absolute;

    inset:
        0;

    width:
        100%;

    height:
        100%;

    overflow:
        hidden;

    border-radius:
        24px;

}


/* ============================================================
   CANVAS
   ============================================================ */

.globe-container canvas {

    display:
        block;

    width:
        100%;

    height:
        100%;

    cursor:
        grab;

}


.globe-container canvas:active {

    cursor:
        grabbing;

}


/* ============================================================
   CONTROLES
   ============================================================ */

.globe-controls {

    position:
        absolute;

    right:
        10px;

    top:
        50%;

    transform:
        translateY(-50%);

    display:
        flex;

    flex-direction:
        column;

    gap:
        7px;

    z-index:
        20;

}


.globe-button {

    width:
        34px;

    height:
        34px;

    border:
        1px solid rgba(0,238,255,.55);

    border-radius:
        10px;

    color:
        white;

    background:
        rgba(2,10,22,.72);

    backdrop-filter:
        blur(8px);

    font-size:
        18px;

    cursor:
        pointer;

    transition:
        .2s;

}


.globe-button:hover {

    background:
        rgba(0,238,255,.18);

    box-shadow:
        0 0 20px rgba(0,238,255,.35);

    transform:
        scale(1.08);

}


/* ============================================================
   HINT
   ============================================================ */

.globe-hint {

    position:
        absolute;

    bottom:
        20px;

    left:
        50%;

    transform:
        translateX(-50%);

    color:
        rgba(255,255,255,.45);

    font-size:
        8px;

    font-weight:
        900;

    letter-spacing:
        2px;

    white-space:
        nowrap;

    pointer-events:
        none;

}


.globe-hint span {

    color:
        #00eaff;

    margin:
        0 5px;

}


/* ============================================================
   PANEL PRODUCTO
   ============================================================ */

.shipment-panel {

    position:
        absolute;

    z-index:
        30;

    top:
        30px;

    right:
        55px;

    width:
        min(320px, calc(100% - 70px));

    padding:
        20px;

    border:
        1px solid rgba(0,238,255,.50);

    border-radius:
        18px;

    background:
        rgba(5,7,24,.92);

    backdrop-filter:
        blur(20px);

    box-shadow:

        0 0 35px rgba(0,238,255,.12),

        inset 0 0 30px rgba(100,0,255,.05);

    opacity:
        0;

    visibility:
        hidden;

    transform:
        translateY(-15px)
        scale(.96);

    transition:
        .3s;

}


.shipment-panel.active {

    opacity:
        1;

    visibility:
        visible;

    transform:
        translateY(0)
        scale(1);

}


.close-panel {

    position:
        absolute;

    right:
        13px;

    top:
        10px;

    border:
        0;

    background:
        transparent;

    color:
        white;

    font-size:
        23px;

    cursor:
        pointer;

}


.panel-status {

    color:
        #00eaff;

    font-size:
        9px;

    font-weight:
        900;

    letter-spacing:
        1px;

}


.panel-status span {

    display:
        inline-block;

    width:
        6px;

    height:
        6px;

    margin-right:
        5px;

    border-radius:
        50%;

    background:
        #00eaff;

    box-shadow:
        0 0 12px #00eaff;

}


.panel-icon {

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    width:
        48px;

    height:
        48px;

    margin:
        15px 0 12px;

    border:
        1px solid rgba(0,238,255,.35);

    border-radius:
        12px;

    background:
        rgba(0,238,255,.08);

    font-size:
        23px;

}


.shipment-panel small {

    color:
        rgba(255,255,255,.45);

    font-size:
        8px;

    font-weight:
        800;

    letter-spacing:
        1px;

}


.shipment-panel h2 {

    margin-top:
        7px;

    font-size:
        17px;

}


.panel-line {

    height:
        1px;

    margin:
        15px 0;

    background:
        linear-gradient(
            90deg,
            rgba(0,238,255,.4),
            transparent
        );

}


.panel-info {

    display:
        grid;

    grid-template-columns:
        1fr 1fr;

    gap:
        10px;

}


.panel-info span {

    display:
        block;

    color:
        rgba(255,255,255,.42);

    font-size:
        7px;

    font-weight:
        900;

    margin-bottom:
        5px;

}


.panel-info strong {

    font-size:
        9px;

    color:
        #00eaff;

}


.product-button {

    width:
        100%;

    margin-top:
        17px;

    padding:
        11px 14px;

    border:
        0;

    border-radius:
        10px;

    color:
        white;

    font-size:
        10px;

    font-weight:
        900;

    letter-spacing:
        1px;

    background:
        linear-gradient(
            90deg,
            #00d9ff,
            #8a2cff,
            #ff00d4
        );

    cursor:
        pointer;

    box-shadow:
        0 0 20px rgba(0,220,255,.18);

}


.product-button span {

    float:
        right;

}


/* ============================================================
   ESTADÍSTICAS
   ============================================================ */

.stats-panel {

    position:
        relative;

    display:
        grid;

    grid-template-columns:
        repeat(4, 1fr);

    width:
        100%;

    border:
        1px solid rgba(0,238,255,.35);

    border-radius:
        17px;

    background:
        rgba(2,8,18,.68);

    backdrop-filter:
        blur(12px);

    overflow:
        hidden;

}


.stat {

    min-height:
        70px;

    display:
        flex;

    flex-direction:
        column;

    align-items:
        center;

    justify-content:
        center;

    border-right:
        1px solid rgba(0,238,255,.16);

}


.stat:last-child {

    border-right:
        0;

}


.stat strong {

    color:
        #00eaff;

    font-size:
        18px;

    font-weight:
        950;

    text-shadow:
        0 0 12px rgba(0,238,255,.55);

}


.stat span {

    margin-top:
        4px;

    color:
        rgba(255,255,255,.52);

    font-size:
        7px;

    font-weight:
        800;

    letter-spacing:
        1px;

}


/* ============================================================
   FOOTER
   ============================================================ */

.global-footer {

    display:
        flex;

    justify-content:
        space-between;

    align-items:
        center;

    margin-top:
        17px;

    color:
        rgba(255,255,255,.35);

    font-size:
        7px;

    font-weight:
        800;

    letter-spacing:
        1px;

}


.footer-dot {

    display:
        inline-block;

    width:
        6px;

    height:
        6px;

    margin-right:
        6px;

    border-radius:
        50%;

    background:
        #00eaff;

    box-shadow:
        0 0 10px #00eaff;

}


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

@media (
    max-width: 700px
) {

    .global-page {

        padding:
            15px 10px;

    }


    .hero-title > span {

        font-size:
            9px;

        letter-spacing:
            2px;

    }


    .hero-title h1 {

        font-size:
            34px;

    }


    .hero-title p {

        font-size:
            11px;

    }


    .globe-section {

        height:
            500px;

        min-height:
            500px;

    }


    .globe-controls {

        right:
            4px;

    }


    .globe-button {

        width:
            31px;

        height:
            31px;

    }


    .shipment-panel {

        top:
            15px;

        right:
            45px;

        width:
            270px;

    }


    .stats-panel {

        grid-template-columns:
            repeat(2, 1fr);

    }


    .stat {

        border-bottom:
            1px solid rgba(0,238,255,.16);

    }


    .stat:nth-child(2) {

        border-right:
            0;

    }


    .stat:nth-child(3),
    .stat:nth-child(4) {

        border-bottom:
            0;

    }


    .global-footer {

        font-size:
            6px;

    }

}


@media (
    max-width: 430px
) {

    .global-footer div:nth-child(2) {

        display:
            none;

    }


    .globe-hint {

        bottom:
            12px;

        font-size:
            7px;

    }

}
.ratings-summary {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
}

.overall-rating {
    text-align: center;
    margin-bottom: 10px;
}

.rating-big {
    font-size: 48px;
    font-weight: bold;
    color: #00f7ff;
    text-shadow: 0 0 12px rgba(0,247,255,.6);
    margin: 8px 0;
}

.total-ratings {
    color: #9fe8ff;
    font-size: 13px;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.feature-ratings h3 {
    color: #00f7ff;
    font-size: 1rem;
    margin-bottom: 14px;
}

.feature-rating-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid rgba(0,247,255,.12);
}

.feature-rating-item span {
    color: #dfefff;
    font-size: 0.9rem;
}

.pd-background-grid {
    position: fixed;
    inset: 0;
    z-index: -1;
    background-image:
        linear-gradient(rgba(0,247,255,.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,0,255,.04) 1px, transparent 1px);
    background-size: 55px 55px;
    animation: pdGridMove 24s linear infinite;
}
@keyframes pdGridMove { from{transform:translateY(0);} to{transform:translateY(55px);} }

.pd-background-grid {
    position: fixed;
    inset: 0;
    z-index: -1;
    background-image:
        linear-gradient(rgba(0,247,255,.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,0,255,.04) 1px, transparent 1px);
    background-size: 55px 55px;
    animation: pdGridMove 24s linear infinite;
    pointer-events: none;
}

@keyframes pdGridMove {
    from { transform: translateY(0); }
    to   { transform: translateY(55px); }
}

/* Fade suave al cambiar de pestaña, en vez del cambio brusco actual */
@keyframes pdTabFadeIn {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.product-detail-page .tab-panel.active {
    animation: pdTabFadeIn .35s ease;
}

.product-detail-page .tab-btn {
    transition: color .2s ease, border-color .2s ease;
}

.product-detail-page .tab-btn:hover {
    color: #9fe8ff;
}

