/* ==========================================
   CONTACT INTRO
========================================== */

.contact-intro{

    padding:110px 0 80px;

    background:var(--white);

    text-align:center;

}

.contact-intro-content{

    max-width:850px;

    margin:0 auto;

}

.contact-intro .section-tag{

    display:inline-block;

    margin-bottom:18px;

    color:var(--primary-green);

    font-size:14px;

    font-weight:700;

    letter-spacing:3px;

    text-transform:uppercase;

}

.contact-intro h1{

    font-family:var(--heading-font);

    font-size:58px;

    line-height:1.2;

    color:var(--dark);

    margin:0 0 22px;

}

.contact-intro p{

    max-width:700px;

    margin:0 auto 30px;

    font-size:18px;

    line-height:1.9;

    color:var(--text);

}

.contact-intro .breadcrumb{

    display:flex;

    align-items:center;

    justify-content:center;

    gap:12px;

    font-size:15px;

    color:var(--text);

}

.contact-intro .breadcrumb a{

    color:var(--dark);

    text-decoration:none;

    transition:.3s ease;

}

.contact-intro .breadcrumb a:hover{

    color:var(--primary-green);

}

.contact-intro .breadcrumb span:last-child{

    color:var(--primary-green);

}


/* ==========================================
   CONTACT MAIN
========================================== */

.contact-main{

    padding:100px 0 120px;

    background:#f8faf8;

}

.contact-grid{

    display:grid;

    grid-template-columns:42% 58%;

    gap:70px;

    align-items:start;

}


/* ==========================================
   CONTACT INFORMATION
========================================== */

.contact-info{

    padding-top:15px;

}

.contact-info .section-tag{

    display:inline-block;

    margin-bottom:15px;

    color:var(--primary-green);

    font-size:14px;

    font-weight:700;

    letter-spacing:3px;

    text-transform:uppercase;

}

.contact-info h2{

    font-family:var(--heading-font);

    font-size:46px;

    line-height:1.2;

    color:var(--dark);

    margin:0 0 22px;

}

.contact-info-intro{

    font-size:17px;

    line-height:1.9;

    color:var(--text);

    margin-bottom:45px;

}


/* ==========================================
   CONTACT ITEMS
========================================== */

.contact-item{

    display:flex;

    align-items:flex-start;

    gap:20px;

    margin-bottom:30px;

}

.contact-icon{

    flex-shrink:0;

    width:58px;

    height:58px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:15px;

    background:rgba(46,125,50,.10);

}

.contact-icon i{

    font-size:22px;

    color:var(--primary-green);

}

.contact-item h3{

    font-family:var(--heading-font);

    font-size:22px;

    color:var(--dark);

    margin:0 0 6px;

}

.contact-item p{

    font-size:16px;

    line-height:1.6;

    color:var(--text);

    margin:0;

}

.contact-item a{

    color:var(--text);

    text-decoration:none;

    transition:.3s ease;

}

.contact-item a:hover{

    color:var(--primary-green);

}


/* ==========================================
   CONTACT SOCIAL
========================================== */

.contact-social{

    margin-top:45px;

    padding-top:35px;

    border-top:1px solid rgba(0,0,0,.08);

}

.contact-social h3{

    font-family:var(--heading-font);

    font-size:22px;

    color:var(--dark);

    margin-bottom:18px;

}

.contact-social-icons{

    display:flex;

    align-items:center;

    gap:12px;

}

.contact-social-icons a{

    width:44px;

    height:44px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    background:var(--white);

    color:var(--primary-green);

    text-decoration:none;

    box-shadow:0 6px 20px rgba(0,0,0,.07);

    transition:all .3s ease;

}

.contact-social-icons a:hover{

    color:#fff;

    background:var(--primary-green);

    transform:translateY(-4px);

}


/* ==========================================
   CONTACT FORM
========================================== */

.contact-form-wrapper{

    padding:45px;

    background:var(--white);

    border-radius:24px;

    box-shadow:0 18px 50px rgba(0,0,0,.08);

}

.form-heading{

    margin-bottom:35px;

}

.form-heading .section-tag{

    display:inline-block;

    margin-bottom:15px;

    color:var(--primary-green);

    font-size:13px;

    font-weight:700;

    letter-spacing:2.5px;

    text-transform:uppercase;

}

.form-heading h2{

    font-family:var(--heading-font);

    font-size:40px;

    line-height:1.2;

    color:var(--dark);

    margin:0 0 15px;

}

.form-heading p{

    font-size:16px;

    line-height:1.7;

    color:var(--text);

    margin:0;

}


/* Form Rows */

.form-row{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:20px;

}

.form-group{

    margin-bottom:22px;

}

.form-group label{

    display:block;

    margin-bottom:8px;

    color:var(--dark);

    font-size:14px;

    font-weight:600;

}

.form-group input,
.form-group textarea{

    width:100%;

    box-sizing:border-box;

    padding:14px 16px;

    border:1px solid rgba(0,0,0,.12);

    border-radius:10px;

    background:#fff;

    color:var(--dark);

    font-family:inherit;

    font-size:15px;

    outline:none;

    transition:all .3s ease;

}

.form-group textarea{

    resize:vertical;

    min-height:160px;

}

.form-group input::placeholder,
.form-group textarea::placeholder{

    color:#999;

}

.form-group input:focus,
.form-group textarea:focus{

    border-color:var(--primary-green);

    box-shadow:0 0 0 3px rgba(46,125,50,.08);

}


/* Submit */

.contact-submit{

    width:100%;

    display:flex;

    align-items:center;

    justify-content:center;

    gap:10px;

    padding:16px 25px;

    border:none;

    border-radius:10px;

    background:var(--primary-green);

    color:#fff;

    font-family:inherit;

    font-size:15px;

    font-weight:600;

    cursor:pointer;

    transition:all .3s ease;

}

.contact-submit:hover{

    transform:translateY(-3px);

    box-shadow:0 12px 30px rgba(0,0,0,.14);

}

.contact-submit i{

    font-size:14px;

}


/* ==========================================
   LOCATION
========================================== */

.contact-location{

    padding:120px 0;

    background:var(--white);

}

.location-heading{

    max-width:750px;

    margin:0 auto 55px;

    text-align:center;

}

.location-heading .section-tag{

    display:inline-block;

    margin-bottom:15px;

    color:var(--primary-green);

    font-size:14px;

    font-weight:700;

    letter-spacing:3px;

    text-transform:uppercase;

}

.location-heading h2{

    font-family:var(--heading-font);

    font-size:50px;

    line-height:1.2;

    color:var(--dark);

    margin:0 0 18px;

}

.location-heading p{

    font-size:17px;

    line-height:1.8;

    color:var(--text);

    margin:0;

}


/* Map */

.location-map{

    width:100%;

    min-height:430px;

    border-radius:24px;

    overflow:hidden;

    box-shadow:0 20px 55px rgba(0,0,0,.10);

}

.map-placeholder{

    min-height:430px;

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    text-align:center;

    background:#f1f5f1;

}

.map-placeholder i{

    font-size:48px;

    color:var(--primary-green);

    margin-bottom:20px;

}

.map-placeholder h3{

    font-family:var(--heading-font);

    font-size:32px;

    color:var(--dark);

    margin:0 0 8px;

}

.map-placeholder p{

    font-size:16px;

    color:var(--text);

    margin:0;

}


/* ==========================================
   CONTACT CTA
========================================== */

.contact-cta{

    padding:100px 0;

    background:var(--primary-green);

    text-align:center;

}

.contact-cta-content{

    max-width:800px;

    margin:0 auto;

}

.contact-cta .section-tag{

    display:inline-block;

    margin-bottom:18px;

    color:#9EE37D;

    font-size:14px;

    font-weight:700;

    letter-spacing:3px;

    text-transform:uppercase;

}

.contact-cta h2{

    font-family:var(--heading-font);

    font-size:50px;

    line-height:1.2;

    color:#fff;

    margin:0 0 20px;

}

.contact-cta p{

    max-width:650px;

    margin:0 auto 30px;

    font-size:17px;

    line-height:1.9;

    color:rgba(255,255,255,.88);

}

.contact-cta-btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:10px;

    padding:15px 27px;

    border-radius:9px;

    background:#fff;

    color:var(--primary-green);

    text-decoration:none;

    font-size:15px;

    font-weight:700;

    transition:all .3s ease;

}

.contact-cta-btn:hover{

    transform:translateY(-3px);

    box-shadow:0 12px 30px rgba(0,0,0,.18);

}


/* ==========================================
   TABLET
========================================== */

@media(max-width:992px){

    .contact-intro{

        padding:90px 0 70px;

    }

    .contact-intro h1{

        font-size:50px;

    }

    .contact-grid{

        grid-template-columns:1fr;

        gap:60px;

    }

    .contact-info{

        max-width:750px;

    }

    .contact-form-wrapper{

        max-width:750px;

    }

    .location-heading h2{

        font-size:42px;

    }

    .contact-cta h2{

        font-size:42px;

    }

}


/* ==========================================
   MOBILE
========================================== */

@media(max-width:768px){

    .contact-intro{

        padding:75px 20px 60px;

    }

    .contact-intro h1{

        font-size:38px;

    }

    .contact-intro p{

        font-size:16px;

    }

    .contact-main{

        padding:75px 20px 80px;

    }

    .contact-info h2{

        font-size:36px;

    }

    .contact-info-intro{

        font-size:16px;

    }

    .contact-form-wrapper{

        padding:30px 24px;

        border-radius:20px;

    }

    .form-heading h2{

        font-size:32px;

    }

    .form-row{

        grid-template-columns:1fr;

        gap:0;

    }

    .contact-location{

        padding:80px 20px;

    }

    .location-heading{

        margin-bottom:40px;

    }

    .location-heading h2{

        font-size:36px;

    }

    .location-heading p{

        font-size:16px;

    }

    .location-map,
    .map-placeholder{

        min-height:350px;

    }

    .contact-cta{

        padding:80px 20px;

    }

    .contact-cta h2{

        font-size:36px;

    }

    .contact-cta p{

        font-size:16px;

    }

}


/* ==========================================
   SMALL MOBILE
========================================== */

@media(max-width:480px){

    .contact-intro h1{

        font-size:32px;

    }

    .contact-info h2{

        font-size:32px;

    }

    .contact-item{

        gap:15px;

    }

    .contact-icon{

        width:50px;

        height:50px;

    }

    .contact-icon i{

        font-size:19px;

    }

    .contact-form-wrapper{

        padding:25px 18px;

    }

    .form-heading h2{

        font-size:29px;

    }

    .contact-social-icons a{

        width:40px;

        height:40px;

    }

    .location-heading h2{

        font-size:32px;

    }

    .contact-cta h2{

        font-size:32px;

    }

}