:root {
  --black: #050505;
  --black-2: #0b0b0b;
  --steel: #d7d0c4;
  --steel-dark: #817b72;
  --muted: #9c978f;
  --line: rgba(215, 208, 196, .28);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--black); }
body {
  margin: 0;
  color: var(--steel);
  background:
    radial-gradient(circle at 50% 26%, rgba(120,120,120,.08), transparent 34rem),
    linear-gradient(180deg, #080808 0%, #030303 100%);
  font-family: Arial, Helvetica, sans-serif;
  letter-spacing: .08em;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .15;
  background-image:
    linear-gradient(rgba(255,255,255,.012) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.01) 1px, transparent 1px);
  background-size: 5px 5px;
  mix-blend-mode: screen;
}
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.hero {
  min-height: 100svh;
  display: grid;
  place-items: center;
  position: relative;
  overflow: hidden;
  padding: 4rem 1.4rem;
}
.hero::after {
  content: "";
  position: absolute;
  width: min(92vw, 1100px);
  height: min(52vw, 620px);
  border: 1px solid rgba(255,255,255,.035);
  transform: rotate(-2deg);
  box-shadow: 0 0 90px rgba(255,255,255,.02) inset;
  pointer-events: none;
}
.hero-inner {
  width: min(1200px, 100%);
  text-align: center;
  position: relative;
  z-index: 1;
}
.main-logo {
  display: block;
  width: min(1100px, 96vw);
  max-height: 42vh;
  object-fit: contain;
  margin: 0 auto;
  filter: drop-shadow(0 18px 24px rgba(0,0,0,.75));
}
.rule {
  width: min(540px, 72vw);
  height: 1px;
  margin: 1rem auto .85rem;
  background: linear-gradient(90deg, transparent, var(--steel-dark), transparent);
}
.signet {
  display: block;
  width: clamp(110px, 15vw, 190px);
  aspect-ratio: 1;
  object-fit: contain;
  margin: 0 auto .2rem;
  filter: drop-shadow(0 10px 14px rgba(0,0,0,.8));
}
.kicker {
  margin: .15rem 0 .6rem;
  color: #b7b0a6;
  font-size: clamp(.68rem, 1.2vw, .9rem);
  font-weight: 700;
  letter-spacing: .42em;
}
.claim {
  margin: 0 auto 2.1rem;
  color: #79756f;
  font-size: clamp(.56rem, 1vw, .72rem);
  letter-spacing: .28em;
  line-height: 1.8;
}
.claim span { color: #b6aea3; }
.enter {
  display: inline-block;
  color: #aaa49b;
  text-decoration: none;
  border-bottom: 1px solid #4d4944;
  padding: .5rem .1rem;
  font-size: .66rem;
  letter-spacing: .34em;
  transition: color .2s ease, border-color .2s ease;
}
.enter:hover, .enter:focus-visible { color: #fff; border-color: #aaa; }
.legal {
  min-height: 86svh;
  display: grid;
  place-items: center;
  padding: 5rem 1.4rem;
  border-top: 1px solid rgba(255,255,255,.05);
  background: linear-gradient(180deg, #050505, #090909);
}
.legal-card {
  position: relative;
  width: min(720px, 100%);
  padding: clamp(2rem, 6vw, 4.6rem);
  border: 1px solid rgba(215,208,196,.18);
  background: rgba(10,10,10,.72);
  box-shadow: 0 30px 90px rgba(0,0,0,.55), inset 0 0 70px rgba(255,255,255,.015);
}
.legal-card::before,
.legal-card::after {
  content: "";
  position: absolute;
  width: 34px;
  height: 34px;
  border-color: rgba(215,208,196,.42);
}
.legal-card::before { top: 12px; left: 12px; border-top: 1px solid; border-left: 1px solid; }
.legal-card::after { right: 12px; bottom: 12px; border-right: 1px solid; border-bottom: 1px solid; }
.eyebrow {
  margin: 0 0 .7rem;
  color: #77726b;
  font-size: .64rem;
  letter-spacing: .42em;
}
h2 {
  margin: 0;
  font-size: clamp(2rem, 8vw, 4.8rem);
  letter-spacing: .05em;
  line-height: .95;
  color: #ded8cf;
  text-shadow: 0 2px 0 #3a3834;
}
.metal-line {
  width: 100%; height: 1px;
  margin: 1.7rem 0 2.4rem;
  background: linear-gradient(90deg, #777, rgba(255,255,255,.08), transparent);
}
address, .legal-card p {
  font-style: normal;
  line-height: 1.85;
  color: #aaa59d;
  letter-spacing: .06em;
}
address strong { color: #ddd7ce; }
.legal a { color: #c8c1b6; }
.note {
  margin-top: 2.4rem;
  padding-top: 1.4rem;
  border-top: 1px solid rgba(255,255,255,.06);
  font-size: .72rem;
  color: #706c66 !important;
}
.copyright { margin-top: 2rem; font-size: .66rem; color: #5f5b56 !important; }
.back {
  position: absolute;
  top: 1.1rem;
  right: 1.35rem;
  text-decoration: none;
  font-size: 1.2rem;
  color: #615d58 !important;
}
@media (max-width: 680px) {
  .hero { padding: 3rem 1rem; }
  .main-logo { width: 100%; max-height: 32vh; }
  .claim { max-width: 28rem; }
  .legal { padding: 3rem 1rem; }
  .legal-card { padding: 2rem 1.35rem 2.2rem; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

.site-footer {
  position: absolute;
  left: 0; right: 0; bottom: 1.2rem;
  display: flex;
  justify-content: center;
  z-index: 2;
}
.legal-page { min-height: 100svh; }
.legal.standalone { min-height: 100svh; border-top: 0; }
.home-link {
  display: inline-block;
  margin: 0 0 2.2rem;
  color: #8f8981;
  text-decoration: none;
  font-size: .66rem;
  letter-spacing: .24em;
  transition: color .2s ease;
}
.home-link:hover, .home-link:focus-visible { color: #fff; }
.legal-title {
  margin: 0;
  font-size: clamp(2rem, 8vw, 4.8rem);
  letter-spacing: .05em;
  line-height: .95;
  color: #ded8cf;
  text-shadow: 0 2px 0 #3a3834;
}


/* Final readability + footer positioning */
:root {
  --text-bright: #eeeeee;
  --text-soft-bright: #c9c9c9;
  --text-muted-bright: #aaaaaa;
}

body {
  color: var(--text-bright);
}

p, .subtitle, .tagline, .claim, .intro, .legal-text,
.impressum-content, .impressum-content p, footer, footer a,
.back-link, .back-link:visited {
  color: var(--text-soft-bright);
}

.impressum-link,
.impressum-link:visited {
  position: fixed;
  right: 28px;
  bottom: 22px;
  left: auto;
  color: #d8d8d8;
  opacity: 1;
  text-decoration: none;
  z-index: 20;
}

.impressum-link:hover,
.impressum-link:focus {
  color: #ffffff;
}

@media (max-width: 600px) {
  .impressum-link,
  .impressum-link:visited {
    right: 18px;
    bottom: 16px;
  }
}


/* Impressum hierarchy */
.impressum-content .legal-basis {
  margin: -14px 0 38px;
  color: #d6d2cc;
  font-size: 0.98rem;
  letter-spacing: 0.08em;
}

.impressum-content .legal-block {
  margin: 0 0 30px;
}

.impressum-content .legal-block h2 {
  margin: 0 0 10px;
  color: #f0ece6;
  font-size: 1.12rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: none;
}

.impressum-content .legal-block p {
  margin: 0;
  color: #c9c5bf;
  line-height: 1.75;
}

.impressum-content .legal-note {
  margin-top: 48px;
  padding-top: 28px;
  border-top: 1px solid rgba(255,255,255,0.10);
}

.impressum-content .legal-note p,
.impressum-content .legal-copyright {
  color: #96928d;
}

.impressum-content .legal-copyright {
  margin-top: 42px;
}


/* Final Impressum layout */
.impressum-content,
.impressum-content p,
.impressum-content h1,
.impressum-content h2,
.impressum-content .legal-kicker,
.impressum-content .legal-basis,
.impressum-content .legal-block h2,
.impressum-content .legal-copyright {
  font-weight: 400 !important;
}

.back-home,
.back-home:visited {
  position: fixed;
  top: 28px;
  left: 30px;
  right: auto;
  bottom: auto;
  z-index: 50;
  display: inline-block;
  color: #d8d5d0;
  font-weight: 400;
  letter-spacing: 0.16em;
  text-decoration: none;
}

.back-home:hover,
.back-home:focus {
  color: #ffffff;
}

@media (max-width: 600px) {
  .back-home,
  .back-home:visited {
    top: 18px;
    left: 18px;
  }
}


/* Final legal text color matching */
.impressum-content .legal-block h2,
.impressum-content .legal-block p,
.impressum-content .legal-block .email-obfuscated {
  color: #c9c5bf !important;
}

/* Back link: same typography and color as homepage Impressum link */
.back-home,
.back-home:visited {
  color: #d8d8d8 !important;
  font-size: inherit;
  font-weight: 400 !important;
  letter-spacing: inherit;
  line-height: inherit;
  text-transform: uppercase;
  opacity: 1;
  text-decoration: none;
}

.back-home:hover,
.back-home:focus {
  color: #ffffff !important;
}


/* Exact visual match: back link = homepage IMPRESSUM link (.enter) */
.back-home,
.back-home:visited {
  position: fixed;
  top: 28px;
  left: 30px;
  right: auto;
  bottom: auto;
  z-index: 50;

  display: inline-block;
  color: #aaa49b !important;
  text-decoration: none;
  border-bottom: 1px solid #4d4944;
  padding: .5rem .1rem;

  font-size: .66rem !important;
  font-weight: 400 !important;
  letter-spacing: .34em !important;
  line-height: normal !important;
  text-transform: uppercase;
  opacity: 1;

  transition: color .2s ease, border-color .2s ease;
}

.back-home:hover,
.back-home:focus,
.back-home:focus-visible {
  color: #fff !important;
  border-color: #aaa;
}

@media (max-width: 600px) {
  .back-home,
  .back-home:visited {
    top: 18px;
    left: 18px;
  }
}
