
.homepage-banner {
    opacity: 1;
    transform: scale(1);
    transition:
        opacity 1.4s ease,
        transform 1.8s ease;
}
.hero-section.small {
    min-height: 485px;
}
.homepage-banner.fade-start {
    opacity: 0;
    transform: scale(1.04);
}
.hero-section .main-content .hero-content li {
   color: var(--white);
}

.hero-content ol li:before {
    color: var(--white);
}

.homepage-banner.fade-start.loaded {
    opacity: 1;
    transform: scale(1);
}

.hero-section {
    position: relative;
    min-height: 754px;
    z-index: 1;
    display: flex;
    align-items: end;
    justify-content: center;
    padding: 185px 0 70px;
    overflow: hidden;
}
.hero-section:before {
    content: "";
    display: block;
    content: "";
    display: block;
    position: absolute;
    height: 100%;
    width: 100%;
    top: 0px;
    z-index: -1;
    background: linear-gradient(0deg,rgba(0,0,0,0.2),rgba(0,0,0,0.2)),linear-gradient(261.9deg,rgba(11,18,56,0) 47.69%,rgba(11,18,56,0.8) 91.43%),linear-gradient(2.62deg,rgba(11,18,56,0) 71.29%,rgba(11,18,56,0.8) 131.17%);
    bottom: 0;
    left: 0;
    right: 0;
}
.hero-section .homepage-banner {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: -2;
    bottom: 0;
}
.homepage-banner picture img,
.homepage-banner .hero-video-poster {
    height: 100%;
    width: 100%;
    object-fit: cover;
}
.homepage-banner .hero-video-poster {
    display: none;
}
.hero-section .homepage-banner video {
    height: 100%;
    width: 100%;
    object-fit: cover;
}

@media only screen and (max-width: 767px) {
    .homepage-banner.has-mobile-poster video {
        display: none;
    }
    .homepage-banner.has-mobile-poster .hero-video-poster {
        display: block;
    }
}

.hero-section .main-content {
    max-width: 705px;
    width: 100%;
}
.hero-section .main-content p {
    color: var(--white);
    font-weight: 400;
}
.hero-section .main-content .button-wrap {
    margin-top: 30px;
}
.reveal-text {
    overflow: hidden;
}
.reveal-text .line {
    display: block;
    overflow: hidden;
    line-height: 1;
}
.hero-section.news-archive-hero {
    min-height: 485px;
}
.hero-content h3,
.hero-content h4,
.hero-content h5,
.hero-content h6 {
    color: var(--white);
    margin-bottom: 25px;
}
.main-content-wraper {
    display: flex;
    align-items: end;
    justify-content: space-between;
}

.main-content-wraper .caption-text {
    background: #0B12384D;
    backdrop-filter: blur(10px);
    padding: 5px 10px 5px 30px;
    max-width: 195px;
    position: relative;
    line-height: 18px;
    letter-spacing: 0.3px;
    text-transform: uppercase;
    color: var(--white);
    font-weight: 400;
    font-size: 12px;
   font-family: var(--font-Prosto-one);
   border-radius: 2px;
}

.main-content-wraper .caption-text:before {
    content: "";
    display: block;
    height: 10px;
    width: 10px;
    background-color: var(--white);
    position: absolute;
    left: 10px;
    top: 9px;
}

/* Video/Image background fade-in on load */
.hero-section .homepage-banner {
    opacity: 0;
    transform: scale(1.08);
    transition: opacity 1.6s ease, transform 2s ease;
}
.hero-section .homepage-banner.loaded {
    opacity: 1;
    transform: scale(1);
}

/* Title - line/word reveal setup */
.reveal-text .line span {
    display: inline-block;
    transform: translateY(115%);
    opacity: 0;
    animation: wordUp 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
    animation-play-state: paused;
}
.reveal-text.animate .line span {
    animation-play-state: running;
}

@keyframes wordUp {
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

/* Subheading - fade in after title */
.hero-section .main-content .hero-content {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}
.hero-section .main-content .hero-content.show {
    opacity: 1;
    transform: translateY(0);
}

/* CTA buttons - staggered fade in */
.hero-section .button-wrap .btn {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}
.hero-section .button-wrap .btn.show {
    opacity: 1;
    transform: translateY(0);
}

/* Caption - fade in last */
.main-content-wraper .caption-text {
    opacity: 0;
    transition: opacity 1s ease;
}
.main-content-wraper .caption-text.show {
    opacity: 1;
}
.main-title {
    opacity: 0;
}

.main-title.animate {
    opacity: 1;
}

.main-title .line {
    overflow: hidden;
    vertical-align: top;
}

.main-title .line > span {
    display: inline-block;
    opacity: 0;
    transform: translateY(100%);
}

.main-title.animate .line > span {
    animation: titleWordReveal 0.8s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
@media only screen and (max-width: 767px), (prefers-reduced-motion: reduce) {
    .hero-section .homepage-banner {
        opacity: 1;
        transform: none;
        transition: none;
    }
    .site-header,
    .main-title,
    .hero-section .main-content .hero-content,
    .hero-section .button-wrap .btn,
    .main-content-wraper .caption-text {
        opacity: 1;
        transform: none;
        transition: none;
    }
}
.error404 .hero-section .main-content .hero-content p br {
    display: none;
}
.error404 .hero-section .main-content {
    max-width: 520px;
}
.single-project-microsite .hero-section h1 {
    margin-bottom: 0;
}
@keyframes titleWordReveal {
    from {
        opacity: 0;
        transform: translateY(100%);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media only screen and (max-width:1199px){
    .hero-section .main-content {
        max-width: 585px;
    }
    .hero-section {
        min-height: 640px;
    }
}
@media only screen and (max-width:991px){
   .main-content-wraper {
        display: block;
    }
    .hero-section .main-content {
        max-width: 100%;
    }
    .main-content-wraper .caption-text {
        display: inline-block;
        max-width: 100%;
    }
    .main-content-wraper .caption-text {
        margin-top: 35px;
    }
}
@media only screen and (max-width:767px){
    .hero-section.small {
        padding: 125px 0 50px;
    }
    .hero-section.news-archive-hero,
     .hero-section.small  {
        min-height: 564px;
    }
    .hero-section .main-content h1 {
        word-break: break-word;
    }
    .hero-section {
        padding: 185px 0 50px;
    }
}
