/* DKF: unobtrusive bilingual navigation and narrow-screen improvements.
   Shared by all pages; original colours, photography and content remain unchanged. */
html { -webkit-text-size-adjust: 100%; }
body { min-width: 0; }
img, video { max-width: 100%; }
h1, h2, h3, p, li, dd, .person-content, .card { overflow-wrap: break-word; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid #ff767c; outline-offset: 4px;
}
.header-actions { display: flex; gap: 14px; align-items: center; justify-content: flex-end; flex: 0 0 auto; }
.language-switch {
  display: inline-flex; flex: 0 0 auto; gap: 2px; padding: 3px;
  align-items: center; border: 1px solid rgba(255,255,255,.32);
  border-radius: 100px; color: #fff; background: rgba(5,12,25,.6);
  box-shadow: 0 5px 16px rgba(0,0,0,.12);
}
.language-switch a {
  min-width: 36px; min-height: 33px; padding: 6px 8px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 100px; color: rgba(255,255,255,.75);
  font: 800 11px/1 system-ui, sans-serif; letter-spacing: .06em;
  text-decoration: none; transition: background-color .18s ease, color .18s ease;
}
.language-switch a[aria-current="page"] { background: #d5232d; color: #fff; }
.language-switch a:hover { color: #fff; background: rgba(255,255,255,.2); }
.language-switch a[aria-current="page"]:hover { background: #d5232d; }
/* Home page: flex children must be allowed to shrink without overflowing. */
.site-header .nav > .brand { flex: 0 1 auto; min-width: 0; }
.site-header .nav > nav { flex: 0 1 auto; gap: clamp(12px, 1.9vw, 30px); }
.site-header .nav { gap: clamp(12px,2vw,32px); }
.mobile-menu { display: none; position: relative; color: white; }
.mobile-menu summary {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 8px; list-style: none; cursor: pointer;
  min-height: 42px; padding: 0 11px; border: 1px solid rgba(255,255,255,.36);
  border-radius: 7px; font-size: 12px; font-weight: 700;
  background: rgba(5,12,25,.5);
}
.mobile-menu summary::-webkit-details-marker { display: none; }
.menu-lines { font-size: 20px; line-height: 1; }
.mobile-menu-links {
  position: absolute; top: calc(100% + 12px); right: 0;
  width: min(300px, calc(100vw - 28px)); max-height: calc(100dvh - 104px);
  overflow-y: auto; overscroll-behavior: contain;
  display: flex; flex-direction: column; padding: 9px;
  background: #081626; border: 1px solid rgba(255,255,255,.2);
  box-shadow: 0 18px 46px rgba(0,0,0,.4); border-radius: 10px;
}
.mobile-menu-links a, .site-header .mobile-menu-links a:not(.nav-cta) {
  display: block; font-size: 15px; font-weight: 650; opacity: 1;
  padding: 12px 15px; border-radius: 6px; color: white;
  border: 0;
}
.mobile-menu-links a:hover { background: rgba(255,255,255,.11); }
.mobile-menu-links .nav-cta { background: #c9151e; }
/* Static information and form pages: same switch position on every page. */
.topbar .nav > .brand { min-width: 0; }
.topbar .back { flex-shrink: 0; }
@media (max-width: 1160px) {
  .site-header .nav > nav { display: none; }
  .site-header .mobile-menu { display: block; }
  .site-header .nav { justify-content: space-between; }
}
@media (max-width: 850px) {
  .form-layout, .hero-grid { gap: 26px; }
  .side-card, .hero-panel { display: block; position: static; }
  .side-card { margin-bottom: 0; }
  .hero-panel { width: 100%; }
  .hero-grid { align-items: start; }
  .form-section { padding: 56px 0 80px; }
}
@media (max-width: 700px) {
  .site-header .nav { gap: 10px; }
  .site-header .brand { gap: 8px; }
  .site-header .brand-text strong { max-width: 180px; }
  .site-header .hero { min-height: max(750px, 100svh); }
  .site-header + main .hero { min-height: max(750px, 100svh); }
  .site-header + main .hero-inner { padding-top: 128px; }
  .site-header + main .hero h1 { font-size: clamp(39px, 10.8vw, 70px); }
  .site-header + main .hero-meta { gap: 8px 12px; }
  .site-header + main .hero-actions .button { padding: 12px 14px; text-align: center; }
  .topbar .nav, .site-header .nav { min-height: 72px; }
  .topbar .back { display: none; }
  .topbar .brand-copy strong, .topbar .brand strong { font-size: 11px; }
  .topbar + main .hero h1, main > .hero h1 { font-size: clamp(36px, 10vw, 52px); }
  .hero-panel { padding: 23px; }
  .form-layout, .hero-grid { min-width: 0; }
  .check { min-width: 0; }
  .footer-inner { flex-wrap: wrap; gap: 15px; }
}
@media (max-width: 420px) {
  .site-header .brand-text, .topbar .brand-copy, .topbar .brand > span:last-child:not(.brand-mark) { display: none; }
  .site-header .brand-mark, .topbar .brand-mark { width: 42px; height: 42px; }
  .header-actions { gap: 8px; }
  .mobile-menu summary { padding: 0 10px; }
  .mobile-menu summary span:last-child { display: none; }
  .language-switch a { padding: 5px 7px; min-width: 34px; }
  .site-header + main .hero { min-height: max(720px, 100svh); }
  .site-header + main .hero h1 { font-size: clamp(34px, 11vw, 47px); }
  .site-header + main .hero-lead { font-size: 17px; }
  .site-header + main .section h2, .site-header + main .split-content h2 { font-size: clamp(31px, 9vw, 42px); }
  .topbar + main .hero h1, main > .hero h1 { font-size: clamp(34px, 11vw, 45px); }
  .hero-panel strong { font-size: 21px; }
  .form-section { padding: 34px 0 65px; }
  .form-card { padding: 21px 16px; }
  .check { padding: 10px; }
  .side-card { padding: 24px; }
  .side-card h2 { font-size: 34px; }
  .card { padding: 22px 16px; }
  .image-stack { min-height: 380px; }
  .image-main { height: 340px; }
  .image-small { height: 150px; }
  .feature-card, .feature-card.large { min-height: 380px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .language-switch a, .button { transition: none; }
}
/* Grid items with long German compound words must not force a horizontal scrollbar. */
@media (max-width: 980px) {
  .championship-grid, .cta-box, .values-grid { grid-template-columns: minmax(0, 1fr); }
  .championship-grid > *, .cta-box > *, .values-grid > div { min-width: 0; max-width: 100%; }
  .championship-copy h2, .cta-box h2, .values-grid h3 { overflow-wrap: anywhere; hyphens: auto; }
  .championship-copy .text-link { max-width: 100%; white-space: normal; }
}
