.contact-page { color: #19231e; background: #fff; }
.contact-page main { min-height: 70vh; padding-bottom: 88px; background: linear-gradient(180deg, #edf6f1 0, #fff 430px); }
.contact-container { max-width: 1240px; }
.contact-breadcrumbs { display: flex; align-items: center; gap: 8px; padding: 24px 0; color: #718078; font-size: .76rem; flex-wrap: wrap; }
.contact-breadcrumbs a:hover { color: #2d6a4f; }
.contact-hero { max-width: 900px; padding: 34px 0 44px; margin: 0 auto; }
.contact-hero h1 { max-width: 760px; margin: 9px 0 18px; color: #173f30; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.7rem, 6vw, 5rem); font-weight: 500; letter-spacing: -.045em; line-height: .98; }
.contact-hero > p:last-child { max-width: 720px; margin: 0; color: #56675e; font-size: clamp(.98rem, 1.5vw, 1.12rem); line-height: 1.75; }
.contact-layout { max-width: 900px; margin: 0 auto; }
.contact-form-card { background: #fff; border: 1px solid #dbe7e0; border-radius: 20px; box-shadow: 0 22px 65px rgba(23, 63, 48, .07); }
.contact-form-card h2 { margin: 6px 0 9px; color: #173f30; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.85rem, 3vw, 2.5rem); font-weight: 500; letter-spacing: -.025em; }
.contact-form-card > header > p:last-child { margin: 0; color: #66756d; font-size: .86rem; line-height: 1.65; }
.contact-form-card { padding: 34px; }
.contact-form-card > header { padding-bottom: 24px; border-bottom: 1px solid #e1e9e5; }
.contact-form-notice { display: flex; align-items: flex-start; gap: 10px; margin: 22px 0 0; padding: 14px 16px; border-radius: 11px; font-size: .78rem; line-height: 1.55; }
.contact-form-notice span { display: grid; width: 22px; height: 22px; flex: 0 0 auto; color: #fff; border-radius: 50%; font-weight: 850; place-items: center; }
.contact-form-notice p { margin: 1px 0 0; }
.contact-form-notice.is-success { color: #24553f; background: #eaf5ef; border: 1px solid #c7e0d3; }
.contact-form-notice.is-success span { background: #2d6a4f; }
.contact-form-notice.is-error { color: #823b3b; background: #fff1f1; border: 1px solid #efd0d0; }
.contact-form-notice.is-error span { background: #a14747; }
.contact-form-card form { margin-top: 24px; }
.contact-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.contact-field { display: grid; align-content: start; gap: 7px; color: #35483e; font-size: .72rem; font-weight: 760; }
.contact-field-wide { grid-column: 1 / -1; }
.contact-field > span small { color: #829087; font-weight: 500; }
.contact-field input,
.contact-field select:not(.app-custom-select-native),
.contact-field textarea { width: 100%; min-height: 46px; padding: 11px 13px; color: #1d2b24; background: #fff; border: 1px solid #cbd9d1; border-radius: 10px; font: inherit; font-size: .79rem; font-weight: 500; line-height: 1.5; outline: none; }
.contact-field select:not(.app-custom-select-native) { appearance: auto; cursor: pointer; }
.contact-field .app-custom-select { width: 100%; }
.contact-field .app-custom-select-button { min-height: 46px; padding: 11px 13px; border-color: #cbd9d1; border-radius: 10px; font-size: .79rem; font-weight: 500; }
.contact-field textarea { min-height: 155px; resize: vertical; }
.contact-field input:focus,
.contact-field select:not(.app-custom-select-native):focus,
.contact-field textarea:focus { border-color: #2d6a4f; box-shadow: 0 0 0 3px rgba(45, 106, 79, .1); }
.contact-field > small { min-height: 0; color: #a13e3e; font-size: .66rem; font-weight: 650; line-height: 1.45; }
.contact-field > small:empty { display: none; }
.contact-field.has-error input,
.contact-field.has-error select:not(.app-custom-select-native),
.contact-field.has-error .app-custom-select-button,
.contact-field.has-error textarea { border-color: #c86f6f; }
.contact-consent { display: flex; align-items: flex-start; gap: 9px; margin-top: 18px; color: #4e6057; font-size: .7rem; line-height: 1.5; cursor: pointer; }
.contact-consent input { width: 17px; height: 17px; flex: 0 0 auto; margin: 2px 0 0; accent-color: #2d6a4f; }
.contact-consent-error { display: block; margin: 5px 0 0 26px; color: #a13e3e; font-size: .66rem; }
.contact-consent-error:empty { display: none; }
.contact-form-submit-error { margin: 13px 0 0; color: #a13e3e; font-size: .7rem; }
.contact-submit { display: inline-flex; min-height: 45px; align-items: center; justify-content: center; gap: 10px; margin-top: 18px; padding: 10px 18px; color: #fff; background: #2d6a4f; border: 1px solid #2d6a4f; border-radius: 10px; font: inherit; font-size: .75rem; font-weight: 850; cursor: pointer; }
.contact-submit:hover { background: #24553f; }
.contact-submit:disabled { opacity: .68; cursor: wait; }
.contact-submit svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.contact-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

@media (max-width: 640px) {
    .contact-page main { padding-bottom: 54px; }
    .contact-hero { padding: 22px 0 32px; }
    .contact-form-card { padding: 23px 19px; border-radius: 16px; }
    .contact-form-grid { grid-template-columns: 1fr; }
    .contact-field-wide { grid-column: auto; }
    .contact-submit { width: 100%; }
}
