/* Contact form: comfortable native controls and a compact, readable layout. */
.contact-location { min-height: 0; height: auto; padding: 3rem 0; background: #f6f8f2; }
.contact-location__heading { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; margin-bottom: 1.5rem; }
.contact-location__heading h2 { font-size: clamp(1.5rem,3vw,2.2rem); margin: .5rem 0; }
.contact-location__heading p { margin: 0; }
.contact-location__heading .button { flex-shrink: 0; }
.contact-location .contact-location__map { display: block; position: static; width: 100%; height: 440px; border: 1px solid #ccd7c5; border-radius: 1rem; filter: none; }
.contact-location__note { margin-top: .8rem; font-size: .85rem; line-height: 1.6; }
.contact-location__note a { text-decoration: underline; }
@media (max-width: 600px) {
  .contact-location__heading { align-items: stretch; flex-direction: column; }
  .contact-location .contact-location__map { height: 360px; }
}
.contact-details { background: #f6f8f2; border: 1px solid #e0e7da; border-radius: 1.5rem; padding: clamp(1.1rem, 3vw, 2rem); gap: 1.4rem; align-self: start; }
.contact-details h2 { font-size: clamp(1.2rem, 2vw, 1.6rem); line-height: 1.3; margin-bottom: .5rem; }
.contact-details > a, .contact-details > span { gap: .85rem; font-size: 1rem; line-height: 1.5; }
.contact-details > a > span, .contact-details > span > span { min-width: 0; }
.contact-details small { font-size: .72rem; letter-spacing: .05em; margin-bottom: .2rem; }
.contact-details .contact-note { padding: 1rem; margin-top: .25rem; border-radius: .7rem; background: #fff; }
.contact-details .contact-note p { font-size: .9rem; line-height: 1.6; }
.contact-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.15rem; padding: clamp(1rem,3vw,2rem); }
.contact-form > * { grid-column: 1 / -1; min-width: 0; margin: 0; }
.contact-form > .contact-field-half { grid-column: auto; }
.contact-form label { display: grid; gap: .45rem; font-size: .9rem; line-height: 1.45; }
.contact-form :is(input:not([type=checkbox]), select, textarea) { width: 100%; min-width: 0; min-height: 50px; padding: .75rem .85rem; background: #fff; border: 1px solid #b5c1b2; border-radius: .7rem; font-size: 1rem; line-height: 1.4; color: #19281d; box-sizing: border-box; }
.contact-form select { padding-right: 1.5rem; appearance: auto; }
.contact-form :is(input,select,textarea):focus-visible { outline: 2px solid #547800; outline-offset: 2px; box-shadow: none; }
.contact-form .field-hint { font-size: .82rem; line-height: 1.55; color: #53604f; margin: 0; }
.contact-date { border: 1px solid #dce5d4; border-radius: .9rem; padding: 1rem; background: #f8faf5; min-width: 0; }
.contact-date legend { font-weight: 700; font-size: .9rem; padding-inline: .3rem; }
.contact-date__parts { display: grid; grid-template-columns: .8fr 1.5fr 1fr; gap: .65rem; margin-top: .8rem; }
.contact-date__parts label { font-size: .78rem; }
.contact-form label.consent { display: grid; grid-template-columns: 22px minmax(0,1fr); align-items: start; gap: .7rem; font-size: .82rem; font-weight: 400; line-height: 1.6; }
.contact-form .consent input { width: 20px; height: 20px; margin-top: .15rem; }
@media (max-width: 600px) {
  .contact-form { grid-template-columns: minmax(0,1fr); }
  .contact-form > .contact-field-half { grid-column: 1; }
  .contact-date { padding: .75rem; }
  .contact-date__parts { gap: .4rem; grid-template-columns: .8fr 1.35fr 1fr; }
  .contact-date__parts select { padding-inline: .45rem; }
}
@media (max-width: 420px) {
  .contact-date__parts { grid-template-columns: minmax(0,1fr); gap: .75rem; }
}
