html, body {
  margin: 0;
  height: 100%;
  background: #e8e6eb; /* matches the image background */
}

body {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

/* Keeps the 2000x1414 aspect ratio and fits the viewport */
.stage {
  position: relative;
  width: min(100vw, calc(100vh * 2000 / 1414));
  aspect-ratio: 2000 / 1414;
}

.stage img {
  display: block;
  width: 100%;
  height: 100%;
}

/* Transparent link over the e-mail address in the image (x 905-1690, y 1130-1215) */
.mail {
  position: absolute;
  left: 44.5%;
  top: 79.2%;
  width: 41%;
  height: 7.5%;
  color: transparent;
  font-size: 1px;
  overflow: hidden;
}

.mail:focus-visible {
  outline: 3px solid #1a3a5c;
  outline-offset: 2px;
}

/* Legal link, bottom right corner of the image */
.legal-links {
  position: absolute;
  right: 2%;
  bottom: 2%;
  font: 14px/1.4 Arial, Helvetica, sans-serif;
}

.legal-links a {
  color: #1a3a5c;
  background: rgba(255, 255, 255, 0.7);
  padding: 2px 8px;
  border-radius: 3px;
  text-decoration: none;
}

.legal-links a:hover,
.legal-links a:focus-visible {
  text-decoration: underline;
}

/* Text pages (impressum.html) */
body.legal {
  display: block;
  overflow: auto;
  height: auto;
  background: #fff;
  color: #222;
  font: 16px/1.6 Arial, Helvetica, sans-serif;
}

body.legal main {
  max-width: 760px;
  margin: 0 auto;
  padding: 24px 20px 48px;
  overflow-wrap: anywhere;
}

body.legal h1,
body.legal h3,
body.legal h4 {
  color: #1a3a5c;
}

body.legal a {
  color: #1a3a5c;
}
