/* ==========================================================================
   Unterseite Kontakt – baut auf style.css auf.
   Formular + direkte Wege → Orte → Kooperationen → Newsletter. Formulare im Dummy ohne Versand.
   ========================================================================== */

.page-kontakt .section h2 { font-size: calc(clamp(2.2rem, 4.2vw, 3.8rem) * var(--display-scale)); margin-bottom: 1.5rem; }
.kt-kicker { font-size: 0.95rem; letter-spacing: 0.04em; color: var(--taupe); margin-bottom: 1.25rem; }

.kt-hero { position: relative; overflow: hidden; padding: calc(7.5rem + 4vh) 0 calc(var(--section) * 0.6); }
.kt-hero .grid { position: relative; z-index: 1; align-items: start; row-gap: 3rem; }
.kt-side { grid-column: 1 / span 5; }
/* Bild unter den direkten Wegen: gleicht die Höhe des Formulars aus und macht die Seite persönlich */
.kt-figure { margin: 3.5rem 0 0; aspect-ratio: 3 / 2; overflow: hidden; }
.kt-figure img { width: 100%; height: 100%; object-fit: cover; }
.kt-hero h1 {
  font-size: calc(clamp(3rem, 7vw, 7rem) * var(--display-scale));
  line-height: 1;
  color: var(--head-color);
  margin-bottom: 1.75rem;
}
.kt-direct { display: grid; gap: 0.9rem; margin-top: 2.5rem; justify-items: start; }
.kt-mail {
  font-family: var(--font-display);
  font-weight: var(--display-weight);
  font-size: calc(clamp(1.4rem, 2.2vw, 2rem) * var(--display-scale));
  font-variation-settings: "SOFT" 30, "WONK" 0;
}
/* Horizont wie auf der Startseite: nur der Scheitel eines großen Kreises ragt unten rechts herein */
.orbit--kt { width: 160vmin; height: 160vmin; right: -40vmin; bottom: -150vmin; }

/* Formular beginnt auf Höhe des Einleitungstexts, nicht schon neben dem Kicker */
.kt-form { grid-column: 7 / span 6; display: grid; gap: 1.4rem; margin-top: clamp(5rem, 11vw, 10.5rem); }
.kt-field { display: grid; gap: 0.45rem; }
.kt-field label { font-size: 0.92rem; color: var(--taupe); }
/* Felder, Checkbox, Newsletter-Pille: gemeinsame Formular-Sprache am Ende von style.css */
.kt-check { display: grid; grid-template-columns: auto 1fr; gap: 0.75rem; font-size: 0.9rem; align-items: start; }
.kt-form .btn { justify-self: start; }

.kt-place-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem; margin-top: 1rem; }
.kt-place { position: relative; padding-top: 1.75rem; border-top: 1px solid var(--sand-200); }
.kt-place h3 {
  font-size: calc(clamp(1.5rem, 2.2vw, 2rem) * var(--display-scale));
  color: var(--head-color);
  margin-bottom: 0.25rem;
}
.kt-town { color: var(--taupe); font-size: 0.95rem; margin-bottom: 1rem; }

.kt-coop .grid { align-items: start; row-gap: 2rem; }
.kt-coop-head { grid-column: 1 / span 5; }
.kt-coop-copy { grid-column: 7 / span 6; }
.kt-coop-copy p:not(.lead) { max-width: 32em; }

.kt-news {
  text-align: center;
  /* läuft oben und unten aus: der Footer ist seit 11. Oktober 2026 eine freistehende Karte auf Sand */
  background: linear-gradient(to bottom, rgba(241, 222, 218, 0) 0%, #F1DEDA 40%, #F1DEDA 62%, rgba(241, 222, 218, 0) 100%);
  padding-block: calc(var(--section) * 1.1);
}
.kt-news .lead { max-width: 30em; margin-inline: auto; }
.kt-nl { max-width: 34rem; margin: 2rem auto 1rem; }

@media (max-width: 900px) {
  .kt-side, .kt-form, .kt-coop-head, .kt-coop-copy { grid-column: 1 / span 12; }
  .kt-place-grid { grid-template-columns: 1fr; }
  .kt-form { margin-top: 0; }
}
