/* ===========================================================================
   MIRACLEAN Austria – Kontaktseite
   ---------------------------------------------------------------------------
   Wird ausschliesslich von kontakt.html geladen. Alle Klassen tragen das
   Praefix "kon-", damit Aenderungen hier keine andere Seite beruehren.
   Das Formular nutzt weiterhin die gemeinsamen Formularklassen aus style.css
   (.form, .field, …), damit Validierung und Versand unveraendert bleiben.

   Aufbau:  1 Kontakt-Hero · 2 Anfrageformular und direkter Kontakt
   Flaechen: Navy, dann Hellgrau mit weissen Tafeln. Gelb nur als Akzent.
   =========================================================================== */

/* --- Block 1: Kontakt-Hero ----------------------------------------------------
   Kompakt und ohne Bild oder Button: Einordnung, Ueberschrift, zwei Absaetze. */
.kon-hero {
  background: var(--navy);
  color: #fff;
  padding-block: var(--sp-5) var(--sp-7);
}
@media (min-width: 900px) { .kon-hero { padding-block: var(--sp-6) var(--sp-7); } }
.kon-hero .eyebrow { color: var(--signal); margin-bottom: var(--sp-3); }
.kon-hero__title {
  font-size: clamp(1.7rem, 3.6vw, 2.6rem);
  line-height: 1.06;
  margin-bottom: var(--sp-5);
  text-wrap: balance;
}
.kon-hero__lead { max-width: 62ch; }
.kon-hero__lead p {
  font-size: var(--fs-base);
  line-height: 1.7;
  color: #c9d6ec;
  margin-bottom: var(--sp-3);
}
.kon-hero__lead p:last-child { margin-bottom: 0; }

/* --- Block 2: Anfrageformular und direkter Kontakt -------------------------------
   Links das Formular, rechts die Kontaktdaten, beides auf weissen Tafeln.
   Mobil untereinander, zuerst das Formular. */
.kon-section { background: var(--mist); padding-block: var(--sp-7); }
@media (min-width: 900px) { .kon-section { padding-block: 4.5rem; } }

.kon-grid { display: grid; gap: var(--sp-7); align-items: start; }
@media (min-width: 1000px) {
  .kon-grid { grid-template-columns: minmax(0, 1.4fr) minmax(0, .8fr); gap: var(--sp-7); }
}

/* Sprungziel #anfrage: nicht unter dem mitlaufenden Kopfbereich verschwinden */
.kon-form { scroll-margin-top: calc(64px + var(--sp-4)); }

.kon-heading {
  font-size: clamp(1.3rem, 2.2vw, 1.75rem);
  margin-bottom: var(--sp-5);
  text-wrap: balance;
}

.kon-card,
.kon-panel {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
}

/* Formular-Tafel */
.kon-card { padding: var(--sp-5); }
@media (min-width: 640px) { .kon-card { padding: var(--sp-6); } }
.kon-card .form { gap: var(--sp-4); }
.kon-card .form__row { gap: var(--sp-4); }
/* Leere Fehlerzeilen nicht als Leerraum reservieren; sobald die Validierung
   eine Meldung einsetzt, ist das Element nicht mehr leer und erscheint. */
.kon-card .field__error:empty { display: none; }

/* Kontakt-Tafel: drei ruhige Abschnitte, durch feine Linien getrennt */
.kon-panel__part { padding: var(--sp-5); font-style: normal; }
.kon-panel__part + .kon-panel__part { border-top: 1px solid var(--line); }
.kon-panel h3 {
  font-size: var(--fs-sm);
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  line-height: 1.35;
  margin-bottom: var(--sp-2);
}
.kon-panel__part > p { margin: 0; font-size: var(--fs-sm); line-height: 1.6; color: var(--ink-muted); }
.kon-panel__part > .kon-company {
  margin: 0 0 var(--sp-4);
  font-size: var(--fs-base);
  font-weight: 800;
  color: var(--ink);
}

.kon-contact { margin: 0; display: grid; gap: var(--sp-4); }
.kon-contact dt {
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.kon-contact dd { margin: 0; font-size: var(--fs-sm); line-height: 1.55; overflow-wrap: anywhere; }
/* Groessere Tippflaeche fuer Telefon, E-Mail und Instagram, ohne das
   Schriftbild zu verschieben: Innenabstand und gleich grosser negativer
   Aussenabstand heben sich im Layout auf. Bewusst ohne Unterstreichung. */
.kon-contact a {
  display: inline-block;
  padding-block: .7rem;
  margin-block: -.7rem;
  text-decoration: none;
}
