/* ================= BASE ================= */
/* Importar las variables de Bootstrap */

@font-face {
  font-family: 'Poppins';
  src: url('/assets/fonts/poppins-300.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}



@font-face {
  font-family: 'Poppins';
  src: url('/assets/fonts/poppins-400.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}



@font-face {
  font-family: 'Poppins';
  src: url('/assets/fonts/poppins-600.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}



@font-face {
  font-family: 'Poppins';
  src: url('/assets/fonts/poppins-700.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}



@font-face {
  font-family: "bootstrap-icons";
  src: url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/fonts/bootstrap-icons.woff2") format("woff2");
  font-display: swap;
}

:root {
    --primary: #89218A;
    --bs-blue: #89218A;
    --cl-primario: #89218A;
    --cl-primario-mennos:#d9d2da;
    --cl-secundario:#c19529;
    --color-primaro: #81c784;
    --color-secundario: #4B4F58;
    --color-danger:#db4437;
    --color-aprobado: #D9EAD3;
    --color-desaprobado: #F4CCCC;
    --color-cursando: #fce5cd;
    --color-pendiente: #f4cccc;
    --color-fpendiente: #FFF2CC;
    --color-retirada: #f4cccc;
    --blanco:#f2f2f2;
    --titulo: 40px;
    --subtitulo: 18px;
    --parrafo:16px;
    --parrafo-pequeño:12px;
}

/* Botón accordion cuando está abierto */
.accordion-button:not(.collapsed) {
    background-color: #fff !important; /* color cuando se expande */
    color: #4B4F58; /* opcional: color del texto */
}



*{
    font-family: 'Poppins', sans-serif;  
    box-sizing: border-box;
    color:#4B4F58 ;
}


body{
    display: flex;
    flex-direction: column;
    min-height: 100vh; /* Establece un mínimo de altura igual a la altura de la ventana gráfica del navegador */
    margin: 0;
    background-color: #fefefe;
    color:#4B4F58;
}




/* Cambia el color de fondo del input */
input.form-control:not(:placeholder-shown) {
    background-color: var(--blanco); /* Color de fondo cuando tiene contenido */
}



/* Cambia el color de fondo del input autofillado (por el navegador) */
input.form-control:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 30px #f0f0f0 inset;
    -webkit-text-fill-color: #000; /* Color del texto */
}



input.form-control:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0 30px #f0f0f0 inset;
}



/* Estilos para el scroll principal */
body::-webkit-scrollbar {
    width: 8px;
}



body::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 20px;
}



body::-webkit-scrollbar-thumb {
    background-color: var(--cl-primario);
    border-radius: 20px;
    border: 2px solid #f1f1f1;
}



body::-webkit-scrollbar-thumb:hover {
    background: #555;
}




ul{
    padding: 0px;
}


li{
    list-style: none;
    margin: 0px;
}







@keyframes draw {
    to {
        stroke-dashoffset: 0;
    }


}


.img-inicio{
    width: 100%;
}



.image-container {
    background-color: var(--cl-primario);
}



.text-gradient {
    background: linear-gradient(90deg, #89218A, #BA8E2F,  #BA8E2F);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    color: transparent;
}




.fondodesenfocado {
    position: relative;
    overflow: hidden;
    color: #fff;
}



/* IMAGEN (75%) */
.fondodesenfocado::before {
    content: "";
    position: absolute;
    inset: 0;
    background: url("./../img/fondo.webp") center / cover no-repeat;
    opacity: 0.50;
    z-index: 0;
}



.cta-parallax {
    min-height: 50vh;
    background:
        linear-gradient(
            to bottom,
            rgba(137, 33, 138, 0.75) 30%,
            rgba(0, 0, 0, 0.6) 70%
        ),
        url("./../img/canta-fondo-scaled.webp");
    background-size: cover;
    background-position: center;
    background-attachment: fixed; /* PARALLAX */
}







@keyframes degradadoTextoEnMovimiento {
    0% {
        background-position: 0% 50%;
    }


    50% {
        background-position: 100% 50%;
    }


    100% {
        background-position: 0% 50%;
    }


}

.certificado{
    background-image: linear-gradient(36.6deg, #89218A, #C19529, #89218A, #C19529, #89218A, #C19529 );
    border-radius: 1.2rem;
    background-size: 500%;
    animation: degradadoEnMovimiento 10s infinite;
}




@keyframes degradadoEnMovimiento {
    0% {
        background-position: 0% 50%;
    }


    50% {
        background-position: 100% 50%;
    }


    100% {
        background-position: 0% 50%;
    }


}

.img-fluid {
    /* Establece el ancho y alto máximo de la imagen al 100% */
    width: 10%;
    /* Evita que la imagen se deforme */
    object-fit: cover;
    border-radius: 50% ;
    
}



ul li a{
    font-weight: 300;
    text-decoration: none;
}




.nav-link {
    padding: 0.4rem 1rem;
}



td{
    font-size: 12px;
}



h1{
    font-size: var(--titulo);
    color: var(--cl-primario);
}



h1 span{
    color: var(--cl-primario);
}



h2{
    font-size: var(--subtitulo) ;
}



h3{
    color: #283940;
    font-size: var(--subtitulo) ;  
}



a{
    color:white;
    text-decoration: none;
}



a:hover{
    text-decoration: underline;
    color: white;
}



a i{
    font-size: 18px;
    margin-left: 8px;
}



table{
    background-color: var(--blanco);
    padding: 12px;
    border-radius: 8px;
    border-collapse: separate;
    border-spacing: 0px;
}



thead{
    border-bottom: 0px ;
    border-bottom-width: 0px;
}




tr{
    border-bottom-width: 0px;
    height: 50px;
}



.navbar{
    padding-bottom: 0px;
}




.btnbg{
    background-color: var(--cl-primario);
    color: var(--blanco) !important;
    box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2);
    font-weight: 500;
}



.borde-redondeado{
    border-radius: 2rem;
}



/*----Tabla----*/


table {
    border-collapse: collapse;
}




th {
    text-align: inherit;
}




::-webkit-file-upload-button {
    font: inherit;
    -webkit-appearance: button;
}



[hidden] {
    display: none !important;
}




h3,
.h3 {
    font-size: 1.0625rem;
}



h4,
.h4 {
    font-size: 1rem;
}



span{
    font-size: 1rem;
    color: var(--cl-primario);
    font-weight: 500;
}




.row {
    display: flex;
    margin-right: -15px;
    margin-left: -15px;
    flex-wrap: wrap;
}




@media screen and (prefers-reduced-motion: reduce) {
    .btn {
        transition: none;
    }


}

@media screen and (prefers-reduced-motion: reduce) {
    .progress-bar {
        transition: none;
    }


}

.media {
    display: flex;
    align-items: flex-start;
}




figcaption,
main {
    display: block;
}






.text-white {
    color: #fff !important;
}



a.text-white:hover,
a.text-white:focus {
    color: #e6e6e6 !important;
}



a.text-light:hover,
a.text-light:focus {
    color: #b1bbc4 !important;
}



.btn {
    font-size: .875rem;
    position: relative;
    transition: all .15s ease;
    letter-spacing: .025em;
    text-transform: none;
    will-change: transform;
}



[class*='btn-outline-'] {
    border-width: 1px;
}



a.btn-icon-only {
    line-height: 2.5;
}




@keyframes show-navbar-collapse {
    0% {
        transform: scale(.95);
        transform-origin: 100% 0;
        opacity: 0;
    }



    100% {
        transform: scale(1);
        opacity: 1;
    }


}

@keyframes hide-navbar-collapse {
    from {
        transform: scale(1);
        transform-origin: 100% 0;
        opacity: 1;
    }



    to {
        transform: scale(.95);
        opacity: 0;
    }


}

.page-item.active .page-link {
    box-shadow: 0 7px 14px rgba(50, 50, 93, .1), 0 3px 6px rgba(0, 0, 0, .08);
}



.card{
    background-color: #d9d2da;
}


.card {
    border:0px;
    border-radius: 1.25rem;
}


.textovioleta{
    color: var(--cl-primario) !important;
}




p {
    font-size: 16px;
    font-weight: 400;
}

.whatsapp-float {
    position: fixed;
    bottom: 20px; /* distancia desde abajo */
    right: 20px;  /* distancia desde la derecha */
    border-radius: 50%; /* redondo */
    width: 70px;
    height: 70px;
    z-index: 1000;
    box-shadow: 0 4px 6px rgba(0,0,0,0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s;
}

.whatsapp-float:hover {
    transform: scale(1.1);
}

.social-circle {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,0.3);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    transition: all .2s ease;
}



/* Estilos validador */
.contenedor-respuesta-verificacion {
    text-align: center;
}



.bgportada{
    background-image: url("./../img/bg.webp");
    background-repeat: repeat;
    background-position: 48% 39%;
    background-size: cover;
}


/* Fin estilos validador */

.img-inicio {
    max-width: 100%;
    height: auto;
    display: block;
}



.textoc{
    font-size: 42px;
    font-weight: 500;
    color: var(--cl-primario);
}


/* ================= SM ≤575px ================= */
@media (max-width: 575px) {

}


/* ================= MD ≤768px ================= */
@media (max-width: 768px) {
.cta-parallax {
        background-attachment: scroll;
        min-height: 60vh;
    }


}



/* DEGRADADO (50%) */
.fondodesenfocado::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(186, 142, 47, 0.75) 30%,
        rgba(138, 40, 131, 0.75) 70%
    );
    z-index: 1;
}



/* CONTENIDO ARRIBA */
.fondodesenfocado > .container {
    position: relative;
    z-index: 2;
}



/* Quitar flechita por defecto */
.top-summary,
.bottom-summary {
    cursor: pointer;
    text-align: center;
}



.bottom-summary {
    margin-top: 1rem;
.btn {
        margin-bottom: 10px;
        
    }
    h2{
    font-size: 18px ;
    }
}

.contenido-extra {
    height: 0;
    overflow: hidden;
    transition: height 1s ease;
}

.testimonial-text {
    background: white;
    border-radius: 12px;
    position: relative;
}

/* Triángulo superior apuntando a la imagen */
.testimonial-text::before {
    content: "";
    position: absolute;
    top: -12px; /* distancia del globo al triángulo */
    left: 50px; /* ajustar según la posición de la imagen */
    width: 0;
    height: 0;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-bottom: 12px solid white; /* color del globo */
}

/* Pequeños dispositivos: hasta 767px */
@media (max-width: 767px) {
    .btn {
        margin-bottom: 10px;
    }
    .plul {
        margin-left: 1rem;
        background-color: red;
    }
    .tamaño-viewport {
        height: auto;
    }
    .modal-body .col-12 {
        white-space: normal;
        word-wrap: break-word;
    }

    .iconAprobado {
        font-size: 12px; 
        color: #0ae98a;
    }
    .iconCursando {
        font-size: 12px; 
        color: #FFA500;
    }
    .iconFinalPendiente {
        font-size: 12px; 
        color: #FFEE09;
    }
    .iconPendienteMateria {
        font-size: 12px; 
        color: #575757;
    }

    .textoMateria {
        font-size: 14px;
    }
    .verMateria {
        font-size: 28px;
    }
    .tituloCertificado,
    .tituloAño {
        font-size: 16px !important;
    }
    .titulovistacertificado {
        font-size: 16px;
        font-weight: bold;
        min-height: 50px;
        text-wrap: balance;
    }
    .ilustracionMateria {
        width: 36px;
    }
    h2 {
        font-size: 18px;
    }
}

/* Medianos dispositivos: 768px a 991px */
@media (min-width: 768px) and (max-width: 991px) {
    .container {
        max-width: 720px;
    }
    .modal-body .col-12 {
        white-space: normal;
        word-wrap: break-word;
    }
    h2 {
        font-size: 18px;
    }
}

/* Grandes dispositivos: 992px en adelante */
@media (min-width: 992px) {
    .container {
        max-width: 960px;
    }
    main {
        overflow: hidden;
    }
    .modal-body .col-12 {
        white-space: normal;
        word-wrap: break-word;
    }

    /* Estados y colores */
    .aprobada { background-color: var(--color-aprobado); }
    .fondo-verde { background-color: var(--color-primaro); }
    .desaprobado { background-color: var(--color-desaprobado); }
    .cursando { background-color: var(--color-cursando); }
    .fpendiente { background-color: var(--color-fpendiente); }   
    .convalidada { background-color: var(--color-aprobado); }
    .retirada { background-color: var(--color-retirada); }
    .pendiente { background-color: var(--color-pendiente); }
    .noabona { background-color: #8898aa; color: white; }

    /* Botones */
    .botontexto {
        border: #8898aa 1px solid;
        border-radius: 4px;
        padding: 0px 8px;
        background-color: transparent;
    }
    .botontexto:hover {
        background-color: var(--cl-primario);
        color: white;
        text-decoration: underline;
        border: var(--cl-primario) 1px solid;
    }

    /* XL dispositivos: 1280px en adelante */
    @media (min-width: 1280px) {
        .container {
            max-width: 1140px;
        }
        .col-xl-6 {
            max-width: 50%;
            flex: 0 0 50%;
        }
        .justify-content-xl-between {
            justify-content: space-between !important;
        }
        .w30p {
            width: 30%;
            display: flex;
            justify-content: center;
        }
        .w30p:nth-child(1) {
            justify-content: left;
        }
        .w30p:nth-child(3) {
            justify-content: end;
        }
        .text-secondary:hover {
            color: var(--cl-primario) !important;
        }
        .form-check-input:checked {
            background-color: var(--cl-primario);
        }
    }
}

.position-relative {
    position: relative;
    display: inline-block;
}

.underline-svg {
    bottom: 0;        /* posición al final del texto */
    left: 0;
    width: 100%;
    height: 0.3em;   /* altura del trazo */
}

.underline-svg path {
    stroke-dasharray: 600;   /* longitud aproximada del path */
    stroke-dashoffset: 600;
    animation: draw 1.5s forwards;
}

p, h1, h2, h3, h4, h5, h6 {
    color: #4B4F58;
}

@keyframes draw {
    to {
        stroke-dashoffset: 0;
    }
}
