body,
a,
a:hover {
    cursor: url(../assets/cursor/cursor.cur), progress;
}

.cursor-pointer-navidad {
    cursor: url(../assets/cursor/cursor-navidad.cur), pointer;
}

.banner-title,
.banner-sub {
    position: relative;
    font-weight: 900;
    text-transform: uppercase;
    -webkit-font-smoothing: antialiased;
    display: inline-block;
    line-height: 1;
}

/* capa superior = color de relleno */
.banner-title {
    font-size: 4rem;
    color: #fa0f0f;
}

.banner-sub {
    font-size: 2rem;
    color: #fa0f0f;
    margin-top: .25rem;
}

/* contorno blanco (pseudo-elemento justo debajo) */
.banner-title::before,
.banner-sub::before {
    content: attr(data-text);
    position: absolute;
    left: 0;
    top: 0;
    color: #ffffff;
    -webkit-text-stroke: 7px #ffffff;
    /* refuerzo blanco */
    z-index: -2;
}

/* contorno exterior verde + ligera sombra (otra capa) */
.banner-title::after,
.banner-sub::after {
    content: attr(data-text);
    position: absolute;
    left: 0;
    top: 0;
    color: #013b25;
    z-index: -3;
    transform: translate(6px, 6px);
    /* desplaza para crear borde exterior */
    filter: drop-shadow(2px 3px 2px rgba(0, 0, 0, 0.25));
    -webkit-text-stroke: 4px #013b25;
}

/* Ajustes para pantallas pequeñas, si usas Tailwind puedes adaptarlos */
@media (max-width: 640px) {
    .banner-title {
        font-size: 2.2rem;
    }

    .banner-sub {
        font-size: 1.4rem;
    }

}

/* Efecto nieve */
.snowflake {
    position: fixed;
    top: -10px;
    color: #fff;
    user-select: none;
    z-index: 9999;
    pointer-events: none;
    font-weight: 600;
    will-change: transform;
    animation-name: fall, sway;
    animation-timing-function: linear;
    animation-iteration-count: 1;
}

@keyframes fall {
    to {
        transform: translateY(110vh) rotate(360deg);
    }
}

@keyframes sway {
    0% {
        transform: translateX(0);
    }

    50% {
        transform: translateX(30px);
    }

    100% {
        transform: translateX(-10px);
    }
}