.contact-page { background: #f5f7ef; color: #2c4837; padding: 44px 24px 64px; }
.contact-intro, .contact-layout { max-width: 1080px; margin: 0 auto; }
.contact-intro { padding: 0 0 32px; }
.contact-intro h1 { font-size: clamp(2.3rem, 4.5vw, 3.4rem); font-weight: 800; letter-spacing: -.045em; line-height: 1.15; color: #2c4837; margin: 0 0 16px; }
.contact-intro p { color: #6b7963; font-size: 1rem; line-height: 1.75; margin: 0; }
.contact-layout { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.3fr); gap: 26px; align-items: start; }
.contact-details { display: grid; gap: 18px; }
.contact-detail { display: flex; gap: 18px; padding: 26px; background: #fff; border: 1px solid #dee7d6; border-radius: 18px; color: inherit; text-decoration: none; min-width: 0; }
.contact-detail > div { min-width: 0; }
.contact-symbol { display: grid; place-items: center; width: 44px; height: 44px; flex: 0 0 44px; background: #ecf2e3; border-radius: 13px; color: #6c8c58; }
.contact-symbol svg { width: 23px; height: 23px; }
.contact-detail h2 { font-size: .8rem; font-weight: 800; color: #64765a; margin: 0 0 9px; }
.contact-detail p, .contact-detail address { font-size: .95rem; font-style: normal; font-weight: 600; color: #2e4a39; line-height: 1.75; overflow-wrap: anywhere; margin: 0; }
.contact-email { background: #eaf0e1; border-color: #dbe5ce; transition: background .2s, transform .2s; }
.contact-email .contact-symbol { background: #ffffffad; }
.contact-email:hover { background: #e0eacf; transform: translateY(-2px); }
.contact-directions { display: inline-flex; gap: 15px; align-items: center; border-radius: 10px; padding: 10px 14px; background: #355d42; color: #fff; font-weight: 800; font-size: .77rem; text-decoration: none; margin-top: 18px; }
.contact-directions:hover { background: #284a33; }
.contact-detail-action { display: inline-flex; gap: 16px; align-items: center; color: #537343; font-size: .75rem; font-weight: 800; margin-top: 14px; }
.contact-location { overflow: hidden; border: 1px solid #dce5d4; border-radius: 20px; background: #fff; }
.contact-map-heading { padding: 20px 24px; display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.contact-map-heading h2 { color: #35533c; font-size: 1rem; margin: 0; font-weight: 800; }
.contact-map-heading > span { color: #7a8871; font-size: .75rem; }
.contact-location iframe { display: block; width: 100%; min-height: 390px; }
.contact-page a:focus-visible { outline: 3px solid #b38d45; outline-offset: 4px; }
@media (max-width: 800px) { .contact-layout { grid-template-columns: minmax(0, 1fr); gap: 22px; } .contact-details { grid-template-columns: repeat(2, minmax(0, 1fr)); } .contact-detail { padding: 22px; gap: 14px; } }
@media (max-width: 600px) { .contact-page { padding: 30px 20px 40px; } .contact-intro { padding-bottom: 26px; } .contact-details { grid-template-columns: minmax(0, 1fr); gap: 14px; } .contact-detail { padding: 22px; } .contact-location iframe { min-height: 280px; height: 280px; } .contact-map-heading { padding: 18px 20px; } }
@media (prefers-reduced-motion: reduce) { .contact-email { transition: none; } .contact-email:hover { transform: none; } }
