/* =========================
   CONFIGURACIÓN GENERAL
========================= */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    scroll-behavior: smooth;
}

body {
    font-family: 'Segoe UI', sans-serif;
    background: #f4f6f8;
    color: #333;
    line-height: 1.7;
}

/* =========================
   PORTADA
========================= */
.portada {
    position: relative;
    height: 100vh;
    overflow: hidden;
}

.portada div:first-child img:first-child {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(35%);
}

.portada div:first-child img:nth-child(2) {
    position: absolute;
    top: 42%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 850px;
    max-width: 85%;
    height: auto;
    z-index: 2;
}

.portada h2 {
    position: absolute;
    top: 75%;
    left: 50%;
    transform: translateX(-50%);
    color: white;
    font-size: 1.8rem;
    text-align: center;
    z-index: 2;
    text-shadow: 2px 2px 10px black;
    width: 90%;
}

/* =========================
   MENÚ SUPERIOR (Flexbox)
========================= */
.menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background: #0d3b66;
    z-index: 1000;
    display: flex;               /* logo + enlaces + botón */
    align-items: center;         /* centra verticalmente */
    justify-content: space-between; /* distribuye izq-centro-der */
    padding: 10px 30px;
}

.logo-menu {
    height: 50px;
    width: auto;
    flex-shrink: 0; /* evita que se deforme */
}

.menu ul {
    list-style: none;
    display: flex;
    gap: 20px;
    margin: 0;
    padding: 0;
}

.menu a {
    display: block;
    padding: 12px 20px;
    text-decoration: none;
    text-align: center;
    color: white;
    font-weight: bold;
    border-radius: 20px;
    transition: .3s;
}

/* enlaces normales */
.menu ul a {
    background: #0d3b66;
    box-shadow: 0 5px 15px rgba(0,0,0,.25);
}

.menu ul a:hover {
    background: #ff7a00;
}

/* Botón de contacto a la derecha */
.boton-contacto {
    background: #ff7a00;   /* amarillo/naranja por defecto */
    color: white;
    text-decoration: none;
    padding: 10px 20px;
    border-radius: 30px;
    transition: .3s;
    font-weight: bold;
}

.boton-contacto:hover {
    background: #ffa733;   /* tono más claro al pasar el cursor */
}

/* =========================
   SECCIONES
========================= */
section {
    padding: 100px 10%;
}

section h2 {
    text-align: center;
    color: #0d3b66;
    margin-bottom: 40px;
    font-size: 2.5rem;
}

/* =========================
   NOSOTROS
========================= */
.nosotros {
    background: white;
}

.nosotros-flex {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 70px;
}

.nosotros-texto {
    flex: 2;
}

.nosotros-texto h3 {
    color: #0d3b66;
    margin-top: 20px;
    margin-bottom: 10px;
    font-size: 1.8rem;
}

.nosotros-texto p {
    margin-bottom: 15px;
}

.nosotros-imagen {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
}

.nosotros-imagen img {
    width: 450px;
    max-width: 100%;
    height: auto;
}

/* =========================
   BOTÓN GENERAL
========================= */
.boton {
    display: inline-block;
    margin-top: 20px;
    background: #ff7a00;
    color: white;
    text-decoration: none;
    padding: 15px 35px;
    border-radius: 40px;
    transition: .3s;
}

.boton:hover {
    background: #0d3b66;
}

/* =========================
   SERVICIOS
========================= */
.servicios {
    background: #eef2f5;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 35px;
}

.servicios h2 {
    grid-column: 1/-1;
}

.servicios article {
    background: white;
    border-radius: 20px;
    overflow: hidden;
    position: relative;
    box-shadow: 0 10px 25px rgba(0,0,0,.12);
    transition: .3s;
}

.servicios article:hover {
    transform: translateY(-10px);
}

.servicios article img {
    width: 100%;
    height: 260px;
    object-fit: cover;
}

.servicios article h3 {
    padding: 20px;
    color: #0d3b66;
}

.servicios article p,
.servicios article ul {
    position: absolute;
    left: 0;
    bottom: -100%;
    width: 100%;
    height: 100%;
    background: rgba(13,59,102,.95);
    color: white;
    padding: 25px;
    transition: .5s;
}

.servicios article:hover p,
.servicios article:hover ul {
    bottom: 0;
}

.servicios article::after {
    content: "Ver información";
    position: absolute;
    left: 50%;
    bottom: 15px;
    transform: translateX(-50%);
    background: #ff7a00;
    color: white;
    padding: 10px 20px;
    border-radius: 30px;
}

.servicios article:hover::after {
    opacity: 0;
}

/* =========================
   ESCOGERNOS
========================= */
.escogenos {
    background-color: #0d3b66;
    color: white;
}

.escogenos h2 {
    color: white;
}

.escogenos li {
    background: rgba(255,255,255,.08);
    margin: 15px 0;
    padding: 20px;
    border-left: 5px solid #ff7a00;
    border-radius: 10px;
}

/* =========================
   INFRAESTRUCTURA
========================= */
.infraestructura {
    background-color: white;
    text-align: center;
}

.infraestructura ul {
    max-width: 900px;
    margin: auto;
    text-align: left;
}

.infraestructura img {
    margin-top: 30px;
    width: 100%;
    max-width: 900px;
    border-radius: 20px;
    box-shadow: 0 10px 25px rgba(0,0,0,.15);
}

/* =========================
   CONTACTO
========================= */
.contacto {
    background: #a8a7a7;
    color: white;
    text-align: center;
}

.contacto p {
    font-size: 1.4rem;
    margin-bottom: 30px;
}

.contacto p {
    color: black;
}

.contacto a {
    color: #11508b;
    text-decoration: none;
}

.contacto a:hover {
    text-decoration: underline;
}

/* =========================
   RESPONSIVE
========================= */
@media(max-width:900px) {
    .nosotros-flex {
        flex-direction: column;
        text-align: center;
    }

    .nosotros-imagen img {
        width: 300px;
    }

    .portada div:first-child img:nth-child(2) {
        width: 550px;
    }

    .portada h2 {
        font-size: 1.2rem;
    }
}

@media(max-width:768px) {
    .portada div:first-child img:nth-child(2) {
        width: 350px;
    }

    .menu ul a {
        font-size: 13px;
        padding: 10px 15px;
    }

    .portada h2 {
        font-size: 1rem;
    }

    .logo-menu {
        height: 40px; /* logo más pequeño en móviles */
    }
}

/* --- ESTILOS GENERALES DEL FOOTER --- */
.footer-maestranza {
    background-color: #1a1a1a; /* Fondo gris oscuro/negro */
    color: #ffffff;
    font-family: Arial, sans-serif;
    padding: 60px 0 20px 0;
}

.footer-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    justify-content: space-between;
    gap: 40px;
}

/* --- COLUMNA IZQUIERDA --- */
.footer-col-izq {
    flex: 1;
}

.footer-seccion {
    margin-bottom: 30px;
}

.footer-seccion h3 {
    font-size: 1.2rem;
    font-weight: bold;
    margin-bottom: 15px;
    border-bottom: 2px solid #ffffff;
    display: inline-block;
    padding-bottom: 5px;
}

.footer-seccion p, .link-subrayado {
    color: #cccccc;
    text-decoration: underline;
    font-size: 0.95rem;
    line-height: 1.5;
}

/* Redes Sociales (Iconos cuadrados) */
.redes-sociales {
    display: flex;
    gap: 15px;
    margin-top: 20px;
}

.redes-sociales a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 5px;
    border: 1px solid #444;
    color: #fff;
    font-size: 1.2rem;
    text-decoration: none;
    transition: background 0.3s;
}

.redes-sociales .icon-fb { background-color: #1877f2; }
.redes-sociales .icon-ig { background-color: #c13584; }
.redes-sociales .icon-wsp { background-color: #25d366; }

/* --- COLUMNA DERECHA (Contacto con Iconos) --- */
.footer-col-der {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.info-item {
    display: flex;
    align-items: flex-start;
    gap: 15px;
}

.info-icon {
    font-size: 1.8rem;
    color: #ffffff;
    margin-top: 3px;
}

.info-texto h4 {
    font-size: 1.1rem;
    font-weight: bold;
    margin: 0 0 5px 0;
}

.info-texto p, .info-texto a {
    color: #cccccc;
    text-decoration: none;
    margin: 0 0 5px 0;
    font-size: 0.95rem;
    display: block;
}

.info-texto a:hover {
    text-decoration: underline;
}

/* --- BARRA INFERIOR DE CRÉDITOS --- */
.footer-bottom {
    max-width: 1200px;
    margin: 40px auto 0 auto;
    padding: 20px 20px 0 20px;
    border-top: 1px solid #333;
    display: flex;
    justify-content: space-between;
    font-size: 0.85rem;
    color: #888888;
}

.footer-bottom a {
    color: #ffffff;
    text-decoration: none;
}

.footer-bottom a:hover {
    text-decoration: underline;
}

/* --- RESPONSIVO PARA MÓVILES --- */
@media (max-width: 768px) {
    .footer-container {
        flex-direction: column;
    }
    .footer-bottom {
        flex-direction: column;
        gap: 10px;
        text-align: center;
    }
}
.redes-sociales .icon-lnk { 
    background-color: #0077b5; 
}
/* --- BOTÓN FLOTANTE DE WHATSAPP --- */
.wsp-flotante {
    position: fixed;
    width: 60px;
    height: 60px;
    bottom: 30px;       /* Distancia desde abajo */
    right: 30px;        /* Distancia desde la derecha */
    background-color: #25d366; /* Verde oficial de WhatsApp */
    color: #fff;
    border-radius: 50px; /* Lo vuelve una bolita perfecta */
    text-align: center;
    font-size: 35px;    /* Tamaño del icono */
    box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.3); /* Sombra para dar profundidad */
    z-index: 1000;      /* Se asegura de estar por encima de todo el contenido */
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: all 0.3s ease; /* Transición suave para el efecto hover */
}

/* Efecto al pasar el mouse por encima (hover) */
.wsp-flotante:hover {
    background-color: #20ba5a; /* Un verde un poco más oscuro */
    transform: scale(1.1);     /* Se agranda un poquito */
}

/* Adaptación para pantallas de celulares */
@media (max-width: 768px) {
    .wsp-flotante {
        width: 50px;
        height: 50px;
        bottom: 20px;
        right: 20px;
        font-size: 30px;
    }
}