    /* --- 1. BASIC SETUP (Open Dialogue Mode) --- */
    .contact-wrapper {
        margin: 0;
        padding: 0;
        width: 100%;
        min-height: 100vh;
        /* Verlauf: Trust Blue -> Calming Teal -> Soft Violet */
        background: linear-gradient(135deg, #3b82f6 0%, #2dd4bf 50%, #818cf8 100%);
        color: #ffffff;
        font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
        overflow-x: hidden;
        position: relative;
        padding-bottom: 6rem;
    }

    /* --- 2. ANIMATED BACKGROUND --- */
    .bg-element {
        position: absolute;
        opacity: 0.12;
        pointer-events: none;
        animation: float 22s ease-in-out infinite;
        z-index: 0;
        color: #fff;
    }
    
    /* Envelope */
    .bg-envelope { top: 12%; left: 8%; width: 140px; }
    /* Chat Bubble */
    .bg-chat { bottom: 20%; right: 5%; width: 150px; animation-delay: 2s; }
    /* Heart/Hand */
    .bg-heart { top: 45%; left: 20%; width: 100px; animation-delay: 5s; opacity: 0.08; }

    @keyframes float {
        0%, 100% { transform: translateY(0) rotate(0deg); }
        50% { transform: translateY(-25px) rotate(3deg); }
    }

    /* --- 3. CONTAINER --- */
    .main-container {
        position: relative;
        z-index: 10;
        max-width: 900px;
        margin: 0 auto;
        padding: 4rem 1.5rem;
    }

    /* --- 4. HERO SECTION --- */
    .contact-header {
        text-align: center;
        margin-bottom: 3rem;
    }

    .header-icon {
        font-size: 4rem;
        margin-bottom: 1rem;
        display: inline-block;
        filter: drop-shadow(0 0 20px rgba(59, 130, 246, 0.4));
        animation: pulse 4s infinite;
    }

    .contact-title {
        font-size: 3rem;
        font-weight: 800;
        margin: 0 0 1rem 0;
        color: #fff;
        line-height: 1.1;
        text-shadow: 0 2px 10px rgba(0,0,0,0.15);
    }

    .contact-desc {
        font-size: 1.15rem;
        line-height: 1.6;
        color: rgba(255,255,255,0.95);
        max-width: 650px;
        margin: 0 auto 2rem auto;
    }

    @keyframes pulse {
        0% { transform: scale(1); }
        50% { transform: scale(1.05); }
        100% { transform: scale(1); }
    }

    /* --- 5. GLASS CARD (Form Container) --- */
    .glass-card {
        background: rgba(255, 255, 255, 0.95); /* Fast deckendes Weiß für seriösen Look */
        backdrop-filter: blur(25px);
        -webkit-backdrop-filter: blur(25px);
        border: 1px solid rgba(255, 255, 255, 0.8);
        border-radius: 24px;
        padding: 3rem 2.5rem;
        box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.2);
        color: #1e293b;
        margin-bottom: 3rem;
    }

    /* --- 6. SELECTION INTERFACE --- */
    
    /* Step Titles */
    .step-title {
        text-align: center;
        font-size: 1.25rem;
        font-weight: 700;
        color: #0f172a;
        margin-bottom: 1.5rem;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
    }

    .step-title-compact {
        font-size: 1.1rem;
        margin-bottom: 1rem;
    }

    /* Type Buttons (Grid) */
    .type-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        gap: 1rem;
        margin-bottom: 2.5rem;
    }

    .type-btn {
        background: #f1f5f9;
        border: 2px solid transparent;
        border-radius: 16px;
        padding: 1.5rem;
        text-align: center;
        cursor: pointer;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        position: relative;
        overflow: hidden;
    }

    .type-btn:hover {
        transform: translateY(-3px);
        background: #e2e8f0;
        box-shadow: 0 10px 20px rgba(0,0,0,0.05);
    }

    .type-btn.active {
        background: #eff6ff;
        border-color: #3b82f6;
        box-shadow: 0 10px 25px rgba(59, 130, 246, 0.15);
    }

    .type-icon {
        font-size: 2.5rem;
        display: block;
        margin-bottom: 0.5rem;
    }

    .type-label {
        font-weight: 700;
        display: block;
        color: #1e293b;
        margin-bottom: 0.2rem;
    }

    .type-sub {
        font-size: 0.85rem;
        color: #64748b;
    }

    /* Checkmark for active state */
    .type-btn.active::after {
        content: '✓';
        position: absolute;
        top: 10px;
        right: 10px;
        background: #3b82f6;
        color: white;
        width: 20px;
        height: 20px;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 12px;
        font-weight: bold;
    }

    /* Subtype Area */
    #subtypeContainer {
        background: #f8fafc;
        border-radius: 16px;
        padding: 1.5rem;
        margin-bottom: 2.5rem;
        border: 1px solid #e2e8f0;
        display: none; /* Hidden initially */
        animation: slideDown 0.3s ease-out;
    }

    @keyframes slideDown {
        from { opacity: 0; transform: translateY(-10px); }
        to { opacity: 1; transform: translateY(0); }
    }

    .subtype-grid {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        justify-content: center;
    }

    .subtype-btn {
        background: white;
        border: 1px solid #cbd5e1;
        padding: 10px 20px;
        border-radius: 50px;
        font-size: 0.95rem;
        color: #475569;
        cursor: pointer;
        transition: all 0.2s;
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .subtype-btn:hover {
        border-color: #3b82f6;
        color: #3b82f6;
    }

    .subtype-btn.active {
        background: #3b82f6;
        color: white;
        border-color: #3b82f6;
        box-shadow: 0 4px 10px rgba(59, 130, 246, 0.3);
    }

    /* --- 7. CF7 FORM STYLING --- */
    .wpcf7 {
        margin-top: 1rem;
    }

    .wpcf7 input[type="text"],
    .wpcf7 input[type="email"],
    .wpcf7 input[type="tel"],
    .wpcf7 textarea,
    .wpcf7 select {
        width: 100%;
        padding: 16px;
        background: #f8fafc;
        border: 2px solid #e2e8f0;
        border-radius: 12px;
        font-size: 1rem;
        color: #334155;
        margin-bottom: 1.5rem;
        transition: all 0.3s;
        font-family: inherit;
    }

    .wpcf7 input:focus,
    .wpcf7 textarea:focus {
        outline: none;
        border-color: #3b82f6;
        background: white;
        box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.1);
    }

    .wpcf7 input[type="submit"] {
        background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
        color: white;
        width: 100%;
        padding: 18px;
        border: none;
        border-radius: 12px;
        font-size: 1.1rem;
        font-weight: 700;
        cursor: pointer;
        transition: all 0.3s;
        box-shadow: 0 10px 25px rgba(37, 99, 235, 0.3);
    }

    .wpcf7 input[type="submit"]:hover {
        transform: translateY(-2px);
        box-shadow: 0 15px 35px rgba(37, 99, 235, 0.4);
    }

    /* Success/Error Messages */
    .wpcf7-response-output {
        border-radius: 12px;
        padding: 1rem !important;
        text-align: center;
        margin-top: 1rem;
        font-weight: 600;
    }
    .wpcf7 form.sent .wpcf7-response-output { background: #dcfce7; color: #166534; border: 1px solid #86efac; }
    .wpcf7 form.invalid .wpcf7-response-output { background: #fee2e2; color: #991b1b; border: 1px solid #fca5a5; }

    /* Custom Success Box (JS triggered) */
    .custom-success {
        display: none;
        background: #ecfdf5;
        border: 2px solid #34d399;
        padding: 2rem;
        border-radius: 16px;
        text-align: center;
        margin-bottom: 2rem;
    }
    .custom-success.show { display: block; animation: slideDown 0.5s; }
    .custom-success h3 { color: #059669; margin-bottom: 0.5rem; }

    /* --- 8. INFO GRID --- */
    .info-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        gap: 1.5rem;
    }

    .info-card {
        background: rgba(255, 255, 255, 0.15);
        border: 1px solid rgba(255, 255, 255, 0.25);
        padding: 1.5rem;
        border-radius: 16px;
        text-align: center;
        backdrop-filter: blur(10px);
        transition: transform 0.2s;
    }

    .info-card:hover { transform: translateY(-5px); background: rgba(255,255,255,0.2); }

    .info-icon { font-size: 2rem; margin-bottom: 0.5rem; display: block; }
    .info-title { font-weight: 700; margin-bottom: 0.5rem; font-size: 1.1rem; }
    .info-text { font-size: 0.9rem; opacity: 0.9; line-height: 1.4; }
    .info-link { color: #fff; text-decoration: underline; font-weight: 600; }

    @media (max-width: 768px) {
        .contact-title { font-size: 2.5rem; }
        .glass-card { padding: 1.5rem; }
        .main-container { padding: 2rem 1rem; }
        .type-grid { grid-template-columns: 1fr; }
    }
