﻿/*
    
TemplateMo 557 Grad School

https://templatemo.com/tm-557-grad-school

*/
:root {
    --bs-TituloMenu: #EBECF7;
    --bs-ColorRojo: #e52421;
    --bs-ColorDoradoOscuro: #c69e3f;
}

@font-face {
    font-family: 'font-boton-titulo';
    src: url('../fonts/built titling light.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'font-librebaskerville-bold';
    src: url('../fonts/librebaskerville-bold.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

@import url(fontawesome.css);
@import url("<link href="https://fonts.googleapis.com/css?family=Montserrat:100,200,300,400,500,600,700,800,900" rel="stylesheet">");

body {
    font-family: 'Montserrat', sans-serif;
    background-color: black;
}

    body .row.titulo {
        font-family: 'font-librebaskerville-bold';
        margin-top: 7%;
        color: var(--bs-ColorDoradoOscuro);
        text-align: center;
    }

/* Basic */

a {
    color: var(--bs-TituloMenu);
    text-decoration: none;
    font-size: 15px;
}

    a:hover {
        color: #FC3;
        text-decoration: none;
    }

ul {
    padding: 0px;
    margin: 0px;
    list-style: none;
}

p {
    font-size: 13px;
    line-height: 22px;
    font-family: 'font-librebaskerville-bold';
}

h2 {
    font-family: 'font-librebaskerville-bold';
}

.section-heading {
    text-align: center;
    margin-bottom: 70px;
}

    .section-heading h2:before {
        width: 1px;
        height: 100px;
        background-color: rgba(250,250,250,0.1);
        position: absolute;
        top: -102px;
        content: '';
        left: 50%;
        transform: translate(-50%);
    }

    .section-heading h2 {
        margin-top: 100px;
        position: relative;
        font-size: 18px;
        font-weight: 500;
        color: #fff;
        letter-spacing: 0.5px;
        display: inline-block;
        padding: 15px 20px;
        border: 2px solid rgba(250,250,250,0.1);
    }


/* Buttons */

.main-button a {
    background-color: var(--bs-TituloMenu);
    color: #fff;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 700;
    padding: 12px 20px;
    display: inline-block;
    outline: none;
}

a.menu-link {
    display: none;
}


@media screen and (max-width: 1380px) {
    .main-menu {
        float: right !important;
        padding-right: 8px !important;
        font-family: 'font-boton-titulo';
    }
}

@media screen and (max-width: 950px) {

    /* 1. CORRECCIÓN DEL BOTÓN DEL MENÚ (Asegura visibilidad en iPad) */
    a.menu-link {
        float: right;
        display: block;
        font-size: 36px;
        color: #e52421;
        padding-right: 50px;
        padding-top: 0px;
        /* ✅ CORRECCIÓN CLAVE: Eliminado o establecido a 0 para evitar desplazamiento */
        margin-top: 0;
    }

    /* 2. CONTENEDOR DE NAVEGACIÓN (nav[role="navigation"]) */
    nav[role="navigation"] {
        clear: both;
        -webkit-transition: all 0.3s ease-out;
        -moz-transition: all 0.3s ease-out;
        -ms-transition: all 0.3s ease-out;
        -o-transition: all 0.3s ease-out;
        transition: all 0.3s ease-out;
    }

    /* Ocultar el menú por defecto con JS */
    .js nav[role="navigation"] {
        overflow: hidden;
        max-height: 0;
    }

    /* Mostrar el menú al hacer clic */
    nav[role="navigation"].active {
        /* Altura adaptativa en lugar de fija */
        max-height: 20em;
        height: auto;
        overflow-y: auto; /* Permite scroll solo si es necesario */
    }

    /* 3. ESTILOS DE LOS ÍTEMS DEL MENÚ COLAPSADO */
    nav[role="navigation"] ul {
        top: 0;
        width: 100%;
        position: relative;
        margin: 0;
        padding: 0;
        border-top: 1px solid rgba(250,250,250,0.25);
        background-color: black;
    }

    nav[role="navigation"] li a {
        display: block;
        padding: 15px 0px;
        border-bottom: 1px solid rgba(250,250,250,0.25);
        text-align: center;
        color: var(--bs-TituloMenu);
        font-size: 23px;
        text-transform: uppercase;
        font-weight: 700;
        line-height: 0.5;
        margin-left: 48px;
    }

    nav[role="navigation"] li:hover a,
    nav[role="navigation"] li.active a {
        color: var(--bs-TituloMenu);
    }

    nav[role="navigation"].active li:has(.btn-whatsapp) {
        background-color: black;
        color: black;
        padding: 8px 15px;
        border-radius: 25px;
        font-weight: bold;
        text-transform: uppercase;
        transition: background 0.3s ease;
    }

    nav[role="navigation"].active .btn-whatsapp:hover {
        background-color: var(--bs-TituloMenu);
        color: #fff !important;
    }

    body .row.titulo {
        margin-top: 7%;
    }
}

/* 4. ESTILOS DE ESCRITORIO (min-width: 951px) */
/* Este bloque estaba anidado incorrectamente en tu código original, se extrae y corrige: */
/* ========================================================================= */
/* ESTILOS DE MÓVIL/TABLET (<= 950px) */
/* ========================================================================= */
/* ========================================================================= */
/* ESTILOS DE MÓVIL/TABLET (<= 950px) */
/* ========================================================================= */
/* ========================================================================= */
/* ESTILOS DE MÓVIL/TABLET (Activa el menú hamburguesa hasta 1199px) */
/* ========================================================================= */
/* ========================================================================= */
/* ESTILOS DE MÓVIL/TABLET (Activa el menú hamburguesa hasta 1199px) */
/* ========================================================================= */
/* ========================================================================= */
/* ESTILOS DE ESCRITORIO BASE (>= 1200px) */
/* Este bloque define la estructura horizontal del menú y el logo en escritorio */
/* ========================================================================= */
@media screen and (min-width: 1200px) {

    /* HEADER Y LOGO DE ESCRITORIO */
    .main-header {
        /* Asume una altura fija en escritorio, ej: 80px */
        /* height: 80px; */
        /* Puedes añadir display: flex y align-items: center si lo necesitas aquí */
    }

        .main-header .logo {
            float: left; /* Restaura el float para el diseño de escritorio */
            line-height: 80px; /* Centra el logo si el header mide 80px */
            margin: 0;
            padding-left: 7px;
        }

    /* MENÚ ESCRITORIO (Horizontal) */
    a.menu-link {
        display: none; /* Oculta el botón hamburguesa */
    }

    .js .main-nav,
    .main-nav {
        max-height: none !important;
        overflow: visible !important;
        position: static;
        display: block !important;
    }

        .main-nav li {
            display: inline-block; /* Menú horizontal */
            margin: 0 0.25em; /* Margen inicial que puede ser grande */
        }

            .main-nav li a {
                border: 0;
            }
}


/* ========================================================================= */
/* AJUSTE DE COMPACTACIÓN (1430px hasta 1200px) */
/* Soluciona el problema de que el menú se baje en ese rango. */
/* ========================================================================= */
/* ========================================================================= */
/* ESTILOS DE ESCRITORIO BASE (>= 1200px) - CORRECCIÓN FLEXBOX */
/* Este bloque maneja el menú horizontal de manera estable. */
/* ========================================================================= */

/* ========================================================================= */
/* AJUSTE DE COMPACTACIÓN (1430px hasta 951px) */
/* Aplica la compresión al menú horizontal antes de que pase a móvil. */
/* ========================================================================= */
@media screen and (max-width: 1430px) and (min-width: 951px) { /* ✅ RANGO FINAL */

    /* LISTA DE ITEMS: Usa Flexbox para controlar el espaciado interno */
    .main-nav ul {
        /* Espacio fijo y reducido. Se aplica sobre el 'gap: 10px' del escritorio base. */
        gap: 8px; /* Prueba con 8px. Si falla, usa 5px. */
    }

    /* ÍTEMS INDIVIDUALES */
    .main-nav li {
        font-size: 15px; /* Ligeramente más pequeña para ganar espacio */
    }

        .main-nav li a {
            /* Padding reducido para optimizar el espacio horizontal */
            padding: 4px;
        }
}

/* ========================================================================= */
/* ESTILOS DE ESCRITORIO BASE (>= 951px) - CON FLEXBOX */
/* Este bloque define el layout horizontal estable del logo y menú. */
/* ========================================================================= */
@media screen and (min-width: 951px) { /* ✅ RANGO FINAL */

    /* HEADER: Contenedor Flexible (Distribuye Logo y Menú) */
    .main-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        height: 80px;
    }

        /* LOGO: Se integra con Flexbox, sin float */
        .main-header .logo {
            float: none;
            line-height: normal;
            margin: 0;
            padding-left: 7px;
            max-width: 30%; /* Límite para evitar que tome demasiado espacio */
        }

    /* MENÚ PRINCIPAL (.main-nav): Contenedor Flexible */
    .js .main-nav,
    .main-nav {
        max-height: none !important;
        overflow: visible !important;
        position: static;
        flex-grow: 1; /* Ocupa el espacio restante */
        display: flex; /* Habilita flexbox para centrar/alinear el menú */
        justify-content: flex-end; /* Alinea el menú a la derecha */
        align-items: center;
        margin-left: 20px;
    }

        /* LISTA DE ÍTEMS: Asegura que todos estén en una línea */
        .main-nav ul {
            display: flex;
            align-items: center;
            gap: 10px; /* Margen base de escritorio */
            list-style: none;
            padding: 0;
            margin: 0;
        }

        /* ÍTEMS INDIVIDUALES */
        .main-nav li {
            display: inline-block;
            margin: 0;
            white-space: nowrap;
        }

            .main-nav li a {
                border: 0;
                padding: 5px;
            }

    a.menu-link {
        display: none; /* Oculta el botón hamburguesa */
    }
}


/* ========================================================================= */
/* ESTILOS DE MÓVIL/TABLET (Activa el menú hamburguesa hasta 950px) */
/* ========================================================================= */
@media screen and (max-width: 950px) { /* ✅ RANGO FINAL */

    /* 1. HEADER: Flexbox para alinear y centrar */
    .main-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        height: 70px;
        width: 100%;
        position: relative;
    }

        /* 2. ESTILOS DEL LOGO EN MÓVIL/TABLET */
        .main-header .logo {
            float: none !important;
            line-height: normal !important;
            margin: 0 !important;
            text-align: center;
            padding-right: 0px !important;
            padding-left: 67px !important;
            display: block;
        }

            .main-header .logo #LogoMariaBonita {
                /* Permite que el logo crezca hasta el 80% del espacio que le queda */
                width: 80% !important;
                /* Pero limita el ancho máximo en píxeles para que no se vea gigantesco en tablets */
                max-width: 250px;
                /* CLAVE: Define la altura máxima que tendrá la imagen para que no se aplaste */
                max-height: 60px; /* Ajusta este valor (ej. 60px) */
                /* Asegura que la imagen mantenga su proporción */
                height: auto !important;
                /* Centra la imagen dentro de su contenedor (.main-header .logo) */
                display: block;
                margin: 0 auto;
            }

    /* 3. BOTÓN DE MENÚ (a.menu-link) */
    a.menu-link {
        float: none;
        display: block; /* Muestra el botón */
        margin-top: 0;
        font-size: 36px;
        color: #e52421;
        padding-right: 30px;
    }

    /* 4. MENÚ DESPLEGABLE (.main-nav) */
    .main-nav {
        position: absolute;
        top: 70px;
        left: 0;
        z-index: 9999;
        width: 100%;
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.3s ease;
        background-color: black;
        display: block !important;
    }

        /* 5. MENÚ ACTIVO Y ÍTEMS VERTICALES */
        .main-nav.active {
            max-height: 500px;
            overflow-y: auto;
        }

        .main-nav ul,
        .main-nav ul li {
            display: block !important;
            margin: 0;
            padding: 0;
            list-style: none;
            border-top: 1px solid rgba(250,250,250,0.25);
        }

            .main-nav ul li {
                border-bottom: 1px solid rgba(250,250,250,0.25);
            }

        .main-nav li a {
            display: block;
            padding: 15px 20px;
            text-align: center;
        }
}
/*@media screen and (min-width: 1200px) {*/

/* HEADER: Contenedor Principal Flexible (Logo y Contenedor de Menú) */
/*.main-header {
        display: flex;
        align-items: center;*/ /* Centrado vertical */
/*justify-content: space-between;*/ /* Logo a la izquierda, Menú a la derecha */
/*height: 80px;
    }*/

/* LOGO: Se integra con Flexbox, sin float */
/*.main-header .logo {
            float: none;
            line-height: normal;
            margin: 0;
            padding-left: 7px;*/
/* Asegura que el logo no sea demasiado grande */
/*max-width: 30%;
        }*/

/* MENÚ PRINCIPAL (.main-nav): Contenedor Flexible */
/*.js .main-nav,
    .main-nav {
        max-height: none !important;
        overflow: visible !important;
        position: static;
        display: block !important;*/
/* Ocupa el espacio restante en el header */
/*flex-grow: 1;*/
/* ✅ CLAVE: Alinea el menú a la derecha dentro del espacio que le queda */
/*display: flex;
        justify-content: flex-end;
        align-items: center;*/
/* Añade un margen para separar el menú del logo */
/*margin-left: 20px;
    }*/

/* LISTA DE ÍTEMS: Asegura que todos estén en una línea con espaciado controlado */
/*.main-nav ul {
            display: flex;
            align-items: center;*/
/* Espacio fijo y reducido entre los ítems de navegación */
/*gap: 8px;*/ /* Reducción a 8px (puedes probar con 5px si es necesario) */
/*list-style: none;
            padding: 0;
            margin: 0;
        }*/

/* ÍTEMS INDIVIDUALES */
/*.main-nav li {
            display: inline-block;
            margin: 0;*/ /* Elimina cualquier margin conflictivo */
/*white-space: nowrap;*/ /* Evita que el texto de los ítems se rompa */
/*font-size: 16px;*/ /* Establece un tamaño base más pequeño si el original era muy grande */
/*}

            .main-nav li a {
                border: 0;*/
/* Padding reducido para optimizar el espacio horizontal */
/*padding: 5px;
            }

    a.menu-link {
        display: none;*/ /* Oculta el botón hamburguesa */
/*}
}*/


/* ========================================================================= */
/* ESTILOS DE MÓVIL/TABLET (Activa el menú hamburguesa hasta 1199px) */
/* ========================================================================= */
/* ========================================================================= */
/* ESTILOS DE MÓVIL/TABLET (Activa el menú hamburguesa hasta 1199px) */
/* ========================================================================= */
/*@media screen and (max-width: 1199px) {*/

/* 1. HEADER: Flexbox para alinear y centrar */
/*.main-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        height: 70px;
        width: 100%;
        position: relative;
    }*/

/* 2. ESTILOS DEL LOGO EN MÓVIL/TABLET */
/*.main-header .logo {
            float: none;
            line-height: normal;
            margin: 0;
            padding-left: 7px;
        }*/

/* 3. BOTÓN DE MENÚ (a.menu-link) */
/*a.menu-link {
        float: none;
        display: block;
        margin-top: 0;
        font-size: 36px;
        color: #e52421;
        padding-right: 30px;
    }*/

/* 4. MENÚ DESPLEGABLE (.main-nav) */
/*.main-nav {
        position: absolute;
        top: 70px;
        left: 0;
        z-index: 9999;
        width: 100%;
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.3s ease;
        background-color: black;
        display: block !important;
    }*/

/* 5. MENÚ ACTIVO Y ÍTEMS VERTICALES */
/*.main-nav.active {
            max-height: 500px;
            overflow-y: auto;
        }

        .main-nav ul,
        .main-nav ul li {
            display: block !important;
            margin: 0;
            padding: 0;
            list-style: none;
            border-top: 1px solid rgba(250,250,250,0.25);
        }

            .main-nav ul li {
                border-bottom: 1px solid rgba(250,250,250,0.25);
            }

        .main-nav li a {
            display: block;
            padding: 15px 20px;
            text-align: center;
        }
}*/

.main-header {
    /*background-color: rgba(22,34,57,0.95);*/
    background-color: black;
    height: 80px;
    position: fixed;
    z-index: 12;
    width: 100%;
    top: 0;
}

    .main-header .logo {
        float: left;
        line-height: 80px;
        padding-left: 7px;
        margin: 0;
    }

        .main-header .logo a {
            font-size: 36px;
            text-transform: uppercase;
            font-weight: 800;
            color: #fff;
        }

        .main-header .logo img {
            /* Define la altura máxima para que la imagen no exceda (ejemplo: 50px de altura) */
            /*    height: 50px;*/
            /* Mantiene la proporción de la imagen */
            /* Asegura el centrado dentro del line-height */
            vertical-align: middle;
        }

        .main-header .logo a em {
            font-style: normal;
            color: var(--bs-TituloMenu);
        }

.main-menu {
    float: right;
    padding-right: 60px;
    font-family: 'font-boton-titulo';
}

    .main-menu li {
        display: inline-block;
        line-height: 79px;
        margin-left: 15px;
        position: relative;
    }

        .main-menu li:first-child {
            margin-left: 0px;
        }

        .main-menu li a {
            padding: 10px 15px;
            font-size: 28px;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            font-weight: 220;
            color: var(--bs-TituloMenu);
            border: 2px solid transparent;
            transition: all 0.5s;
        }

        .main-menu li.has-submenu a:after {
            /* content: '\f107';*/
            font-family: "Built Titling Light", sans-serif;
            margin-left: 5px;
        }

        .main-menu li.has-submenu ul li a:after {
            display: none;
        }

        .main-menu li .sub-menu {
            position: absolute;
            width: 160px;
            background-color: rgba(0, 0, 0, 0.70);
            opacity: 0;
            visibility: hidden;
            transition: all 0.5s;
        }

        .main-menu li:hover .sub-menu {
            opacity: 1;
            visibility: visible;
        }

        .main-menu li .sub-menu li {
            display: block;
            line-height: 20px;
            margin-left: 0px;
            margin-bottom: 15px;
            padding-bottom: 15px;
            border-bottom: 1px solid #121b2f;
        }

            .main-menu li .sub-menu li:first-child {
                padding-top: 15px;
            }

            .main-menu li .sub-menu li:last-child {
                margin-bottom: 0px;
                border-bottom: none;
            }

            .main-menu li .sub-menu li a {
                font-size: 12px;
                font-weight: 500;
                padding: 0px 15px;
                letter-spacing: 0.5px;
                border: none;
                transition: all 0.5s;
            }

                .main-menu li .sub-menu li a:hover {
                    color: var(--bs-TituloMenu);
                    border: none;
                }

.main-nav li:hover a,
.main-nav li.active a {
    border: 2px solid var(--bs-TituloMenu);
}

@media (max-width: 950px) {
    .main-nav li:hover a,
    .main-nav li.active a {
        border: 2px solid transparent;
        border-bottom: 1px solid rgba(250,250,250,0.25);
    }

    .main-menu li .sub-menu li a {
        font-size: 17px;
    }
}


/* Slider */

.main-banner {
    position: relative;
    width: 100%;
    height: 100vh; /* asegura que ocupe toda la pantalla */
    overflow: hidden;
}

#bg-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover; /* mantiene proporción y cubre toda la pantalla */
    z-index: -1;
    pointer-events: none !important;
}



    #bg-video::-webkit-media-controls {
        display: none !important;
    }

    #bg-video::-webkit-media-controls {
        display: none !important;
    }



.video-overlay {
    position: absolute;
    /*background-color: rgba(0, 0, 0, 0.5);*/
    top: 0;
    left: 0;
    bottom: 7px;
    width: 100%;
}

.main-banner .caption {
    text-align: center;
    width: 80%;
    left: 50%;
    transform: translate(-50%,-50%);
    margin-top: 289px;
    position: absolute;
    right: 0; /* lo pega al lado derecho */
    top: 0; /* opcional, lo deja arriba */
    text-align: right;
    padding: 20px;
}

    .main-banner .caption h6 {
        margin-top: 0px;
        font-size: 15px;
        text-transform: uppercase;
        font-weight: 600;
        color: #fff;
        letter-spacing: 1px;
    }

    .main-banner .caption h2 {
        margin-top: 30px;
        margin-bottom: 30px;
        font-size: 45px;
        text-transform: uppercase;
        font-weight: 800;
        color: #fff;
        letter-spacing: 1px;
    }

        .main-banner .caption h2 em {
            font-style: normal;
            color: var(--bs-ColorDoradoOscuro);
            font-weight: 900;
        }

@media screen and (max-width: 1180px) {

    .main-banner .caption h6 {
        font-weight: 500;
    }

    .main-banner .caption h2 {
        font-size: 58px;
    }
}

@media screen and (max-width: 950px) {
    #bg-video {
        height: 34vh; /* el alto total de la pantalla */
        width: 100%; /* ocupa todo el ancho */
        margin-top: 59px;
        pointer-events: none !important;
    }

    .main-banner {
        height: 40vh;
        width: 100%;
    }

        .main-banner .caption {
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%); /* centra en móviles */
            text-align: center;
            width: 90%;
            padding: 10px;
        }

            .main-banner .caption h2 {
                font-size: 22px; /* más pequeño para caber */
            }

            .main-banner .caption h6 {
                font-size: 14px;
            }
}



/*section.bienvenida {
    width: 100%;
    background-color: black;
    color: white;
  
}

    section.bienvenida .contenedor {
        display: flex;
        flex-wrap: wrap;*/ /* permite que se acomode en móviles */
/*width: 100%;
        min-height: 500px;
    }*/

/* Columna izquierda (texto) */
/*section.bienvenida .texto {
        flex: 1;
        padding: 0px;
        display: flex;
        flex-direction: column;
        justify-content: center;
        position: relative;
        text-align: center;
        background: url("../images/decoracion_bienvenida.png") no-repeat left bottom;
        background-size: 630px auto;
    }

        section.bienvenida .texto h2 {
            font-size: 40px;
            margin-bottom: 20px;
            line-height: 1.2;
        }

            section.bienvenida .texto h2 span {
                color: var(--bs-ColorDoradoOscuro);
            }

            section.bienvenida .texto h2 .grant {
                font-size: 55px;
                color: var(--bs-TituloMenu);
            }

        section.bienvenida .texto p {
            font-size: 16px;
            line-height: 1.5;
            max-width: 90%;
            margin: 0 auto;
        }*/

/* Decoración (PNG transparente) */
/*section.bienvenida .decoracion {
        position: absolute;
        bottom: 0;
        left: 0;
        width: 370px;*/ /* ajusta al tamaño real */
/*height: 200px;
        background: url("../images/decoracion_bienvenida.png") no-repeat left bottom;
        background-size: contain;
        opacity: 0.9;
        pointer-events: none;
    }*/

/* Columna derecha (imagen de fondo) */
/*    section.bienvenida .imagen {
        flex: 1;
        background-image: url("../images/Bienvenida.png");
        background-size: cover;
        background-position: center;
        min-height: 500px;
    }
*/
/* Responsivo */
/*@media screen and (max-width: 1024px) {
    section.bienvenida .texto h2 {
        font-size: 30px;
    }

        section.bienvenida .texto h2 .grant {
            font-size: 40px;
        }
}

@media screen and (max-width: 768px) {
    section.bienvenida .contenedor {
        flex-direction: column;
    }

    section.bienvenida .imagen {
        order: 2;*/ /* Imagen debajo del texto */
/*width: 100%;
        height: 300px;
    }

    section.bienvenida .texto {
        order: 1;
        text-align: center;
    }

    section.bienvenida .decoracion {
        left: 50%;
        transform: translateX(-50%);*/ /* centra la decoración en móvil */
/*width: 150px;
        height: 150px;
    }
}*/


/* --- CONTENEDOR PRINCIPAL --- */
section.sedes {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    min-height: 400px;
}

/* --- ESTILO DE CADA BLOQUE DE SEDE --- */
.sede {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    text-align: center;
    padding: 20px;
    color: #fff;
    min-height: 400px;
    background-size: cover;
    background-position: center;
}

    /* Overlay oscuro encima de la imagen */
    .sede .overlay {
        background: rgba(0, 0, 0, 0.45);
        padding: 40px;
        border-radius: 10px;
    }

    /* Titulares */
    .sede h2 {
        font-size: 36px;
        font-weight: 600;
        margin-bottom: 10px;
    }

        .sede h2 span {
            display: block;
            font-size: 40px;
            font-weight: bold;
        }

    .sede h3 {
        font-size: 22px;
        margin-bottom: 15px;
        font-style: italic;
    }

    .sede p {
        margin-bottom: 20px;
        font-size: 16px;
        font-style: italic;
    }

    /* Fondos para cada sede */
    .sede.bogota {
        /*background-image: url('bogota.jpg'); */ /* cambia por tu imagen */
        background-color: var(--bs-ColorDoradoOscuro);
    }

    .sede.villavicencio {
        /*background-image: url('villavicencio.jpg'); */ /* cambia por tu imagen */
        background-color: var(--bs-ColorRojo);
    }

/* Botón */
.btn {
    display: inline-block;
    background: var(--bs-ColorDoradoOscuro);
    color: var(--bs-TituloMenu);
    padding: 12px 30px;
    border-radius: 25px;
    font-weight: bold;
    text-decoration: none;
    transition: 0.3s;
}

    .btn:hover {
        background: #b38f2c;
        color: #fff;
    }

.grid-section {
    display: grid;
    /* 2 columnas y 2 filas, cada una ocupando el mismo espacio */
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, 1fr);
    gap: 0;
    width: 100%; /* Ocupa todo el ancho de la sección */
    height: 100vh; /* Ocupa toda la altura de la vista del navegador */
    overflow: hidden;
}

.grid-item {
    position: relative;
    overflow: hidden;
}

    .grid-item img {
        width: 100%;
        height: 100%; /* mantiene proporción */
        display: block;
        object-fit: cover;
    }

    .grid-item .overlay {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        color: #fff;
    }

        .grid-item .overlay h2 {
            background-color: rgba(0, 0, 0, 0.50);
        }


/* Responsive */
@media (max-width: 992px) {
    .grid-section {
        grid-template-columns: 1fr;
        grid-auto-rows: auto;
        /* 🔥 CAMBIO ESENCIAL: Permite que el contenedor crezca verticalmente */
        height: auto;
        /* Opcional: Añade un espacio entre los ítems apilados */
        gap: 10px;
    }

    .grid-item h2 {
        font-size: 1.5rem;
    }

    .grid-item .btn {
        padding: 8px 20px;
        font-size: 0.9rem;
    }

    .sede h2 {
        font-size: 12px;
    }

        .sede h2 span {
            font-size: 20px;
        }
}

.video-rumba {
    position: relative;
    max-height: 100%;
    overflow: hidden;
    margin-bottom: -7px;
}

#bg-video2 {
    min-width: 100%;
    min-height: 100vh;
    max-width: 100%;
    max-height: 100vh;
    object-fit: cover;
    z-index: -1;
    pointer-events: none !important;
}

    #bg-video2::-webkit-media-controls {
        display: none !important;
    }

.video2-overlay {
    position: absolute;
    background-color: rgba(0, 0, 0, 0.2);
    top: 0;
    left: 0;
    bottom: 7px;
    width: 100%;
}

.video-rumba .caption {
    text-align: center;
    width: 80%;
    left: 50%;
    transform: translate(-50%,-50%);
    margin-top: 289px;
    position: absolute;
    right: 0; /* lo pega al lado derecho */
    top: 0; /* opcional, lo deja arriba */
    text-align: center;
    padding: 20px;
}

    .video-rumba .caption h6 {
        margin-top: 0px;
        font-size: 15px;
        text-transform: uppercase;
        font-weight: 600;
        color: #fff;
        letter-spacing: 1px;
    }

    .video-rumba .caption h2 {
        margin-top: 30px;
        margin-bottom: 30px;
        font-size: 45px;
        text-transform: uppercase;
        font-weight: 800;
        color: #fff;
        letter-spacing: 1px;
        text-align: center;
    }

        .video-rumba .caption h2 em {
            font-style: normal;
            color: var(--bs-ColorDoradoOscuro);
            font-weight: 900;
        }

.titulo-fondo-video2 {
    /*background-color: rgba(0, 0, 0, 0.3);*/ /* Negro semitransparente */
    padding: 12px 17px;
    border-radius: 10px;
    display: inline-block; /* Ajusta el fondo al tamaño del texto */
    font-family: 'font-librebaskerville-bold';
    text-align: center;
}

    .titulo-fondo-video2 h2 {
        color: white;
        margin: 0;
        font-weight: bold;
        text-align: center;
    }

.main-button2 a {
    background-color: var(--bs-ColorDoradoOscuro);
    color: var(--bs-TituloMenu);
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 700;
    padding: 12px 20px;
    display: inline-block;
    outline: none;
    font-family: 'font-librebaskerville-bold';
    border-radius: 25px;
}

@media screen and (max-width: 767px) {

    .video-rumba .caption {
        position: absolute; /* Mantener la posición absoluta */
        /* 1. Elimina 'right: 0;' */
        left: 50%; /* 2. Mueve el borde izquierdo al 50% del contenedor */
        transform: translateX(-50%); /* 3. Desplaza el elemento el 50% de su propio ancho a la izquierda */

        top: 0; /* Mantenemos 'top: 0;' o ajusta según necesites */
        /* Opcional pero recomendado: Restringe el ancho para pantallas pequeñas */
        width: 100%;
        box-sizing: border-box; /* Asegura que el padding no añada ancho extra */

        text-align: center; /* Centra el texto DENTRO del caption */
        padding: 0px;
    }


        .video-rumba .caption h6 {
            font-weight: 500;
        }

        .video-rumba .caption h2 {
            font-size: 30px;
        }

    .video-overlay {
        width: 100%;
    }
}

.contactanos {
    padding: 40px 20px;
    /*max-width: 1200px;*/
    margin: 0 auto;
    background-color: black;
    text-align: center;
}

.decoracion-superior {
    background-image: url('../images/decoracion_contactanos.png');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain; /* ?? Ajusta toda la imagen sin recortarla */
    width: 100%;
    height: auto; /* ?? dejamos que crezca con el contenido */
    aspect-ratio: 1920 / 300; /* ?? cambia esta proporción según tu imagen */
    margin-bottom: 40px;
}

.contact-content {
    display: flex;
    flex-direction: row;
    gap: 40px;
    flex-wrap: wrap;
    justify-content: center; /* ?? centra horizontalmente */
    align-items: flex-start; /* ?? alinea arriba (para que no queden desfasados verticalmente) */
    max-width: 1000px; /* ?? ancho máximo para que no se extiendan demasiado */
    margin: 0 auto; /* ?? centra todo el bloque */
    color: var(--bs-ColorDoradoOscuro);
    text-align: left;
}

.contact-form {
    flex: 1;
    min-width: 258px;
    background: #111; /* Fondo oscuro para resaltar inputs */
    padding: 30px;
    border-radius: 16px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}

    .contact-form h2 {
        font-size: 28px;
        margin-bottom: 20px;
        font-weight: bold;
        color: var(--bs-ColorDoradoOscuro);
        text-align: center;
    }

    .contact-form label {
        display: block;
        margin: 15px 0 5px;
        font-size: 15px;
        color: var(--bs-TituloMenu);
        font-weight: 600;
        font-family: 'font-librebaskerville-bold';
    }

    .contact-form input,
    .contact-form textarea {
        width: 100%;
        padding: 12px 0px;
        font-size: 15px;
        border: 2px solid transparent;
        border-radius: 12px;
        background: #222;
        color: #fff;
        outline: none;
        transition: all 0.3s ease;
        box-shadow: inset 2px 2px 5px rgba(0,0,0,0.6), inset -2px -2px 5px rgba(255,255,255,0.05);
    }

        /* Efecto al hacer focus */
        .contact-form input:focus,
        .contact-form textarea:focus {
            border-color: #d4b46a;
            background: #1a1a1a;
            box-shadow: 0 0 8px rgba(212,180,106,0.8);
        }

    /* Textarea */
    .contact-form textarea {
        resize: none;
        min-height: 120px;
    }

    /* Botón */
    .contact-form button {
        background: linear-gradient(135deg, #d4b46a, #c09c4a);
        color: #000;
        padding: 12px 40px;
        font-weight: bold;
        font-size: 16px;
        border: none;
        border-radius: 30px;
        cursor: pointer;
        margin-top: 15px;
        transition: all 0.3s ease;
        display: block;
        width: 100%;
        box-shadow: 0 4px 10px rgba(0,0,0,0.5);
    }

        .contact-form button:hover {
            transform: translateY(-2px);
            box-shadow: 0 6px 14px rgba(212,180,106,0.7);
        }

.sucursales h3 {
    font-family: 'font-librebaskerville-bold';
    color: var(--bs-ColorDoradoOscuro);
    font-size: 30px;
}

.sucursales p {
    color: var(--bs-TituloMenu);
    font-size: 15px;
}


.ubicacion {
    padding: 20px 20px;
    background: #000; /* fondo negro elegante */
    text-align: center;
    color: #fff;
}

    .ubicacion h2 {
        font-size: 28px;
        margin-bottom: 10px;
        color: var(--bs-ColorDoradoOscuro); /* dorado */
    }

    .ubicacion p {
        margin-bottom: 30px;
        color: var(--bs-TituloMenu);
    }

.map-container {
    position: relative;
    width: 100%;
    max-width: 1000px; /* ancho máximo */
    margin: 0 auto;
    padding-bottom: 56.25%; /* proporción 16:9 */
    height: 0;
    overflow: hidden;
    border-radius: 16px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.6);
}

    .map-container iframe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 70%;
        border: 0;
        border-radius: 16px;
    }

.redes-sociales {
    background: #000;
    padding: 60px 20px;
    text-align: center;
}

    .redes-sociales h2 {
        color: #d4b46a; /* Dorado */
        font-size: 28px;
        margin-bottom: 30px;
    }

.social-icons {
    display: flex;
    justify-content: center;
    gap: 30px;
    flex-wrap: wrap;
}

.icon {
    display: flex;
    flex-direction: column;
    align-items: center;
    background: #111;
    color: #fff;
    text-decoration: none;
    padding: 20px;
    border-radius: 20px;
    width: 140px;
    transition: all 0.3s ease;
    box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}

    .icon i {
        font-size: 40px;
        margin-bottom: 10px;
        color: #d4b46a;
        transition: transform 0.3s ease, color 0.3s ease;
    }

    .icon span {
        font-size: 16px;
        font-weight: bold;
        color: #fff;
    }

    .icon:hover {
        transform: translateY(-8px);
        background: linear-gradient(135deg, #d4b46a, #b8962f);
        color: #000;
    }

        .icon:hover i {
            transform: scale(1.2);
            color: #000;
        }

        .icon:hover span {
            color: #000;
        }

/* Responsive */
@media (max-width: 600px) {
    .social-icons {
        gap: 20px;
    }

    .icon {
        width: 120px;
        padding: 15px;
    }

        .icon i {
            font-size: 32px;
        }
}


.footer {
    background: #000; /* fondo negro */
    color: #d4af37; /* dorado */
    padding: 20px 0;
    font-family: Arial, sans-serif;
}

    .footer p {
        margin: 0;
        font-size: 14px;
        color: #bbb;
    }

    .footer a {
        color: #d4af37;
        text-decoration: none;
    }

        .footer a:hover {
            text-decoration: underline;
        }

@media (max-width: 576px) {
    .footer {
        text-align: center;
        padding: 30px 10px;
    }
}

.btn-whatsapp {
    background-color: var(--bs-ColorRojo);
    color: #fff;
    font-weight: bold;
    padding: 10px 15px;
    border-radius: 25px;
    text-decoration: none;
    transition: background 0.3s;
}

    .btn-whatsapp:hover {
        background-color: var(--bs-ColorDoradoOscuro);
        color: var(--bs-TituloMenu);
        text-decoration: none;
    }


.row.titulo-ingreso {
    margin-top: 6%;
    text-align: center;
}

/* Ajustar tamaño de la tabla */
#tabla-registros {
    width: 100% !important; /* ancho menor al 100% */
    margin: auto; /* centrada */
    font-size: 14px; /* tamaño general del texto */
}

    /* Cabecera personalizada */
    #tabla-registros thead {
        background-color: var(--bs-ColorRojo); /* azul estilo Bootstrap */
        color: white;
        text-align: center;
    }

    /* Filas alternadas */
    /* #tabla-registros tbody tr:nth-child(even) {
        background-color: #f2f6fc;
    }*/

    /* Hover */
    /*#tabla-registros tbody tr:hover {
        background-color: white;
        cursor: pointer;
    }*/

    /* Ajustes de celdas */
    #tabla-registros td,
    #tabla-registros th {
        padding: 12px 8px;
        vertical-align: middle;
        color: black;
    }

    /* Encabezados más pequeños y ajustados */
    #tabla-registros th {
        font-size: 13px;
        font-weight: 600;
    }

.contact-content.listado {
    display: block;
    width: 100% !important;
}

/* === HERO  EVENTOS=== */
.hero {
    background: url('fondo-eventos.jpg') center/cover no-repeat;
    height: 60vh;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.hero-overlay {
    background: rgba(0, 0, 0, 0.5);
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.banner-eventos {
    background-image: url('../img/eventos/bannerevento.png');
    width: 50%;
    font-size: 3rem;
    font-weight: 700;
    color: #c6a33f;
    margin: 0;
}

.hero-title {
    font-size: 2rem;
    font-weight: 500;
}

/* === CONTENIDO === */
.content {
    background-color: #000;
    padding: 50px 10%;
}

.content-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
    flex-wrap: wrap;
}

.text-block {
    flex: 1;
  /*  min-width: 300px;*/
}

    .text-block h2 {
        font-size: 1.8rem;
        color: white;
    }

    .text-block .descripcion {
        font-size: 1.2rem;
        color: #ddd;
    }

.btn-cotizar {
    background-color: #e62e2e;
    color: white;
    border: none;
    padding: 12px 30px;
    border-radius: 25px;
    font-weight: bold;
    cursor: pointer;
    margin-top: 20px;
    transition: background 0.3s ease;
    font-family: 'font-librebaskerville-bold';
}

    .btn-cotizar:hover {
        background-color: #c82121;
    }

.image-block {
    flex: 1;
    text-align: center;
}

    .image-block img {
        width: 100%;
        max-width: 600px;
        border-radius: 8px;
    }

/* === BANNER DORADO === */
.banner {
    background-color: #c69e3f;
    text-align: center;
    padding: 15px 10px;
    margin-top: 40px;
    /*font-size: 0.95rem;*/

    letter-spacing: 0.5px;
}

    .banner p {
        font-size: 19px !important;
    }

/* === INFO SECCIÓN === */
.info {
    display: flex;
    justify-content: space-around;
    flex-wrap: wrap;
    gap: 30px;
    padding: 40px 0;
    text-align: center;
}

.info-item {
    flex: 1;
    min-width: 250px;
    font-family: 'font-librebaskerville-bold';
}

    .info-item h3 {
        color: #c69e3f;
        font-size: 1.1rem;
    }

    .info-item p {
        color: #ddd;
        font-size: 0.95rem;
    }

/* === RESPONSIVE === */
@media (max-width: 992px) {
    .hero {
        height: 50vh;
    }

    .logo {
        font-size: 2.2rem;
    }

    .hero-title {
        font-size: 1.5rem;
    }

    .content-container {
        flex-direction: column;
        text-align: center;
    }

    .text-block, .image-block {
        width: 100%;
    }
}

@media (max-width: 600px) {
    .btn-cotizar {
        width: 80%;
        padding: 10px;
    }

    .banner {
        font-size: 0.85rem;
    }

    .banner p{
        font-size: 0.85rem !important;
    }

    .info {
        flex-direction: column;
        text-align: center;
    }

    .info-item h3 {
        font-size: 1rem;
    }
}
/* === SECCIÓN EVENTO === */
.contactanos-evento {
    background-color: #000;
    color: #fff;
    padding: 80px 40px;
}

.contact-evento-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
    gap: 40px;
    max-width: 1200px;
    margin: 0 auto;
}

/* === IMAGEN === */
.evento-imagen {
    flex: 1;
/*    min-width: 320px;*/
    text-align: center;
}

    .evento-imagen img {
        width: 100%;
        max-width: 430px;
        border-radius: 8px;
        box-shadow: 0 0 20px rgba(255, 255, 255, 0.15);
    }

/* === FORMULARIO === */
.evento-formulario {
    flex: 2;
/*    min-width: 340px;*/
    max-width: 600px;
}

    .evento-formulario h2 {
        font-size: 22px;
        font-weight: bold;
        text-transform: uppercase;
        margin-bottom: 30px;
        line-height: 1.4;
        color: #fff;
        text-align: left;
    }

    .evento-formulario form {
        display: flex;
        flex-direction: column;
        gap: 15px;
    }

/* === FILAS === */
.fila {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}

.campo {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.evento-formulario label {
    font-size: 13px;
    margin-bottom: 5px;
    font-weight: 600;
    color: #fff;
}

.evento-formulario input,
.evento-formulario textarea {
    width: 100%;
    padding: 12px 0px;
    font-size: 15px;
    border: 2px solid transparent;
    border-radius: 12px;
    background: #222;
    color: #fff;
    outline: none;
    transition: all 0.3s ease;
    box-shadow: inset 2px 2px 5px rgba(0, 0, 0, 0.6), inset -2px -2px 5px rgba(255, 255, 255, 0.05);
}

    .evento-formulario input:focus,
    .evento-formulario textarea:focus {
        border-color: #d4b46a;
        background: #1a1a1a;
        box-shadow: 0 0 8px rgba(212,180,106,0.8);
    }

/* === BOTÓN === */
.evento-formulario button {
    background-color: #e1251b;
    color: #fff;
    font-weight: bold;
    text-transform: uppercase;
    padding: 12px 0;
    border: none;
    border-radius: 30px;
    cursor: pointer;
    font-size: 15px;
    transition: all 0.3s ease;
    margin-top: 10px;
}

    .evento-formulario button:hover {
        background-color: #ff2e26;
        transform: translateY(-2px);
        box-shadow: 0 6px 14px rgba(255, 46, 38, 0.5);
    }

/* === RESPONSIVE === */
@media (max-width: 992px) {
    .contactanos-evento {
        padding: 60px 20px;
    }

    .contact-evento-container {
        flex-direction: column;
/*        align-items: center;*/
        text-align: center;
    }

    .evento-imagen img {
        max-width: 100px;
    }

    .evento-formulario {
        width: 100%;
        max-width: 500px;
        text-align: center;
    }

        .evento-formulario h2 {
            text-align: center;
            font-size: 20px;
        }

    .fila {
        flex-direction: column;
    }

    .campo {
        width: 100%;
    }
}

@media (max-width: 480px) {
    .evento-formulario h2 {
        font-size: 18px;
    }

    .evento-imagen img {
        max-width: 300px;
    }

    .evento-formulario button {
        font-size: 14px;
        padding: 10px 0;
    }
}

.checkbox-label {
    display: flex;
    align-items: center;
    font-size: 1.1rem; /* texto más grande */
    line-height: 1.4;
    cursor: pointer;
}

    .checkbox-label input[type="checkbox"] {
        width: 24px; /* tamaño del checkbox */
        height: 24px;
        margin-right: 10px;
        accent-color: var(--bs-ColorDoradoOscuro); /* color personalizado (compatible con la mayoría de navegadores modernos) */
    }