/* =========================================================
   VARIABLES
========================================================= */

:root {

    --purple: #892be2;
    --purple-light: #a855f7;

    --pink: #ff00aa;
    --pink-light: #ff59c7;

    --gradient:
        linear-gradient(
            110deg,
            #892be2c8 0%,
            #ff00aaa0 100%
        );

    --white: #ffffff;

    --glass:
        rgba(255, 255, 255, 0.78);

    --glass-strong:
        rgba(255, 255, 255, 0.90);

    --dark: #18121c;

    --text: #27212b;

    --muted: #6d6472;

    --radius: 30px;

    --shadow:
        0 20px 60px rgba(57, 0, 80, .18);

    --glow:
        0 0 35px rgba(255, 255, 255, .55);
}


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

*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    width: 100%;
    min-height: 100%;

    scroll-behavior: smooth;

    -webkit-text-size-adjust: 100%;
}

body {
    width: 100%;
    min-width: 0;
    min-height: 100vh;

    overflow-x: hidden;

    color: var(--text);

    font-family: "Edu TAS Beginner", cursive;

    background-image:
        url("../IMG/FONDOS.jpg");

    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
}

img,
video,
svg {
    max-width: 100%;
}

img {
    height: auto;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

button {
    font: inherit;
}


/* =========================================================
   FUENTES
========================================================= */

.aladin-regular {
    font-family: "Aladin", system-ui;
    font-weight: 400;
    font-style: normal;
}

.edu-tas-beginner {
    font-family: "Edu TAS Beginner", cursive;
    font-weight: 400;
    font-style: normal;
}


/* =========================================================
   CONTENIDO PRINCIPAL
========================================================= */

main {
    width: 100%;
    min-width: 0;
}


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

.site-header {
    position: relative;

    width: 100%;
    min-height: 135px;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;

    padding: 0;

    z-index: 100;
}


/* =========================================================
   LOGO
========================================================= */

.LOGO {
    max-width: 100%;
    height: auto;
    object-fit: contain;
}


/* =========================================================
   NAV PRINCIPAL
========================================================= */

.main-nav {

    width: min(680px, calc(100% - 30px));

    min-height: 55px;

    display: flex;

    align-items: center;
    justify-content: center;

    flex-wrap: wrap;

    gap: clamp(.5rem, 2vw, 2rem);

    padding: .8rem clamp(.8rem, 3vw, 1.5rem);

    border:
        1px solid
        rgba(255, 255, 255, .20);

    border-radius: 30px;

    background:
        linear-gradient(
            to right,
            #892be24c 0%,
            #ff00aa20 100%
        );

    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    box-shadow:
        0 10px 30px
        rgba(0, 0, 0, .10);
}

.main-nav a {

    color: #ffffff;

    text-decoration: none;

    font-weight: 600;

    letter-spacing: .5px;

    font-family:
        "Raleway",
        sans-serif;

    font-size:
        clamp(.75rem, 1.4vw, 1rem);

    white-space: nowrap;

    transition:
        color .3s ease,
        transform .3s ease;
}

.main-nav a:hover {
    color: #D1D5DB;
    transform: translateY(-2px);
}

.main-nav a.active {
    color: #ffffff;
}


/* =========================================================
   BOTTOM MENU
========================================================= */

.bottom-menu {

    position: relative;

    z-index: 1000;

    width: 100%;
    height: 50px;

    display: flex;

    flex-direction: row;

    align-items: center;

    padding: 0 clamp(8px, 3vw, 30px);

    background:
        linear-gradient(
            135deg,
            #3d1b61 100%
            #c0b8d8 25%,
            #9b7fc7 50%,
            #6b3fb0 75%,
            #3d1b61 100%
        );

    border:
        1px solid
        rgba(212, 175, 55, 0.28);

    border-bottom:
        1px solid
        rgba(212, 175, 55, 0.85);

    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);

    box-shadow:
        0 14px 35px rgba(0, 0, 0, 0.65),
        0 6px 18px rgba(0, 0, 0, 0.45),
        0 0 22px rgba(190, 0, 255, 0.18),
        0 -1px 8px rgba(212, 175, 55, 0.15),
        inset 0 1px 0 rgba(255, 255, 255, 0.12);

    overflow: hidden;
}


/* =========================================================
   ELEMENTOS DEL MENU
========================================================= */

.menu-item {

    position: relative;

    z-index: 101;

    flex: 1 1 0;

    min-width: 0;

    height: 50px;

    display: flex;

    align-items: center;
    justify-content: center;

    padding:
        0 clamp(4px, 1vw, 12px);

    color:
        rgba(245, 235, 241, 0.78);

    text-decoration: none;

    font-family:
        "Edu TAS Beginner",
        cursive;

    font-size:
        clamp(12px, 1.4vw, 20px);

    cursor: pointer;

    transition:
        color .3s ease,
        background .35s ease,
        text-shadow .3s ease;
}


/* =========================================================
   TEXTO DEL MENU
========================================================= */

.menu-text {

    position: relative;

    z-index: 2;

    display: block;

    width: auto;
    height: auto;

    margin: 0;
    padding: 0;

    text-align: center;

    white-space: nowrap;

    pointer-events: none;

    color: inherit;

    font-family: inherit;
    font-size: inherit;

    visibility: visible;
    opacity: 1;

    transform: none;

    transition:
        color .3s ease,
        text-shadow .3s ease;
}


/* =========================================================
   ORNAMENTO
========================================================= */

.menu-item::before {

    content: "༺───༻";

    position: absolute;

    z-index: 1;

    left: 50%;
    bottom: 3px;

    transform:
        translate(-50%, 8px);

    color: #d6b477;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 11px;

    letter-spacing: .5px;

    white-space: nowrap;

    line-height: 1;

    opacity: 0;

    pointer-events: none;

    transition:
        opacity .4s ease,
        transform .4s cubic-bezier(.22, 1, .36, 1);
}

.menu-item:hover::before {

    opacity: 1;

    transform:
        translate(-50%, 0);
}


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

.menu-item:hover {

    color: #f3d8b1;

    text-shadow:
        0 0 6px
        rgba(243, 216, 177, .22);

    background:
        radial-gradient(
            ellipse at center bottom,
            rgba(212, 175, 55, .07),
            transparent 65%
        );
}

.menu-item:hover .menu-text {

    color: #f3d8b1;

    text-shadow:
        0 0 5px
        rgba(232, 197, 142, .25),
        0 0 12px
        rgba(232, 197, 142, .08);
}


/* =========================================================
   SEPARADORES
========================================================= */

.menu-item:nth-child(1)::after,
.menu-item:nth-child(2)::after,
.menu-item:nth-child(3)::after {

    content: "";

    position: absolute;

    right: 0;
    top: 50%;

    width: 1px;
    height: 34px;

    transform:
        translateY(-50%);

    background:
        rgba(212, 175, 55, .85);

    pointer-events: none;
}


/* =========================================================
   ACTIVO
========================================================= */

.menu-item.active {

    color:
        rgba(255, 245, 250, .95);

    text-shadow:
        0 0 8px
        rgba(232, 197, 142, .12);
}


/* =========================================================
   INDICADOR
========================================================= */

.menu-indicator {

    position: absolute;

    z-index: 3;

    left: 50%;
    bottom: 0;

    width: 48px;
    height: 2px;

    transform:
        translateX(-50%);

    background: #e8c58e;

    opacity: 0;

    pointer-events: none;

    transition:
        opacity .3s ease,
        width .35s ease,
        background .3s ease;
}

.menu-item:hover .menu-indicator {

    width: 48px;

    opacity: 1;

    background: #d8b77c;

    box-shadow:
        0 0 5px
        rgba(216, 183, 124, .25);
}


/* =========================================================
   SEGURIDAD
========================================================= */

.bottom-menu .menu-text,
.bottom-menu .menu-item .menu-text {

    display: block !important;

    visibility: visible !important;

    opacity: 1 !important;

    transform: none !important;
}


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

.section-header {

    position: relative;

    z-index: 5;

    width: 100%;

    min-height: 65px;

    display: flex;

    align-items: center;

    padding:
        12px
        clamp(15px, 3vw, 35px);

    margin-bottom: 25px;

    border-radius: 0;

    background:
        linear-gradient(
            135deg,
            rgba(61, 27, 97, .45) 0%,
            rgba(192, 184, 216, .18) 25%,
            rgba(155, 127, 199, .25) 50%,
            rgba(107, 63, 176, .30) 75%,
            rgba(61, 27, 97, .45) 100%
        );

    border:
        1px solid
        rgba(212, 175, 55, .28);

    border-bottom:
        1px solid
        rgba(212, 175, 55, .85);

    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);

    box-shadow:
        0 14px 35px rgba(0, 0, 0, .65),
        0 6px 18px rgba(0, 0, 0, .45),
        0 0 22px rgba(190, 0, 255, .18),
        0 -1px 8px rgba(212, 175, 55, .15),
        inset 0 1px 0 rgba(255, 255, 255, .12);
}

.section-header h2 {

    margin: 0;

    font-family:
        "Aladin",
        system-ui;

    font-size:
        clamp(24px, 3vw, 32px);

    line-height: 1.1;

    color: #ffffff;

    letter-spacing: 1px;
}


/* =========================================================
   SECCIÓN VIDEOS
========================================================= */

.videos-section {

    position: relative;

    width: 100%;

    min-height: 850px;

    margin-top: 45px;

    padding:
        20px
        clamp(10px, 4vw, 60px)
        50px;

    overflow: hidden;

    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    border-radius: 20px;

    box-shadow:
        0 5px 25px rgba(0, 0, 0, .30),
        inset 0 0 40px rgba(255, 255, 255, .20);
}

.videos-section::before {

    content: "";

    position: absolute;

    inset: 0;

    background:
        rgba(15, 0, 30, .48);

    z-index: 0;

    pointer-events: none;
}


/* =========================================================
   CONTENEDOR INTERIOR
========================================================= */

.videos-inner {

    position: relative;

    z-index: 1;

    width: 100%;
    max-width: 1450px;

    margin: 0 auto;

    padding:
        0 0 35px;

    border-radius: 15px;

    background-image:
        url("../IMG/FONFOVIDEO.png");

    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    overflow: visible;
}


/* =========================================================
   VIDEO PRINCIPAL — CONTENEDOR
========================================================= */

.video-container {

    position: relative;

    width: 100%;

    display: flex;

    justify-content: center;
    align-items: center;

    min-height: 0;

    margin: 0 auto;

    overflow: visible;
}


/* =========================================================
   DIFUMINADO LATERAL
========================================================= */

.video-container::before {

    content: "";

    position: absolute;

    z-index: 1;

    width: 70%;
    height: 100%;

    left: 50%;
    top: 0;

    transform:
        translateX(-50%);

    pointer-events: none;

    background:
        linear-gradient(
            to right,
            transparent 0%,
            rgba(0, 0, 0, .05) 8%,
            rgba(0, 0, 0, .12) 15%,
            rgba(0, 0, 0, .22) 22%,
            transparent 32%,
            transparent 68%,
            rgba(0, 0, 0, .22) 78%,
            rgba(0, 0, 0, .12) 85%,
            rgba(0, 0, 0, .05) 92%,
            transparent 100%
        );

    filter: blur(18px);

    opacity: .9;
}


/* =========================================================
   FUSIÓN SUPERIOR / INFERIOR
========================================================= */

.video-container::after {

    content: "";

    position: absolute;

    z-index: 3;

    width: 70%;
    height: 100%;

    left: 50%;
    top: 0;

    transform:
        translateX(-50%);

    pointer-events: none;

    background:
        linear-gradient(
            to bottom,
            rgba(0, 0, 0, .18) 0%,
            transparent 18%,
            transparent 82%,
            rgba(0, 0, 0, .18) 100%
        );

    filter: blur(18px);

    opacity: .75;
}


/* =========================================================
   VIDEO PRINCIPAL
========================================================= */

.video-main {

    position: relative;

    z-index: 2;

    display: block;

    width: 70%;
    max-width: 1100px;

    height: auto;

    margin:
        -30px auto 0;

    padding: 0;

    border: none;

    border-radius: 0;

    background:
        linear-gradient(
            135deg,
            rgba(137, 43, 226, .25),
            rgba(255, 0, 170, .20)
        ),
        #000;

    box-shadow:
        0 0 35px
        rgba(255, 120, 220, .12);

    object-fit: contain;

    vertical-align: middle;

    -webkit-mask-image:
        linear-gradient(
            to right,
            transparent 0%,
            rgba(0, 0, 0, .15) 4%,
            rgba(0, 0, 0, .45) 8%,
            rgba(0, 0, 0, .75) 13%,
            #000 20%,
            #000 80%,
            rgba(0, 0, 0, .75) 87%,
            rgba(0, 0, 0, .45) 92%,
            rgba(0, 0, 0, .15) 96%,
            transparent 100%
        );

    mask-image:
        linear-gradient(
            to right,
            transparent 0%,
            rgba(0, 0, 0, .15) 4%,
            rgba(0, 0, 0, .45) 8%,
            rgba(0, 0, 0, .75) 13%,
            #000 20%,
            #000 80%,
            rgba(0, 0, 0, .75) 87%,
            rgba(0, 0, 0, .45) 92%,
            rgba(0, 0, 0, .15) 96%,
            transparent 100%
        );

    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;

    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
}


/* =========================================================
   BOTÓN SABER MÁS
========================================================= */

.videos-button-wrapper {

    position: relative;

    width: min(900px, 95%);

    min-height: 150px;

    margin:
        -110px auto 20px;

    display: flex;

    align-items: center;
    justify-content: center;
}


/* =========================================================
   NEON BUTTON
========================================================= */

.neon-button {

    position: relative;

    z-index: 5;

    width: min(300px, 70vw);

    min-height: 40px;

    display: flex;

    align-items: center;
    justify-content: center;

    gap: clamp(10px, 2vw, 25px);

    padding:
        8px 20px;

    border:
        2px solid
        #d4af37;

    border-radius: 50px;

    background:
        linear-gradient(
            180deg,
            rgba(35, 0, 38, .75),
            rgba(3, 0, 7, .95)
        );

    color: #ffffff;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(14px, 2vw, 21px);

    font-style: italic;

    letter-spacing: 1px;

    text-decoration: none;

    cursor: pointer;

    box-shadow:
        0 0 5px #ff00ff,
        0 0 12px rgba(255, 0, 255, .8),
        0 0 25px rgba(210, 0, 255, .55),
        inset 0 0 15px rgba(255, 0, 255, .12);

    transition:
        box-shadow .3s ease,
        transform .3s ease,
        border-color .3s ease;

    animation:
        botonFlotando 3s ease-in-out infinite;
}


@keyframes botonFlotando {

    0%,
    100% {
        transform:
            translateY(0);
    }

    50% {
        transform:
            translateY(-10px);
    }
}


.neon-button::before {

    content: "";

    position: absolute;

    inset: 0;

    border-radius: inherit;

    box-shadow:
        inset 0 0 15px
        rgba(255, 0, 255, .12);

    pointer-events: none;
}


.neon-button:hover {

    transform:
        scale(1.025);

    border-color:
        #ffe58a;

    box-shadow:
        0 0 7px #ffd700,
        0 0 18px #ffd700,
        0 0 35px rgba(255, 200, 0, .8),
        0 0 60px rgba(212, 175, 55, .35),
        inset 0 0 20px rgba(255, 215, 0, .2);
}


/* =========================================================
   TEXTO BOTÓN
========================================================= */

.button-text {

    position: relative;

    z-index: 2;

    text-align: center;

    text-shadow:
        0 0 5px rgba(255,255,255,.45),
        0 0 12px rgba(255,255,255,.2);
}


/* =========================================================
   FLECHAS
========================================================= */

.button-arrows {

    display: flex;

    gap: 4px;

    color: #d4af37;

    font-family: Arial, sans-serif;

    font-size:
        clamp(20px, 3vw, 30px);

    font-style: normal;

    font-weight: 300;

    text-shadow:
        0 0 5px
        rgba(255, 0, 255, .3);
}

.button-arrows span {

    display: block;

    transform:
        scaleY(1.15);
}


/* =========================================================
   ORNAMENTOS
========================================================= */

.ornament {

    position: absolute;

    top: 50%;

    width: clamp(150px, 22vw, 300px);

    height: auto;

    aspect-ratio: 300 / 110;

    transform:
        translateY(-50%);

    pointer-events: none;

    filter:
        drop-shadow(0 0 3px #ffe58a)
        drop-shadow(0 0 8px rgba(255, 215, 0, .65))
        drop-shadow(0 0 15px rgba(212, 175, 55, .4));
}

.ornament-left {
    left: clamp(-80px, -2vw, -10px);
}

.ornament-right {

    right: clamp(-80px, -2vw, -10px);

    transform:
        translateY(-50%)
        scaleX(-1);
}

.ornament svg {

    width: 100%;
    height: 100%;

    overflow: visible;
}

.ornament path {

    fill: none;

    stroke: #d4af37;

    stroke-width: 1.8;

    stroke-linecap: round;
    stroke-linejoin: round;
}

.ornament .ornament-bright {

    stroke: #ffe58a;

    stroke-width: 1.1;
}


/* =========================================================
   DESTELLOS
========================================================= */

.spark {

    position: absolute;

    z-index: 4;

    width: 5px;
    height: 5px;

    border-radius: 50%;

    background: #ffffff;

    box-shadow:
        0 0 4px #ffffff,
        0 0 10px #ffe58a,
        0 0 20px #ffd700;

    animation:
        twinkle 2s infinite ease-in-out;
}

.spark::before,
.spark::after {

    content: "";

    position: absolute;

    left: 50%;
    top: 50%;

    transform:
        translate(-50%, -50%);

    background:
        linear-gradient(
            90deg,
            transparent,
            #ffffff,
            transparent
        );
}

.spark::before {

    width: 25px;
    height: 1px;
}

.spark::after {

    width: 1px;
    height: 25px;
}

.spark-one {
    left: 72px;
    top: 34px;
}

.spark-two {

    left: 116px;
    top: 54px;

    transform:
        scale(.65);

    animation-delay:
        .6s;
}

.spark-three {

    right: 73px;
    top: 38px;

    animation-delay:
        .3s;
}

.spark-four {

    right: 28px;
    top: 67px;

    transform:
        scale(.55);

    animation-delay:
        1s;
}

@keyframes twinkle {

    0%,
    100% {
        opacity: .55;
    }

    50% {
        opacity: 1;
    }
}


/* =========================================================
   BRILLO INFERIOR
========================================================= */

.button-bottom-glow {

    position: absolute;

    z-index: 1;

    left: 50%;
    bottom: 3px;

    width: min(520px, 80%);

    height: 18px;

    transform:
        translateX(-50%);

    background: #ffd700;

    filter: blur(18px);

    opacity: .65;

    pointer-events: none;
}

.button-bottom-line {

    position: absolute;

    z-index: 2;

    bottom: 0;
    left: 50%;

    width: min(650px, 90%);

    height: 2px;

    transform:
        translateX(-50%);

    background:
        linear-gradient(
            90deg,
            transparent,
            #b8860b,
            #ffe58a,
            #b8860b,
            transparent
        );

    box-shadow:
        0 0 8px #ffd700,
        0 0 20px #ffd700,
        0 0 20px #e500ff;

    pointer-events: none;
}


/* =========================================================
   GALERÍA DE VIDEOS
========================================================= */

.videos-grid {

    width: 100%;

    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: clamp(8px, 1.5vw, 15px);

    margin-top: 5px;
}


/* =========================================================
   VIDEO CARD
========================================================= */

.video-card {

    position: relative;

    width: 100%;

    height: clamp(180px, 35vw, 700px);

    min-width: 0;

    overflow: hidden;

    border-radius: 8px;

    background: #000;

    border:
        1px solid
        rgba(255, 180, 235, .75);

    box-shadow:
        0 5px 12px
        rgba(0, 0, 0, .40);

    transition:
        transform .25s ease,
        box-shadow .25s ease,
        border-color .25s ease;
}

.video-card video {

    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    background: #000;
}

.video-card::after {

    content: "";

    position: absolute;

    left: 0;
    right: 0;
    bottom: 0;

    height: 55%;

    background:
        linear-gradient(
            to top,
            rgba(0, 0, 0, .90),
            rgba(0, 0, 0, 0)
        );

    pointer-events: none;

    z-index: 1;
}

.video-card-title {

    position: absolute;

    left: 0;
    right: 0;
    bottom: 0;

    z-index: 2;

    padding:
        10px
        6px
        8px;

    text-align: center;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(11px, 1.3vw, 15px);

    font-weight: bold;

    line-height: 1.2;

    color: #ffffff;

    text-shadow:
        0 2px 5px
        rgba(0, 0, 0, .95);

    pointer-events: none;
}

.video-card:hover {

    transform:
        translateY(-3px);

    border-color:
        rgba(255, 220, 245, .95);

    box-shadow:
        0 8px 22px
        rgba(255, 100, 220, .35);
}


/* =========================================================
   IMÁGENES
========================================================= */

.imagenes-section {

    position: relative;

    width: 100%;

    min-height: 800px;

    margin-top: 45px;

    padding:
        35px
        clamp(10px, 4vw, 60px)
        60px;

    overflow: hidden;

    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    border-radius: 20px;

    box-shadow:
        0 5px 20px
        rgba(0, 0, 0, .25);
}

.imagenes-section::before {

    content: "";

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(20, 0, 50, .38),
            rgba(80, 0, 100, .10),
            rgba(20, 0, 50, .38)
        );

    pointer-events: none;

    z-index: 0;
}

.imagenes__inner {

    position: relative;

    z-index: 1;

    width: 100%;

    max-width: 1450px;

    margin: 0 auto;
}


/* =========================================================
   CARRUSEL
========================================================= */

.carousel {

    position: relative;

    width: 100%;

    max-width: 1250px;

    height: clamp(350px, 50vw, 650px);

    margin: 30px auto 0;

    overflow: hidden;

    border-radius: 20px;

    background:
        rgba(0, 0, 0, .20);

    box-shadow:
        0 10px 35px
        rgba(0, 0, 0, .30);
}

.carousel-track {

    position: relative;

    width: 100%;
    height: 100%;
}

.carousel-slide {

    position: absolute;

    inset: 0;

    width: 100%;
    height: 100%;

    display: flex;

    justify-content: center;
    align-items: center;

    opacity: 0;
    visibility: hidden;

    transform:
        scale(1.03);

    transition:
        opacity .7s ease,
        transform .7s ease;
}

.carousel-slide img {

    width: 60%;
    height: 95%;

    display: block;

    object-fit: cover;
    object-position: center;
}

.carousel-slide.active {

    opacity: 1;

    visibility: visible;

    transform:
        scale(1);
}


/* =========================================================
   BOTONES CARRUSEL
========================================================= */

.carousel-btn {

    position: absolute;

    top: 50%;

    transform:
        translateY(-50%);

    z-index: 10;

    width: clamp(40px, 5vw, 58px);
    height: clamp(40px, 5vw, 58px);

    display: flex;

    align-items: center;
    justify-content: center;

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

    border-radius: 50%;

    background:
        rgba(0, 0, 0, .38);

    color: white;

    font-size:
        clamp(19px, 2.5vw, 28px);

    cursor: pointer;

    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);

    transition:
        all .3s ease;
}

.carousel-btn:hover {

    background:
        rgba(0, 0, 0, .70);

    transform:
        translateY(-50%)
        scale(1.1);
}

.carousel-btn.prev {
    left: clamp(8px, 2vw, 20px);
}

.carousel-btn.next {
    right: clamp(8px, 2vw, 20px);
}


/* =========================================================
   DOTS
========================================================= */

.carousel-dots {

    position: absolute;

    bottom: clamp(10px, 2vw, 20px);

    left: 50%;

    transform:
        translateX(-50%);

    z-index: 10;

    display: flex;

    align-items: center;

    gap: clamp(6px, 1vw, 10px);
}

.carousel-dot {

    width: clamp(8px, 1vw, 12px);
    height: clamp(8px, 1vw, 12px);

    padding: 0;

    border: none;

    border-radius: 50%;

    background:
        rgba(255, 255, 255, .55);

    cursor: pointer;

    transition:
        all .3s ease;
}

.carousel-dot:hover {
    background: white;
}

.carousel-dot.active {

    width: clamp(22px, 3vw, 30px);

    border-radius: 10px;

    background: white;
}


/* =========================================================
   PLAYLIST
========================================================= */

.playlist-section {

    width: 100%;

    min-height: 600px;

    margin-top: 45px;

    padding:
        35px
        clamp(10px, 4vw, 60px)
        60px;

    background:
        rgba(255, 255, 255, .12);

    border-radius: 20px;

    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    box-shadow:
        0 10px 35px
        rgba(0, 0, 0, .15);
}

.playlist-inner {

    width: 100%;

    max-width: 1450px;

    margin: 0 auto;
}

.playlist-content {

    width: 100%;

    max-width: 1100px;

    display: flex;

    align-items: center;
    justify-content: center;

    gap: clamp(25px, 5vw, 50px);

    margin: 40px auto 0;
}

.playlist-image {

    width: min(450px, 100%);
}

.playlist-image img {

    width: 100%;

    height: auto;

    display: block;

    border-radius: 20px;

    box-shadow:
        0 15px 40px
        rgba(0, 0, 0, .25);
}

.playlist-info {

    width: 100%;

    max-width: 500px;

    padding:
        clamp(20px, 3vw, 30px);

    border-radius: 20px;

    background:
        rgba(255, 255, 255, .75);

    box-shadow:
        0 10px 30px
        rgba(0, 0, 0, .15);
}

.playlist-info h3 {

    margin-bottom: 15px;

    font-family:
        "Raleway",
        sans-serif;

    font-size:
        clamp(24px, 3vw, 30px);

    color: #000;
}

.playlist-info p {

    line-height: 1.8;

    color: var(--muted);

    font-size:
        clamp(15px, 1.5vw, 18px);
}


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

.footer {

    width: 100%;

    padding:
        clamp(40px, 5vw, 80px)
        clamp(15px, 4vw, 40px)
        30px;

    display: flex;

    flex-direction: column;

    text-align: center;

    color: #f5f5f5;

    background:
        linear-gradient(
            to right,
            #892be2c8 0%,
            #ff00aaa0 100%
        );
}

.footer-container {

    width: 100%;

    max-width: 1300px;

    margin: 0 auto;

    display: grid;

    grid-template-columns:
        1fr;

    gap:
        clamp(30px, 5vw, 80px);

    text-align: center;
}

.footer-logo {

    display: flex;

    align-items: center;
    justify-content: center;

    gap: 15px;

    margin-bottom: 25px;
}

.footer-logo img {

    width:
        clamp(60px, 8vw, 108px);

    height: auto;
}

.footer-info p {

    width: 100%;

    max-width: 500px;

    margin: 0 auto;

    line-height: 1.8;

    color: black;

    font-family:
        "Edu TAS Beginner",
        cursive;
}

.footer h4 {

    margin-bottom: 20px;

    color: white;

    font-size:
        clamp(1.4rem, 2vw, 1.8rem);

    font-family:
        "Aladin",
        system-ui;
}

.footer-links ul {

    list-style: none;

    padding: 0;
}

.footer-links li {

    margin-bottom: 14px;
}

.footer-links ul li a {

    font-family:
        "Edu TAS Beginner",
        cursive;
}

.footer-links a {

    color: black;

    text-decoration: none;

    transition:
        color .3s ease;
}

.footer-links a:hover {
    color: white;
}

.footer-contact p {

    margin-bottom: 14px;

    color: black;

    font-family:
        "Edu TAS Beginner",
        cursive;
}

.footer-bottom {

    width: 100%;

    max-width: 1300px;

    margin:
        50px auto 0;

    padding-top: 25px;

    text-align: center;

    font-size:
        clamp(.8rem, 1.2vw, .95rem);

    font-family:
        "Edu TAS Beginner",
        cursive;

    color: #d8d8d8;

    border-top:
        1px solid
        rgba(255,255,255,.15);
}


/* =========================================================
   TABLETS
========================================================= */

@media (max-width: 900px) {

    body {
        background-attachment: scroll;
    }

    .videos-section {
        min-height: auto;
    }

    .video-main {
        width: 82%;
    }

    .videos-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .video-card {
        height: 240px;
    }

    .carousel {
        height: 500px;
    }

    .carousel-slide img {
        width: 70%;
    }

    .playlist-content {
        flex-direction: column;
    }

    .playlist-image,
    .playlist-info {
        max-width: 600px;
    }

    .footer-container {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .footer-info {
        grid-column:
            1 / -1;
    }

    .footer-logo {
        justify-content: center;
    }
}


/* =========================================================
   TABLET PEQUEÑA
========================================================= */

@media (max-width: 700px) {

    .site-header {
        min-height: 120px;
    }

    .main-nav {
        width:
            calc(100% - 24px);
    }

    .bottom-menu {

        position: static;

        width:
            calc(100% - 24px);

        height: 82px;

        min-height: 82px;

        margin:
            0 auto;

        padding:
            0 8px;

        border-radius: 0;
    }

    .menu-item {

        height: 72px;

        padding:
            0 4px;

        font-size:
            clamp(10px, 2vw, 13px);

        gap: 5px;
    }

    .menu-icon {

        width: 23px;
        height: 23px;

        font-size: 23px;
    }

    .menu-text {

        white-space: normal;

        max-width: 90px;

        line-height: 1.2;

        font-size:
            clamp(9px, 1.7vw, 11px);
    }

    .menu-item::before {
        bottom: 4px;
        font-size: 9px;
    }

    .menu-indicator {

        bottom: 5px;

        width: 42px;
    }

    .menu-item:hover .menu-indicator {
        width: 42px;
    }

    .videos-section {

        margin-top: 25px;

        padding:
            15px
            10px
            35px;

        border-radius: 15px;
    }

    .videos-inner {
        padding-bottom: 25px;
    }

    .section-header {

        min-height: 58px;

        padding:
            10px 15px;

        margin-bottom: 15px;
    }

    .section-header h2 {
        font-size: 25px;
    }

    .video-main {

        width: 90%;

        margin-top:
            -15px;
    }

    .video-container::before,
    .video-container::after {
        width: 90%;
    }

    .videos-button-wrapper {

        min-height: 125px;

        margin-top:
            20px;
    }

    .neon-button {

        width:
            min(300px, 72vw);

        min-height:
            48px;

        font-size:
            16px;
    }

    .ornament {

        width:
            clamp(130px, 28vw, 190px);

        opacity:
            .7;
    }

    .ornament-left {
        left: -45px;
    }

    .ornament-right {
        right: -45px;
    }

    .videos-grid {
        gap: 8px;
    }

    .video-card {
        height: 180px;
    }

    .imagenes-section {

        min-height: auto;

        margin-top: 30px;

        padding:
            20px
            10px
            35px;

        border-radius: 15px;
    }

    .carousel {

        height:
            clamp(330px, 70vw, 450px);

        margin-top: 20px;

        border-radius: 12px;
    }

    .carousel-slide img {
        width: 75%;
    }

    .playlist-section {

        min-height: auto;

        margin-top: 30px;

        padding:
            25px
            10px
            40px;
    }

    .playlist-content {
        margin-top: 25px;
    }
}


/* =========================================================
   MÓVIL
========================================================= */

@media (max-width: 500px) {

    .site-header {
        min-height: 115px;
    }

    .LOGO {
        width: 75px;
    }

    .main-nav {

        width:
            calc(100% - 20px);

        min-height: 48px;

        gap:
            .4rem .6rem;

        padding:
            .55rem .6rem;

        border-radius:
            20px;
    }

    .main-nav a {
        font-size:
            .72rem;
    }

    .bottom-menu {

        width: 100%;

        padding:
            0 4px;

        border-left: 0;
        border-right: 0;
    }

    .menu-item {

        padding:
            0 2px;

        font-size: 10px;
    }

    .menu-icon {

        width: 21px;
        height: 21px;

        font-size: 21px;
    }

    .menu-text {

        max-width: 65px;

        font-size: 9px;
    }

    .menu-item::before {
        font-size: 8px;
    }

    .section-header {

        min-height: 52px;

        padding:
            8px 12px;

        margin-bottom: 12px;
    }

    .section-header h2 {
        font-size: 22px;
    }

    .videos-section {

        margin-top: 20px;

        padding:
            10px
            6px
            25px;

        border-radius: 10px;
    }

    .videos-inner {
        padding-bottom: 20px;
        border-radius: 10px;
    }

    .video-main {

        width: 100%;

        margin-top:
            -5px;
    }

    .video-container::before,
    .video-container::after {
        width: 100%;
    }

    .videos-button-wrapper {

        min-height: 115px;

        margin-top:
            15px;
    }

    .neon-button {

        width:
            min(280px, 75vw);

        min-height:
            44px;

        padding:
            6px 12px;

        gap:
            8px;

        font-size:
            14px;
    }

    .button-arrows {
        font-size: 19px;
    }

    .ornament {

        width:
            140px;

        opacity:
            .55;
    }

    .ornament-left {
        left: -55px;
    }

    .ornament-right {
        right: -55px;
    }

    .button-bottom-line {
        width: 90%;
    }

    .button-bottom-glow {
        width: 75%;
    }

    .videos-grid {

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

        gap: 7px;
    }

    .video-card {

        height:
            clamp(100px, 30vw, 145px);

        border-radius: 7px;
    }

    .video-card-title {

        font-size:
            clamp(9px, 2.5vw, 11px);

        padding:
            6px 3px;
    }

    .imagenes-section {

        margin-top: 20px;

        padding:
            15px
            6px
            30px;

        border-radius: 10px;
    }

    .carousel {

        width: 100%;

        height:
            clamp(300px, 85vw, 400px);

        margin-top: 15px;

        border-radius: 10px;
    }

    .carousel-slide img {
        width: 82%;
        height: 92%;
    }

    .carousel-btn {

        width: 38px;
        height: 38px;

        font-size: 18px;
    }

    .carousel-btn.prev {
        left: 6px;
    }

    .carousel-btn.next {
        right: 6px;
    }

    .carousel-dots {
        bottom: 10px;
    }

    .playlist-section {

        margin-top: 20px;

        padding:
            20px
            6px
            35px;

        border-radius: 10px;
    }

    .playlist-info {

        padding:
            18px;

        border-radius: 15px;
    }

    .playlist-info h3 {
        font-size: 23px;
    }

    .playlist-info p {
        font-size: 15px;
        line-height: 1.7;
    }

    .footer {
        padding:
            40px
            15px
            25px;
    }

    .footer-container {
        grid-template-columns:
            1fr;
    }

    .footer-info {
        grid-column: auto;
    }
}


/* =========================================================
   MÓVILES MUY PEQUEÑOS
========================================================= */

@media (max-width: 360px) {

    .site-header {
        min-height: 105px;
    }

    .LOGO {
        width: 65px;
    }

    .main-nav {
        gap:
            .3rem .45rem;
    }

    .main-nav a {
        font-size:
            .65rem;
    }

    .bottom-menu {
        height: 78px;
        min-height: 78px;
    }

    .menu-item {
        height: 68px;
    }

    .menu-icon {
        width: 19px;
        height: 19px;
        font-size: 19px;
    }

    .menu-text {
        max-width: 55px;
        font-size: 8px;
    }

    .menu-item::before {
        display: none;
    }

    .menu-indicator {
        width: 32px;
    }

    .menu-item:hover .menu-indicator {
        width: 32px;
    }

    .section-header h2 {
        font-size: 20px;
    }

    .videos-grid {
        grid-template-columns:
            1fr;
    }

    .video-card {
        height: 150px;
    }

    .video-card-title {
        font-size: 12px;
    }

    .carousel {
        height: 300px;
    }

    .carousel-slide img {
        width: 86%;
    }

    .neon-button {
        width: 72vw;
        font-size: 12px;
    }

    .button-arrows {
        font-size: 17px;
    }

    .ornament {
        width: 115px;
    }

    .ornament-left {
        left: -65px;
    }

    .ornament-right {
        right: -65px;
    }
}


/* =========================================================
   PANTALLAS GRANDES
========================================================= */

@media (min-width: 1400px) {

    .videos-section,
    .imagenes-section,
    .playlist-section {
        padding-left:
            clamp(40px, 5vw, 80px);

        padding-right:
            clamp(40px, 5vw, 80px);
    }

    .video-main {
        max-width: 1100px;
    }

    .footer-container {
        gap: 100px;
    }
}


/* =========================================================
   PANTALLAS ULTRA GRANDES
========================================================= */

@media (min-width: 1800px) {

    .videos-inner,
    .imagenes__inner,
    .playlist-inner {
        max-width: 1550px;
    }

    .carousel {
        max-width: 1350px;
    }
}


/* =========================================================
   ACCESIBILIDAD
========================================================= */

@media (prefers-reduced-motion: reduce) {

    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}

/* =========================================================
   RESPONSIVE — BAJAR VIDEO PRINCIPAL
========================================================= */

@media (max-width: 768px) {

    .video-main {
        transform: translateY(10px);
    }

}

@media (max-width: 500px) {

    .video-main {
        transform: translateY(20px);
    }

}

@media (max-width: 360px) {

    .video-main {
        transform: translateY(25px);
    }

}

/* =========================================================
   RESPONSIVE — VIDEOS UNO DEBAJO DEL OTRO
========================================================= */

@media (max-width: 768px) {

    /* Todos los vídeos en una sola columna */
    .videos-grid {
        grid-template-columns: 1fr;
        gap: 25px;
        width: 100%;
        margin-top: 25px;
    }

    /* Vídeos grandes y proporcionales */
    .video-card {
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 9;
        min-height: 0;

        border-radius: 12px;
    }

    .video-card video {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    /* Título del vídeo */
    .video-card-title {
        font-size: clamp(14px, 3vw, 18px);
        padding: 12px 8px 10px;
    }
}


/* =========================================================
   MÓVIL
========================================================= */

@media (max-width: 500px) {

    .videos-grid {
        grid-template-columns: 1fr;
        gap: 20px;
        width: 100%;
    }

    .video-card {
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 9;
        min-height: 180px;

        border-radius: 10px;
    }

    .video-card video {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .video-card-title {
        font-size: 14px;
        padding: 12px 6px 8px;
    }
}


/* =========================================================
   MÓVILES MUY PEQUEÑOS
========================================================= */

@media (max-width: 360px) {

    .videos-grid {
        gap: 18px;
    }

    .video-card {
        aspect-ratio: 16 / 9;
        min-height: 160px;
    }

    .video-card-title {
        font-size: 13px;
    }
}

/* =========================================================
   RESPONSIVE — VIDEOS FORMATO TIKTOK 9:16
========================================================= */

@media (max-width: 768px) {

    .videos-grid {
        grid-template-columns: 1fr;
        width: 100%;
        gap: 25px;
    }

    .video-card {
        width: 100%;
        height: auto;
        aspect-ratio: 9 / 16;
        min-height: 0;
    }

    .video-card video {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
}


/* =========================================================
   MÓVIL
========================================================= */

@media (max-width: 500px) {

    .videos-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .video-card {
        width: 100%;
        height: auto;
        aspect-ratio: 9 / 16;
        min-height: 0;
    }

    .video-card video {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
}


/* =========================================================
   MÓVIL MUY PEQUEÑO
========================================================= */

@media (max-width: 360px) {

    .videos-grid {
        gap: 18px;
    }

    .video-card {
        aspect-ratio: 9 / 16;
    }
}