@font-face {
  font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 500;
  font-display: swap; src: url('/assets/font/ibm-plex-mono-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 500;
  font-display: swap; src: url('/assets/font/ibm-plex-mono-500-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 700;
  font-display: swap; src: url('/assets/font/ibm-plex-mono-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 700;
  font-display: swap; src: url('/assets/font/ibm-plex-mono-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
  --paper: #f3f6f1; --card: #ffffff; --card2: #f7f9f6; --ink: #14171a;
  --ink2: #3a3c40; --mut: #6b6e73; --faint: #9a9ea3; --ghost: #b0aea6;
  --line: #d7d5cf; --line2: #c7cac9; --line3: #eef2e8;
  --green: #2f6b46; --green-dk: #1d4a2f; --green-hell: #8fc98f;
  --mono: 'IBM Plex Mono', 'Courier New', Courier, monospace;
  --sans: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --breit: 1080px;
}
* { box-sizing: border-box; }
body {
  margin: 0; background: var(--paper); color: var(--ink);
  font-family: var(--sans); line-height: 1.65;
}
a { color: var(--green); }
a:hover { color: var(--green-dk); }
.topbar {
  background: var(--card); color: var(--ink); height: 68px;
  border-bottom: 2px solid var(--ink); padding: 0 28px;
}
.topbar .innen {
  max-width: var(--breit); margin: 0 auto; height: 100%;
  display: flex; align-items: center; gap: 10px;
}
.topbar img { height: 28px; width: 28px; display: block;
  filter: grayscale(1) brightness(.35) contrast(1.3); }
.word { font-family: var(--mono); font-weight: 700; font-size: 15px;
  letter-spacing: -.01em; text-transform: uppercase; color: var(--ink); }
.word span { color: inherit; }
.topbar a {
  font-family: var(--mono); font-size: 12px; font-weight: 700;
  color: var(--ink); text-decoration: none; letter-spacing: .06em;
  border-bottom: 1.5px solid var(--ink); padding: 2px 0 3px;
}
.topbar a:hover { color: var(--green); border-bottom-color: var(--green); }
.sprachen { margin-left: auto; display: flex; align-items: center; gap: 14px; }
.sprachen span {
  font-family: var(--mono); font-size: 12px; font-weight: 700;
  letter-spacing: .06em;
}
.sprachen .aus { color: var(--mut); border-bottom-color: transparent; }
.topbar a.zurapp { margin-left: 22px; }

.wrap { max-width: var(--breit); margin: 0 auto; padding: 0 28px; }
.hero {
  display: grid; grid-template-columns: 1.05fr 1fr;
  border-bottom: 2px solid var(--ink);
}
.hero .sagen { padding: 60px 40px 44px 0; border-right: 1px solid var(--line); }
.hero .suchen { padding: 60px 0 44px 40px; }
.kicker {
  font-family: var(--mono); font-size: 11px; font-weight: 700;
  letter-spacing: .24em; color: var(--ink); margin: 0;
}
h1 {
  font-size: 52px; font-weight: 900; line-height: 1.16; letter-spacing: -.02em;
  max-width: 20em; margin: 18px 0 0; text-wrap: balance;
}
h1 em {
  font-style: normal; background: var(--green); color: #fff; padding: 0 6px;
  box-decoration-break: clone; -webkit-box-decoration-break: clone;
}
.lead {
  font-size: 16px; color: var(--ink2); max-width: 34em; margin: 18px 0 0;
  line-height: 1.6; text-wrap: pretty;
}
.marke {
  font-family: var(--mono); font-size: 12px; font-weight: 700;
  letter-spacing: .22em; color: var(--green); margin: 0;
}
.suchzeile { display: flex; align-items: stretch; gap: 10px; margin-top: 22px; }
.suchzeile input {
  flex: 1; min-width: 0; border: none; border-bottom: 1.5px solid var(--ink);
  background: none; font-family: var(--sans); font-size: 16px;
  padding: 0 0 9px; color: var(--ink); border-radius: 0;
}
.suchzeile input:focus { outline: 2px solid var(--green); outline-offset: 4px; }
.suchzeile input::placeholder { color: #9a9ea3; opacity: 1; }
.suchzeile button {
  display: inline-flex; align-items: center; gap: 8px; background: none;
  border: 1.5px solid var(--ink); color: var(--ink); font-family: var(--mono);
  font-weight: 700; font-size: 12px; letter-spacing: .06em; padding: 0 16px;
  min-height: 44px; cursor: pointer;
}
.suchzeile button:hover { background: var(--ink); color: #fff; }
.suchzeile svg { display: block; }
.suchstand {
  font-family: var(--mono); font-size: 11px; letter-spacing: .1em;
  color: var(--mut); margin-top: 10px; min-height: 1.2em;
}
.treffer { list-style: none; margin: 14px 0 0; padding: 0; }
.treffer li { margin: 0; }
.treffer button {
  display: block; width: 100%; text-align: left; background: var(--card);
  border: 1px solid var(--line); border-bottom: none; padding: 11px 14px;
  font-family: var(--sans); font-size: 15px; color: var(--ink); cursor: pointer;
}
.treffer li:last-child button { border-bottom: 1px solid var(--line); }
.treffer button:hover { border-color: var(--green); color: var(--green); }
.treffer .ort {
  display: block; font-family: var(--mono); font-size: 10.5px;
  letter-spacing: .12em; color: var(--mut); margin-top: 3px;
}
.karte {
  margin-top: 22px; background: var(--card); border: 1px solid var(--line);
  padding: 18px 20px;
}
.karte .oben { display: flex; gap: 20px; align-items: flex-start; }
.karte .text { flex: 1; min-width: 0; }
.karte .name {
  font-size: 22px; font-weight: 900; line-height: 1.2; letter-spacing: -.01em;
}
.karte .wo {
  font-family: var(--mono); font-size: 11px; letter-spacing: .18em;
  color: var(--mut); margin-top: 6px; text-transform: uppercase;
}
.karte .zahlen { display: flex; gap: 8px; margin-top: 14px; flex-wrap: wrap; }
.karte .zahlen div {
  background: var(--card2); border: 1px solid var(--line); padding: 8px 12px;
  flex: 1 1 90px; min-width: 0;
}
.karte .zahlen b {
  display: block; font-family: var(--mono); font-size: 10px; font-weight: 700;
  letter-spacing: .12em; color: var(--mut);
}
.karte .zahlen span {
  font-family: var(--mono); font-size: 19px; font-weight: 700;
  letter-spacing: -.02em;
}
.karte .code { width: 120px; flex-shrink: 0; text-align: center; }
.karte .code svg { display: block; width: 120px; height: 120px; background: #fff; }
.karte .code .bu {
  font-family: var(--mono); font-size: 9px; letter-spacing: .08em;
  color: var(--mut); margin-top: 6px;
}
.knopf {
  display: inline-block; background: var(--green); color: #fff;
  text-decoration: none; font-family: var(--mono); font-size: 13px;
  font-weight: 700; letter-spacing: .06em; padding: 13px 22px;
  text-align: center; border: none; cursor: pointer;
}
.knopf:hover { background: var(--green-dk); color: #fff; }
.karte .knopf { display: block; margin-top: 18px; min-height: 44px; }
.karte .ohne {
  margin-top: 16px; background: var(--card2); border-left: 3px solid var(--green);
  padding: 12px 16px; font-size: 14px; color: var(--ink2);
}
.karte .ohne p { margin: 0; }
.abschnitt { padding: 52px 0; border-bottom: 2px solid var(--ink); }
.abschnitt > h2 {
  display: flex; align-items: center; gap: 16px; margin: 0;
  font-family: var(--mono); font-size: 12px; font-weight: 700;
  letter-spacing: .22em; color: var(--ink); text-transform: uppercase;
}
.abschnitt > h2 .linie { flex: 1; height: 1px; background: var(--line); }
.abschnitt.material > h2 { color: var(--green); }

.drei {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px; margin-top: 28px; background: var(--line);
}
.drei > div { background: var(--paper); padding: 24px 28px 6px; }
.drei > div:first-child { padding-left: 0; }
.drei > div:last-child { padding-right: 0; }
.drei .zeichen { color: var(--green); display: flex; }
.drei h3 {
  font-family: var(--mono); font-size: 12px; font-weight: 700;
  letter-spacing: .16em; color: var(--green); margin: 18px 0 0;
}
.drei p { font-size: 13.5px; color: var(--ink2); margin: 8px 0 0; line-height: 1.5; }
.material .vorspann {
  font-size: 13.5px; color: var(--ink2); margin: 14px 0 0; max-width: 40em;
  line-height: 1.6;
}
.sprachwahl {
  margin-top: 22px; display: grid; grid-template-columns: 200px minmax(0, 1fr);
  gap: 10px 18px; align-items: center;
}
.sprachwahl[hidden] { display: none; }
.sprachwahl .lab {
  font-family: var(--mono); font-size: 11px; font-weight: 700;
  letter-spacing: .16em; color: var(--mut);
}
.chips { display: flex; gap: 10px; flex-wrap: wrap; }
.chips button {
  border: 1px solid var(--line2); background: none; padding: 9px 14px;
  font-family: var(--mono); font-size: 11px; font-weight: 700;
  letter-spacing: .08em; color: var(--mut); cursor: pointer;
}
.chips button:hover { color: var(--ink); border-color: var(--ink); }
.chips button[aria-pressed="true"] {
  border: 1.5px solid var(--ink); background: var(--card); color: var(--ink);
}
.sprachwahl .fuss { font-size: 13px; color: var(--mut); }

.liste { margin-top: 26px; border-top: 2px solid var(--ink); }
.liste .zeile {
  display: grid; grid-template-columns: 220px minmax(0, 1fr) 190px;
  gap: 24px; align-items: center; padding: 20px 0;
  border-bottom: 1px solid var(--line);
}
.liste .was {
  font-family: var(--mono); font-size: 12px; font-weight: 700;
  letter-spacing: .1em; color: var(--ink);
}
.liste .wozu { font-size: 14px; color: var(--ink2); }
.ubtn {
  display: block; text-align: center; font-family: var(--mono);
  font-weight: 700; font-size: 12px; border: 1.5px solid var(--ink);
  color: var(--ink); background: none; padding: 11px 14px; letter-spacing: .06em;
  text-decoration: none; min-height: 44px; cursor: pointer;
}
.ubtn:hover { background: var(--ink); color: #fff; }
.ubtn.hell { border-color: #ffffff; color: #ffffff; }
.ubtn.hell:hover { background: #ffffff; color: var(--ink); }
.liste[data-gewaehlt="0"] .ubtn {
  border-color: var(--line2); color: var(--ghost); pointer-events: none;
}
.ubtn:disabled { border-color: var(--line2); color: var(--ghost); cursor: default; }
.liste .zwei { display: flex; gap: 8px; }
.liste .zwei .ubtn { flex: 1; min-width: 0; padding-left: 6px; padding-right: 6px; }
.ubtn:disabled:hover { background: none; color: var(--ghost); }
.melden {
  font-size: 14px; color: var(--green-dk); margin: 18px 0 0; max-width: 46em;
  line-height: 1.5; min-height: 1.5em;
}
.schnipsel {
  margin: 10px 0 0; background: var(--card); border: 1px solid var(--line);
  padding: 14px 16px; font-family: var(--mono); font-size: 12.5px;
  line-height: 1.7; color: var(--ink); white-space: pre-wrap;
  word-break: break-all; max-width: 46em; overflow-x: auto;
}
.schnipsel[hidden] { display: none; }
.badgevorschau { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 10px; }
.badgevorschau[hidden] { display: none; }
.badgevorschau img { height: 32px; display: block; }
.badgevorschau .dunkel { display: inline-flex; background: var(--ink); padding: 6px 8px; }
.hinweis {
  margin-top: 28px; background: var(--card2); border-left: 3px solid var(--green);
  padding: 12px 16px; font-size: 14.5px; max-width: 46em;
}
.hinweis p { margin: 0 0 10px; color: var(--ink); }
.hinweis p:last-child { margin-bottom: 0; }
.dunkel { background: var(--ink); color: #fff; padding: 72px 28px; }
.dunkel .innen {
  max-width: calc(var(--breit) - 56px); margin: 0 auto; display: grid;
  grid-template-columns: 1fr 1fr; gap: 48px; align-items: start;
}
.dunkel .marke { color: var(--green-hell); }
.dunkel .schild {
  background: var(--green); color: #fff; font-family: var(--mono);
  font-size: 10px; font-weight: 700; letter-spacing: .08em; padding: 3px 8px;
}
.dunkel .kopfzeile { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.dunkel h2 {
  font-size: 40px; font-weight: 900; line-height: 1.12; letter-spacing: -.015em;
  margin: 18px 0 14px;
}
.dunkel p { font-size: 17px; color: var(--line2); line-height: 1.65; max-width: 36em; margin: 0; }
.dunkel .rechts { border-left: 2px solid var(--green); padding-left: 28px; align-self: stretch; }
.dunkel .rechts p { font-size: 15px; margin: 18px 0 0; max-width: 30em; }
.dunkel a.adresse {
  display: inline-block; margin-top: 18px; font-family: var(--mono);
  font-size: 22px; font-weight: 700; color: #fff; text-decoration: none;
  border-bottom: 2px solid var(--green-hell); padding-bottom: 3px;
  word-break: break-word;
}
.dunkel a.adresse:hover { color: var(--green-hell); }
.dunkel .knoepfe { display: flex; gap: 12px; margin-top: 22px; flex-wrap: wrap; }
.dunkel .knoepfe .ubtn { padding: 11px 14px; }
.foot {
  font-family: var(--mono); font-size: 11px; color: var(--faint);
  margin-top: 48px; padding: 16px 0 72px; border-top: 2px solid var(--ink);
}
.foot .zeile { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 16px; }
.foot a { color: var(--mut); text-decoration: none; }
.foot a:hover { color: var(--green); }
.foot .schluss { margin-top: 12px; color: var(--mut); }
@media (max-width: 860px) {
  .hero { grid-template-columns: 1fr; }
  .hero .sagen { padding: 40px 0 32px; border-right: none;
    border-bottom: 1px solid var(--line); }
  .hero .suchen { padding: 32px 0 40px; }
  h1 { font-size: 34px; }
  .drei { grid-template-columns: 1fr; }
  .drei > div { padding: 24px 0 6px; }
  .liste .zeile { grid-template-columns: 1fr; gap: 10px; }
  .dunkel .innen { grid-template-columns: 1fr; gap: 32px; }
  .dunkel .rechts { border-left: none; border-top: 2px solid var(--green);
    padding-left: 0; padding-top: 28px; }
  .dunkel h2 { font-size: 30px; }
  .sprachwahl { grid-template-columns: 1fr; }
  .sprachwahl .fuss { grid-column: 1; }
}
@media (max-width: 560px) {
  .wrap { padding: 0 18px; }
  .topbar { padding: 0 18px; }
  .word { font-size: 13px; }
  .topbar a.zurapp { margin-left: 12px; }
  .abschnitt { padding: 36px 0; }
  .dunkel { padding: 48px 18px; }
  .karte .oben { flex-direction: column; }
  .karte .code { width: 100%; text-align: left; }
}
