/* ==========================================================================
   73 · Inhaltsseiten: Kontakt, Impressum, Datenschutz, Stellenangebote
   Abschnitte sind normale .eso-demo-Abschnitte; hier nur die eigenen Bausteine.
   ========================================================================== */

/* Rechtstexte ------------------------------------------------------------- */
.eso-demo .legal-content {
  display: flow-root;
  max-width: 820px;
  font-family: var(--eso-font-body);
  font-size: 15px;
  line-height: 1.75;
  color: var(--eso-text-body);
  overflow-wrap: anywhere;
}
.eso-demo .legal-content :is(p, ul, ol) { max-width: none; margin: 14px 0 0; font-size: 15px; line-height: 1.75; color: var(--eso-text-body); }
.eso-demo .legal-content :is(h2, h3, h4) {
  max-width: none;
  font-family: var(--eso-font-display);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0;
  color: var(--eso-text);
  scroll-margin-top: 112px;
}
.eso-demo .legal-content h2 { margin: 48px 0 0; font-size: 22px; }
.eso-demo .legal-content h3 { margin: 32px 0 0; font-size: 18px; }
.eso-demo .legal-content h4 { margin: 24px 0 0; font-size: 16px; }
.eso-demo .legal-content > :first-child { margin-top: 0; }
.eso-demo .legal-content + .legal-content > :first-child { margin-top: 48px; }
.eso-demo .legal-content a { color: var(--eso-green); text-decoration: underline; }
.eso-demo .legal-content ul { padding: 0; list-style: none; }
.eso-demo .legal-content ul li { position: relative; margin: 6px 0 0; padding-left: 20px; }
.eso-demo .legal-content ul li::before {
  content: "+";
  position: absolute;
  left: 0;
  font-family: var(--eso-font-mono);
  font-size: 12px;
  color: var(--eso-green);
}

/* Datenschutz: Inhaltsverzeichnis links, Text rechts */
.eso-demo .site-privacy-row { display: grid !important; grid-template-columns: 280px minmax(0, 1fr); gap: 48px; align-items: start; }
.eso-demo .site-privacy-row > .col { width: auto; max-width: none; flex-basis: auto; }
.eso-demo .site-privacy-toc { position: sticky; top: 112px; padding: 24px; border: 1px solid var(--eso-border); background: var(--eso-white); }
.eso-demo .site-privacy-toc p {
  margin: 0;
  font-family: var(--eso-font-mono);
  font-size: 11px;
  line-height: 16.5px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--eso-muted);
}
.eso-demo .site-privacy-toc ul { margin: 20px 0 0; padding: 0; list-style: none; }
.eso-demo .site-privacy-toc li { margin: 12px 0 0; padding: 0; }
.eso-demo .site-privacy-toc a { display: block; font-size: 13px; line-height: 20px; color: var(--eso-text-body); }
.eso-demo .site-privacy-toc a:hover,
.eso-demo .site-privacy-toc a:focus-visible { color: var(--eso-green); }

/* Kontakt: Adresskasten + Formular -------------------------------------- */
.eso-demo .site-contact-row { display: grid !important; grid-template-columns: 2fr 3fr; gap: 48px; align-items: start; }
.eso-demo .site-contact-row > .col { width: auto; max-width: none; flex-basis: auto; }
.eso-demo .site-direct-contact { padding: 32px; border: 1px solid var(--eso-border); background: var(--eso-green-light); }
.eso-demo .site-direct-contact .site-company {
  margin: 0;
  font-family: var(--eso-font-display);
  font-size: 24px;
  font-weight: 700;
  line-height: 32px;
  letter-spacing: -.025em;
  color: var(--eso-text);
}
.eso-demo .site-direct-contact h3 { margin-top: 24px; font-size: 16px; line-height: 24px; }
.eso-demo .site-direct-contact h3 + p { margin-top: 4px; }
.eso-demo .site-direct-contact p { font-size: 15px; line-height: 1.6; color: var(--eso-text); }
.eso-demo .site-direct-contact a { color: var(--eso-text); }
.eso-demo .site-direct-contact a:hover { color: var(--eso-green); }

/* Stellen ------------------------------------------------------------------ */
.eso-demo .site-career-layout { display: grid !important; grid-template-columns: 2fr 1fr; gap: 48px; align-items: start; }
.eso-demo .site-career-layout > .col,
.eso-demo .site-job-grid > .col,
.eso-demo .site-job-contact-row > .col { width: auto; max-width: none; flex-basis: auto; }
.eso-demo .site-job-list { display: grid; gap: 1px; border: 1px solid var(--eso-border); background: var(--eso-border); }
.eso-demo .site-job-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding: 32px;
  background: var(--eso-grey);
  color: var(--eso-text);
  transition: background-color var(--eso-transition);
}
.eso-demo .site-job-link:hover,
.eso-demo .site-job-link:focus-visible { background: var(--eso-green-light); }
.eso-demo .site-job-no { font-family: var(--eso-font-mono); font-size: 11px; letter-spacing: .15em; color: var(--eso-green); }
.eso-demo .site-job-link h2 { margin: 8px 0 0; max-width: none; font-size: 24px; font-weight: 700; line-height: 32px; }
.eso-demo .site-job-link p { margin: 8px 0 0; font-size: 14px; line-height: 1.6; }
.eso-demo .site-job-more { display: inline-flex; gap: 8px; white-space: nowrap; font-family: var(--eso-font-display); font-size: 13px; text-transform: uppercase; color: var(--eso-text); }
.eso-demo .site-career-notice {
  margin: 24px 0 0;
  font-family: var(--eso-font-mono);
  font-size: 10px;
  line-height: 15px;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--eso-muted);
}
.eso-demo .site-career-person { padding: 32px; border: 1px solid var(--eso-border); background: var(--eso-green-light); }
.eso-demo .site-career-person h3 { margin-top: 16px; }
.eso-demo .site-career-person p:not(.demo-label) { margin-top: 12px; font-size: 14px; line-height: 1.6; color: var(--eso-text); }
.eso-demo .site-job-grid,
.eso-demo .site-job-contact-row { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; }
.eso-demo .site-job-feature { padding-top: 24px; border-top: 2px solid var(--eso-green); }
.eso-demo .site-job-feature h2 { margin: 0; font-size: 24px; font-weight: 700; line-height: 32px; }
.eso-demo .site-job-contact .site-career-person { background: var(--eso-white); }

@media (max-width: 1023px) {
  .eso-demo .site-privacy-row,
  .eso-demo .site-contact-row,
  .eso-demo .site-career-layout,
  .eso-demo .site-job-grid,
  .eso-demo .site-job-contact-row { grid-template-columns: 1fr; gap: 40px; }
  .eso-demo .site-privacy-toc { position: static; }
}
@media (max-width: 767px) {
  .eso-demo .site-direct-contact,
  .eso-demo .site-career-person { padding: 24px; }
  .eso-demo .site-job-link { flex-direction: column; align-items: flex-start; gap: 12px; padding: 24px; }
  .eso-demo .site-job-link h2,
  .eso-demo .site-job-feature h2 { font-size: 20px; line-height: 28px; }
}
