/* ---------------------------------------------------
    ESTILOS GENERALES
   ----------------------------------------------------- */

/* Carga la fuente Montserrat-Medium desde el directorio de fuentes */
@font-face {
  src: url(../fonts/Montserrat-Medium.ttf); /* Ruta relativa al archivo de fuente */
  font-family: Montserrat; /* Nombre de referencia para usar la fuente */
}

:root {
  --color-primary: rgba(51,51,51,1);
  --color-accent: rgb(255,204,0);
  --color-overlay: rgba(51,51,51,0.4);
  --font-main: 'Montserrat', sans-serif;
}

/* ---------------------------------------------------
    SECCIÓN ENCABEZADO
    Seleccionar el color para el fondo del encabezado
----------------------------------------------------- */

.navbar {
    background-color: var(--color-primary)!important; /* Color gris oscuro */
}

/* Dejar color de los elementos del encabezado blancos */
.navbar-light .navbar-brand,
.navbar-light .navbar-toggler {
    color: white !important;;
}


/* ---------------------------------------------------
    SECCIÓN SERVICIOS
    Estilos principales para la sección de servicios
----------------------------------------------------- */

/* Barra decorativa amarilla antes de la sección */
#-SERVICIOS:before{
  content: '';
  background: var(--color-accent);
  display: block;
  height: 5px;
  width: 100%;
  margin: 0px auto 15px auto; 
}

/* Contenedor principal de servicios */
#-SERVICIOS{
  position: flex; /* Nota: No se cambió 'flex' por 'relative' así lo sugiera DEEPSEEK porque se despiporra */
  overflow: hidden;
  padding: 20px 0;
  background: var(--color-primary); /* Fondo gris oscuro */
  margin: 0;
}

/* Estilos para las diapositivas del swiper (carrusel) */
.swiper-container-MB .swiper-slide, .swiper-container-Web .swiper-slide{
  background-size: cover;
  box-sizing: border-box;
  font-family: var(--font-main); 
  color: white;
}

.slideCableado,
.slideElec,
.slideSolar,
.slideManteni,
.slideIndustria,
.slideOficinas,
.slideAsesoria,
.slideHogar {
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
}

/* Filtro semitransparente sobre las imágenes de fondo */
.slidefilter{
  width: 100%;
  height: 100%;
  background-color: var(--color-overlay); /* Fondo semitransparente */
}

/* Clases para las diferentes imágenes de fondo de los servicios */
.slideIndustria{background-image: url(../img/industrial.jpg);}
.slideOficinas{background-image: url(../img/oficinas.jpg);}
.slideAsesoria{background-image: url(../img/ref_advisory.jpg);}
.slideCableado{background-image: url(../img/ref_CablEstru.jpg);}
.slideManteni{background-image: url(../img/ref_mant.jpg);}
.slideElec{background-image: url(../img/RedElec.jpg);}
.slideHogar{background-image: url(../img/hogar.jpg);}
.slideSolar{background-image: url(../img/Solar.jpg);}

/* Estilos para títulos de una sola palabra */
.slideTitleOneWord{
  font-family: var(--font-main);
  position: absolute;
  font-size: 5vw; /* Tamaño relativo al ancho de la ventana */
  top: 5vh; /* Posición relativa a la altura de la ventana */
}
.slideTitleOneWord,
.slideCableado h1, 
.slideElec h1, 
.slideManteni h1,
.slideSolar h1 {
  position: absolute;
  font-size: 5vw;
  top: 5vh;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  text-align: center;
}

/* Estilos específicos para títulos de ciertos servicios */
.slide-title {
  position: absolute;
  font-size: 5vw;
  top: 5vh;
}

/* Contenedor de botones en las diapositivas */
.buttoncontainerslide {
  position: absolute;
  font-family: sans-serif;
  font-weight: 400;
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  padding: 40px 0px;
  width: 240px;
}

/* Estilos base para botones */
.slidebutton {
  font-family: var(--font-main);
  position: relative;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 16px;
  font-weight: 400;
  line-height: 45px;
  cursor: pointer;
  max-width: 160px;
  width: 100%;
}

/* ---------------------------------------------------
    ANIMACIONES DE BOTONES "VER MAS"
    Efectos complejos con transformaciones 3D
----------------------------------------------------- */
.slidebutton:hover {
  text-decoration: none;
}

/* Clase para el efecto especial del botón */
.effect04 {
  --uismLinkDisplay: var(--smLinkDisplay, inline-flex);
  display: var(--uismLinkDisplay);
  color: #FFF;
  outline: solid  2px #FFF;
  position: relative;
  transition-duration: 0.4s;
  overflow: hidden;
}

/* Transiciones para el efecto */
.effect04::before, .effect04 span{
  margin: 0 auto;
  transition-timing-function: cubic-bezier(0.86, 0, 0.07, 1);
  transition-duration: 0.4s;
}

/* Efecto hover - cambia fondo y borde */
.effect04:hover{
  background-color: #000;
  outline: solid  2px #000;
}

/* Efecto hover - animación del texto principal */
.effect04:hover span{
  -webkit-transform: translateY(-400%) scale(-0.1,20);
          transform: translateY(-400%) scale(-0.1,20);
  color: white;        
}

/* Texto alternativo que aparece al hacer hover */
.effect04::before{
  content: attr(data-sm-link-text);
  color: #FFF;
  position: absolute;
  left: 0;
  right: 0;
  margin: auto;
  -webkit-transform: translateY(500%) scale(-0.1,20);
          transform: translateY(500%) scale(-0.1,20);
}

/* Efecto hover - animación del texto alternativo */
.effect04:hover::before{
  letter-spacing: 0.05em;
  -webkit-transform: translateY(0) scale(1,1);
          transform: translateY(0) scale(1,1);
}

/* ---------------------------------------------------
    MEDIA QUERIES PARA PANTALLAS MUY PEQUEÑAS
    Oculta elementos en dispositivos extremadamente pequeños
----------------------------------------------------- */
@media only screen and (max-height: 199px){
  #-SERVICIOS{
    display: none;
  }
}
@media only screen and (max-width: 259px){
  #-SERVICIOS, #-CLIENTES{
    display: none;
  }
}

/* ---------------------------------------------------
    Ajustes detallados para diferentes tamaños de pantalla móvil
    MEDIA QUERIES PARA VERSIÓN MÓVIL
    ----------------------------------------------------- */

/* Dispositivos con altura entre 200-299px */

@media only screen and (min-width: 259px) and (max-width: 484px) and (min-height: 200px) and (max-height: 299px){
  #-SERVICIOS{
    height: 46vh;
  }
  .swiper-container-MB .swiper-slide, .swiper-container-Web .swiper-slide{
    height: 30vh !important;
  }
  .slideTitleOneWord{
    top: 50%;
    transform: translateY(-50%);
    left: 13vw;
    font-size: 4vw;   
  }
  .slideCableado h1{
    text-align: center;
    top: 50%;
    transform: translateY(-50%);
    left: 13vw;
    font-size: 4vw;   
  }
  .slideManteni h1{
    top: 50%;
    transform: translateY(-50%);
    left: 12vw;
    font-size: 3.8vw;   
  }
  .slideElec h1, .slideSolar h1{
    top: 50%;
    transform: translateY(-50%);
    left: 13vw;
    font-size: 4vw;   
  }
  .buttoncontainerslide{
    top: 50%;
    transform: translateY(-50%);
    right: 15vw;
    padding: 20px 0px;
    width: 80px;
  }
  .slidebutton{
    letter-spacing: 0.1em;
    font-size: 10px;
    line-height: 30px;
  }
}

@media only screen and (min-width: 485px) and (max-width: 767px) and (min-height: 200px) and (max-height: 299px){
  #-SERVICIOS{
    height: 47vh;
  }
  .swiper-container-MB .swiper-slide, .swiper-container-Web .swiper-slide{
    height: 30vh !important;
  }
  .slideTitleOneWord{
    top: 50%;
    transform: translateY(-50%);
    left: 12vw;
    font-size: 4vw;    
  }
  .slideCableado h1{
    text-align: center;
    top: 50%;
    transform: translateY(-50%);
    left: 12vw;
    font-size: 3.5vw;     
  }
  .slideManteni h1{
    top: 50%;
    transform: translateY(-50%);
    left: 12vw;
    font-size: 4vw;     
  }
  .slideElec h1, .slideSolar h1{
    top: 50%;
    transform: translateY(-50%);
    left: 12vw;
    font-size: 3.5vw;   
  }
  .buttoncontainerslide{
    top: 50%;
    transform: translateY(-50%);
    right: 4vw;
  }
}

/* Dispositivos con altura entre 300-349px */
@media only screen and (min-width: 259px) and (max-width: 379px) and (min-height: 300px) and (max-height: 349px){
  #-SERVICIOS{
    height: 51.5vh;
  }
  .swiper-container-MB .swiper-slide, .swiper-container-Web .swiper-slide{
    height: 40vh !important;
  }
  .slideTitleOneWord{
    top: 50%;
    transform: translateY(-50%);
    left: 12vw;
    font-size: 6vw;
  }
  .slideCableado h1{
    text-align: center;
    top: 50%;
    transform: translateY(-50%);
    left: 12vw;
    font-size: 4.3vw;
  }
  .slideManteni h1{
    top: 51%;
    transform: translateY(-50%);
    left: 11vw;
    font-size: 4.3vw;
  }
  .slideElec h1, .slideSolar h1{
    top: 50%;
    transform: translateY(-50%);
    left: 12vw;
    font-size: 5vw;
  }
  .buttoncontainerslide{
    top: 50%;
    transform: translateY(-50%);
    right: 15vw;
    padding: 20px 0px;
    width: 70px;
  }
  .slidebutton {
    letter-spacing: 0.1em;
    font-size: 10px;
    line-height: 30px;
  }
}

@media only screen and (min-width: 380px) and (max-width: 767px) and (min-height: 300px) and (max-height: 349px){
  #-SERVICIOS{
    height: 52.8vh;
  }
  .swiper-container-MB .swiper-slide, .swiper-container-Web .swiper-slide{
    height: 40vh !important;
  }
  .slideTitleOneWord{
    top: 50%;
    transform: translateY(-50%);
    left: 12vw;
    font-size: 4.9vw;   
  }
  .slideCableado h1{
    text-align: center;
    top: 50%;
    transform: translateY(-50%);
    left: 12vw;
    font-size: 4.5vw;   
  }
  .slideManteni h1{
    top: 50%;
    transform: translateY(-50%);
    left: 10vw;
    font-size: 4.8vw;   
  }
  .slideElec h1, .slideSolar h1{
    top: 50%;
    transform: translateY(-50%);
    left: 12vw;
    font-size: 4.8vw;   
  }
  .buttoncontainerslide{
    transform: scale(.7,.7);
    right: -15px;
  }
}

/* Dispositivos con altura entre 350-509px */
@media only screen and (min-width: 259px) and (max-width: 459px) and (min-height: 350px) and (max-height: 509px){
  #-SERVICIOS{
    height: 60.5vh;
  }
  .swiper-container-MB .swiper-slide, .swiper-container-Web .swiper-slide{
    height: 50vh !important;
  }
  .slideTitleOneWord{
    top: 10vh;
    left: 50%;
    transform: translateX(-50%);
    font-size: 9vw;
  }
  .slideCableado h1{
    text-align: center;
    top: 5.5vh;
    left: 15vw;
    font-size: 8vw;
  }
  .slideManteni h1{
    top: 10vh;
    left: 50%;
    transform: translateX(-50%);
    font-size: 8vw;
  }
  .slideElec h1, .slideSolar h1{
    text-align: center;
    transform: translateX(-50%);
    top: 5.5vh;
    left: 50%;
    font-size: 8.5vw;
  }
  .buttoncontainerslide{
    top: 20vh;
    left: 50%;
    transform: translateX(-50%);
  }
}

@media only screen and (min-width: 460px) and (max-width: 767px) and (min-height: 350px) and (max-height: 509px){
  #-SERVICIOS{
    height: 62vh;
  }
  .swiper-container-MB .swiper-slide, .swiper-container-Web .swiper-slide{
    height: 50vh !important;
  }
  .slideTitleOneWord{
    top: 50%;
    transform: translateY(-50%);
    left: 10vw;
    font-size: 7vw;   
  }
  .slideCableado h1{
    text-align: center;
    top: 50%;
    transform: translateY(-50%);
    left: 8vw;
    font-size: 4.9vw;   
  }
  .slideManteni h1{
    top: 50%;
    transform: translateY(-50%);
    left: 8vw;
    font-size: 4.9vw;   
  }
  .slideElec h1, .slideSolar h1{
    top: 50%;
    transform: translateY(-50%);
    left: 8vw;
    font-size: 4.9vw;   
  }
  .buttoncontainerslide{
    top: 50%;
    transform: translateY(-50%);
    right: 2vw;
  }
  .slideManteni .buttoncontainerslide{
    top: 50%;
    transform: translateY(-50%);
    right: 7.5vw;
    width: 150px;
  }
}

/* Dispositivos con altura entre 510-649px */
@media only screen and (min-width: 259px) and (max-width: 399px) and (min-height: 510px) and (max-height: 649px){
  #-SERVICIOS{
    height: 68vh;
  }
  .swiper-container-MB .swiper-slide, .swiper-container-Web .swiper-slide{
    height: 60vh !important;
  }
  .slideTitleOneWord{
    top: 9vh;
    left: 50%;
    transform: translateX(-50%);
    font-size: 10vw;   
  }
  .slideCableado h1{
    text-align: center;
    top: 9vh;
    left: 50%;
    transform: translateX(-50%);
    font-size: 9vw;   
  }
  .slideManteni h1{
    top: 14vh;
    left: 50%;
    transform: translateX(-50%);
    font-size: 9vw;   
  }
  .slideElec h1, .slideSolar h1{
    text-align: center;
    top: 9vh;
    left: 50%;
    transform: translateX(-50%);
    font-size: 9vw;   
  }
  .buttoncontainerslide{
    top: 34vh;
    left: 50%;
    transform: translateX(-50%);
  }
}
@media only screen and (min-width: 400px) and (max-width: 767px) and (min-height: 510px) and (max-height: 649px){
  #-SERVICIOS:before{
    margin: 3px auto 20px auto; 
  }
  #-SERVICIOS{
    height: 71vh;
  }
  .swiper-container-MB .swiper-slide, .swiper-container-Web .swiper-slide{
    height: 60vh !important;
  }
  .slideTitleOneWord{
    top: 9vh;
    left: 50%;
    transform: translateX(-50%);
    font-size: 10vw;   
  }
  .slideCableado h1{
    text-align: center;
    top: 9vh;
    left: 50%;
    transform: translateX(-50%);
    font-size: 9vw;   
  }
  .slideManteni h1{
    top: 14vh;
    left: 50%;
    transform: translateX(-50%);
    font-size: 9vw;   
  }
  .slideElec h1, .slideSolar h1{
    text-align: center;
    top: 9vh;
    left: 50%;
    transform: translateX(-50%);
    font-size: 9vw;   
  }
  .buttoncontainerslide{
    top: 34vh;
    left: 50%;
    transform: translateX(-50%);
  }
}
/* Dispositivos con altura entre 650-adelante */
@media only screen and (min-width: 259px) and (max-width: 550px) and (min-height: 650px){
  #-SERVICIOS:before{
    margin: 8px auto 35px auto; 
  }
  #-SERVICIOS{
    height: 75vh;
  }
  .swiper-container-MB .swiper-slide, .swiper-container-Web .swiper-slide{
    height: 65vh !important;
  }
  .slideTitleOneWord{
    top: 13vh;
    font-size: 14vw;
    left: 50%;
    transform: translateX(-50%);    
  }
  .slideCableado h1{
    text-align: center;
    top: 12vh;
    left: 50%;
    transform: translateX(-50%);
    font-size: 9vw;   
  }
  .slideManteni h1{
    top: 15vh;
    left: 6.5vw;
    font-size: 9vw;   
  }
  .slideElec h1, .slideSolar h1{
    text-align: center;
    top: 12vh;
    left: 50%;
    transform: translateX(-50%);
    font-size: 10vw;   
  }
  .buttoncontainerslide{
    top: 45vh;
    left: 50%;
    transform: translateX(-50%);
  }
}
@media only screen and (min-width: 551px) and (max-width: 767px) and (min-height: 650px){
  #-SERVICIOS:before{
    margin: 8px auto 35px auto; 
  }
  #-SERVICIOS{
    height: 77vh;
  }
  .swiper-container-MB .swiper-slide, .swiper-container-Web .swiper-slide{
    height: 65vh !important;
  }
  .slideTitleOneWord{
    top: 13vh;
    font-size: 10vw;
    left: 50%;
    transform: translateX(-50%);    
  }
  .slideCableado h1{
    text-align: center;
    top: 12vh;
    left: 50%;
    transform: translateX(-50%);
    font-size: 9vw;   
  }
  .slideManteni h1{
    top: 15vh;
    left: 6.5vw;
    font-size: 9vw;   
  }
  .slideElec h1, .slideSolar h1{
    text-align: center;
    top: 12vh;
    left: 50%;
    transform: translateX(-50%);
    font-size: 10vw;   
  }
  .buttoncontainerslide{
    top: 45vh;
    left: 50%;
    transform: translateX(-50%);
  }
}

/* ---------------------------------------------------
    MEDIA QUERIES PARA VERSIÓN ESCRITORIO
    Ajustes para diferentes alturas de pantalla en desktop
----------------------------------------------------- */

/* Pantallas de escritorio con altura pequeña (hasta 474px) */

@media only screen and (min-width: 768px) and (max-height: 474px){
  #-SERVICIOS{
    height: 280px;
  }
  .swiper-container-MB .swiper-slide, .swiper-container-Web .swiper-slide{
    width: 600px;
    height: 166px !important;
  }
  .slideTitleOneWord{
    text-align: center;
    top: 55px;
    left: 50px;
    font-size: 50px;   
  }
  .slideCableado h1{
    text-align: center;
    top: 30px;
    left: 10px;
    font-size: 43px;   
  }
  .slideManteni h1{
    text-align: center;
    top: 62px;
    left: 10px;
    font-size: 40px;   
  }
  .slideElec h1, .slideSolar h1{
    text-align: center;
    top: 30px;
    left: 50px;
    font-size: 45px;   
  }
  .buttoncontainerslide{
    top: 20px;
    left: 80%;
    transform: translateX(-50%);
  }
}

/* Pantallas de escritorio medianas (475-767px de altura) */
@media only screen and (min-width: 768px) and (min-height: 475px) and (max-height: 767px){
  #-SERVICIOS{
    height: 82vh;
    max-height: 590px;
  }
  .swiper-container-MB .swiper-slide, .swiper-container-Web .swiper-slide{
    width: 900px;
    height: 60vh !important;
  }
.slideTitleOneWord{
    text-align: center;
    top: 15vh;
    left: 50%;
    transform: translateX(-50%);
    font-size: 65px;   
  }
  .slideCableado h1{
    text-align: center;
    top: 12vh;
    left: 50%;
    transform: translateX(-50%);
    font-size: 55px;   
  }
  .slideManteni h1{
    text-align: center;
    top: 18vh;
    left: 50%;
    transform: translateX(-50%);
    font-size: 55px;   
  }
  .slideElec h1, .slideSolar h1{
    text-align: center;
    top: 12vh;
    left: 50%;
    transform: translateX(-50%);
    font-size: 55px;   
  }
  .buttoncontainerslide{
    top: 35vh;
    left: 50%;
    transform: translateX(-50%);
  }
}

/* Pantallas de escritorio grandes (más de 768px de altura) */
@media only screen and (min-width: 768px) and (min-height: 768px){
  #-SERVICIOS{
    height: 84vh;
  }
  .swiper-container-MB .swiper-slide, .swiper-container-Web .swiper-slide{
    width: 900px;
    height: 70vh !important;
  }
  .slideTitleOneWord{
    text-align: center;
    top: 17vh;
    left: 50%;
    transform: translateX(-50%);
    font-size: 65px;   
  }
  .slideCableado h1{
    text-align: center;
    top: 15vh;
    left: 50%;
    transform: translateX(-50%);
    font-size: 55px;   
  }
  .slideManteni h1{
    text-align: center;
    top: 18vh;
    left: 50%;
    transform: translateX(-50%);
    font-size: 55px;   
  }
  .slideElec h1, .slideSolar h1{
    text-align: center;
    top: 15vh;
    left: 50%;
    transform: translateX(-50%);
    font-size: 55px;   
  }
  .buttoncontainerslide{
    top: 50vh;
    left: 50%;
    transform: translateX(-50%);
  }
}

/* ---------------------------------------------------
    SECCIÓN COBERTURA
    Estilos para la sección de cobertura geográfica
----------------------------------------------------- */
#-COBERTURA{
  display: flex; /* Nota: se cambió 'flex-block' por 'flex' */
  height: auto;
  margin: 7px 0px;
  padding: 30px 15px 15px 15px;
  overflow: hidden;
  background-color: rgba(130,130,130,1);
  position: relative;
}

#-COBERTURA h2{
  color: white;
}

/* Texto introductorio */
.cober_introtext{
  display: inline-block;
  padding: 0px 10%;
  text-align: center;
  width: 60%;
}

/* Contenedor del mapa */
.cober_map{
  display: inline-block;
  text-align: center;
  width: 30%;
}

.cober_map img{
  padding-top: 5px;
  height: 200px;
  width: 150px;
}

/* ---------------------------------------------------
    SECCIÓN CLIENTES
    Estilos para el carrusel de logos de clientes
----------------------------------------------------- */
#-CLIENTES{
  display: flex-block; /* Nota: No se cambió 'flex-block' por 'flex' así lo sugiera DEEPSEEK porque se despiporra */
  margin: 7px 0px;
  padding: 30px 15px 15px 15px;
  overflow: hidden;
  background-color: rgba(205,205,205,1);
  position: relative;
}

/* Contenedor del swiper de clientes */
.swiper-container-client{
  width: 100%;
  height: 100%;
}

/* Diapositivas del swiper de clientes */
.swiper-container-client .swiper-slide{
  color: black;
  width: 150px;
  max-height: 150px !important;
  display: -webkit-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  align-items: center;
}

/* Ajustes del contenedor del swiper */
.swiper-container-client .swiper-wrapper{
  padding: 0 7px;
}

/* Flechas de navegación */
.swiper-container-client .swiper-button-next, .swiper-container-client .swiper-button-prev{
  position: absolute;
  top: 185px;
}

/* Estilos para los logos de clientes */
.logo-client img{
  max-width: 150px;
  max-height: 150px;
}
