.form-group input:focus, .form-group textarea:focus, .form-group select:focus {
    outline: none;
    border-color: var(--accent);
}
.kauf-knopfreihe + form .form-group {
    margin-bottom: var(--abstand-3);
}
.form-group {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.form-group label {
    font-size: var(--schrift-2);
    font-weight: 600;
    color: var(--text-muted);
}
.form-group input:not([type="checkbox"]):not([type="radio"]), .form-group textarea, .form-group select {
    width: 100%;
    padding: 12px;
    border-radius: var(--radius-1);
    font-family: inherit;
    font-size: 16px;
    line-height: var(--zeile-3);
    height: 48px;
}
.form-group textarea {
    height: auto;
    min-height: 48px;
}
.form-group textarea { 
    resize: vertical;
}
#kauf-checkout section > .form-group + .form-group {
    margin-top: var(--abstand-4);
}
.form-group:has([data-staffel-ab]) {
    margin-top: var(--abstand-5);
}
@media (min-width: 900px) {
.ausgaben-zeile > .form-group {
        margin-bottom: 0;
        flex: 0 0 auto;
    }
}
@media (min-width: 900px) {
.ausgaben-zeile > .form-group:has(#ag-kz) {
        flex: 1 1 14rem;
        min-width: 0;
    }
}
@media (min-width: 900px) {
.ausgaben-zeile > .form-group:has(#ag-bez) {
        flex: 2 1 14rem;
    }
}
.field-grid > .form-group {
    flex: 1 1 170px;
    min-width: 0;
}
.form-group label.kauf-verzicht { display: flex; align-items: flex-start; gap: var(--abstand-2); font-size: var(--schrift-3); font-weight: 400; color: var(--text); line-height: var(--zeile-3); cursor: pointer; }
.kasse-schritt-wahl > .form-group { flex: 1 1 auto; }
.kasse-filter-segment > .form-group { flex: 1 1 5rem; }
.form-group.sprachwahl-zeile { flex-direction: row; justify-content: flex-start; flex-wrap: wrap; }
