/* BANNNNEEERSSSS */

/* ~ BANNER 1 */
.alert-cabecera {
    background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><circle cx="10" cy="10" r="4" fill="%23ff7eb3" /><circle cx="4" cy="4" r="2" fill="%23ff758c" /><circle cx="16" cy="16" r="2" fill="%23ff758c" /></svg>') repeat;
    background-color: #a62134;
    background-size: 50px 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    color: white;
    font-size: 20px;
    text-align: center;
    cursor: pointer;
    transition: background 0.5s ease;
    animation: move-and-color 3s linear infinite;
}

@keyframes move-and-color {
    0% {
        background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><circle cx="10" cy="10" r="4" fill="%23e8a943" /><circle cx="4" cy="4" r="2" fill="%23bf1523" /><circle cx="16" cy="16" r="2" fill="%23e8a943" /></svg>');
        background-position: 0 0;
    }

    50% {
        background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><circle cx="10" cy="10" r="4" fill="%23bf1523" /><circle cx="4" cy="4" r="2" fill="%23e8a943" /><circle cx="16" cy="16" r="2" fill="%23bf1523" /></svg>');
        background-position: 25px 25px;
    }

    100% {
        background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><circle cx="10" cy="10" r="4" fill="%23e8a943" /><circle cx="4" cy="4" r="2" fill="%23bf1523" /><circle cx="16" cy="16" r="2" fill="%23e8a943" /></svg>');
        background-position: 50px 50px;
    }
}

.alert-cabecera>h4>span>strong>a {
    color: white;
}

.alert-cabecera>h4>strong>a {
    color: white;
}

.heading,
.heading-movil {
    color: black !important;
    background-color: white;
    box-shadow: 6px 6px 0px black;
    transform: skew(0.35rad);
}

.heading p,
.heading-movil p {
    transform: skew(-0.35rad);
    margin: 0;
    padding: 0 2%;
}

/* ~ BANNER 2 */

*:has(> .mirror-effect) {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 10vh;
    background-color: #076633;
    overflow: hidden;
}


.mirror-effect {
    position: relative;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 5rem;
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    text-shadow: 0 0 0.15em hsl(148, 87%, 35%);
    user-select: none;
    white-space: nowrap;
    filter: blur(0.007em);
    animation: shake 2.5s linear infinite;
    line-height: normal;
}

.mirror-effect span {
    font-weight: bolder;
    position: absolute;
    top: 0;
    left: 0;
    transform: translate(-50%, -50%);
    -webkit-clip-path: polygon(10% 0%, 44% 0%, 70% 100%, 55% 100%);
    clip-path: polygon(10% 0%, 44% 0%, 70% 100%, 55% 100%);
}

.mirror-effect::before,
.mirror-effect::after {
    font-weight: bolder;
    content: attr(data-text);
    position: absolute;
    top: 0;
    left: 0;
}

.mirror-effect::before {
    animation: crack1 2.5s linear forwards;
    -webkit-clip-path: polygon(0% 0%, 10% 0%, 55% 100%, 0% 100%);
    clip-path: polygon(0% 0%, 10% 0%, 55% 100%, 0% 100%);
}

.mirror-effect::after {
    animation: crack2 2.5s linear forwards;
    -webkit-clip-path: polygon(44% 0%, 100% 0%, 100% 100%, 70% 100%);
    clip-path: polygon(44% 0%, 100% 0%, 100% 100%, 70% 100%);
}

@keyframes shake {

    5%,
    15%,
    25%,
    35%,
    55%,
    65%,
    75%,
    95% {
        filter: blur(0.018em);
        transform: translateY(0.018em) rotate(0deg);
    }

    10%,
    30%,
    40%,
    50%,
    70%,
    80%,
    90% {
        filter: blur(0.01em);
        transform: translateY(-0.018em) rotate(0deg);
    }

    20%,
    60% {
        filter: blur(0.03em);
        transform: translate(-0.018em, 0.018em) rotate(0deg);
    }

    45%,
    85% {
        filter: blur(0.03em);
        transform: translate(0.018em, -0.018em) rotate(0deg);
    }

    100% {
        filter: blur(0.007em);
        transform: translate(0) rotate(-0.5deg);
    }
}

@keyframes crack1 {

    0%,
    95% {
        transform: translate(-50%, -50%);
    }

    100% {
        transform: translate(-51%, -48%);
    }
}

@keyframes crack2 {

    0%,
    95% {
        transform: translate(-50%, -50%);
    }

    100% {
        transform: translate(-49%, -53%);
    }
}

/* ~ BANNER 3 */

.banner:has(.glitch) {
    height: 10vh;
    background-color: #fff;
    padding: 2.5rem;

    /* Fondo ladrillos */
    --s: 35px;
    --c1: #a52032;
    --c2: #787878;

    --g: conic-gradient(at 90% 40%, #0000 75%, var(--c1) 0);
    background: var(--g), var(--g) var(--s) var(--s) var(--c2);
    background-size: calc(2*var(--s)) calc(2*var(--s));

}

.glitch {

    text-align: center;
    color: #fff;
    letter-spacing: 0.05em;
    font-weight: 400;
    /*Create overlap*/

    margin: 0;
    line-height: 0;
    /*Animation*/

    animation: glitch1 2.5s infinite;
}

@media (max-width: 712px) {
    h3.glitch {
        font-size: 2.5em !important;
    }
}

@media (min-width: 712px) {
    h3.glitch {
        font-size: 5em !important;
    }
}

.glitch * {
    font-family: "Jersey 10", monospace;
    font-weight: bolder;
}

.glitch:nth-child(1) {
    z-index: 5;
    text-shadow:
        -2px -2px 0 #000,
        2px -2px 0 #000,
        -2px 2px 0 #000,
        2px 2px 0 #000,
        -3px 0px 0 #000,
        3px 0px 0 #000,
        0px -3px 0 #000,
        0px 3px 0 #000;
}

/*Keyframes*/

@keyframes glitch1 {
    0% {
        transform: none;
    }

    7% {
        transform: skew(-0.7deg, -1.5deg);
    }

    10% {
        transform: none;
    }

    27% {
        transform: none;
    }

    30% {
        transform: skew(1.6deg, -0.35deg);
    }

    35% {
        transform: none;
    }

    52% {
        transform: none;
    }

    55% {
        transform: skew(-1deg, 0.2deg);
    }

    50% {
        transform: none;
    }

    72% {
        transform: none;
    }

    75% {
        transform: skew(0.4deg, 1deg);
    }

    80% {
        transform: none;
    }

    100% {
        transform: none;
    }
}

/* ~ BANNER 4 */

.banner4 {
    height: 5vh;
    font-size: 2em;
}


.banner4 span, .banner4 div {
    display: inline-block;
}

.banner:has(.banner4) {
    background-color: #9d7534;
    opacity: 0.8;
    background:
                linear-gradient(135deg, hsla(134, 22%, 20%, 0.666) 25%, transparent 25%) -17px 0/ 34px 34px,
                linear-gradient(225deg, hsl(133deg 96.4% 19.72%) 25%, transparent 25%) -17px 0/ 34px 34px,
                linear-gradient(315deg, hsla(134, 22%, 20%, 0.666) 25%, transparent 25%) 0px 0/ 34px 34px,
                linear-gradient(45deg, hsl(133, 57%, 38%) 25%, hsl(133, 35%, 35%) 25%) 0px 0/ 34px 34px;
}

.four span {
    color: white;
    opacity: 0;
    transform: translate(0, -100px) rotate(360deg) scale(0);
    animation: revolveDrop .3s forwards;
    text-shadow: 0 0 5px black;
}


@keyframes revolveDrop {
    30% {
        transform: translate(0, -50px) rotate(180deg) scale(1);
    }

    60% {
        transform: translate(0, 20px) scale(.8) rotate(0deg);
    }

    100% {
        transform: translate(0) scale(1) rotate(0deg);
        opacity: 1;
    }
}

.banner4 span {
    animation-delay: calc(0.05s * var(--i));
}

.banner4 span {
    font-weight: 700;
    margin: .25rem;
}

.bg-banner4 {
    background-color: #026317;
    box-shadow: 6px 6px 0px hsl(134, 22%, 20%), 0 0 5px black;
    border-radius: 15px;
    corner-shape: scoop;
}

/* ~ BANNER 5 */


.banner-neon {
    background: linear-gradient(135deg, hsl(130, 28%, 14%) 0%, hsl(130, 48%, 16%) 50%, hsl(130, 73%, 22%) 100%);
    padding: 25px 40px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.banner-neon::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
    animation: neon-shine 5s infinite;
}

@keyframes neon-shine {
    0% {
        left: -100%;
    }

    50%,
    100% {
        left: 100%;
    }
}

.neon-text {
    font-family: 'Segoe UI', Tahoma, sans-serif;
    font-size: clamp(1.2rem, 4vw, 2.2rem);
    font-weight: 200;
    text-transform: uppercase;
    letter-spacing: 6px;
    color: #fff;
    text-shadow:
        0 0 2px #fff,
        0 0 5px #fff,
        0 0 10px hsl(130, 100%, 60%),
        0 0 20px hsl(130, 100%, 60%),
        0 0 40px hsl(130, 100%, 60%);
    animation: neon-pulse 5s ease-in-out infinite alternate;
    margin: 0;
    position: relative;
    z-index: 1;
}

.neon-text a {
    color: inherit;
    text-decoration: none;
}

.neon-text a:hover {
    color: white;
    text-shadow:
        0 0 5px #ffa381,
        0 0 15px #ff6b35,
        0 0 30px #ff6b35,
        0 0 60px #ff6b35,
        0 0 80px #fc2c10;
    transition: text-shadow .5s;
}

@keyframes neon-pulse {
    from {
        text-shadow:
            0 0 5px #fff,
            0 0 10px #fff,
            0 0 20px hsl(130, 100%, 60%),
            0 0 40px hsl(130, 100%, 60%),
            0 0 60px hsl(130, 81%, 25%);
    }

    to {
        text-shadow:
            0 0 2px #fff,
            0 0 5px #fff,
            0 0 20px hsl(130, 100%, 60%),
            0 0 40px hsl(130, 100%, 60%),
            0 0 60px hsl(130, 81%, 25%);
    }
}

.neon-stars {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    pointer-events: none;
}

.neon-star {
    position: absolute;
    width: 3px;
    height: 3px;
    background: #fff;
    border-radius: 50%;
    animation: twinkle 2s infinite;
}

@keyframes twinkle {

    0%,
    100% {
        opacity: 0.3;
        transform: scale(1);
    }

    50% {
        opacity: 1;
        transform: scale(1.5);
    }
}
