/* =========================================================
   KENMA-UK CONTACT PAGE
   ========================================================= */

:root{
    --contact-green:#073b2d;
    --contact-green-deep:#052c22;
    --contact-lime:#b9ed82;
    --contact-red:#8e1e2d;
    --contact-ink:#10251f;
    --contact-muted:#68756f;
    --contact-line:#e1e9e4;
    --contact-bg:#f6faf8;
    --contact-white:#fff;
}

.contact-page{
    overflow:hidden;
    color:var(--contact-ink);
    background:var(--contact-bg);
}

.contact-container{
    width:min(var(--container,1240px),calc(100% - 44px));
    margin-inline:auto;
}

.contact-page a{
    text-decoration:none;
}

.contact-page input,
.contact-page select,
.contact-page textarea,
.contact-page button{
    font:inherit;
}

.contact-eyebrow{
    display:inline-flex;
    align-items:center;
    gap:9px;
    color:var(--contact-green);
    font-size:9px;
    font-weight:800;
    letter-spacing:.16em;
    line-height:1;
    text-transform:uppercase;
}

.contact-eyebrow::before{
    content:"";
    width:23px;
    height:1px;
    background:currentColor;
}

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

.contact-hero{
    position:relative;
    display:flex;
    align-items:center;
    min-height:410px;
    overflow:hidden;
    padding:100px 0 90px;
    color:#fff;
    background:var(--contact-green);
}

.contact-hero::before{
    content:"CONTACT";
    position:absolute;
    right:-38px;
    top:12px;
    color:rgba(185,237,130,.035);
    font-family:"Manrope",sans-serif;
    font-size:175px;
    font-weight:800;
    letter-spacing:-.1em;
    line-height:1;
}

.contact-hero-grid{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:minmax(0,1.2fr) minmax(270px,.55fr);
    gap:80px;
    align-items:end;
}

.contact-hero .contact-eyebrow{
    color:var(--contact-lime);
}

.contact-hero h1{
    max-width:850px;
    margin:18px 0 0;
    font-family:"Manrope",sans-serif;
    font-size:clamp(55px,7.2vw,96px);
    font-weight:600;
    line-height:.9;
    letter-spacing:-.065em;
}

.contact-hero h1 span{
    display:block;
    color:var(--contact-lime);
}

.contact-hero-side{
    max-width:410px;
    padding-bottom:4px;
}

.contact-hero-side p{
    margin:0;
    color:rgba(255,255,255,.66);
    font-size:13px;
    line-height:1.85;
}

.contact-hero-pattern{
    position:absolute;
    right:-100px;
    bottom:-290px;
    width:600px;
    height:600px;
    border:1px solid rgba(185,237,130,.11);
    border-radius:50%;
}

.contact-hero-pattern::before,
.contact-hero-pattern::after{
    content:"";
    position:absolute;
    border:1px solid rgba(185,237,130,.08);
    border-radius:50%;
}

.contact-hero-pattern::before{
    inset:70px;
}

.contact-hero-pattern::after{
    inset:140px;
}

/* =========================================================
   MAIN CONTACT AREA
   ========================================================= */

.contact-main{
    padding:110px 0 120px;
    background:#fff;
}

.contact-layout{
    display:grid;
    grid-template-columns:minmax(280px,.72fr) minmax(500px,1.28fr);
    gap:75px;
    align-items:start;
}

.contact-info{
    position:sticky;
    top:110px;
}

.contact-info h2{
    margin:17px 0 15px;
    font-family:"Manrope",sans-serif;
    font-size:clamp(39px,4.6vw,62px);
    font-weight:600;
    line-height:.98;
    letter-spacing:-.06em;
}

.contact-info h2 span{
    display:block;
    color:var(--contact-green);
}

.contact-intro{
    max-width:390px;
    margin:0;
    color:var(--contact-muted);
    font-size:12px;
    line-height:1.8;
}

.contact-detail-list{
    margin-top:37px;
    border-top:1px solid var(--contact-line);
}

.contact-detail{
    display:grid;
    grid-template-columns:43px 1fr 18px;
    gap:13px;
    align-items:center;
    padding:17px 0;
    border-bottom:1px solid var(--contact-line);
    color:var(--contact-ink);
}

.contact-detail-icon{
    width:40px;
    height:40px;
    display:grid;
    place-items:center;
    border:1px solid #d8e4de;
    border-radius:12px;
    color:var(--contact-green);
    background:#f5f9f7;
    font-size:13px;
    font-weight:800;
}

.contact-detail small{
    display:block;
    margin-bottom:5px;
    color:#7c8782;
    font-size:7px;
    font-weight:800;
    letter-spacing:.13em;
    text-transform:uppercase;
}

.contact-detail strong{
    display:block;
    font-size:11px;
    font-weight:750;
}

.contact-detail>b{
    color:var(--contact-red);
    font-size:15px;
    transition:transform .2s ease;
}

.contact-detail:hover>b{
    transform:translate(3px,-3px);
}

.contact-social{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-top:29px;
}

.contact-social>span{
    color:#7c8782;
    font-size:8px;
    font-weight:800;
    letter-spacing:.11em;
    text-transform:uppercase;
}

.contact-social-links{
    display:flex;
    gap:7px;
}

.contact-social-links a{
    width:29px;
    height:29px;
    display:grid;
    place-items:center;
    border:1px solid #d8e4de;
    border-radius:50%;
    color:var(--contact-green);
    background:#fff;
    font-size:9px;
    font-weight:800;
    transition:all .22s ease;
}

.contact-social-links a:hover{
    color:#fff;
    border-color:var(--contact-green);
    background:var(--contact-green);
    transform:translateY(-2px);
}

/* =========================================================
   FORM
   ========================================================= */

.contact-form-wrap{
    padding:37px 40px 40px;
    border:1px solid var(--contact-line);
    border-radius:25px;
    background:#f7faf8;
    box-shadow:0 20px 55px rgba(7,59,45,.055);
}

.contact-form-heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:30px;
    padding-bottom:22px;
    border-bottom:1px solid var(--contact-line);
}

.contact-form-heading>span{
    color:var(--contact-ink);
    font-family:"Manrope",sans-serif;
    font-size:24px;
    font-weight:700;
    letter-spacing:-.035em;
}

.contact-form-heading p{
    max-width:270px;
    margin:0;
    color:var(--contact-muted);
    font-size:9px;
    line-height:1.65;
    text-align:right;
}

.contact-form{
    padding-top:27px;
}

.contact-form-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
    margin-bottom:18px;
}

.contact-form label{
    display:block;
}

.contact-form label>span{
    display:block;
    margin-bottom:8px;
    color:#52605a;
    font-size:8px;
    font-weight:800;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.contact-form label>span em{
    color:#929c97;
    font-style:normal;
    font-weight:600;
    letter-spacing:0;
    text-transform:none;
}

.contact-form input,
.contact-form select,
.contact-form textarea{
    width:100%;
    box-sizing:border-box;
    outline:none;
    border:1px solid #dce6e1;
    border-radius:11px;
    color:var(--contact-ink);
    background:#fff;
    font-size:11px;
    transition:border-color .22s ease,box-shadow .22s ease;
}

.contact-form input,
.contact-form select{
    height:47px;
    padding:0 13px;
}

.contact-form textarea{
    min-height:135px;
    padding:13px;
    resize:vertical;
    line-height:1.65;
}

.contact-form input::placeholder,
.contact-form textarea::placeholder{
    color:#a0aaa5;
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus{
    border-color:#99b9aa;
    box-shadow:0 0 0 3px rgba(185,237,130,.18);
}

.contact-form>label{
    margin-bottom:20px;
}

.contact-form-bottom{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px;
    padding-top:3px;
}

.contact-consent{
    display:flex !important;
    align-items:flex-start;
    gap:9px;
    max-width:390px;
}

.contact-consent input{
    flex:0 0 auto;
    width:14px;
    height:14px;
    margin:1px 0 0;
    accent-color:var(--contact-green);
}

.contact-consent span{
    margin:0 !important;
    color:#7b8681 !important;
    font-size:8px !important;
    font-weight:500 !important;
    line-height:1.5;
    letter-spacing:0 !important;
    text-transform:none !important;
}

.contact-submit{
    display:inline-flex;
    align-items:center;
    gap:15px;
    flex:0 0 auto;
    border:0;
    border-radius:999px;
    padding:11px 12px 11px 18px;
    cursor:pointer;
    color:var(--contact-green);
    background:var(--contact-lime);
    font-size:9px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
    transition:transform .22s ease,background .22s ease;
}

.contact-submit span{
    width:27px;
    height:27px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:var(--contact-green);
    color:var(--contact-lime);
    font-size:15px;
}

.contact-submit:hover{
    transform:translateY(-3px);
    background:#c9f69d;
}

/* =========================================================
   BOTTOM CTA
   ========================================================= */

.contact-bottom{
    padding:105px 0;
    background:var(--contact-bg);
}

.contact-bottom-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(250px,.55fr) auto;
    gap:60px;
    align-items:center;
    padding:48px 52px;
    border-radius:27px;
    color:#fff;
    background:var(--contact-green);
}

.contact-bottom .contact-eyebrow{
    color:var(--contact-lime);
}

.contact-bottom h2{
    margin:15px 0 0;
    font-family:"Manrope",sans-serif;
    font-size:clamp(31px,4vw,51px);
    font-weight:600;
    line-height:.98;
    letter-spacing:-.055em;
}

.contact-bottom h2 span{
    display:block;
    color:var(--contact-lime);
}

.contact-bottom-grid>p{
    margin:0;
    color:rgba(255,255,255,.59);
    font-size:10px;
    line-height:1.75;
}

.contact-cta{
    display:inline-flex;
    align-items:center;
    gap:12px;
    padding:11px 12px 11px 16px;
    border-radius:999px;
    color:var(--contact-green);
    background:var(--contact-lime);
    font-size:9px;
    font-weight:900;
    letter-spacing:.07em;
    text-transform:uppercase;
    white-space:nowrap;
}

.contact-cta span{
    font-size:15px;
}

/* =========================================================
   REVEAL
   ========================================================= */

.contact-page .reveal{
    opacity:0;
    transform:translateY(22px);
    transition:
        opacity .7s ease,
        transform .7s cubic-bezier(.2,.7,.2,1);
}

.contact-page .reveal.is-visible{
    opacity:1;
    transform:none;
}

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

@media(max-width:1000px){

    .contact-layout{
        grid-template-columns:1fr;
        gap:55px;
    }

    .contact-info{
        position:static;
    }

    .contact-intro{
        max-width:600px;
    }

    .contact-bottom-grid{
        grid-template-columns:1fr 1fr;
    }

    .contact-cta{
        width:max-content;
    }
}

@media(max-width:800px){

    .contact-hero{
        min-height:auto;
        padding:85px 0;
    }

    .contact-hero-grid{
        grid-template-columns:1fr;
        gap:30px;
    }

    .contact-hero h1{
        font-size:60px;
    }

    .contact-main{
        padding:80px 0 90px;
    }

    .contact-form-wrap{
        padding:30px 25px;
    }

    .contact-form-heading{
        display:block;
    }

    .contact-form-heading p{
        margin-top:9px;
        text-align:left;
    }

    .contact-bottom{
        padding:75px 0;
    }

    .contact-bottom-grid{
        grid-template-columns:1fr;
        gap:25px;
        padding:35px 30px;
    }
}

@media(max-width:600px){

    .contact-container{
        width:calc(100% - 30px);
    }

    .contact-hero{
        padding:72px 0;
    }

    .contact-hero::before{
        font-size:95px;
    }

    .contact-hero h1{
        font-size:51px;
    }

    .contact-main{
        padding:70px 0 75px;
    }

    .contact-info h2{
        font-size:43px;
    }

    .contact-form-row{
        grid-template-columns:1fr;
        gap:18px;
    }

    .contact-form-bottom{
        align-items:flex-start;
        flex-direction:column;
    }

    .contact-submit{
        width:100%;
        justify-content:center;
    }

    .contact-social{
        align-items:flex-start;
        flex-direction:column;
        gap:13px;
    }

    .contact-bottom-grid{
        padding:30px 22px;
    }
}

@media(prefers-reduced-motion:reduce){
    .contact-page *,
    .contact-page *::before,
    .contact-page *::after{
        scroll-behavior:auto !important;
        transition:none !important;
        animation:none !important;
    }

    .contact-page .reveal{
        opacity:1;
        transform:none;
    }
}
