/* SNDG Kontaktformular – transparenter Hintergrund, Verlauf der Sektion bleibt sichtbar */
.sndgk {
    --sndgk-label: #ffffff;
    --sndgk-field: #dfe0e3;
    --sndgk-field-text: #222222;
    --sndgk-option-text: #111111;
    --sndgk-box: rgba(255, 255, 255, .35);
    --sndgk-box-hover: rgba(255, 255, 255, .5);
    --sndgk-btn-from: #df4b9c;
    --sndgk-btn-to: #f1a84a;
    background: transparent;
    max-width: 954px;
    color: var(--sndgk-label);
}

.sndgk *,
.sndgk *::before,
.sndgk *::after { box-sizing: border-box; }

.sndgk-form { margin: 0; padding: 0; background: transparent; }

/* Zeilen */
.sndgk-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 20px;
}

.sndgk-group { margin: 0 0 14px; padding: 0; }
.sndgk-fieldset { border: 0; min-width: 0; }
.sndgk-fieldset + .sndgk-hp + input + input + .sndgk-submit,
.sndgk .sndgk-submit { margin-top: 8px; }
.sndgk-group--message { margin-top: 26px; margin-bottom: 16px; }

/* Labels */
.sndgk .sndgk-label {
    display: block;
    float: none;
    width: auto;
    margin: 0 0 6px;
    padding: 0;
    border: 0;
    color: var(--sndgk-label);
    font-size: 15px;
    font-weight: 300;
    line-height: 1.35;
    letter-spacing: .2px;
    text-transform: none;
}
.sndgk-req { margin-left: 6px; }
.sndgk-req--tight { margin-left: 0; }

/* Eingabefelder */
.sndgk input[type="text"],
.sndgk input[type="email"],
.sndgk textarea {
    display: block;
    width: 100%;
    max-width: none;
    height: 31px;
    margin: 0;
    padding: 4px 10px;
    border: 0;
    border-radius: 0;
    background: var(--sndgk-field);
    box-shadow: none;
    color: var(--sndgk-field-text);
    font: inherit;
    font-size: 15px;
    line-height: 1.4;
    outline: none;
    transition: box-shadow .15s ease;
}
.sndgk textarea {
    height: 135px;
    min-height: 80px;
    padding: 8px 10px;
    resize: vertical;
}
.sndgk input[type="text"]:focus,
.sndgk input[type="email"]:focus,
.sndgk textarea:focus { box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .9); }

/* Checkbox-Gruppen */
.sndgk-options {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 20px;
    row-gap: 24px;
    margin-top: 16px;
}

.sndgk .sndgk-check {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    margin: 0;
    padding: 0;
    cursor: pointer;
    color: var(--sndgk-option-text);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    font-weight: 400;
    line-height: 16px;
}
.sndgk .sndgk-check > span { padding-top: 5px; }
.sndgk .sndgk-check a { color: inherit; text-decoration: underline; }
.sndgk-check--privacy { margin-top: 12px !important; }

.sndgk .sndgk-check input[type="checkbox"] {
    -webkit-appearance: none;
    appearance: none;
    position: relative;
    flex: 0 0 27px;
    width: 27px;
    height: 27px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 3px;
    background: var(--sndgk-box);
    box-shadow: none;
    cursor: pointer;
    transition: background .15s ease, box-shadow .15s ease;
}
.sndgk .sndgk-check:hover input[type="checkbox"] { background: var(--sndgk-box-hover); }
.sndgk .sndgk-check input[type="checkbox"]:focus-visible { box-shadow: 0 0 0 2px #fff; outline: none; }
.sndgk .sndgk-check input[type="checkbox"]:checked::after {
    content: "";
    position: absolute;
    left: 9px;
    top: 4px;
    width: 8px;
    height: 14px;
    border: solid #fff;
    border-width: 0 3px 3px 0;
    transform: rotate(45deg);
}

/* Fehlermarkierung */
.sndgk .sndgk-invalid { box-shadow: inset 0 0 0 2px #fff, 0 0 0 2px rgba(120, 0, 40, .55) !important; }

/* Button */
.sndgk .sndgk-submit {
    display: inline-block;
    width: 168px;
    height: 46px;
    margin: 0;
    padding: 0 16px;
    border: 0;
    border-radius: 0;
    background: linear-gradient(90deg, var(--sndgk-btn-from) 0%, var(--sndgk-btn-to) 100%);
    box-shadow: none;
    color: #fff;
    font: inherit;
    font-size: 15px;
    font-weight: 400;
    line-height: 46px;
    text-align: center;
    text-transform: none;
    cursor: pointer;
    transition: filter .15s ease, transform .15s ease;
}
.sndgk .sndgk-submit:hover,
.sndgk .sndgk-submit:focus-visible { filter: brightness(1.08); outline: none; }
.sndgk .sndgk-submit:active { transform: translateY(1px); }
.sndgk .sndgk-submit:disabled { opacity: .7; cursor: wait; }

/* Meldungen */
.sndgk-msg {
    margin: 0 0 22px;
    padding: 14px 18px;
    border-left: 4px solid #fff;
    background: rgba(255, 255, 255, .18);
    color: #fff;
    font-size: 15px;
    line-height: 1.5;
}
.sndgk-msg--error { background: rgba(110, 0, 40, .25); }

/* Honeypot */
.sndgk-hp {
    position: absolute !important;
    left: -9999px !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* Responsive */
@media (max-width: 959px) {
    .sndgk-options { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 639px) {
    .sndgk-row,
    .sndgk-options { grid-template-columns: 1fr; }
    .sndgk-options { row-gap: 16px; }
}
