html,
body {
    margin: 0;
    padding: 0;
}

.public-contact-section { padding: 80px 0 100px; }
.public-contact-kicker { display: inline-block; color: #6b9e45; font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; margin-bottom: 10px; }
.public-contact-card, .public-contact-side { height: 100%; padding: 32px; border: 1px solid rgba(78,125,47,.16); border-radius: 14px; background: rgba(255,255,255,.92); box-shadow: 0 12px 35px rgba(35,55,25,.08); }
.public-contact-form .form-group { margin-bottom: 18px; }
.public-contact-form label { display: block; margin-bottom: 7px; color: #435238; font-weight: 600; font-size: .88rem; }
.public-input { display: flex; align-items: center; border: 1px solid #dce5d8; border-radius: 7px; background: #fff; }
.public-input i { width: 40px; text-align: center; color: #74a64e; }
.public-input .form-control { border: 0; box-shadow: none; padding-left: 0; }
.public-contact-form .form-control { min-height: 46px; border-radius: 7px; border-color: #dce5d8; box-shadow: none; }
.public-contact-form .public-message { min-height: 125px; resize: vertical; padding: 13px 15px; }
.public-contact-form .form-control:focus, .public-input:focus-within { border-color: #74a64e; box-shadow: 0 0 0 3px rgba(116,166,78,.13); }
.public-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.public-contact-submit { border: 0; border-radius: 7px; padding: 12px 22px; background: #5c923e; color: #fff; font-weight: 700; transition: transform .2s, background .2s; }
.public-contact-submit:hover { background: #46752f; color: #fff; transform: translateY(-1px); }
.public-map { overflow: hidden; min-height: 360px; border-radius: 9px; }
.public-map iframe { display: block; width: 100%; height: 360px; border: 0; }
.public-contact-note { display: flex; gap: 10px; align-items: center; margin-top: 18px; color: #687568; font-size: .9rem; }
.public-contact-note i { color: #74a64e; font-size: 1.15rem; }
@media (max-width: 767px) { .public-contact-section { padding: 50px 0 70px; } .public-contact-card, .public-contact-side { padding: 22px; } .public-form-row { grid-template-columns: 1fr; gap: 0; } .public-map, .public-map iframe { min-height: 280px; height: 280px; } }
