/* Kontakt – seitenspezifische Komponenten */

.kt-hero { background: var(--el-dark); color: #fff; padding: clamp(2.25rem, 6vw, 3.5rem) 0 clamp(3.5rem, 8vw, 5rem); }
.kt-hero h1 { color: #fff; margin-bottom: 0.5rem; }
.kt-hero p { color: rgba(255,255,255,0.88); max-width: 600px; margin: 0; font-size: clamp(1rem, 1rem + 0.3vw, 1.15rem); }

/* Kontaktwege */
.kt-wege { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: calc(-1 * clamp(1.25rem, 3vw, 2rem)); position: relative; z-index: 2; }
.kt-weg {
  background: #fff; border: 1px solid var(--el-border); border-radius: var(--radius); padding: 1.25rem;
  display: flex; gap: 0.9rem; align-items: flex-start; text-decoration: none; color: inherit;
  box-shadow: 0 8px 24px rgba(91,117,96,0.10); transition: box-shadow 0.2s, transform 0.2s; min-height: 44px;
}
a.kt-weg:hover { box-shadow: var(--shadow); transform: translateY(-2px); color: inherit; }
.kt-icon { width: 42px; height: 42px; border-radius: 10px; background: #EFF4EF; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.kt-icon svg { width: 20px; height: 20px; stroke: var(--el-dark); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.kt-weg strong { display: block; font-family: 'Montserrat', sans-serif; color: var(--el-ink); font-size: 0.95rem; margin-bottom: 0.15rem; }
.kt-weg span { color: var(--el-mid-text); font-size: 0.92rem; line-height: 1.5; overflow-wrap: anywhere; }

/* Formular + Karte */
.kt-grid { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: clamp(1.5rem, 4vw, 2.5rem); align-items: start; }
.kt-form-box { background: #fff; border: 1px solid var(--el-border); border-radius: var(--radius); padding: clamp(1.25rem, 3.5vw, 2rem); }
.kt-form-box h2 { font-size: clamp(1.25rem, 1.1rem + 0.8vw, 1.6rem); margin-bottom: 0.3rem; }
.kt-form-box > p { color: var(--el-mid-text); margin-bottom: 1.25rem; }
.kt-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.kt-field { margin-bottom: 1rem; }
.kt-field label { display: block; font-weight: 700; font-size: 0.9rem; color: var(--el-ink); margin-bottom: 0.35rem; }
.kt-field .opt { font-weight: 400; color: var(--el-mid-text); }
.kt-field input, .kt-field select, .kt-field textarea {
  width: 100%; font: inherit; font-size: 1rem; color: var(--el-dark-text); background: #fff;
  border: 1.5px solid #CFD8D0; border-radius: 8px; padding: 0.7rem 0.85rem; min-height: 48px;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.kt-field textarea { min-height: 140px; resize: vertical; }
.kt-field input:focus, .kt-field select:focus, .kt-field textarea:focus { outline: none; border-color: var(--el-dark); box-shadow: 0 0 0 3px rgba(91,117,96,0.18); }
.kt-field.has-error input, .kt-field.has-error select, .kt-field.has-error textarea { border-color: #B3261E; }
.kt-error { display: none; color: #B3261E; font-size: 0.82rem; margin-top: 0.3rem; }
.kt-field.has-error .kt-error { display: block; }
.kt-check { display: flex; gap: 0.6rem; align-items: flex-start; font-size: 0.88rem; color: var(--el-mid-text); margin: 0.25rem 0 1.25rem; }
.kt-check input { width: 20px; height: 20px; margin-top: 2px; flex-shrink: 0; accent-color: var(--el-dark); }
.kt-check.has-error { color: #B3261E; }
.kt-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.kt-submit { width: 100%; font-size: 1rem; }
.kt-submit[disabled] { opacity: 0.6; cursor: wait; }
.kt-status { display: none; margin-top: 1rem; padding: 0.9rem 1rem; border-radius: 8px; font-size: 0.95rem; }
.kt-status.ok { display: block; background: #EFF4EF; border: 1px solid #C8D8C9; color: var(--el-ink); }
.kt-status.err { display: block; background: #FDECEA; border: 1px solid #F3C7C3; color: #8A1C14; }
.kt-required-note { font-size: 0.8rem; color: var(--el-mid-text); margin: -0.5rem 0 1rem; }

.kt-side h2 { font-size: 1.2rem; }
.kt-map {
  border-radius: var(--radius); overflow: hidden; border: 1px solid var(--el-border); background: var(--el-bg);
  aspect-ratio: 4 / 3; display: flex; align-items: center; justify-content: center; text-align: center; padding: 1.25rem;
}
.kt-map iframe { width: 100%; height: 100%; border: 0; display: block; }
.kt-map.is-loaded { padding: 0; }
.kt-map p { font-size: 0.85rem; color: var(--el-mid-text); margin-bottom: 0.9rem; }
.kt-map .btn-ghost-light { padding: 10px 20px; }
.kt-address { margin: 1rem 0 0.75rem; font-style: normal; line-height: 1.6; }
.kt-route { display: inline-flex; align-items: center; gap: 0.35rem; font-weight: 700; min-height: 44px; }

@media (max-width: 900px) {
  .kt-grid { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .kt-wege { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .kt-row { grid-template-columns: 1fr; }
}
