/* ============================================================
   RECHTSSEITEN — Impressum, Datenschutz, AGB
   Tokens und Typografie identisch zu index.html.
   Grundlage: Geoviser Markenhandbuch v1.0, Teil C.
   ============================================================ */
:root{
  --paper:      #F6F4EF;
  --paper-soft: #FBFAF7;
  --paper-deep: #EEEBE3;
  --hairline:   #E3DFD6;
  --hairline-2: #CFCAC0;
  --ink:        #1A1917;
  --body:       #4A4740;
  /* Mute erreicht auf Paper nur 4,05 : 1 — nur fuer versale
     Mono-Labels. Lesbarer Nebentext nimmt Mute-AA (4,95 : 1).
     Handbuch C.09, Seite 27. */
  --mute:       #7C776E;
  --mute-aa:    #6E6961;

  --blue-300: #A5B7DD;
  --blue-400: #6A8ACB;
  --blue:     #2A52A0;
  --blue-600: #224387;

  --sans: 'Instrument Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --mono: 'Geist Mono', 'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;

  --gutter: clamp(20px, 4.5vw, 60px);
  --nav-h: 60px;
  --out-quart: cubic-bezier(0.165, 0.84, 0.44, 1);
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }

html{
  overflow-x:clip;
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
}

body{
  background:var(--paper);
  color:var(--body);
  font-family:var(--sans);
  font-size:17px;
  font-weight:400;
  line-height:1.6;
  hyphens:auto;
  -webkit-hyphens:auto;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

a{ color:inherit; text-decoration:none; }
img{ display:block; max-width:100%; }

::selection{ background:var(--blue); color:var(--paper); }
:focus-visible{ outline:2px solid var(--blue); outline-offset:3px; }

/* ---------- NAV ---------- */
.nav{
  position:sticky; top:0; z-index:60;
  height:var(--nav-h);
  display:flex; align-items:center;
  background:rgba(246,244,239,0.92);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border-bottom:1px solid var(--hairline);
}
.nav-in{
  width:100%; max-width:1240px; margin-inline:auto;
  padding-inline:var(--gutter);
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
/* Lockup wie auf den Hauptseiten: Bildmarke, Trennstrich, Wortmarke.
   Die Bildmarke kommt hier als mark.svg, die Wortmarke als Symbol. */
.lockup{
  --wm-h: 20px;
  display:inline-flex; align-items:center;
  gap:calc(var(--wm-h) * 0.55);
}
.nav-mk{
  height:calc(var(--wm-h) * 1.3); width:auto;
  object-fit:contain; flex:none;
}
.lk-bar{
  flex:none;
  width:1px; height:calc(var(--wm-h) * 1.25);
  background:var(--hairline-2);
}
.wm{ display:block; fill:currentColor; }
.lk-wm{
  height:var(--wm-h); width:auto;
  aspect-ratio:2000 / 346.55;
  flex:none; color:var(--ink);
}
.nav-back{
  display:inline-flex; align-items:center; gap:9px;
  font-size:14px; color:var(--body);
  transition:color .12s var(--out-quart);
}
.nav-back:hover{ color:var(--ink); }
.nav-back svg{
  width:13px; height:13px; flex:none;
  stroke:currentColor; fill:none; stroke-width:1.75;
  stroke-linecap:round; stroke-linejoin:round;
}

/* ---------- SEITE ----------
   Eine Textspalte. Rechtstexte werden gelesen, nicht ueberflogen —
   ein Raster waere hier Dekoration. Maximal 68 Zeichen pro Zeile. */
.legal-wrap{
  width:100%; max-width:1240px;
  margin-inline:auto;
  padding:clamp(56px, 7vw, 96px) var(--gutter) clamp(64px, 8vw, 108px);
}
.legal-wrap > *{ max-width:68ch; }

.legal-kicker{
  font-family:var(--mono);
  font-size:11px; font-weight:500;
  letter-spacing:0.08em; text-transform:uppercase;
  color:var(--mute);
  margin-bottom:18px;
}
.legal-wrap h1{
  font-size:clamp(32px, 4.4vw, 54px);
  font-weight:400; line-height:1.06; letter-spacing:-0.032em;
  color:var(--ink); hyphens:none;
  max-width:20ch;
}
.legal-date{
  display:block;
  margin-top:20px; padding-bottom:clamp(38px, 4.5vw, 60px);
  border-bottom:1px solid var(--hairline);
  font-size:15px; line-height:1.55; color:var(--mute-aa);
  max-width:62ch;
}

/* Abschnitte durch Weissraum getrennt, nicht durch Linien:
   sonst zerfaellt der Text in Kaesten. */
.legal-wrap h2{
  margin-top:clamp(44px, 5vw, 68px);
  font-size:clamp(21px, 2vw, 26px);
  font-weight:500; line-height:1.22; letter-spacing:-0.018em;
  color:var(--ink); hyphens:none;
}
.legal-wrap h3{
  margin-top:34px;
  font-size:17.5px; font-weight:500; line-height:1.3;
  letter-spacing:-0.008em; color:var(--ink);
}
.legal-wrap p{ margin-top:16px; line-height:1.62; text-wrap:pretty; }
.legal-wrap h2 + p,
.legal-wrap h3 + p{ margin-top:14px; }

.legal-wrap ul{ margin-top:16px; padding-left:0; list-style:none; }
.legal-wrap li{
  position:relative;
  padding-left:20px; margin-top:8px;
  line-height:1.58;
}
/* Punkt in Blau: das Zeichen besteht aus Punkten, die Liste zitiert es. */
.legal-wrap li::before{
  content:""; position:absolute;
  left:2px; top:0.72em;
  width:5px; height:5px; border-radius:50%;
  background:var(--blue-400);
}

.legal-wrap a:not(.nav-back){
  color:var(--blue);
  border-bottom:1px solid var(--hairline-2);
  padding-bottom:1px;
  transition:color .12s var(--out-quart), border-color .12s var(--out-quart);
}
.legal-wrap a:not(.nav-back):hover{ color:var(--blue-600); border-color:var(--blue); }

.legal-contact{
  margin-top:clamp(48px, 5.5vw, 72px);
  padding-top:26px;
  border-top:1px solid var(--hairline);
}
.legal-contact p{ margin-top:0; font-size:16px; color:var(--body); }

/* ---------- FOOTER ---------- */
footer{ border-top:1px solid var(--hairline); padding-top:30px; overflow:hidden; }
.foot-in{
  width:100%; max-width:1240px; margin-inline:auto;
  padding-inline:var(--gutter);
}
.foot-bar{
  display:flex; flex-wrap:wrap; align-items:baseline;
  justify-content:space-between; gap:14px 30px;
  padding-bottom:26px;
}
.foot-links{ display:flex; flex-wrap:wrap; gap:22px; list-style:none; }
.foot-links a{ font-size:14px; color:var(--mute-aa); transition:color .12s var(--out-quart); }
.foot-links a:hover{ color:var(--ink); }
.foot-links a[aria-current]{ color:var(--ink); }
.foot-here{
  font-family:var(--mono);
  font-size:11px; font-weight:500;
  letter-spacing:0.08em; text-transform:uppercase;
  color:var(--mute);
}
.foot-legal{ font-size:13px; color:var(--mute-aa); line-height:1.65; padding-bottom:22px; }
/* Grundlinie liegt bei 0.86em — -0.14em schneidet die Zeile exakt dort ab. */
.word{
  font-size:22vw;
  font-weight:500; line-height:1; letter-spacing:-0.055em;
  color:var(--hairline);
  margin-bottom:-0.14em;
  user-select:none;
  hyphens:none; white-space:nowrap;
}

@media (max-width:600px){
  body{ font-size:16px; }
  /* Auf „Startseite" gekuerzt — ein nackter Pfeil sagt nichts */
  .nav-back .lead{ display:none; }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.01ms !important;
    transition-duration:.01ms !important;
  }
}
