/* Extracted from kontakt.html */
/* ===== KONTAKT PAGE STYLES ===== */
      .kp-hero {
        padding: 8rem 2rem 4rem;
        background: #ffffff;
        background-image: linear-gradient(rgba(0,0,0,0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(0,0,0,0.03) 1px, transparent 1px);
        background-size: 24px 24px;
        text-align: center;
        position: relative;
      }
      .kp-hero__graphic {
        position: absolute;
        right: 5%;
        top: 50%;
        transform: translateY(-50%);
        width: 280px;
        height: auto;
        opacity: 0.12;
        pointer-events: none;
      }
      .kp-hero__label {
        display: inline-block;
        font-size: 0.8rem;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.15em;
        color: #1a6b8a;
        background: #ddf2fb;
        padding: 6px 18px;
        border-radius: 4px;
        margin-bottom: 1.5rem;
      }
      .kp-hero__title {
        font-family: 'Bricolage Grotesque', sans-serif;
        font-size: clamp(2.2rem, 5vw, 3.5rem);
        font-weight: 700;
        color: #111;
        margin-bottom: 1.2rem;
        line-height: 1.2;
      }
      .kp-hero__title span { color: #66ff7e; }
      .kp-hero__subtitle {
        font-family: 'Manrope', sans-serif;
        font-size: 1.1rem;
        color: #555;
        max-width: 700px;
        margin: 0 auto;
        line-height: 1.7;
      }

      /* ===== KONTAKT FORMULAR SEKTION ===== */
      .kp-form-section {
        padding: 5rem 2rem;
        background: #f8faf8;
      }
      .kp-form-section__inner {
        max-width: 1200px;
        margin: 0 auto;
        display: grid;
        grid-template-columns: 1fr 1.6fr;
        gap: 4rem;
        align-items: start;
      }

      /* Linke Spalte: Kontaktoptionen */
      .kp-options { display: flex; flex-direction: column; gap: 2rem; }
      .kp-option {
        display: flex;
        align-items: flex-start;
        gap: 1rem;
        padding: 1.2rem;
        background: #fff;
        border-radius: 16px;
        box-shadow: 0 2px 12px rgba(0,0,0,0.04);
        transition: transform 0.3s ease, box-shadow 0.3s ease;
      }
      .kp-option:hover {
        transform: translateY(-2px);
        box-shadow: 0 6px 20px rgba(0,0,0,0.08);
      }
      .kp-option__icon {
        width: 56px;
        height: 56px;
        flex-shrink: 0;
        background: #f0fdf0;
        border-radius: 12px;
        display: flex;
        align-items: center;
        justify-content: center;
      }
      .kp-option__icon img {
        width: 36px;
        height: 36px;
      }
      .kp-option__text h3 {
        font-family: 'Bricolage Grotesque', sans-serif;
        font-size: 1rem;
        font-weight: 700;
        color: #111;
        margin-bottom: 0.3rem;
      }
      .kp-option__text p {
        font-family: 'Manrope', sans-serif;
        font-size: 0.88rem;
        color: #666;
        line-height: 1.5;
      }

      /* Rechte Spalte: Formular */
      .kp-form {
        background: #fff;
        border-radius: 20px;
        padding: 2.5rem;
        box-shadow: 0 4px 24px rgba(0,0,0,0.06);
      }
      .kp-form__intro {
        font-family: 'Manrope', sans-serif;
        font-size: 0.95rem;
        color: #555;
        line-height: 1.7;
        margin-bottom: 2rem;
      }
      .kp-form__row {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        gap: 1rem;
        margin-bottom: 1rem;
      }
      .kp-form__group { margin-bottom: 1rem; }
      .kp-form__input,
      .kp-form__textarea {
        width: 100%;
        padding: 14px 18px;
        border: 1px solid #e5e7eb;
        border-radius: 12px;
        font-family: 'Manrope', sans-serif;
        font-size: 0.9rem;
        color: #111;
        background: #f9fafb;
        transition: border-color 0.3s ease, box-shadow 0.3s ease;
      }
      .kp-form__input:focus,
      .kp-form__textarea:focus {
        outline: none;
        border-color: #66ff7e;
        box-shadow: 0 0 0 3px rgba(102,255,126,0.15);
      }
      .kp-form__input::placeholder,
      .kp-form__textarea::placeholder {
        color: #9ca3af;
      }
      .kp-form__textarea {
        min-height: 160px;
        resize: vertical;
      }
      .kp-form__checkbox {
        display: flex;
        align-items: flex-start;
        gap: 10px;
        margin-bottom: 1.5rem;
        font-size: 0.85rem;
        color: #555;
        line-height: 1.5;
      }
      .kp-form__checkbox input[type="checkbox"] {
        margin-top: 3px;
        flex-shrink: 0;
        accent-color: #66ff7e;
      }
      .kp-form__checkbox a { color: #66ff7e; font-weight: 600; }
      .kp-form__submit {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 14px 32px;
        background: #66ff7e;
        color: #111;
        font-family: 'Bricolage Grotesque', sans-serif;
        font-size: 1rem;
        font-weight: 700;
        border: none;
        border-radius: 50px;
        cursor: pointer;
        transition: background 0.3s ease, transform 0.2s ease;
      }
      .kp-form__submit:hover {
        background: #111;
        color: #fff;
        transform: translateY(-1px);
      }
      .kp-form__submit svg {
        width: 18px;
        height: 18px;
      }

      /* ===== B&Uuml;RO-STANDORTE SEKTION ===== */
      .kp-offices {
        padding: 5rem 2rem;
        background: #fff;
        text-align: center;
      }
      .kp-offices__label {
        display: inline-block;
        font-size: 0.8rem;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.15em;
        color: #66ff7e;
        margin-bottom: 1rem;
      }
      .kp-offices__title {
        font-family: 'Bricolage Grotesque', sans-serif;
        font-size: clamp(1.8rem, 4vw, 2.8rem);
        font-weight: 700;
        color: #111;
        margin-bottom: 1rem;
      }
      .kp-offices__subtitle {
        font-family: 'Manrope', sans-serif;
        font-size: 1rem;
        color: #555;
        max-width: 750px;
        margin: 0 auto 1.5rem;
        line-height: 1.7;
      }
      .kp-offices__phone {
        font-family: 'Manrope', sans-serif;
        font-size: 0.95rem;
        color: #555;
        margin-bottom: 3rem;
        line-height: 1.8;
      }
      .kp-offices__phone a {
        color: #111;
        font-weight: 700;
        text-decoration: none;
      }

      /* Interaktive Karte (VersaTiles / MapLibre) */
      .kp-map {
        width: 100%;
        margin: 0 0 3rem;
        position: relative;
        overflow: hidden;
      }
      .kp-map #kontakt-map {
        width: 100%;
        height: 500px;
      }
      .kp-map-marker {
        width: 36px;
        height: 36px;
        background: #66ff7e;
        border: 3px solid #111;
        border-radius: 50%;
        cursor: pointer;
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        box-shadow: 0 4px 12px rgba(0,0,0,0.2);
        transition: transform 0.2s ease;
      }
      .kp-map-marker:hover {
        transform: scale(1.15);
      }
      .kp-map-marker::after {
        content: '';
        width: 10px;
        height: 10px;
        background: #111;
        border-radius: 50%;
      }
      .maplibregl-popup-content {
        font-family: 'Manrope', sans-serif;
        padding: 12px 16px;
        border-radius: 10px;
        box-shadow: 0 4px 16px rgba(0,0,0,0.12);
      }
      .maplibregl-popup-content strong {
        font-family: 'Bricolage Grotesque', sans-serif;
        font-size: 0.95rem;
        display: block;
        margin-bottom: 4px;
      }
      .maplibregl-popup-content span {
        font-size: 0.82rem;
        color: #555;
        line-height: 1.5;
      }

      /* Büro-Karten */
      .kp-offices__grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 2rem;
        max-width: 1000px;
        margin: 0 auto;
      }
      .kp-office-card {
        background: #f8faf8;
        border: 1px solid #e8ece8;
        border-radius: 16px;
        padding: 2rem 1.5rem;
        text-align: center;
        transition: transform 0.3s ease, box-shadow 0.3s ease;
      }
      .kp-office-card:hover {
        transform: translateY(-4px);
        box-shadow: 0 12px 32px rgba(102,255,126,0.12);
        border-color: #66ff7e;
      }
      .kp-office-card__icon {
        width: 72px;
        height: 72px;
        margin: 1.5rem auto 0;
      }
      .kp-office-card__icon img {
        width: 100%;
        height: 100%;
        object-fit: contain;
      }
      .kp-office-card h3 {
        font-family: 'Bricolage Grotesque', sans-serif;
        font-size: 1.1rem;
        font-weight: 700;
        color: #111;
        margin-bottom: 0.5rem;
      }
      .kp-office-card p {
        font-family: 'Manrope', sans-serif;
        font-size: 0.88rem;
        color: #555;
        line-height: 1.6;
      }

      /* ===== CTA SEKTION ===== */
      .kp-cta {
        padding: 5rem 2rem;
        background: #111;
        position: relative;
        overflow: hidden;
      }
      .kp-cta__inner {
        max-width: 1200px;
        margin: 0 auto;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 4rem;
        align-items: center;
      }
      .kp-cta__text h2 {
        font-family: 'Bricolage Grotesque', sans-serif;
        font-size: clamp(1.8rem, 4vw, 2.5rem);
        font-weight: 700;
        color: #fff;
        margin-bottom: 1.2rem;
        line-height: 1.3;
      }
      .kp-cta__text h2 span { color: #66ff7e; }
      .kp-cta__text p {
        font-family: 'Manrope', sans-serif;
        font-size: 1rem;
        color: #ccc;
        line-height: 1.7;
        margin-bottom: 2rem;
      }
      .kp-cta__btn {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 14px 28px;
        background: #66ff7e;
        color: #111;
        font-family: 'Bricolage Grotesque', sans-serif;
        font-size: 1rem;
        font-weight: 700;
        border-radius: 50px;
        text-decoration: none;
        transition: background 0.3s ease, transform 0.2s ease;
      }
      .kp-cta__btn:hover {
        background: #fff;
        transform: translateY(-2px);
      }
      .kp-cta__btn svg {
        width: 18px;
        height: 18px;
      }
      .kp-cta__image {
        border-radius: 16px;
        overflow: hidden;
        box-shadow: 0 20px 60px rgba(0,0,0,0.3);
      }
      .kp-cta__image img {
        width: 100%;
        height: auto;
        display: block;
      }

      /* ===== RESPONSIVE ===== */
      @media (max-width: 1024px) {
        .kp-form-section__inner { grid-template-columns: 1fr; gap: 2rem; }
        .kp-cta__inner { grid-template-columns: 1fr; text-align: center; }
        .kp-cta__image { max-width: 500px; margin: 0 auto; }
      }
      @media (max-width: 768px) {
        .kp-hero { padding: 7rem 1.5rem 3rem; }
        .kp-form__row { grid-template-columns: 1fr; }
        .kp-offices__grid { grid-template-columns: 1fr; }
        .kp-cta { padding: 4rem 1.5rem; }
      }

