:root {
  --kb-red: #B51A1E;
  --kb-red-dark: #901217;
  --kb-yellow: #F6D70E;
  --kb-cream: #FFF9EC;
  --kb-paper: #FFFCF5;
  --kb-ink: #201D1D;
  --kb-muted: #625B55;
  --kb-line: #E5DCCD;
}

body { background: var(--kb-paper); color: var(--kb-ink); }

/* Startseitenmotive */
.kb-hero__image figcaption { border-left: 4px solid var(--kb-yellow); }
.kb-section--green {
  background-image: url('/media/koebler/brezen-handgemacht.webp');
  background-size: cover;
  background-position: center 58%;
  border-bottom: 5px solid var(--kb-yellow);
}
.kb-route-teaser { position: relative; text-shadow: 0 2px 8px rgba(0, 0, 0, .65); }
.kb-route-teaser .btn { text-shadow: none; }

/* Navigation */
.kb-header { background: var(--kb-red); border-bottom: 3px solid var(--kb-yellow); }
.kb-header__inner { min-height: 96px; }
.kb-brand img { height: 76px; width: auto; }
.kb-header nav a { color: #fff; font-weight: 600; }
.kb-header nav a:hover,
.kb-header nav a:focus-visible,
.kb-header nav a.active { color: var(--kb-yellow); }
.kb-menu { color: #fff; border-color: #ffffff80; }
.kb-menu:hover { color: var(--kb-red); background: var(--kb-yellow); border-color: var(--kb-yellow); }

/* Akzente und Links */
.kb-kicker { color: var(--kb-red); }
.kb-kicker--light,
.kb-section--green .kb-kicker { color: var(--kb-yellow); }
.kb-section a:not(.btn),
.kb-legal a,
.kb-location-grid a,
.kb-contact-note a,
.kb-apply a { color: var(--kb-red); }

/* Rote Markenflächen: alle alten globalen Textfarben überschreiben */
.kb-section--green { background-color: var(--kb-red); color: #fff; }
.kb-section--green h1,
.kb-section--green h2,
.kb-section--green h3,
.kb-section--green h4,
.kb-section--green p,
.kb-section--green li,
.kb-section--green span,
.kb-section--green strong { color: #fff; }
.kb-section--green .kb-kicker,
.kb-section--green .kb-kicker span { color: var(--kb-yellow); }
.kb-section--green a:not(.btn) { color: var(--kb-yellow); }
.kb-section--green .kb-route-list > a { color: #fff; }
.kb-section--green .kb-route-list > a:hover strong { color: var(--kb-yellow); }

/* Buttons */
.kb-btn-primary { background: var(--kb-red); border-color: var(--kb-red); color: #fff; font-weight: 700; }
.kb-btn-primary:hover,
.kb-btn-primary:focus-visible { background: var(--kb-red-dark); border-color: var(--kb-red-dark); color: #fff; }
.kb-btn-light { border-color: var(--kb-red); color: var(--kb-red); font-weight: 700; }
.kb-btn-light:hover { background: var(--kb-red); color: #fff; }
.kb-btn-cream { background: var(--kb-cream); border-color: var(--kb-cream); color: var(--kb-red); font-weight: 700; }
.kb-btn-cream:hover,
.kb-btn-cream:focus-visible { background: var(--kb-yellow); border-color: var(--kb-yellow); color: var(--kb-ink); }

/* Karten und Inhaltsflächen */
.kb-pagehead,
.kb-notice,
.kb-stop-list,
.kb-contact-note { background: var(--kb-cream); }
.kb-cards,
.kb-product-grid,
.kb-facts,
.kb-location-grid,
.kb-job-grid { background: var(--kb-line); border-color: var(--kb-line); }
.kb-cards article,
.kb-product-grid article,
.kb-facts article,
.kb-location-grid article,
.kb-job-grid article { background: #fff; }
.kb-tour-card.active,
.kb-tour-card:hover { border-color: var(--kb-red); }

/* Footer */
.kb-footer { background: var(--kb-red); color: #fff; border-top: 3px solid var(--kb-yellow); }
.kb-footer a { color: #fff; }
.kb-footer a:hover { color: var(--kb-yellow); }
.kb-footer__bottom { border-color: #ffffff55; }

/* Tastaturbedienung */
.kb-header a:focus-visible,
.kb-footer a:focus-visible,
.btn:focus-visible { outline: 3px solid var(--kb-yellow); outline-offset: 3px; }

@media (max-width: 800px) {
  .kb-header nav { background: var(--kb-red); border-bottom: 3px solid var(--kb-yellow); }
  .kb-header nav a { padding: .45rem 0; }
  .kb-brand img { height: 68px; }
  .kb-section--green { background-position: center; }
}
