/*  VARIABLES DE COLOR Y TIPOGRAFÍA */
:root {
  --color-principal: #006980;
  --color-blanco: #ffffff;
  --color-hover: #00d5ff;
  --color-texto: #000000d8;
  --fondo-seccion: #afafaf;
  --borde-radio: 10px;
  --fuente-subtitulos: "Barlow", Helvetica, Arial, sans-serif;
  --fuente-general: 'Montserrat', sans-serif;
}

/*  RESET BÁSICO */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* html {
  scroll-behavior: smooth;
} */

body {
  line-height: 1.6;
  margin: 0;
  padding-top: 80px; /* Ajusta según la altura real del nav */
  /* background-color: var(--color-blanco); */
}

/* =========================================================
   NAVBAR
========================================================= */

nav { /* Contenedor general del nav */
  background-color: var(--color-principal);
  padding: 20px 5%;
  border-radius: 1px;
  position: fixed;   /*  Lo fija en la pantalla */
  top: 0;            /* Lo pega arriba */
  left: 0;           /* Lo pega a la izquierda */
  width: 100%;       /* Que ocupe todo el ancho */
  z-index: 1000;     /* Que quede por encima de todo */
  font-family:Verdana, Geneva, Tahoma, sans-serif; /* Para el nav, se maneja una fuente distinta. */
}

.hamburger {  /* Botón hamburguesa (oculto en escritorio) */
  display: none;
  font-size: 28px;
  background: none;
  border: none;
  color: var(--color-blanco);
  cursor: pointer;
  z-index: 1100; /* encima del menú */
}

/* Contenedor principal de los ítems */
.navbar {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 50px;
  flex-wrap: wrap;
}

/* Lista de navegación */
nav ul {
  list-style: none;
  display: flex;
  gap: 80px;
  padding: 0;
  margin: 0;
  text-transform: uppercase;  /* Texto en mayúsculas */
}

nav ul li {
  /* Lugar reservado para decoraciones individuales */
}

/* Enlaces de navegación */
.nav-link {
  color: var(--color-blanco);
  text-decoration: none;
  font-weight: bold;
  padding: 10px;
  border-radius: 4px;
  transition: color 0.3s, background-color 0.3s;
}

.nav-link:hover {
  color: var(--color-hover);
  background-color: rgba(0, 0, 0, 0.1);
  cursor: pointer;
}

/* ===========================
    RESPONSIVE NAVBAR   
=========================== */
@media (max-width: 1200px) {
  .hamburger {
    display: block;
    position: absolute;
    top: 1px;
    right: 20px;
  }

  .contenido_quienes .logo_inicio{
    max-width: auto;
    max-height: auto;
  }

  .navbar {
    display: none; 
    flex-direction:row;
    justify-content: center;
    gap: 10px;
    width: 100%;
    text-align: center;
    background-color: var(--color-principal);
    padding: 20px 0;
  }

  .navbar.active {
    display: flex; /* Se muestra al activar */
  }

  nav ul {
    flex-direction: column;
    align-items: center;
    gap: 20px;
    margin: 0;         /* Evita desbordes */
    width: 100%;       /* Ocupa todo el ancho */
  }
}


@media (max-width: 1024px) {
  .hamburger {
    display: block;
    position: absolute;
    top: 1px;
    right: 20px;
  }

    .contenido_quienes .logo_inicio{
    max-width: auto;
    max-height: auto;
  }

  .navbar {
    display: none; 
    flex-direction:row;
    justify-content: center;
    gap: 10px;
    width: 100%;
    text-align: center;
    background-color: var(--color-principal);
    padding: 20px 0;
  }

  .navbar.active {
    display: flex; /* Se muestra al activar */
  }

  nav ul {
    flex-direction: column;
    align-items: center;
    gap: 20px;
    margin: 0;         /* Evita desbordes */
    width: 100%;       /* Ocupa todo el ancho */
  }

  .nav-link {
    width: 100%;       /* Cada enlace ocupa toda la fila */
    font-size: 14px;
    padding: 8px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  }
}


@media (max-width: 768px) {
  .hamburger {
    display: block;
    position: absolute;
    top: 1px;
    right: 20px;
  }

  .navbar {
    display: none; 
    flex-direction:row;
    justify-content: center;
    gap: 10px;
    width: 100%;
    text-align: center;
    background-color: var(--color-principal);
    padding: 20px 0;
  }

  .navbar.active {
    display: flex; /* Se muestra al activar */
  }

  nav ul {
    flex-direction: column;
    align-items: center;
    gap: 20px;
    margin: 0;         /* Evita desbordes */
    width: 100%;       /* Ocupa todo el ancho */
  }

  .nav-link {
    width: 100%;       /* Cada enlace ocupa toda la fila */
    font-size: 14px;
    padding: 8px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  }
}



/* =========================================================
    SECCIÓN INICIO
========================================================= */

h2.subtitulos_generales {
  font-family: var(--fuente-subtitulos);
  text-align: center;
  font-size: 30px;
  color: var(--color-principal); /* Color de los subtítulos */
  /*margin-top: 20px;*/
  margin: 10px;
}

.subtitulos_generales {
  font-weight: 900;
  text-align: center;
  font-size: 30px;
  /*margin-top: 20px;*/
  margin: 20px;
  color: var(--color-principal); /* Color de los subtítulos */
}

.boton_inicio {
  display: block;                /* Hace que se comporte como bloque */
  margin: 20px auto;             /* Centra horizontalmente */
  padding: 12px 28px;
  background-color: var(--color-principal);
  color: var(--color-blanco);
  border: none;
  border-radius: 8px;
  font-size: 17px;
  cursor: pointer;
  font-family: var(--fuente-general);
  transition: all 0.3s ease;     /* Transición más fluida */
  text-align: center;            /* Asegura que el texto quede centrado */
  max-width: fit-content;        /* El ancho se ajusta al contenido */
  transition: all 0.3s ease;
}

.boton_inicio:hover {
  background-color: var(--color-hover);
  transform: scale(1.05);
}

.contenido_quienes {
  display: flex;
  align-items: center;       /*Centra verticalmente */
  justify-content: center;
  gap: 200px;
  flex-wrap: wrap;          /* Permite que los elementos salten a la siguiente línea en pantallas pequeñas */
  padding: 12px 10px;
}

.logo_inicio img {
  width: 280px;
  height: auto;
  background-color: transparent;
  transition: transform 0.3s;
}

.logo_inicio img:hover {
  transform: scale(1.05); /* Efecto de zoom al pasar el mouse */
}

/* CIFRAS DEBAJO DEL LOGO */
.cifras_inicio {
  display: flex;
  justify-content: center;
  gap: 25px;
  flex-wrap: wrap; /* Salta a la siguiente línea en pantallas pequeñas */
  font-family: var(--fuente-general);
}

.cifra h3 {
  font-size: 1.6rem;
  color: var(--color-principal);
}

.cifra p {
  font-size: 0.85rem;
  color: var(--color-texto);
  font-family: var(--fuente-general);
}

/* Texto general inicio */
.texto_inicio {
  max-width: 600px;
  text-align: left;
  font-size: 14px;
  line-height: 1.7;
  color: var(--color-texto);
  font-family: var(--fuente-general);
}

.texto_inicio p{
  max-width: 600px;
  text-align: left;
  font-size: 14px;
  line-height: 1.6;
  color: var(--color-texto);
  font-family: var(--fuente-general);
  margin: auto;
}

/* Lista de items en "Quiénes somos" */
.items_quienes {
  margin: 30px 0;
  display: flex;
  flex-direction: column;
  gap: 25px;
}

.item {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 15px 20px;
  background: #f6eeee;
  border-radius: 10px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.725);
  transition: transform 0.2s;
}

.item:hover {
  transform: rotate3d(5, 1, 2, 5deg);
  box-shadow: 0 4px 12px var(--color-hover);
}

.icono {
  font-size: 28px;
  color: var(--color-principal);
}

/* Ajustes logo inicio */
.logo_inicio {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  width: 100%;
  max-width: 400px;
  text-align: center;
  margin: 0;
  background-color: transparent;
  height: auto;
  transition: transform 0.3s;
}
/* ===========================
    RESPONSIVE SECCION INICIO   
=========================== */

@media (max-width: 1200px) {
  .texto_inicio p {
    font-size: 15px;
    line-height: 1.4;
    padding: 0 10px;
  }

  .item {
    margin-inline: 10px;
    max-width: 100%;
  }

  .items_quienes {
    max-width:auto;
    max-height: auto;
  }

  h2.subtitulos_generales,
  .subtitulos_generales {
    font-size: 30px;
    margin: 10px;
  }

  .contenido_quienes {
    flex-direction: column;  /* Texto arriba, imagen abajo */
    gap: 40px;
    text-align: center;
  }

  .boton_inicio {
    width: 100%;           /* botón ocupa todo el ancho */
    max-width: 400px;      /* limite para que no se vea exagerado */
    font-size: 17px;
  }

  .logo_inicio img {
    width: 200px;
  }
}


@media (max-width: 1024px) {
  .texto_inicio p {
    font-size: 15px;
    line-height: 1.4;
    padding: 0 10px;
  }

  .item {
    margin-inline: 10px;
    max-width: 100%;
  }

  h2.subtitulos_generales,
  .subtitulos_generales {
    font-size: 25px;
    margin: 10px;
  }

  .contenido_quienes {
    flex-direction: column;  /* Texto arriba, imagen abajo */
    gap: 40px;
    text-align: center;
  }

  .boton_inicio {
    width: 100%;           /* botón ocupa todo el ancho */
    max-width: 280px;      /* limite para que no se vea exagerado */
    font-size: 14px;
  }

  .logo_inicio img {
    width: 160px;
  }
}

/* Celulares pequeños */
@media (max-width: 768px) {
  .texto_inicio p {
    font-size: 14px;
    line-height: 1.4;
    padding: 0 10px;
  }

  .item {
    margin-inline: 10px;
    max-width: 100%;
  }

  h2.subtitulos_generales,
  .subtitulos_generales {
    font-size: 25px;
    margin: 10px;
  }

  .contenido_quienes {
    flex-direction: column;  /* Texto arriba, imagen abajo */
    gap: 40px;
    text-align: center;
  }

  .boton_inicio {
    width: 100%;           /* botón ocupa todo el ancho */
    max-width: 280px;      /* limite para que no se vea exagerado */
    font-size: 14px;
  }

  .logo_inicio img {
    width: 160px;
  }
}


/* =========================================================
    SECCIÓN PROYECTOS
========================================================= */

.texto_proyectos {
  text-align: center;
  font-size: large;
  line-height: 1.6;
  color: var(--color-texto);
  margin: 20px auto;
  padding: 10px;
  max-width: 800px; /* Limita el ancho del texto */
  font-family: var(--fuente-general);
}

.parrafos {
  display: grid;
  align-items: flex-start;
  margin-top: 20px;
  padding: 18px;
  font-size: 18px;
  line-height: 1.5; /* Mejora la legibilidad */
  font-family: var(--fuente-general);
  font-size: 18px;
}

.proyectos {
  display: flex;
  justify-content: center;
  gap: 40px;
  flex-wrap: wrap; /* Ajusta en pantallas pequeñas */
}

.cartas-contenedores {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  justify-content: center;
}

.carta {
  width: 280px;
  padding: 20px;
  text-align: center;
  background: var(--color-blanco);
  border: 1px solid var(--color-texto);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.carta:hover {
  transform: translateY(-8px);
  box-shadow: 0 12px 25px rgba(0, 0, 0, 0.15);
}

.carta-imagen img {
  width: 100%;
  height: auto;
  border-radius: 8px;
  transition: transform 0.4s ease;
}

.carta:hover .carta-imagen img {
  transform: scale(1.05);
}

.descripcion-carta {
  font-family: var(--fuente-general);
  font-size: 14px;
  line-height: 1.5;
  color: var(--color-texto);
  margin: 10px 0 15px;
}

/* Botón en las cartas */
.boton-proyecto {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  padding: 10px 18px;
  font-size: 1rem;
  font-family: var(--fuente-general);
  background-color: var(--color-principal);
  color: var(--color-blanco);
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.3s ease;
}

.boton-proyecto:hover {
  background-color: var(--color-hover);
  transform: scale(1.05);
}

.boton-proyecto span {
  transition: transform 0.3s ease;
}

.boton-proyecto:hover span {
  transform: translateX(4px);
}

/* Animación de entrada al hacer scroll */
.animar {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.animar.visible {
  opacity: 1;
  transform: translateY(0);
}

/* -----------------RESPONSIVE SECCION PROYECTOS-------------------   */

@media (max-width: 1200px) {
  .parrafos { /*Subtitulos de descripcion*/
    font-size: 16px;
    padding: 12px;
  }

  .proyectos {
    flex-direction:column; /* las cartas se apilan */
    align-items: center;
    gap: 20px;
  }

  .carta {
    width: 70%; /* ocupan casi todo el ancho */
    max-width: 300px;
    padding: 30px;
    margin-bottom: 20px;  
    }

  .descripcion-carta {
    font-size: 13px;
    text-align: center;
  }
  .carta-imagen img {
    max-height: 220px;
    object-fit: cover; /* Asegura que la imagen cubra el área sin distorsión */
    max-width:auto;
  }

    .boton-proyecto {
    width: 100%; /* botón ocupa todo el ancho */
    justify-content: center;
    font-size: 0.9rem;
  }

}


@media (max-width: 1024px) {
  .parrafos { /*Subtitulos de descripcion*/
    font-size: 16px;
    padding: 12px;
  }

  .proyectos {
    flex-direction:column; /* las cartas se apilan */
    align-items: center;
    gap: 20px;
  }

  .carta {
    width: 70%; /* ocupan casi todo el ancho */
    max-width: 300px;
    padding: 30px;
    margin-bottom: 20px;  
    }

  .descripcion-carta {
    font-size: 13px;
    text-align: center;
  }
  .carta-imagen img {
    max-height: 220px;
    object-fit: cover; /* Asegura que la imagen cubra el área sin distorsión */
    max-width:auto;
  }

    .boton-proyecto {
    width: 100%; /* botón ocupa todo el ancho */
    justify-content: center;
    font-size: 0.9rem;
  }

}


@media (max-width: 768px) {
  .parrafos { /*Subtitulos de descripcion*/
    font-size: 16px;
    padding: 12px;
  }

  .proyectos {
    flex-direction:column; /* las cartas se apilan */
    align-items: center;
    gap: 20px;
  }

  .carta {
    width: 70%; /* ocupan casi todo el ancho */
    max-width: 300px;
    padding: 30px;
    margin-bottom: 20px;  
  }

  .descripcion-carta {
    font-size: 13px;
  }
  .carta-imagen img {
    max-height: 220px;
    object-fit: cover; /* Asegura que la imagen cubra el área sin distorsión */
    max-width:auto;
  }

    .boton-proyecto {
    width: 100%; /* botón ocupa todo el ancho */
    justify-content: center;
    font-size: 0.9rem;
  }

}

/* Celulares pequeños */
@media (max-width: 480px) {
  .texto_proyectos {
    font-size: 0.9rem;
    line-height: 2.4;
    
  }

  .parrafos {
    font-size: 15px;
    text-align: justify;
  }

  .carta {
    padding: 15px;
    width: 95%;
  }

  .carta-imagen img {
    max-height: 220px;
    object-fit: cover; /* Asegura que la imagen cubra el área sin distorsión */
    max-width:auto;
  }

  .boton-proyecto {
    width: 100%; /* botón ocupa todo el ancho */
    justify-content: center;
    font-size: 0.9rem;
  }
}


/* =========================================================
                    SECCIÓN SERVICIOS
========================================================= */

#servicios {
  background-color: #000000df;  /*Color temporal*/
  padding: 50px 0;
}

.contenedor_servicios {
  width: 90%;
  max-width: 1200px;
  margin: auto;
  text-align: center;
  font-family: var(--fuente-general);
  color: var(--color-blanco);
}

/* Carrusel */
.carrusel_servicios {
  display: flex;
  align-items: center;
  position: relative; /* Para ubicar los botones */
}

.slides_container {
   transition: transform 0.5s ease-in-out;
  display: flex;
  gap: 20px;
  overflow: hidden;
  scroll-behavior: smooth;
}

.slide {
  flex: 0 0 300px;
  min-width: 300px; /* Cada slide ocupa toda la vista */
  padding: 20px;
  background-color: var(--color-blanco);
  border-radius: 10px;
  border-top: 12px solid var(--color-principal);
  box-shadow: 0 0px 8px var(--color-principal);
  text-align: center;
  flex-shrink: 0;
  transition: transform 0.3s;
}

.slide:hover {
  transform: translateY(-5px);
}

.slide h3 {
  margin: 20px 0;
  font-size: 1.2rem;
  color: var(--color-principal);
}

.slide p {
  font-size: 0.9rem;
  color: var(--color-texto);
}

.btn-carrusel {
  position: absolute;
  background: var(--color-principal);
  border: none;
  border-radius: 50%;
  width: 60px;
  height: 60px;
  font-size: 2rem;
  color: var(--color-blanco);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(6px);
  box-shadow: 0 0px 1px var(--color-texto);
  transition: 0.3s;
}

.btn-carrusel.left  { left: -80px; }
.btn-carrusel.right { right: -80px; }

.btn-carrusel:hover {
  background: var(--color-hover);
  transform: scale(1.2);
}

/*-------- RESPONSIVE SECCION SERVICIOS-----------   */


@media (max-width: 1200px) {
.carrusel_servicios {
    flex-direction:row;
  }

  .slides_container {
    gap: 22px;
    max-height: auto;
  }

  .slide {
    flex: 0 0 220px;
    min-width: 200px;
    padding: 5px;
  }

  .slide h3 {
    font-size: 1rem;
  }

  .slide p {
    font-size: 0.85rem;
  }

   .btn-carrusel {
    position: static;
    margin: 25px 8px 0;
    max-width: auto;
    max-width: auto;
    padding: 10px;
    margin-bottom: 20px;
    font-size: 1.3rem;
  }
}


@media (max-width: 1024px) {
.carrusel_servicios {
    flex-direction:row;
  }

  .slides_container {
    gap: 12px;
  }

  .slide {
    flex: 0 0 220px;
    min-width: 200px;
    padding: 5px;
  }

  .slide h3 {
    font-size: 1rem;
  }

  .slide p {
    font-size: 0.85rem;
  }

   .btn-carrusel {
    position: static;
    margin: 25px 8px 0;
    max-width: auto;
    max-width: auto;
    padding: 20px;
    margin-bottom: 10px;
    font-size: 1.3rem;
  }
}


/* Tablets pequeñas y celulares grandes (<= 768px) */
@media (max-width: 768px) {
  .carrusel_servicios {
    flex-direction:row;
  }

  .slides_container {
    gap: 12px;
  }

  .slide {
    flex: 0 0 220px;
    min-width: 200px;
    padding: 5px;
  }

  .slide h3 {
    font-size: 1rem;
  }

  .slide p {
    font-size: 0.85rem;
  }

   .btn-carrusel {
    position: static;
    margin: 25px 8px 0;
    max-width: auto;
    max-width: auto;
    padding: 20px;
    margin-bottom: 10px;
    font-size: 1.3rem;
  }
}

/* Celulares pequeños (<= 480px) */
@media (max-width: 480px) {
  .slides_container {
    gap: 10px;
  }

  .slide {
    flex: 0 0 90%;   /* Ocupar casi todo el ancho */
    min-width: auto; /* Se adapta libremente */
    padding: 12px;
  }

  .slide h3 {
    font-size: 0.95rem;
  }

  .slide p {
    font-size: 0.8rem;
  }

    .btn-carrusel {
    position: static;
    margin: 25px 8px 0;
    max-width: auto;
    max-width: auto;
    padding: 20px;
    margin-bottom: 8px;
    font-size: 1.3rem;
  }
}

/* =========================================================
                   SECCIÓN FILIALES 
========================================================= */

.descripcion_filiales {
  text-align: center;
  max-width: 800px;
  margin: 0 auto 30px;
  font-family: var(--fuente-general);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--color-texto);
}

.carrusel_filiales {
  display: flex;
  flex-wrap: wrap; 
  justify-content: center;
  gap: 30px;
  margin-bottom: 50px;
}

.filial {
  flex: 1 1 120px;
  max-width: 150px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.filial img {
  max-width: 100%;
  height: auto;
  transition: transform 0.3s ease;
}

.filial img:hover {
  transform: scale(1.1);
}

/* Animación */
@keyframes scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* --------RESPONSIVE ADAPTATION-------- */
@media (max-width: 1200px) {
  .descripcion_filiales {
    font-size: 0.95rem;
    padding: 0 15px;
    margin-bottom: 15px;
  }

  .filial {
    flex: 1 1 100px;
    max-width: 100px;
  }

  .carrusel_filiales {
    gap: 22px;          /* Menos espacio entre logos */
    padding: 0 40px;    
    justify-content:center;
  }
}

@media (max-width: 1024px) {
  .descripcion_filiales {
    font-size: 0.95rem;
    padding: 0 15px;
    margin-bottom: 15px;
  }

  .filial {
    flex: 1 1 100px;
    max-width: 100px;
  }

  .carrusel_filiales {
    gap: 20px;          /* Menos espacio entre logos */
    padding: 0 40px;    
    justify-content:center;
  }
}

/* Celulares grandes */
@media (max-width: 768px) {
  .descripcion_filiales {
    font-size: 0.95rem;
    padding: 0 15px;
    margin-bottom: 15px;
  }

  .filial {
    flex: 1 1 100px;
    max-width: 100px;
  }

  .carrusel_filiales {
    gap: 12px;          /* Menos espacio entre logos */
    padding: 0 40px;    
    justify-content:center;
  }
}

/* Celulares pequeños */
@media (max-width: 480px) {
    .descripcion_filiales {
    font-size: 0.85rem;
    padding: 0 15px;
    margin-bottom: 5px;
  }

  .filial {
    flex: 1 1 100px;
    max-width: 100px;
  }

  .carrusel_filiales {
    gap: 15px;          /* Menos espacio entre logos */
    padding: 0 40px;    
    justify-content:center;
  }
}




/* =========================================================
                   SECCIÓN CONTACTO 
========================================================= */

#contacto {
  padding: 20px;
  max-width: 600px;
  margin: auto;
  border-radius: 4px;
  background: linear-gradient(0deg, var(--color-texto) 30%, var(--color-principal) 100%);
  box-shadow: 0 6px 20px var(--color-texto);
}

.subtitulos_generales {
  text-align: center;
  font-size: 1.8rem;
  margin-bottom: 25px;
  color: var(--color-blanco);
  letter-spacing: 1px;
}

.formulario_contacto {
  display: flex;
  flex-direction: column;
  gap: 13px;
}

.campo {
  display: flex;
  flex-direction: column;
  font-family: var(--fuente-general);
}

.campo label {
  margin-bottom: 11px;
  font-weight: bold;
  color: var(--color-blanco);
}

.campo input,
.campo textarea {
  padding: 11px;
  font-size: 1rem;
  border: none;
  border-radius: 4px;
  outline: none;
  background-color: var(--color-blanco);
  box-shadow: inset 0 2px 4px var(--color-texto);
  transition: all 0.3s ease;
}

.campo input:focus,
.campo textarea:focus {
  box-shadow: 0 0 8px var(--color-texto);
  transform: scale(1.02);
}

.subtitulos_formulario {
  margin: 2px;
  text-align: center;
  font-size: 30px;
  font-weight: 900;
  font-family: var(--fuente-subtitulos);
  color: var(--color-blanco);
}

/* Botón de enviar */
.boton_contacto {
  padding: 11px;
  font-size: 1.1rem;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-family: var(--fuente-general);
  background-color: var(--color-principal);
  color: var(--color-blanco);
  transition: all 0.3s ease;
}

.boton_contacto:hover {
  transform: scale(1.05);
  letter-spacing: 1px;
  background: linear-gradient(0deg, var(--color-principal), var(--color-hover));
  box-shadow: 0 4px 15px var(--color-texto);
}

/* ========== RESPONSIVE CONTACTO ==========   */


@media (max-width: 1200px) {
  #contacto {
    padding: 55px;
    max-width: 60%;
    margin: auto;
  }

  .subtitulos_generales {
    font-size: 1.6rem;
  }

  .subtitulos_formulario {
    font-size: 26px;
  }

  .formulario_contacto {
    gap: 13px;
    margin-bottom: 20px;
  }

    .boton_contacto {
    font-size: 1rem;
    width: 100%;   /* Botón ocupa todo el ancho */
  }

}

@media (max-width: 1024px) {
  #contacto {
    padding: 25px;
    max-width: 70%;
    margin: auto;
  }

  .subtitulos_generales {
    font-size: 1.6rem;
  }

  .subtitulos_formulario {
    font-size: 26px;
  }

  .formulario_contacto {
    gap: 13px;
    margin-bottom: 20px;
  }

  .boton_contacto {
    font-size: 1rem;
    width: 100%;   /* Botón ocupa todo el ancho */
  }
}


@media (max-width: 768px) {
  #contacto {
    padding: 15px;
    max-width: 95%;
  }

  .subtitulos_generales {
    font-size: 1.4rem;
  }

  .subtitulos_formulario {
    font-size: 22px;
  }

  .campo input,
  .campo textarea {
    font-size: 0.95rem;
    padding: 10px;
  }

  .boton_contacto {
    font-size: 1rem;
    width: 100%;   /* Botón ocupa todo el ancho */
  }
}

/* Celulares pequeños */
@media (max-width: 480px) {
  #contacto {
    padding: 10px;
    border-radius: 2px;
    margin: 20px;
  }

  .subtitulos_generales {
    font-size: 1.2rem;
  }

  .subtitulos_formulario {
    font-size: 20px;
    
    margin-bottom: 25px;
  }

  .campo input,
  .campo textarea {
    font-size: 0.9rem;
    padding: 8px;
  }

  .boton_contacto {
    font-size: 0.95rem;
    padding: 10px;
  }
}

/* -------------------------- */
/*      ANIMACIONES EXTRA     */
/* -------------------------- */

@keyframes aparecerDesdeAbajo {
  0%   { opacity: 0; transform: translateY(50px); }
  100% { opacity: 1; transform: translateY(0); }
}

.carta.animada {
  animation: aparecerDesdeAbajo 0.8s ease-out forwards;
}



/* =========================================================
                   SECCIÓN FOOTER 
========================================================= */

.footer-col {
  display: flex;
  flex-direction: column;
  align-items:left; /* Centra horizontalmente */
  justify-content: center; /* Centra verticalmente */
  gap: 12px;
}

.footer {
  background-color: black;     /*Fondo del Footer*/
  padding: 40px 20px 0;
  font-family: var(--fuente-general);
}

.logo-footer {
  width: 270px;
  height: 200px;
  margin-bottom: 2px;
  background-color: transparent;
}

.footer-contenido {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
  max-width: 1200px;
  margin: auto;
}

.footer-col h2 {
  font-size: 1.5rem;
  margin-bottom: 10px;
} 

.footer-col .resaltado {
  color: var(--color-blanco); 
  font-family: var(--fuente-subtitulos);
  font-size: 1.84rem; /*tamaño texto ACTSIS*/
}

.footer-col h3 {
  font-size: 1.2rem;
  margin-bottom: 10px;
  color: var(--color-principal); /* Color Sobre Nosotros, Servicios, Contactanos */
  font-family: var(--fuente-general);
}

.footer-col p {
  margin: 6px 0;
  font-size: 0.95rem;
  line-height: 1.5;
}

.footer-col a {
  text-decoration: none;
  color: var(--color-blanco);
  transition: color 0.2s ease;
}

.footer-col a:hover {
  color: var(--color-hover);
}

.footer-bottom {
  background-color: var(--color-principal); /* Franja inferior */
  color: var(--color-blanco);
  text-align: center;
  padding: 10px;  
  margin-top: 50px;
  font-size: 0.9rem;
}

/*=========================== RESPONSIVE FOOTER =========================== */

/* Tablets */
@media (max-width: 768px) {

  .footer-contenido {
    grid-template-columns: repeat(1, 1fr);
    text-align: center;
  }

  .footer {
    flex-direction:row;
  }

  .footer-col p{
    margin-bottom: 20px; 
    justify-content: space-between;           
    text-align: left;      
  }
}

.footer-col h3 {
  font-size: 1.2rem;
}

.logo-footer {
  width: 220px;
  height: auto;
  margin: auto;
}

/* Laptops grandes */
@media (max-width: 1200px) {
  .footer {
    justify-content: center;
    gap: 30px; /* espacio entre columnas */
  }
}




  
