.contact-page { background: #f8f5eb; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.contact-main { position: relative; padding: 90px 0 105px; overflow: hidden; background: radial-gradient(circle at 50% 3%, rgba(247,202,62,.12), transparent 28%), #faf7ee; }
.contact-intro { max-width: 850px; margin: 0 auto 52px; text-align: center; }
.contact-intro > span { display: flex; align-items: center; justify-content: center; gap: 13px; color: #168143; font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.contact-intro > span i, .contact-label i { display: inline-block; width: 39px; height: 2px; background: #e5b329; }
.contact-intro h1 { margin: 15px 0 12px; color: #08703a; font-size: clamp(3.2rem, 6vw, 6.5rem); line-height: .95; letter-spacing: -.055em; }
.contact-intro p { max-width: 660px; margin: auto; color: #66736b; font-size: 1.03rem; line-height: 1.7; }
.contact-orbit { position: absolute; width: 220px; height: 220px; border: 1px solid rgba(221,190,94,.18); border-radius: 50%; }
.contact-orbit-left { top: 35px; left: -145px; }.contact-orbit-right { top: 35px; right: -145px; }
.contact-dots { position: absolute; width: 150px; height: 170px; opacity: .22; background-image: radial-gradient(#87aa94 1.5px,transparent 1.5px); background-size: 16px 16px; }
.contact-dots-left { top: 160px; left: -22px; }.contact-dots-right { top: 160px; right: -22px; }
.contact-layout { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0,1.1fr) minmax(400px,.9fr); gap: 28px; }
.contact-panel { padding: clamp(30px,4vw,52px); border: 1px solid rgba(18,84,49,.08); border-radius: 28px; background: #fff; box-shadow: 0 24px 60px rgba(32,55,41,.08); }
.contact-label { display: flex; align-items: center; gap: 12px; color: #168143; font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.contact-label i { width: 34px; }
.contact-panel > h2 { max-width: 560px; margin: 17px 0 12px; color: #0e3422; font-size: clamp(2.4rem,4vw,4.2rem); line-height: .98; letter-spacing: -.045em; }
.contact-panel > p { max-width: 600px; color: #6a766f; line-height: 1.7; }
.contact-channels { display: grid; gap: 14px; margin-top: 30px; }
.contact-channel { display: grid; grid-template-columns: 58px 1fr; align-items: center; gap: 18px; min-height: 102px; padding: 17px; border: 1px solid #e8eee9; border-radius: 17px; background: linear-gradient(100deg,#fbfdfb,#f4faf5); }
a.contact-channel:hover { border-color: rgba(15,132,67,.3); transform: translateY(-3px); }
.channel-icon { display: grid; width: 56px; height: 56px; place-items: center; border-radius: 50%; color: #fff; background: #12813f; box-shadow: 0 12px 25px rgba(18,129,63,.22); }
.channel-icon svg { width: 20px; }
.contact-channel > span:last-child { display: grid; }
.contact-channel strong { color: #163d29; font-family: var(--font-heading); }
.contact-channel small { margin-top: 2px; color: #6f7b74; font-size: .79rem; }
.office-grid { display: grid; margin-top: 14px; }
.office-card { min-height: 0; padding: 20px 22px; border: 1px solid #e8eee9; border-radius: 17px; background: linear-gradient(100deg,#fbfdfb,#f4faf5); }
.office-card h3 { display: flex; align-items: center; gap: 18px; color: #163d29; font-size: 1.08rem; }
.office-card h3 span { display: grid; flex: 0 0 56px; width: 56px; height: 56px; place-items: center; border-radius: 50%; color: #fff; background: #148442; box-shadow: 0 12px 25px rgba(18,129,63,.22); }
.office-card h3 svg { width: 20px; }
.office-card p { display: flex; gap: 10px; margin: 8px 0 0 74px; color: #6f7b74; font-size: .79rem; line-height: 1.6; }
.office-card p svg { flex: 0 0 16px; width: 16px; margin-top: 2px; color: #148442; }
.contact-form { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 30px; }
.contact-field { position: relative; display: flex; min-height: 57px; align-items: center; gap: 10px; padding: 0 16px; border: 1px solid #dfe9e2; border-radius: 14px; background: #fff; transition: border-color .25s ease, box-shadow .25s ease; }
.contact-field:focus-within { border-color: #178547; box-shadow: 0 0 0 4px rgba(23,133,71,.08); }
.contact-field > svg { flex: 0 0 18px; width: 18px; color: #168347; }
.contact-field input, .contact-field select, .contact-field textarea { width: 100%; border: 0; outline: 0; color: #273b30; background: transparent; font: 400 .87rem var(--font-body); }
.contact-field input::placeholder, .contact-field textarea::placeholder { color: #7d8b83; }
.contact-field select { color: #7d8b83; cursor: pointer; }
.contact-field-full { grid-column: 1 / -1; }
.contact-message { min-height: 165px; align-items: flex-start; padding-top: 18px; }
.contact-message textarea { resize: vertical; min-height: 125px; }
.contact-field.is-invalid { border-color: #c74b42; box-shadow: 0 0 0 3px rgba(199,75,66,.08); }
.contact-submit { display: flex; min-height: 58px; align-items: center; justify-content: center; gap: 10px; border: 0; border-radius: 14px; color: #fff; background: #12823f; box-shadow: 0 14px 30px rgba(18,130,63,.23); font: 600 .95rem var(--font-heading); cursor: pointer; transition: transform .25s ease, background .25s ease; }
.contact-submit:hover { background: #0d6e35; transform: translateY(-3px); }
.contact-submit svg { width: 17px; }
.contact-form-status { min-height: 1.4em; color: #167541; font-size: .82rem; text-align: center; }
.visit-strip { position: relative; z-index: 2; display: grid; grid-template-columns: 58px 1fr auto; align-items: center; gap: 20px; margin-top: 32px; padding: 25px 29px; border-radius: 22px; color: #fff; background: linear-gradient(110deg,#13773d,#109146); box-shadow: 0 20px 45px rgba(16,119,61,.18); }
.visit-icon { display: grid; width: 56px; height: 56px; place-items: center; border-radius: 50%; color: #178245; background: #fff; }
.visit-icon svg { width: 20px; }
.visit-strip h2 { font-size: 1.65rem; }.visit-strip p { color: rgba(255,255,255,.72); font-size: .86rem; }
.visit-strip > a { display: inline-flex; align-items: center; gap: 9px; padding: 14px 22px; border-radius: 13px; color: #163921; background: #f7c13a; font-weight: 700; }
.visit-strip > a:hover { background: #ffd45a; transform: translateY(-3px); }.visit-strip > a svg { width: 17px; }

@media (max-width: 980px) {
    .contact-layout { grid-template-columns: 1fr; }
    .contact-form-panel { max-width: none; }
}
@media (max-width: 640px) {
    .contact-main { padding: 65px 0 75px; }.contact-intro { margin-bottom: 36px; }
    .contact-panel { padding: 27px 20px; border-radius: 21px; }
    .office-grid, .contact-form { grid-template-columns: 1fr; }
    .contact-field-full { grid-column: auto; }
    .office-card { padding: 17px; }
    .office-card h3 { gap: 14px; }
    .office-card h3 span { width: 46px; height: 46px; }
    .office-card p { margin-left: 60px; }
    .visit-strip { grid-template-columns: 50px 1fr; padding: 22px 18px; }
    .visit-strip > a { grid-column: 1 / -1; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }.contact-reveal { opacity: 1 !important; transform: none !important; }
}
