.salz-hh-registration {
    --salz-hh-reg-accent: #00A2C8;
    --salz-hh-reg-accent-soft: #00A2C81A;
    --salz-hh-reg-text: #263238;
    --salz-hh-reg-muted: #68747a;
    --salz-hh-reg-border: #d6e1e4;
    width: 100%;
    font-family: Verdana, Geneva, sans-serif;
    color: var(--salz-hh-reg-text);
}

.salz-hh-registration *,
.salz-hh-registration *::before,
.salz-hh-registration *::after {
    box-sizing: border-box;
}

.salz-hh-registration__form {
    display: grid;
    gap: 22px;
}

.salz-hh-registration__section {
    padding: 22px;
    border: 1px solid var(--salz-hh-reg-border);
    border-radius: 1px;
    background: #fff;
}

.salz-hh-registration__section > h2,
.salz-hh-registration--success h2 {
    margin: 0 0 18px !important;
    color: var(--salz-hh-reg-accent);
    font-size: clamp(1.08rem, 1rem + .25vw, 1.28rem);
    line-height: 1.3;
}

.salz-hh-form-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 14px;
}

.salz-hh-form-field {
    grid-column: span 4;
    min-width: 0;
}

.salz-hh-form-field--full {
    grid-column: 1 / -1;
}

.salz-hh-form-field--anrede {
    grid-column: span 2;
}

.salz-hh-form-field--street {
    grid-column: span 6;
}

.salz-hh-form-field--plz {
    grid-column: span 2;
}

.salz-hh-form-field label,
.salz-hh-registration__offers-title {
    display: block;
    margin: 0 0 6px;
    font-size: .86rem;
    font-weight: 600;
    color: var(--salz-hh-reg-text);
}

.salz-hh-form-field input[type="text"],
.salz-hh-form-field input[type="email"],
.salz-hh-form-field input[type="tel"],
.salz-hh-form-field input[type="file"],
.salz-hh-form-field select,
.salz-hh-form-field textarea {
    width: 100%;
    min-height: 42px;
    margin: 0;
    padding: 9px 11px;
    border: 1px solid #cbd7db;
    border-radius: 1px;
    background: #fff;
    color: var(--salz-hh-reg-text);
    font: inherit;
    line-height: 1.4;
}

.salz-hh-form-field textarea {
    resize: vertical;
}

.salz-hh-form-field input[type="file"] {
    min-height: auto;
    padding: 8px;
}

.salz-hh-form-field input:focus,
.salz-hh-form-field select:focus,
.salz-hh-form-field textarea:focus {
    outline: 2px solid #00A2C84D;
    outline-offset: 1px;
    border-color: var(--salz-hh-reg-accent);
}

.salz-hh-form-field small,
.salz-hh-choice-group__hint,
.salz-hh-registration__privacy-note,
.salz-hh-registration__media-note {
    display: block;
    margin-top: 5px;
    color: var(--salz-hh-reg-muted);
    font-size: .76rem;
    line-height: 1.45;
}

.salz-hh-choice-group,
.salz-hh-offer-group {
    min-width: 0;
    margin: 0 0 18px;
    padding: 0;
    border: 0;
}

.salz-hh-choice-group legend,
.salz-hh-offer-group legend {
    margin: 0;
    padding: 0;
    color: var(--salz-hh-reg-text);
    font-size: .88rem;
    font-weight: 600;
}

.salz-hh-choice-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 10px;
}

.salz-hh-choice-grid--categories {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.salz-hh-choice {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    min-height: 38px;
    padding: 8px 10px;
    border: 1px solid var(--salz-hh-reg-border);
    border-radius: 1px;
    background: #fff;
    font-size: .82rem;
    line-height: 1.35;
    cursor: pointer;
}

.salz-hh-choice:hover {
    border-color: var(--salz-hh-reg-accent);
    background: #00A2C80D;
}

.salz-hh-choice:has(input:checked) {
    border-color: var(--salz-hh-reg-accent);
    background: var(--salz-hh-reg-accent-soft);
    color: #007f9e;
}

.salz-hh-choice input {
    flex: 0 0 auto;
    margin-top: 2px;
    accent-color: var(--salz-hh-reg-accent);
}

.salz-hh-registration__offers {
    margin: 18px 0 22px;
    padding: 16px;
    border: 1px solid var(--salz-hh-reg-border);
    border-radius: 1px;
    background: var(--salz-hh-reg-accent-soft);
}

.salz-hh-offer-group {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid #c9dce1;
}

.salz-hh-offer-group[hidden] {
    display: none !important;
}

.salz-hh-upload-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.salz-hh-upload-grid .salz-hh-form-field {
    grid-column: auto;
}

.salz-hh-registration__media-note {
    margin: 16px 0 0;
    padding: 12px;
    border-left: 3px solid var(--salz-hh-reg-accent);
    background: #00A2C80D;
}

.salz-hh-registration__consent {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 14px;
    border: 1px solid var(--salz-hh-reg-border);
    border-radius: 1px;
    background: #fff;
    font-size: .82rem;
    line-height: 1.5;
}

.salz-hh-registration__consent input {
    flex: 0 0 auto;
    margin-top: 3px;
    accent-color: var(--salz-hh-reg-accent);
}

.salz-hh-registration a {
    color: var(--salz-hh-reg-accent);
}

.salz-hh-registration__submit {
    min-height: 42px;
    margin-top: 16px;
    padding: 9px 18px;
    border: 1px solid var(--salz-hh-reg-accent);
    border-radius: 1px;
    background: var(--salz-hh-reg-accent);
    color: #fff;
    font-family: Verdana, Geneva, sans-serif;
    font-size: .88rem;
    font-weight: 600;
    cursor: pointer;
}

.salz-hh-registration__submit:hover,
.salz-hh-registration__submit:focus {
    background: #fff;
    color: var(--salz-hh-reg-accent);
}

.salz-hh-registration__errors,
.salz-hh-registration--success,
.salz-hh-registration--error {
    margin: 0 0 20px;
    padding: 18px;
    border: 1px solid var(--salz-hh-reg-border);
    border-radius: 1px;
}

.salz-hh-registration__errors {
    border-left: 4px solid #b32d2e;
    background: #fff5f5;
}

.salz-hh-registration__errors ul {
    margin: 8px 0 0 20px;
}

.salz-hh-registration--success {
    border-left: 4px solid var(--salz-hh-reg-accent);
    background: var(--salz-hh-reg-accent-soft);
}

.salz-hh-registration__honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

@media (max-width: 900px) {
    .salz-hh-form-field,
    .salz-hh-form-field--anrede,
    .salz-hh-form-field--street,
    .salz-hh-form-field--plz {
        grid-column: span 6;
    }

    .salz-hh-form-field--full {
        grid-column: 1 / -1;
    }

    .salz-hh-choice-grid,
    .salz-hh-upload-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .salz-hh-registration__section {
        padding: 16px;
    }

    .salz-hh-form-grid {
        grid-template-columns: 1fr;
    }

    .salz-hh-form-field,
    .salz-hh-form-field--full,
    .salz-hh-form-field--anrede,
    .salz-hh-form-field--street,
    .salz-hh-form-field--plz {
        grid-column: 1 / -1;
    }

    .salz-hh-choice-grid,
    .salz-hh-choice-grid--categories,
    .salz-hh-upload-grid {
        grid-template-columns: 1fr;
    }
}


/* Öffentlicher Rich-Text-Editor */
.salz-hh-form-field--editor {
    grid-column: 1 / -1;
}

.salz-hh-form-field--editor .wp-editor-wrap {
    width: 100%;
    margin: 0;
}

.salz-hh-form-field--editor .wp-editor-container {
    border: 1px solid #cbd7db;
    border-radius: 1px;
    box-shadow: none;
}

.salz-hh-form-field--editor .mce-toolbar-grp,
.salz-hh-form-field--editor .quicktags-toolbar {
    background: #f7fafb;
}

.salz-hh-form-field--editor .mce-top-part::before {
    box-shadow: none;
}

.salz-hh-form-field--editor .mce-statusbar {
    border-top: 1px solid #d6e1e4;
}

.salz-hh-form-field--editor .wp-editor-area {
    border: 0 !important;
    font-family: Verdana, Geneva, sans-serif;
}


/* Automatische Bildoptimierung */
.salz-hh-upload-status {
    display: block;
    margin-top: 5px;
    color: #66757b;
    font-size: .72rem;
    line-height: 1.4;
}

.salz-hh-upload-status--error {
    color: #b32d2e;
}

.salz-hh-upload-status--warning {
    color: #8a5a00;
    font-weight: 600;
}
