/* Menü für Tablet und Smartphone.
   Die Pille zeigt nur Logo und Burger; das Menü ist eine Glasfläche über der Seite,
   die sich aus dem Burger heraus kreisförmig öffnet. */

/* ── Burger: zwei Linien, die sich zum X kreuzen ─────── */
.ws-burger { display: none; position: relative; width: 44px; height: 44px; margin-right: -6px; border: 0; padding: 0; border-radius: 999px;
  background: transparent; color: var(--fg); cursor: pointer; -webkit-tap-highlight-color: transparent; }
.ws-burger::before { content: ''; position: absolute; inset: 4px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--ws-gold);
  opacity: 0; transform: scale(0.82); transition: opacity 500ms cubic-bezier(.16,1,.3,1), transform 600ms cubic-bezier(.16,1,.3,1); }
.ws-burger:focus-visible { outline: none; }
.ws-burger:focus-visible::before, .is-menu-open .ws-burger::before { opacity: 1; transform: scale(1); }
.ws-burger-l { position: absolute; left: 13px; width: 18px; height: 1.5px; border-radius: 2px; background: currentColor;
  /* Öffnen: erst zur Mitte zusammenfahren, dann drehen */
  transition: top 320ms cubic-bezier(.65,0,.35,1), transform 460ms cubic-bezier(.16,1,.3,1), width 460ms cubic-bezier(.16,1,.3,1), left 460ms cubic-bezier(.16,1,.3,1), background 400ms; }
.ws-burger-l:nth-child(1) { top: 18px; }
.ws-burger-l:nth-child(2) { top: 25px; width: 12px; left: 19px; }
.ws-burger:hover .ws-burger-l:nth-child(2) { width: 18px; left: 13px; }
.is-menu-open .ws-burger-l { top: 21.25px; background: var(--accent-text); transition: top 320ms cubic-bezier(.65,0,.35,1), transform 520ms cubic-bezier(.16,1,.3,1) 260ms, width 320ms cubic-bezier(.65,0,.35,1), left 320ms cubic-bezier(.65,0,.35,1), background 400ms; }
.is-menu-open .ws-burger-l:nth-child(1) { transform: rotate(45deg); }
.is-menu-open .ws-burger-l:nth-child(2) { transform: rotate(-45deg); width: 18px; left: 13px; }
/* Schließen: erst zurückdrehen, dann auseinander */
.ws-burger-l { transition-delay: 260ms, 0ms, 260ms, 260ms, 0ms; }
[data-theme='dark'] .is-menu-open .ws-burger-l { background: var(--ws-gold); }

@media (max-width: 1180px) {
  /* kompakt: Aktionen bleiben sichtbar, nur der Burger ist darin zu sehen; er rückt neben das Logo */
  html #ws-topnav .ws-topnav-actions { transition: transform 720ms cubic-bezier(.16,1,.3,1); }
  html #ws-topnav.is-compact .ws-topnav-actions { opacity: 1; visibility: visible; transform: translateX(var(--nav-bshift, 0px)); pointer-events: auto;
    transition: transform 720ms cubic-bezier(.16,1,.3,1); }
  #ws-topnav.is-compact .ws-burger { pointer-events: auto; }
  #ws-topnav.ws-nav-measure .ws-topnav-inner::before, #ws-topnav.ws-nav-measure .ws-topnav-logo, #ws-topnav.ws-nav-measure .ws-topnav-actions { transition: none !important; }
  #ws-topnav .ws-topnav-links,
  #ws-topnav .ws-topnav-lang,
  #ws-topnav .ws-topnav-theme,
  #ws-topnav .ws-topnav-cta { display: none !important; }
  #ws-topnav .ws-burger { display: block; }
  #ws-topnav .ws-topnav-inner { display: flex !important; align-items: center; justify-content: space-between; }
  /* Logo gleich weit vom linken Pillenrand wie die Burger-Linien vom rechten */
  #ws-topnav .ws-topnav-logo { margin-left: 4px; }
  #ws-topnav .ws-topnav-actions { display: flex; justify-content: flex-end; flex: none; }
}

/* ── Glasfläche ───────────────────────────────────────── */
.ws-mmenu { position: fixed; inset: 0; z-index: 105; display: none; color: var(--fg);
  background: color-mix(in srgb, var(--bg) 82%, transparent);
  -webkit-backdrop-filter: blur(30px) saturate(1.25); backdrop-filter: blur(30px) saturate(1.25);
  clip-path: circle(0px at var(--mm-x, 90%) var(--mm-y, 36px));
  transition: clip-path 900ms cubic-bezier(.76,0,.24,1); overscroll-behavior: contain; }
.ws-mmenu.is-vis { display: block; }
.ws-mmenu.is-open { clip-path: circle(150vmax at var(--mm-x, 90%) var(--mm-y, 36px)); }
.ws-mmenu.is-closing { transition-duration: 760ms; transition-delay: 120ms; }
[data-theme='dark'] .ws-mmenu { background: color-mix(in srgb, #14110D 86%, transparent); }
.ws-mm-glow { position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(60% 45% at 85% 12%, rgba(191,174,134,0.18), transparent 70%), radial-gradient(50% 40% at 0% 100%, rgba(191,174,134,0.12), transparent 70%); }
/* Keine overflow-Sperre: sie setzt hier die Scrollposition auf 0. Die Seite wird stattdessen
   per Wheel-, Touch- und Tastensperre festgehalten (siehe _initMenu). */

.ws-mm-in { position: relative; height: 100%; overflow-y: auto; display: flex; flex-direction: column;
  padding: calc(env(safe-area-inset-top, 0px) + 104px) clamp(24px, 7vw, 72px) calc(env(safe-area-inset-bottom, 0px) + clamp(24px, 5vh, 48px)); }

.ws-mm-mask { display: inline-block; overflow: hidden; vertical-align: bottom; padding: 0.22em 0.06em 0.1em 0; margin: -0.22em -0.06em -0.1em 0; }
.ws-mm-mask > span { display: inline-block; transform: translateY(105%); transition: transform 900ms cubic-bezier(.16,1,.3,1); }
.is-open .ws-mm-mask > span { transform: none; }

.ws-mm-eye { margin: 0 0 clamp(14px, 3vh, 28px); font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.26em; text-transform: uppercase; color: var(--accent-text); }
[data-theme='dark'] .ws-mm-eye { color: var(--ws-gold); }
.is-open .ws-mm-eye .ws-mm-mask > span { transition-delay: 280ms; }

.ws-mm-nav { display: flex; flex-direction: column; }
.ws-mm-link { position: relative; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: baseline; gap: 12px;
  padding: clamp(12px, 2.1vh, 20px) 0; color: var(--fg); text-decoration: none; -webkit-tap-highlight-color: transparent; }
.ws-mm-link::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--line);
  transform: scaleX(0); transform-origin: left center; transition: transform 1000ms cubic-bezier(.16,1,.3,1); }
.is-open .ws-mm-link::after { transform: scaleX(1); }
.ws-mm-nr { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.16em; color: var(--accent-text); font-variant-numeric: tabular-nums;
  opacity: 0; transform: translateY(8px); transition: opacity 600ms, transform 800ms cubic-bezier(.16,1,.3,1); }
[data-theme='dark'] .ws-mm-nr { color: var(--ws-gold); }
.is-open .ws-mm-nr { opacity: 1; transform: none; }
/* Maske trägt die Schriftgröße, damit ihr Innenabstand die Umlautpunkte sicher freistellt */
.ws-mm-nav .ws-mm-mask { font-size: clamp(34px, 9vw, 64px); line-height: 1.02; }
.ws-mm-t { font-family: var(--font-display); font-weight: 400; font-size: 1em; line-height: 1.02; letter-spacing: -0.015em;
  transition: transform 900ms cubic-bezier(.16,1,.3,1), color 400ms; }
.ws-mm-arr { font-family: var(--font-display); font-size: clamp(18px, 3.4vw, 26px); color: var(--accent-text);
  opacity: 0; transform: translateX(-10px); transition: opacity 400ms, transform 600ms cubic-bezier(.16,1,.3,1); }
[data-theme='dark'] .ws-mm-arr { color: var(--ws-gold); }
.ws-mm-link:hover .ws-mm-t, .ws-mm-link:focus-visible .ws-mm-t, .ws-mm-link:active .ws-mm-t { font-style: italic; color: var(--accent-text); }
[data-theme='dark'] .ws-mm-link:hover .ws-mm-t, [data-theme='dark'] .ws-mm-link:focus-visible .ws-mm-t, [data-theme='dark'] .ws-mm-link:active .ws-mm-t { color: var(--ws-gold); }
.ws-mm-link:hover .ws-mm-arr, .ws-mm-link:focus-visible .ws-mm-arr { opacity: 1; transform: none; }
.ws-mm-link:focus-visible { outline: none; }
/* Staffel: jede Zeile 70ms später */
.is-open .ws-mm-link:nth-child(1) .ws-mm-mask > span, .is-open .ws-mm-link:nth-child(1) .ws-mm-nr, .is-open .ws-mm-link:nth-child(1)::after { transition-delay: 340ms; }
.is-open .ws-mm-link:nth-child(2) .ws-mm-mask > span, .is-open .ws-mm-link:nth-child(2) .ws-mm-nr, .is-open .ws-mm-link:nth-child(2)::after { transition-delay: 410ms; }
.is-open .ws-mm-link:nth-child(3) .ws-mm-mask > span, .is-open .ws-mm-link:nth-child(3) .ws-mm-nr, .is-open .ws-mm-link:nth-child(3)::after { transition-delay: 480ms; }
.is-open .ws-mm-link:nth-child(4) .ws-mm-mask > span, .is-open .ws-mm-link:nth-child(4) .ws-mm-nr, .is-open .ws-mm-link:nth-child(4)::after { transition-delay: 550ms; }
.is-open .ws-mm-link:nth-child(5) .ws-mm-mask > span, .is-open .ws-mm-link:nth-child(5) .ws-mm-nr, .is-open .ws-mm-link:nth-child(5)::after { transition-delay: 620ms; }
.is-open .ws-mm-link:nth-child(6) .ws-mm-mask > span, .is-open .ws-mm-link:nth-child(6) .ws-mm-nr, .is-open .ws-mm-link:nth-child(6)::after { transition-delay: 690ms; }
/* Schließen: alles gleichzeitig und schneller zurück */
.is-closing .ws-mm-mask > span, .is-closing .ws-mm-nr, .is-closing .ws-mm-link::after, .is-closing .ws-mm-foot > * { transition-duration: 380ms; transition-delay: 0ms !important; }

/* ── Fuß: Strategie-Call, Sprache, Theme ──────────────── */
.ws-mm-foot { margin-top: auto; padding-top: clamp(28px, 5vh, 48px); display: flex; flex-direction: column; gap: clamp(18px, 3vh, 26px); }
.ws-mm-foot > * { opacity: 0; transform: translateY(14px); transition: opacity 700ms, transform 900ms cubic-bezier(.16,1,.3,1); }
.is-open .ws-mm-foot > * { opacity: 1; transform: none; }
.is-open .ws-mm-foot > *:nth-child(1) { transition-delay: 700ms; }
.is-open .ws-mm-foot > *:nth-child(2) { transition-delay: 780ms; }
.is-open .ws-mm-foot > *:nth-child(3) { transition-delay: 860ms; }

/* Strategie-Call: exakt der Button aus dem Hero (Liquid Glass 08), nur als Block im Menü */
.ws-mm-ctawrap { display: flex; }
.ws-mm-ctawrap .ws-mm-cta { align-self: flex-start; }

.ws-mm-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.ws-mm-lang { display: flex; align-items: center; gap: 4px; }
.ws-mm-lang a,
.ws-mm-lang a:any-link,
.ws-mm-lang a:link,
.ws-mm-lang a:visited,
.ws-mm-lang a:hover,
.ws-mm-lang a:focus,
.ws-mm-lang a:active,
.ws-mm-lang .ws-topnav-lang-btn {
  text-decoration: none;
  text-decoration-line: none;
}
.ws-mm-lang .ws-topnav-lang-btn { min-width: 44px; height: 44px; padding: 0 8px; border: 0; background: transparent; cursor: pointer; color: inherit; display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.2em; color: var(--fg-mute); transition: color 300ms; }
/* Desktop-Prägung der Pille hier weglassen: der 44px-Kreis sitzt nicht mittig auf DE/EN/ES/PL */
.ws-mm-lang .ws-topnav-lang-btn::before,
.ws-mm-lang .ws-topnav-lang-btn:hover::before,
.ws-mm-lang .ws-topnav-lang-btn.is-on::before { content: none; display: none; }
.ws-mm-lang .ws-topnav-lang-btn.is-on { color: var(--accent-text); }
[data-theme='dark'] .ws-mm-lang .ws-topnav-lang-btn.is-on { color: var(--ws-gold); }
.ws-mm-sl { width: 1px; height: 14px; background: var(--line); }
.ws-mm-theme { display: inline-flex; align-items: center; gap: 10px; height: 44px; padding: 0 16px; border: 0; border-radius: 999px; cursor: pointer;
  background: transparent; box-shadow: inset 0 0 0 1px var(--line); color: var(--fg);
  font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase; transition: box-shadow 400ms; }
.ws-mm-theme:hover { box-shadow: inset 0 0 0 1px var(--ws-gold); }
.ws-mm-theme .ws-icon-sun { display: none; }
[data-theme='dark'] .ws-mm-theme .ws-icon-sun { display: block; }
[data-theme='dark'] .ws-mm-theme .ws-icon-moon { display: none; }
.ws-mm-loc { margin: 0; font-family: var(--font-display); font-style: italic; font-size: 13px; color: var(--fg-mute); }

@media (min-width: 600px) and (max-width: 1180px) {
  .ws-mm-in { padding-top: calc(env(safe-area-inset-top, 0px) + 130px); }
  .ws-mm-link { grid-template-columns: 52px minmax(0, 1fr) auto; }
  .ws-mm-foot { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 18px 28px; }
  .ws-mm-row { gap: 20px; }
  .ws-mm-loc { flex-basis: 100%; }
}
/* Tablet quer und andere niedrige Fenster: Einträge etwas kleiner, damit Button, Sprache
   und Hell/Dunkel gemeinsam in einer Zeile unten ins Bild passen */
@media (min-width: 600px) and (max-height: 900px) {
  .ws-mm-in { padding-top: calc(env(safe-area-inset-top, 0px) + 96px); padding-bottom: 28px; }
  .ws-mm-eye { margin-bottom: 10px; }
  .ws-mm-nav .ws-mm-mask { font-size: clamp(28px, 6vh, 48px); }
  .ws-mm-link { padding: clamp(8px, 1.4vh, 14px) 0; }
  .ws-mm-foot { padding-top: 24px; flex-wrap: nowrap; gap: 24px; }
  .ws-mm-loc { flex-basis: auto; margin-left: auto; }
}
/* Smartphone hochkant mit eingeblendeten Safari-Leisten: alles passt ohne Scrollen */
@media (max-width: 599px) and (max-height: 760px) {
  .ws-mm-in { padding-top: calc(env(safe-area-inset-top, 0px) + 92px); padding-bottom: 20px; }
  .ws-mm-eye { margin-bottom: 8px; }
  .ws-mm-link { padding: 10px 0; }
  .ws-mm-foot { padding-top: 22px; gap: 16px; }
}
@media (max-height: 560px) {
  .ws-mm-in { padding-top: 76px; }
  .ws-mm-nav .ws-mm-mask { font-size: clamp(24px, 6vh, 34px); }
  .ws-mm-link { padding: 8px 0; }
}
@media (min-width: 1181px) { .ws-mmenu { display: none !important; } }
@media (prefers-reduced-motion: reduce) {
  .ws-mmenu { transition: opacity 300ms; clip-path: none; opacity: 0; }
  .ws-mmenu.is-open { opacity: 1; }
  .ws-mm-mask > span, .ws-mm-nr, .ws-mm-link::after, .ws-mm-foot > *, .ws-burger-l { transition: none !important; transform: none !important; opacity: 1 !important; }
  .is-menu-open .ws-burger-l:nth-child(1) { transform: rotate(45deg) !important; }
  .is-menu-open .ws-burger-l:nth-child(2) { transform: rotate(-45deg) !important; }
}

/* Solange die Beleg-Lightbox offen ist, tritt die Menüpille zurück: sie kann dann
   weder aufgeklappt hängen bleiben noch das Schließen-X der Lightbox verdecken. */
.ws-topnav { transition: opacity 360ms cubic-bezier(.16,1,.3,1), visibility 0s linear 0s; }
body.ws-proof-lock .ws-topnav { opacity: 0 !important; visibility: hidden !important; pointer-events: none !important;
  transition: opacity 260ms cubic-bezier(.16,1,.3,1), visibility 0s linear 260ms; }
body.ws-proof-lock .ws-mmenu { display: none !important; }
