.weichselberger-contact-form-section {
  margin-bottom: 4rem;
  padding: clamp(1.25rem, 3vw, 2.5rem);
  border: 1px solid #d8d5d0;
  border-top: 5px solid var(--weichselberger-red);
  border-radius: var(--weichselberger-card-radius);
  background: var(--weichselberger-gray-light);
}
.weichselberger-contact-form-section #kontaktformular-titel { margin-top: 0; }
.weichselberger-contact-form-section .alert-danger {
  margin: 1.5rem 0;
  padding: 1.25rem;
  border: 1px solid #d99a9f;
  border-left: 5px solid #a71921;
  border-radius: var(--weichselberger-card-radius);
  background: #f8e7e8;
  color: #76151b;
}
.weichselberger-contact-form-section .weichselberger-contact-success {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  margin: 1.5rem 0;
  padding: 1.25rem;
  border: 1px solid #8bb69b;
  border-left: 5px solid #28633e;
  border-radius: var(--weichselberger-card-radius);
  background: #e8f3ec;
  color: #204f32;
  scroll-margin-block: 140px 24px;
}
.weichselberger-contact-success-icon { flex: 0 0 auto; font-size: 1.75rem; line-height: 1.2; font-weight: 700; }
.weichselberger-contact-form-section .weichselberger-contact-success h3 {
  margin: 0 0 .4rem;
  color: inherit;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: normal;
  text-transform: none;
}
.weichselberger-contact-form-section .weichselberger-contact-success p { margin: 0; color: inherit; font-size: 1rem; line-height: 1.6; }
.weichselberger-contact-success:focus { outline: 3px solid #28633e; outline-offset: 3px; }
.weichselberger-contact-kicker {
  color: var(--weichselberger-red);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .16em;
  margin-bottom: 1rem;
}
.weichselberger-inquiry-form .form-label { color: var(--weichselberger-nav-ink); font-weight: 600; }
/* Porto standard form-control/text-3/h-auto/py-2 handles field sizing and typography.
   Only strengthen the border contrast and use the existing site's palette. */
.weichselberger-inquiry-form .form-control {
  min-height: 48px;
  border: 1px solid #858585;
  background-color: var(--weichselberger-white);
  color: var(--weichselberger-nav-ink);
}
.weichselberger-inquiry-form :focus-visible { outline: 3px solid var(--weichselberger-red); outline-offset: 3px; }
.weichselberger-inquiry-form [aria-invalid="true"] { border-color: var(--weichselberger-red); }
.weichselberger-inquiry-form .form-check-input { width: 1.25rem; height: 1.25rem; }
.weichselberger-inquiry-form .form-check-label { padding-left: .5rem; color: var(--weichselberger-nav-ink); }
.weichselberger-captcha-notice { padding: 1.25rem; background: var(--weichselberger-white); border-left: 3px solid var(--weichselberger-red); color: var(--weichselberger-nav-ink); }
.weichselberger-captcha-notice p { margin: .5rem 0 1rem; }
.weichselberger-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.weichselberger-inquiry-form button:disabled { cursor: not-allowed; opacity: .65; }
#kontaktformular { scroll-margin-top: 140px; }

/* Same content edges as the shared page heading. Porto's XL container is wider. */
@media (min-width: 1200px) {
  .weichselberger-page-kontakt .weichselberger-page-body > .container {
    max-width: 1200px !important;
  }
}
.weichselberger-contact-address {
  margin: 1.5rem 0;
  color: var(--weichselberger-nav-ink);
  font-style: normal;
  line-height: 1.7;
}
.weichselberger-contact-details .weichselberger-contact-detail-label {
  margin: 1.5rem 0 .4rem;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.weichselberger-contact-details .weichselberger-contact-link { margin-top: 0; }
.weichselberger-contact-details .weichselberger-contact-link span { min-width: 0; }
.weichselberger-contact-details .weichselberger-contact-appointment {
  margin: 1.75rem 0 0;
  padding-top: 1.25rem;
  border-top: 1px solid #d8d5d0;
  font-size: .9rem;
}

@media (min-width: 992px) {
  .weichselberger-page-kontakt .weichselberger-page-body > .container > .row > aside {
    width: 33.33333333%;
  }
}
