body {
    display: flex;
    flex-direction: column;
    min-height: 100vh; /* Esto asegura que el body ocupe todo el alto de la ventana */
}
/* -------------------------------------- */
/* -------------- Header ---------------- */
/* -------------------------------------- */

.header {
    position: relative;
    width: 100%;
    min-height: 40vh;
    overflow: hidden;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    padding: 0 2rem;
    background-color: #272727;
    background-image: url("/img/fondo.jpg");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.header::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 7%;
    background: rgba(75, 6, 105, 0.355);
}

/* Ajuste para el contenedor del logo */
.logo {
    display: flex;
    justify-content: center;
    width: 100%;
    margin: 0 auto;
    position: relative;
    z-index: 4; /* Por encima del menú hamburguesa */
}

/* Logo */
.logo img {
    height: 80px;
    margin: 1rem auto 2rem auto; /* Agrega espacio debajo del logo */
    display: block;
}

/* Menú hamburguesa oculto por defecto */
.menu-icon {
    display: none;
    font-size: 2rem;
    color: rgb(23, 23, 23);
    position: absolute;
    top: 1rem;
    right: 1rem;
    cursor: pointer;
    z-index: 3;
}

#menu-toggle {
    display: none;
}

/* -------------------------------------- */
/* ----------- N A V B A R -------------- */
/* -------------------------------------- */

nav {
    margin: 27px auto 0;
    margin-bottom: 30px;
    position: relative;
    width: auto; /* Permite crecer según la cantidad de enlaces */
    height: 50px;
    background-color: #49364d;
    color: rgb(227, 219, 228);
    border-radius: 8px;
    font-size: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    overflow: hidden;
}

/* Enlaces del nav */
nav a.nav-link {
    position: relative;
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
    font-size: 15px;
    text-decoration: none;
    text-transform: uppercase;
    color: white;
    font-weight: 500;

    cursor: pointer;
    z-index: 1;
    overflow: hidden;
    transition: color 0.3s ease;
    border-radius: 0;
}
/* Fondo animado con ::before */
nav a.nav-link::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    z-index: -1;
    background-color: transparent;
    transition: all 0.4s ease;
    border-radius: 0;
}

/* Ancho personalizado por clase (opcional si usas padding) */
nav a.home {
    width: 100px;
}
nav a.cursos {
    width: 100px;
}
nav a.catalogo {
    width: 130px;
}
nav a.login-nav {
    width: 130px;
}
nav a.registro {
    width: 130px;
}
nav a.crearC {
    width: 150px;
}
nav a.crearE {
    width: 150px;
}
nav a.crearP {
    width: 200px;
}
nav a.crearM {
    width: 100px;
}
nav a.fav {
    width: 150px;
}

nav a.usuariosC {
    width: 150px;
}

nav a.panelA {
    width: 150px;
}

nav a.empresaC {
    width: 210px;
}

nav a.cerrar {
    width: 150px;
}

/* HOVER (colores por clase) */
nav a.home:hover::before {
    background-color: #d8a2e6;
}
nav a.cursos:hover::before {
    background-color: #fa2cb6;
}
nav a.catalogo:hover::before {
    background-color: #3498db;
}
nav a.cerrar:hover::before {
    background-color: #e74c3c;
}
nav a.login-nav:hover::before {
    background-color: #9b59b6;
}
nav a.registro:hover::before {
    background-color: #f39c12;
}
nav a.crearC:hover::before {
    background-color: #12e4f3;
}
nav a.crearE:hover::before {
    background-color: #0c47c6;
}
nav a.crearP:hover::before {
    background-color: #fca036;
}
nav a.crearM:hover::before {
    background-color: #dc947c;
}

nav a.fav:hover::before {
    background-color: #a27cdc;
}
nav a.usuariosC:hover::before {
    background-color: #7e92f5;
}

nav a.panelA:hover::before {
    background-color: #8bc674;
}

nav a.empresaC:hover::before {
    background-color: #c5c674;
}

nav a.panelP:hover::before {
    background-color: #8bc674;
}

/* ACTIVE (igual que hover, pero persistente) */
nav a.home.active::before {
    background-color: #d8a2e6;
}
nav a.cursos.active::before {
    background-color: #fa2cb6;
}
nav a.catalogo.active::before {
    background-color: #3498db;
}
nav a.cerrar:hover::before {
    background-color: #e74c3c;
}
nav a.login-nav.active::before {
    background-color: #9b59b6;
}
nav a.registro.active::before {
    background-color: #f39c12;
}
nav a.crearC.active::before {
    background-color: #12e4f3;
}
nav a.crearE.active::before {
    background-color: #1259f3;
}

nav a.crearP.active::before {
    background-color: #fca036;
}
nav a.crearM.active::before {
    background-color: #dc947c;
}
nav a.fav.active::before {
    background-color: #a27cdc;
}

nav a.usuariosC.active::before {
    background-color: #7e92f5;
}

nav a.panelA.active::before {
    background-color: #8bc674;
}
nav a.empresaC.active::before {
    background-color: #c5c674;
}
nav a.panelP.active::before {
    background-color: #8bc674;
}

/* -------------------------------------- */
/* ----------- RESPONSIVE --------------- */
/* -------------------------------------- */
@media (max-width: 768px) {
    nav {
        flex-direction: column;
        width: 90%;
        height: auto;
        display: none;
        background-color: #49364d;
        z-index: 2;
        border-radius: 8px;
        margin: 10px auto;
    }

    #menu-toggle:checked ~ .menu-icon ~ nav {
        display: flex;
    }

    nav a.nav-link {
        flex: unset;
        display: block;
        width: 100%;
        padding: 12px 0;
        text-align: center;
        border-bottom: transparent;
        color: white;
        background-color: transparent;
        transition: background-color 0.3s ease, transform 0.3s ease;
    }

    /* Desactivamos la animación ::before en móvil */
    /* Desactivar ::before (ya lo tienes) */
    nav a.nav-link::before {
        display: none;
    }

    /* Hover y active por clase en responsive */
    nav a.nav-link.home:hover,
    nav a.nav-link.home.active {
        background-color: #d8a2e6;
    }

    nav a.nav-link.cursos:hover,
    nav a.nav-link.cursos.active {
        background-color: #fa2cb6;
    }

    nav a.nav-link.catalogo:hover,
    nav a.nav-link.catalogo.active {
        background-color: #3498db;
    }

    nav a.nav-link.login-nav:hover,
    nav a.nav-link.login-nav.active {
        background-color: #9b59b6;
    }

    nav a.nav-link.registro:hover,
    nav a.nav-link.registro.active {
        background-color: #f39c12;
    }
    nav a.nav-link.crearC:hover,
    nav a.nav-link.crearC.active {
        background-color: #12e4f3;
    }
    nav a.nav-link.crearE:hover,
    nav a.nav-link.crearE.active {
        background-color: #1259f3;
    }

    nav a.nav-link.usuariosC:hover,
    nav a.nav-link.usuariosC.active {
        background-color: #7e92f5;
    }

    nav a.nav-link.panelA:hover,
    nav a.nav-link.usuariosC.active {
        background-color: #8bc674;
    }
    nav a.nav-link.empresaC:hover,
    nav a.nav-link.usuariosC.active {
        background-color: #c5c674;
    }

    nav a.nav-link.panelP:hover,
    nav a.nav-link.usuariosC.active {
        background-color: #8bc674;
    }

    nav a.nav-link.cerrar:hover,
    nav a.nav-link.cerrar.active {
        background-color: #e74c3c;
    }

    /* -----------------*/

    nav a.nav-link.crearP:hover,
    nav a.nav-link.cerrar.active {
        background-color: #fca036;
    }

    nav a.nav-link.crearM:hover,
    nav a.nav-link.crearM.active {
        background-color: #dc947c;
    }

    nav a.nav-link.fav:hover,
    nav a.nav-link.fav.active {
        background-color: #a27cdc;
    }

    .header {
        flex-direction: column;
        align-items: center;
        padding: 1rem;
        position: relative;
    }

    .menu-icon {
        display: block;
        position: absolute;
        top: 1rem;
        right: 1rem;
        z-index: 5;
        cursor: pointer;
    }

    #menu-toggle:checked ~ .logo {
        display: none;
    }

    #menu-toggle:not(:checked) ~ .logo {
        display: block;
    }
}

/* -------------------------------------- */
/* -------------- Profesores ---------------- */
/* -------------------------------------- */

/* Imagen del profesor */
.imgProfesor {
    width: 200px;
    height: 200px;
    border-radius: 50%;
    object-fit: cover;
    border: 5px solid #49364d;
    transition: border-color 0.3s ease, transform 0.3s ease;
}

.imgProfesor:hover {
    border-color: #a0489f;
    transform: scale(1.05); /* ligero zoom al pasar el mouse */
}

/* Cada celda/profesor */

.contenedorCelda {
    display: flex;
    flex-direction: column;
    align-items: center;
    box-sizing: border-box;
    text-align: center;
    padding: 0 15px; /* Espaciado interno */
}

/* Nombre del profesor */
.textoProfesor.nombre {
    font-size: 25px;
    line-height: 34px;
    font-weight: 700;
    color: rgb(77, 46, 94);
    margin-bottom: 3px;
}

/* Puesto o tipo */
.textoProfesor.puesto {
    color: rgb(244, 40, 138);
    font-size: 25px;
    font-weight: 700;
    text-align: center;
}

/* Iconos sociales */
.socialIcons {
    display: flex;
    align-items: center;
    justify-content: space-around;
    width: 80px;
}

/* -------------------------------------- */
/* -------- CARD  CERTIFICACION --------- */
/* -------------------------------------- */

.contenedor-principal {
    margin-bottom: 4rem;
}

/* Contenedor principal */
.containerInicial {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 10px;
    flex-wrap: wrap;
    margin-top: 5%;
}

/* Los extremos */
.left-side {
    width: 15%; /* Pueden ser más pequeños */
    background-color: #464049; /* Color de fondo para los extremos */
    color: white;
    padding: 10px;
    text-align: center;
    border-top-left-radius: 25px;
    border-end-start-radius: 25px;
}

.right-side {
    width: 15%; /* Pueden ser más pequeños */
    background-color: #464049; /* Color de fondo para los extremos */
    color: white;
    padding: 10px;
    text-align: center;
    border-end-end-radius: 25px;
    border-top-right-radius: 25px;
}

/* Centro */
.center {
    width: 70%;
    padding: 2rem;
    background-color: #fff;
    text-align: center;
    text-decoration: none;
    color: inherit;
    position: relative;
    cursor: pointer;
    overflow: hidden; /* Oculta el fondo animado al salir */
}

.center::before {
    position: absolute;
    left: 0;
    bottom: 0;
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background-color: rgba(40, 1, 41, 0.861);
    transform-origin: bottom;
    transform: scaleY(0);
    transition: 0.4s ease-out;
    z-index: 0;
    border-radius: 25px;
}

.center:hover::before {
    transform: scaleY(1);
}

/* Título */
.post-title {
    position: relative;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.333;
    transition: 0.4s ease-out;
    z-index: 1;
}

/* Párrafo */
.post-parrafo {
    position: relative;
    font-size: 1rem;
    color: #444;
    transition: 0.4s ease-out;
    z-index: 1;
}

/* Hover: cambiar color al pasar el mouse */
.center:hover .post-title,
.center:hover .post-parrafo {
    color: #fff;
}

/* Responsive: mantiene el orden original en columnas */
@media (max-width: 768px) {
    .containerInicial {
        flex-direction: column;
        align-items: stretch;
    }

    .left-side,
    .center,
    .right-side {
        width: 100%;
    }
}

/* -------------------------------------- */
/* -------------- Citas ---------------- */
/* -------------------------------------- */

.contenedorCitas {
    font-family: "Poppins", sans-serif;
    display: flex;
    flex-wrap: wrap; /* permite que las tarjetas bajen en nuevas líneas */
    justify-content: center; /* centra horizontalmente */
    gap: 20px; /* espacio entre tarjetas */
    padding: 20px;
    min-height: 60vh;
    margin-bottom: 50px;
}

.citas {
    min-height: 320px;
    display: flex;
    flex-wrap: wrap; /* si quieres que se acomoden correctamente */
    justify-content: space-between;
    gap: 20px;
}

.citas .box {
    position: relative;
    width: 25vw;
    height: 50vh;
    min-height: 320px;
    background: #f2f2f2;
    overflow: hidden;
    transition: all 0.5s ease-in;
    z-index: 2;
    box-sizing: border-box;
    padding: 30px;
    box-shadow: -10px 5px  5px 5px rgba(0, 0, 0, 0.3);
}

.citas .box::before {
    content: "\201C";
    position: absolute;
    top: -20px;
    left: 5px;
    width: 100%;
    height: 100%;
    font-size: 120px;
    opacity: 0.2;
    background: transparent;
    pointer-events: none;
}

.citas .box::after {
    content: "\201D";
    position: absolute;
    bottom: -10%;
    right: 5%;
    font-size: 120px;
    opacity: 0.2;
    background: transparent;
    filter: invert(1);
    pointer-events: none;
}

.citas .box p {
    margin: 0;
    padding: 10px;
    font-size: 1.2rem;
    color: #000; /* negro puro */
    font-weight: 400;
}

.citas .box h2 {
    position: absolute;
    margin: 0;
    padding: 0;
    bottom: 10%;
    right: 10%;
    font-size: 1.5rem;
}

.citas .box:hover {
    color: #f2f2f2;
    box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.5);
}

.citas .bg {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    opacity: 0;
    transition: all 0.5s ease-in;
    pointer-events: none;
    width: 100%;
    height: 200%;
    overflow: hidden;
}

.citas .box.box1:hover,
.citas .box.box1:hover ~ .bg {
    opacity: 1;
    background: #e2a9e5;
    background: -moz-linear-gradient(-45deg, #e2a9e5 15%, #2b94e5 100%);
    background: -webkit-linear-gradient(-45deg, #e2a9e5 15%, #2b94e5 100%);
    background: linear-gradient(135deg, #e2a9e5 15%, #2b94e5 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e2a9e5', endColorstr='#2b94e5',GradientType=1 );
}

.citas .box.box2:hover,
.citas .box.box2:hover ~ .bg {
    opacity: 1;
    background: #632c65;
    background: -moz-linear-gradient(-45deg, #632c65 15%, #56a5e2 100%);
    background: -webkit-linear-gradient(-45deg, #632c65 15%, #56a5e2 100%);
    background: linear-gradient(135deg, #632c65 15%, #56a5e2 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#632c65', endColorstr='#56a5e2',GradientType=1 );
}

.citas .box.box3:hover,
.citas .box.box3:hover ~ .bg {
    opacity: 1;
    background: #4b384c;
    background: -moz-linear-gradient(-45deg, #4b384c 15%, #da5de2 100%);
    background: -webkit-linear-gradient(-45deg, #4b384c 15%, #da5de2 100%);
    background: linear-gradient(135deg, #4b384c 15%, #da5de2 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#4b384c', endColorstr='#da5de2',GradientType=1 );
}

@media (max-width: 768px) {
    .citas {
        flex-direction: column;
        align-items: center;
    }

    .citas .box {
        width: 90vw;
        height: auto; /* mejor que 50vh para móviles */
    }
}
/* ========================== */
/*   ARREGLO DE LAS CARDS    */
/* ========================== */

.cardCursos1 {
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    overflow: hidden; /* evita desbordes de imagen */
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.cardCursos1:hover {
    transform: translateY(-4px);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.15);
}

/* contenedor de imagen */
.cardCursos1-img {
    width: 100%;
    height: 200px; /* altura fija para uniformidad */
    overflow: hidden;
}

/* imagen del curso */
.cardCursos1-img img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* evita deformaciones */
    display: block;
}

/* contenido de la card */
.cardCursos1contenido {
    padding: 15px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    flex-grow: 1;
}

.cardCursos1nombre {
    font-weight: bold;
    font-size: 1.1rem;
    margin-bottom: 8px;
    text-align: center;
}

.cardCursos1descripcion {
    font-size: 0.95rem;
    color: #555;
    margin-bottom: 15px;
    text-align: justify;
}

/* -------------------------------------- */
/* -------------- Boton ---------------- */
/* -------------------------------------- */

.bordeBoton {
    --line_color: #1b1919;
    --back_color: #e9ecff;
}

.botonEntrar {
    width: auto; /* Cambiar de 80% a auto */
    min-width: 140px; /* Opcional, para que no quede muy pequeño */
    height: 50px;
    display: inline-flex; /* inline-flex para que se ajuste al contenido */
    margin: 0 auto;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
    z-index: 0;
    text-decoration: none;
    font-size: 14px;
    font-weight: bold;
    color: var(--line_color);
    letter-spacing: 2px;
    transition: all 0.3s ease;
}

.textoBoton {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
}
.botonEntrar::before,
.botonEntrar::after,
.textoBoton::before,
.textoBoton::after {
    content: "";
    position: absolute;
    height: 3px;
    border-radius: 2px;
    background: var(--line_color);
    transition: all 0.5s ease;
}
.botonEntrar::before {
    top: 0;
    left: 54px;
    width: calc(100% - 56px * 2 - 16px);
}
.botonEntrar::after {
    top: 0;
    right: 54px;
    width: 8px;
}
.textoBoton::before {
    bottom: 0;
    right: 54px;
    width: calc(100% - 56px * 2 - 16px);
}
.textoBoton::after {
    bottom: 0;
    left: 54px;
    width: 8px;
}
.lineaBoton {
    position: absolute;
    top: 0;
    width: 56px;
    height: 100%;
    overflow: hidden;
}
.lineaBoton::before {
    content: "";
    position: absolute;
    top: 0;
    width: 150%;
    height: 100%;
    box-sizing: border-box;
    border-radius: 300px;
    border: solid 3px var(--line_color);
}
.lineaBoton:nth-child(1),
.lineaBoton:nth-child(1)::before {
    left: 0;
}
.lineaBoton:nth-child(2),
.lineaBoton:nth-child(2)::before {
    right: 0;
}
.botonEntrar:hover {
    letter-spacing: 6px;
}
.botonEntrar:hover::before,
.botonEntrar:hover .textoBoton::before {
    width: 8px;
}
.botonEntrar:hover::after,
.botonEntrar:hover .textoBoton::after {
    width: calc(100% - 56px * 2 - 16px);
}

.efectoBoton1,
.efectoBoton2 {
    position: absolute;
    z-index: -1;
    border-radius: 16px;
    transform-origin: 16px 16px;
}
.efectoBoton1 {
    top: -16px;
    left: 40px;
    width: 32px;
    height: 0;
    transform: rotate(30deg);
}
.efectoBoton2 {
    top: 44px;
    left: 77px;
    width: 32px;
    height: 0;
    transform: rotate(-127deg);
}
.efectoBoton1::before,
.efectoBoton1::after,
.efectoBoton2::before,
.efectoBoton2::after {
    content: "";
    position: absolute;
}
.efectoBoton1::before {
    bottom: 0;
    left: 0;
    width: 0;
    height: 32px;
    border-radius: 16px;
    transform-origin: 16px 16px;
    transform: rotate(-60deg);
}
.efectoBoton1::after {
    top: -10px;
    left: 45px;
    width: 0;
    height: 32px;
    border-radius: 16px;
    transform-origin: 16px 16px;
    transform: rotate(69deg);
}

.efectoBoton1,
.efectoBoton1::before,
.efectoBoton1::after {
    background: var(--back_color);
}
.botonEntrar:hover .efectoBoton1 {
    animation: drow1 ease-in 0.06s;
    animation-fill-mode: forwards;
}
.botonEntrar:hover .efectoBoton1::before {
    animation: drow2 linear 0.08s 0.06s;
    animation-fill-mode: forwards;
}
.botonEntrar:hover .efectoBoton1::after {
    animation: drow3 linear 0.03s 0.14s;
    animation-fill-mode: forwards;
}
.botonEntrar:hover .efectoBoton2 {
    animation: drow4 linear 0.06s 0.2s;
    animation-fill-mode: forwards;
}
.botonEntrar:hover .efectoBoton2::before {
    animation: drow3 linear 0.03s 0.26s;
    animation-fill-mode: forwards;
}
.botonEntrar:hover .efectoBoton2::after {
    animation: drow5 linear 0.06s 0.32s;
    animation-fill-mode: forwards;
}
@keyframes drow1 {
    0% {
        height: 0;
    }
    100% {
        height: 100px;
    }
}
@keyframes drow2 {
    0% {
        width: 0;
        opacity: 0;
    }
    10% {
        opacity: 0;
    }
    11% {
        opacity: 1;
    }
    100% {
        width: 120px;
    }
}

.botonEntrar:not(:last-child) {
    margin-bottom: 64px;
}

/*Boton ENTRAR*/
.botonDentro {
    background: #e84366f0;
    color: #fff;
    border: none;
    border-radius: 999px; /* ovalado total */
    position: relative;
    height: 50px;
    font-size: 1.2em;
    padding: 0 1.5em; /* espacio horizontal */
    cursor: pointer;
    transition: 500ms ease all;
    outline: none;
    overflow: hidden;
    display: inline-flex; /* alinea verticalmente */
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.botonDentro:hover {
    background: #fff;
    border: none;
    color: #e84366f0;
}

.botonDentro:before,
.botonDentro:after {
    content: "";
    position: absolute;
    height: 2px;
    width: 0;
    background: #e84366f0;
    transition: 400ms ease all;
}

.botonDentro:before {
    top: 0;
    left: 10px; /* separa del borde izquierdo */
    right: 10px;
}

.botonDentro:after {
    bottom: 0;
    left: 10px;
    right: 10px;
}

.botonDentro:hover:before,
.botonDentro:hover:after {
    width: calc(100% - 20px); /* deja 10px a cada lado */
    left: 10px;
    right: 10px;
    transition: 800ms ease all;
}

/*Boton inscribirse*/
.botonInscribir {
    background: #a56abcac;
    color: #fff;
    border: none;
    border-radius: 999px; /* ovalado total */
    position: relative;
    height: 50px;
    font-size: 1.2em;
    padding: 0 1.5em; /* espacio horizontal */
    cursor: pointer;
    transition: 500ms ease all;
    outline: none;
    overflow: hidden;
    display: inline-flex; /* alinea verticalmente */
    align-items: center;
    justify-content: center;
}

.botonInscribir:hover {
    background: #fff;
    border: none;
    color: #744786ea;
}

.botonInscribir:before,
.botonInscribir:after {
    content: "";
    position: absolute;
    height: 2px;
    width: 0;
    background: #744786ea;
    transition: 400ms ease all;
}

.botonInscribir:before {
    top: 0;
    left: 10px; /* separa del borde izquierdo */
    right: 10px;
}

.botonInscribir:after {
    bottom: 0;
    left: 10px;
    right: 10px;
}

.botonInscribir:hover:before,
.botonInscribir:hover:after {
    width: calc(100% - 20px); /* deja 10px a cada lado */
    left: 10px;
    right: 10px;
    transition: 800ms ease all;
}

/* -------------------------------------- */
/* -------------- Login ---------------- */
/* -------------------------------------- */

.contenedorForm {
    display: flex;
    justify-content: center;
    border-radius: 30px;
    background: linear-gradient(90deg, #5d54a4, #7c78b8);
    position: relative;
    min-height: 300px;
    width: 360px;
    box-shadow: 0px 0px 24px #5c5696;
    overflow: hidden;
}

.contenidoForm {
    z-index: 1;
    position: relative;
    height: 100%;
}

.contornoContenedor {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 0;
    -webkit-clip-path: inset(0 0 0 0);
    clip-path: inset(0 0 0 0);
}

.contornoForma {
    transform: rotate(35deg);
    position: absolute;
}

.forma1 {
    height: 520px;
    width: 520px;
    background: #fff;
    top: -50px;
    right: 120px;
    border-radius: 0 72px 0 0;
}

.forma2 {
    height: 220px;
    width: 220px;
    background: #6c63ac;
    top: -172px;
    right: 0;
    border-radius: 32px;
}

.forma3 {
    height: 540px;
    width: 190px;
    background: linear-gradient(270deg, #5d54a4, #6a679e);
    top: -24px;
    right: 0;
    border-radius: 32px;
}

.forma4 {
    height: 400px;
    width: 200px;
    background: #7e7bb9;
    top: auto; /* Elimina el top */
    bottom: 20px; /* Ajusta la posición desde el fondo */
    right: 50px;
    border-radius: 60px;
}

.login {
    padding: 30px;
    padding-top: 70px;
}

.cajaLogin {
    position: relative; /* necesario para posicion absolute del icono */
    display: flex;
    align-items: center;
    gap: 10px; /* espacio entre icono e input */
    width: 100%; /* para que ocupe todo el ancho del contenedor */
    margin-bottom: 1rem; /* espacio entre campos */
}

.iconoLogin {
    position: static; /* elimina absolute para que forme parte del flow flex */
    color: #7875b5;
    font-size: 1.4rem;
    flex-shrink: 0; /* que el icono no se reduzca */
    width: 30px; /* ancho fijo para que quede alineado */
    text-align: center;
}

.cajaInput {
    border: none;
    border-bottom: 2px solid #d1d1d4;
    background: #fdfdfead;
    padding: 10px;
    padding-left: 24px;
    font-weight: 700;
    width: 88%;
    transition: 0.2s;
}

.cajaInput:active,
.cajaInput:focus,
.cajaInput:hover {
    outline: none;
    border-bottom-color: #6a679e;
}

.botonLogin {
    background: #fff;
    font-size: 14px;
    margin-top: 20px;
    padding: 16px 20px;
    border-radius: 26px;
    border: 1px solid #d4d3e8;
    text-transform: uppercase;
    font-weight: 700;
    display: flex;
    align-items: center;
    width: 100%;
    color: #4c489d;
    box-shadow: 0px 2px 2px #49364d;
    cursor: pointer;
    transition: 0.2s;
}

.botonLogin:active,
.botonLogin:focus,
.botonLogin:hover {
    border-color: #6a679e;
    outline: none;
}

.iconoBoton {
    font-size: 15px;
    margin-left: auto;
    color: #7875b5;
}

/*CAMBIOS EN EL PASS */
/* CONTENEDOR CONTRASEÑA */
.cajaLogin2 {
    position: relative; /* necesario para colocar el ojito */
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    margin-bottom: 1rem;
}

.iconoLogin2 {
    position: static;
    color: #7875b5;
    font-size: 1.4rem;
    flex-shrink: 0;
    width: 30px;
    text-align: center;
}

/* INPUT ESTILO ORIGINAL */
.cajaInput2 {
    border: none;
    border-bottom: 2px solid #d1d1d4;
    background: #fdfdfead;
    padding: 10px;
    padding-left: 24px;
    font-weight: 700;
    width: 100%;
    transition: 0.2s;
    padding-right: 40px; /* espacio para que no choque el ojito */
}

.cajaInput2:active,
.cajaInput2:focus,
.cajaInput2:hover {
    outline: none;
    border-bottom-color: #6a679e;
}

/* BOTÓN OJITO */
.toggle-password2 {
    position: absolute;
    right: 10px;
    background: transparent;
    border: none;
    cursor: pointer;
    color: #480156; /* mismo color base que tu estilo PASS */
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
}

.toggle-password2:hover {
    color: #a51995; /* hover igual que en .cajaLogin2 */
}

/* Quitar el ojito nativo de Edge/Chrome */
input[type="password"]::-ms-reveal,
input[type="password"]::-ms-clear {
    display: none;
}

input[type="password"]::-webkit-credentials-auto-fill-button {
    visibility: hidden;
    display: none !important;
    pointer-events: none;
    position: absolute;
    right: 0;
}

/*------------------------ */

/* -------------------------------------- */
/* ---------- R E G I S T R O ----------- */
/* -------------------------------------- */

.contenedorForm2 {
    display: flex;
    justify-content: center;
    border-radius: 30px;
    position: relative;
    min-height: 300px;
    width: 360px;
    box-shadow: 0px 0px 24px #5c5696;
    overflow: hidden;
}

.contenidoForm2 {
    z-index: 1;
    position: relative;
    height: 100%;
}

.contornoContenedor2 {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 0;
    -webkit-clip-path: inset(0 0 0 0);
    clip-path: inset(0 0 0 0);
}

.contornoForma2 {
    clip-path: ellipse(130px 140px at 10% 20%);
    transform: rotate(35deg);
    position: absolute;
}

.contornoForma2.forma1 {
    background: rgb(144, 92, 169);
    width: 500px;
    height: 700px;
    transform: translateY(-50%) translatex(-25%) rotate(20deg); /* Centra y rota */
    clip-path: polygon(80% 10%, 50% 25%, 100% 100%);
}

.contornoForma2.forma2 {
    background: rgb(144, 92, 169);
    width: 500px;
    height: 700px;
    transform: translateY(40%) rotate(90deg); /* Centra y rota */
    clip-path: polygon(80% 10%, 50% 25%, 100% 100%);
}

.contornoForma2.forma3 {
    background: rgb(144, 92, 169);
    width: 500px;
    height: 700px;
    transform: translateY(-50%) translateX(24%) rotate(18deg); /* Centra y rota */
    clip-path: polygon(80% 10%, 50% 25%, 100% 100%);
}

.contornoForma2.login {
    padding: 30px;
    padding-top: 70px;
}

.contornoForma2.cajaLogin {
    padding: 20px 0px;
    position: relative;
}

.contornoForma2.iconoLogin {
    position: absolute;
    top: 30px;
    color: #7875b5;
}

.contornoForma2.cajaInput {
    border-bottom: 2px solid #b016ab;
    background: none;
    width: 100%;
    transition: 0.2s;
}

.contornoForma2.cajaInput:active,
.contornoForma2.cajaInput:focus,
.contornoForma2.cajaInput:hover {
    outline: none;
    border-bottom-color: #6a679e;
}

.contornoForma2.botonLogin {
    background: #fff;
    font-size: 14px;
    margin-top: 20px;
    padding: 16px 20px;
    border-radius: 26px;
    border: 1px solid #d4d3e8;
    text-transform: uppercase;
    font-weight: 700;
    display: flex;
    align-items: center;
    width: 100%;
    color: #4c489d;
    box-shadow: 0px 2px 2px #49364d;
    cursor: pointer;
    transition: 0.2s;
}

.contornoForma2 .botonLogin:active,
.contornoForma2 .botonLogin:focus,
.contornoForma2 .botonLogin:hover {
    border-color: #6a679e;
    outline: none;
}

.contornoForma2 .iconoBoton {
    font-size: 15px;
    margin-left: auto;
    color: #7875b5;
}

/* -------------------------------------- */
/* ------------- P A N E L -------------- */
/* -------------------------------------- */

.contenedor-panel {
    display: flex; /* activa flexbox */
    justify-content: center; /* centra horizontalmente */
    align-items: center; /* centra verticalmente */
    margin: 2%;
    flex-direction: column; /* para que los hijos se apilen verticalmente */
    text-align: center; /* centra el texto dentro */
}

.avatar-panel {
    --c: #a22e75f0; /* color principal */
    --b: 8px; /* grosor del borde */
    --o: 15px; /* offset del borde */

    width: 300px; /* tamaño de la imagen */
    --_p: calc(2 * var(--o) + var(--b));

    padding: var(--_p) var(--_p) 0 0;
    outline: var(--b) solid var(--c);
    outline-offset: calc(var(--o) - var(--_p));
    transition: 0.4s;
    cursor: pointer;
}

.avatar-panel:hover {
    padding: calc(var(--_p) / 2);
}

/* -------------------------------------- */
/* -------------- Form CREAR Cursos ---------------- */
/* -------------------------------------- */

.contenedor-formCursos {
    max-width: 900px;
    margin: auto;
    padding: 2rem;
    background-color: #f6f3fb;
    border-radius: 25px;
    box-shadow: 0 5px 10px rgba(80, 1, 132, 0.308);
    overflow: hidden; /* Esto ayuda a que nada sobresalga, como radios internos */
}

.botones-formCursos {
    display: flex;
    justify-content: space-between;
    margin-bottom: 2rem;
    margin-top: -0.5rem; /* sube los botones para alinearlos con el borde */
}

.botones-formCursos button {
    flex: 1;
    padding: 1rem;
    font-size: 1.2rem;
    background-color: #8c719a;
    color: white;
    border: none;
    cursor: pointer;
    transition: background 0.3s;
    font-weight: 500 !important;
}
.botones-formCursos button.active {
    background-color: #b7429e;
}

.boton-curso {
    border-top-left-radius: 25px;
}

.boton-leccion {
    border-top-right-radius: 25px;
}

.form-version {
    display: none;
}

.form-version.active {
    display: block;
    animation: fadeIn 0.3s ease;
}

.form-version form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.form-version input,
.form-version textarea,
.form-version select {
    padding: 0.75rem;
    border-radius: 8px;
    border: 1px solid #ccc;
    font-size: 1rem;
}

.form-version button[type="submit"] {
    padding: 0.75rem;
    background-color: #a75094;
    color: white;
    border: none;
    border-radius: 8px;
    cursor: pointer;
}

.form-version button[type="submit"]:hover {
    background-color: #d705a9;
}

.input-personalizado,
.textarea-personalizado,
.select-personalizado {
    padding: 0.75rem;
    border-radius: 8px;
    border: 1px solid #ccc;
    font-size: 1rem;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.favorito {
    background: none;
    border: none;
    cursor: pointer;
    line-height: 1;
    text-shadow: rgb(255, 255, 254) 4px 0 10px;
}
.favorito:hover {
    color: #e60068; /* rojo un poco más brillante al pasar el mouse */
    text-shadow: rgb(154, 103, 163) 4px 0 10px;
}

.corazon-rojo {
    font-size: 20px !important;
    color: red;
}

.corazon-gris {
    font-size: 26px;
    color: gray;
}

table.table-striped tbody tr:hover td {
    background-color: #e8d6f16b !important;
    color: #503953 !important;
    font-weight: bold;
}

/* -------------------------------------- */
/* ------- F O R M U L A R I O ---------- */
/* -------------------------------------- */

.contenedorGeneral {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 80px;
}

.login-container {
    position: relative;
    width: 35.2rem;
}

.form-container {
    border: 1px solid hsla(0, 0%, 65%, 0.158);

    box-shadow: 0 0 36px 1px rgba(0, 0, 0, 0.304);
    border-radius: 10px;
    backdrop-filter: blur(20px);
    z-index: 99;
    padding: 2rem;
}

.login-container form input {
    display: block;
    padding: 14.5px;
    width: 100%;
    margin: 2rem 0;
    color: #fffbf9;
    outline: none;
    background-color: #2c1d1d57;
    border: none;
    border-radius: 5px;
    font-weight: 500;
    letter-spacing: 0.8px;
    font-size: 15px;
    backdrop-filter: blur(15px);
}

.login-container form input:focus {
    box-shadow: 0 0 16px 1px rgba(0, 0, 0, 0.2);
    animation: wobble 0.3s ease-in;
}

.login-container form button {
    background-color: #74178ec3;
    color: #fff;

    display: block;
    padding: 13px;
    border-radius: 5px;
    font-size: 18px;
    letter-spacing: 1.5px;
    font-weight: bold;
    width: 100%;
    cursor: pointer;
    margin-bottom: 1rem;
    transition: all 0.1s ease-in-out;
    border: none;
}

.login-container form button:hover {
    background-color: #a158b5c3;
    color: #e6dbeb;
    box-shadow: 0 0 10px 1px #00000026;
    transform: scale(1.02);
}

.btn-cancelar {
    background-color: #85075dc3;
    color: #fff;
    display: block;
    padding: 13px;
    border-radius: 5px;
    font-size: 18px;
    letter-spacing: 1.5px;
    font-weight: bold;
    width: 100%;
    cursor: pointer;
    margin-bottom: 0.25rem;
    transition: all 0.1s ease-in-out;
    border: none;
}

.btn-cancelar:hover {
    background-color: #9f3f81c3;
    color: #e6dbeb;
    box-shadow: 0 0 10px 1px #00000026;
    transform: scale(1.02);
}
.btn-materiales {
    background-color: #8946a5f1;
    color: #fff;
    display: block;
    justify-self: center;
    padding: 12px;
    border-radius: 5px;
    font-size: 16px;
    letter-spacing: 1.0px;

    width: 100%;
    cursor: pointer;
    margin-bottom: 0.75rem;
    transition: all 0.1s ease-in-out;
    border: none;
}

.btn-materiales:hover {
    background-color: rgba(181, 47, 207, 0.726);
    color: rgb(255, 255, 255);
}


.btn-volver {
    background-color: #85075dc3;
    color: #fff;
    display: block;
    justify-self: center;
    padding: 13px;
    border-radius: 5px;
    font-size: 18px;
    letter-spacing: 1.5px;
    font-weight: bold;
    width: 30%;
    cursor: pointer;
    margin-bottom: 1rem;
    transition: all 0.1s ease-in-out;
    border: none;
}

.btn-volver:hover {
    background-color: #9f3f81c3;
    color: #e6dbeb;
    box-shadow: 0 0 10px 1px #00000026;
    transform: scale(1.02);
}




.circle {
    width: 8rem;
    height: 8rem;
    background: #74178e72;
    border-radius: 50%;
    position: absolute;
}

.circle-one {
    top: 0;
    left: 0;
    z-index: -1;
    transform: translate(-45%, -45%);
}

.illustration {
    position: absolute;
    top: -14%;
    right: -2px;
    width: 90%;
    max-width: 100%;
    height: auto;
}

.opacity {
    opacity: 0.8;
}

.titulo-bienvenida {
    font-size: 2rem;
    font-weight: bold;
    text-align: center;
    color: #7a57a1 !important;
}

.titulo-bienvenida2 {
    font-size: 1.5rem;
    font-weight: bold;
    text-align: center;
    color: #7a57a1 !important;
}

.titulo-examen {
    font-size: 1.2rem;
    padding-top: 10px;
    font-weight: bold;
    text-align: center;
    color: #323232 !important;
}

/* Animación para input focus */
@keyframes wobble {
    0% {
        transform: scale(1.025);
    }
    25% {
        transform: scale(1);
    }
    75% {
        transform: scale(1.025);
    }
    100% {
        transform: scale(1);
    }
}

/* -------------------------------------- */
/* -------------- Footer ---------------- */
/* -------------------------------------- */

.contenedorVideo {
    background-color: #e4dfe4f6;
    padding-left: 2%;
    padding-right: 2%;
    padding-top: 2%;
}

.btnExamenVideo {
    background-color: rgb(219, 181, 248);
    border-top: 3px dotted #a83eb8;
    border-bottom: 3px dotted #a83eb8;
    font-weight: 500;
}

.btnExamenVideo:hover {
    background-color: rgba(191, 73, 215, 0.345);
    color: rgb(255, 255, 255);
}
.btnExamenVideo::before {
    content: "★ ";
    color: gold;
}
.btnExamenVideo::after {
    content: "★ ";
    color: gold;
}

/* Selector más específico usando la clase custom-lecciones */
.lista-videos .list-group-item {
    border-bottom: 2px dashed #a83eb8;
}

.lista-videos .list-group-item:hover {
    background-color: #f5e6fb;
    color: #6f42c1;
    border-left: 4px solid #a83eb8;
}

.lista-videos .list-group-item.active {
    background-color: #a83eb8;
    color: #fff;
    font-weight: bold;
}

/* -------------------------------------- */
/* -------------- P R E G U N T A S ---------------- */
/* -------------------------------------- */

.contenedor-pregunta1 {
    max-width: 600px;
    margin: 2rem auto;
    padding: 1.5rem;
    background-color: #f7f7f7;
    border-radius: 8px;
    box-shadow: 0 0 10px rgb(0 0 0 / 0.1);
    font-family: Arial, sans-serif;
}

.btn-volver2 {
    background-color: #85075dc3;
    color: #fff;
    display: block;
    justify-self: center;
    padding: 10px;
    border-radius: 5px;
    font-size: 18px;
    letter-spacing: 1.5px;
    font-weight: bold;
    width: 100%;
    cursor: pointer;
    margin-bottom: 1rem;
    transition: all 0.1s ease-in-out;
    border: none;
}

.btn-volver2:hover {
    background-color: #9f3f81c3;
    color: #e6dbeb;
    box-shadow: 0 0 10px 1px #00000026;
    transform: scale(1.02);
}

.btn-act {
    background-color: #8946a5f1;
    color: #fff;
    display: block;
    justify-self: center;
    padding: 13px;
    border-radius: 5px;
    font-size: 18px;
    letter-spacing: 1.5px;
    font-weight: bold;
    width: 100%;
    cursor: pointer;
    margin-bottom: 1rem;
    transition: all 0.1s ease-in-out;
    border: none;
}

.btn-act:hover {
    background-color: #b775d3c3;
    color: #e6dbeb;
    box-shadow: 0 0 10px 1px #00000026;
    transform: scale(1.02);
}

.contenedor-preguntas {
    max-width: 480px;
    margin: 2rem auto;
    padding: 1.5rem;
    background-color: #f7f7f7;
    border-radius: 8px;
    box-shadow: 0 0 10px rgb(0 0 0 / 0.1);
    font-family: Arial, sans-serif;
}

.contenedor-preguntas h1 {
    text-align: center;
    margin-bottom: 1.5rem;
    font-size: 1.8rem;
    color: #333;
}

.contenedor-preguntas label {
    display: block;
    margin-top: 1rem;
    font-weight: 600;
    color: #444;
}

.contenedor-preguntas select,
.contenedor-preguntas input[type="text"],
.contenedor-preguntas input[type="number"] {
    width: 100%;
    padding: 8px 10px;
    margin-top: 6px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 1rem;
    box-sizing: border-box;
}

.contenedor-preguntas button {
    margin-top: 1.8rem;
    width: 100%;
    padding: 10px 0;
    background-color: #b016ab;
    border: none;
    border-radius: 5px;
    color: white;
    font-size: 1.1rem;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.25s ease;
}

.contenedor-preguntas button:hover {
    background-color: #7a0658;
}

.error-messages ul {
    list-style-type: none;
    padding-left: 0;
    color: #b91c1c;
    margin-top: 1rem;
}

.error-messages li {
    margin-bottom: 0.4rem;
}

.success-message {
    margin-top: 1rem;
    color: #155724;
    background-color: #d4edda;
    padding: 10px;
    border-radius: 5px;
    font-weight: 600;
}

.error-message {
    margin-top: 1rem;
    color: #721c24;
    background-color: #f8d7da;
    padding: 10px;
    border-radius: 5px;
    font-weight: 600;
}

/* -------------------------------------- */
/* -------------- Materiales  ---------------- */
/* -------------------------------------- */
.icono-atras {
    position: static; /* elimina absolute para que forme parte del flow flex */
    color: #7875b5;
    font-size: 2.4rem;
    flex-shrink: 0; /* que el icono no se reduzca */
    text-align: center;
}

.icono-atras:hover {
    position: static; /* elimina absolute para que forme parte del flow flex */
    color: #c241a6;
    font-size: 2.6rem;
    flex-shrink: 0; /* que el icono no se reduzca */
    text-align: center;
}

/* -------------------------------------- */
/* -------------- DIV ---------------- */
/* -------------------------------------- */

.cajaCertificado {
    border-left: 4px solid #6b1768;
    padding: 2%;
    background: white;
    color: #272727;
    width: 100%;
    margin-top: 3%;
    margin-bottom: 3%;
    transition: background-color 0.3s, border-color 0.3s, color 0.3s;
}

.cajaCertificado:hover {
    background: rgba(244, 242, 242, 0.849);
    color: #272727; /* color base para texto, se puede cambiar */
}

.cajaCertificado:hover p {
    color: #aa9600 !important; /* Cambia el color de texto dentro del hover para h2 y p */
}

/* Opcional: para que el cambio sea suave */
.cajaCertificado p,
.cajaCertificado h2 {
    transition: color 0.3s;
}

/* ------------------------------*/

.cajaMaterial {
    border-top: 4px solid #6b1768;
    border-bottom: 4px solid #6b1768;
    padding: 2%;
    background: white;
    color: #272727;
    width: 100%;
    margin-top: 3%;
    margin-bottom: 3%;
    transition: background-color 0.3s, border-color 0.3s, color 0.3s;
}

.cajaMaterial:hover {
    border-top: 4px solid #be68e6;
    border-bottom: 4px solid #be68e6;
    background: rgba(244, 242, 242, 0.849);
    color: #272727; /* color base para texto, se puede cambiar */
}

.cajaMaterial:hover p {
    color: #aa9600 !important; /* Cambia el color de texto dentro del hover para h2 y p */
}

/* Opcional: para que el cambio sea suave */
.cajaMaterial p,
.cajaMaterial h2 {
    transition: color 0.3s;
}

.formExamen {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.formExamen label {
    margin-top: 1rem;
    font-weight: bold;
    color: #333;
}

.formExamen select,
.formExamen button {
    padding: 0.5rem;
    margin-top: 0.5rem;
    border-radius: 6px;
    border: 1px solid #ccc;
    font-size: 1rem;
}

.formExamen button {
    background-color: #b016ab;
    color: white;
    cursor: pointer;
    margin-top: 1.5rem;
    transition: background-color 0.3s;
}

.formExamen button:hover {
    background-color: #750f70;
}

.cajaBusqueda {
    border-top: 4px solid #b016ab;
    border-bottom: 4px solid #b016ab;
    background: white;
    color: #f312a8;
    padding: 2rem;
    width: 100%;
    max-width: 500px;
    margin: 3% auto;
    border-radius: 12px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    display: flex;
    justify-content: center;
}

.cajaBusqueda:hover {
    border-top: 3px dashed #b016ab88;
    border-bottom: 3px dashed #b016ab88;

    border-right: 4px solid #e668b6;
    border-left: 4px solid #e668b6;

    color: #fff5fc; /* color base para texto, se puede cambiar */
}
.cajaBusqueda button:hover {
    background-color: #7a0658;
}

/* -------------------------------------- */
/* ---- E X A M E N  E N   C U R S O ----- */
/* -------------------------------------- */
.contenedor-examenes {
    background-color: rgba(251, 247, 249, 0.925);
    border-radius: 5px;
}

.lista-examenes .list-group-item1 {
    border-bottom: 2px dashed #a83eb8;
    margin: 5px;
}

.lista-examenes .list-group-item1:hover {
    background-color: #f5e6fb;
    color: #7a0658;
    border-right: 4px solid #c62771;
}

.btnExamenResolver {
    position: relative; /* necesario para el ::before absoluto */
    font-weight: 500;
    padding-left: 25px; /* deja espacio para la flecha */
}

.btnExamenResolver:hover {
    background-color: rgba(232, 130, 199, 0.345);
    color: rgb(255, 255, 255);
}

.btnExamenResolver::before {
    content: "➤"; /* Flecha */
    position: absolute;
    left: 5px; /* Ajusta la distancia desde el borde izquierdo */
    top: 50%; /* Centra verticalmente */
    transform: translateY(-50%);
    color: #ff006a;
    font-weight: bold;
    font-size: 16px;
}

/* -------------------------------------- */
/* ----------- E X A M E N -------------- */
/* -------------------------------------- */
/* Contenedor para centrar y darle estilo */
.contenedor-resolver {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: auto; /* centra verticalmente */
    margin-top: 20px;
    margin-bottom: 20px;
    padding: 20px;
    background: transparent; /* sin fondo para el contenedor flex */
}

.contenedor-resolver form {
    background: white;
    border-radius: 20px;
    box-shadow: 0 8px 24px rgba(92, 86, 150, 0.3);
    padding: 30px 40px;
    width: 100%;
    max-width: 500px; /* ancho máximo para que no ocupe todo */
    box-sizing: border-box;
}

.contenedor-resolver .mb-4 {
    margin-bottom: 1.5rem;
}

.contenedor-resolver h5 {
    font-weight: 600;
    margin-bottom: 0.75rem;
    color: #6f1f7f;
}

.form-check {
    margin-bottom: 0.5rem;
}

.contenedor-resolver button[type="submit"] {
    position: relative;
    display: block;
    width: 100%;
    padding: 0.75rem 2.5rem 0.75rem 0.75rem; /* espacio para el ícono a la derecha */
    font-size: 1.1rem;
    font-weight: 600;
    border-radius: 10px;
    cursor: pointer;
    background-color: #722889;

    color: white;
    text-align: left;
}

.contenedor-resolver button[type="submit"]:hover {
    display: block;
    width: 100%;
    padding: 0.75rem;
    font-size: 1.1rem;
    font-weight: 600;
    border-radius: 10px;
    cursor: pointer;
    background-color: #5b1d6e;
    color: white;
}

.contenedor-resolver button[type="submit"]::after {
    content: "\f1d8"; /* fa-paper-plane */
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
}

/* -------------------------------------- */
/* -------------- CICLO ---------------- */
/* -------------------------------------- */

.envoltorio-circular {
    padding-top: 60px;
    padding-bottom: 100px; /* separa del footer */
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

.contenedor-circular {
    width: 300px;
    height: 300px;
    border-radius: 50%;
    position: relative;
    background: #f5f5f5;
}

.icono-circular {
    position: absolute;
    width: 150px;
    height: 150px;
    transform: translate(-50%, -50%);
    text-align: center;
    text-decoration: none;
    color: inherit;
}

.icono-circular img {
    width: 100%;
    height: auto;
    border-radius: 50%;
    transition: 0.3s;
    cursor: pointer;
}

.icono-circular img:hover {
    transform: scale(1.1);
}

/* Posiciones alrededor del círculo (como un reloj) */
.pos1 {
    top: 0%;
    left: 50%;
} /* 12:00 */
.pos2 {
    top: 50%;
    left: 100%;
} /* 3:00 */
.pos3 {
    top: 100%;
    left: 50%;
} /* 6:00 */
.pos4 {
    top: 50%;
    left: 0%;
} /* 9:00 */

.numero-guia {
    position: absolute;
    top: -15px;
    left: 50%;
    transform: translateX(-50%);
    background-color: #6a0dad;
    color: white;
    font-size: 12px;
    font-weight: bold;
    padding: 2px 6px;
    border-radius: 50%;
}

.etiqueta {
    position: absolute;
    bottom: 10px; /* más arriba dentro de la imagen */
    left: 50%;
    transform: translateX(-50%);
    background: rgba(29, 0, 39, 0.788); /* fondo semitransparente */
    color: white;
    padding: 2px 10px;
    border-radius: 10px;
    font-size: 0.8rem;
    white-space: nowrap;
    pointer-events: none;
}

/* -------------------------------------- */
/* -------------- CUADRADA -------------- */
/* -------------------------------------- */

.envoltorio-cuadrado {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 3%;
    margin-left: 10%;
    margin-right: 10%;
}

.icono-cuadrado {
    position: relative;
    text-align: center;
    text-decoration: none;
    color: inherit;
}

.icono-cuadrado img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: 0.3s ease;
    border-radius: 15px;
    border: 2px solid #855ca3;
}

.icono-cuadrado img:hover {
    transform: scale(1.1);
}

.numero-guia {
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translateX(-50%);
    background-color: #6a0dad;
    color: white;
    font-size: 14px;
    font-weight: bold;
    padding: 2px 8px;
    border-radius: 10px;
    white-space: nowrap;
}

/* -------------------------------------- */
/* ---------- D E T A L L E S ----------- */
/* -------------------------------------- */

.contenedor-principal2 {
    margin-bottom: 4rem;
}

/* Contenedor principal */
.containerInicial2 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 10px;
    flex-wrap: wrap;
    margin-top: 1%;
}
.form-version {
    display: none;
}
.form-version.active {
    display: block;
}
.tab-btn.active {
    background-color: #21b3c662;
    color: #fff;
}

.contenedor-formCursos2 {
    max-width: 900px;
    margin: auto;
    padding: 2rem;
    background-color: #f6f3fb;
    border: 2px dashed rgba(82, 95, 110, 0.941);
    border-radius: 20px;
    overflow: hidden; /* Esto ayuda a que nada sobresalga, como radios internos */
}

.botones-formCursos2 {
    display: flex;
    justify-content: space-between;
    margin-bottom: 2rem;
    margin-top: -0.5rem; /* sube los botones para alinearlos con el borde */
}

.botones-formCursos2 button {
    flex: 1;
    padding: 1rem;
    font-size: 1.2rem;
    background-color: #cbc6cd;
    color: white;
    border: none;
    cursor: pointer;
    transition: background 0.3s;
    font-weight: 500 !important;
}
.botones-formCursos2 button.active {
    background-color: #4261b7;
}

.boton-usuario {
    border-top-left-radius: 25px;
}

.boton-ce {
    border-top-right-radius: 25px;
}

.form-version2 {
    display: none;
}

.form-version2.active {
    display: block;
    animation: fadeIn 0.3s ease;
}

.form-version2 form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* Responsive: mantiene el orden original en columnas */
@media (max-width: 768px) {
    .containerInicial {
        flex-direction: column;
        align-items: stretch;
    }
}

/* -------------------------------------- */
/* ---------- Botones Perfil ------------- */
/* -------------------------------------- */

.icon-grid {
    display: grid;
    grid-template-columns: repeat(3, 120px); /* ✅ 3 columnas */
    grid-template-rows: repeat(2, 120px); /* ✅ 2 filas */
    gap: 15px; /* espacio entre los botones */
    justify-content: center; /* centra la cuadrícula */
}

.square-btn {
    width: 120px;
    height: 120px;
    padding: 10px;
    border-radius: 12px;
    background-color: #b49cca; /* color de fondo */
    color: white; /* texto/icono en blanco */
    border: none; /* sin borde gris */
    transition: transform 0.2s, box-shadow 0.2s;
}

.square-btn:hover {
    background-color: #674587; /* color al pasar el mouse */
    transform: scale(1.05);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
}

.square-btn i {
    font-size: 2rem; /* ícono más grande */
    margin-bottom: 5px;
}

.square-btn span {
    font-size: 0.9rem;
}

/* Responsivo: más grandes en pantallas grandes */
@media (min-width: 992px) {
    .icon-grid {
        grid-template-columns: repeat(
            3,
            150px
        ); /* ✅ 3 columnas también en escritorio */
        grid-template-rows: repeat(2, 150px);
        gap: 20px;
    }

    .square-btn {
        width: 150px;
        height: 150px;
    }

    .square-btn i {
        font-size: 2.5rem;
    }

    .square-btn span {
        font-size: 1rem;
    }
}

/* -------------------------------------- */
/* -------------- Footer ---------------- */
/* -------------------------------------- */

footer {
    position: relative;
    margin-top: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    background-color: #291c2b;
    text-align: center;
    padding-top: 2%;
    padding-bottom: 2%;
    margin-top: auto; /* Esto empuja el footer hacia el final */
}

.footer p {
    color: rgb(213, 212, 212);
}
/* -------------------------------------- */
