:root {
  --bv-bg: #f5f7f8;
  --bv-surface: #ffffff;
  --bv-surface-soft: #f0f5f2;
  --bv-text: #16201c;
  --bv-muted: #5f6f68;
  --bv-line: #d9e2de;
  --bv-primary: #0f6f5c;
  --bv-primary-dark: #0a4f42;
  --bv-accent: #b8422f;
  --bv-gold: #d6962d;
  --bv-link: #9d2f25;
  --bv-radius: 8px;
  --bv-shadow: 0 12px 32px rgba(20, 38, 32, 0.08);
}

* {
  box-sizing: border-box;
}

html {
  background: var(--bv-bg);
}

body {
  min-width: 0;
  margin: 0;
  background:
    linear-gradient(180deg, #fff 0, #fff 96px, var(--bv-bg) 96px);
  color: var(--bv-text);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.5;
  text-align: left;
}

a {
  color: var(--bv-link);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

a:hover,
a:focus {
  color: var(--bv-primary-dark);
}

img {
  max-width: 100%;
  height: auto;
}

table {
  width: 100%;
}

td,
th {
  overflow-wrap: anywhere;
  vertical-align: top;
}

select,
textarea,
input {
  max-width: 100%;
  min-height: 42px;
  border: 1px solid var(--bv-line);
  border-radius: 6px;
  background: #fff;
  color: var(--bv-text);
  font: inherit;
}

textarea {
  min-height: 120px;
}

#wrapper {
  position: static;
  width: min(100% - 24px, 1180px);
  margin: 0 auto;
  padding: 12px 0 28px;
}

#logo {
  position: static;
  height: auto;
  padding: 10px 0 4px;
}

#logo a {
  display: inline-flex;
  align-items: center;
  min-height: 52px;
}

#logo img {
  width: min(280px, 72vw);
  max-height: 72px;
  object-fit: contain;
}

#wetter {
  position: absolute;
  top: 18px;
  right: 12px;
  z-index: 3;
  width: auto;
  min-width: 88px;
  max-width: 132px;
  padding: 6px 8px;
  border: 1px solid var(--bv-line);
  border-radius: var(--bv-radius);
  background: rgba(255, 255, 255, 0.9);
  color: var(--bv-muted);
  font-size: 12px;
  font-weight: 600;
  text-align: center;
  box-shadow: 0 4px 16px rgba(20, 38, 32, 0.08);
}

#header {
  position: relative;
  top: auto;
  width: 100%;
  min-height: 0;
  height: auto;
  margin: 8px 0 18px;
  padding: 0;
  border-radius: var(--bv-radius);
  background: transparent;
  box-shadow: none;
}

#suchform {
  position: static;
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  height: auto;
  width: 100%;
}

#suchform img {
  display: none;
}

#search,
#maplist {
  float: none;
  width: 100%;
  margin: 0;
  padding: 11px 12px;
  border: 0;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04);
}

#sbutton,
#rbutton {
  width: 100%;
  height: 42px;
  margin: 0;
  border: 0;
  border-radius: 6px;
  background: var(--bv-gold);
  object-fit: contain;
  padding: 9px 18px;
  cursor: pointer;
}

#sbutton {
  border-radius: 8px;
  background: transparent;
  padding: 0;
}

.search-submit-button,
.branch-search-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

#suchform .search-submit-button img,
.branch-search-button img {
  display: block;
  float: none;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

#merkzettel,
#neuereintrag,
#login {
  position: static;
  display: inline-flex;
  width: auto;
  min-width: 0;
  height: auto;
  margin: 10px 6px 0 0;
  padding: 0;
  background: transparent;
  text-align: left;
}

.header-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

#nav_right,
div.white_top,
div.white_top2,
div.white_content,
div.white_bot,
div.white_bot2,
#bottom_lists {
  float: none;
  width: 100%;
  background-image: none;
}

#nav_right {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 0 0 16px;
}

div.white_top {
  min-height: 0;
  height: auto;
  padding: 12px 14px;
  border: 0;
  border-radius: var(--bv-radius) var(--bv-radius) 0 0;
  background: var(--bv-primary-dark);
  color: #fff;
  font-size: 16px;
  font-weight: 700;
}

div.white_top2 {
  height: 0;
}

div.white_content {
  margin-bottom: 12px;
  padding: 12px;
  border: 1px solid var(--bv-line);
  border-top: 0;
  border-radius: 0 0 var(--bv-radius) var(--bv-radius);
  background: var(--bv-surface);
  box-shadow: 0 6px 20px rgba(20, 38, 32, 0.04);
}

div.white_bot,
div.white_bot2 {
  display: none;
}

h1 {
  margin: 0;
  color: inherit;
  font-size: 28px;
  font-weight: 760;
  line-height: 1.2;
}

h2 {
  font-size: 20px;
  font-weight: 700;
}

h3 {
  margin: 0 0 8px;
  font-size: 17px;
}

#sbranche,
div.paddingbox {
  padding: 0;
  background: transparent;
}

div.rubriklink,
div.branchlink,
div.branchlink2 {
  position: relative;
  float: none;
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 44px;
  height: auto;
  margin: 0;
  padding: 9px 10px 9px 38px;
  border-bottom: 1px solid var(--bv-line);
  background: transparent;
}

div.rubriklink {
  padding-left: 50px;
  --cat-bg: #e5f4ef;
  --cat-fg: #0f6f5c;
}

div.rubriklink::before,
div.branchlink::before,
div.branchlink2::before {
  content: "";
  position: absolute;
  left: 10px;
  top: 50%;
  width: 18px;
  height: 18px;
  transform: translateY(-50%);
  background: var(--bv-primary);
  -webkit-mask: url("/assets/icons/category.svg") center / contain no-repeat;
  mask: url("/assets/icons/category.svg") center / contain no-repeat;
}

div.rubriklink::before {
  left: 8px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--cat-bg);
  -webkit-mask: none;
  mask: none;
}

div.rubriklink::after {
  content: "";
  position: absolute;
  left: 14px;
  top: 50%;
  width: 18px;
  height: 18px;
  transform: translateY(-50%);
  background: var(--cat-fg);
  -webkit-mask: url("/assets/icons/category.svg") center / contain no-repeat;
  mask: url("/assets/icons/category.svg") center / contain no-repeat;
}

div.rubrikarbeit { --cat-bg: #e8f0ff; --cat-fg: #2f5da8; }
div.rubrikautoverkehr { --cat-bg: #e8f3f6; --cat-fg: #17697c; }
div.rubrikbauen { --cat-bg: #f4eadc; --cat-fg: #9a5a17; }
div.rubrikbehoerden { --cat-bg: #e9edf6; --cat-fg: #435179; }
div.rubrikbildung { --cat-bg: #efe9ff; --cat-fg: #6042a6; }
div.rubrikcomputer { --cat-bg: #e5f1ff; --cat-fg: #276aa8; }
div.rubrikdienstleistung { --cat-bg: #e8f6ee; --cat-fg: #217647; }
div.rubrikessen { --cat-bg: #fff0e2; --cat-fg: #ad5b18; }
div.rubrikgeld { --cat-bg: #eef5df; --cat-fg: #667d16; }
div.rubrikgesundheit { --cat-bg: #ffe8e8; --cat-fg: #b23333; }
div.rubrikgrosshandel { --cat-bg: #e7f2ee; --cat-fg: #2d6d5e; }
div.rubrikhotel { --cat-bg: #ecedff; --cat-fg: #4f55a5; }
div.rubrikindustrie { --cat-bg: #eceff1; --cat-fg: #56636a; }
div.rubrikmedien { --cat-bg: #e6f0ff; --cat-fg: #315fa7; }
div.rubrikmode { --cat-bg: #fde9f2; --cat-fg: #a73568; }
div.rubrikmusik { --cat-bg: #f1e8ff; --cat-fg: #7443a8; }
div.rubriknatur { --cat-bg: #e5f5e8; --cat-fg: #267a39; }
div.rubriknightlife { --cat-bg: #efe8ff; --cat-fg: #5f3ea6; }
div.rubrikreligion { --cat-bg: #f5eee2; --cat-fg: #8a6328; }
div.rubrikshopping { --cat-bg: #fff0e8; --cat-fg: #b5532d; }
div.rubriksport { --cat-bg: #e7f5f1; --cat-fg: #14735f; }
div.rubriktier { --cat-bg: #f1f4df; --cat-fg: #71801c; }
div.rubrikunterhaltung { --cat-bg: #feeceb; --cat-fg: #a93c34; }
div.rubrikwellness { --cat-bg: #fdeaf0; --cat-fg: #a83a60; }
div.rubrikwohnen { --cat-bg: #e8f0ea; --cat-fg: #3c7050; }

div.rubrikarbeit::after { -webkit-mask-image: url("/assets/icons/categories/arbeit.svg"); mask-image: url("/assets/icons/categories/arbeit.svg"); }
div.rubrikautoverkehr::after { -webkit-mask-image: url("/assets/icons/categories/auto.svg"); mask-image: url("/assets/icons/categories/auto.svg"); }
div.rubrikbauen::after { -webkit-mask-image: url("/assets/icons/categories/bauen.svg"); mask-image: url("/assets/icons/categories/bauen.svg"); }
div.rubrikbehoerden::after { -webkit-mask-image: url("/assets/icons/categories/behoerden.svg"); mask-image: url("/assets/icons/categories/behoerden.svg"); }
div.rubrikbildung::after { -webkit-mask-image: url("/assets/icons/categories/bildung.svg"); mask-image: url("/assets/icons/categories/bildung.svg"); }
div.rubrikcomputer::after { -webkit-mask-image: url("/assets/icons/categories/computer.svg"); mask-image: url("/assets/icons/categories/computer.svg"); }
div.rubrikdienstleistung::after { -webkit-mask-image: url("/assets/icons/categories/dienstleistung.svg"); mask-image: url("/assets/icons/categories/dienstleistung.svg"); }
div.rubrikessen::after { -webkit-mask-image: url("/assets/icons/categories/essen.svg"); mask-image: url("/assets/icons/categories/essen.svg"); }
div.rubrikgeld::after { -webkit-mask-image: url("/assets/icons/categories/geld.svg"); mask-image: url("/assets/icons/categories/geld.svg"); }
div.rubrikgesundheit::after { -webkit-mask-image: url("/assets/icons/categories/gesundheit.svg"); mask-image: url("/assets/icons/categories/gesundheit.svg"); }
div.rubrikgrosshandel::after { -webkit-mask-image: url("/assets/icons/categories/grosshandel.svg"); mask-image: url("/assets/icons/categories/grosshandel.svg"); }
div.rubrikhotel::after { -webkit-mask-image: url("/assets/icons/categories/hotel.svg"); mask-image: url("/assets/icons/categories/hotel.svg"); }
div.rubrikindustrie::after { -webkit-mask-image: url("/assets/icons/categories/industrie.svg"); mask-image: url("/assets/icons/categories/industrie.svg"); }
div.rubrikmedien::after { -webkit-mask-image: url("/assets/icons/categories/medien.svg"); mask-image: url("/assets/icons/categories/medien.svg"); }
div.rubrikmode::after { -webkit-mask-image: url("/assets/icons/categories/mode.svg"); mask-image: url("/assets/icons/categories/mode.svg"); }
div.rubrikmusik::after { -webkit-mask-image: url("/assets/icons/categories/musik.svg"); mask-image: url("/assets/icons/categories/musik.svg"); }
div.rubriknatur::after { -webkit-mask-image: url("/assets/icons/categories/natur.svg"); mask-image: url("/assets/icons/categories/natur.svg"); }
div.rubriknightlife::after { -webkit-mask-image: url("/assets/icons/categories/nightlife.svg"); mask-image: url("/assets/icons/categories/nightlife.svg"); }
div.rubrikreligion::after { -webkit-mask-image: url("/assets/icons/categories/religion.svg"); mask-image: url("/assets/icons/categories/religion.svg"); }
div.rubrikshopping::after { -webkit-mask-image: url("/assets/icons/categories/shopping.svg"); mask-image: url("/assets/icons/categories/shopping.svg"); }
div.rubriksport::after { -webkit-mask-image: url("/assets/icons/categories/sport.svg"); mask-image: url("/assets/icons/categories/sport.svg"); }
div.rubriktier::after { -webkit-mask-image: url("/assets/icons/categories/tier.svg"); mask-image: url("/assets/icons/categories/tier.svg"); }
div.rubrikunterhaltung::after { -webkit-mask-image: url("/assets/icons/categories/unterhaltung.svg"); mask-image: url("/assets/icons/categories/unterhaltung.svg"); }
div.rubrikwellness::after { -webkit-mask-image: url("/assets/icons/categories/wellness.svg"); mask-image: url("/assets/icons/categories/wellness.svg"); }
div.rubrikwohnen::after { -webkit-mask-image: url("/assets/icons/categories/wohnen.svg"); mask-image: url("/assets/icons/categories/wohnen.svg"); }

div.branchlink::before,
div.branchlink2::before {
  width: 15px;
  height: 15px;
  background: var(--bv-accent);
  -webkit-mask-image: url("/assets/icons/chevron-right.svg");
  mask-image: url("/assets/icons/chevron-right.svg");
}

div.rubriklink img,
div.branchlink img,
div.branchlink2 img {
  display: none;
}

div.rubriklink a,
div.branchlink a,
div.branchlink2 a,
a.wo {
  color: var(--bv-text);
  font-size: 15px;
  text-decoration: none;
}

div.rubriklink a {
  font-weight: 700;
}

div.branchlink a,
div.branchlink2 a {
  font-size: 14px;
}

#map {
  width: 100%;
  min-height: 320px;
  border-color: var(--bv-line);
  border-radius: var(--bv-radius);
}

.map-placeholder {
  display: grid;
  place-items: center;
  gap: 10px;
  min-height: 320px;
  padding: 18px;
  background: var(--bv-surface-soft);
  color: var(--bv-muted);
  text-align: center;
  overflow: hidden;
}

.map-placeholder img {
  width: min(260px, 82%);
  max-height: 230px;
  object-fit: contain;
}

.map-placeholder p {
  margin: 0;
  font-size: 13px;
}

.static-map-fallback {
  display: grid;
  place-items: center;
  gap: 8px;
  width: 100%;
  min-height: 220px;
  padding: 18px;
  border: 1px dashed var(--bv-border-strong);
  border-radius: 8px;
  background: var(--bv-panel-soft);
  color: var(--bv-muted);
  text-align: center;
}

.static-map-fallback img {
  width: min(220px, 78%);
  max-height: 170px;
  object-fit: contain;
}

.static-map-fallback p {
  margin: 0;
  font-size: 13px;
  line-height: 1.35;
}

.static-map-fallback a {
  font-size: 13px;
  font-weight: 700;
}

#Dialog {
  position: fixed;
  inset: 12px;
  z-index: 30;
  overflow: auto;
  padding: 22px 0;
  background: rgba(17, 24, 39, 0.42);
}

#DialogTop,
#DialogBottom {
  display: none;
}

#DialogBody {
  width: min(100%, 560px);
  margin: 0 auto;
  border-radius: var(--bv-radius);
  background: #fff;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.22);
  outline: none;
}

#close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin: 8px 8px 0 0;
  border: 0;
  border-radius: 50%;
  background: var(--bv-surface-soft);
  cursor: pointer;
}

#close img {
  width: 16px;
  height: 16px;
}

#loading {
  padding: 24px;
  text-align: center;
}

.entry-action-button:not(.entry-action-control):not(.entry-result-action-button):not(.entry-heading-action) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  min-width: 34px;
  margin: 0 3px 4px 0;
  padding: 3px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: inherit;
  cursor: pointer;
  vertical-align: middle;
}

.entry-action-button:not(.entry-action-control):not(.entry-result-action-button):not(.entry-heading-action):hover,
.entry-action-button:not(.entry-action-control):not(.entry-result-action-button):not(.entry-heading-action):focus {
  background: var(--bv-surface-soft);
}

.entry-action-button:not(.entry-action-control):not(.entry-result-action-button):not(.entry-heading-action):focus-visible {
  outline: 2px solid var(--bv-primary);
  outline-offset: 2px;
}

.entry-action-button:not(.entry-action-control):not(.entry-result-action-button):not(.entry-heading-action) img {
  width: 20px;
  height: 20px;
  object-fit: contain;
}

.entry-action-button:not(.entry-action-control):not(.entry-result-action-button):not(.entry-heading-action) span {
  margin-left: 6px;
}

.bv-error-page {
  width: min(100% - 32px, 760px);
  margin: 48px auto;
  padding: 24px;
  background: var(--bv-surface);
  border: 1px solid var(--bv-line);
  border-radius: var(--bv-radius);
}

.bv-error-logo {
  display: inline-flex;
  margin-bottom: 18px;
}

.bv-error-logo img {
  height: auto;
}

.bv-error-page h1 {
  margin: 0 0 10px;
  font-size: 2rem;
  line-height: 1.15;
}

.bv-error-page p {
  margin: 0 0 20px;
  color: var(--bv-muted);
}

.bv-error-search {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  margin: 0 0 20px;
}

.bv-error-search label {
  font-weight: 700;
}

.bv-error-search input,
.bv-error-search button {
  width: 100%;
  min-height: 44px;
  box-sizing: border-box;
}

.bv-error-search button {
  border: 0;
  border-radius: var(--bv-radius);
  background: var(--bv-accent);
  color: #fff;
  font-weight: 700;
  cursor: pointer;
}

.bv-error-page nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
}

.bv-ad-slot {
  min-height: 60px;
  margin: 0 auto;
  padding: 18px 10px;
  box-sizing: border-box;
  border: 1px dashed var(--bv-line);
  background: var(--bv-surface-soft);
  color: var(--bv-muted);
  text-align: center;
  font-size: 12px;
  line-height: 1.4;
}

.bv-ad-slot--rectangle {
  min-height: 250px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.bv-ad-slot--small {
  min-height: 90px;
}

#DialogContent {
  padding: 16px;
  clear: both;
}

.pagi {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--bv-line);
}

div.infobox {
  float: none;
  margin: 12px 0;
  border: 1px solid #efb5a6;
  border-radius: var(--bv-radius);
  background: #fff7f4;
  color: #8c2c1e;
}

.table-scroll,
.white_content table,
.sidebar-panel-content table {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.white_content table tbody,
.sidebar-panel-content table tbody {
  min-width: 100%;
}

.portal-sources {
  display: grid;
  gap: 10px;
}

.portal-sources h2 {
  margin: 0;
  font-size: 20px;
  line-height: 1.25;
}

.portal-sources p {
  margin: 0;
}

.portal-sources ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding-left: 18px;
}

@media (min-width: 720px) {
  #wrapper {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 16px;
    padding-top: 18px;
  }

  #logo,
  #header {
    grid-column: 1 / -1;
  }

  #nav_right {
    grid-column: 2;
    grid-row: 3 / span 20;
  }

  div.white_top,
  div.white_top2,
  div.white_content,
  div.white_bot,
  div.white_bot2,
  #bottom_lists,
  #footer {
    grid-column: 1;
  }

  #header {
    min-height: 214px;
    padding: 92px 24px 18px;
  }

  #suchform {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) 112px;
    max-width: 850px;
  }

  #sbutton {
    width: 112px;
  }

  div.rubriklink,
  div.branchlink,
  div.branchlink2 {
    float: left;
    width: 50%;
  }

  #bottom_lists {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
}

@media (max-width: 719px) {
  .white_content table[width="100%"] tr,
  .sidebar-panel-content table[width="100%"] tr {
    display: block;
    margin-bottom: 10px;
    border: 1px solid var(--bv-line);
    border-radius: var(--bv-radius);
    background: var(--bv-surface);
    overflow: hidden;
  }

  .white_content table[width="100%"] td,
  .sidebar-panel-content table[width="100%"] td {
    display: block;
    width: 100%;
    padding: 10px;
    border-bottom: 1px solid var(--bv-line);
  }

  .white_content table[width="100%"] td:last-child,
  .sidebar-panel-content table[width="100%"] td:last-child {
    border-bottom: 0;
  }

  .white_content table[width="100%"] td:has(.entry-action-button),
  .sidebar-panel-content table[width="100%"] td:has(.entry-action-button) {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
  }

  .white_content input,
  .white_content select,
  .white_content textarea,
  .sidebar-panel-content input,
  .sidebar-panel-content select,
  .sidebar-panel-content textarea {
    width: 100%;
  }
}

@media (min-width: 1040px) {
  #wrapper {
    grid-template-columns: minmax(0, 1fr) 367px;
    gap: 18px;
  }

  #header {
    padding-left: 32px;
  }

  div.rubriklink,
  div.branchlink,
  div.branchlink2 {
    width: 50%;
  }
}

#site-header {
  position: relative;
  display: block;
  margin: 0 0 16px;
}

#wrapper.home-wrapper {
  width: min(100% - 24px, 1180px);
  max-width: 1180px;
}

.portal-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.portal-main {
  min-width: 0;
}

.home-wrapper #header {
  display: grid;
  align-items: end;
  min-height: 224px;
  margin: 8px 0 0;
  padding: 92px 14px 16px;
  overflow: hidden;
}

.home-wrapper #suchform {
  max-width: none;
}

.home-wrapper #search,
.home-wrapper #maplist {
  min-height: 46px;
  border: 1px solid rgba(255, 255, 255, 0.34);
  background: rgba(255, 255, 255, 0.96);
}

.home-wrapper #sbutton {
  min-height: 46px;
}

.header-utility-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 6px 10px;
  border: 1px solid rgba(255, 255, 255, 0.42);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.9);
  color: var(--bv-primary-dark);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
}

.header-utility-link:hover,
.header-utility-link:focus {
  background: #fff;
  color: var(--bv-accent);
  text-decoration: none;
}

.home-wrapper div.white_top {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  justify-content: space-between;
}

.home-wrapper div.white_top .section-title-inline {
  order: 1;
  flex: 1 1 220px;
  display: block;
  min-width: 0;
}

.home-wrapper .branch-search-form {
  order: 2;
  flex: 0 1 286px;
  float: none;
  display: flex;
  flex-direction: row-reverse;
  align-items: center;
  gap: 6px;
  margin: 0;
}

.home-wrapper #sinput {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 38px;
  padding: 8px 10px;
  border: 1px solid rgba(255, 255, 255, 0.36);
  border-radius: 8px;
}

.home-wrapper #rbutton {
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  min-height: 38px;
  border-radius: 8px;
  background: var(--bv-gold);
}

.home-landing-intro,
.portal-sources {
  margin: 0 0 14px;
  padding: 14px;
  border: 1px solid var(--bv-line);
  border-radius: 8px;
  background: #f8fbfa;
  color: var(--bv-text);
}

.home-landing-intro h2,
.portal-sources h3 {
  margin: 0 0 8px;
  color: var(--bv-primary-dark);
  font-size: 20px;
  line-height: 1.25;
}

.home-landing-intro p,
.portal-sources p {
  margin: 0 0 12px;
  color: var(--bv-muted);
  line-height: 1.5;
}

.home-landing-facts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(128px, 1fr));
  gap: 8px;
  margin: 0 0 12px;
}

.home-landing-facts div {
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid var(--bv-line);
  border-radius: 8px;
  background: #fff;
}

.home-landing-facts dt {
  margin: 0 0 3px;
  color: var(--bv-muted);
  font-size: 12px;
  font-weight: 700;
}

.home-landing-facts dd {
  margin: 0;
  color: var(--bv-text);
  font-weight: 800;
  overflow-wrap: anywhere;
}

.home-quick-links strong,
.portal-source-groups strong {
  display: block;
  margin: 0 0 7px;
  color: var(--bv-muted);
  font-size: 12px;
  font-weight: 800;
}

.home-quick-links ul,
.portal-source-group-links {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.home-quick-links li,
.portal-source-group-links li {
  min-width: 0;
}

.home-quick-links a,
.portal-source-group-links a {
  display: block;
  min-height: 38px;
  padding: 8px 10px;
  border: 1px solid var(--bv-line);
  border-radius: 8px;
  background: #fff;
  color: var(--bv-primary-dark);
  font-weight: 700;
  line-height: 1.25;
  text-decoration: none;
}

.portal-source-group-links a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.home-quick-links a:hover,
.home-quick-links a:focus,
.portal-source-group-links a:hover,
.portal-source-group-links a:focus {
  border-color: var(--bv-primary);
  color: var(--bv-accent);
  text-decoration: none;
}

.home-quick-links span {
  display: block;
  margin-top: 3px;
  color: var(--bv-muted);
  font-size: 12px;
  line-height: 1.35;
}

.home-wrapper #sbranche {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0 10px;
  padding: 2px 0 0;
}

.home-wrapper div.rubriklink,
.home-wrapper div.branchlink,
.home-wrapper div.branchlink2 {
  width: 100%;
  min-width: 0;
  border-bottom: 1px solid var(--bv-line);
}

.home-wrapper .rubrik-links-clear,
.home-wrapper .branch-links-clear {
  display: none;
}

.portal-source-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  margin: 0 0 12px;
  padding: 0;
  list-style: none;
}

.portal-source-list li {
  min-width: 0;
  padding: 10px;
  border: 1px solid var(--bv-line);
  border-radius: 8px;
  background: #fff;
}

.portal-source-list span {
  display: block;
  color: var(--bv-muted);
}

.page-tools {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.page-tool-button,
.page-tool-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  border: 1px solid var(--bv-line);
  border-radius: 8px;
  background: #fff;
  color: var(--bv-primary-dark);
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
}

.page-tool-button {
  width: 38px;
  padding: 0;
}

.page-tool-link {
  padding: 7px 10px;
}

.page-tool-button:hover,
.page-tool-button:focus,
.page-tool-link:hover,
.page-tool-link:focus {
  border-color: var(--bv-primary);
  color: var(--bv-accent);
  text-decoration: none;
}

.page-tool-button img {
  width: 18px;
  height: 18px;
}

.home-wrapper #nav_right {
  margin: 0;
}

.home-wrapper #nav_right .sidebar-panel-title {
  background: var(--bv-primary);
  font-size: 14px;
  line-height: 1.3;
}

.home-wrapper #nav_right .sidebar-panel-content {
  margin-bottom: 0;
}

.home-wrapper .street-letter-nav {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.link-list li {
  padding: 8px 0;
  border-bottom: 1px solid var(--bv-line);
  background: transparent;
}

.link-list li:nth-child(even) {
  background: transparent;
}

.link-list-link {
  color: var(--bv-primary-dark);
  font-size: 14px;
  font-weight: 700;
}

.link-list span,
.link-list time {
  color: var(--bv-muted);
  font-size: 12px;
}

.site-footer {
  margin-top: 18px;
  padding: 16px 0 0;
  border-top: 1px solid var(--bv-line);
  color: var(--bv-muted);
  font-size: 13px;
}

.site-footer a {
  color: var(--bv-primary-dark);
  font-weight: 700;
  text-decoration: none;
}

.site-footer a:hover,
.site-footer a:focus {
  color: var(--bv-accent);
  text-decoration: underline;
}

@media (min-width: 640px) {
  .home-quick-links ul,
  .portal-source-group-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-wrapper #sbranche {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .portal-source-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 720px) {
  #site-header,
  #footer {
    grid-column: 1 / -1;
  }

  #wrapper.home-wrapper {
    display: block;
  }
}

@media (min-width: 860px) {
  .portal-layout {
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 18px;
  }

  .portal-main {
    grid-column: 1;
    grid-row: 1;
  }

  .portal-layout #nav_right {
    grid-column: 2;
    grid-row: 1;
    position: sticky;
    top: 18px;
    align-self: start;
  }

  .home-wrapper #header {
    min-height: 246px;
    padding: 108px 24px 18px;
  }

  .home-wrapper #suchform {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) 112px;
  }
}

@media (min-width: 1060px) {
  .home-wrapper #sbranche {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .portal-layout {
    grid-template-columns: minmax(0, 1fr) 332px;
  }
}

@media (max-width: 719px) {
  .home-wrapper div.white_top .section-title-inline,
  .home-wrapper .branch-search-form {
    flex-basis: 100%;
  }

  .home-wrapper .branch-search-form {
    order: 2;
  }

  .home-wrapper #sinput {
    min-height: 42px;
  }

  .home-wrapper #rbutton {
    flex-basis: 42px;
    width: 42px;
    height: 42px;
    min-height: 42px;
  }
}

/* Home consistency pass: keep the legacy CSS as fallback, but make the homepage read as one interface. */
.home-wrapper {
  --home-gap: 16px;
  --home-panel: #ffffff;
  --home-panel-soft: #f7faf9;
  --home-heading: #123b33;
  --home-border: #d8e3df;
  --home-shadow: 0 10px 28px rgba(20, 38, 32, 0.07);
}

.home-wrapper #site-header {
  position: relative;
  margin: 0 0 18px;
}

.home-wrapper #logo {
  position: absolute;
  z-index: 5;
  top: 16px;
  left: 16px;
  padding: 0;
}

.home-wrapper #logo a {
  min-height: 0;
  padding: 8px 10px;
  border: 1px solid rgba(255, 255, 255, 0.78);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 8px 22px rgba(20, 38, 32, 0.13);
}

.home-wrapper #logo img {
  width: min(245px, 62vw);
  max-height: 54px;
}

.home-wrapper #wetter:empty {
  display: none;
}

.home-wrapper #wetter {
  top: 16px;
  right: 16px;
  border-color: rgba(255, 255, 255, 0.76);
  background: rgba(255, 255, 255, 0.94);
}

.home-wrapper #header {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 12px;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.home-wrapper #header form {
  width: 100%;
}

.home-wrapper #suchform {
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  max-width: none;
}

.home-wrapper #search,
.home-wrapper #maplist,
.home-wrapper #sbutton {
  min-height: 48px;
}

.home-wrapper #search,
.home-wrapper #maplist {
  border: 1px solid rgba(18, 59, 51, 0.18);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 1px 0 rgba(20, 38, 32, 0.04);
}

.home-wrapper #sbutton {
  width: 100%;
  border-radius: 8px;
  background: transparent;
}

.home-wrapper .header-nav {
  gap: 8px;
}

.home-wrapper #merkzettel,
.home-wrapper #neuereintrag,
.home-wrapper #login {
  margin: 0;
}

.home-wrapper .header-utility-link {
  min-height: 36px;
  border-color: rgba(255, 255, 255, 0.56);
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 4px 14px rgba(20, 38, 32, 0.09);
}

.portal-layout--home {
  gap: 18px;
}

.home-wrapper .portal-main {
  display: grid;
  gap: 0;
}

.home-wrapper div.white_top {
  min-height: 0;
  padding: 13px 15px;
  border: 1px solid var(--home-heading);
  border-bottom: 0;
  border-radius: 8px 8px 0 0;
  background: var(--home-heading);
  color: #fff;
  box-shadow: none;
}

.home-wrapper div.white_top {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  justify-content: space-between;
}

.home-wrapper div.white_top .section-title-inline {
  display: block;
  flex: 1 1 220px;
  min-width: 0;
}

.home-wrapper div.white_content {
  width: 100%;
  margin: 0 0 var(--home-gap);
  padding: 14px;
  border: 1px solid var(--home-border);
  border-top: 0;
  border-radius: 0 0 8px 8px;
  background: var(--home-panel);
  box-shadow: none;
}

.home-wrapper div.white_bot {
  display: none;
}

.home-wrapper .branch-search-form {
  flex: 0 1 300px;
  float: none;
  display: flex;
  flex-direction: row-reverse;
  align-items: center;
  gap: 7px;
  margin: 0;
}

.home-wrapper #sinput {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 40px;
  padding: 8px 10px;
  border: 1px solid rgba(255, 255, 255, 0.38);
  border-radius: 8px;
}

.home-wrapper #rbutton {
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  min-height: 40px;
  border-radius: 8px;
  background: var(--bv-gold);
}

.home-wrapper .home-landing-intro,
.home-wrapper .portal-sources {
  margin: 0 0 14px;
  padding: 14px;
  border: 1px solid var(--home-border);
  border-radius: 8px;
  background: var(--home-panel-soft);
}

.home-wrapper .home-landing-intro h2,
.home-wrapper .portal-sources h3 {
  color: var(--home-heading);
}

.home-wrapper .home-landing-facts div,
.home-wrapper .home-quick-links a,
.home-wrapper .portal-source-list li,
.home-wrapper .portal-source-group-links a {
  border-color: var(--home-border);
  border-radius: 8px;
  box-shadow: none;
}

.home-wrapper #sbranche {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
  padding: 0;
}

.home-wrapper div.rubriklink,
.home-wrapper div.branchlink,
.home-wrapper div.branchlink2 {
  width: 100%;
  min-width: 0;
  min-height: 58px;
  padding: 10px 12px 10px 56px;
  border: 1px solid var(--home-border);
  border-radius: 8px;
  background: #fff;
  transition: border-color 0.16s ease, background-color 0.16s ease;
}

.home-wrapper div.rubriklink:hover,
.home-wrapper div.rubriklink:focus-within,
.home-wrapper div.branchlink:hover,
.home-wrapper div.branchlink:focus-within,
.home-wrapper div.branchlink2:hover,
.home-wrapper div.branchlink2:focus-within {
  border-color: #accbc1;
  background: #f8fbfa;
}

.home-wrapper div.rubriklink::before {
  left: 10px;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(20, 38, 32, 0.08);
}

.home-wrapper div.rubriklink::after {
  left: 18px;
}

.home-wrapper div.rubriklink a {
  color: var(--home-heading);
  font-size: 15px;
  line-height: 1.25;
}

.home-wrapper .rubrik-links-clear,
.home-wrapper .branch-links-clear {
  display: none;
}

.home-wrapper #nav_right {
  display: grid;
  gap: 14px;
  margin: 0;
}

.home-wrapper #nav_right .sidebar-panel-content {
  margin-bottom: 0;
}

.home-wrapper .district-nav {
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}

.home-wrapper .district-nav-map {
  width: min(190px, 100%);
  margin: 0 auto;
}

.home-wrapper .district-nav-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
}

.home-wrapper .district-nav-list li {
  padding: 7px 8px;
  border: 1px solid var(--home-border);
  border-radius: 8px;
  background: #fff;
  line-height: 1.25;
}

.home-wrapper a.wo {
  color: var(--home-heading);
  font-size: 13px;
  font-weight: 700;
}

.home-wrapper .street-letter-nav {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 6px;
}

.home-wrapper .street-letter-link {
  border-color: var(--home-border);
  color: var(--home-heading);
}

.home-wrapper #bottom_lists {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
  margin: 0;
}

.home-wrapper .bottom-list-panel {
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--home-border);
  border-radius: 8px;
  background: var(--home-panel);
  box-shadow: none;
}

.home-wrapper .bottom-list-panel-title {
  margin: 0 0 10px;
  padding: 0 0 8px;
  border-bottom: 1px solid var(--home-border);
  background: transparent;
  color: var(--home-heading);
  font-size: 16px;
  line-height: 1.3;
  text-align: left;
}

.home-wrapper .bottom-list-panel-content {
  padding: 0;
}

.home-wrapper .link-list li {
  padding: 8px 0;
  border-bottom: 1px solid var(--home-border);
  background: transparent;
}

.home-wrapper .link-list li:nth-child(even) {
  background: transparent;
}

.home-wrapper .link-list-link {
  color: var(--home-heading);
  font-size: 14px;
  font-weight: 700;
}

.home-wrapper .site-footer {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--home-border);
}

@media (min-width: 640px) {
  .home-wrapper #sbranche {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-wrapper #bottom_lists {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 760px) {
  .home-wrapper #header {
    min-height: 306px;
    padding: 126px 22px 20px;
  }

  .home-wrapper #suchform {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) 112px;
    gap: 10px;
  }

  .home-wrapper #sbutton {
    width: 112px;
  }
}

@media (min-width: 860px) {
  .portal-layout--home {
    grid-template-columns: minmax(0, 1fr) 330px;
    gap: 18px;
  }

  .portal-layout--home #nav_right {
    position: static;
  }
}

@media (min-width: 1120px) {
  .home-wrapper #sbranche {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 719px) {
  .home-wrapper #site-header {
    margin-bottom: 14px;
  }

  .home-wrapper #logo {
    top: 14px;
    left: 14px;
  }

  .home-wrapper #header {
    min-height: 286px;
  }

  .home-wrapper div.white_top .section-title-inline,
  .home-wrapper .branch-search-form {
    flex-basis: 100%;
  }
}

/* Standard page consistency pass. Applies to search, taxonomy, district, street, entry and account pages. */
#wrapper:not(.home-wrapper) {
  --page-gap: 16px;
  --page-panel: #ffffff;
  --page-panel-soft: #f7faf9;
  --page-heading: #123b33;
  --page-border: #d8e3df;
  --page-muted: #64746d;
  width: min(100% - 24px, 1180px);
  max-width: 1180px;
  padding: 12px 0 28px;
}

#wrapper:not(.home-wrapper) #site-header {
  position: relative;
  grid-column: 1 / -1;
  margin: 0 0 16px;
}

#wrapper:not(.home-wrapper) #logo {
  padding: 4px 0 10px;
}

#wrapper:not(.home-wrapper) #logo a {
  min-height: 48px;
}

#wrapper:not(.home-wrapper) #logo img {
  width: min(250px, 68vw);
  max-height: 58px;
}

#wrapper:not(.home-wrapper) #wetter:empty {
  display: none;
}

#wrapper:not(.home-wrapper) #header {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 12px;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

#wrapper:not(.home-wrapper) #header form {
  width: 100%;
}

#wrapper:not(.home-wrapper) #suchform {
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  max-width: none;
}

#wrapper:not(.home-wrapper) #search,
#wrapper:not(.home-wrapper) #maplist,
#wrapper:not(.home-wrapper) #sbutton {
  min-height: 46px;
}

#wrapper:not(.home-wrapper) #search,
#wrapper:not(.home-wrapper) #maplist {
  border: 1px solid rgba(18, 59, 51, 0.18);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.97);
}

#wrapper:not(.home-wrapper) #sbutton {
  width: 100%;
  border-radius: 8px;
  background: transparent;
}

#wrapper:not(.home-wrapper) .header-nav {
  gap: 8px;
}

#wrapper:not(.home-wrapper) #merkzettel,
#wrapper:not(.home-wrapper) #neuereintrag,
#wrapper:not(.home-wrapper) #login {
  margin: 0;
}

#wrapper:not(.home-wrapper) .header-utility-link {
  min-height: 36px;
  border-color: rgba(255, 255, 255, 0.56);
  background: rgba(255, 255, 255, 0.92);
}

#wrapper:not(.home-wrapper) #nav_right,
#wrapper:not(.home-wrapper) .street-sidebar {
  display: grid;
  gap: 14px;
  margin: 0;
}

#wrapper:not(.home-wrapper) div.white_top {
  min-height: 0;
  padding: 13px 15px;
  border: 1px solid var(--page-heading);
  border-bottom: 0;
  border-radius: 8px 8px 0 0;
  background: var(--page-heading);
  color: #fff;
  box-shadow: none;
}

#wrapper:not(.home-wrapper) div.white_top {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  justify-content: space-between;
}

#wrapper:not(.home-wrapper) div.white_top .section-title-inline {
  display: block;
  flex: 1 1 220px;
  min-width: 0;
}

#wrapper:not(.home-wrapper) div.white_top2 {
  display: none;
}

#wrapper:not(.home-wrapper) div.white_content {
  width: 100%;
  margin: 0 0 var(--page-gap);
  padding: 14px;
  border: 1px solid var(--page-border);
  border-top: 0;
  border-radius: 0 0 8px 8px;
  background: var(--page-panel);
  box-shadow: none;
}

#wrapper:not(.home-wrapper) div.white_top2 + div.white_content {
  border-top: 1px solid var(--page-border);
  border-radius: 8px;
}

#wrapper:not(.home-wrapper) .sidebar-panel-title {
  margin: 0;
  padding: 10px 12px;
  border-bottom: 1px solid var(--page-border);
  background: var(--page-panel-soft);
  color: var(--page-heading);
  font-size: 14px;
  line-height: 1.3;
}

#wrapper:not(.home-wrapper) .sidebar-panel-content {
  min-width: 0;
  background: var(--page-panel);
}

#wrapper:not(.home-wrapper) div.white_bot,
#wrapper:not(.home-wrapper) div.white_bot2 {
  display: none;
}

#wrapper:not(.home-wrapper) .branch-search-form {
  flex: 0 1 300px;
  float: none;
  display: flex;
  flex-direction: row-reverse;
  align-items: center;
  gap: 7px;
  margin: 0;
}

#wrapper:not(.home-wrapper) #sinput {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 40px;
  padding: 8px 10px;
  border: 1px solid rgba(255, 255, 255, 0.38);
  border-radius: 8px;
}

#wrapper:not(.home-wrapper) #rbutton {
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  min-height: 40px;
  border-radius: 8px;
  background: var(--bv-gold);
}

#wrapper:not(.home-wrapper) .search-landing-intro,
#wrapper:not(.home-wrapper) .taxonomy-landing-intro,
#wrapper:not(.home-wrapper) .district-landing-intro,
#wrapper:not(.home-wrapper) .street-landing-intro,
#wrapper:not(.home-wrapper) .data-source-intro,
#wrapper:not(.home-wrapper) .portal-sources,
#wrapper:not(.home-wrapper) .source-content-module {
  border-color: var(--page-border);
  border-radius: 8px;
  background: var(--page-panel-soft);
  color: var(--bv-text);
}

#wrapper:not(.home-wrapper) .search-landing-intro h2,
#wrapper:not(.home-wrapper) .taxonomy-landing-intro h2,
#wrapper:not(.home-wrapper) .district-landing-intro h2,
#wrapper:not(.home-wrapper) .street-landing-intro h2,
#wrapper:not(.home-wrapper) .data-source-intro h2,
#wrapper:not(.home-wrapper) .portal-sources h3,
#wrapper:not(.home-wrapper) .source-content-module h3 {
  color: var(--page-heading);
}

#wrapper:not(.home-wrapper) .search-landing-facts div,
#wrapper:not(.home-wrapper) .taxonomy-landing-facts div,
#wrapper:not(.home-wrapper) .district-landing-facts div,
#wrapper:not(.home-wrapper) .street-landing-facts div,
#wrapper:not(.home-wrapper) .data-source-feature-card,
#wrapper:not(.home-wrapper) .data-source-card,
#wrapper:not(.home-wrapper) .data-source-group-card,
#wrapper:not(.home-wrapper) .data-source-roadmap-card {
  border-color: var(--page-border);
  border-radius: 8px;
  background: #fff;
}

#wrapper:not(.home-wrapper) #sbranche {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
  padding: 0;
}

#wrapper:not(.home-wrapper) .heading-rule {
  grid-column: 1 / -1;
  margin: 4px 0 0;
  padding: 8px 0 0;
  border-top: 1px solid var(--page-border);
  color: var(--page-muted);
  font-size: 13px;
  font-weight: 800;
}

#wrapper:not(.home-wrapper) div.rubriklink,
#wrapper:not(.home-wrapper) div.branchlink,
#wrapper:not(.home-wrapper) div.branchlink2 {
  width: 100%;
  min-width: 0;
  min-height: 52px;
  padding: 10px 12px 10px 42px;
  border: 1px solid var(--page-border);
  border-radius: 8px;
  background: #fff;
}

#wrapper:not(.home-wrapper) div.rubriklink {
  padding-left: 56px;
}

#wrapper:not(.home-wrapper) div.rubriklink a,
#wrapper:not(.home-wrapper) div.branchlink a,
#wrapper:not(.home-wrapper) div.branchlink2 a {
  color: var(--page-heading);
  font-size: 14px;
  line-height: 1.25;
}

#wrapper:not(.home-wrapper) .rubrik-links-clear,
#wrapper:not(.home-wrapper) .branch-links-clear {
  display: none;
}

#wrapper:not(.home-wrapper) .district-nav {
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}

#wrapper:not(.home-wrapper) .district-nav-map {
  width: min(190px, 100%);
  margin: 0 auto;
}

#wrapper:not(.home-wrapper) .district-nav-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
}

#wrapper:not(.home-wrapper) .district-nav-list li {
  padding: 7px 8px;
  border: 1px solid var(--page-border);
  border-radius: 8px;
  background: #fff;
  line-height: 1.25;
}

#wrapper:not(.home-wrapper) a.wo {
  color: var(--page-heading);
  font-size: 13px;
  font-weight: 700;
}

#wrapper:not(.home-wrapper) .street-letter-nav {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 6px;
}

#wrapper:not(.home-wrapper) .street-letter-link {
  border-color: var(--page-border);
  color: var(--page-heading);
}

#wrapper:not(.home-wrapper) .entry-results {
  gap: 10px;
}

#wrapper:not(.home-wrapper) .entry-result {
  border: 1px solid var(--page-border);
  border-radius: 8px;
  background: #fff;
}

#wrapper:not(.home-wrapper) .entry-result--highlight {
  background: #fff9e8;
}

#wrapper:not(.home-wrapper) .entry-hero,
#wrapper:not(.home-wrapper) .entry-context-links,
#wrapper:not(.home-wrapper) .customer-form-grid,
#wrapper:not(.home-wrapper) .public-entry-form,
#wrapper:not(.home-wrapper) .route-target,
#wrapper:not(.home-wrapper) .content-panel {
  min-width: 0;
}

#wrapper:not(.home-wrapper) #bottom_lists {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
  margin: 0;
}

#wrapper:not(.home-wrapper) .bottom-list-panel {
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--page-border);
  border-radius: 8px;
  background: var(--page-panel);
}

#wrapper:not(.home-wrapper) .bottom-list-panel-title {
  margin: 0 0 10px;
  padding: 0 0 8px;
  border-bottom: 1px solid var(--page-border);
  background: transparent;
  color: var(--page-heading);
  font-size: 16px;
  line-height: 1.3;
  text-align: left;
}

#wrapper:not(.home-wrapper) .bottom-list-panel-content {
  padding: 0;
}

#wrapper:not(.home-wrapper) .link-list li {
  padding: 8px 0;
  border-bottom: 1px solid var(--page-border);
  background: transparent;
}

#wrapper:not(.home-wrapper) .link-list li:nth-child(even) {
  background: transparent;
}

#wrapper:not(.home-wrapper) .link-list-link {
  color: var(--page-heading);
  font-size: 14px;
  font-weight: 700;
}

#wrapper:not(.home-wrapper) .site-footer {
  grid-column: 1 / -1;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--page-border);
}

@media (min-width: 640px) {
  #wrapper:not(.home-wrapper) #sbranche {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #wrapper:not(.home-wrapper) #bottom_lists {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 760px) {
  #wrapper:not(.home-wrapper) #header {
    min-height: 250px;
    padding: 96px 22px 18px;
  }

  #wrapper:not(.home-wrapper) #suchform {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) 112px;
    gap: 10px;
  }

  #wrapper:not(.home-wrapper) #sbutton {
    width: 112px;
  }
}

@media (min-width: 860px) {
  #wrapper:not(.home-wrapper) {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    gap: 0 18px;
  }

  #wrapper:not(.home-wrapper) #nav_right,
  #wrapper:not(.home-wrapper) .street-sidebar {
    grid-column: 2;
    grid-row: 3 / span 20;
  }

  #wrapper:not(.home-wrapper) div.white_top,
  #wrapper:not(.home-wrapper) div.white_top2,
  #wrapper:not(.home-wrapper) div.white_content,
  #wrapper:not(.home-wrapper) div.white_bot,
  #wrapper:not(.home-wrapper) div.white_bot2,
  #wrapper:not(.home-wrapper) #bottom_lists {
    grid-column: 1;
  }
}

@media (min-width: 1120px) {
  #wrapper:not(.home-wrapper) #sbranche {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 719px) {
  #wrapper:not(.home-wrapper) div.white_top .section-title-inline,
  #wrapper:not(.home-wrapper) .branch-search-form {
    flex-basis: 100%;
  }

  #wrapper:not(.home-wrapper) .entry-result {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Keep legacy sidebar panel fragments compact inside the modern page grid. */
.home-wrapper #nav_right,
#wrapper:not(.home-wrapper) #nav_right,
#wrapper:not(.home-wrapper) .street-sidebar {
  gap: 0;
  align-content: start;
}

#Dialog.hidden,
#loading.hidden {
  display: none;
}

.customer-option > span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.customer-option .inline-help {
  flex: 0 0 auto;
}

.customer-option input[type="checkbox"],
.customer-option input[type="radio"] {
  flex: 0 0 auto;
  width: auto;
  min-width: 16px;
  min-height: 16px;
}

@media (max-width: 859px) {
  #wrapper:not(.home-wrapper) {
    display: flex;
    flex-direction: column;
  }

  #wrapper:not(.home-wrapper) #site-header {
    order: 0;
  }

  #wrapper:not(.home-wrapper) div.white_top,
  #wrapper:not(.home-wrapper) div.white_top2,
  #wrapper:not(.home-wrapper) div.white_content,
  #wrapper:not(.home-wrapper) div.white_bot,
  #wrapper:not(.home-wrapper) div.white_bot2,
  #wrapper:not(.home-wrapper) #bottom_lists {
    order: 10;
  }

  #wrapper:not(.home-wrapper) #nav_right,
  #wrapper:not(.home-wrapper) .street-sidebar {
    order: 20;
  }

  #wrapper:not(.home-wrapper) #footer {
    order: 30;
  }
}

/* Design-system unification pass across legacy and modern page types. */
:root {
  --bv-panel: #ffffff;
  --bv-panel-soft: #f8fbfa;
  --bv-panel-tint: #eef5f2;
  --bv-border: #d8e3df;
  --bv-border-strong: #b9cdc5;
  --bv-heading: #123b33;
  --bv-hover: #f3f8f6;
  --bv-warning: #fff8e8;
  --bv-warning-border: #ecd7a7;
}

#wrapper,
#wrapper.home-wrapper,
#wrapper:not(.home-wrapper) {
  color: var(--bv-text);
}

#wrapper a,
#wrapper a:visited {
  color: var(--bv-link);
  text-decoration-color: rgba(157, 47, 37, 0.45);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

#wrapper a:hover,
#wrapper a:focus {
  color: var(--bv-primary-dark);
  text-decoration-color: currentColor;
}

.home-wrapper div.white_top,
#wrapper:not(.home-wrapper) div.white_top {
  min-height: 0;
  padding: 13px 16px;
  border: 1px solid var(--bv-heading);
  border-bottom: 0;
  border-radius: 8px 8px 0 0;
  background: var(--bv-heading);
  color: #fff;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.25;
}

.home-wrapper div.white_top .section-title-inline,
#wrapper:not(.home-wrapper) div.white_top .section-title-inline {
  color: inherit;
  font-size: 18px;
  line-height: 1.25;
}

.home-wrapper div.white_content,
#wrapper:not(.home-wrapper) div.white_content {
  margin: 0 0 16px;
  padding: 16px;
  border: 1px solid var(--bv-border);
  background: var(--bv-panel);
  box-shadow: none;
}

.home-wrapper div.white_content,
#wrapper:not(.home-wrapper) div.white_content {
  border-top: 0;
  border-radius: 0 0 8px 8px;
}

.home-wrapper div.white_bot,
#wrapper:not(.home-wrapper) div.white_bot,
#wrapper:not(.home-wrapper) div.white_bot2 {
  display: none;
}

.home-landing-intro,
.search-landing-intro,
.taxonomy-landing-intro,
.district-landing-intro,
.street-landing-intro,
.data-source-intro,
.portal-sources,
.source-content-module {
  padding: 16px;
  border: 1px solid var(--bv-border);
  border-radius: 8px;
  background: var(--bv-panel-soft);
  color: var(--bv-text);
}

.home-landing-intro h2,
.search-landing-intro h2,
.taxonomy-landing-intro h2,
.district-landing-intro h2,
.street-landing-intro h2,
.data-source-intro h2,
.portal-sources h3,
.source-content-module h3,
.data-source-list h2,
.data-source-groups h2,
.data-source-roadmap h2,
.entry-context-links h2,
.entry-title {
  color: var(--bv-heading);
}

.home-landing-intro p,
.search-landing-intro p,
.taxonomy-landing-intro p,
.district-landing-intro p,
.street-landing-intro p,
.data-source-intro p,
.portal-sources p,
.source-content-module p {
  color: var(--bv-muted);
}

.home-landing-facts div,
.search-landing-facts div,
.taxonomy-landing-facts div,
.district-landing-facts div,
.street-landing-facts div,
.data-source-feature-card,
.data-source-group-card,
.data-source-roadmap-card,
.data-source-card,
.portal-source-list li,
.entry-context-group li,
.backlink-option,
.customer-entry-list-item {
  border: 1px solid var(--bv-border);
  border-radius: 8px;
  background: var(--bv-panel);
  box-shadow: none;
}

.data-source-feature-card,
.data-source-group-card,
.data-source-roadmap-card,
.data-source-card,
.source-content-module {
  color: var(--bv-text);
}

.data-source-feature-card h3,
.data-source-group-card h3,
.data-source-roadmap-card h3,
.data-source-card h3,
.entry-context-group h3 {
  color: var(--bv-heading);
}

.data-source-group-card .data-source-group-meta,
.data-source-roadmap-stage,
.data-source-feature-card dt,
.data-source-roadmap-card dt,
.data-source-card dt,
.source-content-metric dt,
.source-content-targets strong,
.source-content-source-meta dt,
.portal-source-groups strong,
.home-quick-links strong,
.search-related-links strong,
.taxonomy-related-links strong,
.district-related-links strong,
.street-related-links strong {
  color: var(--bv-muted);
}

.data-source-import-status {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
}

.data-source-group-icon,
.data-source-roadmap-icon {
  border-color: var(--bv-border);
  background: var(--bv-panel-soft);
}

.home-quick-links a,
.portal-source-group-links a,
.data-source-group-links a,
.search-related-links a,
.taxonomy-related-links a,
.district-related-links a,
.street-related-links a,
.data-source-target-links a,
.source-content-target-links a,
.data-source-toc a,
.entry-action-link,
.entry-action-grid .entry-action-button,
.page-tool-button,
.page-tool-link,
.header-utility-link,
.street-letter-link {
  border: 1px solid var(--bv-border);
  border-radius: 8px;
  background: var(--bv-panel);
  color: var(--bv-primary-dark);
  font-weight: 750;
  text-decoration: none;
}

.home-quick-links a:hover,
.home-quick-links a:focus,
.portal-source-group-links a:hover,
.portal-source-group-links a:focus,
.data-source-group-links a:hover,
.data-source-group-links a:focus,
.search-related-links a:hover,
.search-related-links a:focus,
.taxonomy-related-links a:hover,
.taxonomy-related-links a:focus,
.district-related-links a:hover,
.district-related-links a:focus,
.street-related-links a:hover,
.street-related-links a:focus,
.data-source-target-links a:hover,
.data-source-target-links a:focus,
.source-content-target-links a:hover,
.source-content-target-links a:focus,
.data-source-toc a:hover,
.data-source-toc a:focus,
.entry-action-link:hover,
.entry-action-link:focus,
.entry-action-grid .entry-action-button:hover,
.entry-action-grid .entry-action-button:focus,
.page-tool-button:hover,
.page-tool-button:focus,
.page-tool-link:hover,
.page-tool-link:focus,
.header-utility-link:hover,
.header-utility-link:focus,
.street-letter-link:hover,
.street-letter-link:focus {
  border-color: var(--bv-border-strong);
  background: var(--bv-hover);
  color: var(--bv-primary-dark);
  text-decoration: none;
}

.entry-results {
  gap: 10px;
}

.entry-result,
#wrapper:not(.home-wrapper) .entry-result {
  padding: 12px;
  border: 1px solid var(--bv-border);
  border-radius: 8px;
  background: var(--bv-panel);
}

.entry-result--highlight,
#wrapper:not(.home-wrapper) .entry-result--highlight {
  background: var(--bv-panel);
}

.entry-result-main strong a,
.entry-result-main strong a:visited,
.street-directory-link,
.street-directory-link:visited,
.link-list-link,
.link-list-link:visited,
a.wo,
a.wo:visited {
  color: var(--bv-heading);
  text-decoration: none;
}

.entry-result-main strong a:hover,
.entry-result-main strong a:focus,
.street-directory-link:hover,
.street-directory-link:focus,
.link-list-link:hover,
.link-list-link:focus,
a.wo:hover,
a.wo:focus {
  color: var(--bv-link);
  text-decoration: underline;
}

.entry-result-contact,
.entry-context-group span,
.link-list span,
.link-list time,
.home-quick-links span,
.portal-source-list span,
.source-content-source,
.source-content-source-meta,
.entry-update-date,
.entry-tags,
.muted-message {
  color: var(--bv-muted);
}

.entry-result-action-button,
.entry-heading-action,
.entry-result-vcard-link {
  border: 1px solid transparent;
  border-radius: 8px;
  color: var(--bv-link);
}

.entry-result-action-button:hover,
.entry-result-action-button:focus,
.entry-heading-action:hover,
.entry-heading-action:focus,
.entry-result-vcard-link:hover,
.entry-result-vcard-link:focus {
  border-color: var(--bv-border);
  background: var(--bv-hover);
}

.street-directory-list {
  gap: 0 14px;
}

.street-directory-list li,
.link-list li,
.customer-entry-list-item,
.entry-review,
.listing-separator {
  border-color: var(--bv-border);
}

.street-directory-link {
  padding: 7px 2px;
  font-size: 13px;
  line-height: 1.35;
}

#wrapper input:not([type="checkbox"]):not([type="radio"]):not([type="image"]),
#wrapper select,
#wrapper textarea {
  margin: 0;
  padding: 9px 10px;
  border: 1px solid var(--bv-border);
  border-radius: 8px;
  background: #fff;
  color: var(--bv-text);
}

#wrapper input:not([type="checkbox"]):not([type="radio"]):not([type="image"]):focus,
#wrapper select:focus,
#wrapper textarea:focus {
  border-color: var(--bv-primary);
  outline: 2px solid rgba(15, 111, 92, 0.18);
  outline-offset: 1px;
}

.customer-field label,
.dialog-field label,
.dialog-field-label,
.public-entry-section legend,
.backlink-label,
.opening-hours-day {
  color: var(--bv-heading);
}

div.infobox,
#wrapper div.infobox {
  float: none;
  margin: 12px 0;
  padding: 12px;
  border: 1px solid var(--bv-warning-border);
  border-radius: 8px;
  background: var(--bv-warning);
  color: var(--bv-text);
}

div.login-form-panel,
#wrapper div.login-form-panel {
  border-color: var(--bv-border);
  background: var(--bv-panel-soft);
}

.field-error {
  color: #a8281d;
}

.form-action-button,
#wrapper .form-action-button {
  min-height: 38px;
  padding: 8px 13px;
  border: 1px solid #c88521;
  border-radius: 8px;
  background: var(--bv-gold);
  color: var(--bv-heading);
  font-weight: 800;
}

.form-action-button:hover,
.form-action-button:focus {
  border-color: #aa7019;
  background: #e3a333;
  color: var(--bv-heading);
}

.link-button,
button.link-button {
  color: var(--bv-link);
  font: inherit;
  font-weight: 750;
}

.link-button:hover,
.link-button:focus,
button.link-button:hover,
button.link-button:focus {
  color: var(--bv-primary-dark);
  text-decoration: underline;
}

.breadcrumb-nav,
.result-summary {
  color: var(--bv-muted);
}

.breadcrumb-nav a,
.breadcrumb-nav a:visited {
  color: var(--bv-primary-dark);
}

.external-link::after {
  background: currentColor;
}

/* Simplified visual layer: flatter surfaces, fewer colors, quieter cards. */
:root {
  --bv-bg: #f6f7f7;
  --bv-surface-soft: #ffffff;
  --bv-panel: #ffffff;
  --bv-panel-soft: #ffffff;
  --bv-panel-tint: #ffffff;
  --bv-border: #dde5e1;
  --bv-border-strong: #bdcbc5;
  --bv-heading: #173a32;
  --bv-hover: #f5f7f6;
  --bv-warning: #fef9e8;
  --bv-warning-border: #d4a847;
  --bv-shadow: none;
}

body {
  background: var(--bv-bg);
}

#wetter,
#header,
.home-wrapper #logo a,
.home-wrapper #header,
#wrapper:not(.home-wrapper) #header,
.home-wrapper .header-utility-link,
#wrapper:not(.home-wrapper) .header-utility-link,
.modal-dialog {
  box-shadow: none;
}

#wetter {
  background: #fff;
}

#header,
.home-wrapper #header,
#wrapper:not(.home-wrapper) #header {
  border-color: rgba(18, 59, 51, 0.14);
  background: transparent;
}

.home-wrapper #header {
  min-height: 0;
}

#wrapper:not(.home-wrapper) #header {
  min-height: 0;
}

#search,
#maplist,
.home-wrapper #search,
.home-wrapper #maplist,
#wrapper:not(.home-wrapper) #search,
#wrapper:not(.home-wrapper) #maplist {
  box-shadow: none;
}

.home-wrapper div.white_top,
#wrapper:not(.home-wrapper) div.white_top {
  padding: 11px 14px;
  background: var(--bv-heading);
  font-weight: 700;
}

.home-wrapper div.white_content,
#wrapper:not(.home-wrapper) div.white_content,
.home-landing-intro,
.search-landing-intro,
.taxonomy-landing-intro,
.district-landing-intro,
.street-landing-intro,
.data-source-intro,
.portal-sources,
.source-content-module {
  background: var(--bv-panel);
}

.home-wrapper .home-landing-intro,
.home-wrapper .portal-sources,
#wrapper:not(.home-wrapper) .search-landing-intro,
#wrapper:not(.home-wrapper) .taxonomy-landing-intro,
#wrapper:not(.home-wrapper) .district-landing-intro,
#wrapper:not(.home-wrapper) .street-landing-intro,
#wrapper:not(.home-wrapper) .data-source-intro,
#wrapper:not(.home-wrapper) .portal-sources,
#wrapper:not(.home-wrapper) .source-content-module {
  background: var(--bv-panel);
}

.home-landing-facts,
.search-landing-facts,
.taxonomy-landing-facts,
.district-landing-facts,
.street-landing-facts {
  gap: 8px;
}

.home-landing-facts div,
.search-landing-facts div,
.taxonomy-landing-facts div,
.district-landing-facts div,
.street-landing-facts div,
.data-source-feature-card,
.data-source-group-card,
.data-source-roadmap-card,
.data-source-card,
.portal-source-list li,
.entry-context-group li,
.backlink-option,
.customer-entry-list-item,
.district-nav-list li,
#wrapper:not(.home-wrapper) .district-nav-list li,
.home-wrapper .district-nav-list li,
.entry-result,
#wrapper:not(.home-wrapper) .entry-result {
  border-color: var(--bv-border);
  background: #fff;
  box-shadow: none;
}

div.rubriklink,
div.branchlink,
div.branchlink2,
.home-wrapper div.rubriklink,
.home-wrapper div.branchlink,
.home-wrapper div.branchlink2,
#wrapper:not(.home-wrapper) div.rubriklink,
#wrapper:not(.home-wrapper) div.branchlink,
#wrapper:not(.home-wrapper) div.branchlink2 {
  min-height: 46px;
  padding-left: 38px;
  background: #fff;
}

div.rubriklink::before,
.home-wrapper div.rubriklink::before,
#wrapper:not(.home-wrapper) div.rubriklink::before {
  display: none;
}

div.rubriklink::after,
.home-wrapper div.rubriklink::after,
#wrapper:not(.home-wrapper) div.rubriklink::after {
  left: 12px;
  width: 16px;
  height: 16px;
  background: var(--bv-muted);
}

div.branchlink::before,
div.branchlink2::before {
  left: 12px;
  width: 16px;
  height: 16px;
  background: var(--bv-muted);
}

.home-wrapper div.rubriklink:hover,
.home-wrapper div.rubriklink:focus-within,
.home-wrapper div.branchlink:hover,
.home-wrapper div.branchlink:focus-within,
.home-wrapper div.branchlink2:hover,
.home-wrapper div.branchlink2:focus-within,
#wrapper:not(.home-wrapper) div.rubriklink:hover,
#wrapper:not(.home-wrapper) div.rubriklink:focus-within,
#wrapper:not(.home-wrapper) div.branchlink:hover,
#wrapper:not(.home-wrapper) div.branchlink:focus-within,
#wrapper:not(.home-wrapper) div.branchlink2:hover,
#wrapper:not(.home-wrapper) div.branchlink2:focus-within {
  border-color: var(--bv-border-strong);
  background: var(--bv-hover);
}

.home-quick-links a,
.portal-source-group-links a,
.search-related-links a,
.taxonomy-related-links a,
.district-related-links a,
.street-related-links a,
.data-source-target-links a,
.source-content-target-links a,
.data-source-toc a,
.entry-action-link,
.entry-action-grid .entry-action-button,
.page-tool-button,
.page-tool-link,
.header-utility-link,
.street-letter-link,
.form-action-button,
#wrapper .form-action-button {
  font-weight: 700;
}

.home-quick-links a,
.portal-source-group-links a,
.search-related-links a,
.taxonomy-related-links a,
.district-related-links a,
.street-related-links a,
.data-source-target-links a,
.source-content-target-links a,
.data-source-toc a,
.street-letter-link {
  background: #fff;
}

.home-quick-links span,
.portal-source-list span,
.source-content-source,
.source-content-source-meta,
.entry-result-contact,
.entry-tags,
.entry-update-date {
  color: var(--bv-muted);
}

.entry-results {
  gap: 8px;
}

.entry-result,
#wrapper:not(.home-wrapper) .entry-result {
  padding: 10px 12px;
}

.entry-result-action-button,
.entry-heading-action,
.entry-result-vcard-link {
  color: var(--bv-muted);
}

.entry-result-action-button:hover,
.entry-result-action-button:focus,
.entry-heading-action:hover,
.entry-heading-action:focus,
.entry-result-vcard-link:hover,
.entry-result-vcard-link:focus {
  color: var(--bv-link);
}

div.infobox,
#wrapper div.infobox {
  background: #fffaf0;
}

div.login-form-panel,
#wrapper div.login-form-panel {
  background: #fff;
}

/* Header correction: one top bar for logo/weather, one full-width search hero. */
#site-header,
.home-wrapper #site-header,
#wrapper:not(.home-wrapper) #site-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px 16px;
  align-items: center;
  margin: 0 0 16px;
}

#site-header #logo,
.home-wrapper #logo,
#wrapper:not(.home-wrapper) #logo {
  position: static;
  z-index: auto;
  grid-column: 1;
  grid-row: 1;
  padding: 0;
}

#site-header #logo a,
.home-wrapper #logo a,
#wrapper:not(.home-wrapper) #logo a {
  min-height: 50px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

#site-header #logo img,
.home-wrapper #logo img,
#wrapper:not(.home-wrapper) #logo img {
  width: min(250px, 58vw);
  max-height: 58px;
}

#site-header #wetter,
.home-wrapper #wetter,
#wrapper:not(.home-wrapper) #wetter {
  position: static;
  display: block;
  grid-column: 2;
  grid-row: 1;
  justify-self: end;
  min-width: 112px;
  max-width: 148px;
  margin: 0;
}

#site-header #wetter:empty,
.home-wrapper #wetter:empty,
#wrapper:not(.home-wrapper) #wetter:empty {
  display: none;
}

#site-header #header,
.home-wrapper #header,
#wrapper:not(.home-wrapper) #header {
  grid-column: 1 / -1;
  grid-row: 2;
  width: 100%;
  max-width: none;
  min-height: 0;
  margin: 0;
  padding: 0;
}

.home-wrapper #header {
  min-height: 0;
}

#site-header #suchform,
.home-wrapper #suchform,
#wrapper:not(.home-wrapper) #suchform {
  max-width: 900px;
}

#site-header .header-nav,
.home-wrapper .header-nav,
#wrapper:not(.home-wrapper) .header-nav {
  justify-content: flex-start;
}

/* Entry sidebar actions: links and buttons must look identical. */
.entry-action-grid {
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
}

.entry-action-grid .entry-action-control,
.entry-action-grid .entry-action-link {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 42px;
  margin: 0;
  padding: 9px 10px;
  border: 1px solid var(--bv-border);
  border-radius: 8px;
  background: #fff;
  color: var(--bv-heading);
  font: inherit;
  font-weight: 700;
  line-height: 1.25;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}

#wrapper .entry-action-grid .entry-action-link,
#wrapper .entry-action-grid .entry-action-link:visited,
#wrapper .entry-action-grid .entry-action-control {
  color: var(--bv-heading);
  text-decoration: none;
}

.entry-action-grid .entry-action-control:hover,
.entry-action-grid .entry-action-control:focus,
.entry-action-grid .entry-action-link:hover,
.entry-action-grid .entry-action-link:focus {
  border-color: var(--bv-border-strong);
  background: var(--bv-hover);
  color: var(--bv-heading);
  text-decoration: none;
}

.entry-action-grid .entry-action-control img,
.entry-action-grid .entry-action-link img {
  width: 20px;
  height: 20px;
  opacity: 0.75;
}

.entry-action-grid .entry-action-control span,
.entry-action-grid .entry-action-link span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.news-sources {
  display: grid;
  gap: 8px;
}

.news-sources h2 {
  margin: 0;
  color: var(--bv-heading);
  font-size: 16px;
  line-height: 1.25;
}

.news-sources p {
  margin: 0;
  color: var(--bv-muted);
  line-height: 1.4;
}

.news-source-list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.news-source-list li {
  display: grid;
  gap: 3px;
  padding: 8px 0;
  border-top: 1px solid var(--bv-border);
}

.news-source-list li:first-child {
  border-top: 0;
}

.news-source-list a {
  font-weight: 700;
}

.news-feed-meta {
  color: var(--bv-muted);
}

.news-feed-title {
  line-height: 1.4;
}

.news-sources .news-feed-summary {
  margin: 2px 0;
  color: var(--bv-text);
  font-size: 14px;
  line-height: 1.55;
}

.news-source-list span,
.news-source-note {
  font-size: 13px;
}

@media (min-width: 760px) {
  #site-header #suchform,
  .home-wrapper #suchform,
  #wrapper:not(.home-wrapper) #suchform {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) 112px;
  }
}

@media (max-width: 700px) {
  #site-header,
  .home-wrapper #site-header,
  #wrapper:not(.home-wrapper) #site-header {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px 10px;
  }

  #site-header #logo img,
  .home-wrapper #logo img,
  #wrapper:not(.home-wrapper) #logo img {
    width: min(205px, 56vw);
    max-height: 48px;
  }

  #site-header #wetter,
  .home-wrapper #wetter,
  #wrapper:not(.home-wrapper) #wetter {
    min-width: 86px;
    max-width: 104px;
    padding: 5px 6px;
    font-size: 11px;
  }

  #site-header #wetter .weather-icon,
  .home-wrapper #wetter .weather-icon,
  #wrapper:not(.home-wrapper) #wetter .weather-icon {
    width: 26px;
    height: 26px;
  }

  #site-header #header,
  .home-wrapper #header,
  #wrapper:not(.home-wrapper) #header {
    min-height: 0;
    padding: 14px;
  }

  #site-header #suchform,
  .home-wrapper #suchform,
  #wrapper:not(.home-wrapper) #suchform {
    grid-template-columns: minmax(0, 1fr) 44px;
    grid-template-areas:
      "search submit"
      "place place";
    gap: 8px;
  }

  #site-header #search,
  .home-wrapper #search,
  #wrapper:not(.home-wrapper) #search {
    grid-area: search;
    min-height: 40px;
    padding: 9px 10px;
  }

  #site-header #maplist,
  .home-wrapper #maplist,
  #wrapper:not(.home-wrapper) #maplist {
    grid-area: place;
    min-height: 40px;
    padding: 9px 10px;
  }

  #site-header #sbutton,
  .home-wrapper #sbutton,
  #wrapper:not(.home-wrapper) #sbutton {
    grid-area: submit;
    align-self: stretch;
    justify-self: stretch;
    width: 44px;
    min-height: 40px;
    height: 40px;
    border-radius: 8px;
    background: var(--bv-gold);
  }

  #site-header #sbutton img,
  .home-wrapper #sbutton img,
  #wrapper:not(.home-wrapper) #sbutton img {
    width: 30px !important;
    max-width: 30px;
    height: auto !important;
  }

  #site-header .header-nav,
  .home-wrapper .header-nav,
  #wrapper:not(.home-wrapper) .header-nav {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }

  #site-header #merkzettel,
  #site-header #neuereintrag,
  #site-header #login,
  .home-wrapper #merkzettel,
  .home-wrapper #neuereintrag,
  .home-wrapper #login,
  #wrapper:not(.home-wrapper) #merkzettel,
  #wrapper:not(.home-wrapper) #neuereintrag,
  #wrapper:not(.home-wrapper) #login {
    display: block;
    width: 100%;
    margin: 0;
  }

  #site-header .header-utility-link,
  .home-wrapper .header-utility-link,
  #wrapper:not(.home-wrapper) .header-utility-link {
    width: 100%;
    min-height: 34px;
    padding: 6px 4px;
    font-size: 11px;
    line-height: 1.15;
    text-align: center;
    overflow-wrap: anywhere;
  }
}

/* Final header redesign: compact directory toolbar, no legacy hero banner. */
#site-header,
.home-wrapper #site-header,
#wrapper:not(.home-wrapper) #site-header {
  display: grid;
  grid-template-columns: 244px minmax(0, 1fr) auto;
  grid-template-areas: "logo search weather";
  align-items: center;
  gap: 14px;
  width: 100%;
  margin: 0 0 16px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

#site-header #logo,
.home-wrapper #logo,
#wrapper:not(.home-wrapper) #logo {
  grid-area: logo;
  position: static;
  justify-self: start;
  width: auto;
  min-width: 0;
  padding: 0;
  text-align: left;
}

#site-header #logo a,
.home-wrapper #logo a,
#wrapper:not(.home-wrapper) #logo a {
  display: inline-flex;
  align-items: center;
  width: auto;
  min-height: 52px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

#site-header #logo img,
.home-wrapper #logo img,
#wrapper:not(.home-wrapper) #logo img {
  display: block;
  width: 226px;
  max-width: 100%;
  height: auto;
  max-height: 52px;
}

#site-header #header,
.home-wrapper #header,
#wrapper:not(.home-wrapper) #header {
  grid-area: search;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  justify-items: stretch;
  gap: 8px;
  width: 100%;
  min-height: 0;
  max-width: none;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

#site-header #header form,
.home-wrapper #header form,
#wrapper:not(.home-wrapper) #header form {
  width: 100%;
}

#site-header #suchform,
.home-wrapper #suchform,
#wrapper:not(.home-wrapper) #suchform {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) 44px;
  gap: 8px;
  width: 100%;
  max-width: none;
  height: auto;
}

#site-header #suchform > img,
.home-wrapper #suchform > img,
#wrapper:not(.home-wrapper) #suchform > img {
  display: none;
}

#site-header #search,
#site-header #maplist,
.home-wrapper #search,
.home-wrapper #maplist,
#wrapper:not(.home-wrapper) #search,
#wrapper:not(.home-wrapper) #maplist {
  width: 100%;
  min-height: 42px;
  margin: 0;
  padding: 9px 12px;
  border: 1px solid var(--bv-border);
  border-radius: 7px;
  background: #fff;
  color: var(--bv-heading);
  font-size: 15px;
  box-shadow: none;
}

#site-header #search:focus,
#site-header #maplist:focus,
.home-wrapper #search:focus,
.home-wrapper #maplist:focus,
#wrapper:not(.home-wrapper) #search:focus,
#wrapper:not(.home-wrapper) #maplist:focus {
  border-color: var(--bv-border-strong);
  outline: 3px solid rgba(13, 119, 100, 0.16);
}

#site-header #sbutton,
.home-wrapper #sbutton,
#wrapper:not(.home-wrapper) #sbutton {
  align-self: stretch;
  justify-self: stretch;
  width: 44px;
  min-height: 40px;
  height: 40px;
  margin: 0;
  padding: 0;
  border: 1px solid var(--bv-border);
  border-radius: 7px;
  background: var(--bv-gold);
  box-shadow: none;
}

#site-header #sbutton img,
.home-wrapper #sbutton img,
#wrapper:not(.home-wrapper) #sbutton img {
  width: 30px !important;
  max-width: 30px;
  height: auto !important;
}

#site-header .header-nav,
.home-wrapper .header-nav,
#wrapper:not(.home-wrapper) .header-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  width: 100%;
}

#site-header #merkzettel,
#site-header #neuereintrag,
#site-header #login,
.home-wrapper #merkzettel,
.home-wrapper #neuereintrag,
.home-wrapper #login,
#wrapper:not(.home-wrapper) #merkzettel,
#wrapper:not(.home-wrapper) #neuereintrag,
#wrapper:not(.home-wrapper) #login {
  display: block;
  width: auto;
  min-width: 0;
  margin: 0;
  padding: 0;
}

#site-header .header-utility-link,
.home-wrapper .header-utility-link,
#wrapper:not(.home-wrapper) .header-utility-link {
  min-height: 31px;
  padding: 3px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--bv-link);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
  box-shadow: none;
}

#site-header #wetter,
.home-wrapper #wetter,
#wrapper:not(.home-wrapper) #wetter {
  grid-area: weather;
  justify-self: end;
  width: auto;
  min-width: 118px;
  max-width: 132px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

#site-header #wetter:empty,
.home-wrapper #wetter:empty,
#wrapper:not(.home-wrapper) #wetter:empty {
  display: none;
}

@media (max-width: 980px) {
  #site-header,
  .home-wrapper #site-header,
  #wrapper:not(.home-wrapper) #site-header {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "logo weather"
      "search search";
  }

  #site-header #logo img,
  .home-wrapper #logo img,
  #wrapper:not(.home-wrapper) #logo img {
    width: 215px;
  }
}

@media (max-width: 700px) {
  #site-header,
  .home-wrapper #site-header,
  #wrapper:not(.home-wrapper) #site-header {
    gap: 10px;
    margin-bottom: 12px;
    padding: 0;
  }

  #site-header #logo a,
  .home-wrapper #logo a,
  #wrapper:not(.home-wrapper) #logo a {
    min-height: 44px;
  }

  #site-header #logo img,
  .home-wrapper #logo img,
  #wrapper:not(.home-wrapper) #logo img {
    width: min(190px, 58vw);
    max-height: 44px;
  }

  #site-header #wetter,
  .home-wrapper #wetter,
  #wrapper:not(.home-wrapper) #wetter {
    min-width: 94px;
    max-width: 104px;
    padding: 5px 6px;
    font-size: 11px;
  }

  #site-header #suchform,
  .home-wrapper #suchform,
  #wrapper:not(.home-wrapper) #suchform {
    grid-template-columns: minmax(0, 1fr) 44px;
    grid-template-areas:
      "search submit"
      "place place";
    gap: 7px;
  }

  #site-header #search,
  .home-wrapper #search,
  #wrapper:not(.home-wrapper) #search {
    grid-area: search;
  }

  #site-header #maplist,
  .home-wrapper #maplist,
  #wrapper:not(.home-wrapper) #maplist {
    grid-area: place;
  }

  #site-header #sbutton,
  .home-wrapper #sbutton,
  #wrapper:not(.home-wrapper) #sbutton {
    grid-area: submit;
    width: 44px;
    min-height: 40px;
    height: 40px;
  }

  #site-header #sbutton img,
  .home-wrapper #sbutton img,
  #wrapper:not(.home-wrapper) #sbutton img {
    width: 30px !important;
    max-width: 30px;
  }

  #site-header .header-nav,
  .home-wrapper .header-nav,
  #wrapper:not(.home-wrapper) .header-nav {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(118px, 1.28fr) minmax(0, 1fr);
    gap: 6px;
  }

  #site-header .header-utility-link,
  .home-wrapper .header-utility-link,
  #wrapper:not(.home-wrapper) .header-utility-link {
    width: 100%;
    min-height: 32px;
    padding: 4px 0;
    font-size: 11px;
    text-align: center;
    overflow-wrap: anywhere;
  }
}

body.entry-detail-page .entry-opening-hours {
  float: none;
  width: 100%;
  margin: 0 0 14px;
  padding: 12px;
  border: 1px solid var(--bv-border);
  border-radius: 8px;
  background: var(--bv-panel-soft);
}

body.entry-detail-page .entry-opening-hours h2 {
  margin: 0;
  font-size: 17px;
  line-height: 1.25;
}

body.entry-detail-page .entry-opening-hours-head {
  margin-bottom: 10px;
}

body.entry-detail-page .entry-opening-hours .entry-status-badge {
  align-self: flex-start;
}

body.entry-detail-page .entry-opening-hours dl {
  margin: 0;
}

body.entry-detail-page .entry-opening-hours dl div {
  display: grid;
  grid-template-columns: minmax(92px, max-content) minmax(0, 1fr);
  gap: 4px 10px;
  align-items: baseline;
}

body.entry-detail-page .entry-opening-hours dt {
  min-width: 0;
}

body.entry-detail-page .entry-opening-hours dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
  white-space: normal;
}

body.entry-detail-page .entry-description {
  min-width: 0;
  overflow-wrap: anywhere;
}

@media (min-width: 760px) {
  body.entry-detail-page .entry-opening-hours {
    float: right;
    width: min(300px, 42%);
    margin: 0 0 14px 18px;
  }
}

/* 2026 layout refresh: one visual system for search, content, sidebars and forms. */
:root {
  --layout-canvas: #f4f1ea;
  --layout-surface: #ffffff;
  --layout-surface-soft: #f7f9f7;
  --layout-ink: #17231f;
  --layout-muted: #627069;
  --layout-green: #0b5d4e;
  --layout-green-dark: #073f35;
  --layout-red: #ad3d30;
  --layout-gold: #efb64e;
  --layout-border: #d9e1dc;
  --layout-border-strong: #aebfb7;
  --layout-radius: 14px;
  --layout-radius-small: 10px;
  --layout-shadow: 0 18px 46px rgba(24, 43, 36, 0.08);
  --layout-shadow-small: 0 8px 24px rgba(24, 43, 36, 0.07);
}

html {
  background: var(--layout-canvas);
}

body {
  background:
    radial-gradient(circle at 12% 0, rgba(239, 182, 78, 0.12), transparent 310px),
    linear-gradient(180deg, #fbfaf7 0, var(--layout-canvas) 420px);
  color: var(--layout-ink);
}

#wrapper,
#wrapper.home-wrapper {
  width: min(calc(100% - 32px), 1240px);
  max-width: 1240px;
  padding: 22px 0 42px;
}

#site-header,
.home-wrapper #site-header,
#wrapper:not(.home-wrapper) #site-header {
  grid-template-columns: 240px minmax(0, 1fr) 132px;
  grid-template-areas: "logo search weather";
  gap: 18px;
  margin: 0 0 24px;
  padding: 18px 20px;
  border: 1px solid var(--layout-border);
  border-top: 4px solid var(--layout-red);
  border-radius: 0 0 var(--layout-radius) var(--layout-radius);
  background: linear-gradient(135deg, #fff 0%, #f8faf8 100%);
  box-shadow: var(--layout-shadow-small);
}

#site-header #logo a,
.home-wrapper #logo a,
#wrapper:not(.home-wrapper) #logo a {
  min-height: 48px;
}

#site-header #logo img,
.home-wrapper #logo img,
#wrapper:not(.home-wrapper) #logo img {
  width: 228px;
  max-height: 52px;
}

#site-header #header,
.home-wrapper #header,
#wrapper:not(.home-wrapper) #header {
  gap: 9px;
}

#site-header #suchform,
.home-wrapper #suchform,
#wrapper:not(.home-wrapper) #suchform {
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.9fr) 116px;
  gap: 8px;
}

#site-header #search,
#site-header #maplist,
.home-wrapper #search,
.home-wrapper #maplist,
#wrapper:not(.home-wrapper) #search,
#wrapper:not(.home-wrapper) #maplist {
  min-height: 46px;
  padding: 10px 13px;
  border-color: var(--layout-border);
  border-radius: var(--layout-radius-small);
  background: var(--layout-surface-soft);
  color: var(--layout-ink);
  font-size: 15px;
}

#site-header #search::placeholder,
#site-header #maplist::placeholder,
.home-wrapper #search::placeholder,
.home-wrapper #maplist::placeholder,
#wrapper:not(.home-wrapper) #search::placeholder,
#wrapper:not(.home-wrapper) #maplist::placeholder {
  color: #6c7772;
  opacity: 1;
}

#site-header #search:focus,
#site-header #maplist:focus,
.home-wrapper #search:focus,
.home-wrapper #maplist:focus,
#wrapper:not(.home-wrapper) #search:focus,
#wrapper:not(.home-wrapper) #maplist:focus {
  border-color: var(--layout-green);
  background: #fff;
  outline: 3px solid rgba(11, 93, 78, 0.14);
}

#site-header #sbutton,
.home-wrapper #sbutton,
#wrapper:not(.home-wrapper) #sbutton {
  display: inline-flex;
  gap: 7px;
  width: 116px;
  min-height: 46px;
  height: 46px;
  padding: 0 13px;
  border: 1px solid #c9851d;
  border-radius: var(--layout-radius-small);
  background: var(--layout-gold);
  color: #2e2617;
  font-weight: 800;
}

#site-header #sbutton:hover,
#site-header #sbutton:focus,
.home-wrapper #sbutton:hover,
.home-wrapper #sbutton:focus,
#wrapper:not(.home-wrapper) #sbutton:hover,
#wrapper:not(.home-wrapper) #sbutton:focus {
  border-color: #9f6918;
  background: #f4c267;
}

#site-header #sbutton img,
.home-wrapper #sbutton img,
#wrapper:not(.home-wrapper) #sbutton img {
  width: 22px !important;
  max-width: 22px;
}

.search-submit-label {
  display: inline;
  color: inherit;
  font-size: 14px;
  line-height: 1;
}

#site-header .header-nav,
.home-wrapper .header-nav,
#wrapper:not(.home-wrapper) .header-nav {
  gap: 6px;
}

#site-header .header-utility-link,
.home-wrapper .header-utility-link,
#wrapper:not(.home-wrapper) .header-utility-link {
  min-height: 30px;
  padding: 4px 9px;
  border: 1px solid var(--layout-border);
  border-radius: 999px;
  background: var(--layout-surface-soft);
  color: var(--layout-green-dark);
  font-size: 12px;
  font-weight: 750;
  line-height: 1.2;
  text-decoration: none;
}

#site-header .header-utility-link:hover,
#site-header .header-utility-link:focus,
.home-wrapper .header-utility-link:hover,
.home-wrapper .header-utility-link:focus,
#wrapper:not(.home-wrapper) .header-utility-link:hover,
#wrapper:not(.home-wrapper) .header-utility-link:focus {
  border-color: var(--layout-border-strong);
  background: #fff;
  color: var(--layout-red);
}

#site-header #wetter,
.home-wrapper #wetter,
#wrapper:not(.home-wrapper) #wetter {
  min-width: 120px;
  max-width: 132px;
  padding: 8px 10px;
  border: 1px solid var(--layout-border);
  border-radius: var(--layout-radius-small);
  background: var(--layout-surface-soft);
}

.portal-layout,
.portal-layout--home {
  gap: 22px;
}

.portal-main {
  min-width: 0;
}

div.white_top,
.home-wrapper div.white_top,
#wrapper:not(.home-wrapper) div.white_top {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
  min-height: 0;
  padding: 17px 20px 12px;
  border: 1px solid var(--layout-border);
  border-bottom: 0;
  border-radius: var(--layout-radius) var(--layout-radius) 0 0;
  background: var(--layout-surface);
  color: var(--layout-green-dark);
  box-shadow: var(--layout-shadow-small);
}

div.white_top::before,
.home-wrapper div.white_top::before,
#wrapper:not(.home-wrapper) div.white_top::before {
  content: "";
  position: absolute;
  top: 17px;
  bottom: 12px;
  left: 0;
  width: 4px;
  border-radius: 0 4px 4px 0;
  background: var(--layout-red);
}

div.white_top .section-title-inline,
.home-wrapper div.white_top .section-title-inline,
#wrapper:not(.home-wrapper) div.white_top .section-title-inline {
  color: inherit;
  font-size: 20px;
  font-weight: 800;
  line-height: 1.25;
}

div.white_content,
.home-wrapper div.white_content,
#wrapper:not(.home-wrapper) div.white_content {
  margin: 0 0 22px;
  padding: 18px 20px 20px;
  border: 1px solid var(--layout-border);
  border-top: 0;
  border-radius: 0 0 var(--layout-radius) var(--layout-radius);
  background: var(--layout-surface);
  box-shadow: var(--layout-shadow-small);
}

div.white_top2,
.home-wrapper div.white_top2,
#wrapper:not(.home-wrapper) div.white_top2 {
  min-height: 0;
  height: 10px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

div.white_bot,
div.white_bot2,
.home-wrapper div.white_bot,
.home-wrapper div.white_bot2,
#wrapper:not(.home-wrapper) div.white_bot,
#wrapper:not(.home-wrapper) div.white_bot2 {
  display: none;
}

.home-wrapper .home-hero-head {
  padding: 20px 22px;
  border-color: var(--layout-green-dark);
  background:
    linear-gradient(115deg, var(--layout-green-dark), #126b5a 72%, #1f7b69);
  color: #fff;
  box-shadow: var(--layout-shadow);
}

.home-wrapper .home-hero-head::before {
  display: none;
}

.home-wrapper .home-hero-head .section-title-inline {
  color: #fff;
  font-size: 24px;
}

.home-wrapper .home-hero-head .branch-search-form {
  flex: 0 1 350px;
}

.home-wrapper .home-hero-head #sinput {
  min-height: 44px;
  border-color: rgba(255, 255, 255, 0.42);
  background: rgba(255, 255, 255, 0.98);
}

.home-wrapper .home-hero-head #rbutton {
  flex-basis: 44px;
  width: 44px;
  height: 44px;
  min-height: 44px;
  border-color: #c9851d;
  background: var(--layout-gold);
}

.home-wrapper .home-hero-panel {
  padding: 22px;
  border-color: var(--layout-border);
  box-shadow: var(--layout-shadow);
}

.home-wrapper .home-hero-panel .home-landing-intro {
  margin: 0 0 20px;
  padding: 0;
  border: 0;
  background: transparent;
}

.home-wrapper .home-landing-intro h2 {
  max-width: 720px;
  margin-bottom: 9px;
  color: var(--layout-green-dark);
  font-size: 23px;
}

.home-wrapper .home-landing-intro > p {
  max-width: 760px;
  color: var(--layout-muted);
  font-size: 16px;
}

.home-landing-facts,
.search-landing-facts,
.taxonomy-landing-facts,
.district-landing-facts,
.street-landing-facts {
  gap: 10px;
}

.home-landing-facts div,
.search-landing-facts div,
.taxonomy-landing-facts div,
.district-landing-facts div,
.street-landing-facts div {
  padding: 12px 13px;
  border-color: var(--layout-border);
  border-radius: var(--layout-radius-small);
  background: var(--layout-surface-soft);
}

.home-landing-facts dt,
.search-landing-facts dt,
.taxonomy-landing-facts dt,
.district-landing-facts dt,
.street-landing-facts dt {
  color: var(--layout-muted);
  font-size: 12px;
}

.home-landing-facts dd,
.search-landing-facts dd,
.taxonomy-landing-facts dd,
.district-landing-facts dd,
.street-landing-facts dd {
  color: var(--layout-green-dark);
  font-size: 17px;
}

.home-quick-links ul,
.portal-source-group-links,
.search-related-links ul,
.taxonomy-related-links ul,
.district-related-links ul,
.street-related-links ul {
  gap: 8px;
}

.home-quick-links a,
.portal-source-group-links a,
.search-related-links a,
.taxonomy-related-links a,
.district-related-links a,
.street-related-links a,
.data-source-target-links a,
.source-content-target-links a,
.data-source-toc a {
  min-height: 42px;
  padding: 10px 12px;
  border-color: var(--layout-border);
  border-radius: var(--layout-radius-small);
  background: var(--layout-surface-soft);
  color: var(--layout-green-dark);
}

.home-quick-links a:hover,
.home-quick-links a:focus,
.portal-source-group-links a:hover,
.portal-source-group-links a:focus,
.search-related-links a:hover,
.search-related-links a:focus,
.taxonomy-related-links a:hover,
.taxonomy-related-links a:focus,
.district-related-links a:hover,
.district-related-links a:focus,
.street-related-links a:hover,
.street-related-links a:focus,
.data-source-target-links a:hover,
.data-source-target-links a:focus,
.source-content-target-links a:hover,
.source-content-target-links a:focus,
.data-source-toc a:hover,
.data-source-toc a:focus {
  border-color: var(--layout-border-strong);
  background: #fff;
  color: var(--layout-red);
}

.home-wrapper #sbranche {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.home-wrapper div.rubriklink,
.home-wrapper div.branchlink,
.home-wrapper div.branchlink2,
#wrapper:not(.home-wrapper) div.rubriklink,
#wrapper:not(.home-wrapper) div.branchlink,
#wrapper:not(.home-wrapper) div.branchlink2 {
  min-height: 54px;
  padding: 11px 13px 11px 42px;
  border: 1px solid var(--layout-border);
  border-radius: var(--layout-radius-small);
  background: #fff;
}

.home-wrapper div.rubriklink::after,
#wrapper:not(.home-wrapper) div.rubriklink::after,
div.branchlink::before,
div.branchlink2::before {
  left: 14px;
  background: var(--layout-green);
}

.home-wrapper div.rubriklink a,
.home-wrapper div.branchlink a,
.home-wrapper div.branchlink2 a,
#wrapper:not(.home-wrapper) div.rubriklink a,
#wrapper:not(.home-wrapper) div.branchlink a,
#wrapper:not(.home-wrapper) div.branchlink2 a {
  color: var(--layout-green-dark);
  font-size: 14px;
  font-weight: 750;
}

.home-wrapper div.rubriklink:hover,
.home-wrapper div.rubriklink:focus-within,
.home-wrapper div.branchlink:hover,
.home-wrapper div.branchlink:focus-within,
.home-wrapper div.branchlink2:hover,
.home-wrapper div.branchlink2:focus-within,
#wrapper:not(.home-wrapper) div.rubriklink:hover,
#wrapper:not(.home-wrapper) div.rubriklink:focus-within,
#wrapper:not(.home-wrapper) div.branchlink:hover,
#wrapper:not(.home-wrapper) div.branchlink:focus-within,
#wrapper:not(.home-wrapper) div.branchlink2:hover,
#wrapper:not(.home-wrapper) div.branchlink2:focus-within {
  border-color: var(--layout-border-strong);
  background: var(--layout-surface-soft);
  transform: translateY(-1px);
}

#nav_right,
.home-wrapper #nav_right,
#wrapper:not(.home-wrapper) #nav_right {
  gap: 16px;
}

.sidebar-panel {
  overflow: hidden;
  border: 1px solid var(--layout-border);
  border-radius: var(--layout-radius);
  background: var(--layout-surface);
  box-shadow: var(--layout-shadow-small);
}

.sidebar-panel-title,
.home-wrapper #nav_right .sidebar-panel-title,
#wrapper:not(.home-wrapper) #nav_right .sidebar-panel-title {
  margin: 0;
  padding: 14px 15px 11px;
  border: 0;
  border-bottom: 1px solid var(--layout-border);
  background: var(--layout-surface-soft);
  color: var(--layout-green-dark);
  font-size: 15px;
  font-weight: 800;
  line-height: 1.3;
}

.sidebar-panel-content {
  margin: 0;
  padding: 0;
  border: 0;
  background: #fff;
}

.sidebar-panel-content > .paddingbox {
  padding: 14px;
}

.district-nav {
  gap: 14px;
}

.district-nav-list {
  gap: 6px;
}

.district-nav-list li,
.home-wrapper .district-nav-list li,
#wrapper:not(.home-wrapper) .district-nav-list li {
  padding: 8px 9px;
  border-color: var(--layout-border);
  border-radius: 8px;
  background: var(--layout-surface-soft);
}

.street-letter-nav {
  gap: 6px;
}

.street-letter-link {
  min-height: 38px;
  border-color: var(--layout-border);
  border-radius: 8px;
  background: var(--layout-surface-soft);
}

.entry-results {
  gap: 12px;
}

.entry-result,
#wrapper:not(.home-wrapper) .entry-result {
  padding: 15px;
  border-color: var(--layout-border);
  border-radius: var(--layout-radius-small);
  background: #fff;
  box-shadow: none;
}

.entry-result:hover,
#wrapper:not(.home-wrapper) .entry-result:hover {
  border-color: var(--layout-border-strong);
  box-shadow: var(--layout-shadow-small);
}

.entry-result-main strong a {
  color: var(--layout-green-dark);
  font-size: 17px;
}

.entry-result-contact {
  border-left-color: var(--layout-border);
}

.entry-result-action-button,
.entry-heading-action,
.entry-result-vcard-link {
  min-width: 38px;
  min-height: 38px;
  border-color: var(--layout-border);
  background: var(--layout-surface-soft);
}

.entry-opening-hours,
body.entry-detail-page .entry-opening-hours {
  border-color: var(--layout-border);
  border-radius: var(--layout-radius-small);
  background: var(--layout-surface-soft);
}

.data-source-feature-card,
.data-source-group-card,
.data-source-roadmap-card,
.data-source-card,
.source-content-module,
.portal-source-list li,
.entry-context-group li,
.backlink-option,
.customer-entry-list-item,
.bottom-list-panel {
  border-color: var(--layout-border);
  border-radius: var(--layout-radius-small);
  background: #fff;
}

#bottom_lists,
.home-wrapper #bottom_lists {
  gap: 16px;
}

.bottom-list-panel,
.home-wrapper .bottom-list-panel {
  padding: 17px;
  border-radius: var(--layout-radius);
  box-shadow: var(--layout-shadow-small);
}

.bottom-list-panel-title,
.home-wrapper .bottom-list-panel-title {
  color: var(--layout-green-dark);
  font-size: 17px;
}

.link-list li {
  padding: 10px 0;
  border-color: var(--layout-border);
}

.link-list-link {
  color: var(--layout-green-dark);
}

.page-tools {
  gap: 7px;
}

.page-tool-button,
.page-tool-link,
.entry-action-grid .entry-action-control,
.entry-action-grid .entry-action-link {
  min-height: 40px;
  border-color: var(--layout-border);
  border-radius: var(--layout-radius-small);
  background: var(--layout-surface-soft);
  color: var(--layout-green-dark);
}

.form-action-button,
#wrapper .form-action-button {
  min-height: 42px;
  border-color: #c9851d;
  border-radius: var(--layout-radius-small);
  background: var(--layout-gold);
  color: #2e2617;
}

#wrapper input:not([type="checkbox"]):not([type="radio"]):not([type="image"]),
#wrapper select,
#wrapper textarea {
  min-height: 44px;
  border-color: var(--layout-border);
  border-radius: var(--layout-radius-small);
}

.site-footer {
  margin-top: 26px;
  padding: 20px 18px;
  border: 1px solid var(--layout-border);
  border-radius: var(--layout-radius);
  background: rgba(255, 255, 255, 0.72);
  color: var(--layout-muted);
}

@media (min-width: 860px) {
  .portal-layout,
  .portal-layout--home {
    grid-template-columns: minmax(0, 1fr) 318px;
    gap: 22px;
  }

  .portal-layout #nav_right {
    top: 20px;
  }

  .home-wrapper #sbranche {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1120px) {
  .home-wrapper #sbranche {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 1040px) {
  #site-header,
  .home-wrapper #site-header,
  #wrapper:not(.home-wrapper) #site-header {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "logo weather"
      "search search";
  }
}

@media (max-width: 700px) {
  #wrapper,
  #wrapper.home-wrapper {
    width: min(calc(100% - 20px), 1240px);
    padding-top: 10px;
  }

  #site-header,
  .home-wrapper #site-header,
  #wrapper:not(.home-wrapper) #site-header {
    gap: 10px;
    margin-bottom: 16px;
    padding: 13px;
    border-radius: 0 0 12px 12px;
  }

  #site-header #logo img,
  .home-wrapper #logo img,
  #wrapper:not(.home-wrapper) #logo img {
    width: min(205px, 58vw);
  }

  #site-header #wetter,
  .home-wrapper #wetter,
  #wrapper:not(.home-wrapper) #wetter {
    min-width: 88px;
    max-width: 102px;
    padding: 5px 7px;
  }

  #site-header #suchform,
  .home-wrapper #suchform,
  #wrapper:not(.home-wrapper) #suchform {
    grid-template-columns: minmax(0, 1fr) 48px;
    grid-template-areas:
      "search submit"
      "place place";
    gap: 7px;
  }

  #site-header #search,
  .home-wrapper #search,
  #wrapper:not(.home-wrapper) #search {
    grid-area: search;
  }

  #site-header #maplist,
  .home-wrapper #maplist,
  #wrapper:not(.home-wrapper) #maplist {
    grid-area: place;
  }

  #site-header #sbutton,
  .home-wrapper #sbutton,
  #wrapper:not(.home-wrapper) #sbutton {
    grid-area: submit;
    width: 48px;
    min-height: 46px;
    height: 46px;
    padding: 0;
  }

  .search-submit-label {
    display: none;
  }

  #site-header .header-nav,
  .home-wrapper .header-nav,
  #wrapper:not(.home-wrapper) .header-nav {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }

  #site-header .header-utility-link,
  .home-wrapper .header-utility-link,
  #wrapper:not(.home-wrapper) .header-utility-link {
    width: 100%;
    min-height: 34px;
    padding: 7px 5px;
    border: 1px solid var(--layout-border);
    border-radius: 8px;
    background: var(--layout-surface-soft);
    font-size: 11px;
    text-align: center;
    text-decoration: none;
  }

  div.white_top,
  .home-wrapper div.white_top,
  #wrapper:not(.home-wrapper) div.white_top {
    padding: 15px 15px 10px;
    border-radius: 12px 12px 0 0;
  }

  div.white_content,
  .home-wrapper div.white_content,
  #wrapper:not(.home-wrapper) div.white_content {
    margin-bottom: 16px;
    padding: 15px;
    border-radius: 0 0 12px 12px;
  }

  .home-wrapper .home-hero-head {
    padding: 17px 16px;
  }

  .home-wrapper .home-hero-head .section-title-inline,
  div.white_top .section-title-inline,
  .home-wrapper div.white_top .section-title-inline,
  #wrapper:not(.home-wrapper) div.white_top .section-title-inline {
    font-size: 19px;
  }

  .home-wrapper .home-hero-head .branch-search-form {
    flex-basis: 100%;
  }

  .home-wrapper .home-hero-panel {
    padding: 16px;
  }

  .home-wrapper .home-landing-intro h2 {
    font-size: 20px;
  }

  .home-wrapper #sbranche {
    grid-template-columns: minmax(0, 1fr);
  }

  .entry-result,
  #wrapper:not(.home-wrapper) .entry-result {
    padding: 13px;
  }

  .site-footer {
    margin-top: 18px;
    padding: 16px 12px;
  }
}

/* Consistent spacing rhythm across legacy and modern page structures. */
:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
}

#wrapper,
#wrapper.home-wrapper,
#wrapper:not(.home-wrapper) {
  padding-top: var(--space-6);
  padding-bottom: 40px;
}

#site-header,
.home-wrapper #site-header,
#wrapper:not(.home-wrapper) #site-header {
  margin-bottom: var(--space-6);
}

.portal-layout,
.portal-layout--home {
  column-gap: var(--space-6);
  row-gap: var(--space-5);
}

div.white_top,
.home-wrapper div.white_top,
#wrapper:not(.home-wrapper) div.white_top {
  gap: var(--space-3) var(--space-4);
  padding: var(--space-4) var(--space-5) var(--space-3);
}

div.white_top::before,
.home-wrapper div.white_top::before,
#wrapper:not(.home-wrapper) div.white_top::before {
  top: var(--space-4);
  bottom: var(--space-3);
}

div.white_top2,
.home-wrapper div.white_top2,
#wrapper:not(.home-wrapper) div.white_top2 {
  display: none;
  height: 0;
}

div.white_content,
.home-wrapper div.white_content,
#wrapper:not(.home-wrapper) div.white_content {
  margin: 0 0 var(--space-5);
  padding: 0;
}

div.white_content--padded,
.home-wrapper div.white_content--padded,
#wrapper:not(.home-wrapper) div.white_content--padded {
  padding: var(--space-5);
}

div.white_content--padded > .paddingbox,
.home-wrapper div.white_content--padded > .paddingbox,
#wrapper:not(.home-wrapper) div.white_content--padded > .paddingbox {
  padding: 0;
}

div.white_content--flush,
.home-wrapper div.white_content--flush,
#wrapper:not(.home-wrapper) div.white_content--flush {
  padding: 0;
}

div.white_content--flush > .content-panel,
.home-wrapper div.white_content--flush > .content-panel,
#wrapper:not(.home-wrapper) div.white_content--flush > .content-panel {
  padding: var(--space-5);
  background: transparent;
}

div.white_content--flush > .paddingbox,
.home-wrapper div.white_content--flush > .paddingbox,
#wrapper:not(.home-wrapper) div.white_content--flush > .paddingbox {
  padding: var(--space-5) var(--space-5) 0;
}

div.white_content--flush > #sbranche,
.home-wrapper div.white_content--flush > #sbranche,
#wrapper:not(.home-wrapper) div.white_content--flush > #sbranche {
  padding: var(--space-5);
}

div.white_content--flush > .paddingbox + #sbranche,
.home-wrapper div.white_content--flush > .paddingbox + #sbranche,
#wrapper:not(.home-wrapper) div.white_content--flush > .paddingbox + #sbranche {
  padding-top: var(--space-4);
}

div.white_content--standalone,
.home-wrapper div.white_content--standalone,
#wrapper:not(.home-wrapper) div.white_content--standalone {
  border-top: 1px solid var(--layout-border);
  border-radius: var(--layout-radius);
}

.home-wrapper .home-hero-panel,
.home-wrapper div.white_content--flush.home-hero-panel {
  padding: var(--space-6);
}

.imprint-content,
div.white_content--flush.imprint-content {
  padding: var(--space-4);
}

.breadcrumb-nav {
  margin: 0 0 var(--space-4);
}

.home-landing-intro,
.search-landing-intro,
.taxonomy-landing-intro,
.district-landing-intro,
.street-landing-intro,
.data-source-intro,
.portal-sources {
  margin-top: 0;
  margin-bottom: var(--space-5);
  padding: var(--space-4);
}

.home-landing-intro h2,
.search-landing-intro h2,
.taxonomy-landing-intro h2,
.district-landing-intro h2,
.street-landing-intro h2,
.data-source-intro h2,
.portal-sources h3 {
  margin: 0 0 var(--space-2);
}

.home-landing-intro > p,
.search-landing-intro > p,
.taxonomy-landing-intro > p,
.district-landing-intro > p,
.street-landing-intro > p,
.data-source-intro > p,
.portal-sources > p {
  margin-top: 0;
}

.home-landing-facts,
.search-landing-facts,
.taxonomy-landing-facts,
.district-landing-facts,
.street-landing-facts {
  gap: var(--space-3);
  margin-top: var(--space-4);
  margin-bottom: var(--space-4);
}

.home-quick-links,
.search-related-links,
.taxonomy-related-links,
.district-related-links,
.street-related-links {
  margin-top: var(--space-4);
}

.search-filter-nav,
.search-quality-snapshot,
.listing-quality-snapshot {
  margin: var(--space-4) 0 0;
  padding: var(--space-4);
}

.source-content-modules {
  gap: var(--space-4);
  margin: var(--space-4) 0 0;
}

.source-content-module {
  padding: var(--space-4);
}

.data-source-feature-grid,
.data-source-groups,
.data-source-toc,
.data-source-list {
  margin: 0 0 var(--space-6);
}

.data-source-feature-grid,
.data-source-group-grid,
.data-source-list {
  gap: var(--space-4);
}

.data-source-feature-card,
.data-source-group-card,
.data-source-card,
.portal-source-list li,
.entry-context-group li,
.backlink-option,
.customer-entry-list-item {
  padding: var(--space-4);
}

.data-source-feature-card h3,
.data-source-group-card h3,
.data-source-card h3,
.source-content-module h3 {
  margin: 0 0 var(--space-2);
}

.data-source-card dl {
  gap: var(--space-2) var(--space-4);
}

.data-source-list:last-child,
.data-source-list > :last-child,
.source-content-modules > :last-child {
  margin-bottom: 0;
}

.result-summary {
  margin: 0 0 var(--space-3);
  padding: var(--space-2) var(--space-3);
}

.listing-separator {
  margin: var(--space-3) 0;
}

.entry-results {
  gap: var(--space-3);
  margin: 0;
  padding: 0;
}

.entry-result,
#wrapper:not(.home-wrapper) .entry-result {
  padding: var(--space-4);
}

.link-list,
.street-directory-list,
.customer-entry-list,
.entry-review-list {
  margin-top: 0;
  margin-bottom: 0;
}

.link-list li,
.street-directory-list li,
.customer-entry-list-item {
  padding-top: var(--space-3);
  padding-bottom: var(--space-3);
}

.customer-form-grid {
  gap: var(--space-4);
  max-width: 680px;
  margin: 0 auto;
}

.customer-field {
  gap: var(--space-2) var(--space-4);
}

.customer-actions {
  gap: var(--space-2);
  margin-top: var(--space-1);
}

.public-entry-form {
  display: grid;
  gap: var(--space-5);
}

.public-entry-section {
  margin: 0;
  padding: var(--space-4);
  border: 1px solid var(--layout-border);
  border-radius: var(--layout-radius-small);
}

.public-entry-section legend {
  margin: 0;
  padding: 0 var(--space-2);
}

.route-target,
.route-directions--main {
  margin-top: var(--space-4);
  padding-top: var(--space-4);
}

.entry-hero,
.entry-context-links,
.entry-review-list,
.moderation-request-list {
  gap: var(--space-4);
}

#nav_right,
.home-wrapper #nav_right,
#wrapper:not(.home-wrapper) #nav_right,
#wrapper:not(.home-wrapper) .street-sidebar,
body.entry-detail-page #wrapper:not(.home-wrapper) #nav_right {
  gap: var(--space-4);
  margin: 0;
}

.sidebar-panel-title,
.home-wrapper #nav_right .sidebar-panel-title,
#wrapper:not(.home-wrapper) #nav_right .sidebar-panel-title {
  padding: 14px var(--space-4) var(--space-3);
}

.sidebar-panel-content,
#wrapper:not(.home-wrapper) .sidebar-panel-content {
  padding: 14px;
}

.sidebar-panel-content > .paddingbox,
#wrapper:not(.home-wrapper) .sidebar-panel-content > .paddingbox {
  padding: 0;
}

.page-tools {
  gap: var(--space-2);
}

#bottom_lists,
.home-wrapper #bottom_lists,
#wrapper:not(.home-wrapper) #bottom_lists {
  gap: var(--space-4);
  margin-top: var(--space-1);
}

.bottom-list-panel,
.home-wrapper .bottom-list-panel,
#wrapper:not(.home-wrapper) .bottom-list-panel {
  padding: var(--space-4);
}

.site-footer {
  margin-top: var(--space-6);
}

@media (min-width: 860px) {
  #wrapper:not(.home-wrapper) {
    grid-template-columns: minmax(0, 1fr) 318px;
    column-gap: var(--space-6);
    row-gap: 0;
  }

  #wrapper:not(.home-wrapper) #nav_right,
  #wrapper:not(.home-wrapper) .street-sidebar,
  body.entry-detail-page #wrapper:not(.home-wrapper) #nav_right {
    grid-row: 2 / span 60;
    align-self: start;
  }

  #wrapper:not(.home-wrapper) > .site-footer {
    grid-column: 1 / -1;
  }
}

@media (max-width: 700px) {
  #wrapper,
  #wrapper.home-wrapper,
  #wrapper:not(.home-wrapper) {
    width: min(calc(100% - 24px), 1240px);
    padding-top: var(--space-3);
    padding-bottom: var(--space-6);
  }

  #site-header,
  .home-wrapper #site-header,
  #wrapper:not(.home-wrapper) #site-header {
    margin-bottom: var(--space-4);
  }

  div.white_top,
  .home-wrapper div.white_top,
  #wrapper:not(.home-wrapper) div.white_top {
    padding: 14px var(--space-4) 10px;
  }

  div.white_content,
  .home-wrapper div.white_content,
  #wrapper:not(.home-wrapper) div.white_content {
    margin-bottom: var(--space-4);
  }

  div.white_content--padded,
  .home-wrapper div.white_content--padded,
  #wrapper:not(.home-wrapper) div.white_content--padded,
  div.white_content--flush > .content-panel,
  .home-wrapper div.white_content--flush > .content-panel,
  #wrapper:not(.home-wrapper) div.white_content--flush > .content-panel {
    padding: var(--space-4);
  }

  div.white_content--flush > .paddingbox,
  .home-wrapper div.white_content--flush > .paddingbox,
  #wrapper:not(.home-wrapper) div.white_content--flush > .paddingbox {
    padding: var(--space-4) var(--space-4) 0;
  }

  div.white_content--flush > #sbranche,
  .home-wrapper div.white_content--flush > #sbranche,
  #wrapper:not(.home-wrapper) div.white_content--flush > #sbranche {
    padding: var(--space-4);
  }

  .home-wrapper .home-hero-panel,
  .home-wrapper div.white_content--flush.home-hero-panel {
    padding: var(--space-4);
  }

  .data-source-feature-grid,
  .data-source-groups,
  .data-source-toc,
  .data-source-list {
    margin-bottom: var(--space-5);
  }

  .data-source-feature-card,
  .data-source-group-card,
  .data-source-card,
  .source-content-module,
  .entry-result,
  #wrapper:not(.home-wrapper) .entry-result {
    padding: 14px;
  }

  .customer-form-grid,
  .customer-field {
    gap: var(--space-3);
  }

  .public-entry-form {
    gap: var(--space-4);
  }

  .public-entry-section {
    padding: 14px;
  }

  #nav_right,
  .home-wrapper #nav_right,
  #wrapper:not(.home-wrapper) #nav_right,
  #wrapper:not(.home-wrapper) .street-sidebar {
    gap: var(--space-3);
  }

  .sidebar-panel-content,
  #wrapper:not(.home-wrapper) .sidebar-panel-content {
    padding: var(--space-3);
  }

  .site-footer {
    margin-top: var(--space-5);
  }
}

/*
 * Shared outer shell
 * Header, content grid and footer must resolve against the same wrapper track.
 * Using grid/block stretch avoids the old width: 100% sizing path that could
 * leave the header edge visually out of line with the content cards.
 */
#site-header,
.home-wrapper #site-header,
#wrapper:not(.home-wrapper) #site-header {
  box-sizing: border-box;
  width: auto;
  min-width: 0;
  max-width: none;
  margin-right: 0;
  margin-left: 0;
  align-self: stretch;
  justify-self: stretch;
  grid-column: 1 / -1;
}

.portal-layout,
.portal-layout--home,
.site-footer {
  box-sizing: border-box;
  width: auto;
  min-width: 0;
  max-width: none;
  margin-right: 0;
  margin-left: 0;
  align-self: stretch;
  justify-self: stretch;
}

#nav_right,
.home-wrapper #nav_right,
#wrapper:not(.home-wrapper) #nav_right,
#wrapper:not(.home-wrapper) .street-sidebar {
  width: 100%;
  min-width: 0;
  max-width: none;
  grid-template-columns: minmax(0, 1fr);
}

#nav_right > .sidebar-panel,
.home-wrapper #nav_right > .sidebar-panel,
#wrapper:not(.home-wrapper) #nav_right > .sidebar-panel,
#wrapper:not(.home-wrapper) .street-sidebar > .sidebar-panel {
  width: 100%;
  min-width: 0;
  max-width: none;
}
