.contact-section { position: relative; overflow: hidden; background: linear-gradient(135deg, var(--color-sol-blue-dark) 0%, var(--color-sol-blue-light) 100%); color: #fff; }
.contact-glow {
  position: absolute; top: -128px; left: -160px; width: 520px; height: 520px; border-radius: 50%; pointer-events: none;
  background: radial-gradient(circle, rgba(255,255,255,0.18) 0%, transparent 65%);
}
.contact-inner { position: relative; padding-block: 80px; }
@media (min-width: 1024px) { .contact-inner { padding-block: 112px; } }

.contact-grid { display: grid; gap: var(--gap-sol-md); grid-template-columns: 1fr; align-items: start; }
@media (min-width: 1024px) { .contact-grid { grid-template-columns: repeat(2, 1fr); } }

.contact-response-promise { margin-top: 24px; display: inline-flex; align-items: center; gap: 8px; }
.contact-response-promise .sol-icon { color: var(--color-sol-blue-light); width: 1rem; height: 1rem; }

.contact-card {
  margin-top: 40px; border-radius: var(--radius-sol-card); border: 1px solid rgba(255,255,255,0.15);
  background: rgba(255,255,255,0.05); padding: 28px; backdrop-filter: blur(4px);
}
.contact-card-person { margin-top: 20px; display: flex; align-items: center; gap: 16px; }
.contact-card-portrait { width: 64px; height: 64px; flex-shrink: 0; border-radius: 999px; object-fit: cover; box-shadow: 0 0 0 2px rgba(255,255,255,0.25); }
.contact-card-name { font-size: 1rem; font-weight: 700; color: #fff; }
.contact-card-note { margin-top: 20px; color: #fff; }
.contact-card-details { margin-top: 24px; display: flex; flex-direction: column; gap: 16px; }
.contact-detail { display: flex; align-items: center; gap: 16px; }
.contact-detail .sol-icon { flex-shrink: 0; color: #fff; }
.contact-detail dd { color: #fff; font-weight: 500; margin: 0; }
.contact-detail dd a { color: #fff; text-decoration: none; }
.contact-detail dd a:hover { color: var(--color-sol-blue-light); }

.contact-form-panel {
  border-radius: var(--radius-sol-panel); background: #fff; padding: 28px;
  box-shadow: var(--shadow-sol-default); color: var(--color-sol-gray-900);
}
@media (min-width: 640px) { .contact-form-panel { padding: 40px; } }
.contact-form-placeholder { border: 2px dashed var(--color-sol-gray-300); }

/* ---------------------------------------------------------------
   Gravity-Forms-Overrides — GFs eigenes CSS (Orbital-Theme o.ä.)
   bleibt AKTIV und liefert weiterhin das Spalten-/Grid-Layout der
   Felder (z.B. Vorname/Nachname nebeneinander). Diese Regeln fassen
   bewusst NUR Optik an (Farben, Radien, Schrift, Fokus-Ring) — nie
   `display`, `width`/Spaltenbreiten oder sonstige Layout-Properties,
   damit GFs Grid-System unangetastet bleibt.

   `!important` gezielt auf den optischen Properties, weil GFs eigenes
   Theme-CSS dieselben Eigenschaften über CSS-Custom-Properties mit
   vergleichbarer/höherer Spezifität setzt — ohne !important gewinnt
   sonst je nach Lade-Reihenfolge mal GF, mal wir.
--------------------------------------------------------------- */
.gform_wrapper .gfield_label {
  font-family: var(--font-sans) !important;
  font-weight: 700 !important;
  font-size: 0.75rem !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  color: var(--color-sol-blue-dark) !important;
}
.gform_wrapper .gfield_required { color: var(--color-sol-error) !important; }

.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="number"],
.gform_wrapper textarea,
.gform_wrapper select {
  border-radius: var(--radius-sol-control) !important;
  border: 1px solid var(--color-sol-gray-300) !important;
  background: #fff !important;
  font-family: var(--font-sans) !important;
  font-size: 1rem !important;
  color: var(--color-sol-gray-900) !important;
  padding: 12px 16px !important;
}
.gform_wrapper input:focus,
.gform_wrapper textarea:focus,
.gform_wrapper select:focus {
  outline: none !important;
  border-color: var(--color-sol-blue-light) !important;
  box-shadow: 0 0 0 4px color-mix(in oklch, var(--color-sol-blue-light) 20%, transparent) !important;
}

.gform_wrapper .gform_button {
  border-radius: 999px !important;
  font-family: var(--font-sans) !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  font-size: 1rem !important;
  padding: 18px 36px !important;
  border: none !important;
  background: var(--color-sol-blue-dark) !important;
  color: #fff !important;
  transition: background-color 400ms ease-out !important;
}
.gform_wrapper .gform_button:hover { background: var(--color-sol-blue-medium) !important; }

.gform_wrapper .gfield_consent_label { font-size: 0.875rem !important; color: var(--color-sol-gray-700) !important; }
.gform_wrapper .validation_error { color: var(--color-sol-error) !important; font-weight: 700 !important; }

.gform_confirmation_wrapper {
  border-radius: var(--radius-sol-panel) !important;
  background: #fff !important;
  color: var(--color-sol-gray-900) !important;
  box-shadow: var(--shadow-sol-default) !important;
}
