/* Contact page for GHG Sensing */
body.contact-page{
    background:#fbfcf6;
    color:#172016;
}
body.contact-page .navbar .nav-links a.active{
    color:var(--green);
    font-weight:950;
}
body.contact-page main{
    position:relative;
    z-index:5;
    overflow:hidden;
    background:#fbfcf6;
}
.contact-page .reveal-item{
    opacity:0;
    transform:translateY(34px);
    filter:blur(10px);
    transition:opacity .86s cubic-bezier(.18,.82,.22,1),transform .86s cubic-bezier(.18,.82,.22,1),filter .86s cubic-bezier(.18,.82,.22,1);
    will-change:opacity,transform,filter;
}
.contact-page .reveal-item.is-visible{
    opacity:1;
    transform:translateY(0);
    filter:blur(0);
}

.contact-hero{
    position:relative;
    min-height:68vh;
    padding:150px 8vw 100px;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    color:#fff;
    background:linear-gradient(135deg,#07100c 0%,#102416 54%,#07100c 100%);
}
.contact-hero::before{
    content:'';
    position:absolute;
    inset:0;
    background:
      radial-gradient(circle at 18% 28%,rgba(169,198,79,.20),transparent 24rem),
      radial-gradient(circle at 82% 60%,rgba(217,169,47,.12),transparent 24rem),
      linear-gradient(180deg,rgba(5,16,10,.12),rgba(5,16,10,.55));
    pointer-events:none;
    z-index:2;
}
.contact-hero-bg{
    position:absolute;
    inset:72px 0 0;
    overflow:hidden;
}
.contact-hero-bg::before{
    content:'';
    position:absolute;
    inset:0;
    background:
      linear-gradient(90deg,rgba(5,16,10,.88),rgba(5,16,10,.36) 44%,rgba(5,16,10,.76)),
      radial-gradient(circle at 50% 28%,rgba(255,255,255,.18),transparent 14rem);
    z-index:2;
}
.contact-hero-bg::after{
    content:'';
    position:absolute;
    left:-4%;
    right:-4%;
    bottom:0;
    height:50%;
    background:
      linear-gradient(180deg,rgba(169,198,79,.12),rgba(61,91,43,.35)),
      repeating-linear-gradient(96deg,rgba(255,255,255,.08) 0 1px,transparent 1px 62px);
    clip-path:polygon(0 28%,16% 14%,38% 28%,58% 11%,78% 23%,100% 14%,100% 100%,0 100%);
}
.contact-cow{
    position:absolute;
    z-index:1;
    bottom:22%;
    width:210px;
    height:120px;
    border-radius:52% 48% 40% 36%;
    background:rgba(0,0,0,.42);
    filter:blur(.2px);
    box-shadow:0 26px 70px rgba(0,0,0,.28);
}
.contact-cow::before{
    content:'';
    position:absolute;
    right:-34px;
    top:24px;
    width:62px;
    height:52px;
    border-radius:50%;
    background:rgba(0,0,0,.42);
}
.contact-cow::after{
    content:'';
    position:absolute;
    left:42px;
    bottom:-34px;
    width:16px;
    height:42px;
    border-radius:999px;
    background:rgba(0,0,0,.34);
    box-shadow:84px 0 0 rgba(0,0,0,.34),132px 0 0 rgba(0,0,0,.28);
}
.cow-left{left:9%;bottom:28%;transform:scale(.82);opacity:.42;}
.cow-center{left:44%;bottom:18%;transform:translateX(-50%) scale(1.42);opacity:.52;}
.cow-right{right:8%;bottom:30%;transform:scale(.92) rotateY(180deg);opacity:.35;}

.contact-signal{
    position:absolute;
    z-index:3;
    width:10px;
    height:10px;
    border-radius:999px;
    background:#95ff8f;
    box-shadow:0 0 0 4px rgba(149,255,143,.11),0 0 28px rgba(149,255,143,.65);
    animation:contactSignalFloat 7s ease-in-out infinite;
}
.signal-one{left:17%;top:34%;animation-delay:-1s;}
.signal-two{left:36%;top:22%;animation-delay:-2.4s;}
.signal-three{right:28%;top:40%;animation-delay:-3.2s;background:#d9a92f;box-shadow:0 0 0 4px rgba(217,169,47,.12),0 0 28px rgba(217,169,47,.55);}
.signal-four{right:12%;top:27%;animation-delay:-4.6s;}
@keyframes contactSignalFloat{
    0%,100%{transform:translateY(0) scale(.88);opacity:.55;}
    50%{transform:translateY(-18px) scale(1.18);opacity:1;}
}
.contact-hero-content{
    position:relative;
    z-index:4;
    width:min(980px,100%);
    text-align:center;
}
.contact-kicker{
    display:inline-flex;
    align-items:center;
    gap:10px;
    margin-bottom:18px;
    color:#95ff8f;
    font-size:.8rem;
    font-weight:950;
    letter-spacing:.16em;
    text-transform:uppercase;
}
.contact-kicker span{
    width:9px;
    height:9px;
    border-radius:50%;
    background:#95ff8f;
    box-shadow:0 0 24px rgba(149,255,143,.8);
}
.contact-hero h1{
    margin:0;
    font-size:clamp(4rem,8vw,8.6rem);
    line-height:.86;
    letter-spacing:-.075em;
    font-weight:950;
    color:#fff071;
    text-shadow:0 24px 80px rgba(0,0,0,.26);
}
.contact-hero p{
    max-width:740px;
    margin:26px auto 0;
    color:rgba(255,255,255,.76);
    font-size:1.05rem;
    line-height:1.8;
}
.contact-wave{
    position:absolute;
    left:-4%;
    right:-4%;
    bottom:-1px;
    height:94px;
    z-index:5;
    background:#fbfcf6;
    clip-path:polygon(0 54%,8% 48%,19% 58%,31% 47%,45% 56%,61% 45%,74% 54%,88% 44%,100% 52%,100% 100%,0 100%);
}

.contact-form-section{
    position:relative;
    padding:110px 8vw 125px;
    background:
      radial-gradient(circle at 14% 18%,rgba(169,198,79,.10),transparent 22rem),
      radial-gradient(circle at 88% 78%,rgba(217,169,47,.08),transparent 24rem),
      #fbfcf6;
    overflow:hidden;
}
.contact-form-section::before{
    content:'';
    position:absolute;
    inset:0;
    background-image:linear-gradient(rgba(169,198,79,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(169,198,79,.048) 1px,transparent 1px);
    background-size:82px 82px;
    opacity:.55;
    pointer-events:none;
    animation:contactGridDrift 18s linear infinite;
}
@keyframes contactGridDrift{
    from{transform:translate3d(0,0,0);}
    to{transform:translate3d(-41px,-41px,0);}
}
.contact-shell{
    position:relative;
    z-index:2;
    width:min(1240px,100%);
    margin:0 auto;
    display:grid;
    grid-template-columns:.82fr 1.18fr;
    gap:28px;
    align-items:stretch;
}
.contact-intro,
.contact-form{
    position:relative;
    border:1px solid rgba(151,171,86,.24);
    background:rgba(255,255,255,.78);
    box-shadow:0 28px 92px rgba(30,43,24,.10);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    overflow:hidden;
    border-radius:36px;
}
.contact-intro::before,
.contact-form::before{
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(135deg,rgba(255,255,255,.84),rgba(255,255,255,0) 48%);
    pointer-events:none;
    z-index:1;
}
.contact-intro{
    padding:42px;
    display:flex;
    flex-direction:column;
    justify-content:center;
}
.contact-intro>*{
    position:relative;
    z-index:2;
}
.contact-intro h2{
    margin:0;
    color:#172016;
    font-size:clamp(2.6rem,4.8vw,5.6rem);
    line-height:.96;
    letter-spacing:-.065em;
    font-weight:950;
}
.typing-word{
    color:#a9c64f;
    position:relative;
    display:inline-block;
    min-width:5.6em;
    text-align:left;
    text-shadow:0 18px 44px rgba(169,198,79,.18);
}
.typing-word::after{
    content:'';
    position:absolute;
    left:0;
    right:0;
    bottom:-.08em;
    height:5px;
    border-radius:999px;
    background:linear-gradient(90deg,transparent,#d9a92f,#a9c64f,transparent);
    opacity:.68;
}
.typing-cursor{
    color:#d9a92f;
    animation:cursorBlink .75s steps(2,end) infinite;
    margin-left:.04em;
}
@keyframes cursorBlink{50%{opacity:0;}}
.contact-intro p{
    margin:24px 0 0;
    color:rgba(23,32,22,.66);
    line-height:1.85;
    font-size:1rem;
}
.contact-info-grid{
    display:grid;
    gap:12px;
    margin-top:30px;
}
.contact-info-card{
    display:block;
    text-decoration:none;
    padding:16px 18px;
    border-radius:22px;
    background:rgba(248,250,239,.78);
    border:1px solid rgba(151,171,86,.18);
    transition:transform .24s cubic-bezier(.2,.8,.2,1),box-shadow .24s ease,border-color .24s ease,background .24s ease;
}
.contact-info-card:hover{
    transform:translateY(-4px);
    background:#fff;
    border-color:rgba(169,198,79,.45);
    box-shadow:0 18px 56px rgba(30,43,24,.10),0 0 0 4px rgba(169,198,79,.08);
}
.contact-info-card span{
    display:block;
    color:#8da63f;
    font-size:10px;
    font-weight:950;
    letter-spacing:.14em;
    text-transform:uppercase;
    margin-bottom:6px;
}
.contact-info-card strong{
    color:#172016;
    font-size:1rem;
    line-height:1.32;
}

.contact-form{
    padding:36px;
    display:grid;
    gap:18px;
    transform-style:preserve-3d;
}
.contact-form>*{
    position:relative;
    z-index:2;
}
.form-orb{
    position:absolute;
    z-index:0;
    border-radius:999px;
    filter:blur(54px);
    pointer-events:none;
}
.orb-a{
    width:210px;
    height:210px;
    left:-70px;
    top:-70px;
    background:rgba(169,198,79,.16);
}
.orb-b{
    width:220px;
    height:220px;
    right:-80px;
    bottom:-80px;
    background:rgba(217,169,47,.10);
}
.form-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
}
.form-field{
    position:relative;
    display:block;
}
.form-field span{
    position:absolute;
    left:18px;
    top:11px;
    z-index:2;
    color:rgba(36,48,31,.50);
    font-size:10px;
    font-weight:950;
    letter-spacing:.12em;
    text-transform:uppercase;
    transition:color .2s ease,transform .2s ease;
}
.form-field input,
.form-field textarea{
    width:100%;
    border:1px solid rgba(151,171,86,.28);
    background:rgba(255,255,255,.76);
    border-radius:22px;
    color:#172016;
    font-size:15px;
    font-weight:750;
    outline:none;
    transition:border-color .25s ease,box-shadow .25s ease,background .25s ease,transform .25s ease;
}
.form-field input{
    height:70px;
    padding:28px 18px 9px;
}
.form-field textarea{
    resize:vertical;
    min-height:190px;
    padding:32px 18px 16px;
    line-height:1.65;
}
.form-field:focus-within span{
    color:#6f8731;
    transform:translateY(-1px);
}
.form-field input:focus,
.form-field textarea:focus{
    border-color:rgba(169,198,79,.72);
    box-shadow:0 0 0 5px rgba(169,198,79,.13),0 18px 50px rgba(30,43,24,.07);
    background:#fff;
    transform:translateY(-2px);
}
.contact-submit{
    justify-self:start;
    height:58px;
    border:0;
    border-radius:20px;
    background:#07100c;
    color:#fff;
    font-size:14px;
    font-weight:950;
    padding:0 12px 0 22px;
    display:inline-flex;
    align-items:center;
    gap:14px;
    cursor:pointer;
    transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s ease,background .22s ease;
}
.contact-submit i{
    font-style:normal;
    width:36px;
    height:36px;
    border-radius:999px;
    background:#a9c64f;
    color:#07100c;
    display:flex;
    align-items:center;
    justify-content:center;
}
.contact-submit:hover{
    transform:translateY(-3px);
    background:#172016;
    box-shadow:0 18px 58px rgba(30,43,24,.18);
}
.contact-form-note{
    margin:0;
    color:#5f752a;
    font-size:13px;
    font-weight:850;
    opacity:0;
    transform:translateY(8px);
    transition:opacity .25s ease,transform .25s ease;
}
.contact-form-note.is-visible{
    opacity:1;
    transform:translateY(0);
}

@media(max-width:1180px){
    .contact-shell{
        grid-template-columns:1fr;
    }
}
@media(max-width:980px){
    .contact-hero{
        min-height:62vh;
        padding:132px 24px 90px;
    }
    .contact-form-section{
        padding:90px 24px 105px;
    }
    .contact-intro,
    .contact-form{
        padding:28px 22px;
        border-radius:30px;
    }
    .form-row{
        grid-template-columns:1fr;
    }
    .contact-intro h2{
        font-size:clamp(2.4rem,12vw,4rem);
    }
    .typing-word{
        min-width:0;
    }
}
@media(max-width:560px){
    .contact-hero h1{
        font-size:clamp(3.5rem,18vw,5rem);
    }
    .contact-submit{
        width:100%;
        justify-content:space-between;
    }
}


/* v36: refined contact hero background and compact typing headline */
body.contact-page .contact-hero{
    min-height:100vh;
    padding:146px 8vw 110px;
    align-items:center;
    background:
      radial-gradient(circle at 18% 18%, rgba(169,198,79,.18), transparent 24rem),
      radial-gradient(circle at 82% 24%, rgba(149,255,143,.10), transparent 22rem),
      radial-gradient(circle at 78% 78%, rgba(217,169,47,.10), transparent 28rem),
      linear-gradient(135deg,#07110b 0%, #0d1d14 42%, #07110b 100%);
}
body.contact-page .contact-hero::before{
    background:
      radial-gradient(circle at 18% 22%,rgba(169,198,79,.16),transparent 26rem),
      radial-gradient(circle at 82% 66%,rgba(217,169,47,.10),transparent 24rem),
      linear-gradient(180deg,rgba(7,17,11,.16),rgba(7,17,11,.46));
    z-index:2;
}
body.contact-page .contact-hero-bg{
    inset:72px 0 0;
    opacity:1;
}
body.contact-page .contact-hero-bg::before{
    z-index:2;
    background:linear-gradient(90deg,rgba(5,16,10,.88),rgba(5,16,10,.36) 40%,rgba(5,16,10,.22) 52%,rgba(5,16,10,.76) 100%);
}
body.contact-page .contact-hero-bg::after{
    left:-2%;
    right:-2%;
    bottom:0;
    height:48%;
    background:
      linear-gradient(180deg,rgba(146,196,83,.08),rgba(48,79,37,.26)),
      repeating-linear-gradient(96deg,rgba(255,255,255,.06) 0 1px,transparent 1px 64px),
      linear-gradient(0deg,rgba(0,0,0,.18),rgba(0,0,0,0));
    clip-path:polygon(0 34%,15% 18%,35% 28%,55% 12%,76% 24%,100% 14%,100% 100%,0 100%);
}
body.contact-page .contact-cow{
    display:none;
}
body.contact-page .contact-signal{
    opacity:.76;
}
.contact-hero-particles{
    position:absolute;
    inset:90px 0 0;
    pointer-events:none;
    z-index:3;
}
.contact-hero-particles span{
    position:absolute;
    left:var(--x);
    top:var(--y);
    width:var(--size);
    height:var(--size);
    border-radius:50%;
    background:radial-gradient(circle at 35% 35%, rgba(255,255,255,.95), rgba(149,255,143,.95) 40%, rgba(169,198,79,.68) 70%, rgba(169,198,79,0) 72%);
    box-shadow:0 0 0 1px rgba(149,255,143,.14),0 0 18px rgba(149,255,143,.44),0 0 34px rgba(217,169,47,.18);
    opacity:.82;
    animation:contactHeroFloat var(--dur) ease-in-out infinite var(--delay), contactHeroPulse 4.4s ease-in-out infinite var(--delay);
}
.contact-hero-particles span:nth-child(3n){
    background:radial-gradient(circle at 35% 35%, rgba(255,255,255,.95), rgba(217,169,47,.95) 40%, rgba(217,169,47,.35) 70%, rgba(217,169,47,0) 72%);
}
.contact-hero-particles span:nth-child(4n){
    background:radial-gradient(circle at 35% 35%, rgba(255,255,255,.95), rgba(116,209,126,.92) 42%, rgba(116,209,126,.40) 72%, rgba(116,209,126,0) 74%);
}
@keyframes contactHeroFloat{
    0%,100%{transform:translate3d(0,0,0);}
    25%{transform:translate3d(10px,-16px,0);}
    50%{transform:translate3d(-12px,10px,0);}
    75%{transform:translate3d(7px,-9px,0);}
}
@keyframes contactHeroPulse{
    0%,100%{opacity:.35;filter:brightness(.9);}
    50%{opacity:.95;filter:brightness(1.15);}
}
body.contact-page .contact-hero-content{
    z-index:4;
    width:min(1040px,100%);
}
body.contact-page .contact-hero h1{
    margin:0 auto;
    font-size:clamp(3.2rem,6.4vw,7.6rem);
    line-height:.88;
    letter-spacing:-.075em;
    color:#fff071;
    max-width:1120px;
}
body.contact-page .contact-hero p{
    max-width:760px;
}

/* Make the typing headline elegant and keep it inside the card */
.contact-intro h2{
    font-size:clamp(2.35rem,3.45vw,4.25rem);
    line-height:1.02;
    letter-spacing:-.055em;
    max-width:100%;
}
.typing-word{
    min-width:0;
    width:auto;
    display:inline-block;
    color:#a9c64f;
    white-space:nowrap;
    text-align:left;
}
.typing-word::after{
    height:3px;
    bottom:-.05em;
    opacity:.58;
}
.typing-cursor{
    display:inline-block;
    transform:translateY(-.03em);
}
.contact-intro{
    overflow:hidden;
}
.contact-shell{
    align-items:start;
}
.contact-form-section{
    padding-top:105px;
}
@media(max-width:1180px){
    .contact-intro h2{
        font-size:clamp(2.35rem,7vw,4.25rem);
    }
}
@media(max-width:980px){
    body.contact-page .contact-hero{
        min-height:82vh;
        padding:132px 24px 90px;
    }
    .contact-hero-particles{inset:82px 0 0;}
    .contact-intro h2{
        font-size:clamp(2.45rem,11vw,4.15rem);
    }
}
@media(max-width:560px){
    .contact-intro h2{
        font-size:clamp(2.25rem,13vw,3.6rem);
    }
    .typing-word{
        display:inline;
        white-space:normal;
    }
}


/* v37: rebalance contact layout and force typing headline to stay on one line */
.contact-shell{
    grid-template-columns:1.28fr .72fr !important;
    gap:26px !important;
    align-items:stretch !important;
}
.contact-intro{
    padding:48px 52px !important;
    min-height:620px;
}
.contact-form{
    padding:28px !important;
    align-self:stretch;
}
.form-row{
    grid-template-columns:1fr !important;
    gap:12px !important;
}
.form-field input{
    height:62px !important;
    border-radius:20px !important;
    padding:25px 16px 8px !important;
}
.form-field textarea{
    min-height:160px !important;
    border-radius:20px !important;
    padding:30px 16px 14px !important;
}
.contact-submit{
    height:54px !important;
    border-radius:18px !important;
}
.contact-submit i{
    width:34px !important;
    height:34px !important;
}

/* keep the typing sentence elegant and single-line on desktop */
.contact-intro h2{
    font-size:clamp(2.05rem,3.05vw,3.45rem) !important;
    line-height:1.08 !important;
    letter-spacing:-.052em !important;
    white-space:nowrap !important;
    max-width:none !important;
}
.typing-word{
    display:inline-block !important;
    min-width:6.05em !important;
    width:6.05em !important;
    white-space:nowrap !important;
    text-align:left !important;
    vertical-align:baseline !important;
}
.typing-cursor{
    display:inline-block !important;
    width:.16em;
    margin-left:-.10em !important;
}
.contact-intro p{
    max-width:640px;
}
.contact-info-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.contact-info-card{
    min-height:112px;
    display:flex !important;
    flex-direction:column;
    justify-content:center;
}
.contact-info-card strong{
    font-size:.92rem !important;
    word-break:break-word;
}

/* keep right form visually premium even smaller */
.contact-form::after{
    content:'';
    position:absolute;
    left:28px;
    right:28px;
    top:28px;
    height:1px;
    background:linear-gradient(90deg,transparent,rgba(169,198,79,.38),transparent);
    pointer-events:none;
    z-index:2;
}

/* tablet: keep left larger until the layout stacks */
@media(max-width:1180px){
    .contact-shell{
        grid-template-columns:1fr !important;
    }
    .contact-intro{
        min-height:auto;
        padding:38px 34px !important;
    }
    .contact-form{
        padding:28px 24px !important;
    }
    .form-row{
        grid-template-columns:1fr 1fr !important;
    }
    .contact-intro h2{
        font-size:clamp(2.25rem,6.2vw,4rem) !important;
        white-space:nowrap !important;
    }
}
@media(max-width:980px){
    .contact-info-grid{
        grid-template-columns:1fr !important;
    }
    .contact-intro h2{
        font-size:clamp(2rem,8.2vw,3.6rem) !important;
        white-space:nowrap !important;
    }
    .typing-word{
        min-width:6.05em !important;
        width:6.05em !important;
    }
}
@media(max-width:640px){
    .contact-intro{
        padding:28px 22px !important;
    }
    .contact-intro h2{
        font-size:clamp(1.55rem,7.6vw,2.35rem) !important;
        line-height:1.12 !important;
        letter-spacing:-.045em !important;
        white-space:nowrap !important;
    }
    .typing-word{
        min-width:5.9em !important;
        width:5.9em !important;
    }
    .form-row{
        grid-template-columns:1fr !important;
    }
}


/* v38: dynamic typing word spacing and cleaner left contact panel */
.contact-shell{
    grid-template-columns:1.22fr .78fr !important;
}
.contact-intro{
    min-height:560px !important;
    justify-content:center !important;
}
.contact-intro h2{
    font-size:clamp(1.95rem,2.55vw,3.18rem) !important;
    line-height:1.08 !important;
    letter-spacing:-.048em !important;
    white-space:nowrap !important;
}
.typing-word{
    display:inline-block !important;
    min-width:0 !important;
    width:auto !important;
    white-space:nowrap !important;
    text-align:left !important;
    vertical-align:baseline !important;
    transition:color .18s ease, text-shadow .18s ease;
}
.typing-cursor{
    display:inline-block !important;
    width:auto !important;
    margin-left:.02em !important;
    margin-right:.02em !important;
}
.contact-info-grid{
    display:none !important;
}
.contact-intro p{
    max-width:650px !important;
    margin-top:24px !important;
}
.contact-form{
    padding:28px !important;
}
@media(max-width:1180px){
    .contact-shell{
        grid-template-columns:1fr !important;
    }
    .contact-intro{
        min-height:auto !important;
    }
    .contact-intro h2{
        font-size:clamp(2rem,5.8vw,3.75rem) !important;
        white-space:nowrap !important;
    }
}
@media(max-width:760px){
    .contact-intro h2{
        font-size:clamp(1.45rem,6.9vw,2.35rem) !important;
        letter-spacing:-.04em !important;
    }
}
@media(max-width:480px){
    .contact-intro h2{
        font-size:clamp(1.25rem,6.2vw,1.85rem) !important;
    }
}

/* GHG Site Core 1.1 contact form states */
.ghg-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}.contact-form.is-sending{pointer-events:none}.contact-submit:disabled{opacity:.66;cursor:wait;transform:none!important}.contact-form-note.is-error{color:#a62b2b!important}
