/*Generales*/
*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;    
}

@font-face{ 
    font-family: "reenie";
    src: url(reenie_beanie-regular.ttf);
}

@font-face{
    font-family: "helvetica-light";
    src: url(Helvetica-Light.ttf);
}    

::selection{
    color: white;
    background: #2f3f66;
}

html{
    scroll-behavior: smooth;
}

body{
    text-align: center;
    line-height: 1.4;
    font-family: "helvetica-light";
}

p{
    font-size: 22px;
    font-family: "helvetica-light"
}

h1{
    color: #a9a9a982;
    font-size: 38px;
    text-align: left;
    font-family: "helvetica-light"
}

h2{
    font-family: "reenie";
    font-size: 65px;;
    color: #2f3f66;
}

.header_pages{
    padding-top: 22px;
}

/* Estilos Menú Hamburgesa */
.menu a{
    font-size: 40px;
}

.menu-wrap {
    position: fixed;
    top: 0;
    right:0;
    z-index: 99;
}

.menu-wrap .toggler {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 999;
    cursor: pointer;
    width: 50px;
    height: 50px;
    opacity: 0;
}

.menu-wrap .hamburger {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 99;
    width: 60px;
    height: 60px;
    padding: 1rem;
    background: #2f3f66;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Hamburger Line */
.menu-wrap .hamburger > div {
    position: relative;
    flex: none;
    width: 100%;
    height: 2px;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s ease;
}

/* Hamburger Lines - Top & Bottom */
.menu-wrap .hamburger > div::before,
.menu-wrap .hamburger > div::after {
    content: '';
    position: absolute;
    z-index: 99;
    top: -10px;
    width: 100%;
    height: 2px;
    background: inherit;
}

/* Moves Line Down */
.menu-wrap .hamburger > div::after {
    top: 10px;
}

/* Toggler Animation */
.menu-wrap .toggler:checked + .hamburger > div {
    transform: rotate(135deg);
}

/* Turns Lines Into X */
.menu-wrap .toggler:checked + .hamburger > div:before,
.menu-wrap .toggler:checked + .hamburger > div:after {
    top: 0;
    transform: rotate(90deg);
}

/* Rotate On Hover When Checked */
.menu-wrap .toggler:checked:hover + .hamburger > div {
    transform: rotate(225deg);
}

/* Menú abierto */
.menu-wrap .toggler:checked ~ .menu {
    visibility: visible;
}
.menu-wrap .toggler:checked ~ .menu a:hover{
    color: #8c1f1f;
}

.menu-wrap .toggler:checked ~ .menu > div {
    transform: scale(1);
    transition-duration: 0.75s;
}

.menu-wrap .toggler:checked ~ .menu > div > div {
    opacity: 1;
    transition:  opacity 0.4s ease 0.4s;
}

.menu-wrap .menu {
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    visibility: hidden;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.menu-wrap .menu > div {
    background: #2f3f66f1;
    border-radius: 50%;
    width: 200vw;
    height: 200vw;
    display: flex;
    flex: none;
    align-items: center;
    justify-content: center;
    transform: scale(0);
    transition: all 0.4s ease;
}

.menu-wrap .menu > div > div {
    text-align: center;
    max-width: 90vw;
    max-height: 100vh;
    opacity: 0;
    transition: opacity 0.4s ease;
}

.menu-wrap .menu > div > div > ul > li {
    list-style: none;
    color: #fff;
    font-size: 1.5rem;
    padding: 1rem;
}

.menu-wrap .menu > div > div > ul > li > a {
    color: inherit;
    text-decoration: none;
    transition: color 0.4s ease;
}


/*Header Index*/
.header_index{
    background-image: url(../img/fondo_index2.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    height:100vh;
    width:100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.header_index img{
    transition: ease 1s;
}

.header_index img:hover{
    transform: scale(.9);
    opacity: .9;
}
.flecha{
    margin-top: -90px;
    transition: .5s ease;
}

.flecha a:hover{
    opacity: .5;
}

/*Index-S1*/
.index_s_1{
    padding-bottom: 30px;
    padding-top: 65px;
}

.index_s_1 a{
    font-size: 35px;
    font-family: "helvetica-light";
    color: black;
}

.index_s_1 a:hover{
    color: #8c1f1f;
}
    
.index_s_1 a:link{
    text-decoration: none;
    color: black;
    transition-duration: 0.5s;
    border: none;
}

.carita{
    padding-left: 185px;
    margin-top: -25px;
}

/*Somos-S1*/
.somos_s1{
    padding-top: 20px;
    text-align: left;
}

.somos_s1_text{
    padding-right: 15%;
}

/*Somos-S2*/
.somos_s2{
    margin-top: 50px;
}

.video_somos{
    padding-top: 40px;
}

/*Somos-S3*/
.somos_s3{
    margin-top: 100px;
    margin-bottom: 50px;
}

.somos_s3 img{
    padding-top: 30px;
    padding-bottom: 30px;
}

/*Somos-S4*/
.somos_s4{
    margin-bottom: 30px;
}

/*Servicios-S1*/
.servicios_s1{
    padding-top: 150px;
    padding-bottom: 40px;
}

.servicios_s1 img{
    padding-top: 60px;
    padding-bottom: 60px;
}

/*Potrafolio-S1*/
.proyectos{
    margin-bottom: 21px;
}
.portafolio_s1{
    padding-left: 5%;
    padding-right: 5%;
    padding-top: 23px;
    background-image: url(../img/workdesk2.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    padding-bottom: 460px;
    
}

.btn1{
    text-align: left;
}

.btn1 a{
    text-decoration: none;
    border: solid 4px black;
    color: #2f3f66;
    font-size: 40px;
    padding-top: 20px;
    padding-bottom: 195px;
    padding-left: 90px;
    padding-right: 90px;
    background-image: url(../img/residenciales.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    box-shadow: 2px -3px 25px 10px #00000070;
}

.btn2{
    transform: rotate(8deg);
}

.btn2 a{
    text-decoration: none;
    border: solid 4px black;
    color: #2f3f66;
    font-size: 40px;
    padding-top: 20px;
    padding-bottom: 232px;
    padding-left: 130px;
    padding-right: 130px;
    background-image: url(../img/corporativos.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    box-shadow: 2px -3px 25px 10px #00000070;
}

.btn3{
    text-align: right;
    transform: rotate(-3deg);
}

.btn3 a{
    text-decoration: none;
    border: solid 4px black;
    color: #2f3f66;
    font-size: 40px;
    padding-top: 20px;
    padding-bottom: 230px;
    padding-left: 120px;
    padding-right: 120px;
    background-image: url(../img/comerciales.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    box-shadow: 2px -3px 25px 10px #00000070;
}


.btn a:hover{
    color: #8c1f1f;
    box-shadow: 2px -3px 30px 0px #8c1f1f;
    border: solid 4px #8c1f1f;
}

/*residenciales*/
.carousel-control-next-icon, .carousel-control-prev-icon{
    height: 4rem;
    width: 4rem;
}

.owl-carousel h4{
    color: white;
    margin-top: -43px;
    background-color: #2f3f66;
    padding: 10px 0;
    position: relative;
    font-size: 16px;
}

.owl-carousel a{
    text-decoration: none;
}

.carousel-item a{
    text-decoration: none;
}

.carousel-item h4{
    color: white;
    margin-top: 14px;
    position: relative;
    font-size: 16px;
}

.carousel-caption{
    background-color: #2f3f66;
    margin-top: -52px;
    text-align: center;
}

.nuestros_proyectos{
    margin-bottom: 20px;
}

.btn_residenciales1 a{
    text-decoration: none;
    color: white;
    border: solid 2px #2f3f66;
    background-color: #2f3f66;
    font-size: 30px;
    padding-top: 5px;
    padding-bottom: 5px;
    padding-left: 25px;
    padding-right: 25px;
    margin-bottom: 30px;
}

.btn_comerciales1 a{
    text-decoration: none;
    color: #2f3f66;
    border: solid 2px #2f3f66;
    font-size: 30px;
    padding-top: 5px;
    padding-bottom: 5px;
    padding-left: 25px;
    padding-right: 25px;
    margin-bottom: 30px;
}

.btn_comerciales1 a:hover{
    color: white;
    background-color: #2f3f66;
}

.btn_corporativos1 a{
    text-decoration: none;
    color: #2f3f66;
    border: solid 2px #2f3f66;
    font-size: 30px;
    padding-top: 5px;
    padding-bottom: 5px;
    padding-left: 25px;
    padding-right: 25px;
    margin-bottom: 30px;
}

.btn_corporativos1 a:hover{
    color: white;
    background-color: #2f3f66;
}

.carrusel{
    margin-top: 50px;
}

.galeria{
    margin-top: 50px;
}

/*Comerciales*/
.btn_residenciales2 a{
    text-decoration: none;
    color: #2f3f66;
    border: solid 2px #2f3f66;
    font-size: 30px;
    padding-top: 5px;
    padding-bottom: 5px;
    padding-left: 25px;
    padding-right: 25px;
    margin-bottom: 30px;
}

.btn_residenciales2 a:hover{
    color: white;
    background-color: #2f3f66;
}

.btn_comerciales2 a{
    text-decoration: none;
    color: white;
    border: solid 2px #2f3f66;
    background-color: #2f3f66;
    font-size: 30px;
    padding-top: 5px;
    padding-bottom: 5px;
    padding-left: 25px;
    padding-right: 25px;
    margin-bottom: 30px;
}

/*Corporativos*/
.btn_corporativos2 a{
    text-decoration: none;
    color: white;
    border: solid 2px #2f3f66;
    background-color: #2f3f66;
    font-size: 30px;
    padding-top: 5px;
    padding-bottom: 5px;
    padding-left: 25px;
    padding-right: 25px;
    margin-bottom: 30px;
}

/*Contacto-S1*/
.contacto_s1{
    text-align: center;
    padding-top: 50px;
}

.contacto_s1 h2{
    text-align: center;
    padding-bottom: 30px;
}

.map{
    text-align: center;
    padding-bottom: 30px;
}

.map_info{
    padding-top: 30px;
}

/*Footer*/
footer{
    padding-bottom: 15px;
}

.links_footer a{
    text-decoration: none; 
}

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

.footer_logo{
    text-align: right !important;
}

.footer_comerciales{
    margin-top: 30px;
}


/*Media Queris*/
/* Large devices (desktops, less than 2000px) */
@media (max-width: 2000px) { 
}

/* Medium devices (tablets, less than 1400px)*/
@media (max-width: 1000px) {

}

/* Medium devices (tablets, less than 992px)*/
@media (max-width: 992px) { 
    .logo img{
        width: 60%;
    }
    .flecha img{
        width: 10%;
    }
    
    .servicios_s1 img{
        width: 90%
    }
    
    .somos_s1_text{
        padding-right: 0;
    }
    
    .somos_s1{
        text-align: center;
    }
    
    .btn_corporativos1{
        margin-top: 30px;
    }
    
    .btn_corporativos2{
        margin-top: 30px;
    }
    
    .btn_residenciales1 a{
        font-size: 35px
    }
    
    .btn_comerciales1 a{
        font-size: 35px;
    }
    
    .btn_corporativos1 a{
        font-size: 35px;
    }
    
    .btn_residenciales2 a{
        font-size: 35px;
    }
    
    .btn_comerciales2 a{
        font-size: 35px;
    }
    
    .btn_corporativos2 a{
    font-size: 35px;
    }
    
    .carousel-item h4 {
        font-size: 17px;
        margin-top: -60px;
    }    
    
    .contacto_s1{
    text-align: center;
    } 
    
    .contacto_s1 p{
    padding-top: 30px;
    }

    video{
        width: 650px;
    }
}   


/* Small devices (landscape phones, less than 768px) */
@media (max-width: 768px) {
    .servicios_s1 img{
        width: 100%
    }
    
    .btn3{
        padding-top: 50px;
    }
    
    .btn2{
        padding-top: 30px;
    }
    
    .btn_residenciales1{
        margin-bottom: 15px;
    }
    
    .btn_residenciales2{
        margin-bottom: 15px;
    }
    
    .btn_corporativos1 {
        margin-top: 15px;
    } 
    
    .btn_corporativos2{
        margin-top: 15px;
    }
    
    .btn_comerciales2 a{
        font-size: 40px;
        padding-left: 50px;
        padding-right: 50px;
    }
    
    .btn_residenciales2 a{
        font-size: 40px;
        padding-left: 40px;
        padding-right: 40px;
    }
    
    .btn_residenciales1 a{
        font-size: 40px;
        padding-left: 40px;
        padding-right: 40px;
    }
    
    .btn_comerciales1 a{
        font-size: 40px;
        padding-left: 50px;
        padding-right: 50px;
    }
    
    .btn_corporativos1 a{
        font-size: 40px;
        padding-left: 47px;
        padding-right: 48px;
    } 
    
    .btn_corporativos2 a{
        font-size: 40px;
        padding-left: 47px;
        padding-right: 48px;
    }
    
    .carousel-item h4{
        margin-top: -80px;
    }

    .galeria{
        margin-top: 0;
    }
    
    .galeria1{
        margin-top: 30px;
    }

    video{
        width: 450px;
    }
}

/* Extra small devices (portrait phones, less than 576px) */
@media (max-width: 576px) {
    .flecha img{
        width: 20%;
    }
    
    .flecha {
    margin-top: -120px;
    }
        
    p{
        padding-left: 8%;
        padding-right: 8%;
        font-size: 20px;
    }
    
    ol, ul {
        padding-left: 0;
    }
    
    .logo img {
        width: 75%;
    }
    
    .index_s_1 {
        padding-bottom: 15px;
        padding-top: 95px;
    }
    
    .index_s_1 a{
        font-size: 30px;
    }
    
    h1{
        font-size: 25px;
    }
    
    h2{
        font-size: 50px;
    }
    
    .proyectos {
        margin-bottom: 0px;
        padding-top: 20px;
    }
    
    .btn1{
        transform: rotate(5deg);
    }
    
    .btn2 {
        padding-top: 23px;
    }
    
    .btn3 {
        padding-top: 20px;
    }
    
    .btn1 a{
        padding-left: 30px;
        padding-right: 30px;
        border: solid 3px black;
    }
    
    .btn2 a{
        padding-left: 45px;
        padding-right: 45px;
        border: solid 3px black;
    }
    
    .btn3 a{
        padding-left: 38px;
        padding-right: 38px;
        border: solid 3px black;
    }
    
    .portafolio_s1{
        padding-top: 45px;
    }
    
    .nuestros_proyectos{
        margin-top: 20px;
    }
    
    .btn_residenciales1 a {
        font-size: 35px;
    }    
    
    .btn_comerciales1 a {
        font-size: 35px;
    }
    
    .btn_corporativos1 a {
        font-size: 35px;
    }
    
    .btn_residenciales2 a{
        font-size: 35px;
    }
    
    .btn_comerciales2 a{
        font-size: 35px;
    }
    
    .btn_corporativos2 a{
        font-size: 35px;
    }
    
    .lightboxOverlay{
        background-color: #2f3f66;
    }
    
    .footer_logo{
        display: none;
    }
    
    .footer_portafolio{
        margin-top: -110px;
        margin-bottom: 0;
    }
    
    .contacto_s1 h2{
        font-size: 42px;
        padding-bottom: 10px;
    }
    
    .email{
        font-size: 14px;
    }
    
    form{
        padding-left: 6%;
        padding-right: 6%;
    }

    video{
        width: 350px;
    }
}

/* Extra Extra small devices (portrait phones, less than 576px) */
@media (max-width: 400px) {
    video{
        width: 290px;
    }
}