html { scroll-behavior: smooth; }
section[id] { scroll-margin-top: 90px; }
#contactForm { scroll-margin-top: 110px; }
.mobile-menu-toggle { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: #005f50; color: #fff; }
.mobile-menu-toggle:focus-visible { outline: 2px solid #0d7a68; outline-offset: 3px; }
.mobile-menu { position: absolute; top: 100%; left: 0; right: 0; display: grid; gap: .25rem; padding: .75rem 1.5rem 1rem; background: #fff; box-shadow: 0 18px 30px rgba(8,80,68,.16); }
.mobile-menu[hidden] { display: none; }
.mobile-menu a { padding: .75rem 1rem; border-radius: 10px; color: #111e1b; font-weight: 600; }
.mobile-menu a:hover, .mobile-menu a:focus-visible { background: #e8f7f2; color: #005f50; }
@media (min-width: 1280px) { .mobile-menu-toggle, .mobile-menu { display: none; } }
.captcha-field { display: flex; flex-direction: column; gap: .5rem; }
.captcha-field label { font-weight: 700; font-size: .875rem; color: #111e1b; }
.captcha-row { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.captcha-row img { width: 220px; height: 72px; border: 1px solid #bdc9c4; border-radius: 12px; background: #fff; }
.captcha-row button { padding: .65rem .9rem; border-radius: 10px; background: #e2f1ec; color: #005f50; font-weight: 700; }
.captcha-row button:hover { background: #d7e6e1; }
.captcha-field input { width: min(100%, 360px); padding: .75rem 1rem; border: 1px solid #bdc9c4; border-radius: 12px; background: #e8f7f2; color: #111e1b; text-transform: uppercase; }
.captcha-field input:focus { outline: 2px solid #0d7a68; outline-offset: 2px; }
.captcha-field small, #notesHelp { color: #3e4946; font-size: .8rem; line-height: 1.4; }
.contact-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.response-dialog { width: min(92vw, 460px); padding: 2rem; border: 0; border-radius: 24px; background: #fff; color: #111e1b; box-shadow: 0 24px 70px rgba(8,80,68,.24); text-align: center; }
.response-dialog::backdrop { background: rgba(5,31,27,.62); backdrop-filter: blur(5px); }
.response-dialog .dialog-icon { display: grid; place-items: center; width: 64px; height: 64px; margin: 0 auto 1rem; border-radius: 50%; background: #e2f1ec; color: #005f50; font-size: 2rem; font-weight: 700; }
.response-dialog[data-state="error"] .dialog-icon { background: #ffdad6; color: #93000a; }
.response-dialog h2 { margin: 0 0 .5rem; font-size: 1.45rem; font-weight: 700; }
.response-dialog p { margin: 0 0 1.5rem; color: #3e4946; line-height: 1.6; }
.response-dialog button { min-width: 150px; padding: .8rem 1.5rem; border-radius: 12px; background: #005f50; color: #fff; font-weight: 700; }
.response-dialog button:hover { background: #0d7a68; }
#submitButton:disabled { opacity: .65; cursor: wait; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
