/**
 * Formas del Cursor Personalizado
 * Variavista Business Theme
 * 
 * 20 formas diferentes para el diseño del cursor
 * Cada forma se activa con data-cursor-shape en el body
 * 
 * @package Variavista
 * @version 2.7.2
 */

/* ========================================
   FORMA: NONE (Sin diseño personalizado)
   ======================================== */

body[data-cursor-shape="none"] #custom-cursor,
body[data-cursor-shape="none"] #custom-cursor-dot {
    display: none !important;
}

/* ========================================
   FORMA: CIRCLE-DOT (Círculo con Punto - Default)
   ======================================== */

body[data-cursor-shape="circle-dot"] #custom-cursor {
    border-radius: 50%;
}

body[data-cursor-shape="circle-dot"] #custom-cursor-dot {
    border-radius: 50%;
}

/* ========================================
   FORMA: RING (Anillo Fino) - PROFESIONAL
   ======================================== */

body[data-cursor-shape="ring"] #custom-cursor {
    border-radius: 50%;
    background: radial-gradient(
        circle at center,
        transparent 0%,
        transparent 65%,
        var(--cursor-primary-color, #C8102E) 70%,
        var(--cursor-primary-color, #C8102E) 75%,
        transparent 80%
    ) !important;
    border: none;
    filter: blur(0.5px);
}

body[data-cursor-shape="ring"] #custom-cursor-dot {
    border-radius: 50%;
}

/* ========================================
   FORMA: RING-THICK (Anillo Grueso) - PROFESIONAL
   ======================================== */

body[data-cursor-shape="ring-thick"] #custom-cursor {
    border-radius: 50%;
    background: radial-gradient(
        circle at center,
        transparent 0%,
        transparent 55%,
        var(--cursor-primary-color, #C8102E) 60%,
        var(--cursor-primary-color, #C8102E) 80%,
        transparent 90%
    ) !important;
    border: none;
    filter: blur(0.5px);
}

body[data-cursor-shape="ring-thick"] #custom-cursor-dot {
    border-radius: 50%;
}

/* ========================================
   FORMA: HEXAGON (Hexágono) - PROFESIONAL
   ======================================== */

body[data-cursor-shape="hexagon"] #custom-cursor {
    clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
    border: none;
    background: radial-gradient(
        circle at center,
        var(--cursor-primary-color, #C8102E) 0%,
        var(--cursor-primary-color, #C8102E) 40%,
        rgba(200, 16, 46, 0.6) 70%,
        transparent 100%
    ) !important;
    filter: blur(1px) drop-shadow(0 0 8px var(--cursor-primary-color, #C8102E));
}

body[data-cursor-shape="hexagon"] #custom-cursor-dot {
    border-radius: 50%;
    width: calc(var(--cursor-size, 60px) * 0.15);
    height: calc(var(--cursor-size, 60px) * 0.15);
}

/* ========================================
   FORMA: CROSSHAIR (Cruz con Punto Central) - PROFESIONAL
   ======================================== */

body[data-cursor-shape="crosshair"] #custom-cursor {
    background: 
        /* Línea vertical superior */
        linear-gradient(
            to bottom,
            transparent 0%,
            transparent 5%,
            var(--cursor-primary-color, #C8102E) 10%,
            var(--cursor-primary-color, #C8102E) 35%,
            transparent 40%
        ) center top / 3px 100% no-repeat,
        /* Línea vertical inferior */
        linear-gradient(
            to top,
            transparent 0%,
            transparent 5%,
            var(--cursor-primary-color, #C8102E) 10%,
            var(--cursor-primary-color, #C8102E) 35%,
            transparent 40%
        ) center bottom / 3px 100% no-repeat,
        /* Línea horizontal izquierda */
        linear-gradient(
            to right,
            transparent 0%,
            transparent 5%,
            var(--cursor-primary-color, #C8102E) 10%,
            var(--cursor-primary-color, #C8102E) 35%,
            transparent 40%
        ) left center / 100% 3px no-repeat,
        /* Línea horizontal derecha */
        linear-gradient(
            to left,
            transparent 0%,
            transparent 5%,
            var(--cursor-primary-color, #C8102E) 10%,
            var(--cursor-primary-color, #C8102E) 35%,
            transparent 40%
        ) right center / 100% 3px no-repeat;
    border: none !important;
    filter: drop-shadow(0 0 6px var(--cursor-primary-color, #C8102E));
}

body[data-cursor-shape="crosshair"] #custom-cursor::before,
body[data-cursor-shape="crosshair"] #custom-cursor::after {
    display: none;
}

/* Círculo central sólido */
body[data-cursor-shape="crosshair"] #custom-cursor-dot {
    border-radius: 50%;
    width: calc(var(--cursor-size, 60px) * 0.22);
    height: calc(var(--cursor-size, 60px) * 0.22);
    background: radial-gradient(
        circle at center,
        var(--cursor-primary-color, #C8102E) 0%,
        var(--cursor-primary-color, #C8102E) 80%,
        rgba(200, 16, 46, 0.9) 100%
    ) !important;
    box-shadow: 
        0 0 10px var(--cursor-primary-color, #C8102E),
        0 0 20px rgba(200, 16, 46, 0.6),
        inset 0 0 8px rgba(255, 255, 255, 0.3);
}

/* ========================================
   FORMA: STAR (Estrella de 4 Puntas) - PROFESIONAL
   ======================================== */

body[data-cursor-shape="star"] #custom-cursor {
    border-radius: 8px;
    transform: translate(-50%, -50%) rotate(45deg);
    background: radial-gradient(
        circle at center,
        var(--cursor-primary-color, #C8102E) 0%,
        var(--cursor-primary-color, #C8102E) 50%,
        rgba(200, 16, 46, 0.5) 80%,
        transparent 100%
    ) !important;
    filter: blur(0.5px) drop-shadow(0 0 6px var(--cursor-primary-color, #C8102E));
}

body[data-cursor-shape="star"] #custom-cursor-dot {
    border-radius: 50%;
    transform: rotate(-45deg);
}

/* ========================================
   FORMA: STAR-6 (Estrella de 6 Puntas) - PROFESIONAL
   ======================================== */

body[data-cursor-shape="star-6"] #custom-cursor {
    clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
    border: none;
    background: radial-gradient(
        circle at center,
        var(--cursor-primary-color, #C8102E) 0%,
        var(--cursor-primary-color, #C8102E) 45%,
        rgba(200, 16, 46, 0.6) 75%,
        transparent 100%
    ) !important;
    filter: blur(1px) drop-shadow(0 0 8px var(--cursor-primary-color, #C8102E));
}

body[data-cursor-shape="star-6"] #custom-cursor-dot {
    border-radius: 50%;
    width: calc(var(--cursor-size, 60px) * 0.12);
    height: calc(var(--cursor-size, 60px) * 0.12);
}

/* ========================================
   FORMA: SQUARE (Marco Cuadrado Hueco) - PROFESIONAL
   ======================================== */

body[data-cursor-shape="square"] #custom-cursor {
    border-radius: 6px;
    background: 
        /* Borde superior */
        linear-gradient(
            to bottom,
            var(--cursor-primary-color, #C8102E) 0%,
            var(--cursor-primary-color, #C8102E) 100%
        ) top left / 100% 3px no-repeat,
        /* Borde inferior */
        linear-gradient(
            to bottom,
            var(--cursor-primary-color, #C8102E) 0%,
            var(--cursor-primary-color, #C8102E) 100%
        ) bottom left / 100% 3px no-repeat,
        /* Borde izquierdo */
        linear-gradient(
            to right,
            var(--cursor-primary-color, #C8102E) 0%,
            var(--cursor-primary-color, #C8102E) 100%
        ) top left / 3px 100% no-repeat,
        /* Borde derecho */
        linear-gradient(
            to right,
            var(--cursor-primary-color, #C8102E) 0%,
            var(--cursor-primary-color, #C8102E) 100%
        ) top right / 3px 100% no-repeat;
    border: none !important;
    filter: drop-shadow(0 0 6px var(--cursor-primary-color, #C8102E));
}

body[data-cursor-shape="square"] #custom-cursor-dot {
    border-radius: 50%;
    width: calc(var(--cursor-size, 60px) * 0.18);
    height: calc(var(--cursor-size, 60px) * 0.18);
    background: radial-gradient(
        circle at center,
        var(--cursor-primary-color, #C8102E) 0%,
        var(--cursor-primary-color, #C8102E) 70%,
        rgba(200, 16, 46, 0.8) 100%
    ) !important;
    box-shadow: 0 0 8px var(--cursor-primary-color, #C8102E);
}

/* ========================================
   FORMA: SQUARE-ROUNDED (Cuadrado Redondeado) - PROFESIONAL
   ======================================== */

body[data-cursor-shape="square-rounded"] #custom-cursor {
    border-radius: 20px;
    background: radial-gradient(
        circle at center,
        var(--cursor-primary-color, #C8102E) 0%,
        var(--cursor-primary-color, #C8102E) 55%,
        rgba(200, 16, 46, 0.5) 85%,
        transparent 100%
    ) !important;
    filter: blur(0.5px);
}

body[data-cursor-shape="square-rounded"] #custom-cursor-dot {
    border-radius: 50%;
}

/* ========================================
   FORMA: DIAMOND (Diamante) - PROFESIONAL
   ======================================== */

body[data-cursor-shape="diamond"] #custom-cursor {
    border-radius: 4px;
    transform: translate(-50%, -50%) rotate(45deg);
    background: radial-gradient(
        circle at center,
        var(--cursor-primary-color, #C8102E) 0%,
        var(--cursor-primary-color, #C8102E) 45%,
        rgba(200, 16, 46, 0.6) 75%,
        transparent 100%
    ) !important;
    filter: blur(0.5px) drop-shadow(0 0 10px var(--cursor-primary-color, #C8102E));
}

body[data-cursor-shape="diamond"] #custom-cursor-dot {
    border-radius: 50%;
    transform: translate(-50%, -50%);
    width: calc(var(--cursor-size, 60px) * 0.18);
    height: calc(var(--cursor-size, 60px) * 0.18);
}

/* ========================================
   FORMA: PLUS (Cruz Plus) - PROFESIONAL
   ======================================== */

body[data-cursor-shape="plus"] #custom-cursor {
    background: transparent !important;
    border: none !important;
    filter: drop-shadow(0 0 6px var(--cursor-primary-color, #C8102E));
}

body[data-cursor-shape="plus"] #custom-cursor::before,
body[data-cursor-shape="plus"] #custom-cursor::after {
    content: '';
    position: absolute;
    border-radius: 2px;
}

body[data-cursor-shape="plus"] #custom-cursor::before {
    width: 3px;
    height: 70%;
    left: 50%;
    top: 15%;
    transform: translateX(-50%);
    background: linear-gradient(
        to bottom,
        transparent 0%,
        var(--cursor-primary-color, #C8102E) 15%,
        var(--cursor-primary-color, #C8102E) 85%,
        transparent 100%
    );
}

body[data-cursor-shape="plus"] #custom-cursor::after {
    width: 70%;
    height: 3px;
    left: 15%;
    top: 50%;
    transform: translateY(-50%);
    background: linear-gradient(
        to right,
        transparent 0%,
        var(--cursor-primary-color, #C8102E) 15%,
        var(--cursor-primary-color, #C8102E) 85%,
        transparent 100%
    );
}

body[data-cursor-shape="plus"] #custom-cursor-dot {
    border-radius: 50%;
    box-shadow: 0 0 8px var(--cursor-primary-color, #C8102E);
}

/* ========================================
   FORMA: CROSS (Cruz X) - PROFESIONAL
   ======================================== */

body[data-cursor-shape="cross"] #custom-cursor {
    background: transparent !important;
    border: none !important;
    transform: translate(-50%, -50%) rotate(45deg);
    filter: drop-shadow(0 0 6px var(--cursor-primary-color, #C8102E));
}

body[data-cursor-shape="cross"] #custom-cursor::before,
body[data-cursor-shape="cross"] #custom-cursor::after {
    content: '';
    position: absolute;
    border-radius: 2px;
}

body[data-cursor-shape="cross"] #custom-cursor::before {
    width: 3px;
    height: 70%;
    left: 50%;
    top: 15%;
    transform: translateX(-50%);
    background: linear-gradient(
        to bottom,
        transparent 0%,
        var(--cursor-primary-color, #C8102E) 15%,
        var(--cursor-primary-color, #C8102E) 85%,
        transparent 100%
    );
}

body[data-cursor-shape="cross"] #custom-cursor::after {
    width: 70%;
    height: 3px;
    left: 15%;
    top: 50%;
    transform: translateY(-50%);
    background: linear-gradient(
        to right,
        transparent 0%,
        var(--cursor-primary-color, #C8102E) 15%,
        var(--cursor-primary-color, #C8102E) 85%,
        transparent 100%
    );
}

body[data-cursor-shape="cross"] #custom-cursor-dot {
    border-radius: 50%;
    transform: rotate(-45deg);
    box-shadow: 0 0 8px var(--cursor-primary-color, #C8102E);
}

/* ========================================
   FORMA: TRIANGLE (Triángulo) - PROFESIONAL
   ======================================== */

body[data-cursor-shape="triangle"] #custom-cursor {
    clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
    border: none;
    background: radial-gradient(
        circle at center,
        var(--cursor-primary-color, #C8102E) 0%,
        var(--cursor-primary-color, #C8102E) 50%,
        rgba(200, 16, 46, 0.6) 80%,
        transparent 100%
    ) !important;
    filter: blur(1px) drop-shadow(0 0 8px var(--cursor-primary-color, #C8102E));
}

body[data-cursor-shape="triangle"] #custom-cursor-dot {
    border-radius: 50%;
    width: calc(var(--cursor-size, 60px) * 0.15);
    height: calc(var(--cursor-size, 60px) * 0.15);
}

/* ========================================
   FORMA: ARROW (Flecha) - PROFESIONAL
   ======================================== */

body[data-cursor-shape="arrow"] #custom-cursor {
    clip-path: polygon(0% 40%, 60% 40%, 60% 0%, 100% 50%, 60% 100%, 60% 60%, 0% 60%);
    border: none;
    background: linear-gradient(
        90deg,
        rgba(200, 16, 46, 0.6) 0%,
        var(--cursor-primary-color, #C8102E) 50%,
        var(--cursor-primary-color, #C8102E) 100%
    ) !important;
    filter: blur(0.5px) drop-shadow(0 0 8px var(--cursor-primary-color, #C8102E));
}

body[data-cursor-shape="arrow"] #custom-cursor-dot {
    opacity: 0;
}

/* ========================================
   FORMA: POINTER (Flecha Moderna) - PROFESIONAL
   ======================================== */

body[data-cursor-shape="pointer"] #custom-cursor {
    background: transparent !important;
    border: none !important;
    filter: drop-shadow(0 0 8px var(--cursor-primary-color, #C8102E));
    transition: filter 0.2s ease;
}

/* Cuerpo principal de la flecha (triángulo apuntando arriba-derecha) */
body[data-cursor-shape="pointer"] #custom-cursor::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%) rotate(-45deg);
    width: 45%;
    height: 45%;
    clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
    background: linear-gradient(
        180deg,
        var(--cursor-primary-color, #C8102E) 0%,
        var(--cursor-primary-color, #C8102E) 70%,
        rgba(200, 16, 46, 0.8) 100%
    );
    opacity: 1;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

/* Cola de la flecha (línea diagonal) */
body[data-cursor-shape="pointer"] #custom-cursor::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 3px;
    height: 35%;
    background: linear-gradient(
        to bottom,
        transparent 0%,
        var(--cursor-primary-color, #C8102E) 20%,
        var(--cursor-primary-color, #C8102E) 100%
    );
    transform: translate(-50%, -50%) rotate(-45deg);
    transform-origin: center;
    border-radius: 2px;
    opacity: 1;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

/* Punto central brillante */
body[data-cursor-shape="pointer"] #custom-cursor-dot {
    border-radius: 50%;
    width: calc(var(--cursor-size, 60px) * 0.15);
    height: calc(var(--cursor-size, 60px) * 0.15);
    background: radial-gradient(
        circle at center,
        rgba(255, 255, 255, 0.9) 0%,
        var(--cursor-primary-color, #C8102E) 40%,
        var(--cursor-primary-color, #C8102E) 100%
    ) !important;
    box-shadow: 
        0 0 10px var(--cursor-primary-color, #C8102E),
        0 0 20px rgba(200, 16, 46, 0.5);
    transform: translate(-50%, -50%) rotate(0deg);
    opacity: 1;
    transition: width 0.2s ease, height 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}

/* ===== ESTADO HOVER ===== */

/* Hover - Contenedor principal */
body.cursor-hover[data-cursor-shape="pointer"] #custom-cursor {
    filter: drop-shadow(0 0 calc(8px * (var(--cursor-design-hover-glow, 50) / 50)) var(--cursor-primary-color, #C8102E));
}

/* Hover - Triángulo (escala según hover scale) */
body.cursor-hover[data-cursor-shape="pointer"] #custom-cursor::before {
    transform: translate(-50%, -50%) rotate(-45deg) scale(var(--cursor-design-hover-scale, 1.5));
    opacity: calc(var(--cursor-design-hover-glow, 50) / 100);
}

/* Hover - Línea (escala según hover scale) */
body.cursor-hover[data-cursor-shape="pointer"] #custom-cursor::after {
    transform: translate(-50%, -50%) rotate(-45deg) scale(var(--cursor-design-hover-scale, 1.5));
    opacity: calc(var(--cursor-design-hover-glow, 50) / 100);
}

/* Hover - Punto central (escala y brillo) */
body.cursor-hover[data-cursor-shape="pointer"] #custom-cursor-dot {
    width: calc(var(--cursor-size, 60px) * 0.15 * var(--cursor-design-hover-scale, 1.5));
    height: calc(var(--cursor-size, 60px) * 0.15 * var(--cursor-design-hover-scale, 1.5));
    opacity: calc(var(--cursor-design-hover-glow, 50) / 100);
    box-shadow: 
        0 0 calc(10px * (var(--cursor-design-hover-glow, 50) / 50)) var(--cursor-primary-color, #C8102E),
        0 0 calc(20px * (var(--cursor-design-hover-glow, 50) / 50)) rgba(200, 16, 46, 0.5);
}

/* ========================================
   FORMA: TARGET (Diana - círculos concéntricos) - PROFESIONAL
   ======================================== */

body[data-cursor-shape="target"] #custom-cursor {
    border-radius: 50%;
    background: radial-gradient(
        circle at center,
        transparent 0%,
        transparent 15%,
        var(--cursor-primary-color, #C8102E) 16%,
        var(--cursor-primary-color, #C8102E) 18%,
        transparent 19%,
        transparent 35%,
        var(--cursor-primary-color, #C8102E) 36%,
        var(--cursor-primary-color, #C8102E) 38%,
        transparent 39%,
        transparent 55%,
        var(--cursor-primary-color, #C8102E) 56%,
        var(--cursor-primary-color, #C8102E) 60%,
        transparent 65%
    ) !important;
    border: none;
    filter: blur(0.5px);
}

body[data-cursor-shape="target"] #custom-cursor-dot {
    border-radius: 50%;
    width: calc(var(--cursor-size, 60px) * 0.12);
    height: calc(var(--cursor-size, 60px) * 0.12);
}

/* ========================================
   FORMA: ORBITAL (Cometa con estela) - PROFESIONAL
   ======================================== */

body[data-cursor-shape="orbital"] #custom-cursor {
    border-radius: 50%;
    background: radial-gradient(
        circle at center,
        var(--cursor-primary-color, #C8102E) 0%,
        rgba(200, 16, 46, 0.6) 50%,
        transparent 80%
    ) !important;
    border: none;
    filter: blur(2px);
}

body[data-cursor-shape="orbital"] #custom-cursor::before {
    content: '';
    position: absolute;
    width: 180%;
    height: 100%;
    top: 0;
    left: -90%;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(200, 16, 46, 0.3) 40%,
        rgba(200, 16, 46, 0.6) 80%,
        transparent 100%
    );
    border-radius: 50%;
    opacity: 0.6;
    filter: blur(6px);
}

body[data-cursor-shape="orbital"] #custom-cursor-dot {
    border-radius: 50%;
    box-shadow: 0 0 15px var(--cursor-primary-color, #C8102E),
                0 0 30px var(--cursor-primary-color, #C8102E);
}

/* ========================================
   FORMA: DOUBLE-RING (Doble Anillo) - PROFESIONAL
   ======================================== */

body[data-cursor-shape="double-ring"] #custom-cursor {
    border-radius: 50%;
    background: radial-gradient(
        circle at center,
        transparent 0%,
        transparent 28%,
        var(--cursor-primary-color, #C8102E) 30%,
        var(--cursor-primary-color, #C8102E) 35%,
        transparent 37%,
        transparent 60%,
        var(--cursor-primary-color, #C8102E) 62%,
        var(--cursor-primary-color, #C8102E) 68%,
        transparent 72%
    ) !important;
    border: none;
    filter: blur(0.5px);
}

body[data-cursor-shape="double-ring"] #custom-cursor-dot {
    border-radius: 50%;
}

/* ========================================
   FORMA: NEON (Neón con Brillo) - PROFESIONAL
   ======================================== */

body[data-cursor-shape="neon"] #custom-cursor {
    border-radius: 50%;
    background: radial-gradient(
        circle at center,
        rgba(255, 255, 255, 0.9) 0%,
        var(--cursor-primary-color, #C8102E) 30%,
        rgba(200, 16, 46, 0.6) 60%,
        transparent 100%
    ) !important;
    box-shadow: 0 0 15px var(--cursor-primary-color, #C8102E),
                0 0 30px var(--cursor-primary-color, #C8102E),
                0 0 45px var(--cursor-primary-color, #C8102E),
                inset 0 0 20px rgba(255, 255, 255, 0.5);
    filter: blur(1px);
}

body[data-cursor-shape="neon"] #custom-cursor-dot {
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9) !important;
    box-shadow: 0 0 10px var(--cursor-primary-color, #C8102E),
                0 0 20px var(--cursor-primary-color, #C8102E),
                0 0 30px var(--cursor-primary-color, #C8102E);
}

/* ========================================
   FORMA: DOT (Punto Minimalista) - PROFESIONAL
   ======================================== */

body[data-cursor-shape="dot"] #custom-cursor {
    opacity: 0;
}

body[data-cursor-shape="dot"] #custom-cursor-dot {
    border-radius: 50%;
    width: calc(var(--cursor-size, 60px) * 0.25);
    height: calc(var(--cursor-size, 60px) * 0.25);
    opacity: var(--cursor-opacity, 1);
    background: radial-gradient(
        circle at center,
        var(--cursor-primary-color, #C8102E) 0%,
        var(--cursor-primary-color, #C8102E) 70%,
        rgba(200, 16, 46, 0.8) 100%
    ) !important;
    box-shadow: 0 0 8px var(--cursor-primary-color, #C8102E),
                0 0 15px rgba(200, 16, 46, 0.5);
    transition: width 0.2s ease, height 0.2s ease, box-shadow 0.2s ease;
}

/* Estado hover para DOT */
body.cursor-hover[data-cursor-shape="dot"] #custom-cursor-dot {
    width: calc(var(--cursor-size, 60px) * var(--cursor-design-hover-scale, 1.5) * 0.25);
    height: calc(var(--cursor-size, 60px) * var(--cursor-design-hover-scale, 1.5) * 0.25);
    box-shadow: 0 0 var(--cursor-design-hover-glow, 20px) var(--cursor-primary-color, #C8102E),
                0 0 calc(var(--cursor-design-hover-glow, 20px) * 1.5) rgba(200, 16, 46, 0.6);
}
