.contact-layout {
        display: grid;
        gap: 1.5rem;
        align-items: start;
    }

    @media (min-width: 1024px) {
        .contact-layout {
            grid-template-columns: minmax(0, 1.7fr) minmax(18rem, 1fr);
        }
    }

    .contact-form-stack > * + * {
        margin-top: 1.5rem;
    }

    .contact-topic-grid {
        display: grid;
        gap: 0.85rem;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    @media (min-width: 640px) {
        .contact-topic-grid {
            grid-template-columns: repeat(3, minmax(0, 1fr));
        }
    }

    .contact-topic-button {
        display: flex;
        flex-direction: column;
        gap: 0.55rem;
        width: 100%;
        min-height: 8.25rem;
        padding: 1.1rem;
        border: 1px solid var(--general-panel-border, #e2e8f0);
        border-radius: 1.25rem;
        background: var(--general-panel-bg, #ffffff);
        color: var(--general-text-primary, #111827);
        text-align: left;
        transition: border-color 180ms ease, background-color 180ms ease, transform 180ms ease;
    }

    .contact-topic-button:hover,
    .contact-topic-button:focus-visible {
        outline: none;
        background: var(--general-panel-alt-bg, #f1f5f9);
        border-color: color-mix(in srgb, var(--general-panel-border, #e2e8f0) 56%, var(--general-link-color, #1d4ed8) 44%);
    }

    .contact-topic-button.is-active {
        background: color-mix(in srgb, var(--general-panel-alt-bg, #f1f5f9) 74%, var(--general-link-color, #1d4ed8) 26%);
        border-color: color-mix(in srgb, var(--general-panel-border, #e2e8f0) 46%, var(--general-link-color, #1d4ed8) 54%);
    }

    .contact-topic-icon {
        width: 1.75rem;
        height: 1.75rem;
        color: var(--general-text-primary, #111827);
    }

    .contact-field-grid {
        display: grid;
        gap: 1rem;
    }

    @media (min-width: 640px) {
        .contact-field-grid {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }
    }

    .contact-label {
        display: block;
        margin-bottom: 0.45rem;
        font-size: 0.92rem;
        font-weight: 600;
        color: var(--general-text-primary, #111827);
    }

    .contact-required {
        color: #dc2626;
    }

    .contact-control {
        box-sizing: border-box;
        width: 100%;
        min-width: 0;
        padding: 0.92rem 1rem;
        border: 1px solid var(--general-panel-border, #e2e8f0);
        border-radius: 1.35rem;
        background: var(--general-panel-bg, #ffffff);
        color: var(--general-text-primary, #111827);
        box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
        transition: border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
    }

    .contact-control::placeholder {
        color: var(--general-text-muted, #6b7280);
        opacity: 1;
    }

    .contact-control:focus,
    .contact-control:focus-visible {
        outline: none;
        border-color: var(--general-panel-border, #e2e8f0);
        background: var(--general-panel-bg, #ffffff);
        box-shadow: 0 0 0 3px color-mix(in srgb, var(--general-panel-alt-bg, #f1f5f9) 88%, transparent);
    }

    .contact-textarea {
        min-height: 10rem;
        border-radius: 1.5rem;
        resize: vertical;
    }

    .contact-feedback {
        margin-top: 0.45rem;
        font-size: 0.8rem;
        color: #dc2626;
    }

    .contact-status {
        display: flex;
        align-items: flex-start;
        gap: 0.85rem;
        padding: 1rem 1.1rem;
        border-radius: 1.1rem;
        border: 1px solid var(--general-panel-border, #e2e8f0);
        background: var(--general-panel-alt-bg, #f1f5f9);
    }

    .contact-status--success {
        background: color-mix(in srgb, var(--general-panel-alt-bg, #f1f5f9) 84%, #16a34a 16%);
        border-color: color-mix(in srgb, var(--general-panel-border, #e2e8f0) 62%, #16a34a 38%);
    }

    .contact-status--error {
        background: color-mix(in srgb, var(--general-panel-alt-bg, #f1f5f9) 84%, #dc2626 16%);
        border-color: color-mix(in srgb, var(--general-panel-border, #e2e8f0) 62%, #dc2626 38%);
    }

    .contact-status svg {
        flex-shrink: 0;
        margin-top: 0.1rem;
    }

    .contact-deflection {
        margin-top: 1rem;
        padding: 1.15rem;
        border: 1px solid color-mix(in srgb, var(--general-panel-border, #e2e8f0) 54%, var(--general-link-color, #1d4ed8) 46%);
        border-radius: 1.25rem;
        background: color-mix(in srgb, var(--general-panel-alt-bg, #f1f5f9) 86%, var(--general-link-color, #1d4ed8) 14%);
    }

    .contact-deflection-list {
        display: flex;
        flex-direction: column;
        gap: 0.75rem;
        margin-top: 1rem;
    }

    .contact-deflection-link {
        display: flex;
        align-items: flex-start;
        gap: 0.65rem;
        padding: 0.9rem 1rem;
        border: 1px solid var(--general-panel-border, #e2e8f0);
        border-radius: 1rem;
        background: var(--general-panel-bg, #ffffff);
        color: var(--general-text-primary, #111827);
        transition: background-color 180ms ease, border-color 180ms ease;
    }

    .contact-deflection-link:hover,
    .contact-deflection-link:focus-visible {
        outline: none;
        background: var(--general-panel-alt-bg, #f1f5f9);
        border-color: color-mix(in srgb, var(--general-panel-border, #e2e8f0) 56%, var(--general-link-color, #1d4ed8) 44%);
    }

    .contact-deflection-actions,
    .contact-action-row {
        display: flex;
        flex-wrap: wrap;
        gap: 0.75rem;
    }

    .contact-action-row {
        margin-top: 1rem;
    }

    .contact-submit-caption {
        margin-top: 0.75rem;
        text-align: center;
        font-size: 0.8rem;
        color: var(--general-text-muted, #6b7280);
    }

    .contact-sidebar-stack > * + * {
        margin-top: 1rem;
    }

    .contact-inline-link {
        color: var(--general-link-color, #1d4ed8);
        text-decoration: underline;
        text-underline-offset: 0.16em;
    }

    .contact-kicker {
        display: inline-flex;
        align-items: center;
        gap: 0.45rem;
        margin-bottom: 0.85rem;
        padding: 0.45rem 0.9rem;
        border: 1px solid var(--general-panel-border, #e2e8f0);
        border-radius: 999px;
        background: var(--general-panel-alt-bg, #f1f5f9);
        color: var(--general-text-secondary, #374151);
        font-size: 0.78rem;
        font-weight: 600;
        letter-spacing: 0.08em;
        text-transform: uppercase;
    }

    .contact-submit-button:disabled {
        opacity: 0.55;
        cursor: not-allowed;
        pointer-events: none;
    }

    .contact-answer-button {
        --general-button-bg: #111827;
        --general-button-border: #111827;
        --general-button-text: #ffffff;
        --general-button-hover-bg: #0f172a;
        --general-button-hover-border: #0f172a;
        --general-button-hover-text: #ffffff;
    }

    .contact-newsletter-form {
        display: flex;
        flex-wrap: wrap;
        gap: 0.75rem;
    }

    .contact-note {
        font-size: 0.92rem;
        line-height: 1.65;
        color: var(--general-text-secondary, #374151);
    }

    .contact-note strong {
        color: var(--general-text-primary, #111827);
    }

    .contact-topic-copy {
        color: var(--general-text-secondary, #374151);
        line-height: 1.45;
    }

    .htmx-indicator {
        display: none;
    }

    .htmx-request .htmx-indicator,
    .htmx-request.htmx-indicator {
        display: inline-flex;
    }

    [x-cloak] {
        display: none !important;
    }

    .medidesk-contact-form [hidden] { display: none !important; }
    .contact-topic-button { position: relative; cursor: pointer; }
    .contact-topic-radio {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
    }
    .contact-topic-button:has(input:checked) {
        background: color-mix(in srgb, var(--general-panel-alt-bg, #f1f5f9) 74%, var(--general-link-color, #1d4ed8) 26%);
        border-color: color-mix(in srgb, var(--general-panel-border, #e2e8f0) 46%, var(--general-link-color, #1d4ed8) 54%);
    }
    .contact-topic-button:has(input:focus-visible) {
        outline: 2px solid var(--general-link-color, #1d4ed8);
        outline-offset: 3px;
    }
    .contact-control:disabled { opacity: 1; color: var(--general-text-secondary, #374151); }
    details.contact-deflection-link { display: block; }
    .medidesk-contact-form--portal {
        --general-panel-bg: var(--portal-panel-bg, #ffffff);
        --general-panel-alt-bg: var(--portal-panel-alt-bg, #f3f4f6);
        --general-panel-border: var(--portal-panel-border, #e5e7eb);
        --general-text-primary: var(--portal-text-primary, #111827);
        --general-text-secondary: var(--portal-text-secondary, #374151);
        --general-text-muted: var(--portal-text-muted, #6b7280);
        --general-link-color: var(--portal-link-color, #9e163c);
    }
    .medidesk-contact-form--portal .contact-submit-caption { text-align: left; }
    @media (max-width: 639px) {
        .medidesk-contact-form--portal .contact-topic-grid { grid-template-columns: minmax(0, 1fr); }
        .medidesk-contact-form--portal .contact-topic-button {
            display: grid;
            grid-template-columns: 1.75rem minmax(0, 1fr);
            gap: 0.4rem 0.75rem;
            min-height: 0;
            padding: 0.875rem;
        }
        .medidesk-contact-form--portal .contact-topic-icon { grid-row: 1 / span 2; }
        .medidesk-contact-form--portal .contact-topic-copy { grid-column: 2; overflow-wrap: anywhere; }
    }

/* Art.-13-Hinweis unter dem Absenden-Knopf.
   Eigene Regel statt Tailwind-Utilities: `deploy-dev.sh` baut output.css nicht
   neu, neue Utility-Klassen fehlen dort also. Und linksbündig statt zentriert —
   ein dreiabsätziger Rechtstext liest sich mittig nicht. */
.contact-privacy-note {
    margin-top: 1rem;
    text-align: left;
    font-size: 0.78rem;
    line-height: 1.5;
    color: var(--general-text-muted, #6b7280);
}

.contact-privacy-note p + p { margin-top: 0.5rem; }

.contact-privacy-note a {
    text-decoration: underline;
    color: inherit;
}
