﻿/*  Banner Principal */
.hero-contactanos-section {
    padding: 40px 0 60px 0;
    background-color: var(--bg-light-gray);
}

.hero-donaciones-section .px-custom {
    padding-left: 12px;
    padding-right: 12px;
}

.hero-contactanos-card {
    position: relative;
    width: 100%;
    height: 500px; 
    border-radius: 16px;
    overflow: hidden; 
}

/* Imagen de fondo absoluta */
.hero-contactanos-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 185%;
    object-fit: cover; 
    z-index: 1;
}

/* Overlay para contraste */
.hero-contactanos-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.25); /* 25% de oscuridad */
    background-image: linear-gradient(to right, rgb(121 139 255 / 21%), rgb(65 91 255 / 12%), rgb(13 45 255 / 11%));
    z-index: 2;
}

/* Contenedor del texto */
.hero-contactanos-content {
    position: absolute; 
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 3;
    padding: 20px;
}

.hero-contactanos-title {
    font-family: 'TiemposHeadline', Arial, Helvetica, sans-serif;
    font-weight: 700;
    font-size: 80px;
    color: #ffffff;
    line-height: 1.1;
    margin: 0;
    text-shadow: 0px 4px 15px rgba(0, 0, 0, 0.3); /
}

/* Responsive (Móviles y Tablets) */
@media (max-width: 991px) {
    .hero-contactanos-section {
        padding: 0px 0 20px 0;
    }
    .hero-contactanos-img {
        height: 102%;
    }
    
    .hero-contactanos-section .px-custom {
        padding-left: 12px;
        padding-right: 12px;
    }
    
    .hero-contactanos-card {
        height: 350px; 
    }
    
    .hero-contactanos-title {
        font-size: 42px; 
    }
}

/*  Datos de Contacto y Formulario */
.datos-contacto-section {
    padding: 20px 0 80px 0;
    background-color: var(--bg-light-gray);
}

.datos-contacto-section .px-custom {
    padding-left: calc(12px + 30px + var(--site-px));
    padding-right: calc(12px + 30px + var(--site-px));
}

.contacto-main-title {
    font-family: 'TiemposHeadline', Arial, Helvetica, sans-serif;
    font-weight: 700;
    font-size: 40px;
    color: #070E46;
    margin-bottom: 15px;
}

.contacto-address {
    font-family: 'BentonSansBBVA-Book', Arial, Helvetica, sans-serif;
    font-size: 20px;
    color: #070E46;
    margin-bottom: 0;
}

.contacto-address strong {
    font-family: 'BentonSansBBVA-Medium', Arial, Helvetica, sans-serif;
    color: #070E46;
}

.form-title {
    font-family: 'BentonSansBBVA-Medium', Arial, Helvetica, sans-serif;
    font-size: 20px;
    color: #070E46;
    margin-bottom: 20px;
    font-weight: 500;
}

/* Estilos de los inputs Flotantes */
.bbva-floating .form-control {
    border: 2px solid #070E46;
    border-radius: 6px;
    padding-right: 45px; 
    font-family: 'BentonSansBBVA-Book', Arial, Helvetica, sans-serif;
    color: #070E46;
    transition: border-color 0.3s ease;
}

.bbva-floating label {
    font-family: 'BentonSansBBVA-Book', Arial, Helvetica, sans-serif;
    color: #46536D;
    font-size: 15.01px;
}

.bbva-floating .form-control:focus,
.bbva-floating .form-control:not(:placeholder-shown) {
    border-color: #070E46; 
    box-shadow: none; 
}

/* El Textarea */
.textarea-contacto {
    height: 120px !important;
    resize: none; /* Evita que el usuario deforme el formulario */
}

/* Botón 'X' para limpiar */
.btn-clear {
    position: absolute;
    top: 50%;
    right: 15px;
    transform: translateY(-50%);
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    display: none; 
    z-index: 10;
}

.btn-clear.show {
    display: block; 
}

.btn-clear img {
    width: 20px;
    height: 20px;
}

/* Ajuste específico de la 'X' para el textarea (arriba a la derecha) */
.btn-clear-textarea {
    top: 25px;
    transform: none;
}

/* Contador de caracteres */
.char-counter {
    font-family: 'BentonSansBBVA-Book', Arial, Helvetica, sans-serif;
    font-size: 12px;
    color: #46536D
}

/* Botón Enviar */
.btn-bbva-submit {
    background-color: #001391;
    color: #ffffff;
    font-family: 'BentonSansBBVA-Medium', Arial, Helvetica, sans-serif;
    font-size: 16px;
    border: none;
    border-radius: 6px;
    padding: 12px 35px;
    transition: background-color 0.3s ease;
}

.btn-bbva-submit:hover {
    background-color: #070E46;
}

/*  ESTADOS DE ERROR DEL FORMULARIO */

/* Borde rojo para el input */
.bbva-floating.has-error .form-control {
    border-color: #C30A0A !important; /* Rojo BBVA */
}

/* Label rojo cuando hay error */
.bbva-floating.has-error label {
    color: #C30A0A !important;
}

/* Contenedor del mensaje de error */
.error-msg {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    font-family: 'BentonSansBBVA-Book', Arial, Helvetica, sans-serif;
    font-size: 15.01px;
    color: #070E46; 
    margin-left: 14px;

}

.error-msg img {
    margin-top: 0px; 
}

/*  BANNER DE ÉXITO (Toast Flotante) */
.toast-success-banner {
    position: fixed;
    top: 25px; 
    right: 12px; 
    background-color: #EBFFF0; 
    padding: 22px 80px;;
    border-radius: 16px;
    z-index: 9999;
    transition: top 0.3s ease, padding 0.3s ease;
    animation: slideInRightToast 0.4s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}
/* Estado del banner cuando el usuario hace scroll */
.toast-success-banner.toast-scrolled {
    top: 10px;
    padding: 9px 80px;
}

.toast-success-content {
    display: flex;
    align-items: center;
    gap: 12px;
}

.toast-success-content p {
    font-family: 'BentonSansBBVA-Book', Arial, Helvetica, sans-serif;
    font-size: 15.01px;
    color: #070E46; 
    margin: 0;
}

@keyframes slideInRightToast {
    from { opacity: 0; transform: translateX(100px); }
    to { opacity: 1; transform: translateX(0); }
}

/* En móviles centramos la alerta flotante para que se vea mejor */
@media (max-width: 991px) {
    .toast-success-banner {
        top: 10px;
        right: 50%;
        transform: translateX(50%);
        width: 95%;
        max-width: 400px;
        padding: 19px 30px;
        animation: slideInDownToast 0.4s forwards;
    }
    .form-title{
        width: 76%;
    }
    .btn-bbva-submit{
        width: 100%;
        position: relative;
        top: -54px;
    }

    .toast-success-banner.toast-scrolled{
        top: 10px;
        padding: 21px 28px;
    }
    
    @keyframes slideInDownToast {
        from { opacity: 0; transform: translate(50%, -20px); }
        to { opacity: 1; transform: translate(50%, 0); }
    }
}

@media (min-width: 768px) and (max-width: 991px) {
    .toast-success-banner {
        right: 32%;
        padding: 23px 24px;
        width: 100%;
        max-width: 470px;
    
    }
    .toast-success-banner.toast-scrolled{
        top: 10px;
        padding: 23px 24px;
    }
    .btn-bbva-submit {
        width: 20%;
    }
}

/* Mapa más alto en móvil/tablet */
@media (max-width: 991px) {
    .map-wrapper {
        min-height: 500px !important;
    }
}



/* Responsive */
@media (max-width: 991px) {
    .datos-contacto-section {
        padding: 10px 0 0px 0;
    }
    .datos-contacto-section .px-custom {
        padding-left: 12px;
        padding-right: 12px;
    }
    .contacto-main-title {
        font-size: 34px;
    }
    .contacto-address {
        font-size: 15px;
    }
}