:root {
  color-scheme: light;
  /* Himmel ganz oben rechts im Originalbild (20 × 20 Pixel). */
  --blue: #004689;
  --blue-dark: #00386e;
  --ink: #263e4b;
  --muted: #52636d;
  --teal: #006478;
  --line: #d6e5ed;
  --stripe: #edf6fa;
  --heading-font: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --content-gutter: clamp(1.5rem, 5vw, 4rem);
  font-family: Arial, Helvetica, sans-serif;
  color: var(--ink);
  background: white;
  line-height: 1.6;
  -webkit-text-size-adjust: 100%;
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; }
a { color: var(--blue); text-underline-offset: .24em; text-decoration-thickness: 1px; }
button { font: inherit; }
a:hover { color: var(--blue-dark); text-decoration-thickness: 2px; }
a:focus-visible, button:focus-visible, [tabindex="-1"]:focus-visible { outline: 3px solid var(--blue-dark); outline-offset: 5px; }
.skip-link { position: fixed; inset: .75rem auto auto .75rem; z-index: 10; padding: .7rem 1rem; background: white; border: 2px solid var(--blue); transform: translateY(-200%); }
.skip-link:focus { transform: translateY(0); }
.section-inner { width: min(calc(100% - var(--content-gutter) - var(--content-gutter)), 56rem); margin-inline: auto; min-width: 0; overflow-wrap: anywhere; }
.island-banner { position: relative; min-height: max(26rem, 86vw); overflow: hidden; }
.island-banner::after { content: ''; position: absolute; inset: auto 0 0; z-index: 1; height: clamp(3rem, 10vw, 6rem); background: linear-gradient(transparent, white); pointer-events: none; }
.island-image { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.hero-brand { position: relative; z-index: 2; padding-block: clamp(1.5rem, 3vw, 3rem) 4rem; }
.hero-title { color: white; font-size: clamp(1.75rem, 3.8vw, 3rem); letter-spacing: -.025em; -webkit-text-stroke: .045em #102938; paint-order: stroke fill; text-shadow: 0 1px 2px #102938; }
.hero-title span { color: white; font-size: 1rem; -webkit-text-stroke-width: .08em; }
.quick-nav { position: sticky; top: 0; z-index: 5; padding-block: .5rem; background: white; }
.quick-nav-inner { display: flex; justify-content: center; align-items: stretch; gap: .75rem; max-width: 26rem; }
.quick-nav-link { display: flex; align-items: center; justify-content: center; min-height: 2.75rem; min-width: 0; flex: 1 1 0; max-width: 13rem; padding: .4rem min(.75rem, 3vw); color: white; background: var(--blue); border-radius: .2rem; font-size: 1rem; line-height: 1.4; text-align: center; text-decoration: none; }
.quick-nav-link:hover { color: white; background: var(--blue-dark); }
.quick-nav-link.is-hidden { visibility: hidden; pointer-events: none; }
.quick-nav.is-single .quick-nav-link:first-child:not(.is-hidden) { transform: translateX(calc(50% + .375rem)); }
.quick-nav.is-single .quick-nav-link:last-child:not(.is-hidden) { transform: translateX(calc(-50% - .375rem)); }
.quick-nav.is-empty { visibility: hidden; }
.section { padding-block: 2.5rem; }
h1 { margin: 0; color: var(--blue); font: 600 clamp(2.25rem, 5vw, 3.625rem)/1.15 var(--heading-font); letter-spacing: -.025em; }
h1 span { display: block; margin-top: .7rem; color: var(--teal); font: 400 1.125rem/1.5 Arial, Helvetica, sans-serif; letter-spacing: .02em; }
.introduction { padding-block: 1rem 2.5rem; text-align: center; }
.introduction p { margin: 1rem auto 0; max-width: 44rem; font-size: 1.0625rem; text-wrap: balance; }
.introduction p:first-child { margin-top: 0; }
.introduction .lead { font-size: 1.1875rem; }
.details-section { background: var(--stripe); }
.details-grid { display: grid; grid-auto-rows: 1fr; gap: 1.5rem; }
.info-card { --card-padding: clamp(1.25rem, 3vw, 2rem); display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--line); border-radius: .2rem; background: white; }
.section-title { margin: 0; color: var(--blue); font: 600 1.5rem/1.3 var(--heading-font); letter-spacing: -.02em; scroll-margin-block-start: calc(var(--quick-nav-height, 4rem) + 1rem); }
.info-card .section-title { padding: 1.25rem var(--card-padding); color: white; background: var(--blue); border-radius: .15rem .15rem 0 0; }
.info-card .section-title:focus-visible { outline-color: white; outline-offset: -5px; }
dl, dd { margin: 0; }
.info-card > dl { padding: var(--card-padding); min-width: 0; }
dt { color: var(--muted); font-size: 1rem; }
.contact-details { display: grid; gap: 1.5rem; min-width: 0; }
.contact-details > div { min-width: 0; }
.contact-link { display: inline-block; max-width: 100%; min-height: 2.75rem; padding-block: .15rem; overflow-wrap: anywhere; font-size: clamp(1.25rem, 2.4vw, 1.5rem); line-height: 1.5; text-decoration: none; }
.contact-link:hover { text-decoration: underline; }
.opening-hours dd { color: var(--blue-dark); font: 600 2.5rem/1.4 var(--heading-font); letter-spacing: -.025em; }
.site-footer { padding-block: 1.5rem; color: white; background: var(--blue); }
.site-footer nav { display: flex; justify-content: center; flex-wrap: wrap; gap: .5rem 2rem; }
.site-footer a { display: inline-flex; align-items: center; min-height: 2.75rem; max-width: 100%; color: white; font-size: .9375rem; text-decoration: none; }
.site-footer a:hover { color: white; text-decoration: underline; }
.site-footer a:focus-visible { outline-color: white; }
.legal-dialog { width: calc(100% - 1.5rem); max-width: 48rem; max-height: calc(100dvh - 2rem); padding: 0; border: 1px solid var(--line); color: var(--ink); background: white; overflow: auto; overscroll-behavior: contain; }
.legal-dialog::backdrop { background: #102b46b3; }
.legal-dialog-header { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1.25rem min(1.25rem, 5vw) 0; }
.legal-dialog-title { margin: 0; color: var(--blue); font: 600 1.5rem/1.3 var(--heading-font); overflow-wrap: anywhere; }
.dialog-close { display: inline-block; min-height: 2.75rem; max-width: 100%; padding: 0; border: 0; color: var(--blue); background: transparent; text-decoration: underline; text-underline-offset: .24em; overflow-wrap: anywhere; cursor: pointer; }
.dialog-close:hover { color: var(--blue-dark); text-decoration-thickness: 2px; }
.legal-dialog .legal-content { padding: 1rem min(1.25rem, 5vw) 1.5rem; }
.legal-content { font-size: 1rem; overflow-wrap: anywhere; }
.legal-content h2 { margin: 1.6rem 0 .5rem; color: var(--blue-dark); font-family: var(--heading-font); font-size: 1.125rem; line-height: 1.4; }
.legal-content h3 { font-family: var(--heading-font); font-size: 1rem; }
.legal-content p, .legal-content ul { margin-block: .75rem; }
.legal-content address { font-style: normal; }
.legal-content a { overflow-wrap: anywhere; }
.legal-page { padding: 1rem .75rem; background: var(--stripe); }
.legal-document { max-width: 48rem; margin-inline: auto; padding: 1.5rem; background: white; }
.legal-document h1 { margin-top: 1.5rem; font-size: clamp(1.75rem, 5vw, 2.5rem); overflow-wrap: anywhere; }
.back-link { display: inline-flex; align-items: center; min-height: 2.75rem; }
html:has(.legal-dialog[open]) { overflow: hidden; }
@media (max-width: 47.999rem) {
  .info-card > dl { container-type: inline-size; }
  .contact-link, .opening-hours dd {
    font-family: var(--heading-font);
    font-size: 1.25rem;
    font-size: clamp(1.25rem, 10cqi, 2.5rem);
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: -.025em;
  }
}
@media (min-width: 48rem) {
  .island-banner { min-height: clamp(13rem, 43vw, 32rem); }
  .island-image { object-position: center 45%; }
  .section { padding-block: 3.5rem; }
  .introduction { padding-block: 1rem 3rem; }
  .details-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .section-title { font-size: 1.75rem; }
  .legal-dialog-header { padding: 1.5rem 2rem 0; }
  .legal-dialog .legal-content { padding: 1rem 2rem 2rem; }
  .legal-dialog-title { font-size: 1.875rem; }
  .legal-document { padding: 2rem 3rem; }
}
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}
@media (forced-colors: active) {
  .hero-brand { background: Canvas; }
  .hero-title, .hero-title span { color: CanvasText; -webkit-text-stroke: 0; text-shadow: none; }
  .quick-nav-link { border: 1px solid LinkText; color: LinkText; }
  .info-card .section-title { color: CanvasText; background: Canvas; border-bottom: 1px solid CanvasText; }
  .info-card .section-title:focus-visible { outline-color: Highlight; }
  .site-footer { border-top: 1px solid CanvasText; }
  .legal-dialog { border: 2px solid CanvasText; }
}
@media print {
  .quick-nav, .skip-link, .dialog-close { display: none; }
  html:has(.legal-dialog[open]) .site-shell { display: none; }
  .legal-dialog[open] { position: static; width: 100%; max-height: none; border: 0; overflow: visible; }
}
