*,
*::before,
*::after {
    box-sizing: border-box;
}

html,
body {
    width: 100%;
    min-height: 100%;
    margin: 0;
    padding: 0;
}

html {
    background: #163963;
}

body {
    min-width: 320px;
    overflow-x: hidden;

    background: #163963;
    color: #ffffff;

    font-family: "Montserrat", Arial, sans-serif;
    font-weight: 400;
}

img,
svg {
    display: block;
    max-width: 100%;
}

a {
    color: inherit;
}


/* =========================================================
   ROOT
========================================================= */

.qpg-coming {
    --green-950: #06362d;
    --green-900: #084337;
    --green-850: #0b4f40;
    --green-800: #12604d;

    --gold: #efcb84;
    --gold-soft: #f7dfac;
    --ivory: #fff8ea;

    position: relative;

    min-height: 100vh;
    min-height: 100svh;

    overflow: hidden;
    isolation: isolate;

    background: var(--green-900);
}


.qpg-coming__bg {
    --qpg-bg-position-x: 68%;
    --qpg-bg-shift-x: 15%;
    --qpg-bg-shift-start-x: 5.5%;
    --qpg-bg-scale: 1.07;
    --qpg-bg-scale-start: 1.11;

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

    background-image: url("../images/project-background.jpg");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: var(--qpg-bg-position-x) center;

    filter:
        saturate(1.02)
        contrast(1.02)
        brightness(1.06);

    transform:
        translateX(var(--qpg-bg-shift-x))
        scale(var(--qpg-bg-scale));

    transform-origin: center center;

    animation:
        qpgBackgroundReveal 1.8s
        cubic-bezier(.18, .72, .18, 1)
        both;
}

.qpg-coming__bg-intro {
    position: absolute;
    inset: 0;
    z-index: -7;

    background:
        linear-gradient(
            90deg,
            rgba(9, 68, 55, .58) 0%,
            rgba(9, 68, 55, .30) 38%,
            rgba(255, 255, 255, .12) 67%,
            rgba(255, 255, 255, .03) 100%
        );

    animation:
        qpgIntroVeil 2s
        .08s
        cubic-bezier(.18, .72, .18, 1)
        both;

    pointer-events: none;
}



.qpg-coming__overlay {
    position: absolute;
    inset: 0;
    z-index: -6;
    background: linear-gradient(90deg, rgba(1, 55, 101, 1) 0%, rgba(1, 55, 101, .99) 18%, rgba(1, 55, 101, .96) 31%, rgba(1, 55, 101, .86) 42%, rgba(1, 55, 101, .62) 50%, rgba(1, 55, 101, .34) 58%, rgba(1, 55, 101, .14) 66%, rgba(1, 55, 101, .04) 74%, transparent 86%), linear-gradient(180deg, rgba(1, 55, 101, .26) 0%, rgba(1, 55, 101, .05) 26%, rgba(1, 55, 101, .015) 56%, rgba(1, 55, 101, .20) 100%), radial-gradient(circle at 13% 56%, rgba(1, 55, 101, .30) 0%, rgba(1, 55, 101, .07) 34%, transparent 62%);
}

.qpg-coming__focus {
    position: absolute;
    inset: 0;
    z-index: -5;

    background:
        radial-gradient(
            ellipse at 80% 48%,
            rgba(255, 255, 255, .16) 0%,
            rgba(255, 255, 255, .075) 24%,
            rgba(255, 255, 255, .02) 43%,
            transparent 64%
        ),
        linear-gradient(
            105deg,
            transparent 46%,
            rgba(255, 255, 255, .025) 68%,
            rgba(255, 255, 255, .055) 100%
        );

    pointer-events: none;
}

.qpg-coming__glow {
    position: absolute;
    z-index: -4;

    border-radius: 50%;

    pointer-events: none;
}

.qpg-coming__glow--left {
    left: -14%;
    top: 34%;

    width: 44vw;
    height: 44vw;

    min-width: 360px;
    min-height: 360px;

    background:
        radial-gradient(
            circle,
            rgba(239, 203, 132, .12) 0%,
            rgba(239, 203, 132, .035) 40%,
            transparent 72%
        );

    filter: blur(30px);

    animation:
        qpgGlowPulse 6.5s
        ease-in-out
        infinite;
}

.qpg-coming__glow--project {
    right: 5%;
    top: 14%;

    width: 30vw;
    height: 30vw;

    min-width: 260px;
    min-height: 260px;

    background:
        radial-gradient(
            circle,
            rgba(255, 255, 255, .09) 0%,
            rgba(255, 255, 255, .02) 44%,
            transparent 72%
        );

    filter: blur(34px);

    animation:
        qpgGlowPulse 9s
        ease-in-out
        infinite reverse;
}


.qpg-ornament {
    position: absolute;
    z-index: 2;

    pointer-events: none;

    will-change: transform;
}


.qpg-shell {
    position: relative;
    z-index: 4;

    width: min(100%, 1580px);

    min-height: 100vh;
    min-height: 100svh;

    margin: 0 auto;

    padding:
        clamp(26px, 4.5vh, 48px)
        clamp(24px, 5vw, 88px)
        clamp(30px, 4vh, 42px);

    display: grid;
    grid-template-rows:
        auto
        1fr;
}


.qpg-topbar {
    width: min(660px, 64vw);

    display: grid;
    grid-template-columns:
        minmax(180px, 1fr)
        minmax(220px, 1fr);

    align-items: start;

    gap: 38px;

    animation:
        qpgFadeDown .8s .14s both
        cubic-bezier(.18, .72, .18, 1);
}

.qpg-partner {
    min-width: 0;
}

.qpg-partner--right {
    justify-self: start;
}

.qpg-partner__label {
    margin:
        0
        0
        10px;

    color:#fff;

    font-family:
        "Montserrat",
        Arial,
        sans-serif;

    font-size: 0.85rem;
    line-height: 1.4;text-align: center;
    font-weight: 700;

    letter-spacing: .10em;

    text-transform: uppercase;
}

.qpg-partner__logo {
    width: auto;    margin: auto;

    object-fit: contain;

    filter:
        drop-shadow(
            0 8px 18px
            rgba(0, 0, 0, .12)
        );
}

.qpg-partner__logo--qp {
    height: 79px;
}

.qpg-partner__logo--qs {
    height: 44px;
}


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

.qpg-hero {
    position: relative;

    width: min(660px, 64vw);

    min-height: 0;

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

.qpg-hero__content {
    width: min(570px, 100%);

    margin-left: auto;
    margin-right: auto;

    padding-top:
        clamp(18px, 4vh, 54px);

    text-align: left;

    
}



.qpg-badge {
    display: flex;
    align-items: center;

    gap: 13px;

    margin-bottom:
        clamp(16px, 2.3vh, 24px);

    color: var(--gold-soft);

    font-family:
        "Montserrat",
        Arial,
        sans-serif;

    font-size: 9px;
    line-height: 1;
    font-weight: 700;

    letter-spacing: .28em;
    text-transform: uppercase;
    animation:
        qpgHeroReveal 1s .28s both
        cubic-bezier(.18, .72, .18, 1);
}

.qpg-badge__line {
    width: 42px;
    height: 1px;

    background:
        linear-gradient(
            90deg,
            var(--gold),
            rgba(239, 203, 132, .16)
        );
}


.qpg-brand {
    width:
        clamp(280px, 34vw, 385px);

    margin:
        0
        auto
        clamp(18px, 2.8vh, 28px);

    opacity: .995;
    animation:
        qpgHeroReveal 1s .40s both
        cubic-bezier(.18, .72, .18, 1);
}

.qpg-brand__logo {
    width: 100%;

    filter:
        drop-shadow(
            0 16px 34px
            rgba(0, 0, 0, .14)
        );
}


.qpg-tagline {    text-align: center;

    margin: 2rem 0 0;

    color: #ffffff;

    font-family:
        "Montserrat",
        Arial,
        sans-serif;

    font-size:
        clamp(13px, 1.22vw, 18px);

    line-height: 1.42;

    font-weight: 700;

    letter-spacing: .075em;

    text-transform: uppercase;

    text-shadow:
        0 12px 26px
        rgba(0, 0, 0, .15);
}


.qpg-description {
    width:
        min(560px, 100%);

    margin:
        clamp(16px, 2.3vh, 22px)
        0
        0;

    color:
        rgba(255, 255, 255, .78);

    font-family:
        "Montserrat",
        Arial,
        sans-serif;

    font-size:
        clamp(12px, .92vw, 14px);

    line-height: 1.8;

    font-weight: 400;
    animation:
        qpgHeroReveal 1s .60s both
        cubic-bezier(.18, .72, .18, 1);
}


.qpg-link {
    width: fit-content;

    display: inline-flex;
    align-items: center;

    gap: 11px;

    margin-top:
        clamp(20px, 3vh, 30px);

    padding:
        10px
        0;

    color: #ffffff !important;

    font-family:
        "Montserrat",
        Arial,
        sans-serif;

    font-size: 11px;
    line-height: 1;
    font-weight: 700;

    letter-spacing: .11em;

    text-decoration: none !important;

    border-bottom:
        1px solid
        rgba(247, 223, 172, .46);

    transition:
        color .28s ease,
        border-color .28s ease;
}

.qpg-link__globe {
    width: 22px;
    height: 22px;

    color:
        var(--gold-soft);
}

.qpg-link__globe svg {
    width: 100%;
    height: 100%;

    fill: none;

    stroke: currentColor;
    stroke-width: 1.2;
}

.qpg-link__arrow {
    width: 17px;
    height: 17px;

    fill: none;

    stroke:
        var(--gold-soft);

    stroke-width: 1.3;

    transition:
        transform .28s ease;
}

.qpg-link:hover {
    color:
        var(--gold-soft) !important;

    border-color:
        var(--gold-soft);
}

.qpg-link:hover
.qpg-link__arrow {
    transform:
        translateX(3px);
}

@keyframes qpgBackgroundReveal {
    from {
        opacity: 0;

        transform:
            translateX(var(--qpg-bg-shift-start-x))
            scale(var(--qpg-bg-scale-start));

        filter:
            saturate(.88)
            contrast(.96)
            brightness(1.14)
            blur(4px);
    }

    to {
        opacity: 1;

        transform:
            translateX(var(--qpg-bg-shift-x))
            scale(var(--qpg-bg-scale));

        filter:
            saturate(1.02)
            contrast(1.02)
            brightness(1.06)
            blur(0);
    }
}

@keyframes qpgIntroVeil {
    0% {
        opacity: 1;
    }

    45% {
        opacity: .7;
    }

    100% {
        opacity: 0;
    }
}

@keyframes qpgGlowPulse {
    0%,
    100% {
        opacity: .78;
    }

    50% {
        opacity: 1;
    }
}

@keyframes qpgTopLeafMotion {
    0%,
    100% {
        transform:
            rotate(0deg)
            scale(1);
    }

    50% {
        transform:
            rotate(1.3deg)
            scale(1.008);
    }
}

@keyframes qpgBottomLeafMotion {
    0%,
    100% {
        transform:
            rotate(0deg)
            scale(1);
    }

    50% {
        transform:
            rotate(-1.6deg)
            scale(1.012);
    }
}

@keyframes qpgFadeDown {
    from {
        opacity: 0;

        transform:
            translateY(-12px);
    }

    to {
        opacity: 1;

        transform:
            translateY(0);
    }
}

@keyframes qpgHeroReveal {
    from {
        opacity: 0;

        transform:
            translateY(22px);
    }

    to {
        opacity: 1;

        transform:
            translateY(0);
    }
}
  
@media (min-width: 1900px) {
    .qpg-shell{width: 100%}
}    

@media (max-width: 1180px) {

    .qpg-shell {
        padding-left: 44px;
        padding-right: 44px;
    }
    .qpg-partner__label{font-size: 0.65rem}
    .qpg-topbar {
        width:
            min(490px, 72vw);

        gap: 25px;
    }

    .qpg-hero {
        width:
            min(440px, 72vw);
    }

    .qpg-hero__content {
        width:
            min(410px, 100%);
    }

    .qpg-brand {
        width:
            clamp(270px, 33vw, 430px);
    }
}


@media (max-width: 900px) {

    .qpg-coming__bg {
        --qpg-bg-position-x: 52%;
        --qpg-bg-shift-x: 2.5%;
        --qpg-bg-shift-start-x: 3.5%;
        --qpg-bg-scale: 1.065;
        --qpg-bg-scale-start: 1.095;
    }

    .qpg-coming__overlay {
        background:
            linear-gradient(
                180deg,
                rgba(5, 50, 41, .22) 0%,
                rgba(5, 50, 41, .20) 21%,
                rgba(6, 56, 46, .50) 48%,
                rgba(5, 46, 38, .86) 73%,
                rgba(4, 39, 32, .96) 100%
            ),
            linear-gradient(
                90deg,
                rgba(5, 50, 41, .32) 0%,
                rgba(5, 50, 41, .08) 68%,
                transparent 100%
            );
    }

    .qpg-coming__focus {
        background:
            radial-gradient(
                ellipse at 67% 25%,
                rgba(255, 255, 255, .12) 0%,
                rgba(255, 255, 255, .035) 30%,
                transparent 60%
            );
    }

    .qpg-shell {
        padding:
            30px
            34px
            28px;
    }

    .qpg-topbar {
        width: 100%;

        grid-template-columns:
            1fr
            1fr;

        gap: 26px;
    }

    .qpg-hero {
        width: 100%;
    }
    .qpg-tagline{text-align: center;}
    .qpg-tagline,.qpg-description { width: min(100%, 100%);}
   
    .qpg-partner--right
    .qpg-partner__logo {
        margin-left: auto;
    }

    .qpg-hero {
        align-items: flex-end;

        padding:
            27vh
            0
            32px;
    }

    .qpg-hero__content {
        width: min(610px, 100%);
        max-width: 610px;

        margin-left: auto;
        margin-right: auto;

        padding-top: 0;
    }

    .qpg-brand {
        width:
            clamp(280px, 38vw, 445px);
    }

}


@media (max-width: 640px) {

    .qpg-hero {
        width: 100%;
    }

    .qpg-hero__content {
        width: 100%;
        max-width: none;

        margin-left: 0;
        margin-right: 0;
    }

    .qpg-coming__bg {
        --qpg-bg-position-x: 50%;
        --qpg-bg-shift-x: 1.5%;
        --qpg-bg-shift-start-x: 2.5%;
        --qpg-bg-scale: 1.06;
        --qpg-bg-scale-start: 1.085;
    }

    .qpg-coming__overlay {
                background: linear-gradient(180deg, rgba(5, 49, 40, .80) 0%, rgba(5, 49, 40, .20) 22%, rgba(6, 55, 45, .30) 45%, rgba(5, 49, 40, .80) 66%, rgba(4, 40, 33, .98) 100%), linear-gradient(90deg, rgba(5, 48, 39, 0) 0%, rgba(5, 48, 39, .0) 95%, transparent 100%);
    }

    .qpg-shell {
        padding:
            23px
            20px
            22px;
    }

    .qpg-topbar {
        gap: 14px;
    }

    .qpg-partner__label {
        min-height: 22px;

        margin-bottom: 7px;

        font-size: 0.55rem;
        line-height: 1.4;

        letter-spacing: .075em;
    }

    .qpg-partner__logo--qp {
        height: 43px;
    }

    .qpg-partner__logo--qs {
        height: 49px;
    }

    .qpg-hero {
        padding:
            39vh
            0
            18px;
    }

    .qpg-badge {
        gap: 10px;

        margin-bottom: 15px;

        font-size: 0.6rem;

        letter-spacing: .24em;
    }

    .qpg-badge__line {
        width: 31px;
    }

    .qpg-brand {
        width:
            min(66vw, 345px);

        margin-bottom: 16px;
    }

    .qpg-tagline {
        font-size:
            clamp(12px, 3.8vw, 15px);

        line-height: 1.5;

        letter-spacing: .055em;
    }

    .qpg-description {
        max-width: 100%;

        margin-top: 14px;

        font-size: 13px;
        line-height: 1.68;
    }

    .qpg-link {
        margin-top: 17px;

        font-size: 0.7rem;

        letter-spacing: .085em;
    }

    .qpg-link__globe {
        width: 22px;
        height: 22px;
    }

}


@media (max-width: 380px) {

    .qpg-shell {
        padding-left: 17px;
        padding-right: 17px;
    }

    .qpg-hero {
        padding-top: 41vh;
    }

    .qpg-brand {
        width:
            min(82vw, 310px);
    }

    .qpg-tagline {
        font-size: 11.5px;
    }
}


@media (max-height: 720px) and (min-width: 901px) {

    .qpg-shell {
        padding-top: 27px;
        padding-bottom: 27px;
    }

    .qpg-hero__content {
        padding-top: 12px;
    }

    .qpg-brand {
        width:
            clamp(250px, 29vw, 400px);

        margin-bottom: 16px;
    }

    .qpg-tagline {
        font-size:
            clamp(12px, 1.05vw, 16px);
    }

    .qpg-description {
        margin-top: 13px;

        font-size: 11.5px;
        line-height: 1.65;
    }

    .qpg-link {
        margin-top: 15px;
    }
}


@media (prefers-reduced-motion: reduce) {

    .qpg-coming__bg,
    .qpg-coming__bg-intro,
    .qpg-coming__glow,
    .qpg-ornament,
    .qpg-topbar,
    .qpg-hero__content {
        animation: none !important;
    }

    .qpg-link,
    .qpg-link__arrow {
        transition: none !important;
    }
}

/* =========================================================
   REFINED OVERRIDES — LUVISTA COMING SOON
   Appended to the user's current stylesheet so the existing
   background/reveal/responsive system is preserved.
========================================================= */

.qpg-coming {
    --luv-blue: #063a63;
    --luv-blue-deep: #052f51;
    --luv-accent: #efb6a1;
    --luv-accent-light: #ffd5c6;
}

/* Keep the project image clear on the right and the content calm on the left */
.qpg-coming__bg {
    --qpg-bg-position-x: 70%;
    --qpg-bg-shift-x: 7%;
    --qpg-bg-shift-start-x: 9%;
    --qpg-bg-scale: 1.055;
    --qpg-bg-scale-start: 1.085;
}

.qpg-coming__overlay {
       background: linear-gradient(90deg, rgba(5, 47, 81, 100) 0%, rgba(5, 51, 87, .99) 19%, rgba(6, 57, 96, .80) 32%, rgba(6, 62, 104, .30) 42%, rgba(6, 63, 106, .02) 51%, transparent 88%), linear-gradient(180deg, rgba(5, 44, 75, .14) 0%, transparent 38%, rgba(4, 35, 60, .16) 100%);
}

.qpg-coming__focus {
    background:
        radial-gradient(
            ellipse at 80% 42%,
            rgba(255, 216, 190, .14) 0%,
            rgba(255, 255, 255, .05) 28%,
            transparent 61%
        );
}

/* More balanced page proportions */
.qpg-shell {
    width: min(100%, 1600px);
    padding:
        clamp(28px, 4.5vh, 50px)
        clamp(28px, 5.2vw, 94px)
        clamp(28px, 4.2vh, 46px);
}

.qpg-topbar {
    width: min(620px, 55vw);
    grid-template-columns: minmax(150px, 1fr) minmax(210px, 1.18fr);
    gap: clamp(44px, 6vw, 82px);
}

.qpg-partner__label {
    margin-bottom: 9px;
    font-size: 10px;
    line-height: 1.4;
    letter-spacing: .08em;
    text-align: left;
}

.qpg-partner__logo {
    margin: 0;
}

.qpg-partner--right {
    justify-self: start;
}

.qpg-partner__logo--qp {
    height: 70px;
}

.qpg-partner__logo--qs {
    height: 52px;
}

/* Hero is no longer oversized; the logo remains the visual focal point */
.qpg-hero {
    width: min(650px, 58vw);
    justify-content: flex-start;
}

.qpg-hero__content {
    width: min(610px, 100%);
    margin: 0;
    padding-top: clamp(18px, 4vh, 42px);
}

.qpg-badge {
    margin-bottom: clamp(16px, 2.2vh, 23px);
    color: var(--luv-accent-light);
    font-size: 10px;
    letter-spacing: .24em;
}

.qpg-badge__line {
    background: linear-gradient(90deg, var(--luv-accent), rgba(239, 182, 161, .12));
}

.qpg-brand {
    width: clamp(300px, 29vw, 430px);
    margin: 0 0 clamp(18px, 2.6vh, 26px);
}

.qpg-description {
    width: min(570px, 100%);
    margin: 0;
    color: rgba(255,255,255,.80);
    font-size: clamp(13px, .92vw, 15px);
    line-height: 1.78;
}

/* =========================================================
   CONTACT BLOCK
========================================================= */

.qpg-contact {
    width: min(610px, 100%);
    margin-top: clamp(26px, 3.6vh, 38px);
    animation:
        qpgHeroReveal 1s .80s both
        cubic-bezier(.18, .72, .18, 1);
}

.qpg-contact__heading {
    margin-bottom: clamp(14px, 2vh, 20px);
}

.qpg-contact__eyebrow {
    display: block;
    margin-bottom: 7px;
    color: var(--luv-accent-light);
    font-size: 9px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: .17em;
    text-transform: uppercase;
}

.qpg-contact__title {
    margin: 0 !important;
    color: #fff;
    font-family: "Montserrat", Arial, sans-serif;
    font-size: clamp(24px, 2vw, 31px);
    line-height: 1.15;
    font-weight: 700;
    letter-spacing: .055em;
    text-transform: uppercase;
}

/* =========================================================
   CONTACT FORM 7
========================================================= */

.qpg-contact .wpcf7,
.qpg-contact .wpcf7-form,
.luv-contact-form {
    width: 100%;
    margin: 0;
}

.luv-contact-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.luv-contact-form__field {
    min-width: 0;
}

.luv-contact-form__field--full {
    grid-column: 1 / -1;
}

.qpg-contact .wpcf7 p {
    margin: 0;
}

.qpg-contact .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}

.qpg-contact input[type="text"],
.qpg-contact input[type="tel"],
.qpg-contact input[type="email"],
.qpg-contact textarea {
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0;
    border: 1px solid rgba(255,255,255,.19);
    border-radius: 7px;
    outline: 0;
    background: rgba(255,255,255,.075);
    color: #fff;
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 13px;
    font-weight: 400;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
    backdrop-filter: blur(7px);
    -webkit-backdrop-filter: blur(7px);
    transition: border-color .25s ease, background .25s ease, box-shadow .25s ease;
}

.qpg-contact input[type="text"],
.qpg-contact input[type="tel"],
.qpg-contact input[type="email"] {
    height: 48px;
    padding: 0 15px;
}

.qpg-contact textarea {
    min-height: 112px;
    height: 112px;
    padding: 13px 15px;
    resize: vertical;
}

.qpg-contact input::placeholder,
.qpg-contact textarea::placeholder {
    color: rgba(255,255,255,.56);
    opacity: 1;
}

.qpg-contact input[type="text"]:focus,
.qpg-contact input[type="tel"]:focus,
.qpg-contact input[type="email"]:focus,
.qpg-contact textarea:focus {
    border-color: rgba(239,182,161,.78);
    background: rgba(255,255,255,.105);
    box-shadow: 0 0 0 3px rgba(239,182,161,.08);
}

.luv-contact-form__actions {
    display: flex;
    justify-content: flex-start;
    width: 100%;
    padding-top: 2px;
}

.qpg-contact input[type="submit"],
.qpg-contact .luv-contact-form__submit {
    width: auto;
    min-width: 170px;
    height: 46px;
    padding: 0 25px;
    border: 1px solid rgba(239,182,161,.70);
    border-radius: 999px;
    background: linear-gradient(135deg, #f1bea9, #da967d);
    color: #073e68 !important;
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 11px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: .075em;
    text-transform: uppercase;
    cursor: pointer;
    box-shadow: 0 12px 26px rgba(0,0,0,.14);
    transition: transform .25s ease, box-shadow .25s ease, filter .25s ease;
}

.qpg-contact input[type="submit"]:hover,
.qpg-contact .luv-contact-form__submit:hover {
    transform: translateY(-2px);
    filter: brightness(1.035);
    box-shadow: 0 16px 30px rgba(0,0,0,.18);
}

.qpg-contact .wpcf7-not-valid-tip {
    margin-top: 5px;
    color: #ffd6c8;
    font-size: 10px;
    line-height: 1.4;
}

.qpg-contact .wpcf7-not-valid {
    border-color: rgba(255,151,131,.82) !important;
}

.qpg-contact .wpcf7-response-output {
    margin: 12px 0 0 !important;
    padding: 10px 12px !important;
    border: 1px solid rgba(255,255,255,.18) !important;
    border-radius: 7px;
    background: rgba(255,255,255,.07);
    color: rgba(255,255,255,.88);
    font-size: 11px;
    line-height: 1.5;
}

.qpg-contact .wpcf7-spinner {
    margin: 0 0 0 12px;
    background-color: rgba(255,255,255,.24);
}

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

@media (min-width: 1900px) {
    .qpg-shell {
        width: 100%;
        max-width: 1820px;
    }

    .qpg-topbar {
        width: 690px;
    }

    .qpg-hero {
        width: 700px;
    }

    .qpg-hero__content,
    .qpg-contact {
        width: 650px;
    }

    .qpg-brand {
        width: 450px;
    }
}
@media (min-width: 2300px) {
    .qpg-badge{font-size: 14px;}
    .qpg-shell { width: 100%; max-width: 93%; }
    .qpg-partner__logo--qp { height: 69px; margin-top: 1rem; }
    .qpg-partner__logo--qs { height: 78px; margin-top: 1rem; }
}  
@media (max-width: 1180px) {
    .qpg-shell {
        padding-left: 42px;
        padding-right: 42px;
    }

    .qpg-topbar {
        width: min(560px, 72vw);
        gap: 34px;
    }

    .qpg-partner__label {
        font-size: 8px;
    }

    .qpg-partner__logo--qp {
        height: 58px;
    }

    .qpg-partner__logo--qs {
        height: 44px;
    }

    .qpg-hero {
        width: min(570px, 72vw);
    }

    .qpg-hero__content {
        width: min(530px, 100%);
    }

    .qpg-brand {
        width: clamp(280px, 29vw, 390px);
    }
}

@media (max-width: 900px) {
    .qpg-coming__bg {
        --qpg-bg-position-x: 62%;
        --qpg-bg-shift-x: 2%;
        --qpg-bg-shift-start-x: 3%;
        --qpg-bg-scale: 1.055;
        --qpg-bg-scale-start: 1.08;
    }

    .qpg-coming__overlay {
        background:
            linear-gradient(
                180deg,
                rgba(1, 55, 101,.18) 0%,
                rgba(1, 55, 101,.24) 24%,
                rgba(1, 55, 101,.62) 50%,
                rgba(1, 55, 101,.90) 73%,
                rgba(1, 55, 101,.98) 100%
            );
    }

    .qpg-shell {
        padding: 28px 30px 30px;
    }

    .qpg-topbar {
        width: 100%;
        grid-template-columns: 1fr 1fr;
        gap: 24px;
    }

    .qpg-partner--right {
        justify-self: end;
    }

    .qpg-partner--right .qpg-partner__logo {
        margin-left: auto;
    }


    .qpg-hero {
        width: 100%;
        align-items: flex-end;
        padding: 28vh 0 18px;        justify-content: center;
    }

    .qpg-hero__content {
        width: min(620px, 100%);
        padding-top: 0;
    }

    .qpg-brand {
        width: clamp(280px, 52vw, 400px);
    }
}

@media (max-width: 640px) {
    .qpg-coming {
        overflow-y: auto;
    }

    .qpg-coming__bg {
        --qpg-bg-position-x: 68%;
        --qpg-bg-shift-x: 0%;
        --qpg-bg-shift-start-x: 0%;
        --qpg-bg-scale: 1.03;
        --qpg-bg-scale-start: 1.045;
        transform-origin: center bottom;
    }

    .qpg-coming__overlay {
                background: linear-gradient(180deg, rgba(1, 55, 101, .16) 0%, rgba(1, 55, 101, .28) 40%, rgba(1, 55, 101, .82) 50%, rgba(1, 55, 101, .94) 70%, rgba(1, 55, 101, 1) 100%)
    }

    .qpg-shell {
        min-height: 100svh;
        padding: 22px 18px 24px;
    }

    .qpg-topbar {
        gap: 14px;
    }

    .qpg-partner__label {
        margin-bottom: 7px;
        font-size: 10px;
    }

    .qpg-partner__logo--qp {
        height: 42px;
    }

    .qpg-partner__logo--qs {
        height: 34px;
    }

    .qpg-hero {
        padding: 36vh 0 0;
    }

    .qpg-badge {
        gap: 9px;
        margin-bottom: 15px;
    }

    .qpg-badge__line {
        width: 30px;
    }

    .qpg-brand {
        width: min(76vw, 320px);
        margin-bottom: 17px;
    }

    .qpg-description {
        font-size: 12px;
        line-height: 1.68;
    }

    .qpg-contact {
        margin-top: 25px;
    }

    .qpg-contact__title {
        font-size: 23px;
    }

    .luv-contact-form__grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .luv-contact-form__field--full {
        grid-column: auto;
    }

    .qpg-contact input[type="text"],
    .qpg-contact input[type="tel"],
    .qpg-contact input[type="email"] {
        height: 46px;
    }

    .qpg-contact textarea {
        min-height: 100px;
        height: 100px;
    }

    .qpg-contact input[type="submit"],
    .qpg-contact .luv-contact-form__submit {
        width: 100%;
    }
}

@media (max-height: 760px) and (min-width: 901px) {
    .qpg-shell {
        padding-top: 25px;
        padding-bottom: 24px;
    }

    .qpg-partner__logo--qp {
        height: 56px;
    }

    .qpg-partner__logo--qs {
        height: 42px;
    }

    .qpg-hero__content {
        padding-top: 10px;
    }

    .qpg-brand {
        width: 290px;
        margin-bottom: 14px;
    }

    .qpg-description {
        font-size: 12px;
        line-height: 1.6;
    }

    .qpg-contact {
        margin-top: 20px;
    }

    .qpg-contact__heading {
        margin-bottom: 13px;
    }

    .qpg-contact textarea {
        min-height: 86px;
        height: 86px;
    }
}


/* =========================================================
   V2 OVERRIDES
   1) BALANCE TNT HOMES / CONASI
   2) LIGHTER PREMIUM CONTACT FORM
========================================================= */

/* ---------- Partner logos: equal visual stage ---------- */

.qpg-topbar {
    width: min(620px, 55vw);
    grid-template-columns: minmax(170px, 1fr) minmax(220px, 1.15fr);
    gap: clamp(46px, 6vw, 82px);
}

.qpg-partner {
    display: grid;
    grid-template-rows: auto 56px;
    align-items: start;
    min-width: 0;
}

.qpg-partner--right {
    justify-self: stretch;
}

.qpg-partner__label {
    min-height: 18px;
    margin:0 0 5px;
    text-align: center;
}

.qpg-partner__logo {
    align-self: center;
    justify-self: center;
    width: auto;
    height: auto;
    margin: 0;
    object-fit: contain;
    object-position: center;
}

/*
 * TNT Homes: compact / vertical.
 * Conasi: wide / horizontal.
 * Different max dimensions make their PERCEIVED size balanced.
 */
.qpg-partner__logo--qp {
    height: auto;
    max-height: 58px;
    max-width: 118px;
}

.qpg-partner__logo--qs {
    height: auto;
    max-height: 43px;
    max-width: 186px;
}


/* ---------- Contact heading ---------- */

.qpg-contact {
    width: min(610px, 100%);
}

.qpg-contact__heading {
    margin-bottom: 18px;
}

.qpg-contact__eyebrow {
    color: rgba(255,255,255,.64);
}

.qpg-contact__title {
    color: #fff;
}


/* ---------- Contact Form 7: bright premium fields ---------- */

.qpg-contact .wpcf7,
.qpg-contact .wpcf7 form,
.qpg-contact .wpcf7-form {
    width: 100%;
    margin: 0;
}

.luv-contact-form,
.luv-contact-form__grid {
    width: 100%;
}

.luv-contact-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.luv-contact-form__field {
    min-width: 0;
}

.luv-contact-form__field--full {
    grid-column: 1 / -1;
}

.qpg-contact .wpcf7 p {
    margin: 0;
}

.qpg-contact .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}

.qpg-contact input[type="text"],
.qpg-contact input[type="tel"],
.qpg-contact input[type="email"],
.qpg-contact textarea {
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0;

    border: 1px solid rgba(255,255,255,.90);
    border-radius: 10px;
    outline: none;

    background: rgba(255,255,255,.96);
    color: #123e61;

    font-family: "Montserrat", Arial, sans-serif;
    font-size: 13px;
    line-height: 1.45;
    font-weight: 400;

    box-shadow:
        0 8px 24px rgba(2, 31, 53, .10),
        inset 0 1px 0 rgba(255,255,255,.70);

    transition:
        border-color .24s ease,
        box-shadow .24s ease,
        background .24s ease,
        transform .24s ease;
}

.qpg-contact input[type="text"],
.qpg-contact input[type="tel"],
.qpg-contact input[type="email"] {
    height: 50px;
    padding: 0 16px;
}

.qpg-contact textarea {
    min-height: 108px;
    height: 108px;
    padding: 14px 16px;
    resize: vertical;
}

.qpg-contact input::placeholder,
.qpg-contact textarea::placeholder {
    color: rgba(18, 62, 97, .52);
    opacity: 1;
}

.qpg-contact input[type="text"]:focus,
.qpg-contact input[type="tel"]:focus,
.qpg-contact input[type="email"]:focus,
.qpg-contact textarea:focus {
    border-color: rgba(239, 183, 162, .98);
    background: #fff;

    box-shadow:
        0 0 0 3px rgba(239, 183, 162, .14),
        0 12px 30px rgba(2, 31, 53, .14);
}


/* ---------- Submit ---------- */

.luv-contact-form__actions {
    display: flex;
    width: 100%;
    padding-top: 2px;
}

.qpg-contact input[type="submit"],
.qpg-contact .luv-contact-form__submit {
    width: 100%;
    min-width: 0;
    height: 50px;
    padding: 0 26px;

    border: 1px solid rgba(255, 216, 200, .82);
    border-radius: 10px;

    background:
        linear-gradient(
            135deg,
            #f5c2ae 0%,
            #edac96 45%,
            #df9179 100%
        );

    color: #073d65 !important;

    font-family: "Montserrat", Arial, sans-serif;
    font-size: 11px;
    line-height: 1;
    font-weight: 700;

    letter-spacing: .10em;
    text-transform: uppercase;

    cursor: pointer;

    box-shadow: 0 12px 28px rgba(2, 31, 53, .18);

    transition:
        transform .24s ease,
        box-shadow .24s ease,
        filter .24s ease;
}

.qpg-contact input[type="submit"]:hover,
.qpg-contact .luv-contact-form__submit:hover {
    transform: translateY(-2px);
    filter: brightness(1.035);
    box-shadow: 0 17px 34px rgba(2, 31, 53, .24);
}

.qpg-contact input[type="submit"]:active,
.qpg-contact .luv-contact-form__submit:active {
    transform: translateY(0);
}


/* ---------- CF7 states ---------- */

.qpg-contact .wpcf7-not-valid-tip {
    margin-top: 5px;
    color: #ffd8cb;
    font-size: 10px;
    line-height: 1.4;
}

.qpg-contact .wpcf7-not-valid {
    border-color: rgba(235,112,91,.90) !important;
}

.qpg-contact .wpcf7-response-output {
    margin: 12px 0 0 !important;
    padding: 11px 13px !important;

    border: 1px solid rgba(255,255,255,.30) !important;
    border-radius: 9px;

    background: rgba(255,255,255,.12);
    color: rgba(255,255,255,.92);

    font-size: 11px;
    line-height: 1.5;
}

.qpg-contact .wpcf7-spinner {
    margin: 13px 0 0 12px;
    background-color: rgba(255,255,255,.42);
}

@media (min-width: 2300px) {
    .qpg-partner__label {min-height: 24px; font-size: 11px;   }
    .qpg-partner__logo--qp {max-height: 68px;}
    .qpg-partner__logo--qs {max-height: 46px; max-width: 186px; }
}  

/* =========================================================
   V2 RESPONSIVE OVERRIDES
========================================================= */

@media (max-width: 1180px) {

    .qpg-partner {
        grid-template-rows: auto 58px;
    }

    .qpg-partner__logo--qp {
        height: auto;
        max-height: 51px;
        max-width: 105px;
    }

    .qpg-partner__logo--qs {
        height: auto;
        max-height: 38px;
        max-width: 164px;
    }
}

@media (max-width: 900px) {

    .qpg-partner--right {
        justify-self: stretch;
    }

    .qpg-partner--right .qpg-partner__logo {
        margin-left: 0;
        margin-right: 0;
        justify-self: center;
    }
}

@media (max-width: 640px) {

    .qpg-partner {
        grid-template-rows: auto 48px;
    }

    .qpg-partner__logo--qp {
        height: auto;
        max-height: 53px;
        max-width: 88px;
    }

    .qpg-partner__logo--qs {
        height: auto;
        max-height: 31px;
        max-width: 138px;
    }

    .luv-contact-form__grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .luv-contact-form__field--full {
        grid-column: auto;
    }

    .qpg-contact input[type="text"],
    .qpg-contact input[type="tel"],
    .qpg-contact input[type="email"] {
        height: 48px;
    }

    .qpg-contact textarea {
        min-height: 102px;
        height: 102px;
    }
}

@media (max-height: 760px) and (min-width: 901px) {

    .qpg-partner__logo--qp {
        height: auto;
        max-height: 49px;
        max-width: 102px;
    }

    .qpg-partner__logo--qs {
        height: auto;
        max-height: 37px;
        max-width: 158px;
    }
}


/* =========================================================
   V3 OVERRIDES
   1. Transparent form controls
   2. Reduce left gutter / content width to reveal more project visual
========================================================= */

/* ---------------------------------------------------------
   PAGE / LEFT GUTTER
--------------------------------------------------------- */

.qpg-shell {
    padding-left: clamp(18px, 2.7vw, 30px);
    padding-right: clamp(22px, 4vw, 72px);
}

/*
 * Slightly narrower left content area so the right-side
 * project rendering remains more visible.
 */
.qpg-topbar {
    width: min(480px, 51vw);
}

.qpg-hero {
    width: min(590px, 53vw);
}

.qpg-hero__content {
    width: min(550px, 100%);
}

.qpg-description,
.qpg-contact {
    width: min(540px, 100%);
}


/* ---------------------------------------------------------
   TRANSPARENT FORM
--------------------------------------------------------- */

.qpg-contact input[type="text"],
.qpg-contact input[type="tel"],
.qpg-contact input[type="email"],
.qpg-contact textarea {
    border: 1px solid rgba(255, 255, 255, .38);

    background:
        rgba(255, 255, 255, .055);

    color: #ffffff;

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .035),
        0 8px 24px rgba(2, 31, 53, .05);

    backdrop-filter: blur(7px);
    -webkit-backdrop-filter: blur(7px);
}

.qpg-contact input::placeholder,
.qpg-contact textarea::placeholder {
    color: rgba(255, 255, 255, .60);
}

.qpg-contact input[type="text"]:focus,
.qpg-contact input[type="tel"]:focus,
.qpg-contact input[type="email"]:focus,
.qpg-contact textarea:focus {
    border-color: rgba(239, 183, 162, .82);

    background:
        rgba(255, 255, 255, .09);

    color: #ffffff;

    box-shadow:
        0 0 0 3px rgba(239, 183, 162, .08),
        inset 0 1px 0 rgba(255, 255, 255, .04);
}


/* Transparent submit button */
.qpg-contact input[type="submit"],
.qpg-contact .luv-contact-form__submit {
    border: 1px solid rgba(239, 183, 162, .72);

    background:
        rgba(255, 255, 255, .035);

    color: #ffd1bf !important;

    box-shadow: none;

    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

.qpg-contact input[type="submit"]:hover,
.qpg-contact .luv-contact-form__submit:hover {
    transform: translateY(-2px);

    background:
        rgba(239, 183, 162, .12);

    border-color:
        rgba(255, 211, 194, .95);

    color: #ffffff !important;

    box-shadow:
        0 10px 24px
        rgba(2, 31, 53, .10);
}

.qpg-contact input[type="submit"]:active,
.qpg-contact .luv-contact-form__submit:active {
    transform: translateY(0);
}


/* ---------------------------------------------------------
   RESPONSIVE
--------------------------------------------------------- */

@media (max-width: 1180px) {

    .qpg-shell {
        padding-left: 28px;
        padding-right: 34px;
    }

    .qpg-topbar {
        width: min(315px, 55vw);
        grid-template-columns: minmax(120px, 1fr) minmax(220px, 1.15fr);
        gap: clamp(9px, 1vw, 52px);
    }

    .qpg-hero {
        width: min(315px, 69vw);
    }

    .qpg-hero__content {
        width: min(500px, 100%);
    }

    .qpg-description,
    .qpg-contact {
        width: min(495px, 100%);
    }
}

@media (max-width: 900px) {

    .qpg-shell {
        padding-left: 26px;
        padding-right: 26px;
    }

    .qpg-topbar,
    .qpg-hero {
        width: 100%;
    }

    .qpg-hero__content {
        width: min(610px, 100%);
    }

    .qpg-description,
    .qpg-contact {
        width: 100%;
    }
}

@media (max-width: 640px) {

    .qpg-shell {
        padding-left: 17px;
        padding-right: 17px;
    }

    .qpg-contact input[type="text"],
    .qpg-contact input[type="tel"],
    .qpg-contact input[type="email"],
    .qpg-contact textarea {
        background:
            rgba(255, 255, 255, .07);
    }

    .qpg-contact input[type="submit"],
    .qpg-contact .luv-contact-form__submit {
        background:
            rgba(255, 255, 255, .045);
    }
}


/* =========================================================
   V4 OVERRIDES
   1. Submit button icon
   2. Slightly reduce field heights
========================================================= */

/* ---------------------------------------------------------
   FIELD HEIGHTS — COMPACT BUT STILL COMFORTABLE
--------------------------------------------------------- */

.qpg-contact input[type="text"],
.qpg-contact input[type="tel"],
.qpg-contact input[type="email"] {
    height: 39px;
    padding-left: 15px;
    padding-right: 15px;
}

.qpg-contact textarea {
    min-height: 80px;
    height: 80px;
    padding: 12px 15px;
}


/* ---------------------------------------------------------
   SUBMIT BUTTON + ICON
   Uses an inline SVG background so CF7 markup does not need
   to change. This works directly on input[type="submit"].
--------------------------------------------------------- */
.qpg-contact .wpcf7 .ajax-loader{position: absolute;}
.qpg-contact input[type="submit"],
.qpg-contact .luv-contact-form__submit {
    height: 39px;

    padding-left: 22px;
    padding-right: 50px;

    text-align: center;

    background-color:
        rgba(255, 255, 255, .035);

    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffd1bf' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h13'/%3E%3Cpath d='m14 7 5 5-5 5'/%3E%3C/svg%3E");

    background-repeat: no-repeat;
    background-position:
        right 18px center;

    background-size:
        17px 17px;

    transition:
        transform .24s ease,
        box-shadow .24s ease,
        filter .24s ease,
        border-color .24s ease,
        background-color .24s ease,
        background-position .24s ease;
}

.qpg-contact input[type="submit"]:hover,
.qpg-contact .luv-contact-form__submit:hover {
    background-color:
        rgba(239, 183, 162, .12);

    background-position:
        right 15px center;
}


/* ---------------------------------------------------------
   MOBILE
--------------------------------------------------------- */

@media (max-width: 640px) {

    .qpg-contact input[type="text"],
    .qpg-contact input[type="tel"],
    .qpg-contact input[type="email"] {
        height: 45px;
    }

    .qpg-contact textarea {
        min-height: 92px;
        height: 92px;
    }

    .qpg-contact input[type="submit"],
    .qpg-contact .luv-contact-form__submit {
        height: 46px;
    }
}