/* ============================================================
   HERO
   ============================================================ */
.hero {
    position: relative; /* permite posicionar elementos encima */
    height: 60vh; /* altura del hero */
    display: flex;
    align-items: center;
    justify-content: flex-start; /* contenido a la izquierda */
    text-align: left;
    color: white;
    /* imagen de fondo centrada y cubriendo todo */
    background: url('../imagenes/aplicacionesWeb.png') no-repeat center center/cover;
}

/* capa pscura sobre la imagen */
.hero-overlay {
    position: absolute;
    inset: 0; /* cubre todo el fondo */
    background-color: rgba(0, 0, 0, 0.5); /*  oscurece la imagen */
    z-index: 1; /* colocado encima de la imagen */
}

/* contenido del hero */
.hero-content {
    position: relative;
    z-index: 2; /* colocado encima del overlay */
    max-width: 1000px; /* ancho máximo del contenido para que baje de línea */
    padding: 0 80px; /* espacio a los lados */
}

/* título del hero */
.hero-content h1 {
    font-size: 3.5rem; /* tamaño del título más grande */
    margin-bottom: 1rem;
    font-weight: 700; /* peso de la fuente para que se vea en negrita */
}

/* subtitulo del hero */
.hero-content p {
    font-size: 1.5rem;
    margin-bottom: 2rem;
    font-weight: 400;
}

/* ============================================================
   SECCIÓN CONTACTO
   ============================================================ */

/* contenedor de la sección de contacto general */
.contacto-seccion {
    padding: 100px 20px; /* espacio alrededor */
    background-color: #ffffff;
    font-family: 'Roboto', sans-serif;
}

/* contenedor que agrupa columnas */
.container-contacto {
    max-width: 1200px;
    margin: 0 auto; /* centrar el contenedor */
    display: flex;
    gap: 60px; /* espacio entre las columnas */
    align-items: flex-start;
}

/* --- COLUMNA IZQUIERDA, INFORMACIÓN DE LA EMPRESA --- */
.columna-izquierda {
    flex: 1; /* ambas columnas ocupan el mismo espacio */
}

/* titulo de la información de la empresaa */
.info-header h2 {
    color: #0c6135;
    font-weight: 900;
    font-size: 28px;
    margin-bottom: 20px;
}

/* datos de la empresa */
.empresa-datos p {
    margin: 5px 0;
    color: #555;
    font-size: 15px;
}

/* nombre de la empresa más destacado */
.nombre-empresa {
    font-weight: 700;
    color: #000 !important;
}

/* --- REDES SOCIALES --- */
.redes-sociales {
    margin: 35px 0;
}

/* elemento de cada red social */
.red-item {
    display: flex; /* el icono y el texto lineados */
    align-items: center;
    gap: 15px; /* espacio entre el icono y el texto */
    margin-bottom: 12px;
    text-decoration: none;
    color: inherit;
    transition: opacity 0.3s ease;
}

/* efecto al pasar el cursor por encima */
.red-item:hover {
    opacity: 0.8;
    color: #0c6135;
}

/* texto de cada red social */
.red-item span {
    font-size: 15px;
    word-break: break-all; /* parte el texto que no cabe */
}

/* caja para los iconos */
.icon-box {
    width: 38px;
    height: 38px;
    background-color: #e8f5ed;
    border-radius: 8px;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #0c6135;
}

/* --- AVISO LEGAL --- */

/* línea con el texto en el centro */
.separador {
    display: flex;
    align-items: center;
    margin: 40px 0 20px;
}

/* linea lateral */
.linea {
    flex: 1;
    height: 1px;
    background-color: #ddd;
}

/* texto del aviso */
.txt-aviso {
    padding: 0 15px;
    text-transform: uppercase;
    font-weight: 700;
    font-size: 14px;
    color: #888;
}

/* caja del aviso legal */
.caja-legal {
    background-color: #f1f7f3;
    padding: 25px;
    border-radius: 20px;
    border-left: 4px solid #0c6135; /* linea lateral */
}

/* contenido del aviso legal */
.caja-legal p {
    font-size: 13px;
    line-height: 1.6;
    color: #444;
    margin: 0;
}

/* --- COLUMNA DERECHA (FORMULARIO) --- */
.columna-derecha {
    flex: 1;
}

/* tarjeta del formulario */
.formulario-card {
    background: #ffffff;
    padding: 40px;
    padding-bottom: 50px;
    border-radius: 30px;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.06); /* sombra suave */
    border: 1px solid #f0f0f0;
    box-sizing: border-box; /* evita que el padding afecte el ancho total */
}

/* nota informativa del formulario */
.form-nota {
    font-size: 13px;
    color: #999;
    text-align: center;
    margin-bottom: 30px;
}

/* texto resaltado */
.form-nota span {
    color: #0c6135;
}

/* grupo de input y label */
.input-group {
    margin-bottom: 20px;
    width: 100%;
}

/* etiqueta de cada input */
.input-group label {
    display: block;
    font-weight: 700;
    font-size: 14px;
    margin-bottom: 8px;
    color: #333;
    text-align: left;
}

/* --- CAMPOS DEL FORMULARIO --- */
.input-group input,
.input-group select,
.input-group textarea {
    width: 100%; /* ocupa todo el ancho */
    padding: 14px 15px; /* espacio interno */
    border: 1.5px solid #333; /* borde oscuro y definido */
    border-radius: 12px;
    background-color: #ffffff;
    font-size: 14px;
    box-sizing: border-box; /* evita que el padding afecte el ancho total */
    transition: 0.3s;
    display: block;
}

/* efecto cuando el usuario escribe */
.input-group input:focus {
    outline: none;
    border-color: #0c6135; /* borde verde */
    box-shadow: 0 0 0 4px rgba(12, 97, 53, 0.05);
}

/* --- CASILLA AVISO LEGAL --- */
.input-checkbox {
    margin: 15px 0;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.9rem;
}

.input-checkbox input {
    width: 18px;
    height: 18px;
    cursor: pointer;
    accent-color: #0c6135; /* color del checkbox activado */
}

.input-checkbox label {
    cursor: pointer;
}

/* --- BOTÓN DE ENVÍO --- */
.btn-enviar {
    width: 100%;
    box-sizing: border-box; /* CLAVE: Alineación perfecta con los inputs */
    background-color: #0c6135;
    color: white;
    padding: 18px;
    border: none;
    border-radius: 15px;
    font-weight: 700;
    font-size: 16px;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color 0.3s ease;
    margin-top: 10px;
    display: block;
}

/* efecto al pasar el cursor por encima */
.btn-enviar:hover {
    background-color: #084a29;
}

/* ============================================================
   RESPONSIVO
   ============================================================ */
@media (max-width: 850px) {
    .container-contacto {
        flex-direction: column; /* las columnas se apilan verticalmente */
        gap: 40px;
    }

    .columna-derecha,
    .columna-izquierda {
        width: 100%; /* ocupa todo el ancho */
    }

    .hero {
        height: 50vh;
        justify-content: center;
        text-align: center;
    }

    .hero-content {
        padding: 0 20px;
    }

    .hero-content h1 {
        font-size: 2.2rem;
    }

    .hero-content p {
        font-size: 1.2rem;
    }
}

#toast-container {
    position: fixed;
    bottom: 20px;
    right: 20px;
    background-color: #ffffff;
    border-left: 5px solid #28a745; /* Verde éxito */
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    padding: 16px 24px;
    border-radius: 8px;
    display: none; /* Oculto por defecto */
    z-index: 1000;
    animation: slideIn 0.5s ease-out;
}

@keyframes slideIn {
    from { transform: translateX(100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

.toast-content {
    color: #333;
    font-family: 'Segoe UI', sans-serif;
}