.hidden {
    display: none;
}
/* line-height */
.main-line-height {
    line-height: 1.25rem;
}
/* RESET */
p, h1, h2, h3, h4 {
    margin: initial;
}
a {
    text-decoration: none;
    color: #4A4A4A;
    outline: 0;
    -webkit-tap-highlight-color: transparent;
}
ul {
    margin: initial;
    padding: initial;
}
ul li {
    list-style: none;
}
input, textarea {
    border: initial;
    border-radius: 0;
    -webkit-border-radius: 0;
    -webkit-appearance: none;
}
textarea {
    resize: none;
    font-family: 'Montserrat', sans-serif;
}
input {
    font-family: 'Montserrat', sans-serif;
}
input:focus, textarea:focus {
    outline: initial;
}
input::placeholder, textarea::placeholder {
    color: #333333;
}
button {
    border: initial;
    background-color: initial;
    outline: initial;
    padding: initial;
    cursor: pointer;
}
input[type="checkbox"], input[type="submit"] {
    cursor: pointer;
}
strong {
    font-weight: 600;
}
input:invalid {
    box-shadow: none;
}
.opacity-0 {
    opacity: 0;
}
.body-end-line {
    height: 15px;
}
.home-carousel-content-img {
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    transform-origin: center;
    height: 100%;
    width: 100%;
}
.home-carousel-one {
    z-index: -1;
}
.home-carousel-two {
    z-index: -2;
}
.home-carousel-three {
    z-index: -3;
}
.home-carousel-four {
    z-index: -4;
}
.loading-project-hover > div:last-child {
    margin-right: initial;
}
.loading-project-hover > div:nth-child(2) {
    animation-name: loadingDown;
}
.paginator-nm {
    margin-left: initial;
    margin-right: initial;
}
.paginator > button:hover,
.paginator > a:hover {
    opacity: .5;
}
.project-list-intro-img-hover {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    opacity: 0;
    z-index: 2;
    transition: all .5s ease-in-out;
}
.project-list-intro-img:hover .project-list-intro-img-hover {
    opacity: 1;
}
.project-list-intro-img:hover .project-list-intro-img-title {
    bottom: 8.5rem;
}
.project-list-intro-img:hover .project-list-intro-img-intro {
    opacity: 1;
    max-height: 150px;
}
.project-list-intro-text-title {
    font-size: 1.5rem;
    font-weight: 300;
    margin-top: .25rem;
    margin-bottom: 1rem;
}
.project-list-intro-img-intro p {
    margin-top: 1rem;
}
.subarea-description ul {
    padding-left: 1rem;
}
.subarea-description li {
    list-style-position: outside;
    list-style-image: none;
    position: relative;
}
.subarea-description li:before {
    content:''; 
    display:inline-block; 
    height: .5rem; 
    width: .5rem; 
    background-image:url('../img/list-point.svg'); 
    background-size:contain; 
    background-repeat:no-repeat; 
    padding-left: 2rem; 
    position: absolute;
    left: -15px;
    top: 6px;
}
.project-list-intro-img-overlayer {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #333;
    opacity: .5;
    z-index: 1;
}
.project-list-grid-item-hover {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    opacity: 0;
    z-index: 2;
    transition: all .5s ease-out;
}
.project-list-grid-item-wrapper {
    position: absolute;
    left: 2rem;
    right: 2rem;
    bottom: 2rem;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    z-index: 3;
    transition: all .5s ease-out;
}
.project-list-grid-item-title {
    font-weight: 600;
    font-size: 1.15rem;
    width: 100%;
    transition: all .5s ease-out;
}
.project-list-grid-item-text {
    max-height: 0px;
    overflow: hidden;
    height: max-content;
    width: 100%;
    opacity: 0;
    transition: all .5s ease-out;
}
.project-list-grid-item-text p {
    margin-top: 1rem;
}
.project-list-grid-item:hover .project-list-grid-item-hover {
    opacity: 1;
}
.project-list-grid-item:hover .project-list-grid-item-text {
    opacity: 1;
    max-height: 200px;
}
.project-details-info > li {
    margin-top: .25rem;
}
.project-details-info > li:first-child {
    margin-top: initial;
}
.related-project-hover {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    opacity: 0;
    z-index: 2;
    transition: all .6s ease-out;
}
.related-project:hover .related-project-hover {
    opacity: 1;
}
.related-project-wrapper {
    position: absolute;
    left: 2rem;
    right: 2rem;
    bottom: 2rem;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    z-index: 3;
    transition: all .5s ease-out;
}
.related-project-title {
    font-weight: 600;
    font-size: 1.15rem;
    width: 100%;
    transition: all .5s ease-out;
}
.related-project-text {
    max-height: 0px;
    overflow: hidden;
    height: max-content;
    width: 100%;
    opacity: 0;
    transition: all .5s ease-out;
}
.related-project-text > p {
    margin-top: 1rem;
}
.related-project:hover .related-project-text {
    opacity: 1;
    max-height: 200px;
}
.related-project-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color:
    #333;
    opacity: .5;
    z-index: 1;
}
.news-article-preview-text h2 span {
    font-weight: 700;
    font-size: 1.5rem;
    margin-right: .25rem;
}
.news-article-preview:hover .news-article-preview-hover {
    opacity: 1;
    transition: all .4s ease-in-out;
}
.about-gea-text p {
    margin-bottom: .75rem;
}
.about-gea-text p:last-child {
    margin-bottom: initial;
}
.about-gea-info p {
    margin-bottom: .75rem;
}
.about-gea-info p:last-child {
    margin-bottom: initial;
}
.about-gea h2 {
    margin-bottom: 2rem;
    font-weight: 700;
    font-size: 1.4rem;
}
.about-gea h3 {
    margin-top: 2rem;
    margin-bottom: .75rem;
    font-weight: 700;
    font-size: 1rem;
}
.about-gea-intro p {
    margin-bottom: .75rem;
}
.about-gea-intro p:first-child {
    font-weight: 600;
}
.about-gea-intro p:last-child {
    margin-bottom: initial;
}
.about-gea ul {
    padding-left: 1rem;
}
.about-gea li {
    list-style-position: outside;
    list-style-image: none;
    position: relative;
}
.about-gea li:before {
    content:''; 
    display:inline-block; 
    height: .5rem; 
    width: .5rem; 
    background-image:url('../img/list-point.svg'); 
    background-size:contain; 
    background-repeat:no-repeat; 
    padding-left: 2rem; 
    position: absolute;
    left: -15px;
    top: 6px;
}
.contact-form-main .wpcf7 > p > span > input:focus::placeholder,
.contact-form-main .wpcf7 > p > span > textarea:focus::placeholder {
    opacity: 0;
}
.contact-check {
    display: block;
    height: 20px;
    width: 20px;
    border: 1px solid #333;
    flex-shrink: 0;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 80%;
    margin-right: 1rem;
}
.accept-terms-link > span {
    text-decoration: underline;
    transition: all .4s ease-in-out;
}
.accept-terms-link > span:hover {
    opacity: .5;
}
.contact-check-img {
    background-image: url('../img/check.svg');
}
.contact-form-main .wpcf7 > p:nth-of-type(7) > input:hover {
    background-color: #fff;
    color: #333;
}
.contact-address-valencia {
    background-color: #D8927B;
    transition: all .4s ease-in-out;
}
.contact-address-madrid {
    background-color: #3023AE;
    transition: all .4s ease-in-out;
}
.contact-addresses button h3 {
    margin-bottom: 1rem;
}
.contact-addresses button div a {
    color: #fff;
}
.contact-address-active {
    opacity: 1 !important;
    transition: all .4s ease-in-out;
}
.contact-map {
    height: 400px;
    width: 100vw;
}
.leaflet-tile {
    filter: contrast(73%) brightness(1.5) !important;
}
.leaflet-container {
    font-family: 'Montserrat', sans-serif !important;
}
.leaflet-control-zoom {
    width: 45px;
    height: 89px;
    border: 3px solid #333 !important;
    border-radius: initial !important;
}
.leaflet-control-zoom-out, .leaflet-control-zoom-in {
    width: 43px !important;
    height: 43px !important;
    border-radius: initial !important;
    display: inline-flex !important;
    justify-content: center;
    align-items: center;
    color: #fff !important;
    background-color: #333 !important;
    box-shadow: 1px 1px 3px #333333bf !important;
    transition: all .4s ease-in-out;
    border: 1px solid #fff !important;
}
.leaflet-control-zoom-out:hover, .leaflet-control-zoom-in:hover {
    color: #333 !important;
    background-color: #fff !important;
}
.leaflet-control-zoom-in {
    border-bottom: initial !important;
}
.leaflet-control-attribution a {
    color: #333 !important;
}
.leaflet-control-attribution a:hover {
    opacity: .5 !important;
    text-decoration: none !important;
}
.contact-bg {
    width: 100vw;
    background-color: #D8927B;
    position: relative;
}
.search-results-link:hover .search-results-link-hover {
    opacity: 1;
}
.search-results-link:first-child {
    margin-top: initial;
}
.search-results-link-text > p:first-child {
    margin-top: 1rem;
    margin-bottom: .5rem;
    font-size: 1.25rem;
    font-weight: 300;
}
.footer-search-button:hover {
    background-color: #b0adad;
}
/* VARIABLES */
/* Colors */
/*
white #fff
grey #4A4A4A
dark-gray #767676
gray #333 opacity 26%
light-gray #F4F4F4
green #417505
red #D0021B
*/
/* Hover */
/*
white #fff opacity 70%
gray #ddd opacity 70%
cinnamon #D8927B opacity 70%
blue #3023AE opacity 70%
*/
/* Gradients */
/*
enum-point #3023AE #D8927B
line #3023AE #D8927B opacity 30%
hover #3023AE #D8927B opacity 60%
*/
/* text colors */
.black-txt {
    color: #333;
}
.white-txt {
    color: #fff;
}
.grey-txt {
    color: #4A4A4A;
}
/* background colors */
.dark-gray-bg {
    background-color: #767676
}
.gray-bg {
    background-color: #333;
}
.light-gray-bg {
    background-color: #F4F4F4;
} 
.cinnamon-bg {
    background-color: #D8927B;
}
.gradient {
    background-image: linear-gradient(135deg, rgba(48, 35, 174, .3), rgba(216, 146, 123, .3));
}
.gradient-70 {
    background-image: linear-gradient(135deg, rgba(48, 35, 174, .7), rgba(216, 146, 123, .7));
}
.border-red {
    border-color: #D0021B !important;
    box-shadow: 0 1px #D0021B !important;
}
/* FONTS */
/* font-face */
@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/Montserrat-Light.woff2') format("woff2");
    font-weight: 300;
}
@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/Montserrat-Regular.woff2') format("woff2");
    font-weight: 400;
}
@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/Montserrat-Medium.woff2') format("woff2");
    font-weight: 500;
}
@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/Montserrat-SemiBold.woff2') format("woff2");
    font-weight: 600;
}
@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/Montserrat-Bold.woff2') format("woff2");
    font-weight: 700;
}
@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/Montserrat-ExtraBold.woff2') format("woff2");
    font-weight: 800;
}

.center-txt {
    text-align: center;
}
.lowercase {
    text-transform: lowercase;
    text-transform: capitalize;
}
.uppercase {
    text-transform: uppercase;
}
/* ANIMATION */
@keyframes homeScaleOne {
    0% {
        opacity: 1;
        transform: scale(1);
    }
    26% {
        opacity: 1;
    }
    33% {
        opacity: 0;
        transform: scale(1.3);
    }
    100% {
        opacity: 0;
        transform: scale(1);
    }
}
.home-scale-one {
    animation-name: homeScaleOne;
    animation-duration: 20s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
}
@keyframes homeScaleTwo {
    0% {
        opacity: 1;
        transform: scale(1);
    }
    33% {
        opacity: 1;
        transform: scale(1);
    }
    59% {
        opacity: 1;
    }
    66% {
        opacity: 0;
        transform: scale(1.3);
    }
    100% {
        opacity: 0;
        transform: scale(1);
    }
}
.home-scale-two {
    animation-name: homeScaleTwo;
    animation-duration: 20s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
}
@keyframes homeScaleThree {
    0% {
        opacity: 1;
        transform: scale(1);
    }
    66% {
        opacity: 1;
        transform: scale(1);
    }
    93% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        transform: scale(1.3);
    }
}
.home-scale-three {
    animation-name: homeScaleThree;
    animation-duration: 20s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
}
@keyframes loadingUp {
    0% {
        transform: translateY(5px);
    }
    50% {
        transform: translateY(-5px);
    }
    100% {
        transform: translateY(5px);
    }
}
@keyframes loadingDown {
    0% {
        transform: translateY(-5px);
    }
    50% {
        transform: translateY(5px);
    }
    100% {
        transform: translateY(-5px);
    }
}
.fade-enter-active, .fade-leave-active {
    opacity: 1;
    transition: opacity .5s ease-in-out;
}
.fade-enter,
.fade-leave-to {
    opacity: 0;
}
@keyframes slideUp {
    from {
        opacity: 0;
        transform: translateY(50%);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
/* BASICS */
body {
    margin: initial;
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
    color: #4A4A4A !important;
}
.body-end-line {
    width: 100vw;
    background-color: #313B55;
}
.opacity-25 {
    opacity: .25;
    cursor: pointer;
}
.opacity-25:hover {
    opacity: .25 !important;
}
/* FOOTER */
footer {
    width: 100vw;
}
.owl-dots {
    display: none;
}

.grecaptcha-badge {
    display: none;
}

/* ICONS */
@font-face {
    font-family: 'gea';
    src: url('../fonts/gea.woff2') format('woff2');
    font-weight: normal;
    font-style: normal;
}

[class^="icon-"]:before, [class*=" icon-"]:before {
    font-family: 'gea';
    font-style: normal;
    font-weight: normal;
    speak: never;

    display: inline-block;
    text-decoration: inherit;
    width: 1em;
    margin-right: .1em;
    text-align: center;
    /* opacity: .8; */

    /* For safety - reset parent styles, that can break glyph codes*/
    font-variant: normal;
    text-transform: none;

    /* fix buttons height, for twitter bootstrap */
    line-height: 1em;

    /* Animation center compensation - margins should be symmetric */
    /* remove if not needed */
    margin-left: .1em;

    /* you can be more comfortable with increased icons size */
    /* font-size: 120%; */

    /* Font smoothing. That was taken from TWBS */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;

    /* Uncomment for 3D effect */
    /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
}

.icon-email:before { content: '\e84a'; } /* '' */