/* ============================================================================================
   harzpartner.css - Stylesheet des Partnerbereichs (Harzpartner). Wird NUR auf der Site
   "harzpartner" geladen, zusätzlich zu plugins.css + harzspots.css (gemeinsame Basis mit
   Harzspots/Heidespots). Harzjobs-CSS wird hier nicht geladen.

   Aufbau:
     1. Raleway (selbst gehostet, DSGVO)
     2. Partner-Login (Login, Übersicht, Logout, Passwort vergessen)
     3. Partner-Theme (Harzspots-Look, Meldungen, Hilfetext-Panel, Formulare)
     4. Basis (Variablen, Reset, Buttons, Text-Elemente) - früher indirekt aus harzjobs.css geerbt
   ============================================================================================ */

/* ---- 1. Raleway (Gewichte 500/600/700/800) ----
   Das Gewicht 400 liefert plugins.css (@import /fileadmin/fonts/fonts.css, Raleway v27, gilt für alle Zeichen). Es hier
   erneut zu definieren würde es überschreiben (spätere @font-face gewinnt) und die Schrift minimal verändern.
   Selbst gehostet (DSGVO), kein Google-CDN. */
@font-face {
    font-family: 'Raleway';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../Fonts/raleway-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Raleway';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('../Fonts/raleway-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Raleway';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../Fonts/raleway-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Raleway';
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url('../Fonts/raleway-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Raleway';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../Fonts/raleway-latinext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: 'Raleway';
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url('../Fonts/raleway-latinext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ---- 2. Partner-Login (ehem. FeLogin/partner-login.css) ---- */
/* Partnerbereich-Login (Site harzpartner). Alles unter .pl-* gescoped. */

.pl-shell,
.pl-hub {
    --pl-green: #5f7d1e;
    --pl-green-dark: #2b3910;
    --pl-green-soft: #eef3e2;
    --pl-ink: #1f2a10;
    --pl-muted: #667085;
    --pl-line: #dfe5d3;
    font-family: inherit;
    color: var(--pl-ink);
}

/* ---------- Zwei-Spalten-Karte ---------- */
.pl-shell {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    margin: 2.5rem auto 3.5rem;
    max-width: 1080px;
    border-radius: 24px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 14px 34px rgba(31, 42, 16, .18), 0 2px 6px rgba(31, 42, 16, .08);
}

.pl-shell-narrow {
    grid-template-columns: 1fr;
    max-width: 520px;
}

/* ---------- Linke Marken-Spalte ---------- */
.pl-brand {
    position: relative;
    padding: 3rem 2.75rem;
    color: #fff;
    background:
        radial-gradient(120% 80% at 100% 0%, rgba(255, 255, 255, .14), transparent 55%),
        linear-gradient(155deg, var(--pl-green) 0%, var(--pl-green-dark) 100%);
}

.pl-eyebrow {
    display: inline-block;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    padding: .35rem .8rem;
    border-radius: 99px;
    background: rgba(255, 255, 255, .16);
}

.pl-shell .pl-brand h1 {
    text-shadow: none !important;
    color: #fff !important;
    margin: 1.1rem 0 .8rem;
    font-size: clamp(1.7rem, 2.6vw, 2.35rem);
    line-height: 1.15;
    font-weight: 800;
    color: #fff;
}

.pl-lead {
    margin: 0 0 1.4rem;
    font-size: 1.05rem;
    line-height: 1.55;
    opacity: .92;
}

.pl-checks {
    list-style: none;
    margin: 0 0 2rem;
    padding: 0;
    display: grid;
    gap: .65rem;
}

.pl-checks li {
    position: relative;
    padding-left: 1.9rem;
    line-height: 1.45;
}

.pl-checks li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .15rem;
    width: 1.2rem;
    height: 1.2rem;
    border-radius: 50%;
    background: rgba(255, 255, 255, .22) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center/70% no-repeat;
}

.pl-portals {
    display: grid;
    gap: .8rem;
}

.pl-portal {
    display: flex;
    align-items: center;
    gap: .9rem;
    padding: .95rem 1.1rem;
    border-radius: 16px;
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .22);
    color: #fff;
    text-decoration: none;
    transition: background .18s, transform .18s;
}

.pl-portal:hover {
    background: rgba(255, 255, 255, .22);
    transform: translateY(-2px);
    color: #fff;
}

.pl-portal-icon {
    flex: none;
    display: grid;
    place-items: center;
    width: 2.7rem;
    height: 2.7rem;
    border-radius: 12px;
    background: #fff;
    color: var(--pl-green);
}

.pl-portal-text {
    flex: 1;
    display: grid;
    gap: .15rem;
}

.pl-portal-text strong {
    font-size: 1.02rem;
}

.pl-portal-text small {
    font-size: .84rem;
    opacity: .85;
    line-height: 1.35;
}

.pl-portal-arrow {
    font-size: 1.3rem;
    transition: transform .18s;
}

.pl-portal:hover .pl-portal-arrow {
    transform: translateX(4px);
}

/* ---------- Rechte Formular-Spalte ---------- */
.pl-panel {
    padding: 3rem 2.75rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: #919395;
}

.pl-shell .pl-panel h2 {
    margin: 0 0 .4rem;
    font-size: 1.75rem;
    font-weight: 800;
    color: #fff !important;
    text-shadow: none !important;
}

.pl-sub {
    margin: 0 0 1.6rem;
    color: #fff;
    line-height: 1.5;
}

.pl-field {
    margin-bottom: 1.1rem;
}

.pl-field label,
.pl-check label {
    display: block;
    margin-bottom: .4rem;
    font-size: .9rem;
    font-weight: 600;
    color: #fff;
}

.pl-field input {
    width: 100%;
    height: 3rem;
    padding: 0 1rem;
    border: 1px solid var(--pl-line);
    border-radius: 12px;
    background: #fff;
    font-size: 1rem;
    color: var(--pl-ink);
    transition: border-color .15s, box-shadow .15s, background .15s;
}

.pl-field input:focus {
    outline: none;
    background: #fff;
    border-color: var(--pl-green);
    box-shadow: 0 0 0 4px rgba(95, 125, 30, .18);
}

.pl-check {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin-bottom: 1.2rem;
}

.pl-check label {
    margin: 0;
    font-weight: 500;
}

.pl-check input {
    width: 1.05rem;
    height: 1.05rem;
    accent-color: var(--pl-green);
}

.pl-submit {
    display: block;
    width: 100%;
    margin-top: .4rem;
    padding: .6rem .75rem;
    font-size: 1rem;
    line-height: 1.5;
    font-weight: 400;
    color: #fff;
    cursor: pointer;
    background-color: #3a3f44;
    background-image: linear-gradient(#52565a, #3a3f44 60%, #353a3f);
    border: 1px solid #3a3f44;
    border-radius: .25rem;
}

.pl-submit:hover,
.pl-submit:focus {
    background-color: #31363a;
    border-color: #2e3236;
}

.pl-submit:focus {
    outline: none;
    box-shadow: 0 0 0 .25rem rgba(88, 92, 96, .5);
}

.pl-submit-ghost {
    background: transparent;
    background-image: none;
    color: #eef0f4;
    border-color: rgba(255, 255, 255, .35);
}

.pl-submit-ghost:hover,
.pl-submit-ghost:focus {
    background: rgba(255, 255, 255, .08);
    border-color: #fff;
}

.pl-forgot {
    margin: 1rem 0 0;
    text-align: center;
}

.pl-bottom {
    margin: 1.6rem 0 0;
    padding-top: 1.3rem;
    border-top: 1px solid rgba(255, 255, 255, .35);
    text-align: center;
    color: #000;
}

.pl-shell a:not(.pl-portal) {
    color: #4f671d;
    font-weight: 600;
    text-decoration: none;
}

.pl-shell a:not(.pl-portal):hover,
.pl-hub a.pl-link:hover {
    text-decoration: underline;
}

.pl-hub a.pl-link {
    color: #cfe3a0;
    font-weight: 600;
    text-decoration: none;
}

.pl-alert {
    margin-bottom: 1.2rem;
    padding: .8rem 1rem;
    border-radius: 12px;
    background: #fdeceb;
    color: #9b1c14;
    border: 1px solid #f6c9c5;
    font-size: .93rem;
}

.pl-alert-info {
    background: #eef4fd;
    color: #1d3e72;
    border-color: #c9dbf6;
}

.pl-hub .pl-alert {
    max-width: 640px;
    margin: 0 auto 1.4rem;
    text-align: left;
}

/* ---------- Angemeldet (Übersicht) ---------- */
.pl-hub {
    max-width: 1000px;
    margin: 2.5rem auto 3.5rem;
    text-align: center;
}

.pl-hub .pl-eyebrow {
    color: #cfe3a0;
    background: rgba(255, 255, 255, .1);
}

.pl-hub h1 {
    text-shadow: none !important;
    color: #ccc !important;
    margin: 1rem 0 .5rem;
    font-size: clamp(1.7rem, 3vw, 2.4rem);
    font-weight: 800;
}

.pl-hub .pl-lead {
    color: #aab0ba;
    opacity: 1;
}

.pl-tiles {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 290px));
    justify-content: center;
    align-items: start;
    gap: 1rem;
    margin: 1.8rem 0 1.4rem;
}

.pl-tile {
    display: grid;
    gap: .8rem;
    padding: 1.5rem 1.4rem;
    text-align: left;
    background: #919395;
    border: 1px solid rgba(255, 255, 255, .25);
    border-radius: 18px;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .25);
    transition: transform .18s, box-shadow .18s, border-color .18s;
}

.pl-tile:hover {
    transform: translateY(-3px);
    border-color: #fff;
    box-shadow: 0 14px 30px rgba(0, 0, 0, .4);
}

.pl-hub a.pl-tile-title {
    font-size: 1.2rem;
    font-weight: 800;
    color: #fff;
    text-decoration: none;
}

.pl-hub a.pl-tile-title:hover {
    text-decoration: underline;
}

.pl-tile-sub {
    list-style: none;
    margin: 0;
    padding: .8rem 0 0;
    display: grid;
    gap: .45rem;
    border-top: 1px solid rgba(255, 255, 255, .35);
}

.pl-tile-sub a {
    position: relative;
    padding-left: 1.1rem;
    color: #000;
    text-decoration: none;
}

.pl-tile-sub a::before {
    content: "\203A";
    position: absolute;
    left: 0;
    top: -.05rem;
    font-weight: 700;
}

.pl-tile-sub a:hover {
    color: #fff;
}

.pl-portals-inline {
    display: flex;
    justify-content: center;
    gap: 1.6rem;
    flex-wrap: wrap;
}

.pl-logout {
    max-width: 220px;
    margin: 1.8rem auto 0;
}

/* ---------- Responsive ---------- */
@media (max-width: 860px) {
    .pl-shell {
        grid-template-columns: 1fr;
        margin: 1rem 0 2rem;
        border-radius: 18px;
    }

    .pl-panel {
        order: -1;
        padding: 2rem 1.4rem;
    }

    .pl-brand {
        padding: 2rem 1.4rem;
    }

    .pl-tiles {
        grid-template-columns: 1fr;
    }
}

/* ---- 3. Partner-Theme (ehem. Partner/partner-theme.css) ---- */
/*
 * Partner-Site (harzpartner): Harzspots-Look statt HarzJobs-Look.
 * harzjobs.css wird auf allen Sites geladen und setzt einen hellen Hintergrund, dunkle Schrift und
 * blaue Buttons. Hier: Hintergrund #272b30 und Harzspots-Buttons (wie auf der Harzspots-Hauptseite).
 * Die HarzJobs-Farbvariablen werden auf ihre Dark-Werte gesetzt, damit deren Komponenten lesbar bleiben.
 */
html:root:root {
    --ink: #ccc;
    /* Standard-Schriftfarbe wie im Original (harzspots.com) */
    --ink-2: #c4c8d1;
    --ink-3: #9298a4;
    --paper: #272b30;
    --card: #1d1d20;
    --line: #2e2e33;
}

/*
 * Hintergrund #272b30 nur für Login, Übersicht nach dem Login und die Registrierung (Partner werden / Passwort setzen).
 * Alle anderen Seiten übernehmen den Standard (--paper oben); die Spot-Bearbeiten-/-Erstellen-Seiten behalten wie auf
 * harzspots.com ihren helleren Hintergrund #363d46 aus ManageSpots/main.css.
 */
html body:has(.pl-shell, .pl-hub, #StProgressBarregprogress) {
    background-color: #272b30;
}

/* Button allgemein: btn-primary wie auf harzspots.com */
html body .btn-primary {
    display: inline-block;
    height: auto;
    padding: .375rem .75rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: #fff;
    background-color: #3a3f44;
    background-image: linear-gradient(#52565a, #3a3f44 60%, #353a3f);
    border: 1px solid #3a3f44;
    border-radius: .25rem;
    box-shadow: none;
}

html body .btn-primary:hover,
html body .btn-primary:active,
html body .btn-primary:focus {
    color: #fff;
    background-color: #31363a;
    background-image: linear-gradient(#52565a, #3a3f44 60%, #353a3f);
    border-color: #2e3236;
}

html body .btn-primary:focus {
    box-shadow: 0 0 0 .25rem rgba(88, 92, 96, .5);
}

/* harzjobs.css hebt Buttons beim Hover per transform an. Buttons, die sich per transform zentrieren
   (Spot-Fortschritt-Leiste), müssen ihre Zentrierung behalten. */
html body .btn-primary:not(.spotFort-LinkButton):hover {
    transform: none;
}

html body .btn-primary.spotFort-LinkButton:hover {
    transform: translateY(-50%);
}

/* Untermenüpunkte der Navigation: helles Grau statt Schwarz (plugins.css setzt #000 !important) */
html body .dropdown-item {
    color: #c4c8ce !important;
    text-shadow: none;
}

/* Aktiver Untermenüpunkt sieht aus wie die übrigen (Text und Hintergrund wie bei "Downloads"); core.css/plugins.css färben .active sonst weiß auf dunkel */
html body .dropdown-item.active,
html body .dropdown-item:active {
    color: #c4c8ce !important;
    background-color: transparent;
}

html body .dropdown-item:hover,
html body .dropdown-item:focus,
html body .dropdown-item.active:hover {
    color: #fff !important;
    background-color: rgba(255, 255, 255, 0.15);
}

/* Spot/Event erstellen und bearbeiten: alle Buttons unter den Formularen (Zurück, Speichern, Daten übernehmen,
   Speichern & Weiter, Jetzt Inhalte eintragen, ...) größer und heller, damit sie sich vom Hintergrund (#363d46) abheben */
html body :is(#SpotBearbeitenForm, #SpotErstellenForm, #EventBearbeitenForm, #EventErstellenForm) :is(input.btn[type="button"], a.btn.btn-primary:not(.btn-sm)) {
    font-size: 1.125rem;
    line-height: 1.3;
    padding: 0.75rem 2rem;
    min-width: 11rem;
    margin-right: 0.5rem;
    color: #fff;
    background-color: #4a4f55;
    background-image: linear-gradient(#6c7278, #4a4f55 60%, #3f444a);
    border-color: #6b7178;
}

html body :is(#SpotBearbeitenForm, #SpotErstellenForm, #EventBearbeitenForm, #EventErstellenForm) :is(input.btn[type="button"], a.btn.btn-primary:not(.btn-sm)):hover:not(:disabled),
html body :is(#SpotBearbeitenForm, #SpotErstellenForm, #EventBearbeitenForm, #EventErstellenForm) :is(input.btn[type="button"], a.btn.btn-primary:not(.btn-sm)):focus:not(:disabled) {
    background-color: #565b61;
    background-image: linear-gradient(#7a8087, #565b61 60%, #4b5056);
    border-color: #7b8188;
}

/* Schließen-Kreuz der Modals: die Modals sind dunkel, das Standard-Icon ist schwarz (wie .btn-close-white) */
html body .modal-header .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

/*
 * harzjobs.css nutzt ".nav" für die HarzJobs-Kopfzeile (height: 68px; gap: 28px; align-items: center).
 * Das trifft jedes Bootstrap-.nav (Tabs) und nagelte z. B. die Tab-Leiste bei "Ausstattung / Merkmale" auf 68px Höhe fest.
 */
html body .nav {
    height: auto;
    gap: 0;
    align-items: normal;
}

/* HarzJobs-Bereich (Jobformular): Fortschrittsbalken grün statt Standard-Grau */
#jobFormProgressBar {
    background-color: #4f671d;
}

/* "Zurück"/"Abbrechen" (Job-/Firmenprofil-Formular) und "Bearbeiten"/"Löschen" (Job-/Firmen-Liste): einheitliches
   helles Grau statt der zu dunklen bzw. der abweichenden blauen/roten Bootstrap-Standardfarben */
html body :is(.btn-outline-secondary, .stjobs-list-action) {
    color: #c4c8ce;
    border-color: #6b7178;
    background-color: transparent;
}

html body :is(.btn-outline-secondary, .stjobs-list-action):hover,
html body :is(.btn-outline-secondary, .stjobs-list-action):focus {
    color: #fff;
    background-color: #4a4f55;
    border-color: #8a9098;
}

html body :is(.btn-outline-secondary, .stjobs-list-action):focus {
    box-shadow: 0 0 0 .2rem rgba(140, 145, 152, .35);
}

/* Benachrichtigungen im HarzJobs-Bereich (Job-/Firmenprofil-Formular): oben rechts fixiert statt
   seitenbreit im Textfluss, weicherer Farbton statt des kräftigen Bootstrap-Rot/-Grün. Verschwinden
   nach 10s automatisch (siehe JobManageForm.js / FirmenprofilSpeichern.js). */
html body :is(#jobLiveAlertArea, #liveAlertArea) {
    position: fixed;
    /* unterhalb der fixierten Hauptnavigation: --stjobs-nav-offset setzt StjobsShared.js auf deren aktuelle Höhe */
    top: calc(var(--stjobs-nav-offset, 6.5rem) + .75rem);
    right: 1rem;
    z-index: 2000;
    display: flex;
    flex-direction: column;
    gap: .5rem;
    width: min(24rem, calc(100vw - 2rem));
}

html body :is(#jobLiveAlertArea, #liveAlertArea) .alert {
    color: #fff;
    box-shadow: 0 .5rem 1.25rem rgba(0, 0, 0, .35);
}

html body :is(#jobLiveAlertArea, #liveAlertArea) .alert-success {
    background-color: #4f671d;
}

html body :is(#jobLiveAlertArea, #liveAlertArea) .alert-danger {
    background-color: #a33a3a;
}

html body :is(#jobLiveAlertArea, #liveAlertArea) .alert-warning {
    background-color: #a6790a;
}

html body :is(#jobLiveAlertArea, #liveAlertArea) .alert-info {
    background-color: #3d6a8a;
}

/* Firmenprofil: Logo-Upload als Dropzone-Kachel mit Anforderungsliste daneben, statt eines nackten
   <input type="file">. Der Datei-Input selbst bleibt unverändert (id="logo"), nur unsichtbar; das Label
   triggert ihn nativ per Klick. */
.stjobs-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.stjobs-logo-picker {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 1.5rem;
}

.stjobs-logo-dropzone {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    width: 11rem;
    height: 11rem;
    flex: 0 0 auto;
    padding: 1rem;
    border: 2px dashed #4a4f55;
    border-radius: .5rem;
    background-color: #1d2126;
    color: #9298a4;
    text-align: center;
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}

.stjobs-logo-dropzone svg {
    color: #6b7178;
    transition: color .15s ease;
}

.stjobs-logo-dropzone:hover,
.stjobs-logo-dropzone:focus-visible {
    border-color: #8a9098;
    background-color: #262b31;
    color: #c4c8ce;
}

.stjobs-logo-dropzone:hover svg,
.stjobs-logo-dropzone:focus-visible svg {
    color: #c4c8ce;
}

.stjobs-logo-dropzone-title {
    font-weight: 700;
    color: #e6e8eb;
}

.stjobs-logo-dropzone-hint {
    font-size: .8125rem;
    line-height: 1.3;
}

.stjobs-logo-requirements {
    flex: 1 1 16rem;
    min-width: 16rem;
    margin: 0;
    padding-top: .25rem;
}

.stjobs-logo-requirements li {
    display: flex;
    align-items: flex-start;
    gap: .625rem;
    margin-bottom: .625rem;
    color: #c4c8ce;
}

.stjobs-logo-requirements li:last-child {
    margin-bottom: 0;
}

.stjobs-logo-requirements li>svg {
    flex: 0 0 auto;
    margin-top: .1875rem;
    color: #4f671d;
}

.stjobs-logo-requirements strong {
    color: #e6e8eb;
}

.stjobs-logo-requirements-info {
    color: #9298a4;
}

.stjobs-logo-requirements-info>svg {
    color: #9298a4;
}

/* Bildergalerie (Job/Firmenprofil): "Bild hinzufügen"-Kachel im selben Dropzone-Look wie der
   Logo-Upload oben, statt eines rohen <input type="file">, das dort keinen passenden Style trifft. */
.stjobs-gallery-dropzone {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .25rem;
    width: 100%;
    height: 100%;
    border: 2px dashed #4a4f55;
    border-radius: .5rem;
    background-color: #1d2126;
    color: #9298a4;
    text-align: center;
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}

.stjobs-gallery-dropzone svg {
    color: #6b7178;
    transition: color .15s ease;
}

.stjobs-gallery-dropzone:hover,
.stjobs-gallery-dropzone:focus-visible {
    border-color: #8a9098;
    background-color: #262b31;
    color: #c4c8ce;
}

.stjobs-gallery-dropzone:hover svg,
.stjobs-gallery-dropzone:focus-visible svg {
    color: #c4c8ce;
}

.stjobs-gallery-dropzone-text {
    font-size: .75rem;
    font-weight: 600;
    line-height: 1.2;
}

/* Job: Titelbild-Upload, gleicher Dropzone-Look wie das Firmenlogo, aber breit (16:9) statt quadratisch
   und mit Drag&Drop (siehe JobManageForm.js: dragover/drop auf #stjobsTitlebildDropzone). */
.stjobs-titlebild-dropzone {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    width: 100%;
    max-width: 32rem;
    aspect-ratio: 16 / 9;
    padding: 1rem;
    border: 2px dashed #4a4f55;
    border-radius: .5rem;
    background-color: #1d2126;
    color: #9298a4;
    text-align: center;
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}

.stjobs-titlebild-dropzone-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: .5rem;
    background-color: #262b31;
    color: #6b7178;
    transition: color .15s ease;
}

.stjobs-titlebild-dropzone:hover,
.stjobs-titlebild-dropzone:focus-visible,
.stjobs-titlebild-dropzone.stjobs-dropzone-active {
    border-color: #8a9098;
    background-color: #262b31;
    color: #c4c8ce;
}

.stjobs-titlebild-dropzone:hover .stjobs-titlebild-dropzone-icon,
.stjobs-titlebild-dropzone:focus-visible .stjobs-titlebild-dropzone-icon,
.stjobs-titlebild-dropzone.stjobs-dropzone-active .stjobs-titlebild-dropzone-icon {
    color: #c4c8ce;
}

.stjobs-titlebild-dropzone-title {
    font-weight: 700;
    color: #e6e8eb;
}

.stjobs-titlebild-dropzone-hint {
    font-size: .8125rem;
}

/* Job-/Firmenprofil-Formular: rechtes Hilfetext-Panel (Shared/FormDescription) bleibt beim Scrollen
   sichtbar, statt wie bisher (aus dem Spot-Formular kopiertes max-height/overflow:hidden) mit dem
   restlichen Seiteninhalt aus dem Blickfeld zu verschwinden. "position: sticky" hier als Basis (falls es
   der Browser doch zulässt); StjobsShared.js erzwingt denselben Effekt zusätzlich per position:fixed,
   da ein Vorfahre (vermutlich body { overflow-x: hidden } aus core.css) sticky sonst wirkungslos macht. */
.stjobs-field-description-panel {
    position: sticky;
    top: 1rem;
    max-height: calc(100vh - 2rem);
    overflow-y: auto;
}

/* Job-/Firmenprofil-Formular: Regler (Shared/FormRange.html) - grüner Füllstand und deutlicher Griff auf dem dunklen Hintergrund */
html body .stjobs-range {
    --stjobs-fill: 0%;
    height: 1.6rem;
    background: transparent;
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
}

html body .stjobs-range::-webkit-slider-runnable-track {
    height: .5rem;
    border-radius: .25rem;
    background: linear-gradient(to right, #62c462 var(--stjobs-fill), #565c63 var(--stjobs-fill));
}

html body .stjobs-range::-moz-range-track {
    height: .5rem;
    border-radius: .25rem;
    background: #565c63;
}

html body .stjobs-range::-moz-range-progress {
    height: .5rem;
    border-radius: .25rem;
    background: #62c462;
}

html body .stjobs-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    box-sizing: border-box;
    width: 1.5rem;
    height: 1.5rem;
    margin-top: -.5rem;
    border-radius: 50%;
    background: #62c462;
    border: 3px solid #fff;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .6);
}

html body .stjobs-range::-moz-range-thumb {
    box-sizing: border-box;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    background: #62c462;
    border: 3px solid #fff;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .6);
}

html body .stjobs-range:focus {
    box-shadow: none;
}

html body .stjobs-range:focus::-webkit-slider-thumb {
    box-shadow: 0 0 0 .25rem rgba(98, 196, 98, .45);
}

html body .stjobs-range:focus::-moz-range-thumb {
    box-shadow: 0 0 0 .25rem rgba(98, 196, 98, .45);
}

html body .stjobs-range-ticks {
    margin-top: .25rem;
    padding: 0 .35rem;
    font-size: .9rem;
}

html body .stjobs-range-tick {
    color: #b3b9bf;
}

html body .stjobs-range-tick.is-active {
    color: #fff;
    font-weight: 700;
}

html body .stjobs-range-output {
    min-width: 7rem;
    text-align: right;
    color: #fff;
    font-weight: 600;
}

html body .stjobs-checktext input[readonly] {
    opacity: .65;
}

html body .stjobs-readonly-field {
    opacity: .75;
}

/* Radiobuttons (Shared/FormRadio.html): die Gültig-/Ungültig-Färbung aus plugins.css (grün/rot je Radio) würde in einer
   Gruppe widersprüchliche Farben zeigen (z. B. nur "Vollzeit" rot, obwohl "Teilzeit" gewählt ist) - daher neutral. */
html body .form-check-input[type="radio"].is-valid:not(:checked),
html body .form-check-input[type="radio"].is-invalid:not(:checked) {
    border-color: rgba(0, 0, 0, .25);
}

html body .form-check-input[type="radio"].is-valid~.form-check-label,
html body .form-check-input[type="radio"].is-invalid~.form-check-label {
    color: inherit;
}

html body .form-check-input[type="radio"].is-valid:checked,
html body .form-check-input[type="radio"].is-invalid:checked {
    background-color: #3a3f44;
    border-color: #62c462;
}

html body .form-check-input[type="radio"].is-valid:focus,
html body .form-check-input[type="radio"].is-invalid:focus {
    box-shadow: 0 0 0 .25rem rgba(58, 63, 68, .25);
}

/* Kategorie-Radiogruppe (z. B. Branche): alle Radios der Gruppe teilen den Zustand - ohne Auswahl rot markieren. */
html body .form-check-input[type="radio"].stjobs-checkbox-group-input.is-invalid:not(:checked) {
    border-color: #ee5f5b;
}

html body label:has(> .form-check-input[type="radio"].stjobs-checkbox-group-input.is-invalid) {
    color: #ee5f5b;
}

/* ---- 4. Basis (früher aus harzjobs.css geerbt) ---- */
:root {
    /* Markenfarben (am Logo orientiert, etwas wärmer/dezenter als Default-Blau) */
    --blue: #2b5fc4;
    --blue-deep: #214a9e;
    --blue-hover: #214a9e;
    --blue-dark: #17357a;
    --blue-soft: #e9f0fb;
    --blue-tint: #f3f6fc;
    /* Neutrale Töne */
    --ink: #1c1f26;
    --ink-2: #444b57;
    --ink-3: #717784;
    --paper: #f5f6f8;
    --card: #ffffff;
    --line: #e6e8ec;
    /* Dunkle Flächen (Header/Footer) – in BEIDEN Modi #23252B */
    --dark: #121212;
    --dark-line: rgba(255, 255, 255, .09);
    /* Formularfelder (Suchmaske) */
    --field: #fafbfc;
    --field-line: #d3d8e0;
    /* Akzente */
    --amber: #e8821e;
    --gold: #f5b301;
    --green: #16a34a;
    --red: #e23b3b;
    --radius: 18px;
    --radius-sm: 13px;
    --shadow-sm: 0 1px 2px rgba(17, 24, 39, .06), 0 2px 8px rgba(17, 24, 39, .05);
    --shadow-md: 0 8px 30px rgba(17, 24, 39, .10);
    --shadow-lg: 0 18px 50px rgba(17, 24, 39, .16);
    --maxw: 1240px;
    --font-display: 'Raleway', sans-serif;
    --font-body: 'Raleway', sans-serif;
}

html {
    color-scheme: light
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0
}

html {
    scroll-behavior: smooth
}

body {
    font-family: var(--font-body);
    color: var(--ink);
    background: var(--paper);
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}

a {
    color: inherit;
    text-decoration: none
}

img {
    display: block;
    max-width: 100%
}

.btn-primary {
    background: var(--blue);
    color: #fff;
    border: none;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 16px;
    padding: 14px 28px;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: .15s;
    box-shadow: 0 4px 14px rgba(43, 95, 196, .28);
    display: inline-flex;
    align-items: center;
    gap: 9px
}

.nav {
    position: relative;
    display: flex;
    align-items: center;
    gap: 28px;
    height: 68px
}

main {
    display: block
}

.badge {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .3px;
    padding: 4px 9px;
    border-radius: 8px;
    text-transform: uppercase;
    white-space: nowrap
}

.btn-sm {
    font-size: 13px;
    font-weight: 700;
    padding: 8px 14px;
    border-radius: 10px;
    border: 1px solid var(--line);
    background: var(--card);
    color: var(--ink-2);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    transition: .15s
}

/* Text-Elemente (CType text/textmedia): Layout wie im Harzjobs-Design, Farben für das dunkle Partner-Theme
   (Links, Überschriften, Fließtext weiß). H2 bleibt bewusst grau (harzspots.css/core.css, !important). */
.frame-type-text,
.frame-type-textmedia {
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
    padding: 32px 24px
}

.frame-type-text header,
.frame-type-textmedia header {
    text-align: center;
    margin-bottom: 14px
}

.frame-type-text h2,
.frame-type-textmedia h2 {
    font-family: var(--font-display);
    font-weight: 800;
    letter-spacing: -.5px;
    font-size: clamp(24px, 3vw, 32px);
    line-height: 1.1
}

.frame-type-text h3,
.frame-type-textmedia h3 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 17px;
    margin-top: 4px
}

.frame-type-text p,
.frame-type-textmedia p {
    font-size: 16px;
    margin-bottom: 14px
}

.frame-type-text ul,
.frame-type-textmedia ul {
    font-size: 16px;
    padding-left: 22px;
    margin-bottom: 14px
}

.frame-type-text a,
.frame-type-textmedia a {
    text-decoration: underline
}

.frame-type-text :is(a, a:hover, h1, h3, h4, h5, h6, p, ul, ol, li, strong, em),
.frame-type-textmedia :is(a, a:hover, h1, h3, h4, h5, h6, p, ul, ol, li, strong, em) {
    color: #fff
}


.sepa-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 8px;
}

.sepa-list-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
    border: 1px solid var(--bs-border-color);
    border-radius: 8px;
    background: var(--bs-tertiary-bg);
    transition: background-color 0.15s ease;
    width: 15rem;
}

.sepa-list-item:hover {
    background: var(--bs-secondary-bg);
}

.sepa-list-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 42px;
    height: 42px;
    border-radius: 8px;
    background: #fce8e6;
    color: #b42318;
    font-size: 22px;
}

.sepa-list-content {
    flex: 1;
    min-width: 0;
}

.sepa-list-title {
    font-weight: 600;
    font-size: 14px;
}

.sepa-list-date {
    margin-top: 3px;
    color: var(--bs-secondary-color);
    font-size: 12px;
}

.sepa-list-download {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    border-radius: 6px;
    color: var(--bs-primary);
    font-size: 19px;
    text-decoration: none;
}

.sepa-list-download:hover {
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary-text-emphasis);
}