/* GSB Kalender — Navigationsleiste unten und App-Menü der Website (seit 1.10.61, 1.10.63) */

/* Frühere Leiste aus dem HTML-Block der Seiten und die kleine Leiste im Kalender ausblenden */
.gsb-nav, .gsb-nav-spacer, .gsb-bottom-nav { display: none !important; }

/* Plugin-Seiten: Menü, Titel und Logo der Website ausblenden (immer) */
body.gsb-app .wp-block-navigation,
body.gsb-app .wp-block-site-title,
body.gsb-app .wp-block-site-logo { display: none !important; }

/* Übrige Website: Leiste nur in der installierten App */
.gsb-leiste.gsb-nur-pwa, .gsb-leiste-platz.gsb-nur-pwa { display: none !important; }
@media (display-mode: standalone) {
  .gsb-leiste.gsb-nur-pwa { display: block !important; }
  .gsb-leiste-platz.gsb-nur-pwa { display: block !important; }
  /* in der App ersetzt die Leiste das Menü der Website (vorher WPCode-Snippet) */
  .wp-block-navigation, .wp-block-site-title, .wp-block-site-logo { display: none !important; }
}

.gsb-leiste-platz { height: calc(80px + env(safe-area-inset-bottom, 0px)); background: #0f1a0f; }

.gsb-leiste {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 9000;
  box-sizing: border-box;
  margin: 0;
  padding: 8px 10px calc(10px + env(safe-area-inset-bottom, 0px));
  background: #0b130b;
  box-shadow: 0 -1px 0 rgba(245, 240, 232, 0.08);
  font-family: 'Montserrat', 'GSB Montserrat', 'Helvetica Neue', Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
}
.gsb-leiste *, .gsb-leiste *::before, .gsb-leiste *::after { box-sizing: border-box; }
.gsb-leiste-innen {
  display: -webkit-flex; display: flex; gap: 6px;
  max-width: 600px; margin: 0 auto;
}
.gsb-leiste .gsb-leiste-tab {
  -webkit-flex: 1 1 0; flex: 1 1 0; min-width: 0;
  display: -webkit-flex; display: flex;
  -webkit-flex-direction: column; flex-direction: column;
  -webkit-align-items: center; align-items: center;
  -webkit-justify-content: center; justify-content: center;
  gap: 4px;
  min-height: 56px; padding: 6px 2px;
  border: 0; border-radius: 10px;
  background: transparent;
  color: #b9b2a4;
  font-family: inherit !important; font-size: 13px !important; font-weight: 500; line-height: 1.2;
  letter-spacing: 0 !important; text-transform: none !important; text-decoration: none !important; text-align: center;
  white-space: normal;
  -webkit-tap-highlight-color: transparent;
  -webkit-transition: background-color 0.15s, color 0.15s;
  transition: background-color 0.15s, color 0.15s;
}
.gsb-leiste .gsb-leiste-tab:visited { color: #b9b2a4; }
.gsb-leiste .gsb-leiste-tab.ist-aktiv,
.gsb-leiste .gsb-leiste-tab.ist-aktiv:visited { background: #1e2e1e; color: #F5F0E8; font-weight: 600; }
.gsb-leiste .gsb-leiste-tab:active { background: #284028; color: #F5F0E8; }
.gsb-leiste .gsb-leiste-tab:focus-visible { outline: 2px solid #8fd16a; outline-offset: 2px; }
@media (hover: hover) {
  .gsb-leiste .gsb-leiste-tab:hover { color: #F5F0E8; }
}
.gsb-leiste-ic { display: -webkit-flex; display: flex; color: inherit; }
.gsb-leiste .gsb-leiste-tab.ist-aktiv .gsb-leiste-ic { color: #8fd16a; }
.gsb-leiste-ic svg {
  width: 24px; height: 24px; display: block;
  fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round;
}
.gsb-leiste-wort { display: block; max-width: 100%; overflow-wrap: break-word; }

/* ════════════════════════════════════════
   App-Menü der Website (nach Website-Menü CSS v2.8)
════════════════════════════════════════ */
.gsb-wmenu {
  --gsb-wm-zirkel: url('https://corps-gsb.de/wp-content/uploads/2026/11/zirkel-linie.webp');
  --gsb-wm-schere: url('https://corps-gsb.de/wp-content/uploads/2026/04/Schere-3.png');
  --gsb-wm-linie: rgba(245, 240, 232, 0.28);
  position: fixed; left: 0; right: 0; top: 0;
  bottom: calc(74px + env(safe-area-inset-bottom, 0px));
  z-index: 8990;
  box-sizing: border-box;
  display: -webkit-flex; display: flex;
  -webkit-flex-direction: column; flex-direction: column;
  overflow-x: hidden; overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: #0d1a06;
  color: rgba(245, 240, 232, 0.88);
  -webkit-text-size-adjust: 100%;
  animation: gsbWmFade 220ms ease both;
}
.gsb-wmenu[hidden] { display: none !important; }
.gsb-wmenu *, .gsb-wmenu *::before, .gsb-wmenu *::after { box-sizing: border-box; }
@keyframes gsbWmFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes gsbWmLink { from { opacity: 0; transform: translateX(-20px); } to { opacity: 1; transform: none; } }
@keyframes gsbWmPanel { from { transform: translateX(100%); } to { transform: none; } }

/* Scherenschnitt rechts unten, angeschnitten */
.gsb-wmenu::before {
  content: ''; position: absolute; right: 0; bottom: 0;
  width: 183px; height: 294px;
  background: var(--gsb-wm-schere) no-repeat 0 0 / 281px 320px;
  opacity: 0.12; pointer-events: none; z-index: 0;
}
.gsb-wmenu-innen {
  position: relative; z-index: 1;
  width: 100%; margin: auto 0;
  padding: clamp(24px, 4vw, 40px) clamp(32px, 8vw, 100px);
}
/* Obere Linie mit Zirkel */
.gsb-wmenu-zirkel {
  width: 100%; height: 44px; margin: 0 0 clamp(20px, 3vh, 30px);
  background:
    var(--gsb-wm-zirkel) no-repeat 42px 50% / auto 44px,
    linear-gradient(var(--gsb-wm-linie), var(--gsb-wm-linie)) no-repeat 0 50% / 28px 1px,
    linear-gradient(var(--gsb-wm-linie), var(--gsb-wm-linie)) no-repeat 100% 50% / calc(100% - 91px) 1px;
}
.gsb-wmenu .gsb-wmenu-liste { list-style: none; margin: 0; padding: 0; counter-reset: gsb-wm; }
.gsb-wmenu .gsb-wmenu-punkt { counter-increment: gsb-wm; margin: 0; padding: 0; opacity: 0; animation: gsbWmLink 240ms ease forwards; }
.gsb-wmenu .gsb-wmenu-punkt::before, .gsb-wmenu .gsb-wmenu-punkt::marker { content: none; }
.gsb-wmenu .gsb-wmenu-punkt:nth-child(1) { animation-delay: 120ms; }
.gsb-wmenu .gsb-wmenu-punkt:nth-child(2) { animation-delay: 160ms; }
.gsb-wmenu .gsb-wmenu-punkt:nth-child(3) { animation-delay: 200ms; }
.gsb-wmenu .gsb-wmenu-punkt:nth-child(4) { animation-delay: 240ms; }
.gsb-wmenu .gsb-wmenu-punkt:nth-child(5) { animation-delay: 280ms; }
.gsb-wmenu .gsb-wmenu-punkt:nth-child(6) { animation-delay: 320ms; }
.gsb-wmenu .gsb-wmenu-punkt:nth-child(n+7) { animation-delay: 360ms; }
.gsb-wmenu .gsb-wmenu-link {
  display: -webkit-flex; display: flex; -webkit-align-items: baseline; align-items: baseline;
  width: 100%; padding: clamp(8px, 1.3vh, 12px) 0;
  font-family: 'Cinzel', serif !important; font-weight: 400;
  font-size: clamp(19px, 5.4vw, 21px) !important; letter-spacing: 0.07em !important; line-height: 1.25;
  text-transform: none !important; text-decoration: none !important; text-align: left;
  color: rgba(245, 240, 232, 0.88) !important;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.6);
  touch-action: manipulation; -webkit-tap-highlight-color: transparent;
  transition: color 0.2s ease;
}
.gsb-wmenu .gsb-wmenu-link::before {
  content: counter(gsb-wm, decimal-leading-zero);
  -webkit-flex: 0 0 36px; flex: 0 0 36px; width: 36px;
  font-family: 'Montserrat', sans-serif; font-size: 11px; font-weight: 400; letter-spacing: 0.12em;
  color: rgba(245, 240, 232, 0.5);
  transition: color 0.2s ease;
}
.gsb-wmenu .gsb-wmenu-link.ist-aktiv { color: #ffffff !important; }
.gsb-wmenu .gsb-wmenu-link.ist-aktiv::before { color: #e07a66; }
.gsb-wmenu-text { display: block; }
.gsb-wmenu-ueber {
  display: block; margin-bottom: 2px;
  font-family: 'Cinzel', serif; font-size: 12px; line-height: 1.4; letter-spacing: 0.2em;
  color: rgba(245, 240, 232, 0.55);
}
.gsb-wmenu .gsb-wmenu-unter { list-style: none; margin: 0 0 6px 36px; padding: 0; }
.gsb-wmenu .gsb-wmenu-unter a {
  display: block; padding: 6px 0;
  font-family: 'Cinzel', serif !important; font-size: 15px !important; letter-spacing: 0.06em !important;
  text-transform: none !important; text-decoration: none !important; color: rgba(245, 240, 232, 0.75) !important;
}
.gsb-wmenu .gsb-wmenu-fuss {
  margin: clamp(24px, 3.5vh, 36px) 0 0; padding: 0;
  font-family: 'Cinzel', serif !important; font-size: 11px !important; line-height: 1.7; letter-spacing: 0.22em !important;
  text-transform: none; color: rgba(245, 240, 232, 0.5);
}
.gsb-wmenu .gsb-wmenu-zu {
  position: fixed; top: clamp(16px, 3vw, 28px); right: clamp(16px, 3vw, 28px); z-index: 2;
  width: 36px; height: 36px; padding: 0; margin: 0;
  display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; -webkit-justify-content: center; justify-content: center;
  background: transparent; border: 1px solid rgba(245, 240, 232, 0.2); border-radius: 50%;
  color: rgba(245, 240, 232, 0.6); cursor: pointer;
  transition: border-color 0.2s ease, color 0.2s ease;
}
.gsb-wmenu .gsb-wmenu-zu::after { content: ''; position: absolute; top: -6px; right: -6px; bottom: -6px; left: -6px; }
.gsb-wmenu-zu svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; }
br.gsb-wm-d { display: none; }
html.gsb-wmenu-offen, html.gsb-wmenu-offen body { overflow: hidden !important; }

/* Computer: Panel von rechts, 460 px, Seite abgedunkelt */
@media (min-width: 1024px) {
  .gsb-wmenu {
    left: auto; width: 460px;
    box-shadow: -100vw 0 0 100vw rgba(0, 0, 0, 0.55);
    animation: gsbWmPanel 300ms cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
  }
  .gsb-wmenu::before { width: 240px; height: 386px; background-size: 369px 420px; }
  .gsb-wmenu-innen { padding-left: 48px; padding-right: 48px; }
  .gsb-wmenu-zirkel {
    height: 48px; margin-bottom: clamp(30px, 3.6vh, 44px);
    background:
      var(--gsb-wm-zirkel) no-repeat 48px 50% / auto 48px,
      linear-gradient(var(--gsb-wm-linie), var(--gsb-wm-linie)) no-repeat 0 50% / 32px 1px,
      linear-gradient(var(--gsb-wm-linie), var(--gsb-wm-linie)) no-repeat 100% 50% / calc(100% - 102px) 1px;
  }
  .gsb-wmenu .gsb-wmenu-punkt { opacity: 1; animation: none; }
  .gsb-wmenu .gsb-wmenu-link { padding: clamp(12px, 1.7vh, 20px) 0; font-size: 26px !important; }
  .gsb-wmenu .gsb-wmenu-link::before { -webkit-flex-basis: 44px; flex-basis: 44px; width: 44px; }
  .gsb-wmenu .gsb-wmenu-unter { margin-left: 44px; }
  .gsb-wmenu-ueber { font-size: 13px; }
  .gsb-wmenu .gsb-wmenu-link:hover { color: #9e2020 !important; }
  .gsb-wmenu .gsb-wmenu-link:hover::before { color: rgba(158, 32, 32, 0.5); }
  .gsb-wm-m { display: none; }
  br.gsb-wm-d { display: inline; }
  .gsb-wmenu .gsb-wmenu-zu { top: 24px; right: 24px; }
  .gsb-wmenu .gsb-wmenu-zu:hover { border-color: rgba(245, 240, 232, 0.6); color: rgba(245, 240, 232, 0.9); }
}
@media (prefers-reduced-motion: reduce) {
  .gsb-wmenu, .gsb-wmenu .gsb-wmenu-punkt { animation: none; opacity: 1; }
}

@media print { .gsb-leiste, .gsb-leiste-platz, .gsb-wmenu { display: none !important; } }
