@font-face {
    font-family: 'Monstserrat-Regular';
    src: url('../fonts/Montserrat-Regular_2.otf') format('woff2');
}

@font-face {
    font-family: 'MyriadPro-Regular';
    src: url('../fonts/MyriadPro-Regular_2.otf') format('woff2');
}
body {
    font-family: 'MyriadPro-Regular', sans-serif;
    
}

:root {

  /**
   * coloress
   */

  --white: hsl(0, 0%, 100%);
  --black: #1d1d1d;
  --blue: #3357B1;

  /**
   * tipografia
   */

  --ff-Monstserrat: 'Monstserrat-Regular', sans-serif;
  --ff-MyriadPro: 'MyriadPro-Regular', sans-serif;

  
  --headline-lg: 5rem;
  --headline-md: 3rem;
  --headline-sm: 2rem;
  --title-lg: 1.8rem;
  --title-md: 1.5rem;
  --title-sm: 1.4rem;
  
  --fw-500: 500;
  --fw-700: 700;

  --section-padding: 120px;

  --shadow-1: 0px 2px 20px hsla(209, 36%, 72%, 0.2);
  --shadow-2: 0 4px 16px hsla(0, 0%, 0%, 0.06);

  --radius-circle: 50%;
  --radius-12: 12px;
  --radius-6: 6px;
  --radius-4: 4px;

  --transition-1: 0.25s ease;
  --transition-2: 0.5s ease;
  --transition-3: 1s ease;
  --cubic-in: cubic-bezier(0.51, 0.03, 0.64, 0.28);
  --cubic-out: cubic-bezier(0.05, 0.83, 0.52, 0.97);

}

.hero1-index{
    position: relative;
    height: 100vh;
    width: 100vw;
    z-index: 1;
    margin: 0px;
}

.img-hero1-index {
    width: 100%;
    height: 100%;
    object-fit: cover;
    margin: 0;
}

.text-hero1{
    position: absolute;
    top: 65%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #fff;
    text-align: center;
    z-index: 2;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
}

.text-hero1 h5{
    font-size: 2.5rem;
    margin-bottom: 20px;
    font-weight: bolder;
    line-height: 3rem;
    margin: 0;
}

.text-hero1 p{
    font-size: 2.25rem;
    margin-bottom: 30px;
    line-height: 2.7rem;
    font-weight: lighter;
    margin: 0;

}

.hero2-index{
    position: relative;
    height: 100vh;
    width: 100vw;
}

.img-hero2-index{
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    margin: -10px 0 0 -10px;
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    min-width: 100vw;
}


.gallery-zoom-section {
    position: relative;
    height: 100vh;
    width: 100%;
    overflow: hidden; 
    background-color: #ffffff; 
    display: flex;
    align-items: center;
    justify-content: center;
}

.text-hero2 {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #fff;
    text-align: center;
    z-index: 10; 
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;
    pointer-events: none; 
}

.text-year{
    display: flex;
    gap: 7px;
}

.text-year h3{
    font-size: 6rem;
    line-height: 1rem;
}

.text-hero2 h5 {
    font-size: 2.5rem;
    margin-bottom: 20px;
    font-weight: lighter;
    line-height: 6rem;
    margin: 0;
}

.text-hero2 h4 {
    font-size: 8rem;
    margin-bottom: 20px;
    font-weight: lighter;
    line-height: 2rem;
    margin: 0;
}

.text-hero2 p {
    font-size: 3.5rem;
    margin-bottom: 30px;
    line-height: 1.7rem;
    font-weight: lighter;
    margin: 0;
}
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: auto 40vh auto; 
    width: 100%;
    height: 100%;
    gap: 12px;
    padding: 12px;
}

.gallery-item {
    width: 100%;
    height: 100%;
    border-radius: 12px;
    overflow: hidden;
    position: relative;
}

.gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.item-1 { grid-column: span 2; }
.item-2 { grid-column: span 2; }
.item-3 { grid-column: span 1; }
.item-4 { grid-column: span 2; } 
.item-5 { grid-column: span 1; }
.item-6 { grid-column: span 2; }
.item-7 { grid-column: span 2; }


.background-mapa{
    background-color: #1d1d1d;
    width: 100%;
    display: flex;
    width: 100%;
    min-height: 650px;
    flex-direction: row;
}

.columna-1 {
    flex: 1;
    padding: 20px;
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: left;
    padding: 5%;
    gap: 20px;
}

.columna-1 h4{
    font-family: 'Monstserrat-Regular', sans-serif;
    font-size: clamp(3rem, 3.3vw, 3rem);
    line-height: clamp(3.5rem, 3.8vw, 3rem);
    font-weight: lighter;
}

.columna-1 p{
    margin-top: 20px;
    font-size: 2rem;
    line-height: 2rem;
    font-weight: 100;
}   

.btns-mapa{
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-around;
    gap: 20px;
    margin-top: 50px;
    
}
.btns-mapa a{
    color: #fff;
    font-family: 'Monstserrat-Regular', sans-serif;
    font-size: 1.3rem;
    white-space: nowrap;
    padding: 10px 25px;
    background-color: royalblue;
    gap: 20px;
    border: 1px solid #ffffff;
    border-radius: 50px;
    text-decoration: none;
    transition: all .3s ease;
}

.btns-mapa a:hover{
    background-color: white;
    color: royalblue;
    border: royalblue 1px solid;


}

.columna-2 {
    flex: 4;
    padding: 20px;
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 100px 0px 30px 0px;
}


.titulo-map{
    display: flex;
    justify-content: right;
    width: 100%;
    font-size: clamp(2rem, 1vw, 1.5rem);
    font-weight: 100;
    text-align: right;
    padding: 0px 50px;
}

.mapa{
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.mapa {
    width: 100%;       
    max-width: 750px;  
    height: auto;      
    aspect-ratio: 750 / 520; /* Mantiene la proporción del SVG */
}


.layout1{
    width: 100%;
    height: 100%;
    object-fit: contain;
    position: absolute;

}

.layout2{
    z-index: 2;
    width: 100%;
    height: 100%;
    object-fit: contain;
    position: absolute;
    padding-top: 8%;
    padding: 7% 13.5% 0 14%;
}

.layout3{
    z-index: 2;
    width: 70px;
    height: 70px;
    object-fit: contain;
    position: absolute;
    top: 35%;
    right: 15%;
}

.texto-layout3{
    color: #fff;
    position: absolute;
    top: 50%;
    right: 15%;
    font-size: 1.6rem;
    font-weight: 100;
}

.layout4{
    z-index: 2;
    width: 70px;
    height: 70px;
    object-fit: contain;
    position: absolute;
    bottom: 10%;
    right: 15%;
}

.texto-layout4{
    color: #fff;
    position: absolute;
    bottom: 3%;
    right: 10%;
    font-size: 1.6rem;
    font-weight: 100;
}


@media (max-width: 768px){


    .mapa{
        max-width: 500px;
    }

    .layout3{
        width: 40px;
        height: 40px;
    }
    .layout4{
        width: 40px;
        height: 40px;
    }
    .texto-layout3,.texto-layout4{
        font-size: 1rem;
    }
}

@media (max-width: 468px){

    .mapa{
        max-width: 300px;
    }

    .btns-mapa{
        flex-direction: column;
    }
}

@media (max-width: 1100px){

    .background-mapa{
        flex-direction: column;
    }

    .columna-1{
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 50px 10% 0px 10%;
        text-align: center;
    }
}


.curva-mapa{
    position: relative;
    padding:0 0 30% 0;
}

.cm-layout1{
    position: absolute;
}

.cm-layout2 {
    position: absolute;
    z-index: 4;
}

.cm-layout3 {
    z-index: 2;
    width: 20%;
    height: 100%;
    object-fit: contain;
    position: absolute;
    top: -30%;
    left: 19%;
}

.section-cotizacion{
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 40px;
    padding: 0 0 5% 0;
}

.texto-cotizacion{
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 60%;
    color: #000000;
}

.texto-cotizacion h4{
    font-family: 'MyriadPro-Regular', sans-serif;
    font-size: clamp(3rem, 3.5vw, 4rem);
    line-height: clamp(3rem, 3.8vw, 4rem);
    font-weight: normal;
}

.texto-cotizacion p{
    font-family: 'MyriadPro-Regular', sans-serif;
    margin-top: 20px;
     font-size: clamp(2.25rem, 1vw, 2.5rem);
     margin-top: 40px;
     font-weight: lighter;
     line-height: 3rem;
}


.texto-cotizacion strong{
     font-weight: bolder;
}


.texto-cotizacion a {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.2rem;
    white-space: nowrap;
    padding: 10px 25px;
    background-color: royalblue;
    gap: 20px;
    border: 1px solid #ffffff;
    border-radius: 50px;
    text-decoration: none;
    width: fit-content;
    margin-top: 60px;
    color: #fff;
    transition: all 0.3s ease;
}

.texto-cotizacion a:hover {
    background-color: white;
    color: royalblue;
    border: royalblue 1px solid;
}


.img-cotizacion{
    width: 30%;
    height: auto;
    object-fit: contain;
    gap: 60px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-around;
}

.img-cotizacion img{
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.img-cotizacion .trailer{
    border-radius: 250px;
    box-shadow: -20px -20px 3px rgb(52, 89, 181);
}

.img-cotizacion .welcome{
    border-radius: 250px;
    box-shadow: 20px -20px 3px rgb(52, 89, 181);
}

@media (max-width: 768px){

        .section-cotizacion{
            flex-direction: column;

        }

        .img-cotizacion{
            display: flex;
            width: 100%;
            flex-direction: row-reverse;
            gap: 5%;
            padding: 0 20%;
        }

        .img-cotizacion img{
            width: 50%;
        }

        .texto-cotizacion{
            width: 100%;
            padding: 0 20%;
            text-align: justify;
            justify-content: center;
            display: flex;
            align-items: center;
        }

        .texto-cotizacion a{
            margin-top: 0;
            margin: 40px 0 20px 0;
        }

        .curva-mapa{
            padding: 0 0 40% 0;
        }

}



.container-servicios{
    background-color: #1d1d1d;
}

.flex-servicios{
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 30px;
    width: 100vw;
    height: 100vh;
    background-color: #1d1d1d;
}

.texto-servicio{
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 20%;
    color: #000000;
    padding: 0% 5%;
}

.texto-servicio h4{
    font-family: 'MyriadPro-Regular', sans-serif;
    font-size: clamp(2rem, 3.5vw, 3rem);
    line-height: clamp(2rem, 3.8vw, 3rem);
    font-weight: normal;
    color: #fff;
}

.img-servicio{
    width: 50%;
    height: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-around;

}

.img-servicio img{
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 20px;
}

.descripcion-servicio{
    width: 30%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 10px;
    color: #ffffff;
    padding: 0 15px;
}

.descripcion-servicio h5{
    font-family: 'MyriadPro-Regular', sans-serif;
    font-size: clamp(1.5rem, 2vw, 2.5rem);
    line-height: clamp(1.5rem, 2vw, 2.5rem);
    font-weight: normal;
}

.descripcion-servicio p{
    font-family: 'MyriadPro-Regular', sans-serif;
    margin-top: 20px;
     font-size: clamp(1rem, 1vw, 1.25rem);
     font-weight: 100;
}

.container-servicios {
    position: relative;
    height: 100vh;
    width: 100vw;
    overflow: hidden; 
    background-color: #1d1d1d; 
}

.flex-servicios {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 30px;
    width: 100vw;
    height: 100vh;
    
    position: absolute; 
    top: 0;
    left: 0;
    background-color: transparent; 
    pointer-events: none; 
}


.img-servicio, .descripcion-servicio {
    pointer-events: auto;
    will-change: transform, opacity; 
}