:root {
  --principal: #575757;
  --principal-rgb: rgb(87, 87, 87);
  --oro: #86754F;
  --oro-rgb: rgb(134, 117, 79);
  --bg-menu-mobile: rgba(134, 117, 79, 0.85);
  --secundario: #FFFFFF;
  --bg-body: #FFFFFF;
  --bg-btn: #FFFFFF;
  --principalDark: #575757;
  --text: #575757;
  --map1: #E69F00;
  --map2: #9542D1;
  --map3: #42D1BB;

  --bs-alert-padding-x: 0.5rem;
  --bs-alert-padding-y: 0.5rem;
  --bs-alert-margin-bottom: 0.5rem;
  --bs-border-radius: 0;
  --bs-border-color: #86754F;
  --bs-body-color: #575757;
  --bs-btn-hover-border-color: #575757;
}

@font-face {
  font-family: 'FontBold';
  src: url('../fonts/NexaBold.otf') format('truetype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'FontLight';
  src: url('../fonts/NexaExtraLight.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'FontRegular';
  src: url('../fonts/OpenSans-Regular.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'FontRegularLight';
  src: url('../fonts/AdobeClean-Light.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

.border-r { border: 1px solid red; }
.border-g { border: 1px solid green; }
.border-b { border: 1px solid blue; }
.border-y { border: 1px solid yellow; }
.border-m { border: 1px solid magenta; }
.border-c { border: 1px solid cyan; }
.border-bl { border: 1px solid black; }
.border-w { border: 1px solid white; }

/** GENERALES */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: 'FontLight', Arial, Helvetica, sans-serif;
}

h1, h2, h3, h4, h5, h6, .Font-Bold {
  font-family: 'FontBold', Arial, Helvetica, sans-serif;
}
.Font-Light {
  font-family: 'FontLight', Arial, Helvetica, sans-serif;
}
.Font-Regular {
  font-family: 'FontRegular', Arial, Helvetica, sans-serif;
}
.Font-Regular-Light {
  font-family: 'FontRegularLight', Arial, Helvetica, sans-serif;
}
b {
  font-family: 'FontBold', Arial, Helvetica, sans-serif;
}

.title-us-left,
.txt-black {
  color: black!important;
}

html, body {
  overflow-x: hidden;
  margin: 0;
  padding: 0;
  width: 100%;
  background-color: var(--bg-body);
  scroll-behavior: smooth;
  font-display: swap;
}

/* Agregar al inicio de los estilos o junto a los estilos generales */
html {
    scroll-behavior: smooth;
    scroll-padding-top: 140px; /* Mantiene el offset para el navbar */
}

body {
  display: flex;
  flex-direction: column;
  background-color: var(--bg-body);
}

.content {
  flex: 1; /* Esto hace que el contenido ocupe todo el espacio disponible */
}

.text-justify {
  text-align: justify;
}
/** TERMINA GENERALES */

/** NAVBAR */
nav {
  background-color: var(--bg-body);
  height: auto; /*120px*/
}
nav a{
  width: 45%;
}
nav a img{
  width: 100%;
  max-height: 86px;
  object-fit: contain;
}
.form{
  border-color: var(--principal);
  border-width: thin;
}
.form a {
  font-family: 'FontLight';
  font-weight: bold;
  text-decoration: none;
  font-size: 7px;
  letter-spacing: 2px;
  border: 1px solid var(--principal);
  margin-top: 0;
  padding-top: 0;
  margin-bottom: 0;
  padding-bottom: 0;
}
.form-check {
  font-size: 12px;
}
.navbar-brand {
  display: inline-block; /* Importante para aplicar ancho */
  min-width: 150px; /* Ajusta este valor según el ancho deseado */
  margin: 0 auto;
}
Nav ul a {
  font-family: 'FontLight';
  font-size: 16px;
  letter-spacing: 6px;
}
.btn-effect {
  background-color: var(--oro);
  color: var(--bg-body);
  border-color: var(--oro);
  border-width: thin;
  padding: 10px 25px 5px 25px;
  text-align: center;
  align-content: center;
  letter-spacing: 2px;
}
.btn-effect:hover{
  background-color: var(--bg-body);
  color: var(--oro)!important;
}
.btn:hover {
  background-color: var(--oro);
  border-color: var(--oro);
  color: var(--bg-body)!important;
  font-family: 'FontBold';
}
.btn-form {
  min-height: 45px;
  min-width: 250px;
}

.btn2 {
  width: 160px;
}
.text-effect {
  color: black;
  text-decoration: none;
  font-size: 15px;
  display: inline-block; /* Asegura que el ancho sea respetado */
  min-width: 200px; /* Ajusta el ancho según el texto más largo */
  width: 100%;
  text-align: center;
  /* font-weight: bold; */
  /* transition: font-weight 0.3s ease; */
  /* text-transform: uppercase; */
}
.text-effect:hover {
  font-family: 'FontBold';
  color: var(--oro);
  /* font-weight: lighter; */
}
.nav-menu-text {
  color: black;
  text-decoration: none;
  font-size: 15px;
  display: inline-block; /* Asegura que el ancho sea respetado */
  min-width: 140px; /* Ajusta el ancho según el texto más largo */
  width: 100%;
  text-align: center;
}
.nav-menu-text:hover {
  font-family: 'FontBold';
  color: var(--oro);
}
.nav-item {
  border: 1px none black;
  min-width: 140px;
}
.nav-item:nth-child(1) {
  min-width: 220px;
}
.nav-item:nth-child(2) {
  min-width: 170px;
}
.nav-item:nth-child(3) {
  min-width: 300px;
}
.menu_top_socials {
  display: none;
  visibility: hidden;
}
.navbar-toggler .navbar-toggler-icon {
  background-image: url(../../assets/images/icons/menu_toggle@2x.png);
  background-repeat: no-repeat;
  background-size: contain;
  width: 24px;
  height: 24px;
}
.navbar-toggler.cambiado .navbar-toggler-icon {
  background-image: url(../../assets/images/icons/close@2x.png);
}
.navbar-toggler {
border: none !important; /* Elimina el borde */
}
.navbar-toggler:focus { /* Quitar borde del toggler*/
    text-decoration: none;
    outline: 0;
    box-shadow: 0 0 0 transparent;
}
.navbar-nav {
  height: 100vh;
  border: 1px none red;
}
nav .redes-sociales {
  text-align: center;
}
nav .redes-sociales a {
  font-size: 15px;
}
nav .redes-sociales div {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 20px;
  margin-bottom: 20px;
}
nav .redes-sociales img {
  width: 40px;
  /*transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);*/
  /*animation: pulse-social-mobile-menu 1.6s ease-in forwards;*/
  animation: pulse-social-mobile-menu 1.6s ease-out forwards;
}
/*nav.mobile_active .redes-sociales img {
    transform: scale(0.9) rotateY(360deg);
    opacity: 0.95;
}*/
nav .redes-sociales a {
  padding-left: 10px;
}

nav.mobile_active {
  background-color: var(--bg-menu-mobile);
  color: white!important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
nav.mobile_active a {
  color: white!important;
}

/* Animación combinada para el toggler */
.navbar-toggler-icon {
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

nav.mobile_active .navbar-toggler-icon {
    transform: scale(0.9) rotate(180deg);
    opacity: 0.95;
}
/* Fin Animación combinada para el toggler */


/* Estilo para el dropdown menu y sus items */
.dropdown-menu {
    background: transparent;
    border: none;
    text-transform: uppercase;
    right: 0;
    /*backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);*/
}

.dropdown-menu > li {
    border: 1px none red;
    text-align: center;
}

.dropdown-menu a,
.dropdown-menu a:active,
.dropdown-menu a:hover,
.dropdown-menu a:visited {
  background: transparent;
  font-size: 15px;
  color: white;
  width: 100%;
  padding: 10px 0 5px 0;
}

.dropdown-menu a:active,
.dropdown-menu a:hover {
  font-family: 'FontBold';
}

/**TERMINA NAVBAR*/

/**VIDEO*/
.video-inicio {
  margin-top: 0; /* Ajusta este valor si la altura de tu navbar es diferente */
  margin-left: 0;
  margin-right: 0;
  width: 100%;
  z-index: 999;
}
.video-inicio video {
  margin-top: 90px;
  object-fit: cover;
  /*background: linear-gradient(to bottom, gray, black);   */
}
.video-inicio img {
  width: 100%; /* La imagen ocupa todo el ancho del contenedor header */
  height: calc(50vh - 120px); /* La imagen ocupa el resto de la altura de la pantalla */
  object-fit: cover; /* La imagen se ajusta para cubrir todo el contenedor, manteniendo su relación de aspecto */
  display: block; /* Elimina el espacio adicional debajo de la imagen */
  margin: 0 auto; /* Centra la imagen horizontalmente */
}

/* Para el botón WhastApp*/
#whatsapp-form-popup {
  position: fixed;
  right: 0; 
  bottom: auto;
  width: 320px; 
  max-width: 320px; 
  z-index: 9999;
  font-size: 12px;
  animation: fadeInUp 0.3s ease-out;
  > h6 {
    font-size: 14px;
  }
}
#whatsapp-form-popup .title-form-whats {
  color: var(--principal)!important;
  text-decoration: none;
  display: block;
  text-align: center;
}
.alert-popup-whats {
  font-size: 11px;
  padding: 5px 10px;
}

.alert-popup-whats > li {
    display: inline;
    margin-left: --px;
}
.alert-popup-whats > li::before {
  content: '- ';
}

label.form-label-whats {
    margin-bottom: 0;
}

.popup-whats-arrow {
  position: absolute;
  bottom: -10px; /* debajo del popup */
  right: 1.6vw;   /* ajustar para alinearla a la derecha */
  width: 0;
  height: 0;
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  border-top: 20px solid #fff; /* mismo color que el fondo del popup */
  z-index: 1;
  display: none;
}


@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20%);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.no-gutters {
  margin-right: -15px;
  margin-left: -15px;
}
.no-gutters > .col,
.no-gutters > [class*="col-"] {
  padding-right: 0;
  padding-left: 0;
}   

/**/

.just-validate-error-label {
  margin-top: 2px;
  color: var(--oro)!important;
  font-size: 10px;
  font-family: 'FontRegular';
  text-shadow: 1px 1px 2px lightgray;
  border-color: var(--bs-form-invalid-border-color);
    padding-left: calc(1.0em + .75rem);
    background-image: url(../../assets/images/icons/informacion.png);
    background-repeat: no-repeat;
    background-position: left calc(.0375em + .1875rem) center;
    background-size: calc(.75em + .375rem) calc(.75em + .375rem);
}
.form-check-input:focus,
.form-control.is-invalid:focus, .was-validated .form-control:invalid:focus {
    border-color: var(--oro)!important;
    outline: 0;
    box-shadow: 0 0 0 .25rem rgba(134, 117, 79, 0.85);
}
.form-control.is-invalid, .was-validated .form-control:invalid {
  border-color: var(--oro)!important;
}
/*
.form-control.is-invalid, .was-validated .form-control:invalid {
    border-color: var(--bs-form-invalid-border-color);
    padding-right: calc(1.5em + .75rem);
    background-image: url(../../assets/images/icons/icono_instagram_nav.png);
    background-repeat: no-repeat;
    background-position: right calc(.375em + .1875rem) center;
    background-size: calc(.75em + .375rem) calc(.75em + .375rem);
}*/
/**TERMINA VIDEO*/

/**HOME-US*/
.home-us {
  margin-top: 50px;
}
.title, .title2, .title3 {
  color: #000;
  display: flex;
  justify-content: center;  
}
.title, .title2{
  letter-spacing: 5px;
  font-size: 15px;
  line-height: 1.3em;
}
.title3{
  letter-spacing: 5px;
  font-size: 20px;
  line-height: 1.3em;
}
.paragraph {
  letter-spacing: 1px;
  color: var(--text);
  font-size: 15px;
  line-height: 1.2em;
}

/**TERMINA HOME-US*/

/**HOME-PROYECTS*/
#home-proyects .line {
  width: 40%;
  border-bottom: 1px solid var(--oro);
}
#home-proyects .carousel-indicators {
  position: static;
  margin-top: -20px; 
  text-align: center;
}
#home-proyects .carousel-indicators button {
  background-color: var(--principal); /* Color principal para todos los indicadores */
  border: none; /* Elimina el borde */
  width: 7px; /* Tamaño del indicador */
  height: 7px; /* Tamaño del indicador */
  border-radius: 50%;
  margin: 0 9px;
  position: relative;
  opacity: 1; /* Reduce la opacidad para indicar inactividad */
}
#home-proyects .carousel-indicators .active {
  opacity: 1; /* Opacidad completa para el indicador activo */
}
#home-proyects .carousel-indicators .active::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 25px;
  height: 25px;
  border: 2px solid var(--principal);
  border-radius: 50%;
}
#home-proyects .carousel-inner .banner {
  width: 100%; /* La imagen ocupa todo el ancho del contenedor */
  height: auto; /*50vw 40vw Ajusta este valor según el ancho de las imágenes de las torres */
  object-fit: cover; /* La imagen se ajusta para encajar dentro del contenedor */
  display: block;
  margin: 0 auto; /* Centra la imagen horizontalmente */
  min-height: 350px;
  border: 2px none green;
}
#home-proyects .banner {
  width: 100%;
  height: 36vw;
  object-fit: cover; /* La imagen se ajusta para cubrir todo el contenedor, manteniendo su relación de aspecto */
  display: block; /* Elimina el espacio adicional debajo de la imagen */
  margin: 0 auto; /* Centra la imagen horizontalmente */
}
#home-proyects .tower-effect {
  position: relative;
}
#home-proyects .tower-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0);
  transition: background-color 0.7s ease;
  display: flex;
  justify-content: center;
  align-items: center;
  color: white;
  font-size: 0.8vw;
  font-weight: light;
  letter-spacing: 2px;
  opacity: 0;
  transition: opacity 0.7s ease;
}
#home-proyects .tower-effect:hover .tower-overlay {
  background-color: rgba(0, 0, 0, 0.6);
  opacity: 1;
}
#home-proyects .tower-line {
  position: absolute;
  top: 50%;
  /* width: 35%; */
  height: 1px;
  background-color: white;
  transition: width 0.7s ease;
}
#home-proyects .tower-line.tower-line-left {
  left: 0;
  width: 0;
}
#home-proyects .tower-line.tower-line-right {
  right: 0;
  width: 0;
}
#home-proyects .tower-effect:hover .tower-line {
  width: 9vw;
}
#home-proyects .prototype-text {
  position: relative;
  padding: 0 10px;
  font-size: 20px;
}
#home-proyects .nextproy-info-text {
  position: relative;
  padding: 50px 150px;
  font-family: 'FontLight';
  text-align: justify;
}
#home-proyects .line {
  border-color: var(--oro);
}

.img-lowlight {
  filter: brightness(1.0);
}
.img-lowlight::after {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to bottom, 
    rgba(0, 0, 0, 0) 50%, 
    rgba(0, 0, 0, 0.7) 100%
  );
  pointer-events: none;
  border: 2px solid red;
}
.svg-bullets {
  width: 60px;
  height: 60px;
  margin: auto;
  /*box-shadow: 1px 1px 1px rgba(255, 255, 255, 0.75);
  box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.75);*/
  border-radius: 50%;
  border: 1px solid white;
}

.banner-wrapper .banner {
  position: relative;
  display: inline-block; /* o block si ocupa todo el ancho */
}

.banner-wrapper .banner {
  display: block;
  width: 100%;
  height: auto;
}

.banner-wrapper::after {
  border: 2px solid red;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none; /* no bloquea clics */
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0) 65%,   /* parte superior transparente */
    rgba(0, 0, 0, 0.7) 100% /* parte inferior oscura */
  );
}


/* Nuevo: efecto para proyectos */
#home-proyects .nextproy-effect {
  position: relative;
}
#home-proyects .nextproy-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(134, 117, 79, 0);
  transition: background-color 0.7s ease;
  display: flex;
  justify-content: center;
  align-items: center;
  color: white;
  font-size: 1.95vw;
  font-weight: light;
  letter-spacing: 2px;
  opacity: 0;
  transition: opacity 0.7s ease;
}
#home-proyects .nextproy-effect:hover .nextproy-overlay {
  background-color: rgba(134, 117, 79, 0.94);
  opacity: 1;
  /*width: 103%;
  padding: 0;
  margin: 0;*/
}
#home-proyects .nextproy-line {
  position: absolute;
  top: 50%;
  /* width: 35%; */
  height: 1px;
  background-color: white;
  transition: width 0.7s ease;
}
#home-proyects .nextproy-line.nextproy-line-left {
  left: 0;
  width: 0;
}
#home-proyects .nextproy-line.nextproy-line-right {
  right: 0;
  width: 0;
}
#home-proyects .nextproy-effect:hover .nextproy-line {
  width: 9vw;
}
#home-proyects .nextproy-info-text {
  position: relative;
  padding: 5% 20%;
  font-family: 'FontLight';
}

.home-mision {
  margin-top: 100px;
}

.carousel-div-infobullets {
  border:2px none white; 
  bottom: 40px; 
  max-width: 1080px; 
  font-size:16px;
  font-family: 'FontBold';
  text-shadow: 1px 2px 2px rgba(0,0,0,0.75);
}

.carousel-div-row {
  margin: 0 auto;
}

/**TERMINA HOME-PROYECTS*/

/**HOME-VALUES*/
.home-values .line {
  width: 40%;
  border-bottom: 1px solid var(--oro);
}
.home-values img {
  width: 100%;
  height: 5vw;
  min-height: 50px;
  object-fit: fill; /* La imagen se ajusta para cubrir todo el contenedor, manteniendo su relación de aspecto */
  display: block; /* Elimina el espacio adicional debajo de la imagen */
  margin: 0 auto; /* Centra la imagen horizontalmente */
}
.home-values a {
  text-decoration: none;
  display: inline-block;
}
.home-values a::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.4);
  transition: background-color 0.7s ease;
}
.home-values a:hover::before {
  background-color: var(--principal);
}
.carousel-item img {
  display: block; /* Elimina espacios extra alrededor de la imagen */
}

.lottie-container {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 40% !important; 
  height: auto !important; 
  opacity: 0;
  transition: opacity 0.5s ease-in-out;
}
.home-values a:hover .lottie-container {
  opacity: 1;
}
.home-values .text {
  bottom: 8%;
  left: 50%;
  transform: translateX(-50%);
  transition: transform 0.7s ease;
}
.home-values a:hover .text{
  transform: translate(-50%, -600%); /* Mueve el texto hacia arriba */
}
.home-values .carousel-indicators {
  position: static;
  margin-top: 0; 
  text-align: center;
}
.home-values .carousel-indicators button {
  background-color: var(--principal); /* Color principal para todos los indicadores */
  border: none; /* Elimina el borde */
  width: 6px; /* Tamaño del indicador */
  height: 6px; /* Tamaño del indicador */
  border-radius: 50%;
  margin: 0 5px;
  position: relative;
  opacity: 1; /* Reduce la opacidad para indicar inactividad */
}
.home-values .carousel-indicators .active {
  opacity: 1; /* Opacidad completa para el indicador activo */
}
.home-values .carousel-indicators .active::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 17px;
  height: 17px;
  border: 1px solid var(--principal);
  border-radius: 50%;
}
.home-values .carousel-inner img {
  width: 100%; /* La imagen ocupa todo el ancho del contenedor */
  height: auto; /* La altura se ajusta automáticamente para mantener la proporción */
  object-fit: contain; /* La imagen se ajusta para encajar dentro del contenedor */
  max-width: 500px; /* Ajusta este valor según el ancho de las imágenes de las torres */
  margin: 0 auto; /* Centra la imagen horizontalmente */
}

.icon-values-text {
  letter-spacing: 2px;
  font-size: 1.5vw;
  font-family: 'FontRegular';
  text-transform: uppercase;
  color: var(--text);
  padding-top: 10px;
  text-align: left;
  display: flex;
  text-decoration: none;
}
.icon-values-text a {
  text-decoration: none;
}

/**TERMINA HOME-VALUES*/

/**HOME-MAP*/
#home-map img {
  width: 100%;
  object-fit: cover; /* La imagen se ajusta para cubrir todo el contenedor, manteniendo su relación de aspecto */
  display: block; /* Elimina el espacio adicional debajo de la imagen */
  margin: 0 auto; /* Centra la imagen horizontalmente */
}
/**TERMINA HOME-MAP*/

/**HOME-FORM*/
#home-form .google-maps {
  max-width: 20px;
  /* text-decoration: none; */
}
#home-form .google-maps p {
  color: var(--principal);
}
#home-form .google-maps img {
  max-width: 25px;
}
#home-form .con img {
  width: 100%;
  height: auto;
  object-fit: cover; /* La imagen se ajusta para cubrir todo el contenedor, manteniendo su relación de aspecto */
  display: block; /* Elimina el espacio adicional debajo de la imagen */
  margin: 0 auto; /* Centra la imagen horizontalmente */
}
.formulario {
  display: flex;
  align-items: center; /* Centra verticalmente */
  justify-content: center; /* Centra horizontalmente */
  width: 100%;
  height: 700px;
  background-color: #FFFFFF;
  margin: 0;
  padding: 0;
}

label {
  color: var(--principal);
}
.form-label {
  margin-top: 10px;
  font-size: 0.7rem;
}
.form-control {
  padding: .375rem .375rem;
}
.form-control,
.form-label {
  font-family: 'FontRegular'!important;
  font-size: 0.75rem;
}

.form-control:focus {
  border: 2px solid var(--oro);
  border-color: var(--oro);
  outline: 0;
  box-shadow: 0 0 0 transparent;
}

a.link-gold,
a.link-gold:active,
a.link-gold:hover,
a.link-gold:visited {
  color: var(--oro);
  text-decoration: underline;
}
.form-check-input[type=checkbox] {
  border-radius: 0;
  outline: 0;
  box-shadow: 0 0 0 transparent;
}
.form-check-input:checked {
  background-color: var(--oro);
  border-color: var(--oro);
  outline: 0;
  box-shadow: 0 0 0 transparent;
}

#mensaje {
  height: 100px;
  resize: none;
}
#mensaje-counter {
    border: 1px none red;
    width: 20%;
    float: right;
    font-size: 10px;
}

/**TERMINA HOME-FORM*/

/**FOOTER*/
footer {
  background-color: var(--bg-body);
  color: var(--principal);
  padding: 30px 0;
  z-index: 999;
  font-size: 13px;
  font-family: 'FontRegular', Arial, Helvetica, sans-serif;
}
footer .container {
  display: flex; /* Usamos flexbox */
  justify-content: space-between; /* Espacio entre elementos */
  align-items: center; /* Centrado vertical */
}
footer .logo {
  margin-right: auto;
}
footer .logo img {
  width: 150px;
}

footer .line2 {
  border-left: 1px solid var(--oro);
  height: 120px;
  margin: 0 80px; /* Espacio alrededor de la línea */
}
footer .redes-sociales {
  text-align: right;
}
footer .redes-sociales a {
  font-size: 13px;
}
footer .redes-sociales div {
  font-family: 'FontRegular', Arial, Helvetica, sans-serif;;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  /*margin-top: 20px;*/
  margin-bottom: 20px;
}
footer .redes-sociales img {
  width: 14px;
  height: 14px;
}
footer .redes-sociales .copyright {
  text-decoration: none;
}
footer p {
  margin: 0;
  font-family: 'FontRegular', Arial, Helvetica, sans-serif;
  line-height: 1.6;
}
footer .contacto div {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 49px;
  margin-bottom: 20px;
  text-decoration: none;
}
footer a {
  font-family: 'FontRegular', Arial, Helvetica, sans-serif;
}

/* ANIMACIÓN REDES SOCIALES FOOTER*/
.redes-sociales2 {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  padding: 0;
}

.redes-sociales2 a {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 30px;
  height: 30px;
  border: 1px solid var(--oro);
  border-radius: 50%;
  background-color: transparent;
  overflow: visible;
  cursor: pointer;
  transition: transform 0.3s ease, background-color 0.3s ease;
  z-index: 1;
}

.redes-sociales2 a::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  border: 5px solid var(--oro);
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(1);
  transform-origin: center center;
  opacity: 0;
  z-index: -1;
  transition: none;
}

.redes-sociales2 a svg {
  fill: var(--oro); /* Establecer el color (el svg no debe tener propiedad fill) */
}

.redes-sociales2 a:hover {
  transform: scale(0.95);
  background-color: var(--oro);
}
/* Agregamos una regla específica para el SVG dentro del enlace en hover */
.redes-sociales2 a:hover svg {
  fill: #fff;
}

.redes-sociales2 a:hover::after {
  animation: pulse-effect 0.6s ease-out forwards;
}

.home-timeline {
  background-color: var(--oro);
  padding: 20px;
  height: 90vh;
  min-height: 600px;
  max-height: 750px;
}
.home-timeline .title2 {
    font-size: 30px;
    color: white;
}
.home-timeline .line {
  width: 40%;
  max-width: 300px;
  border-bottom: 1px solid white;
}
.mt-timel {
  margin-top: 40px;
}

@keyframes pulse-social-mobile-menu {
    0% {
      transform: /*translate(-50%, -50%)*/ scale(0.85);
      opacity: 0.4;
  }
  100% {
      transform: /*translate(-50%, -50%)*/ scale(1.0);
      opacity: 1.0;
  }
}

@keyframes pulse-effect {
  0% {
      transform: translate(-50%, -50%) scale(1);
      opacity: 0.4;
  }
  100% {
      transform: translate(-50%, -50%) scale(1.5);
      opacity: 0;
  }
}

.redes-sociales2 img {
  width: 24px;
  height: 24px;
  object-fit: contain;
  z-index: 2;
}

/* TERMINA ANIMACIÓN REDES SOCIALES FOOTER*/

footer .enlaces-pie {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
footer .enlaces-pie a {
  color: var(--principal);
  text-decoration: none;
  margin: 0;
  padding: 0;
  line-height: 1;
  display: block; /* Convertimos los enlaces en bloques */
}
footer .enlaces-pie .underl {
  text-decoration: underline;
}
footer .copyright {
  margin-top: 0;
  padding-top: -22px; /* Añadido relleno superior */
}
footer a {
  color: var(--principal);
}

/**TERMINA FOOTER*/

/** CAMBIOS AL DROPDOWN DEL MENU */

/* Quitar el triángulo por defecto */
.dropdown-toggle::after {
    display: none;
}

/* Agregar el signo + */
.dropdown-toggle::before {
    content: '+';
    display: inline-block;
    margin-left: 1.5em; /* Aumentado el margen izquierdo */
    font-family: 'FontRegular';
    font-size: 1.2em;
    transition: transform 0.3s ease;
    float: right; /* Añadido para mover a la derecha */
    position: absolute; /* Posicionamiento absoluto */
    right: 15px; /* Distancia desde la derecha */
    top: 50%; /* Centrar verticalmente */
    transform: translateY(-55%); /* Ajuste fino del centrado vertical */
}

/* Cambiar a signo - cuando está expandido */
.dropdown-toggle[aria-expanded="true"]::before {
    content: '-';
    transform: translateY(-56%);
}

/* Quitar el triángulo por defecto siempre */
.dropdown-toggle::before {
    display: none;
}

/** TERMINA CAMBIOS AL DROPDOWN DEL MENU */


/** TITULOS GENERALES **/
.section-title-top .line {
  width: 40%;
  border-bottom: 1px solid var(--oro);
}

/** TERMINA TITULOS GENERALES **/

.legals a,
.legals a:visited,
.legals a:active,
.legals a:hover {
  color: var(--oro);
  text-decoration: underline;
}

#home-proyects .carousel-indicators .active::before {
  animation: pulse-effect 1.6s infinite ease-out forwards;
}

/* ALERTS */
.alert-gold {
    --bs-alert-color: white;
    --bs-alert-bg: var(--principal);
    --bs-alert-border-color: var(--principal);
    --bs-alert-link-color: var(--principal);
}

/* reCPATCHA */
.grecaptcha-badge { 
      visibility: hidden !important;
  }
.recaptcha-notice {
  font-size: 8px;
}
.recaptcha-notice a,
.recaptcha-notice a:visited,
.recaptcha-notice a:active,
.recaptcha-notice a:hover {
  color: var(--oro);
  text-decoration: underline;
}

/** MEDIA QUERIES GENERALES*/

@media (min-width: 400px) and (max-width: 960px) and (max-height: 600px){
  #whatsapp-form-popup .title-form-whats {
    margin-bottom: -5px;
  }
  #whatsapp-form-popup .form-control {
    padding: .175rem .25rem;
  }
}

@media (max-width: 320px) {
  #whatsapp-form-popup {
    right: -4px;
    bottom: auto;
    width: 280px; 
    max-width: 280px; 
  }
}

@media (min-width: 500px) {
  .home-values a:hover .text{
    transform: translate(-50%, -800%); /* Mueve el texto hacia arriba */
  }
}

@media (min-width: 520px) {
  #home-proyects .tower-effect:hover .tower-line {
    width: 25vw;
  }
  #home-proyects .nextproy-effect:hover .nextproy-line {
    width: 25vw;
  }

  .navbar-toggler .navbar-toggler-icon {
    width: 30px;
    height: 30px;
  }
  nav a{
      margin-left: 10px;
      margin-right: 0;
      width: auto;
      height: auto;
  }
  .form {
      width: 50%;
      height: 30px;
  }
  .form a{
    font-size: 8px;
    letter-spacing: 4px;
  }
  Nav ul a {
    font-size: 16px;
    letter-spacing: 6px;
  }
}

@media (min-width: 650px ) and (max-width: 980px) and (max-height: 600px) and (orientation: landscape) {
  .video-inicio video {
    height: 90vh;
    margin-top: 100px;
  }
}

@media (min-width: 768px) {
  .title {
    font-size: 15px;
    display: inline-block;
  }
  .paragraph {
    font-size: 17px;
  }

  #home-proyects .tower-effect:hover .tower-line {
    width: 10vw;
  }
  #home-proyects .prototype-text {
    font-size: 10px;
  }
  #home-proyects .nextproy-effect:hover .nextproy-line {
    width: 8vw;
  }
  #home-proyects .nextproy-info-text {
    font-size: 12px;
  }

  nav {
      height: 120px;
  }
  nav a{
      width: auto;
  }
  .form{
      width: auto;
      height: 30px;
  }  
  nav ul a { /*NAV*/
    font-size: 20px;
    letter-spacing: 8px;
  }
  nav .redes-sociales img { /*NAV*/
    width: 50px;
  }

}

/* Un @media para cuando el ancho es máximo 920px, el alto es máximo 130px, y es orientación portratit */
@media (min-width: 720px) and (max-width: 920px) and (max-height: 1300px) and (orientation: portrait) {
  .nav-menu-text,
  .dropdown-menu a,
  .dropdown-menu a:active,
  .dropdown-menu a:hover,
  .dropdown-menu a:visited {
    font-size: 25px;
  }
  nav.mobile_active .redes-sociales img {
    transform: scale(1.2) rotateY(360deg);
    opacity: 0.95;
  }
}

@media (min-width: 992px) {
  .video-inicio{
    height: 100%;
    max-height: 100vh;
    margin-top: 0px;
    overflow-y: hidden;
  }
  .video-inicio video {
    /*margin-top: 0px;*/
    margin-top: 50px;
  }
  .video-inicio img {
    height: calc(100vh - 120px); /* La imagen ocupa el resto de la altura de la pantalla */
  }

  .title {
    font-size: 20px;
  }
  .paragraph {
    line-height: 1.5em;
    font-size: 20px;
  }

  #home-proyects .prototype-text {
    font-size: 15px;
  }
  #home-proyects .line {
    width: 300px;
  }
  #home-proyects .title2 {
    font-size: 30px;
  }
  #home-proyects .nextproy-effect:hover .nextproy-line {
    width: 8vw;
  }
  #home-proyects .nextproy-info-text {
    font-size: 14px;
  }

  .home-values .line {
    width: 300px;
  }
  .home-values .title2 {
    font-size: 30px;
  }
  .home-timeline .line {
    width: 300px;
  }

  #home-form .con img {
    width: 100%;
    height: 55vw;
    max-height: 750px;
    object-fit: contain; /* La imagen se ajusta para cubrir todo el contenedor, manteniendo su relación de aspecto */
    display: block; /* Elimina el espacio adicional debajo de la imagen */
    margin: 0 auto; /* Centra la imagen horizontalmente */    
  }

  nav {
      height: 140px;
  }
  nav a{
      width: auto;
  }
  nav a img{
      width: 100%;
      height: 100%;
      margin-left: 0;
  }
  nav ul a{
      margin: 0;
      width: 100%;
      height: 100%;
      font-size: 10px;
      letter-spacing: 4px;
  }
  .form a{
      height: 100%;
      font-size: 10px;
      letter-spacing: 4px;
  }
  .btn1{
    width: 140px;
  }
  .btn2{
    width: 130px;
  }
  .navbar-nav {
    height: 100%;
  }
  .text-effect,
  .nav-menu-text {
    min-width: 135px; /* Ajusta el ancho según el texto más largo */
  }

  .section-title-top .line {
    width: 300px;
  }
  .section-title-top .title2 {
    font-size: 30px;
  }

}

@media (min-width: 992px ) and (max-width: 1400px) {
  .title3 {
    font-size: 1vw;
  }
}

@media (min-width: 999px) {
  .dropdown-menu a,
  .dropdown-menu a:active,
  .dropdown-menu a:hover,
  .dropdown-menu a:visited {
    background-color: var(--bg-menu-mobile);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
  }
  #home-proyects .carousel-inner .banner{
    min-height: 550px;
    max-height: 800px;
  }
}

@media (min-width: 1010px) {
  .btn2{
    width: 140px;
  }
}

@media (min-width: 1022px ) and (max-width: 1400px) and (orientation: landscape) {
  .video-inicio video {
    height: 100vh;
    margin-top: 0;
  }
}


@media (min-width: 1200px) {
  .btn1{
    width: 220px;
  }
  .btn2{
    width: 180px;
  }
}

@media (min-width: 1300px) {
  #home-proyects .prototype-text {
    font-size: 20px;
  }
  #home-proyects .tower-effect:hover .tower-line {
    /* width: 12vw; */
    width: 10vw;
  }
  #home-proyects .nextproy-info-text {
    font-size: 17px;
  }

  nav {
    height: 120px;
  }
  nav a img {
    max-height: 86px;
  }
  .form a{
    font-size: 11px;
    letter-spacing: 4px;    
    height: 40px;
    margin-top: -6px;
  }
  nav ul a { /*NAV*/
    font-size: 11px;
    letter-spacing: 4px;
  }
  .btn1{
      width: 250px;
  }
  .btn2{
      width: 160px;
  }
  .text-effect,
  .nav-menu-text {
    min-width: 140px; /* Ajusta el ancho según el texto más largo */
  }

  #home-proyects .carousel-inner img .banner,
  #home-proyects img .banner {
    width: 100%;
    height: 36vw;
    min-height: 550px;
    max-height: 800px;
    object-fit: fill;
  }

}

@media (min-width: 1400px) {
  .video-inicio{
    /*height: 100vh;*/
    margin-top: 0;
  }
  .video-inicio video {
    height: 100%;
    margin-top: -70px;
  }
  #home-proyects .tower-effect:hover .tower-line {
    /* width: 13vw; */
    width: 10vw;
  }

  .home-values a:hover .text{
    transform: translate(-50%, -550%); /* Mueve el texto hacia arriba */
  }

  .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
    max-width: 1360px !important;
  }
  .form a{
    font-size: 13px;
    letter-spacing: 5px;
  }
  Nav ul a {
    font-size: 14px;
    letter-spacing: 5px;
  }
  .btn1{
      width: 285px;
  }
  .btn2{
      width: 180px;
  }  
  .text-effect,
  .nav-menu-text {
    min-width: 140px; /* Ajusta el ancho según el texto más largo */
  }

}

@media (min-width: 1500px) {
  #home-proyects .tower-effect:hover .tower-line {
    /* width: 14vw; */
    width: 12vw;
  }
}

@media (min-width: 1700px) {
  .home-values a:hover .text{
    transform: translate(-50%, -700%); /* Mueve el texto hacia arriba */
  }

  .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
    max-width: 1520px !important;
  }
  .form a{
    font-size: 15px;
    letter-spacing: 6px;
  }
  nav ul a { /*NAV*/
    font-size: 15px;
    letter-spacing: 6px;
  }
  .btn1{
    width: 325px;
  }
  .btn2{
    width: 216px;
  }  
  .text-effect {
    min-width: 220px; /* Ajusta el ancho según el texto más largo */
  }
  .nav-menu-text {
    font-size: 16px;
    min-width: 140px; /* Ajusta el ancho según el texto más largo */
  }
  .nav-item:nth-child(1) {
    min-width: 240px;
  }
  .nav-item:nth-child(3) {
    min-width: 360px;
  }
  #home-proyects .carousel-inner img .banner,
  #home-proyects img .banner {
    width: 100%;
    height: 38vw;
    min-height: 620px;
    max-height: 800px;
    object-fit: fill;
  }
}

@media (min-width: 1880px) and (min-height: 1080px) {
  .nav-item {
      border: 1px none red;
      min-width: 200px;
  }
  .nav-item:nth-child(2) {
    min-width: 200px;
  }
}

@media (min-width: 1900px) {
  .home-values a:hover .text{
    transform: translate(-50%, -800%); /* Mueve el texto hacia arriba */
  }
}

@media (min-width: 2500px) {
.video-inicio{
    height: 100vh;
    margin-top: 0;
  }
  .video-inicio video {
    height: 100%;
    margin-top: 50px;
  }
}

@media (min-width: 3000px) and ((min-height: 1000px) and (max-height: 1600px)) {
  .video-inicio{
    height: 110vh;
    max-height: 110vh;
    margin-top: 0px;
    overflow-y: hidden;
  }
  .video-inicio video {
    height: 110vh;
    margin-top: -150px;
  }
}


@media (max-width: 417px) {
 #home-proyects .carousel-inner img .banner,
  #home-proyects img .banner {
    height: 40vw;
  }
  .title {
    text-align: center;
  }
}

@media (max-width: 499px) {
  #home-proyects .carousel-inner img .banner {
    height: 40vw;
  }
  #home-proyects img .banner {
    height: 80vw;
  }
  .navbar-toggler .navbar-toggler-icon {
    width: 30px;
    height: 30px;
  }
  nav .navbar-brand img{
    /*margin-left: 10px;
    width: 80px;*/
    width: 80px;
  }
  nav .navbar-branda a{
      margin-left: 10px;
      width: auto;
  }
  .navbar-brand img{
      margin-right: 0 !important;
      padding-right: 0 !important;
  }
  .form {
      width: 40%;
  }
  .form a{
      height: 25px;
      margin-top: -33px;
  }
  .btn1 {
    width: 140px;
  }
  .dropdown-toggle::before {
        content: '+';
        display: inline-block;
        margin-left: 1.5em;
        font-family: 'FontRegular';
        font-size: 1.2em;
        transition: transform 0.3s ease;
        float: right;
        position: absolute;
        right: 70px!important;
        top: 50%;
        transform: translateY(-55%);
    }
    .svg-bullets {
      width: 30px;
      height: 30px;
    }
}

@media (max-width: 576px) {
  .paragraph p {
    padding-left: 10px;
    padding-right: 10px;
  }
  .home-us {
    margin-top: 0;
  }
  .home-mision {
    margin-top: 10px;
  }
  /* Para solo 3 cols en mobile
  .carousel-div-infobullets {
    bottom: 20px; 
    font-size: 11px;
  } */
   .carousel-div-infobullets {
    bottom: 5px; 
    font-size: 9px;
  }
  .svg-bullets {
      width: 40px;
      height: 40px;
  }
}

@media (max-width: 768px) {
  footer .container {
      flex-direction: column; /* Cambiamos a columna en pantallas pequeñas */
      align-items: flex-start;
  }
  footer .contacto div {
    margin-top: 0;
  }
  footer .logo {
    margin-right: 0; /* Eliminamos el margen en pantallas pequeñas */
    margin-bottom: 25px; /* Añadimos margen inferior para separar del contacto */
  }
  footer .redes-sociales {
      align-items: flex-start;
      text-align: left;
  }
  footer .enlaces-pie {
    align-items: flex-start;
  }
  footer .redes-sociales div {
    margin-top: 10px;
    justify-content: flex-start;
  }
  footer .copyright {
    margin-top: 0;
    padding-top: 0;
  }
  .btn1 {
    margin-left: -50px;
  }
}

@media (max-width: 991px) {
  #home-form img {
    width: 95%;
  }
  .navbar-nav {
    margin-top: 120px;
  }

  .menu_top_socials {
    display: block;
    visibility: visible;
    margin-top: 50px;
  }

  .form a{
    margin-bottom: 4px;
    margin-top: -4px;
  }
  .navbar-brand {
    display: flex;
    justify-content: center;
  }
  nav .navbar-brand img {
        width: 80px;
        margin-left: -55px
  }

  .home-timeline {
    min-height: 90vw;
    max-height: 660px;
  }
  .mt-timel {
    margin-top: 10px;
  }
  .timeline__image img, .timeline__image svg {
    padding: 0;
    max-width: 90%;
    max-height: 90%;
  }
  .timeline__year {
    font-size: 1.1rem!important;
    margin-bottom: 0.5rem;
    /*margin-top: -1.5rem;*/
  }
  .timeline__description {
    font-size: 0.85rem!important;
  }

  footer .contacto div {
    margin-right: 60px;
  }

}

/* Un @media para cuando el ancho es máximo 990px, el alto es máximo 500px, y es orientación landscape */
@media (max-width: 990px) and (max-height: 500px) and (orientation: landscape) {
  .navbar-nav {
    margin-top: 10px;
  }
  .menu_top_socials {
    margin-top: -30px;
  }
  
}

/* Mostrar los símbolos + y - solo en móvil */
@media (max-width: 991.98px) {
    .dropdown-toggle::before {
        content: '+';
        display: inline-block;
        margin-left: 1.5em;
        font-family: 'FontRegular';
        font-size: 1.2em;
        transition: transform 0.3s ease;
        float: right;
        position: absolute;
        /*right: 15px;*/
        right: 90px;
        top: 50%;
        transform: translateY(-55%);
    }

    .dropdown-toggle[aria-expanded="true"]::before {
        content: '-';
        transform: translateY(-56%);
    }

    .dropdown-toggle {
        position: relative;
        /*padding-right: 40px;*/
        padding-right: 0;

    }
}

@media (max-width: 1179px) {
  .navbar  {
    border: 1px none white;
    padding: 1.0rem 1.5rem;
  }
  .icon-values-text {
    font-size: 1.9vw;
    padding-top: 0;
    padding-bottom: 20px;
  }
  footer .logo img {
    width: 90px;
  }
  /* Para solo 3 cols en mobile
  .svg-bullets { 
      width: 50px;
      height: 50px;
  } */
   .svg-bullets {
      width: 30px;
      height: 30px;
  }
}

@media (max-width: 1180px) {
  .navbar-brand {
    min-width: 120px
  }
  .btn-form {
      min-height: 40px;
  }
}

@media (min-width: 768px) and (max-width: 820px) and (min-height: 1024px) and (max-height: 1180px){
  .dropdown-toggle::before {
        right: 200px;
    }
  #home-proyects .carousel-inner .banner {
    min-height: 400px;
  }
}

@media (min-width: 768px) and (max-width: 1400px) and (min-height: 768px) and (max-height: 1200px){
  .carousel-div-infobullets {
    bottom: 20px; 
    max-width: 98%; 
    font-size: 14px;
  }
  #home-proyects .carousel-inner .banner {
    min-height: 400px;
  }
}

@media (min-width: 1266px) and (max-width: 1465px) and (min-height: 668px){
  .carousel-div-infobullets {
    bottom: 35px; 
    max-width: 98%; 
    font-size: 14px;
  }
  #home-proyects .carousel-inner .banner {
    min-height: 400px;
  }
}

@media (min-width: 1466px) and (min-height: 668px){
  .carousel-div-infobullets {
    bottom: 50px; 
    max-width: 98%; 
    font-size: 18px;
  }
  .svg-bullets {
      width: 70px;
      height: 70px;
  }
}

/*@media (width: 820px) and (height: 1180px){
  .dropdown-toggle::before {
        right: 200px;
    }
}*/

/** TERMINA MEDIA QUERIES GENERALES*/
