:root{
    --blue: #5178A0;
}
* {
font-size: 0.8vw;
box-sizing: border-box;
padding: 0;
margin: 0;
font-family: "Montserrat", sans-serif; }
body { color:#444; background: #f4f4f4; margin: 0; overflow-x: hidden;}
.strong { font-weight: 600; }
ul{list-style:none;}
a{text-decoration: none; color: inherit;}
h1{color:var(--blue); font-weight:700;}
h1.home{font-size:3.5rem;}
h1.pages{font-size:3rem;}
h2{font-size:2.6rem; font-weight:700;}
h3{font-size:1.875rem; font-weight:100; text-align: center; margin:4px 0;}
h4{font-size: 15px; text-align: center;font-weight: 500;}
h5{font-size: 23px; text-align: center; margin:4px 0; text-transform:uppercase;}
h6{font-size:15px; font-weight:600; text-align: center; margin:4px auto;line-height: 16px;}

.main{
width: 100%;
padding-top: 5vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
header{
background: #a7a7a7;
position: fixed;
top: 0;
z-index: 9999;
box-sizing: border-box;
width:100%;
padding: 0px 30px;
display: flex;
}
.gap-xs{
    gap:0.5rem;
    }
.gap-s{
gap:1.25rem;
}
.gap-m{
gap:1.875rem;
 }
.gap-l{
 gap:2.5rem;
}
header{
background: #a7a7a7;
position: fixed;
 top: 0;
            z-index: 9999;
            box-sizing: border-box;
            width: 100%;
            padding: 0px 30px;
            display: flex;
            height: 70px; /* Altura fija para el header */
    }
    .gap-xs{
        gap:0.5rem;
        }
    .gap-s{
    gap:1.25rem;
    }
    .gap-m{
    gap:1.875rem;
     }
    .gap-l{
     gap:2.5rem;
    }
         
    .logo {
        display: flex;
        justify-content: center;
        height: auto;
        align-items: center;
    }
    
    .logo_space {
        height: 50px;
        width: 200px;
        margin: auto;
        background: url('../imgs/GISERCORP_logo.svg') no-repeat center;
        background-size: contain;
    }
    
 
    .menu {
        display: flex;
        flex-direction: row;
        align-items: center;
        height: 100%;
        margin-right: auto;
        width: 100%;
        justify-content: space-between;
    }
    
    .nav-links {
        display: flex;
        height: 100%;
    }
    
    .nav-links li {
        position: relative;
        height: 100%;
    }
    
    .nav-links li a {
        display: flex;
        align-items: center;
        height: 100%;
        padding: 0 20px;
        font-size: 1rem;
        font-weight: 400;
        letter-spacing: 1px;
        text-transform: uppercase;
        color: white;
        border-right: 1px solid #E7E7E7;
        transition: background 0.5s, color 0.5s;
    }
    
    .nav-links li a:hover {
        background: #0F5897;
        color: white;
    }
    
    .nav-links li ul {
        position: absolute;
        left: 0;
        background-color: #161616;
        flex-direction: column;
        display: none;
        min-width: 200px;
        z-index: 1000;
    }
    
    .nav-links li:hover > ul,
    .nav-links li.active ul {
        display: block;
    }
    
    .nav-links li ul li {
        display: block;
        width: 250px;
        height: auto;
    }
    
    .nav-links li ul li a {
        color: #ACACAC;
        font-size: 1rem;
        border-bottom: 1px solid #424242;
        height: auto;
        padding: 15px 20px;
    }
    
    .nav-links li ul li a:hover {
        background-color: var(--blue);
        color: white;
    }
    
    .nav-links li.sub-menu a svg {
        margin-left: 0.2rem;
        transition: transform 0.3s ease-in-out;
    }
    
    /* Animación del SVG en sub-menu para escritorio (hover) */
    @media (min-width: 993px) {
        .nav-links li.sub-menu:hover a svg {
            transform: rotate(180deg);
        }
    }
    
    /* Nuevos estilos para menú responsive */
    .menu-toggle {
        display: none;
        cursor: pointer;
        background: none;
        border: none;
        color: white;
        font-size: 24px;
        margin-left: auto;
        z-index: 10000;
    }
    
    .overlay {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.6);
        opacity: 0;
        visibility: hidden;
        transition: all 0.3s ease;
        z-index: 9000;
    }

.c_foot{
  background: #000;
  width: 100%;
  color: #fff;
  bottom: 0;
  padding: 30px 0;

}

.c_foot .foot{
    width: 90%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: auto;
}

.c_foot .foot .logo-foot{
    width: 10rem;
    transition: filter 0.3s ease-in-out;
    filter: grayscale(100%);
}
.c_foot .foot .logo-foot:hover{
    filter: grayscale(0%);
}
.cont2{
    width: 100%;
    background-color: #f4f4f4;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 400px;
  
    
}
.cont2 .c_content{
    width: 45%;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
   

}
.cont3 {
    background: #5178A0;
    width: 100%;
    padding: 50px 0px;
    height: auto;

}
.hero{
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 60vh;
    padding-left: 5%;


    .inner{
        display: flex;
        justify-content: flex-start;
        flex-direction: column;
        align-items: flex-start;
        width: 70%;
    }
    .box-hero{
        width: 100%;
        background: url("../imgs/bg_box_1.webp") no-repeat right/cover;
        height: 100%;
        
    }
}
.banner{
    width: 100%;
    display: flex;
    height: auto; 
    
}
.banner2{
    width: 100%;
    display: flex;
    height: auto; 
    
}
.box2{
    background: url("../imgs/bg_box_2.webp") no-repeat;
    background-size:cover;
    width: 50%;
    height: 55vh;
}
.box3{
    background: url("../imgs/element_box_3.webp") no-repeat;
    background-size:cover;
    width: 60%;
    height: 46vh;
}
.box-4{
    background: url('../imgs/bg_box_4.webp') center/cover;
    height: auto;
    padding: 10% 0;
}
.b_content{
    display: flex;
    margin: auto;
    align-items: center;
    justify-content: center;
   
}
.content{
    width: 60%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
} 
.content2{
    width: 60%;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin: auto;
    align-items: center;
    padding: 3% 5%;
    border-radius: 1rem;
    background: white;
} 
.center-flex{
    justify-content: center;
    align-items: center;

}

.container{
    display: flex;
    width: 80%;
    padding: 5% 0;
    justify-content: center;
    align-items: center;
    margin: auto;
}
.container-fs{
    display: flex;
    width: 100%;
    padding: 3% 0;
    justify-content: center;
    align-items: center;
    margin: auto;
}
.column{
    flex-direction: column;
}
.inn{
    display: flex;
    flex-direction: column;
}
.f1{
    flex: 1;
}
.f2{
    flex: 2;
}
p.small{
    width: 60%;
}
.container-white{
    padding: 1rem 2rem;
    background: white;
    border-radius:2rem;
}


.p{
    font-size: 17px;
    margin: 10px 0;
    color: #333;
    text-align: center;
}
.btn{
    padding: 0.5rem 2rem;
    width: fit-content;
    font-weight: 500;
    text-align: center;
    color: white;
    border:2px solid #9bd1ff;
    font-size: 1.2rem;
    margin: auto;
    border-radius:1rem;
    background: #0F5897;
    transition: all 0.3s;
}
.btn_big{
    padding: 0.5rem 2rem;
    width: fit-content;
    font-weight: 500;
    text-align: center;
    color: white;
    border:2px solid #9bd1ff;
    font-size: 1.6rem;
    margin: auto;
    border-radius:1rem;
    background: #0F5897;
    transition: all 0.3s;
}
.btn_big:hover, .btn:hover{
    background: #2076c0;
    cursor: pointer;
}
.page_banner{
    background: #f6f6f6;
    width: 100%;
    color:#333;
    height: 430px;
    margin: auto;
    justify-content: center;
    display: flex;
}

.page_banner .t_banner{
    flex: 35%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    
}

.page_banner .t_banner .text{
    width: 70%;
    margin: auto;
}

.page_banner .i_banner{
    flex: 35%;
    width: 80%;;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}
.page_banner .i_banner img{
width: auto;
height: 90%;
}
.parraf_u p{ 
    font-size: 15px;
    color: #fff;
    line-height: 24px;
    text-align: center;
}
.info{
    display:flex;
    width: 100%;
background: rgb(91,91,92);
background: linear-gradient(180deg, rgba(91,91,92,1) 0%, rgb(82, 82, 84) 100%);
   margin: auto;

}
.info2{
    display:flex;

    width: 100%;
   margin: auto;

}
 .i1{
    flex:1;
    margin: 20px 0px;
}

.c2{
    background: #5B5B5C;

    text-align: center;
    padding-top:2%;
    width: 100%;
    color:#fff;

}
#active{
    border-left: 1px solid rgb(130, 127, 127);
    }

.dark-cont{
    background: #333;
    width: 100%;
}
.gray-cont{
    background: #dbdbdb;
    width: 100%;
}
.light-gray-cont{
    background: #ecebeb;
    width: 100%;
}
.blue-cont{
    background: var(--blue);
    width: 100%;
}
.page_container_blue{
width: 100%;
display: flex;
margin: auto;
height: 45vh;
padding: 0 5%;
justify-content: flex-end;
align-items: center;
background: url('../imgs/nosotros_4.webp') no-repeat left/contain #5178A0;
margin: auto;
}
.p_tab{
width: 50%;
display: flex;
flex-direction: column;
text-align: left;
}


.p-about{
    display: flex;
    flex-direction: column;
    width: 100%;
    align-items: center;
    justify-content: center;
    padding-top:70vh;
    background: url('../imgs/about.webp') center top/contain;
    background-repeat: no-repeat;
}
.p-clients{
    display: flex;
    flex-direction: column;
    width: 100%;
    align-items: center;
    justify-content: center;
    padding-top:70vh;
    background: url('../imgs/clients.webp') center top/contain;
    background-repeat: no-repeat;
}
img.little {
    border-radius: 3rem;
    max-width: 300px;
    width: 100%;
    aspect-ratio: 16 / 9;
    height: auto;
    object-fit: cover;
    object-position: 50% 20%;
    display: block; 
}
img.medium {
    border-radius: 3rem;
    max-width: 600px;
    width: 100%;
    aspect-ratio: 16 / 9;
    height: auto;
    object-fit: cover;
    object-position: 50% 20%;
    display: block; 
}
p{   
    margin: 10px 0;
    color: #333;
}

.dark{
    color:#333;
}

.white{
    color:#fff;
}
.blue{
    color:var(--blue);
}
.lowsize{
    font-size: 0.85rem;
    line-height: 1rem;
}
.normalsize{
    font-size: 1rem;
    line-height: 1.3rem;
}
.mediumsize{
    font-size: 1.2rem;
    line-height: 1.6rem;
}
.bigsize{
    font-size: 1.4rem;
    line-height: 1.8rem;
}
.maxsize{
    font-size: 1.7rem;
    line-height: 2rem;
}

.tleft{
    text-align: left;
}

.tcenter{
    text-align: center;
}
.j-start{
   align-items:  flex-start;
}

.icons{
        display: grid;
        width: 80%;
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      
        
}
    
.icons .item{
        display: flex;
        padding: 2rem 1.5rem;
        border-radius: 0.6rem;
        align-items: center; 
        text-align: center;
        justify-content: center;
        flex-direction: column;
        background: #eeeeee;

       svg{
        color:var(--blue);
       height: 3rem;
       width: auto;
        margin-bottom: 2rem;
       }
        
}

.client-grid{
    display: grid;
    width: 80%;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    padding-bottom:5%;

img{
width: 100%;
border-radius: 2rem;
height: auto;
filter: grayscale(100%); /* Imagen en blanco y negro */
opacity: 0.7;
transition: filter 0.3s ease-in-out; /* Transición suave */

}

img:hover {
cursor: pointer;
opacity: 1;
filter: grayscale(0%); /* Recupera el color original */

}

}
    .line{
        width: 350px;
        margin: 10px auto;
        height: 5px;
    background: rgb(255,255,255);
    background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(15,88,151,1) 50%, rgba(255,255,255,0) 100%);
    }

    .texbox{
        display: flex;
        flex-direction: column;
    }
    .t-box{
        width: 90%;
    }
    .pad2{
        padding: 2% 0;
    }
    
    .p1{
        font-size: 14px;
        color: #333;
        line-height: 14px;
    }
  
    .modal { 
        display: none; 
        position: fixed; 
        z-index: 99999; 
        left: 0; 
        top: 0; 
        width: 100%; 
        height: 100%; 
        background-color: rgba(0,0,0,0.7); 

        img {
            max-width: 100%;
            height: auto;
        }
    }
    .modal-content {
        position: relative;
            background-color: white;
            margin: 2% auto;
            padding: 0.5rem;
            width: 40dvw;
            max-height: 90vh;
            overflow-y: auto;
    }
    .close {
        position: absolute;
        top: 10px;
        right: 15px;
        background: white;
        padding: 0.4rem 1rem;
        border-radius: 50%;
        font-size: 2rem;
        cursor: pointer;
        transition: all 0.3s;
    }

    .close:hover{
        background: var(--blue);
        color:white;

    }

    /* Estilo base del carrusel */
.carousel-container {
    width: 100%;
    max-width: 100vw;
    overflow: hidden;
    position: relative;
    touch-action: pan-x;
    margin: 0 auto;
    -webkit-overflow-scrolling: touch;
    -webkit-tap-highlight-color: transparent;
  }
  
  .carousel-wrapper {
    position: relative;
    overflow: hidden;
  }
  
  /* Efecto de gradiente en los bordes */
  .carousel-wrapper::before,
  .carousel-wrapper::after {
    content: "";
    position: absolute;
    top: 0;
    width: 12%;
    height: 100%;
    z-index: 10;
    pointer-events: none;
  }
  
  .carousel-wrapper::before {
    left: 0;
    background: linear-gradient(to right, var(--blue), rgba(255, 255, 255, 0));
  }
  
  .carousel-wrapper::after {
    right: 0;
    background: linear-gradient(to left, var(--blue), rgba(255, 255, 255, 0));
  }
  
  .carousel {
    display: flex;
    transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
    padding: 15px 0;
    will-change: transform;
    backface-visibility: hidden;
  }
  
  .carousel-item {
    min-width: calc(100vw / 4); /* Por defecto 4 items en pantallas grandes */
    padding: 0 10px;
    flex-shrink: 0;
    box-sizing: border-box;
    transform: translate3d(0, 0, 0); /* Mejora el rendimiento en dispositivos móviles */
  }
  
  .carousel-item-inner {
    overflow: hidden;
    height: 100%;
    transform-style: preserve-3d;
    transition: all 0.3s ease;
    border-radius: 2rem;
  }
  
  
  .carousel-item img {
    width: 100%;
    height: 30vh;
    max-height: 350px;
    border-radius: 2rem 2rem 0 0;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
  }
  
  /* Indicadores de puntos */
  .indicator-dots {
    display: flex;
    justify-content: center;
    margin: 1.5rem 0;
  }
  
  .dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: rgb(147, 178, 235);
    margin: 0 6px;
    cursor: pointer;
    transition: all 0.3s ease;
    transform: scale(1);
  }
  
  .dot:hover {
    background-color: #aaa;
  }
  
  .dot.active {
    background-color: #fff;
    transform: scale(1.2);
  }
  