/* Sparta – Public (Bewerber-Sicht) */
:root { --sparta-brand: #ffc107; }

/* Schrift: Roboto (lokal) aus assets/fonts.css – vor dieser Datei eingebunden */
body.sparta-public { background: #f7f7fa; font-family: var(--sparta-font); color: #2b2b2b; }

/* Placeholder heller – sonst wirken Beispiel-Texte wie ausgefüllte Werte */
body.sparta-public .form-control::placeholder,
body.sparta-public .form-select::placeholder,
body.sparta-public textarea::placeholder { color: #b8b8b8; opacity: 1; }

.sparta-public-header { background: #fff; border-bottom: 1px solid #e5e7eb; }
.sparta-public-logo { max-height: 64px; max-width: 240px; }
.sparta-public-logo-fallback { font-size: 1.5rem; font-weight: 700; color: #2b2820; }
.sparta-public-accent { height: 4px; }

.sparta-public-main { min-height: calc(100vh - 200px); }

.sparta-public-footer { background: #fff; border-top: 1px solid #e5e7eb; }

/* Listing */
.job-card { transition: box-shadow .15s, transform .15s; }
.job-card:hover { box-shadow: 0 4px 18px rgba(0,0,0,.08); transform: translateY(-2px); }
.job-card .badge-cat { background: var(--sparta-brand); color: #2b2820; font-weight: 600; }

.job-kat-section { margin-top: 2rem; }
.job-kat-section:first-of-type { margin-top: 0; }
.job-kat-title {
  font-size: 1.35rem;
  font-weight: 600;
  color: #2b2820;
  margin: 0 0 1rem;
  padding-bottom: .5rem;
  border-bottom: 2px solid var(--sparta-brand);
}
.job-kat-title .bi { color: var(--sparta-brand); margin-right: .35rem; }

.search-box { background: #fff; border: 1px solid #e5e7eb; border-radius: .5rem; padding: 1rem; box-shadow: 0 1px 3px rgba(0,0,0,.04); }

/* Detail */
.job-hero { background: #fff; border-radius: 0; overflow: hidden; box-shadow: 0 1px 3px rgba(0,0,0,.05); }
.job-hero-img { width: 100%; max-height: 360px; object-fit: cover; }
.job-meta-row .badge { font-size: .85rem; padding: .4em .65em; }

.text-block {
  background: #fff;
  border-radius: 0;
  padding: 1.5rem 1.75rem;
  margin-bottom: 1.25rem;
  box-shadow: 0 1px 3px rgba(0,0,0,.05);
}
.text-block h3 {
  font-size: 1.15rem;
  margin: 0 0 1rem;
  color: #2b2820;
  border-bottom: 2px solid var(--sparta-brand);
  padding-bottom: .4rem;
  display: inline-block;
}
.text-block-body { line-height: 1.6; }
.text-block-body p:last-child { margin-bottom: 0; }
.text-block-body p { margin-bottom: .65rem; }
.text-block-body ul { padding-left: 1.25rem; margin-bottom: 0; }
.text-block-body ul li { margin-bottom: .35rem; }

/* (interesse-block wird nicht mehr verwendet – Bewerben-Button steht jetzt
   ohne Kasten unter den Textblöcken) */

.ansprechpartner-card { background: #fff; border-radius: 0; padding: 1.25rem; box-shadow: 0 1px 3px rgba(0,0,0,.05); display: flex; gap: 1rem; align-items: center; }
.ansprechpartner-foto { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; background: #f0f0f0; }
.ansprechpartner-foto-fallback { width: 80px; height: 80px; border-radius: 50%; background: var(--sparta-brand); display: flex; align-items: center; justify-content: center; font-weight: 700; color: #2b2820; font-size: 1.5rem; }

/* Apply-Button: nutzt Preset-Akzentfarbe (--sparta-brand). Vordergrund kommt aus
   --sparta-brand-fg (YIQ-Luma-basiert: dunkles Text auf hellem Brand, weiß auf dunklem). */
.btn-apply {
  background: var(--sparta-brand);
  border: 1px solid var(--sparta-brand);
  color: var(--sparta-brand-fg);
  font-weight: 700; padding: .9rem 2rem; font-size: 1.05rem;
  box-shadow: 0 2px 8px rgba(0,0,0,.15);
  transition: filter .12s, box-shadow .12s;
}
.btn-apply:hover, .btn-apply:focus {
  background: var(--sparta-brand);
  border-color: var(--sparta-brand);
  color: var(--sparta-brand-fg);
  filter: brightness(.92);
  box-shadow: 0 4px 12px rgba(0,0,0,.22);
}
.btn-apply:active {
  background: var(--sparta-brand);
  border-color: var(--sparta-brand);
  color: var(--sparta-brand-fg);
  filter: brightness(.82);
}

/* Apply form */
.apply-section { background: #fff; border: 1px solid #e5e7eb; border-radius: .5rem; margin-bottom: 1.25rem; }
.apply-section-header {
  padding: .65rem 1rem; border-bottom: 1px solid #e5e7eb;
  color: var(--sparta-brand); font-weight: 600;
}
.apply-section-body { padding: 1.25rem; }
.apply-required::after { content: " *"; color: #dc3545; }

.apply-attachment-item { display: flex; gap: .5rem; align-items: center; padding: .5rem; background: #f8f9fa; border-radius: .35rem; margin-top: .35rem; }
