/* ========================================================================
   BELCAN ARCHITECTS + ENGINEERS
   File 01 — Homepage Hero

   Purpose:
   Controls the homepage Hero section, including the background image,
   overlay, title, description, call-to-action button, and responsive
   behavior.

   Used on:
   Homepage

   Required WPBakery classes:
   belcan-hero
   belcan-hero-content
   belcan-hero-title
   belcan-hero-copy
   belcan-hero-cta

   Dependencies:
   00-foundation.css

   Source:
   Master Homepage CSS — Version 4

   Last Updated:
   2026-07-26
======================================================================== */


/* ==========================================================
   HERO SECTION
========================================================== */

/*
Hero Row:
belcan-hero belcan-constrained-section

Content Column:
belcan-hero-content

Title:
belcan-hero-title

Description:
belcan-hero-copy

Button:
belcan-hero-cta
*/


.belcan-hero {
    position: relative;

    height: 575px;

    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding: 0 !important;

    background-position: center 44% !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;

    overflow: hidden;
}


.belcan-hero::before {
    content: "";

    position: absolute;
    inset: 0;
    z-index: 0;

    background: rgba(0, 0, 0, 0.07);

    pointer-events: none;
}


.belcan-hero .belcan-hero-content {
    position: relative;
    z-index: 1;

    width: 100%;
    height: 575px;
}


.belcan-hero-content > .vc_column-inner {
    position: relative;

    width: 100%;
    height: 575px;

    margin: 0 !important;
    padding: 0 !important;
}


.belcan-hero-content > .vc_column-inner > .wpb_wrapper {
    position: absolute;

    right: 6%;
    bottom: 40px;

    width: 42%;
    max-width: 520px;

    margin: 0 !important;
    padding: 0 !important;

    text-align: right;
}


.belcan-hero-content .wpb_content_element {
    margin-bottom: 0 !important;
}


/* ==========================================================
   HERO TITLE
========================================================== */

.belcan-hero-title {
    width: 100%;

    margin: 0 0 26px !important;
}


.belcan-hero-title .uvc-main-heading,
.belcan-hero-title .uvc-sub-heading,
.belcan-hero-title h1,
.belcan-hero-title h2 {
    width: 100%;

    margin: 0 !important;
    padding: 0 !important;

    color: #ffffff !important;

    font-size: clamp(34px, 2.7vw, 39px) !important;
    font-weight: 400 !important;
    line-height: 1.2 !important;
    letter-spacing: 0.01em !important;

    text-align: right !important;

    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.45);
}


/* ==========================================================
   HERO DESCRIPTION
========================================================== */

.belcan-hero-copy {
    width: 100%;
    max-width: 520px;

    margin: 0 0 24px auto !important;
}


.belcan-hero-copy .uvc-main-heading,
.belcan-hero-copy .uvc-sub-heading,
.belcan-hero-copy p {
    width: 100%;

    margin: 0 !important;
    padding: 0 !important;

    color: rgba(255, 255, 255, 0.97) !important;

    font-size: 15px !important;
    font-weight: 400 !important;
    line-height: 1.55 !important;

    text-align: right !important;

    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.50);
}


/* ==========================================================
   HERO BUTTON
========================================================== */

.belcan-hero-cta {
    margin: 12px 0 0 !important;
    padding: 0 !important;

    text-align: right !important;
}


/* Advanced Button wraps the visible .ubtn element in an anchor
   after a URL is assigned. Keep the anchor visually neutral so
   only the inner button receives the Hero button styling. */

.belcan-hero-cta a {
    display: inline-block !important;

    width: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
    border-radius: 0 !important;

    background: transparent !important;
    box-shadow: none !important;

    color: inherit !important;

    text-decoration: none !important;
}


.belcan-hero-cta .ubtn,
.belcan-hero-cta .vc_btn3 {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-height: 48px !important;

    margin: 0 !important;
    padding: 14px 34px !important;

    border: 1px solid rgba(255, 255, 255, 0.88) !important;
    border-radius: 0 !important;

    background: rgba(20, 20, 20, 0.12) !important;
    box-shadow: none !important;

    color: #ffffff !important;

    font-size: 12px !important;
    font-weight: 500 !important;
    line-height: 1.2 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;

    text-decoration: none !important;
    white-space: nowrap !important;
}


.belcan-hero-cta .ubtn:hover,
.belcan-hero-cta a:hover .ubtn,
.belcan-hero-cta .vc_btn3:hover {
    border-color: #ffffff !important;
    background: rgba(20, 20, 20, 0.34) !important;
    color: #ffffff !important;
}


/* ==========================================================
   DESKTOP HERO COMPOSITION
========================================================== */

@media (min-width: 1101px) {

    .belcan-hero::before {
        background:
            linear-gradient(
                90deg,
                rgba(0, 0, 0, 0.02) 0%,
                rgba(0, 0, 0, 0.03) 48%,
                rgba(0, 0, 0, 0.20) 72%,
                rgba(0, 0, 0, 0.34) 100%
            );
    }


    .belcan-hero-content > .vc_column-inner > .wpb_wrapper {
        top: 205px;
        right: 6%;
        bottom: auto;

        width: 42%;
        max-width: 520px;
    }


    .belcan-hero-title {
        margin-bottom: 21px !important;
    }


    .belcan-hero-title .uvc-main-heading,
    .belcan-hero-title .uvc-sub-heading,
    .belcan-hero-title h1,
    .belcan-hero-title h2 {
        font-size: clamp(35px, 2.65vw, 38px) !important;
        line-height: 1.18 !important;
    }


    .belcan-hero-copy {
        max-width: 500px;
        margin-bottom: 21px !important;
    }


    .belcan-hero-copy .uvc-main-heading,
    .belcan-hero-copy .uvc-sub-heading,
    .belcan-hero-copy p {
        line-height: 1.5 !important;
    }


    .belcan-hero-cta {
        margin-top: 8px !important;
    }
}


/* ==========================================================
   TABLET AND NARROW DESKTOP
========================================================== */

@media (max-width: 1100px) {

    .belcan-hero,
    .belcan-hero .belcan-hero-content,
    .belcan-hero-content > .vc_column-inner {
        height: 520px;
    }


    .belcan-hero-content > .vc_column-inner > .wpb_wrapper {
        right: 6%;
        bottom: 36px;

        width: 46%;
    }


    .belcan-hero-title .uvc-main-heading,
    .belcan-hero-title .uvc-sub-heading,
    .belcan-hero-title h1,
    .belcan-hero-title h2 {
        font-size: 34px !important;
        line-height: 1.2 !important;
    }


    .belcan-hero-copy .uvc-main-heading,
    .belcan-hero-copy .uvc-sub-heading,
    .belcan-hero-copy p {
        font-size: 14px !important;
    }
}


/* ==========================================================
   MOBILE — 767px AND BELOW
========================================================== */

@media (max-width: 767px) {

    .belcan-hero,
    .belcan-hero .belcan-hero-content,
    .belcan-hero-content > .vc_column-inner {
        height: 500px;
    }


    .belcan-hero::before {
        background: rgba(0, 0, 0, 0.23);
    }


    .belcan-hero-content > .vc_column-inner > .wpb_wrapper {
        left: 50%;
        right: auto;
        bottom: 34px;

        width: calc(100% - 48px);
        max-width: 620px;

        transform: translateX(-50%);

        margin: 0 !important;
        padding: 0 !important;

        text-align: center;
    }


    .belcan-hero-title .uvc-main-heading,
    .belcan-hero-title .uvc-sub-heading,
    .belcan-hero-title h1,
    .belcan-hero-title h2 {
        font-size: 30px !important;
        text-align: center !important;
    }


    .belcan-hero-copy {
        width: 100%;
        max-width: 540px;

        margin: 0 auto 22px !important;
    }


    .belcan-hero-copy .uvc-main-heading,
    .belcan-hero-copy .uvc-sub-heading,
    .belcan-hero-copy p {
        font-size: 14px !important;
        text-align: center !important;
    }


    .belcan-hero-cta {
        text-align: center !important;
    }
}