/*GENERALES*/

@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Quicksand:wght@300..700&display=swap');

@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.13.1/font/bootstrap-icons.min.css");


* {
  font-family: "Quicksand", sans-serif;
}

a {
    text-decoration: none;
}

body {
    overflow-x: hidden;
}



/*NAVBAR*/

.fondo-navbar {
    background-color: rgba(0, 0, 0, 0.1) !important; 
    backdrop-filter: blur(5px); 
    border: none;
    padding-top: 1%;
    padding-bottom: 1%;
}

.barras .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2835, 34, 73, 1%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
    width: 3em; 
    height: 3em;
}

.barras { 
    border: none !important; 
    background-color: transparent !important; 
    padding-left: 2%; 
    box-shadow: none !important;
    outline: none !important;
}

.logo {
    width: 160px;
    max-width: 180px;
    padding-right: 2%;
}

.offcanvas {
    background-color: rgba(255, 255, 255, 0.7) !important; 
    backdrop-filter: blur(10px); 
    width: 40% !important;
    height: 100vh;
    top: 0;
    left: 0;
    transition: transform 0.5s ease-in-out;
}

.offcanvas-header {
    display: flex;          
    justify-content: flex-start; 
    align-items: center;      
    padding: 3% 3%;       
    border-bottom: none;      
}

.offcanvas-body {         
    flex-direction: column;    
    justify-content: flex-end !important; 
    align-items: flex-end !important;    
    padding-bottom: 10%;
    padding-right: 12%;
}

.custom-nav-link.active {
    text-align: right !important; 
    width: 100% !important;
}

.custom-nav-link {
    color: #E41D20 !important; 
    font-size: 3.5rem; 
    padding: 1rem 0; 
    transition: color 0.3s ease; 
}

.custom-nav-link:hover,
.custom-nav-link.active {
    color: #232249 !important; 
}

.offcanvas-header .btn-close {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23E41D20'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") !important;
    font-size: 2.3rem;
    padding-left: 7%;
    margin: 0;
}

/*DROPDOWN*/

.offcanvas .dropdown-toggle::after {
    display: none !important;
}

.custom-submenu {
    list-style: none !important;
    border: none !important;
    box-shadow: none !important;
    text-align: right;
}

.submenu li{ 
    list-style: none !important;
    text-align: right !important;
    background-color: rgba(255, 255, 255, 0.7) !important; 
    backdrop-filter: blur(10px) !important;
}

.submenu a {
    color: #E41D20 !important;
    font-size: 2.3rem;
    padding: 10px 0 !important;
    text-decoration: none;
    text-align: right !important;
    display: block !important;
}

#offcanvasNavbar .custom-submenu .submenu a:hover,
#offcanvasNavbar .custom-submenu {
    background-color: transparent !important; 
    color: #232249 !important;          
}



/*CONTACTO*/
.seccion-contacto {
    position: relative;
    width: 100%;
    background-image: url(../imagenes/contacto/contacto.jpg);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    height: 120vh;
    padding-top: 8%;
}

.titulo-contacto {
    color: #FFF;
    font-size: 110px;
    font-weight: bold;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
    padding-top: 71%;
    padding-left: 12%;
}


/*FORMULARIO*/

.formulario {
    padding-right: 5%;
    padding-left: 3%;
}

.formulario-card {
    background-color: rgba(255, 255, 255, 0.589); 
    padding: 4%;
    backdrop-filter: blur(5px); 
}

.form-control {
    background-color: rgba(255, 255, 255, 0.1); 
    border: 1px solid #232249; 
    color: #232249; 
    border-radius: 5px;
    padding: 15px 10px;
}

.formulario label,
.formulario span,
.formulario .form-check-label,
.formulario .alert,
.form-control,
.form-control::placeholder {
    font-size: 23px !important;
    font-weight: 600;
}

.form-control::placeholder { 
    color: #232249; 
}

.form-control:focus {
    background-color: rgba(255, 255, 255, 0.2); 
    border-color: #232249; 
    box-shadow: 0 0 0 0.25rem rgba(255, 255, 255, 0.25); 
    color: #232249;
    font-size: 25px
}

/* BOTÓN */
.btn-enviar {
    background-color: #232249;
    border-color: #232249;
    color: white;
    padding: 8px 20px; 
    border-radius: 5px;
    font-size: 25px; 
    font-weight: bold;
    transition: background-color 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
}

.btn-enviar:hover {
    background-color: #8d8dc1;
    border-color: #8d8dc1;
    color: white;
}

.boton-derecha {
    display: flex; 
    justify-content: flex-end; 
    margin-top: 20px; 
}

.btn-enviar.submitted {
    background-color: #F4E729;
    border-color: #F4E729;
    color: #232249;
    transform: scale(1.05);
}

.btn-enviar.submitted:hover {
    background-color: #F4E729;
    border-color: #F4E729;
}

/* Estilos adicionales para los SPAN de validación individual */
.form-group span {
    display: block; 
    font-size: 0.8em;
    margin-top: 5px;
}

.form-group span.error {
    color: #dc3545; /* Color rojo para errores */
}

.form-group span.success {
    color: #28a745; /* Color verde para éxito */
}

/* Estilos para el campo de Captcha */
#txtCaptchaSpan {
    font-size: 1.5em; 
    color: #232249;
    background-color: rgba(255, 255, 255, 0.2);
    padding: 10px 10px;
    border-radius: 5px;
    border: 1px solid #232249;
    min-width: 80px; 
    text-align: center;
    font-weight: 600;
}

/* Estilos para el checkbox de términos y condiciones */
.form-check-label {
    color: #232249;
    font-size: 20px; 
}

.form-check-label a {
    color: #232249; 
    text-decoration: underline;
}

/* Ocultar las alertas generales por defecto*/
.alert.empty-form,
.alert.subject-alert, 
.alert.email-invalid,
.alert.phone-invalid,
.alert.terms-alert,
.alert.security-alert {
    display: none;
    margin-top: 15px; 
    padding: 10px 15px; 
    font-size: 1em; 
    background-color: rgba(220, 53, 69, 0.9); 
    color: white; 
    border-radius: 5px;
    border: none;
}

/* Estilos para los modales de éxito y error */
.form-success-modal .modal-content {
    background-color: #d4edda; 
    color: #155724; 
    border-color: #c3e6cb;
}

.form-danger-modal .modal-content {
    background-color: #f8d7da; 
    color: #721c24; 
    border-color: #f5c6cb;
}

.form-success-modal .modal-header,
.form-danger-modal .modal-header {
    border-bottom: none;
}

.form-success-modal .modal-title,
.form-danger-modal .modal-title {
    color: inherit; 
}



/*FOOTER*/

footer {
    width: 100%; 
    padding-top: 0%;
}

.footer-franja-amarilla {
    width: 100%;
    height: 20px; 
    background-color: #F4E729; 
}

.footer-franja-roja {
    width: 100%;
    height: 20px; 
    background-color: #E41D20;
}

.footer-contenido {
    width: 100%;
    background-color: #232249; 
    padding: 2% 0;
    color: white; 
}

.footer-copyright {
    margin-bottom: 0; 
    font-size: 23px; 
    padding-left: 5%;
    text-align: left;
}

.aviso-privacidad {
    margin-bottom: 0; 
    font-size: 18px; 
    padding-left: 5%;
    padding-top: 1%;
    text-align: left;
}

.aviso-privacidad a {
    color: #F4E729;
}

.footer-redes {
    padding-right: 2%;
    text-align: end;
}

.footer-icono {
    color: white;
    font-size: 55px;
    transition: color 0.3s ease;
    text-decoration: none;
    padding-right: 13%;
}

.footer-redes .footer-icono:hover {
    color: #F4E729; 
}





/*MEDIA QUERIES*/

@media (max-width: 1899px) {  
    .titulo-contacto {
        font-size: 90px;
        padding-top: 82%;
    }
   
}

@media (max-width: 1615px) {  
    .titulo-contacto {
        font-size: 85px;
        padding-top: 97%;
        padding-left: 9%;
    }
   
}

@media (max-width: 1500px) {  /*NAVBAR*/
    .offcanvas{
        width: 50% !important; 
    }
   
}

@media (max-width: 1399px) { 
    .seccion-contacto {
        height: 130vh;
    }
    
    .formulario {
        padding-right: 8%;
        padding-left: 6%;
        padding-top: 2%;
    }

    .titulo-contacto {
        font-size: 90px;
        padding-top: 4%;
        padding-left: 0%;
        padding-bottom: 1%;
    }

    .form-control {
        padding: 1.2% 1%;
        font-size: 19px;
    }
}

@media (max-width: 1350px) { /*NAVBAR*/
    .offcanvas{
        width: 60% !important; 
    }
}

@media (max-width: 1270px) { /*NAVBAR*/
    .offcanvas{
        width: 60% !important; 
    }
   
}

@media (max-width: 1199px) { 
    .seccion-contacto {
        height: 120vh;
    }

    .titulo-contacto {
        font-size: 100px;
        padding-top: 4%;
        padding-left: 0%;
        padding-bottom: 1%;
    }

    .formulario {
        padding-right: 10%;
        padding-left: 10%;
        padding-top: 1%;
    }

    .form-control {
        padding: 1% 1%;
        font-size: 17px;
    }

    #txtCaptchaSpan {
        padding: 10px 15px;
    }
   
}

@media (max-width: 991px) {  /*FOOTER*/ /*NAVBAR*/
    .barras .navbar-toggler-icon {
        width: 2em; 
        height: 2em;
    }

    .logo {
        width: 130px;
    }

    .offcanvas-header .btn-close {
        font-size: 2rem;
        padding-left: 7%;
        margin: 0;
    }

    .footer-copyright {
        padding-left: 0%;
        text-align: center;
    }

    .aviso-privacidad {
        padding-left: 0%;
        text-align: center;
    }

    .footer-redes {
        padding-right: 0%; 
        text-align: center;
        padding-top: 2%;
    }

    .footer-icono {
        padding-right: 3%;
        font-size: 40px;
    }     

    .formulario {
        padding-right: 10%;
        padding-left: 10%;
    }

    .titulo-contacto {
        font-size: 90px;
        padding-top: 6%;
        padding-bottom: 2%;
    }

    .form-control {
        padding: 1.5% 1%;
        font-size: 17px;
    }
}

@media (max-width: 860px) { /*NAVBAR*/
    .offcanvas{
        width: 100% !important;
    }
   
    .offcanvas-body {          
        justify-content: center !important; 
        align-items: center !important;    
    }

    .custom-nav-link {
        font-size: 2.6rem;
        padding: 0.5rem 0;
    }

    .custom-nav-link.active {
        text-align: center !important; 
    }

    .custom-submenu {
        text-align: center;
    }

    .submenu li{ 
        text-align: center !important;
    }

    .submenu a {
        text-align: center !important;
        font-size: 1.5rem;
        padding: 3.5% 0 !important;
    }

    .titulo-contacto {
        font-size: 90px;
        padding-top: 6%;
    }

    .form-control {
        padding: 2% 1%;
        font-size: 17px;
    }
}

@media (max-width: 699px) { /*FOOTER*/ /*NAVBAR*/
    .barras .navbar-toggler-icon {
        width: 1.5em; 
        height: 1.5em;
    }

    .logo {
        width: 90px;
    }

    .offcanvas-header .btn-close {
        font-size: 1.5rem;
        padding-left: 7%;
        margin: 0;
    }

    .seccion-contacto {
        height: 110vh;
    }

    .titulo-contacto {
        font-size: 75px;
        padding-top: 6%;
        padding-bottom: 2%;
    }

    .form-control {
        padding: 2% 1%;
    }

    .formulario label,
    .formulario span,
    .formulario .form-check-label,
    .formulario .alert,
    .form-control,
    .form-control::placeholder {
        font-size: 20px !important;
    }

    .footer-copyright {
        font-size: 17px;
    }

    .aviso-privacidad {
        font-size: 13px;
    }

    .footer-redes {
        padding-right: 0%; 
        text-align: center;
        padding-top: 4%;
    }

    .footer-icono {
        font-size: 30px;
        padding-right: 3%;
    } 
}

@media (max-width: 599px) { 
    .titulo-contacto {
        font-size: 65px;
        padding-top: 8%;
        padding-bottom: 3%;
    }

    .form-control {
        padding: 2% 1%;
    }

    .formulario label,
    .formulario span,
    .formulario .form-check-label,
    .formulario .alert,
    .form-control,
    .form-control::placeholder {
        font-size: 17px !important;
    }
}

@media (max-width: 499px) { 
    .seccion-contacto {
        height: 110vh;
    }

    .titulo-contacto {
        font-size: 55px;
        padding-top: 20%;
        padding-bottom: 10%;
    }

    .form-control {
        padding: 2% 1%;
    }

    .formulario label,
    .formulario span,
    .formulario .form-check-label,
    .formulario .alert,
    .form-control,
    .form-control::placeholder {
        font-size: 14px !important;
    }
}













