/* Formular-Variante "Kontaktformular mit Infobereich" (Template ContactForm.html). Tokens: base.css */
.kb-contact {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 2rem;
    align-items: start;
}

.kb-contact__form {
    min-width: 0;
    padding: clamp(1.625rem, 4vw, 2.75rem);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
}

.kb-contact__form fieldset {
    margin: 0;
    padding: 0;
    border: 0;
}

.kb-contact__form .form-group {
    margin-bottom: 1.25rem;
}

.kb-contact__form .row {
    --bs-gutter-x: 1.25rem;
}

.kb-contact__form .form-label {
    margin-bottom: .5rem;
    font-size: .90625rem;
    font-weight: 600;
}

.kb-contact__form :where(input:not([type=checkbox], [type=radio], [type=hidden]), textarea, select) {
    width: 100%;
    max-width: 100%;
    padding: .75rem .875rem;
    border: 1px solid var(--color-border-strong); /* stärker als die Vorlage: Feldgrenze bleibt wahrnehmbar (3,8:1) */
    border-radius: var(--radius-sm);
    background: var(--color-bg);
    color: var(--color-text);
    font-size: 1rem; /* 16px verhindert Auto-Zoom auf iOS */
}

.kb-contact__form textarea {
    min-height: 7.5rem;
    resize: vertical;
}

.kb-contact__form :is(.form-check, .form-check-wrapping-label) {
    display: flex;
    gap: .625rem;
    align-items: flex-start;
    min-height: 2.75rem;
    padding-left: 0;
}

.kb-contact__form .form-check-input {
    flex-shrink: 0;
    width: 1.0625rem;
    height: 1.0625rem;
    margin: .3125rem 0 0;
    border-color: var(--color-border-strong);
}

.kb-contact__form .form-check-input:checked {
    border-color: var(--color-primary);
    background-color: var(--color-primary);
}

.kb-contact__form .form-check-label {
    flex: 1;
    min-width: 0;
    color: var(--color-text-muted);
    font-size: .875rem;
    line-height: 1.6;
}

.kb-contact__form .form-check-label p {
    margin: 0;
}

.kb-contact__form [aria-invalid=true] {
    border-color: var(--color-danger);
}

.kb-contact__form [role=alert][id$="-errors"] {
    display: block;
    margin-top: .375rem;
    color: var(--color-danger);
    font-size: .875rem;
}

.kb-contact__form .form-actions {
    margin-top: 1.5rem;
}

.kb-contact__info {
    min-width: 0;
    padding: 1.75rem;
    border-radius: var(--radius-lg);
    background: var(--color-primary-tint);
}

.kb-contact__info :is(h2, h3) {
    margin: 0 0 .875rem;
    font-size: 1.0625rem;
}

.kb-contact__info a {
    overflow-wrap: anywhere; /* lange E-Mail-Adressen */
    font-weight: 600;
}

.kb-contact__info a[href^="mailto:"] {
    display: inline-flex;
    align-items: center;
    gap: .625rem;
}

.kb-contact__info a[href^="mailto:"]::before {
    content: "";
    flex: 0 0 1.25rem;
    height: 1.25rem;
    background: url('../Icons/mail.svg') center / contain no-repeat;
}

.kb-contact__info ul {
    margin: 1.375rem 0 0;
    padding: 0;
    list-style: none;
}

.kb-contact__info li {
    display: flex;
    align-items: flex-start;
    gap: .625rem;
    color: var(--color-text-muted);
    font-size: .90625rem;
    line-height: 1.6;
}

.kb-contact__info li + li {
    margin-top: .875rem;
}

.kb-contact__info li::before {
    content: "";
    flex: 0 0 .9375rem;
    height: .9375rem;
    margin-top: .25rem;
    background: url('../Icons/check.svg') center / contain no-repeat;
}

@media (min-width: 992px) {
    .kb-contact {
        grid-template-columns: minmax(0, 1fr) 21.25rem;
        gap: 2.5rem;
    }
}
