/*
 * Crown & Compass Global — Contact Us
 * Page-specific stylesheet extracted from the live global stylesheet.
 * Original cascade order preserved.
 */

/* =========================================================
   CONTACT US PAGE — HERO
   ========================================================= */

.contact-page .contact-hero{
    position:relative;
    min-height:610px;

    display:flex;
    align-items:center;
    justify-content:center;

    overflow:hidden;

    padding:120px 32px 90px;

    background:
        url("assets/images/ccg-contact-us-hero-network.png")
        center center / cover
        no-repeat,

        linear-gradient(
            120deg,
            #1D2952 0%,
            #3B4B78 52%,
            #293861 100%
        );
}


/* subtle edge fade / depth */
.contact-page .contact-hero::before{
    content:"";

    position:absolute;
    inset:0;

    z-index:1;

    background:

        /* left Midnight fade */
        linear-gradient(
            90deg,
            rgba(29,41,82,.88) 0%,
            rgba(29,41,82,.42) 10%,
            transparent 27%
        ),

        /* right Offset/Midnight fade */
        linear-gradient(
            270deg,
            rgba(41,56,97,.88) 0%,
            rgba(52,63,104,.42) 10%,
            transparent 27%
        ),

        /* upper corner depth */
        linear-gradient(
            180deg,
            rgba(29,41,82,.52) 0%,
            transparent 28%
        ),

        /* lower edge depth */
        linear-gradient(
            0deg,
            rgba(29,41,82,.62) 0%,
            transparent 26%
        );

    pointer-events:none;
}


.contact-page .contact-hero::after{
    content:"";

    position:absolute;
    inset:0;

    z-index:1;

    background:
        radial-gradient(
            circle at 5% 10%,
            rgba(212,160,23,.11) 0%,
            rgba(224,199,127,.06) 16%,
            transparent 34%
        ),

        radial-gradient(
            circle at 95% 90%,
            rgba(212,160,23,.10) 0%,
            rgba(224,199,127,.05) 16%,
            transparent 34%
        );

    pointer-events:none;
}

.contact-page .contact-hero-inner{
    position:relative;
    z-index:3;
}

/* =========================================================
   INNER CONTENT
   ========================================================= */

.contact-page .contact-hero-inner{
    position:relative;
    z-index:2;

    width:100%;
    max-width:980px;

    margin:0 auto;

    text-align:center;
}


/* =========================================================
   BREADCRUMB
   ========================================================= */

.contact-page .contact-hero .hero-breadcrumb{
    display:flex;
    align-items:center;
    justify-content:center;

    gap:7px;

    margin:0 0 24px;

    font-family:"Assistant", sans-serif !important;

    font-size:13px;
    font-weight:500;

    color:#D4A017;
}

.contact-page .contact-hero .hero-breadcrumb a,
.contact-page .contact-hero .hero-breadcrumb span{
    color:#D4A017;
}


/* reuse sitewide hover gleam */
.contact-page .contact-hero .hero-breadcrumb a{
    text-decoration:none;
}


/* =========================================================
   EYEBROW
   ========================================================= */

.contact-page .contact-hero-eyebrow{
    margin:0 0 20px;

    color:#F0DEAE;

    font-family:"Assistant", sans-serif !important;

    font-size:13px;
    font-weight:700;

    letter-spacing:.18em;

    text-transform:uppercase;
}


/* =========================================================
   MAIN HEADING
   ========================================================= */

.contact-page .contact-hero h1{
    width:100%;
    max-width:900px;

    margin:0 auto 28px;

    color:#FFFFFF !important;

    font-family:"Lora", serif !important;

    font-size:58px;
    font-weight:600;

    line-height:1.08;

    letter-spacing:-.015em;
}


/* =========================================================
   INTRO COPY
   ========================================================= */

.contact-page .contact-hero-intro{
    max-width:760px;

    margin:0 auto 20px;

    color:#F4F1E8;

    font-family:"Assistant", sans-serif !important;

    font-size:20px;
    font-weight:500;

    line-height:1.55;
}


/* =========================================================
   SMALL GOLD ACCENT UNDER HERO COPY
   ========================================================= */

.contact-page .contact-hero-copy::after{
    content:"";

    display:block;

    width:72px;
    height:2px;

    margin:28px auto 0;

    background:
        linear-gradient(
            90deg,
            #554009 0%,
            #D4A017 52%,
            #F0DEAE 100%
        );
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width:900px){


    .contact-page .contact-hero{
        min-height:520px;
        padding:110px 26px 80px;
    }

    .contact-page .contact-hero h1{
        font-size:48px;
    }

    .contact-page .contact-hero-intro{
        font-size:18px;
    }


}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width:650px){


    .contact-page .contact-hero{
        min-height:auto;

        padding:
            110px
            22px
            72px;
    }

    .contact-page .contact-hero h1{
        font-size:38px;

        line-height:1.12;
    }

    .contact-page .contact-hero-intro{
        font-size:17px;
    }

    .contact-page .contact-hero-copy{
        font-size:16px;
    }


}

/* =========================================================
   CONTACT HERO — LIVE CONVERGING PATH ANIMATION
   ========================================================= */

.contact-motion{
    position:absolute;
    inset:0;

    overflow:hidden;

    pointer-events:none;

    z-index:1;
}


/* =========================================================
   CURVED PATHS
   ========================================================= */

.contact-curve{
    position:absolute;

    width:520px;
    height:210px;

    border:1px solid rgba(224,199,127,.20);

    border-radius:50%;

    opacity:.55;

    filter:
        drop-shadow(
            0 0 5px
            rgba(212,160,23,.10)
        );

    animation:
        contactCurveDrift
        10s
        ease-in-out
        infinite alternate;
}


/* LEFT SIDE */

.curve-left-1{
    left:-290px;
    top:125px;

    transform:rotate(15deg);

    border-color:
        rgba(240,222,174,.22);
}

.curve-left-2{
    left:-330px;
    top:220px;

    transform:
        rotate(8deg)
        scale(.92);

    border-color:
        rgba(212,160,23,.16);

    animation-delay:-2.5s;
}

.curve-left-3{
    left:-365px;
    top:325px;

    transform:
        rotate(2deg)
        scale(.84);

    border-color:
        rgba(224,199,127,.13);

    animation-delay:-5s;
}


/* RIGHT SIDE */

.curve-right-1{
    right:-290px;
    top:110px;

    transform:rotate(-15deg);

    border-color:
        rgba(240,222,174,.22);

    animation-delay:-1s;
}

.curve-right-2{
    right:-330px;
    top:215px;

    transform:
        rotate(-8deg)
        scale(.92);

    border-color:
        rgba(212,160,23,.16);

    animation-delay:-3.5s;
}

.curve-right-3{
    right:-365px;
    top:320px;

    transform:
        rotate(-2deg)
        scale(.84);

    border-color:
        rgba(224,199,127,.13);

    animation-delay:-6s;
}


/* =========================================================
   CURVE MOVEMENT
   ========================================================= */

@keyframes contactCurveDrift{

    0%{
        opacity:.28;
    }

    50%{
        opacity:.58;
    }

    100%{
        opacity:.36;
    }

}


/* =========================================================
   SMALL GOLD NODES
   ========================================================= */

.contact-node{
    position:absolute;

    width:7px;
    height:7px;

    border-radius:50%;

    background:
        radial-gradient(
            circle,
            #F0DEAE 0%,
            #D4A017 45%,
            rgba(212,160,23,.15) 70%
        );

    box-shadow:
        0 0 6px
        rgba(212,160,23,.35);

    animation:
        contactNodePulse
        4.2s
        ease-in-out
        infinite;
}


/* LEFT NODES */

.node-left-1{
    left:13%;
    top:34%;
}

.node-left-2{
    left:20%;
    top:67%;

    animation-delay:-2s;
}


/* RIGHT NODES */

.node-right-1{
    right:14%;
    top:31%;

    animation-delay:-1s;
}

.node-right-2{
    right:21%;
    top:69%;

    animation-delay:-3s;
}


/* =========================================================
   NODE PULSE
   ========================================================= */

@keyframes contactNodePulse{

    0%,
    100%{
        opacity:.30;
        transform:scale(.8);
    }

    50%{
        opacity:.85;
        transform:scale(1.25);

        box-shadow:
            0 0 5px rgba(240,222,174,.28),
            0 0 12px rgba(212,160,23,.24);
    }

}


/* =========================================================
   VERY SOFT CENTER FADE
   Keeps animation away from headline
   ========================================================= */

.contact-motion::after{
    content:"";

    position:absolute;
    inset:0;

    background:
        radial-gradient(
            ellipse at center,
            rgba(59,75,120,.96) 0%,
            rgba(59,75,120,.82) 23%,
            rgba(59,75,120,.30) 44%,
            transparent 67%
        );

    pointer-events:none;
}


/* =========================================================
   KEEP HERO COPY ABOVE MOTION
   ========================================================= */

.contact-page .contact-hero-inner{
    position:relative;
    z-index:3;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width:700px){


    .contact-curve{
        width:380px;
        height:165px;

        opacity:.38;
    }

    .curve-left-1,
.curve-left-2,
.curve-left-3{
        left:-300px;
    }

    .curve-right-1,
.curve-right-2,
.curve-right-3{
        right:-300px;
    }

    .contact-node{
        opacity:.55;
    }


}

.contact-motion{
    display:none !important;
}

/* =========================================================
   CONTACT HERO — LIVE NETWORK OVERLAY
   ========================================================= */

.contact-live-network{
    position:absolute;
    inset:0;

    z-index:2;

    overflow:hidden;
    pointer-events:none;
}


/* =========================================================
   MOVING GOLD TRACES
   ========================================================= */

.contact-live-line{
    position:absolute;

    width:145px;
    height:2px;

    border-radius:999px;

    background:
        linear-gradient(
            90deg,
            transparent 0%,
            rgba(224,199,127,.15) 18%,
            #D4A017 48%,
            #F0DEAE 62%,
            transparent 100%
        );

    box-shadow:
        0 0 6px rgba(212,160,23,.18);

    opacity:0;
}


/* LEFT SIDE */

.live-line-1{
    animation:
        contactTraceLeftA
        5.2s
        linear
        infinite;
}

.live-line-2{
    animation:
        contactTraceLeftB
        6.1s
        linear
        -1.4s
        infinite;
}

.live-line-3{
    animation:
        contactTraceLeftC
        5.7s
        linear
        -3.1s
        infinite;
}

.live-line-4{
    animation:
        contactTraceRightA
        5.4s
        linear
        -.8s
        infinite;
}

.live-line-5{
    animation:
        contactTraceRightB
        6.3s
        linear
        -2.2s
        infinite;
}

.live-line-6{
    animation:
        contactTraceRightC
        5.9s
        linear
        -4.1s
        infinite;
}

.live-line-7{
    left:11%;
    top:45%;

    transform:rotate(5deg);

    animation:
        contactTraceLeftA
        6.4s
        linear
        -4.8s
        infinite;
}

.live-line-8{
    left:19%;
    top:61%;

    transform:rotate(-7deg);

    animation:
        contactTraceLeftB
        5.6s
        linear
        -2.7s
        infinite;
}

.live-line-9{
    right:12%;
    top:46%;

    transform:rotate(-5deg);

    animation:
        contactTraceRightA
        6.6s
        linear
        -3.3s
        infinite;
}

.live-line-10{
    right:20%;
    top:62%;

    transform:rotate(7deg);

    animation:
        contactTraceRightB
        5.8s
        linear
        -1.9s
        infinite;
}

.live-line-7,
.live-line-8,
.live-line-9,
.live-line-10{
    height:1px;
    width:110px;
    opacity:.85;
}


/* =========================================================
   LEFT TRACE MOVEMENT
   ========================================================= */

@keyframes contactTraceLeftA{

    0%{
        transform:translateX(0) translateY(0) rotate(12deg);
        opacity:0;
    }

    12%{
        opacity:.72;
    }

    72%{
        opacity:.62;
    }

    100%{
        transform:translateX(430px) translateY(58px) rotate(12deg);
        opacity:0;
    }
}


@keyframes contactTraceLeftB{

    0%{
        transform:translateX(0) translateY(0) rotate(-4deg);
        opacity:0;
    }

    12%{
        opacity:.65;
    }

    72%{
        opacity:.55;
    }

    100%{
        transform:translateX(390px) translateY(-20px) rotate(-4deg);
        opacity:0;
    }
}


@keyframes contactTraceLeftC{

    0%{
        transform:translateX(0) translateY(0) rotate(-9deg);
        opacity:0;
    }

    12%{
        opacity:.58;
    }

    72%{
        opacity:.48;
    }

    100%{
        transform:translateX(350px) translateY(-54px) rotate(-9deg);
        opacity:0;
    }
}


/* =========================================================
   RIGHT TRACE MOVEMENT
   ========================================================= */

@keyframes contactTraceRightA{

    0%{
        transform:translateX(0) translateY(0) rotate(-12deg);
        opacity:0;
    }

    12%{
        opacity:.72;
    }

    72%{
        opacity:.62;
    }

    100%{
        transform:translateX(-430px) translateY(58px) rotate(-12deg);
        opacity:0;
    }
}


@keyframes contactTraceRightB{

    0%{
        transform:translateX(0) translateY(0) rotate(4deg);
        opacity:0;
    }

    12%{
        opacity:.65;
    }

    72%{
        opacity:.55;
    }

    100%{
        transform:translateX(-390px) translateY(-20px) rotate(4deg);
        opacity:0;
    }
}


@keyframes contactTraceRightC{

    0%{
        transform:translateX(0) translateY(0) rotate(9deg);
        opacity:0;
    }

    12%{
        opacity:.58;
    }

    72%{
        opacity:.48;
    }

    100%{
        transform:translateX(-350px) translateY(-54px) rotate(9deg);
        opacity:0;
    }
}


/* =========================================================
   PULSING GOLD NODES
   ========================================================= */

.contact-live-pulse{
    position:absolute;

    width:10px;
    height:10px;

    border-radius:50%;

    background:
        radial-gradient(
            circle,
            #F4F1E8 0%,
            #F0DEAE 28%,
            #D4A017 56%,
            rgba(212,160,23,.15) 72%,
            transparent 100%
        );

    box-shadow:
        0 0 4px rgba(240,222,174,.70),
        0 0 10px rgba(212,160,23,.40),
        0 0 18px rgba(212,160,23,.18);

    animation:
        contactPulseGlow
        4.2s
        ease-in-out
        infinite;
}


.pulse-1{
    left:18%;
    top:42%;
}

.pulse-2{
    left:28%;
    top:66%;

    animation-delay:-2.2s;
}

.pulse-3{
    right:18%;
    top:43%;

    animation-delay:-1.2s;
}

.pulse-4{
    right:28%;
    top:67%;

    animation-delay:-3.1s;
}


@keyframes contactPulseGlow{

    0%,
    100%{
        opacity:.18;
        transform:scale(.70);
    }

    45%{
        opacity:.95;
        transform:scale(1.18);
    }

    60%{
        opacity:.72;
        transform:scale(1);
    }
}


/* =========================================================
   KEEP COPY ABOVE NETWORK
   ========================================================= */

.contact-page .contact-hero-inner{
    position:relative;
    z-index:4;
}

.pulse-5{
    left:22%;
    top:34%;
    animation-delay:-.7s;
}

.pulse-6{
    left:34%;
    top:57%;
    animation-delay:-3.6s;
}

.pulse-7{
    right:23%;
    top:35%;
    animation-delay:-2.5s;
}

.pulse-8{
    right:34%;
    top:58%;
    animation-delay:-4s;
}

.live-line-7{
    display:none !important;
}

/* LEFT-SIDE NODE PULSES */

.pulse-9{
    left:5.5%;
    top:58%;
    animation-delay:-.4s;
}

.pulse-10{
    left:19.8%;
    top:42%;
    animation-delay:-1.6s;
}

.pulse-11{
    left:25.8%;
    top:54%;
    animation-delay:-2.8s;
}

.pulse-12{
    left:32.8%;
    top:64%;
    animation-delay:-4.1s;
}


/* RIGHT-SIDE NODE PULSES */

.pulse-13{
    right:6%;
    top:59%;
    animation-delay:-.9s;
}

.pulse-14{
    right:20.2%;
    top:43%;
    animation-delay:-2.1s;
}

.pulse-15{
    right:26.2%;
    top:56%;
    animation-delay:-3.2s;
}

.pulse-16{
    right:33%;
    top:65%;
    animation-delay:-4.4s;
}

/* =========================================================
   CONTACT — START THE CONVERSATION
   ========================================================= */

.contact-intro-band{
    position:relative;
    background:#F4F1E8;
    overflow:hidden;
}


/* two-column composition */

.contact-intro-inner{
    display:grid;
    grid-template-columns:minmax(0, 1.65fr) minmax(330px, .85fr);

    width:min(1240px, calc(100% - 64px));
    margin:0 auto;

    text-align:left;
}


/* =========================================================
   LEFT
   ========================================================= */

.contact-intro-main{
    padding:90px 90px 90px 20px;
}


.contact-section-eyebrow{
    display:block;

    margin-bottom:18px;

    color:#B6810D;

    font-family:"Assistant", sans-serif;
    font-size:12px;
    font-weight:700;
    letter-spacing:.19em;
}


.contact-intro-main h2{
    max-width:680px;

    margin:0 0 28px;

    color:#1D2952;

    font-family:"Lora", serif;
    font-size:clamp(40px, 4vw, 58px);
    font-weight:600;
    line-height:1.08;
}


.contact-intro-lead{
    max-width:690px;

    margin:0 0 22px;

    color:#343F68;

    font-family:"Assistant", sans-serif;
    font-size:18px;
    line-height:1.75;
}


.contact-confidential{
    position:relative;

    max-width:650px;

    margin:0;
    padding-left:20px;

    color:#1D2952;

    font-family:"Assistant", sans-serif;
    font-size:16px;
    line-height:1.6;
}


.contact-confidential::before{
    content:"";

    position:absolute;

    left:0;
    top:4px;
    bottom:4px;

    width:3px;

    background:
        linear-gradient(
            180deg,
            #E0C77F,
            #D4A017,
            #554009
        );
}


/* =========================================================
   RIGHT PANEL
   ========================================================= */

.contact-intro-aside{
    position:relative;

    display:flex;
    flex-direction:column;
    justify-content:center;

    padding:70px 52px;

    color:#F4F1E8;

    background:
        linear-gradient(
            145deg,
            #1D2952 0%,
            #343F68 58%,
            #293861 100%
        );

    overflow:hidden;
}


/* giant ghost number */

.contact-aside-number{
    position:absolute;

    right:24px;
    top:6px;

    color:rgba(240,222,174,.08);

    font-family:"Lora", serif;
    font-size:130px;
    line-height:1;

    pointer-events:none;
}


.contact-aside-large{
    position:relative;
    z-index:2;

    max-width:350px;

    margin:0;

    color:#F4F1E8;

    font-family:"Lora", serif;
    font-size:26px;
    line-height:1.4;
}


.contact-aside-line{
    position:relative;
    z-index:2;

    width:68px;
    height:2px;

    margin:26px 0;

    background:
        linear-gradient(
            90deg,
            #D4A017,
            #F0DEAE
        );
}


.contact-aside-copy{
    position:relative;
    z-index:2;

    max-width:330px;

    margin:0 0 34px;

    color:rgba(244,241,232,.82);

    font-family:"Assistant", sans-serif;
    font-size:16px;
    line-height:1.7;
}


.contact-aside-meta{
    position:relative;
    z-index:2;

    color:#E0C77F;

    font-family:"Assistant", sans-serif;
    font-size:10px;
    font-weight:700;
    letter-spacing:.16em;
}


/* tiny ambient gold glow */

.contact-intro-aside::after{
    content:"";

    position:absolute;

    width:260px;
    height:260px;

    right:-120px;
    bottom:-120px;

    border-radius:50%;

    background:
        radial-gradient(
            circle,
            rgba(212,160,23,.16),
            transparent 68%
        );
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width:850px){


    .contact-intro-inner{
        grid-template-columns:1fr;
        width:100%;
    }

    .contact-intro-main{
        padding:70px 28px;
    }

    .contact-intro-aside{
        padding:60px 28px;
    }


}

/* =========================================================
   CONTACT FORM SECTION — FINAL TWO-COLUMN LAYOUT
   ========================================================= */

.contact-form-section{
    position:relative;
    padding:100px 32px 110px;

    background:
        radial-gradient(
            circle at 18% 18%,
            rgba(52,63,104,.10) 0%,
            transparent 34%
        ),
        radial-gradient(
            circle at 88% 72%,
            rgba(224,199,127,.10) 0%,
            transparent 30%
        ),
        linear-gradient(
            135deg,
            #F9FAFC 0%,
            #F4F6FA 55%,
            #FBF9F2 100%
        );

    overflow:hidden;
}


.contact-form-inner{
    position:relative;
    z-index:2;

    display:grid;

    grid-template-columns:
        minmax(300px, .78fr)
        minmax(0, 1.75fr);

    gap:62px;

    width:min(1320px, 100%);

    margin:0 auto;

    align-items:start;
}


/* =========================================================
   LEFT SIDE
   ========================================================= */

/* =========================================================
   LEFT SIDE
   ========================================================= */

.contact-side-panel{
    min-width:0;

    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
}


/* LOGO */

.contact-side-logo{
    width:100%;

    display:flex;
    justify-content:center;
    align-items:flex-start;

    /* pulls visible logo up to align with form */
    margin:-100px 0 -58px;
}


.contact-side-logo img{
    display:block;

    width:520px;
    max-width:none;

    height:auto;

    object-fit:contain;
}


/* DIRECT CONTACT CARD */

.contact-details{
    position:relative;

    padding:40px 36px 36px;

    background:
        linear-gradient(
            145deg,
            #FBF9F2 0%,
            #F2E6C8 100%
        );

    border:
        1px solid
        rgba(212,160,23,.18);

    border-top:
        4px solid
        #D4A017;

    box-shadow:
        0 18px 45px
        rgba(29,41,82,.08);
}


.contact-details-eyebrow{
    display:block;

    margin-bottom:14px;

    color:#B6810D;

    font-family:"Assistant", sans-serif;

    font-size:11px;
    font-weight:700;

    letter-spacing:.19em;

    text-transform:uppercase;
}


.contact-details h3{
    margin:
        0
        0
        15px;

    color:#1D2952;

    font-family:"Lora", serif;

    font-size:30px;

    line-height:1.2;
}


.contact-details-intro{
    margin:
        0
        0
        30px;

    color:#343F68;

    font-family:"Assistant", sans-serif;

    font-size:16px;

    line-height:1.65;
}


.contact-detail-item{
    padding:
        19px
        0;

    border-top:
        1px solid
        rgba(29,41,82,.13);
}


.contact-detail-label{
    display:block;

    margin-bottom:6px;

    color:#B6810D;

    font-family:"Assistant", sans-serif;

    font-size:10px;
    font-weight:700;

    letter-spacing:.16em;

    text-transform:uppercase;
}


.contact-detail-item a,
.contact-detail-item p{
    margin:0;

    color:#1D2952;

    font-family:"Assistant", sans-serif;

    font-size:16px;

    line-height:1.55;

    text-decoration:none;
}


/* =========================================================
   RIGHT SIDE — FORM CARD
   ========================================================= */

.contact-form-wrap{
    background:#fff;

    padding:
        52px
        58px
        62px;

    background:
        rgba(255,255,255,.96);

    border:
        1px solid
        rgba(29,41,82,.08);

    border-radius:8px;

    box-shadow:
        0 20px 60px
        rgba(29,41,82,.09);
}


/* FORM INTRO */

.contact-form-heading{
    margin:
        0
        0
        42px;
}


.contact-form-eyebrow{
    display:block;

    margin-bottom:12px;

    color:#B6810D;

    font-family:"Assistant", sans-serif;

    font-size:11px;
    font-weight:700;

    letter-spacing:.19em;

    text-transform:uppercase;
}


.contact-form-heading h2{
    margin:0;

    color:#1D2952;

    font-family:"Lora", serif;

    font-size:clamp(36px, 3vw, 48px);

    line-height:1.1;
}


.contact-form-heading-rule{
    width:62px;
    height:2px;

    margin:
        20px
        0
        18px;

    background:
        linear-gradient(
            90deg,
            #D4A017,
            #F0DEAE
        );
}


.contact-form-heading p{
    max-width:600px;

    margin:0;

    color:#343F68;

    font-family:"Assistant", sans-serif;

    font-size:17px;

    line-height:1.65;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width:900px){


    .contact-form-inner{
        grid-template-columns:1fr;

        gap:45px;
    }

    .contact-side-panel{
        max-width:620px;

        margin:0 auto;

        width:100%;
    }

    .contact-form-wrap{
        width:100%;
    }


}


@media (max-width:650px){


    .contact-form-section{
        padding:
            70px
            20px
            80px;
    }

    .contact-form-wrap{
        padding:
            36px
            24px
            44px;
    }

    .contact-details{
        padding:
            34px
            26px;
    }


}

/* =========================================================
   FLUENT FORMS — CCG CONTACT PAGE STYLING
   ========================================================= */

/* whole form */
.contact-page .contact-form-wrap .fluentform{
    font-family:"Assistant", sans-serif;
    color:#1D2952;
}


/* FIELD SPACING */
.contact-page .contact-form-wrap .ff-el-group{
    margin-bottom:22px;
}


/* LABELS */
.contact-page .contact-form-wrap .ff-el-input--label label{
    color:#1D2952 !important;

    font-family:"Assistant", sans-serif !important;
    font-size:16px !important;
    font-weight:600 !important;

    line-height:1.4;
}


/* required asterisk */
.contact-page .contact-form-wrap .ff-el-input--label label .ff-el-required{
    color:#D4A017 !important;
}


/* =========================================================
   TEXT INPUTS / EMAIL / TEXTAREA
   ========================================================= */

.contact-page .contact-form-wrap input[type="text"],
.contact-page .contact-form-wrap input[type="email"],
.contact-page .contact-form-wrap input[type="tel"],
.contact-page .contact-form-wrap input[type="number"],
.contact-page .contact-form-wrap textarea,
.contact-page .contact-form-wrap select{

    width:100%;

    color:#1D2952 !important;

    background:#FBFAF6 !important;

    border:
        1px solid
        rgba(29,41,82,.16) !important;

    border-radius:4px !important;

    padding:
        13px
        14px !important;

    font-family:"Assistant", sans-serif !important;

    font-size:15px !important;

    transition:
        border-color .25s ease,
        box-shadow .25s ease,
        background .25s ease;
}


/* placeholder */
.contact-page .contact-form-wrap input::placeholder,
.contact-page .contact-form-wrap textarea::placeholder{
    color:rgba(52,63,104,.55) !important;
}


/* FOCUS STATE */
.contact-page .contact-form-wrap input:focus,
.contact-page .contact-form-wrap textarea:focus,
.contact-page .contact-form-wrap select:focus{

    outline:none !important;

    border-color:#D4A017 !important;

    background:#FFFFFF !important;

    box-shadow:
        0 0 0 3px
        rgba(212,160,23,.10) !important;
}


/* TEXTAREAS */
.contact-page .contact-form-wrap textarea{
    min-height:130px;
    resize:vertical;
}


/* =========================================================
   RADIO + CHECKBOX OPTIONS
   ========================================================= */

.contact-page .contact-form-wrap .ff-el-form-check{
    margin-bottom:8px;
}


/* option text */
.contact-page .contact-form-wrap .ff-el-form-check-label{
    color:#343F68 !important;

    font-family:"Assistant", sans-serif !important;

    font-size:15px !important;

    line-height:1.45;
}


/* radio + checkbox base */
.contact-page .contact-form-wrap input[type="radio"],
.contact-page .contact-form-wrap input[type="checkbox"]{

    appearance:none;
    -webkit-appearance:none;

    width:17px;
    height:17px;

    margin:
        0
        9px
        0
        0;

    vertical-align:-3px;

    background:#FFFFFF;

    border:
        1.5px solid
        rgba(29,41,82,.40);

    cursor:pointer;

    transition:
        border-color .2s ease,
        background .2s ease,
        box-shadow .2s ease;
}


/* radio shape */
.contact-page .contact-form-wrap input[type="radio"]{
    border-radius:50%;
}


/* checkbox shape */
.contact-page .contact-form-wrap input[type="checkbox"]{
    border-radius:3px;
}


/* selected radio */
.contact-page .contact-form-wrap input[type="radio"]:checked{
    border-color:#D4A017;

    background:
        radial-gradient(
            circle,
            #D4A017 0%,
            #D4A017 38%,
            #FFFFFF 42%,
            #FFFFFF 100%
        );

    box-shadow:
        0 0 0 3px
        rgba(212,160,23,.10);
}


/* selected checkbox */
.contact-page .contact-form-wrap input[type="checkbox"]:checked{
    border-color:#D4A017;
    background:#D4A017;
}


/* checkbox check mark */
.contact-page .contact-form-wrap input[type="checkbox"]:checked::after{
    content:"✓";

    display:block;

    color:#1D2952;

    font-size:12px;
    font-weight:800;

    line-height:14px;
    text-align:center;
}


/* hover */
.contact-page .contact-form-wrap .ff-el-form-check:hover
input[type="radio"],
.contact-page .contact-form-wrap .ff-el-form-check:hover
input[type="checkbox"]{

    border-color:#D4A017;
}


/* =========================================================
   FIELD GROUPS WITH RADIO / CHECKBOX LISTS
   ========================================================= */

.contact-page .contact-form-wrap .ff-el-input--content{
    color:#343F68;
}


/* add a little breathing room after question label */
.contact-page .contact-form-wrap
.ff-el-input--label + .ff-el-input--content{
    margin-top:7px;
}


/* =========================================================
   CCG CONSULTATION SUBMIT BUTTON
   ========================================================= */

.contact-page .contact-form-wrap button.ff-btn-submit{
    position:relative !important;

    min-width:275px !important;

    padding:15px 30px !important;

    border:0 !important;
    border-radius:4px !important;

    /* GOLD AT ALL TIMES */
    background:
        linear-gradient(
            110deg,
            #B6810D 0%,
            #D4A017 48%,
            #F0DEAE 100%
        ) !important;

    background-color:#D4A017 !important;

    box-shadow:
        0 8px 20px
        rgba(212,160,23,.18) !important;

    /* hide original lettering */
    color:transparent !important;
    -webkit-text-fill-color:transparent !important;

    font-family:"Assistant", sans-serif !important;
    font-size:13px !important;
    font-weight:700 !important;
    letter-spacing:.08em !important;
    text-transform:uppercase !important;

    cursor:pointer;

    overflow:hidden;

    transition:
        transform .25s ease,
        box-shadow .25s ease !important;
}


/* OUR OWN TEXT LAYER */
.contact-page .contact-form-wrap button.ff-btn-submit::after{
    content:"SUBMIT CONSULTATION REQUEST";

    position:absolute;

    inset:0;

    display:flex;
    align-items:center;
    justify-content:center;

    pointer-events:none;

    /* NORMAL STATE = MIDNIGHT TEXT */
    color:#1D2952;

    -webkit-text-fill-color:#1D2952;

    font-family:"Assistant", sans-serif;
    font-size:13px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
}

/* =========================================================
   FLUENT FORMS — SUBMIT LOADING STATE
   ========================================================= */

.contact-page .contact-form-wrap button.ff-btn-submit:disabled::after,
.contact-page .contact-form-wrap button.ff-btn-submit.ff-working::after,
.contact-page .contact-form-wrap button.ff-btn-submit.loading::after{
    content:"";
    display:none;
}

.contact-page .contact-form-wrap button.ff-btn-submit:disabled,
.contact-page .contact-form-wrap button.ff-btn-submit.ff-working,
.contact-page .contact-form-wrap button.ff-btn-submit.loading{
    transform:none !important;

    background:
        linear-gradient(
            110deg,
            #B6810D 0%,
            #D4A017 48%,
            #F0DEAE 100%
        ) !important;

    color:#1D2952 !important;
    -webkit-text-fill-color:#1D2952 !important;

    opacity:.78;

    cursor:wait;
}

/* =========================================================
   HOVER
   ========================================================= */

.contact-page .contact-form-wrap button.ff-btn-submit:hover,
.contact-page .contact-form-wrap button.ff-btn-submit:focus{

    /* FORCE GOLD — NEVER BLUE */
    background:
        linear-gradient(
            110deg,
            #B6810D 0%,
            #D4A017 48%,
            #F0DEAE 100%
        ) !important;

    background-color:#D4A017 !important;

    transform:translateY(-3px);

    box-shadow:
        0 14px 28px rgba(212,160,23,.28),
        0 5px 12px rgba(29,41,82,.10) !important;
}


/* ACTUAL MOVING GLEAM ACROSS THE WORDS */
.contact-page .contact-form-wrap button.ff-btn-submit:hover::after,
.contact-page .contact-form-wrap button.ff-btn-submit:focus::after{

    color:transparent;

    background:
        linear-gradient(
            105deg,

            #554009 0%,
            #B6810D 25%,
            #D4A017 38%,

            #FFF7D6 48%,
            #F0DEAE 53%,

            #D4A017 62%,
            #B6810D 76%,
            #554009 100%
        );

    background-size:250% 100%;

    background-position:200% center;

    -webkit-background-clip:text;
    background-clip:text;

    -webkit-text-fill-color:transparent;

    animation:
        ccgSubmitTextSweep
        4.2s
        ease-in-out
        infinite
        alternate;
}


/* MOVES THE BRIGHT BAND ACROSS THE LETTERS */
@keyframes ccgSubmitTextSweep{

    0%{
        background-position:200% center;
    }

    100%{
        background-position:-50% center;
    }

}


/* =========================================================
   VALIDATION ERRORS
   ========================================================= */

.contact-page .contact-form-wrap
.text-danger,
.contact-page .contact-form-wrap
.error{

    color:#9E3F3F !important;

    font-family:"Assistant", sans-serif !important;

    font-size:13px !important;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width:650px){


    .contact-page .contact-form-wrap
    .ff-btn-submit{

        width:100%;
        min-width:0;
    }


}

/* =========================================================
   CONTACT — WHAT HAPPENS NEXT
   ========================================================= */

.contact-next{
    position:relative;

    padding:100px 32px 105px;

    background:
        linear-gradient(
            135deg,
            #1D2952 0%,
            #343F68 55%,
            #293861 100%
        );

    overflow:hidden;
}


.contact-next-inner{
    width:min(1180px, 100%);
    margin:0 auto;
}


/* heading */

.contact-next-heading{
    max-width:720px;
    margin:0 auto 70px;
    text-align:center;
}


.contact-next-heading .contact-section-eyebrow{
    display:block;

    margin-bottom:14px;

    color:#E0C77F;

    font-family:"Assistant", sans-serif;
    font-size:11px;
    font-weight:700;

    letter-spacing:.19em;
    text-transform:uppercase;
}


.contact-next-heading h2{
    margin:0 0 16px;

    color:#F4F1E8;

    font-family:"Lora", serif;

    font-size:clamp(38px, 4vw, 52px);
    line-height:1.12;
}


.contact-next-heading p{
    margin:0;

    color:rgba(244,241,232,.72);

    font-family:"Assistant", sans-serif;
    font-size:17px;
    line-height:1.65;
}


/* =========================================================
   PROCESS PATH
   ========================================================= */

.contact-next-path{
    position:relative;

    display:grid;
    grid-template-columns:repeat(3, 1fr);

    gap:50px;
}


/* connecting line */

.contact-next-track{
    position:absolute;

    top:35px;
    left:15%;
    right:15%;

    height:1px;

    background:
        linear-gradient(
            90deg,
            rgba(224,199,127,.25),
            #D4A017,
            rgba(224,199,127,.25)
        );

    z-index:0;
}


/* cards */

.contact-next-step{
    position:relative;
    z-index:2;

    text-align:center;
}


/* number circles */

.contact-next-number{
    display:flex;
    align-items:center;
    justify-content:center;

    width:70px;
    height:70px;

    margin:0 auto 24px;

    border-radius:50%;

    border:
        1px solid
        rgba(224,199,127,.55);

    background:#1D2952;

    color:#F0DEAE;

    font-family:"Lora", serif;

    font-size:18px;

    box-shadow:
        0 0 0 8px
        rgba(29,41,82,.88);
}


.contact-next-step h3{
    margin:0 0 13px;

    color:#F4F1E8;

    font-family:"Lora", serif;

    font-size:27px;
}


.contact-next-step p{
    max-width:310px;
    margin:0 auto;

    color:rgba(244,241,232,.70);

    font-family:"Assistant", sans-serif;

    font-size:16px;
    line-height:1.7;
}

/* Step number hover pop */

.contact-next-number{
    transition:
        transform .28s ease,
        box-shadow .28s ease,
        border-color .28s ease;
}

.contact-next-step:hover .contact-next-number{
    transform:translateY(-8px) scale(1.08);

    border-color:#D4A017;

    box-shadow:
        0 0 0 8px rgba(29,41,82,.88),
        0 12px 28px rgba(0,0,0,.18),
        0 0 22px rgba(212,160,23,.25);
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width:760px){


    .contact-next{
        padding:
            75px
            24px
            80px;
    }

    .contact-next-path{
        grid-template-columns:1fr;
        gap:44px;
    }

    .contact-next-track{
        display:none;
    }


}

/* =========================================================
   FLUENT FORMS — SUCCESS MESSAGE
   ========================================================= */

.contact-page .contact-form-wrap .ff-message-success{
    position:relative;

    margin:28px 0 0 !important;
    padding:28px 32px 28px 36px !important;

    background:
        linear-gradient(
            135deg,
            #F4F1E8 0%,
            #FBF9F2 100%
        ) !important;

    border:none !important;
    border-left:4px solid #D4A017 !important;

    border-radius:4px !important;

    box-shadow:
        0 12px 30px
        rgba(29,41,82,.08);

    color:#343F68 !important;

    font-family:"Assistant", sans-serif !important;
    font-size:16px !important;
    line-height:1.75 !important;
}


/* small success accent */
.contact-page .contact-form-wrap .ff-message-success::before{
    content:"REQUEST RECEIVED";

    display:block;

    margin-bottom:10px;

    color:#B6810D;

    font-family:"Assistant", sans-serif;

    font-size:10px;
    font-weight:700;

    letter-spacing:.18em;
}


/* any paragraphs Fluent Forms inserts */
.contact-page .contact-form-wrap .ff-message-success p{
    margin:0 !important;

    color:#343F68 !important;

    font-family:"Assistant", sans-serif !important;

    font-size:16px !important;
    line-height:1.75 !important;
}

/* =========================================================
   RADIO / CHECKBOX — IMMEDIATE SELECTED STATE
   ========================================================= */

.contact-page .contact-form-wrap input[type="radio"]:checked{
    appearance:none !important;
    -webkit-appearance:none !important;

    border:2px solid #D4A017 !important;

    background:
        radial-gradient(
            circle at center,
            #D4A017 0,
            #D4A017 4px,
            #FFFFFF 5px,
            #FFFFFF 100%
        ) !important;

    box-shadow:
        0 0 0 3px
        rgba(212,160,23,.10) !important;
}


.contact-page .contact-form-wrap input[type="checkbox"]:checked{
    appearance:none !important;
    -webkit-appearance:none !important;

    background:#D4A017 !important;

    border-color:#D4A017 !important;

    box-shadow:
        0 0 0 3px
        rgba(212,160,23,.10) !important;
}


/* make state changes repaint immediately */
.contact-page .contact-form-wrap input[type="radio"],
.contact-page .contact-form-wrap input[type="checkbox"]{
    will-change:
        background,
        border-color,
        box-shadow;

    transition:
        background .15s ease,
        border-color .15s ease,
        box-shadow .15s ease;
}
/* =========================================================
   CONTACT PAGE — SOCIAL ICONS
   ========================================================= */

.contact-socials{
    display:flex;
    align-items:center;
    gap:14px;
    margin-top:12px;
}

.contact-socials a,
.contact-social-coming-soon{
    width:42px;
    height:42px;

    display:flex;
    align-items:center;
    justify-content:center;

    border:1px solid rgba(29,41,82,0.18);
    border-radius:50%;

    background:#F4F1E8;
    color:#1D2952;

    transition:
        transform 0.2s ease,
        background 0.2s ease,
        color 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.contact-socials svg{
    width:19px;
    height:19px;

    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}


/* Bluesky + LinkedIn use filled paths */
.contact-socials a[aria-label="Bluesky"] svg,
.contact-social-coming-soon svg{
    fill:currentColor;
    stroke:none;
}


/* Hover */
.contact-socials a:hover{
    transform:translateY(-3px);

    background:linear-gradient(
        135deg,
        #D4A017,
        #E0C77F
    );

    color:#1D2952;

    border-color:#D4A017;

    box-shadow:
        0 8px 20px rgba(29,41,82,0.16);
}


/* LinkedIn — coming soon */
.contact-social-coming-soon{
    opacity:0.45;
    cursor:default;
}