@import url('https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,600;0,700;0,800;1,300;1,400;1,600;1,700;1,800&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');
* {
    margin: 0;
    padding: 0;
    font-family: 'Open Sans', sans-serif;
}

html {
    scroll-behavior: smooth;
}

body {
    background: #eeeeee;
    color: #000;
    font-family: "Roboto", "sans-serif";
}

.navbar {
    z-index: 4;
    background: rgba(0, 0, 0, 0);
    color: #eeeeee;
    display: grid;
    grid-template-columns: 1fr minmax(150px, 1fr) repeat(5, 1fr) minmax(50px, 1fr);
    align-items: center;
    width: 100vw;
    height: 60px;
    position: fixed;
    transition: all 1s ease;
}

.navbar__effect {
    background: rgb(0, 0, 0, 1);
    height: 80px;
}

.navbar__logo {
    width: 50px;
    height: 50px;
    grid-column: 1 / 2;
    justify-self: end;
    transition: all 1s ease;
}

.navbar__logo__effect {
    width: 60px;
    height: 60px;
}

.navbar__title {
    grid-column: 2/3;
    font-size: large;
    font-weight: 900;
    font-variant: small-caps;
}

.navbar__title-l {
    font-weight: 300;
}

.navbar__menu {
    grid-column: 3 / 8;
    display: flex;
    justify-content: space-around;
    justify-self: end;
    transition: all .5s;
}

.navbar__menu__item {
    list-style: none;
    padding: 15px;
    text-align: center;
}

.navbar__menu__item__ref {
    text-decoration: none;
    color: #ffffff;
    cursor: pointer;
    font-size: small;
    font-weight: bold;
    --clippy: polygon(0 0, 0 0, 0 100%, 0% 100%);
}

.navbar__access-btn {
    font-weight: 900;
    background: rgb(13, 144, 218);
    /* text-align: center; */
}

.navbar__menu__item__ref:after {
    content: "";
    display: block;
    background: rgb(255, 255, 255);
    width: 100%;
    margin-top: 3px;
    height: 3px;
    clip-path: var(--clippy);
    transition: all .5s;
}

.navbar__menu__item__ref:hover {
    --clippy: polygon(0 0, 100% 0, 0 100%, 100% 100%);
}


/* inicio icono animado */

.navbar__icon {
    display: none;
    height: 30%;
    transition: 0.5s ease-in-out;
}

.navbar__lbl-menu {
    width: 50px;
    height: 30px;
    position: relative;
    cursor: pointer;
}

.navbar__spn {
    position: absolute;
    content: "";
    background: rgb(255, 255, 255);
    width: 30px;
    height: 2px;
    border-radius: 5px;
    transition: all 400ms ease;
}

#spn2 {
    top: 11px;
}

#spn3 {
    top: 22px;
}

.navbar__btn-menu {
    display: none;
}

.navbar__btn-menu:checked~.navbar__lbl-menu #spn1 {
    transform: rotate(140deg);
    top: 10px;
}

.navbar__btn-menu:checked~.navbar__lbl-menu #spn2 {
    opacity: 0;
}

.navbar__btn-menu:checked~.navbar__lbl-menu #spn3 {
    transform: rotate(-140deg);
    top: 10px;
}


/* fin icono animado */

.hero {
    z-index: 2;
    height: 100vh;
    width: 100vw;
    min-height: 600px;
    animation: hero 60s infinite;
    transition: all 1s ease;
    animation-direction: alternate;
    background-position: bottom;
    background-size: cover;
}

.hero__background {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr minmax(250px, 1fr) 1fr 1fr 1fr;
    grid-template-rows: 1fr 1fr 1fr;
    overflow: hidden;
    background: rgba(6, 12, 31, 0.6);
    position: absolute;
    height: 100vh;
    width: 100vw;
    min-height: 600px;
    z-index: 1;
}

.hero__card {
    grid-column: 3/6;
    grid-row: 2/3;
    display: flex;
    flex-direction: column;
    text-align: center;
}

.hero__card-title {
    z-index: 3;
    font-size: 2em;
    font-weight: 500;
    /* font-variant: small-caps; */
    color: rgb(255, 255, 255);
}

.hero__card-description {
    padding: 1em 0;
    color: rgb(255, 255, 255);
    font-weight: 300;
    font-size: 1.3em;
}

.hero__card-btn {
    margin-left: auto;
    font-weight: 700;
    background: rgb(13, 144, 218);
    color: #fff;
    text-decoration: none;
    padding: 1em 1em;
    width: 200px;
    text-align: center;
    margin: 0 auto;
    margin-top: 0;
    border-radius: .5em;
}

.about-us {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.about-us__card {
    display: block;
}

.about-us__img {
    max-width: 100%;
}

.services {
    display: grid;
    width: 80vw;
    grid-template-columns: 1fr 1fr;
    grid-template-areas: "item-img1   item-1" "item-2      item-img2" "item-img3   item-3" "item-4      item-img4" "item-img5   item-5";
    padding-left: 10vw;
    padding-right: 10vw;
    position: relative;
    top: -40px;
    margin-bottom: -40px;
    align-items: center;
    /* background-color: rgb(255, 255, 255); */
}

.services__item {
    z-index: 1;
    justify-self: center;
    align-self: center;
    padding: 0;
    margin: 0;
    transition: all 1s;
    opacity: 0;
    height: 100%;
    background-color: #ffffff;
}


/* .services__item:hover {
    box-shadow: 0px 0px 10px 10px rgba(34, 48, 75, 0.7);
    transition: ease-in-out 0.35s;
    z-index: 1;
} */

.service__item-img {
    z-index: 2;
    display: flex;
    max-width: 100%;
    max-height: 100%;
    background-size: cover;
    background-position: bottom;
   /*border-radius: 20px;*/ 
}

.services__item-text {
    z-index: 0;
    padding: 1em;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    height: 100%;
    /* border-radius: 20px; */
}

.services__item-title {
    font-weight: 500;
    font-size: 1.8em;
}

.services__item-description {
    margin-top: 20px;
    font-size: 1em;
    font-weight: 300;
    margin-bottom: 30px;
    padding-right: 5px;
    padding-left: 5px;
}

.services__item-btn {
    text-decoration: none;
    font-weight: 600;
    color: rgb(255, 255, 255);
    padding-top: 10px;
    padding-bottom: 10px;
    padding-left: 20px;
    padding-right: 20px;
    background: rgb(13, 144, 218);
    border-radius: .5em;
    margin: 20px;
}

.services__item-btn:hover {
    box-shadow: 5px 5px 10px 10px rgba(34, 48, 75, 0.3);
    transition: ease-in-out 0.5s;
}

.item-img1 {
    grid-area: item-img1;
}

.item-1 {
    grid-area: item-1;
}

.item-img2 {
    grid-area: item-img2;
}

.item-2 {
    grid-area: item-2;
}

.item-img3 {
    grid-area: item-img3;
}

.item-3 {
    grid-area: item-3;
}

.item-img4 {
    grid-area: item-img4;
}

.item-4 {
    grid-area: item-4;
}

.item-img5 {
    grid-area: item-img5;
}

.item-5 {
    grid-area: item-5;
}

.works__container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.works__title {
    text-align: center;
    font-size: 2em;
    font-weight: 500;
    padding: 1em;
}

.gallery__container {
    display: grid;
    width: 100vw;
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
    /* grid-auto-rows: 150px; */
    gap: 0.5em;
}

.gallery__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gallery__item:nth-child(1) {
    grid-row-start: span 2;
}

.gallery__item:nth-child(2) {
    grid-column-start: span 1;
}

.gallery__item:nth-child(3) {
    grid-row-start: span 2;
    grid-column-start: span 2;
}

.gallery__item:nth-child(8) {
    grid-row-start: span 1;
    grid-column-start: span 1;
}

.gallery__item:nth-child(9) {
    grid-row-start: span 2;
    grid-column-start: span 2;
}

.gallery__item:nth-child(10) {
    grid-row-start: span 1;
    grid-column-start: span 1;
}

.gallery__item:nth-child(11) {
    grid-row-start: span 1;
    grid-column-start: span 1;
}

.work-us {
    min-height: 450px;
    background-image: url(img/trabaja1.webp);
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    color: rgb(255, 255, 255);
    width: 100vw;
}

.work-us__background {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr;
    padding: 2em;
    min-height: 450px;
    background: rgba(0, 0, 0, 0.5);
    /*fallback for old browsers
    background: -webkit-linear-gradient(to right, #1f403741, #99f2c8);
    Chrome 10-25, Safari 5.1-6 
    background: linear-gradient(to right, #1f403741, #99f2c8);
    W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
}

.work-us__container {
    grid-column: 1/2;
    display: flex;
    flex-direction: column;
    /* background-color: rgba(0, 0, 0, 0.295); */
    /* -webkit-backdrop-filter: blur(1px);
    backdrop-filter: blur(1px);
    padding: 2em;
    border-radius: 3em;
    box-shadow: 0 10px 100px rgb(255, 255, 255); */
    align-items: center;
    justify-content: center;
}

.work-us__title {
    text-align: center;
    font-size: 2.5em;
    font-weight: 600;
}

.work-us__text {
    z-index: 1;
    padding: 1em;
    align-items: center;
    display: block;
    justify-content: center;
    text-align: center;
    font-size: 1.5em;
    font-weight: 300;
    max-width: 500px;
}

.work-us__btn {
    margin-left: auto;
    font-weight: 700;
    background: rgb(13, 144, 218);
    color: #fff;
    text-decoration: none;
    padding: 1em 1em;
    width: 200px;
    text-align: center;
    margin: 0 auto;
    margin-top: 0;
    border-radius: .5em;
}

.contact {
    /* background-color: rgb(255, 255, 255); */
    display: flex;
    padding: 0em;
    padding-top: 1em;
    padding-bottom: 1em;
    background-image: url(img/edificio4.webp);
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    width: 100vw;
}

.contact__form {
    background: rgba(255, 255, 255, 0.99);
    /* background: linear-gradient(90deg, rgb(96, 106, 109) 0%, rgba(255, 255, 255, 0.99) 50%, rgb(96, 106, 109) 100%); */
    margin: auto;
    width: 90%;
    max-width: 600px;
    padding: 4.5em 3em;
    box-shadow: 0 5px 10px -5px rgba(0, 0, 0, 0.3);
    text-align: center;
}

.contact__form-title {
    font-size: 2rem;
    margin-bottom: .5em;
}

.contact__form-text {
    font-weight: 300;
}

.contact__form-container {
    margin-top: 3em;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2.5em;
}

.contact__form-group {
    position: relative;
    /* --color: #5757577e; */
    --color: #0000009c;
}

.contact__form-input {
    width: 100%;
    background: none;
    background: rgba(189, 206, 228, 0.6);
    /* color: #706c6c; */
    font-size: 1rem;
    padding: .6em .0em;
    border: none;
    outline: none;
    border-bottom: 1px solid var(--color);
    font-family: "roboto", "sand-serif";
    margin-top: .6em;
}

.contact__form-textarea {
    resize: none;
    padding-bottom: 0px;
    background: rgba(189, 206, 228, 0.6);
    margin-bottom: -4px;
    padding-right: 0;
    padding-left: 0;
}

#contact__message-group {
    grid-column: 1/3;
}

.contact__form-label {
    color: var(--color);
    cursor: pointer;
    position: absolute;
    top: 0;
    left: 6px;
    transform: translateY(18px);
    transition: transform .5s, color .3s;
}

.contact__form-input:focus+.contact__form-label,
.contact__form-input:not(:placeholder-shown)+.contact__form-label {
    transform: translateX(-6px) translateY(-12px) scale(.8);
    transform-origin: left top;
    color: #000000;
}

.contact__form-submit {
    grid-column: 1/3;
    background: rgb(13, 144, 218);
    color: white;
    font-family: "roboto", "sand-serif";
    font-weight: 500;
    font-size: 1rem;
    padding: .8em 0;
    border: none;
    border-radius: .5em;
    cursor: pointer;
}

.contact__form-submit:disabled {
    background: rgb(115, 123, 129);
}

.contact__form-line {
    position: absolute;
    padding-top: 0;
    margin-top: 0;
    bottom: 0px;
    left: 0;
    width: 100%;
    height: 2px;
    transform: scale(0);
    transform: left bottom;
    transition: transform .4s;
}

.contact__form-icon {
    position: absolute;
    right: 20px;
    bottom: 10px;
    font-size: 15px;
    display: none;
}

.contact__form-message {
    position: absolute;
    font-size: 12px;
    margin-top: 5px;
    margin-bottom: 0;
    display: none;
}

.contact__form-input:focus+.contact__form-line,
.contact__form-input:not(:placeholder-shown)~.contact__form-line {
    transform: scale(1);
}

.contact-error {
    color: red;
}

.contact-success {
    color: rgb(6, 40, 59);
}

.footer {
    display: grid;
    grid-template-columns: 1fr 0.75fr 1fr;
    background-color: rgb(0, 0, 7);
    color: rgb(255, 255, 255);
    width: 100vw;
}

.footer__section {
    display: flex;
}

.footer__section-logo {
    display: flex;
    /* align-items: center; */
    justify-content: center;
}

.footer__logo {
    padding: 20px;
}

.footer__logo-img {
    height: 150px;
    width: 150px;
}

.footer__logo-text-1 {
    /* margin-right: 10px; */
    font-size: 20px;
    font-weight: 800;
    text-transform: uppercase;
}

.footer__logo-text-2 {
    margin-right: 10px;
    font-size: 15px;
    font-weight: 500;
    text-transform: uppercase;
    text-justify: auto;
}

.footer__services-list-item {
    list-style: none;
}

.footer__services-list-link {
    text-decoration: none;
    color: rgb(255, 255, 255)
}

.footer__address,
.footer__services,
.footer__about-us {
    font-style: normal;
    font-size: small;
    margin: 1em;
    padding: 1em;
}

.address {
    font-style: normal;
    font-size: small;
    padding-right: 10em;
}

.address__mail,
.address__tel,
.address__whatsapp {
    text-decoration: none;
    color: rgb(255, 255, 255)
}

.address__mail:hover,
.address__tel:hover,
.address__whatsapp:hover,
.footer__services-list-link:hover {
    color: rgb(4, 161, 223);
}

.address__title,
.footer__services-title {
    font-size: large;
    text-transform: uppercase;
}

.address__item {
    margin-top: 0px;
}

.footer__address-btn {
    display: flex;
    text-decoration: none;
    color: #ffffff;
    background-color: transparent;
    border-radius: 50%;
    border-width: 1px;
    border-style: solid;
    border-color: #ffffff;
    padding: 10px;
    margin: 10px;
    margin-left: 0px;
    align-items: center;
    justify-content: center;
}

.footer__address-btn:hover {
    color: rgb(4, 161, 223);
    border-color: rgb(4, 161, 223);
}

.footer__address-btns {
    display: flex;
    margin-top: 20px;
    text-align: left;
}

.footer__address-btn-icon {
    display: inline-block;
    font-size: 35px;
    text-align: center;
}


/* alerts */

.alertModal {
    position: fixed;
    z-index: 5;
    width: 100vw;
    height: 100vh;
    top: 0;
    left: 0;
    background: rgb(0, 0, 0, 0.5);
    display: flex;
    justify-content: center;
    align-items: center;
    visibility: hidden;
}

.alertModal__card {
    display: flex;
    flex-direction: column;
    text-align: center;
    width: 50%;
    height: 60%;
    overflow: hidden;
    background: rgb(255, 255, 255);
    justify-content: center;
    align-items: center;
    transition: transform 0.5s;
    transform: scale(0);
}

.alertModal__icon {
    font-size: 90px;
    margin: 10px;
    transition: all 2s;
    transform: rotate(0deg);
}

.alertModal__error {
    color: rgb(255, 0, 0);
}

.alertModal__success {
    color: rgb(13, 144, 218);
}

.alertModal__title {
    font-size: 25px;
}

.alertModal__message {
    font-size: 15px;
    font-weight: 500;
    margin: 10% 5% 5% 5%;
}

.alertModal__btn {
    height: 45px;
    line-height: 45px;
    width: 50%;
    background: rgb(13, 144, 218);
    color: rgb(255, 255, 255);
    font-weight: 700;
    font-size: 15px;
    border: none;
    border-radius: .5em;
    cursor: pointer;
}


/*loader*/

.lds-ripple {
    display: inline-block;
    position: relative;
    width: 80px;
    height: 80px;
}

.lds-ripple div {
    position: absolute;
    border: 4px solid #fff;
    opacity: 1;
    border-radius: 50%;
    animation: lds-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite;
}

.lds-ripple div:nth-child(2) {
    animation-delay: -0.5s;
}

@keyframes lds-ripple {
    0% {
        top: 36px;
        left: 36px;
        width: 0;
        height: 0;
        opacity: 1;
    }
    100% {
        top: 0px;
        left: 0px;
        width: 72px;
        height: 72px;
        opacity: 0;
    }
}

.hidden {
    overflow: hidden;
}

.centrado {
    background-color: rgb(0, 0, 0);
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
}

@keyframes hero {
    0%,
    30% {
        background-image: url(img/casa2.webp);
    }
    30%,
    60% {
        background-image: url(img/casa3.webp);
    }
    60%,
    80% {
        background-image: url(img/casa4.webp);
    }
    80%,
    100% {
        background-image: url(img/casa5.webp);
    }
}