/* =========================
   CONTACT PAGE HERO
========================= */

.contact-page {

    position: relative;

    width: 100%;
    min-height: 100vh;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 140px 7% 100px;

    overflow: hidden;

    background-image:
        linear-gradient(
            to right,
            rgba(0, 0, 0, 0.30),
            rgba(0, 0, 0, 0.10)
        ),
        url("../../images/Contact/contact-hero.jpg");

    background-size: cover;
    background-position: center 25%;
    background-repeat: no-repeat;
}


/* BOTTOM GRADIENT */

.contact-page::before {

    content: "";

    position: absolute;
    inset: 0;

    background: linear-gradient(
        180deg,
        rgba(0, 0, 0, 0.15) 0%,
        rgba(0, 0, 0, 0.4) 70%,
        rgba(0, 0, 0, 1) 100%
    );

    z-index: 1;

    /* Calm, slow overlay fade-in */
    animation: contact-overlay-fade 2s ease-out forwards;
    will-change: opacity;
}


/* CONTENT */

.contact-page-container {

    position: relative;
    z-index: 2;

    width: 100%;
    max-width: 1200px;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    text-align: center;
}


/* TITLE */

.contact-page-container h1 {

    color: #ffffff;

    font-size: 120px;
    line-height: 0.9;

    font-weight: 900;

    text-transform: uppercase;

    letter-spacing: -5px;

    margin-bottom: 35px;
}


/* TEXT */

.contact-page-container p {

    max-width: 700px;

    color: rgba(255, 255, 255, 0.88);

    font-size: 20px;
    line-height: 1.8;

    font-weight: 400;
}


/* =========================
   HERO ANIMATIONS
========================= */

.contact-page-container h1 {
    opacity: 0;
    /* Elegant, calm text slide-up and fade-in */
    animation: contact-fade-in-up 1.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    animation-delay: 0.3s;
    will-change: transform, opacity;
}

.contact-page-container p {
    opacity: 0;
    /* Sequenced reveal animation */
    animation: contact-fade-in-up 1.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    animation-delay: 0.7s;
    will-change: transform, opacity;
}

/* =========================
   KEYFRAME ANIMATIONS
========================= */

@keyframes contact-overlay-fade {
    0% { opacity: 0; }
    100% { opacity: 1; }
}

@keyframes contact-fade-in-up {
    0% {
        opacity: 0;
        transform: translateY(25px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* =========================
   RESPONSIVE
========================= */

@media screen and (max-width: 991px) {

    .contact-page {

        min-height: 85vh;

        padding: 120px 6% 80px;
    }

    .contact-page-container h1 {

        font-size: 82px;

        letter-spacing: -3px;
    }

    .contact-page-container p {

        font-size: 18px;

        max-width: 100%;
    }
}

@media screen and (max-width: 767px) {

    .contact-page {

        min-height: 75vh;

        padding: 100px 24px 70px;
    }

    .contact-page-container h1 {

        font-size: 58px;

        line-height: 0.95;

        margin-bottom: 25px;
    }

    .contact-page-container p {

        font-size: 16px;
        line-height: 1.7;
    }
}

@media screen and (max-width: 480px) {

    .contact-page-container h1 {

        font-size: 44px;

        letter-spacing: -2px;
    }

    .contact-page-container p {

        font-size: 15px;
    }
}