:root {
  --bg: #ffffff;
  --ink: #142033;
  --muted: #5b6575;
  --line: #d7d2c8;
  --card: #ffffff;
  /* insight24-Kleid: Gold + Navy (kein Web-Blau) */
  --accent: #c4a035;
  --accent-2: #1a2433;
  --portal-bar: #1a2433;
  --portal-accent: #c4a035;
  --header-text: #ffffff;
  --header-link: #ffffff;
  --header-link-active: #c4a035;
  --btn-bg: #1a2433;
  --btn-text: #ffffff;
  --btn-border: #1a2433;
  --btn-ghost-bg: #ffffff;
  --btn-ghost-text: #1a2433;
  --chip-bg: #1a2433;
  --chip-text: #ffffff;
  --btn-radius: 8px;
  --surface-radius: 8px;
  --region-chip-radius: 8px;
  --danger: #b42318;
  --radius: 8px;
  --shadow: 0 10px 30px rgba(20, 32, 51, 0.08);
  --font: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
  --sans: "Avenir Next", "Segoe UI", Helvetica, Arial, sans-serif;
  --heading-weight: 700;
  /* Site-Mass: 1380px zentriert (User 05.10. Firmen ok → alle Seiten). */
  --site-content-max: 1380px;
  --site-content-gutter: 2rem;
}
@media (min-width: 900px) {
  :root { --site-content-gutter: 4.5rem; }
}
@media (min-width: 1280px) {
  :root { --site-content-gutter: 5.5rem; }
}
@media (max-width: 639px) {
  :root { --site-content-gutter: 1.75rem; }
}
@media (max-width: 399px) {
  :root { --site-content-gutter: 1.5rem; }
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
/* Kein overflow-x auf html/body — das bricht position:sticky am Header. */
html {
  max-width: 100%;
  min-height: 100%;
  scroll-behavior: auto;
  scroll-padding-top: var(--scroll-anchor-offset, 7.5rem);
}
body {
  font-family: var(--sans);
  color: var(--ink);
  background: var(--bg);
  /* Nur 100vh — 100dvh zittert in Safari, sobald die Chrome-Leiste ein-/ausfährt. */
  min-height: 100vh;
  max-width: 100%;
  overscroll-behavior-x: none;
  position: relative;
  display: flex;
  flex-direction: column;
}
/* Kurzer Inhalt: Footer bleibt am unteren Viewport-Rand (sitewide). */
main {
  flex: 1 0 auto;
  width: 100%;
}
/* Seitliches Overflow nur im öffentlichen Inhalt (Header bleibt sticky). */
.portal,
.main-content,
.insight-footer {
  max-width: 100%;
  overflow-x: clip;
}
.admin-body.admin-app main {
  overflow: visible;
}
img, video, iframe, svg {
  max-width: 100%;
}
img:not([height]) {
  height: auto;
}
@media (min-width: 721px) {
  body:not(.portal-page) {
    background:
      radial-gradient(1200px 500px at 10% -10%, #ebe4d4 0%, transparent 55%),
      radial-gradient(900px 400px at 100% 0%, #efe6d6 0%, transparent 50%),
      var(--bg);
  }
}
a { color: var(--accent-2); text-decoration: none; }
a:hover { color: #8a7020; }
/* Buttons: nie a:hover-Blau/Gold über Text — Kontrast hart setzen */
a.btn:not(.btn-ghost) {
  text-decoration: none;
  color: var(--btn-text, #fff);
}
a.btn:not(.btn-ghost):hover,
a.btn:not(.btn-ghost):focus {
  text-decoration: none;
  color: var(--btn-text, #fff);
}
a.btn.btn-ghost {
  text-decoration: none;
  color: var(--btn-ghost-text, var(--ink));
}
a.btn.btn-ghost:hover,
a.btn.btn-ghost:focus {
  text-decoration: none;
  color: var(--btn-text, #fff);
}
.wrap {
  width: min(var(--site-content-max), calc(100% - var(--site-content-gutter)));
  max-width: 100%;
  margin: 0 auto;
}

html:has(body.portal-page),
html:has(body.portal-jobs) {
  background: var(--bg, #f8f9fa);
}

/* Portal — Seitenfläche #f8f9fa überall (Start, Regionen, Jobs, Firmen, Inserate, Blog, Impressum, …) */
body.portal-page,
body.portal-jobs {
  --portal-page-bg: #f8f9fa;
  /* Logo-PNG: linker Innenabstand → Wortmarke bündig mit .wrap (Schaufenster, Region, …) */
  --header-logo-src-h: 477;
  --header-logo-src-inset-left: 57;
  background: var(--bg, #f8f9fa) !important;
}
body.portal-page main,
body.portal-jobs main,
body.portal-page .portal,
body.portal-jobs .portal,
body.portal-page .portal-main,
body.portal-jobs .portal-main,
body.portal-page .portal-band,
body.portal-jobs .portal-band,
body.portal-page .portal-band-alt,
body.portal-jobs .portal-band-alt {
  background: var(--bg, #f8f9fa) !important;
}
body.portal-page .region-stage,
body.portal-page .region-stage-chips,
body.portal-page .region-shelf,
body.portal-page .region-news,
body.portal-page .portal-main {
  background: var(--bg, #f8f9fa) !important;
}
body.portal-page .jobs-search,
body.portal-jobs .jobs-search,
body.portal-page .firm-search.jobs-search,
body.portal-jobs .firm-search.jobs-search {
  background: var(--bg, #f8f9fa) !important;
  box-shadow: none !important;
  border: 1px solid #dee2e6;
}

/* Portal — einheitliche Typografie + Kontrast (AA auf #f8f9fa, Fliesstext lesbar) */
body.portal-page,
body.portal-jobs {
  font-size: 1rem;
  line-height: 1.55;
  --muted: #475569;
  --portal-meta: #475569;
  --portal-meta-soft: #526070;
  --portal-text-secondary: #334155;
  --portal-size-body: 1rem;
  --portal-size-secondary: 0.9375rem;
  --portal-size-meta: 0.875rem;
  --portal-size-label: 0.8125rem;
}

/* Portal — Fliesstext-Stufen sitewide (Start, Region, Jobs, Firmen, Rechtliches, Newsletter, …) */
body.portal-page .legal-page,
body.portal-page .legal-page .legal-section-body,
body.portal-page .legal-page .legal-intro {
  font-size: var(--portal-size-body, 1rem);
  line-height: 1.65;
  color: var(--ink);
}
body.portal-page .legal-page .legal-stand,
body.portal-page .legal-page .muted {
  font-size: var(--portal-size-secondary, 0.9375rem);
  color: var(--portal-meta, #475569);
}
body.portal-page .legal-page .content-h2,
body.portal-page .legal-page .legal-section-title {
  font-size: 1.0625rem;
}
body.portal-page .content-detail-meta,
body.portal-page .article-detail-meta {
  font-size: var(--portal-size-meta, 0.875rem);
  color: var(--portal-meta, #475569);
}
body.portal-page .article-body {
  font-size: var(--portal-size-body, 1rem);
  line-height: 1.65;
}
body.portal-page .home-hub-panel-lead {
  font-size: var(--portal-size-body, 1rem);
  color: var(--portal-meta, #475569);
}
body.portal-page .nl-lede {
  font-size: 1.0625rem;
}
body.portal-page .nl-intro p {
  font-size: var(--portal-size-body, 1rem);
}
body.portal-page .nl-doi-box,
body.portal-page .nl-field {
  font-size: var(--portal-size-secondary, 0.9375rem);
}
body.portal-page .nl-form .nl-topics legend,
body.portal-page .nl-form .nl-topics .nl-fieldset-title {
  font-size: var(--portal-size-body, 1rem);
}
body.portal-page .nl-legend-hint,
body.portal-page .nl-topic-desc {
  font-size: var(--portal-size-meta, 0.875rem);
  color: var(--portal-meta, #475569);
}
body.portal-page .nl-topic-title {
  font-size: var(--portal-size-secondary, 0.9375rem);
}
body.portal-page .nl-legal,
body.portal-page .nl-privacy-check {
  font-size: var(--portal-size-meta, 0.875rem);
  color: var(--portal-text-secondary, #334155);
}
body.portal-page .company-az-nav a {
  font-size: var(--portal-size-meta, 0.875rem);
}
body.portal-page .portal-hero-copy p {
  font-size: var(--portal-size-body, 1rem);
  color: var(--portal-text-secondary, #334155);
}
body.portal-page .ad-listing-catlist-label,
body.portal-page .ad-listing-count,
body.portal-page .ad-listing-pager-num,
body.portal-page .ad-listing-pager-nav {
  font-size: var(--portal-size-meta, 0.875rem);
}

.site-header, .admin-header {
  position: sticky;
  top: 0;
  z-index: 100;
  backdrop-filter: blur(10px);
  background: rgba(243, 241, 236, 0.86);
  border-bottom: 1px solid var(--line);
}
.header-inner, .footer-inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; padding: 0.9rem 0;
}
.brand {
  font-family: var(--font);
  font-size: 1.45rem;
  font-weight: 700;
  color: var(--ink);
  text-decoration: none;
  letter-spacing: 0.02em;
}
.nav { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.nav a { text-decoration: none; color: var(--ink); font-size: 0.95rem; }
.nav a:hover { color: var(--accent); }

/* Unified portal header (fixed + visual shrink — never changes document flow) */
.site-header-portal {
  /* --portal-bar / --portal-accent kommen von :root + ThemeColors (Admin) — hier nicht hart überschreiben */
  background: var(--portal-bar, #1a2433);
  border-bottom: 0;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: none;
  transition: none;
  z-index: 5000;
}

/* Fixed header + stable body padding from first paint (no in-flow→fixed switch).
   Ticker sits inside the header, so it cannot start under the nav.
   --portal-pad-top is a plain length (no calc(var + var)): aggressive minifiers strip
   spaces around "+" and the declaration becomes invalid → padding-top:0 (content under header).
   Live gemessen 21.08. Desktop: Region+Rubriken+Ticker = 275px Header → Pad muss ≥275px + Luft.
   Altes app.min mit nur 12.15rem (=194px) → Gap −81px (H1/Chip unter Header). Nie per JS (CLS).
   app.min.css IMMER = Kopie von app.css nach Pad-Änderungen. */
body.portal-page {
  --site-header-h: 9.5rem;
  --portal-pad-top: 9.5rem;
  padding-top: var(--portal-pad-top);
}
/* Desktop mit Header-Banner 680×90 (wie marktindex) + Primary-Nav */
@media (min-width: 721px) {
  body.portal-page:has(.site-header-ad) {
    --site-header-h: 15.5rem;
    --portal-pad-top: 15.5rem;
  }
  body.portal-page:has(.site-header-ad):has(.news-band) {
    --site-header-h: 18rem;
    --portal-pad-top: 18rem;
  }
  body.portal-page:has(.site-header-ad):has(.site-header-primary) {
    --site-header-h: 17.5rem;
    --portal-pad-top: 17.5rem;
  }
  body.portal-page:has(.site-header-ad):has(.news-band):has(.site-header-primary) {
    --site-header-h: 20rem;
    --portal-pad-top: 20rem;
  }
  body.portal-jobs:has(.site-header-ad) {
    --site-header-h: 14rem;
    --portal-pad-top: 14rem;
  }
  body.portal-jobs:has(.site-header-ad):has(.news-band) {
    --site-header-h: 16.5rem;
    --portal-pad-top: 16.5rem;
  }
}
/* Region ohne Banner-Fallback / Primary */
body.portal-page:has(.site-header-primary) {
  --site-header-h: 12.5rem;
  --portal-pad-top: 12.5rem;
}
body.portal-page:has(.news-band) {
  --site-header-h: 12.5rem;
  --portal-pad-top: 12.5rem;
}
body.portal-page:has(.news-band):has(.site-header-primary) {
  --site-header-h: 15rem;
  --portal-pad-top: 15rem;
}
body.portal-jobs {
  --site-header-h: 8.5rem;
  --portal-pad-top: 8.5rem;
}
body.portal-jobs:has(.news-band) {
  --site-header-h: 11rem;
  --portal-pad-top: 11rem;
}
/* Desktop ohne Header-Banner: Pad = gemessene Header-Höhe (nicht Banner-Reserve) — wie Mobile ohne Lücke */
@media (min-width: 721px) {
  body.portal-page:not(:has(.site-header-ad)) {
    --site-header-h: 8.5rem;
    --portal-pad-top: 8.5rem;
  }
  body.portal-page:not(:has(.site-header-ad)):has(.site-header-primary) {
    --site-header-h: 10rem;
    --portal-pad-top: 10rem;
  }
  body.portal-page:not(:has(.site-header-ad)):has(.news-band) {
    --site-header-h: 10rem;
    --portal-pad-top: 10rem;
  }
  body.portal-page:not(:has(.site-header-ad)):has(.news-band):has(.site-header-primary) {
    --site-header-h: 11.5rem;
    --portal-pad-top: 11.5rem;
  }
  body.portal-jobs:not(:has(.site-header-ad)) {
    --site-header-h: 8rem;
    --portal-pad-top: 8rem;
  }
  body.portal-jobs:not(:has(.site-header-ad)):has(.news-band) {
    --site-header-h: 10rem;
    --portal-pad-top: 10rem;
  }
}
/* Mobile: kompakt Logo+Menü — Primary ist display:none, zählt aber noch in :has() → Pad explizit überschreiben */
@media (max-width: 720px) {
  /* Admin-Logo-Grösse gilt nur Desktop — sonst frisst 7.73rem den Viewport (Hero unter Header). */
  body.portal-page,
  body.portal-page .portal,
  body.portal-page .portal-band,
  .site-header-portal {
    --header-logo-h: 5.1rem;
    /* Hamburger proportional zum Logo (≈37 % / 22 % der Logo-Höhe) */
    --i24-mobile-menu-bar-w: calc(var(--header-logo-h, 5.1rem) * 0.37);
    --i24-mobile-menu-bar-h: calc(var(--header-logo-h, 5.1rem) * 0.22);
  }
  body.portal-page .site-header-portal .brand-mark-img,
  body.portal-jobs .site-header-portal .brand-mark-img,
  .site-header-portal .brand-mark-img {
    --_logo-display-h: var(--header-logo-h, 5.1rem);
    max-height: var(--header-logo-h, 5.1rem);
    max-width: min(calc(100vw - 5.5rem), 22rem);
    /* PNG-Einzug nur Desktop — sonst klebt die Wortmarke am Viewport-Rand */
    transform: none;
    object-position: left center;
  }
  .site-header-top:has(.site-header-ad) {
    min-height: 0;
  }
  body.portal-page,
  body.portal-page:has(.site-header-primary),
  body.portal-page:has(.site-header-ad),
  body.portal-page:has(.site-header-ad):has(.site-header-primary) {
    --site-header-h: 8.35rem;
    --portal-pad-top: 8.35rem;
  }
  /* Nur noch, falls irgendwo das alte Textlogo (insight24 + Region) steht */
  body.portal-page:has(.portal-logo-block),
  body.portal-page:has(.portal-logo-block):has(.site-header-primary),
  body.portal-page:has(.portal-logo-block):has(.site-header-ad) {
    --site-header-h: 6rem;
    --portal-pad-top: 6rem;
  }
  body.portal-page:has(.news-band),
  body.portal-page:has(.news-band):has(.site-header-primary),
  body.portal-page:has(.site-header-ad):has(.news-band),
  body.portal-page:has(.site-header-ad):has(.news-band):has(.site-header-primary) {
    --site-header-h: 10.4rem;
    --portal-pad-top: 10.4rem;
  }
  body.portal-page.portal-home:has(.news-band):not(:has(.dev-banner)):not(.portal-home-marketing) {
    --site-header-h: 8.85rem;
    --portal-pad-top: 8.85rem;
  }
  body.portal-page:has(.news-band):not(:has(.dev-banner)),
  body.portal-page:has(.news-band):has(.site-header-primary):not(:has(.dev-banner)) {
    --site-header-h: 10rem;
    --portal-pad-top: 10rem;
  }
  body.portal-page:has(.portal-logo-block):has(.news-band),
  body.portal-page:has(.portal-logo-block):has(.news-band):has(.site-header-primary) {
    --site-header-h: 9rem;
    --portal-pad-top: 9rem;
  }
}
/* Startseite: sichtbare Regionsleiste — Pad in rem, nie calc() */
@media (min-width: 721px) {
  body.portal-page:has(.site-header-regionbar):has(.site-header-primary) {
    --site-header-h: 14.75rem;
    --portal-pad-top: 14.75rem;
  }
  body.portal-page:has(.site-header-regionbar):has(.news-band):has(.site-header-primary) {
    --site-header-h: 17.25rem;
    --portal-pad-top: 17.25rem;
  }
  body.portal-page:not(:has(.site-header-ad)):has(.site-header-regionbar):has(.site-header-primary) {
    --site-header-h: 12.25rem;
    --portal-pad-top: 12.25rem;
  }
  body.portal-page:not(:has(.site-header-ad)):has(.site-header-regionbar):has(.news-band):has(.site-header-primary) {
    --site-header-h: 13.75rem;
    --portal-pad-top: 13.75rem;
  }
  body.portal-page:has(.site-header-ad):has(.site-header-regionbar):has(.site-header-primary) {
    --site-header-h: 19.75rem;
    --portal-pad-top: 19.75rem;
  }
  body.portal-page:has(.site-header-ad):has(.news-band):has(.site-header-regionbar):has(.site-header-primary) {
    --site-header-h: 22.25rem;
    --portal-pad-top: 22.25rem;
  }
}
@media (max-width: 720px) {
  /* Regionschips nur Desktop — :has(.site-header-regionbar) zählt trotzdem → Pad wie ohne Regionbar */
  body.portal-page:has(.site-header-regionbar),
  body.portal-page:has(.site-header-regionbar):has(.site-header-primary),
  body.portal-page:has(.site-header-ad):has(.site-header-regionbar) {
    --site-header-h: 8.35rem;
    --portal-pad-top: 8.35rem;
  }
  body.portal-page:has(.site-header-regionbar):has(.news-band),
  body.portal-page:has(.site-header-regionbar):has(.news-band):has(.site-header-primary),
  body.portal-page:has(.site-header-ad):has(.news-band):has(.site-header-regionbar) {
    --site-header-h: 10.4rem;
    --portal-pad-top: 10.4rem;
  }
}
body.portal-page .site-header.site-header-portal,
body.portal-page .site-header-portal {
  position: fixed !important;
  top: 0;
  left: 0;
  right: 0;
  width: auto;
  max-width: none;
  min-width: 0;
  margin: 0;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  overflow: visible;
  background: var(--portal-bar, #1a2433);
  border: 0;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  z-index: 5000;
}
/* Dev-Banner nur Desktop: sonst riesige Lücke (Primary ist display:none, :has greift trotzdem) */
@media (min-width: 721px) {
  body.portal-page:has(.dev-banner) {
    /* Header + ~2.85rem local dev-banner — Basis ohne Ticker/Primary */
    --portal-pad-top: 12.35rem;
  }
  body.portal-page:has(.dev-banner):has(.site-header-primary) {
    --portal-pad-top: 15.35rem;
  }
  body.portal-page:has(.dev-banner):has(.news-band) {
    --portal-pad-top: 15.35rem;
  }
  body.portal-page:has(.dev-banner):has(.news-band):has(.site-header-primary) {
    --portal-pad-top: 18.35rem;
  }
}
/* Mobile + Dev-Banner: kompakter Header (Logo+Menü) + Banner-Höhe — feste rem (kein calc var+var).
   Spezifität muss Regions-Regeln (:not home/jobs) schlagen, sonst bleibt Pad bei 8.5rem → Content unter Header. */
@media (max-width: 720px) {
  body.portal-page:has(.dev-banner),
  body.portal-page:has(.dev-banner):has(.site-header-primary),
  body.portal-page:has(.dev-banner):has(.site-header-ad),
  body.portal-page:has(.dev-banner):has(.site-header-ad):has(.site-header-primary) {
    --portal-pad-top: 7.6rem;
  }
  body.portal-page:not(.portal-home):not(.portal-jobs):has(.dev-banner),
  body.portal-page:not(.portal-home):not(.portal-jobs):has(.dev-banner):has(.site-header-primary),
  body.portal-page:not(.portal-home):not(.portal-jobs):has(.dev-banner):has(.site-header-ad) {
    --portal-pad-top: 9.1rem;
  }
  body.portal-page:has(.dev-banner):has(.news-band),
  body.portal-page:has(.dev-banner):has(.news-band):has(.site-header-primary),
  body.portal-page:has(.dev-banner):has(.site-header-ad):has(.news-band),
  body.portal-page:has(.dev-banner):has(.site-header-ad):has(.news-band):has(.site-header-primary) {
    --portal-pad-top: 11.35rem;
  }
  body.portal-page.portal-home:has(.dev-banner):has(.news-band) {
    --site-header-h: 12.5rem;
    --portal-pad-top: 12.5rem;
  }
  body.portal-page.portal-home.hf-luft:has(.dev-banner):has(.news-band),
  body.portal-page.portal-home.hf-hell:has(.dev-banner):has(.news-band) {
    --site-header-h: 12.75rem;
    --portal-pad-top: 12.75rem;
  }
  body.portal-page:not(.portal-home):not(.portal-jobs):has(.dev-banner):has(.news-band),
  body.portal-page:not(.portal-home):not(.portal-jobs):has(.dev-banner):has(.news-band):has(.site-header-primary),
  body.portal-page:not(.portal-home):not(.portal-jobs):has(.dev-banner):has(.site-header-ad):has(.news-band) {
    /* Gemessen lokal: Banner~3.1rem + Logo+Ticker~8.2rem → Pad ≥ 11.5rem */
    --portal-pad-top: 11.75rem;
  }
  body.portal-jobs:has(.dev-banner),
  body.portal-jobs:has(.dev-banner):has(.site-header-primary),
  body.portal-jobs:has(.dev-banner):has(.site-header-ad),
  body.portal-page.portal-jobs:has(.dev-banner),
  body.portal-page.portal-jobs:has(.dev-banner):has(.site-header-primary) {
    /* Region-Logo-Block ~5.8rem + Dev-Banner ~3rem */
    --portal-pad-top: 9.1rem;
  }
  body.portal-jobs:has(.dev-banner):has(.news-band),
  body.portal-page.portal-jobs:has(.dev-banner):has(.news-band) {
    --portal-pad-top: 11.5rem;
  }
}
body.portal-page .dev-banner {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 110;
  margin: 0;
}
body.portal-page:has(.dev-banner) .site-header-portal {
  top: var(--dev-banner-h, 2.85rem);
}

/* Schlanker Header (Portal-Standard): eine Zeile Logo + Nav, Wordmark statt fettem PNG. */
.site-header-inner {
  padding: 0.7rem 0;
}
.site-header-top {
  min-height: 3.45rem;
  gap: 0.85rem 1.1rem;
}
.brand-mark {
  display: inline-flex;
  align-items: center;
  text-decoration: none !important;
  line-height: 0;
  flex: 0 0 auto;
}
.brand-mark:hover,
.brand-mark:focus-visible {
  background: transparent !important;
}
.brand-mark-img {
  display: block;
  width: auto;
  height: auto;
  /* Mobile zuerst kompakt — Desktop siehe @media (min-width: 721px) */
  max-height: 3.4rem;
  max-width: min(calc(100vw - 4.75rem), 16.5rem);
  object-fit: contain;
  object-position: left center;
  --_logo-display-h: var(--header-logo-h, 3.4rem);
  transform: translateX(
    calc(-1 * var(--header-logo-src-inset-left, 57) / var(--header-logo-src-h, 477) * var(--_logo-display-h))
  );
  transition: transform 0.35s ease, max-height 0.35s ease, max-width 0.35s ease;
}
@media (min-width: 721px) {
  .brand-mark-img {
    --_logo-display-h: var(--header-logo-h, 7.73rem);
    max-height: var(--header-logo-h, 7.73rem);
    max-width: min(44rem, calc(100vw - 5.5rem));
  }
  .site-header-portal.is-shrunk .brand-mark-img {
    --_logo-display-h: var(--i24-header-logo-shrunk, 2.95rem);
  }
}
/* Dunkler Portal-Header: schwarze Wortmarke → weiss (Logo-Datei bleibt schwarz für hellen Header). */
body.portal-page:not(.hf-luft):not(.hf-hell) .site-header-portal .brand-mark-img {
  filter: brightness(0) invert(1);
}
.brand-word {
  display: inline-flex;
  align-items: baseline;
  text-decoration: none !important;
  color: #111 !important;
  font-family: var(--sans);
  font-weight: 600;
  font-size: 1.78rem;
  letter-spacing: -0.035em;
  line-height: 1;
}
.brand-word:hover,
.brand-word:focus-visible {
  color: #111 !important;
  background: transparent !important;
}
.brand-word-lock {
  font-weight: 600;
  color: inherit;
}
h1.brand-word {
  display: inline-flex;
  margin: 0;
  max-width: none;
}
.brand-word--hero {
  font-size: 2.45rem;
  line-height: 0.92;
}
.site-header-primary {
  flex: 1 1 auto;
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
  min-width: 0;
}
.site-header-primary-link,
.site-header-drop-summary {
  padding: 0.32rem 0.42rem;
  font-size: 0.8rem;
  text-transform: none;
  letter-spacing: 0.01em;
}
.site-header-portal .portal-jobs-brand-main {
  font-size: 1.28rem;
}
.site-header-portal .portal-logo-block {
  width: auto;
  max-width: 12rem;
}
.site-header-portal .portal-logo-top {
  padding: 0.22rem 0.5rem;
  font-size: 0.68rem;
}
.site-header-portal .portal-logo-region {
  padding: 0.22rem 0.5rem;
  font-size: 0.95rem;
}

@media (min-width: 721px) {
  /* Logo-Zeile ~7.73rem + Innenabstand — alte 5.35rem liess H1/Breadcrumbs unter dem Header */
  body.portal-page,
  body.portal-page:has(.site-header-primary),
  body.portal-jobs,
  body.portal-jobs:has(.site-header-primary) {
    --site-header-h: 8.85rem;
    --portal-pad-top: 8.85rem;
  }
  body.portal-page:has(.site-header-ad),
  body.portal-page:has(.site-header-ad):has(.site-header-primary),
  body.portal-jobs:has(.site-header-ad) {
    --site-header-h: 11.35rem;
    --portal-pad-top: 11.35rem;
  }
  body.portal-page:has(.news-band),
  body.portal-page:has(.news-band):has(.site-header-primary) {
    --site-header-h: 11.35rem;
    --portal-pad-top: 11.35rem;
  }
  body.portal-page:has(.site-header-ad):has(.news-band),
  body.portal-page:has(.site-header-ad):has(.news-band):has(.site-header-primary) {
    --site-header-h: 13.85rem;
    --portal-pad-top: 13.85rem;
  }
  body.portal-page:has(.site-header-regionbar),
  body.portal-page:has(.site-header-regionbar):has(.site-header-primary) {
    --site-header-h: 10.35rem;
    --portal-pad-top: 10.35rem;
  }
  body.portal-page:has(.site-header-regionbar):has(.news-band):has(.site-header-primary) {
    --site-header-h: 12.85rem;
    --portal-pad-top: 12.85rem;
  }
  body.portal-page:has(.site-header-ad):has(.site-header-regionbar):has(.site-header-primary) {
    --site-header-h: 12.85rem;
    --portal-pad-top: 12.85rem;
  }
  body.portal-page:has(.site-header-ad):has(.news-band):has(.site-header-regionbar):has(.site-header-primary) {
    --site-header-h: 15.35rem;
    --portal-pad-top: 15.35rem;
  }
  body.portal-page:has(.dev-banner),
  body.portal-page:has(.dev-banner):has(.site-header-primary) {
    --portal-pad-top: 7.2rem;
  }
  body.portal-page:has(.dev-banner):has(.news-band),
  body.portal-page:has(.dev-banner):has(.news-band):has(.site-header-primary) {
    --portal-pad-top: 9.7rem;
  }
  body.portal-page:has(.dev-banner):has(.site-header-ad),
  body.portal-page:has(.dev-banner):has(.site-header-ad):has(.site-header-primary) {
    --portal-pad-top: 9.7rem;
  }
  body.portal-page:has(.dev-banner):has(.site-header-regionbar):has(.site-header-primary) {
    --portal-pad-top: 9.7rem;
  }
  body.portal-page:has(.dev-banner):has(.news-band):has(.site-header-regionbar):has(.site-header-primary) {
    --portal-pad-top: 12.2rem;
  }
  body.portal-page:has(.hf-trial):has(.dev-banner) {
    --portal-pad-top: 12rem;
  }
  body.portal-page:has(.hf-trial):has(.dev-banner):has(.news-band),
  body.portal-page:has(.hf-trial):has(.dev-banner):has(.site-header-primary):has(.news-band) {
    --portal-pad-top: 14.5rem;
  }
}

body.hf-hell .site-header-portal {
  border-bottom: 0;
}
body.hf-luft .site-header-portal {
  border-bottom: 0;
  box-shadow: none;
  background: #fff !important;
}
/* Portal: feine Trennlinie einheitlich (Start, Regionen, Jobs) — wie News-Band border-top */
body.hf-luft.portal-page .site-header-portal,
body.hf-hell.portal-page .site-header-portal {
  --portal-header-rule: #eceff2;
}
body.hf-luft.portal-page .site-header-portal:has(.news-band),
body.hf-hell.portal-page .site-header-portal:has(.news-band) {
  border-bottom: 0;
}
body.hf-luft.portal-page .site-header-portal .news-band,
body.hf-hell.portal-page .site-header-portal .news-band {
  border-top: 1px solid var(--portal-header-rule, #eceff2);
}
body.hf-luft.portal-page .site-header-portal:not(:has(.news-band)),
body.hf-hell.portal-page .site-header-portal:not(:has(.news-band)) {
  border-bottom: 1px solid var(--portal-header-rule, #eceff2);
}
body.hf-luft.portal-page .site-header-portal.is-shrunk,
body.hf-hell.portal-page .site-header-portal.is-shrunk {
  border-bottom: 1px solid var(--portal-header-rule, #eceff2);
}
body.hf-luft.portal-page .site-header-portal.is-shrunk .news-band,
body.hf-hell.portal-page .site-header-portal.is-shrunk .news-band {
  border-top: 0;
}
body.hf-luft .site-header-inner {
  padding: 0.95rem 0 0.7rem;
}
body.hf-luft .site-header-top {
  min-height: 3.2rem;
}
@media (min-width: 721px) {
  body.hf-luft .brand-mark-img,
  body.hf-hell .brand-mark-img {
    max-height: var(--header-logo-h, 7.73rem);
    max-width: min(44rem, calc(100vw - 5.5rem));
  }
}
body.hf-luft .brand-word {
  font-size: 1.72rem;
  font-weight: 600;
  color: #111 !important;
}
/* Portal: Header weiss, Seitenfläche #f8f9fa (local-job) — alle hf-luft/hf-hell Seiten */
body.hf-luft.portal-page,
body.hf-hell.portal-page,
body.hf-luft.portal-jobs,
body.hf-hell.portal-jobs {
  --bg: #f8f9fa;
  --portal-page-bg: #f8f9fa;
  --portal-header-edge: #dee2e6;
  background: #f8f9fa !important;
}
body.hf-luft.portal-page .portal-page,
body.hf-hell.portal-page .portal-page,
body.hf-luft.portal-page main,
body.hf-hell.portal-page main,
body.hf-luft.portal-jobs main,
body.hf-hell.portal-jobs main {
  position: relative;
  z-index: 1;
  background: #f8f9fa !important;
}
body.hf-luft.portal-page .site-header-portal,
body.hf-hell.portal-page .site-header-portal,
body.hf-luft.portal-jobs .site-header-portal,
body.hf-hell.portal-jobs .site-header-portal {
  z-index: 5000;
}
body.hf-luft.portal-page .site-header-portal .news-band,
body.hf-hell.portal-page .site-header-portal .news-band,
body.hf-luft.portal-jobs .site-header-portal .news-band,
body.hf-hell.portal-jobs .site-header-portal .news-band {
  background: #ffffff !important;
  box-shadow: none !important;
}
body.hf-luft.portal-page,
body.hf-hell.portal-page,
body.hf-luft.portal-jobs,
body.hf-hell.portal-jobs {
  background: #f8f9fa !important;
}
body.hf-luft.portal-page .portal,
body.hf-hell.portal-page .portal,
body.hf-luft.portal-jobs .portal,
body.hf-hell.portal-jobs .portal,
body.hf-luft.portal-page .portal-page,
body.hf-hell.portal-page .portal-page {
  background: #f8f9fa !important;
}
body.hf-luft .portal-band,
body.hf-hell .portal-band,
body.hf-luft .portal-band-alt,
body.hf-hell .portal-band-alt {
  background: #f8f9fa !important;
}
body.hf-luft .jobs-portal,
body.hf-hell .jobs-portal,
body.hf-luft .jobs-list-wrap,
body.hf-hell .jobs-list-wrap {
  background: #f8f9fa;
}
/* Filter-/Suchkästen: kein Weiss-Block auf #f8f9fa (Jobs, Firmen, Inserate, Hub) */
body.hf-luft .jobs-search,
body.hf-hell .jobs-search,
body.hf-luft .firm-search.jobs-search,
body.hf-hell .firm-search.jobs-search {
  background: #f8f9fa !important;
  box-shadow: none !important;
  border: 1px solid #dee2e6;
}
body.hf-luft .jobs-search-field input,
body.hf-luft .jobs-search-field select,
body.hf-hell .jobs-search-field input,
body.hf-hell .jobs-search-field select,
body.hf-luft .home-hub-search-field input,
body.hf-luft .home-hub-search-field textarea,
body.hf-hell .home-hub-search-field input,
body.hf-hell .home-hub-search-field textarea {
  background: #ffffff;
}
@media (min-width: 721px) {
  body.hf-luft.portal-page,
  body.hf-luft.portal-page:has(.site-header-primary),
  body.hf-luft.portal-jobs,
  body.hf-luft.portal-jobs:has(.site-header-primary) {
    --site-header-h: 8.85rem;
    --portal-pad-top: 8.85rem;
  }
  body.hf-luft.portal-page:has(.news-band),
  body.hf-luft.portal-page:has(.news-band):has(.site-header-primary),
  body.hf-hell.portal-page:has(.news-band),
  body.hf-hell.portal-page:has(.news-band):has(.site-header-primary),
  body.hf-luft.portal-jobs:has(.news-band),
  body.hf-hell.portal-jobs:has(.news-band) {
    --site-header-h: 10.85rem;
    --portal-pad-top: 10.85rem;
  }
  body.hf-luft.portal-page:has(.site-header-ad),
  body.hf-luft.portal-page:has(.site-header-ad):has(.site-header-primary),
  body.hf-luft.portal-jobs:has(.site-header-ad) {
    --site-header-h: 11.35rem;
    --portal-pad-top: 11.35rem;
  }
  body.hf-luft.portal-page:has(.site-header-ad):has(.news-band),
  body.hf-luft.portal-page:has(.site-header-ad):has(.news-band):has(.site-header-primary),
  body.hf-hell.portal-page:has(.site-header-ad):has(.news-band),
  body.hf-hell.portal-page:has(.site-header-ad):has(.news-band):has(.site-header-primary),
  body.hf-luft.portal-jobs:has(.site-header-ad):has(.news-band),
  body.hf-hell.portal-jobs:has(.site-header-ad):has(.news-band) {
    --site-header-h: 12.35rem;
    --portal-pad-top: 12.35rem;
  }
  body.hf-luft.portal-page:has(.dev-banner) {
    --portal-pad-top: 7.2rem;
  }
  body.hf-luft.portal-page:has(.dev-banner):has(.news-band),
  body.hf-luft.portal-page:has(.dev-banner):has(.news-band):has(.site-header-primary),
  body.hf-hell.portal-page:has(.dev-banner):has(.news-band),
  body.hf-hell.portal-page:has(.dev-banner):has(.news-band):has(.site-header-primary) {
    --site-header-h: 12.25rem;
    --portal-pad-top: 12.25rem;
  }
  body.hf-luft.portal-page:has(.dev-banner):has(.site-header-ad),
  body.hf-luft.portal-page:has(.dev-banner):has(.site-header-ad):has(.site-header-primary) {
    --portal-pad-top: 10.2rem;
  }
  body.hf-luft.portal-page:has(.dev-banner):has(.site-header-ad):has(.news-band),
  body.hf-luft.portal-page:has(.dev-banner):has(.site-header-ad):has(.news-band):has(.site-header-primary),
  body.hf-hell.portal-page:has(.dev-banner):has(.site-header-ad):has(.news-band),
  body.hf-hell.portal-page:has(.dev-banner):has(.site-header-ad):has(.news-band):has(.site-header-primary) {
    --site-header-h: 15.35rem;
    --portal-pad-top: 15.35rem;
  }
  body.hf-luft.portal-page:has(.hf-trial):has(.dev-banner) {
    --portal-pad-top: 9.4rem;
  }
  body.hf-luft.portal-page:has(.hf-trial):has(.dev-banner):has(.news-band),
  body.hf-luft.portal-page:has(.hf-trial):has(.dev-banner):has(.site-header-primary):has(.news-band) {
    --portal-pad-top: 12.25rem;
  }
  body.hf-luft.portal-page:has(.hf-trial):has(.dev-banner):has(.site-header-ad):has(.news-band),
  body.hf-luft.portal-page:has(.hf-trial):has(.dev-banner):has(.site-header-ad):has(.news-band):has(.site-header-primary) {
    --portal-pad-top: 15.1rem;
  }
  body.hf-luft.portal-page:has(.site-header-ad):has(.news-band):has(.site-header-regionbar):has(.site-header-primary),
  body.hf-hell.portal-page:has(.site-header-ad):has(.news-band):has(.site-header-regionbar):has(.site-header-primary) {
    --site-header-h: 11.85rem;
    --portal-pad-top: 11.85rem;
  }
  body.hf-luft.portal-page:has(.dev-banner):has(.site-header-ad):has(.news-band):has(.site-header-regionbar):has(.site-header-primary),
  body.hf-hell.portal-page:has(.dev-banner):has(.site-header-ad):has(.news-band):has(.site-header-regionbar):has(.site-header-primary) {
    --site-header-h: 12.2rem;
    --portal-pad-top: 12.2rem;
  }
}
@media (max-width: 720px) {
  body.hf-luft.portal-page:has(.site-header-regionbar):has(.news-band):has(.site-header-primary):not(.portal-home-marketing),
  body.hf-hell.portal-page:has(.site-header-regionbar):has(.news-band):has(.site-header-primary):not(.portal-home-marketing) {
    --site-header-h: 10.4rem;
    --portal-pad-top: 10.4rem;
  }
  body.hf-luft.portal-page:has(.dev-banner):has(.site-header-regionbar):has(.news-band):has(.site-header-primary),
  body.hf-hell.portal-page:has(.dev-banner):has(.site-header-regionbar):has(.news-band):has(.site-header-primary) {
    --site-header-h: 10.1rem;
    --portal-pad-top: 10.1rem;
  }
  /* Startseite Marketing — schlägt :has(.site-header-regionbar) (Regionbar nur Desktop, im DOM aber da). */
  body.portal-page.portal-home.portal-home-marketing:has(.news-band),
  body.hf-luft.portal-page.portal-home.portal-home-marketing:has(.news-band),
  body.hf-hell.portal-page.portal-home.portal-home-marketing:has(.news-band),
  body.hf-luft.portal-page.portal-home.portal-home-marketing:has(.site-header-regionbar):has(.news-band):has(.site-header-primary),
  body.hf-hell.portal-page.portal-home.portal-home-marketing:has(.site-header-regionbar):has(.news-band):has(.site-header-primary) {
    --site-header-h: 10.85rem;
    --portal-pad-top: 10.85rem;
    padding-top: max(var(--portal-pad-top), 10.85rem);
  }
  body.hf-luft .site-header-inner,
  body.hf-hell .site-header-inner {
    padding: 0.75rem 0 0.55rem;
  }
  .site-header-top .site-pp-toggle {
    min-height: 2.75rem;
    min-width: 2.75rem;
    padding: 0.35rem 0.45rem;
    align-self: center;
    justify-content: center;
  }
  .site-header-top .site-pp-bars {
    width: var(--i24-mobile-menu-bar-w, 1.89rem);
    height: var(--i24-mobile-menu-bar-h, 1.12rem);
    flex: 0 0 var(--i24-mobile-menu-bar-w, 1.89rem);
  }
  .site-header-top .site-pp-bars span {
    height: max(2.25px, calc(var(--i24-mobile-menu-bar-h, 1.12rem) * 0.11));
  }
}

/* Menü von rechts: schmale Leiste, viele Links ohne Header-Überlauf. */
.site-header-top:has(.site-header-top-right) .site-pp-toggle {
  margin-left: 0.4rem;
}
.site-pp-toggle {
  display: inline-flex;
  cursor: pointer;
  align-items: center;
  gap: 0.5rem;
  margin-left: auto;
  flex: 0 0 auto;
  align-self: center;
  position: relative;
  z-index: 5200;
  padding: 0.45rem 0.35rem 0.45rem 0.45rem;
  color: var(--header-text, #fff);
  font-family: var(--sans);
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  background: transparent;
  border: 0;
  line-height: 1;
  min-height: 2.55rem;
  contain: layout;
  transform: none;
  transition: none;
}
.site-pp-bars {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 1.55rem;
  height: 0.95rem;
  flex: 0 0 1.55rem;
}
.site-pp-toggle.is-open {
  visibility: hidden;
}
.site-pp-bars span {
  display: block;
  width: 100%;
  height: 2.25px;
  background: currentColor;
  border-radius: 1px;
  transform: none;
  transition: none;
}
.site-pp-drawer {
  display: block;
  pointer-events: none;
}
.site-pp-drawer.is-open {
  pointer-events: auto;
}
.site-pp-backdrop {
  position: fixed;
  inset: 0;
  z-index: 5090;
  margin: 0;
  padding: 0;
  border: 0;
  background: rgba(20, 32, 48, 0.18);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.28s ease;
  cursor: pointer;
}
.site-pp-panel {
  position: fixed;
  top: 0;
  right: 0;
  left: auto;
  z-index: 5100;
  width: min(20.5rem, 88vw);
  height: 100%;
  height: 100dvh;
  display: flex;
  flex-direction: column;
  background: #fff;
  color: #3e4b5a;
  box-shadow: -16px 0 48px rgba(15, 39, 68, 0.12);
  transform: translateX(100%);
  transition: transform 0.34s cubic-bezier(0.22, 0.61, 0.36, 1);
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
.site-pp-drawer.is-open .site-pp-backdrop {
  opacity: 1;
  pointer-events: auto;
}
.site-pp-drawer.is-open .site-pp-panel { transform: translateX(0); }
.site-pp-drawer.is-snap .site-pp-backdrop,
.site-pp-drawer.is-snap .site-pp-panel {
  transition: none !important;
}
.site-pp-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 1.05rem 1.15rem 0.95rem 1.45rem;
  border-bottom: 1px solid #eef1f4;
  flex: 0 0 auto;
}
.site-pp-panel-title {
  margin: 0;
  font-family: var(--sans);
  font-size: 1rem;
  font-weight: 700;
  color: #1a2433;
}
.site-pp-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #1e2937;
  cursor: pointer;
  border-radius: 0.3rem;
}
.site-pp-close-ico {
  display: block;
}
.site-pp-close:hover,
.site-pp-close:focus-visible {
  color: #0f172a;
  background: #f4f6f8;
}
.site-pp-panel-body {
  padding: 0.65rem 0.75rem 1.75rem 1.45rem;
}
.site-pp-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.site-pp-list a {
  display: block;
  padding: 0.72rem 0.7rem 0.72rem 0;
  color: #1a2433 !important;
  text-decoration: none !important;
  font-family: var(--sans);
  font-size: 1.06rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  background: transparent !important;
  -webkit-text-fill-color: #1a2433 !important;
  border: 0;
  line-height: 1.42;
}
.site-pp-list a:hover,
.site-pp-list a:focus-visible {
  color: #c4a056 !important;
  -webkit-text-fill-color: #c4a056 !important;
}
.site-pp-list a[aria-current="page"] {
  color: #0f1419 !important;
  -webkit-text-fill-color: #0f1419 !important;
  font-weight: 700;
}
.site-pp-label {
  margin: 1.25rem 0 0.35rem;
  padding-top: 0.95rem;
  border-top: 1px solid #eef1f4;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #64748b;
}
.site-pp-list--sub a {
  font-size: 1rem;
  padding: 0.58rem 0.7rem 0.58rem 0;
  color: #334155 !important;
  -webkit-text-fill-color: #334155 !important;
  font-weight: 500;
}
.site-pp-list--sub a:hover,
.site-pp-list--sub a:focus-visible {
  color: #c4a056 !important;
  -webkit-text-fill-color: #c4a056 !important;
}

@media (min-width: 721px) {
  .site-header-primary { display: none !important; }
  .site-header-jobs--nav { display: none !important; }
  .site-header-regionbar { display: none !important; }
}
@media (prefers-reduced-motion: reduce) {
  .site-pp-backdrop,
  .site-pp-panel,
  .site-pp-bars span { transition: none; }
}
body.portal-zuerich .site-header-portal { --portal-accent: var(--region-accent-zuerich, #1e4d7b); }
body.portal-zuerichsee .site-header-portal { --portal-accent: var(--region-accent-zuerichsee, #2f6f9f); }
body.portal-aargau .site-header-portal { --portal-accent: var(--region-accent-aargau, #b45309); }
body.portal-zentralschweiz .site-header-portal { --portal-accent: var(--region-accent-zentralschweiz, #0f766e); }
body.portal-ostschweiz .site-header-portal { --portal-accent: var(--region-accent-ostschweiz, #7c3aed); }
body.portal-bern .site-header-portal { --portal-accent: var(--region-accent-bern, #9f1239); }
body.portal-basel .site-header-portal { --portal-accent: var(--region-accent-basel, #1d4ed8); }

/* ── Portal-Header: wie marktindex — Logo links, Banner+Jobs rechtsbündig am Inhalts-Container ── */
.site-header-portal .site-header-inner.wrap {
  /* Gleiche Breite wie Content → rechte Kante Banner = rechte Kante Container */
  width: min(var(--site-content-max), calc(100% - var(--site-content-gutter)));
}
.site-header-inner {
  padding: 0.7rem 0;
  overflow: visible;
}
.site-header-top {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 1.5rem;
  min-width: 0;
  width: 100%;
}
.site-header-top:has(.site-header-ad) {
  min-height: max(90px, calc(var(--header-logo-h, 7.73rem) + 0.35rem));
  align-items: center;
}
.site-header-top-right {
  display: none;
  flex: 0 0 auto;
  align-items: center;
  justify-content: flex-end;
  gap: 0.85rem;
  margin-left: auto;
  min-width: 0;
}
@media (min-width: 721px) {
  .site-header-top-right {
    display: flex;
  }
}
.site-header-brand {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.75rem 1rem;
  flex: 0 0 auto;
  min-width: 0;
}
.site-header-brand-main {
  display: flex;
  align-items: flex-end;
  gap: 0.55rem;
  min-width: 0;
}
.site-header-portal .portal-logo-block {
  text-decoration: none;
  color: inherit;
  flex: 0 0 auto;
  display: grid;
  background: #0d131c;
  border: 2px solid var(--portal-accent);
  width: 220px;
  max-width: 220px;
  box-sizing: border-box;
  overflow: hidden;
}
.site-header-portal .site-header-brand .portal-logo-block a.portal-logo-top,
.site-header-portal .site-header-brand .portal-logo-block a.portal-logo-top:link,
.site-header-portal .site-header-brand .portal-logo-block a.portal-logo-top:visited,
.site-header-portal .site-header-brand .portal-logo-block a.portal-logo-top:hover,
.site-header-portal .site-header-brand .portal-logo-block a.portal-logo-top:active,
.site-header-portal .site-header-brand .portal-logo-block a.portal-logo-top:focus-visible,
.site-header-portal .site-header-brand .portal-logo-block a.portal-logo-region,
.site-header-portal .site-header-brand .portal-logo-block a.portal-logo-region:link,
.site-header-portal .site-header-brand .portal-logo-block a.portal-logo-region:visited,
.site-header-portal .site-header-brand .portal-logo-block a.portal-logo-region:hover,
.site-header-portal .site-header-brand .portal-logo-block a.portal-logo-region:active,
.site-header-portal .site-header-brand .portal-logo-block a.portal-logo-region:focus-visible {
  text-decoration: none;
  display: block;
  color: #fff;
  font-family: var(--sans);
}
.site-header-portal .site-header-brand .portal-logo-block a.portal-logo-region {
  background: var(--portal-accent);
}
.site-header-portal .portal-logo-top {
  font-family: var(--sans);
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.85rem;
  padding: 0.45rem 0.8rem;
  color: #fff;
}
.site-header-portal .portal-logo-region {
  font-family: var(--sans);
  font-weight: 800;
  font-size: clamp(0.95rem, 1.8vw, 1.45rem);
  background: var(--portal-accent);
  color: #fff;
  padding: 0.35rem 0.65rem;
  line-height: 1.1;
  word-break: break-word;
  hyphens: auto;
}
.site-header-portal .portal-logo-block-dach {
  background: transparent;
  border: 0;
  width: auto;
  max-width: min(380px, 58vw);
  min-width: 0;
  display: block;
  line-height: 0;
  align-self: flex-end;
}
.site-header-portal .portal-logo-img {
  display: block;
  height: clamp(2.75rem, 5vw, 3.35rem);
  width: auto;
  max-width: 100%;
}
.site-header-portal .portal-jobs-wordmark,
body.portal-jobs .site-header-portal .portal-jobs-wordmark {
  align-self: flex-end;
  margin: 0 0 0.12rem;
  padding: 0.28rem 0.7rem 0.32rem;
  font-family: var(--sans);
  font-weight: 800;
  font-size: clamp(1.05rem, 2.2vw, 1.45rem);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--header-link-active);
  border: 0;
  border-radius: 0;
  border-bottom: 3px solid var(--header-link-active);
  line-height: 1;
  white-space: nowrap;
}
.site-header-portal .portal-jobs-brand {
  align-self: flex-end;
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.5rem;
  margin: 0 0 0.12rem;
  padding: 0.15rem 0 0.32rem;
  text-decoration: none;
  line-height: 1.1;
  max-width: min(100%, 22rem);
}
.site-header-portal .portal-jobs-brand-main {
  font-family: var(--sans);
  font-weight: 800;
  font-size: clamp(1.28rem, 3.2vw, 1.72rem);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--header-link-active);
  border-bottom: 2px solid var(--header-link-active);
  padding-bottom: 0.14rem;
  line-height: 1.05;
}
.site-header-portal .portal-jobs-brand-sub {
  font-family: var(--sans);
  font-weight: 500;
  font-size: clamp(0.72rem, 1.6vw, 0.88rem);
  color: rgba(255, 255, 255, 0.72);
  letter-spacing: 0.02em;
}
body.hf-luft .site-header-portal .portal-jobs-brand-sub,
body.hf-hell .site-header-portal .portal-jobs-brand-sub {
  color: var(--muted, #64748b);
}
.site-header-portal .portal-jobs-brand:hover,
.site-header-portal .portal-jobs-brand:focus-visible {
  background: transparent;
  text-decoration: none;
}
.site-header-portal .site-header-tagline {
  /* Slogan später in Gold-Kasten — bis dahin aus der Brand-Zeile raus (Platz + Ruhe) */
  display: none;
}

.site-header-ad[hidden] { display: none !important; }
.site-header-ad {
  display: flex;
  flex: 0 1 auto;
  align-items: stretch;
  justify-content: stretch;
  width: 680px;
  max-width: min(680px, 100%);
  height: 90px;
  min-width: 0;
  min-height: 90px;
  max-height: 90px;
  margin: 0;
  padding: 0;
  background: linear-gradient(115deg, #081525 0%, #123056 46%, #0066ff 100%);
  border-radius: 0;
  overflow: hidden;
  box-sizing: border-box;
  isolation: isolate;
  contain: layout paint;
}
.site-header-ad.is-filled {
  background: linear-gradient(115deg, #081525 0%, #123056 46%, #0066ff 100%);
}
.site-header-ad.is-empty {
  background: linear-gradient(115deg, #081525 0%, #123056 46%, #0066ff 100%);
  border: 0;
}
body.hf-luft .site-header-ad,
body.hf-hell .site-header-ad,
body.hf-luft .site-header-ad.is-filled,
body.hf-hell .site-header-ad.is-filled,
body.hf-luft .site-header-ad.is-empty,
body.hf-hell .site-header-ad.is-empty {
  background: linear-gradient(115deg, #081525 0%, #123056 46%, #0066ff 100%);
  border: 0;
}
body.hf-luft .site-header-ad.is-empty .site-header-ad-demo,
body.hf-hell .site-header-ad.is-empty .site-header-ad-demo {
  display: block;
  background: transparent;
}
.site-header-ad-demo {
  display: block;
  width: 680px;
  max-width: 100%;
  height: 90px;
  border: 0;
  margin: 0;
  padding: 0;
  background: linear-gradient(115deg, #081525 0%, #123056 46%, #0066ff 100%);
  pointer-events: none;
}
body.hf-luft .site-header-ad-ph,
body.hf-hell .site-header-ad-ph {
  color: #64748b;
}
body.hf-luft .site-header-ad-ph-size,
body.hf-hell .site-header-ad-ph-size {
  color: #334155;
  font-weight: 600;
}
.site-header-ad-ph {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.12rem;
  width: 100%;
  height: 100%;
  font-family: var(--sans);
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.75rem;
  font-weight: 650;
  letter-spacing: 0.03em;
  text-align: center;
  user-select: none;
  pointer-events: none;
}
.site-header-ad-ph-size {
  font-size: 0.92rem;
  font-weight: 800;
  color: rgba(255, 255, 255, 0.9);
}
.site-header-ad-ph-hint {
  font-size: 0.65rem;
  font-weight: 600;
  opacity: 0.85;
}
.site-header-ad .ad-display-stack,
.site-header-ad .ad-display,
.site-header-ad .ad-display-frame {
  width: 100%;
  max-width: 100%;
  height: 100%;
  min-height: 90px;
  margin: 0;
  flex: 1 1 auto;
}
.site-header-ad .ad-display-creative,
.site-header-ad .ad-display-creative-img,
.site-header-ad .ad-display-creative-html5 {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  margin: 0 !important;
  display: block !important;
  align-items: stretch;
  justify-content: stretch;
}
.site-header-ad .ad-display-html5 {
  border: 0;
  margin: 0;
  padding: 0;
  vertical-align: top;
  background: #fff;
}
.site-header-ad .ad-display-creative picture {
  display: block;
  width: 100%;
  height: 100%;
  line-height: 0;
}
.site-header-ad .ad-display img,
.site-header-ad .ad-display iframe,
.site-header-ad .ad-display video,
.site-header-ad .ad-display-img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover;
}
.site-header-ad .ad-display-kicker {
  display: none;
}
@media (min-width: 721px) {
  .site-header-ad { display: flex; }
}
/* Nur echte Handys: kein Header-Banner */
@media (max-width: 720px) {
  .site-header-ad,
  .site-header-top-right { display: none !important; }
}

.site-header-jobs,
.site-header a.nav-jobs {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  margin-left: 0;
  padding: 0.48rem 1.15rem;
  border-radius: 999px;
  border: 0;
  background: #c41e3a;
  color: #fff;
  font-family: var(--sans);
  font-weight: 800;
  font-size: 0.92rem;
  letter-spacing: 0.03em;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: none;
}
.site-header-jobs:hover,
.site-header a.nav-jobs:hover { filter: brightness(1.06); }
.site-header-jobs.is-on,
.site-header-jobs[aria-current="page"] {
  background: #c41e3a;
  color: #fff;
}
.site-header-jobs--panel {
  width: 100%;
  margin: 0.15rem 0 0.5rem;
  box-sizing: border-box;
}
/* Jobs-Chip in der Nav-Zeile (rechts), Banner oben frei rechtsbündig */
.site-header-jobs--nav {
  margin-left: auto;
  padding: 0.22rem 0.7rem 0.28rem;
  font-size: 0.72rem;
  letter-spacing: 0.02em;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.02rem;
  line-height: 1.05;
  white-space: nowrap;
}
.site-header-jobs-main {
  font-weight: 800;
  line-height: 1.05;
}
.site-header-jobs-by {
  font-size: 0.55rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: none;
  opacity: 0.92;
  line-height: 1.1;
}
@media (max-width: 720px) {
  .site-header-jobs--nav {
    display: none !important;
  }
}
.site-header-back {
  font-family: var(--sans);
  color: var(--header-link, #fff);
  font-weight: 700;
  font-size: 0.9rem;
  text-decoration: none;
}
.site-header-back:hover {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

/* Primary: eine klare Nav-Zeile, gleiche Sans-Schrift */
.site-header-primary {
  display: none;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.1rem 0.05rem;
  overflow: visible;
  margin-top: 0.55rem;
  padding-top: 0.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  max-width: 100%;
  font-family: var(--sans);
}
.site-header-primary-link,
.site-header-drop-summary {
  font-family: var(--sans);
  color: var(--header-link, #fff);
  text-decoration: none;
  font-weight: 500;
  font-size: 0.78rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  white-space: nowrap;
  padding: 0.4rem 0.55rem;
  border-radius: 4px;
  line-height: 1.2;
}
.site-header-primary-label {
  font-family: var(--sans);
  color: rgba(255, 255, 255, 0.55);
  font-weight: 750;
  font-size: 0.68rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
  padding: 0.4rem 0.35rem 0.4rem 0.55rem;
  line-height: 1.2;
  flex: 0 0 auto;
}
/* Jobs-Portal: keine Jobs-Pille neben dem Banner (Wordmark am Logo reicht) */
body.portal-jobs .site-header-top-right .site-header-jobs {
  display: none !important;
}
.site-header-primary-link:hover,
.site-header-primary-link:focus-visible,
.site-header-drop-summary:hover,
.site-header-drop-summary:focus-visible,
.site-header-primary-link[aria-current="page"] {
  background: var(--header-link-active, #c41e3a);
  color: #fff;
  -webkit-text-fill-color: #fff;
  box-shadow: none;
  border-radius: 4px;
  text-decoration: none;
}
.site-header-drop {
  position: relative;
  flex: 0 0 auto;
  margin: 0;
  z-index: 5;
  font-family: var(--sans);
}
.site-header-drop[open] { z-index: 60; }
.site-header-drop-summary {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  border: 0;
  background: transparent;
  -webkit-user-select: none;
  user-select: none;
}
.site-header-drop-summary::-webkit-details-marker,
.site-header-mobile-summary::-webkit-details-marker { display: none; }
.site-header-drop-summary::marker,
.site-header-mobile-summary::marker { content: ''; }
.site-header-drop-summary::after {
  content: '';
  width: 0.38rem;
  height: 0.38rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-0.1rem);
  opacity: 0.85;
  flex: 0 0 auto;
}
.site-header-drop[open] .site-header-drop-summary::after {
  transform: rotate(-135deg);
}
.site-header-drop-panel {
  position: absolute;
  left: 0;
  top: calc(100% + 0.3rem);
  z-index: 140;
  display: flex;
  flex-direction: column;
  gap: 0.08rem;
  min-width: 12.5rem;
  max-width: min(18rem, 90vw);
  max-height: min(72vh, 26rem);
  overflow: auto;
  padding: 0.45rem;
  border-radius: 0;
  background: var(--portal-bar, #1a2433);
  border: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.32);
  font-family: var(--sans);
}
.site-header-drop-panel a {
  font-family: var(--sans);
  color: var(--header-link, #fff);
  text-decoration: none;
  font-weight: 650;
  font-size: 0.92rem;
  text-transform: none;
  letter-spacing: 0;
  padding: 0.45rem 0.5rem;
  border-radius: 6px;
  line-height: 1.25;
}
.site-header-drop-panel a:hover,
.site-header-drop-panel a:focus-visible,
.site-header-drop-panel a[aria-current="page"] {
  font-weight: 650;
  background: var(--header-link-active, #c41e3a);
  color: #fff;
  text-decoration: none;
}
.site-header-regionbar {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0.4rem;
  margin: 0.55rem 0 0;
  padding: 0;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.site-header-regionbar::-webkit-scrollbar { display: none; }
.site-header-regionbar-link {
  flex: 1 1 0;
  min-width: 5.4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  text-decoration: none;
  font-family: var(--sans);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  line-height: 1.15;
  color: var(--header-link, #fff);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 4px;
  padding: 0.48rem 0.55rem;
  white-space: nowrap;
}
.site-header-regionbar-link:hover,
.site-header-regionbar-link:focus-visible,
.site-header-regionbar-link[aria-current="page"] {
  background: var(--header-link-active, #c41e3a);
  border-color: var(--header-link-active, #c41e3a);
  color: #fff;
  -webkit-text-fill-color: #fff;
  text-decoration: none;
}
/* Zürichsee: wenig flex-grow, damit kein leerer Rand links/rechts im Chip */
.site-header-regionbar-link--wide {
  flex: 1.22 1 0;
  min-width: 10.25rem;
  max-width: 12.75rem;
  font-size: 0.72rem;
  letter-spacing: 0;
  padding: 0.48rem 0.22rem;
}
.site-header-regionbar-link--aargau {
  flex: 1.55 1 0;
  min-width: 9.35rem;
  font-size: 0.74rem;
  letter-spacing: 0.01em;
  padding: 0.48rem 0.42rem;
}
@media (min-width: 1180px) {
  .site-header-regionbar {
    gap: 0.32rem;
  }
  .site-header-regionbar-link {
    font-size: 0.86rem;
    padding: 0.52rem 0.55rem;
  }
  .site-header-regionbar-link--wide {
    flex: 1.18 1 0;
    min-width: 10.5rem;
    max-width: 13.1rem;
    font-size: 0.76rem;
    padding: 0.5rem 0.18rem;
  }
  .site-header-regionbar-link--aargau {
    flex: 1.62 1 0;
    min-width: 10.1rem;
    font-size: 0.8rem;
    padding: 0.5rem 0.46rem;
  }
}
@media (min-width: 721px) {
  .site-header-primary { display: none !important; }
  .site-header-mobile-menu,
  .site-header-mobile-toggle,
  .site-nav-sheet,
  .site-mobile-tabbar { display: none !important; }
}
/* Ab Desktop: grössere Nav-Links auf allen Portalseiten.
   Die Jobs-Pille (.site-header-jobs--nav) bleibt bewusst klein — sie sitzt in
   derselben Zeile wie der Header-Banner und würde ihn sonst verschieben. */
@media (min-width: 1180px) {
  .site-header-primary-link,
  .site-header-primary .site-header-drop-summary {
    font-size: 0.92rem;
    /* Schmaler als der Standard: die Regionsseiten haben bis zu zehn Punkte und
       bräuchten mit 0.55rem eine zweite Zeile. */
    padding-left: 0.4rem;
    padding-right: 0.4rem;
  }
}
@media (max-width: 720px) {
  /* Logo links, Hamburger rechts */
  .site-header-top {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
  }
  .site-pp-toggle-txt {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
  }
  .site-header-brand {
    flex: 1 1 auto;
    min-width: 0;
    max-width: none;
  }
  .site-header-mobile-menu,
  .site-header-mobile-toggle {
    display: none !important;
  }
  .site-header-jobs--nav {
    display: none !important;
  }
  .site-header-regionbar {
    display: none !important;
  }
  .site-header-portal .portal-logo-block-dach {
    max-width: min(220px, 68vw);
  }
  .site-header-portal .portal-logo-img {
    height: 2.45rem;
  }
  /* Jobs-Wortmark nur Desktop — Mobile: Jobs im Menü, Header bleibt Logo | Menü */
  .site-header-portal .portal-jobs-wordmark {
    display: none !important;
  }
}

/* Schnellzugriff — nur Mobile, nur Regionsseiten.
   Steht im Seitenfluss unter der Kopfzeile, nicht in der fixierten Leiste:
   sonst muesste --portal-pad-top fuer jeden Fall nachgezogen werden.
   Feste Spalten (minmax(0,1fr)) statt Umbruch — die Zeile ist immer eine. */
.site-quicknav {
  display: none;
}
@media (max-width: 720px) {
  /* Regions-Mobile: alles im Menü — keine Blog/Jobs-Pille unter dem Ticker */
  .site-quicknav {
    display: none !important;
  }
}

.site-header-mobile-menu {
  position: relative;
  flex: 0 0 auto;
  margin: 0;
  font-family: var(--sans);
}
.site-header-mobile-summary,
.site-header-mobile-toggle {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.8rem;
  border-radius: 0;
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
  font-family: var(--sans);
  font-weight: 750;
  font-size: 0.85rem;
  appearance: none;
  -webkit-appearance: none;
}
.site-header-mobile-toggle::after {
  content: '';
  width: 0.38rem;
  height: 0.38rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(-135deg) translateY(0.08rem);
  flex: 0 0 auto;
}
.site-header-mobile-toggle[aria-expanded="true"]::after {
  transform: rotate(45deg) translateY(-0.1rem);
}
.site-header-mobile-panel {
  position: absolute;
  right: 0;
  top: calc(100% + 0.35rem);
  z-index: 150;
  width: min(19rem, 92vw);
  max-height: min(75vh, 28rem);
  overflow: auto;
  overscroll-behavior: contain;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  padding: 0.6rem;
  border-radius: 0;
  background: var(--portal-bar, #1a2433);
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.35);
  font-family: var(--sans);
}
@media (max-width: 720px) {
  /* Goldlinie volle Viewport-Breite (nicht nur .wrap) — auch bei offenem Menü durchgängig */
  .site-header-portal .site-header-inner {
    position: relative;
    border-bottom: 0;
  }
  .site-header-portal .site-header-inner::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: 0;
    z-index: 2;
    width: 100vw;
    height: 3px;
    transform: translateX(-50%);
    background: var(--header-link-active, var(--accent, #c4a035));
    pointer-events: none;
  }
  .site-header-portal .news-band {
    border-top-width: 0;
  }
  body.hf-luft.portal-page .site-header-portal .site-header-inner::after,
  body.hf-hell.portal-page .site-header-portal .site-header-inner::after {
    display: none;
  }
  body.hf-luft.portal-page .site-header-portal .news-band,
  body.hf-hell.portal-page .site-header-portal .news-band {
    border-top: 1px solid var(--portal-header-rule, #eceff2);
  }
  body.hf-luft.portal-page .site-header-portal:not(:has(.news-band)),
  body.hf-hell.portal-page .site-header-portal:not(:has(.news-band)) {
    border-bottom: 1px solid var(--portal-header-rule, #eceff2);
  }
  body.hf-luft.portal-page .site-header-portal.is-shrunk,
  body.hf-hell.portal-page .site-header-portal.is-shrunk {
    border-bottom: 1px solid var(--portal-header-rule, #eceff2);
  }
  .site-header-mobile-menu {
    position: static;
  }
  .site-header-mobile-panel {
    /* Unter der Goldlinie, ohne sie zu überdecken */
    top: calc(100% + 3px) !important;
    right: 0 !important;
    left: auto !important;
    width: min(19rem, 100%) !important;
    max-width: 100%;
    margin: 0 !important;
    padding: 0.65rem 0.55rem;
    border-radius: 0 !important;
    border: 0 !important;
    border-top: 0 !important;
    box-shadow: 0 16px 28px rgba(0, 0, 0, 0.35);
  }
}
.site-header-panel-title {
  margin: 0.55rem 0 0.2rem;
  padding: 0.2rem 0.4rem 0.35rem;
  font-family: var(--sans);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--header-link-active, var(--accent, #c4a035));
  border-bottom: 1px solid color-mix(in srgb, var(--header-link-active, var(--accent, #c4a035)) 45%, transparent);
}
.site-header-mobile-panel > .site-header-panel-title:first-child,
.site-header-mobile-panel > .site-header-back + .site-header-panel-title {
  margin-top: 0.15rem;
}
.site-header-mobile-jobs {
  opacity: 0.92;
}
.site-header-mobile-panel > a {
  font-family: var(--sans);
  color: #fff;
  text-decoration: none;
  font-weight: 650;
  font-size: 0.95rem;
  padding: 0.48rem 0.5rem;
  border-radius: 6px;
}
.site-header-mobile-panel > a:hover,
.site-header-mobile-panel > a[aria-current="page"] {
  background: rgba(255, 255, 255, 0.1);
}
.site-header-mobile-panel > a[aria-current="page"] {
  color: var(--header-link-active, var(--accent, #c4a035));
  font-weight: 800;
}

/* Mobile Bottom-Sheet — nur bis 720px, Overlay ohne Document-Flow (kein CLS) */
.site-nav-sheet {
  display: none;
}
@media (max-width: 720px) {
  body.portal-page {
    --site-mobile-tabbar-h: 0px;
    padding-bottom: 0;
  }
  .site-nav-sheet {
    position: fixed;
    inset: 0;
    z-index: 6200;
    display: none;
    visibility: hidden;
    pointer-events: none;
  }
  .site-nav-sheet.is-open {
    display: block;
    visibility: visible;
    pointer-events: auto;
  }
  .site-nav-sheet-backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    padding: 0;
    margin: 0;
    background: rgba(10, 14, 22, 0.48);
    opacity: 0;
    transition: opacity 0.22s ease;
    cursor: pointer;
  }
  .site-nav-sheet.is-open .site-nav-sheet-backdrop {
    opacity: 1;
  }
  .site-nav-sheet-card {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    max-height: min(80vh, 36rem);
    display: flex;
    flex-direction: column;
    background: var(--portal-bar, #1a2433);
    color: #fff;
    border-radius: 1.15rem 1.15rem 0 0;
    box-shadow: 0 -18px 40px rgba(0, 0, 0, 0.38);
    transform: translateY(110%);
    transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
    padding: 0;
  }
  .site-nav-sheet.is-open .site-nav-sheet-card {
    transform: translateY(0);
  }
  .site-nav-sheet-handle {
    width: 2.4rem;
    height: 0.28rem;
    margin: 0.55rem auto 0.15rem;
    border-radius: 99px;
    background: rgba(255, 255, 255, 0.38);
    flex: 0 0 auto;
  }
  .site-nav-sheet-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.35rem 1rem 0.55rem;
  }
  .site-nav-sheet-title {
    margin: 0;
    font-family: var(--sans);
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: 0.01em;
  }
  .site-nav-sheet-close {
    appearance: none;
    -webkit-appearance: none;
    border: 1px solid rgba(255, 255, 255, 0.22);
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    font-family: var(--sans);
    font-size: 0.82rem;
    font-weight: 700;
    padding: 0.38rem 0.7rem;
    cursor: pointer;
  }
  .site-nav-sheet-body {
    overflow: auto;
    overscroll-behavior: contain;
    padding: 0 1rem 1.15rem;
    -webkit-overflow-scrolling: touch;
  }
  .site-nav-sheet-home {
    display: block;
    color: #fff;
    text-decoration: none;
    font-family: var(--sans);
    font-weight: 700;
    font-size: 1.02rem;
    padding: 0.62rem 0.15rem 0.78rem;
    line-height: 1.42;
  }
  .site-nav-sheet-home:hover,
  .site-nav-sheet-home:focus-visible {
    color: #fff;
    background: var(--header-link-active, #c41e3a);
    border-radius: 4px;
    text-decoration: none;
  }
  .site-nav-sheet-label {
    margin: 0.85rem 0 0.45rem;
    padding: 0 0 0.35rem;
    font-family: var(--sans);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--header-link-active, var(--accent, #c4a035));
    border-bottom: 1px solid color-mix(in srgb, var(--header-link-active, var(--accent, #c4a035)) 45%, transparent);
  }
  .site-nav-sheet-body > .site-nav-sheet-label:first-child {
    margin-top: 0.2rem;
  }
  .site-nav-sheet-regions {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.4rem;
  }
  .site-nav-sheet-region {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 2.55rem;
    padding: 0.4rem 0.45rem;
    text-align: center;
    text-decoration: none;
    color: #fff;
    font-family: var(--sans);
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.2;
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.16);
    overflow-wrap: anywhere;
  }
  .site-nav-sheet-region--wide {
    grid-column: 1 / -1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    overflow-wrap: normal;
  }
  .site-nav-sheet-region:hover,
  .site-nav-sheet-region:focus-visible,
  .site-nav-sheet-region[aria-current="page"] {
    background: var(--header-link-active, #c41e3a);
    border-color: var(--header-link-active, #c41e3a);
    color: #fff;
    text-decoration: none;
  }
  .site-nav-sheet-links {
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
  }
  .site-nav-sheet-links a {
    color: #fff;
    text-decoration: none;
    font-family: var(--sans);
    font-weight: 650;
    font-size: 1.02rem;
    padding: 0.62rem 0.15rem;
    line-height: 1.42;
  }
  .site-nav-sheet-links a:hover,
  .site-nav-sheet-links a:focus-visible,
  .site-nav-sheet-links a[aria-current="page"] {
    color: #fff;
    background: var(--header-link-active, #c41e3a);
    font-weight: 650;
    border-radius: 4px;
    text-decoration: none;
  }
  .site-nav-sheet-jobs {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.08rem;
    margin: 0.15rem 0 0.85rem;
    padding: 0.72rem 0.8rem 0.78rem;
    text-decoration: none;
    background: #c41e3a;
    color: #fff;
  }
  .site-nav-sheet-jobs-main {
    font-family: var(--sans);
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }
  .site-nav-sheet-jobs-by {
    font-family: var(--sans);
    font-size: 0.72rem;
    font-weight: 650;
    opacity: 0.94;
  }
}
@media (max-width: 720px) and (prefers-reduced-motion: reduce) {
  .site-nav-sheet-backdrop,
  .site-nav-sheet-card {
    transition: none;
  }
}

/* Mobile Tab-Leiste unten — wie local-job.ch (Menü fährt darüber hoch) */
.site-mobile-tabbar {
  display: none;
}
@media (max-width: 720px) {
  .site-mobile-tabbar {
    display: none !important;
  }
  body.portal-page .cookie-consent {
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
}

@media (min-width: 721px) {
  .site-header-top .site-header-jobs { display: inline-flex; }
}
@media (max-width: 720px) {
  .site-header-portal .site-header-tagline { display: none; }
}

/* Shrink = Desktop only (local-job.ch: Header-Leiste kürzer, Logo-Pixel unverändert).
   body --portal-pad-top bleibt gross — kein CLS, nur die fixe Leiste wird flacher. */
@media (min-width: 721px) {
  body.portal-page {
    /* Scroll-Balken: kompaktes Logo + Menü (local-job ~56px Logo in ~90px Leiste) */
    --i24-header-logo-shrunk: 2.95rem;
    --i24-header-bar-h-shrunk: 3.55rem;
  }
  .site-header-portal {
    overflow: hidden;
    max-height: none;
    transition:
      height 0.35s ease,
      max-height 0.35s ease,
      box-shadow 0.35s ease;
  }
  body.portal-header-shrunk .site-header-portal.is-shrunk {
    height: var(--i24-header-bar-h-shrunk);
    max-height: var(--i24-header-bar-h-shrunk);
    overflow: hidden !important;
    box-shadow: 0 1px 6px rgba(26, 36, 51, 0.08);
  }
  body.hf-luft.portal-page .site-header-portal.is-shrunk,
  body.hf-hell.portal-page .site-header-portal.is-shrunk {
    border-bottom: 1px solid var(--portal-header-rule, #eceff2);
  }
  .site-header-portal .site-header-inner,
  .site-header-portal .news-band {
    transition:
      padding 0.35s ease,
      max-height 0.35s ease,
      opacity 0.28s ease,
      border-width 0.35s ease;
  }
  body.hf-luft .site-header-portal:not(.is-shrunk) .site-header-inner,
  body.hf-hell .site-header-portal:not(.is-shrunk) .site-header-inner {
    padding-top: 0.95rem;
    padding-bottom: 0.7rem;
  }
  .site-header-portal:not(.is-shrunk) .site-header-inner {
    padding-top: 0.7rem;
    padding-bottom: 0.7rem;
  }
  .site-header-portal.is-shrunk .site-header-tagline,
  .site-header-portal.is-shrunk .site-header-ad {
    display: none;
  }
  body.portal-page .site-header-portal.is-shrunk .site-header-primary,
  body.portal-page .site-header-portal.is-shrunk .site-header-regionbar {
    display: none !important;
  }
  .site-header-portal.is-shrunk .site-header-top-right {
    display: none;
  }
  .site-header-portal.is-shrunk .site-header-top,
  .site-header-portal.is-shrunk .site-header-top:has(.site-header-ad) {
    min-height: 0;
    height: var(--i24-header-bar-h-shrunk);
    align-items: center;
    gap: 0.5rem 0.85rem;
  }
  .site-header-portal.is-shrunk .site-header-inner {
    padding-top: 0;
    padding-bottom: 0;
  }
  body.hf-luft .site-header-portal.is-shrunk .site-header-inner,
  body.hf-hell .site-header-portal.is-shrunk .site-header-inner {
    padding-top: 0;
    padding-bottom: 0;
  }
  body.hf-luft .site-header-portal.is-shrunk .site-header-top,
  body.hf-hell .site-header-portal.is-shrunk .site-header-top {
    min-height: 0;
  }
  .site-header-portal.is-shrunk .site-pp-toggle {
    min-height: 0;
    padding: 0.2rem 0.15rem 0.2rem 0.3rem;
    align-self: center;
    line-height: 1;
  }
  .site-header-portal.is-shrunk .brand-mark-img {
    max-height: var(--i24-header-logo-shrunk, 2.95rem);
    max-width: min(20rem, calc(100vw - 6.25rem));
  }
  .site-header-portal .news-band {
    overflow: hidden;
    max-height: 3.25rem;
  }
  .site-header-portal.is-shrunk .news-band {
    display: none !important;
    max-height: 0 !important;
    opacity: 0;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    border-top-width: 0 !important;
    pointer-events: none;
  }
  @media (prefers-reduced-motion: reduce) {
    .site-header-portal,
    .site-header-portal .news-band,
    .site-header-portal .site-header-inner {
      transition: none !important;
    }
  }
}

/* Mobile: Header beim Runterlesen weg, beim Hochwischen wieder da;
   «Nach oben»-Button wenn weit unten (kein Document-Flow → kein CLS). */
@media (max-width: 720px) {
  /* Platz bleibt via body padding — Hide nur per transform (kein Layout-Jitter).
     Nur im Hidden-Zustand GPU-Layer, sonst bleibt die Schrift auf der Text-Raster-Ebene. */
  .site-header-portal {
    transform: none;
    transition: transform 0.18s ease-out;
  }
  .site-header-portal.is-reduced-motion {
    transition: none;
  }
  .site-header-portal.is-mobile-hidden {
    transform: translate3d(0, -100%, 0);
    box-shadow: none;
    pointer-events: none;
  }
  .news-band-track,
  .home-sf-track.is-marquee {
    will-change: auto;
  }

  .site-header-top {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
  }
  .site-header-brand {
    flex-wrap: nowrap;
    width: auto;
    max-width: none;
    flex: 1 1 auto;
    min-width: 0;
    align-items: center;
    gap: 0.45rem 0.65rem;
  }
  .site-header-top {
    min-height: 0;
  }
  .site-header-portal .portal-logo-block-dach {
    max-width: min(220px, 68vw);
  }
  .site-header-portal .portal-logo-img {
    height: 2.45rem;
  }
  .site-header-portal .site-header-tagline {
    display: none;
  }
  .site-header-aside,
  .site-header-tools {
    display: none;
  }
}

@media (max-width: 1100px) and (min-width: 721px) {
  .site-header-portal .site-header-regions {
    flex: 1 1 auto;
    min-width: 0;
    margin-left: auto;
    justify-content: flex-end;
  }
  .site-header-portal.is-shrunk .site-header-tagline {
    display: none;
    visibility: hidden;
    opacity: 0;
  }
}

@media (max-width: 860px) and (min-width: 721px) {
  .site-header-portal .site-header-regions {
    width: 100%;
    margin-left: 0;
  }
}

.hero { padding: 3.5rem 0 2rem; }
.eyebrow { text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.75rem; color: var(--muted); margin: 0 0 0.6rem; }
h1, h2, h3 { font-family: var(--font); line-height: 1.15; margin: 0 0 0.75rem; }
h1 { font-size: clamp(2.2rem, 5vw, 3.4rem); max-width: 14ch; font-weight: var(--heading-weight); }
.lede { font-size: 1.15rem; color: var(--muted); max-width: 42rem; }
.hero-actions { display: flex; gap: 0.75rem; flex-wrap: wrap; margin-top: 1.5rem; }

.btn {
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--btn-bg, var(--accent-2)); color: var(--btn-text, #fff);
  border: 1px solid var(--btn-border, var(--accent-2));
  border-radius: var(--btn-radius, 8px);
  padding: 0.7rem 1.15rem; font-weight: 600; text-decoration: none; cursor: pointer;
}
.btn:hover,
.btn:focus-visible {
  background: color-mix(in srgb, var(--btn-bg, var(--accent-2)) 85%, #000);
  border-color: color-mix(in srgb, var(--btn-border, var(--accent-2)) 85%, #000);
  color: var(--btn-text, #fff);
}
.btn-ghost {
  background: var(--btn-ghost-bg, #fff);
  color: var(--btn-ghost-text, var(--ink));
  border: 1px solid var(--btn-border, var(--line));
}
.btn-ghost:hover,
.btn-ghost:focus-visible {
  background: var(--btn-bg, var(--accent-2));
  border-color: var(--btn-border, var(--accent-2));
  color: var(--btn-text, #fff);
}

.section { padding: 1.5rem 0 2.5rem; }
.muted { color: var(--muted); }
.card-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1rem; margin-top: 1rem;
}
.card {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 1.1rem 1.15rem; box-shadow: var(--shadow); text-decoration: none; color: inherit;
  transition: transform .15s ease, border-color .15s ease;
}
.card:hover { transform: translateY(-2px); border-color: #c4a035; }
.badge {
  display: inline-block; margin-top: 0.7rem; font-size: 0.75rem;
  background: #f3e8c4; color: var(--accent-2); padding: 0.25rem 0.55rem; border-radius: 999px;
}
.admin-table .badge { margin-top: 0; }
.badge-home {
  background: #fff3d6;
  color: #7a5400;
  font-weight: 600;
}
.admin-row-home td { background: #fffbeb; }
.placement-box {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 0.9rem 1rem 1rem;
  background: #fafbfd;
  display: grid;
  gap: 0.55rem;
}
.placement-box legend {
  font-weight: 600;
  padding: 0 0.25rem;
}
.region-layout-sort {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.35rem;
}
.region-layout-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.45rem 0.55rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}
.region-layout-grip {
  color: var(--muted);
  font-size: 0.85rem;
  user-select: none;
}
.region-layout-label {
  flex: 1;
  font-size: 0.92rem;
}
.region-layout-actions {
  display: flex;
  gap: 0.2rem;
}
.region-layout-actions .btn {
  padding: 0.15rem 0.45rem;
  min-width: 2rem;
}
.jobs-import-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.85rem;
  margin: 1.25rem 0 1.75rem;
}
.jobs-import-actions--run {
  margin-top: 0;
}
.jobs-import-actions-note {
  font-size: 0.88em;
  line-height: 1.45;
}
.jobs-import-danger-zone {
  margin: 0 0 2rem;
  padding: 0.9rem 1rem 1rem;
  border: 2px solid #fecaca;
  border-radius: var(--radius);
  background: #fff5f5;
}
.jobs-import-danger-zone summary,
.jobs-import-danger-zone h2 {
  margin: 0;
  cursor: default;
  font-weight: 600;
  font-size: 1.05rem;
  color: #b91c1c;
}
.jobs-import-purge-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem 1rem;
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid #fecaca;
}
.jobs-import-purge-meta {
  display: grid;
  gap: 0.2rem;
  min-width: min(100%, 18rem);
}
.jobs-import-purge-btn {
  font-size: 0.82rem;
  padding: 0.35rem 0.65rem;
  border-color: #b91c1c;
  color: #b91c1c;
}
.jobs-import-purge-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.jobs-import-page #sperrliste,
.jobs-import-page #feed,
.jobs-import-page #rubriken,
.jobs-import-page #cron,
.jobs-import-page #masse {
  scroll-margin-top: 4.75rem;
}
.jobs-import-jump {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0 0 1rem;
  position: sticky;
  top: 0.5rem;
  z-index: 4;
  background: #fff;
  padding: 0.35rem 0;
}
.jobs-import-jump a {
  display: inline-flex;
  align-items: center;
  padding: 0.4rem 0.75rem;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  background: #f8fafc;
  color: inherit;
  text-decoration: none;
  font-weight: 650;
  font-size: 0.92rem;
}
.jobs-import-jump a:hover {
  border-color: #c4a035;
  background: #fffbeb;
}
.jobs-import-status {
  margin: 0 0 1.25rem;
  padding: 0.85rem 1rem;
  border: 1px solid #e8e4dc;
  border-radius: var(--radius);
  background: #fff;
}
.jobs-import-status p { margin: 0; }
.jobs-import-warn {
  margin-top: 0.55rem !important;
  padding: 0.55rem 0.7rem;
  border-radius: 6px;
  background: #fff7ed;
  border: 1px solid #fdba74;
  color: #9a3412;
  font-size: 0.92em;
}
.jobs-import-log-box { background: #f8fafc; }
.jobs-import-log-banner {
  margin: 0 0 0.75rem;
  padding: 0.55rem 0.75rem;
  border-radius: 8px;
  font-size: 0.92em;
}
.jobs-import-log-banner--info {
  background: #eff6ff;
  border: 1px solid #93c5fd;
  color: #1e40af;
}
.jobs-import-log-panel {
  margin: 0 0 0.65rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #fff;
}
.jobs-import-log-summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.65rem;
  padding: 0.55rem 0.75rem;
  font-size: 0.92em;
}
.jobs-import-log-summary::-webkit-details-marker { display: none; }
.jobs-import-log-title { font-weight: 600; }
.jobs-import-log-mtime { font-size: 0.85em; margin-left: auto; }
.jobs-import-log-badge {
  font-size: 0.78em;
  padding: 0.15rem 0.45rem;
  border-radius: 999px;
  border: 1px solid #cbd5e1;
  background: #f1f5f9;
  color: #334155;
}
.jobs-import-log-badge--ok { background: #ecfdf5; border-color: #6ee7b7; color: #047857; }
.jobs-import-log-badge--error { background: #fef2f2; border-color: #fca5a5; color: #b91c1c; }
.jobs-import-log-badge--warn { background: #fff7ed; border-color: #fdba74; color: #c2410c; }
.jobs-import-log-badge--info { background: #eff6ff; border-color: #93c5fd; color: #1d4ed8; }
.jobs-import-log-badge--idle { background: #f8fafc; border-color: #e2e8f0; color: #64748b; }
.jobs-import-log-pre {
  margin: 0;
  padding: 0.65rem 0.75rem;
  max-height: 22rem;
  overflow: auto;
  font-size: 0.76em;
  line-height: 1.45;
  background: #0f172a;
  color: #e2e8f0;
  border-top: 1px solid #334155;
  white-space: pre-wrap;
  word-break: break-word;
}
.jobs-import-log-empty,
.jobs-import-log-path {
  margin: 0;
  padding: 0.45rem 0.75rem 0.65rem;
  font-size: 0.85em;
}
.jobs-import-cats,
.jobs-import-rubriken-panel {
  margin: 0 0 2rem;
  padding: 1rem 1.05rem 1.15rem;
  border: 1px solid #ddd6fe;
  border-radius: var(--radius);
  background: #faf5ff;
}
.jobs-import-rubriken-options {
  padding: 0.75rem 0.85rem;
  margin: 0 0 0.85rem;
  border: 1px solid #e9e5f5;
  border-radius: 10px;
  background: #fff;
  display: grid;
  gap: 0.55rem;
}
.jobs-import-rubriken-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  align-items: end;
  margin: 0 0 0.85rem;
  padding: 0.65rem 0.85rem;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #fff;
}
.jobs-import-rubriken-active {
  margin: 0 0 1rem;
  padding: 0.85rem 0.95rem;
  border: 2px solid #7c3aed;
  border-radius: 10px;
  background: #fff;
  position: sticky;
  top: 0.35rem;
  z-index: 2;
}
.jobs-import-rubriken-chips {
  list-style: none;
  margin: 0.5rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  max-height: 8.5rem;
  overflow: auto;
}
.jobs-import-rubriken-chip {
  display: inline-flex;
  align-items: flex-start;
  gap: 0.2rem;
  max-width: 100%;
  padding: 0.22rem 0.28rem 0.22rem 0.55rem;
  border-radius: 999px;
  background: #ede9fe;
  color: #5b21b6;
  font-size: 0.82rem;
  line-height: 1.35;
}
.jobs-import-rubriken-chip-label {
  overflow-wrap: anywhere;
  padding: 0.06rem 0;
}
.jobs-import-rubriken-chip-remove {
  flex-shrink: 0;
  margin: 0;
  padding: 0 0.35rem;
  min-width: 1.65rem;
  min-height: 1.65rem;
  border: none;
  border-radius: 999px;
  background: transparent;
  color: #6d28d9;
  font-size: 1.15rem;
  line-height: 1;
  cursor: pointer;
}
.jobs-import-rubriken-chip-remove:hover,
.jobs-import-rubriken-chip-remove:focus-visible {
  background: #ddd6fe;
  outline: none;
}
.jobs-import-picked-hint {
  margin: 0.35rem 0 0;
  font-size: 0.88rem;
}
.jobs-import-cat.is-active label.check {
  border-color: #7c3aed;
  background: #faf5ff;
}
.jobs-import-rubriken-picked {
  margin-bottom: 1rem;
}
.jobs-import-rubriken-browse {
  padding: 0.85rem 0.9rem 0.65rem;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #fff;
}
.jobs-import-rubriken-browse-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 1rem;
  margin-bottom: 0.5rem;
}
.jobs-import-rubriken-browse-head .jobs-import-rest-title {
  margin: 0;
}
.jobs-import-cat-list--grid {
  grid-template-columns: 1fr;
}
@media (min-width: 720px) {
  .jobs-import-cat-list--grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1100px) {
  .jobs-import-cat-list--grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.jobs-import-cat-group-letter {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  padding: 0.1rem 0.45rem;
  margin-right: 0.5rem;
  border-radius: 6px;
  background: #1e293b;
  color: #fff;
  font-weight: 700;
  font-size: 0.9em;
}
.jobs-import-cat-group-meta {
  color: #64748b;
  font-weight: 500;
  font-size: 0.88em;
}
.jobs-import-cat-scan {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem;
  margin: 0 0 1rem;
}
.jobs-import-cat-tools,
.jobs-import-rubriken-toolbar .jobs-import-cat-search {
  flex: 1 1 16rem;
}
.jobs-import-cat-tools {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  align-items: end;
  margin: 0.75rem 0 0.5rem;
}
.jobs-import-cat-search {
  flex: 1 1 16rem;
}
.jobs-import-cat-search input {
  width: 100%;
  min-height: 2.5rem;
}
.jobs-import-cat-btns { display: flex; gap: 0.4rem; flex-wrap: wrap; }
.jobs-import-letters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin: 0 0 0.75rem;
}
.jobs-import-letter {
  min-width: 2rem;
  padding: 0.25rem 0.4rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
  font-weight: 650;
}
.jobs-import-letter.is-on {
  background: #1e293b;
  color: #fff;
  border-color: #1e293b;
}
.jobs-import-picked {
  margin: 0.85rem 0 1rem;
  padding: 0.75rem 0.85rem 0.9rem;
  border: 2px solid #7c3aed;
  border-radius: 10px;
  background: #fff;
}
.jobs-import-picked-title,
.jobs-import-rest-title {
  margin: 0 0 0.55rem;
  font-size: 1rem;
}
.jobs-import-picked-title span {
  display: inline-block;
  min-width: 1.4rem;
  padding: 0 0.35rem;
  border-radius: 999px;
  background: #7c3aed;
  color: #fff;
  font-size: 0.85em;
  text-align: center;
}
.jobs-import-picked-empty { margin: 0 0 0.35rem; }
.jobs-import-rest-title { margin: 0.85rem 0 0.45rem; }
.jobs-import-cat-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.45rem;
}
.jobs-import-cat {
  overflow: visible;
  min-width: 0;
}
.jobs-import-cat label.check {
  display: flex !important;
  flex-direction: row;
  align-items: flex-start;
  gap: 0.75rem;
  margin: 0;
  padding: 0.55rem 0.7rem;
  border: 1px solid #e9e5f5;
  border-radius: 8px;
  background: #fff;
  overflow: visible;
  white-space: normal;
}
.jobs-import-cat label.check input[type="checkbox"] {
  width: 1.25rem;
  height: 1.25rem;
  margin: 0.2rem 0 0;
  flex: 0 0 1.25rem;
  position: relative;
  z-index: 1;
  accent-color: #7c3aed;
  border-radius: 3px;
}
.jobs-import-cat-text {
  display: block;
  min-width: 0;
  flex: 1 1 auto;
  overflow: visible;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
  line-height: 1.35;
}
.jobs-import-cat-text strong {
  display: block;
  font-weight: 650;
  overflow: visible;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.jobs-import-blocklist-section {
  margin: 0 0 1.75rem;
  padding: 1rem 1.1rem 1.15rem;
  border: 2px solid #c4a035;
  border-radius: var(--radius);
  background: #fffdf8;
}
.jobs-import-blocklist-section h2 {
  margin: 0 0 0.5rem;
  font-size: 1.15rem;
}
.jobs-import-blocklist-tools {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 0.65rem 1rem;
  margin: 0 0 0.65rem;
}
.jobs-import-blocklist-search {
  flex: 1 1 14rem;
  min-width: 12rem;
}
.jobs-import-blocklist-search input {
  width: 100%;
  max-width: 22rem;
}
.jobs-import-blocklist-count {
  margin: 0;
  font-size: 0.88em;
}
.jobs-import-blocklist-pager-meta {
  margin: 0;
  font-size: 0.88em;
  flex: 1 1 100%;
}
.jobs-import-blocklist-pagination {
  margin: 0.85rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}
.jobs-import-blocklist-pagination--top {
  margin: 0 0 0.65rem;
}
.jobs-import-blocklist-filter-hint {
  margin: 0.55rem 0 0;
  font-size: 0.82em;
}
.admin-blocklist-table .admin-blocklist-th-action,
.admin-blocklist-table .admin-blocklist-action {
  width: 8.5rem;
  text-align: right;
  white-space: nowrap;
}
.admin-blocklist-action form {
  margin: 0;
  display: flex;
  justify-content: flex-end;
}
.admin-blocklist-free-btn {
  background: #166534;
  border-color: #166534;
  color: #fff;
  font-size: 0.82rem;
  padding: 0.35rem 0.65rem;
}
.admin-blocklist-free-btn:hover {
  background: #14532d;
  border-color: #14532d;
  color: #fff;
}
.admin-listings-block-bar--free {
  border-color: #86efac;
  background: #f0fdf4;
}
.admin-row-menu__panel button.admin-row-menu__free {
  color: #166534;
  font-weight: 650;
}
.jobs-feed-block-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.35rem 0.75rem;
  padding: 0.35rem 0 0.25rem;
}
.jobs-feed-block-radio {
  flex: 1 1 14rem;
  max-width: 100%;
}
.jobs-feed-block-body {
  padding: 0 0 0.25rem 0.15rem;
}
.jobs-feed-block-stats {
  font-size: 0.82em;
  padding-top: 0.85rem;
}
.jobs-feed-active-tag {
  color: #166534;
  font-style: normal;
  font-weight: 600;
}
.jobs-feed-url-label {
  display: block;
  margin-top: 0.5rem;
  font-weight: 600;
}
.jobs-feed-url-input {
  display: block;
  width: 100%;
  margin-top: 0.25rem;
  font-weight: 400;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.88rem;
}
.jobs-feed-url-hint {
  margin: 0.35rem 0 0;
  font-size: 0.78em;
}
.jobs-feed-cron-details {
  margin-top: 0.5rem;
}
.jobs-feed-cron-summary {
  cursor: pointer;
  font-size: 0.82rem;
  color: #475569;
  list-style: none;
  padding: 0.2rem 0;
}
.jobs-feed-cron-summary::-webkit-details-marker {
  display: none;
}
.jobs-import-purge-feeds {
  margin-top: 0.75rem;
  border-top: 1px solid #fecaca;
  padding-top: 0.5rem;
}
.jobs-import-purge-feeds summary {
  cursor: pointer;
  font-weight: 600;
  color: #b91c1c;
  padding: 0.35rem 0;
}
.jobs-import-cat-groups {
  display: grid;
  gap: 0.35rem;
}
.jobs-import-cat-group {
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 0 0.65rem 0.45rem;
  background: #fff;
}
.jobs-import-cat-group summary {
  cursor: pointer;
  font-weight: 600;
  padding: 0.5rem 0;
  list-style: none;
}
.jobs-import-cat-group summary::-webkit-details-marker { display: none; }
.jobs-import-cat-text .muted {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.82em;
  overflow: visible;
  white-space: normal;
  overflow-wrap: anywhere;
}
.company-cover-focus-wrap {
  display: grid;
  gap: 0.85rem;
}
@media (min-width: 800px) {
  .company-cover-focus-wrap {
    grid-template-columns: minmax(16rem, 26rem) minmax(12rem, 16rem);
    align-items: start;
  }
}
/* Hero (③): volle Breite — nicht in 2-Spalten-Grid quetschen */
.company-hero-crop-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  width: 100%;
  max-width: var(--site-content-max);
}
.company-cover-upload--hero .js-entity-image-preview-host {
  display: none !important;
}
.company-cover-upload .js-entity-image-img {
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
}
.company-focus-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.35rem;
  max-width: 16rem;
}
.company-focus-cell {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0.4rem 0.2rem;
  border: 1px solid var(--line, #e4e0d8);
  background: #fff;
  font-size: 0.72rem;
  font-weight: 600;
  text-align: center;
  line-height: 1.15;
  cursor: pointer;
}
.company-focus-cell input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.company-focus-cell:has(input:checked) {
  border-color: var(--accent, #c4a035);
  background: #fffbeb;
  color: #142033;
}
.seo-counter { display:block; font-size:0.8rem; margin-top:0.2rem; color:#64748b; }
.seo-len-ok { color:#0f766e; }
.seo-len-warn { color:#b45309; }
.seo-len-bad { color:#b91c1c; }
.seo-badge { display:inline-block; font-size:0.75rem; font-weight:600; padding:0.15rem 0.45rem; border-radius:999px; margin-top:0.35rem; }
.seo-badge-ok { background:#ccfbf1; color:#0f766e; }
.seo-badge-warn { background:#fef3c7; color:#92400e; }
.seo-badge-bad { background:#fee2e2; color:#991b1b; }
.gj-status-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; align-items:start; }
@media (max-width: 960px) { .gj-status-row { grid-template-columns:1fr; } }
.gj-status-card h2 { font-size:1.1rem; }
.gj-quota { margin-top:0.85rem; }
.gj-quota-head { display:flex; justify-content:space-between; gap:0.5rem; font-size:0.92rem; margin-bottom:0.35rem; }
.gj-quota-bar { height:0.55rem; background:#e2e8f0; border-radius:99px; overflow:hidden; }
.gj-quota-bar i { display:block; height:100%; background:#15803d; border-radius:99px; }
.gj-job-actions { display:flex; flex-wrap:wrap; gap:0.4rem; align-items:flex-start; }
.seo-meta-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:0.65rem; margin:0.85rem 0 0; }
.seo-meta-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:0.75rem 0.9rem; display:flex; flex-direction:column; gap:0.2rem; }
.seo-meta-card span { font-size:1.35rem; font-weight:700; }
.admin-app .admin-table.seo-meta-table {
  overflow: visible;
}
.seo-meta-table input[type=text], .seo-meta-table textarea { width:100%; min-width:0; display:block; }
.seo-meta-table textarea { min-height:5.4rem; resize:vertical; }
.seo-meta-table tbody tr.seo-meta-row td { vertical-align:top; padding-top:1rem; padding-bottom:1rem; }
.seo-meta-th-fields { min-width:22rem; }
.seo-meta-identity { min-width:11rem; max-width:14rem; }
.seo-meta-identity-title {
  display:block; font-weight:650; font-size:0.98rem; color:#0f172a; text-decoration:none; line-height:1.35; margin-bottom:0.35rem;
}
.seo-meta-identity-title:hover { color:var(--admin-accent,#0d6efd); text-decoration:underline; }
.seo-meta-identity-type {
  display:inline-block; font-size:0.72rem; font-weight:600; text-transform:uppercase; letter-spacing:0.04em;
  color:#64748b; background:#f1f5f9; border-radius:999px; padding:0.12rem 0.5rem; margin-bottom:0.45rem;
}
.seo-meta-url-path {
  display:block; font-size:0.78rem; padding:0.35rem 0.5rem; margin:0.35rem 0 0.4rem;
  background:#f8fafc; border:1px solid #e2e8f0; border-radius:6px; color:#334155; word-break:break-all;
}
.seo-meta-open { font-size:0.82rem; font-weight:600; }
.seo-meta-id { display:block; font-size:0.78rem; margin-top:0.35rem; }
.seo-meta-hint { font-size:0.78rem; margin:0.5rem 0 0; line-height:1.35; }
.seo-meta-fields { min-width:20rem; width:42%; }
.seo-meta-edit-grid { display:flex; flex-direction:column; gap:0.75rem; }
.seo-meta-field-block {
  background:#fff; border:1px solid #dbe3ef; border-radius:10px; padding:0.65rem 0.75rem 0.75rem;
  box-shadow:0 1px 2px rgba(15,23,42,0.04);
}
.seo-meta-field-block--title { border-left:3px solid #2563eb; }
.seo-meta-field-block--desc { border-left:3px solid #0d9488; }
.seo-meta-field-head {
  display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:0.35rem 0.75rem;
  margin-bottom:0.45rem;
}
.seo-meta-field-label { display:block; font-size:0.88rem; font-weight:700; color:#0f172a; }
.seo-meta-field-sub { display:block; font-size:0.76rem; font-weight:500; color:#64748b; margin-top:0.1rem; line-height:1.3; }
.seo-meta-field-head .seo-counter { margin:0; font-size:0.76rem; font-weight:600; white-space:nowrap; padding:0.15rem 0.45rem; border-radius:999px; background:#f1f5f9; }
.seo-meta-field-head .seo-len-ok { background:#ccfbf1; }
.seo-meta-field-head .seo-len-warn { background:#fef3c7; }
.seo-meta-field-head .seo-len-bad { background:#fee2e2; }
.seo-meta-input, .seo-meta-textarea {
  font-size:0.92rem; border:1px solid #cbd5e1; border-radius:8px; padding:0.5rem 0.6rem;
  background:#fafbfc; transition:border-color 0.15s, box-shadow 0.15s;
}
.seo-meta-input:focus, .seo-meta-textarea:focus {
  outline:none; border-color:#2563eb; background:#fff; box-shadow:0 0 0 3px rgba(37,99,235,0.15);
}
.seo-meta-textarea { min-height:4.5rem; resize:vertical; line-height:1.45; }
.seo-meta-index, .seo-meta-score { min-width:7.5rem; text-align:left; }
.seo-meta-robots-label { display:block; font-size:0.78rem; font-weight:600; color:#475569; margin-bottom:0.35rem; }
.seo-meta-robots-select { width:100%; max-width:12rem; font-size:0.82rem; margin-bottom:0.4rem; }
.seo-badge-score { font-size:0.8rem; padding:0.25rem 0.55rem; }
.seo-meta-save-row { margin-top:1rem; display:flex; flex-wrap:wrap; align-items:center; gap:0.65rem 1rem; }
@media (max-width: 960px) {
  .admin-app .admin-table.seo-meta-table thead { display:none; }
  .admin-app .admin-table.seo-meta-table tr.seo-meta-row { display:block; border-bottom:1px solid #e2e8f0; padding:0.5rem 0; }
  .admin-app .admin-table.seo-meta-table tr.seo-meta-row td { display:block; width:100%; max-width:none; }
  .seo-meta-fields { width:100%; }
}
.seo-preview-heading { margin:0.4rem 0 0.35rem; font-size:1rem; }
.seo-preview-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:0.75rem; }
.seo-preview-grid h4 { margin:0 0 0.4rem; font-size:0.82rem; color:#475569; }
.seo-g-preview { background:#fff; border:1px solid #e2e8f0; border-radius:8px; padding:0.75rem; min-height:7rem; }
.seo-g-head { display:flex; gap:0.5rem; align-items:flex-start; font-size:0.78rem; color:#4b5563; margin-bottom:0.35rem; }
.seo-g-fav { width:1.5rem; height:1.5rem; border-radius:50%; background:#1a2433; color:#fff; display:inline-flex; align-items:center; justify-content:center; font-size:0.75rem; flex-shrink:0; }
.seo-g-title { color:#1a0dab; font-size:1.05rem; line-height:1.3; }
.seo-g-desc { color:#4d5156; font-size:0.86rem; margin-top:0.2rem; line-height:1.35; }
.seo-g-preview-mob { max-width:18rem; }
.seo-og-preview { border:1px solid #e2e8f0; border-radius:8px; overflow:hidden; background:#fff; }
.seo-og-img { height:7rem; background:#e2e8f0 center/cover no-repeat; }
.seo-og-body { padding:0.55rem 0.7rem 0.7rem; }
.seo-og-site { font-size:0.72rem; color:#64748b; text-transform:uppercase; letter-spacing:0.04em; }
.seo-og-title { font-weight:650; margin:0.15rem 0; }
.seo-og-desc { font-size:0.86rem; color:#475569; }
.split { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.5rem; }
.pill-row { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1rem 0; }
.pill {
  border: 1px solid var(--line); background: var(--card); border-radius: 999px;
  padding: 0.4rem 0.8rem; font-size: 0.9rem; color: var(--muted);
}
.pill-link { color: var(--accent-2); text-decoration: none; }
.list { padding-left: 1.1rem; }
.panel {
  background: var(--card); border: 1px dashed var(--line); border-radius: var(--radius); padding: 1.2rem;
}
.site-footer { border-top: 1px solid var(--line); margin-top: 2rem; color: var(--muted); font-size: 0.9rem; }

/* —— Admin shell (gruppiert + farbig) —— */
/* Admin chrome — local-job Stil: dunkle Sidebar, helle Arbeitsfläche */
.admin-body { background: #f4f4f7; }
.admin-body.admin-app {
  --admin-sidebar-w: 240px;
  --admin-topbar-h: 2.85rem;
  --admin-accent: #0d6efd;
  --admin-sidebar-bg: #1c1c1c;
  padding-top: var(--admin-topbar-h);
  min-height: 100vh;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
.admin-guest .main-content { padding-top: 1rem; }

.admin-topbar {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 200;
  height: var(--admin-topbar-h);
  background: #fff;
  color: #212529;
  border-bottom: 1px solid #dee2e6;
  box-shadow: none;
}
.admin-topbar-inner {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  height: 100%;
  padding: 0 1rem 0 calc(var(--admin-sidebar-w) + 1rem);
  max-width: none;
}
.admin-breadcrumb {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-right: auto;
  font-size: 0.88rem;
  color: var(--admin-accent);
}
.admin-breadcrumb a {
  color: var(--admin-accent);
  text-decoration: none;
  font-weight: 500;
}
.admin-breadcrumb a:hover { text-decoration: underline; }
.admin-breadcrumb-sep { color: #adb5bd; }
.admin-topbar-meta {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.admin-topbar-user {
  font-size: 0.85rem;
  color: #6c757d;
  max-width: 10rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.admin-topbar-link,
.admin-topbar-logout {
  font: inherit;
  font-size: 0.88rem;
  color: #212529;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  text-decoration: none;
}
.admin-topbar-link:hover,
.admin-topbar-logout:hover { color: var(--admin-accent); }

.admin-nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  width: 2.4rem;
  height: 2.4rem;
  padding: 0.45rem;
  border: 1px solid #ced4da;
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
}
.admin-nav-toggle span {
  display: block;
  height: 2px;
  background: #212529;
  border-radius: 1px;
}

.admin-shell {
  display: block;
  margin-left: var(--admin-sidebar-w);
  min-height: calc(100vh - var(--admin-topbar-h));
  min-width: 0;
}
.admin-sidebar {
  position: fixed;
  top: 0;
  left: 0;
  width: var(--admin-sidebar-w);
  height: 100vh;
  overflow: auto;
  background: var(--admin-sidebar-bg);
  border-right: 0;
  padding: 0 0 1.75rem;
  z-index: 210;
  color: #fff;
}
.admin-sidebrand {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.1rem 1rem 1rem;
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  margin-bottom: 0.5rem;
}
.admin-sidebrand img {
  display: block;
  height: 2rem;
  width: auto;
  max-width: 9.5rem;
  object-fit: contain;
  filter: brightness(0) invert(1);
}
.admin-side-nav { display: grid; gap: 0.35rem; padding: 0 0.55rem; }
.admin-nav-group {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0.35rem 0.2rem 0.55rem;
  border-left-width: 0;
}
.admin-nav-group-label {
  margin: 0 0 0.2rem;
  padding: 0.45rem 0.65rem 0.2rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.92);
}
.admin-nav-group-hint { display: none; }
.admin-nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
}
.admin-nav-link {
  display: block;
  padding: 0.42rem 0.75rem 0.42rem 1.15rem;
  border-radius: 4px;
  text-decoration: none;
  color: rgba(255,255,255,0.78);
}
.admin-nav-link:hover {
  background: rgba(255,255,255,0.08);
  color: #fff;
}
.admin-nav-link.is-active {
  background: rgba(255,255,255,0.14);
  color: #fff;
  box-shadow: none;
}
.admin-nav-link-label {
  font-size: 0.84rem;
  font-weight: 500;
  line-height: 1.3;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.admin-nav-link-hint { display: none; }

/* Admin: volle Breite neben der Sidebar — kein schmales zentriertes Wrap */
.admin-app .admin-main,
.admin-app .admin-main.wrap,
.admin-lj .admin-main,
.admin-lj .admin-main.wrap {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box;
  margin: 0 !important;
  padding: 1.15rem 1.35rem 2.5rem;
}
.admin-shell > .admin-main {
  display: block;
  min-width: 0;
}
.admin-sidebar-backdrop { display: none; }

/* Firma-Formular: Name|Permalink, Logo|Titelbild */
.admin-form-row-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin: 0 0 1rem;
  width: 100%;
  max-width: none;
}
.admin-form-row-2 > label { margin: 0; }
.admin-form-uploads {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin: 0 0 1.15rem;
}
.admin-form-uploads .entity-image-upload,
.admin-form-uploads .placement-box {
  margin: 0;
}
.admin-form-aside .admin-place-quick {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0.35rem 0 0.75rem;
}
.admin-form-aside .admin-place-quick button {
  font: inherit;
  font-size: 0.78rem;
  font-weight: 600;
  padding: 0.25rem 0.5rem;
  border: 0;
  border-radius: 0.3rem;
  background: #0d6efd;
  color: #fff;
  cursor: pointer;
}
.admin-form-aside .admin-place-quick button:hover { background: #0b5ed7; }
.admin-firm-name-cell {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
}
.admin-firm-logo {
  flex: 0 0 2.25rem;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  object-fit: contain;
  background: #f1f3f5;
  border: 1px solid #dee2e6;
}
.admin-firm-logo--empty {
  display: inline-block;
  background: #e9ecef;
}
.admin-firm-name-link {
  color: #0d6efd;
  font-weight: 600;
  text-decoration: none;
}
.admin-firm-name-link:hover { text-decoration: underline; }
.admin-firmen-hint {
  margin: -0.35rem 0 0.85rem;
  font-size: 0.92rem;
}
.admin-firmen-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0 0 0.55rem;
}
.admin-firmen-tabs--status { margin-bottom: 0.85rem; }
.company-picker .ts-wrapper,
.company-picker .ts-wrapper.single .ts-control,
.company-picker select.js-company-picker {
  width: 100%;
  max-width: none;
}
.company-picker .company-picker-location-wrap {
  display: block;
  margin-top: 0.85rem;
}
.company-location-row-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin: 0 0 0.65rem;
}
.company-location-row-title {
  font-size: 0.92rem;
  font-weight: 600;
}
.company-location-remove {
  flex-shrink: 0;
  padding: 0.25rem 0.55rem;
  font-size: 0.88rem;
  line-height: 1.2;
}
.company-location-remove:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.company-firmen-load .ts-wrapper,
.company-firmen-load .ts-wrapper.single .ts-control {
  width: 100%;
  max-width: none;
}
.company-location-row {
  border: 1px solid var(--line, #d7d2c8);
  border-radius: var(--radius, 8px);
  padding: 0.85rem 0.95rem;
  margin: 0 0 0.85rem;
  background: #fff;
}
.admin-form-main .admin-form-section,
.admin-form-main > .placement-box,
.admin-form-main > .company-picker,
.admin-form-main > .company-firmen-load,
.admin-form-main > label,
.admin-form-main > .admin-form-row-2,
.admin-form-main > .admin-form-uploads,
.admin-form-main > details.admin-form-more {
  margin-bottom: 1.35rem;
}
.admin-form-main .admin-form-contact .placement-box,
.admin-form-main .portal-region-rubric-box,
.admin-form-main .company-locations-admin,
.admin-form-main .entity-social-admin {
  margin-top: 0;
  margin-bottom: 1.35rem;
}
.admin-form-main .placement-box .placement-box {
  margin-bottom: 0.75rem;
}
.listing-admin-form .admin-form-main > .placement-box,
.listing-admin-form .admin-form-main > .company-picker {
  margin-bottom: 1.35rem;
}
.admin-firmen-tab {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0.8rem;
  border: 1px solid #dee2e6;
  border-radius: 999px;
  text-decoration: none;
  color: #212529;
  font-size: 0.88rem;
  background: #fff;
}
.admin-firmen-tab span { color: #6c757d; font-weight: 600; }
.admin-firmen-tab.is-on {
  background: #212529;
  color: #fff;
  border-color: #212529;
}
.admin-firmen-tab.is-on span { color: rgba(255,255,255,.72); }
.admin-firmen-filters {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin: 0 0 0.85rem;
}
.admin-firmen-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin: 0;
  font-size: 0.88rem;
  font-weight: 600;
  color: #212529;
}
.admin-firmen-field > span {
  line-height: 1.2;
}
.admin-firmen-input-wrap {
  position: relative;
  display: block;
  border: 0;
  padding: 0;
  margin: 0;
  background: transparent;
  box-shadow: none;
}
.admin-firmen-input {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  min-height: 2.85rem;
  height: 2.85rem;
  margin: 0;
  padding: 0.62rem 0.9rem;
  font-size: 1rem;
  line-height: 1.35;
  font-weight: 400;
  font-family: inherit;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #fff;
  color: #212529;
  -webkit-appearance: none;
  appearance: none;
  box-shadow: none;
}
.admin-firmen-filters .js-firmen-filter-native {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
  margin: 0;
  padding: 0;
  border: 0;
  clip: rect(0, 0, 0, 0);
  overflow: hidden;
}
button.admin-firmen-input.admin-firmen-select-trigger {
  display: block;
  width: 100%;
  text-align: left;
  cursor: pointer;
  padding-right: 2.25rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23475569' d='M2.5 4.5 6 8l3.5-3.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 12px 12px;
}
button.admin-firmen-input.admin-firmen-select-trigger .js-firmen-filter-label {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.admin-firmen-input-wrap.is-open .admin-firmen-select-trigger {
  outline: 2px solid color-mix(in srgb, var(--admin-tone, #2563eb) 45%, transparent);
  outline-offset: 0;
  border-color: var(--admin-tone, #2563eb);
}
.admin-firmen-filter-search-li {
  margin: 0;
  padding: 0.4rem 0.45rem 0.5rem;
  border-bottom: 1px solid #e2e8f0;
  list-style: none;
}
.admin-firmen-filter-search-input {
  display: block;
  width: 100%;
  box-sizing: border-box;
  min-height: 2.35rem;
  padding: 0.45rem 0.65rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  font: inherit;
  font-size: 0.95rem;
  background: #fff;
  color: #212529;
}
.admin-firmen-filter-search-input:focus {
  outline: 2px solid color-mix(in srgb, var(--admin-tone, #2563eb) 35%, transparent);
  border-color: var(--admin-tone, #2563eb);
}
.admin-firmen-suggest.js-firmen-filter-menu button.is-selected {
  font-weight: 600;
  background: #f1f5f9;
}
.admin-firmen-input-wrap .admin-firmen-input {
  padding-right: 2.5rem;
}
.admin-firmen-input::placeholder {
  color: #94a3b8;
  opacity: 1;
}
.admin-firmen-input:focus {
  outline: 2px solid color-mix(in srgb, var(--admin-tone, #2563eb) 45%, transparent);
  outline-offset: 0;
  border-color: var(--admin-tone, #2563eb);
  box-shadow: none;
}
.admin-firmen-suggest {
  position: absolute;
  z-index: 40;
  top: calc(100% + 0.2rem);
  left: 0;
  right: 0;
  margin: 0;
  padding: 0.35rem 0;
  list-style: none;
  max-height: 18rem;
  overflow: auto;
  background: #fff;
  border: 1px solid #adb5bd;
  border-radius: 0.4rem;
  box-shadow: 0 0.45rem 1.25rem rgba(33, 37, 41, 0.14);
}
.admin-firmen-suggest[hidden] {
  display: none;
}
.admin-firmen-suggest li {
  margin: 0;
  padding: 0;
}
.admin-firmen-suggest button {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0.55rem 0.95rem;
  border: 0;
  background: transparent;
  color: #212529;
  font-size: 0.95rem;
  line-height: 1.35;
  text-align: left;
  cursor: pointer;
}
.admin-firmen-suggest button:hover,
.admin-firmen-suggest button:focus {
  background: #e7f1ff;
  outline: none;
}
.admin-firmen-suggest button.is-active {
  background: #cfe2ff;
}
.admin-firmen-suggest-empty {
  padding: 0.65rem 0.95rem;
  font-size: 0.88rem;
  color: #6c757d;
}
.admin-firmen-filter-submit {
  align-self: flex-start;
  min-height: 2.85rem;
  font-size: 1rem;
}
.admin-firmen-search-clear {
  position: absolute;
  top: 50%;
  right: 0.55rem;
  transform: translateY(-50%);
  width: 2rem;
  height: 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #64748b;
  cursor: pointer;
  line-height: 1;
}
.admin-firmen-search-clear:hover,
.admin-firmen-search-clear:focus-visible {
  background: #f1f5f9;
  color: #334155;
  outline: none;
}
.admin-firmen-search-clear[hidden] {
  display: none;
}
.admin-firmen-search-clear svg {
  display: block;
  width: 16px;
  height: 16px;
}
.admin-firmen-filters-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  align-items: end;
}
.admin-firmen-filters-row label { min-width: 8rem; }
.admin-firmen-filters-row select.admin-firmen-input {
  min-width: 8rem;
}
.admin-firmen-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  align-items: center;
  justify-content: space-between;
  margin: 0 0 0.65rem;
}
.admin-firmen-jump {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0;
}
.admin-firmen-jump input[type="number"] { width: 4.2rem; }
.admin-firmen-table th,
.admin-firmen-table td {
  padding: 0.45rem 0.6rem;
  vertical-align: middle;
  font-size: 0.9rem;
}
.admin-firmen-th-id,
.admin-firmen-id { width: 4.5rem; white-space: nowrap; }
.admin-firmen-th-act,
.admin-firmen-act { width: 12rem; white-space: nowrap; text-align: right; }
.admin-firmen-act .inline-form { display: inline; margin: 0; }
.admin-firmen-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.85rem;
  height: 1.85rem;
  border: 1px solid #dee2e6;
  border-radius: 0.3rem;
  background: #fff;
  color: #212529;
  text-decoration: none;
  font-size: 0.85rem;
  cursor: pointer;
  padding: 0;
  margin-left: 0.2rem;
}
.admin-firmen-icon:hover { background: #f1f3f5; color: #0d6efd; }
.admin-firmen-icon--warn,
.admin-firmen-icon--ok {
  width: auto;
  padding: 0 0.45rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.admin-firmen-icon--warn { color: #b45309; }
.admin-firmen-icon--ok { color: #15803d; }
.admin-status-pill {
  display: inline-block;
  padding: 0.12rem 0.5rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  background: #e9ecef;
  color: #495057;
}
.admin-status-pill.is-live { background: #d1fae5; color: #047857; }
.admin-status-pill.is-gone { background: #fee2e2; color: #b91c1c; }
.admin-status-pill.is-draft { background: #fef3c7; color: #92400e; }
.admin-firmen-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
  margin: 1rem 0 0;
}
@media (max-width: 720px) {
  .admin-form-row-2,
  .admin-form-uploads { grid-template-columns: 1fr; }
}

/* local-job Buttons / Tabellen im Admin */
.admin-lj .admin-main .btn:not(.btn-ghost) {
  background: var(--admin-accent);
  border-color: var(--admin-accent);
  color: #fff;
  border-radius: 0.35rem;
  font-weight: 600;
}
.admin-lj .admin-main .btn:not(.btn-ghost):hover,
.admin-lj .admin-main .btn:not(.btn-ghost):focus-visible {
  background: #0b5ed7;
  border-color: #0a58ca;
  color: #fff;
}
.admin-lj .admin-main .btn-ghost {
  background: #fff;
  border: 1px solid #ced4da;
  color: #212529;
  border-radius: 0.35rem;
}
.admin-lj .admin-main .btn-ghost:hover {
  background: #e9ecef;
  color: #212529;
}
.admin-lj .admin-table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  border: 1px solid #dee2e6;
  border-radius: 0;
}
.admin-lj .admin-table th {
  background: #f8f9fa;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #495057;
  font-weight: 700;
  padding: 0.65rem 0.75rem;
  border-bottom: 1px solid #dee2e6;
  text-align: left;
}
.admin-lj .admin-table td {
  padding: 0.7rem 0.75rem;
  border-bottom: 1px solid #e9ecef;
  font-size: 0.92rem;
  vertical-align: middle;
}
.admin-lj .admin-table tbody tr:nth-child(even) { background: #fafbfc; }
.admin-lj .admin-table tbody tr:hover { background: #f1f5f9; }
.admin-lj .admin-bar h1 {
  font-size: 1.55rem;
  font-weight: 700;
  color: #212529;
}
.admin-lj .panel,
.admin-lj .form.panel {
  background: #fff;
  border: 1px solid #dee2e6;
  border-radius: 0.4rem;
  box-shadow: none;
}

/* Formular: Hauptspalte volle Breite + rechte Publish-Leiste am Rand */
.admin-form-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(16.5rem, 19rem);
  gap: 1.15rem;
  align-items: start;
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}
.admin-form-main {
  min-width: 0;
  width: 100%;
  max-width: none;
}
.admin-lj .admin-form-main.panel,
.admin-app .admin-form-main.panel {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}
.admin-form-aside {
  position: sticky;
  top: calc(var(--admin-topbar-h) + 1rem);
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  width: 100%;
  max-width: 19rem;
  justify-self: end;
  overflow: visible;
  z-index: 5;
}
.admin-form-aside-widget {
  background: #fff;
  border: 1px solid #dee2e6;
  border-radius: 0.45rem;
  padding: 1.05rem 1.1rem 1.15rem;
  overflow: visible;
  position: relative;
  z-index: 1;
}
.admin-form-aside-widget:focus-within {
  z-index: 30;
}
.admin-form-aside h2 {
  margin: 0 0 0.4rem;
  font-size: 1.02rem;
  font-weight: 700;
  color: #212529;
}
.admin-form-aside .admin-form-aside-widget > h3 {
  margin: 0 0 0.65rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #6c757d;
}
.admin-form-aside .muted { font-size: 0.82rem; margin: 0 0 0.9rem; line-height: 1.4; }
.admin-form-aside label {
  display: block;
  margin: 0 0 0.85rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: #343a40;
}
.admin-form-aside label:last-child { margin-bottom: 0; }
.admin-form-aside input[type="datetime-local"],
.admin-form-aside input[type="number"],
.admin-form-aside select {
  margin-top: 0.3rem;
  width: 100%;
}
.admin-form-aside .admin-place-quick {
  margin: -0.35rem 0 0.95rem;
}
.admin-form-aside .admin-form-aside-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 0;
  padding-top: 0.15rem;
}
.admin-form-aside .admin-form-aside-actions .btn {
  flex: 1 1 auto;
  justify-content: center;
  text-align: center;
  min-height: 2.45rem;
}
.admin-form-aside .check,
.admin-form-aside label.admin-aside-check {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 500;
  margin: 0.15rem 0 0.85rem;
}
.admin-form-aside label.admin-aside-check input { margin: 0; width: auto; }
.admin-form-contact {
  margin: 1.15rem 0;
  padding: 1.15rem 1.2rem 1.25rem;
  background: #fff;
  border: 1px solid #dee2e6;
  border-radius: 0.45rem;
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}
.admin-form-contact > h2 {
  margin: 0 0 0.85rem;
  font-size: 1rem;
  font-weight: 700;
}
.admin-form-contact .geo-fields {
  border: 0;
  padding: 0;
  margin: 0 0 1rem;
  background: transparent;
  box-shadow: none;
  width: 100%;
  max-width: none;
}
.admin-form-contact .geo-fields legend { display: none; }
.admin-form-plz-row {
  display: grid;
  grid-template-columns: 6.5rem minmax(0, 1fr);
  gap: 0.75rem;
  margin-top: 0.65rem;
}
@media (max-width: 980px) {
  .admin-form-layout { grid-template-columns: 1fr; }
  .admin-form-aside { position: static; }
}

/* Einstellungen / Wartung */
.admin-settings-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(11.5rem, 1fr));
  gap: 0.9rem;
}
.admin-settings-card {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-height: 8.2rem;
  padding: 1.05rem 1.1rem;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.admin-settings-card:hover {
  border-color: #cbd5e1;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.08);
  color: inherit;
}
.admin-settings-card-icon {
  font-size: 1.35rem;
  line-height: 1;
  margin-bottom: 0.15rem;
}
.admin-settings-card-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #64748b;
}
.admin-settings-card-value {
  font-size: 1.55rem;
  font-weight: 800;
  line-height: 1.15;
  color: #0f172a;
}
.admin-settings-card-hint {
  margin-top: auto;
  font-size: 0.8rem;
  color: #6b778a;
  line-height: 1.35;
}
.admin-wartung-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
  gap: 1rem;
}
.admin-wartung-card {
  background: #fff;
  border: 1px solid #dee2e6;
  border-radius: 0.5rem;
  padding: 1.15rem 1.2rem 1.25rem;
}
.admin-wartung-card h2 {
  margin: 0 0 0.5rem;
  font-size: 1.05rem;
  font-weight: 700;
}
.admin-wartung-stat {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 700;
  color: #0f172a;
}
.admin-log-pre {
  margin: 0;
  max-height: 28rem;
  overflow: auto;
  padding: 0.9rem 1rem;
  background: #1c1c1c;
  color: #e9ecef;
  border-radius: 0.4rem;
  font-size: 0.78rem;
  line-height: 1.45;
  white-space: pre-wrap;
  word-break: break-word;
}

/* Tom Select im Admin — gleiche Optik wie .form select (Region, Rubrik, Firma, Standort) */
.admin-app .ts-wrapper {
  width: 100%;
  max-width: 100%;
  margin-top: 0;
}
.admin-app .form label .ts-wrapper {
  margin-top: 0;
}
.admin-app .ts-wrapper.single .ts-control,
.admin-app .ts-wrapper.single.has-items .ts-control,
.admin-app .ts-wrapper.single.full .ts-control,
.admin-app .ts-wrapper.single.input-active .ts-control,
.admin-app .ts-wrapper.single.ts-picker-has-value .ts-control,
.admin-app .ts-wrapper.multi .ts-control {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  min-height: calc(0.65rem * 2 + 1.35em);
  height: auto;
  border: 1px solid var(--line, #d7d2c8);
  border-radius: 10px;
  background: #fff;
  box-shadow: none;
  padding: 0.65rem 0.75rem;
  font: inherit;
  font-size: inherit;
  line-height: 1.35;
}
.admin-app .ts-wrapper.single.plugin-clear_button.has-items .ts-control,
.admin-app .ts-wrapper.single.plugin-clear_button.ts-picker-has-value .ts-control {
  padding-right: 2.5rem;
}
.admin-app .ts-wrapper.single .ts-control .items {
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
}
.admin-app .ts-wrapper.single .ts-control .item {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 0;
  margin: 0;
  background: transparent;
  border: 0;
  color: inherit;
  font: inherit;
  line-height: 1.35;
}
.admin-app .ts-wrapper.single.has-items:not(.input-active) .ts-control > input,
.admin-app .ts-wrapper.single.ts-picker-has-value:not(.input-active) .ts-control > input {
  position: absolute;
  width: 1px;
  min-width: 0;
  opacity: 0;
  pointer-events: none;
}
.admin-app .ts-wrapper.single.input-active .ts-control > input {
  flex: 1 1 auto;
  min-width: 2rem;
  position: relative;
  opacity: 1;
  width: auto;
}
.admin-app .ts-wrapper.focus .ts-control {
  outline: 2px solid color-mix(in srgb, var(--admin-tone, #0d6efd) 45%, transparent);
  border-color: var(--admin-tone, #0d6efd);
  box-shadow: none;
}
.admin-app .company-picker .ts-wrapper,
.admin-app .company-firmen-load .ts-wrapper,
.admin-app .company-picker .company-picker-location-wrap .ts-wrapper {
  width: 100%;
  max-width: none;
}
.admin-app .company-picker-location-label {
  display: grid;
  gap: 0.35rem;
  font-size: 0.9rem;
  font-weight: 600;
  color: #334155;
  margin: 0;
}
.company-picker-ts-host {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0;
}
.company-picker .company-picker-location-wrap {
  display: block;
  width: 100%;
  margin-top: 0.85rem;
}
/* display:block oben schlägt [hidden] — ohne das stand Standort immer als natives Select da */
.company-picker .company-picker-location-wrap[hidden] {
  display: none !important;
}
.company-picker-location-label {
  display: block;
  margin: 0 0 0.35rem;
  font-size: 0.9rem;
  font-weight: 600;
  color: #334155;
}
/* Tom Select Firma + Standort = gleiche Höhe wie .form select (Region/Rubrik) */
.admin-app .company-picker .company-picker-ts-wrap,
.admin-app .company-picker .company-picker-ts-host .ts-wrapper {
  width: 100%;
  max-width: 100%;
  margin: 0;
}
.admin-app .company-picker .company-picker-ts-wrap .ts-control,
.admin-app .company-picker .company-picker-ts-host .ts-wrapper.single .ts-control {
  min-height: calc(0.65rem * 2 + 1.35em);
  height: auto;
  padding: 0.65rem 2.25rem 0.65rem 0.75rem;
  border: 1px solid var(--line, #d7d2c8);
  border-radius: 10px;
  background: #fff;
  font: inherit;
  line-height: 1.35;
  box-sizing: border-box;
}
.admin-app .company-picker .company-picker-ts-wrap .ts-control .item,
.admin-app .company-picker .company-picker-ts-host .ts-wrapper .ts-control .item {
  line-height: 1.35;
  font: inherit;
}
/* Beim Tippen nur die Suche zeigen — gewählter Eintrag / Rest-Label ausblenden */
.admin-app .company-picker .ts-wrapper.single.input-active .ts-control > .item,
.admin-app .company-firmen-load .ts-wrapper.single.input-active .ts-control > .item {
  display: none;
}
.admin-app .company-firmen-load .ts-wrapper.single .ts-control {
  min-height: calc(0.65rem * 2 + 1.35em);
  padding: 0.65rem 2.25rem 0.65rem 0.75rem;
  border: 1px solid var(--line, #d7d2c8);
  border-radius: 10px;
  font: inherit;
  line-height: 1.35;
  box-sizing: border-box;
}
/* Löschkreuz gross + immer klickbar (Firma / Standort / Bestehende Firma laden) */
.admin-app .company-picker .ts-wrapper.plugin-clear_button .clear-button,
.admin-app .company-firmen-load .ts-wrapper.plugin-clear_button .clear-button {
  display: none;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  right: 0.5rem;
  border-radius: 50%;
  font-size: 1.5rem;
  line-height: 1;
  color: #495057;
  opacity: 1;
  z-index: 5;
  cursor: pointer;
}
.admin-app .company-picker .ts-wrapper.plugin-clear_button.has-items .clear-button,
.admin-app .company-firmen-load .ts-wrapper.plugin-clear_button.has-items .clear-button {
  display: inline-flex;
}
.admin-app .company-picker .ts-wrapper.plugin-clear_button .clear-button:hover,
.admin-app .company-firmen-load .ts-wrapper.plugin-clear_button .clear-button:hover {
  background: #e9ecef;
  color: #000;
}
.admin-app .company-picker .ts-wrapper.plugin-clear_button.has-items .ts-control,
.admin-app .company-firmen-load .ts-wrapper.plugin-clear_button.has-items .ts-control {
  padding-right: 3rem;
}
/* Vorschläge: gut lesbar */
.ts-dropdown.company-picker-dd .option,
.ts-dropdown.company-picker-dd .no-results {
  font-size: 1rem;
  line-height: 1.45;
  padding: 0.65rem 0.9rem;
}
.ts-dropdown.company-picker-dd .ts-dropdown-content {
  max-height: 22rem;
}
/* Native Fallback wenn Tom Select scheitert — trotzdem volle Admin-Höhe */
.admin-app .company-picker select.js-company-location-select.company-picker-native-fallback,
.admin-app .company-picker select.js-company-picker.company-picker-native-fallback,
.admin-app .company-picker select.js-company-location-select:not(.company-picker-ts-ready):not(.tomselected),
.admin-app .company-picker select.js-company-picker:not(.company-picker-ts-ready):not(.tomselected) {
  display: block;
  width: 100%;
  max-width: 100%;
  min-height: calc(0.65rem * 2 + 1.35em);
  padding: 0.65rem 2.25rem 0.65rem 0.75rem;
  border: 1px solid var(--line, #d7d2c8);
  border-radius: 10px;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23475569' stroke-width='1.6' d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 0.85rem center;
  font: inherit;
  line-height: 1.35;
  box-sizing: border-box;
  -webkit-appearance: none;
  appearance: none;
}
.admin-app .company-picker select.js-company-location-select.tomselected,
.admin-app .company-picker select.js-company-picker.tomselected {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
  clip: rect(0, 0, 0, 0);
}
body > .ts-dropdown,
.admin-app .ts-dropdown,
.ts-dropdown {
  background: #fff !important;
  opacity: 1 !important;
  border: 1px solid #ced4da !important;
  border-radius: 0.35rem !important;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.18) !important;
  z-index: 10050 !important;
  color: #212529;
}
body > .ts-dropdown .option,
.ts-dropdown .option {
  background: #fff;
  color: #212529;
  padding: 0.45rem 0.7rem;
}
body > .ts-dropdown .option.active,
body > .ts-dropdown .option.selected,
.ts-dropdown .option.active,
.ts-dropdown .option.selected {
  background: #0d6efd !important;
  color: #fff !important;
}
.admin-form-aside .ts-wrapper { width: 100%; }

/* Schema-Vorschau Firma/Blog */
.admin-schema-preview {
  margin: 1.25rem 0;
  padding: 1.15rem 1.2rem 1.2rem;
  background: #fff;
  border: 1px solid #dee2e6;
  border-radius: 0.45rem;
}
.admin-schema-preview > h2 {
  margin: 0 0 0.35rem;
  font-size: 1rem;
  font-weight: 700;
}
.admin-schema-preview > .muted {
  margin: 0 0 0.9rem;
  font-size: 0.85rem;
}
.admin-schema-grid {
  display: grid;
  grid-template-columns: 8.5rem minmax(0, 1fr);
  gap: 0.4rem 0.85rem;
  margin: 0 0 0.9rem;
  font-size: 0.9rem;
}
.admin-schema-grid dt {
  margin: 0;
  color: #6c757d;
  font-weight: 600;
}
.admin-schema-grid dd {
  margin: 0;
  color: #212529;
  word-break: break-word;
}
.admin-schema-grid dd.is-missing { color: #b45309; }
.admin-schema-json {
  margin: 0;
  max-height: 14rem;
  overflow: auto;
  padding: 0.75rem 0.85rem;
  background: #f8f9fa;
  border: 1px solid #e9ecef;
  border-radius: 0.35rem;
  font-size: 0.75rem;
  line-height: 1.45;
  white-space: pre-wrap;
  word-break: break-word;
}

/* Regionen-Hub */
.admin-regionen-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
  gap: 0.9rem;
}
.admin-regionen-card {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-height: 8.5rem;
  padding: 1.1rem 1.15rem;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.admin-regionen-card:hover {
  border-color: #0d6efd;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.08);
  color: inherit;
}
.admin-regionen-card-name {
  font-size: 1.05rem;
  font-weight: 700;
  color: #0f172a;
}
.admin-regionen-card-slug {
  font-size: 0.82rem;
  color: #64748b;
}
.admin-regionen-card-meta {
  margin-top: auto;
  font-size: 0.8rem;
  color: #6b778a;
  line-height: 1.35;
}
.admin-regionen-board {
  display: grid;
  gap: 0.75rem;
}
.admin-regionen-board-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 0.75rem;
  align-items: center;
  padding: 0.95rem 1.05rem;
  background: #fff;
  border: 1px solid #dee2e6;
  border-radius: 0.45rem;
}
.admin-regionen-board-item h3 {
  margin: 0 0 0.2rem;
  font-size: 0.98rem;
  font-weight: 700;
}
.admin-regionen-board-item .muted {
  margin: 0;
  font-size: 0.82rem;
}
.admin-regionen-count {
  font-size: 1.25rem;
  font-weight: 800;
  color: #0f172a;
  min-width: 2.5rem;
  text-align: right;
}
@media (max-width: 720px) {
  .admin-regionen-board-item {
    grid-template-columns: 1fr;
  }
  .admin-regionen-count { text-align: left; }
}

/* Dashboard tiles */
.admin-dash-head { margin-bottom: 0.85rem; }
.admin-dash-stats { margin: 0.75rem 0 1.1rem; }
.admin-dash-lead {
  margin: 0 0 0.85rem;
  font-size: 0.95rem;
  color: #4b5568;
}
.admin-quick-tiles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 0.65rem;
  margin: 0 0 1.15rem;
}
.admin-quick-tile {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 0.85rem 0.95rem;
  background: #fff;
  border: 1px solid #dfe6ef;
  border-radius: 12px;
  border-left: 4px solid #5b6b82;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 4px 14px rgba(21, 32, 51, 0.04);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.admin-quick-tile:hover {
  border-color: #c5d0de;
  box-shadow: 0 8px 20px rgba(21, 32, 51, 0.08);
}
.admin-quick-tile strong { font-size: 0.98rem; color: #0f172a; }
.admin-quick-tile span { font-size: 0.8rem; color: #64748b; line-height: 1.35; }
.admin-quick-tile--coral { border-left-color: #e85d2a; }
.admin-quick-tile--teal { border-left-color: #0f9a8a; }
.admin-quick-tile--amber { border-left-color: #d97706; }
.admin-quick-tile--slate { border-left-color: #5b6b82; }
.admin-quick-tile--blue { border-left-color: #2f6fed; }

.company-form-simple .company-form-step {
  margin: 0 0 1.1rem;
  padding: 1rem 1.05rem;
  background: #fafbfc;
  border: 1px solid #e4e9f0;
  border-radius: 12px;
}
.company-form-step-title {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0 0 0.75rem;
  font-size: 1.05rem;
  font-weight: 700;
  color: #0f172a;
}
.company-form-step-title span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.55rem;
  height: 1.55rem;
  border-radius: 999px;
  background: #0f172a;
  color: #fff;
  font-size: 0.82rem;
  font-weight: 700;
}
.company-form-more {
  margin: 0 0 0.85rem;
  padding: 0.65rem 0.9rem;
  background: #fff;
  border: 1px dashed #cfd8e3;
  border-radius: 10px;
}
.company-form-more > summary {
  cursor: pointer;
  font-weight: 600;
  color: #334155;
  list-style: none;
}
.company-form-more > summary::-webkit-details-marker { display: none; }
.company-form-more > summary::before {
  content: '▸ ';
  color: #64748b;
}
.company-form-more[open] > summary::before { content: '▾ '; }
.company-form-more-body { margin-top: 0.85rem; }
.ai-assist--compact {
  background: #f8fafc !important;
  border-style: dashed !important;
}

.admin-dash-groups {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 0.9rem;
}
.admin-dash-card {
  background: #fff;
  border: 1px solid #dfe6ef;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 8px 22px rgba(21, 32, 51, 0.05);
}
.admin-dash-card-head {
  padding: 0.9rem 1rem 0.75rem;
  color: #fff;
}
.admin-dash-card-head h2 {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
}
.admin-dash-card-head p {
  margin: 0.3rem 0 0;
  font-size: 0.82rem;
  opacity: 0.92;
  line-height: 1.35;
}
.admin-dash-card--teal .admin-dash-card-head { background: linear-gradient(135deg, #0f9a8a, #0b7c70); }
.admin-dash-card--coral .admin-dash-card-head { background: linear-gradient(135deg, #e85d2a, #c4471c); }
.admin-dash-card--blue .admin-dash-card-head { background: linear-gradient(135deg, #2f6fed, #1f54c4); }
.admin-dash-card--amber .admin-dash-card-head { background: linear-gradient(135deg, #d97706, #b45309); }
.admin-dash-card--slate .admin-dash-card-head { background: linear-gradient(135deg, #5b6b82, #3f4c61); }

.admin-dash-links {
  list-style: none;
  margin: 0;
  padding: 0.35rem;
}
.admin-dash-links a {
  display: grid;
  gap: 0.1rem;
  padding: 0.55rem 0.65rem;
  border-radius: 9px;
  text-decoration: none;
  color: #1a2433;
}
.admin-dash-links a:hover { background: #f3f6fb; }
.admin-dash-links strong {
  font-size: 0.92rem;
  font-weight: 700;
}
.admin-dash-links span {
  font-size: 0.75rem;
  color: #6b778a;
}

/* Dashboard wie local-job: grosse Kacheln, eine Funktion pro Klick */
.admin-dash--simple .admin-dash-head { margin-bottom: 1rem; }
.admin-dash-alert {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin: 0 0 1.25rem;
  padding: 0.85rem 1.1rem;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 10px;
}
.admin-dash-alert p { margin: 0; color: #991b1b; font-weight: 600; }
.admin-dash-tiles {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(11.5rem, 1fr));
  gap: 0.85rem;
}
.admin-dash-tile {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-height: 7.5rem;
  padding: 1rem 1.05rem;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.admin-dash-tile:hover {
  border-color: #cbd5e1;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}
.admin-dash-tile-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
}
.admin-dash-tile-num {
  font-size: 1.85rem;
  font-weight: 800;
  line-height: 1.1;
  color: #0f172a;
}
.admin-dash-tile-hint {
  margin-top: auto;
  font-size: 0.8rem;
  color: #6b778a;
  line-height: 1.3;
}

.region-dash-wrap { margin: 0 0 1.35rem; }
.region-dash-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
  gap: 0.75rem;
}
.region-dash-card {
  display: grid;
  gap: 0.25rem;
  padding: 0.9rem 1rem;
  background: #fff;
  border: 1px solid #d9e1ec;
  border-left: 4px solid var(--admin-tone, #0d9488);
  border-radius: 12px;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 2px 8px rgba(21, 32, 51, 0.04);
}
.region-dash-card:hover { border-color: var(--admin-tone, #0d9488); }
.region-dash-card strong { font-size: 1.12rem; color: #0f172a; }
.region-dash-card span, .region-dash-card em {
  font-style: normal;
  font-size: 0.88rem;
  color: #64748b;
}
.region-dash-card-home { border-left-color: #0f172a; }
.region-board-tab.is-home {
  border-color: #0f172a;
}
.region-board-tab.is-home.is-active {
  background: #f8fafc;
  box-shadow: 0 0 0 1px #0f172a;
}
.region-board-empty td { opacity: 0.72; }
.region-board-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0 0 1rem;
}
.region-board-tab {
  display: grid;
  gap: 0.1rem;
  padding: 0.55rem 0.8rem;
  border: 1px solid #d9e1ec;
  border-radius: 10px;
  background: #fff;
  text-decoration: none;
  color: inherit;
  min-width: 10rem;
}
.region-board-tab.is-active {
  border-color: var(--admin-tone, #0d9488);
  background: #f0fdfa;
  box-shadow: 0 0 0 1px var(--admin-tone, #0d9488);
}
.region-board-tab strong { font-size: 0.98rem; }
.region-board-tab span {
  font-size: var(--portal-size-meta, 0.875rem);
  color: var(--portal-meta, #475569);
}
.region-board-search {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin: 0 0 1.1rem;
}
.region-board-search input[type="search"] {
  flex: 1;
  min-width: 16rem;
  padding: 0.6rem 0.8rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  font: inherit;
}
.region-board-section { margin: 0 0 1rem; }
.region-board-sec-head {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: flex-start;
  flex-wrap: wrap;
  margin: 0 0 0.75rem;
}
.region-board-sec-head h2 { margin: 0; font-size: 1.12rem; }
.region-board-sec-head p { margin: 0.3rem 0 0; }
.region-board-sec-tools { display: flex; gap: 0.45rem; flex-wrap: wrap; align-items: center; }
.region-board-actions { white-space: nowrap; }
.spotlight-dash {
  margin: 0 0 1.25rem;
  border-color: #7c3aed;
  border-left: 4px solid #7c3aed;
}
.region-board-section-spotlight {
  border-color: #7c3aed;
  border-left: 4px solid #7c3aed;
}
.region-board-section-ads {
  border-color: #e85d2a;
  border-left: 4px solid #e85d2a;
}
.region-board-section-system {
  border-color: #94a3b8;
  border-left: 4px solid #94a3b8;
}

.portal-bulk-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  margin: 0 0 1rem;
  padding: 0.75rem 1rem;
  border: 1px solid #c4a035;
  background: #fffbeb;
}
.portal-bulk-sticky {
  position: sticky;
  top: 0;
  z-index: 30;
  box-shadow: 0 2px 8px rgba(26, 36, 51, 0.08);
}
.portal-bulk-hint { font-size: 0.88rem; margin-left: auto; }
.portal-check-all-label {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-weight: 600;
  cursor: pointer;
}
.portal-bulk-cb,
.portal-check-section,
.portal-check-all {
  width: 1.15rem;
  height: 1.15rem;
  accent-color: #1a2433;
}
.portal-bulk-count { font-weight: 700; color: #92400e; }
.portal-bulk-section-bar { margin: 0.75rem 0 0; }
.portal-board-page { padding-bottom: 5.5rem; }
.portal-bulk-dock {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 80;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  padding: 0.75rem 1.25rem;
  background: #fffbeb;
  border-top: 2px solid #c4a035;
  box-shadow: 0 -4px 16px rgba(26, 36, 51, 0.12);
}
.portal-bulk-dock[hidden] { display: none !important; }
.portal-btn-danger { color: #b91c1c; border-color: #fecaca; }
.portal-row-action { display: inline; margin: 0; }
.portal-link-btn {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  color: #b45309;
  font-weight: 600;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.portal-link-btn:hover { color: #92400e; }
.portal-action-sep { color: #94a3b8; margin: 0 0.15rem; }
.region-board-actions { white-space: normal; min-width: 11rem; }
.portal-assign-panel { margin: 0 0 1rem; padding: 0.85rem 1rem; }
.portal-assign-panel summary { cursor: pointer; margin-bottom: 0.5rem; }
.portal-assign-search {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  align-items: flex-end;
  margin-top: 0.75rem;
}
.portal-assign-search label { display: flex; flex-direction: column; gap: 0.2rem; }
.portal-assign-search select,
.portal-assign-search input[type="search"] {
  min-width: 10rem;
  padding: 0.45rem 0.55rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
}
.portal-assign-q input { min-width: 16rem; }
.portal-assign-results { margin-top: 0.85rem; }
.portal-assign-done td { opacity: 0.65; }
.portal-pagination {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin-top: 0.85rem;
  padding-top: 0.75rem;
  border-top: 1px solid #e2e8f0;
}
.portal-pagination-per,
.portal-pagination-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
}
.portal-pagination-meta { font-size: 0.88rem; }
.portal-page-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  padding: 0.25rem 0.55rem;
  border-radius: 999px;
  border: 1px solid #cbd5e1;
  color: #1a2433;
  text-decoration: none;
  font-size: 0.88rem;
  font-weight: 600;
}
.portal-page-chip.is-active {
  background: #1a2433;
  border-color: #1a2433;
  color: #fff;
}
.portal-page-chip:not(.is-active):hover { background: #f1f5f9; }
.portal-page-ellipsis { padding: 0 0.2rem; color: #94a3b8; }
.portal-page-btn.is-disabled {
  opacity: 0.45;
  pointer-events: none;
}

.admin-login {
  max-width: 420px;
  margin: 3rem auto;
  background: white;
  padding: 1.75rem 1.5rem 1.5rem;
  border-radius: var(--radius);
  border: 1px solid var(--line);
}
.admin-login-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin: 0 0 1.25rem;
}
.admin-login-logo {
  display: block;
  width: auto;
  max-width: 220px;
  height: auto;
  max-height: 72px;
  object-fit: contain;
}
.admin-login-title {
  margin: 0 0 1rem;
  font-size: 1.15rem;
  text-align: center;
  font-weight: 700;
}
.admin-login-kicker {
  margin: 0.35rem 0 0;
  text-align: center;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #64748b;
}
.admin-login .form label {
  display: grid;
  gap: 0.35rem;
  width: 100%;
}
.admin-login .form input {
  width: 100%;
  box-sizing: border-box;
  display: block;
}
.admin-login .btn { width: 100%; }

@media (max-width: 980px) {
  .admin-nav-toggle { display: inline-flex; }
  .admin-shell { margin-left: 0; }
  .admin-topbar-inner { padding-left: 0.75rem; }
  .admin-sidebar {
    position: fixed;
    left: 0;
    top: 0;
    width: min(280px, 88vw);
    height: 100vh;
    transform: translateX(-105%);
    transition: transform 0.2s ease;
    box-shadow: 8px 0 28px rgba(0, 0, 0, 0.35);
    z-index: 220;
  }
  body.admin-nav-open .admin-sidebar { transform: translateX(0); }
  .admin-sidebar-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 215;
    border: 0;
    padding: 0;
  }
  .admin-sidebar-backdrop[hidden] { display: none !important; }
  .admin-topbar-user { display: none; }
}

/* —— Alle Admin-Unterseiten: farbig + Karten —— */
.admin-app .admin-main {
  --admin-tone: #5b6b82;
  --admin-tone-soft: #eef1f5;
  --admin-tone-ink: #1a2433;
  --admin-tone-grad: linear-gradient(135deg, #5b6b82, #3f4c61);
}
.admin-app .admin-main--teal {
  --admin-tone: #0f9a8a;
  --admin-tone-soft: #e6f7f4;
  --admin-tone-ink: #0a5c53;
  --admin-tone-grad: linear-gradient(135deg, #0f9a8a, #0b7c70);
}
.admin-app .admin-main--coral {
  --admin-tone: #e85d2a;
  --admin-tone-soft: #fff0e8;
  --admin-tone-ink: #9a3412;
  --admin-tone-grad: linear-gradient(135deg, #e85d2a, #c4471c);
}
.admin-app .admin-main--blue {
  --admin-tone: #2f6fed;
  --admin-tone-soft: #e8f0ff;
  --admin-tone-ink: #1e3a8a;
  --admin-tone-grad: linear-gradient(135deg, #2f6fed, #1f54c4);
}
.admin-app .admin-main--amber {
  --admin-tone: #d97706;
  --admin-tone-soft: #fff7e8;
  --admin-tone-ink: #92400e;
  --admin-tone-grad: linear-gradient(135deg, #d97706, #b45309);
}
.admin-app .admin-main--slate {
  --admin-tone: #5b6b82;
  --admin-tone-soft: #eef1f5;
  --admin-tone-ink: #334155;
  --admin-tone-grad: linear-gradient(135deg, #5b6b82, #3f4c61);
}

.admin-page-context {
  display: grid;
  gap: 0.75rem;
  margin: 0 0 1rem;
  padding: 0.85rem 1rem;
  border-radius: 14px;
  background: var(--admin-tone-grad);
  color: #fff;
  box-shadow: 0 10px 24px rgba(21, 32, 51, 0.12);
}
.admin-page-context-group {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.85;
}
.admin-page-context-item {
  margin: 0.2rem 0 0;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.35;
}
.admin-page-context-item span {
  font-weight: 500;
  opacity: 0.88;
  font-size: 0.88rem;
}
.admin-page-siblings {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.admin-page-sibling {
  display: inline-flex;
  align-items: center;
  padding: 0.32rem 0.7rem;
  border-radius: 999px;
  text-decoration: none;
  font-size: 0.8rem;
  font-weight: 600;
  color: #fff;
  background: rgba(255,255,255,0.14);
  border: 1px solid rgba(255,255,255,0.22);
}
.admin-page-sibling:hover {
  background: rgba(255,255,255,0.26);
  color: #fff;
}
.admin-page-sibling.is-active {
  background: #fff;
  color: var(--admin-tone-ink);
  border-color: #fff;
}

.admin-app .admin-main h1 {
  max-width: none;
  font-size: clamp(1.35rem, 2.4vw, 1.7rem);
  font-weight: 800;
  color: var(--admin-tone-ink);
  line-height: 1.25;
}
.admin-app .admin-main h2 {
  max-width: none;
  font-size: 1.1rem;
  color: var(--admin-tone-ink);
}
.admin-app .admin-main .section {
  background: #fff;
  border: 1px solid #dfe6ef;
  border-radius: 14px;
  padding: 1rem 1.1rem 1.25rem;
  margin: 0 0 1rem;
  box-shadow: 0 8px 20px rgba(21, 32, 51, 0.04);
  border-top: 3px solid var(--admin-tone);
}
/* local-job: Seiteninhalt flach, volle Breite — kein enger Kasten */
.admin-lj.admin-app .admin-main .section {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  border-top: 0;
  padding: 0;
  margin: 0 0 1.25rem;
}
.admin-lj.admin-app .admin-bar {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0 0 0.85rem;
  margin: 0 0 1rem;
  border-bottom: 1px solid #dee2e6;
}
.admin-lj.admin-app .admin-bar h1 {
  color: #212529;
}
.admin-lj .tox-tinymce {
  border-radius: 0.35rem !important;
  border-color: #ced4da !important;
}
/* Editor: kein blauer Fokus-/Drop-Rahmen (bleibt sonst nach Bild-Drop stehen) */
.tox .tox-edit-area::before {
  display: none !important;
  border: 0 !important;
}
.tox .tox-edit-area__iframe:focus,
.tox .tox-edit-area__iframe:focus-visible {
  outline: none !important;
}
.tox.tox-tinymce:focus-within {
  box-shadow: none !important;
}
.admin-lj .tox .tox-menubar {
  background: #f8f9fa !important;
  border-bottom: 1px solid #dee2e6;
}
.admin-lj .tox .tox-toolbar-overlord,
.admin-lj .tox .tox-toolbar__primary {
  background: #fff !important;
}

.admin-app .admin-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  flex-wrap: wrap;
  margin: 0 0 1rem;
  padding: 0.85rem 1rem;
  border-radius: 12px;
  background: var(--admin-tone-soft);
  border: 1px solid color-mix(in srgb, var(--admin-tone) 28%, #dfe6ef);
}
.admin-app .admin-bar h1 {
  margin: 0;
  color: var(--admin-tone-ink);
}
.admin-app .admin-main .section > h1:first-child {
  margin: 0 0 1rem;
  padding: 0.75rem 0.9rem;
  border-radius: 12px;
  background: var(--admin-tone-soft);
  border: 1px solid color-mix(in srgb, var(--admin-tone) 28%, #dfe6ef);
}
.admin-app .admin-main .section > .hero-actions:first-child {
  margin: 0 0 1rem;
  padding: 0.85rem 1rem;
  border-radius: 12px;
  background: var(--admin-tone-soft);
  border: 1px solid color-mix(in srgb, var(--admin-tone) 28%, #dfe6ef);
}
.admin-app .admin-main .section > .hero-actions:first-child h1 {
  color: var(--admin-tone-ink);
}
.admin-app .admin-bar > .btn,
.admin-app .admin-bar > a.btn,
.admin-app .admin-bar > form .btn,
.admin-app .admin-bar > div .btn {
  border-radius: 999px;
}
.admin-app .admin-main .btn:not(.btn-ghost) {
  background: var(--admin-tone);
  border-color: var(--admin-tone);
  color: #fff;
}
.admin-app .admin-main .btn:not(.btn-ghost):hover,
.admin-app .admin-main .btn:not(.btn-ghost):focus-visible {
  background: var(--admin-tone-ink);
  border-color: var(--admin-tone-ink);
  color: #fff;
}
.admin-app .admin-main .btn-ghost {
  background: #fff;
  color: var(--admin-tone-ink);
  border-color: color-mix(in srgb, var(--admin-tone) 35%, #cfd6e0);
}
.admin-app .admin-main .btn-ghost:hover,
.admin-app .admin-main .btn-ghost:focus-visible {
  background: var(--admin-tone);
  border-color: var(--admin-tone);
  color: #fff;
}

/* local-job Look gewinnt über farbige Tone-Karten */
.admin-lj.admin-app .admin-main .btn:not(.btn-ghost) {
  background: #0d6efd;
  border-color: #0d6efd;
  color: #fff;
  border-radius: 0.35rem;
  box-shadow: none;
}
.admin-lj.admin-app .admin-main .btn:not(.btn-ghost):hover,
.admin-lj.admin-app .admin-main .btn:not(.btn-ghost):focus-visible {
  background: #0b5ed7;
  border-color: #0a58ca;
  color: #fff;
}
.admin-lj.admin-app .admin-main .btn-ghost {
  background: #fff;
  border: 1px solid #ced4da;
  color: #212529;
  border-radius: 0.35rem;
}
.admin-lj.admin-app .admin-main .btn-ghost:hover,
.admin-lj.admin-app .admin-main .btn-ghost:focus-visible {
  background: #e9ecef;
  border-color: #adb5bd;
  color: #212529;
}
.admin-lj.admin-app .admin-main .panel,
.admin-lj.admin-app .admin-main .placement-box,
.admin-lj.admin-app .admin-main fieldset.panel {
  background: #fff;
  border: 1px solid #dee2e6;
  border-left: 1px solid #dee2e6;
  border-radius: 0.4rem;
  box-shadow: none;
}
.admin-lj.admin-app .admin-table {
  border-radius: 0;
  box-shadow: none;
  border: 1px solid #dee2e6;
}
.admin-lj.admin-app .admin-table th {
  background: #f8f9fa;
  color: #495057;
}

.admin-app .admin-main .panel,
.admin-app .admin-main .placement-box,
.admin-app .admin-main fieldset.panel {
  background: #fbfcfe;
  border: 1px solid #e1e7f0;
  border-left: 4px solid var(--admin-tone);
  border-radius: 12px;
  padding: 1rem 1.05rem;
}
.admin-app .admin-main fieldset.panel legend {
  font-weight: 700;
  color: var(--admin-tone-ink);
  padding: 0 0.35rem;
}

.admin-app .admin-table {
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid #d9e1ec;
  box-shadow: 0 2px 8px rgba(21, 32, 51, 0.03);
}
.admin-app .admin-table.seo-meta-table {
  overflow: visible;
}
.admin-app .admin-table th {
  background: var(--admin-tone-soft);
  color: var(--admin-tone-ink);
  font-weight: 700;
  border-bottom-color: color-mix(in srgb, var(--admin-tone) 22%, #dfe6ef);
}
.admin-app .admin-table tbody tr:nth-child(even) td {
  background: #fafbfd;
}
.admin-app .admin-table tbody tr:hover td {
  background: var(--admin-tone-soft);
}

.admin-app .admin-main .stat {
  border-color: color-mix(in srgb, var(--admin-tone) 25%, #dfe6ef);
  border-top: 3px solid var(--admin-tone);
}
.admin-app .admin-main .stat strong {
  color: var(--admin-tone-ink);
}

.admin-app .admin-main .form.panel,
.admin-app .admin-main form.form.panel,
.admin-app .admin-main form.panel {
  border-left: 4px solid var(--admin-tone);
}
.admin-app .admin-main .form label {
  color: #334155;
  font-weight: 600;
}
.admin-app .admin-main .form input,
.admin-app .admin-main .form textarea,
.admin-app .admin-main .form select {
  border-color: #d0d8e4;
  background: #fff;
}
.admin-app .admin-main .form input[type="color"] {
  width: 3.35rem;
  min-width: 3.35rem;
  max-width: 3.35rem;
  height: 2.4rem;
  padding: 0.15rem;
  background: #fff;
  cursor: pointer;
  justify-self: start;
}
.news-band-color-row {
  display: flex;
  align-items: center;
  gap: 0.45rem;
}
.news-band-color-row input[type="text"] {
  width: 7rem;
  min-width: 0;
  font-family: ui-monospace, Menlo, Monaco, monospace;
  font-size: 0.84rem;
  padding: 0.45rem 0.5rem;
}
.admin-app .admin-main .form input:focus,
.admin-app .admin-main .form textarea:focus,
.admin-app .admin-main .form select:focus {
  outline: 2px solid color-mix(in srgb, var(--admin-tone) 45%, transparent);
  border-color: var(--admin-tone);
}

.admin-app .admin-main .flash {
  border-left: 4px solid #16a34a;
  font-weight: 650;
  font-size: 1.02rem;
  position: sticky;
  top: 0.35rem;
  z-index: 40;
  box-shadow: 0 6px 18px rgba(15, 107, 59, 0.12);
}
.admin-save-bar {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 220;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  max-width: min(42rem, calc(100vw - 2rem));
  padding: 0.65rem 0.85rem;
  background: #152033;
  color: #f4f6fa;
  border-radius: 14px;
  box-shadow: 0 10px 28px rgba(10, 16, 28, 0.28);
}
.admin-save-bar[hidden] { display: none !important; }
body.admin-no-floating-save #admin-save-bar,
body.admin-no-floating-save.has-admin-save #admin-save-bar {
  display: none !important;
}
.admin-save-bar .btn {
  margin: 0;
  white-space: nowrap;
  font-weight: 700;
  min-height: 2.6rem;
  padding: 0.45rem 1.15rem;
}
.admin-save-bar-ok {
  margin: 0;
  font-size: 0.92rem;
  color: #b7f0cb;
  line-height: 1.3;
}
.admin-save-bar-dismiss {
  margin: 0;
  padding: 0 0.35rem;
  min-width: 2rem;
  min-height: 2rem;
  border: 0;
  background: transparent;
  color: #d7dde8;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
  border-radius: 8px;
}
.admin-save-bar-dismiss:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
}
.admin-body.has-admin-save .admin-main {
  padding-bottom: 7.5rem;
}
.admin-save-top {
  position: relative;
  z-index: 2;
  background: color-mix(in srgb, var(--card, #fff) 92%, transparent);
  padding: 0.35rem 0 0.55rem;
  margin: 0 0 0.85rem;
}
.admin-app .admin-main .hero-actions .btn,
.admin-app .admin-main .admin-search .btn {
  border-radius: 999px;
}
.admin-app .admin-main .hero-actions {
  gap: 0.45rem;
}
.admin-app .admin-main .muted a {
  color: var(--admin-tone-ink);
  font-weight: 600;
}

.admin-app .admin-main .badge,
.admin-app .admin-main .pill {
  border-color: color-mix(in srgb, var(--admin-tone) 30%, #dfe6ef);
}

@media (max-width: 720px) {
  .admin-page-context { padding: 0.75rem 0.8rem; }
  .admin-app .admin-main .section { padding: 0.85rem 0.8rem 1rem; }
  .admin-app .admin-bar { padding: 0.7rem 0.75rem; }
}
.form { display: grid; gap: 0.9rem; }
.form label { display: grid; gap: 0.35rem; font-size: 0.9rem; }
.form input {
  border: 1px solid var(--line); border-radius: 10px; padding: 0.65rem 0.75rem; font: inherit;
}
.form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="color"]) {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.error { color: var(--danger); }
.stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 0.8rem; }
.stat {
  background: white; border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem;
  display: grid; gap: 0.25rem;
}
.stat strong { font-size: 1.6rem; font-family: var(--font); }
.inline-form { display: inline; }
.linkish {
  background: none; border: 0; color: var(--ink); font: inherit; cursor: pointer; padding: 0;
}
.admin-bar { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.admin-table { width:100%; border-collapse:collapse; background:white; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.admin-table th, .admin-table td { text-align:left; padding:0.75rem 0.9rem; border-bottom:1px solid var(--line); vertical-align:top; }
.admin-table th { background:#f7f8fb; font-size:0.85rem; color:var(--muted); }
.flash { background:#e8f6ee; color:#0f6b3b; padding:0.7rem 0.9rem; border-radius:10px; }
.nl-dot {
  display: inline-block;
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 50%;
  margin-right: 0.4rem;
  vertical-align: middle;
  flex-shrink: 0;
}
.nl-dot--on { background: #16a34a; box-shadow: 0 0 0 2px rgba(22, 163, 74, 0.2); }
.nl-dot--off { background: #dc2626; box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.15); }
.nl-dot--pending { background: #d97706; box-shadow: 0 0 0 2px rgba(217, 119, 6, 0.18); }
.nl-status-label { font-size: 0.88rem; vertical-align: middle; }
.nl-sub-table td { vertical-align: middle; }
.nl-pager .btn[aria-current="page"] { pointer-events: none; }
@media (max-width: 720px) {
  .nl-sub-table th,
  .nl-sub-table td {
    padding: 0.55rem 0.55rem;
    font-size: 0.82rem;
  }
  .nl-sub-table th:nth-child(5),
  .nl-sub-table td:nth-child(5) {
    display: none; /* Regionen — Platz auf schmalem Screen */
  }
  .nl-status-label { font-size: 0.78rem; }
  .nl-pager { gap: 0.3rem; }
  .nl-pager .btn { padding: 0.4rem 0.65rem; font-size: 0.85rem; }
}
.form textarea, .form select {
  border:1px solid var(--line); border-radius:10px; padding:0.65rem 0.75rem; font:inherit; width:100%;
}
.form .check { display:flex; align-items:center; gap:0.5rem; }
code { font-size:0.9em; }
html {
  scrollbar-gutter: stable;
}
.dev-banner {
  background: #142033;
  color: #fff;
  text-align: center;
  font-size: 0.8rem;
  padding: 0.45rem 0.75rem;
  position: relative;
  z-index: 20;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.main-content { position: relative; z-index: 1; }
/* Safari: z-index auf main legt die Suche über den fixed Header. Karte isoliert sich selbst. */
body.portal-page main {
  position: relative;
  z-index: auto;
  background: var(--bg, #ffffff);
}
body.portal-page main .card,
body.portal-page main .btn {
  z-index: auto;
}
a, button { cursor: pointer; }
.card, .btn, .nav a, .brand { position: relative; z-index: 2; }

/* Regional portal — Seitenfläche über Theme --bg (#f8f9fa); Header bleibt --portal-bar. */
body.portal-page,
body.portal-jobs {
  background: var(--bg, #f8f9fa) !important;
}
body.portal-page main,
body.portal-jobs main {
  background: var(--bg, #f8f9fa);
}
.portal {
  --portal-ink: var(--ink, #121820);
  --portal-paper: var(--card, #ffffff);
  color: var(--portal-ink);
}
.portal-zuerich { --portal-accent: var(--region-accent-zuerich, #1e4d7b); }
.portal-zuerichsee { --portal-accent: var(--region-accent-zuerichsee, #2f6f9f); }
.portal-aargau { --portal-accent: var(--region-accent-aargau, #b45309); }
.portal-zentralschweiz { --portal-accent: var(--region-accent-zentralschweiz, #0f766e); }
.portal-ostschweiz { --portal-accent: var(--region-accent-ostschweiz, #7c3aed); }
.portal-bern { --portal-accent: var(--region-accent-bern, #9f1239); }
.portal-basel { --portal-accent: var(--region-accent-basel, #1d4ed8); }

.portal-masthead {
  background: var(--portal-bar);
  color: #fff;
  padding: 0 0 0.85rem;
}
.portal-brand-row {
  display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between;
  gap: 0.75rem; padding-top: 1rem;
}
.portal-logo-block {
  display: grid; background: #0d131c; border: 2px solid var(--portal-accent);
  min-width: min(220px, 100%);
}
.portal-logo-top {
  font-family: var(--sans); font-weight: 800; letter-spacing: 0.08em;
  text-transform: uppercase; font-size: 0.85rem; padding: 0.45rem 0.8rem;
  color: #fff;
  transition: font-size 0.22s ease, padding 0.22s ease;
}
.portal-logo-region {
  font-family: var(--sans); font-weight: 800; font-size: clamp(1.4rem, 3vw, 1.9rem);
  background: var(--portal-accent); color: #fff; padding: 0.35rem 0.8rem; line-height: 1.1;
  transition: font-size 0.22s ease, padding 0.22s ease;
}
.portal-logo-block-dach .portal-logo-region {
  font-size: clamp(1.55rem, 3.2vw, 2.05rem);
  letter-spacing: -0.02em;
  padding: 0.55rem 0.95rem;
}
.portal-tagline {
  margin: 0; font-size: 0.78rem; letter-spacing: 0.14em; text-transform: uppercase;
  background: var(--portal-accent); color: #fff; font-weight: 700;
  padding: 0.45rem 0.75rem;
}
.portal-cats {
  display: flex; flex-wrap: wrap; gap: 0.35rem 1rem;
  border-top: 1px solid rgba(255,255,255,0.15);
}
.portal-cats a {
  color: #fff; text-decoration: none; font-size: 0.92rem; font-weight: 600;
  transition: font-size 0.22s ease;
}
.portal-cats a:hover { color: var(--portal-accent); }
.portal-cats a.nav-jobs { color: var(--header-link-active, var(--accent, #c4a035)); }
.portal-cats a.nav-jobs:hover { filter: brightness(1.12); }

.portal-band { padding: 1.4rem 0 1.8rem; background: var(--bg, #f8f9fa); }
.portal-band[id],
.portal [id] {
  scroll-margin-top: var(--scroll-anchor-offset, 7.5rem);
}
.portal-band-alt { background: var(--bg, #f8f9fa); }
.portal-band-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  margin: 0 0 1rem;
}
.portal-band-head .portal-band-title { margin: 0; }
.portal-band-head .portal-page-h1 { margin: 0; }
.portal-band-head .eyebrow { margin: 0 0 0.25rem; }
.portal-band-more {
  font-family: var(--sans);
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--portal-accent, #1a2433);
  text-decoration: none;
  white-space: nowrap;
}
.portal-band-more:hover { color: #8a7020; text-decoration: none; }
.portal-band-title {
  font-family: var(--sans); font-size: 1.05rem; font-weight: 800;
  background: var(--portal-accent); color: #fff; display: inline-block;
  padding: 0.35rem 0.7rem; margin: 0 0 1rem; letter-spacing: 0.02em;
}
.content-h2 {
  font-family: var(--sans);
  font-size: 1.05rem;
  font-weight: 700;
  margin: 1.1rem 0 0.65rem;
  color: #1a2433;
  line-height: 1.3;
}
.legal-page .legal-stand {
  margin: -0.35rem 0 1rem;
  font-size: 0.92rem;
}
.legal-page .legal-cookie-settings {
  margin: 0 0 1.25rem;
}
.legal-page .legal-section-title {
  margin-top: 1.75rem;
  padding-top: 0.25rem;
  border-top: 1px solid var(--line);
}
.legal-page .legal-section-title:first-of-type {
  margin-top: 1.25rem;
}
.legal-page p {
  line-height: 1.65;
  margin: 0 0 0.85rem;
}
.legal-page .legal-back,
.legal-page .legal-back-top {
  margin-top: 0;
}
.legal-page .legal-back {
  margin-top: 1.5rem;
}
.portal-hero {
  display: grid; grid-template-columns: 1.1fr 1fr; gap: 1.1rem; margin-bottom: 1.2rem;
  min-width: 0;
  max-width: 100%;
}
@media (max-width: 800px) {
  .portal-hero { grid-template-columns: 1fr; }
}
.portal-hero-visual {
  min-height: 220px; background:
    linear-gradient(135deg, #1a2433 0%, #2a3a52 55%, var(--portal-accent) 140%);
  display: grid; place-items: end start; padding: 1rem; color: #fff;
  font-weight: 800; font-size: 1.4rem; letter-spacing: 0.04em;
}
.portal-hero-photo {
  padding: 0;
  place-items: stretch;
  overflow: hidden;
  background: #e8e4dc;
  aspect-ratio: 16 / 9;
  width: 100%;
  min-height: 0 !important; /* nicht von .portal-hero-visual quetschen */
  max-height: none;
}
.portal-hero-photo img {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
  object-position: center center;
  display: block;
}
@media (max-width: 800px) {
  .portal-hero-photo {
    aspect-ratio: 16 / 10;
  }
}
.portal-story-photo {
  display: block;
  margin: -0.85rem -0.9rem 0.75rem;
  width: calc(100% + 1.8rem);
  max-width: none;
  overflow: hidden;
  background: #e8e4dc;
  /* Früher height:168px — bei 16:9-Motiven (Fallback/Fotos) oben abgeschnitten (Gold-Balken). */
  height: auto;
  aspect-ratio: 16 / 9;
  content-visibility: auto;
  contain-intrinsic-size: 640px 360px;
}
.portal-story-photo img {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
  object-position: center center;
  display: block;
}
/* Inhaltseiten — gleiche Breite wie .wrap (Header/Footer) */
.content-detail,
.article-detail {
  max-width: none;
  min-width: 0;
  overflow-x: clip;
}
.content-detail-title,
.article-detail-title {
  font-family: var(--sans);
  font-size: clamp(1.35rem, 2.6vw, 2.15rem);
  font-weight: var(--heading-weight);
  line-height: 1.2;
  max-width: none;
  margin: 0.5rem 0;
  overflow-wrap: anywhere;
  word-break: break-word;
  hyphens: auto;
}
.content-detail-meta,
.article-detail-meta {
  margin: 0.5rem 0 1.2rem;
  font-size: clamp(0.88rem, 2.2vw, 0.98rem);
  line-height: 1.45;
}
.content-detail-lead,
.article-detail-lead {
  margin: 0 0 1rem;
  font-size: clamp(1rem, 2.4vw, 1.1rem);
  line-height: 1.5;
  color: #1e293b;
}
.content-detail-source,
.article-detail-source {
  margin-top: 1.2rem;
}
.content-detail .lede,
.article-detail .lede {
  max-width: none;
  font-size: clamp(1rem, 2.2vw, 1.15rem);
  line-height: 1.45;
}
.article-body {
  max-width: none;
  font-size: clamp(0.98rem, 2.2vw, 1.05rem);
  line-height: 1.6;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.article-body img,
.article-body iframe,
.article-body video {
  max-width: 100%;
  height: auto;
}
.article-body img[style*="width: 100%"],
.article-body img[style*="width:100%"],
.article-body figure[style*="width: 100%"] img,
.article-body figure[style*="width:100%"] img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}
.content-detail .share-bar,
.article-detail .share-bar {
  margin-top: 1rem;
}
.content-detail .share-bar-actions,
.article-detail .share-bar-actions {
  gap: 0.35rem;
}
.content-detail .article-gallery,
.article-detail .article-gallery {
  grid-template-columns: 1fr;
  gap: 0.55rem;
}
.content-detail .entity-social-block,
.article-detail .entity-social-block {
  margin-top: 1rem;
}
.content-detail .internal-links a,
.article-detail .internal-links a {
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* Kleine Handys (hoch + quer) */
@media (max-width: 479px) {
  .portal-band:has(.content-detail) {
    padding: 1rem 0 1.35rem;
  }
  .content-detail .share-bar-actions .share-btn,
  .article-detail .share-bar-actions .share-btn {
    flex: 1 1 calc(50% - 0.5rem);
    min-width: 0;
    font-size: 0.92rem;
    padding-inline: 0.55rem;
    min-height: 2.6rem;
  }
  .content-detail .share-bar-actions .share-btn-native,
  .article-detail .share-bar-actions .share-btn-native {
    flex: 1 1 100%;
  }
  .article-photo {
    border-radius: 0;
  }
}

/* Grosses Handy / kleines Tablet hoch */
@media (min-width: 480px) and (max-width: 767px) {
  .content-detail .article-gallery,
.article-detail .article-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Tablet hoch + quer, kleine Laptops */
@media (min-width: 640px) {
  .content-detail .article-gallery,
.article-detail .article-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
  }
  .content-detail .article-inline-photo img,
  .article-detail .article-inline-photo img {
    max-height: min(42vw, 400px);
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .content-detail-title,
  .article-detail-title {
    font-size: clamp(1.55rem, 2.4vw, 2rem);
  }
  .portal-band:has(.content-detail) {
    padding: 1.25rem 0 1.6rem;
  }
}

/* Tablet quer / Laptop / grosser Bildschirm */
@media (min-width: 900px) {
  .content-detail .article-gallery,
.article-detail .article-gallery {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
  }
  .content-detail .article-inline-photo img,
  .article-detail .article-inline-photo img {
    max-height: 480px;
  }
}

@media (min-width: 1100px) {
  .content-detail .article-inline-photo img,
  .article-detail .article-inline-photo img {
    max-height: 520px;
  }
}

/* Mobile/Tablet: Abschlussblock + Medien stapeln */
@media (max-width: 639px) {
  .article-address-block {
    flex-direction: column;
    gap: 0.75rem;
  }
  .article-inline-photo img {
    max-height: min(56vw, 320px);
  }
  .content-detail .video-embed-inner,
  .article-detail .video-embed-inner {
    border-radius: 0;
  }
  .content-detail .video-embed,
  .article-detail .video-embed {
    margin: 1rem 0 1.25rem;
  }
}

/* Querformat auf schmalen Geräten (Handy/Tablet) */
@media (max-width: 900px) and (orientation: landscape) {
  .content-detail-title,
  .article-detail-title {
    font-size: clamp(1.25rem, 2.2vw, 1.75rem);
  }
  .article-photo {
    aspect-ratio: 16 / 9;
    max-height: min(52vh, 420px);
  }
  .article-photo img {
    object-fit: cover;
  }
}
.article-photo {
  width: 100%;
  max-width: 100%;
  margin: 0 0 1.1rem;
  overflow: hidden;
  background: #e8e4dc;
  aspect-ratio: 16 / 9;
  border-radius: 0;
  /* kein max-height — sonst schrumpft die Breite unter die Textbreite */
}
.article-photo img,
.article-photo picture {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0;
}
.portal-story-go {
  display: inline-block; margin-top: 0.55rem; font-weight: 700; font-size: 0.9rem; color: #8a7020;
}
.article-external-box {
  margin: 1.2rem 0 1.6rem; padding: 1rem 1.1rem; border: 1px solid #e4e0d8; background: #f7f5f0;
}
.article-external-box p { margin: 0 0 0.85rem; color: #334155; }
.article-body p { margin: 0 0 1rem; line-height: 1.55; color: #1e293b; }
.article-logo-footer {
  margin-top: 1.6rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line, #e4e0d8);
}
.article-logo-footer img {
  max-height: 72px;
  width: auto;
  display: block;
}
.article-inline-photo {
  margin: 1.1rem 0;
  overflow: hidden;
  background: #e8e4dc;
  border-radius: 0;
}
.article-inline-photo img {
  width: 100%;
  max-height: 420px;
  object-fit: cover;
  display: block;
}
.article-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 0.65rem;
  margin: 1.4rem 0 0.4rem;
}
@media (min-width: 640px) {
  .article-gallery {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  }
}
.article-gallery-item {
  margin: 0;
  overflow: hidden;
  border-radius: 0;
  background: #e8e4dc;
  aspect-ratio: 4 / 3;
}
.article-gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.article-address-block {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-top: 1.6rem;
  padding-top: 1.1rem;
  border-top: 1px solid var(--line, #e4e0d8);
}
.article-address-logo {
  max-height: 64px;
  width: auto;
  flex-shrink: 0;
}
.article-address-text {
  color: #334155;
  line-height: 1.45;
  font-size: 0.95rem;
}
.portal-home-eyebrow {
  font-family: var(--sans);
  font-size: var(--portal-size-label, 0.8125rem);
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--portal-meta-soft, #526070);
  margin: 0 0 0.35rem;
}
.portal-home-h1,
.portal-page-h1,
.company-dir-title {
  font-family: var(--sans);
  font-size: clamp(1.15rem, 2.4vw, 1.55rem);
  font-weight: var(--heading-weight);
  line-height: 1.25;
  margin: 0 0 1rem;
  max-width: none;
  color: #1a2433;
}
.portal h1 {
  font-family: var(--sans);
  font-weight: var(--heading-weight);
  max-width: none;
}
.portal-hero-copy h1,
.portal-hero-copy .portal-hero-title {
  font-family: var(--sans);
  font-size: clamp(1.35rem, 3vw, 1.9rem);
  font-weight: var(--heading-weight);
  max-width: none;
  margin: 0.4rem 0 0.6rem;
  line-height: 1.2;
}
.portal-hero-copy p { margin: 0; color: #334155; line-height: 1.45; }
.portal-cat {
  display: inline-block; background: #111; color: #fff;
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.04em;
  text-transform: uppercase; padding: 0.2rem 0.45rem;
}
.portal-cat-spotlight {
  background: var(--portal-accent, #1e3a5f);
}
.spotlight-band-intro { margin-bottom: 1rem; }
.spotlight-card {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 1.1rem 1.25rem;
  align-items: start;
  border: 1px solid #e4e0d8;
  background: #faf9f6;
  padding: 1rem;
  min-width: 0;
}
@media (max-width: 720px) {
  .spotlight-card { grid-template-columns: 1fr; }
}
.spotlight-card-media {
  display: block;
  overflow: hidden;
  border-radius: 0;
}
.spotlight-card-media img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
}
.spotlight-card-body { min-width: 0; }
.spotlight-card-title {
  font-family: var(--sans);
  font-size: clamp(1.12rem, 2.4vw, 1.42rem);
  margin: 0.45rem 0 0.35rem;
  line-height: 1.25;
  font-weight: 700;
}
.spotlight-card-title a { color: inherit; text-decoration: none; }
.spotlight-card-title a:hover { color: var(--portal-accent); }
.spotlight-card-teaser {
  margin: 0 0 0.45rem;
  color: #475569;
  line-height: 1.45;
  font-size: 0.95rem;
}
.spotlight-card-company,
.spotlight-card-mag {
  margin: 0.3rem 0 0;
  font-size: 0.9rem;
}
.spotlight-card-disclosure {
  margin: 0.45rem 0 0.65rem;
  font-size: 0.84rem;
}
.spotlight-detail-company,
.spotlight-detail-mag,
.spotlight-detail-disclosure { margin: 0.35rem 0 0; }
.spotlight-detail-mag a { font-weight: 600; }
.portal-places { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.85rem !important; }
.portal-places span {
  font-size: 0.78rem; border: 1px solid #d6d3cd; padding: 0.2rem 0.45rem; background: #fff;
}
.portal-story-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.9rem;
  min-width: 0;
  width: 100%;
  max-width: 100%;
}
@media (max-width: 900px) {
  .portal-story-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .portal-story-grid { grid-template-columns: 1fr; }
}
.portal-feed-sentinel {
  grid-column: 1 / -1;
  height: 1px;
  margin: 0;
  padding: 0;
  border: 0;
  pointer-events: none;
}
.portal-feed-status {
  margin: 0.75rem 0 0;
  font-size: 0.9rem;
  color: var(--muted);
}
.portal-story {
  background: var(--card, var(--portal-paper, #fffdf8)); border: 1px solid var(--line, #e4e0d8); padding: 0.85rem 0.9rem;
  border-radius: var(--surface-radius, 8px);
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}
.portal-story h3,
.portal-story .portal-story-title {
  font-family: var(--sans); font-size: 1.02rem; margin: 0.45rem 0 0.35rem; line-height: 1.25;
  font-weight: 700;
}
.portal-story p { margin: 0; color: #475569; font-size: 0.92rem; line-height: 1.4; }
.portal-mag-soon {
  color: var(--portal-accent, var(--accent));
  font-family: var(--sans);
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: 0.02em;
}
.portal-story-link:hover .portal-mag-soon {
  color: var(--portal-accent, var(--accent));
}

.portal-mag {
  display: grid; grid-template-columns: 1.4fr 1fr; gap: 1rem; align-items: start;
}
@media (max-width: 720px) {
  .portal-mag { grid-template-columns: 1fr; }
}
.portal-mag-name { font-family: var(--sans); font-size: 1.5rem; margin: 0 0 0.5rem; }
.portal-mag-card {
  background: #111; color: #fff; padding: 1.1rem; border-top: 4px solid var(--portal-accent);
}
.portal-mag-card p { color: #cbd5e1; margin: 0.4rem 0 0; }
.home-mitmachen-card .home-mitmachen-btn {
  margin-top: 0.9rem;
  display: inline-block;
}
.home-mitmachen-email {
  margin: 0.85rem 0 0;
  padding: 0.65rem 0.75rem;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 8px;
}
.home-mitmachen-email-label {
  display: block;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #94a3b8;
  margin-bottom: 0.2rem;
}
.home-mitmachen-email-value {
  display: inline;
  font-family: var(--sans);
  font-size: 1rem;
  font-weight: 650;
  color: #f8fafc;
  letter-spacing: 0.01em;
  user-select: all;
  -webkit-user-select: all;
  word-break: break-all;
}
.home-mitmachen-email-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.55rem;
  margin: 0;
}
.home-mitmachen-email-or {
  color: #94a3b8;
  font-size: 0.92rem;
  font-weight: 500;
  user-select: none;
}
.home-mitmachen-copy > p {
  margin-bottom: 0;
}
.home-mitmachen-phone {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  margin-top: 1.15rem;
  padding: 0.7rem 0.85rem 0.7rem 0.7rem;
  max-width: 100%;
  background: var(--card, #fffdf8);
  border: 1px solid var(--line, #e4e0d8);
  border-radius: 10px;
  box-shadow: 0 1px 0 rgba(20, 32, 51, 0.03);
}
.home-mitmachen-phone-icon {
  display: grid;
  place-items: center;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 999px;
  background: rgba(26, 36, 51, 0.06);
  border: 1px solid rgba(26, 36, 51, 0.12);
  color: var(--ink, #142033);
  flex-shrink: 0;
}
.home-mitmachen-phone-copy {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 0;
}
.home-mitmachen-phone-label {
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted, #5b6575);
  font-weight: 600;
}
.home-mitmachen-phone-value {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--ink, #142033);
  letter-spacing: 0.03em;
  font-variant-numeric: tabular-nums;
  user-select: all;
  -webkit-user-select: all;
}
.home-mitmachen .portal-mag-name {
  max-width: 22ch;
}
@media (max-width: 720px) {
  .home-mitmachen .portal-mag-name { max-width: none; }
}
.portal-main--marketing > .home-mitmachen.portal-band {
  margin-top: 2rem;
  padding-top: 0.5rem;
  padding-bottom: 2rem;
}
.portal-main--marketing .home-hub-panel--regions {
  margin-bottom: 0.35rem;
}
.portal-main--marketing .home-mitmachen:not(:has(.portal-band-title)) .portal-mag-name {
  margin-top: 0;
}
@media (min-width: 900px) {
  .portal-main--marketing .home-mitmachen .portal-mag {
    grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
    gap: 1.35rem 2rem;
    align-items: stretch;
  }
  .portal-main--marketing .home-mitmachen .portal-mag-name {
    max-width: none;
    font-size: clamp(1.35rem, 2.2vw, 1.65rem);
    line-height: 1.22;
  }
}
.portal-main--marketing .home-mitmachen-copy > p {
  font-size: 0.96rem;
  line-height: 1.55;
  color: #475569;
  max-width: none;
}
.portal-main--marketing .home-mitmachen .home-mitmachen-card.portal-mag-card {
  background: #1a2433;
  border-radius: 12px;
  padding: 1.2rem 1.35rem 1.3rem;
  height: 100%;
  box-sizing: border-box;
}
.portal-main--marketing .home-mitmachen-card strong {
  font-size: 1.05rem;
}

.portal-events {
  display: grid;
  gap: 0.85rem;
  grid-template-columns: 1fr;
}
@media (min-width: 700px) {
  .portal-events { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1000px) {
  .portal-events { grid-template-columns: repeat(3, 1fr); }
}
.portal-event-card {
  background: #fff;
  border: 1px solid #e4e0d8;
  border-radius: var(--surface-radius, 8px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.portal-event-card-media {
  display: block;
  aspect-ratio: 16 / 9;
  background: #e8e4dc;
  overflow: hidden;
  position: relative;
}
.portal-event-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.portal-event-card-media.is-placeholder {
  background: linear-gradient(135deg, #1e3a5f 0%, #0f766e 100%);
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  text-decoration: none;
}
.portal-event-ph {
  color: #f8fafc;
  font-weight: 800;
  font-size: 1.15rem;
  letter-spacing: 0.02em;
  padding: 0.85rem 1rem;
  opacity: 0.92;
}
.portal-event-card-body {
  padding: 0.85rem 0.95rem 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  flex: 1;
}
.portal-event-card-body time {
  font-weight: 800;
  color: #111;
  font-size: 0.92rem;
}
.portal-event-card-title {
  margin: 0;
  font-family: var(--sans);
  font-size: 1.1rem;
  line-height: 1.3;
}
.portal-event-card-title a { color: #0f172a; text-decoration: none; }
.portal-event-card-title a:hover { color: var(--portal-accent, #1e3a5f); text-decoration: none; }
.portal-event-card-place {
  color: var(--portal-meta, #475569);
  font-size: var(--portal-size-meta, 0.875rem);
}
.portal-event-teaser { margin: 0.2rem 0 0; color: #475569; font-size: 0.92rem; line-height: 1.4; }
.portal-event-link {
  margin-top: auto;
  padding-top: 0.55rem;
  font-size: 0.9rem;
  font-weight: 700;
}
.event-detail-photo { margin-bottom: 1.1rem; }

/* legacy row (falls noch irgendwo) */
.portal-event {
  display: grid; grid-template-columns: 5.5rem 1fr auto; gap: 0.75rem; align-items: start;
  background: #fff; border: 1px solid #e4e0d8; padding: 0.75rem 0.9rem;
}

.portal-subhead {
  font-family: var(--sans);
  font-size: 1.15rem;
  margin: 1rem 0 0.35rem;
  color: #0f172a;
}
/* Digitale Inserate: gleiche Kartenbreite wie News, 3 nebeneinander.
   Quer und Hoch eigene Reihen — leere Formate fallen weg, Rest rutscht zusammen. */
.portal-digital-ads-stack {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  margin: 0.75rem 0 0.4rem;
  min-width: 0;
  width: 100%;
}
.portal-digital-ads {
  margin: 0.75rem 0 0.4rem;
  min-width: 0;
  width: 100%;
  max-width: 100%;
}
.portal-digital-ads-stack .portal-digital-ads {
  margin: 0;
}
.portal-digital-row-label {
  margin: 0 0 0.45rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #64748b;
}
.portal-digital-ads-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
  width: 100%;
  min-width: 0;
  align-items: start;
}
.portal-digital-ad-item {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: none;
}
.portal-digital-ad {
  position: relative;
  display: block;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding: 0;
  margin: 0;
  cursor: zoom-in;
  aspect-ratio: 16 / 9;
  background: #142033;
  border: 0;
  overflow: hidden;
  text-decoration: none;
  font: inherit;
  color: inherit;
  text-align: left;
  -webkit-tap-highlight-color: transparent;
}
.portal-digital-ad-title {
  display: block;
  margin: 0.4rem 0 0;
  font-size: 0.92rem;
  font-weight: 650;
  line-height: 1.3;
  color: #142033;
  text-decoration: none;
}
.portal-digital-ad-title:hover {
  color: #c4a035;
}
@media (max-width: 900px) {
  .portal-digital-ads-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 560px) {
  .portal-digital-ads-row {
    grid-template-columns: 1fr;
  }
}
.portal-digital-ad img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
  object-position: center;
  display: block;
  pointer-events: none;
}
.portal-digital-ad.is-hoch,
.portal-digital-ads.is-hoch .portal-digital-ad,
.portal-digital-ad-item.is-hoch .portal-digital-ad {
  aspect-ratio: 3 / 4;
}

.portal-ad-lightbox[hidden] { display: none !important; }
.portal-ad-lightbox {
  position: fixed;
  inset: 0;
  z-index: 400;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  overflow: hidden;
}
.portal-ad-lightbox-backdrop {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: rgba(10, 16, 28, 0.9);
  cursor: pointer;
}
.portal-ad-lightbox-panel {
  position: relative;
  z-index: 1;
  width: auto;
  max-width: none;
  max-height: none;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  background: transparent;
  border: 0;
  padding: 0;
  box-shadow: none;
  overflow: visible;
}
.portal-ad-lightbox.is-leaderboard .portal-ad-lightbox-panel,
.portal-ad-lightbox.is-card .portal-ad-lightbox-panel,
.portal-ad-lightbox.is-digital .portal-ad-lightbox-panel,
.portal-ad-lightbox.is-spotlight .portal-ad-lightbox-panel,
.portal-ad-lightbox.is-hoch .portal-ad-lightbox-panel {
  max-width: none;
  background: transparent;
}
.portal-ad-lightbox-img {
  display: block;
  width: auto;
  height: auto;
  margin: 0;
  max-width: 96vw;
  max-height: 96dvh;
  object-fit: contain;
  background: transparent;
  box-shadow: 0 22px 64px rgba(0, 0, 0, 0.55);
}
.portal-ad-lightbox.is-hoch .portal-ad-lightbox-img {
  max-width: 96vw;
  max-height: 96dvh;
}
.portal-ad-lightbox-tools {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  z-index: 6;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.portal-ad-lightbox-close {
  position: static;
  top: auto;
  right: auto;
  z-index: 6;
  width: 2.7rem;
  height: 2.7rem;
  border: 2px solid #c4a035;
  border-radius: 0;
  background: #fff;
  color: #0f172a;
  font-size: 1.65rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35);
}
.portal-ad-lightbox-cta {
  text-decoration: none;
  text-align: center;
  width: auto;
  min-width: 0;
  min-height: 2.7rem;
  padding: 0.35rem 0.8rem;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.28);
}
.portal-ad-lightbox-tools .portal-ad-lightbox-share {
  min-height: 2.7rem;
  margin: 0;
  flex: 0 0 auto;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.28);
}
body.portal-ad-lightbox-open { overflow: hidden; }

/* Inhalts-Galerie — Klick → Lightbox */
.gallery-lightbox[hidden] { display: none !important; }
.gallery-lightbox {
  position: fixed;
  inset: 0;
  z-index: 450;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem;
}
.gallery-lightbox-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(10, 16, 28, 0.92);
  cursor: pointer;
}
.gallery-lightbox-dialog {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  max-width: 96vw;
  max-height: 96dvh;
  margin: 0;
}
.gallery-lightbox-figure {
  margin: 0;
  max-width: 96vw;
  max-height: calc(96dvh - 2.5rem);
}
.gallery-lightbox-img {
  display: block;
  max-width: 96vw;
  max-height: calc(96dvh - 3rem);
  width: auto;
  height: auto;
  object-fit: contain;
  box-shadow: 0 22px 64px rgba(0, 0, 0, 0.45);
}
.gallery-lightbox-caption {
  margin: 0.5rem 0 0;
  max-width: 36rem;
  font-size: 0.88rem;
  line-height: 1.4;
  color: #f3efe6;
  text-align: center;
}
.gallery-lightbox-close {
  position: absolute;
  top: -0.15rem;
  right: 0;
  z-index: 3;
  width: 2.5rem;
  height: 2.5rem;
  border: 1.5px solid #c4a035;
  border-radius: 8px;
  background: #fff;
  color: #1a1814;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
}
.gallery-lightbox-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  width: 2.5rem;
  height: 2.75rem;
  border: 1.5px solid #c4a035;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.95);
  color: #1a1814;
  font-size: 1.75rem;
  line-height: 1;
  cursor: pointer;
}
.gallery-lightbox-prev { left: -3rem; }
.gallery-lightbox-next { right: -3rem; }
.gallery-lightbox-counter {
  position: absolute;
  top: -0.1rem;
  left: 0;
  margin: 0;
  font-size: 0.82rem;
  color: #e8e4dc;
}
html.gallery-lightbox-open { overflow: hidden; }
.gallery-lightbox-trigger {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: none;
  background: none;
  cursor: zoom-in;
  text-align: inherit;
  font: inherit;
  color: inherit;
}
.gallery-lightbox-trigger picture,
.gallery-lightbox-trigger img {
  display: block;
  width: 100%;
  height: auto;
}
.article-gallery-item:has(.gallery-lightbox-trigger:hover) {
  outline: 2px solid rgba(196, 160, 53, 0.55);
  outline-offset: 2px;
}
@media (max-width: 900px) {
  .gallery-lightbox-prev { left: 0.25rem; }
  .gallery-lightbox-next { right: 0.25rem; }
  .gallery-lightbox-dialog { padding-top: 2.5rem; }
  .gallery-lightbox-close { top: 0; right: 0.25rem; }
  .gallery-lightbox-counter { top: 0.35rem; left: 0.5rem; }
}

/* Teilen — mobil System-Share, Desktop Kanäle */
.share-bar {
  margin: 1.25rem 0 0.5rem;
  padding: 0.85rem 0 0;
  border-top: 1px solid #e4e0d8;
}
.share-bar-label {
  margin: 0 0 0.45rem;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
}
.share-bar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.share-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.55rem;
  padding: 0.45rem 0.9rem;
  border: 1px solid #d7d2c8;
  background: #fff;
  color: #142033;
  font: inherit;
  font-size: 0.95rem;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.share-btn:hover,
.share-btn:focus-visible {
  background: #1a2433;
  border-color: #1a2433;
  color: #fff;
}
.share-btn-native {
  background: #1a2433;
  border-color: #1a2433;
  color: #fff;
}
.share-bar-count {
  margin: 0.45rem 0 0;
  font-size: 0.82rem;
}
.portal-ad-share-sheet {
  position: absolute;
  top: 3.55rem;
  right: 0.75rem;
  z-index: 7;
  width: min(18.5rem, calc(100vw - 1.5rem));
  flex-shrink: 0;
  margin: 0;
  padding: 0.55rem 0.6rem 0.6rem;
  border: 0;
  background: #fff;
  box-shadow: 0 10px 32px rgba(0, 0, 0, 0.35);
}
.portal-ad-share-sheet[hidden] { display: none !important; }
.portal-ad-share-sheet .share-bar-label {
  margin: 0 0 0.3rem;
  color: #64748b;
  font-size: 0.72rem;
}
.portal-ad-share-sheet .share-bar-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.3rem;
}
.portal-ad-share-sheet .share-btn {
  min-height: 2.05rem;
  padding: 0.25rem 0.35rem;
  font-size: 0.8rem;
  width: 100%;
  box-sizing: border-box;
}

.ad-share-title {
  font-family: var(--sans);
  font-size: clamp(1.35rem, 3vw, 1.85rem);
  font-weight: var(--heading-weight);
  margin: 0 0 1rem;
  color: #0f172a;
}
.ad-share-figure {
  margin: 0 0 1rem;
  background: #eceae6;
  border: 1px solid var(--line);
  overflow: visible;
  line-height: 0;
}
.ad-share-figure img {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
  object-position: center center;
}
.ad-share-actions { margin-bottom: 0.5rem; }

.ad-listing-muster-note {
  margin: 0 0 1rem;
  padding: 0.55rem 0.75rem;
  background: #fff;
  border: 1px solid var(--line);
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.4;
}
.ad-listing-wrap { max-width: var(--site-content-max); }
.ad-listing-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.25rem;
  margin: 1.1rem 0 0;
  padding: 0.65rem 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  color: var(--muted);
  font-size: 0.82rem;
}
.ad-listing-tool { display: inline-flex; align-items: center; gap: 0.35rem; }
.ad-listing-catlist {
  margin: 1.25rem 0 0;
}
.ad-listing-catlist-label {
  margin: 0 0 0.55rem;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--muted);
}
.ad-listing-catlist-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.55rem;
}
.ad-listing-catlist-links a {
  display: inline-block;
  padding: 0.35rem 0.7rem;
  border: 1px solid var(--region-chip-gold-border, #e0d4b8);
  border-radius: var(--region-chip-radius, 8px);
  background: #fff;
  color: var(--region-chip-ink, var(--ink));
  text-decoration: none;
  font-size: 0.88rem;
  font-weight: 500;
  line-height: 1.25;
  box-sizing: border-box;
}
.ad-listing-catlist-links a:hover,
.ad-listing-catlist-links a:focus-visible {
  border-color: #c4a035;
  background: var(--region-chip-gold-bg, #efe6d2);
  color: var(--region-chip-ink, var(--ink));
  text-decoration: none;
}
.ad-listing-catlist-links a[aria-current="page"] {
  border-color: #e8d08a;
  background: #e8d08a;
  color: #1a2433;
}
@media (max-width: 720px) {
  .ad-listing-catlist-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.4rem;
  }
  .ad-listing-catlist-links a {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 2.75rem;
    padding: 0.4rem 0.45rem;
    font-size: 0.78rem;
    line-height: 1.25;
    overflow-wrap: anywhere;
    box-sizing: border-box;
  }
  .ad-listing-catlist-links a:first-child {
    grid-column: 1 / -1;
  }
}
.ad-listing-toolbar-grow { flex: 1 1 auto; min-width: 0.5rem; }
.ad-listing-sort-label { color: var(--muted); }
.ad-listing-sort {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.ad-listing-sort-btn {
  display: inline-block;
  padding: 0.25rem 0.55rem;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  text-decoration: none;
  font-size: 0.82rem;
  line-height: 1.2;
}
.ad-listing-sort-btn.is-on,
.ad-listing-sort-btn:hover {
  border-color: var(--ink);
  background: #0f172a;
  color: #fff;
}
.ad-listing-count { color: var(--ink); }
.ad-listing-pager {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  margin: 2rem 0 0;
  padding-top: 1.25rem;
  border-top: 1px solid var(--line);
}
.ad-listing-pager-num,
.ad-listing-pager-nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.25rem;
  min-height: 2.25rem;
  padding: 0.25rem 0.55rem;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  text-decoration: none;
  font-size: 0.88rem;
  font-weight: 500;
}
.ad-listing-pager-num.is-on,
.ad-listing-pager-num:hover,
.ad-listing-pager-nav:hover {
  border-color: var(--ink);
  background: #0f172a;
  color: #fff;
}
.ad-listing-board {
  margin: 0;
  padding: 1.75rem 0 3rem;
  background: #fff;
}
.ad-listing-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.5rem 1rem;
  margin: 0;
  align-items: start;
}
@media (min-width: 721px) {
  .ad-listing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 900px) {
  .ad-listing-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
  .ad-listing-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
.ad-listing-card,
.ad-listing-card.is-hoch {
  display: flex;
  flex-direction: column;
  width: auto;
  text-decoration: none;
  color: inherit;
  background: transparent;
  border: 0;
  min-width: 0;
}
.ad-listing-card-photo {
  position: relative;
  display: block;
  aspect-ratio: 16 / 10;
  background: #eceae6;
  border-radius: var(--surface-radius, 8px);
  box-shadow: 0 10px 28px rgba(20, 32, 51, 0.08);
  overflow: hidden;
}
.ad-listing-card-photo img,
.ad-listing-card-photo picture {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center center;
}
/* Alle Karten gleicher Foto-Slot 16/10 — Quer/Hoch mit Leerraum, Motiv nie abschneiden */
.ad-listing-pin { flex: 0 0 auto; color: var(--accent-2); }
.ad-listing-card-place {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0.7rem 0 0.2rem;
  font-family: var(--sans);
  font-size: var(--portal-size-meta, 0.875rem);
  font-weight: 400;
  letter-spacing: 0.01em;
  color: var(--muted);
}
.ad-listing-card-title {
  display: block;
  font-family: var(--sans);
  font-size: var(--portal-size-body, 1rem);
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0.01em;
  color: var(--ink);
  overflow-wrap: anywhere;
}
.ad-listing-card:hover .ad-listing-card-title {
  color: var(--accent-2);
}
.ad-listing-region-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
  margin: 1.5rem 0 2.5rem;
}
@media (min-width: 721px) {
  .ad-listing-region-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1000px) {
  .ad-listing-region-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.ad-listing-region-card {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
  padding: 1.15rem 1.2rem;
  text-decoration: none;
  color: inherit;
  background: #fff;
  border: 1px solid var(--region-chip-gold-border, #e0d4b8);
  border-radius: var(--surface-radius, 8px);
  box-shadow: none;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.ad-listing-region-card:hover,
.ad-listing-region-card:focus-visible {
  border-color: #c4a035;
  background: var(--region-chip-gold-bg, #efe6d2);
  text-decoration: none;
}
.ad-listing-region-kicker {
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--muted);
}
.ad-listing-region-name {
  font-family: var(--sans);
  font-size: 1.15rem;
  font-weight: 500;
  line-height: 1.3;
  color: var(--ink);
}
.ad-listing-region-meta {
  font-size: 0.88rem;
  font-weight: 400;
  color: var(--muted);
}
.ad-listing-region-go {
  margin-top: 0.55rem;
  font-size: 0.88rem;
  font-weight: 500;
  color: var(--accent-2);
}
.ad-listing-region-grid--home {
  margin: 0.75rem 0 0;
}
.ad-listing-kicker { margin: 0 0 0.5rem; }
.ad-listing-detail {
  padding: 1.75rem 0 2.5rem;
}
.ad-listing-detail .ad-listing-back {
  margin: 0 0 1.25rem;
}
.ad-listing-back-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.75rem;
  font-family: var(--sans);
  font-size: var(--portal-size-meta, 0.875rem);
  font-weight: 600;
  color: var(--accent-2);
  text-decoration: none;
  background: #fff;
  border: 1px solid var(--line, #e4e0d8);
  border-radius: var(--region-chip-radius, var(--btn-radius, 8px));
  box-shadow: 0 1px 2px rgba(20, 32, 51, 0.04);
}
.ad-listing-back-link:hover,
.ad-listing-back-link:focus-visible {
  border-color: #c4a035;
  background: var(--region-chip-gold-bg, #efe6d2);
  color: var(--region-chip-ink, var(--accent-2));
  text-decoration: none;
}
.ad-listing-back-icon {
  display: none;
}
.ad-listing-detail-head {
  margin: 0 0 1.15rem;
}
.ad-listing-detail .ad-share-title {
  margin: 0 0 0.45rem;
  font-size: clamp(1.75rem, 3.2vw, 2.35rem);
  line-height: 1.12;
  letter-spacing: -0.02em;
  color: var(--accent-2);
}
.ad-listing-detail .ad-listing-head-meta {
  margin: 0 0 0.65rem;
  max-width: 42rem;
  font-size: var(--portal-size-secondary, 1.0625rem);
  line-height: 1.45;
  font-weight: 400;
  color: var(--portal-meta, #64748b);
}
.ad-listing-detail-head:has(.ad-listing-head-meta) .ad-share-title {
  margin-bottom: 0.35rem;
}
.ad-listing-place,
.ad-listing-meta {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
  padding: 0.28rem 0.7rem 0.28rem 0.5rem;
  color: var(--region-chip-ink, var(--portal-meta, #475569));
  font-size: var(--portal-size-meta, 0.875rem);
  font-family: var(--sans);
  font-weight: 500;
  background: #fff;
  border: 1px solid var(--region-chip-gold-border, #e0d4b8);
  border-radius: var(--region-chip-radius, 8px);
}
.ad-listing-detail .ad-listing-pin {
  color: var(--portal-accent, var(--accent));
}
.ad-listing-desc {
  margin: 1.25rem 0 0;
  padding: 1rem 1.15rem;
  font-size: var(--portal-size-body, 1rem);
  line-height: 1.65;
  color: var(--portal-text-secondary, #334155);
  background: #fff;
  border: 1px solid var(--line, #e4e0d8);
  border-radius: var(--surface-radius, 8px);
  box-shadow: 0 1px 3px rgba(20, 32, 51, 0.04);
}
.ad-listing-desc--above {
  margin: 0 0 1.25rem;
}
.ad-listing-detail-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.75rem;
}
@media (min-width: 900px) {
  .ad-listing-detail-layout {
    grid-template-columns: minmax(0, 1.12fr) minmax(18rem, 22rem);
    gap: 2.25rem;
    align-items: start;
  }
  .ad-listing-side-card {
    position: sticky;
    top: calc(var(--portal-pad-top, 12rem) + 0.75rem);
  }
}
.ad-listing-side-card {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
  background: #fff;
  border: 1px solid #e8ecf1;
  border-radius: var(--surface-radius, var(--btn-radius, 8px));
  box-shadow: 0 4px 24px rgba(15, 23, 42, 0.06);
  overflow: hidden;
}
.ad-listing-side-block {
  padding: 1.25rem 1.35rem 1.3rem;
  border-top: 1px solid #f1f5f9;
}
.ad-listing-side-block:first-child {
  border-top: 0;
}
.ad-listing-side-eyebrow,
.ad-listing-contact-title,
.ad-listing-map-title,
.ad-listing-tools .share-bar-label {
  margin: 0 0 0.85rem;
  font-size: 0.8125rem;
  letter-spacing: 0.01em;
  text-transform: none;
  color: var(--portal-meta, #64748b);
  font-family: var(--sans);
  font-weight: 600;
}
.ad-listing-contact-name {
  display: none;
}
.ad-listing-facts {
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1rem;
}
.ad-listing-fact {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.2rem;
  align-items: start;
  margin: 0;
  font-size: var(--portal-size-body, 1rem);
  line-height: 1.5;
  color: #334155;
}
.ad-listing-fact dt {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 500;
  color: #94a3b8;
}
.ad-listing-fact dd {
  margin: 0;
  min-width: 0;
  font-weight: 400;
  color: #1e293b;
  line-height: 1.5;
}
.ad-listing-side-block--contact .ad-listing-fact dt,
.ad-listing-side-block--contact .ad-listing-fact dd {
  font-size: var(--portal-size-body, 1rem);
  line-height: 1.5;
}
.ad-listing-side-block--contact .ad-listing-fact dt {
  color: var(--portal-meta, #64748b);
  font-weight: 500;
}
.ad-listing-fact a {
  color: var(--accent-2);
  font-weight: 500;
  text-decoration: none;
  line-height: inherit;
  vertical-align: baseline;
}
.ad-listing-fact a:hover,
.ad-listing-fact a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
.ad-listing-label { color: var(--portal-meta, #475569); display: inline-block; min-width: 5.2rem; font-size: var(--portal-size-meta, 0.875rem); }
.ad-listing-addr-line { display: block; }
.ad-listing-web {
  display: inline;
  max-width: 100%;
  overflow-wrap: anywhere;
}
.ad-listing-side-block--contact .ad-listing-side-cta {
  margin: 1.15rem 0 0;
  padding-top: 1.05rem;
  border-top: 1px solid #f1f5f9;
}
.ad-listing-cta-btn {
  display: flex;
  width: 100%;
  justify-content: center;
  align-items: center;
  min-height: 2.65rem;
  border-radius: var(--region-chip-radius, 8px);
  font-weight: 600;
  font-size: 0.9375rem;
  box-shadow: none;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.ad-listing-detail .ad-listing-cta-btn.btn-ghost {
  border: 1.5px solid var(--region-chip-gold-border, #e0d4b8);
  background: #fff;
  color: var(--accent-2);
}
.ad-listing-detail .ad-listing-cta-btn.btn-ghost:hover,
.ad-listing-detail .ad-listing-cta-btn.btn-ghost:focus-visible {
  background: var(--region-chip-gold-bg, #efe6d2);
  border-color: #c4a035;
  color: var(--region-chip-ink, var(--accent-2));
}
.ad-listing-side-block--map {
  padding-top: 1rem;
  padding-bottom: 1.1rem;
}
.ad-listing-detail .ad-listing-map {
  margin: 0;
}
.ad-listing-detail .job-place-map-frame {
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #e8ecf1;
}
.ad-listing-detail .job-place-map-pin {
  background: var(--accent-2, #1a2433);
}
.ad-listing-side-block--map .ad-listing-map-title.firm-detail-map-title {
  margin: 0 0 0.65rem;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  text-transform: none;
  color: var(--portal-meta, #64748b);
}
.ad-listing-map--embed .ad-listing-map-frame.firm-detail-map-frame {
  aspect-ratio: 4 / 3;
  max-height: 15rem;
  border: 1px solid #e8ecf1;
  border-radius: 8px;
  background: #e8e4dc;
}
.ad-listing-side-block--map .ad-listing-map-link.firm-detail-map-link {
  margin: 0.55rem 0 0;
  font-size: 0.8125rem;
  text-align: left;
}
.ad-listing-side-block--map .ad-listing-map-link a {
  color: var(--accent-2);
  font-weight: 500;
}
.ad-listing-map--tiles .job-place-map-deco {
  padding: 0;
}
.ad-listing-side-card .entity-social-block {
  margin: 0;
  padding: 1rem 1.25rem 1.05rem;
  border-top: 1px solid #eef0f3;
}
.ad-listing-tools {
  margin: 0;
  padding: 1.2rem 1.35rem 1.35rem;
  border-top: 1px solid #f1f5f9;
  background: #fff;
}
.ad-listing-tools .share-bar {
  margin: 0;
  padding: 0;
  border: 0;
}
.ad-listing-tools .share-bar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.ad-listing-tools .share-btn {
  flex: 1 1 calc(50% - 0.25rem);
  min-width: calc(50% - 0.25rem);
  min-height: 2.15rem;
  padding: 0.35rem 0.55rem;
  font-size: 0.78rem;
  font-weight: 500;
  border-radius: var(--region-chip-radius, 8px);
  border: 1px solid var(--region-chip-gold-border, #e0d4b8);
  color: var(--region-chip-ink, var(--ink));
  background: #fff;
  box-sizing: border-box;
}
.ad-listing-tools .share-btn:hover,
.ad-listing-tools .share-btn:focus-visible {
  border-color: #c4a035;
  background: var(--region-chip-gold-bg, #efe6d2);
  color: var(--region-chip-ink, var(--accent-2));
}
.ad-listing-tools .share-btn[hidden] {
  display: none !important;
}
.ad-listing-tools .share-btn-vcard,
.ad-listing-tools .share-btn-native,
.ad-listing-tools .share-btn[data-share-channel="copy"] {
  flex: 1 1 100%;
  min-width: 100%;
}
.ad-listing-tools .share-btn-vcard {
  background: #fff;
  color: var(--region-chip-ink, var(--portal-meta, #64748b));
  font-weight: 500;
  min-height: 2rem;
}
.ad-listing-tools .share-btn-vcard:hover,
.ad-listing-tools .share-btn-vcard:focus-visible {
  border-color: #c4a035;
  background: var(--region-chip-gold-bg, #efe6d2);
  color: var(--region-chip-ink, var(--accent-2));
}
.ad-listing-tools .share-btn-native {
  background: #fff;
  border-color: var(--region-chip-gold-border, #e0d4b8);
  color: var(--region-chip-ink, var(--ink));
}
.ad-listing-tools .share-btn-native:hover,
.ad-listing-tools .share-btn-native:focus-visible {
  border-color: #c4a035;
  background: var(--region-chip-gold-bg, #efe6d2);
  color: var(--region-chip-ink, var(--accent-2));
}
.ad-listing-side-card .entity-social-link {
  border-color: var(--region-chip-gold-border, #e0d4b8);
  border-radius: var(--region-chip-radius, 8px);
}
.ad-listing-side-card .entity-social-link:hover,
.ad-listing-side-card .entity-social-link:focus-visible {
  background: var(--region-chip-gold-bg, #efe6d2);
  border-color: #c4a035;
  color: var(--region-chip-ink, #1a2433);
}
.ad-listing-side-card .entity-social-block {
  padding: 1.15rem 1.35rem;
  border-top: 1px solid #f1f5f9;
}
.ad-listing-side-card .entity-social-title {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--portal-meta, #64748b);
  letter-spacing: 0.01em;
  text-transform: none;
}
@media (min-width: 900px) {
  .ad-listing-side-block--contact .ad-listing-fact {
    grid-template-columns: 5.5rem minmax(0, 1fr);
    gap: 0.65rem 0.85rem;
    align-items: center;
  }
  .ad-listing-side-block--contact .ad-listing-fact:has(.ad-listing-addr) {
    align-items: start;
  }
  .ad-listing-side-block--contact .ad-listing-fact:has(.ad-listing-addr) dt {
    padding-top: 0;
  }
}
.ad-ki {
  margin: 0 0 1.35rem;
}
.ad-ki-label {
  display: block;
  margin: 0 0 0.4rem;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 700;
}
.ad-ki-row {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}
.ad-ki-icon {
  flex: 0 0 auto;
  color: var(--accent);
  display: inline-flex;
}
.ad-ki-field {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
}
.ad-ki-input {
  width: 100%;
  box-sizing: border-box;
  min-height: 2.75rem;
  padding: 0.55rem 2rem 0.55rem 0.15rem;
  border: 0;
  border-bottom: 1px solid #d9d3c8;
  background: transparent;
  font: inherit;
  font-size: 1.05rem;
  color: var(--ink);
}
.ad-ki-input:focus {
  outline: none;
  border-bottom-color: var(--accent);
}
.ad-ki-input::-webkit-search-cancel-button { display: none; }
.ad-ki-hint {
  position: absolute;
  left: 0.15rem;
  right: 2rem;
  top: 50%;
  transform: translateY(-50%);
  color: #8a847a;
  font-size: 1.05rem;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  pointer-events: none;
}
.ad-ki-hint[hidden] { opacity: 0; }
.ad-ki-hint.is-typing::after {
  content: '';
  display: inline-block;
  width: 1px;
  height: 1.05em;
  margin-left: 1px;
  vertical-align: -0.12em;
  background: currentColor;
  animation: ad-ki-caret 0.85s steps(1) infinite;
}
@keyframes ad-ki-caret {
  0%, 49% { opacity: 1; }
  50%, 100% { opacity: 0; }
}
.ad-ki-clear {
  position: absolute;
  right: 0.15rem;
  top: 50%;
  transform: translateY(-50%);
  border: 0;
  background: transparent;
  color: #8a847a;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  padding: 0.2rem 0.35rem;
}
.ad-ki-clear[hidden] { display: none; }
.ad-ki-submit {
  flex: 0 0 auto;
}
@media (max-width: 720px) {
  .ad-ki-row { flex-wrap: wrap; }
  .ad-ki-field { flex: 1 1 calc(100% - 2.2rem); }
  .ad-ki-submit { margin-left: 2rem; }
}
.ad-listing-map { margin: 1.1rem 0; width: 100%; }
.ad-listing-map .job-place-map-deco {
  padding: 0;
  width: 100%;
  max-width: 100%;
}
.ad-listing-map .job-place-map-frame {
  width: 100%;
}
.ad-listing-map-title {
  margin: 0 0 0.5rem;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--portal-meta, #475569);
}
.ad-listing-related {
  margin: 3rem 0 0;
  padding-top: 2rem;
  border-top: 1px solid #e8ecf1;
}
.ad-listing-related-title {
  margin: 0 0 1.25rem;
  font-family: var(--sans);
  font-size: 1.125rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--accent-2);
}
.ad-listing-related .ad-listing-grid {
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
}
.ad-listing-related .ad-listing-card {
  background: #fff;
  border: 1px solid #e8ecf1;
  border-radius: 12px;
  overflow: hidden;
  padding: 0.65rem 0.65rem 0.75rem;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.ad-listing-related .ad-listing-card:hover,
.ad-listing-related .ad-listing-card:focus-visible {
  border-color: #cbd5e1;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
  text-decoration: none;
}
.ad-listing-related .ad-listing-card-photo {
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 0.55rem;
}
.ad-listing-related .ad-listing-card-title {
  font-weight: 500;
  color: var(--accent-2);
}
@media (min-width: 721px) {
  .ad-listing-related .ad-listing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 900px) {
  .ad-listing-related .ad-listing-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
html:has(body.ad-listing-muster),
html:has(body.ad-listing-page),
body.portal-page.ad-listing-muster,
body.portal-page.ad-listing-page,
body.portal-page.ad-listing-muster .portal,
body.portal-page.ad-listing-page .portal,
body.portal-page.ad-listing-muster .portal-band,
body.portal-page.ad-listing-page .portal-band,
body.portal-page.ad-listing-muster .portal-main,
body.portal-page.ad-listing-page .portal-main,
body.portal-page.ad-listing-muster .ad-listing-overview,
body.portal-page.ad-listing-page .ad-listing-overview,
body.portal-page.ad-listing-muster .ad-listing-detail,
body.portal-page.ad-listing-page .ad-listing-detail,
body.portal-page.ad-listing-muster .ad-listing-board,
body.portal-page.ad-listing-page .ad-listing-board,
body.portal-page.ad-listing-muster main,
body.portal-page.ad-listing-page main {
  --bg: #f8f9fa !important;
  background: #f8f9fa !important;
}
body.ad-listing-muster .ad-share-figure,
body.ad-listing-page .ad-share-figure {
  margin: 0;
  background: #eceae6;
  border: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
  border-radius: var(--surface-radius, var(--btn-radius, 8px));
  box-shadow:
    0 1px 2px rgba(20, 32, 51, 0.04),
    0 16px 40px rgba(20, 32, 51, 0.08);
  overflow: hidden;
}
body.ad-listing-muster .ad-share-figure img,
body.ad-listing-page .ad-share-figure img {
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
  object-position: center center;
}

.portal-companies {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  margin: 1rem 0 0.2rem;
}
@media (min-width: 560px) {
  .portal-companies { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 900px) {
  .portal-companies { grid-template-columns: repeat(3, 1fr); }
}

/* Firmen-Verzeichnis — quer (Register), keine Karte. 3 pro Reihe am Desktop. */
.firm-card-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.85rem;
  margin: 1.1rem 0 0.4rem;
  width: 100%;
}
@media (min-width: 721px) {
  .firm-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
  .firm-card-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 1380px) {
  .firm-card-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
.firm-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  box-sizing: border-box;
  min-width: 0;
  width: 100%;
  height: 100%;
  padding: 0.85rem 0.9rem;
  background: #fff;
  border: 1px solid var(--line, #e4e0d8);
  border-radius: var(--surface-radius, 8px);
}
.firm-card.is-clickable {
  cursor: pointer;
}
.firm-card.is-clickable:hover,
.firm-card.is-clickable:focus-within {
  border-color: #cfc9be;
}
.firm-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.55rem;
  min-width: 0;
}
.firm-card-logo-link {
  flex: 0 0 4.5rem;
  width: 4.5rem;
  height: 3.1rem;
  margin-left: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  background: #f7f4ec;
  border: none;
  position: relative;
  z-index: 2;
  text-decoration: none;
}
.firm-card-logo-link.is-empty {
  pointer-events: none;
}
.firm-card-logo {
  display: block;
  max-width: calc(100% - 0.35rem);
  max-height: calc(100% - 0.35rem);
  width: auto;
  height: auto;
  object-fit: contain;
}
.firm-card-logo-placeholder {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 3.1rem;
  background: rgba(255, 255, 255, 0.35);
}
.firm-card-main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.18rem;
}
.firm-card-premium {
  display: inline-block;
  align-self: flex-start;
  margin: 0.1rem 0 0;
  padding: 0.12rem 0.45rem;
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #7a5c12;
  background: #f5ecd4;
  border: 1px solid #e2d4a8;
}
.firm-card.is-firm-premium {
  border-color: #dcc99a;
}
.firm-card-name {
  font-family: var(--sans);
  font-size: var(--portal-size-body, 1rem);
  font-weight: 600;
  color: var(--ink, #1a2433);
  text-decoration: none;
  line-height: 1.25;
  overflow-wrap: anywhere;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: calc(1.25em * 2);
}
/* Ganze Karte = Profil-Link; Tel/Ort/Mail/Web bleiben darüber klickbar */
a.firm-card-name::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
}
a.firm-card-name:hover,
.firm-card.is-clickable:hover a.firm-card-name {
  text-decoration: underline;
}
.firm-card-body {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 0;
  min-height: calc(1.35em * 3);
}
.firm-card-line {
  margin: 0;
  font-size: var(--portal-size-meta, 0.875rem);
  line-height: 1.35;
  color: var(--portal-meta, #475569);
  overflow-wrap: anywhere;
  word-break: break-word;
  min-height: 1.35em;
}
.firm-card-line a {
  position: relative;
  z-index: 2;
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.firm-card-region {
  margin: 0.15rem 0 0;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #8a8174;
  line-height: 1.2;
}
.firm-card-excerpt {
  display: none;
}
.firm-ki { margin-top: 1rem; }
.firm-ki--in-jobs { margin-bottom: 0.85rem; }
.firm-ki-hint {
  margin: 0.35rem 0 0;
  font-size: 0.85rem;
  line-height: 1.35;
}
.firm-dir-intro { max-width: 52rem; }
.firm-hub-after { margin-top: 1.35rem; }
.firm-hub-suggest-label {
  margin: 0 0 0.55rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
}
.firm-hub-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.firm-hub-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.38rem 0.85rem;
  border: 1px solid var(--region-chip-gold-border, #e0d4b8);
  border-radius: 999px;
  background: #fff;
  color: var(--region-chip-ink, #1a2433);
  font-size: 0.88rem;
  font-weight: 500;
  text-decoration: none;
  line-height: 1.2;
  box-sizing: border-box;
}
.firm-hub-chip:hover,
.firm-hub-chip:focus-visible {
  border-color: #c4a035;
  background: var(--region-chip-gold-bg, #efe6d2);
  color: var(--region-chip-ink, #1a2433);
  text-decoration: none;
}
.firm-hub-chip.is-on {
  background: #e8d08a;
  border-color: #e8d08a;
  color: #1a2433;
}
.firm-hub-region-line {
  margin: 1.05rem 0 0;
  font-size: 0.88rem;
  line-height: 1.55;
  color: #5b6573;
}
.firm-hub-region-k {
  font-weight: 700;
  color: #1a2433;
  margin-right: 0.35rem;
}
.firm-hub-region-line a {
  color: #1a2433;
  text-decoration: none;
}
.firm-hub-region-line a:hover,
.firm-hub-region-line a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 0.12em;
}
.firm-hub-regions { margin-top: 1.5rem; }
.firm-hub-regions-intro {
  margin: 0.35rem 0 0;
  max-width: 40rem;
}
.firm-search.jobs-search { margin-top: 0.75rem; }
/* Firmen/Inserate-Hub: Suche ohne Kasten — links/rechts bündig mit Intro + «Beliebte Suche» */
.portal-firmen-page .firm-search.jobs-search {
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0;
  background: transparent !important;
}
.firm-card-place a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.12em;
  text-decoration-color: rgba(0, 0, 0, 0.28);
}
.firm-card-place a:hover {
  text-decoration-color: currentColor;
}
.firm-card-distance {
  margin: 0;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: #1a5f4a;
  line-height: 1.2;
}
.firm-card-distance[hidden] { display: none; }
.firm-card-km {
  margin-left: 0.35rem;
  color: rgba(0, 0, 0, 0.55);
  font-size: 0.88em;
  white-space: nowrap;
}
.firm-search-block {
  margin: 1.5rem 0 0.5rem;
}
.firm-search-block-title {
  font-family: var(--sans);
  font-size: 1.05rem;
  font-weight: 700;
  margin: 0 0 0.75rem;
}
.ad-listing-toolbar#firm-results,
.company-dir-count#firm-results {
  margin-top: 1.15rem;
}
.firm-card-aside {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 0.35rem;
  min-width: 0;
  margin-top: auto;
  padding-top: 0.35rem;
  align-items: center;
  justify-content: flex-end;
}
.firm-card-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  box-sizing: border-box;
  margin: 0;
  padding: 0.32rem 0.75rem;
  font-family: var(--sans);
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.01em;
  color: var(--ink, #1a2433);
  background: #fff;
  border: 1px solid #d7d2c8;
  border-radius: 999px;
  text-decoration: none;
  white-space: nowrap;
  width: auto;
}
.firm-card-btn svg {
  flex: 0 0 auto;
}
.firm-card-btn:hover,
.firm-card-btn:focus-visible {
  background: #f3f1ec;
  border-color: #1a2433;
  color: var(--ink, #1a2433);
  text-decoration: none;
}
.firm-card-strip-wrap,
.firm-split-map,
.firm-list-map-frame {
  display: none;
}
.firm-card--ad {
  background: #f7f4ee;
  border-style: dashed;
}
.portal-company {
  background: var(--card, #fff);
  border: 1px solid var(--line, #e4e0d8);
  padding: 0.9rem 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  position: relative;
  z-index: 0;
}
.portal-company-logo-slot {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 5.5rem;
  height: 5.5rem;
  max-width: 512px;
  aspect-ratio: 1 / 1;
  margin: 0 0 0.55rem;
  padding: 0;
  box-sizing: border-box;
  flex-shrink: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  overflow: hidden;
}
.portal-company-logo-slot.is-empty {
  /* Platzhalter hält die Kartenhöhe auch ohne Logo stabil */
  visibility: hidden;
  pointer-events: none;
}
.portal-company-logo {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: contain;
  object-position: left center;
  background: transparent;
}
/* Firmentitel: Regionsfarbe (wie A–Z), Fallback insight24-Gold */
.portal-company-name,
.portal-company a.portal-company-name,
.portal-company strong.portal-company-name {
  font-size: 1.05rem;
  color: var(--portal-accent, var(--accent, #c4a035)) !important;
  text-decoration: none !important;
  font-weight: 700;
}
.portal-company-name:hover,
.portal-company a.portal-company-name:hover {
  color: color-mix(in srgb, var(--portal-accent, #c4a035) 78%, #1a2433 22%) !important;
  text-decoration: none !important;
}
.portal-company-place {
  color: var(--portal-meta, #475569);
  font-size: var(--portal-size-meta, 0.875rem);
}
.portal-company p {
  margin: 0.2rem 0 0;
  color: var(--portal-text-secondary, #334155);
  font-size: var(--portal-size-secondary, 0.9375rem);
  line-height: 1.45;
}
.portal-company-teaser-clamp {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  overflow: hidden;
}
.portal-company-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 0.85rem;
  margin-top: 0.45rem;
}
.portal-company-links a {
  font-weight: 600;
  font-size: var(--portal-size-meta, 0.875rem);
  text-decoration: none !important;
}
.portal-company-links a:hover,
.portal-company-links a:focus-visible {
  text-decoration: none !important;
  opacity: 0.82;
}

.company-dir { max-width: none; }
.company-dir .portal-page-h1 + .portal-note {
  max-width: none;
  margin: 0.4rem 0 1.15rem;
  line-height: 1.45;
}
.company-dir-back { margin: 0 0 0.75rem; }
.i24-back,
.portal-back,
.job-back--top {
  margin: 0 0 1rem;
}
.i24-back a,
.portal-back a,
.job-back a,
.company-dir-back a,
.legal-page .legal-back a,
a.epaper-back {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  max-width: 100%;
  box-sizing: border-box;
  padding: 0.5rem 0.85rem;
  font-family: var(--sans);
  font-size: 0.95rem;
  font-weight: 750;
  line-height: 1.25;
  text-decoration: none !important;
  color: var(--back-text, var(--accent, #c4a035));
  background: var(--back-bg, #fff);
  border: 1px solid var(--back-border, #d7d2c8);
  border-radius: 0;
}
.i24-back a:hover,
.i24-back a:focus-visible,
.portal-back a:hover,
.portal-back a:focus-visible,
.job-back a:hover,
.job-back a:focus-visible,
.company-dir-back a:hover,
.company-dir-back a:focus-visible,
.legal-page .legal-back a:hover,
.legal-page .legal-back a:focus-visible,
a.epaper-back:hover,
a.epaper-back:focus-visible {
  text-decoration: none !important;
  color: var(--back-hover, var(--accent, #c4a035));
  border-color: var(--back-hover, var(--accent, #c4a035));
  background: var(--back-bg, #fff);
}
@media (max-width: 720px) {
  .i24-back a,
  .portal-back a,
  .job-back--top a {
    width: 100%;
    justify-content: flex-start;
    min-height: 2.75rem;
  }
}
.portal-page a.btn,
.portal-page a.btn:hover,
.portal-page a.btn:focus-visible,
.portal-page a.btn-ghost,
.portal-page a.btn-ghost:hover,
.portal-page a.btn-ghost:focus-visible {
  text-decoration: none !important;
}
.company-dir-letter-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0 0 0.65rem;
  padding: 0.28rem 0.7rem 0.28rem 0.35rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid #e4e0d8;
}
.company-dir-letter-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.7rem;
  height: 1.7rem;
  padding: 0 0.35rem;
  border-radius: 999px;
  font-family: var(--sans);
  font-weight: 700;
  font-size: 0.95rem;
  color: #fff;
  background: var(--portal-accent, #c4a035);
}
.company-dir-letter-label {
  font-size: 0.88rem;
  font-weight: 600;
  color: #475569;
}
.company-dir-intro {
  margin-top: 0.15rem;
  max-width: 52rem;
  line-height: 1.45;
  white-space: normal;
}
.company-dir-count {
  margin: 0.35rem 0 0;
  font-size: 0.98rem;
  font-weight: 700;
  color: #334155;
}
#firm-results {
  scroll-margin-top: 9.5rem;
}
@media (min-width: 900px) {
  body.portal-page:has(.dev-banner) #firm-results {
    scroll-margin-top: calc(9.5rem + var(--dev-banner-h, 2.85rem));
  }
}
.company-more-hint { margin: 0.65rem 0 0; font-size: 0.92rem; }

/* A–Z Verzeichnis: klarer Kontrast Buchstabe vs. Anzahl (alle Regionen) */
.company-az-panel {
  margin: 1.25rem 0 0.75rem;
  padding: 1.1rem 1.15rem 1.2rem;
  background: #fff;
  border: 1px solid #e4e0d8;
  border-radius: 10px;
}
.company-az-heading {
  margin: 0;
  font-family: var(--sans);
  font-size: 1.15rem;
  font-weight: 800;
  color: #0f172a;
}
.company-az-hint {
  margin: 0.35rem 0 0.95rem;
  font-size: 0.95rem;
  line-height: 1.45;
  color: #5b6575;
}
.company-az-index {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.55rem;
  margin: 0;
}
@media (min-width: 480px) {
  .company-az-index { grid-template-columns: repeat(5, 1fr); }
}
@media (min-width: 720px) {
  .company-az-index { grid-template-columns: repeat(7, 1fr); }
}
@media (min-width: 1000px) {
  .company-az-index { grid-template-columns: repeat(9, 1fr); }
}
.company-az-index-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.15rem;
  min-height: 4.1rem;
  padding: 0.55rem 0.35rem 0.5rem;
  border-radius: 8px;
  text-decoration: none;
  text-align: center;
  color: inherit;
  background: #fbfaf7;
  border: 1px solid #e8e2d6;
  cursor: pointer;
  font: inherit;
  transition: border-color 0.15s ease, background 0.15s ease, transform 0.15s ease;
}
a.company-az-index-link:hover,
button.company-az-index-link:hover {
  background: #fff8e8;
  border-color: var(--portal-accent, var(--accent, #c4a035));
  transform: translateY(-1px);
}
a.company-az-index-link:focus-visible,
button.company-az-index-link:focus-visible {
  outline: 2px solid var(--portal-accent, var(--accent, #c4a035));
  outline-offset: 2px;
}
.company-az-index-letter {
  display: block;
  font-family: var(--sans);
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1;
  color: var(--portal-accent, var(--accent, #c4a035));
  letter-spacing: 0.02em;
}
.company-az-index-meta {
  display: block;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.2;
  color: #64748b;
}
.company-az-index-link.is-empty {
  background: #f4f4f2;
  border-color: #ebe8e1;
  cursor: default;
  opacity: 0.72;
}
.company-az-index-link.is-empty .company-az-index-letter {
  color: #94a3b8;
  font-weight: 600;
}
.company-az-index-link.is-empty .company-az-index-meta {
  color: #94a3b8;
  font-weight: 500;
}

/* Home: Top-Unternehmen (ersetzt Social-Teaser) */
.home-top-companies {
  margin-top: 0.85rem;
}
@media (min-width: 900px) {
  .home-top-companies {
    grid-template-columns: repeat(3, 1fr);
  }
}
.portal-company.has-cover {
  padding-top: 0;
}
.portal-company-cover {
  display: block;
  margin: 0 -1rem 0.55rem;
  width: calc(100% + 2rem);
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #142033;
  text-decoration: none !important;
}
.portal-company-cover img,
.portal-company-cover picture {
  display: block;
  width: 100%;
  height: 100%;
}
.portal-company-cover picture img,
.portal-company-cover > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--company-focus, center center);
}
.portal-company-cover.is-fallback picture img,
.portal-company-cover.is-fallback > img {
  object-fit: contain;
  object-position: center center;
}
.home-top-companies .portal-company.has-cover {
  padding-top: 0;
}
.portal-home {
  --portal-accent: var(--accent, #c4a035);
}
.company-letter-empty {
  margin: 1rem 0 0.5rem;
  padding: 1rem 1.1rem;
  background: #fff;
  border: 1px solid #e4e0d8;
  border-radius: 6px;
}

.company-az-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 1.1rem 0 1.25rem;
  padding: 0.65rem 0.75rem;
  background: #fff;
  border: 1px solid #e4e0d8;
  border-radius: 6px;
}
.company-az-nav a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  height: 2rem;
  padding: 0 0.45rem;
  border-radius: 4px;
  font-weight: 700;
  font-size: 0.88rem;
  text-decoration: none;
  color: #1e3a5f;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}
.company-az-nav a:hover { background: #eef2ff; border-color: #c7d2fe; }
.company-az-section { scroll-margin-top: var(--scroll-anchor-offset, 5.5rem); }
.company-az-sections {
  position: relative;
  z-index: 0;
}
.company-az-section + .company-az-section { margin-top: 1.5rem; }
.company-az-letter {
  font-size: 1.35rem;
  margin: 0 0 0.65rem;
  color: #0f172a;
  border-bottom: 2px solid #e4e0d8;
  padding-bottom: 0.35rem;
}
.company-az-grid { margin-top: 0; }

.content-detail-back {
  margin-top: 1.6rem;
}

.company-detail-card {
  background: #fff;
  border: 1px solid #e4e0d8;
  border-radius: var(--surface-radius, 8px);
  padding: 1.25rem 1.35rem;
  margin: 0.5rem 0 1rem;
}
.company-detail-card > .portal-cat {
  display: inline-block;
  margin: 0 0 0.75rem;
}
.company-detail-logo-slot {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 5.5rem;
  height: 5.5rem;
  max-width: 5.5rem;
  aspect-ratio: 1 / 1;
  margin: 0 0 0.55rem;
  padding: 0;
  box-sizing: border-box;
  flex-shrink: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  overflow: hidden;
}
.company-detail-logo-slot.is-empty {
  display: none;
}
.company-detail-logo {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: contain;
  object-position: left center;
  margin: 0;
  background: transparent;
}
.company-detail-cover {
  margin: 0 0 0.45rem;
}
.entity-image-preview-wrap {
  position: relative;
  display: block;
  width: 100%;
  max-width: 100%;
}
.company-firm-layout-map-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.85rem;
}
@media (max-width: 720px) {
  .company-firm-layout-map-grid {
    grid-template-columns: 1fr;
  }
}
.company-firm-layout-map-col {
  border: 1px solid var(--line, #d7d2c8);
  border-radius: 8px;
  padding: 0.65rem 0.75rem;
  background: #faf9f6;
}
.company-firm-layout-map-kicker {
  margin: 0 0 0.4rem;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #5c574e;
}
.company-firm-layout-map-list {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.88rem;
  line-height: 1.45;
}
.company-firm-layout-map-list--ordered {
  list-style: decimal;
}
.company-gallery-admin-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0.35rem 0 0;
}
.company-gallery-admin-thumb {
  position: relative;
  display: inline-block;
  width: 160px;
  max-width: 160px;
  flex: 0 0 auto;
}
.company-image-slots-guide {
  margin: 0 0 1rem;
  padding: 0.85rem 1rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 193, 7, 0.08);
}
.company-image-slots-guide ol {
  margin: 0.45rem 0 0;
  padding-left: 1.25rem;
}
.company-image-slots-guide li {
  margin: 0.35rem 0;
}
.company-image-slots-guide strong {
  color: var(--text, #142033);
}
.entity-image-slot-badge {
  display: inline-block;
  margin-right: 0.35rem;
  padding: 0.1rem 0.45rem;
  border-radius: 4px;
  background: #142033;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 700;
  vertical-align: middle;
}
.entity-image-where {
  margin: 0 0 0.55rem;
  padding: 0.45rem 0.65rem;
  border-left: 3px solid #b45309;
  background: rgba(180, 83, 9, 0.06);
  font-size: 0.92rem;
}
.js-company-cover-upload .entity-image-preview-wrap {
  background: #142033;
  border-radius: 8px;
  border: 1px solid var(--line);
}
.company-cover-upload--hero .entity-image-preview-wrap {
  display: none !important;
}
.entity-image-delete-x {
  position: absolute;
  top: 0.35rem;
  right: 0.35rem;
  z-index: 3;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #b91c1c;
  color: #fff;
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
}
.entity-image-delete-x:hover {
  background: #991b1b;
}
.gallery-admin-delete-form {
  position: absolute;
  top: 0;
  right: 0;
  margin: 0;
  padding: 0;
}
.gallery-admin-delete-x {
  top: 0.25rem;
  right: 0.25rem;
}
.company-hero-crop-box {
  max-width: var(--site-content-max);
  width: 100%;
}
.company-hero-crop-editor {
  width: 100%;
  max-width: var(--site-content-max);
}
.company-hero-crop-frame {
  position: relative;
  width: 100%;
  max-width: var(--site-content-max);
  overflow: hidden;
  background: #142033;
  border-radius: 8px;
  border: 1px solid var(--line);
  touch-action: none;
  cursor: grab;
}
.company-hero-crop-frame.is-dragging {
  cursor: grabbing;
}
.company-hero-crop-empty {
  margin: 0;
  padding: 2rem 1rem;
  text-align: center;
  font-size: 0.92rem;
  pointer-events: none;
  user-select: none;
}
.company-hero-crop-frame .js-detail-crop-delete {
  z-index: 4;
}
.company-hero-crop-frame img,
.company-hero-crop-frame .js-detail-crop-img {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  aspect-ratio: unset;
  object-fit: unset;
  object-position: unset;
  user-select: none;
  -webkit-user-drag: none;
  pointer-events: none;
}
.company-hero-crop-height-row {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex-wrap: wrap;
  margin-top: 0.35rem;
}
.company-hero-crop-height-row input[type="range"] {
  flex: 1 1 12rem;
  min-width: 8rem;
}
.company-hero-crop-height-row input[type="number"] {
  width: 5.5rem;
}
.company-hero-crop-height-unit {
  font-size: 0.92rem;
  color: var(--muted, #5a6478);
}
.js-company-cover-upload .entity-image-preview-wrap {
  display: none;
}
/* Firmen-Detail Hero: volle Breite, fester Ausschnitt in px — kein Cover-Zoom. */
.company-detail-cover--own.company-detail-cover--crop.article-photo {
  aspect-ratio: auto;
  height: var(--company-cover-h, 280px);
  max-height: var(--company-cover-h, 280px);
  min-height: var(--company-cover-h, 280px);
  overflow: hidden;
  background: #142033;
}
.company-detail-cover-frame {
  width: 100%;
  line-height: 0;
  overflow: hidden;
}
.company-detail-cover--crop .company-detail-cover-frame picture,
.company-detail-cover--crop .company-detail-cover-frame > picture {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  line-height: 0;
}
.company-detail-cover--crop .company-detail-cover-frame img,
.company-detail-cover--crop .company-detail-cover-frame picture img {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: unset;
  object-position: unset;
  transform: translateY(calc(-1 * var(--company-cover-offset-y, 0px)));
}
.company-detail-cover:not(.company-detail-cover--own) img,
.company-detail-cover:not(.company-detail-cover--own) picture img {
  object-fit: cover;
  object-position: var(--company-focus, center center);
}
.company-detail-name {
  font-family: var(--sans);
  font-size: clamp(1.55rem, 3vw, 2rem);
  margin: 0.1rem 0 0.4rem;
  color: #0f172a;
}
.company-detail-meta { margin: 0 0 0.85rem; }
.company-detail-teaser {
  margin: 0 0 1rem;
  font-size: 1.05rem;
  line-height: 1.45;
}
.firm-detail-card { padding: 1.35rem 1.4rem 1.5rem; }
/* Firmen-Einzelseite — schlank: Logo rechts kompakt, Chips auf Telefon-Zeile */
.firm-detail-card.firm-vcard {
  padding: 1rem 1.15rem 1.15rem;
}
.firm-vcard-hero {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  margin: 0 0 0.65rem;
  padding-bottom: 0.65rem;
  border-bottom: 1px solid #eceae6;
}
.firm-vcard-hero-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1.25rem;
  min-width: 0;
}
.firm-vcard-hero-titles {
  min-width: 0;
  flex: 1 1 auto;
}
.firm-vcard-hero-logo-end {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: flex-start;
  gap: 0.35rem;
  margin-left: auto;
}
.firm-vcard-hero-logo-slot {
  flex: 0 0 5.5rem;
  width: 5.5rem;
  height: 5.5rem;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  overflow: visible;
}
.firm-vcard-hero-logo-slot--plain,
.content-detail.firm-detail .firm-vcard-hero-logo-slot {
  background: transparent;
  border: 0;
  box-shadow: none;
}
.firm-vcard-hero-logo-img {
  display: block;
  width: auto;
  height: auto;
  max-width: 5.5rem;
  max-height: 5.5rem;
  object-fit: contain;
  object-position: center center;
  background: transparent;
}
.firm-vcard-hero-logo-img--partner {
  max-height: 2rem;
  max-width: 4.5rem;
  width: auto;
  height: auto;
}
.firm-vcard-hero-sub {
  margin: 0.08rem 0 0;
  font-size: 0.82rem;
  line-height: 1.35;
  color: #5c564c;
  font-weight: 400;
}
.firm-vcard-hero-addr {
  margin: 0.35rem 0 0;
  max-width: none;
  font-size: 0.88rem;
}
.firm-vcard-hero-actions-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(9rem, 11.25rem);
  gap: 0.35rem 1rem;
  align-items: center;
  margin-top: 0.15rem;
}
.firm-vcard-hero-actions-left {
  min-width: 0;
}
.firm-vcard-hero-contact-line {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 0.45rem;
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.45;
}
.firm-vcard-hero-contact-line .firm-vcard-identity-phone,
.firm-vcard-hero-contact-line .firm-vcard-identity-mail {
  margin: 0;
}
.firm-vcard-contact-sep {
  color: #9a9488;
  user-select: none;
}
.firm-vcard-hero-contact-line a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.firm-vcard-hero-actions-spacer {
  min-height: 0;
}
.firm-vcard-toolbar {
  display: block;
  width: 100%;
  justify-self: end;
}
.firm-vcard-toolbar .firm-vcard-actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.4rem;
  width: 100%;
  margin: 0;
}
.firm-vcard-toolbar .firm-vcard-actions--grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.28rem;
  width: 100%;
}
.firm-vcard-toolbar .firm-vcard-btn {
  width: 100%;
  min-width: 0;
  justify-content: center;
  box-sizing: border-box;
  font-size: 0.74rem;
  padding: 0.32rem 0.28rem;
  background: #fff;
  border: 1.5px solid var(--accent, #c4a035);
  color: #1a1814;
  font-weight: 600;
  border-radius: 8px;
  box-shadow: none;
}
.firm-vcard-toolbar .firm-vcard-btn:hover,
.firm-vcard-toolbar .firm-vcard-btn:focus-visible {
  background: #faf6eb;
  border-color: #b8922f;
  color: #1a1814;
}
/* Firmenprofil: nur Gold-Umrandung — kein Portal-Dunkel */
.portal-page .firm-vcard-toolbar a.btn.firm-vcard-btn,
.portal-page .firm-vcard-toolbar a.btn.firm-vcard-btn.company-detail-web {
  background: #fff;
  border: 1.5px solid var(--accent, #c4a035);
  color: #1a1814;
  filter: none;
}
.portal-page .firm-vcard-toolbar a.btn.firm-vcard-btn:hover,
.portal-page .firm-vcard-toolbar a.btn.firm-vcard-btn:focus-visible,
.portal-page .firm-vcard-toolbar a.btn.firm-vcard-btn.company-detail-web:hover,
.portal-page .firm-vcard-toolbar a.btn.firm-vcard-btn.company-detail-web:focus-visible {
  background: #faf6eb;
  border-color: #b8922f;
  color: #1a1814;
  filter: none;
}
.firm-vcard-identity-social {
  margin: 0.45rem 0 0;
  padding-top: 0.45rem;
  border-top: 1px solid #eceae6;
  max-width: 22rem;
}
.firm-vcard-identity-social .entity-social-block { margin: 0; }
.firm-vcard-identity-social .entity-social-title {
  margin: 0 0 0.4rem;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #8a847a;
}
.firm-vcard-identity-social .entity-social {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  justify-content: flex-start;
}
.firm-vcard-identity-social .entity-social-link {
  width: 2.25rem;
  height: 2.25rem;
}
.firm-vcard-identity-social .entity-social-link svg {
  width: 1.1rem;
  height: 1.1rem;
}
.firm-vcard-identity-contact {
  margin: 0.35rem 0 0;
  font-size: 0.88rem;
  line-height: 1.4;
  color: #3d3a34;
}
.firm-vcard-identity-addr {
  margin: 0 0 0.2rem;
}
.firm-vcard-identity-label {
  display: block;
  margin-bottom: 0.12rem;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #8a847a;
}
.firm-vcard-identity-lines {
  display: block;
  color: #3d3a34;
}
.firm-vcard-identity-phone,
.firm-vcard-identity-mail {
  margin: 0.15rem 0 0;
}
.firm-vcard-identity-phone a,
.firm-vcard-identity-mail a {
  position: relative;
  z-index: 2;
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.firm-vcard-hours-block {
  margin: 0 0 1rem;
  padding: 0.75rem 0.9rem;
  background: #f7f5f1;
  border: 1px solid #eceae6;
}
.firm-vcard-hours-block .firm-vcard-about-title { margin-bottom: 0.35rem; }
.firm-detail-layout {
  margin-top: 0.25rem;
}
.firm-detail-text-map-row,
.firm-detail-body-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1.25rem 2rem;
  align-items: start;
}
.firm-detail-text-map-row--solo,
.firm-detail-body-row--solo {
  grid-template-columns: minmax(0, 1fr);
}
.firm-detail-media-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1.25rem 2rem;
  align-items: start;
  margin-top: 1.15rem;
}
.firm-detail-media-row--full {
  grid-template-columns: minmax(0, 1fr);
}
.firm-detail-media-row--full .firm-detail-media-row-spacer {
  display: none;
}
.firm-detail-media-row-spacer {
  min-height: 0;
  margin: 0;
  padding: 0;
}
.firm-detail-map-pair {
  margin: 0;
}
.firm-detail-col-side--media {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}
.firm-detail-col-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.firm-detail-col-main > * {
  margin: 0;
}
.firm-detail-col-side {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}
.firm-detail-side-block {
  min-width: 0;
}
.firm-detail-side-block .firm-vcard-about-title,
.firm-detail-side-block .firm-detail-map-title {
  margin: 0 0 0.45rem;
}
.firm-side-gallery .firm-gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.4rem;
}
.firm-side-gallery .firm-gallery-grid .article-gallery-item {
  margin: 0;
  aspect-ratio: 1;
  overflow: hidden;
  border: 1px solid #e8e4dc;
  border-radius: var(--surface-radius, 8px);
  background: #f7f4ec;
}
.firm-side-gallery .gallery-lightbox-trigger {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.firm-side-gallery .gallery-lightbox-trigger img,
.firm-side-gallery .firm-gallery-grid .article-gallery-item picture,
.firm-side-gallery .firm-gallery-grid .article-gallery-item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.firm-gallery-more-wrap {
  margin: 0.55rem 0 0;
  text-align: center;
}
.firm-detail-side-media-photo {
  margin: 0;
}
.firm-detail-side-media-inner {
  aspect-ratio: 16 / 9;
  background: #e8e4dc;
  overflow: hidden;
}
.firm-detail-side-media-inner picture,
.firm-detail-side-media-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.firm-gallery-more-btn {
  font-size: 0.82rem;
  padding: 0.35rem 0.75rem;
}
.firm-detail-col-main .company-detail-cover {
  margin: 0;
}
.firm-detail-body {
  overflow: visible;
  width: 100%;
  max-width: 100%;
}
.firm-detail-body p,
.firm-detail-body li,
.firm-detail-body ul,
.firm-detail-body ol,
.firm-detail-body h2,
.firm-detail-body h3,
.firm-detail-body h4,
.firm-detail-body div {
  max-width: none;
}
/* Firmen «Über uns»: volle linke Spalte wie im Admin — kein Float-Streifen */
.firm-detail-body figure {
  float: none;
  clear: both;
  width: 100%;
  max-width: 100%;
  margin: 0.65rem 0;
}
.firm-detail-body img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  float: none;
  clear: both;
  margin: 0.65rem 0;
}
.firm-detail-body figure img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}
.firm-detail-body img.alignleft,
.firm-detail-body img.alignright,
.firm-detail-body figure.alignleft,
.firm-detail-body figure.alignright {
  float: none;
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0.65rem 0;
}
.firm-detail-body img.aligncenter,
.firm-detail-body img.img-full,
.firm-detail-body figure.aligncenter,
.firm-detail-body figure.img-full {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0.65rem 0;
}
.firm-detail-body p:has(> img) {
  margin: 0;
}
.firm-detail-body p:has(> img) + p {
  margin-top: 0.75rem;
}
.firm-detail-body img[style*="width: 100%"],
.firm-detail-body img[style*="width:100%"],
.firm-detail-body figure[style*="width: 100%"],
.firm-detail-body figure[style*="width:100%"],
.firm-detail-body figure[style*="width: 100%"] img,
.firm-detail-body figure[style*="width:100%"] img,
.firm-detail-body p[style*="width: 100%"],
.firm-detail-body p[style*="width:100%"],
.firm-detail-body p[style*="width: 100%"] img,
.firm-detail-body p[style*="width:100%"] img {
  display: block;
  float: none;
  width: 100%;
  max-width: 100%;
  height: auto;
}
/* Haupttext links + Zusatztext rechts: gleiche Schrift & Zeilenabstand */
.firm-detail-body,
.firm-detail-side-text-body {
  font-size: 1rem;
  line-height: 1.45;
  color: #3d3a34;
}
.firm-detail-body p,
.firm-detail-side-text-body p {
  margin: 0;
  line-height: 1.45;
}
/* Kein grosser Blockabstand wie bei Artikeln — Absätze dicht wie Fliesstext links */
.firm-detail-body p + p,
.firm-detail-side-text-body p + p {
  margin-top: 0.35rem;
}
.firm-detail-body p:has(> img, > picture) + p,
.firm-detail-side-text-body p:has(> img, > picture) + p {
  margin-top: 0.65rem;
}
.firm-detail-side-text-body p:empty {
  display: none;
}
/* Sidebar-Fliesstext wie Hauptspalte: kein Bold, Absätze ohne Extra-Luft */
.firm-detail-side-text-body strong,
.firm-detail-side-text-body b {
  font-weight: inherit;
}
.firm-detail-side-text-body p + p {
  margin-top: 0;
}
.firm-detail-video .video-embed {
  margin-top: 0.35rem;
}
.firm-detail-split-main {
  min-width: 0;
}
.firm-detail-split-map {
  min-width: 0;
}
@media (min-width: 821px) {
  /* Wie Job-Detail: overflow-x:clip bricht position:sticky. */
  .portal:has(.firm-detail-layout),
  .content-detail.firm-detail,
  .content-detail:has(.firm-detail-layout),
  .content-detail.firm-detail .company-detail-card,
  .portal-band:has(.firm-detail-layout) {
    overflow: visible;
    overflow-x: visible;
  }
  .firm-detail-col-side--map {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
    position: -webkit-sticky;
    position: sticky;
    top: var(--job-detail-sticky-top, calc(var(--portal-pad-top, 8rem) + 0.5rem));
    align-self: start;
    z-index: 1;
  }
}
.firm-detail-col-side--map .firm-detail-map-pair {
  flex: 0 0 auto;
}
.firm-vcard-logo {
  flex: 0 0 5.5rem;
  width: 5.5rem;
  height: 5.5rem;
  border: none;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.firm-vcard-logo--plain {
  background: transparent;
  border: none;
  box-shadow: none;
}
.firm-vcard-logo img {
  display: block;
  width: auto;
  height: auto;
  max-width: 5.5rem;
  max-height: 5.5rem;
  object-fit: contain;
}
.firm-vcard-name {
  margin: 0 0 0.25rem;
  font-family: var(--sans);
  font-size: clamp(1.15rem, 2.4vw, 1.55rem);
  line-height: 1.25;
  font-weight: var(--heading-weight);
  color: #1a2433;
}
.firm-vcard-cat {
  margin: 0 0 0.2rem;
  font-size: 0.88rem;
  color: #7a7468;
}
.firm-vcard-meta {
  margin: 0;
  display: grid;
  gap: 0.4rem 0.75rem;
}
.firm-vcard-row {
  display: grid;
  grid-template-columns: 6.5rem minmax(0, 1fr);
  gap: 0.35rem 0.75rem;
  align-items: start;
  font-size: 0.92rem;
  line-height: 1.4;
}
.firm-vcard-row dt {
  margin: 0;
  color: #8a847a;
  font-weight: 500;
}
.firm-vcard-row dd {
  margin: 0;
  color: #3d3a34;
}
.firm-vcard-row dd a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.firm-vcard-region { color: #8a847a; }
.firm-vcard-aside-hours {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.45;
  color: #3d3a34;
}
.firm-vcard-about {
  margin: 0 0 0.85rem;
  padding-top: 0;
  border-top: 0;
}
.firm-vcard-about-title {
  margin: 0 0 0.4rem;
  font-size: 0.95rem;
  font-weight: 650;
  color: #1a1814;
}
.firm-vcard-about-text {
  margin: 0;
  color: #3d3a34;
  line-height: 1.5;
  font-size: 0.98rem;
}
.firm-vcard-actions { margin-top: 0; }
/* Legacy Hero (falls noch referenziert) */
.firm-detail-hero {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
  margin: 0.35rem 0 1.1rem;
}
.firm-detail-logo {
  flex: 0 0 5.5rem;
  width: 5.5rem;
  height: 5.5rem;
  border: 0;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
}
.firm-detail-logo img {
  display: block;
  width: auto;
  height: auto;
  max-width: 5.5rem;
  max-height: 5.5rem;
  object-fit: contain;
  background: transparent;
}
.firm-detail-hero-body { flex: 1 1 auto; min-width: 0; }
.firm-detail-title { margin: 0 0 0.45rem; }
.firm-detail-addr {
  margin: 0 0 0.55rem;
  color: #5a564e;
  line-height: 1.45;
  font-size: 0.98rem;
}
.firm-detail-region { color: #8a847a; }
.firm-detail-intro {
  margin: 0 0 0.5rem;
  color: #3d3a34;
  line-height: 1.5;
  font-size: 1.02rem;
}
.firm-detail-hours {
  margin: 0.4rem 0 0;
  font-size: 0.92rem;
  color: #5a564e;
}
.firm-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin: 0 0 1.15rem;
}
.firm-detail-map { margin: 0; }
.firm-detail-map-title {
  margin: 0 0 0.5rem;
  font-size: 0.95rem;
  font-weight: 650;
  color: #1a1814;
}
.firm-detail-map-frame {
  position: relative;
  width: 100%;
  max-width: 100%;
  aspect-ratio: 4 / 3;
  max-height: 14rem;
  border: 1px solid #e4e0d8;
  border-radius: var(--surface-radius, 8px);
  background: #e8e4dc;
  overflow: hidden;
}
/* OSM-Embed: iframe interaktiv (Zoom +/- in der Karte) */
.firm-detail-map-frame--embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.firm-detail-map-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.firm-detail-map-frame:not(.firm-detail-map-frame--embed) iframe {
  left: 0;
  width: 100%;
}
.firm-detail-map-link {
  margin: 0.5rem 0 0;
  font-size: 0.82rem;
  line-height: 1.35;
  text-align: right;
}
.firm-detail-map-link a {
  color: #1a2433;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.firm-detail-osm { margin-top: 1rem; font-size: 0.85em; }
.firm-detail-similar { margin: 1.75rem 0 0.5rem; }
.firm-detail-similar-title {
  margin: 0 0 0.85rem;
  font-size: 1.15rem;
  font-weight: 600;
}
@media (max-width: 820px) {
  .firm-vcard-hero-top {
    flex-direction: column;
    align-items: stretch;
  }
  .firm-vcard-hero-logo-end {
    align-items: flex-start;
    margin-left: 0;
  }
  .firm-vcard-hero-actions-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.65rem;
  }
  .firm-vcard-toolbar { max-width: none; }
  .firm-detail-text-map-row,
  .firm-detail-body-row,
  .firm-detail-media-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.25rem;
  }
  .firm-detail-media-row {
    margin-top: 1.25rem;
  }
  .firm-detail-media-row-spacer {
    display: none;
  }
  .firm-detail-col-side--map,
  .firm-detail-col-side--media {
    order: 2;
  }
  .firm-side-gallery .firm-gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .firm-detail-map-link { text-align: left; }
}
@media (max-width: 640px) {
  .firm-vcard-logo {
    flex: 0 0 4.75rem;
    width: 4.75rem;
    height: 4.75rem;
  }
  .firm-vcard-logo img { max-width: 4.75rem; max-height: 4.75rem; }
  .firm-vcard-row { grid-template-columns: 1fr; gap: 0.1rem; }
  .firm-detail-hero { flex-direction: column; align-items: stretch; }
  .firm-detail-logo {
    width: 5.5rem;
    height: 5.5rem;
    flex-basis: 5.5rem;
  }
}
.company-detail-actions .btn.is-static {
  pointer-events: none;
  opacity: 0.95;
}
.company-detail-teaser {
  font-size: 1.05rem;
  line-height: 1.55;
  color: #334155;
  margin: 0 0 1rem;
}
.company-detail-actions .btn.company-detail-web {
  background: var(--portal-accent, var(--accent, #c4a035));
  border-color: var(--portal-accent, var(--accent, #c4a035));
  color: #fff;
}
.company-detail-actions .btn.company-detail-web:hover {
  filter: brightness(0.92);
  background: var(--portal-accent, var(--accent, #c4a035));
  border-color: var(--portal-accent, var(--accent, #c4a035));
  color: #fff;
}

.entity-social-block { margin: 0.75rem 0 1rem; }
.entity-social-title {
  margin: 0 0 0.45rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: #64748b;
  letter-spacing: 0.02em;
}
.entity-social {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}
.entity-social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.85rem;
  height: 2.85rem;
  border-radius: 999px;
  border: 1px solid #e4e0d8;
  background: #fff;
  color: #334155;
  text-decoration: none;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.entity-social-link svg { width: 1.4rem; height: 1.4rem; }
.entity-social-link:hover,
.entity-social-link:focus-visible {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}

.portal-company a { margin-top: 0.35rem; font-weight: 600; font-size: 0.9rem; text-decoration: none !important; }
.portal-company a:hover,
.portal-company a:focus-visible { text-decoration: none !important; }

.portal-note {
  color: var(--portal-meta, #475569);
  font-size: var(--portal-size-secondary, 0.9375rem);
  line-height: 1.55;
  max-width: none;
}
.portal-page .lede,
.portal-page .jobs-hub-intro {
  max-width: none;
}
.portal-page .lede {
  font-size: var(--portal-size-body, 1rem);
  line-height: 1.55;
  color: var(--portal-text-secondary, #334155);
}

.portal-cta-row { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 0.9rem; }
.portal-split-2 {
  display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem;
  align-items: start;
}
@media (max-width: 700px) {
  .portal-split-2 { grid-template-columns: 1fr; }
}

/* Wetter (Region) */
.portal-weather { margin-top: 0.35rem; }
.portal-weather-alerts {
  display: grid;
  gap: 0.4rem;
  margin-bottom: 0.75rem;
}
.portal-weather-alert {
  display: grid;
  gap: 0.15rem;
  text-decoration: none;
  padding: 0.55rem 0.7rem;
  border: 1px solid #e8c27a;
  background: #fff8e8;
  border-radius: var(--surface-radius, 8px);
  color: inherit;
}
.portal-weather-alert:hover { filter: brightness(0.98); }
.portal-weather-alert.is-severe {
  border-color: #e2a35a;
  background: #fff1dc;
}
.portal-weather-alert.is-extreme {
  border-color: #c45c3a;
  background: #fdece7;
}
.portal-weather-alert-type {
  font-size: 0.92rem;
  color: #1a2433;
}
.portal-weather-alert-meta {
  font-size: var(--portal-size-meta, 0.875rem);
  color: var(--portal-meta, #475569);
}
.portal-weather-alert-source {
  margin: 0.15rem 0 0;
  font-size: var(--portal-size-label, 0.8125rem);
  color: var(--portal-meta-soft, #526070);
}
.portal-weather-grid {
  display: grid;
  gap: 0.65rem;
}
.portal-weather-card {
  background: #fff;
  border: 1px solid #e4e0d8;
  padding: 0.75rem 0.85rem;
}
.portal-weather-card-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem 0.75rem;
  margin-bottom: 0.45rem;
}
.portal-weather-place {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
}
.portal-weather-place h3 {
  margin: 0;
  font-family: var(--sans);
  font-size: 1rem;
  font-weight: 800;
  color: var(--portal-ink, #121820);
}
.portal-weather-now {
  margin: 0;
  display: flex;
  align-items: baseline;
  gap: 0.4rem;
}
.portal-weather-temp {
  font-size: 1.55rem;
  font-weight: 600;
  line-height: 1;
  color: #1a2433;
}
.portal-weather-label {
  margin: 0.1rem 0 0;
  font-size: 0.86rem;
  color: #64748b;
}
.portal-weather-days {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.28rem;
}
.portal-weather-days li {
  display: grid;
  grid-template-columns: 3.2rem minmax(0, 1fr) auto;
  gap: 0.45rem;
  align-items: center;
  font-size: 0.88rem;
  border-top: 1px solid #eeeae3;
  padding-top: 0.28rem;
}
.portal-weather-day { font-weight: 600; color: #334155; }
.portal-weather-day-mid {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
}
.portal-weather-day-label {
  color: #64748b;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.portal-weather-range { font-weight: 600; color: #334155; white-space: nowrap; }
.portal-weather-source {
  margin: 0.55rem 0 0;
  font-size: 0.78rem;
  color: #94a3b8;
}
.wx-icon {
  display: inline-flex;
  flex-shrink: 0;
  color: var(--portal-accent, #c4a035);
  line-height: 0;
}
.wx-icon svg { display: block; }
.wx-icon-lg svg { width: 2.1rem; height: 2.1rem; }
.wx-icon-md svg { width: 1.55rem; height: 1.55rem; }
.wx-icon-xl svg { width: 3.2rem; height: 3.2rem; }
.wx-icon-sm svg { width: 1.15rem; height: 1.15rem; }
.wx-icon-sun { color: #d4a017; }
.wx-icon-partly { color: #c4a035; }
.wx-icon-cloud { color: #7a8494; }
.wx-icon-fog { color: #8b95a5; }
.wx-icon-rain { color: #4a6fa5; }
.wx-icon-snow { color: #6b8cae; }
.wx-icon-thunder { color: #8a6a20; }

/* Regions-Teaser Wetter / Sport (eigene Seiten) */
.portal-section-teaser {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  text-decoration: none;
  color: inherit;
  padding: 1.1rem 1.15rem;
  border: 1px solid var(--line, #e2e8f0);
  background: #fff;
  min-height: 8.5rem;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.portal-section-teaser:hover {
  border-color: var(--portal-accent, #c4a035);
  box-shadow: 0 8px 24px rgba(26, 36, 51, 0.08);
  transform: translateY(-1px);
}
.portal-section-teaser-top {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
}
.portal-section-teaser .portal-band-title { margin: 0 0 0.25rem; }
.portal-section-teaser-lead {
  margin: 0;
  color: #64748b;
  font-size: 0.95rem;
  line-height: 1.45;
}
.portal-section-teaser-lead strong {
  color: var(--ink, #1a2433);
  font-size: 1.35rem;
  margin-right: 0.25rem;
}
.portal-section-teaser-cta {
  margin: auto 0 0;
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--portal-accent, #c4a035);
}
.portal-section-teaser-weather {
  background:
    linear-gradient(145deg, rgba(196, 160, 53, 0.08), transparent 55%),
    #fff;
}
/* Wetter-Hub */
.wx-hub { display: grid; gap: 1.75rem; margin-top: 0.35rem; }
.wx-hub-alerts { margin-bottom: 0; }

/* Wetter Hub v2 — SRF-ähnlich */
.wx-hub-v2 { gap: 1.5rem; }
.wx-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem 0.75rem;
}
.wx-toolbar-hint {
  flex: 1 1 100%;
  margin: 0;
  font-size: 0.84rem;
  color: #64748b;
}
.wx-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  border: 0;
}
.wx-gps-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.55rem 0.95rem;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  background: #fff;
  color: #0f172a;
  font-size: 0.9rem;
  font-weight: 650;
  cursor: pointer;
}
.wx-gps-btn.is-busy { opacity: 0.7; cursor: wait; }
.wx-gps-ico {
  width: 0.7rem;
  height: 0.7rem;
  border: 2px solid currentColor;
  border-radius: 50%;
}
.wx-plz-search {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: wrap;
}
.wx-plz-search input {
  width: 7.5rem;
  padding: 0.5rem 0.6rem;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  font-size: 0.95rem;
  font-weight: 650;
}
.wx-plz-search button {
  padding: 0.5rem 0.85rem;
  border: 0;
  border-radius: 10px;
  background: #0f172a;
  color: #fff;
  font-size: 0.88rem;
  font-weight: 650;
  cursor: pointer;
}
.wx-gps-status { margin: 0; font-size: 0.88rem; color: #475569; width: 100%; }

.wx-warns {
  border-radius: 14px;
  padding: 1.05rem 1.05rem 1.15rem;
  background: linear-gradient(165deg, #f8fafc 0%, #fff 55%);
  border: 1px solid #e2e8f0;
  color: #0f172a;
}
.wx-warns-kicker {
  margin: 0 0 0.2rem;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #b45309;
}
.wx-warns-head { margin-bottom: 0.85rem; }
.wx-warns-head .content-h2 { margin: 0; }
.wx-warns-intro {
  margin: 0.35rem 0 0;
  font-size: 0.9rem;
  color: #64748b;
  line-height: 1.4;
}
.wx-warns-list { display: grid; gap: 0.75rem; }
.wx-warn-card {
  display: grid;
  gap: 0;
  border-radius: 12px;
  background: #fff;
  border: 1px solid #e2e8f0;
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.05);
}
.wx-warn-card-main {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.75rem;
  padding: 0.85rem 0.9rem;
  align-items: start;
}
.wx-warn-level {
  width: 3.1rem;
  min-height: 3.1rem;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #0f172a;
  background: #fef08a;
  flex: 0 0 auto;
}
.wx-warn-level-num {
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1;
}
.wx-warn-level-txt {
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-top: 0.12rem;
}
.wx-warn-card.is-lvl-1 .wx-warn-level { background: #bbf7d0; color: #14532d; }
.wx-warn-card.is-lvl-2 .wx-warn-level { background: #fde047; color: #713f12; }
.wx-warn-card.is-lvl-3 .wx-warn-level { background: #fb923c; color: #7c2d12; }
.wx-warn-card.is-lvl-4 .wx-warn-level { background: #ef4444; color: #fff; }
.wx-warn-card.is-lvl-5 .wx-warn-level { background: #7f1d1d; color: #fff; }
.wx-warn-card.is-lvl-1 { border-left: 4px solid #22c55e; }
.wx-warn-card.is-lvl-2 { border-left: 4px solid #eab308; }
.wx-warn-card.is-lvl-3 { border-left: 4px solid #ea580c; }
.wx-warn-card.is-lvl-4 { border-left: 4px solid #dc2626; }
.wx-warn-card.is-lvl-5 { border-left: 4px solid #7f1d1d; }
.wx-warn-card-body { min-width: 0; }
.wx-warn-card-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem 0.75rem;
}
.wx-warn-event {
  font-size: 1.08rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1.25;
}
.wx-warn-pill {
  font-size: 0.72rem;
  font-weight: 700;
  padding: 0.2rem 0.5rem;
  border-radius: 999px;
  background: #f1f5f9;
  color: #334155;
}
.wx-warn-card.is-lvl-2 .wx-warn-pill { background: #fef9c3; color: #854d0e; }
.wx-warn-card.is-lvl-3 .wx-warn-pill { background: #ffedd5; color: #9a3412; }
.wx-warn-card.is-lvl-4 .wx-warn-pill,
.wx-warn-card.is-lvl-5 .wx-warn-pill { background: #fee2e2; color: #991b1b; }
.wx-warn-when {
  margin: 0.4rem 0 0;
  font-size: 0.84rem;
  color: #475569;
}
.wx-warn-when span {
  font-weight: 700;
  color: #94a3b8;
  margin-right: 0.25rem;
}
.wx-warn-areas-label {
  margin: 0.55rem 0 0.2rem;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #94a3b8;
  font-weight: 700;
}
.wx-warn-areas {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.2rem;
}
.wx-warn-areas li {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.2rem 0.65rem;
  font-size: 0.88rem;
  padding: 0.25rem 0;
  border-bottom: 1px solid #f1f5f9;
}
.wx-warn-areas li:last-child { border-bottom: 0; }
.wx-warn-areas em { font-style: normal; color: #64748b; font-size: 0.8rem; }
.wx-warn-info {
  padding: 0.75rem 0.9rem 0.85rem;
  background: #f8fafc;
  border-top: 1px solid #eef2f7;
}
.wx-warn-info-label {
  margin: 0 0 0.3rem;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
}
.wx-warn-info-label + .wx-warn-info-list + .wx-warn-info-label { margin-top: 0.65rem; }
.wx-warn-info-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.35rem;
}
.wx-warn-info-list li {
  position: relative;
  padding-left: 0.85rem;
  font-size: 0.88rem;
  line-height: 1.45;
  color: #1e293b;
}
.wx-warn-info-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 0.35rem;
  height: 0.35rem;
  border-radius: 50%;
  background: #94a3b8;
}
.wx-warn-advice li::before { background: #ea580c; }
.wx-warns-source {
  margin: 0.7rem 0 0;
  font-size: var(--portal-size-label, 0.8125rem);
  color: var(--portal-meta, #475569);
}
.wx-warns-source a { color: #0f172a; text-decoration: none; font-weight: 650; }
.wx-warn-share {
  margin: 0.85rem 0 0;
  padding: 0.65rem 0.75rem;
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid #e8e4dc;
  border-radius: 10px;
}
.wx-warn-share .share-bar-label {
  margin: 0 0 0.4rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: #475569;
}
.wx-warn-share-copied {
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
  font-weight: 600;
  color: #0f766e;
}
@media (max-width: 560px) {
  .wx-warn-card-main {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.55rem;
    padding: 0.75rem 0.7rem;
  }
  .wx-warn-level { width: 2.7rem; min-height: 2.7rem; }
  .wx-warn-level-num { font-size: 1.15rem; }
  .wx-warn-info { padding: 0.65rem 0.7rem 0.75rem; }
  .wx-warn-info-list li { font-size: 0.84rem; }
}


.wx-now {
  border-radius: 14px;
  padding: 1.15rem 1.2rem 1.25rem;
  background: #fff;
  border: 1px solid #e2e8f0;
  display: grid;
  gap: 0.9rem;
}
.wx-now-top {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
}
/* Wetter Hub — Typo = Portal/Artikel (sans, gleiche Größen/Gewichte) */
.wx-hub,
.wx-hub-v2 {
  font-family: var(--sans);
  color: var(--ink, #142033);
}
.wx-hub .portal-band-title {
  margin: 0 0 0.65rem;
}
.wx-section-head { margin-bottom: 0.85rem; }
.wx-section-intro {
  margin: 0 0 0.75rem;
  color: #475569;
  font-family: var(--sans);
  font-size: 0.92rem;
  font-weight: 400;
  line-height: 1.4;
  max-width: none;
}
.wx-warn-areas li {
  font-family: var(--sans);
  font-size: 0.92rem;
  font-weight: 400;
}
.wx-warns-source,
.wx-source {
  font-family: var(--sans);
  font-size: 0.84rem;
  font-weight: 400;
  color: #64748b;
}
.wx-region-to-national {
  margin: 0;
  font-family: var(--sans);
  font-size: 0.9rem;
  font-weight: 400;
}
.wx-region-to-national a {
  color: var(--portal-accent, #c4a035);
  font-weight: 700;
  text-decoration: none;
}
.wx-region-to-national a:hover {
  color: #8a7020;
  text-decoration: none;
}
.wx-back-overview {
  margin: 1rem 0 0;
  font-size: 0.9rem;
}
.wx-back-overview a {
  color: var(--accent-2, #1e3a5f);
  font-weight: 700;
  text-decoration: none;
}
.wx-back-overview a:hover {
  color: #8a7020;
  text-decoration: none;
}
.wx-now-kicker {
  margin: 0;
  font-family: var(--sans);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #64748b;
}
.wx-now-place {
  margin: 0.2rem 0 0;
  font-family: var(--sans);
  font-size: clamp(1.15rem, 2.4vw, 1.55rem);
  font-weight: var(--heading-weight, 700);
  line-height: 1.25;
  color: #1a2433;
}
.wx-now-plz {
  display: inline-block;
  margin-left: 0.3rem;
  padding: 0.1rem 0.4rem;
  border-radius: 4px;
  background: #f1f5f9;
  font-family: var(--sans);
  font-size: 0.78rem;
  font-weight: 700;
  vertical-align: middle;
  color: #475569;
}
.wx-now-cond {
  margin: 0.3rem 0 0;
  font-family: var(--sans);
  font-size: 0.95rem;
  font-weight: 400;
  color: #475569;
  line-height: 1.45;
}
.wx-now-temp {
  margin: 0;
  font-family: var(--sans);
  font-size: clamp(1.15rem, 2.4vw, 1.55rem);
  font-weight: var(--heading-weight, 700);
  letter-spacing: -0.02em;
  line-height: 1;
  color: #1a2433;
}
.wx-now-temp span { font-size: 0.65em; font-weight: 700; }
.wx-now-text {
  margin: 0;
  font-family: var(--sans);
  font-size: 0.95rem;
  font-weight: 400;
  line-height: 1.45;
  color: #334155;
  max-width: none;
}
.wx-now-meta {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 1rem;
  font-family: var(--sans);
  font-size: 0.92rem;
  font-weight: 400;
  color: #1a2433;
}
.wx-now-meta span { color: #64748b; margin-right: 0.15rem; }
.wx-moon-phase {
  margin: 0 0 0.35rem;
  font-family: var(--sans);
  font-size: 1.02rem;
  font-weight: 700;
  line-height: 1.25;
  color: #1a2433;
}
.wx-moon-facts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.2rem;
  font-family: var(--sans);
  font-size: 0.92rem;
  font-weight: 400;
  color: #475569;
  line-height: 1.4;
}
.wx-moon-facts strong { color: #1a2433; font-weight: 700; }
.wx-f4-day {
  margin: 0;
  font-family: var(--sans);
  font-size: 0.92rem;
  font-weight: 700;
  color: #1a2433;
  min-height: 1.35em;
  line-height: 1.25;
}
.wx-f4-day span { font-weight: 400; color: #64748b; }
.wx-f4-temps {
  margin: 0;
  font-family: var(--sans);
  font-size: 1.02rem;
  font-weight: 700;
  min-height: 1.4em;
  color: #1a2433;
}
.wx-f4-temps strong { color: #1a2433; font-weight: 700; }
.wx-f4-temps span { color: #64748b; margin-left: 0.25rem; font-size: 0.92rem; font-weight: 400; }
.wx-f4-label {
  margin: 0;
  font-family: var(--sans);
  font-size: 1.02rem;
  font-weight: 700;
  color: #1a2433;
  min-height: 1.3em;
  line-height: 1.25;
}
.wx-f4-text {
  margin: 0;
  font-family: var(--sans);
  font-size: 0.92rem;
  font-weight: 400;
  line-height: 1.4;
  color: #475569;
  text-align: left;
  min-height: 3.3em;
  max-height: 3.3em;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}
.wx-f4-facts {
  list-style: none;
  margin: auto 0 0;
  padding: 0.55rem 0 0;
  border-top: 1px solid #f1f5f9;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.2rem 0.55rem;
  font-family: var(--sans);
  font-size: 0.78rem;
  font-weight: 400;
  color: #64748b;
}
.wx-webcam-copy strong {
  font-family: var(--sans);
  font-size: 1.02rem;
  font-weight: 700;
  line-height: 1.25;
  color: #1a2433;
}
.wx-webcam-copy span,
.wx-webcam-copy em {
  font-family: var(--sans);
  font-size: 0.92rem;
  font-weight: 400;
  color: #475569;
}
.wx-webcam-live {
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.wx-stay-btn {
  display: inline-flex;
  padding: 0.5rem 0.9rem;
  border-radius: 8px;
  background: #1a2433;
  color: #fff;
  text-decoration: none;
  font-family: var(--sans);
  font-weight: 700;
  font-size: 0.9rem;
}
.wx-stay-btn-soft { background: #e2e8f0; color: #1a2433; }
.wx-national-search input,
.wx-national-search button {
  font-family: var(--sans);
}
.wx-national-search input {
  font-size: 0.95rem;
  font-weight: 400;
}
.wx-national-search button {
  font-size: 0.9rem;
  font-weight: 700;
}
.wx-national-hint,
.wx-national-empty,
.wx-search-error {
  font-family: var(--sans);
  font-size: 0.92rem;
  font-weight: 400;
  line-height: 1.4;
}
.wx-section-title {
  /* Fallback falls noch irgendwo ohne portal-band-title */
  font-family: var(--sans);
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  margin: 0 0 0.65rem;
  color: #1a2433;
}

.wx-now-tempblock {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}
.wx-icon { color: #475569; display: inline-flex; line-height: 0; }
.wx-icon svg { display: block; }
.wx-icon-lg svg { width: 2.5rem; height: 2.5rem; }
.wx-icon-xxl svg { width: 2.75rem; height: 2.75rem; }
.wx-icon-md svg { width: 1.75rem; height: 1.75rem; }
.wx-icon-fog { color: #64748b; }
.wx-f4-icon {
  display: grid;
  place-items: center;
  height: 3.2rem;
  color: #475569;
}

.wx-moon-panel {
  display: flex;
  gap: 0.9rem;
  align-items: center;
  padding: 0.85rem 0.95rem;
  border-radius: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}
.wx-moon-viz { display: inline-flex; flex: 0 0 auto; }
.wx-moon-viz svg { display: block; }
.wx-moon-copy { min-width: 0; }

.wx-forecast4 { display: grid; gap: 0.85rem; }
.wx-f4-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.7rem;
  align-items: stretch;
}
.wx-f4-card {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding: 0.95rem 0.8rem 1rem;
  border-radius: 12px;
  background: #fff;
  border: 1px solid #e2e8f0;
  text-align: center;
  min-height: 100%;
}
.wx-f4-sun { background: linear-gradient(180deg, #fff7d6, #fff); }
.wx-f4-partly { background: linear-gradient(180deg, #eef6ff, #fff8e8 60%, #fff); }
.wx-f4-cloud { background: linear-gradient(180deg, #eef1f5, #fff); }
.wx-f4-fog { background: linear-gradient(180deg, #e8ebef, #fff); }
.wx-f4-rain { background: linear-gradient(180deg, #dbeafe, #eff6ff 50%, #fff); }
.wx-f4-snow { background: linear-gradient(180deg, #e0f2fe, #fff); }
.wx-f4-thunder { background: linear-gradient(180deg, #fef3c7, #e2e8f0 55%, #fff); }
.wx-search-error.is-empty,
.wx-search-error[hidden] { display: none; }
.weather-national-page.is-wx-loading {
  cursor: wait;
}
.weather-national-page.is-wx-loading .wx-overview-grid {
  opacity: 0.55;
  pointer-events: none;
}
.wx-national-search {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0 0 1rem;
  align-items: center;
  max-width: 100%;
}
.wx-national-search .wx-gps-btn {
  flex: 0 0 auto;
}
.wx-national-search input {
  flex: 1 1 10rem;
  min-width: 0;
  max-width: 18rem;
  height: 2.75rem;
  min-height: 0;
  max-height: 2.75rem;
  padding: 0 0.75rem;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #fff;
  line-height: 1.35;
  box-sizing: border-box;
  -webkit-appearance: none;
  appearance: none;
}
.wx-national-search button[type="submit"] {
  padding: 0.6rem 1rem;
  border: 0;
  border-radius: 8px;
  background: #1a2433;
  color: #fff;
  cursor: pointer;
}
.wx-national-hint,
.wx-national-empty { margin: 0 0 1rem; color: #64748b; }
.wx-search-error { margin: 0 0 1rem; color: #b91c1c; }
.wx-quick {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0 0 0.25rem;
}
.wx-quick-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  border: 1px solid #d6d3cb;
  background: #fff;
  color: #1a2433;
  font-size: 0.85rem;
  font-weight: 600;
  text-decoration: none;
}
.wx-quick-chip:hover { border-color: #c4a035; color: #1a2433; }
.wx-national-hero { padding-bottom: 0.5rem; }
.wx-national-overview { padding-top: 0.25rem; }
.wx-overview-intro {
  margin: 0.35rem 0 0;
  color: #64748b;
  font-size: 0.98rem;
  max-width: 40rem;
}
.wx-region-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 1rem 0 1.1rem;
}
.wx-region-chip {
  display: inline-flex;
  padding: 0.4rem 0.75rem;
  border-radius: 8px;
  border: 1px solid #e2e8f0;
  background: #f8fafc;
  color: #475569;
  font-size: 0.86rem;
  font-weight: 650;
  text-decoration: none;
}
.wx-region-chip.is-active,
.wx-region-chip:hover {
  background: #1a2433;
  border-color: #1a2433;
  color: #fff;
}
.wx-overview-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
}
.wx-overview-grid-6 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.wx-overview-plz {
  color: #94a3b8;
  font-weight: 500;
  font-size: 0.85em;
}
.wx-overview-card {
  display: flex;
  flex-direction: column;
  border: 1px solid #e8e4dc;
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
  min-height: 100%;
}
.wx-overview-sun { background: linear-gradient(165deg, #fff7d6, #fff 42%); }
.wx-overview-partly { background: linear-gradient(165deg, #eef6ff, #fff8e8 40%, #fff); }
.wx-overview-cloud { background: linear-gradient(165deg, #eef1f5, #fff 45%); }
.wx-overview-fog { background: linear-gradient(165deg, #e8ebef, #fff 45%); }
.wx-overview-rain { background: linear-gradient(165deg, #dbeafe, #eff6ff 40%, #fff); }
.wx-overview-snow { background: linear-gradient(165deg, #e0f2fe, #fff 45%); }
.wx-overview-thunder { background: linear-gradient(165deg, #fef3c7, #e2e8f0 45%, #fff); }
.wx-overview-main {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 0.9rem 0.95rem 0.7rem;
  text-decoration: none;
  color: inherit;
  flex: 1 1 auto;
}
.wx-overview-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.5rem;
}
.wx-overview-region {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
}
.wx-overview-icon .wx-icon-md svg { width: 2.1rem; height: 2.1rem; }
.wx-overview-temp {
  margin: 0.15rem 0 0;
  display: flex;
  align-items: baseline;
  gap: 0.45rem;
}
.wx-overview-temp strong {
  font-size: 2rem;
  font-weight: 800;
  color: #1a2433;
  line-height: 1;
}
.wx-overview-temp span {
  font-size: 0.92rem;
  color: #475569;
}
.wx-overview-place {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 650;
  color: #1a2433;
}
.wx-overview-range {
  margin: 0;
  font-size: 0.85rem;
  color: #64748b;
  font-weight: 600;
}
.wx-overview-pop {
  margin-left: 0.45rem;
  color: #3b82f6;
}
.wx-overview-cta {
  margin-top: 0.55rem;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--wx-accent, #c4a035);
  text-decoration: none !important;
}
.wx-cam-carousel {
  position: relative;
  margin: 0 0 1rem;
  background: #fff;
  border: 1px solid #e8e4dc;
  border-radius: 14px;
  overflow: hidden;
  max-width: 100%;
  min-width: 0;
}
.wx-cam-stage {
  position: relative;
  background: #0f172a;
}
.wx-cam-slide {
  margin: 0;
  display: none;
  width: 100%;
}
.wx-cam-slide.is-active { display: block; }
/* Volle Breite — kein dunkler Seitenstreifen (max-height + aspect-ratio hatte die Box geschrumpft) */
.wx-cam-visual {
  width: 100%;
  height: clamp(14rem, 38vw, 24rem);
  overflow: hidden;
  background: #0f172a;
}
.wx-cam-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.wx-cam-slide figcaption {
  padding: 0.65rem 0.9rem 0.75rem;
  background: #fff;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.wx-cam-slide figcaption strong {
  font-size: 1.02rem;
  color: #1a2433;
}
.wx-cam-slide figcaption span {
  font-size: 0.86rem;
  color: #64748b;
}
.wx-cam-nav {
  position: absolute;
  top: 38%;
  z-index: 2;
  width: 2.2rem;
  height: 2.2rem;
  border: 0;
  border-radius: 999px;
  background: rgba(26, 36, 51, 0.72);
  color: #fff;
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
}
.wx-cam-prev { left: 0.55rem; }
.wx-cam-next { right: 0.55rem; }
.wx-cam-nav:hover { background: rgba(26, 36, 51, 0.9); }
.wx-cam-dots {
  display: flex;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.45rem 0 0.15rem;
  background: #fff;
}
.wx-cam-dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 999px;
  border: 0;
  background: #cbd5e1;
  cursor: pointer;
  padding: 0;
}
.wx-cam-dot.is-active { background: var(--wx-accent, #c4a035); }
.wx-cam-actions {
  margin: 0;
  padding: 0.35rem 0.9rem 0.85rem;
  background: #fff;
  text-align: center;
}
.wx-cam-live {
  display: inline-flex;
  padding: 0.45rem 0.9rem;
  border-radius: 8px;
  background: var(--accent-2, #1a2433);
  color: #fff !important;
  font-weight: 700;
  font-size: 0.86rem;
  text-decoration: none;
}
.wx-pro-cam-thumb {
  border: 1px solid #e8e4dc;
  background: #fff;
  text-align: left;
  cursor: pointer;
  font: inherit;
  padding: 0;
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}
.wx-pro-cam-thumb.is-active {
  border-color: var(--wx-accent, #c4a035);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--wx-accent, #c4a035) 35%, transparent);
}
.wx-pro-cam-thumb strong {
  padding: 0.35rem 0.55rem 0;
  font-size: 0.92rem;
}
.wx-pro-cam-thumb span {
  padding: 0 0.55rem 0.5rem;
  font-size: 0.8rem;
  color: #64748b;
}
.wx-overview-detail {
  display: block;
  padding: 0.55rem 0.95rem;
  border-top: 1px solid #eeebe3;
  font-size: 0.82rem;
  font-weight: 650;
  color: #475569;
  text-decoration: none !important;
  background: rgba(255,255,255,0.55);
}
.wx-overview-detail:hover { color: #1a2433; text-decoration: none !important; }
.wx-overview-main:hover .wx-overview-cta { text-decoration: none !important; }
.wx-overview-note {
  margin: 1rem 0 0;
  font-size: 0.78rem;
  color: #94a3b8;
}
.wx-plz-choose {
  margin: 0 0 1rem;
  padding: 1rem 1.05rem;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  background: #f8fafc;
}
.wx-plz-choose-title {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
  font-weight: 700;
  color: #0f172a;
}
.wx-plz-choose-intro {
  margin: 0 0 0.85rem;
  color: #475569;
  font-size: 0.95rem;
  line-height: 1.45;
}
.wx-plz-choose-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}
.wx-plz-choice {
  display: inline-flex;
  align-items: center;
  padding: 0.55rem 0.95rem;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #fff;
  color: #0f172a;
  font-size: 0.92rem;
  font-weight: 650;
  cursor: pointer;
  font-family: var(--sans);
}
.wx-plz-choice:hover,
.wx-plz-choice:focus-visible {
  border-color: #c4a035;
  color: #0f172a;
}
.jobs-plz-pick {
  margin: 0 0 1.25rem;
  padding: 1rem 1.05rem;
  border: 1px solid #e8c96a;
  border-radius: 8px;
  background: #fff9e8;
}
.jobs-plz-pick-title {
  margin: 0 0 0.35rem;
  font-size: 1.08rem;
  font-weight: 700;
  color: var(--ink);
  font-family: var(--sans);
}
.jobs-plz-pick-intro,
.jobs-plz-pick-question,
.jobs-plz-pick-scope {
  margin: 0 0 0.55rem;
  color: var(--ink);
  font-size: 0.94rem;
  line-height: 1.45;
}
.jobs-plz-pick-question {
  font-weight: 650;
}
.jobs-plz-pick-scope {
  color: var(--muted);
  font-size: 0.9rem;
  margin-bottom: 0.75rem;
}
.jobs-plz-pick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}
.jobs-plz-pick-btn {
  background: #fff;
  color: #1a2433;
  border: 1px solid #d7d2c8;
  text-decoration: none;
  font-weight: 500;
}
.jobs-plz-pick-btn:hover,
.jobs-plz-pick-btn:focus-visible {
  background: #fff;
  color: #1a2433;
  border-color: #1a2433;
  text-decoration: none;
}
@media (max-width: 720px) {
  .jobs-plz-pick-actions .jobs-chip {
    flex: 1 1 100%;
    justify-content: center;
    text-align: center;
  }
}
.jobs-plz-choose {
  margin: 0 0 1rem;
}
.jobs-plz-choose-scope {
  margin: 0 0 0.75rem;
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.45;
}
a.jobs-plz-choice {
  text-decoration: none;
}
.wx-back-overview {
  margin: 1rem 0 0;
  font-size: 0.92rem;
}
.wx-back-overview a { color: #475569; font-weight: 650; }
@media (max-width: 900px) {
  .wx-overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .wx-overview-grid { grid-template-columns: 1fr; }
}
.wx-stay-actions { display: flex; flex-wrap: wrap; gap: 0.55rem; }
.wx-source { margin: 0.75rem 0 0; }

@media (max-width: 900px) {
  .wx-f4-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .wx-f4-grid { grid-template-columns: 1fr; }
  .wx-now-tempblock { width: 100%; justify-content: space-between; }
}

/* Wetter — Mobile: Grid-Kinder dürfen schrumpfen (sonst ~550px breit + abgeschnitten) */
.wx-hub-wrap,
.portal-rubric-block.wx-hub-wrap,
.weather-national-page .wx-hub-wrap {
  max-width: 100%;
  min-width: 0;
  overflow-x: clip;
}
.wx-pro > *,
.wx-hub > *,
.wx-hub-v2 > * {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

/* Wetter Pro (lokal) — MeteoNews-inspiriert, hell & farbig */
.wx-pro {
  font-family: var(--sans);
  color: #1a2433;
  border: 1px solid #e4e0d8;
  background:
    linear-gradient(165deg, #f0f7ff 0%, #fffdf8 42%, #fff 100%);
  border-radius: var(--surface-radius, 8px);
  padding: 1.1rem 1.15rem 1.25rem;
  display: grid;
  gap: 1.1rem;
  max-width: 100%;
  min-width: 0;
  overflow-x: clip;
  box-sizing: border-box;
}
.wx-pro-sky-sun { background: linear-gradient(165deg, #fff6d6 0%, #fffdf8 50%, #fff 100%); }
.wx-pro-sky-partly { background: linear-gradient(165deg, #e8f4ff 0%, #fff8e8 55%, #fff 100%); }
.wx-pro-sky-rain,
.wx-pro-sky-thunder { background: linear-gradient(165deg, #e4eef8 0%, #f5f7fa 55%, #fff 100%); }
.wx-pro-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.65rem;
  margin: 0 0 0.15rem;
}
.wx-pro-toolbar .wx-gps-btn { flex: 0 0 auto; }
.wx-pro-toolbar .wx-gps-status { margin: 0; flex: 1 1 100%; }
.wx-pro-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem 1rem;
}
.wx-pro-loc { display: flex; gap: 0.55rem; align-items: flex-start; }
.wx-pro-pin {
  width: 0.7rem;
  height: 0.7rem;
  margin-top: 0.35rem;
  border-radius: 50% 50% 50% 0;
  background: var(--portal-accent, #c4a035);
  transform: rotate(-45deg);
  flex: 0 0 auto;
}
.wx-pro-place {
  margin: 0;
  font-size: clamp(1.15rem, 2.4vw, 1.55rem);
  font-weight: var(--heading-weight, 700);
  line-height: 1.25;
}
.wx-pro-place span,
.wx-pro-plz {
  font-size: 0.78rem;
  font-weight: 700;
  color: #64748b;
  margin-left: 0;
  margin-right: 0.25rem;
}
.wx-pro-when {
  margin: 0.15rem 0 0;
  font-size: 0.92rem;
  color: #64748b;
}
.wx-pro-badge {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--wx-badge-text, #92400e);
  background: var(--wx-badge-bg, #fef3c7);
  padding: 0.25rem 0.5rem;
  border-radius: 6px;
}
.wx-pro-now {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  align-items: center;
  justify-content: space-between;
}
.wx-pro-now-main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 0.85rem;
}
.wx-pro-icon { color: inherit; line-height: 0; }
.wx-pro-icon .wx-icon-lg svg { width: 3.4rem; height: 3.4rem; }
.wx-pro-temp {
  margin: 0;
  font-size: clamp(2rem, 5vw, 2.75rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1;
  color: #1a2433;
}
.wx-pro-temp span {
  font-size: 0.4em;
  font-weight: 700;
  margin-left: 0.1rem;
  color: #64748b;
}
.wx-pro-cond-label {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #64748b;
}
.wx-pro-cond-name {
  margin: 0.1rem 0 0;
  font-size: 1.02rem;
  font-weight: 700;
  line-height: 1.25;
}
.wx-pro-stats {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.25rem;
  font-size: 0.92rem;
  color: #1a2433;
}
.wx-pro-stats span { color: #64748b; margin-right: 0.25rem; }
.wx-pro-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.1rem;
  margin-bottom: 0.55rem;
  border-bottom: 1px solid #e4e0d8;
}
.wx-pro-tab {
  appearance: none;
  background: none;
  border: 0;
  cursor: pointer;
  padding: 0.35rem 0 0.5rem;
  font: inherit;
  font-size: 0.92rem;
  font-weight: 700;
  color: #94a3b8;
}
.wx-pro-tab:hover { color: #475569; }
.wx-pro-tab.is-active {
  color: #1a2433;
  box-shadow: inset 0 -2px 0 var(--wx-chart, var(--portal-accent, #c4a035));
}
.wx-pro-chart {
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid #e8e4dc;
  border-radius: 12px;
  padding: 0.75rem 0.65rem 0.35rem;
}
.wx-pro-chart-panel[hidden] { display: none !important; }
.wx-pro-chart-panels,
.wx-pro-chart-panel {
  min-width: 0;
  max-width: 100%;
}
.wx-pro-chart-svg {
  display: block;
  overflow: hidden;
  max-width: 100%;
  height: auto;
}
.wx-pro-chart-svg polyline { stroke: var(--wx-chart, #c4a035); }
.wx-pro-chart-svg .wx-pro-chart-area { fill: var(--wx-chart-fill, var(--wx-chart, #c4a035)); }
.wx-pro-chart-val {
  font-size: 13px;
  font-weight: 700;
  fill: #1a2433;
  font-family: var(--sans);
}
.wx-pro-chart-time {
  font-size: 12px;
  fill: #64748b;
  font-family: var(--sans);
}
.wx-pro-day-row {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.35rem;
}
.wx-pro-day {
  text-align: center;
  padding: 0.65rem 0.35rem 0.7rem;
  border-radius: 12px;
  background: #fff;
  border: 1px solid #e8e4dc;
}
.wx-pro-day.is-today {
  box-shadow: 0 8px 20px rgba(26, 36, 51, 0.08);
  border-color: #c4a035;
}
.wx-pro-day-sun { background: linear-gradient(180deg, #fff7d6, #fff); }
.wx-pro-day-partly { background: linear-gradient(180deg, #eef6ff, #fff8e8 60%, #fff); }
.wx-pro-day-cloud { background: linear-gradient(180deg, #eef1f5, #fff); }
.wx-pro-day-fog { background: linear-gradient(180deg, #e8ebef, #fff); }
.wx-pro-day-rain { background: linear-gradient(180deg, #dbeafe, #eff6ff 50%, #fff); }
.wx-pro-day-snow { background: linear-gradient(180deg, #e0f2fe, #fff); }
.wx-pro-day-thunder { background: linear-gradient(180deg, #fef3c7, #e2e8f0 55%, #fff); }
.wx-pro-day-name {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 700;
  color: #475569;
}
.wx-pro-day-icon {
  display: grid;
  place-items: center;
  min-height: 3rem;
  margin: 0.3rem 0;
}
.wx-pro-day-icon .wx-icon-lg svg { width: 2.6rem; height: 2.6rem; }
.wx-icon-color svg { display: block; }
.wx-pro-day-temps {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: #1a2433;
}
.wx-pro-day-temps span {
  color: #64748b;
  font-weight: 500;
  margin-left: 0.2rem;
  font-size: 0.95rem;
}
.wx-pro-day-pop {
  margin: 0.25rem 0 0;
  font-size: 0.88rem;
  font-weight: 600;
  color: #475569;
  line-height: 1.25;
}
.wx-pro-day-pop-lab {
  display: block;
  font-size: 0.78rem;
  font-weight: 650;
  color: #64748b;
  letter-spacing: 0.01em;
}
.wx-pro-accord {
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.wx-pro-acc {
  border: 1px solid #e8e4dc;
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}
.wx-pro-acc-sun { background: linear-gradient(90deg, #fff7d6 0%, #fff 28%); }
.wx-pro-acc-partly { background: linear-gradient(90deg, #eef6ff 0%, #fff 28%); }
.wx-pro-acc-cloud { background: linear-gradient(90deg, #eef1f5 0%, #fff 28%); }
.wx-pro-acc-fog { background: linear-gradient(90deg, #e8ebef 0%, #fff 28%); }
.wx-pro-acc-rain { background: linear-gradient(90deg, #dbeafe 0%, #fff 28%); }
.wx-pro-acc-snow { background: linear-gradient(90deg, #e0f2fe 0%, #fff 28%); }
.wx-pro-acc-thunder { background: linear-gradient(90deg, #fef3c7 0%, #fff 28%); }
.wx-pro-acc-sum {
  list-style: none;
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) auto auto minmax(0, 1fr) 1.1rem;
  gap: 0.55rem;
  align-items: center;
  padding: 0.7rem 0.85rem;
  cursor: pointer;
  font-family: var(--sans);
}
.wx-pro-acc-sum::-webkit-details-marker { display: none; }
.wx-pro-acc-when {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}
.wx-pro-acc-when strong {
  font-size: 1.02rem;
  font-weight: 700;
  color: #1a2433;
}
.wx-pro-acc-when em {
  font-style: normal;
  font-size: 0.9rem;
  color: #64748b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.wx-pro-acc-icon .wx-icon-md svg { width: 1.85rem; height: 1.85rem; }
.wx-pro-acc-temps {
  font-size: 1.05rem;
  white-space: nowrap;
}
.wx-pro-acc-temps strong { color: #1a2433; font-weight: 700; }
.wx-pro-acc-temps span { color: #64748b; font-size: 0.95rem; }
.wx-pro-acc-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.65rem;
  justify-content: flex-end;
  font-size: 0.88rem;
  font-weight: 600;
  color: #475569;
}
.wx-pro-acc-chev {
  width: 0.55rem;
  height: 0.55rem;
  border-right: 2px solid #94a3b8;
  border-bottom: 2px solid #94a3b8;
  transform: rotate(45deg);
  transition: transform 0.15s ease;
  justify-self: end;
}
.wx-pro-acc[open] .wx-pro-acc-chev {
  transform: rotate(225deg);
  margin-top: 0.25rem;
}
.wx-pro-acc-body {
  padding: 0 0.85rem 0.85rem;
  border-top: 1px solid #f1efe8;
}
.wx-pro-acc-facts {
  list-style: none;
  margin: 0.65rem 0 0.75rem;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 1rem;
  font-size: 0.92rem;
  color: #334155;
}
.wx-pro-acc-facts span {
  color: #64748b;
  font-weight: 650;
  margin-right: 0.25rem;
}
.wx-pro-parts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.45rem;
}
.wx-pro-part {
  background: #f8fafc;
  border: 1px solid #e8e4dc;
  border-radius: 10px;
  padding: 0.6rem 0.55rem 0.75rem;
  min-width: 0;
  overflow: hidden;
  box-sizing: border-box;
}
.wx-pro-part header {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  margin-bottom: 0.45rem;
  min-width: 0;
}
.wx-pro-part header strong {
  font-size: 0.95rem;
  font-weight: 700;
  color: #1a2433;
}
.wx-pro-part header span {
  font-size: 0.85rem;
  color: #64748b;
}
.wx-pro-part-main {
  display: flex;
  gap: 0.4rem;
  align-items: center;
  min-width: 0;
}
.wx-pro-part-icon { flex: 0 0 auto; line-height: 0; }
.wx-pro-part-icon .wx-icon-md svg { width: 1.85rem; height: 1.85rem; }
.wx-pro-part-temps {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.25;
}
.wx-pro-part-temps strong { font-weight: 700; color: #1a2433; }
.wx-pro-part-temps span { color: #64748b; font-size: 0.95rem; }
.wx-pro-part-label {
  margin: 0.15rem 0 0;
  font-size: 0.88rem;
  font-weight: 600;
  color: #475569;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.wx-pro-part-meta {
  list-style: none;
  margin: 0.5rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: #475569;
  line-height: 1.4;
}
.wx-pro-cams-intro {
  margin: -0.25rem 0 0.75rem;
  font-size: 0.92rem;
  color: #475569;
}
.wx-pro-cam-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.65rem;
}
.wx-pro-cam {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  text-decoration: none;
  color: inherit;
  background: #fff;
  border: 1px solid #e4e0d8;
  border-radius: 10px;
  overflow: hidden;
  transition: transform .15s ease, box-shadow .15s ease;
}
.wx-pro-cam:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(26, 36, 51, 0.08);
}
.wx-pro-cam-visual {
  position: relative;
  aspect-ratio: 16 / 10;
  background: #0f172a;
  overflow: hidden;
}
.wx-pro-cam-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.wx-pro-cam-ph {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #38bdf8, #1a2433);
}
.wx-pro-cam-live {
  position: absolute;
  left: 0.45rem;
  bottom: 0.45rem;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: rgba(26, 36, 51, 0.85);
  color: #fff;
  padding: 0.2rem 0.4rem;
  border-radius: 4px;
}
.wx-pro-cam strong {
  padding: 0.45rem 0.55rem 0;
  font-size: 1.02rem;
  font-weight: 700;
  line-height: 1.25;
}
.wx-pro-cam span {
  padding: 0 0.55rem 0.55rem;
  font-size: 0.92rem;
  color: #64748b;
}
.wx-pro-source {
  margin: 0;
  font-size: 0.78rem;
  color: #94a3b8;
}
.wx-pro-section-title {
  margin: 0 0 0.65rem;
  font-family: var(--sans);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #64748b;
}
.wx-pro .portal-band-title {
  margin: 0 0 0.65rem;
  font-family: var(--sans);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #64748b;
}

/* Regions-Start: Bild rechts, Wetter darunter (Visitenkarte) */
.region-stage-aside {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-width: 0;
}
.region-stage-mark--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--region-stage-img-bg, #eceae6);
  border: 1px solid #ddd8d4;
}
.region-stage-mark-ph {
  font-family: var(--sans);
  font-size: 0.9rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: #8a857c;
}
.region-stage-current-wx {
  width: 100%;
  margin: 0;
}
.region-stage-current-wx-label {
  margin: 0 0 0.4rem;
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #94a3b8;
}
.region-wx-now {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.55rem;
  width: 100%;
  box-sizing: border-box;
  padding: 0.75rem 0.9rem;
  border: 1px solid #e4e0d8;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(26, 36, 51, 0.07);
  font-family: var(--sans);
  font-size: 0.95rem;
  font-weight: 400;
  line-height: 1.4;
  color: #475569;
}
.region-wx-now-icon {
  display: inline-flex;
  align-items: center;
}
.region-wx-now-icon .wx-icon-sm svg {
  display: block;
  width: 1.65rem;
  height: 1.65rem;
}
.region-wx-now-temp {
  font-size: 1.15rem;
  font-weight: 600;
  color: #1a2433;
  letter-spacing: -0.02em;
}
.region-wx-now-cond { color: #334155; font-weight: 500; }
.region-wx-now-place {
  font-size: 0.86rem;
  color: #64748b;
}
.region-wx-now-place::before {
  content: '·';
  margin: 0 0.35rem;
  color: #cbd5e1;
}
.wx-pro--lite {
  padding: 0.75rem 0.85rem 1rem;
  gap: 0.75rem;
  border-radius: 12px;
}
.wx-pro--lite .wx-pro-temp {
  font-size: 1.65rem;
  font-weight: 600;
}
.wx-pro--lite .wx-pro-icon .wx-icon-lg svg {
  width: 2.25rem;
  height: 2.25rem;
}
.wx-pro--lite .wx-pro-section-title--lite {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #64748b;
  margin-bottom: 0.35rem;
}
.wx-pro--lite .wx-pro-acc-sum {
  font-size: 0.9rem;
  padding: 0.55rem 0.65rem;
}
.wx-pro--lite .wx-pro-acc-sum strong { font-weight: 600; }
.wx-cam-links {
  margin: 0.5rem 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.45rem;
}
@media (min-width: 600px) {
  .wx-cam-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.wx-cam-link {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.45rem 0.55rem;
  border: 1px solid #e8e4dc;
  border-radius: 8px;
  background: #fafaf8;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.15s ease;
}
.wx-cam-link:hover { border-color: #c9c4b8; }
.wx-cam-link-thumb {
  flex-shrink: 0;
  width: 5rem;
  aspect-ratio: 16 / 9;
  border-radius: 4px;
  overflow: hidden;
  background: #e8e4dc;
}
.wx-cam-link-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.wx-cam-link-text {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
  font-size: 0.85rem;
}
.wx-cam-link-text strong {
  font-weight: 600;
  color: #1a2433;
  line-height: 1.25;
}
.wx-cam-link-text em {
  font-style: normal;
  font-size: 0.78rem;
  color: #64748b;
}
.wx-pro-cams-intro--lite {
  margin: 0.15rem 0 0;
  font-size: 0.85rem;
  color: #64748b;
}

/* Wetter-Chip: Details kompakt (Stage-Pill zeigt Aktuell) */
.wx-warns--compact {
  margin: 0 0 0.65rem;
  padding: 0;
  border: none;
  background: transparent;
  box-shadow: none;
}
.wx-warns--compact .wx-warns-source {
  margin: 0.45rem 0 0;
  font-size: 0.72rem;
}
.wx-warn-compact {
  margin: 0 0 0.4rem;
  border: 1px solid #ebe6dc;
  border-left-width: 3px;
  border-radius: 8px;
  background: #fafaf8;
  overflow: hidden;
}
.wx-warn-compact.is-lvl-1,
.wx-warn-compact.is-lvl-2 { border-left-color: #eab308; }
.wx-warn-compact.is-lvl-3 { border-left-color: #f97316; }
.wx-warn-compact.is-lvl-4,
.wx-warn-compact.is-lvl-5 { border-left-color: #dc2626; }
.wx-warn-compact-sum {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.5rem 0.65rem;
  cursor: pointer;
  list-style: none;
}
.wx-warn-compact-sum::-webkit-details-marker { display: none; }
.wx-warn-compact-lvl {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 4px;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1;
  background: #eab308;
  color: #1a2433;
}
.wx-warn-compact.is-lvl-3 .wx-warn-compact-lvl { background: #fb923c; color: #fff; }
.wx-warn-compact.is-lvl-4 .wx-warn-compact-lvl,
.wx-warn-compact.is-lvl-5 .wx-warn-compact-lvl { background: #dc2626; color: #fff; }
.wx-warn-compact-text {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
  font-size: 0.88rem;
  color: #334155;
}
.wx-warn-compact-text strong {
  font-weight: 600;
  font-size: 0.9rem;
  color: #1a2433;
}
.wx-warn-compact-text em {
  font-style: normal;
  font-size: 0.78rem;
  color: #64748b;
}
.wx-warn-compact-body {
  padding: 0 0.65rem 0.55rem;
  font-size: 0.82rem;
  color: #475569;
  line-height: 1.45;
}
.wx-warn-compact-areas,
.wx-warn-compact-info {
  margin: 0.35rem 0 0;
  padding-left: 1.1rem;
}
.wx-warn-compact-areas li,
.wx-warn-compact-info li { margin: 0.15rem 0; }
.wx-pro-toolbar--shelf {
  margin: 0 0 0.35rem;
  padding: 0;
}
.wx-pro-toolbar--shelf .wx-gps-btn {
  padding: 0.25rem 0.55rem;
  font-size: 0.78rem;
  font-weight: 500;
}
.region-shelf-panel.is-wetter .wx-pro--shelf {
  border-radius: 12px;
  padding: 0.85rem 0.95rem 1rem;
  gap: 0.85rem;
  background: #fff;
  border-color: #e8e4dc;
}
.region-shelf-panel.is-wetter .wx-pro--shelf .wx-pro-now-main {
  display: none;
}
.region-shelf-panel.is-wetter .wx-pro--shelf .wx-pro-now {
  margin: 0;
  padding: 0 0 0.65rem;
  border-bottom: 1px solid #ebe6dc;
}
.region-shelf-panel.is-wetter .wx-pro--shelf .wx-pro-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.85rem;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.82rem;
  font-weight: 400;
  color: #475569;
}
.region-shelf-panel.is-wetter .wx-pro--shelf .wx-pro-stats li span {
  color: #94a3b8;
  font-weight: 500;
}
.region-shelf-panel.is-wetter .wx-pro--shelf.wx-pro-sky-sun,
.region-shelf-panel.is-wetter .wx-pro--shelf.wx-pro-sky-partly,
.region-shelf-panel.is-wetter .wx-pro--shelf.wx-pro-sky-rain,
.region-shelf-panel.is-wetter .wx-pro--shelf.wx-pro-sky-thunder {
  background: #fff;
}
.region-shelf-panel.is-wetter .wx-pro--shelf .wx-pro-place {
  font-size: 1.05rem;
  font-weight: 600;
}
.region-shelf-panel.is-wetter .wx-pro--shelf .wx-pro-when {
  font-size: 0.85rem;
}
.region-shelf-panel.is-wetter .wx-pro--shelf .wx-pro-icon .wx-icon-lg svg {
  width: 2.65rem;
  height: 2.65rem;
}
.region-shelf-panel.is-wetter .wx-pro--shelf .wx-pro-temp {
  font-size: 1.75rem;
  font-weight: 600;
}
.region-shelf-panel.is-wetter .wx-pro--shelf .wx-pro-cond-name {
  font-size: 0.95rem;
  font-weight: 500;
}
.region-shelf-panel.is-wetter .wx-pro--shelf .wx-pro-stats {
  font-size: 0.85rem;
  font-weight: 400;
}
.region-shelf-panel.is-wetter .wx-pro--shelf .wx-pro-tab {
  font-weight: 500;
  font-size: 0.88rem;
}
.region-shelf-panel.is-wetter .wx-pro--shelf .wx-pro-day-name {
  font-size: 0.78rem;
  font-weight: 500;
}
.region-shelf-panel.is-wetter .wx-pro--shelf .wx-pro-day-temps {
  font-size: 0.92rem;
  font-weight: 600;
}
.region-shelf-panel.is-wetter .wx-pro--shelf .wx-pro-day-pop {
  font-size: 0.78rem;
  font-weight: 500;
}
.region-shelf-panel.is-wetter .wx-pro--shelf .wx-pro-day-row {
  gap: 0.3rem;
}
.region-shelf-panel.is-wetter .wx-pro--shelf .wx-pro-day {
  padding: 0.5rem 0.25rem 0.55rem;
}
.region-shelf-panel.is-wetter .wx-pro--shelf .wx-pro-day.is-today {
  box-shadow: none;
  border-color: #c4a035;
}
.region-shelf-panel.is-wetter .wx-pro--shelf .wx-cam-slide figcaption strong {
  font-size: 0.92rem;
  font-weight: 600;
}
@media (max-width: 900px) {
  .wx-pro-day-row { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .wx-pro-cam-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wx-pro-parts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wx-pro-acc-sum {
    grid-template-columns: minmax(0, 1.2fr) auto auto minmax(0, 0.9fr) 1rem;
    gap: 0.4rem 0.45rem;
    padding: 0.65rem 0.7rem;
  }
  .wx-pro-acc-meta { font-size: 0.88rem; gap: 0.2rem 0.4rem; }
}
@media (max-width: 720px) {
  .wx-pro {
    padding: 0.85rem 0.75rem 1.05rem;
    overflow-x: clip;
    max-width: 100%;
    box-sizing: border-box;
  }
  .weather-national-page .wrap,
  .wx-hub-wrap {
    max-width: 100%;
    min-width: 0;
    overflow-x: clip;
  }
  .wx-national-search {
    flex-direction: column;
    align-items: stretch;
    gap: 0.55rem;
  }
  .wx-national-search .wx-gps-btn,
  .wx-national-search button[type="submit"] {
    width: 100%;
    justify-content: center;
  }
  .wx-national-search input {
    max-width: none;
    width: 100%;
    flex: 0 0 auto;
    height: 2.75rem;
    min-height: 0;
    max-height: 2.75rem;
    box-sizing: border-box;
  }
  .wx-national-search .wx-gps-status {
    width: 100%;
  }
  .wx-pro-head {
    flex-direction: column;
    align-items: stretch;
    gap: 0.45rem;
  }
  .wx-pro-loc {
    min-width: 0;
    max-width: 100%;
  }
  .wx-pro-now {
    flex-direction: column;
    align-items: stretch;
    gap: 0.85rem;
  }
  .wx-pro-now-main {
    width: 100%;
    min-width: 0;
  }
  .wx-pro-stats {
    width: 100%;
    padding: 0.65rem 0.75rem;
    background: rgba(255, 255, 255, 0.55);
    border: 1px solid #e8e4dc;
    border-radius: 10px;
    box-sizing: border-box;
  }
  .wx-pro-chart {
    overflow-x: hidden;
    max-width: 100%;
    min-width: 0;
  }
  .wx-pro-chart-svg {
    overflow: hidden;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    height: auto;
  }
  .wx-pro-days,
  .wx-pro-cams {
    min-width: 0;
    max-width: 100%;
    overflow-x: clip;
  }
  .wx-pro-day-row {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    touch-action: pan-x;
    gap: 0.35rem;
    padding-bottom: 0.2rem;
    grid-template-columns: none;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
  .wx-pro-day {
    flex: 0 0 4.65rem;
    min-width: 4.65rem;
  }
  .wx-warn-share .share-bar-actions {
    max-width: 100%;
  }
  .wx-warn-share .share-btn {
    flex: 1 1 auto;
    min-width: calc(50% - 0.35rem);
    box-sizing: border-box;
  }
  .wx-pro-acc-sum {
    grid-template-columns: minmax(0, 1fr) auto auto 1rem;
    align-items: center;
    gap: 0.4rem 0.5rem;
    padding: 0.65rem 0.7rem;
  }
  .wx-pro-acc-when {
    min-width: 0;
    overflow: hidden;
  }
  .wx-pro-acc-temps {
    white-space: nowrap;
    font-size: 0.98rem;
  }
  .wx-pro-acc-meta { display: none; }
  .wx-pro-acc-body { padding: 0 0.7rem 0.75rem; }
  .wx-pro-acc-facts {
    font-size: 0.9rem;
    gap: 0.35rem 0.85rem;
  }
  .wx-pro-parts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
    align-items: stretch;
  }
  .wx-pro-part {
    padding: 0.55rem 0.55rem 0.7rem;
    display: flex;
    flex-direction: column;
    height: 100%;
    box-sizing: border-box;
  }
  .wx-pro-part-label {
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    min-height: 2.5em;
  }
  .wx-pro-part-meta { font-size: 0.88rem; margin-top: auto; }
  .wx-pro-day-name { font-size: 0.9rem; }
  .wx-pro-day-temps { font-size: 1.02rem; }
  .wx-pro-day-pop { font-size: 0.88rem; }
  .wx-pro-cams-intro {
    overflow-wrap: anywhere;
    word-break: break-word;
    max-width: 100%;
  }
  .wx-pro-cam-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.65rem;
    max-width: 100%;
    min-width: 0;
  }
  .wx-pro-cam-thumb,
  .wx-pro-cam {
    max-width: 100%;
    min-width: 0;
  }
  .wx-warns {
    max-width: 100%;
    min-width: 0;
    overflow-x: clip;
  }
}
@media (max-width: 520px) {
  .wx-pro-day-row {
    display: flex;
  }
  .wx-pro-cam-grid { grid-template-columns: 1fr; }
  .wx-pro-acc-when em { white-space: normal; }
  .wx-pro-place { word-break: break-word; }
}
.wx-hero {
  display: grid;
  grid-template-columns: 1fr minmax(9rem, 12rem);
  gap: 1rem;
  padding: 1.25rem 1.35rem;
  border: 1px solid var(--line, #e2e8f0);
  color: #1a2433;
  background:
    linear-gradient(160deg, rgba(255,255,255,0.92), rgba(255,255,255,0.78)),
    linear-gradient(135deg, #dbeafe, #fef3c7 55%, #e2e8f0);
}
.wx-sky-sun { background: linear-gradient(145deg, #fff7d6, #e8f4ff 60%, #fff); }
.wx-sky-partly { background: linear-gradient(145deg, #eef6ff, #fff8e8 55%, #f1f5f9); }
.wx-sky-cloud { background: linear-gradient(145deg, #e8edf3, #f8fafc); }
.wx-sky-fog { background: linear-gradient(145deg, #e5e7eb, #f8fafc); }
.wx-sky-rain { background: linear-gradient(145deg, #dbe7f5, #eef2ff 50%, #f8fafc); }
.wx-sky-snow { background: linear-gradient(145deg, #e8f1fa, #f8fafc); }
.wx-sky-thunder { background: linear-gradient(145deg, #e7e0d0, #f1f5f9); }
.wx-hero.wx-sky-sun,
.wx-hero.wx-sky-partly,
.wx-hero.wx-sky-cloud,
.wx-hero.wx-sky-fog,
.wx-hero.wx-sky-rain,
.wx-hero.wx-sky-snow,
.wx-hero.wx-sky-thunder {
  background-blend-mode: soft-light, normal;
}
.wx-hero-eyebrow {
  margin: 0 0 0.65rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #64748b;
}
.wx-hero-place-row {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  flex-wrap: wrap;
}
.wx-hero-place {
  margin: 0;
  font-size: 1.45rem;
  letter-spacing: -0.02em;
}
.wx-hero-label { margin: 0.15rem 0 0; color: #475569; }
.wx-hero-temp {
  margin: 0 0 0 auto;
  font-size: 3rem;
  font-weight: 700;
  letter-spacing: -0.04em;
  line-height: 1;
}
.wx-hero-text {
  margin: 0.85rem 0 0;
  font-size: 1.05rem;
  line-height: 1.5;
  max-width: 38rem;
}
.wx-plz-form {
  margin: 0.9rem 0 0;
  padding: 0.75rem 0.85rem;
  border-radius: 10px;
  background: rgba(15, 23, 42, 0.06);
  border: 1px solid rgba(15, 23, 42, 0.08);
  max-width: 38rem;
}
.wx-plz-form.is-warn {
  background: rgba(180, 83, 9, 0.1);
  border-color: rgba(180, 83, 9, 0.35);
}
.wx-plz-hint {
  margin: 0 0 0.5rem;
  font-size: 0.82rem;
  line-height: 1.35;
  color: #334155;
}
.wx-plz-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.6rem;
}
.wx-plz-row label {
  font-size: 0.82rem;
  font-weight: 650;
  color: #0f172a;
}
.wx-plz-row input {
  width: 5.2rem;
  padding: 0.4rem 0.5rem;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: 650;
  letter-spacing: 0.04em;
}
.wx-plz-row button {
  padding: 0.42rem 0.85rem;
  border: 0;
  border-radius: 8px;
  background: #0f172a;
  color: #fff;
  font-size: 0.85rem;
  font-weight: 650;
  cursor: pointer;
}
.wx-plz-reset {
  font-size: 0.8rem;
  color: #475569;
  text-decoration: none;
}
.wx-plz-reset:hover {
  color: #1a2433;
  text-decoration: none;
}
.wx-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 1rem;
  list-style: none;
  margin: 0.9rem 0 0;
  padding: 0;
  font-size: 0.86rem;
  color: #475569;
}
.wx-moon {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  text-align: center;
  padding: 0.75rem;
  border: 1px solid rgba(26, 36, 51, 0.08);
  background: rgba(15, 23, 42, 0.88);
  color: #f8fafc;
}
.wx-moon-disc {
  width: 3.4rem;
  height: 3.4rem;
  border-radius: 50%;
  background:
    radial-gradient(circle at 30% 30%, #f8fafc, #cbd5e1 55%, #64748b);
  box-shadow: inset -10px 0 0 rgba(15, 23, 42, 0.55);
}
.wx-moon-new { box-shadow: inset 0 0 0 18px rgba(15, 23, 42, 0.92); background: #334155; }
.wx-moon-first { box-shadow: inset -18px 0 0 rgba(15, 23, 42, 0.9); }
.wx-moon-full { box-shadow: none; background: radial-gradient(circle at 35% 30%, #fff, #e2e8f0); }
.wx-moon-last { box-shadow: inset 18px 0 0 rgba(15, 23, 42, 0.9); }
.wx-moon-wax { box-shadow: inset -12px 0 0 rgba(15, 23, 42, 0.75); }
.wx-moon-wane { box-shadow: inset 12px 0 0 rgba(15, 23, 42, 0.75); }
.wx-moon-phase { margin: 0; font-weight: 700; font-size: 0.92rem; }
.wx-moon-illum { margin: 0; font-size: 0.78rem; color: #cbd5e1; }
.wx-moon-next {
  margin: 0.15rem 0 0;
  font-size: 0.78rem;
  line-height: 1.35;
  color: #e2e8f0;
  font-weight: 600;
}
.wx-webcam-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
}
.wx-webcam-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  border: 1px solid var(--line, #e2e8f0);
  background: #fff;
  overflow: hidden;
  transition: transform .15s ease, box-shadow .15s ease;
}
.wx-webcam-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(26, 36, 51, 0.1);
}
.wx-webcam-visual {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #0f172a;
}
.wx-webcam-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.wx-webcam-placeholder {
  display: block;
  width: 100%;
  height: 100%;
  background:
    radial-gradient(circle at 30% 25%, rgba(255,255,255,0.35), transparent 45%),
    linear-gradient(145deg, rgba(26,36,51,0.25), transparent),
    inherit;
}
.wx-webcam-card.wx-sky-sun .wx-webcam-placeholder { background-color: #f59e0b; }
.wx-webcam-card.wx-sky-partly .wx-webcam-placeholder { background-color: #38bdf8; }
.wx-webcam-card.wx-sky-cloud .wx-webcam-placeholder { background-color: #64748b; }
.wx-webcam-card.wx-sky-fog .wx-webcam-placeholder { background-color: #94a3b8; }
.wx-webcam-card.wx-sky-rain .wx-webcam-placeholder { background-color: #3b82f6; }
.wx-webcam-card.wx-sky-snow .wx-webcam-placeholder { background-color: #93c5fd; }
.wx-webcam-card.wx-sky-thunder .wx-webcam-placeholder { background-color: #a16207; }
.wx-webcam-live {
  position: absolute;
  left: 0.65rem;
  bottom: 0.65rem;
  padding: 0.28rem 0.55rem;
  background: rgba(15, 23, 42, 0.88);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.wx-webcam-copy {
  display: grid;
  gap: 0.15rem;
  padding: 0.7rem 0.8rem 0.85rem;
}
.wx-webcam-copy strong { font-size: 0.98rem; }
.wx-webcam-copy span { color: #64748b; font-size: 0.86rem; }
.wx-webcam-copy em {
  font-style: normal;
  font-size: 0.72rem;
  color: #94a3b8;
}
.wx-place-panel {
  border: 1px solid var(--line, #e2e8f0);
  background: #fff;
  padding: 1rem 1.05rem 1.15rem;
  margin-bottom: 0.9rem;
}
.wx-place-panel:last-child { margin-bottom: 0; }
.wx-place-panel-head {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  margin-bottom: 0.85rem;
}
.wx-place-panel-head h3 { margin: 0; font-size: 1.15rem; }
.wx-place-panel-head p { margin: 0.15rem 0 0; color: #64748b; }
.wx-day-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.65rem;
}
.wx-day-card {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.7rem 0.65rem;
  border: 1px solid #eef2f7;
  background: #fbfcfe;
  min-width: 0;
}
.wx-day-top {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: wrap;
}
.wx-day-name { font-weight: 700; font-size: 0.86rem; }
.wx-day-date { font-weight: 600; color: #64748b; margin-left: 0.2rem; }
.wx-day-range { margin-left: auto; font-size: 0.86rem; white-space: nowrap; }
.wx-day-range strong { font-size: 1rem; }
.wx-day-label { margin: 0; font-size: 0.82rem; color: #64748b; }
.wx-day-text {
  margin: 0;
  font-size: 0.84rem;
  line-height: 1.45;
  color: #334155;
  flex: 1;
}
.wx-day-facts {
  list-style: none;
  margin: 0.25rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.15rem;
  font-size: 0.74rem;
  color: #64748b;
}
.wx-stay-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}
.wx-stay-card {
  display: grid;
  gap: 0.25rem;
  text-decoration: none;
  color: inherit;
  padding: 0.95rem 1rem;
  border: 1px solid var(--line, #e2e8f0);
  background: #fff;
}
.wx-stay-card:hover { border-color: var(--portal-accent, #c4a035); }
.wx-stay-card strong { font-size: 1.02rem; }
.wx-stay-card span { color: #64748b; font-size: 0.9rem; line-height: 1.4; }
@media (max-width: 980px) {
  .wx-day-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wx-webcam-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 700px) {
  .wx-hero { grid-template-columns: 1fr; }
  .wx-hero-temp { margin-left: 0; }
  .wx-webcam-grid,
  .wx-day-list,
  .wx-stay-row { grid-template-columns: 1fr; }
}

.portal-page a.btn:not(.btn-ghost),
.portal-page button.btn:not(.btn-ghost),
.portal-page .btn:not(.btn-ghost),
.portal-page .job-apply-submit {
  border-radius: var(--btn-radius, 8px);
  background: var(--accent-2);
  border-color: var(--accent-2);
  color: #fff;
}
.portal-page a.btn:not(.btn-ghost):hover,
.portal-page a.btn:not(.btn-ghost):focus-visible,
.portal-page button.btn:hover,
.portal-page button.btn:focus-visible {
  background: #0d131c;
  border-color: #0d131c;
  color: #fff;
}
/* Firmenprofil: Website-CTA in Regionsfarbe (überschreibt dunkles Portal-Btn) */
.portal-page a.btn.company-detail-web:not(.btn-ghost),
.portal-page .company-detail-actions a.btn.company-detail-web {
  background: var(--portal-accent, var(--accent, #c4a035));
  border-color: var(--portal-accent, var(--accent, #c4a035));
  color: #fff;
}
.portal-page a.btn.company-detail-web:not(.btn-ghost):hover,
.portal-page a.btn.company-detail-web:not(.btn-ghost):focus-visible,
.portal-page .company-detail-actions a.btn.company-detail-web:hover,
.portal-page .company-detail-actions a.btn.company-detail-web:focus-visible {
  background: var(--portal-accent, var(--accent, #c4a035));
  border-color: var(--portal-accent, var(--accent, #c4a035));
  color: #fff;
  filter: brightness(0.9);
}
/* Firmenprofil-Chips: Gold-Umrandung (muss NACH .portal-page .btn stehen) */
.portal-page .firm-vcard-toolbar a.btn.firm-vcard-btn,
.portal-page .firm-vcard-toolbar a.btn.firm-vcard-btn.company-detail-web {
  background: #fff;
  border: 1.5px solid var(--accent, #c4a035);
  color: #1a1814;
  filter: none;
}
.portal-page .firm-vcard-toolbar a.btn.firm-vcard-btn:hover,
.portal-page .firm-vcard-toolbar a.btn.firm-vcard-btn:focus-visible,
.portal-page .firm-vcard-toolbar a.btn.firm-vcard-btn.company-detail-web:hover,
.portal-page .firm-vcard-toolbar a.btn.firm-vcard-btn.company-detail-web:focus-visible {
  background: #faf6eb;
  border-color: #b8922f;
  color: #1a1814;
  filter: none;
}
.portal-page a.btn.btn-ghost,
.portal-page button.btn.btn-ghost {
  background: #fff;
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: var(--btn-radius, 8px);
}
.portal-page a.btn.btn-ghost:hover,
.portal-page a.btn.btn-ghost:focus-visible,
.portal-page button.btn.btn-ghost:hover,
.portal-page button.btn.btn-ghost:focus-visible {
  background: var(--accent-2);
  border-color: var(--accent-2);
  color: #fff;
}
/* Werbeinserat: «Zur Website» = Gold-Chip (Portal-Ghost-Navy + a.btn:hover-Farbe greifen sonst) */
body.portal-page.ad-listing-page .ad-listing-detail a.ad-listing-cta-btn.btn-ghost,
.portal-page.ad-listing-page .ad-listing-detail a.ad-listing-cta-btn.btn-ghost {
  background: #fff !important;
  color: var(--region-chip-ink, var(--accent-2)) !important;
  border: 1px solid var(--region-chip-gold-border, #e0d4b8) !important;
  border-radius: var(--region-chip-radius, 8px);
  font-weight: 600;
}
body.portal-page.ad-listing-page .ad-listing-detail a.ad-listing-cta-btn.btn-ghost:hover,
body.portal-page.ad-listing-page .ad-listing-detail a.ad-listing-cta-btn.btn-ghost:focus-visible,
.portal-page.ad-listing-page .ad-listing-detail a.ad-listing-cta-btn.btn-ghost:hover,
.portal-page.ad-listing-page .ad-listing-detail a.ad-listing-cta-btn.btn-ghost:focus-visible {
  background: var(--region-chip-gold-bg, #efe6d2) !important;
  border-color: #c4a035 !important;
  color: var(--region-chip-ink, var(--accent-2)) !important;
  filter: none;
}
/* Regions-Regal: «Suchen» = Gold-Chip (Portal-Navy + eckige Buttons greifen sonst) */
body.region-home.portal-page .region-shelf button.btn.region-shelf-filter-btn:not(.btn-ghost) {
  background: var(--region-chip-gold-bg, #efe6d2) !important;
  color: var(--region-chip-ink, #1a2433) !important;
  border-color: var(--region-chip-gold-active-border, #c9b88a) !important;
  border-radius: var(--region-chip-radius, 8px) !important;
  font-weight: 600;
  min-height: 2.55rem;
  padding: 0.45rem 1.15rem;
  font-family: var(--sans);
  font-size: 0.92rem;
}
body.region-home.portal-page .region-shelf button.btn.region-shelf-filter-btn:not(.btn-ghost):hover,
body.region-home.portal-page .region-shelf button.btn.region-shelf-filter-btn:not(.btn-ghost):focus-visible {
  background: var(--region-chip-gold-active-bg, #e8dcc0) !important;
  border-color: var(--region-chip-gold-active-border, #c9b88a) !important;
  color: var(--region-chip-ink, #1a2433) !important;
}

/* Neutrale Dach-Startseite */
.portal-dach { --portal-accent: #c4a035; }
.portal-hero-visual-dach {
  background:
    linear-gradient(145deg, #0d131c 0%, #1a2433 45%, #2a3a52 75%, #c4a035 160%);
}
.portal-story-grid-home { margin-top: 0.4rem; }
.portal-story-link { text-decoration: none; color: inherit; display: block; transition: border-color .15s ease; }
.portal-story-link:hover {
  border-color: #c4a035;
  color: inherit;
}
.portal-story-link:hover h3,
.portal-story-link:hover p {
  color: inherit;
}
/* Chip bleibt lesbar (nicht schwarz-auf-schwarz durch color:inherit) */
.portal-story-link:hover .portal-cat {
  background: #111;
  color: #fff;
}
.portal-story-link:hover .portal-story-go {
  color: #8a7020;
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .portal-story-link { transition: border-color .15s ease, transform .15s ease; }
  .portal-story-link:hover { transform: translateY(-2px); }
}
.portal-story-empty {
  border: 2px dashed #c9b27a;
  background: #fffbeb;
  color: #6b5420;
  border-radius: 0;
  padding: 1rem 1.1rem;
  min-height: 8rem;
}
.portal-story-empty .portal-cat {
  background: #f3e2a8;
  color: #6b5420;
}
.portal-hero-empty {
  display: grid;
  place-items: center;
  background: repeating-linear-gradient(-45deg, #fff8e6, #fff8e6 12px, #f7ecd0 12px, #f7ecd0 24px);
  color: #7a5400;
  font-weight: 600;
  min-height: 220px;
  border-radius: 0;
}

/* Werbebanner quer = Leaderboard/Billboard wie News-Portale (970x250) */
.portal-ad-slot {
  grid-column: 1 / -1;
  margin: 0.5rem 0 0.7rem;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}
.portal-ad-leaderboard {
  display: grid;
  gap: 0;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.portal-ad-kicker {
  justify-self: start;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #64748b;
}
.portal-ad-creative {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: min(970px, 100%);
  margin: 0 auto;
  padding: 0;
  /* Quer-Slot; Motive proportional (auch Hochformat mit Seitenrändern) */
  aspect-ratio: 970 / 250;
  height: auto;
  max-height: 250px;
  background: #f1f5f9;
  border: 1px solid #d6d3cd;
  overflow: hidden;
  position: relative;
  cursor: zoom-in;
  font: inherit;
  color: inherit;
  text-align: left;
  -webkit-tap-highlight-color: transparent;
}
.portal-ad-creative img {
  pointer-events: none;
}
.portal-ad-img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  object-position: center;
  display: block;
}
@media (max-width: 700px) {
  .portal-ad-creative {
    max-height: 140px;
  }
}

/* Karten-Inserat — wie Artikel-Karte / «Mama Zirkus»: Hochformat, Motiv füllt, kein Abschneiden */
.portal-ad-card {
  position: relative;
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding: 0;
  margin: 0;
  background: var(--portal-paper);
  border: 1px solid #e4e0d8;
  cursor: zoom-in;
  font: inherit;
  color: inherit;
  text-align: left;
  text-decoration: none;
  align-self: start;
  overflow: hidden;
  transition: border-color .15s ease;
  -webkit-tap-highlight-color: transparent;
}
.portal-ad-card img {
  pointer-events: none;
}
.portal-ad-card:hover {
  border-color: #c4a035;
}
.portal-ad-card-kicker {
  position: absolute;
  top: 0.35rem;
  left: 0.4rem;
  z-index: 2;
  margin: 0;
  padding: 0;
  background: transparent !important;
  color: #64748b !important;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1;
  border-radius: 0;
  box-shadow: none;
}
.portal-ad-card:hover .portal-ad-card-kicker {
  background: transparent !important;
  color: #64748b !important;
}
.portal-ad-card-frame {
  /* Mama-Karteninserat: volle Kartenbreite, natürliche Höhe (kein 16:9) */
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: unset;
  min-height: 0;
  background: transparent;
  overflow: hidden;
  border: 0;
  line-height: 0;
}
.portal-ad-card-frame img {
  width: 100%;
  height: auto;
  max-width: 100%;
  max-height: none;
  object-fit: unset;
  object-position: center top;
  display: block;
  vertical-align: top;
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .portal-ad-card { transition: border-color .15s ease, transform .15s ease; }
  .portal-ad-card:hover { transform: translateY(-2px); }
}

.home-jobs .portal-band-head { align-items: flex-end; margin-bottom: 1.1rem; }
.home-jobs .portal-band-title { margin-bottom: 0.55rem; }
.home-jobs-brand {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.5rem;
  margin: 0 0 0.55rem;
  padding: 0;
  text-decoration: none;
  line-height: 1.1;
  max-width: min(100%, 22rem);
}
.home-jobs-brand .portal-jobs-brand-main {
  font-family: var(--sans);
  font-weight: 800;
  font-size: clamp(1.28rem, 3.2vw, 1.72rem);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--header-link-active, var(--accent, #c41e3a));
  border-bottom: 2px solid var(--header-link-active, var(--accent, #c41e3a));
  padding-bottom: 0.14rem;
  line-height: 1.05;
}
.home-jobs-brand .portal-jobs-brand-sub {
  font-family: var(--sans);
  font-weight: 500;
  font-size: clamp(0.72rem, 1.6vw, 0.88rem);
  color: var(--muted, #5b6575);
  letter-spacing: 0.02em;
}
.home-jobs-lead {
  font-family: var(--sans);
  font-size: clamp(1.35rem, 2.2vw, 1.75rem);
  font-weight: 800;
  color: var(--ink, #142033);
  margin: 0 0 0.35rem;
  letter-spacing: -0.02em;
}
.home-jobs .portal-note { margin: 0; max-width: 38rem; }
.home-jobs-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
}
.home-jobs-grid[hidden] { display: none !important; }
/* Gleiche Absicherung wie bei .jobs-list — hier stehen dieselben Feed-Texte. */
@media (min-width: 560px) {
  .home-jobs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 900px) {
  .home-jobs-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.home-jobs-nav {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.75rem;
  margin-top: 0.95rem;
}
.home-jobs-nav .btn,
.home-jobs-nav-btn {
  min-width: 2.75rem;
  min-height: 2.75rem;
  padding: 0.45rem 0.85rem;
  font-size: 1.35rem;
  line-height: 1;
}
.home-jobs-page-status {
  font-family: var(--sans);
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--muted, #5b6575);
  min-width: 3.25rem;
  text-align: center;
}
.home-jobs-carousel {
  touch-action: pan-y;
}
@media (max-width: 559px) {
  .home-jobs-nav {
    gap: 1rem;
    margin-top: 1.1rem;
  }
  .home-jobs-nav .btn,
  .home-jobs-nav-btn {
    min-width: 3.1rem;
    min-height: 3.1rem;
    font-size: 1.5rem;
  }
  .home-jobs-card {
    min-height: 11rem;
  }
}
.home-jobs-card {
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
  min-height: 12.5rem;
  padding: 0.95rem 1rem 1.05rem;
  background: #fff;
  border: 1px solid #e4e0d8;
  text-decoration: none;
  color: inherit;
  box-sizing: border-box;
}
.home-jobs-card:hover {
  text-decoration: none;
  border-color: var(--accent, #c4a035);
  box-shadow: var(--shadow);
}
.home-jobs-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}
.home-jobs-card-top .jobs-card-cat--new {
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
  margin: 0;
  padding: 0.26rem 0.62rem 0.26rem 0.5rem;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #1a2433;
  background: #efe6d2;
  border: 1px solid #e0d4b8;
  border-radius: var(--region-chip-radius, var(--btn-radius, 8px));
  line-height: 1.15;
  min-width: 0;
  min-height: 0;
}
.home-jobs-card-top .jobs-card-cat-dot {
  flex: 0 0 auto;
  width: 0.34rem;
  height: 0.34rem;
  border-radius: 50%;
  background: #c4a056;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08);
}
.home-jobs-card-logo {
  width: 4.25rem;
  height: 4.25rem;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-shrink: 0;
  overflow: hidden;
  background: #fff;
}
.home-jobs-card-logo.is-empty { visibility: hidden; }
.home-jobs-card-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #fff;
}
.home-jobs-card-title {
  font-weight: 800;
  font-size: 1.02rem;
  line-height: 1.25;
  color: var(--ink, #142033);
  overflow-wrap: anywhere;
}
.home-jobs-card:hover .home-jobs-card-title { color: var(--ink, #142033); }
/* Zeilenhöhe fest reservieren — auch ohne Firma, Ort oder Datum bleiben alle
   Karten gleich hoch und der Inhalt rutscht nicht nach oben. */
.home-jobs-card-company {
  font-size: 0.9rem;
  line-height: 1.35;
  min-height: 1.35em;
  color: var(--ink, #142033);
  overflow-wrap: anywhere;
}
.home-jobs-card-place {
  font-size: 0.86rem;
  line-height: 1.35;
  min-height: 1.35em;
  color: var(--muted, #5b6575);
  overflow-wrap: anywhere;
}
.home-jobs-card-published,
.home-jobs-card-place time.home-jobs-card-published {
  color: #94a3b8;
  font-weight: 500;
  white-space: nowrap;
}
.home-jobs-card-date {
  display: block;
  margin-top: auto;
  padding-top: 0.35rem;
  font-size: 0.8rem;
  line-height: 1.25;
  min-height: calc(1.25em + 0.35rem);
  font-weight: 500;
  color: #94a3b8;
}
.home-jobs-regions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
  margin-top: 1.15rem;
}
.home-jobs-regions-label {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted, #5b6575);
  margin-right: 0.2rem;
}
.home-jobs-region {
  font-size: 0.86rem;
  font-weight: 700;
  text-decoration: none;
  color: var(--ink, #142033);
  border: 1px solid #e4e0d8;
  background: #fff;
  padding: 0.22rem 0.62rem;
}
.home-jobs-region:hover { border-color: var(--accent, #c4a035); text-decoration: none; color: var(--ink, #142033); }
.home-jobs-region-zuerich { border-top: 3px solid #1e3a5f; }
.home-jobs-region-zuerichsee { border-top: 3px solid #2f6f9f; }
.home-jobs-region-aargau { border-top: 3px solid #b45309; }
.home-jobs-region-zentralschweiz { border-top: 3px solid #0f766e; }
.home-jobs-region-ostschweiz { border-top: 3px solid #6d28d9; }
.home-jobs-region-suedostschweiz { border-top: 3px solid #047857; }
.home-jobs-region-bern { border-top: 3px solid #9f1239; }
.home-jobs-region-basel { border-top: 3px solid #1d4ed8; }

.portal-region-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.9rem;
  margin-top: 1rem;
  list-style: none;
  padding: 0;
}
@media (max-width: 720px) {
  .portal-region-grid { grid-template-columns: 1fr; }
}
.portal-region-card {
  display: grid; gap: 0.45rem; text-decoration: none; color: inherit;
  background: #fff; border: 1px solid #e4e0d8; padding: 1.1rem 1.15rem;
  border-top: 5px solid #c4a035;
  transition: transform .15s ease, box-shadow .15s ease;
}
.portal-region-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(18, 24, 32, 0.12);
}
.portal-region-card-zuerichsee { border-top-color: #2f6f9f; }
.portal-region-card-aargau { border-top-color: #b45309; }
.portal-region-card-zentralschweiz { border-top-color: #0f766e; }
.portal-region-card-ostschweiz { border-top-color: #6d28d9; }
.portal-region-card-bern { border-top-color: #9f1239; }
.portal-region-card-basel { border-top-color: #1d4ed8; }
.portal-region-kicker {
  font-size: 0.72rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: #64748b;
}
.portal-region-card strong,
.portal-region-card .portal-region-name {
  font-family: var(--sans); font-size: 1.35rem; line-height: 1.15;
  margin: 0;
  font-weight: 700;
}
.portal-region-card p { margin: 0; color: #475569; font-size: 0.95rem; line-height: 1.4; }
.portal-region-go { font-weight: 700; color: #111; margin-top: 0.25rem; }

.portal-regionen-page .portal-band--regionen {
  padding-bottom: 2.5rem;
}
.portal-regionen-lead {
  margin: 0.35rem 0 1.35rem;
  max-width: 42rem;
  font-size: 1.02rem;
  line-height: 1.55;
  color: #475569;
}
.portal-region-grid--photos {
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1.35rem 1rem;
  margin-top: 0.25rem;
}
@media (min-width: 560px) {
  .portal-region-grid--photos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 960px) {
  .portal-region-grid--photos {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem 1.15rem;
  }
}
.portal-region-grid--photos .portal-region-photo-card {
  gap: 0.65rem;
}
.portal-region-grid--photos .home-hub-region-photo-media {
  border-radius: var(--region-chip-radius, var(--btn-radius, 8px));
}
.portal-region-grid--photos .portal-region-photo-name {
  margin: 0;
  font-family: inherit;
  font-size: clamp(1.05rem, 2vw, 1.22rem);
  font-weight: 800;
  color: #0f172a;
}
.portal-region-photo-teaser {
  display: block;
  margin: 0.15rem 0 0.1rem;
  font-size: 0.9rem;
  line-height: 1.45;
  color: #64748b;
  min-height: calc(1.45em * 2);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.portal-region-grid--photos .home-hub-region-photo-go {
  margin-top: 0.2rem;
  font-size: 0.82rem;
  color: #0f172a;
}

/* Breadcrumbs SEO — global via partials/breadcrumbs.php */
.breadcrumbs {
  padding: 1.1rem 0 0.55rem;
  font-size: clamp(0.94rem, 2.5vw, 1rem);
  line-height: 1.5;
}
@media (max-width: 720px) {
  .breadcrumbs {
    padding: 0.55rem 0 0.4rem;
  }
}
/* Brotkrumen — ein Mass auf allen Unterseiten (Region, Firmen, Impressum, …) */
body.portal-page.portal-has-breadcrumbs:not(.portal-home-marketing) .breadcrumbs {
  position: relative;
  z-index: 1;
  margin-top: 0.5rem;
  padding-top: 1.65rem;
  padding-bottom: 0.7rem;
}
@media (max-width: 720px) {
  body.portal-page.portal-has-breadcrumbs:not(.portal-home-marketing) .breadcrumbs {
    margin-top: 0.45rem;
    padding-top: 1.75rem;
    padding-bottom: 0.75rem;
  }
}
@media (min-width: 721px) {
  body.portal-page.portal-has-breadcrumbs:not(.portal-home-marketing) .breadcrumbs {
    margin-top: 0.85rem;
    padding-top: 2.35rem;
    padding-bottom: 0.85rem;
  }
}
/* Body-Pad ≥ Header (Logo-Zeile [+ Ticker]) — sonst Brotkrumen unter fixem Header */
body.portal-page.portal-has-breadcrumbs:not(.portal-home-marketing) {
  padding-top: max(var(--portal-pad-top), 7.85rem);
}
body.portal-page.portal-has-breadcrumbs:not(.portal-home-marketing):has(.news-band) {
  padding-top: max(var(--portal-pad-top), 10.35rem);
}
@media (min-width: 721px) {
  body.portal-page.portal-has-breadcrumbs:not(.portal-home-marketing) {
    padding-top: max(var(--portal-pad-top), 10rem);
  }
  body.portal-page.portal-has-breadcrumbs:not(.portal-home-marketing):has(.news-band) {
    padding-top: max(var(--portal-pad-top), 12.5rem);
  }
}
/* Rechtstexte / Content ohne Breadcrumbs-Zeile: H1 nicht unter Header kleben */
body.portal-page:has(.legal-page) .portal-band:first-of-type,
body.portal-page:has(.content-detail) main > .portal:first-child .portal-band:first-of-type {
  padding-top: 0.35rem;
}
@media (min-width: 721px) {
  body.portal-page:has(.legal-page) .portal-band:first-of-type {
    padding-top: 0.5rem;
  }
}
.breadcrumbs ol {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.breadcrumbs-item,
.breadcrumbs-sep {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
  font-size: inherit;
  line-height: 1.5;
}
.breadcrumbs-sep {
  color: #cbd5e1;
  padding: 0 0.42rem;
  user-select: none;
  pointer-events: none;
  font-weight: 400;
}
.breadcrumbs a,
.breadcrumbs .breadcrumbs-current,
.breadcrumbs [aria-current="page"] {
  font-family: var(--sans);
  font-size: inherit;
  line-height: 1.5;
  font-weight: 400;
  letter-spacing: 0;
  color: var(--portal-meta, #475569);
  padding: 0;
  margin: 0;
  text-decoration: none !important;
  text-underline-offset: 0;
  white-space: nowrap;
}
.breadcrumbs a:visited {
  color: var(--portal-meta, #475569);
  text-decoration: none !important;
}
/* Brotkrumen: schlicht, kein Hover/Focus-Farbwechsel */
.breadcrumbs a:hover,
.breadcrumbs a:focus,
.breadcrumbs a:focus-visible,
.breadcrumbs a:visited:hover {
  color: var(--portal-meta, #475569) !important;
  background: transparent !important;
  text-decoration: none !important;
  -webkit-text-fill-color: var(--portal-meta, #475569);
  opacity: 1;
}
.breadcrumbs .breadcrumbs-current,
.breadcrumbs [aria-current="page"] {
  color: var(--portal-meta, #475569);
  font-weight: 400;
  cursor: default;
}
@media (max-width: 1023px) {
  .breadcrumbs a,
  .breadcrumbs .breadcrumbs-current,
  .breadcrumbs [aria-current="page"] {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
}

/* YouTube-Einbettung (Artikel, Jobs, Immo, Termine) */
.video-embed {
  margin: 1.25rem 0 1.5rem;
  width: 100%;
}
.video-embed-inner {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #0f172a;
  border-radius: 0;
  overflow: hidden;
  box-shadow: var(--shadow);
}
.video-embed-placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 1.25rem;
  text-align: center;
  background: linear-gradient(145deg, #1a2433 0%, #0f172a 100%);
  color: #e8eef6;
}
.video-embed-notice {
  margin: 0;
  max-width: 34rem;
  line-height: 1.5;
  font-size: 0.95rem;
}
.video-embed-frame {
  position: absolute;
  inset: 0;
}
.video-embed-frame iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}
.video-embed-player {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #0f172a;
  display: block;
}

/* AVIF via <picture>: display:block — display:contents bricht Bilder in Safari/WebKit (grauer Kasten). */
.article-photo picture,
.portal-hero-photo picture,
.portal-story-photo picture,
.portal-ad-creative picture,
.portal-digital-ad picture,
.portal-ad-card-frame picture,
.article-gallery-item picture,
.portal-event-card-media picture,
.job-detail-photo picture,
.content-detail picture,
.job-logo-slot picture {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  line-height: 0;
}
.portal-ad-card-frame picture {
  height: auto;
}

/* Professioneller Footer */
.site-footer { display: none; } /* alter Einzeiler aus */
.insight-footer {
  flex-shrink: 0;
  margin-top: auto;
  margin-left: 0;
  margin-right: 0;
  width: 100%;
  max-width: none;
  overflow-x: clip;
  background: var(--footer-bg, #121820);
  color: var(--footer-text, #e8eef6);
}
.insight-footer a { color: var(--footer-link, #f3f6fa); text-decoration: none; }
.insight-footer a:hover:not(.insight-footer-word) { color: var(--footer-accent, #c4a035); }
.insight-footer-main {
  padding: 1.85rem 0 1.5rem;
  display: grid;
  gap: 0;
}
.insight-footer-band--top {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(16rem, 1fr);
  gap: 1.75rem 2.5rem;
  align-items: start;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
@media (max-width: 820px) {
  .insight-footer-band--top { grid-template-columns: 1fr; gap: 1.35rem; }
}
.insight-footer-explore {
  background: #fff;
  color: #111827;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding: clamp(1.75rem, 3vw, 2.35rem) 0;
}
.insight-footer-explore a {
  color: inherit;
}
.insight-footer-explore .site-explore-col-list a {
  color: #334155;
}
.insight-footer-explore .site-explore-col-list a:hover {
  color: #0f172a;
}
.insight-footer-explore .site-explore-col-more a {
  color: #0f172a;
}
.insight-footer-explore .site-explore-col-title {
  color: #0f172a;
}
.insight-footer-logo {
  display: inline-grid; border: 1px solid rgba(255,255,255,0.35);
  text-decoration: none; min-width: 180px; margin-bottom: 0.75rem;
}
.insight-footer-logo-name {
  font-family: var(--sans); font-weight: 800; letter-spacing: 0.06em;
  text-transform: uppercase; font-size: 1.15rem; padding: 0.55rem 0.75rem;
  background: #0d131c; color: #fff;
}
.insight-footer-logo-tag {
  font-size: 0.68rem; letter-spacing: 0.12em; text-transform: uppercase;
  font-weight: 700; padding: 0.35rem 0.75rem; background: var(--footer-accent, #c4a035); color: #fff;
}
.insight-footer-lead {
  margin: 0.4rem 0 0; color: #cbd5e1; line-height: 1.45; max-width: 34rem; font-size: 0.88rem;
}
.insight-footer-meta { margin: 0.45rem 0 0; color: var(--footer-muted, #94a3b8); font-size: 0.82rem; }
.insight-footer-nl {
  margin: 0;
  padding: 0;
  border: 0;
  max-width: 100%;
  width: 100%;
  min-width: 0;
  position: relative;
  overflow: visible;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
#insight-footer-newsletter {
  scroll-margin-top: calc(var(--portal-pad-top, 9.5rem) + 0.5rem);
}
.insight-footer-nl-title {
  margin: 0 0 0.55rem;
  font-family: var(--sans);
  font-size: 0.92rem;
  letter-spacing: 0;
  text-transform: none;
  font-weight: 400;
  line-height: 1.4;
  color: var(--footer-link, #111);
}
.insight-footer-nl-intro,
.insight-footer-nl-aside { display: none; }
.insight-footer-nl-form { display: grid; gap: 0.45rem; }
.insight-footer-nl-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.45rem;
  align-items: center;
}
.insight-footer-nl-email { display: block; min-width: 0; }
.insight-footer-nl-email input[type="email"] {
  width: 100%; box-sizing: border-box; height: 2.55rem;
  padding: 0.5rem 0.7rem; border-radius: var(--btn-radius, 8px);
  border: 1px solid rgba(255,255,255,0.22); background: rgba(255,255,255,0.06);
  color: #f8fafc; font-size: 0.9rem; font-family: inherit;
  outline: none;
  box-shadow: none;
  -webkit-appearance: none;
  appearance: none;
}
.insight-footer-nl-email input[type="email"]::placeholder { color: #94a3b8; }
.insight-footer-nl-email input[type="email"]:focus {
  outline: none;
  border-color: var(--footer-accent, #c4a035);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--footer-accent, #c4a035) 28%, transparent);
}
.insight-footer-nl-email input[type="email"]:focus-visible {
  outline: none;
  border-color: var(--footer-accent, #c4a035);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--footer-accent, #c4a035) 28%, transparent);
}
.insight-footer-nl-privacy {
  display: grid; grid-template-columns: auto 1fr; gap: 0.45rem; align-items: start;
  font-size: 0.72rem; line-height: 1.35; color: #94a3b8; cursor: pointer;
}
.insight-footer-nl-privacy input { margin-top: 0.12rem; accent-color: var(--footer-accent, #c4a035); }
.insight-footer-nl-privacy a { color: var(--footer-accent, #c4a035); text-decoration: underline; }
.insight-footer-nl-submit {
  appearance: none; border: 1px solid transparent; cursor: pointer;
  height: 2.55rem; padding: 0 1rem; border-radius: var(--btn-radius, 8px); white-space: nowrap;
  background: var(--footer-accent, #c41e3a); color: #fff;
  font-weight: 700; font-size: 0.88rem; font-family: inherit;
  box-sizing: border-box;
}
.insight-footer-nl-submit:hover { filter: brightness(1.06); }
.insight-footer-nl-more { margin: 0.15rem 0 0; font-size: 0.75rem; }
.insight-footer-nl-more a { color: #94a3b8; text-decoration: underline; }
.insight-footer-nl-more a:hover { color: var(--footer-accent, #c4a035); }
.insight-footer-nl .nl-hp {
  position: absolute;
  left: 0;
  top: 0;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
}
.insight-footer-nl .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;
}
.insight-footer-social-block { margin: 0 0 0.25rem; }
.insight-footer-social-title {
  margin: 0 0 0.55rem; font-size: 0.78rem; letter-spacing: 0.06em;
  text-transform: uppercase; font-weight: 700; color: #e2e8f0;
}
.insight-footer-social-brand { color: var(--footer-accent, #c4a035); letter-spacing: 0.04em; }
.insight-footer-social { display: flex; gap: 0.55rem; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; }
.insight-footer-social > li { display: flex; margin: 0; padding: 0; }
.insight-footer-social-link {
  display: inline-grid; place-items: center; width: 2.35rem; height: 2.35rem;
  border: 1px solid color-mix(in srgb, var(--footer-accent, #c4a035) 55%, transparent); border-radius: 0.35rem;
  color: var(--footer-accent, #c4a035); background: rgba(255, 255, 255, 0.04);
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.insight-footer-social-link svg { width: 1.15rem; height: 1.15rem; }
.insight-footer-social-link:hover,
.insight-footer-social-link:focus-visible {
  background: var(--footer-accent, #c4a035); color: var(--footer-bar, #0d131c); border-color: var(--footer-accent, #c4a035);
}
.insight-footer-social-link-linkedin:hover,
.insight-footer-social-link-linkedin:focus-visible { background: #0a66c2; border-color: #0a66c2; color: #fff; }
.insight-footer-social-link-instagram:hover,
.insight-footer-social-link-instagram:focus-visible { background: #c13584; border-color: #c13584; color: #fff; }
.insight-footer-social-link-whatsapp:hover,
.insight-footer-social-link-whatsapp:focus-visible { background: #25d366; border-color: #25d366; color: #fff; }
.insight-footer-social-link.is-pending {
  opacity: 0.45; cursor: default; pointer-events: none;
  border-color: rgba(255, 255, 255, 0.18); color: #94a3b8;
}
.insight-footer-col-title {
  font-family: var(--sans); font-size: 0.72rem; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--footer-accent, #c4a035); margin: 0 0 0.55rem; font-weight: 800;
}
.insight-footer-col ul { list-style: none; margin: 0; padding: 0; }
.insight-footer-col li { margin: 0; }
.insight-footer-col a {
  display: block; padding: 0.28rem 0;
  border-bottom: 1px solid color-mix(in srgb, var(--footer-accent, #c4a035) 22%, transparent);
  font-size: 0.9rem;
}
.insight-footer-col li:last-child a { border-bottom: 0; }
.insight-footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.1);
  background: var(--footer-bar, #0d131c);
}
.insight-footer-bottom-inner {
  display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
  padding: 0.85rem 0;
  color: var(--footer-muted, #64748b);
  font-family: var(--sans);
  font-size: 0.82rem;
  font-weight: 400;
  letter-spacing: 0;
}
.insight-footer-bottom-inner,
.insight-footer-bottom-inner span,
.insight-footer-bottom-inner nav,
.insight-footer-bottom-inner a {
  font-family: var(--sans);
  font-size: 0.82rem;
  font-weight: 400;
  letter-spacing: 0;
  color: var(--footer-muted, #64748b);
}
.insight-footer-bottom .insight-footer-osm a {
  color: var(--footer-muted, #64748b) !important;
  font-weight: 400 !important;
  text-decoration: none !important;
}
.insight-footer-bottom .insight-footer-osm a:hover {
  color: var(--footer-muted, #64748b) !important;
  text-decoration: none !important;
}
.insight-footer-swiss {
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
  margin: 0.55rem 0 0;
  font-family: var(--sans);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #da291c;
  line-height: 1;
}
.insight-footer-nl .insight-footer-swiss {
  align-self: flex-end;
  margin-left: auto;
}
.insight-footer-swiss-flag {
  width: 0.78rem;
  height: 0.78rem;
  flex: 0 0 0.78rem;
  background-color: #da291c;
  background-image: linear-gradient(#fff, #fff), linear-gradient(#fff, #fff);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 0.22rem 0.64rem, 0.64rem 0.22rem;
}
.insight-footer-plain {
  display: grid;
  gap: 0.95rem;
  min-width: 0;
}
.insight-footer-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 24rem);
  gap: 1.25rem 2.5rem;
  align-items: start;
}
@media (max-width: 820px) {
  .insight-footer-body { grid-template-columns: 1fr; gap: 1.1rem; }
}
.insight-footer-plain-block {
  display: grid;
  grid-template-columns: 8.6rem minmax(0, 1fr);
  gap: 0.2rem 1.15rem;
  align-items: baseline;
  margin: 0;
}
.insight-footer-plain-brand {
  display: block;
  grid-template-columns: none;
}
.insight-footer-plain-label {
  margin: 0;
  padding-top: 0;
  font-family: var(--sans);
  font-size: 0.92rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  line-height: 1.4;
  color: var(--footer-link, #111);
}
.insight-footer-plain-mark {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding-top: 0;
  text-transform: none;
  letter-spacing: 0;
  font-weight: inherit;
  font-size: inherit;
  color: inherit;
}
.insight-footer .brand-word.insight-footer-word {
  margin: 0;
  font-size: 1.28rem;
  font-weight: 600;
  letter-spacing: -0.03em;
  cursor: default;
  pointer-events: none;
}
.insight-footer-plain-mark .insight-footer-logo {
  margin-bottom: 0;
  cursor: default;
  pointer-events: none;
}
@media (max-width: 720px) {
  .insight-footer-plain-block {
    grid-template-columns: 1fr;
    gap: 0.28rem;
  }
}
.insight-footer-plain-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.2rem 1.2rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.insight-footer-plain-links a {
  display: inline;
  padding: 0.15rem 0;
  border: 0 !important;
  font-family: var(--sans);
  font-size: 0.92rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  line-height: 1.4;
  color: var(--footer-link, #111);
}
@media (max-width: 720px) {
  .insight-footer-plain-links {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 0;
  }
  .insight-footer-plain-links li {
    display: block;
    width: 100%;
  }
  .insight-footer-plain-links a {
    display: block;
    padding: 0.32rem 0;
  }
  .insight-footer-nl-row {
    grid-template-columns: 1fr;
  }
  .insight-footer-nl-submit {
    width: 100%;
  }
  .insight-footer-nl .insight-footer-swiss {
    align-self: flex-start;
    margin-left: 0;
  }
}
.insight-footer-legal {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.45rem;
}
.insight-footer-legal a {
  border: 0;
  font-weight: 400;
}
.insight-footer-partners a {
  color: inherit;
  font-weight: 400;
}
body.hf-luft .insight-footer,
body.hf-hell .insight-footer {
  border-top: 1px solid #e6ebf1;
}
body.hf-luft .insight-footer-band--top,
body.hf-hell .insight-footer-band--top {
  border-bottom-color: #e6ebf1;
}
body.hf-luft .insight-footer-lead,
body.hf-hell .insight-footer-lead {
  color: #475569;
  max-width: 34rem;
}
body.hf-luft .insight-footer .brand-word,
body.hf-hell .insight-footer .brand-word {
  font-size: 1.28rem;
}
body.hf-luft .insight-footer-nl-email input[type="email"],
body.hf-hell .insight-footer-nl-email input[type="email"] {
  border: 1px solid #cbd5e1;
  background: #fff;
  color: #111;
  box-shadow: none;
}
body.hf-luft .insight-footer-nl-email input[type="email"]:focus,
body.hf-hell .insight-footer-nl-email input[type="email"]:focus,
body.hf-luft .insight-footer-nl-email input[type="email"]:focus-visible,
body.hf-hell .insight-footer-nl-email input[type="email"]:focus-visible {
  border-color: #c4a035;
  box-shadow: 0 0 0 3px rgba(196, 160, 53, 0.22);
}
body.hf-luft .insight-footer-nl-email input[type="email"]::placeholder,
body.hf-hell .insight-footer-nl-email input[type="email"]::placeholder {
  color: #94a3b8;
}
body.hf-luft .insight-footer-nl-privacy,
body.hf-hell .insight-footer-nl-privacy {
  color: #64748b;
}
body.hf-luft .insight-footer a:hover:not(.insight-footer-word),
body.hf-hell .insight-footer a:hover:not(.insight-footer-word) {
  color: #b8922e !important;
}
body.hf-luft .insight-footer-nl-submit,
body.hf-hell .insight-footer-nl-submit {
  background: #111 !important;
  border: 1px solid #111 !important;
  color: #fff !important;
}
body.hf-luft .insight-footer-bottom,
body.hf-hell .insight-footer-bottom {
  border-top-color: #e6ebf1;
}
body.hf-luft .insight-footer-col-title,
body.hf-hell .insight-footer-col-title {
  color: #111 !important;
  letter-spacing: 0.06em;
}
@media (max-width: 720px) {
  .insight-footer-bottom-inner {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    text-align: left !important;
    gap: 0.32rem !important;
  }
  .insight-footer-bottom-inner > * {
    display: block !important;
    width: 100%;
    max-width: 100%;
    margin: 0 !important;
    padding-left: 0 !important;
    text-align: left !important;
    box-sizing: border-box;
  }
  .insight-footer-legal,
  .insight-footer-partners,
  .insight-footer-osm {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 0.28rem !important;
  }
  .insight-footer-bottom-inner a,
  .insight-footer-legal a,
  .insight-footer-partners a,
  .insight-footer-osm a {
    display: block !important;
    width: auto;
    max-width: 100%;
    margin: 0 !important;
    padding: 0.12rem 0 !important;
    text-align: left !important;
  }
  .insight-footer-sep {
    display: none !important;
  }

  /* Footer — anthrazit Abschluss (nur Mobile; Desktop unverändert) */
  body.portal-page,
  body.portal-jobs {
    --footer-bg: #343a42;
    --footer-bar: #2a3038;
    --footer-text: #f1f5f9;
    --footer-link: #ffffff;
    --footer-muted: #cbd5e1;
    --footer-accent: #d4b45a;
  }
  body.portal-page .insight-footer,
  body.portal-jobs .insight-footer {
    background: var(--footer-bg) !important;
    color: var(--footer-text) !important;
    border-top: 3px solid color-mix(in srgb, var(--portal-accent, #c4a035) 55%, #343a42) !important;
  }
  body.portal-page .insight-footer-bottom,
  body.portal-jobs .insight-footer-bottom {
    background: var(--footer-bar) !important;
    border-top: 1px solid rgba(255, 255, 255, 0.12) !important;
  }
  body.hf-luft.portal-page .insight-footer,
  body.hf-hell.portal-page .insight-footer,
  body.hf-luft.portal-jobs .insight-footer,
  body.hf-hell.portal-jobs .insight-footer {
    border-top-color: color-mix(in srgb, var(--portal-accent, #c4a035) 55%, #343a42) !important;
  }
  body.portal-page .insight-footer a,
  body.portal-jobs .insight-footer a {
    color: var(--footer-link) !important;
  }
  body.portal-page .insight-footer a:hover:not(.insight-footer-word),
  body.portal-jobs .insight-footer a:hover:not(.insight-footer-word),
  body.hf-luft.portal-page .insight-footer a:hover:not(.insight-footer-word),
  body.hf-hell.portal-page .insight-footer a:hover:not(.insight-footer-word) {
    color: var(--footer-accent) !important;
  }
  body.portal-page .insight-footer .brand-word.insight-footer-word,
  body.portal-jobs .insight-footer .brand-word.insight-footer-word,
  body.hf-luft.portal-page .insight-footer .brand-word,
  body.hf-hell.portal-page .insight-footer .brand-word {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
  }
  body.portal-page .insight-footer-lead,
  body.portal-jobs .insight-footer-lead,
  body.hf-luft.portal-page .insight-footer-lead,
  body.hf-hell.portal-page .insight-footer-lead {
    color: #e2e8f0 !important;
  }
  body.portal-page .insight-footer-meta,
  body.portal-jobs .insight-footer-meta {
    color: var(--footer-muted) !important;
  }
  body.portal-page .insight-footer-plain-label,
  body.portal-jobs .insight-footer-plain-label,
  body.portal-page .insight-footer-nl-title,
  body.portal-jobs .insight-footer-nl-title {
    color: #fff !important;
  }
  body.portal-page .insight-footer-plain-links a,
  body.portal-jobs .insight-footer-plain-links a {
    color: #fff !important;
  }
  body.portal-page .insight-footer-bottom-inner,
  body.portal-page .insight-footer-bottom-inner span,
  body.portal-page .insight-footer-bottom-inner a,
  body.portal-jobs .insight-footer-bottom-inner,
  body.portal-jobs .insight-footer-bottom-inner span,
  body.portal-jobs .insight-footer-bottom-inner a {
    color: var(--footer-muted) !important;
  }
  body.portal-page .insight-footer-bottom-inner a:hover,
  body.portal-jobs .insight-footer-bottom-inner a:hover,
  body.portal-page .insight-footer-bottom .insight-footer-osm a:hover,
  body.portal-jobs .insight-footer-bottom .insight-footer-osm a:hover {
    color: #fff !important;
  }
  body.portal-page .insight-footer-nl-email input[type="email"],
  body.portal-jobs .insight-footer-nl-email input[type="email"],
  body.hf-luft.portal-page .insight-footer-nl-email input[type="email"],
  body.hf-hell.portal-page .insight-footer-nl-email input[type="email"] {
    border: 1px solid rgba(255, 255, 255, 0.28) !important;
    background: rgba(0, 0, 0, 0.22) !important;
    color: #fff !important;
  }
  body.portal-page .insight-footer-nl-email input[type="email"]::placeholder,
  body.portal-jobs .insight-footer-nl-email input[type="email"]::placeholder {
    color: #94a3b8 !important;
  }
  body.portal-page .insight-footer-nl-privacy,
  body.portal-jobs .insight-footer-nl-privacy,
  body.hf-luft.portal-page .insight-footer-nl-privacy,
  body.hf-hell.portal-page .insight-footer-nl-privacy {
    color: var(--footer-muted) !important;
  }
  body.portal-page .insight-footer-nl-privacy a,
  body.portal-jobs .insight-footer-nl-privacy a {
    color: var(--footer-accent) !important;
  }
  body.portal-page .insight-footer-nl-submit,
  body.portal-jobs .insight-footer-nl-submit,
  body.hf-luft.portal-page .insight-footer-nl-submit,
  body.hf-hell.portal-page .insight-footer-nl-submit {
    background: #fff !important;
    border-color: #fff !important;
    color: #2a3038 !important;
  }
  body.portal-page .insight-footer-nl-submit:hover,
  body.portal-jobs .insight-footer-nl-submit:hover {
    filter: brightness(0.96);
  }
}

/* Interne Weiterlesen-Blöcke (Weitere Regionen / Schweizweit) */
.internal-links {
  margin-top: 1.4rem;
  padding-top: 1.1rem;
  border-top: 1px solid #e4e0d8;
}
.internal-links h2 {
  font-family: var(--sans);
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 0.6rem;
  color: #1a2433;
  letter-spacing: 0.01em;
}
.internal-links ul {
  margin: 0;
  padding-left: 1.1rem;
  color: #475569;
}
.internal-links li {
  margin: 0.28rem 0;
  line-height: 1.4;
}
.internal-links a {
  font-weight: 500;
  color: #334155;
  text-decoration: none;
}
.internal-links a:hover {
  color: var(--portal-accent, #1e3a5f);
  text-decoration: none;
}

/* Mobile: kein seitliches Wischen / Overflow */
@media (max-width: 720px) {
  .site-header-portal .site-header-inner,
  .site-header-portal .site-header-top,
  .site-header-portal .site-header-cats {
    max-width: 100%;
    min-width: 0;
  }
  .site-header-portal .site-header-regions a,
  .site-header-portal .site-header-cats a,
  .site-header-portal .site-header-rubrics a {
    font-size: 0.92rem;
  }
  .portal-hero-copy h1,
  .portal-hero-copy .portal-hero-title {
    overflow-wrap: anywhere;
    word-break: break-word;
  }
}

/* Newsletter — nutzt .wrap (gleiche Breite wie Home/Region) */
.nl-hero { margin-bottom: 1.25rem; }
.nl-lede {
  font-size: 1.05rem;
  line-height: 1.45;
  color: #1a2433;
  font-weight: 500;
  margin: 0.35rem 0 0.75rem;
}
.nl-intro {
  display: grid;
  gap: 0.55rem;
  margin: 0 0 0.85rem;
}
.nl-intro p {
  margin: 0;
  color: #475569;
  font-size: 0.98rem;
  line-height: 1.55;
}
.nl-doi-box {
  margin: 0 0 0.25rem;
  padding: 0.75rem 0.85rem;
  border-radius: 10px;
  border: 1px solid #dbe7f5;
  background: #f4f8fc;
  color: #334155;
  font-size: 0.92rem;
  line-height: 1.5;
}
.nl-card {
  background: #fff;
  border: 1px solid #e4e0d8;
  border-radius: 14px;
  padding: 1.15rem 1.1rem 1.25rem;
  box-shadow: 0 10px 28px rgba(26, 36, 51, 0.06);
}
.nl-fields {
  display: grid;
  gap: 0.85rem;
}
.nl-field {
  display: block;
  font-weight: 500;
  font-size: 0.9rem;
  color: #334155;
}
.nl-field input,
.nl-field select {
  margin-top: 0.4rem;
  width: 100%;
  box-sizing: border-box;
  font-weight: 400;
  font-size: 1rem;
}
.nl-hp {
  position: absolute;
  left: 0;
  top: 0;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
}
.nl-form .nl-topics {
  border: 0;
  margin: 1.15rem 0 0.35rem;
  padding: 0;
}
.nl-form .nl-topics legend,
.nl-form .nl-topics .nl-fieldset-title {
  font-weight: 600;
  font-size: 0.95rem;
  margin: 0 0 0.65rem;
  color: #1a2433;
  font-family: var(--sans);
}
.nl-topic-grid {
  display: grid;
  gap: 0.55rem;
}
@media (min-width: 560px) {
  .nl-topic-grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (min-width: 900px) {
  .nl-topic-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
.nl-topic {
  display: block;
  margin: 0;
  cursor: pointer;
}
.nl-topic input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.nl-topic-box {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-height: 3.2rem;
  padding: 0.65rem 0.75rem 0.65rem 2.45rem;
  border: 1px solid #d6d3cd;
  border-radius: 10px;
  background: #fafaf8;
  position: relative;
  transition: border-color .15s ease, background .15s ease;
}
.nl-topic-box::before {
  content: "";
  position: absolute;
  left: 0.7rem;
  top: 50%;
  width: 1.1rem;
  height: 1.1rem;
  margin-top: -0.55rem;
  border: 1.5px solid #94a3b8;
  border-radius: 4px;
  background: #fff;
  box-sizing: border-box;
}
.nl-topic input:checked + .nl-topic-box {
  border-color: #1a2433;
  background: #f7f8fa;
}
.nl-topic input:checked + .nl-topic-box::before {
  border-color: #1a2433;
  background: #1a2433;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.4' d='M3.5 8.2l2.8 2.8 6.2-6.2'/%3E%3C/svg%3E");
  background-size: 0.75rem 0.75rem;
  background-repeat: no-repeat;
  background-position: center;
}
.nl-regions {
  margin-top: 1rem;
}
.nl-legend-hint {
  font-weight: 400;
  font-size: 0.8rem;
  color: #64748b;
}
.nl-topic input:focus-visible + .nl-topic-box {
  outline: 2px solid #c4a035;
  outline-offset: 2px;
}
.nl-topic-title {
  font-weight: 600;
  font-size: 0.9rem;
  color: #1a2433;
  line-height: 1.3;
}
.nl-topic-title em {
  font-style: normal;
  font-weight: 600;
  font-size: 0.68rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #b45309;
  margin-left: 0.25rem;
}
.nl-topic-desc {
  font-size: 0.78rem;
  color: #64748b;
  font-weight: 400;
  line-height: 1.35;
}
.nl-topic-soon .nl-topic-box {
  border-style: dashed;
}
.nl-legal {
  font-size: 0.85rem;
  margin: 1rem 0 0.75rem;
  line-height: 1.45;
  font-weight: 400;
  color: #475569;
}
.nl-legal strong {
  font-weight: 600;
}
/* Override .form label { display:grid } — Checkbox + Text eine Zeile */
.form label.nl-privacy-check,
.nl-privacy-check {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  margin: 0 0 1rem;
  font-size: 0.88rem;
  font-weight: 400;
  color: #334155;
  line-height: 1.45;
  cursor: pointer;
}
.nl-privacy-check input[type="checkbox"] {
  margin: 0.1rem 0 0;
  width: 1.4rem;
  height: 1.4rem;
  flex-shrink: 0;
  accent-color: #1a2433;
}
.nl-privacy-check span {
  flex: 1;
  min-width: 0;
}
.nl-privacy-check a {
  text-decoration: none;
  font-weight: 500;
  color: #1a2433;
}
.nl-submit {
  width: 100%;
  min-height: 2.75rem;
  font-size: 1rem;
}
.nl-archive-link {
  margin-top: 1.15rem;
}

/* Newsletter Landing — ohne Karten-Rahmen (wie Home/Firmen-Hub) */
body.nl-landing-page {
  --bg: #f8f9fa !important;
  background: var(--bg) !important;
}
body.nl-landing-page .portal.nl-landing {
  background: transparent;
}
.nl-landing-wrap {
  padding: 1.25rem 0 2.5rem;
}
@media (min-width: 960px) {
  .nl-landing-wrap {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
    gap: 2.5rem 3rem;
    align-items: start;
    padding-top: 1.75rem;
  }
  .nl-landing-hero {
    position: sticky;
    top: calc(var(--scroll-anchor-offset, 7rem) + 0.5rem);
  }
}
body.nl-landing-page .nl-landing-hero .eyebrow {
  margin: 0 0 0.35rem;
  color: var(--portal-meta-soft, #526070);
}
body.nl-landing-page .nl-landing-hero .portal-page-h1 {
  margin-bottom: 0.75rem;
}
body.nl-landing-page .nl-lede {
  margin: 0 0 1rem;
  font-size: 1.0625rem;
  line-height: 1.55;
  font-weight: 500;
  color: var(--ink, #0f172a);
  max-width: 36rem;
}
.nl-benefits {
  margin: 0 0 1.1rem;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.55rem;
  max-width: 36rem;
}
.nl-benefits li {
  margin: 0;
  padding: 0 0 0 1.15rem;
  position: relative;
  font-size: var(--portal-size-body, 1rem);
  line-height: 1.55;
  color: var(--portal-meta, #475569);
}
.nl-benefits li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: #c4a035;
}
.nl-doi-note {
  margin: 0;
  padding: 0.65rem 0 0.65rem 0.85rem;
  border-left: 3px solid #c4a035;
  font-size: var(--portal-size-secondary, 0.9375rem);
  line-height: 1.55;
  color: var(--portal-meta, #475569);
  max-width: 36rem;
}
.nl-region-err {
  margin: 0.35rem 0 0.75rem;
}
.nl-landing-form {
  margin: 0;
  padding: 0;
  border: 0;
  box-shadow: none;
  background: transparent;
}
.nl-landing-main .nl-flash {
  margin-bottom: 1rem;
}
.nl-landing-hero--compact {
  margin-bottom: 0.5rem;
}
.nl-landing-hero--compact .portal-page-h1 {
  margin-bottom: 0.5rem;
}
.nl-prefs-email {
  margin: 0;
  font-size: 0.92rem;
}
body.nl-landing-page {
  /* Portal-Theme setzt --accent oft auf Rot — Newsletter immer Gold */
  --accent: #c4a035;
  --portal-accent: #c4a035;
  --nl-pick-gold: #c4a035;
  --nl-pick-bg: #fdf9ee;
  --nl-pick-border: color-mix(in srgb, var(--nl-pick-gold) 42%, #e2e8f0);
}
body.nl-landing-page .nl-benefits li::before {
  background: var(--nl-pick-gold);
}
body.nl-landing-page .nl-privacy-check input[type="checkbox"] {
  accent-color: var(--nl-pick-gold);
}
body.nl-landing-page .nl-privacy-check a {
  color: #1a2433;
}
body.nl-landing-page .nl-privacy-check a:hover {
  color: var(--nl-pick-gold);
}
body.nl-landing-page .nl-landing-form:has([data-nl-want-jobs]:checked) .nl-jobs-panel {
  border-color: color-mix(in srgb, var(--nl-pick-gold) 35%, #e2e8f0);
  background: color-mix(in srgb, var(--nl-pick-bg) 70%, #f8fafc);
  box-shadow: inset 3px 0 0 var(--nl-pick-gold);
}
body.nl-landing-page .nl-submit {
  background: var(--btn-bg, #0f2744);
  color: var(--btn-text, #fff);
  border-color: var(--btn-border, #0f2744);
}
@media (min-width: 900px) {
  .nl-topic-grid--topics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 42rem;
  }
}
.nl-topic-err {
  margin: 0.35rem 0 0.75rem;
}
.nl-jobs-panel {
  margin: 0.75rem 0 1.25rem;
  padding: 1rem 1.1rem 1.1rem;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  background: #f8fafc;
}
.nl-jobs-panel[hidden] {
  display: none !important;
}
.nl-jobs-panel-title {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--portal-heading, #1a2433);
}
.nl-jobs-panel-lead {
  margin: 0 0 0.85rem;
  font-size: 0.9rem;
  line-height: 1.5;
}
.nl-fieldset-subtitle {
  margin: 0 0 0.5rem;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--portal-heading, #1a2433);
}
/* Job-Abo: Checkbox links — nie padding-left weglassen (sonst überlappt ::before den Text) */
.nl-topic--compact .nl-topic-box {
  min-height: 2.4rem;
  padding: 0.5rem 0.7rem 0.5rem 2.35rem;
  justify-content: center;
}
.nl-topic--compact .nl-topic-box::before {
  left: 0.65rem;
  margin-top: 0;
  top: 0.62rem;
}
.nl-topic--compact .nl-topic-title {
  font-size: 0.86rem;
  font-weight: 600;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.nl-jobs-panel .nl-topic-grid--job-regions,
.nl-jobs-panel .nl-topic-grid--job-cats {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
}
@media (min-width: 560px) {
  .nl-jobs-panel .nl-topic-grid--job-regions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 1180px) {
  .nl-jobs-panel .nl-topic-grid--job-cats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Newsletter-Landing: Regionen, Themen, Job-Abo — keine weissen Karten */
body.nl-landing-page .nl-landing-form .nl-regions .nl-topic,
body.nl-landing-page .nl-landing-form .nl-topic-grid--topics .nl-topic,
body.nl-landing-page .nl-jobs-panel .nl-topic--compact {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.28rem 0.35rem;
  margin: 0 -0.35rem;
  border-radius: 6px;
}
body.nl-landing-page .nl-landing-form .nl-regions .nl-topic input,
body.nl-landing-page .nl-landing-form .nl-topic-grid--topics .nl-topic input,
body.nl-landing-page .nl-jobs-panel .nl-topic--compact input {
  position: static;
  opacity: 1;
  pointer-events: auto;
  width: 1.05rem;
  height: 1.05rem;
  margin: 0.2rem 0 0;
  flex-shrink: 0;
  accent-color: #c4a035;
}
body.nl-landing-page .nl-landing-form .nl-regions .nl-topic .nl-topic-box,
body.nl-landing-page .nl-landing-form .nl-topic-grid--topics .nl-topic .nl-topic-box,
body.nl-landing-page .nl-jobs-panel .nl-topic--compact .nl-topic-box {
  min-height: 0;
  padding: 0;
  border: none;
  background: transparent;
  box-shadow: none;
  flex: 1;
}
body.nl-landing-page .nl-landing-form .nl-regions .nl-topic .nl-topic-box::before,
body.nl-landing-page .nl-landing-form .nl-topic-grid--topics .nl-topic .nl-topic-box::before,
body.nl-landing-page .nl-jobs-panel .nl-topic--compact .nl-topic-box::before {
  content: none;
  display: none;
}
body.nl-landing-page .nl-landing-form .nl-regions .nl-topic input:checked + .nl-topic-box,
body.nl-landing-page .nl-landing-form .nl-topic-grid--topics .nl-topic input:checked + .nl-topic-box,
body.nl-landing-page .nl-jobs-panel .nl-topic--compact input:checked + .nl-topic-box {
  border: none;
  background: transparent;
  box-shadow: none;
}
body.nl-landing-page .nl-landing-form .nl-regions .nl-topic:has(input:checked),
body.nl-landing-page .nl-landing-form .nl-topic-grid--topics .nl-topic:has(input:checked),
body.nl-landing-page .nl-jobs-panel .nl-topic--compact:has(input:checked) {
  background: color-mix(in srgb, var(--nl-pick-bg) 65%, transparent);
  box-shadow: inset 2px 0 0 var(--nl-pick-gold);
}
body.nl-landing-page .nl-landing-form .nl-regions .nl-topic-title,
body.nl-landing-page .nl-landing-form .nl-topic-grid--topics .nl-topic-title {
  font-weight: 500;
  font-size: 0.9rem;
}
body.nl-landing-page .nl-landing-form .nl-regions .nl-topic:has(input:checked) .nl-topic-title,
body.nl-landing-page .nl-landing-form .nl-topic-grid--topics .nl-topic:has(input:checked) .nl-topic-title,
body.nl-landing-page .nl-jobs-panel .nl-topic--compact:has(input:checked) .nl-topic-title {
  font-weight: 600;
  color: #1a2433;
}
body.nl-landing-page .nl-landing-form .nl-regions .nl-topic-desc,
body.nl-landing-page .nl-landing-form .nl-topic-grid--topics .nl-topic-desc {
  font-size: 0.78rem;
  color: #64748b;
  font-weight: 400;
}
body.nl-landing-page .nl-jobs-panel .nl-topic--compact .nl-topic-title {
  font-weight: 500;
  font-size: 0.88rem;
}
body.nl-landing-page .nl-jobs-panel .nl-jobs-regions,
body.nl-landing-page .nl-jobs-panel .nl-jobs-cats {
  margin-top: 0.65rem;
}
body.nl-landing-page .nl-landing-form .nl-regions .nl-topic-grid,
body.nl-landing-page .nl-landing-form .nl-topic-grid--topics {
  gap: 0.15rem 0.75rem;
}
/* Bestätigung / Abmelden — volle Breite, kein 2-Spalten-Grid der Anmeldung */
body.nl-landing-page .nl-landing-wrap.nl-landing-wrap--msg {
  display: block;
  width: 100%;
  max-width: var(--site-content-max, 1100px);
  margin: 0 auto;
  padding: 1.5rem 0 2.25rem;
}
body.nl-landing-page .nl-msg-card {
  margin: 0;
  padding: 1.35rem 1.35rem 1.25rem;
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  background: #fff;
  box-shadow: 0 8px 28px rgba(15, 23, 42, 0.05);
}
body.nl-landing-page .nl-msg-card--ok {
  border-color: color-mix(in srgb, var(--nl-pick-gold, #c4a035) 38%, #e2e8f0);
  background: linear-gradient(
    105deg,
    color-mix(in srgb, var(--nl-pick-bg, #fdf9ee) 55%, #fff) 0%,
    #fff 42%
  );
  box-shadow:
    0 8px 28px rgba(15, 23, 42, 0.05),
    inset 4px 0 0 var(--nl-pick-gold, #c4a035);
}
body.nl-landing-page .nl-msg-card--warn {
  border-color: #fcd34d;
  box-shadow: inset 4px 0 0 #d97706;
}
body.nl-landing-page .nl-msg-card__layout {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}
@media (min-width: 768px) {
  body.nl-landing-page .nl-msg-card__layout {
    flex-direction: row;
    align-items: flex-start;
    gap: 1.25rem 1.75rem;
  }
  body.nl-landing-page .nl-msg-card__content {
    flex: 1;
    min-width: 0;
  }
  body.nl-landing-page .nl-msg-card__aside {
    flex: 0 0 14.5rem;
    padding-left: 1.5rem;
    border-left: 1px solid #e8ecf1;
  }
  body.nl-landing-page .nl-msg-steps {
    grid-template-columns: 1fr 1fr;
    gap: 0.35rem 1.25rem;
  }
}
body.nl-landing-page .nl-msg-card__icon {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #1a2433;
}
body.nl-landing-page .nl-msg-card--ok .nl-msg-card__icon {
  background: color-mix(in srgb, var(--nl-pick-gold, #c4a035) 24%, #fff);
}
body.nl-landing-page .nl-msg-card--warn .nl-msg-card__icon {
  background: #fef3c7;
  color: #92400e;
}
body.nl-landing-page .nl-msg-card__eyebrow {
  margin: 0 0 0.25rem;
}
body.nl-landing-page .nl-msg-card__title {
  margin: 0 0 0.45rem;
  font-size: clamp(1.35rem, 2.2vw, 1.65rem);
  line-height: 1.2;
}
body.nl-landing-page .nl-msg-card__body {
  margin: 0;
  font-size: 1rem;
  line-height: 1.5;
  color: var(--portal-meta, #475569);
  max-width: 40rem;
}
body.nl-landing-page .nl-msg-card__hint {
  margin: 0.55rem 0 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: #64748b;
  max-width: 40rem;
}
body.nl-landing-page .nl-msg-steps {
  margin: 0.75rem 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.35rem;
}
body.nl-landing-page .nl-msg-steps li {
  margin: 0;
  padding: 0 0 0 1rem;
  position: relative;
  font-size: 0.88rem;
  line-height: 1.4;
  color: #334155;
}
body.nl-landing-page .nl-msg-steps li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.48em;
  width: 0.38rem;
  height: 0.38rem;
  border-radius: 50%;
  background: var(--nl-pick-gold, #c4a035);
}
body.nl-landing-page .nl-msg-actions {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin: 0;
}
body.nl-landing-page .nl-msg-actions .btn {
  margin: 0;
  width: 100%;
  text-align: center;
  justify-content: center;
}
body.nl-landing-page .nl-msg-unsub {
  margin: 0.65rem 0 0;
  padding: 0;
  border: 0;
  font-size: 0.82rem;
  text-align: center;
}
@media (min-width: 768px) {
  body.nl-landing-page .nl-msg-unsub {
    text-align: left;
  }
}
body.nl-landing-page .nl-msg-unsub a {
  color: #64748b;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
body.nl-landing-page .nl-msg-unsub a:hover {
  color: var(--nl-pick-gold, #c4a035);
}

.nl-check {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0.35rem 0;
  font-weight: 500;
}
.nl-archive-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.nl-archive-list li {
  padding: 0.75rem 0;
  border-bottom: 1px solid #e4e0d8;
}
.nl-archive-body {
  overflow-x: auto;
}
.nl-archive-body img {
  max-width: 100%;
  height: auto;
}


/* Jobs hub + detail — Karten wie Unternehmens-Container (3er-Raster) */
.jobs-hub { max-width: none; }
.jobs-hub-intro {
  color: var(--portal-text-secondary, #334155);
  font-size: var(--portal-size-body, 1rem);
  line-height: 1.55;
  margin: 0 0 1.25rem;
  max-width: none;
}
.jobs-hub-intro p { margin: 0 0 0.65rem; }
.jobs-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  margin: 1rem 0 0.2rem;
  align-items: start;
}
/* minmax(0, 1fr), nicht 1fr: 1fr heisst minmax(auto, 1fr), und auto ist die
   min-content-Breite. Ein einziges langes Wort aus dem Feed (Trennlinie, lange
   URL) macht damit seine Spalte breiter und quetscht die anderen zusammen —
   die Karten stehen dann auf genau dieser Seite schief. Mit 0 als Minimum
   bleiben alle Spalten gleich breit, egal was im Text steht. */
@media (min-width: 560px) {
  .jobs-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 900px) {
  .jobs-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.jobs-infeed {
  display: block;
  grid-column: 1 / -1;
  position: relative;
  text-decoration: none;
  color: inherit;
  border: 1px solid #e4e0d8;
  background: #f8f6f1;
  overflow: hidden;
  line-height: 0;
  border-radius: 10px;
}
.jobs-infeed:hover { text-decoration: none; border-color: #c4a035; }
.jobs-infeed-kicker {
  position: absolute;
  z-index: 1;
  top: 0.45rem;
  left: 0.55rem;
  font-size: 0.68rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: rgba(15, 23, 42, 0.72);
  color: #fff;
  padding: 0.12rem 0.4rem;
  line-height: 1.2;
}
.jobs-infeed-desk,
.jobs-infeed-mob {
  display: none;
  width: 100%;
  height: auto;
  object-fit: cover;
}
.jobs-infeed-mob { display: block; }
@media (min-width: 900px) {
  .jobs-infeed-mob { display: none; }
  .jobs-infeed-desk { display: block; }
  .jobs-infeed--tail { display: none; }
}
.jobs-card {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  text-decoration: none;
  color: inherit;
  background: #fff;
  border: 1px solid #e4e0d8;
  border-radius: var(--surface-radius, 8px);
  padding: 0.9rem 1rem;
  min-height: 15.5rem;
  box-sizing: border-box;
  position: relative;
  z-index: 0;
  transition: border-color .15s ease, box-shadow .15s ease;
  scroll-margin-top: calc(var(--scroll-anchor-offset, var(--site-header-h, 9.5rem)) + 0.4rem);
}
.jobs-card:hover {
  border-color: #e0d4b8;
  box-shadow: 0 6px 20px rgba(26, 36, 51, 0.07);
  text-decoration: none;
}
.jobs-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  width: 100%;
  height: 3.1rem;
  margin: 0 0 0.15rem;
  flex-shrink: 0;
  box-sizing: border-box;
}
.jobs-card-logo-slot {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 8rem;
  height: 3.1rem;
  max-width: 60%;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  flex-shrink: 0;
  background: #fff;
  border: 0;
  border-radius: 0;
  overflow: hidden;
}
.jobs-card-logo-slot.is-empty {
  visibility: hidden;
  pointer-events: none;
}
.jobs-card-logo {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: contain;
  object-position: right center;
  background: #fff;
}
.jobs-card-logo-slot picture,
.home-jobs-card-logo picture {
  display: block;
  width: 100%;
  height: 100%;
  background: #fff;
}
.job-detail-main .job-logo-slot picture {
  display: block;
  width: auto;
  height: auto;
  max-width: 6.5rem;
  max-height: 6.5rem;
  background: transparent;
}
.jobs-card-cat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  margin: 0 0 0.2rem;
  min-width: 4.75rem;
  min-height: 1.35rem;
  padding: 0.18rem 0.5rem;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-align: center;
  color: #fff;
  background: var(--portal-accent, var(--accent, #c4a035));
  border: none;
  line-height: 1.2;
  box-sizing: border-box;
}
/* Job-Karten-Raster: Gold-Chip wie News-Band «Im Fokus» (links oben), kein Jobs-Rot. */
.jobs-list .jobs-card {
  position: relative;
}
.jobs-list .jobs-card-head {
  position: relative;
  min-height: 3.1rem;
  justify-content: flex-end;
}
.jobs-list .jobs-card-head .jobs-card-cat {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  align-self: auto;
  margin: 0;
  flex-shrink: 0;
  gap: 0.32rem;
  min-width: 0;
  min-height: 0;
  padding: 0.26rem 0.62rem 0.26rem 0.5rem;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #1a2433;
  background: #efe6d2;
  border: 1px solid #e0d4b8;
  border-radius: var(--region-chip-radius, var(--btn-radius, 8px));
  line-height: 1.15;
  box-shadow: none;
}
.jobs-list .jobs-card-cat-dot {
  flex: 0 0 auto;
  width: 0.34rem;
  height: 0.34rem;
  border-radius: 50%;
  background: #c4a056;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08);
}
.jobs-list .jobs-card-cat--new {
  background: #efe6d2;
  color: #1a2433;
}
.jobs-list .jobs-card-cat-text {
  flex: 0 0 auto;
}
/* Nur in der Kopfzeile der Job-Karte — Startseite und Job-Detail behalten ihre Lage. */
.jobs-card-head .jobs-card-cat {
  align-self: center;
  margin: 0;
  flex-shrink: 0;
}
.jobs-card-title {
  font-family: var(--sans);
  font-size: var(--portal-size-body, 1rem);
  font-weight: 600;
  line-height: 1.35;
  margin: 0;
  min-height: calc(1.35em * 2);
  color: var(--ink, #142033);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: break-word;
}
.jobs-card:hover .jobs-card-title {
  color: var(--ink, #142033);
}
.jobs-card-company {
  margin: 0.05rem 0 0;
  color: var(--portal-text-secondary, #334155);
  font-size: var(--portal-size-secondary, 0.9375rem);
  font-weight: 500;
  line-height: 1.35;
  min-height: 1.35em;
  overflow-wrap: anywhere;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
  text-overflow: ellipsis;
}
.jobs-card-excerpt {
  margin: 0.25rem 0 0;
  color: var(--portal-meta, #475569);
  font-size: var(--portal-size-meta, 0.875rem);
  font-weight: 400;
  line-height: 1.4;
  /* Lange Ketten aus dem Feed brechen um, statt aus der Karte zu ragen. */
  overflow-wrap: anywhere;
  /* Feste Reservierung für genau zwei Zeilen — hält CLS bei 0. */
  height: calc(1.4em * 2);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
}
.jobs-card-place {
  margin: 0.1rem 0 0;
  padding-top: 0.2rem;
  color: var(--portal-meta, #475569);
  font-size: var(--portal-size-meta, 0.875rem);
  font-weight: 400;
  line-height: 1.3;
  min-height: 1.3em;
  overflow-wrap: anywhere;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
}
.jobs-card-published,
.jobs-card-place time.jobs-card-published {
  color: var(--portal-meta-soft, #526070);
  font-weight: 500;
  white-space: nowrap;
}
.jobs-card-date {
  margin: 0;
  margin-top: auto;
  padding-top: 0.35rem;
  color: var(--portal-meta-soft, #526070);
  font-size: var(--portal-size-meta, 0.875rem);
  font-weight: 500;
  line-height: 1.25;
  /* Auch ohne Datum eine Zeile hoch — sonst sind Karten unterschiedlich hoch. */
  min-height: calc(1.25em + 0.35rem);
}
.jobs-card-date time {
  font-style: normal;
}
.jobs-hub-all {
  margin: 1.25rem 0 0;
  font-size: 0.95rem;
}
.jobs-hub-all a { color: var(--accent-2); }
.jobs-portal-hero .eyebrow { color: var(--portal-accent, var(--accent)); }
#stellen {
  scroll-margin-top: calc(var(--scroll-anchor-offset, var(--site-header-h, 9.5rem)) + 0.4rem);
}
.jobs-filter-status {
  margin: 0.5rem 0 0;
  color: var(--muted);
  font-size: 0.88rem;
}
.jobs-search {
  margin: 0.85rem 0 0;
  padding: 0.85rem 1rem 0.85rem;
  background: var(--bg, #f8f9fa);
  border: 1px solid #dee2e6;
  box-shadow: none;
  border-radius: 12px;
}
.jobs-search-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.65rem;
  align-items: end;
}
@media (min-width: 720px) {
  .jobs-search-row { grid-template-columns: minmax(0, 1fr) minmax(20rem, 1.35fr) 8.2rem; }
}
.jobs-search-field {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0;
  position: relative;
}
.jobs-search-field input,
.jobs-search-field select {
  font: inherit;
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink);
  min-height: 2.7rem;
  padding: 0.45rem 0.65rem;
  border: 1px solid var(--line);
  background: #fff;
  width: 100%;
  box-sizing: border-box;
  border-radius: 8px;
}
.jobs-radius {
  margin: 0.6rem 0 0;
}
.jobs-radius-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  margin: 0 0 0.45rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
}
.jobs-radius-head b {
  font-size: 0.92rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink, #1a2433);
}
.jobs-radius input[type="range"] {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 18px;
  border: 0;
  border-radius: 0;
  background: transparent;
  accent-color: #c4a035;
  outline: none;
  margin: 0.2rem 0 0.25rem;
  cursor: pointer;
}
.jobs-radius input[type="range"]::-webkit-slider-runnable-track {
  height: 4px;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(to right, #c4a035 0 var(--p, 0%), #c5c9d0 var(--p, 0%) 100%);
}
.jobs-radius input[type="range"]::-moz-range-track {
  height: 4px;
  border: 0;
  border-radius: 999px;
  background: #c5c9d0;
}
.jobs-radius input[type="range"]::-moz-range-progress {
  height: 4px;
  border: 0;
  border-radius: 999px;
  background: #c4a035;
}
.jobs-radius input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  box-sizing: border-box;
  width: 18px;
  height: 18px;
  margin-top: -7px;
  border-radius: 50%;
  background: #c4a035;
  border: 2px solid #fff;
  box-shadow: 0 0 0 1px #c4a035;
  cursor: pointer;
}
.jobs-radius input[type="range"]::-moz-range-thumb {
  box-sizing: border-box;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #c4a035;
  border: 2px solid #fff;
  box-shadow: 0 0 0 1px #c4a035;
  cursor: pointer;
}
.jobs-radius input[type="range"]:focus-visible::-webkit-slider-thumb {
  box-shadow: 0 0 0 1px #c4a035, 0 0 0 4px color-mix(in srgb, #c4a035 35%, transparent);
}
.jobs-radius-ends {
  display: flex;
  justify-content: space-between;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 600;
}
.jobs-search-actions {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  gap: 0.45rem;
  margin: 0;
  align-items: stretch;
  justify-content: center;
  min-height: 2.7rem;
  width: 100%;
}
.jobs-search .btn-ghost,
.jobs-search a.btn-ghost {
  background: transparent;
  color: var(--ink);
  border: 1px solid var(--line);
  min-height: 2.7rem;
  padding: 0.45rem 0.9rem;
  cursor: pointer;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
}
.jobs-search-submit {
  background: var(--accent-2);
  color: #fff;
  border: 1px solid var(--accent-2);
  border-radius: var(--btn-radius, 8px);
  min-height: 2.7rem;
  padding: 0.45rem 1.15rem;
  cursor: pointer;
  font-weight: 700;
  white-space: nowrap;
}
.jobs-search-gps-msg {
  margin: 0.35rem 0 0;
  color: var(--danger);
  font-size: 0.9rem;
}
.jobs-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0.3rem 0 0;
}
.jobs-facet {
  margin: 0.55rem 0 0;
}
.jobs-facet-main {
  margin: 0.55rem 0 0;
}
.jobs-facet-main {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-areas:
    "label extra"
    "chips chips";
  column-gap: 0.75rem;
  row-gap: 0.45rem;
  align-items: center;
}
.jobs-facet-main .jobs-facet-head {
  grid-area: label;
}
.jobs-facet-main .jobs-search-extra {
  grid-area: extra;
  justify-self: end;
}
.jobs-facet-main .jobs-chips--regions {
  grid-area: chips;
}
.jobs-facet-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.4rem 0.75rem;
}
.jobs-facet-head .jobs-facet-label {
  margin: 0;
}
.jobs-search-extra {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}
.jobs-facet-label {
  margin: 0;
  font-size: var(--portal-size-label, 0.8125rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
}
.jobs-chip-more {
  border: 1px solid #d7d2c8;
  background: #fff;
  color: #1a2433;
  cursor: pointer;
  font: inherit;
  font-size: var(--portal-size-meta, 0.875rem);
  font-weight: 500;
  text-decoration: none;
}
.jobs-chip-more[aria-expanded="true"] {
  background: #fff;
  border-color: #1a2433;
  color: #1a2433;
  font-weight: 700;
  text-decoration: none;
}
.jobs-filter-count {
  display: inline-flex;
  min-width: 0;
  height: auto;
  margin-left: 0.28rem;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: #5b6573;
  font-size: 0.82rem;
  font-weight: 600;
  align-items: center;
  justify-content: center;
}
.jobs-chip-more[aria-expanded="true"] .jobs-filter-count {
  background: transparent;
  color: #5b6573;
}
.jobs-chip-clear {
  color: #5b6573;
  background: #fff;
  font-weight: 500;
  text-decoration: none;
}
.jobs-chip-clear:hover {
  color: #1a2433;
  background: #fff;
  border-color: #1a2433;
  text-decoration: none;
}
.jobs-filter-panel {
  margin: 0.45rem 0 0;
  padding: 0.35rem 0 0;
  border-top: 1px solid var(--line);
}
.jobs-filter-panel-head {
  display: none;
}
.jobs-filter-panel:not([hidden]) .jobs-filter-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin: 0 0 0.55rem;
  padding: 0 0 0.5rem;
  border-bottom: 1px solid var(--line);
}
.jobs-filter-panel:not([hidden]) .jobs-filter-panel-head .jobs-facet-label {
  margin: 0;
}
.jobs-filter-panel-close {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  padding: 0.38rem 0.7rem;
  font: inherit;
  font-size: var(--portal-size-meta, 0.875rem);
  font-weight: 700;
  line-height: 1.2;
  border-radius: var(--region-chip-radius, 8px);
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.jobs-filter-panel-close span {
  font-size: 1.15rem;
  line-height: 1;
}
.jobs-filter-panel-close:hover,
.jobs-filter-panel-close:focus-visible {
  background: var(--region-chip-gold-bg, #efe6d2);
  border-color: var(--region-chip-gold-border, #e0d4b8);
  color: var(--region-chip-ink, #1a2433);
}
.jobs-filter-panel[hidden] {
  display: none;
}
.jobs-chip {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  color: #1a2433;
  border: 1px solid #d7d2c8;
  background: #fff;
  padding: 0.22rem 0.65rem;
  font-size: var(--portal-size-meta, 0.875rem);
  font-weight: 500;
  line-height: 1.3;
  border-radius: var(--region-chip-radius, var(--btn-radius, 8px));
}
.jobs-chip:hover {
  border-color: #1a2433;
  background: #fff;
  color: #1a2433;
  text-decoration: none;
}
.jobs-chip.is-on {
  background: #fff;
  border-color: #1a2433;
  color: #1a2433;
  box-shadow: none;
  font-weight: 700;
  text-decoration: none;
}
.jobs-filter-conflict {
  margin: 0.15rem 0 0;
  padding: 0.75rem 0.85rem;
  border: 1px solid #e8c96a;
  border-radius: 10px;
  background: #fff9e8;
}
.jobs-filter-conflict-text {
  margin: 0;
  color: var(--ink);
  font-size: 0.92rem;
  line-height: 1.45;
}
.jobs-filter-conflict-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.65rem;
}
.jobs-filter-conflict-btn {
  background: #fff;
  color: #1a2433;
  border: 1px solid #d7d2c8;
  font-weight: 600;
  text-decoration: none;
}
.jobs-filter-conflict-btn:hover {
  background: #fff;
  color: #1a2433;
  border-color: #1a2433;
  text-decoration: none;
}
.jobs-filter-conflict--results {
  margin: 0 0 1rem;
}
.jobs-search--conflict .js-jobs-place {
  border-color: var(--accent);
  box-shadow: 0 0 0 1px var(--accent);
}
.jobs-search--conflict .jobs-chips--regions .jobs-chip.is-on {
  outline: none;
}
@media (max-width: 720px) {
  .jobs-facet-main {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
  }
  .jobs-facet-main .jobs-facet-head {
    margin: 0;
  }
  .jobs-facet-main .jobs-search-extra {
    width: 100%;
    justify-content: stretch;
  }
  .jobs-facet-main .jobs-chip-more {
    width: 100%;
    justify-content: center;
  }
  .jobs-chips--regions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.4rem;
    margin: 0;
  }
  .jobs-chips--regions .jobs-chip {
    justify-content: center;
    text-align: center;
    width: 100%;
    box-sizing: border-box;
    padding: 0.5rem 0.35rem;
    font-size: clamp(0.74rem, 2.9vw, 0.84rem);
    line-height: 1.2;
    min-height: 2.45rem;
    hyphens: auto;
    overflow-wrap: anywhere;
  }
  .jobs-filter-conflict-actions {
    flex-direction: column;
  }
  .jobs-filter-conflict-actions .jobs-chip {
    width: 100%;
    justify-content: center;
  }
  .jobs-filter-panel:not([hidden]) .jobs-filter-panel-head {
    position: sticky;
    top: calc(var(--portal-pad-top, 0px) + 0.25rem);
    z-index: 3;
    background: #fff;
  }
  .jobs-chip-more[aria-expanded="true"] {
    display: none;
  }
}
.jobs-portal-count {
  margin: 0 0 0.75rem;
  color: var(--muted);
  font-size: 0.95rem;
}
html.i24-jobs-scroll-wait body {
  visibility: hidden;
}
.portal-jobs-page--results .jobs-portal-count {
  min-height: 1.35em;
}
.jobs-more {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.65rem;
  margin: 1.15rem 0 0.25rem;
  min-height: 2.5rem;
}
.jobs-more .js-jobs-sentinel {
  width: 100%;
  height: 2px;
}
.jobs-more-status {
  margin: 0;
  color: var(--muted);
  font-size: 0.9rem;
}
.jobs-more.is-busy .js-jobs-more {
  opacity: 0.45;
  pointer-events: none;
}
@media (max-width: 899px) {
  .jobs-more .js-jobs-more {
    display: none;
  }
}
.jobs-pager {
  display: none;
}
.jobs-pager-num,
.jobs-pager-nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.4rem;
  min-height: 2.4rem;
  padding: 0.35rem 0.75rem;
  border: 1px solid #e4e0d8;
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  text-decoration: none;
  font-family: var(--sans);
  font-size: 0.92rem;
  font-weight: 600;
}
.jobs-pager-num.is-on,
.jobs-pager-num[aria-current="page"] {
  background: var(--accent-2);
  border-color: var(--accent-2);
  color: #fff;
  pointer-events: none;
}
.jobs-pager-num:hover,
.jobs-pager-nav:hover,
.jobs-pager-num:focus-visible,
.jobs-pager-nav:focus-visible {
  border-color: #c9b88a;
  color: var(--ink);
  outline: none;
}
.jobs-pager-num.is-on:hover,
.jobs-pager-num[aria-current="page"]:hover {
  color: #fff;
}
/* Firmen: Pager + Suche Gold (News-Band-Chip), kein Navy/Rot */
.portal-firmen-page {
  accent-color: #c4a035;
}
.firm-pager .jobs-pager-num,
.firm-pager .jobs-pager-nav {
  outline: none;
}
.firm-pager .jobs-pager-num.is-on,
.firm-pager .jobs-pager-num[aria-current="page"] {
  background: #e8d08a;
  border-color: #e8d08a;
  color: #1a2433;
}
.firm-pager .jobs-pager-num.is-on:hover,
.firm-pager .jobs-pager-num[aria-current="page"]:hover,
.firm-pager .jobs-pager-num.is-on:focus,
.firm-pager .jobs-pager-num.is-on:focus-visible {
  background: #e8d08a;
  border-color: #e8d08a;
  color: #1a2433;
  outline: none;
}
.firm-pager .jobs-pager-num:hover,
.firm-pager .jobs-pager-nav:hover,
.firm-pager .jobs-pager-num:focus,
.firm-pager .jobs-pager-nav:focus,
.firm-pager .jobs-pager-num:focus-visible,
.firm-pager .jobs-pager-nav:focus-visible {
  border-color: #c4a035;
  color: var(--ink, #1a2433);
  outline: none;
}
.firm-search .ad-ki-icon {
  color: #c4a035;
}
.firm-search .ad-ki-input:focus {
  border-bottom-color: #c4a035;
  outline: none;
  box-shadow: 0 1px 0 #c4a035;
}
.firm-search .jobs-search-field input:focus,
.firm-search .jobs-search-field input:focus-visible {
  border-color: #c4a035;
  outline: none;
  box-shadow: none;
}
.firm-search .jobs-radius input[type="range"] {
  -webkit-appearance: none;
  appearance: none;
  accent-color: #c4a035;
  background: transparent;
}
.firm-search .jobs-radius input[type="range"]::-webkit-slider-runnable-track {
  height: 4px;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(to right, #c4a035 0 var(--p, 0%), #c5c9d0 var(--p, 0%) 100%);
}
.firm-search .jobs-radius input[type="range"]::-moz-range-track {
  background: #c5c9d0;
}
.firm-search .jobs-radius input[type="range"]::-moz-range-progress {
  background: #c4a035;
}
.firm-search .jobs-radius input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  background: #c4a035;
  border: 2px solid #fff;
  box-shadow: 0 0 0 1px #c4a035;
}
.firm-search .jobs-radius input[type="range"]::-moz-range-thumb {
  background: #c4a035;
  border: 2px solid #fff;
  box-shadow: 0 0 0 1px #c4a035;
}
.firm-search .jobs-radius input[type="range"]:focus-visible::-webkit-slider-thumb {
  box-shadow: 0 0 0 1px #c4a035;
}
.firm-search .jobs-search-gps-msg {
  color: var(--ink, #1a2433);
}
.jobs-pager-gap {
  color: var(--muted);
  padding: 0 0.15rem;
}
@media (min-width: 900px) {
  .jobs-more { display: none !important; }
  .jobs-pager {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    margin: 1.35rem 0 0.35rem;
  }
}
.jobs-search-place-wrap .geo-suggest {
  z-index: 50;
  left: 0;
  right: 0;
}
.jobs-search-place-wrap .geo-suggest[hidden] {
  display: none !important;
}
.jobs-q-input,
.jobs-place-input {
  position: relative;
  display: block;
}
.jobs-q-input input {
  display: block;
  width: 100%;
  height: 2.7rem;
  min-height: 2.7rem;
  padding-right: 2.6rem;
  box-sizing: border-box;
  line-height: 1.25;
}
.jobs-place-input input {
  display: block;
  width: 100%;
  height: 2.7rem;
  min-height: 2.7rem;
  padding-right: 5.1rem;
  box-sizing: border-box;
  line-height: 1.25;
}
.jobs-place-input input:not(:placeholder-shown) {
  padding-right: 5.1rem;
}
.jobs-place-input input::placeholder {
  font-size: 0.95rem;
  letter-spacing: 0;
}
.jobs-q-input input::-webkit-search-cancel-button,
.jobs-q-input input::-webkit-search-decoration {
  -webkit-appearance: none;
  appearance: none;
}
.jobs-q-input input,
.jobs-place-input input {
  -webkit-user-select: text;
  user-select: text;
}
.jobs-place-clear,
.jobs-gps-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 2.1rem;
  height: 2.1rem;
  border: 0;
  background: transparent;
  color: #6b7280;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  margin: 0;
  line-height: 1;
  border-radius: 6px;
}
.jobs-place-clear {
  right: 2.55rem;
}
.jobs-q-input .jobs-place-clear {
  right: 0.2rem;
}
.jobs-place-clear[hidden] {
  display: none;
}
.jobs-gps-btn {
  right: 0.2rem;
  color: var(--accent-2);
}
.jobs-place-clear:hover,
.jobs-place-clear:focus,
.jobs-place-clear:focus-visible,
.jobs-gps-btn:hover,
.jobs-gps-btn:focus,
.jobs-gps-btn:focus-visible {
  color: #475569;
  outline: none;
  background: #eef1f4;
}
.jobs-gps-btn:hover,
.jobs-gps-btn:focus,
.jobs-gps-btn:focus-visible {
  color: var(--accent-2, #1a2433);
}
.jobs-gps-btn.is-busy {
  opacity: 0.45;
  pointer-events: none;
}
.firm-search .jobs-gps-btn,
.firm-search .jobs-place-clear {
  color: #c4a035;
}
.firm-search .jobs-gps-btn:hover,
.firm-search .jobs-gps-btn:focus,
.firm-search .jobs-gps-btn:focus-visible,
.firm-search .jobs-place-clear:hover,
.firm-search .jobs-place-clear:focus,
.firm-search .jobs-place-clear:focus-visible {
  color: #c4a035;
  background: color-mix(in srgb, #c4a035 16%, #fff);
  outline: none;
}

/* Jobs detail — links Inserat, rechts Standort / Teilen / Bewerbung */
.job-detail { display: block; }
.job-share-side {
  margin: 0;
  padding: 0.7rem 1.05rem 0.9rem;
  border-top: 1px solid #e4e0d8;
}
.job-overview {
  margin: 0;
  padding: 0.75rem 1.05rem 0.85rem;
  border-top: 1px solid #e4e0d8;
  background: #fff;
}
.job-overview-title {
  margin: 0 0 0.55rem;
  font-family: var(--sans);
  font-size: 0.98rem;
  font-weight: 600;
  color: #1e293b;
}
.job-overview-list {
  margin: 0;
  padding: 0;
  border: 1px solid #e4e0d8;
  background: #fff;
}
.job-overview-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.1rem;
  margin: 0;
  padding: 0.62rem 0.75rem;
  border-top: 1px solid #ece9e2;
}
.job-overview-row:first-child {
  border-top: 0;
}
.job-overview-row dt {
  margin: 0;
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #64748b;
}
.job-overview-row dd {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 500;
  line-height: 1.4;
  color: #1e293b;
  overflow-wrap: anywhere;
}
.job-share-url-title {
  margin: 0 0 0.4rem;
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #64748b;
}
.job-share-url-row {
  display: flex;
  align-items: stretch;
  margin: 0 0 0.7rem;
  border: 1px solid #d7d2c8;
  background: #fff;
  overflow: hidden;
}
.job-share-url-input {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  padding: 0.55rem 0.7rem;
  border: 0;
  background: #fff;
  color: #475569;
  font: inherit;
  font-size: 0.82rem;
}
.job-share-url-copy {
  flex: 0 0 auto;
  margin: 0;
  padding: 0 0.85rem;
  border: 0;
  border-left: 1px solid #d7d2c8;
  background: var(--job-copy-bg, #142033);
  color: var(--job-copy-text, #fff);
  font: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
}
.job-share-url-copy:hover,
.job-share-url-copy:focus-visible {
  filter: brightness(0.92);
}
.job-share-side [data-share-copy] {
  display: none;
}
.job-share-side .share-bar {
  margin: 0;
  padding: 0;
  border: 0;
}
.job-share-side .share-bar-label {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
}
.job-share-side .share-bar-actions {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.job-share-side .share-btn {
  width: auto;
  min-height: 2.2rem;
  font-size: 0.78rem;
  font-weight: 500;
  padding: 0.28rem 0.62rem;
  flex: 0 1 auto;
}
.job-detail-layout {
  display: grid;
  gap: 1.5rem;
  align-items: start;
  min-width: 0;
  /* overflow:hidden bricht position:sticky auf der Sidebar */
  overflow: visible;
}
.job-detail-side {
  min-width: 0;
  width: 100%;
}
@media (min-width: 960px) {
  /* overflow-x:clip auf .portal / .content-detail bricht position:sticky — nur Job-Detail. */
  .portal:has(.job-detail-layout),
  .listing-detail-job.content-detail {
    overflow: visible;
    overflow-x: visible;
  }
  .job-detail-layout {
    grid-template-columns: minmax(0, 1.35fr) minmax(18rem, 0.85fr);
    gap: 2rem;
  }
  /* Sidebar: top = sichtbare Header-Unterkante (job-detail-sticky.js), nicht scroll-anchor. */
  .job-detail-side {
    position: -webkit-sticky;
    position: sticky;
    top: var(--job-detail-sticky-top, calc(var(--site-header-h, 8.5rem) + 0.5rem));
    align-self: start;
    z-index: 1;
  }
}
.job-detail > .job-back--top {
  margin: 0 0 1rem;
}
.job-detail-main {
  min-width: 0;
  max-width: 100%;
  overflow-x: hidden;
  background: transparent;
}
.job-logo-slot {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 6.5rem;
  height: 6.5rem;
  max-width: 512px;
  aspect-ratio: 1 / 1;
  margin: 0 0 1rem;
  padding: 0;
  box-sizing: border-box;
  background: transparent;
  border: 0;
  border-radius: 0;
  overflow: visible;
}
.job-logo {
  display: block;
  width: auto;
  height: auto;
  max-width: 6.5rem;
  max-height: 6.5rem;
  object-fit: contain;
  object-position: left center;
  margin: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
}
.job-detail-main .jobs-card-cat {
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
  margin: 0 0 0.55rem;
  padding: 0.26rem 0.62rem 0.26rem 0.5rem;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #1a2433;
  background: #efe6d2;
  border: 1px solid #e0d4b8;
  border-radius: 999px;
}
.job-detail-main .jobs-card-cat--new {
  background: #efe6d2;
  color: #1a2433;
}
.job-detail-main .jobs-card-cat-dot {
  flex: 0 0 auto;
  width: 0.34rem;
  height: 0.34rem;
  border-radius: 50%;
  background: #c4a056;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08);
}
.job-detail-main .portal-cat {
  display: inline-block;
  margin: 0 0 0.45rem;
}
.job-expired-banner {
  margin: 0 0 1.25rem;
  padding: 1rem 1.15rem;
  border-radius: 0.65rem;
  border: 1px solid #e8dcc4;
  background: #faf6ee;
}
.job-expired-banner-title {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
  font-weight: 600;
  color: #5c4a2a;
}
.job-expired-banner-lead {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.45;
  color: #4b5563;
}
.job-expired-banner-actions {
  margin: 0.85rem 0 0;
}
.job-expired-related {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border, #e5e7eb);
}
.job-expired-related-title {
  margin: 0 0 1rem;
  font-size: 1.15rem;
  font-weight: 600;
}
.job-detail-title {
  margin: 0 0 0.45rem;
  font-size: clamp(1.55rem, 2.5vw, 2.15rem);
  line-height: 1.2;
  max-width: none;
  font-weight: var(--heading-weight);
  overflow-wrap: anywhere;
  word-break: normal;
  hyphens: auto;
}
.job-detail-meta {
  margin: 0 0 1.15rem;
  color: #64748b;
  font-size: 0.98rem;
  line-height: 1.4;
}
.job-detail-photo {
  margin: 0 0 1.15rem;
  overflow: hidden;
  background: #e8e4dc;
  max-width: none;
  display: block;
  border-radius: 0;
  aspect-ratio: 16 / 9;
  width: 100%;
}
.job-detail-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
.job-detail-photo.is-original {
  aspect-ratio: auto;
  background: #fff;
}
.job-detail-photo.is-original img {
  height: auto;
  object-fit: contain;
  max-height: min(70vh, 640px);
}
.job-original {
  margin: 0 0 1.25rem;
}
.job-original-extra {
  margin-top: 1.35rem;
}
.job-original-figure {
  margin: 0;
  background: #f4f1ea;
  border: 1px solid var(--line, #d7d2c8);
  border-radius: 0;
  overflow: hidden;
  display: flex;
  justify-content: center;
}
.job-original-figure img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  object-fit: contain;
}
.job-original-pdf {
  margin: 0.25rem 0 0;
}
.job-original-pdf-frame {
  display: block;
  width: 100%;
  height: min(70vh, 640px);
  border: 1px solid var(--line, #d7d2c8);
  border-radius: 0;
  background: #fff;
}
@media (max-width: 700px) {
  .job-original-pdf-frame {
    height: min(58vh, 420px);
  }
}
.job-original-pdf-link {
  margin: 0.65rem 0 0;
}
.job-detail-teaser {
  margin: 0 0 1rem;
  font-size: 1.08rem;
  line-height: 1.5;
  color: #1e293b;
  max-width: 100%;
  font-weight: 600;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.job-detail-body {
  max-width: 100%;
  min-width: 0;
  color: #1e293b;
  line-height: 1.6;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.job-detail-body p,
.job-detail-body li,
.job-detail-body strong,
.job-detail-body h2,
.job-detail-body h3 {
  overflow-wrap: anywhere;
  word-break: break-word;
  max-width: 100%;
}
.job-detail-body p { margin: 0 0 0.95rem; }
.job-detail-body strong { color: #0f172a; }
.job-detail-body ul,
.job-detail-body ol {
  margin: 0.35rem 0 1rem 1.15rem;
  padding: 0;
}
.job-detail-body li { margin: 0.3rem 0; }
.job-employer {
  margin: 1.5rem 0 0;
  padding: 1rem 0 0;
  border-top: 1px solid #e4e0d8;
  max-width: none;
}
.job-employer h2 {
  margin: 0 0 0.45rem;
  font-family: var(--sans);
  font-size: 0.82rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #64748b;
}
.job-employer p { margin: 0 0 0.35rem; color: #475569; line-height: 1.45; }
.job-employer-name { font-weight: 700; color: #0f172a !important; }
.job-employer a { color: #0b3a6e; }
.job-back { margin: 1.25rem 0 0; }
.job-back--top { margin: 0 0 1rem; }
.job-back--bottom { margin: 1.25rem 0 0; }
.job-side-card {
  background: #fff;
  border: 1px solid #e4e0d8;
  overflow: hidden;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.job-place-card {
  margin: 0;
}
.job-place-head {
  padding: 1rem 1.05rem 0.9rem;
}
.job-place-company {
  margin: 0;
  font-size: 1.02rem;
  font-weight: 600;
  line-height: 1.3;
  color: #1e293b;
}
.job-place-loc {
  margin: 0.28rem 0 0;
  color: #475569;
  font-size: 0.9rem;
  line-height: 1.4;
}
.job-place-facts {
  list-style: none;
  margin: 0.7rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.job-place-facts li {
  margin: 0;
  padding: 0.18rem 0.5rem;
  background: #f4f1ea;
  color: #475569;
  font-size: 0.78rem;
  font-weight: 500;
  line-height: 1.3;
}
.job-place-map-deco {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0;
  padding: 0 1.05rem 0.95rem;
  border: 0;
  pointer-events: none;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  -webkit-user-drag: none;
}
.job-place-map-frame {
  position: relative;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 16 / 10;
  border: 1px solid #e4e0d8;
  background: #dfe3e8;
  pointer-events: none;
  touch-action: none;
  cursor: default;
}
/*
 * 3×3-Mosaik als Quadrat, gross genug für 16:10-Frame.
 * transform % bezieht sich auf das Mosaik selbst → (lx,ly) sitzt exakt unter dem Pin,
 * Frame bleibt immer voll (kein Beige-Rand).
 */
.job-place-map-mosaic {
  --map-scale: 2.05;
  position: absolute;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  width: calc(var(--map-scale) * 100%);
  aspect-ratio: 1 / 1;
  left: 50%;
  top: 50%;
  transform: translate(
    calc(-1 * var(--lx, 0.5) * 100%),
    calc(-1 * var(--ly, 0.5) * 100%)
  );
  pointer-events: none;
}
.job-place-map-tile {
  aspect-ratio: 1 / 1;
  background-color: #dfe3e8;
  background-size: 100% 100%;
  background-repeat: no-repeat;
  pointer-events: none;
  -webkit-user-drag: none;
}
.job-place-map-pin {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 2;
  width: 1.7rem;
  height: 1.7rem;
  margin: -2.05rem 0 0 -0.85rem;
  background: var(--job-map-pin, #c41e3a);
  border: 2.5px solid #fff;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.2),
    0 4px 12px rgba(15, 23, 42, 0.35);
  pointer-events: none;
}
/* Weisser Kern — wie klassischer Karten-Pin */
.job-place-map-pin::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0.42rem;
  height: 0.42rem;
  margin: -0.21rem 0 0 -0.21rem;
  background: #fff;
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.08);
}
/* Boden-Schatten unter der Spitze */
.job-place-map-pin::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 100%;
  width: 0.85rem;
  height: 0.35rem;
  margin: 0.15rem 0 0 -0.42rem;
  background: rgba(15, 23, 42, 0.28);
  border-radius: 50%;
  transform: rotate(45deg);
  filter: blur(1px);
}
.job-apply-panel {
  background: #fff;
  border: 1px solid #e4e0d8;
  padding: 1.1rem 1.05rem 1.25rem;
}
.job-side-card .job-apply-panel {
  background: transparent;
  border: 0;
  border-top: 1px solid #e4e0d8;
}
.job-side-card .job-apply-panel:first-child {
  border-top: 0;
}
.job-apply-panel--external {
  padding: 0.95rem 1.05rem 1.1rem;
}
.job-apply-title {
  font-family: var(--sans);
  font-size: 0.98rem;
  font-weight: 600;
  margin: 0 0 0.45rem;
  color: #1e293b;
}
.job-apply-intro {
  margin: 0 0 0.9rem;
  color: #64748b;
  font-size: 0.92rem;
  line-height: 1.4;
}
.job-apply-form label { display: block; margin-bottom: 0.7rem; font-size: 0.92rem; }
.job-apply-form input[type="text"],
.job-apply-form input[type="email"],
.job-apply-form input[type="tel"],
.job-apply-form input[type="file"],
.job-apply-form textarea {
  width: 100%;
  margin-top: 0.22rem;
  box-sizing: border-box;
}
.job-files {
  margin: 0.2rem 0 0.85rem;
  padding: 0.7rem 0.75rem;
  border: 1px solid #e4e0d8;
}
.job-files legend { font-weight: 700; padding: 0 0.2rem; font-size: 0.9rem; }
.job-files-hint { margin: 0 0 0.55rem; font-size: 0.82rem; }
.job-apply-submit {
  width: 100%;
  justify-content: center;
  margin-top: 0.25rem;
  border-radius: var(--btn-radius, 8px) !important;
  background: var(--job-apply-bg, var(--btn-bg, #1a2433)) !important;
  color: var(--job-apply-text, var(--btn-text, #fff)) !important;
  border-color: var(--job-apply-bg, var(--btn-border, #1a2433)) !important;
}
.job-apply-submit:hover,
.job-apply-submit:focus-visible {
  filter: brightness(0.92);
}
.job-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.job-apply-flash { margin: 0 0 0.75rem; }

/* Mobile: Job-/Artikel-Singles — kompakte Logos, Titel, Seitenkarten */
@media (max-width: 720px) {
  .job-logo-slot {
    width: 4.75rem;
    height: 4.75rem;
    margin: 0 0 0.75rem;
  }
  .job-detail-title {
    font-size: clamp(1.35rem, 5.5vw, 1.75rem);
  }
  .job-detail-layout {
    gap: 1.15rem;
  }
  .job-side-card {
    border-radius: 0;
  }
  .job-place-head {
    padding: 0.9rem 0.9rem 0.8rem;
  }
  .job-share-side {
    padding-left: 0.9rem;
    padding-right: 0.9rem;
  }
  .job-apply-panel,
  .job-apply-panel--external {
    padding-left: 0.9rem;
    padding-right: 0.9rem;
  }
  .content-detail-back {
    margin: 0.35rem 0 0.75rem;
  }
  .article-detail-title,
  .content-detail-title {
    font-size: clamp(1.3rem, 5.8vw, 1.7rem);
    margin: 0.35rem 0 0.45rem;
  }
  .portal-band {
    padding: 0.85rem 0 1.35rem;
  }
  .jobs-search-row {
    grid-template-columns: 1fr;
  }
  .jobs-card {
    padding: 0.85rem;
  }
}

.rubric-intro p { margin: 0 0 0.55rem; }
.portal-rubric-page .rubric-intro {
  max-width: 42rem;
  margin: 0.35rem 0 1.15rem;
  font-size: 1.05rem;
  line-height: 1.55;
  color: #334155;
}
.portal-rubric-spotlight { margin: 0; }
.portal-rubric-block + .portal-rubric-block {
  margin-top: 1.5rem;
}
.portal-rubric-page .portal-digital-row-label { display: none; }
.portal-rubric-page .portal-rubric-ads-title {
  margin: 0 0 0.75rem;
  background: var(--portal-ads-bar, var(--accent, #c4a035));
}
.portal-rubric-page .portal-digital-ad {
  border: 0;
  box-shadow: none;
}

/* Cookie consent — Footer-Anthracit, Portal-Modal (cookie-modal-card) */
.cookie-consent {
  --cookie-overlay: rgba(26, 29, 34, 0.58);
  --cookie-panel-bg: #25282e;
  --cookie-panel-border: rgba(255, 255, 255, 0.12);
  --cookie-panel-accent: #c4a035;
  --cookie-text: #f8fafc;
  --cookie-muted: #cbd5e1;
  --cookie-body: #e2e8f0;
  --cookie-accent: #e4c878;
  --cookie-btn-primary-bg: #ffffff;
  --cookie-btn-primary-text: #1a1d22;
  --cookie-btn-primary-border: #ffffff;
  --cookie-row-bg: rgba(0, 0, 0, 0.22);
  --cookie-modal-w: 31rem;
  position: fixed;
  inset: 0;
  z-index: 220;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: max(0.75rem, env(safe-area-inset-top)) max(0.75rem, env(safe-area-inset-right))
    max(0.75rem, env(safe-area-inset-bottom)) max(0.75rem, env(safe-area-inset-left));
  background: var(--cookie-overlay, rgba(26, 29, 34, 0.58));
  pointer-events: auto;
}
.cookie-consent[hidden] {
  display: none !important;
}
body.cookie-consent-open {
  overscroll-behavior: none;
  /* Kein overflow:hidden am body — Scrollbar = CLS */
}
.cookie-consent-panel {
  box-sizing: border-box;
  width: min(var(--cookie-modal-w, 31rem), calc(100vw - 1.5rem));
  max-width: min(var(--cookie-modal-w, 31rem), calc(100vw - 1.5rem));
  height: auto;
  max-height: min(90vh, calc(100vh - 2rem));
  display: flex;
  flex-direction: column;
  padding: 1.25rem 1.4rem 1.25rem;
  background: var(--cookie-panel-bg, #25282e);
  color: var(--cookie-text, #f8fafc);
  border: 1px solid var(--cookie-panel-border, rgba(255, 255, 255, 0.12));
  border-top: 3px solid var(--cookie-panel-accent, #c4a035);
  border-radius: 12px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.42);
  contain: layout style;
  overflow-x: hidden;
  overflow-y: auto;
}
.cookie-consent-panel.is-settings {
  max-height: min(92vh, calc(100vh - 1.5rem));
}
.cookie-consent-view {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  min-height: 0;
  flex: 1 1 auto;
}
.cookie-consent-bottom {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.15rem;
  padding-top: 0.65rem;
  border-top: 1px solid var(--cookie-panel-border, rgba(255, 255, 255, 0.12));
}
.cookie-consent-bottom .cookie-consent-foot-nav {
  margin: 0;
  padding-top: 0.15rem;
}
.cookie-consent-view[hidden] {
  display: none !important;
}
.cookie-consent-brand {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  flex: 0 0 auto;
  margin: 0 0 0.85rem;
  padding: 0;
  text-align: center;
}
.cookie-consent-logo {
  display: block;
  height: 3.45rem;
  width: auto;
  max-width: min(100%, 15rem);
  object-fit: contain;
  object-position: center top;
  /* Wortmarke in Datei schwarz — auf Anthracit wie Portal-Header weiss */
  filter: brightness(0) invert(1);
}
.cookie-consent-main {
  min-width: 0;
}
.cookie-consent-settings-head {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  align-items: stretch;
}
.cookie-consent-settings-lead {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.4;
  color: var(--cookie-muted, #cbd5e1);
}
.cookie-consent-kicker {
  display: inline-block;
  width: fit-content;
  margin: 0 0 0.35rem;
  padding: 0.2rem 0.55rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--cookie-muted, #cbd5e1);
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 999px;
}
.cookie-consent-title {
  margin: 0;
  font-family: var(--sans);
  font-size: clamp(1.05rem, 2.4vw, 1.22rem);
  font-weight: 700;
  line-height: 1.25;
  color: var(--cookie-text, #f8fafc);
  text-align: center;
}
.cookie-consent-body {
  min-height: 0;
}
.cookie-consent-body p {
  margin: 0 0 0.55rem;
  font-size: 0.875rem;
  line-height: 1.48;
  color: var(--cookie-body, #e2e8f0);
}
.cookie-consent-lead-mobile {
  display: none;
}
.cookie-consent-body p:last-child {
  margin-bottom: 0;
}
.cookie-consent-legal {
  font-size: 0.8rem !important;
  color: var(--cookie-muted, #cbd5e1) !important;
  margin: 0 !important;
}
.cookie-consent-legal a {
  color: var(--cookie-accent, #e4c878);
  font-weight: 600;
}
.cookie-consent-legal a:hover {
  color: var(--cookie-text, #fff);
}
.cookie-consent-actions-main {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.55rem;
  width: 100%;
}
@media (max-width: 420px) {
  .cookie-consent-actions-main {
    grid-template-columns: 1fr;
  }
}
.cookie-consent-actions {
  display: grid;
  gap: 0.45rem;
}
.cookie-consent-actions-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.45rem;
  width: 100%;
  max-width: 100%;
  justify-content: stretch;
}
.cookie-consent-essential-link {
  width: 100%;
  margin: 0;
}
.cookie-consent-preview,
.cookie-consent-cats {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  min-height: 0;
}
.cookie-consent-panel.is-settings .cookie-consent-cats {
  overflow: auto;
  flex: 1 1 auto;
  max-height: min(52vh, 22rem);
}
.cookie-consent-row,
.cookie-consent-cat {
  border: 1px solid var(--cookie-panel-border, rgba(255, 255, 255, 0.12));
  border-radius: 8px;
  background: var(--cookie-row-bg, rgba(0, 0, 0, 0.22));
}
.cookie-consent-row-summary,
.cookie-consent-cat-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  padding: 0.55rem 0.65rem;
  cursor: pointer;
  list-style: none;
}
.cookie-consent-row-controls {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  flex-shrink: 0;
}
.cookie-consent-toggle-inline {
  width: auto;
  margin: 0;
  flex: 0 0 auto;
}
.cookie-consent .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;
}
.cookie-consent-row-summary::-webkit-details-marker,
.cookie-consent-cat-summary::-webkit-details-marker {
  display: none;
}
.cookie-consent-row-label {
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--cookie-text, #f8fafc);
  text-align: left;
}
.cookie-consent-chevron {
  flex: 0 0 0.65rem;
  width: 0.65rem;
  height: 0.65rem;
  border-right: 2px solid var(--cookie-muted, #cbd5e1);
  border-bottom: 2px solid var(--cookie-muted, #cbd5e1);
  transform: rotate(45deg);
  margin-top: -0.2rem;
  transition: transform 0.15s ease;
}
details[open] > .cookie-consent-row-summary .cookie-consent-chevron,
details[open] > .cookie-consent-cat-summary .cookie-consent-chevron {
  transform: rotate(-135deg);
  margin-top: 0.15rem;
}
.cookie-consent-row.is-locked .cookie-consent-chevron {
  display: none;
}
.cookie-consent-row-body,
.cookie-consent-cat-desc {
  margin: 0;
  padding: 0 0.65rem 0.6rem;
  font-size: 0.78rem !important;
  line-height: 1.4;
  color: var(--cookie-muted, #cbd5e1) !important;
}
.cookie-consent-cat {
  padding: 0.55rem 0.65rem 0.6rem;
}
.cookie-consent-cat-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  margin: 0;
}
.cookie-consent-cat-head strong {
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--cookie-text, #f8fafc);
}
.cookie-consent-cat .cookie-consent-cat-desc {
  padding: 0.35rem 0 0;
}
.cookie-consent-cat-inner {
  padding: 0 0.65rem 0.65rem;
}
.cookie-consent-cat-inner .cookie-consent-cat-desc {
  padding: 0 0 0.5rem;
}
.cookie-consent-foot-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.35rem 0.5rem;
  margin: 0.15rem 0 0;
  font-size: 0.74rem;
}
.cookie-consent-foot-nav a {
  color: var(--cookie-muted, #cbd5e1);
  text-decoration: none;
  font-weight: 500;
}
.cookie-consent-foot-nav a:hover {
  color: var(--cookie-accent, #e4c878);
}
.cookie-consent-foot-sep {
  color: rgba(255, 255, 255, 0.28);
  user-select: none;
}
.cookie-consent-btn {
  width: 100%;
  justify-content: center;
  text-align: center;
  font-size: 0.88rem;
  border-radius: 8px;
  padding: 0.55rem 0.75rem;
}
.cookie-consent-actions-row .cookie-consent-btn {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.cookie-consent-btn-primary {
  background: var(--cookie-btn-primary-bg, #fff);
  border-color: var(--cookie-btn-primary-border, #fff);
  color: var(--cookie-btn-primary-text, #1a1d22);
  font-weight: 700;
}
.cookie-consent-btn-primary:hover,
.cookie-consent-btn-primary:focus-visible {
  background: #f1f5f9;
  border-color: #f1f5f9;
  color: var(--cookie-btn-primary-text, #1a1d22);
}
.cookie-consent-panel .btn-ghost {
  border-color: rgba(255, 255, 255, 0.38);
  color: var(--cookie-text, #fff);
  background: transparent;
}
.cookie-consent-panel .btn-ghost:hover,
.cookie-consent-panel .btn-ghost:focus-visible {
  border-color: var(--cookie-panel-accent, #c4a035);
  color: var(--cookie-text, #fff);
  background: rgba(255, 255, 255, 0.06);
}
.cookie-consent-btn-link {
  font-size: 0.82rem !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--cookie-accent, #e4c878) !important;
  text-decoration: underline;
  text-underline-offset: 0.12em;
  padding-top: 0.1rem !important;
  padding-bottom: 0.1rem !important;
}
.cookie-consent-btn-link:hover,
.cookie-consent-btn-link:focus-visible {
  color: var(--cookie-text, #fff) !important;
  background: transparent !important;
}
.cookie-consent-cat.is-locked {
  opacity: 0.92;
}
.cookie-consent-locked {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--cookie-accent, #e4c878);
  white-space: nowrap;
}
.cookie-consent-toggle {
  cursor: pointer;
  margin: 0;
  width: 100%;
}
.cookie-consent-toggle-block {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding-top: 0.35rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.cookie-consent-toggle-label {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--cookie-text, #f8fafc);
}
.cookie-consent-toggle input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  pointer-events: none;
}
.cookie-consent-switch {
  position: relative;
  flex: 0 0 2.45rem;
  width: 2.45rem;
  height: 1.35rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.18);
  transition: background 0.18s ease;
}
.cookie-consent-switch::after {
  content: '';
  position: absolute;
  top: 0.14rem;
  left: 0.14rem;
  width: 1.05rem;
  height: 1.05rem;
  border-radius: 50%;
  background: #fff;
  transition: transform 0.18s ease;
}
.cookie-consent-toggle input:checked + .cookie-consent-switch,
.cookie-consent-toggle input:checked ~ .cookie-consent-switch {
  background: var(--cookie-panel-accent, #c4a035);
}
.cookie-consent-toggle input:checked + .cookie-consent-switch::after,
.cookie-consent-toggle input:checked ~ .cookie-consent-switch::after {
  transform: translateX(1.05rem);
}
.cookie-consent-toggle input:focus-visible + .cookie-consent-switch,
.cookie-consent-toggle input:focus-visible ~ .cookie-consent-switch {
  outline: 2px solid var(--cookie-accent, #e4c878);
  outline-offset: 2px;
}
@media (max-width: 720px) {
  .cookie-consent {
    padding: max(0.5rem, env(safe-area-inset-top)) 0.5rem max(0.5rem, env(safe-area-inset-bottom));
    align-items: center;
    justify-content: center;
  }
  .cookie-consent-panel {
    box-sizing: border-box;
    width: calc(100vw - 0.85rem);
    max-width: calc(100vw - 0.85rem);
    max-height: calc(100dvh - 0.75rem);
    height: auto;
    padding: 0.85rem 0.95rem 0.8rem;
    border-radius: 10px;
    overflow-y: visible;
  }
  .cookie-consent-brand {
    margin-bottom: 0.55rem;
  }
  .cookie-consent-logo {
    height: 2.75rem;
    max-width: 10.5rem;
  }
  .cookie-consent-view {
    gap: 0.45rem;
    flex: 0 0 auto;
  }
  .cookie-consent-title {
    font-size: 0.98rem;
    line-height: 1.22;
  }
  .cookie-consent-lead-full {
    display: none !important;
  }
  .cookie-consent-lead-mobile {
    display: block !important;
    margin: 0;
  }
  .cookie-consent-body p.cookie-consent-lead-mobile,
  .cookie-consent-settings-lead.cookie-consent-lead-mobile {
    font-size: 0.76rem;
    line-height: 1.34;
    margin-bottom: 0.25rem;
  }
  .cookie-consent-settings-lead.cookie-consent-lead-full {
    display: none !important;
  }
  .cookie-consent-preview {
    gap: 0.26rem;
    flex: 0 0 auto;
    max-height: none;
    overflow: visible;
  }
  .cookie-consent-preview .cookie-consent-row-body {
    display: none;
  }
  .cookie-consent-preview details[open] .cookie-consent-row-body {
    display: block;
  }
  .cookie-consent-preview .cookie-consent-row-summary {
    padding: 0.38rem 0.48rem;
  }
  .cookie-consent-panel.is-settings .cookie-consent-cats {
    flex: 0 0 auto;
    max-height: none;
    overflow: visible;
    gap: 0.32rem;
  }
  .cookie-consent-panel.is-settings .cookie-consent-cat-desc,
  .cookie-consent-panel.is-settings .cookie-consent-cat details .cookie-consent-cat-desc {
    display: none;
  }
  .cookie-consent-panel.is-settings details.cookie-consent-cat.is-locked {
    padding: 0;
    border: 0;
    background: transparent;
  }
  .cookie-consent-panel.is-settings details.cookie-consent-cat.is-locked .cookie-consent-cat-summary {
    padding: 0.42rem 0.48rem;
    border: 1px solid var(--cookie-panel-border, rgba(255, 255, 255, 0.12));
    border-radius: 8px;
    background: var(--cookie-row-bg, rgba(0, 0, 0, 0.22));
  }
  .cookie-consent-panel.is-settings .cookie-consent-cat {
    padding: 0.4rem 0.48rem;
  }
  .cookie-consent-panel.is-settings .cookie-consent-cat .cookie-consent-cat-desc {
    display: none;
  }
  .cookie-consent-bottom {
    gap: 0.4rem;
    margin-top: 0.35rem;
    padding-top: 0.55rem;
  }
  .cookie-consent-actions-main {
    grid-template-columns: 1fr;
    gap: 0.38rem;
  }
  .cookie-consent-row-summary,
  .cookie-consent-cat-summary {
    padding: 0.42rem 0.48rem;
  }
  .cookie-consent-row-label,
  .cookie-consent-cat-head strong {
    font-size: 0.78rem;
  }
  .cookie-consent-row-body,
  .cookie-consent-cat-desc {
    font-size: 0.72rem !important;
    padding: 0 0.48rem 0.45rem;
  }
  .cookie-consent-cat {
    padding: 0.45rem 0.48rem 0.5rem;
  }
  .cookie-consent-foot-nav {
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.25rem 0.55rem;
    font-size: 0.68rem;
    line-height: 1.5;
    padding-top: 0.2rem;
  }
  .cookie-consent-essential-link {
    margin: 0;
    padding-top: 0.05rem !important;
    padding-bottom: 0.05rem !important;
  }
  .cookie-consent-btn {
    font-size: 0.8rem;
    padding: 0.45rem 0.5rem;
    border-radius: 7px;
  }
  .cookie-consent-actions-main {
    gap: 0.38rem;
  }
  .cookie-consent-essential-link {
    font-size: 0.76rem !important;
  }
}
/* —— Social Hub 1:1 Publino panel (insight24 brand) —— */
.i24-social-section { padding: 0 0 3.5rem; }
.i24-social-panel {
  display: grid;
  grid-template-columns: 0.9fr 1.55fr;
  gap: 1.5rem;
  align-items: center;
  padding: 1.75rem 1.875rem;
  border-radius: 28px;
  overflow: hidden;
  background:
    radial-gradient(circle at 92% 12%, rgba(196, 160, 53, 0.22), transparent 34%),
    linear-gradient(135deg, #071428 0%, #142033 52%, #1a334d 100%);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 18px 56px rgba(20, 32, 51, 0.14);
}
.i24-social-copy .lab {
  display: inline-flex;
  margin: 0 0 10px;
  font-weight: 700;
  color: #e8c96a;
  font-size: 0.95rem;
}
.i24-social-copy h1,
.i24-social-copy h3 {
  margin: 0 0 10px;
  color: #fff;
  font-size: clamp(22px, 2.6vw, 28px);
  font-weight: 500;
  line-height: 1.2;
}
.i24-social-copy p {
  margin: 0;
  color: rgba(255, 255, 255, 0.78);
  font-size: 1rem;
  line-height: 1.55;
  max-width: 34em;
}
.i24-social-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
.i24-social-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 168px;
  height: 100%;
  padding: 18px 16px;
  border-radius: 20px;
  text-decoration: none;
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.14);
}
.i24-social-card:hover,
.i24-social-card:focus {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.14);
  color: #fff;
}
.i24-social-card .ico {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}
.i24-social-card .ico svg { width: 22px; height: 22px; fill: currentColor; display: block; }
.i24-social-card strong {
  display: block;
  font-size: 17px;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: #fff !important;
}
.i24-social-card span.desc {
  display: block;
  flex: 1;
  font-size: 14px;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.72);
}
.i24-social-card span.go { font-size: 14px; font-weight: 700; color: #fff; }
.i24-social-card--ig .ico { background: linear-gradient(135deg, #f58529, #dd2a7b 50%, #8134af); }
.i24-social-card--tt .ico { background: #111827; }
.i24-social-card--li .ico { background: #0a66c2; }
.i24-social-card--snap .ico { background: #fffc00; color: #111; }
.i24-social-card--fb .ico { background: #1877f2; }
.i24-social-card--wa .ico { background: #25d366; color: #111; }
.i24-social-card--x .ico { background: #111; }
.i24-social-card--yt .ico { background: #ff0000; }
.i24-social-card--soon { cursor: default; pointer-events: none; opacity: 0.92; }
.i24-social-soon {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  margin-top: auto;
  padding: 5px 10px;
  border-radius: 999px;
  background: var(--accent, #c4a035);
  color: #142033;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
}
@media (max-width: 1100px) {
  .i24-social-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
  .i24-social-panel { grid-template-columns: 1fr; padding: 24px 20px; }
  .i24-social-grid { grid-template-columns: 1fr; }
}

.social-post-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin-top: 0.85rem;
}
@media (min-width: 720px) {
  .social-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.social-post {
  padding: 1rem 1.05rem;
  background: #fffdf8;
  border: 1px solid var(--line);
  border-radius: var(--radius);
}
.social-post-photo {
  margin: 0.45rem 0 0.65rem;
  border-radius: 10px;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: #eeeae2;
}
.social-post-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.social-post-title {
  margin: 0.25rem 0 0.45rem;
  font-family: var(--font);
  font-size: 1.15rem;
  line-height: 1.3;
}
.social-post-body {
  margin: 0;
  color: #475569;
  font-size: 0.95rem;
  line-height: 1.45;
}
.social-post-link {
  display: inline-block;
  margin-top: 0.65rem;
  font-weight: 600;
  color: var(--accent-2);
  text-decoration: none;
}
.social-post-link:hover { color: #8a7020; text-decoration: none; }

/* News-Band: feste Höhe (CLS), CSS-Laufband (kein overflow-x:auto → kein iOS-Sprung).
   Sitzt im Header (letzter Streifen), damit er beim Aufbau nicht unter die Nav rutscht.
   Farben/Schrift via Inline --nb-* (Admin). Fließtext (~0.92rem), nicht Überschrift. */
.site-header-portal .news-band {
  width: 100%;
  border-bottom: 0;
  flex: 0 0 auto;
  position: relative;
  z-index: 1;
  /* Harte Kante zur Nav — kein weicher Schatten unter der Goldlinie */
  box-shadow: none !important;
  filter: none;
}
.news-band {
  --news-band-h: 2.85rem;
  --nb-bg: #1a2433;
  --nb-accent: #e85d04;
  --nb-label: #ffffff;
  --nb-link: #ffffff;
  --nb-link-hover: #f5d77a;
  --nb-sep: #8a96a8;
  --nb-dot: #ff453a;
  --nb-fs: 0.92rem;
  box-sizing: border-box;
  height: var(--news-band-h);
  min-height: var(--news-band-h);
  max-height: var(--news-band-h);
  margin: 0;
  padding: 0;
  background: var(--nb-bg);
  color: var(--nb-link);
  border-bottom: 0;
  border-top: 0;
  box-shadow: none;
  font-family: var(--sans);
  font-size: var(--nb-fs);
  line-height: 1.2;
  overflow: hidden;
  overscroll-behavior: none;
  touch-action: pan-y;
}
.news-band-inner {
  display: flex;
  align-items: stretch;
  gap: 0;
  height: var(--news-band-h);
  min-height: var(--news-band-h);
  max-height: var(--news-band-h);
  box-sizing: border-box;
}
.news-band-label {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
  align-self: center;
  margin-right: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  font-size: 0.7em;
  color: var(--nb-label);
  background: var(--nb-accent);
  white-space: nowrap;
  padding: 0.28em 0.72em 0.28em 0.55em;
  border-radius: 999px;
  line-height: 1.15;
  box-shadow: none;
}
.news-band-dot {
  flex: 0 0 auto;
  width: 0.36rem;
  height: 0.36rem;
  border-radius: 50%;
  background: var(--nb-dot);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.12);
  animation: news-band-dot-blink 1.15s ease-in-out infinite;
}
.news-band-label-text {
  flex: 0 0 auto;
}
.news-band-viewport {
  flex: 1 1 auto;
  min-width: 0;
  height: 100%;
  overflow: hidden;
  display: flex;
  align-items: center;
}
.news-band-track {
  display: flex;
  align-items: center;
  width: max-content;
  height: 100%;
  animation: news-band-scroll var(--nb-dur, 40s) linear infinite;
  will-change: transform;
}
.news-band-list {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  height: 100%;
  margin: 0;
  padding: 0 0.35rem 0 0;
  list-style: none;
  overflow: visible;
}
.news-band-list li {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
}
.news-band-list li + li::before,
.news-band-list + .news-band-list li:first-child::before {
  content: "+++";
  display: inline-block;
  padding: 0 0.75rem;
  color: var(--nb-sep);
  font-weight: 500;
  font-size: 0.78em;
  letter-spacing: 0.04em;
  flex: 0 0 auto;
  opacity: 0.92;
}
.news-band-list a,
.news-band-list a:hover,
.news-band-list a:focus-visible,
.news-band-list a:active,
.news-band-list a:visited {
  color: var(--nb-link);
  font-size: 1em;
  font-weight: 500;
  text-decoration: none !important;
  white-space: nowrap;
}
.news-band-list a:hover,
.news-band-list a:focus-visible {
  color: var(--nb-link-hover);
}
@media (max-width: 640px) {
  .news-band {
    --news-band-h: 2.55rem;
  }
  .news-band-label {
    font-size: 0.65em;
    padding: 0.24em 0.62em 0.24em 0.48em;
    margin-right: 0.5rem;
    letter-spacing: 0.015em;
  }
  .news-band-list[aria-hidden="true"] {
    display: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .news-band-dot {
    animation: none;
  }
  .news-band-track {
    animation: none;
    will-change: auto;
  }
  .news-band-list[aria-hidden="true"] {
    display: none;
  }
  .news-band-list {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
  }
  .news-band-list a {
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: min(70vw, 18rem);
  }
}
@keyframes news-band-dot-blink {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.28; transform: scale(0.88); }
}
@keyframes news-band-scroll {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(-50%, 0, 0); }
}

/* Wettbewerb / Gewinnspiel */
.competition-page .competition-list {
  list-style: none;
  margin: 1.25rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.85rem;
}
.competition-list-card {
  display: grid;
  gap: 0.35rem;
  padding: 1rem 1.1rem;
  background: #fffdf8;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  text-decoration: none;
  color: inherit;
}
.competition-list-card:hover { border-color: var(--accent); }
.competition-list-card strong { font-size: 1.05rem; }
.competition-list-card span { color: #475569; font-size: 0.92rem; }

.competition-shell { max-width: none; }
.competition-h1 { max-width: 22ch; }
.competition-layout {
  display: grid;
  gap: 1.5rem;
  margin-top: 1rem;
  align-items: start;
}
@media (min-width: 900px) {
  .competition-layout {
    grid-template-columns: minmax(0, 1.35fr) minmax(18rem, 0.85fr);
    gap: 2rem;
  }
}
.competition-meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  margin: 0.5rem 0 1rem;
  font-size: 0.95rem;
}
.competition-prose { margin: 0 0 1.1rem; font-size: 0.95rem; line-height: 1.55; color: #334155; }
.competition-legal { margin: 1rem 0 0; font-size: 0.88rem; line-height: 1.45; }
.competition-terms { margin: 0.85rem 0 0; font-size: 0.95rem; line-height: 1.45; }
.competition-terms p { margin: 0.35rem 0 0; }
.competition-terms p:first-child { margin-top: 0; }
.competition-online-only,
.competition-disclaimer { margin: 0; }
.competition-hero-img {
  margin: 0 0 1.1rem;
  border-radius: 0;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: #eeeae2;
  box-shadow: 0 12px 32px rgba(20, 32, 51, 0.12);
}
.competition-hero-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.competition-form-card {
  background: #fffdf8;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.15rem 1.2rem 1.35rem;
  box-shadow: 0 10px 28px rgba(20, 32, 51, 0.06);
  position: sticky;
  top: 6.5rem;
}
.competition-form-card h2 { margin: 0 0 0.85rem; font-size: 1.2rem; max-width: none; }
.competition-form { max-width: none; position: relative; }
.competition-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}
@media (max-width: 560px) {
  .competition-form-row { grid-template-columns: 1fr; }
}
.competition-prize-block {
  display: grid;
  gap: 0.85rem;
  margin: 0 0 1.25rem;
}
/* Querformat: Bild volle Breite, Text darunter */
.competition-prize-block--landscape .competition-prize-img {
  width: 100%;
  aspect-ratio: 16 / 9;
  max-height: 22rem;
  border-radius: 12px;
  display: block;
  object-fit: cover;
  background: #1a2433;
}
/* Hochformat: schmale Spalte neben Text */
@media (min-width: 720px) {
  .competition-prize-block--portrait:has(.competition-prize-img) {
    grid-template-columns: minmax(9rem, 14rem) 1fr;
    align-items: start;
  }
}
.competition-prize-block--portrait .competition-prize-img {
  width: 100%;
  border-radius: 12px;
  display: block;
  object-fit: cover;
  aspect-ratio: 3 / 4;
  background: #1a2433;
}
.competition-prize-img {
  width: 100%;
  border-radius: 12px;
  display: block;
  object-fit: cover;
  background: #1a2433;
}
.competition-privacy-box {
  margin: 0.85rem 0 1rem;
  padding: 0.85rem 0.95rem;
  border: 1px solid #d7d2c8;
  border-radius: 10px;
  background: #f7f4ee;
}
.competition-privacy { align-items: flex-start; gap: 0.55rem; margin: 0; }
.competition-privacy span { font-size: 0.9rem; line-height: 1.45; }
.competition-privacy input[type="checkbox"] {
  margin-top: 0.1rem;
  flex: 0 0 auto;
  width: 1.4rem;
  height: 1.4rem;
  accent-color: #1a2433;
}
.competition-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.competition-popup {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 1rem;
}
.competition-popup[hidden] { display: none !important; }
@media (min-width: 720px) {
  .competition-popup { align-items: center; padding: 1.5rem; }
}
.competition-popup-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(12, 18, 28, 0.55);
  opacity: 0;
  transition: opacity 0.35s ease;
}
.competition-popup.is-visible .competition-popup-backdrop { opacity: 1; }
.competition-popup-panel {
  position: relative;
  z-index: 1;
  width: min(100%, 26rem);
  max-height: min(90vh, 38rem);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background: #fffdf8;
  color: var(--ink);
  border-radius: 18px 18px 14px 14px;
  box-shadow: 0 28px 70px rgba(10, 16, 28, 0.38);
  border-top: 3px solid var(--accent);
  transform: translateY(1.25rem) scale(0.96);
  opacity: 0;
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.35s ease;
}
.competition-popup.is-visible .competition-popup-panel {
  transform: translateY(0) scale(1);
  opacity: 1;
}
@media (min-width: 820px) {
  .competition-popup-panel,
  .competition-popup-panel--has-media,
  .competition-popup--has-media .competition-popup-panel {
    width: min(100%, 52rem);
    min-height: 22rem;
    max-height: min(86vh, 34rem);
    border-radius: 16px;
  }
  /* Hochformat: Bild links */
  .competition-popup--media-portrait .competition-popup-panel,
  .competition-popup-panel--media-portrait {
    flex-direction: row;
  }
  .competition-popup--media-portrait .competition-popup-media,
  .competition-popup-panel--media-portrait .competition-popup-media {
    flex: 0 0 42%;
    min-height: 100%;
    display: block;
  }
  .competition-popup--media-portrait .competition-popup-body,
  .competition-popup-panel--media-portrait .competition-popup-body {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  /* Querformat: Bild oben */
  .competition-popup--media-landscape .competition-popup-panel,
  .competition-popup-panel--media-landscape {
    flex-direction: column;
    width: min(100%, 40rem);
    min-height: 0;
  }
  .competition-popup--media-landscape .competition-popup-media,
  .competition-popup-panel--media-landscape .competition-popup-media {
    flex: 0 0 auto;
    width: 100%;
    min-height: 12rem;
    max-height: 14rem;
    display: block;
  }
  .competition-popup--media-landscape .competition-popup-body,
  .competition-popup-panel--media-landscape .competition-popup-body {
    flex: 1 1 auto;
  }
}
.competition-popup-media {
  position: relative;
  display: none;
  overflow: hidden;
  background: #1a2433;
  min-height: 10rem;
}
@media (max-width: 819px) {
  .competition-popup--has-media .competition-popup-media,
  .competition-popup-panel--has-media .competition-popup-media {
    display: block;
    max-height: 11rem;
  }
  .competition-popup--media-landscape .competition-popup-media,
  .competition-popup-panel--media-landscape .competition-popup-media {
    max-height: 10rem;
    aspect-ratio: 16 / 9;
  }
}
.competition-popup-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.04);
  transition: transform 1.1s ease;
}
/* Weisses Brand-Logo (Startseite): contain statt Crop */
.competition-popup-media img[src*="insight24-logo"] {
  object-fit: contain;
  padding: 1.75rem 1.5rem;
  transform: none;
  background: #1a2433;
}
.competition-popup.is-visible .competition-popup-media img { transform: scale(1); }
.competition-popup.is-visible .competition-popup-media img[src*="insight24-logo"],
.competition-popup-media.is-logo-fallback img { transform: none; object-fit: contain; padding: 1.75rem 1.5rem; }
.competition-popup-media-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 40%, rgba(10, 16, 28, 0.35) 100%);
  pointer-events: none;
}
.competition-popup-media.is-logo-fallback .competition-popup-media-shade { display: none; }
.competition-popup-prize-block {
  margin: 0 0 1rem;
}
.competition-popup-prize-block--landscape .competition-popup-prize-img {
  width: 100%;
  max-height: 8.5rem;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 10px;
  display: block;
  margin: 0 0 0.65rem;
  background: #e8e4dc;
}
.competition-popup-prize-block--portrait .competition-popup-prize-img {
  width: min(100%, 9rem);
  max-height: 11rem;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border-radius: 10px;
  display: block;
  margin: 0 0 0.65rem;
  background: #e8e4dc;
}
.competition-popup-prize-img {
  width: 100%;
  max-height: 9rem;
  object-fit: cover;
  border-radius: 10px;
  display: block;
  margin: 0 0 0.65rem;
  background: #e8e4dc;
}
.competition-popup-body {
  padding: 1.25rem 1.35rem 1.4rem;
  overflow: auto;
}
.competition-popup-close {
  position: absolute;
  top: 0.55rem;
  right: 0.65rem;
  z-index: 2;
  border: 0;
  background: rgba(255, 253, 248, 0.9);
  border-radius: 999px;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
  color: var(--muted);
  padding: 0.25rem 0.55rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}
.competition-popup-eyebrow {
  margin: 0 0 0.4rem;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 800;
  color: var(--accent);
}
.competition-popup-panel h2,
.competition-popup-body h2 {
  margin: 0 0 0.55rem;
  font-family: var(--sans);
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
  line-height: 1.2;
  max-width: none;
  color: var(--accent-2);
}
.competition-popup-text {
  margin: 0 0 0.7rem;
  font-size: 0.98rem;
  line-height: 1.5;
  color: #334155;
}
.competition-popup-meta {
  margin: 0 0 0.55rem;
  font-size: 0.88rem;
  color: var(--muted);
}
.competition-popup-prize {
  margin: 0 0 1.1rem;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.35;
  color: var(--accent-2);
}
.competition-popup-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  align-items: center;
}
.competition-popup-cta {
  box-shadow: 0 8px 20px rgba(26, 36, 51, 0.22);
}
body.competition-popup-open { overflow: hidden; }

/* Admin Preview */
.competition-admin-grid {
  display: grid;
  gap: 1rem;
  align-items: start;
}
@media (min-width: 1100px) {
  .competition-admin-grid {
    grid-template-columns: minmax(0, 1fr) minmax(20rem, 26rem);
  }
}
.competition-admin-preview-stage {
  background: linear-gradient(145deg, #1a2433 0%, #2a3548 100%);
  border-radius: 12px;
  padding: 1rem;
  min-height: 18rem;
}
.competition-popup-panel--preview {
  width: 100% !important;
  max-height: none !important;
  transform: none !important;
  opacity: 1 !important;
  margin: 0 auto;
}
.competition-popup-panel--preview.competition-popup-panel--has-media {
  flex-direction: column;
}
.competition-popup-panel--preview .competition-popup-media {
  display: block;
  max-height: 9rem;
}
@media (prefers-reduced-motion: reduce) {
  .competition-popup-backdrop,
  .competition-popup-panel,
  .competition-popup-media img {
    transition: none !important;
  }
}

/* Admin edit-lock / concurrent editing */
.edit-guard { margin: 0.75rem 0 1rem; max-width: 52rem; }
.edit-guard-banner {
  padding: 0.75rem 0.95rem;
  border-radius: 10px;
  border: 1px solid #e0b84a;
  background: #fff8e6;
  color: #5c4500;
  margin-bottom: 0.5rem;
  line-height: 1.45;
}
.edit-guard-banner.edit-guard-stale {
  border-color: #c45c5c;
  background: #fdeeee;
  color: #6b1f1f;
}
.edit-guard-banner.is-hidden { display: none; }

/* Admin PLZ/Ort Autocomplete — volle Formularbreite, kein 40rem-Kasten */
.geo-fields{position:relative;max-width:none;width:100%}
.advertiser-picker{position:relative;max-width:none;width:100%}
.admin-app .form {
  width: 100%;
  max-width: none;
  grid-template-columns: minmax(0, 1fr);
}
.admin-app .admin-form-main .placement-box,
.admin-app .admin-form-main .entity-social-admin,
.admin-app .admin-form-main .admin-schema-preview,
.admin-app .admin-form-main .portal-region-rubric-box {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}
.geo-suggest{list-style:none;margin:0.25rem 0 0;padding:0;border:1px solid var(--line,#d0d7de);border-radius:8px;background:#fff;max-height:14rem;overflow:auto;box-shadow:0 8px 24px rgba(15,23,42,.12);z-index:40;position:absolute;left:0;right:0}
.geo-suggest li{margin:0;padding:0}
.geo-suggest button{display:block;width:100%;text-align:left;border:0;background:transparent;padding:0.55rem 0.75rem;cursor:pointer;font:inherit}
.geo-suggest button:hover,.geo-suggest button:focus{background:#f1f5f9;outline:none}
/* Adresse: Strasse-Vorschläge (OSM) + Kanton */
.geo-fields .geo-street-label{position:relative;display:block}
.geo-fields .geo-street-label .geo-suggest{top:100%}
.geo-coords-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0.75rem}
.geo-coords-row > label{margin:0}
.geo-fields .js-geo-canton{background:#f8fafc;color:#475569}
@media (max-width:640px){.geo-coords-row{grid-template-columns:minmax(0,1fr)}}

#ai-assist-panel textarea{width:100%;box-sizing:border-box}

.listing-admin-form input[type="text"],
.listing-admin-form input[type="url"],
.listing-admin-form input[type="email"],
.listing-admin-form input[type="tel"],
.listing-admin-form input[type="datetime-local"],
.listing-admin-form select {
  min-height: 2.85rem;
  font-size: 1.05rem;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.listing-admin-form textarea {
  min-height: 8rem;
  font-size: 1.05rem;
  line-height: 1.5;
  width: 100%;
  box-sizing: border-box;
}
.listing-title-field input {
  min-height: 3.3rem;
  font-size: 1.28rem;
  font-weight: 650;
}
.listing-contact-box {
  gap: 0.85rem;
}
.listing-contact-box textarea[name="contact_address"] {
  min-height: 11.5rem;
}
.listing-contact-box input {
  min-height: 3rem;
}
.entity-social-admin .entity-social-admin-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.85rem 1.15rem;
}
@media (min-width: 720px) {
  .entity-social-admin .entity-social-admin-grid {
    grid-template-columns: 1fr 1fr;
  }
}
.entity-social-admin .entity-social-admin-label {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-bottom: 0.3rem;
  font-weight: 600;
  font-size: 0.88rem;
}
.entity-social-admin-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.65rem;
  height: 1.65rem;
  padding: 0 0.3rem;
  border-radius: 0.3rem;
  background: #0f2744;
  color: #fff;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.entity-social-admin .entity-social-admin-grid input {
  min-height: 2.45rem;
  font-size: 0.95rem;
  width: 100%;
}

/* Mediadaten /mediadaten */
.mediadaten-page { padding-bottom: 3rem; }
.mediadaten-wrap { max-width: 68rem; }
.mediadaten-hero { margin-bottom: 1.75rem; }
.mediadaten-intro { max-width: 40rem; font-size: 1.05rem; line-height: 1.55; margin: 0.65rem 0 0.35rem; }
.mediadaten-vat { margin: 0.35rem 0 0; font-size: 0.9rem; }
.mediadaten-hero-actions { margin: 0; }
.mediadaten-channels {
  display: grid;
  gap: 0.85rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 1.35rem 0 0;
}
.mediadaten-channel {
  padding: 1.05rem 1.1rem 1.15rem;
  border-radius: 12px;
  background: linear-gradient(165deg, #1a2433 0%, #243044 100%);
  color: #fff;
  border: 1px solid color-mix(in srgb, var(--accent, #c4a035) 55%, #1a2433);
  box-shadow: 0 10px 28px rgba(26, 36, 51, 0.18);
}
.mediadaten-channel-kicker {
  margin: 0 0 0.25rem;
  font-size: 0.72rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent, #c4a035);
}
.mediadaten-channel-title {
  margin: 0 0 0.4rem;
  font-size: 1.2rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.mediadaten-channel p:last-child {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: rgba(255,255,255,0.82);
}
.mediadaten-nav {
  display: flex; flex-wrap: wrap; gap: 0.4rem;
  margin: 0 0 2rem; padding: 0.75rem 0;
  border-bottom: 1px solid var(--line, #e4e0d8);
}
.mediadaten-nav a {
  color: #1a2433; text-decoration: none; font-weight: 650; font-size: 0.84rem;
  padding: 0.38rem 0.7rem; border-radius: 999px;
  border: 1px solid #e4e0d8; background: #fff;
}
.mediadaten-nav a:hover { color: #1a2433; border-color: var(--accent, #c4a035); background: #fffdf6; }
.mediadaten-block { margin: 0 0 2.5rem; }
.mediadaten-block h2 {
  font-size: 1.35rem; margin: 0 0 0.45rem; letter-spacing: -0.01em;
  border-left: 4px solid var(--accent, #c4a035); padding-left: 0.65rem;
}
.mediadaten-block-intro { margin: 0 0 1rem; max-width: 42rem; }
.mediadaten-ad-products {
  display: grid;
  gap: 1rem;
  margin: 0 0 1.35rem;
  max-width: 46rem;
}
.mediadaten-ad-product {
  padding: 0.95rem 1.05rem;
  border: 1px solid #e4e0d8;
  border-radius: 10px;
  background: #fffdf8;
}
.mediadaten-ad-product h3 {
  margin: 0 0 0.4rem;
  font-size: 1.05rem;
}
.mediadaten-ad-product p {
  margin: 0;
  color: #475569;
  line-height: 1.5;
}
.mediadaten-format-grid {
  display: grid; gap: 1rem;
  grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
}
.mediadaten-format {
  background: #fff; border: 1px solid #e4e0d8; border-radius: 10px;
  padding: 0.85rem 0.75rem 1rem; text-align: center;
}
.mediadaten-format h3 { margin: 0.65rem 0 0.2rem; font-size: 0.95rem; }
.mediadaten-size { margin: 0; font-size: 0.78rem; color: #5c6570; }
.mediadaten-price {
  margin: 0.45rem 0 0; font-weight: 800; color: #1a2433; font-size: 0.95rem;
}
.mediadaten-thumb {
  position: relative; width: 100%; aspect-ratio: 189 / 260;
  max-width: 6.5rem; margin: 0 auto; background: #f7f5f0;
  border: 1px solid #d8d2c6; border-radius: 2px; overflow: hidden;
}
.mediadaten-thumb-page {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #fff 0%, #f4f1ea 100%);
}
.mediadaten-thumb-ad {
  position: absolute; background: #1a2433;
  box-shadow: inset 0 0 0 1px #c4a035;
}
.mediadaten-thumb--full .mediadaten-thumb-ad { inset: 6%; }
.mediadaten-thumb--half_h .mediadaten-thumb-ad { left: 6%; right: 6%; top: 28%; height: 44%; }
.mediadaten-thumb--half_v .mediadaten-thumb-ad { left: 6%; width: 42%; top: 6%; bottom: 6%; }
.mediadaten-thumb--third .mediadaten-thumb-ad { left: 6%; right: 6%; top: 36%; height: 28%; }
.mediadaten-thumb--quarter_h .mediadaten-thumb-ad { left: 6%; right: 6%; top: 40%; height: 22%; }
.mediadaten-thumb--quarter_v .mediadaten-thumb-ad { left: 6%; width: 42%; top: 28%; height: 44%; }
.mediadaten-thumb--sixth .mediadaten-thumb-ad { left: 6%; width: 42%; top: 36%; height: 28%; }
.mediadaten-thumb--eighth .mediadaten-thumb-ad { left: 6%; width: 42%; top: 40%; height: 22%; }
.mediadaten-thumb--double {
  aspect-ratio: 426 / 274; max-width: 9rem;
}
.mediadaten-thumb--double .mediadaten-thumb-ad { inset: 8% 4%; }
.mediadaten-table-wrap { overflow-x: auto; border: 1px solid #e4e0d8; border-radius: 10px; }
.mediadaten-table {
  width: 100%; border-collapse: collapse; background: #fff; font-size: 0.95rem;
}
.mediadaten-table th,
.mediadaten-table td {
  text-align: left; padding: 0.7rem 0.9rem;
  border-bottom: 1px solid #eee9e0; vertical-align: top;
}
.mediadaten-table th {
  background: #1a2433; color: #fff; font-weight: 650; font-size: 0.82rem;
  text-transform: uppercase; letter-spacing: 0.04em;
}
.mediadaten-table th:last-child,
.mediadaten-table td:last-child { text-align: right; white-space: nowrap; }
.mediadaten-table tbody tr:last-child td { border-bottom: 0; }
.mediadaten-table tbody tr:hover { background: #faf8f4; }
.mediadaten-price-cell { font-weight: 800; color: #1a2433; }
.mediadaten-list { margin: 0; padding-left: 1.15rem; line-height: 1.55; }
.mediadaten-list li { margin: 0.35rem 0; }
.mediadaten-region-grid {
  display: grid; gap: 0.85rem;
  grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
}
.mediadaten-region {
  border: 1px solid #e4e0d8; border-radius: 10px; padding: 1rem 1rem 1.1rem;
  background: linear-gradient(165deg, #fff 0%, #faf8f4 100%);
  position: relative;
}
.mediadaten-region-num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.6rem; height: 1.6rem; border-radius: 50%;
  background: #1a2433; color: #c4a035; font-weight: 800; font-size: 0.8rem;
  margin-bottom: 0.45rem;
}
.mediadaten-region h3 { margin: 0 0 0.35rem; font-size: 1rem; }
.mediadaten-region p { margin: 0; font-size: 0.88rem; color: #5c6570; line-height: 1.45; }
.mediadaten-specs-dl { display: grid; gap: 0.85rem; margin: 0; }
.mediadaten-specs-dl > div {
  display: grid; gap: 0.15rem;
  padding: 0.75rem 0; border-bottom: 1px solid #eee9e0;
}
.mediadaten-specs-dl dt { font-weight: 750; color: #1a2433; }
.mediadaten-specs-dl dd { margin: 0; color: #5c6570; line-height: 1.45; }
.mediadaten-cta {
  margin-top: 1rem; padding: 1.35rem 1.25rem;
  border: 1px solid color-mix(in srgb, var(--accent, #c4a035) 45%, #e4e0d8);
  background: linear-gradient(145deg, #1a2433 0%, #2a3a52 70%, #c4a035 160%);
  color: #fff;
}
.mediadaten-cta h2 { margin: 0 0 0.4rem; color: #fff; }
.mediadaten-cta .muted { color: rgba(255,255,255,0.82); }
.mediadaten-cta .btn,
.mediadaten-cta-btn {
  background: #c4a035; color: #1a2433; border-color: #c4a035; margin-top: 0.5rem;
  display: inline-flex; align-items: center; justify-content: center;
  cursor: default; pointer-events: none; user-select: none;
  text-decoration: none;
}
.mediadaten-cta-contact {
  margin: 0.85rem 0 0;
  display: flex; flex-wrap: wrap; gap: 0.35rem 0.65rem;
  align-items: center;
  font-size: 1.05rem;
  font-weight: 700;
  color: #fff;
  user-select: text;
}
.mediadaten-cta-sep { opacity: 0.55; font-weight: 500; }
.mediadaten-cta-email,
.mediadaten-cta-phone {
  letter-spacing: 0.01em;
}
.mediadaten-audiences {
  margin: 0;
  padding: 1rem 1.1rem;
  border: 1px solid #e4e0d8;
  border-radius: 10px;
  background: #fff;
  line-height: 1.55;
  color: #1a2433;
}
@media (max-width: 820px) {
  .mediadaten-channels { grid-template-columns: 1fr; }
  .mediadaten-nav { top: 0; }
}

.admin-listings-table-wrap {
  overflow-x: auto;
  overflow-y: visible;
  max-width: 100%;
  padding-bottom: 1.25rem;
}
.admin-listings-table-wrap .admin-listings-table {
  overflow: visible;
}
.admin-listings-table td.admin-listings-actions-cell {
  overflow: visible;
  position: relative;
  vertical-align: top;
}
.admin-listings-table tbody tr:nth-last-child(-n+3) .admin-row-menu__panel {
  top: auto;
  bottom: calc(100% + 0.2rem);
}
/* Jobs-Import: Feed-Radio gross & klickbar */
.admin-app .form.ad-admin-form label.feed-radio-card {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.65rem 0.85rem;
  margin: 0 0 0.45rem;
  border: 2px solid #cbd5e1;
  border-radius: 8px;
  background: #f8fafc;
  cursor: pointer;
  font-family: system-ui, sans-serif;
  font-size: 1.02rem;
  line-height: 1.35;
}
.admin-app .form.ad-admin-form label.feed-radio-card:has(input:checked) {
  border-color: #166534;
  background: #ecfdf5;
}
.admin-app .form.ad-admin-form label.feed-radio-card input[type="radio"] {
  width: 1.35rem;
  height: 1.35rem;
  min-width: 1.35rem;
  margin-top: 0.12rem;
  flex-shrink: 0;
  accent-color: #166534;
  cursor: pointer;
  padding: 0;
}
.admin-app .form.ad-admin-form label.feed-radio-card--none {
  margin-top: 0.5rem;
}
.admin-listings-board { max-width: 100%; }
.admin-listings-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.5rem;
  align-items: center;
  margin: 0 0 0.75rem;
  font-size: 0.92rem;
}
.admin-listings-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
  margin: 0 0 1rem;
}
.admin-listings-tabs__label {
  font-size: 0.8rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-right: 0.15rem;
}
.admin-listings-tabs__sep {
  width: 1px;
  height: 1.25rem;
  background: var(--line);
  margin: 0 0.35rem;
}
.admin-listings-tab {
  display: inline-block;
  padding: 0.28rem 0.65rem;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: #fff;
  font-size: 0.85rem;
  text-decoration: none;
  color: inherit;
}
.admin-listings-tab.is-active {
  background: #1a2433;
  border-color: #1a2433;
  color: #fff;
}
.admin-listings-toolbar {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin: 0 0 1rem;
  padding: 1rem 1.15rem;
  background: #f8fafc;
  border: 1px solid #dbe3ee;
  border-radius: 10px;
}
.admin-listings-toolbar__fields {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  width: 100%;
}
.admin-listings-toolbar__row {
  display: grid;
  gap: 0.75rem 1rem;
  align-items: end;
}
.admin-listings-toolbar__row--top {
  grid-template-columns: minmax(12rem, 1fr) minmax(14rem, 1.5fr);
}
.admin-listings-toolbar__row--bottom {
  grid-template-columns: minmax(0, 1fr) minmax(12rem, 16rem);
}
.admin-listings-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
}
.admin-listings-field > span {
  font-size: 0.78rem;
  font-weight: 600;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.admin-listings-field--search {
  min-width: 0;
}
.admin-listings-field--status {
  min-width: 12rem;
}
.admin-listings-status {
  min-width: 12rem;
  font-size: 1rem;
}
.admin-listings-toolbar input[type="search"],
.admin-listings-toolbar select,
.admin-listings-input {
  width: 100%;
  box-sizing: border-box;
  min-height: 2.85rem;
  padding: 0.62rem 0.9rem;
  font-size: 1rem;
  line-height: 1.35;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #fff;
  color: var(--ink, #1a2433);
}
.admin-listings-toolbar input[type="search"]::placeholder {
  color: #94a3b8;
  opacity: 1;
}
.admin-listings-toolbar input[type="search"]:focus,
.admin-listings-toolbar select:focus,
.admin-listings-input:focus {
  outline: 2px solid color-mix(in srgb, var(--admin-tone, #2563eb) 45%, transparent);
  border-color: var(--admin-tone, #2563eb);
}
.admin-listings-toolbar__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}
.admin-listings-search {
  min-width: 0;
}
.admin-listings-firma {
  min-width: 0;
}
@media (max-width: 960px) {
  .admin-listings-toolbar__row--top,
  .admin-listings-toolbar__row--bottom {
    grid-template-columns: 1fr;
  }
  .admin-listings-field--status,
  .admin-listings-status {
    min-width: 0;
  }
}
.admin-listings-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  align-items: center;
  margin: 0 0 0.75rem;
}
.admin-listings-meta__count { margin: 0; }
.admin-listings-meta__per label,
.admin-listings-meta__jump label {
  display: inline-flex;
  gap: 0.35rem;
  align-items: center;
  font-size: 0.85rem;
}
.admin-listings-table th,
.admin-listings-table td {
  vertical-align: middle;
}
.admin-listings-th-logo { width: 4.5rem; }
.admin-listings-th-actions { width: 3rem; text-align: right; }
.admin-listings-logo-cell { width: 4.5rem; }
.admin-listings-logo-link { display: block; line-height: 0; }
.admin-listings-logo {
  display: block;
  width: 52px;
  height: 52px;
  object-fit: contain;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 4px;
  box-sizing: border-box;
}
.admin-listings-logo--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1.1rem;
  color: #64748b;
  background: #f8fafc;
}
.admin-listings-title-link {
  color: inherit;
  text-decoration: none;
}
.admin-listings-title-link:hover strong { text-decoration: underline; }
.admin-listings-title-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  align-items: center;
  margin-top: 0.25rem;
}
.admin-listings-title-meta .muted { font-size: 0.78rem; }
.admin-listings-company-cell { min-width: 8rem; }
.admin-listings-date-cell { white-space: nowrap; font-size: 0.85rem; }
.admin-listings-empty { padding: 2rem 1rem !important; text-align: center; }
.admin-listings-actions-cell { text-align: right; }
.admin-listings-pagination {
  margin-top: 1rem;
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  align-items: center;
}
.admin-badge {
  display: inline-block;
  padding: 0.12rem 0.45rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.35;
  background: #eef2f7;
  color: #334155;
  text-decoration: none;
}
.admin-badge--live { background: #dcfce7; color: #166534; }
.admin-badge--paused { background: #fef3c7; color: #92400e; }
.admin-badge--gone { background: #fee2e2; color: #991b1b; }
.admin-badge--draft { background: #e2e8f0; color: #475569; }
.admin-badge--expired { background: #ffedd5; color: #9a3412; }
.admin-badge--import { background: #e0e7ff; color: #3730a3; }
.admin-badge--pin { background: #fce7f3; color: #9d174d; }
.admin-badge--lock { background: #f3e8ff; color: #6b21a8; }
.admin-badge--geo { background: #ccfbf1; color: #0f766e; }
.admin-badge--geo-miss { background: #f1f5f9; color: #64748b; }
.admin-badge--apps { background: #dbeafe; color: #1d4ed8; }
.admin-badge--blocked { background: #fee2e2; color: #991b1b; }
.admin-listings-block-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  margin: 0 0 1rem;
  padding: 0.65rem 0.85rem;
  background: #fffbeb;
  border: 1px solid #fcd34d;
  border-radius: var(--radius);
}
.admin-listings-block-note {
  margin: 0 0 1rem;
  padding: 0.55rem 0.85rem;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: var(--radius);
  font-size: 0.9rem;
}
.admin-listings-status-filter {
  display: inline-flex;
  gap: 0.35rem;
  align-items: center;
  font-size: 0.85rem;
}
.admin-listings-feed-geo { min-width: 7rem; max-width: 10rem; }
.admin-row-menu { position: relative; display: inline-block; }
.admin-row-menu__toggle {
  list-style: none;
  cursor: pointer;
  min-width: 2.25rem;
  padding: 0.2rem 0.45rem;
  font-size: 1.1rem;
  line-height: 1;
}
.admin-row-menu__toggle::-webkit-details-marker { display: none; }
.admin-row-menu[open] .admin-row-menu__toggle {
  background: #eef2f7;
}
.admin-row-menu__panel {
  position: absolute;
  right: 0;
  top: calc(100% + 0.2rem);
  z-index: 30;
  min-width: 11rem;
  max-height: min(70vh, 24rem);
  overflow-y: auto;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
  padding: 0.35rem 0;
  display: flex;
  flex-direction: column;
}
.admin-row-menu__panel a,
.admin-row-menu__panel button {
  display: block;
  width: 100%;
  text-align: left;
  padding: 0.45rem 0.85rem;
  border: 0;
  background: transparent;
  font: inherit;
  color: inherit;
  cursor: pointer;
  text-decoration: none;
}
.admin-row-menu__panel a:hover,
.admin-row-menu__panel button:hover {
  background: #f7f8fb;
}
.admin-row-menu__panel form { margin: 0; }
.admin-row-menu__danger button { color: #b91c1c; }
.admin-listings-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}
.admin-listings-actions form { margin: 0; }

.admin-apply-search input[type="search"] {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.admin-apply-list {
  display: grid;
  gap: 1rem;
  max-width: 52rem;
}
.admin-apply-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 1rem 1.1rem 1.05rem;
}
.admin-apply-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.65rem 1rem;
  align-items: flex-start;
  margin-bottom: 0.75rem;
}
.admin-apply-when {
  margin: 0;
  font-weight: 700;
}
.admin-apply-job {
  margin: 0.2rem 0 0;
}
.admin-apply-job a { margin-left: 0.4rem; }
.admin-apply-dl {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.45rem 1.25rem;
  margin: 0 0 0.7rem;
}
@media (min-width: 720px) {
  .admin-apply-dl { grid-template-columns: 1fr 1fr; }
}
.admin-apply-dl dt {
  font-size: 0.78rem;
  color: var(--muted);
  margin: 0;
}
.admin-apply-dl dd {
  margin: 0.08rem 0 0;
  word-break: break-word;
}
.admin-apply-msg {
  margin: 0 0 0.75rem;
  white-space: pre-wrap;
  word-break: break-word;
  color: #334155;
}
.admin-apply-files {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.admin-apply-files a {
  display: inline-block;
  padding: 0.4rem 0.7rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f8fafc;
  text-decoration: none;
  word-break: break-word;
}
.admin-apply-files a:hover { border-color: var(--accent, #c4a035); }

.st-search { display:block; max-width:32rem; margin:0.75rem 0 1rem; font-weight:600; }
.st-search input { margin-top:0.3rem; }
.st-h2 { font-size:1.05rem; margin:1.25rem 0 0.55rem; }
.st-cards {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(16.5rem, 1fr));
  gap:0.65rem;
}
.st-card {
  display:flex;
  flex-direction:column;
  gap:0.3rem;
  padding:0.85rem 0.95rem;
  background:#fff;
  border:1px solid var(--line, #e2e8f0);
  border-radius:10px;
  text-decoration:none;
  color:inherit;
}
.st-card:hover { border-color: var(--accent, #c4a035); }
.st-card-sec { font-size:0.75rem; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); }
.st-card-n { font-size:0.85rem; color:var(--muted); margin-top:0.2rem; }
.st-table-wrap { overflow:auto; max-height:28rem; border:1px solid var(--line, #e2e8f0); border-radius:10px; }
.st-urls td code { font-size:0.82em; word-break:break-all; }
.st-urls .btn { padding:0.25rem 0.6rem; font-size:0.85rem; }
.st-urls tr[hidden],
.st-card[hidden] { display: none !important; }
.st-jump { display:flex; flex-wrap:wrap; gap:0.5rem; align-items:flex-end; margin:0.75rem 0 0.5rem; }
.st-jump label { flex:1; min-width:14rem; margin:0; font-weight:600; }
.st-jump input { margin-top:0.3rem; }
.st-url-tabs { display:flex; flex-wrap:wrap; gap:0.4rem; margin:0.85rem 0 0.6rem; }
.st-url-tabs a {
  display:inline-block; padding:0.28rem 0.7rem; border:1px solid var(--line, #e2e8f0);
  border-radius:999px; text-decoration:none; color:inherit; font-size:0.86rem; background:#fff;
}
.st-url-tabs a.is-on { border-color: var(--accent, #c4a035); background:#fffaf0; font-weight:600; }
.st-inherit { display:block; font-weight:400; font-size:0.8rem; color:var(--muted); margin:0.15rem 0 0.25rem; }

/* Display-Banner (IAB) — Startseite + Regionen */
.ad-orig {
  margin: 0.75rem 0 1rem;
}
.ad-orig-caption {
  font-weight: 700;
  margin: 0 0 0.25rem;
}
.ad-orig-stage {
  overflow: hidden;
  max-width: 100%;
  background: #e8edf3;
  border: 1px solid var(--line, #e2e8f0);
  border-radius: 8px;
  padding: 0.75rem;
}
.ad-orig-frame {
  position: relative;
  flex-shrink: 1;
  width: min(100%, calc(var(--ad-w, 994) * 1px), calc(70vh * var(--ad-w, 994) / var(--ad-h, 250)));
  height: auto;
  aspect-ratio: var(--ad-w, 994) / var(--ad-h, 250);
  max-width: 100%;
  background: repeating-linear-gradient(-45deg, #e8edf3, #e8edf3 8px, #f4f7fa 8px, #f4f7fa 16px);
  border: 1px solid #64748b;
  box-shadow: inset 0 0 0 1px #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  margin: 0 auto;
}
.admin-app .ad-orig-frame {
  width: min(100%, calc(var(--ad-w, 994) * 1px), calc(240px * var(--ad-w, 994) / var(--ad-h, 250)));
  max-height: 240px;
}
.ad-orig-frame.has-media {
  background: #f1f5f9;
  box-shadow: none;
}
.ad-orig-frame img,
.ad-orig-frame video,
.ad-orig-img,
.ad-orig-vid {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.ad-orig-empty {
  font-size: 0.85rem;
  font-weight: 700;
  color: #334155;
  letter-spacing: 0.02em;
}
.ad-orig-warn {
  margin: 0.45rem 0 0;
  color: #b42318;
  font-size: 0.88rem;
}
.ad-welcome-prev {
  margin: 0.75rem 0 1.1rem;
}
.ad-welcome-prev-grid {
  display: grid;
  gap: 1.1rem;
}
.ad-welcome-prev-label {
  margin: 0 0 0.35rem;
  font-weight: 650;
}
.ad-welcome-prev-frame {
  position: relative;
}
.ad-welcome-prev-frame img,
.ad-welcome-prev-frame video,
.ad-welcome-prev-img,
.ad-welcome-prev-vid,
.ad-welcome-prev-html5 {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center;
  display: block;
  border: 0;
  background: #05070c;
}
.ad-welcome-prev-html5 {
  z-index: 1;
  object-fit: unset;
}
.ad-welcome-prev-x {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 4;
  width: 32px;
  height: 32px;
  line-height: 30px;
  text-align: center;
  font-size: 26px;
  color: #fff;
  background: rgba(0, 0, 0, 0.62);
  pointer-events: none;
}
.ad-welcome-prev-bar {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 4;
  display: flex;
  justify-content: flex-end;
  box-sizing: border-box;
  padding: 12px 16px 16px;
  background: rgba(8, 12, 22, 0.88);
  pointer-events: none;
}
.ad-welcome-prev-explore {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 210px;
  height: 36px;
  border: 1px solid rgba(255, 255, 255, 0.55);
  color: #fff;
  font-size: 14px;
  letter-spacing: 0.04em;
}
.ad-format-orig-list {
  display: grid;
  gap: 1.25rem;
  margin-top: 1.25rem;
}
.ad-format-card-orig {
  overflow: visible;
}
.ad-custom-size {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem 0.75rem;
  margin: 0.55rem 0 0.85rem;
  padding: 0.7rem 0.8rem;
  background: #fff8e8;
  border: 1px solid #e4c36a;
  border-radius: 8px;
}
.ad-custom-size[hidden] {
  display: none;
}
[data-ad-flow-only][hidden],
[data-ad-flow-edit][hidden],
[data-ad-flow-mobile][hidden],
[data-ad-rail-sticky-tools][hidden] {
  display: none !important;
}
.ad-custom-size p {
  grid-column: 1 / -1;
}
.ad-format-card {
  border: 1px solid var(--line, #e2e8f0);
  border-radius: 10px;
  padding: 0.85rem 0.95rem 1rem;
  background: #fff;
}
.ad-format-card header {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.65rem;
  align-items: baseline;
  margin-bottom: 0.55rem;
}
.ad-format-stage {
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  min-height: 4rem;
  overflow: auto;
  padding: 0.35rem 0;
}
.ad-format-box {
  background: repeating-linear-gradient(-45deg, #e8edf3, #e8edf3 8px, #f4f7fa 8px, #f4f7fa 16px);
  border: 1px solid #94a3b8;
  box-shadow: inset 0 0 0 1px #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #334155;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  flex-shrink: 0;
}
.ad-delivery-spec {
  margin: 0.55rem 0 0;
  padding: 0.55rem 0.65rem;
  background: #f8fafc;
  border: 1px solid var(--line, #e2e8f0);
  border-radius: 8px;
  font-size: 0.84rem;
  line-height: 1.45;
}
.ad-delivery-spec p {
  margin: 0;
}
.ad-delivery-spec p + p {
  margin-top: 0.3rem;
}
.ad-delivery-legend {
  margin-top: 1rem;
}
.ad-event-week {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 0.35rem;
}
.ad-event-week-cell {
  text-align: center;
  background: #f8fafc;
  border: 1px solid var(--line, #e2e8f0);
  border-radius: 8px;
  padding: 0.4rem 0.2rem;
  font-size: 0.78rem;
}
.ad-event-week-cell strong {
  display: block;
}
.ad-event-clicks-wrap {
  overflow-x: auto;
  margin: 0 0 0.85rem;
}
.ad-event-clicks {
  font-size: 0.82rem;
}
.ad-event-clicks code {
  font-size: 0.78rem;
}
.ad-event-hours {
  display: flex;
  align-items: flex-end;
  gap: 2px;
  height: 88px;
}
.ad-event-hour {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  height: 100%;
  min-width: 0;
}
.ad-event-hour-stack {
  display: flex;
  align-items: flex-end;
  gap: 1px;
  width: 100%;
  height: 72px;
}
.ad-event-hour-stack i {
  display: block;
  flex: 1;
  min-height: 0;
  border-radius: 2px 2px 0 0;
}
.ad-event-bar-open {
  background: #1a2433;
}
.ad-event-bar-click {
  background: #c4a035;
}
.ad-event-hour em {
  font-style: normal;
  font-size: 0.62rem;
  color: #64748b;
  margin-top: 2px;
}
.ad-event-days {
  display: grid;
  gap: 0.2rem;
  font-size: 0.84rem;
}
@media (max-width: 640px) {
  .ad-event-week {
    grid-template-columns: repeat(4, 1fr);
  }
}
.ad-display-create {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 0.65rem;
  margin-top: 0.65rem;
  align-items: end;
}

/* Hart: keine abgerundeten Ecken bei Inseraten / Display / Welcome — nirgends */
.site-header-ad,
.site-header-ad-ph,
.site-header-ad .ad-display,
.site-header-ad .ad-display-frame,
.site-header-ad .ad-display-creative,
.site-header-ad img,
.site-header-ad iframe,
.site-header-ad video,
.portal-ad-slot,
.portal-ad-leaderboard,
.portal-ad-creative,
.portal-ad-creative img,
.portal-ad-card,
.portal-ad-card-frame,
.portal-ad-card-frame img,
.portal-ad-card-kicker,
.portal-ad-kicker,
.portal-digital-ad,
.portal-digital-ad-item,
.portal-digital-ad img,
.portal-ad-lightbox-panel,
.portal-ad-lightbox-img,
.portal-ad-lightbox-close,
.portal-ad-lightbox-cta,
.portal-ad-share-sheet,
.ad-display,
.ad-display-creative,
.ad-display-creative img,
.ad-display-creative video,
.ad-display-creative-html5,
.ad-display-html5,
.ad-display-img,
.ad-display-kicker,
.ad-display-frame,
.ad-display-stack,
.ad-display-stack-header,
.ad-display-stack-flow,
.ad-rail,
.ad-rail .ad-display,
.ad-rail .ad-display-creative,
.ad-welcome-prev-frame,
.ad-welcome-prev-img,
.ad-welcome-prev-vid,
.ad-welcome-prev-html5,
.ad-welcome-prev-x,
.ad-welcome-prev-bar,
.ad-welcome-prev-explore,
.i24w,
.i24w-frame,
.i24w-card,
.i24w-stage,
.i24w-media,
.i24w-stage img,
.i24w-html5,
.i24w-video,
.i24w-kicker,
.i24w-close,
.i24w-sound,
.i24w-explore,
.i24w-chrome,
.i24w-progress,
.i24w-progress i,
.ad-share-figure,
.ad-share-figure img {
  border-radius: 0 !important;
}

/* Öffentliche Site: einheitliche leichte Ecken (8px) — Karten, Medien, Container */
body:is(.portal-page, .epaper-page) {
  --radius: var(--surface-radius, 8px);
}
body:is(.portal-page, .epaper-page) :is(
  .article-photo,
  .article-photo img,
  .article-photo picture,
  .article-inline-photo,
  .article-inline-photo img,
  .article-gallery-item,
  .article-gallery-item img,
  .portal-hero-photo,
  .portal-hero-photo img,
  .portal-story-photo,
  .portal-story-photo img,
  .portal-story,
  .portal-story-empty,
  .portal-hero-empty,
  .portal-weather-alert,
  .spotlight-card,
  .spotlight-card-media,
  .spotlight-card-media img,
  .video-embed,
  .video-embed-inner,
  .video-embed-inner iframe,
  .video-embed-placeholder,
  .gallery-lightbox-dialog,
  .gallery-lightbox-img,
  .gallery-lightbox-trigger,
  .wx-pro,
  .wx-pro-day,
  .wx-pro-now,
  .wx-pro-cam-thumb,
  .region-shelf-panel,
  .job-detail-photo,
  .job-detail-photo img,
  .job-original-figure,
  .job-original-pdf-frame,
  .job-side-card,
  .job-expired-banner,
  .jobs-card,
  .jobs-search-form,
  .jobs-search-inner,
  .firm-card,
  .company-detail-card,
  .firm-detail-card,
  .firm-vcard-hours-block,
  .firm-detail-map-frame,
  .firm-detail-map-frame iframe,
  .firm-side-gallery,
  .ad-listing-card-photo,
  .ad-listing-region-card,
  .ad-listing-side-card,
  .ad-listing-desc,
  .ad-listing-detail .ad-share-figure,
  .ad-listing-detail .ad-share-figure img,
  .home-sf-logo,
  .home-sf-card,
  .home-hub-region-photo-media,
  .home-hub-region-photo-media img,
  .region-stage-mark,
  .region-stage-mark picture,
  .region-stage-mark img,
  .home-hub-photo-card,
  .home-hub-photo-card-media,
  .home-hub-photo-card-media img,
  .home-hub-card,
  .home-hub-cite,
  .blogmore-tile,
  .blogmore-tile-media,
  .blogmore-profile-wrap,
  .competition-hero-img,
  .competition-hero-img img,
  .portal-mag,
  .portal-mag img,
  .portal-company-cover,
  .portal-company-cover img,
  .company-cover,
  .company-cover img,
  .company-logo,
  .company-logo img,
  .company-detail-logo-slot,
  .portal-region-card,
  .portal-event-card,
  .portal-event-card-media,
  .portal-event-card-media img,
  .event-card,
  .immo-card,
  .card,
  .panel,
  .content-detail,
  .content-detail img,
  .article-detail,
  .article-detail img,
  .article-body img,
  .article-body figure,
  .site-header-mobile-summary,
  .site-header-drop-panel,
  .site-header-mobile-panel,
  .cookie-consent-panel,
  .cookie-consent-actions .btn,
  .insight-footer-nl input[type="email"],
  .btn:not(.region-shelf-filter-btn),
  a.btn:not(.region-shelf-filter-btn),
  button.btn:not(.region-shelf-filter-btn),
  .job-apply-submit,
  .jobs-search-submit,
  .insight-footer-nl-submit,
  input[type="submit"]:not(.site-pp-toggle),
  .region-epaper-wrap.is-embed,
  .region-mag-pr-card,
  .region-mag-pr-media,
  .region-mag-highlight-card,
  .region-mag-archive .region-mag-cover
) {
  border-radius: var(--surface-radius, var(--btn-radius, 8px)) !important;
}
body.portal-jobs :is(
  .btn,
  a.btn,
  button.btn,
  .job-apply-submit,
  .jobs-search-submit
) {
  border-radius: var(--surface-radius, var(--btn-radius, 8px)) !important;
}
/* Chips, Suche, Newsletter — überall 8px wie Karten */
body:is(.portal-page, .epaper-page, .portal-jobs) :is(
  .home-hub-search-card,
  .home-hub-search-mode-chip,
  .home-hub-panel,
  .home-hub-mast,
  .blogmore-chip,
  .jobs-chip,
  .jobs-chip-more,
  .region-shelf-chips label,
  .region-shelf-geo-chip,
  .region-shelf-filter-btn,
  .site-quicknav-link,
  .jobs-list .jobs-card-head .jobs-card-cat,
  .home-jobs-card-top .jobs-card-cat--new,
  .portal-chip,
  .jobs-filter-chip,
  .portal-page-chip,
  .mitteilung-chip,
  .ad-listing-back-link,
  .region-promo-band-frame-inner,
  .insight-footer-nl-email input[type="email"],
  .home-hub-region-photo-media,
  .home-hub-region-photo-media img
) {
  border-radius: var(--region-chip-radius, var(--btn-radius, 8px)) !important;
}

.ad-display-stack {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  align-items: stretch;
  padding: 0;
}
.ad-display-stack-header {
  width: 100%;
  max-width: 100%;
  margin: 0 0 0.85rem;
  padding: 0 0 0.75rem;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #e4e0d8;
}
.ad-display-stack-flow {
  width: min(var(--site-content-max, 1320px), calc(100% - var(--site-content-gutter)));
  margin: 0.35rem auto 0.85rem;
  padding: 0;
}
.portal-has-rails .ad-display-stack-flow {
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}
.ad-display {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  width: 100%;
  max-width: 100%;
}
.ad-display-kicker {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  pointer-events: none;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #475569;
  background: rgba(255, 253, 248, 0.9);
  padding: 0.12rem 0.38rem;
  line-height: 1.2;
}
.ad-display-creative {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(calc(var(--ad-w, 994) * 1px), 100%);
  aspect-ratio: var(--ad-w, 994) / var(--ad-h, 255);
  max-height: calc(var(--ad-h, 255) * 1px);
  margin: 0 auto;
  padding: 0;
  background: transparent;
  border: 1px solid transparent;
  overflow: hidden;
  cursor: pointer;
  font: inherit;
  color: inherit;
}
.ad-display-stack-header .ad-display-wideboard .ad-display-creative,
.ad-display-stack-header .ad-display-wideboard250 .ad-display-creative,
.ad-display-stack-header .ad-display-wideboardmax .ad-display-creative,
.ad-display-stack-header .ad-display-videohead .ad-display-creative,
.ad-display-stack-header .ad-display-maxiboard .ad-display-creative,
.ad-display-stack-flow .ad-display-wideboard .ad-display-creative,
.ad-display-stack-flow .ad-display-wideboard250 .ad-display-creative,
.ad-display-stack-flow .ad-display-wideboardmax .ad-display-creative,
.ad-display-stack-flow .ad-display-videohead .ad-display-creative,
.ad-display-stack-flow .ad-display-maxiboard .ad-display-creative {
  width: 100%;
  max-width: 100%;
  max-height: none;
}
.ad-display-img,
.ad-display-creative img,
.ad-display-creative video {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  pointer-events: none;
}
.ad-display-stack-header .ad-display-creative img,
.ad-display-stack-header .ad-display-wideboard .ad-display-creative img,
.ad-display-stack-header .ad-display-wideboard250 .ad-display-creative img,
.ad-display-stack-header .ad-display-wideboardmax .ad-display-creative img,
.ad-display-stack-header .ad-display-videohead .ad-display-creative img,
.ad-display-stack-header .ad-display-maxiboard .ad-display-creative img,
.ad-display-stack-header .ad-display-creative video,
.ad-display-stack-flow .ad-display-wideboard .ad-display-creative img,
.ad-display-stack-flow .ad-display-wideboard250 .ad-display-creative img,
.ad-display-stack-flow .ad-display-wideboardmax .ad-display-creative img,
.ad-display-stack-flow .ad-display-videohead .ad-display-creative img,
.ad-display-stack-flow .ad-display-maxiboard .ad-display-creative img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.ad-display[data-ad-device="mobile"] {
  display: none;
}
/* Plötzlich ein/aus: Platz auf/zu — Beiträge rutschen, kein dunkles Overlay */
.ad-display.is-flash-slide {
  overflow: hidden;
  max-height: min(92vh, calc(var(--ad-h, 250) * 1px + 5rem));
  opacity: 1;
  transition:
    max-height 0.55s ease,
    opacity 0.4s ease,
    margin 0.55s ease,
    padding 0.55s ease,
    border-width 0.55s ease;
}
.ad-display.is-flash-done .ad-display-creative {
  max-height: 36px;
  aspect-ratio: auto;
  transition: max-height 0.45s ease;
}
.ad-display.is-flash-pending,
.ad-display.is-flash-gone {
  max-height: 0 !important;
  opacity: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  border-width: 0 !important;
  pointer-events: none;
  visibility: hidden;
}
@media (prefers-reduced-motion: reduce) {
  .ad-display.is-flash-slide {
    transition: none;
  }
}
/* Desktop Links/Rechts: optional sticky mitlaufen + weiches Ein/Aus */
@media (min-width: 1200px) {
  .ad-rail:has(.is-rail-sticky) {
    align-self: stretch;
  }
  .ad-rail:has(.is-rail-sticky) .ad-rail-inner {
    position: sticky;
    top: 1rem;
    z-index: 6;
    will-change: transform;
  }
  body.portal-page .ad-rail:has(.is-rail-sticky) .ad-rail-inner {
    top: max(0.75rem, calc(var(--site-header-h, 9.5rem) * 0.15));
  }
  .ad-display.is-rail-sticky.is-flash-slide {
    max-height: none;
    overflow: visible;
    transition:
      opacity 0.55s ease,
      transform 0.55s ease,
      visibility 0.55s ease;
  }
  .ad-display.is-rail-sticky.is-flash-pending,
  .ad-display.is-rail-sticky.is-flash-gone {
    max-height: 0 !important;
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border-width: 0 !important;
    opacity: 0 !important;
    transform: translateY(16px);
    visibility: hidden;
    pointer-events: none;
    overflow: hidden !important;
  }
  .ad-display.is-rail-sticky:not(.is-flash-pending):not(.is-flash-gone) {
    opacity: 1;
    transform: translateY(0);
    visibility: visible;
  }
  .ad-display.is-rail-sticky.is-flash-done .ad-display-creative {
    max-height: none;
  }
}
@media (min-width: 1200px) and (prefers-reduced-motion: reduce) {
  .ad-display.is-rail-sticky.is-flash-slide {
    transition: none;
  }
  .ad-display.is-rail-sticky.is-flash-pending,
  .ad-display.is-rail-sticky.is-flash-gone {
    transform: none;
  }
}
.ad-display-stack[data-ad-rotate]:not([data-ad-rotate="0"]) .ad-display.is-rotate-off {
  display: none;
}
/* Header/Inhalt = --site-content-max. 300×250 in der grauen Restfläche rechts — nicht kleben, mit scrollen. */
body.portal-page main,
.portal-page .portal,
.portal-has-rails {
  overflow-x: visible;
}
@media (max-width: 720px) {
  html, body {
    overscroll-behavior-x: none;
  }
  .insight-footer {
    overflow-x: clip;
    overscroll-behavior-x: none;
    max-width: 100%;
    touch-action: pan-y;
  }
  body.portal-page input,
  body.portal-page select,
  body.portal-page textarea {
    font-size: 16px;
  }
  .insight-footer-nl,
  .insight-footer-nl-form {
    position: relative;
    overflow: visible;
    max-width: 100%;
    min-width: 0;
  }
  .insight-footer-nl-email input[type="email"]:focus,
  .insight-footer-nl-email input[type="email"]:focus-visible {
    outline: none;
    border-color: #c4a035;
    box-shadow: 0 0 0 3px rgba(196, 160, 53, 0.22);
  }
}
.portal-has-rails > .portal-main {
  min-width: 0;
}
.ad-display-creative-video {
  position: relative;
  cursor: default;
}
.ad-display-creative-html5 {
  cursor: default;
  background: #fff;
}
.ad-display-html5 {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  border: 0;
  max-width: 100%;
  background: #06111f;
  flex: 1 1 auto;
  align-self: stretch;
}
.i24w-html5 {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100% !important;
  height: 100% !important;
  min-width: 0;
  min-height: 0;
  max-width: none;
  object-fit: unset;
  background: #0b1220;
  border: 0;
  display: block;
}
.ad-display-hit,
.i24w-hit {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  text-indent: -9999px;
  overflow: hidden;
}
.ad-rail {
  display: none;
  align-self: start;
  position: relative;
  z-index: 4;
  padding: 0;
  height: auto;
}
.ad-rail-inner {
  position: static;
  align-self: start;
}
.ad-rail .ad-display-stack {
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-start;
}
.ad-rail .ad-display {
  width: calc(var(--ad-w, 300) * 1px);
  max-width: 100%;
  height: auto;
  align-items: flex-start;
  flex: 0 0 auto;
}
.ad-rail .ad-display-creative {
  width: calc(var(--ad-w, 300) * 1px);
  height: calc(var(--ad-h, 250) * 1px);
  max-width: 100%;
  max-height: none;
  aspect-ratio: auto;
  margin: 0;
}
.ad-rail .ad-display-html5 {
  min-height: 0;
  width: 100%;
  height: 100%;
  flex: none;
}
@media (max-width: 720px) {
  .ad-display[data-ad-device="desktop"] {
    display: none;
  }
  .ad-display[data-ad-device="mobile"] {
    display: flex;
  }
  .ad-display-stack-header .ad-display-mpu,
  .ad-display-stack-flow .ad-display-mpu {
    align-items: center;
  }
  .ad-display-stack-header .ad-display-mpu .ad-display-creative,
  .ad-display-stack-flow .ad-display-mpu .ad-display-creative {
    width: 300px;
    height: 250px;
    max-width: 100%;
    aspect-ratio: auto;
    max-height: none;
  }
  .ad-rail {
    display: none !important;
  }
  .portal-has-rails {
    display: block;
  }
}
/* Inhalt fluid über den Bildschirm; 300×250-Leisten haben daneben keinen Platz mehr. */
@media (min-width: 1200px) {
  .portal-has-rails {
    display: block;
    width: 100%;
  }
  .portal-has-rails > .portal-main > .portal-band:first-of-type {
    padding-top: 0;
  }
  .portal-has-rails > .portal-main {
    width: 100%;
    max-width: none;
  }
  .portal-has-rails > .portal-main .wrap {
    width: min(var(--site-content-max), calc(100% - var(--site-content-gutter)));
    max-width: none;
    margin-left: auto;
    margin-right: auto;
  }
  .ad-rail-left,
  .ad-rail-right {
    display: none;
  }
  /* Flash weg / noch nicht da: kein Phantom-Platz in der Rail */
  .ad-rail .ad-display.is-flash-pending,
  .ad-rail .ad-display.is-flash-gone {
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
  }
  .ad-rail:not(:has(.ad-display:not(.is-flash-gone):not(.is-flash-pending):not(.is-rotate-off))) {
    display: none !important;
  }
}

/* Welcome-Einblendung: dunkle Fläche + zentrierte Karte (Klassen ohne «ad-», sonst Safari-Werbeblocker). */
html.has-i24w {
  overflow: hidden;
}
html.has-i24w-deluxe body.portal-page {
  padding-top: 0 !important;
}
html.has-i24w-deluxe body.portal-page .site-header-portal {
  position: sticky !important;
  top: 0;
}
html.has-i24w-deluxe body.portal-page:has(.dev-banner) .site-header-portal {
  top: 0;
}
html.has-i24w-deluxe body.portal-page .dev-banner {
  position: relative;
  z-index: 4;
}
.i24w[hidden] {
  display: none !important;
}
.i24w {
  position: fixed;
  inset: 0;
  z-index: 260;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3.1rem 1.5rem 1.5rem;
  background: rgba(8, 12, 22, 0.62);
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
  color: #f8f7f4;
  contain: layout paint;
  cursor: pointer;
  --i24w-w: 16;
  --i24w-h: 9;
}
.i24w-frame {
  position: relative;
  z-index: 1;
  overflow: visible;
  width: min(840px, calc(100vw - 3rem), calc((100vh - 4.2rem) * (var(--i24w-w) / var(--i24w-h))));
  max-height: calc(100vh - 4.2rem);
}
.i24w-card {
  position: relative;
  width: 100%;
  aspect-ratio: var(--i24w-w) / var(--i24w-h);
  height: auto;
  max-height: calc(100vh - 4.2rem);
  display: flex;
  flex-direction: column;
  border-radius: 0;
  overflow: hidden;
  background: #0b1220;
  border: 0;
  box-shadow: 0 28px 80px rgba(0, 0, 0, 0.42);
  cursor: default;
}
.i24w-stage {
  position: relative;
  width: 100%;
  aspect-ratio: var(--i24w-w, 16) / var(--i24w-h, 9);
  height: auto;
  max-height: calc(100vh - 2.5rem);
  overflow: hidden;
  background: #0b1220;
  flex: 1 1 auto;
}
.i24w-stage picture {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
}
.i24w-media,
.i24w-stage img {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center;
  display: block;
  border: 0;
}
.i24w-html5 {
  background: #0b1220;
  width: 100% !important;
  height: 100% !important;
}
.i24w-hit {
  position: absolute;
  inset: 0;
  z-index: 2;
}
.i24w-video {
  z-index: 1;
  pointer-events: none;
}
.i24w-kicker {
  position: absolute;
  left: 8px;
  top: 5px;
  z-index: 8;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.03em;
  line-height: 1;
  text-transform: none;
  color: #171717;
  text-shadow: none;
  pointer-events: none;
}
.i24w:not(.i24w--full) .i24w-kicker {
  left: 0;
  top: -2.35rem;
  height: 32px;
  display: inline-flex;
  align-items: center;
  color: #fff;
  font-size: 12px;
  letter-spacing: 0.04em;
}
.i24w:not(.i24w--full) .i24w-kicker.on-light,
.i24w:not(.i24w--full) .i24w-kicker.on-dark {
  color: #fff;
}
.i24w--full .i24w-kicker.on-light {
  color: #171717;
}
.i24w-kicker.on-dark {
  color: #fff;
}
.i24w-sound {
  position: absolute;
  left: 16px;
  top: 42px;
  z-index: 5;
  appearance: none;
  border: 0;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  font: inherit;
  font-size: 11px;
  font-weight: 650;
  padding: 0.28rem 0.55rem;
  border-radius: 0;
  cursor: pointer;
}
.i24w-sound:hover {
  background: rgba(0, 0, 0, 0.75);
  color: #fff;
}
.i24w-close {
  position: absolute;
  top: -2.35rem;
  right: 0;
  z-index: 40;
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  min-width: 32px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: rgba(0, 0, 0, 0.62);
  color: #fff;
  font: inherit;
  font-size: 26px;
  font-weight: 300;
  line-height: 1;
  cursor: pointer;
  pointer-events: auto;
}
.i24w-close:hover {
  background: #000;
  color: #fff;
  opacity: 1;
}
.i24w-progress {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 3px;
  background: rgba(255, 255, 255, 0.18);
  z-index: 4;
  pointer-events: none;
}
.i24w-progress i {
  display: block;
  height: 100%;
  width: 0;
  background: #c4a035;
  animation-name: i24w-bar;
  animation-timing-function: linear;
  animation-fill-mode: forwards;
}
@keyframes i24w-bar {
  to { width: 100%; }
}
.i24w--full {
  position: relative;
  inset: auto;
  width: 100%;
  height: var(--i24w-vh, 100svh);
  max-height: var(--i24w-vh, 100svh);
  min-height: 0;
  box-sizing: border-box;
  overflow: hidden;
  padding: 0;
  align-items: stretch;
  justify-content: stretch;
  background: #05070c;
  contain: none;
  z-index: 4;
  cursor: default;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.i24w--full .i24w-frame {
  position: relative;
  width: 100%;
  max-height: 100%;
  height: 100%;
  min-height: 0;
  overflow: hidden;
}
.i24w--full .i24w-card {
  width: 100%;
  height: 100%;
  max-height: 100%;
  min-height: 0;
  aspect-ratio: auto;
  box-shadow: none;
  background: #05070c;
  overflow: hidden;
}
.i24w--full .i24w-stage {
  flex: 1 1 auto;
  height: 100%;
  max-height: none;
  aspect-ratio: auto;
  min-height: 0;
}
.i24w--full .i24w-html5 {
  pointer-events: none;
}
.i24w--full .i24w-chrome {
  position: absolute;
  right: 16px;
  bottom: 16px;
  left: auto;
  z-index: 50;
  padding: 0;
  background: transparent;
  border: none;
  gap: 0;
  pointer-events: none;
}
.i24w--full .i24w-explore {
  pointer-events: auto;
}
.i24w--full .i24w-close {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 40;
  width: 32px;
  height: 32px;
  min-width: 32px;
  font-size: 26px;
  background: rgba(0, 0, 0, 0.62);
  color: #fff;
}
.i24w--full .i24w-kicker {
  left: 16px;
  top: 16px;
}
.i24w-desk { display: block; }
.i24w-mob { display: none; }
.i24w--full picture:has(.i24w-mob) { display: none; }
@media (orientation: portrait) {
  .i24w--full .i24w-desk { display: none; }
  .i24w--full .i24w-mob { display: block; }
  .i24w--full picture:has(.i24w-desk) { display: none; }
  .i24w--full picture:has(.i24w-mob) { display: block; }
}
.i24w-chrome {
  position: relative;
  z-index: 30;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1rem;
  box-sizing: border-box;
  padding: 12px 16px 16px;
  background: rgba(8, 12, 22, 0.88);
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.i24w-brand {
  display: block;
  height: 28px;
  width: auto;
  max-width: 42vw;
  object-fit: contain;
  object-position: left center;
}
.i24w-explore {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, 0.55);
  background: transparent;
  color: #fff;
  font: inherit;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.04em;
  min-width: 210px;
  width: 210px;
  height: 36px;
  line-height: 36px;
  flex-shrink: 0;
  padding: 0 1rem;
  cursor: pointer;
}
.i24w-explore:hover {
  background: #fff;
  color: #111;
}
@media (max-width: 720px) {
  .i24w--full {
    padding: 0;
  }
  .i24w--full .i24w-frame {
    width: 100%;
  }
  .i24w--full .i24w-kicker {
    left: 16px;
    top: 16px;
  }
  .i24w--full .i24w-close {
    top: 16px;
    right: 16px;
  }
  .i24w-brand {
    height: 24px;
  }
}
@media (max-width: 720px) {
  .i24w:not(.i24w--full) {
    padding: 2.7rem 0.7rem 0.7rem;
    align-items: center;
  }
  .i24w:not(.i24w--full) .i24w-frame {
    width: min(26.5rem, calc(100vw - 1.4rem), calc((100vh - 4rem) * (var(--i24w-w) / var(--i24w-h))));
  }
.i24w:not(.i24w--full) .i24w-kicker {
  font-size: 12px;
  left: 0;
  top: -2.2rem;
  height: 32px;
  color: #fff;
}
  .i24w:not(.i24w--full) .i24w-close {
    top: -2.2rem;
    right: 0;
    width: 32px;
    height: 32px;
    min-width: 32px;
    padding: 0;
    font-size: 26px;
  }
}
@media (max-width: 420px) {
.i24w:not(.i24w--full) .i24w-kicker {
  left: 0;
  top: -2.15rem;
  color: #fff;
}
  .i24w:not(.i24w--full) .i24w-close {
    top: -2.15rem;
    right: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .i24w {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  .i24w-progress i {
    animation: none;
    width: 100%;
  }
}

/* —— Admin Werbung Punkt 2: grosse Produkt-Karten + lesbare Einstellungen —— */
.ad-admin-hub {
  margin: 0 0 1.35rem;
  padding: 1rem 1.1rem 0.85rem;
  background: #fff;
  border: 1px solid #d8dee8;
  border-radius: 10px;
}
.ad-admin-hub-kicker {
  margin: 0 0 0.65rem;
  font-family: system-ui, -apple-system, sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #64748b;
}
.ad-admin-hub-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
}
@media (max-width: 960px) {
  .ad-admin-hub-grid { grid-template-columns: 1fr; }
}
.ad-admin-hub-card {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto auto;
  column-gap: 0.75rem;
  row-gap: 0.2rem;
  padding: 1rem 1.05rem;
  border: 2px solid #e2e8f0;
  border-radius: 10px;
  text-decoration: none !important;
  color: inherit;
  background: #f8fafc;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.ad-admin-hub-card:hover {
  border-color: #c4a035;
  box-shadow: 0 4px 14px rgba(20, 32, 51, 0.08);
}
.ad-admin-hub-card.is-active {
  background: #fffbeb;
  border-color: #c4a035;
  box-shadow: 0 0 0 1px #c4a035;
}
.ad-admin-hub-card--coral.is-active { background: #fff7f2; border-color: #e85d2a; box-shadow: 0 0 0 1px #e85d2a; }
.ad-admin-hub-card--amber.is-active { background: #fffbeb; }
.ad-admin-hub-card--slate.is-active { background: #f1f5f9; border-color: #475569; box-shadow: 0 0 0 1px #475569; }
.ad-admin-hub-n {
  grid-row: 1 / span 3;
  align-self: start;
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: system-ui, sans-serif;
  font-weight: 800;
  font-size: 1.05rem;
  background: #142033;
  color: #fff;
}
.ad-admin-hub-card--coral .ad-admin-hub-n { background: #e85d2a; }
.ad-admin-hub-card--amber .ad-admin-hub-n { background: #b45309; }
.ad-admin-hub-card--slate .ad-admin-hub-n { background: #334155; }
.ad-admin-hub-title {
  font-family: system-ui, sans-serif;
  font-size: 1.12rem;
  font-weight: 800;
  line-height: 1.2;
}
.ad-admin-hub-body {
  font-family: system-ui, sans-serif;
  font-size: 0.92rem;
  line-height: 1.35;
  color: #334155;
}
.ad-admin-hub-hint {
  font-family: system-ui, sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  color: #b45309;
}
.ad-admin-hub-tools {
  margin: 0.75rem 0 0;
  font-family: system-ui, sans-serif;
  font-size: 0.9rem;
}

.ad-admin-step {
  margin: 1.25rem 0 0;
  padding: 1.15rem 1.2rem 1.25rem;
  border: 2px solid #d8dee8;
  border-radius: 10px;
  background: #fff;
}
.ad-admin-step-head {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin: 0 0 0.85rem;
}
.ad-admin-step-n {
  flex: 0 0 auto;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: #142033;
  color: #fff;
  font-family: system-ui, sans-serif;
  font-weight: 800;
  font-size: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ad-admin-step-title {
  margin: 0;
  font-family: system-ui, sans-serif;
  font-size: 1.15rem;
  font-weight: 800;
  line-height: 1.25;
}
.ad-admin-step-lead {
  margin: 0.2rem 0 0;
  font-family: system-ui, sans-serif;
  font-size: 0.92rem;
  color: #64748b;
}

/* Grosse Haken / Felder in Werbe-Formularen */
.admin-app .form.ad-admin-form label.check,
.admin-app #inserat-popup label.check,
.admin-app #ad-display-surfaces label.check {
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.65rem 0.75rem;
  margin: 0.2rem 0;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
  font-family: system-ui, sans-serif;
  font-size: 1.02rem;
  line-height: 1.35;
}
.admin-app .form.ad-admin-form label.check:has(input:checked),
.admin-app #inserat-popup label.check:has(input:checked),
.admin-app #ad-display-surfaces label.check:has(input:checked) {
  border-color: #c4a035;
  background: #fffbeb;
}
.admin-app .form.ad-admin-form label.check input[type="checkbox"],
.admin-app #inserat-popup label.check input[type="checkbox"],
.admin-app #ad-display-surfaces label.check input[type="checkbox"] {
  width: 1.35rem;
  height: 1.35rem;
  margin-top: 0.12rem;
  flex-shrink: 0;
  accent-color: #e85d2a;
}
.admin-app .form.ad-admin-form label:not(.check) > input[type="text"],
.admin-app .form.ad-admin-form label:not(.check) > input[type="number"],
.admin-app .form.ad-admin-form label:not(.check) > input[type="url"],
.admin-app .form.ad-admin-form label:not(.check) > input[type="file"],
.admin-app .form.ad-admin-form label:not(.check) > select,
.admin-app .form.ad-admin-form label:not(.check) > textarea,
.admin-app #inserat-popup label > input[type="number"] {
  min-height: 2.6rem;
  font-size: 1.05rem;
  padding: 0.55rem 0.7rem;
}
.admin-app .form.ad-admin-form > label:not(.check),
.admin-app #inserat-popup > label:not(.check) {
  font-family: system-ui, sans-serif;
  font-size: 1.02rem;
  font-weight: 650;
}

#inserat-popup.ad-admin-overlay-box,
#ad-display-surfaces.ad-admin-overlay-box {
  margin-top: 1.25rem;
  padding: 1.2rem 1.25rem 1.35rem;
  border: 3px solid #e85d2a !important;
  border-radius: 12px;
  background: #fff7f2 !important;
  box-shadow: 0 6px 18px rgba(232, 93, 42, 0.12);
}
#inserat-popup.ad-admin-overlay-box > legend,
#ad-display-surfaces.ad-admin-overlay-box > legend {
  font-family: system-ui, sans-serif;
  font-size: 1.2rem;
  font-weight: 800;
  color: #c2410c;
  padding: 0 0.4rem;
}
.ad-admin-overlay-master {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.9rem 1rem;
  margin: 0 0 1rem;
  border: 2px solid #e85d2a;
  border-radius: 10px;
  background: #fff;
  font-family: system-ui, sans-serif;
  font-size: 1.12rem;
  font-weight: 800;
}
.ad-admin-overlay-master input[type="checkbox"] {
  width: 1.55rem;
  height: 1.55rem;
  accent-color: #e85d2a;
}
.ad-admin-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.85rem;
}
@media (max-width: 640px) {
  .ad-admin-grid-2 { grid-template-columns: 1fr; }
}
.ad-admin-weekdays {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin: 0 0 0.85rem;
}
.ad-admin-weekdays label.check {
  min-width: 3.4rem;
  justify-content: center;
  padding: 0.55rem 0.65rem !important;
}

/* «Nach oben» — fixed Overlay, kein Document-Flow → kein CLS */
.i24-top {
  display: none;
  position: fixed;
  z-index: 46;
  right: max(1.1rem, env(safe-area-inset-right, 0px));
  bottom: max(1.15rem, env(safe-area-inset-bottom, 0px));
  margin: 0;
  padding: 0;
  width: 2.55rem;
  height: 2.55rem;
  border: 1px solid #e6ebf1;
  border-radius: 50%;
  background: #fff;
  color: #c4a056;
  font: inherit;
  box-shadow: 0 4px 16px rgba(26, 36, 51, 0.08);
  align-items: center;
  justify-content: center;
  gap: 0;
  cursor: pointer;
  touch-action: manipulation;
  opacity: 0;
  transform: translateY(0.35rem);
  pointer-events: none;
  transition: opacity 0.18s ease, transform 0.18s ease, border-color 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}
.i24-top:hover,
.i24-top:focus-visible {
  border-color: #c4a056;
}
.i24-top-ico {
  display: block;
  width: 0.5rem;
  height: 0.5rem;
  border-left: 1.5px solid currentColor;
  border-top: 1.5px solid currentColor;
  transform: rotate(45deg);
  margin-top: 0.22rem;
}
.i24-top-txt {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}
@media (max-width: 720px) {
  .i24-top {
    display: inline-flex;
  }
  .i24-top.is-visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }
}
/* Desktop/Tablet: gleicher Button auf Portal-Seiten (Regionen, lange Feeds) */
@media (min-width: 721px) {
  body.portal-page .i24-top {
    display: inline-flex;
  }
  body.portal-page .i24-top.is-visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }
}
@media (prefers-reduced-motion: reduce) {
  .i24-top {
    transition: none;
  }
}

html:has(body.ad-listing-muster),
html:has(body.ad-listing-page),
body.portal-page.ad-listing-muster,
body.portal-page.ad-listing-page,
body.portal-page.ad-listing-muster .portal,
body.portal-page.ad-listing-page .portal,
body.portal-page.ad-listing-muster .portal-band,
body.portal-page.ad-listing-page .portal-band,
body.portal-page.ad-listing-muster .portal-main,
body.portal-page.ad-listing-page .portal-main,
body.portal-page.ad-listing-muster .ad-listing-overview,
body.portal-page.ad-listing-page .ad-listing-overview,
body.portal-page.ad-listing-muster .ad-listing-detail,
body.portal-page.ad-listing-page .ad-listing-detail,
body.portal-page.ad-listing-muster .ad-listing-board,
body.portal-page.ad-listing-page .ad-listing-board,
body.portal-page.ad-listing-muster main,
body.portal-page.ad-listing-page main {
  --bg: #f8f9fa !important;
  background: #f8f9fa !important;
}

/* —— Startseite Marketing-Hub (ohne Werbe-Slots auf «/») —— */
body.hf-luft.portal-home-marketing .home-hub,
body.hf-hell.portal-home-marketing .home-hub {
  padding-top: 0;
}
/* Hub-Blöcke ohne äussere Kasten-Umrandung (Startseite) */
body.portal-home-marketing .home-hub-mast--air {
  background: #f8f9fa;
  border: none;
  border-top: none !important;
  box-shadow: none;
}
body.portal-home-marketing .home-hub-mast--air .home-hub-search-card {
  background: #f8f9fa;
  border: none;
  box-shadow: none;
}
body.portal-home-marketing .home-hub-mast--air .home-hub-mast-search {
  background: #f8f9fa;
}
body.portal-home-marketing .home-hub-panel {
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  padding: 1.35rem 0 1.45rem;
}
body.portal-home-marketing .home-hub-panel.region-showcase--plain {
  padding: 0.5rem 0 0.65rem;
}
body.portal-home-marketing .home-hub-panel--schaufenster.region-showcase--plain {
  padding: 0.5rem 0 0.65rem;
}
/* Hub-Mass wie Regionsseite: nur .wrap-Gutter, kein Extra-Inset */
body.portal-home-marketing .home-hub {
  padding: 0;
}
body.portal-home-marketing .home-hub-mast--air .home-hub-mast-inner {
  padding: 1.75rem 0 1.5rem;
}
@media (max-width: 720px) {
  body.portal-home-marketing .home-hub {
    padding-top: 1.35rem;
  }
  body.portal-home-marketing .home-hub-mast--air .home-hub-mast-inner {
    padding-top: 2.55rem;
    padding-bottom: 1.35rem;
  }
}
@media (min-width: 800px) {
  body.portal-home-marketing .home-hub-mast--air .home-hub-mast-inner {
    padding: 2.4rem 0 2rem;
  }
  body.portal-page:has(.news-band) .portal-home-marketing .home-hub-mast--air .home-hub-mast-inner {
    padding-top: 3.2rem;
  }
}
/* Angebots-Kacheln (Firmen / Inserate / Jobs / Blog) ohne Kasten-Rahmen */
body.portal-home-marketing .home-sf-offer {
  border: none;
  background: transparent;
  padding-left: 0;
  padding-right: 0;
}
body.portal-home-marketing .home-hub-offers-title,
body.portal-home-marketing .home-hub-panel-title {
  padding-left: 0;
  padding-right: 0;
}
/* Startseite: ein Fliesstext-Mass (wie Hero-Lead) — weniger Grössen-Mix */
body.portal-home-marketing {
  --home-hub-copy-size: clamp(0.94rem, 1.8vw, 1.06rem);
  --home-hub-copy-lh: 1.5;
}
body.portal-home-marketing .home-hub-mast-lead,
body.portal-home-marketing .home-hub-mast--air .home-hub-mast-more p,
body.portal-home-marketing .home-hub-mast-points li,
body.portal-home-marketing .home-hub-search-label,
body.portal-home-marketing .home-hub-search-mode-chip,
body.portal-home-marketing .home-hub-search-mode-hint,
body.portal-home-marketing .home-hub-search-ki-hint,
body.portal-home-marketing .home-hub-search-field input,
body.portal-home-marketing .home-hub-search-field textarea,
body.portal-home-marketing .home-hub-search-submit,
body.portal-home-marketing .home-hub-panel-title,
body.portal-home-marketing .home-hub-panel-lead,
body.portal-home-marketing .home-sf-offer-title,
body.portal-home-marketing .home-sf-offer-title-by,
body.portal-home-marketing .home-sf-offer-text,
body.portal-home-marketing .home-hub-why-body p,
body.portal-home-marketing .home-sf-name,
body.portal-home-marketing .home-sf-name.is-company,
body.portal-home-marketing .home-sf-place,
body.portal-home-marketing .home-sf-headline {
  font-size: var(--home-hub-copy-size);
  line-height: var(--home-hub-copy-lh);
}
body.portal-home-marketing .portal-main--marketing {
  max-width: none;
  padding-top: 0;
  padding-bottom: 2.5rem;
}
.home-hub {
  padding: 0.85rem 0 0;
}
.wrap.home-hub-stack {
  display: grid;
  gap: 0.9rem;
}
.home-hub-regions-foot {
  margin-top: 0.9rem;
}
.home-hub-panel {
  background: #fff;
  border: 1px solid #d8dee9;
  border-radius: var(--surface-radius, var(--btn-radius, 8px));
  padding: 1.35rem 1.45rem 1.45rem;
  box-shadow: 0 8px 32px rgba(26, 36, 51, 0.06);
}
.home-hub-panel-title {
  margin: 0 0 0.65rem;
  font-size: clamp(1.12rem, 2.2vw, 1.38rem);
  font-weight: 800;
  color: #1a2433;
  line-height: 1.25;
}
.home-hub-panel-lead {
  margin: 0 0 1.1rem;
  max-width: 46rem;
  font-size: 0.96rem;
  line-height: 1.55;
  color: #475569;
}
.home-hub-panel--regions .home-hub-panel-lead {
  max-width: none;
}
/* Hero insight24 — Durchblick + Suchkarte (nicht Verzeichnis-Pill) */
.home-hub-mast {
  position: relative;
  border-radius: var(--surface-radius, var(--btn-radius, 8px));
  overflow: hidden;
  box-shadow: 0 12px 40px rgba(26, 36, 51, 0.12);
  border-top: 4px solid var(--accent, #c4a035);
}
.home-hub-mast-bg {
  position: absolute;
  inset: 0;
  background-color: #1a2433;
  background-image:
    radial-gradient(ellipse 80% 60% at 20% 0%, rgba(196, 160, 53, 0.18) 0%, transparent 55%),
    linear-gradient(145deg, #1a2433 0%, #243447 45%, #1e3348 100%);
  background-size: cover;
  background-position: center;
}
.home-hub-mast-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.35rem;
  align-items: center;
  padding: 1.65rem 1.35rem 1.5rem;
  box-sizing: border-box;
}
@media (min-width: 920px) {
  .home-hub-mast-inner {
    /* Suchkarte breit, aber etwas schmaler als 58% — H1 «… deine Region» eine Zeile */
    grid-template-columns: minmax(0, 1fr) minmax(0, min(40rem, 50%));
    gap: 1.75rem 2.25rem;
    padding: 2rem 1.75rem 2rem 2rem;
    align-items: stretch;
  }
  body.portal-home-marketing .home-hub-mast--air .home-hub-mast-inner {
    padding: 2.4rem 0 2rem;
  }
  .home-hub-mast-search {
    align-self: center;
    width: 100%;
    max-width: 100%;
  }
}
.home-hub-mast-head {
  text-align: left;
  position: relative;
}
@media (min-width: 920px) {
  .home-hub-mast-head {
    text-align: left;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 100%;
  }
}
.home-hub-mast-title {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.1rem;
  max-width: none;
}
@media (min-width: 920px) {
  .home-hub-mast-title {
    align-items: flex-start;
  }
}
.home-hub-mast-eyebrow {
  display: block;
  margin: 0;
  font-family: var(--sans);
  font-size: clamp(1.12rem, 2.2vw, 1.32rem);
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--accent, #c4a035);
  line-height: 1.28;
}
.home-hub-mast-brandline {
  display: block;
  margin: 0.08rem 0 0;
  font-family: var(--font);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1.2rem, 2.6vw, 1.65rem);
  letter-spacing: 0.01em;
  line-height: 1.28;
  color: #c4a056;
  -webkit-text-fill-color: #c4a056;
  background-image: none;
  background-clip: border-box;
  -webkit-background-clip: border-box;
  /* Kein background-clip:text — bricht Descender (g, y) in Safari/WebKit (weisser Spalt), auch live. */
}
.home-hub-mast-h1 {
  margin: 0;
  max-width: 14ch;
  font-family: var(--sans);
  font-size: clamp(1.75rem, 4.2vw, 2.55rem);
  font-weight: 800;
  line-height: 1.12;
  color: #fff;
}
@media (min-width: 920px) {
  .home-hub-mast-h1 {
    max-width: 26ch;
  }
}
@media (min-width: 1180px) {
  .home-hub-mast-h1 {
    max-width: none;
  }
}
.home-hub-mast-h1.brand-word,
.home-hub-mast--air .home-hub-mast-h1.brand-word {
  display: inline-flex;
  max-width: none;
  font-family: var(--sans);
  font-weight: 600;
  font-size: 2.45rem;
  letter-spacing: -0.035em;
  line-height: 0.92;
  color: #111;
}
body.hf-luft .home-hub-mast-h1.brand-word {
  font-size: 2.45rem;
}
.home-hub-mast-lead {
  margin: 0.85rem 0 0;
  max-width: 34rem;
  font-size: clamp(0.94rem, 1.8vw, 1.06rem);
  line-height: 1.5;
  color: rgba(232, 238, 246, 0.92);
}
.home-hub-mast--air {
  overflow: visible;
  box-shadow: none;
  background: #fff;
  border: 1px solid #d8dee9;
  border-top: 1px solid #d8dee9 !important;
}
.home-hub-mast--air .home-hub-mast-bg {
  display: none;
}
.home-hub-mast--air .home-hub-mast-h1.brand-word {
  color: #111;
  font-weight: 600;
  line-height: 1;
}
.home-hub-mast--air .home-hub-mast-lead {
  color: #475569;
}
.home-hub-mast--air .home-hub-mast-eyebrow {
  color: #0b1c3a;
  font-weight: 600;
  letter-spacing: 0.06em;
  font-size: clamp(1.12rem, 2.2vw, 1.32rem);
}
.home-hub-mast--air .home-hub-mast-brandline {
  color: #c4a056;
}
/* Startseite Mobile: Hero-Titel klar erkennbar (nur ≤720px, Desktop unverändert) */
@media (max-width: 720px) {
  body.portal-home-marketing .home-hub-mast--air .home-hub-mast-title {
    gap: 0.2rem;
  }
  body.portal-home-marketing .home-hub-mast--air .home-hub-mast-eyebrow {
    font-size: clamp(1.38rem, 5.6vw, 1.62rem);
    letter-spacing: 0.055em;
    line-height: 1.2;
    font-weight: 700;
  }
  body.portal-home-marketing .home-hub-mast--air .home-hub-mast-brandline {
    font-size: clamp(1.52rem, 6.8vw, 1.95rem);
    margin-top: 0.12rem;
    line-height: 1.28;
    -webkit-text-fill-color: #c4a056;
    color: #c4a056;
    background-image: none;
  }
  /* Suchfelder + Suchen-Button = gleiche Breite wie Titel/Fliesstext (.wrap) */
  body.portal-home-marketing .home-hub-mast--air .home-hub-mast-inner {
    padding-left: 0;
    padding-right: 0;
  }
  body.portal-home-marketing .home-hub-mast--air .home-hub-search-card {
    padding-left: 0;
    padding-right: 0;
    border: none;
  }
  body.portal-home-marketing .home-hub-mast--air .home-hub-search-grid,
  body.portal-home-marketing .home-hub-mast--air .home-hub-search-actions {
    width: 100%;
    max-width: none;
  }
  body.portal-home-marketing .home-hub-mast--air .home-hub-search-field input,
  body.portal-home-marketing .home-hub-mast--air .home-hub-search-field textarea {
    width: 100%;
    max-width: none;
  }
  body.portal-home-marketing .home-hub-mast--air .home-hub-search-submit {
    display: block;
    width: 100%;
    max-width: none;
    box-sizing: border-box;
  }
}
.home-hub-mast--air .home-hub-search-card {
  box-shadow: none;
  border: 1px solid #e6ebf1;
  padding: 1rem 1.05rem 1.05rem;
}
.home-hub-mast--air .home-hub-mast-more {
  margin: 0.95rem 0 0;
  max-width: 38rem;
}
.home-hub-mast--air .home-hub-mast-more p {
  margin: 0 0 0.7rem;
  font-size: 0.92rem;
  line-height: 1.55;
  color: #475569;
  font-weight: 400;
}
.home-hub-mast--air .home-hub-mast-more p:last-child {
  margin-bottom: 0;
}
.home-hub-mast-points {
  list-style: none;
  margin: 0.85rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.4rem;
}
.home-hub-mast-points li {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.4;
  color: #334155;
  font-weight: 400;
  padding-left: 0.85rem;
  position: relative;
}
.home-hub-mast-points li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 0.32rem;
  height: 0.32rem;
  border-radius: 50%;
  background: #b8922e;
}
.home-hub-mast-points strong {
  font-weight: 650;
  color: #111;
}
/* Nach .home-hub-mast-points li { 0.88rem } — Startseite einheitlich wie Hero-Text */
body.portal-home-marketing .home-hub-mast--air .home-hub-mast-more p,
body.portal-home-marketing .home-hub-mast-points li,
body.portal-home-marketing .home-hub-mast-points strong {
  font-size: var(--home-hub-copy-size, clamp(0.94rem, 1.8vw, 1.06rem));
  line-height: var(--home-hub-copy-lh, 1.5);
}
body.portal-home-marketing .home-hub-mast-points strong {
  font-weight: 650;
}
.home-hub-search-card {
  margin: 0;
  background: #fff;
  border-radius: var(--surface-radius, var(--btn-radius, 8px));
  padding: 1.15rem 1.2rem 1.2rem;
  box-shadow: 0 10px 36px rgba(15, 23, 42, 0.2);
  border: 1px solid rgba(255, 255, 255, 0.12);
}
.home-hub-search-card-kicker {
  margin: 0 0 0.85rem;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #64748b;
}
.home-hub-search-mode {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0 0 0.7rem;
}
.home-hub-search-mode-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.32rem 0.75rem;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.25;
  color: var(--accent-2, #1a2433);
  background: #fff;
  border: 1px solid var(--region-chip-gold-border, #e0d4b8);
  border-radius: var(--region-chip-radius, var(--btn-radius, 8px));
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.home-hub-search-mode-chip-icon {
  display: inline-flex;
  color: #b45309;
}
.home-hub-search-mode-chip:hover,
.home-hub-search-mode-chip:focus-visible {
  background: #f5eed6;
  border-color: #c9b88a;
  color: #1a2433;
  outline: none;
}
.home-hub-search-mode-chip.is-active {
  color: var(--region-chip-ink, #1a2433);
  background: var(--region-chip-gold-bg, #efe6d2);
  border-color: var(--region-chip-gold-border, #e0d4b8);
  box-shadow: none;
  font-weight: 700;
}
.home-hub-search-mode-chip.is-active .home-hub-search-mode-chip-icon {
  color: #b45309;
}
.home-hub-search-mode-hint {
  margin: -0.45rem 0 0.85rem;
  font-size: 0.78rem;
  line-height: 1.4;
  color: #64748b;
}
.home-hub-search-grid {
  display: grid;
  gap: 0.85rem;
  align-items: start;
}
.home-hub-search-field--ki[hidden],
.home-hub-search-ki-hint[hidden],
.home-hub-mast-search:not(.is-search-ki) .home-hub-search-field--ki,
.home-hub-mast-search:not(.is-search-ki) .home-hub-search-ki-hint {
  display: none !important;
}
@media (min-width: 920px) {
  .home-hub-mast-search:not(.is-search-ki) .home-hub-search-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 1rem;
  }
  .home-hub-mast-search:not(.is-search-ki) .home-hub-search-field--q {
    grid-column: 1;
  }
  .home-hub-mast-search:not(.is-search-ki) .home-hub-search-field--place {
    grid-column: 2;
  }
  .home-hub-mast-search.is-search-ki .home-hub-search-field--ki,
  .home-hub-mast-search.is-search-ki .home-hub-search-ki-hint {
    grid-column: 1 / -1;
  }
}
.home-hub-search-grid-span {
  grid-column: 1 / -1;
}
.home-hub-search-ki-hint {
  margin: -0.35rem 0 0;
  font-size: 0.8rem;
  line-height: 1.45;
  color: #64748b;
}
.home-hub-search-label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.82rem;
  font-weight: 700;
  color: #334155;
}
.home-hub-search-field input,
.home-hub-search-field textarea {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  font: inherit;
  font-size: 1rem;
  padding: 0.62rem 0.75rem;
  min-height: 2.85rem;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #fff;
  color: #1a2433;
}
.home-hub-search-field input.home-hub-search-input {
  overflow-x: hidden;
  overflow-y: hidden;
  white-space: nowrap;
  text-overflow: clip;
}
.home-hub-search-field textarea.home-hub-search-textarea {
  display: block;
  resize: none;
  min-height: 2.85rem;
  max-height: 9rem;
  line-height: 1.45;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
  overflow-x: hidden;
  overflow-y: auto;
}
.home-hub-mast-search.is-search-ki .home-hub-search-textarea {
  min-height: 7.25rem;
  max-height: 16rem;
  padding: 0.85rem 0.9rem;
  font-size: 1.02rem;
  line-height: 1.55;
  border-color: #94a3b8;
  background: #f8fafc;
}
.home-hub-mast-search.is-search-ki .home-hub-search-field--ki .home-hub-search-label {
  font-size: 0.86rem;
  color: #1e4d7b;
}
.home-hub-mast-search.is-search-ki .home-hub-search-ki-hint {
  margin-top: 0.15rem;
}
.home-hub-search-field input:focus,
.home-hub-search-field textarea:focus {
  outline: 2px solid #c4a056;
  outline-offset: 1px;
  border-color: #c4a056;
}
.home-hub-search-field--place {
  position: relative;
}
.home-hub-search-card .jobs-place-input,
.home-hub-search-card .home-hub-place-input {
  position: relative;
  display: block;
  width: 100%;
}
.home-hub-search-card .jobs-place-input input,
.home-hub-search-card .home-hub-place-input input {
  display: block;
  width: 100%;
  min-height: 2.85rem;
  height: 2.85rem;
  padding-right: 2.75rem;
  box-sizing: border-box;
  line-height: 1.25;
}
.home-hub-search-card .jobs-place-input .jobs-gps-btn,
.home-hub-search-card .home-hub-place-input .jobs-gps-btn {
  top: 50%;
  right: 0.28rem;
  transform: translateY(-50%);
  width: 2.25rem;
  height: 2.25rem;
  margin: 0;
  color: #64748b;
  background: transparent;
}
.home-hub-search-card .jobs-gps-btn:hover,
.home-hub-search-card .jobs-gps-btn:focus,
.home-hub-search-card .jobs-gps-btn:focus-visible {
  color: #c4a056;
  background: rgba(196, 160, 86, 0.14);
  outline: none;
}
.home-hub-search-card .jobs-gps-btn svg {
  display: block;
  flex-shrink: 0;
}
.home-hub-place-suggest {
  position: absolute;
  z-index: 5;
  left: 0;
  right: 0;
  top: calc(100% - 0.15rem);
  max-height: 14rem;
  overflow: auto;
}
.home-hub-search-region-hint {
  margin: 0.5rem 0 0;
  font-size: 0.84rem;
  font-weight: 700;
  line-height: 1.4;
  color: #1e4d7b;
}
.home-hub-search-actions {
  margin-top: 0.15rem;
}
.home-hub-search-submit {
  width: 100%;
  min-height: 2.85rem;
  font-weight: 700;
}
body.portal-home-marketing .home-hub-search-submit.btn,
body.portal-home-marketing .home-hub-search-submit.btn:hover,
body.portal-home-marketing .home-hub-search-submit.btn:focus-visible {
  background: var(--accent-2, #1a2433) !important;
  color: #fff !important;
  border: 1px solid var(--accent-2, #1a2433) !important;
  border-radius: var(--btn-radius, 8px) !important;
  font-weight: 600;
}
body.portal-home-marketing .home-hub-search-mode-chip.is-active {
  background: var(--region-chip-gold-bg, #efe6d2) !important;
  border-color: var(--region-chip-gold-border, #e0d4b8) !important;
  color: var(--region-chip-ink, #1a2433) !important;
  box-shadow: none !important;
}
body.portal-home-marketing .home-hub-search-field input:focus,
body.portal-home-marketing .home-hub-search-field textarea:focus {
  outline: 2px solid #94a3b8;
  outline-offset: 1px;
  border-color: #94a3b8;
}
body.portal-home-marketing .home-hub-search-card .jobs-gps-btn:hover,
body.portal-home-marketing .home-hub-search-card .jobs-gps-btn:focus,
body.portal-home-marketing .home-hub-search-card .jobs-gps-btn:focus-visible {
  color: #475569;
  background: #f1f5f9;
}
.home-hub-search-geo-hint,
.home-hub-search-gps-msg {
  margin: 0.65rem 0 0;
  font-size: 0.82rem;
  font-weight: 400;
  line-height: 1.45;
  color: #64748b;
}
.home-hub-search-gps-msg {
  color: #64748b;
}
.home-hub-mast .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;
}
.home-hub-eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #64748b;
}
.home-hub-section-title {
  margin: 0 0 0.65rem;
  font-size: clamp(1.15rem, 2.2vw, 1.45rem);
  font-weight: 800;
  color: #1a2433;
}
.home-hub-section-intro {
  margin: 0 0 1rem;
  max-width: 40rem;
  color: #475569;
  line-height: 1.5;
}
.home-hub-panel--visual {
  padding: 1.35rem 1.25rem 1.45rem;
}
.home-hub-visual {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  align-items: start;
}
@media (min-width: 900px) {
  .home-hub-visual {
    grid-template-columns: minmax(0, 14rem) minmax(0, 1fr);
    gap: 1.5rem 2rem;
    align-items: stretch;
  }
}
.home-hub-visual-title {
  margin: 0 0 0.55rem;
  font-size: clamp(1.2rem, 2.4vw, 1.55rem);
  font-weight: 800;
  line-height: 1.2;
  color: #1a2433;
}
.home-hub-visual-lead {
  margin: 0 0 1rem;
  font-size: 0.94rem;
  line-height: 1.55;
  color: #475569;
}
.home-hub-visual-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.92rem;
  font-weight: 700;
  color: #1a2433;
  text-decoration: none;
  padding: 0.55rem 1rem;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  background: #fff;
  transition: border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
.home-hub-visual-cta:hover {
  border-color: var(--accent, #c4a035);
  color: #1a2433;
  box-shadow: 0 6px 20px rgba(26, 36, 51, 0.08);
  text-decoration: none;
}
.home-hub-visual-scroller {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 0.25rem;
  margin: 0 -0.15rem;
  padding: 0.15rem 0.15rem 0.35rem;
}
.home-hub-visual-track {
  display: flex;
  gap: 0.85rem;
  width: max-content;
  min-width: 100%;
}
@media (min-width: 721px) and (max-width: 899px) {
  .home-hub-visual-scroller {
    overflow: visible;
    margin: 0;
    padding: 0;
  }
  .home-hub-visual-track {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    gap: 0.85rem;
  }
  .home-hub-photo-card {
    width: 100%;
  }
}
@media (min-width: 900px) {
  .home-hub-visual-scroller {
    overflow: visible;
    margin: 0;
    padding: 0;
  }
  .home-hub-visual-track {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: 100%;
    gap: 0.85rem;
  }
}
.home-hub-photo-card {
  flex: 0 0 auto;
  width: clamp(9.5rem, 28vw, 11.5rem);
  scroll-snap-align: start;
  text-decoration: none;
  color: inherit;
  border-radius: var(--surface-radius, var(--btn-radius, 8px));
  overflow: hidden;
  background: #fff;
  border: 1px solid #e2e8f0;
  box-shadow: 0 8px 24px rgba(26, 36, 51, 0.07);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.home-hub-photo-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 32px rgba(26, 36, 51, 0.12);
  text-decoration: none;
}
.home-hub-photo-card-media {
  display: block;
  aspect-ratio: 4 / 5;
  background: #e8edf3;
  overflow: hidden;
}
.home-hub-photo-card-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.home-hub-photo-card-fallback {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(145deg, #cbd5e1, #94a3b8);
}
.home-hub-photo-card-body {
  display: grid;
  gap: 0.2rem;
  padding: 0.65rem 0.75rem 0.8rem;
}
.home-hub-photo-card-title {
  font-weight: 800;
  font-size: 0.92rem;
  line-height: 1.25;
  color: #1a2433;
}
.home-hub-photo-card-text {
  font-size: 0.78rem;
  line-height: 1.35;
  color: #64748b;
}
.home-hub-photo-card--jobs .home-hub-photo-card-title { color: #c41e3a; }
@media (min-width: 900px) {
  .home-hub-photo-card {
    width: 100%;
  }
}
/* Startseite Angebote — redaktionell, ohne Icon-Kästen (kein «KI-Template»-Look) */
.home-sf-offer--firmen { --sf-offer-mark: #1e4d7b; }
.home-sf-offer--inserate { --sf-offer-mark: #c2410c; }
.home-sf-offer--jobs { --sf-offer-mark: #c41e3a; }
.home-sf-offer--blogmore,
.home-sf-offer--blog,
.home-sf-offer--news { --sf-offer-mark: #0f766e; }
.home-sf-offer-accent {
  flex: 0 0 3px;
  width: 3px;
  align-self: stretch;
  min-height: 2.5rem;
  border-radius: 2px;
  background: var(--sf-offer-mark, var(--accent-2, #1a2433));
}
.home-hub-tile-icon {
  display: none;
}
.home-hub-tile--jobs { border-top: 3px solid #c41e3a; }
.home-hub-tile--inserate { border-top: 3px solid #b45309; }
.home-hub-tile--firmen { border-top: 3px solid #1e4d7b; }
.home-hub-tile--news { border-top: 3px solid #0f766e; }
.home-hub-panel--featured,
.lc-featured-panel {
  margin-top: 0.15rem;
}
.lc-featured-grid {
  margin-top: 0.35rem;
  display: grid;
  gap: 1rem clamp(0.75rem, 2vw, 1.15rem);
  grid-template-columns: minmax(0, 1fr);
  width: 100%;
}
@media (min-width: 640px) {
  .lc-featured-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 900px) {
  .lc-featured-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.home-hub-panel--featured .home-hub-featured-grid.home-hub-region-grid {
  margin-top: 0.35rem;
}
.home-hub-featured-as-region {
  min-width: 0;
}
.home-hub-featured-as-region .home-hub-region-photo-media.is-logo {
  background: #eef4fb;
}
.home-hub-featured-as-region .home-hub-region-photo-media.is-logo .home-hub-featured-logo {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
  padding: 1.15rem 1.25rem;
  box-sizing: border-box;
}
.home-hub-featured-as-region .home-hub-region-photo-media.is-empty {
  display: grid;
  place-items: center;
  background: #eef4fb;
}
.home-hub-featured-as-region .home-hub-region-photo-media.is-empty .lc-featured-initial {
  font-size: 2.25rem;
  font-weight: 800;
  color: #64748b;
}
.home-hub-featured-as-region .home-hub-region-photo-media img,
.home-hub-featured-as-region .home-hub-region-photo-media picture img {
  object-position: var(--company-focus, center center);
}
.home-hub-featured-as-region.portal-region-card-zuerich .home-hub-region-photo-media { box-shadow: 0 4px 16px rgba(30, 77, 123, 0.18); }
.home-hub-featured-as-region.portal-region-card-zuerichsee .home-hub-region-photo-media { box-shadow: 0 4px 16px rgba(47, 111, 159, 0.18); }
.home-hub-featured-as-region.portal-region-card-aargau .home-hub-region-photo-media { box-shadow: 0 4px 16px rgba(180, 83, 9, 0.15); }
.home-hub-featured-as-region.portal-region-card-zentralschweiz .home-hub-region-photo-media { box-shadow: 0 4px 16px rgba(15, 118, 110, 0.16); }
.home-hub-featured-as-region.portal-region-card-ostschweiz .home-hub-region-photo-media { box-shadow: 0 4px 16px rgba(109, 40, 217, 0.14); }
.home-hub-featured-as-region.portal-region-card-bern .home-hub-region-photo-media { box-shadow: 0 4px 16px rgba(159, 18, 57, 0.14); }
.home-hub-featured-as-region.portal-region-card-basel .home-hub-region-photo-media { box-shadow: 0 4px 16px rgba(29, 78, 216, 0.16); }
.home-hub-region-photo-place {
  font-size: 0.78rem;
  line-height: 1.35;
  color: #64748b;
}
.home-hub-featured-scroller,
.lc-featured-scroller {
  margin-top: 0.35rem;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  padding-bottom: 0.35rem;
}
.home-hub-featured-track {
  display: flex;
  gap: 0.75rem;
  width: max-content;
  min-width: 100%;
  padding: 0.15rem 0.05rem 0.25rem;
}
.lc-featured-card,
.home-hub-panel--featured .home-hub-featured-card {
  flex: 0 0 min(212px, 68vw);
  scroll-snap-align: start;
  max-width: 212px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(15, 23, 42, 0.06);
  transition: transform 0.16s ease, box-shadow 0.16s ease;
}
.home-hub-featured-scroller--region .lc-featured-card,
.home-hub-featured-scroller--region .home-hub-featured-card {
  flex: 0 0 min(212px, 68vw);
  max-width: 212px;
}
.lc-featured-card:hover,
.home-hub-panel--featured .home-hub-featured-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.1);
}
.lc-featured-media,
.home-hub-panel--featured .home-hub-featured-media {
  display: block;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #eef4fb;
  text-decoration: none;
}
.lc-featured-media img,
.lc-featured-media picture,
.home-hub-panel--featured .home-hub-featured-media img,
.home-hub-panel--featured .home-hub-featured-media picture {
  display: block;
  width: 100%;
  height: 100%;
}
.lc-featured-media picture img,
.lc-featured-media > img,
.home-hub-panel--featured .home-hub-featured-media picture img,
.home-hub-panel--featured .home-hub-featured-media > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--company-focus, center center);
}
.lc-featured-media.is-logo,
.home-hub-panel--featured .home-hub-featured-media.is-logo {
  background: #eef4fb;
}
.lc-featured-logo,
.home-hub-panel--featured .home-hub-featured-logo {
  object-fit: contain !important;
  object-position: center center !important;
  padding: 1.15rem 1.25rem;
  box-sizing: border-box;
  background: #eef4fb;
}
.lc-featured-media.is-empty,
.home-hub-panel--featured .home-hub-featured-media.is-empty {
  display: grid;
  place-items: center;
  background: #eef4fb;
}
.lc-featured-empty {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
}
.lc-featured-initial {
  font-size: 2.25rem;
  font-weight: 800;
  line-height: 1;
  color: #64748b;
  letter-spacing: -0.02em;
}
.lc-featured-body,
.home-hub-panel--featured .home-hub-featured-body {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  padding: 0.7rem 0.75rem 0;
  flex: 1;
  min-height: 5.5rem;
}
.home-hub-panel--featured .home-hub-featured-region {
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #94a3b8;
}
.home-hub-panel--featured .home-hub-featured-name {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 800;
  line-height: 1.28;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: calc(1.28em * 2);
}
.home-hub-panel--featured .home-hub-featured-name a {
  color: #111827;
  text-decoration: none;
}
.home-hub-panel--featured .home-hub-featured-name a:hover {
  text-decoration: underline;
}
.home-hub-panel--featured .home-hub-featured-cat {
  margin: 0;
  font-size: 0.8rem;
  line-height: 1.35;
  color: #6b7280;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lc-featured-cta,
.home-hub-panel--featured .home-hub-featured-cta {
  margin: 0.55rem -0.75rem 0;
  width: calc(100% + 1.5rem);
  padding: 0.62rem 0.65rem;
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  color: #fff;
  background: #d9282a;
  border: 0;
  border-radius: 0 0 9px 9px;
  transition: filter 0.15s ease;
}
.lc-featured-cta:hover,
.home-hub-panel--featured .home-hub-featured-cta:hover {
  filter: brightness(1.05);
  color: #fff;
  text-decoration: none;
}
.home-hub-panel--featured .home-hub-featured-foot {
  margin: 0.85rem 0 0;
  font-size: 0.82rem;
  line-height: 1.45;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.85rem;
  align-items: baseline;
}
.home-hub-panel--featured .home-hub-featured-foot a {
  font-weight: 700;
}
.site-explore-columns-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.85rem clamp(1.5rem, 5vw, 3.25rem);
  width: 100%;
  align-items: start;
}
@media (min-width: 900px) {
  .site-explore-columns-grid:not(.site-explore-columns-grid--three) {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 2rem clamp(2rem, 4vw, 3.5rem);
  }
  .site-explore-columns-grid--three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2rem clamp(1.5rem, 4vw, 3rem);
    width: 100%;
    max-width: none;
    align-items: stretch;
  }
}
@media (max-width: 720px) {
  .site-explore-columns-grid--three {
    grid-template-columns: 1fr;
  }
}
@media (min-width: 721px) and (max-width: 959px) {
  .site-explore-columns-grid--three {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.site-explore-columns-grid--three .site-explore-col {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}
.site-explore-columns-grid--three .site-explore-col-list {
  flex: 1 1 auto;
}
.site-explore-columns-grid--three .site-explore-col-more {
  margin-top: auto;
  padding-top: 0.85rem;
}
.site-explore-col-title {
  margin: 0 0 0.75rem;
  font-size: 1rem;
  font-weight: 800;
  color: #0f172a;
  letter-spacing: -0.01em;
}
.site-explore-col-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.site-explore-col-list a {
  color: #334155;
  text-decoration: none;
  font-size: 0.9375rem;
  line-height: 1.4;
}
.site-explore-col-list a:hover {
  color: #0f172a;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.site-explore-col-more {
  margin: 0.85rem 0 0;
  font-size: 0.9375rem;
  font-weight: 700;
}
.site-explore-col-more a {
  color: #0f172a;
  text-decoration: none;
}
.site-explore-col-more a:hover {
  text-decoration: underline;
  text-underline-offset: 2px;
}
.site-explore-col-more span[aria-hidden="true"] {
  font-weight: 400;
  opacity: 0.85;
}
.home-hub-panel--go-out {
  padding: 1.35rem 1.45rem 1.45rem;
}
.home-hub-panel--go-out .home-hub-go-grid {
  margin-top: 0.35rem;
}
.home-hub-go-foot {
  margin: 0.85rem 0 0;
  text-align: right;
  font-size: 0.92rem;
}
.home-hub-go-foot a {
  color: var(--portal-accent, #1e3a5f);
  font-weight: 600;
  text-decoration: none;
}
.home-hub-go-foot a:hover {
  text-decoration: underline;
}
.home-hub-panel--spotlight {
  padding: 1.35rem 1.45rem 1.5rem;
}
.home-hub-panel--spotlight .spotlight-card {
  margin-top: 0.15rem;
  border-radius: 10px;
  background: #fff;
}
.home-hub-panel-lead--spotlight {
  margin-bottom: 0.85rem;
}
.home-hub-panel--discover {
  padding: 1.5rem 1.45rem 1.55rem;
  border: 0;
  box-shadow: none;
  background: #fff;
}
.site-explore-columns--home .site-explore-col-title {
  font-size: 1rem;
}
.site-explore-columns--footer .site-explore-col-title {
  font-size: 1rem;
}
.insight-footer-explore .site-explore-columns,
.insight-footer .site-explore-columns {
  width: 100%;
}
.home-hub-mpu-demo {
  display: none;
}
@media (max-width: 720px) {
  .home-hub-mpu-demo {
    display: flex;
    justify-content: center;
    margin: 0.15rem 0 0.05rem;
  }
  .home-hub-mpu-demo-frame {
    display: block;
    width: 300px;
    height: 250px;
    border: 0;
    background: #081525;
    flex: 0 0 300px;
  }
}
.home-hub-panel--regions {
  padding-bottom: 0.25rem;
}
.home-hub-region-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.15rem 0.85rem;
  margin-top: 0.35rem;
  list-style: none;
  padding: 0;
}
.home-hub-region-grid > li {
  min-width: 0;
}
@media (min-width: 721px) {
  .home-hub-region-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 960px) {
  .home-hub-region-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.home-hub-region-photo {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  text-decoration: none;
  color: inherit;
  min-width: 0;
}
.home-hub-region-photo-media {
  display: block;
  aspect-ratio: 16 / 9;
  border-radius: var(--region-chip-radius, var(--btn-radius, 8px));
  overflow: hidden;
  background: linear-gradient(145deg, #e2e8f0 0%, #cbd5e1 100%);
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.08);
  transition: transform 0.16s ease, box-shadow 0.16s ease;
}
.home-hub-region-photo-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.home-hub-region-photo-fallback {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(160deg, #94a3b8 0%, #64748b 100%);
}
.home-hub-region-photo:hover .home-hub-region-photo-media,
.home-hub-region-photo:focus-visible .home-hub-region-photo-media {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.14);
}
.home-hub-region-photo:focus-visible {
  outline: 2px solid var(--accent, #c4a035);
  outline-offset: 4px;
  border-radius: var(--region-chip-radius, var(--btn-radius, 8px));
}
.home-hub-region-photo-body {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0 0.1rem;
}
.home-hub-region-photo-kicker {
  font-family: var(--sans);
  font-size: 0.88rem;
  font-weight: 500;
  font-style: normal;
  letter-spacing: -0.02em;
  text-transform: none;
  color: #c4a056;
  line-height: 1.2;
}
.home-hub-region-photo-name {
  margin: 0;
  font-family: var(--sans);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.25;
  color: #0f172a;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.home-hub-region-photo-go {
  font-size: 0.78rem;
  font-weight: 700;
  color: #64748b;
  margin-top: 0.1rem;
}
.home-hub-region-photo.portal-region-card-zuerich .home-hub-region-photo-media { box-shadow: 0 4px 16px rgba(30, 77, 123, 0.18); }
.home-hub-region-photo.portal-region-card-zuerichsee .home-hub-region-photo-media { box-shadow: 0 4px 16px rgba(47, 111, 159, 0.18); }
.home-hub-region-photo.portal-region-card-aargau .home-hub-region-photo-media { box-shadow: 0 4px 16px rgba(180, 83, 9, 0.15); }
.home-hub-region-photo.portal-region-card-zentralschweiz .home-hub-region-photo-media { box-shadow: 0 4px 16px rgba(15, 118, 110, 0.16); }
.home-hub-region-photo.portal-region-card-ostschweiz .home-hub-region-photo-media { box-shadow: 0 4px 16px rgba(109, 40, 217, 0.14); }
.home-hub-region-photo.portal-region-card-bern .home-hub-region-photo-media { box-shadow: 0 4px 16px rgba(159, 18, 57, 0.14); }
.home-hub-region-photo.portal-region-card-basel .home-hub-region-photo-media { box-shadow: 0 4px 16px rgba(29, 78, 216, 0.16); }
.portal-region-card-zuerich { border-top-color: #1e4d7b; }
.home-hub-panel--b2b.home-hub-b2b {
  background: #1a2433;
  color: #e8eef6;
  border-color: #1a2433;
  box-shadow: 0 10px 36px rgba(26, 36, 51, 0.12);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.25rem;
  justify-content: space-between;
}
.home-hub-b2b-title {
  margin: 0;
  font-weight: 700;
  font-size: 0.95rem;
}
.home-hub-b2b-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1.1rem;
}
.home-hub-b2b-links a {
  color: #fff;
  font-weight: 700;
  font-size: 0.88rem;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.home-hub-b2b-links a:hover { color: var(--accent, #c4a035); }
.home-hub-news {
  padding-top: 1.75rem;
}
.home-hub-news-heading {
  margin-bottom: 0.5rem;
}
.home-hub-prose {
  padding: 0.9rem 0 0;
}
.home-hub-panel--prose-top {
  margin-top: 0.15rem;
  padding: 1rem 1.25rem 1.1rem;
}
.home-hub-prose-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 0;
  align-items: stretch;
}
@media (max-width: 720px) {
  .home-hub-prose-grid { grid-template-columns: 1fr; }
}
.home-hub-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 100%;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: var(--surface-radius, var(--btn-radius, 8px));
  padding: 0.85rem 1rem 0.95rem;
  box-sizing: border-box;
}
.home-hub-card-body {
  flex: 1 1 auto;
}
.home-hub-card-title {
  margin: 0 0 0.4rem;
  font-size: 1.05rem;
  font-weight: 800;
  color: #1a2433;
  line-height: 1.25;
}
.home-hub-card-body p {
  margin: 0 0 0.55rem;
  font-size: 0.92rem;
  line-height: 1.5;
  color: #475569;
}
.home-hub-card-body p:last-child { margin-bottom: 0; }
.home-hub-faq {
  margin: 0;
}
.home-hub-faq-list {
  margin: 0;
  display: grid;
  gap: 1rem;
}
.home-hub-faq-item dt {
  margin: 0 0 0.35rem;
  font-weight: 800;
  color: #1a2433;
  font-size: 0.98rem;
}
.home-hub-faq-item dd {
  margin: 0;
  color: #475569;
  line-height: 1.5;
  font-size: 0.94rem;
}
.home-hub-cites {
  margin: 0;
}
.home-hub-cite-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1rem;
}
@media (min-width: 721px) {
  .home-hub-cite-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.home-hub-cite {
  margin: 0;
  padding: 1rem 1.1rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: var(--surface-radius, var(--btn-radius, 8px));
  min-height: 100%;
}
.home-hub-cta-band {
  padding: 0 0 2rem;
}
.home-hub-panel--cta {
  text-align: center;
  padding: 1.65rem 1.5rem;
}
.home-hub-panel--cta .home-hub-panel-lead {
  margin-left: auto;
  margin-right: auto;
}
.home-hub-cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  justify-content: center;
  margin-top: 1.15rem;
}
.home-hub-cite-text {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.5;
  color: #334155;
}
.home-hub-cite-text p { margin: 0; }
.home-hub-cite-source {
  display: block;
  margin-top: 0.65rem;
  font-size: 0.8rem;
  font-style: normal;
  color: #64748b;
}
.home-hub-cite-source a {
  color: #1e4d7b;
  font-weight: 700;
}

/* Blog & More — Rubrik-Kacheln (Namen im Admin) */
.blogmore-tile-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin: 1.25rem 0 2rem;
}
@media (min-width: 720px) {
  .blogmore-tile-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.15rem;
  }
}
.blogmore-tile {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: var(--surface-radius, var(--btn-radius, 8px));
  text-decoration: none;
  color: #fff;
  min-height: 10.5rem;
  background: #1a2433;
}
.blogmore-tile-media {
  display: block;
  aspect-ratio: 16 / 7;
  overflow: hidden;
}
.blogmore-tile-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.blogmore-tile-caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  margin: 0;
  padding: 0.7rem 0.9rem;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-align: center;
  background: linear-gradient(transparent, rgba(10, 16, 28, 0.82) 40%);
}
.blogmore-tile:hover .blogmore-tile-media img {
  transform: scale(1.03);
}
.blogmore-tile-media img {
  transition: transform 0.35s ease;
}
/* Blog & More Listing — Farben wie Startseite (Navy + Gold) */
.blogmore-listing .blogmore-band {
  padding-top: 1.1rem;
}
.blogmore-head {
  margin: 0 0 1.15rem;
}
.blogmore-eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent, #c4a035);
}
.blogmore-h1 {
  margin: 0 0 0.45rem;
  color: var(--accent-2, #1a2433);
  letter-spacing: -0.02em;
}
.blogmore-lead {
  max-width: 40rem;
  color: #4a5563;
  line-height: 1.55;
}
.blogmore-chips {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
  margin: 0 0 1.25rem;
  width: 100%;
}
@media (min-width: 720px) {
  .blogmore-chips {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (min-width: 1100px) {
  .blogmore-chips {
    grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
  }
}
.blogmore-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  box-sizing: border-box;
  min-height: 2.45rem;
  padding: 0.4rem 0.55rem;
  border-radius: var(--region-chip-radius, var(--btn-radius, 8px));
  border: 1px solid var(--region-chip-gold-border, #e0d4b8);
  background: #fff;
  color: var(--accent-2, #1a2433);
  text-decoration: none;
  text-align: center;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.2;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.blogmore-chip:hover,
.blogmore-chip:focus-visible {
  background: #f5eed6;
  border-color: #c9b88a;
  color: #1a2433;
  outline: none;
}
.blogmore-chip.is-active {
  background: var(--region-chip-gold-bg, #efe6d2);
  border-color: var(--region-chip-gold-border, #e0d4b8);
  color: var(--region-chip-ink, #1a2433);
}
/* Blog & More — Geo-Suche ohne Kasten, bündig mit Intro + Leerhinweis darunter */
.blogmore-listing .jobs-search.blogmore-geo {
  margin: 0 0 1.5rem;
  max-width: none;
  width: 100%;
  padding: 0;
  border: none !important;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--accent-2, #1a2433);
}
.blogmore-geo .blogmore-geo-lead,
.blogmore-geo .jobs-radius-head span,
.blogmore-geo .jobs-radius-ends,
.blogmore-geo label > span {
  color: #475569;
}
.blogmore-geo .jobs-radius-head b,
.blogmore-geo .js-jobs-radius-label {
  color: var(--accent, #c4a035);
}
.blogmore-geo input[type="search"],
.blogmore-geo input[type="text"],
.blogmore-geo .jobs-place-input {
  background: #fff;
  border-color: #e6ebf1;
  color: var(--accent-2, #1a2433);
}
.blogmore-geo .jobs-search-submit {
  background: #efe6d2;
  border-color: #c9b88a;
  color: #1a2433;
  font-weight: 700;
  border-radius: 8px;
}
.blogmore-geo .jobs-search-submit:hover,
.blogmore-geo .jobs-search-submit:focus-visible {
  background: #e8dcc0;
  border-color: #c9b88a;
  color: #1a2433;
}
.blogmore-geo .jobs-radius {
  display: none;
  margin-top: 0.85rem;
}
.blogmore-geo.has-place .jobs-radius {
  display: block;
}
.blogmore-geo .jobs-radius-ends {
  display: none;
}
.blogmore-geo .jobs-gps-btn {
  color: var(--accent-2, #1a2433);
}
@media (min-width: 720px) {
  .blogmore-geo .jobs-search-row {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 11.5rem;
  }
}
.blogmore-count {
  color: var(--accent-2, #1a2433);
  font-weight: 600;
}
.blogmore-empty-panel {
  margin: 0.35rem 0 1.4rem;
  padding: 1.15rem 1.15rem 1.25rem;
  border-radius: 1rem;
  border: 1px solid #e6ebf1;
  background: #fff;
}
.blogmore-q-none {
  margin: 0 0 0.55rem;
  font-size: 1.02rem;
  font-weight: 700;
  color: var(--accent-2, #1a2433);
}
.blogmore-q-alt-lead {
  margin: 0 0 0.75rem;
  font-size: 0.9rem;
  color: #5c6570;
}
.blogmore-alts {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
  margin: 0;
}
.blogmore-alt {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.45rem;
  padding: 0.4rem 1rem;
  border-radius: var(--region-chip-radius, var(--btn-radius, 8px));
  border: 1px solid #e0d4b8;
  background: #fff;
  color: #6e5a32;
  text-decoration: none;
  text-align: center;
  font-size: 0.86rem;
  font-weight: 650;
  line-height: 1.2;
  box-shadow: none;
}
.blogmore-alt:hover,
.blogmore-alt:focus-visible {
  background: #efe6d2;
  border-color: #e0d4b8;
  color: #6e5a32;
  outline: none;
}
.blogmore-alt--rubric {
  background: #efe6d2;
  border-color: #e0d4b8;
  color: #6e5a32;
}
.blogmore-geo-lead {
  margin: 0 0 0.7rem;
  font-size: 0.88rem;
  color: #5c6570;
}
.blogmore-geo-title {
  margin: 1.35rem 0 0.65rem;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--accent-2, #1a2433);
}
.blogmore-kat-empty {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.jobs-pager.blogmore-pager {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  margin: 1.35rem 0 0.35rem;
}
.jobs-pager.blogmore-pager .jobs-pager-num,
.jobs-pager.blogmore-pager .jobs-pager-nav {
  border-radius: 8px;
  outline: none;
}
.jobs-pager.blogmore-pager .jobs-pager-num.is-on,
.jobs-pager.blogmore-pager .jobs-pager-num[aria-current="page"] {
  background: #efe6d2;
  border-color: #c9b88a;
  color: #1a2433;
}
.jobs-pager.blogmore-pager .jobs-pager-num:hover,
.jobs-pager.blogmore-pager .jobs-pager-nav:hover,
.jobs-pager.blogmore-pager .jobs-pager-num:focus-visible,
.jobs-pager.blogmore-pager .jobs-pager-nav:focus-visible {
  border-color: #c9b88a;
  background: #f5eed6;
  color: #1a2433;
}
.jobs-pager.blogmore-pager .jobs-pager-num.is-on:hover,
.jobs-pager.blogmore-pager .jobs-pager-num[aria-current="page"]:hover {
  background: #efe6d2;
  color: #1a2433;
}
.portal-company.blogmore-card {
  padding: 1.05rem 1.1rem 1.2rem;
  border: 1px solid #eceae6;
  box-shadow: 0 8px 22px rgba(15, 39, 68, 0.07);
  gap: 0;
  background: #fff;
}
.portal-company.blogmore-card.has-cover {
  padding-top: 1.05rem;
}
.portal-company.blogmore-card .portal-company-cover {
  position: relative;
  display: block;
  margin: 0 0 0.95rem;
  width: 100%;
  height: auto;
  min-height: 11rem;
  aspect-ratio: 16 / 10;
  background: #e8e4dc;
  overflow: hidden;
}
.portal-company.blogmore-card .portal-company-cover picture,
.portal-company.blogmore-card .portal-company-cover > img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}
.portal-company.blogmore-card .portal-company-cover img,
.portal-company.blogmore-card .portal-company-cover picture img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--company-focus, center center);
}
.portal-company.blogmore-card a.portal-company-name,
.portal-company.blogmore-card strong.portal-company-name {
  margin: 0;
  color: #1a2433 !important;
  font-size: 1.12rem;
  font-weight: 700;
  line-height: 1.28;
  letter-spacing: 0.01em;
  text-transform: none;
  overflow-wrap: anywhere;
}
.portal-company.blogmore-card a.portal-company-name:hover,
.portal-company.blogmore-card a.portal-company-name:focus-visible {
  color: #c41e3a !important;
}
.portal-company.blogmore-card .portal-company-place {
  display: block;
  margin: 0.28rem 0 0;
  font-size: 0.82rem;
  color: #6b7280;
}
.portal-company.blogmore-card .portal-company-teaser,
.portal-company.blogmore-card p.portal-company-teaser {
  margin: 0.55rem 0 0;
  color: #222;
  font-size: 0.94rem;
  font-weight: 400;
  line-height: 1.5;
  min-height: calc(1.5em * 4);
}
.portal-company.blogmore-card .blogmore-card-more {
  margin: 0 0 0 0.2rem;
  color: inherit;
  font-weight: 500;
  font-size: inherit;
  text-decoration: underline !important;
  text-underline-offset: 0.18em;
  white-space: nowrap;
}
.portal-company.blogmore-card .blogmore-card-more:hover,
.portal-company.blogmore-card .blogmore-card-more:focus-visible {
  color: #c41e3a;
  opacity: 1;
}
.blogmore-card-more-name {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.portal-company.blogmore-card a {
  margin-top: 0;
}
.company-dir .portal-companies {
  gap: 1.15rem;
}
@media (min-width: 560px) {
  .company-dir .portal-companies {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 900px) {
  .company-dir .portal-companies {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.portal-company-km {
  margin-left: 0.4rem;
  color: #c4122f;
  font-weight: 600;
  white-space: nowrap;
}
.blogmore-profile-article {
  background: #fff;
  border: 1px solid #eceae6;
  box-shadow: 0 8px 22px rgba(15, 39, 68, 0.07);
  padding: 1.45rem 1.2rem 2rem;
  margin: 0.35rem 0 1.1rem;
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}
@media (min-width: 720px) {
  .blogmore-profile-article {
    padding: 2rem 2.15rem 2.4rem;
  }
}
.blogmore-profile-eyebrow {
  margin: 0 0 0.45rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #c41e3a;
}
.blogmore-profile-name {
  margin: 0;
  font-family: var(--sans);
  font-size: clamp(1.15rem, 2.4vw, 1.55rem);
  font-weight: var(--heading-weight);
  line-height: 1.25;
  color: #1a2433;
  overflow-wrap: anywhere;
}
.blogmore-profile-place {
  margin: 0.4rem 0 0;
  font-size: 0.95rem;
  color: #6b7280;
}
.blogmore-profile-hero {
  margin: 1.45rem 0 0.35rem;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #e8e4dc;
}
.blogmore-profile-hero .company-detail-cover-frame,
.blogmore-profile-hero picture,
.blogmore-profile-hero img {
  display: block;
  width: 100%;
  height: 100%;
}
.blogmore-profile-hero img,
.blogmore-profile-hero picture img {
  object-fit: cover;
  object-position: var(--company-focus, center center);
}
.blogmore-profile-lead {
  margin: 0 0 1.1rem;
  font-size: 1.08rem;
  line-height: 1.55;
  color: #1a2433;
}
.blogmore-profile-body {
  width: 100%;
  max-width: none;
}
.article-body .blogmore-split {
  display: grid;
  gap: 1rem 1.6rem;
  margin: 1.4rem 0;
  align-items: center;
}
.article-body .blogmore-split-text { order: 1; }
.article-body .blogmore-split-media { order: 2; margin: 0; }
.article-body .blogmore-split-media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: #e8e4dc;
}
@media (min-width: 720px) {
  .article-body .blogmore-split {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
  .article-body .blogmore-split--img-left .blogmore-split-media { order: 0; }
  .article-body .blogmore-split--img-left .blogmore-split-text { order: 1; }
  .article-body .blogmore-split--img-right .blogmore-split-text { order: 0; }
  .article-body .blogmore-split--img-right .blogmore-split-media { order: 1; }
}
.blogmore-profile-h2 {
  margin: 1.85rem 0 0.7rem;
  font-size: 1.15rem;
  font-weight: 700;
  color: #1a2433;
}
.blogmore-profile-gallery .article-gallery {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
}
@media (min-width: 720px) {
  .blogmore-profile-gallery .article-gallery {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.blogmore-profile-video .video-embed {
  margin: 0;
}
.blogmore-profile-contact {
  position: relative;
  margin: 2rem 0 0;
  padding: 0;
  width: 100%;
  max-width: none;
  box-sizing: border-box;
  background: transparent;
  border: 0;
}
.blogmore-profile-contact .blogmore-profile-h2 {
  margin: 0 0 0.75rem;
}
.blogmore-profile-contact-logo {
  display: block;
  max-width: 8rem;
  max-height: 3rem;
  width: auto;
  height: auto;
  object-fit: contain;
  margin: 0 0 0.7rem;
}
.blogmore-profile-contact-name {
  margin: 0 0 0.35rem;
  font-weight: 700;
  color: #1a2433;
}
.blogmore-profile-contact-addr {
  margin: 0 0 0.65rem;
  line-height: 1.45;
  color: #334155;
}
.blogmore-profile-contact-list {
  margin: 0;
  padding: 0;
  list-style: none;
  line-height: 1.55;
}
.blogmore-profile-contact-list a {
  font-weight: 600;
  text-decoration: none;
}
.blogmore-profile-contact-list a:hover,
.blogmore-profile-contact-list a:focus-visible {
  color: #c41e3a;
}
.blogmore-profile-map {
  margin: 1.15rem 0 0;
  width: 100%;
  max-width: none;
}
.blogmore-profile-map-slot {
  position: relative;
  height: 33rem;
  overflow: hidden;
}
.blogmore-profile-map-frame {
  position: relative;
  width: 100%;
  height: 33rem;
  max-height: 33rem;
  aspect-ratio: auto;
  overflow: hidden;
}
.blogmore-profile-map-canvas {
  width: 100%;
  height: 100%;
}
.blogmore-map-pin {
  background: none !important;
  border: 0 !important;
  filter: drop-shadow(0 1px 2px rgba(15, 39, 68, 0.35));
}
.blogmore-map-pin.is-here {
  filter: drop-shadow(0 2px 4px rgba(196, 30, 58, 0.45));
}
.blogmore-map-pop {
  font-size: 0.82rem;
  line-height: 1.35;
  color: #1a2433;
}
.blogmore-map-pop img {
  display: block;
  width: 100%;
  height: 6.4rem;
  object-fit: cover;
  margin: 0 0 0.5rem;
  background: #e8e4dc;
}
.blogmore-map-pop strong {
  display: block;
  font-size: 0.95rem;
}
.blogmore-map-pop-place,
.blogmore-map-pop-here {
  display: inline-block;
  margin: 0.15rem 0.4rem 0.25rem 0;
  color: #64748b;
  font-size: 0.78rem;
}
.blogmore-map-pop-here {
  color: #c41e3a;
  font-weight: 700;
}
.blogmore-map-pop p {
  margin: 0.25rem 0 0.45rem;
  color: #334155;
}
.blogmore-map-pop a {
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.leaflet-container a {
  color: #c41e3a;
}
.blogmore-profile-map-title {
  margin: 0 0 0.45rem;
  font-size: 0.95rem;
  font-weight: 700;
}
.blogmore-profile-back {
  margin: 0 0 0.5rem;
}

/* Startseite Dach — Schaufenster + Angebote (Header unangetastet) */
.home-hub-panel--schaufenster {
  padding: 1.15rem 0 1.05rem;
  overflow: hidden;
}
.region-showcase-band {
  background: #ffffff;
  padding: 0.15rem 0 0.35rem;
  border-bottom: 1px solid #e4e0d8;
}
.region-showcase--plain.home-hub-panel {
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  padding: 0.5rem 0 0.65rem;
}
.region-showcase--plain .home-sf-head {
  padding: 0 0 0.65rem;
}
.region-showcase--plain .home-sf-set {
  padding-left: 0;
  padding-right: 0;
}
.region-showcase--plain .home-sf-foot {
  padding-left: 0;
  padding-right: 0;
}
.region-stage-chips {
  background: var(--bg, #f8f9fa);
  padding: 0.85rem 0 1rem;
  border-bottom: 1px solid #e4e0d8;
}
.region-stage-chips .region-stage-toolbar-wrap {
  margin: 0;
}
.region-stage-chips .region-stage-toolbar {
  margin-top: 0;
}
.region-chips-intro {
  margin: 0 0 0.85rem;
  max-width: none;
}
.region-chips-intro-text {
  max-width: min(100%, 68rem);
}
/* Wie H1 «Zürich»: gleiche Serif + 700 — Farbe/Grösse wie Kicker «Über die Region» */
.region-chips-intro-title {
  margin: 0 0 0.45rem;
  font-family: var(--font);
  font-size: 0.82rem;
  font-weight: 800;
  line-height: 1.28;
  letter-spacing: 0.04em;
  text-transform: none;
  color: #8a7340;
}
.region-chips-intro-text {
  margin: 0;
  font-family: var(--sans);
  font-size: 0.94rem;
  line-height: 1.55;
  color: #475569;
  text-wrap: pretty;
}
.region-chips-intro-text + .region-chips-intro-text {
  margin-top: 0.65rem;
}
.home-sf-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  padding: 0 1.45rem 0.85rem;
}
.home-hub-panel--schaufenster .home-hub-panel-title {
  margin: 0;
  font-weight: 700;
}
.home-sf-book {
  flex: 0 0 auto;
  font-size: 0.88rem;
  font-weight: 500;
  color: #0066ff;
  letter-spacing: 0.01em;
}
.home-sf-viewport {
  overflow: hidden;
  height: 11.35rem;
  container-type: inline-size;
}
.home-sf-track {
  display: flex;
  align-items: stretch;
  width: max-content;
  height: 11.35rem;
}
.home-sf-track.is-marquee {
  animation: home-sf-scroll var(--sf-dur, 40s) linear infinite;
  will-change: transform;
}
.home-sf-set {
  display: flex;
  align-items: stretch;
  gap: 0.85rem;
  flex: 0 0 auto;
  box-sizing: border-box;
  padding: 0 0.85rem 0 1.45rem;
}
.home-sf-card {
  flex: 0 0 11.2rem;
  width: 11.2rem;
  display: flex;
  flex-direction: column;
  text-decoration: none !important;
  color: inherit;
  min-width: 0;
}
.home-sf-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 7.15rem;
  background: #fff;
  border: 1px solid #e8edf3;
  border-radius: var(--surface-radius, 8px);
  overflow: hidden;
  box-sizing: border-box;
  padding: 0.65rem 0.7rem;
}
.home-sf-logo.is-logo img,
.home-sf-logo.is-logo picture,
.home-sf-logo.is-logo picture img,
.home-sf-logo.is-empty img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}
/* Fotos + Werbemotive: volle Kachel, kein Rand (kein Beige-Padding) */
.home-sf-logo.is-ad {
  background: #fff;
  padding: 0;
  align-items: stretch;
}
.home-sf-logo.is-ad picture {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
}
.home-sf-logo.is-ad img,
.home-sf-logo.is-ad picture img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
  object-position: center;
}
.home-sf-initial {
  font-size: 1.55rem;
  font-weight: 600;
  color: #94a3b8;
  line-height: 1;
}
.home-sf-headline {
  display: block;
  font-family: var(--sans);
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.25;
  color: #1a2433;
  margin-top: 0.35rem;
}
.home-sf-name.is-company {
  font-size: 0.75rem;
  font-weight: 500;
  color: #64748b;
}
.home-sf-name {
  margin: 0.45rem 0 0;
  font-size: 0.82rem;
  font-weight: 500;
  color: #1a2433;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.home-sf-place {
  margin: 0.1rem 0 0;
  font-size: 0.75rem;
  font-weight: 400;
  color: #64748b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.home-sf-card.is-ghost {
  pointer-events: none;
}
.home-sf-card.is-ghost .home-sf-logo {
  border-style: dashed;
  background: #fafbfc;
}
.home-sf-logo.is-pending {
  background: #eceae6;
  border-color: #e0ddd6;
}
.home-sf-ph {
  font-size: 0.78rem;
  font-weight: 500;
  color: #94a3b8;
  text-align: center;
  line-height: 1.3;
  padding: 0 0.35rem;
}
.home-sf-name.is-ghost-label {
  color: #94a3b8;
  font-weight: 400;
}
.home-sf-premium {
  display: inline-block;
  margin-left: 0.35rem;
  padding: 0.05rem 0.35rem;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #7c5a12;
  background: #efe6d2;
  border: 1px solid #e0d4b8;
  border-radius: 4px;
  vertical-align: middle;
}
.home-sf-foot {
  margin: 0.75rem 1.45rem 0;
  font-size: 0.78rem;
}
.home-hub-panel--offers {
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}
.home-hub-offers-title {
  margin: 0 0 0.7rem;
  padding: 0 0.15rem;
  font-size: 1.05rem;
}
.home-sf-offers {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.65rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.home-sf-offers > li {
  min-width: 0;
  display: flex;
}
@media (min-width: 720px) {
  .home-sf-offers {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1100px) {
  .home-sf-offers {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.home-sf-offer {
  display: flex;
  flex: 1 1 auto;
  width: 100%;
  align-items: stretch;
  gap: 0.65rem;
  padding: 0.55rem 0 0.65rem;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #e8ecf1;
  border-radius: 0;
  text-decoration: none !important;
  color: inherit;
  min-height: 0;
  box-sizing: border-box;
}
.home-sf-offer-copy {
  display: grid;
  gap: 0.2rem;
  min-width: 0;
  padding-bottom: 0.15rem;
}
.home-sf-offer-title {
  font-size: 0.95rem;
  font-weight: 650;
  color: #1a2433;
  line-height: 1.3;
  transition: color 0.15s ease;
}
/* Gold wie «für deine Region» — nicht var(--accent) (Portal-Theme = oft Rot) */
body.portal-home-marketing .home-sf-offer:link .home-sf-offer-title,
body.portal-home-marketing .home-sf-offer:visited .home-sf-offer-title {
  color: #1a2433;
}
body.portal-home-marketing .home-sf-offer:hover .home-sf-offer-title,
body.portal-home-marketing .home-sf-offer:focus-visible .home-sf-offer-title {
  color: var(--header-link-active, #c4a056);
}
body.portal-home-marketing .home-sf-offer:hover .home-sf-offer-title-main,
body.portal-home-marketing .home-sf-offer:focus-visible .home-sf-offer-title-main {
  color: var(--header-link-active, #c4a056);
}
body.portal-home-marketing .home-sf-offer:hover .home-sf-offer-title-by,
body.portal-home-marketing .home-sf-offer:focus-visible .home-sf-offer-title-by {
  color: #64748b;
}
.home-sf-offer-title-by {
  font-weight: 500;
  font-size: 0.78rem;
  color: #64748b;
}
.home-sf-offer-title-main {
  transition: color 0.15s ease;
}
.home-sf-offer-text {
  font-size: 0.82rem;
  font-weight: 400;
  color: #64748b;
  line-height: 1.4;
}
@media (min-width: 1100px) {
  .home-sf-offers {
    gap: 1.1rem;
  }
  .home-sf-offer {
    padding: 0.35rem 0 0;
    border-bottom: 0;
  }
  .home-sf-offer-accent {
    min-height: 2.85rem;
  }
}
.home-hub-panel--why {
  padding: 1.25rem 1.45rem 1.35rem;
}
.home-hub-why-body {
  max-width: none;
  display: grid;
  gap: 0.85rem 2.25rem;
}
@media (min-width: 800px) {
  .home-hub-why-body {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: start;
  }
}
.home-hub-why-body p {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.55;
  color: #475569;
  font-weight: 400;
}
@keyframes home-sf-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .home-sf-track,
  .home-sf-track.is-marquee {
    animation: none;
    flex-wrap: wrap;
    width: auto;
    height: auto;
    max-width: 100%;
  }
  .home-sf-set[aria-hidden="true"] {
    display: none;
  }
  .home-sf-viewport {
    height: auto;
  }
  .home-sf-card[aria-hidden="true"] {
    display: none;
  }
}

/* Regionsseite: gleicher Header wie Start, eigener Einstieg darunter */
.jobs-portal-stage.region-stage {
  padding-bottom: 0.25rem;
}
.jobs-portal-stage .region-stage-head {
  margin-bottom: 0;
}
.jobs-portal-stage-title {
  max-width: none;
  margin: 0 0 0.15rem;
  text-transform: lowercase;
}
.jobs-portal-stage-by {
  margin: 0 0 0.35rem;
  font-family: var(--sans);
  font-size: clamp(0.95rem, 2.1vw, 1.2rem);
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: 0.02em;
  color: var(--header-link-active, #c4a035);
  text-transform: lowercase;
}
body.portal-jobs .breadcrumbs {
  padding-top: 0.65rem;
  padding-bottom: 0.2rem;
}
@media (max-width: 720px) {
  body.portal-jobs .breadcrumbs {
    padding-top: 0.45rem;
    padding-bottom: 0.15rem;
  }
}
.jobs-portal-hero.portal-band {
  padding: 0.1rem 0 1.15rem;
}
.portal-jobs-page .portal-band#stellen {
  padding-top: 0.35rem;
}
.jobs-hub-mast {
  border: none;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
}
.jobs-hub-mast-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.15rem 1.35rem;
  padding: 0;
  align-items: start;
  box-sizing: border-box;
}
@media (min-width: 920px) {
  .jobs-hub-mast-inner {
    /* Spalte 2 fest min(38rem,52%) — darf nicht auf Inhaltsbreite schrumpfen (Suchen ≠ Anmelden-Linie) */
    grid-template-columns: minmax(0, 1fr) min(38rem, 52%);
    gap: 1.15rem 2rem;
    padding: 0;
    align-items: start;
  }
  .jobs-hub-mast-head {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    min-height: 0;
    padding-top: 0.15rem;
  }
  /* Filter-Oben bündig mit «Ort, PLZ» in Intro-Zeile 1 — links Titel/Text unverändert */
  .portal-jobs-page:not(.portal-jobs-page--results) .jobs-hub-mast-search {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
    justify-self: stretch;
    width: 100%;
    min-width: 0;
    margin-top: calc(
      clamp(2rem, 4vw, 3.15rem) * 1.05
      + clamp(0.95rem, 2.1vw, 1.2rem) * 1.25
      + 0.52rem
      + 0.98rem * 1.52 * 0.62
    );
  }
  .jobs-hub-mast-inner > .jobs-hub-filters-wide {
    grid-column: 1 / -1;
    grid-row: 2;
    min-width: 0;
  }
  .jobs-hub-filters-wide:has(#jobs-extra-panel[hidden]) {
    display: none;
  }
  .jobs-hub-mast-inner:not(:has(#jobs-extra-panel:not([hidden]))) > .jobs-portal-search-first--mast {
    grid-row: 2;
  }
  .jobs-hub-mast-inner:has(#jobs-extra-panel:not([hidden])) > .jobs-portal-search-first--mast {
    grid-row: 3;
  }
  .jobs-hub-mast-inner > .jobs-portal-search-first--mast {
    grid-column: 1;
    align-self: end;
    margin: 1.35rem 0 0.2rem;
    max-width: none;
    white-space: nowrap;
    overflow: visible;
    font-size: var(--portal-size-secondary, 0.9375rem);
    line-height: 1.55;
  }
  .jobs-hub-search-card.jobs-search {
    width: 100%;
    margin: 0;
  }
}
@media (min-width: 920px) and (max-width: 1080px) {
  .jobs-hub-mast-inner > .jobs-portal-search-first--mast {
    font-size: var(--portal-size-secondary, 0.9375rem);
  }
}
.jobs-hub-search-card .jobs-search-row--stack {
  grid-template-columns: minmax(0, 1fr);
}
.jobs-hub-search-card .jobs-search-row--stack .jobs-search-field--q {
  grid-column: 1 / -1;
}
@media (min-width: 520px) {
  .jobs-hub-search-card .jobs-search-row--stack {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
  }
  .jobs-hub-search-card .jobs-search-row--stack .jobs-search-field--q {
    grid-column: 1 / -1;
  }
  .jobs-hub-search-card .jobs-search-row--stack .jobs-search-place-wrap {
    grid-column: 1;
  }
  .jobs-hub-search-card .jobs-search-row--stack .jobs-search-actions {
    grid-column: 2;
    grid-row: 2;
  }
}
.jobs-hub-mast-head .jobs-portal-stage-title {
  margin: 0;
  line-height: 1.05;
}
.jobs-hub-mast-head .jobs-portal-stage-by {
  margin: 0.02rem 0 0.5rem;
}
.jobs-hub-mast-head .jobs-hub-intro {
  font-size: var(--portal-size-body, 1rem);
  line-height: 1.55;
  max-width: 38rem;
}
.jobs-hub-intro--lead {
  margin-top: 0;
  margin-bottom: 0.5rem;
}
.jobs-hub-intro--extra {
  margin: 0;
  font-size: var(--portal-size-secondary, 0.9375rem);
  line-height: 1.55;
  color: var(--portal-meta, #475569);
  max-width: 38rem;
}
.jobs-hub-search-card.jobs-search {
  margin: 0;
}
/* Jobs-Hub: Filter ohne Kasten — rechts bündig mit .wrap (wie Firmen/Blog) */
.portal-jobs-page .jobs-hub-mast-search .jobs-hub-search-card.jobs-search {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0;
  background: transparent !important;
}
.portal-jobs-page .jobs-hub-mast-search .jobs-search-row,
.portal-jobs-page .jobs-hub-mast-search .jobs-radius,
.portal-jobs-page .jobs-hub-mast-search .jobs-facet-main {
  width: 100%;
  max-width: none;
}
@media (min-width: 520px) {
  .portal-jobs-page .jobs-hub-search-card .jobs-search-row--stack {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    width: 100%;
    box-sizing: border-box;
  }
  .portal-jobs-page .jobs-hub-mast-search .jobs-search-row--stack .jobs-search-field--q {
    width: 100%;
  }
  .portal-jobs-page .jobs-hub-mast-search .jobs-search-actions {
    justify-self: end;
    align-self: end;
  }
  .portal-jobs-page .jobs-hub-mast-search .jobs-search-submit {
    min-height: 2.7rem;
    box-sizing: border-box;
  }
}
.jobs-hub-mast-search {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  min-width: 0;
  width: 100%;
}
/* Hinweis links unter Intro (nicht im Intro-Block) */
.jobs-hub-mast-inner > .jobs-portal-search-first--mast {
  margin: 1.1rem 0 0;
  max-width: none;
  font-size: var(--portal-size-secondary, 0.9375rem);
  line-height: 1.55;
  color: var(--portal-meta, #475569);
}
@media (max-width: 919px) {
  .jobs-hub-mast-inner > .jobs-portal-search-first--mast {
    white-space: normal;
    max-width: 38rem;
  }
}
.portal-jobs-page:not(.portal-jobs-page--results) .jobs-portal-hero.portal-band {
  padding-bottom: 0.85rem;
}
.portal-jobs-page:not(.portal-jobs-page--results) main {
  flex: 0 1 auto;
}
/* Jobs-Hub Start — Desktop: links ~1,5 cm tiefer; Suche rechts wie zuvor (voller margin-top) */
@media (min-width: 920px) {
  .portal-jobs-page:not(.portal-jobs-page--results) {
    --jobs-mast-head-air: 3.75rem;
  }
  .portal-jobs-page:not(.portal-jobs-page--results) .jobs-hub-mast-head {
    padding-top: calc(0.15rem + var(--jobs-mast-head-air, 3.75rem));
  }
}
.portal-jobs-page .jobs-chip,
.portal-jobs-page .jobs-chip-more {
  border: 1px solid var(--region-chip-gold-border, #e0d4b8);
  border-radius: var(--region-chip-radius, 8px);
  background: #fff;
  color: var(--region-chip-ink, #1a2433);
  font-weight: 500;
}
.portal-jobs-page .jobs-chip:hover,
.portal-jobs-page .jobs-chip-more:hover,
.portal-jobs-page .jobs-chip:focus-visible,
.portal-jobs-page .jobs-chip-more:focus-visible {
  background: var(--region-chip-gold-bg, #efe6d2);
  border-color: var(--region-chip-gold-border, #e0d4b8);
  color: var(--region-chip-ink, #1a2433);
}
.portal-jobs-page .jobs-chip.is-on,
.portal-jobs-page .jobs-chip-more[aria-expanded="true"] {
  background: var(--region-chip-gold-bg, #efe6d2);
  border-color: var(--region-chip-gold-active-border, #c9b88a);
  color: var(--region-chip-ink, #1a2433);
  font-weight: 600;
  box-shadow: none;
}
.portal-jobs-page .jobs-filter-panel .jobs-facet-label {
  color: var(--region-chip-ink, #1a2433);
}
.portal-jobs-page .jobs-filter-panel-close {
  border-color: var(--region-chip-gold-border, #e0d4b8);
  border-radius: var(--region-chip-radius, 8px);
  font-weight: 500;
  padding: 0.22rem 0.65rem;
  min-height: 2.05rem;
  box-sizing: border-box;
}
.portal-jobs-page .jobs-filter-panel-close:hover,
.portal-jobs-page .jobs-filter-panel-close:focus-visible {
  background: var(--region-chip-gold-bg, #efe6d2);
  border-color: var(--region-chip-gold-border, #e0d4b8);
  color: var(--region-chip-ink, #1a2433);
}
/* Erweiterte Suche: volle .wrap-Breite unter Titel + Suche (Quer-Raster) */
.portal-jobs-page .jobs-hub-filters-wide .jobs-filter-panel:not([hidden]) {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  column-gap: 1.25rem;
  row-gap: 0.75rem;
  align-items: start;
  margin-top: 0.65rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--line);
}
.portal-jobs-page .jobs-hub-filters-wide .jobs-filter-panel:not([hidden]) .jobs-filter-panel-head {
  grid-column: 1 / -1;
}
.portal-jobs-page .jobs-hub-filters-wide .jobs-filter-panel:not([hidden]) .jobs-facet {
  margin: 0;
  min-width: 0;
}
.portal-jobs-page .jobs-hub-filters-wide .jobs-filter-panel:not([hidden]) .jobs-chips {
  margin-top: 0.35rem;
}
@media (min-width: 600px) {
  .portal-jobs-page .jobs-hub-filters-wide .jobs-filter-panel:not([hidden]) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 920px) {
  .portal-jobs-page .jobs-hub-filters-wide .jobs-filter-panel:not([hidden]) {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (min-width: 1100px) {
  .portal-jobs-page .jobs-hub-filters-wide .jobs-filter-panel:not([hidden]) {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}
.portal-jobs-page .jobs-search-submit,
.portal-jobs-page .jobs-search .btn-ghost {
  border-radius: 8px;
}
.portal-jobs-page .jobs-pager-num,
.portal-jobs-page .jobs-pager-nav {
  border-radius: 8px;
}
.region-stage {
  background: var(--bg, #f8f9fa);
  border-bottom: 1px solid #e4e0d8;
}
.region-stage-inner {
  padding: 1.75rem 0 1.5rem;
}
.region-stage-head {
  display: grid;
  gap: 0.85rem;
  grid-template-columns: minmax(0, 1fr);
}
.region-stage-head-copy {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  min-width: 0;
}
.region-stage-mark {
  width: 100%;
  height: 8.5rem;
  margin: 0;
  border-radius: var(--surface-radius, var(--btn-radius, 8px));
  overflow: hidden;
  background: var(--region-stage-img-bg, #eceae6);
}
.region-stage-mark picture {
  display: block;
  width: 100%;
  height: 100%;
}
.region-stage-mark svg,
.region-stage-mark img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.region-stage-kicker {
  margin: 0 0 0.35rem;
  font-family: var(--font);
  font-size: 0.82rem;
  font-weight: 800;
  line-height: 1.28;
  letter-spacing: 0.04em;
  text-transform: none;
  color: #8a7340;
}
.region-stage-title {
  margin: 0 0 0.85rem;
  max-width: 18em;
  font-family: var(--font);
  font-size: clamp(2rem, 4vw, 3.15rem);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--accent-2);
}
.region-stage-lead {
  margin: 0;
  max-width: 42rem;
  font-family: var(--sans);
  font-size: 1.05rem;
  line-height: 1.55;
  color: #243044;
}
.region-stage-head-copy .region-stage-lead {
  max-width: 100%;
}
.region-stage-copy {
  display: grid;
  gap: 0.85rem;
  margin-top: 1.25rem;
}
.region-stage-copy p {
  margin: 0;
  font-family: var(--sans);
  font-size: var(--portal-size-body, 1rem);
  line-height: 1.55;
  color: var(--portal-text-secondary, #334155);
}
.region-stage-places {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
  margin: 1.15rem 0 0;
}
.region-stage-places-label {
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6d6458;
  margin-right: 0.25rem;
}
.region-stage-places span:not(.region-stage-places-label) {
  font-family: var(--sans);
  font-size: 0.82rem;
  line-height: 1;
  color: var(--accent-2);
  background: #fff;
  border: 1px solid #e4dfd4;
  border-radius: 999px;
  padding: 0.38rem 0.7rem;
}
.region-stage-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem 1.25rem;
  margin-top: 1rem;
}
.region-stage-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0;
  flex: 1 1 16rem;
  min-width: 0;
}
.region-stage-toolbar .region-stage-current-wx {
  flex: 0 1 auto;
  max-width: min(100%, 20rem);
  margin-left: auto;
}
.region-stage-toolbar .region-stage-current-wx-label {
  margin-bottom: 0.3rem;
  text-align: right;
}
.region-stage-toolbar .region-wx-now {
  padding: 0.55rem 0.8rem;
  font-size: 0.88rem;
  box-shadow: 0 1px 6px rgba(26, 36, 51, 0.06);
}
.region-stage-toolbar .region-wx-now-temp {
  font-size: 1.05rem;
}
.region-stage-toolbar .region-wx-now-icon .wx-icon-sm svg {
  width: 1.45rem;
  height: 1.45rem;
}
@media (max-width: 720px) {
  /* Region-Sprung-Chips + Intro auch Mobile (wie PDF-Referenz) */
  body.portal-page .region-stage-chips {
    display: block;
    padding-top: 0.85rem;
    padding-bottom: 1rem;
  }
  body.portal-page .region-stage-chips .region-chips-intro {
    margin-bottom: 0.65rem;
  }
  body.portal-page .region-stage-toolbar {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
    margin-top: 0;
  }
  body.portal-page .region-stage-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.4rem;
    flex: none;
    width: 100%;
  }
  body.portal-page .region-stage-nav a.region-stage-nav-link,
  body.portal-page .region-stage-nav label.region-stage-nav-link {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 2.75rem;
    padding: 0.4rem 0.45rem;
    font-size: 0.78rem;
    line-height: 1.25;
    overflow-wrap: anywhere;
    width: 100%;
    box-sizing: border-box;
  }
  body.portal-page .region-stage-toolbar .region-stage-current-wx {
    width: 100%;
    max-width: none;
    margin-left: 0;
  }
  body.portal-page .region-stage-toolbar .region-stage-current-wx-label {
    text-align: left;
  }
}
.region-stage-nav a.region-stage-nav-link,
.region-stage-nav label.region-stage-nav-link {
  font-family: var(--sans);
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--region-chip-ink, #1a2433);
  background: #fff;
  border: 1px solid var(--region-chip-gold-border, #e0d4b8);
  border-radius: var(--region-chip-radius, 8px);
  padding: 0.42rem 0.8rem;
  text-decoration: none;
  cursor: pointer;
  box-sizing: border-box;
}
.region-stage-nav a.region-stage-nav-link:hover,
.region-stage-nav a.region-stage-nav-link:focus-visible,
.region-stage-nav label.region-stage-nav-link:hover,
.region-stage-nav label.region-stage-nav-link:focus-visible {
  background: var(--region-chip-gold-bg, #efe6d2);
  border-color: var(--region-chip-gold-border, #e0d4b8);
  color: var(--region-chip-ink, #1a2433);
}
body:has(.region-shelf-input[id$="-wetter"]:checked) .region-stage-nav label[for$="-wetter"],
body:has(.region-shelf-input[id$="-blog"]:checked) .region-stage-nav label[for$="-blog"],
body:has(.region-shelf-input[id$="-firmen"]:checked) .region-stage-nav label[for$="-firmen"],
body:has(.region-shelf-input[id$="-inserate"]:checked) .region-stage-nav label[for$="-inserate"],
body:has(.region-shelf-input[id$="-jobs"]:checked) .region-stage-nav label[for$="-jobs"],
body:has(.region-shelf-input[id$="-immo"]:checked) .region-stage-nav label[for$="-immo"],
body:has(.region-shelf-input[id$="-events"]:checked) .region-stage-nav label[for$="-events"],
body:has(.region-shelf-input[id$="-magazin"]:checked) .region-stage-nav label[for$="-magazin"] {
  background: var(--region-chip-gold-bg, #efe6d2);
  border-color: var(--region-chip-gold-active-border, #c9b88a);
  color: var(--region-chip-ink, #1a2433);
}
.region-shelf-pager button.jobs-pager-num,
.region-shelf-pager button.jobs-pager-nav {
  font: inherit;
  cursor: pointer;
}
.region-stage-sources {
  margin: 0.85rem 0 0;
  max-width: 46rem;
  font-family: var(--sans);
  font-size: var(--portal-size-label, 0.8125rem);
  line-height: 1.45;
  color: var(--portal-meta-soft, #526070);
}
body.region-home {
  --region-chip-radius: 8px;
  --region-chip-gold-bg: #efe6d2;
  --region-chip-gold-border: #e0d4b8;
  --region-chip-ink: #1a2433;
  --region-chip-gold-active-bg: #e8dcc0;
  --region-chip-gold-active-border: #c9b88a;
  --region-stage-img-bg: #eceae6;
  background: var(--bg, #f8f9fa);
}
body.region-home .region-stage-nav a.region-stage-nav-link,
body.region-home .region-stage-nav label.region-stage-nav-link,
body.region-home .region-shelf-chips label,
body.region-home .region-shelf-inserate-cats .region-shelf-kat,
body.region-home .region-shelf button.btn.region-shelf-filter-btn:not(.btn-ghost) {
  color: var(--region-chip-ink, #1a2433) !important;
}
body.region-home .region-stage-nav a.region-stage-nav-link:hover,
body.region-home .region-stage-nav label.region-stage-nav-link:hover,
body.region-home .region-stage-nav a.region-stage-nav-link:focus-visible,
body.region-home .region-stage-nav label.region-stage-nav-link:focus-visible,
body.region-home .region-shelf-chips label:hover,
body.region-home .region-shelf-chips label:focus-visible,
body.region-home .region-shelf-inserate-cats .region-shelf-kat:hover,
body.region-home .region-shelf-inserate-cats .region-shelf-kat:focus-visible,
body.region-home .region-shelf-inserate-cats .region-shelf-kat.is-on {
  color: var(--region-chip-ink, #1a2433) !important;
}
body.region-home .portal-main {
  background: var(--bg, #f8f9fa);
}
/* Kurze Regions-Start: kein Leerraum zwischen Banner und Footer (main flex:1). */
body.region-home main {
  flex: 0 1 auto;
}
.region-home .region-news {
  background: var(--bg, #f8f9fa);
}
.region-promo-band,
.region-newsletter-closer {
  margin: 1.35rem 0 0;
  padding: 0.35rem 0 2rem;
}
.portal-main > .region-promo-band,
.portal-main > .region-newsletter-closer {
  margin: 0;
  padding: 3rem 0;
  border-top: 1px solid #ebe6dc;
}
.region-stage-chips + .region-promo-band,
.region-stage-chips + .region-newsletter-closer {
  margin-top: 0;
  padding: 4rem 0 3.25rem;
  border-top: none;
}
#region-top-news + .region-promo-band,
#top-news + .region-promo-band,
#region-top-news + .region-newsletter-closer,
#top-news + .region-newsletter-closer {
  margin-top: 0;
  padding: 3rem 0;
  border-top: none;
}
.portal-main > .region-promo-band + .region-shelf,
.portal-main > .region-newsletter-closer + .region-shelf {
  padding-top: 0;
  padding-bottom: 0;
  margin: 0;
}
body.region-home .region-shelf:not(:has(.region-shelf-input:checked)) {
  padding: 0;
  margin: 0;
}
body.region-home .region-shelf:not(:has(.region-shelf-input:checked)) .region-shelf-panels {
  display: none;
}
.region-promo-band-wrap {
  min-width: 0;
}
.region-promo-band-frame {
  position: relative;
  width: 100%;
  max-width: 994px;
  margin: 0 auto;
}
.region-promo-band-frame-inner {
  border-radius: var(--surface-radius, var(--btn-radius, 8px));
  overflow: hidden;
  box-shadow: 0 12px 36px rgba(8, 21, 37, 0.14);
  background: linear-gradient(115deg, #081525 0%, #123056 46%, #0066ff 100%);
}
.region-promo-band-frame--html5 {
  overflow: visible;
  padding-bottom: 0;
}
.region-promo-band-frame--html5:has(.region-promo-band-guide) {
  padding-bottom: 2.85rem;
}
#region-nl-fly-layer {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 10040;
  overflow: hidden;
}
.region-nl-fly-env {
  position: fixed;
  left: 0;
  top: 0;
  width: 56px;
  height: 42px;
  margin: 0;
  pointer-events: none;
  filter: drop-shadow(0 6px 14px rgba(8, 21, 37, 0.35));
  will-change: transform, opacity;
}
.region-nl-fly-env svg {
  display: block;
  width: 100%;
  height: 100%;
}
.insight-footer-nl-email input.region-nl-fly-landed {
  transition: border-color 0.22s ease, box-shadow 0.22s ease;
}
.insight-footer-nl-email input.region-nl-fly-landed--gold {
  border-color: #c4a035;
  box-shadow: 0 0 0 3px rgba(196, 160, 53, 0.32);
}
.insight-footer-nl-email input.region-nl-fly-landed--teal {
  border-color: #0d9488;
  box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.28);
}
.insight-footer-nl-email input.region-nl-fly-landed--violet {
  border-color: #7c3aed;
  box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.26);
}
.insight-footer-nl-email input.region-nl-fly-landed--rose {
  border-color: #e11d48;
  box-shadow: 0 0 0 3px rgba(225, 29, 72, 0.24);
}
.insight-footer-nl-email input.region-nl-fly-landed--emerald {
  border-color: #059669;
  box-shadow: 0 0 0 3px rgba(5, 150, 105, 0.28);
}
.insight-footer-nl-email input.region-nl-fly-landed--amber {
  border-color: #d97706;
  box-shadow: 0 0 0 3px rgba(217, 119, 6, 0.28);
}
body.hf-luft .insight-footer-nl-email input.region-nl-fly-landed:focus,
body.hf-hell .insight-footer-nl-email input.region-nl-fly-landed:focus,
body.hf-luft .insight-footer-nl-email input.region-nl-fly-landed:focus-visible,
body.hf-hell .insight-footer-nl-email input.region-nl-fly-landed:focus-visible {
  outline: none;
}
body.hf-luft .insight-footer-nl-email input.region-nl-fly-landed--gold:focus,
body.hf-hell .insight-footer-nl-email input.region-nl-fly-landed--gold:focus,
body.hf-luft .insight-footer-nl-email input.region-nl-fly-landed--gold:focus-visible,
body.hf-hell .insight-footer-nl-email input.region-nl-fly-landed--gold:focus-visible {
  border-color: #c4a035;
  box-shadow: 0 0 0 3px rgba(196, 160, 53, 0.32);
}
body.hf-luft .insight-footer-nl-email input.region-nl-fly-landed--teal:focus,
body.hf-hell .insight-footer-nl-email input.region-nl-fly-landed--teal:focus,
body.hf-luft .insight-footer-nl-email input.region-nl-fly-landed--teal:focus-visible,
body.hf-hell .insight-footer-nl-email input.region-nl-fly-landed--teal:focus-visible {
  border-color: #0d9488;
  box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.28);
}
body.hf-luft .insight-footer-nl-email input.region-nl-fly-landed--violet:focus,
body.hf-hell .insight-footer-nl-email input.region-nl-fly-landed--violet:focus,
body.hf-luft .insight-footer-nl-email input.region-nl-fly-landed--violet:focus-visible,
body.hf-hell .insight-footer-nl-email input.region-nl-fly-landed--violet:focus-visible {
  border-color: #7c3aed;
  box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.26);
}
body.hf-luft .insight-footer-nl-email input.region-nl-fly-landed--rose:focus,
body.hf-hell .insight-footer-nl-email input.region-nl-fly-landed--rose:focus,
body.hf-luft .insight-footer-nl-email input.region-nl-fly-landed--rose:focus-visible,
body.hf-hell .insight-footer-nl-email input.region-nl-fly-landed--rose:focus-visible {
  border-color: #e11d48;
  box-shadow: 0 0 0 3px rgba(225, 29, 72, 0.24);
}
body.hf-luft .insight-footer-nl-email input.region-nl-fly-landed--emerald:focus,
body.hf-hell .insight-footer-nl-email input.region-nl-fly-landed--emerald:focus,
body.hf-luft .insight-footer-nl-email input.region-nl-fly-landed--emerald:focus-visible,
body.hf-hell .insight-footer-nl-email input.region-nl-fly-landed--emerald:focus-visible {
  border-color: #059669;
  box-shadow: 0 0 0 3px rgba(5, 150, 105, 0.28);
}
body.hf-luft .insight-footer-nl-email input.region-nl-fly-landed--amber:focus,
body.hf-hell .insight-footer-nl-email input.region-nl-fly-landed--amber:focus,
body.hf-luft .insight-footer-nl-email input.region-nl-fly-landed--amber:focus-visible,
body.hf-hell .insight-footer-nl-email input.region-nl-fly-landed--amber:focus-visible {
  border-color: #d97706;
  box-shadow: 0 0 0 3px rgba(217, 119, 6, 0.28);
}
.region-promo-band-frame--html5 .region-promo-band-frame-inner {
  aspect-ratio: 994 / 250;
  max-height: min(250px, 52vw);
}
.region-promo-html5 {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 120px;
  border: 0;
  margin: 0;
  padding: 0;
  background: transparent;
}
.region-promo-band-guide {
  position: absolute;
  left: 50%;
  bottom: 0.15rem;
  transform: translateX(-50%);
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  pointer-events: none;
  z-index: 3;
}
.region-promo-band-guide-line {
  display: block;
  width: 2px;
  height: 1.25rem;
  border-radius: 2px;
  background: linear-gradient(180deg, #0066ff 0%, #7ec8ff 100%);
  animation: regionPromoGuideLine 2.1s ease-in-out infinite;
}
.region-promo-band-guide-chevron {
  display: block;
  width: 12px;
  height: 12px;
  margin-top: -0.45rem;
  border-right: 2.5px solid #0066ff;
  border-bottom: 2.5px solid #0066ff;
  transform: rotate(45deg);
  animation: regionPromoGuideBounce 2.1s ease-in-out infinite;
}
.region-promo-band-guide-text {
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #475569;
}
@keyframes regionPromoGuideLine {
  0%, 100% { opacity: 0.55; transform: scaleY(0.92); }
  50% { opacity: 1; transform: scaleY(1.08); }
}
@keyframes regionPromoGuideBounce {
  0%, 100% { transform: rotate(45deg) translateY(0); opacity: 0.75; }
  50% { transform: rotate(45deg) translateY(4px); opacity: 1; }
}
.region-promo-band--house {
  padding-bottom: 0;
}
.region-promo-band-ad .ad-display-stack,
.region-promo-band-ad .ad-display,
.region-promo-band-ad .ad-display-frame {
  width: 100%;
  max-width: 994px;
  margin: 0 auto;
}
.region-promo-band-ad .ad-display-creative,
.region-promo-band-ad .ad-display img {
  width: 100%;
  height: auto;
  aspect-ratio: 994 / 250;
  object-fit: contain;
  border-radius: 14px;
}
.region-shelf-wrap > .region-promo-band,
.region-shelf-wrap > .region-newsletter-closer {
  margin-top: 1.75rem;
  padding-top: 0.25rem;
}
.region-promo-html5-scale {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 120px;
  overflow: hidden;
}
.region-promo-nl-mobile {
  display: none;
}
/* Nur Mobile Hochformat: kein Regions-Banner; Footer-Newsletter bleibt überall sichtbar (Desktop wie vorher). */
@media (max-width: 720px) and (orientation: portrait) {
  #region-newsletter-closer {
    display: none !important;
  }
}
@media (max-width: 720px) {
  .region-promo-band-guide {
    display: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .region-promo-band-guide-line,
  .region-promo-band-guide-chevron {
    animation: none;
  }
}
.region-shelf {
  background: var(--bg, #f8f9fa);
  padding: 0.4rem 0 2.6rem;
}
#region-inhalt,
.region-shelf-panel {
  scroll-margin-top: calc(var(--portal-pad-top, 9.5rem) + 0.35rem);
}
.region-shelf .jobs-pager.region-shelf-pager {
  margin-top: 1rem;
}
.region-shelf-input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  border: 0;
}
.region-shelf-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0.85rem 0 0;
}
.region-shelf-chips label {
  font-family: var(--sans);
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--region-chip-ink, #1a2433);
  background: #fff;
  border: 1px solid var(--region-chip-gold-border, #e0d4b8);
  border-radius: var(--region-chip-radius, 8px);
  padding: 0.42rem 0.85rem;
  cursor: pointer;
  box-sizing: border-box;
}
.region-shelf-chips label:hover,
.region-shelf-chips label:focus-visible {
  background: var(--region-chip-gold-bg, #efe6d2);
  border-color: var(--region-chip-gold-border, #e0d4b8);
  color: var(--region-chip-ink, #1a2433);
}
.region-shelf .wrap:has(.region-shelf-input[id$="-blog"]:checked) label[for$="-blog"],
.region-shelf .wrap:has(.region-shelf-input[id$="-firmen"]:checked) label[for$="-firmen"],
.region-shelf .wrap:has(.region-shelf-input[id$="-inserate"]:checked) label[for$="-inserate"],
.region-shelf .wrap:has(.region-shelf-input[id$="-jobs"]:checked) label[for$="-jobs"],
.region-shelf .wrap:has(.region-shelf-input[id$="-magazin"]:checked) label[for$="-magazin"] {
  background: var(--region-chip-gold-bg, #efe6d2);
  color: var(--region-chip-ink, #1a2433);
  border-color: var(--region-chip-gold-active-border, #c9b88a);
}
.region-shelf-wrap {
  padding-top: 0.15rem;
}
.region-shelf-panel { display: none; margin-top: 0.35rem; }
.region-shelf-panel.is-magazin .region-mag-coming-soon {
  padding: 0.5rem 0 1.25rem;
}
.region-shelf-input[id$="-wetter"]:checked ~ .region-shelf-panels .is-wetter,
.region-shelf-input[id$="-blog"]:checked ~ .region-shelf-panels .is-blog,
.region-shelf-input[id$="-firmen"]:checked ~ .region-shelf-panels .is-firmen,
.region-shelf-input[id$="-inserate"]:checked ~ .region-shelf-panels .is-inserate,
.region-shelf-input[id$="-jobs"]:checked ~ .region-shelf-panels .is-jobs,
.region-shelf-input[id$="-immo"]:checked ~ .region-shelf-panels .is-immo,
.region-shelf-input[id$="-events"]:checked ~ .region-shelf-panels .is-events,
.region-shelf-input[id$="-magazin"]:checked ~ .region-shelf-panels .is-magazin {
  display: block;
}
.region-shelf-filter-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.75rem 1.25rem;
  margin: 0 0 1rem;
}
.region-shelf-filter-bar .region-shelf-filter {
  margin: 0;
  max-width: min(36rem, 100%);
  flex: 1 1 16rem;
}
.region-shelf-filter-mark {
  flex: 0 0 auto;
  margin-left: auto;
  align-self: center;
  text-decoration: none;
  line-height: 1.1;
}
.region-shelf-filter-mark img {
  display: block;
  height: 3.35rem;
  width: auto;
  max-width: 5.5rem;
  object-fit: contain;
  border-radius: 4px;
  box-shadow: 0 1px 8px rgba(26, 36, 51, 0.12);
}
.region-shelf-filter-mark-text {
  margin: 0;
  max-width: 7rem;
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #6d6458;
  text-align: right;
}
.region-shelf-epaper {
  margin: 0 0 1.25rem;
}
.region-shelf-epaper-frame {
  display: block;
  width: 100%;
  height: min(70vh, 40rem);
  border: 1px solid var(--line, #e4e0d8);
  border-radius: 12px;
  background: #f3f1ec;
}
.region-shelf-filter {
  margin: 0 0 1rem;
  max-width: 36rem;
}
.region-shelf-filter--geo {
  max-width: 36rem;
}
.region-shelf-filter-row--bar {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.45rem;
  align-items: stretch;
}
.region-shelf-filter-row--bar .region-shelf-bar-q {
  flex: 1 1 auto;
  min-width: 0;
}
.region-shelf-filter-row--bar .region-shelf-bar-q input {
  min-height: 2.55rem;
  width: 100%;
}
.region-shelf-bar-gps.jobs-gps-btn {
  position: static;
  transform: none;
  flex-shrink: 0;
  width: 2.55rem;
  height: 2.55rem;
  box-sizing: border-box;
  border: 1px solid var(--line, #e4e0d8);
  border-radius: 8px;
  background: #fff;
  color: var(--accent-2, #c4a035);
}
.region-shelf-bar-gps.jobs-gps-btn:hover,
.region-shelf-bar-gps.jobs-gps-btn:focus-visible {
  background: #eef1f4;
}
.region-shelf-filter-row--bar .region-shelf-filter-btn {
  flex-shrink: 0;
  min-height: 2.55rem;
}
.region-shelf-geo-chips {
  margin-top: 0.55rem;
  gap: 0.4rem;
}
.region-shelf-geo-chips .jobs-chip.is-open {
  border-color: #1a2433;
  font-weight: 700;
}
@media (max-width: 720px) {
  .region-shelf-filter-row--bar {
    flex-wrap: wrap;
  }
  .region-shelf-filter-row--bar .region-shelf-bar-q {
    flex: 1 1 100%;
  }
  .region-shelf-filter-row--bar .region-shelf-bar-gps {
    margin-left: auto;
  }
  .region-shelf-filter-row--bar .region-shelf-filter-btn {
    flex: 1 1 auto;
    min-width: 6rem;
  }
}
.region-shelf-filter-row--combo {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto auto;
  gap: 0.45rem;
  align-items: center;
}
.region-shelf-combo-place {
  position: relative;
  min-width: 0;
}
.region-shelf-combo-place .jobs-place-input {
  display: flex;
  align-items: center;
  width: 100%;
  position: relative;
}
.region-shelf-combo-place .js-jobs-place {
  width: 100%;
  font-family: var(--sans);
  font-size: 0.92rem;
  padding: 0.45rem 2.5rem 0.45rem 0.65rem;
  min-height: 2.55rem;
  box-sizing: border-box;
  border: 1px solid var(--line, #e4e0d8);
  border-radius: 8px;
  background: #fff;
}
.region-shelf-filter-row--combo .region-shelf-combo-q {
  min-width: 0;
}
.region-shelf-filter-row--combo .region-shelf-combo-q input {
  min-height: 2.55rem;
}
.region-shelf-filter-row--combo .region-shelf-geo-chip {
  flex-shrink: 0;
  white-space: nowrap;
}
.region-shelf-filter-row--combo .region-shelf-filter-btn {
  min-height: 2.55rem;
}
@media (max-width: 720px) {
  .region-shelf-filter-row--combo {
    grid-template-columns: 1fr 1fr;
  }
  .region-shelf-filter-row--combo .region-shelf-combo-q {
    grid-column: 1 / -1;
  }
  .region-shelf-filter-row--combo .region-shelf-geo-chip--place {
    grid-column: 1;
    justify-self: start;
  }
  .region-shelf-filter-row--combo .js-shelf-radius-chip {
    grid-column: 2;
    justify-self: end;
  }
  .region-shelf-filter-row--combo .region-shelf-filter-btn {
    grid-column: 1 / -1;
    width: 100%;
  }
}
.region-shelf-geo-place-panel {
  display: none;
  margin-top: 0.55rem;
  max-width: 28rem;
}
.region-shelf-geo.is-place-open .region-shelf-geo-place-panel {
  display: block;
}
.region-shelf-geo-place-label {
  display: block;
  margin: 0 0 0.35rem;
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #6d6458;
}
.region-shelf-geo .region-shelf-geo-radius {
  display: none;
  margin-top: 0.55rem;
  max-width: 28rem;
}
.region-shelf-geo.is-radius-open .region-shelf-geo-radius {
  display: block;
}
.region-shelf-filter-label {
  display: block;
  margin: 0 0 0.35rem;
  font-family: var(--sans);
  font-size: 0.78rem;
  font-weight: 600;
  color: #6d6458;
}
.region-shelf-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: center;
}
.region-shelf-filter-row .region-shelf-q-input {
  flex: 1 1 12rem;
  min-width: 0;
}
.region-shelf-filter-row .region-shelf-q-input input {
  width: 100%;
  font-family: var(--sans);
  font-size: 0.92rem;
  padding: 0.45rem 2.35rem 0.45rem 0.65rem;
  min-height: 2.55rem;
  box-sizing: border-box;
  border: 1px solid var(--line, #e4e0d8);
  border-radius: 8px;
  background: #fff;
}
.region-shelf-filter-row .region-shelf-q-input .jobs-place-clear {
  right: 0.15rem;
  width: 2rem;
  height: 2rem;
  color: #6b7280;
}
.region-shelf-geo {
  margin-top: 0.65rem;
  max-width: 36rem;
}
.region-shelf-geo-row {
  margin-bottom: 0.5rem;
}
.region-shelf-geo-place {
  display: block;
  margin: 0;
}
.region-shelf-geo-place > span:first-child {
  display: block;
  margin: 0 0 0.35rem;
  font-family: var(--sans);
  font-size: 0.78rem;
  font-weight: 600;
  color: #6d6458;
}
.region-shelf-geo .jobs-place-input {
  display: flex;
  align-items: center;
  width: 100%;
  position: relative;
}
.region-shelf-geo .jobs-place-input .js-jobs-place {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  font-family: var(--sans);
  font-size: 0.92rem;
  padding: 0.45rem 4.5rem 0.45rem 0.65rem;
  min-height: 2.55rem;
  box-sizing: border-box;
  border: 1px solid var(--line, #e4e0d8);
  border-radius: 8px;
  background: #fff;
}
.region-shelf-geo .jobs-gps-btn {
  position: absolute;
  right: 0.15rem;
  top: 50%;
  transform: translateY(-50%);
}
.region-shelf-geo .js-jobs-place-clear {
  position: absolute;
  right: 2.35rem;
  top: 50%;
  transform: translateY(-50%);
}
.region-shelf-geo .geo-suggest {
  position: absolute;
  z-index: 12;
  left: 0;
  right: 0;
  top: calc(100% + 2px);
}
.region-shelf-geo-tools {
  margin: 0.35rem 0 0;
}
.region-shelf-geo-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.32rem 0.72rem;
  border: 1px solid var(--region-chip-gold-border, #e0d4b8);
  background: #fff;
  color: var(--region-chip-ink, #1a2433);
  font-family: var(--sans);
  font-size: 0.82rem;
  line-height: 1.25;
  font-weight: 600;
  cursor: pointer;
  border-radius: var(--region-chip-radius, 8px);
  box-sizing: border-box;
}
.region-shelf-geo-chip:hover,
.region-shelf-geo-chip:focus-visible,
.region-shelf-geo-chip.is-on {
  border-color: var(--region-chip-gold-active-border, #c9b88a);
  background: var(--region-chip-gold-bg, #efe6d2);
  color: var(--region-chip-ink, #1a2433);
  outline: none;
}
.region-shelf-filter--compact + .region-shelf-geo,
.region-shelf-immo-toolbar .region-shelf-geo {
  max-width: min(28rem, 100%);
}
.region-shelf-filter .jobs-place-clear:hover,
.region-shelf-filter .jobs-place-clear:focus,
.region-shelf-filter .jobs-place-clear:focus-visible {
  color: #6b7280;
  background: transparent;
  outline: none;
}
.region-shelf-filter-btn {
  flex-shrink: 0;
}
body.region-home .region-shelf .region-shelf-filter-btn,
body.region-home .region-shelf .jobs-search-submit {
  background: var(--region-chip-gold-bg, #efe6d2);
  color: var(--region-chip-ink, #1a2433);
  border: 1px solid var(--region-chip-gold-active-border, #c9b88a);
  border-radius: var(--region-chip-radius, 8px);
  font-weight: 600;
  min-height: 2.55rem;
  padding: 0.45rem 1.15rem;
  font-family: var(--sans);
  font-size: 0.92rem;
}
body.region-home .region-shelf .region-shelf-filter-btn:hover,
body.region-home .region-shelf .region-shelf-filter-btn:focus-visible,
body.region-home .region-shelf .jobs-search-submit:hover,
body.region-home .region-shelf .jobs-search-submit:focus-visible {
  background: var(--region-chip-gold-active-bg, #e8dcc0);
  border-color: var(--region-chip-gold-active-border, #c9b88a);
  color: var(--region-chip-ink, #1a2433);
}
body.region-home .region-shelf-pager .jobs-pager-num,
body.region-home .region-shelf-pager .jobs-pager-nav {
  border-radius: var(--region-chip-radius, 8px);
}
body.region-home .region-shelf-pager .jobs-pager-num.is-on,
body.region-home .region-shelf-pager .jobs-pager-num[aria-current="page"] {
  background: var(--region-chip-gold-bg, #efe6d2);
  border-color: var(--region-chip-gold-active-border, #c9b88a);
  color: var(--region-chip-ink, #1a2433);
}
body.region-home .region-shelf-pager .jobs-pager-num.is-on:hover,
body.region-home .region-shelf-pager .jobs-pager-num[aria-current="page"]:hover {
  color: var(--region-chip-ink, #1a2433);
}
.region-shelf-filter-empty {
  margin: 0.5rem 0 0;
  font-family: var(--sans);
  font-size: 0.88rem;
  color: #334155;
}
.region-shelf-hint {
  margin: 0.35rem 0 0;
  font-family: var(--sans);
  font-size: 0.92rem;
  line-height: 1.45;
  color: #475569;
}
.region-shelf-filter--compact {
  margin-bottom: 0;
  max-width: min(28rem, 100%);
}
.region-shelf-filter--compact .region-shelf-filter-label {
  font-size: 0.88rem;
  margin-bottom: 0.35rem;
}
.region-shelf-immo-toolbar {
  align-items: flex-end;
  margin-bottom: 0.85rem;
}
.region-shelf-immo-deal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  flex: 0 1 auto;
}
.region-shelf-immo-deal .region-shelf-deal {
  display: inline-block;
  padding: 0.32rem 0.72rem;
  border: 1px solid var(--region-chip-gold-border, #e0d4b8);
  background: #fff;
  color: var(--region-chip-ink, #1a2433);
  font-family: var(--sans);
  font-size: 0.82rem;
  line-height: 1.25;
  cursor: pointer;
  border-radius: var(--region-chip-radius, 8px);
  box-sizing: border-box;
}
.region-shelf-immo-deal .region-shelf-deal:hover,
.region-shelf-immo-deal .region-shelf-deal:focus-visible,
.region-shelf-immo-deal .region-shelf-deal.is-on {
  border-color: var(--region-chip-gold-active-border, #c9b88a);
  background: var(--region-chip-gold-bg, #efe6d2);
  color: var(--region-chip-ink, #1a2433);
}
@media (max-width: 720px) {
  .region-shelf-immo-toolbar {
    flex-direction: column;
    align-items: stretch;
  }
  .region-shelf-immo-deal {
    justify-content: flex-start;
  }
}
.region-shelf-inserate-cats {
  margin: 0 0 1.1rem;
}
.region-shelf-inserate-cats .region-shelf-kat {
  display: inline-block;
  padding: 0.35rem 0.7rem;
  border: 1px solid var(--region-chip-gold-border, #e0d4b8);
  background: #fff;
  color: var(--region-chip-ink, #1a2433);
  font-family: var(--sans);
  font-size: 0.88rem;
  line-height: 1.25;
  cursor: pointer;
  border-radius: var(--region-chip-radius, 8px);
  box-sizing: border-box;
}
.region-shelf-inserate-cats .region-shelf-kat:hover,
.region-shelf-inserate-cats .region-shelf-kat:focus-visible,
.region-shelf-inserate-cats .region-shelf-kat.is-on {
  border-color: var(--region-chip-gold-active-border, #c9b88a);
  background: var(--region-chip-gold-bg, #efe6d2);
  color: var(--region-chip-ink, #1a2433);
}
@media (max-width: 720px) {
  .region-shelf-inserate-cats .ad-listing-catlist-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.4rem;
  }
  .region-shelf-inserate-cats .region-shelf-kat {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 2.75rem;
    padding: 0.4rem 0.45rem;
    font-size: 0.78rem;
    overflow-wrap: anywhere;
    box-sizing: border-box;
  }
  .region-shelf-inserate-cats .region-shelf-kat:first-child {
    grid-column: 1 / -1;
  }
}
.region-shelf-pager {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1rem;
}
.region-shelf-pager-link {
  font-family: var(--sans);
  font-size: 0.86rem;
  font-weight: 600;
  color: #1a2433;
  background: #fff;
  border: 1px solid var(--line, #e4e0d8);
  border-radius: 999px;
  padding: 0.4rem 0.85rem;
  text-decoration: none;
}
.region-shelf-pager-link:hover,
.region-shelf-pager-link:focus-visible {
  border-color: #cfc9be;
}
.region-shelf-pager-link.is-disabled {
  opacity: 0.4;
  pointer-events: none;
}
.region-shelf-pager-status {
  font-family: var(--sans);
  font-size: 0.86rem;
  color: #334155;
}
.region-shelf-intro {
  margin: 0 0 0.9rem;
  max-width: 42rem;
  font-family: var(--sans);
  font-size: 0.95rem;
  line-height: 1.5;
  color: #334155;
}
.region-shelf-firm-grid {
  margin-top: 0.85rem;
}
.region-shelf-firms {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.7rem;
}
.region-shelf-firm {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-height: 5.5rem;
  padding: 0.85rem 0.9rem;
  background: #fff;
  border: 1px solid var(--line, #e4e0d8);
  border-radius: 0;
  text-decoration: none;
  color: var(--accent-2);
}
.region-shelf-firm.has-logo {
  padding-right: 3.35rem;
}
.region-shelf-firm-logo {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  width: 2.35rem;
  height: 2.35rem;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
.region-shelf-firm-logo picture {
  display: block;
  width: 100%;
  height: 100%;
}
.region-shelf-firm-logo-img,
.region-shelf-firm-logo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}
.region-shelf-firm:hover,
.region-shelf-firm:focus-visible {
  border-color: #cfc9be;
}
.region-shelf-firm strong {
  font-family: var(--sans);
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.3;
}
.region-shelf-firm span {
  font-family: var(--sans);
  font-size: 0.8rem;
  color: #6d6458;
}
.region-shelf-mag {
  display: grid;
  grid-template-columns: 8.5rem minmax(0, 1fr);
  gap: 1.25rem;
  align-items: start;
}
.region-shelf-mag-cover {
  display: block;
  background: #f4f1ea;
  border-radius: 8px;
  overflow: hidden;
}
.region-shelf-mag-cover img {
  display: block;
  width: 100%;
  height: auto;
}
.region-shelf-mag h2,
.region-shelf-mag h3 {
  margin: 0 0 0.35rem;
  font-family: var(--font);
  font-size: 1.55rem;
  color: var(--accent-2);
}
.region-shelf-mag p { margin: 0 0 0.85rem; }
.region-shelf-archive-title {
  margin: 1.4rem 0 0.45rem;
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #8a7340;
}
.region-shelf-archive {
  list-style: none;
  margin: 0;
  padding: 0;
}
.region-shelf-archive li {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1rem;
  padding: 0.55rem 0;
  border-top: 1px solid #e4dfd4;
  font-family: var(--sans);
  font-size: 0.92rem;
}
.region-shelf-archive a { color: var(--accent-2); }
@media (max-width: 900px) {
  .region-shelf-firms { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .region-shelf-firms { grid-template-columns: 1fr; }
  .region-shelf-mag { grid-template-columns: 6.5rem minmax(0, 1fr); }
}
.region-home .portal-band-title {
  font-family: var(--font);
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.28;
  letter-spacing: 0.04em;
  text-transform: none;
  color: #8a7340;
}
/* Regionsportale: ein Fliesstext-Mass wie Startseite-Hub */
body.portal-page.region-home {
  --portal-copy-size: clamp(0.94rem, 1.8vw, 1.06rem);
  --portal-copy-lh: 1.5;
}
body.portal-page.region-home .region-stage-lead,
body.portal-page.region-home .region-stage-copy p,
body.portal-page.region-home .region-chips-intro-text,
body.portal-page.region-home .region-shelf-intro,
body.portal-page.region-home .region-shelf-empty,
body.portal-page.region-home .region-showcase--plain .home-sf-name,
body.portal-page.region-home .region-showcase--plain .home-sf-place {
  font-size: var(--portal-copy-size);
  line-height: var(--portal-copy-lh);
}
@media (min-width: 721px) {
  body.portal-page.region-home:has(.news-band) .region-stage-inner {
    padding-top: 2.15rem;
  }
}
@media (min-width: 800px) {
  /* Regions-Portrait — wie Live: Text | Bild je ~Hälfte, H1 eine Zeile */
  .region-stage-inner {
    padding: 2.4rem 0 2rem;
  }
  .region-stage-head {
    grid-template-columns: minmax(0, 38rem) minmax(12rem, 1fr);
    column-gap: 1.35rem;
    align-items: start;
  }
  .region-stage-head-copy {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
    max-width: 100%;
  }
  .region-stage-aside {
    grid-column: 2;
    grid-row: 1;
    width: 100%;
    min-width: 0;
  }
  .region-stage-head .region-stage-title {
    margin-bottom: 0;
    max-width: none;
    overflow-wrap: normal;
    word-break: normal;
  }
  .region-stage-head .region-stage-lead {
    max-width: none;
  }
  .region-stage-mark {
    width: 100%;
    height: 11rem;
  }
  .region-stage-copy {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 1.35rem;
  }
  .region-stage-copy p {
    min-width: 0;
    max-width: 100%;
  }
  .region-stage-copy p:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }
}



