/* Mobile Hero Button Patch
   ErgÃ¤nzung fÃ¼r assets/css/mobile.css
   Ziel: Buttons im Startbanner auf Mobile unter das Bild setzen.
*/

@media (max-width: 760px) {
  .hero {
    min-height: auto;
    display: block;
    padding-bottom: 0;
    overflow: visible;
  }

  .hero picture,
  .hero picture img {
    position: relative;
    inset: auto;
    display: block;
    width: 100%;
    height: auto;
  }

  .hero picture img {
    object-fit: contain;
    object-position: center top;
  }

  .hero-overlay {
    display: none;
  }

  .hero-content.hero-content-minimal {
    position: relative;
    width: calc(100% - 28px);
    padding: 18px 0 34px;
    margin: 0 auto;
  }

  .hero-content-minimal .hero-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    width: 100%;
  }

  .hero-content-minimal .btn {
    width: 100%;
  }
}

/* Mobile Banner Frame Patch
   ErgÃ¤nzung fÃ¼r assets/css/mobile.css
   Ziel:
   - Rahmen passt sich mobil besser an section_about, section_music, section_events und section_booking an.
   - Banner werden nicht unnÃ¶tig hochgezogen.
   - Bilder werden nicht hart abgeschnitten, auÃŸer dort, wo es optisch sinnvoll ist.
*/

@media (max-width: 760px) {
  /* About-Banner: Rahmen an Bild anpassen */
  .about-section .media-card {
    min-height: auto;
    height: auto;
    padding: 8px;
    display: block;
  }

  .about-section .media-card img {
    width: 100%;
    height: auto;
    min-height: 0;
    padding: 0;
    object-fit: contain;
    object-position: center;
    border-radius: calc(var(--radius) - 10px);
  }

  /* Music-Banner: Rahmen an 16:9 Banner anpassen */
  #music.banner-section,
  .clean-banner {
    min-height: auto;
    height: auto;
    aspect-ratio: auto;
    display: block;
    padding: 8px;
    background:
      radial-gradient(circle at center, rgba(255, 122, 0, .14), transparent 58%),
      #050505;
  }

  #music.banner-section img,
  .clean-banner > img {
    position: relative;
    inset: auto;
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
    object-position: center;
    border-radius: calc(var(--radius) - 10px);
  }

  #music.banner-section::after,
  .clean-banner::after {
    display: none;
  }

  /* Events- und Booking-Karten: Bildrahmen an BannerhÃ¶he anpassen */
  .bs-card {
    padding: 8px;
  }

  .bs-card > img {
    height: auto;
    aspect-ratio: auto;
    width: 100%;
    object-fit: contain;
    object-position: center;
    border-radius: calc(var(--radius) - 10px);
    border: 1px solid rgba(255, 122, 0, .22);
    background: #050505;
  }

  .bs-card > div {
    padding: 18px 12px 12px;
  }

  /* Falls section_booking als Page-Hero auf booking.php genutzt wird */
  .page-hero.small-hero {
    min-height: auto;
    display: block;
    padding-top: 72px;
    background: #050505;
  }

  .page-hero.small-hero > img {
    position: relative;
    inset: auto;
    width: calc(100% - 20px);
    height: auto;
    margin: 10px auto 0;
    object-fit: contain;
    object-position: center;
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 8px;
    background:
      radial-gradient(circle at center, rgba(255, 122, 0, .14), transparent 58%),
      #050505;
  }

  .page-hero.small-hero .hero-overlay {
    display: none;
  }

  .page-hero.small-hero .hero-content {
    width: calc(100% - 28px);
    padding: 18px 0 28px;
    margin: 0 auto;
  }

  .page-hero.small-hero h1 {
    font-size: clamp(2.4rem, 12vw, 4rem);
  }

  .page-hero.small-hero .slogan {
    font-size: .9rem;
  }
}

@media (max-width: 420px) {
  .about-section .media-card,
  #music.banner-section,
  .clean-banner,
  .bs-card {
    padding: 6px;
    border-radius: 16px;
  }

  .about-section .media-card img,
  #music.banner-section img,
  .clean-banner > img,
  .bs-card > img {
    border-radius: 11px;
  }
}

/* Mobile Text Navigation Patch
   ErgÃ¤nzung fÃ¼r assets/css/mobile.css
   Ziel: Mobile Navigation als reine Text-/Linkliste statt Icon-Kacheln.
*/

@media (max-width: 760px) {
  .main-nav {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 8px 0;
    border-radius: 16px;
    background:
      linear-gradient(180deg, rgba(12, 12, 12, .98), rgba(0, 0, 0, .96));
  }

  .nav-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 52px;
    padding: 0 18px;
    border: 0;
    border-radius: 0;
    border-bottom: 1px solid rgba(255, 122, 0, .22);
    background: transparent;
    text-align: left;
  }

  .nav-link:last-child {
    border-bottom: 0;
  }

  .nav-link img {
    display: none;
  }

  .nav-link span {
    margin-top: 0;
    font-size: .86rem;
    letter-spacing: .18em;
    font-weight: 800;
    color: #f4f4f4;
  }

  .nav-link::after {
    content: "â€º";
    color: var(--orange);
    font-size: 1.5rem;
    line-height: 1;
    text-shadow: 0 0 12px rgba(255, 122, 0, .65);
  }

  .nav-link:hover,
  .nav-link:focus {
    background: rgba(255, 122, 0, .09);
    border-color: rgba(255, 122, 0, .35);
  }
}

@media (max-width: 420px) {
  .nav-link {
    min-height: 50px;
    padding: 0 16px;
  }

  .nav-link span {
    font-size: .8rem;
  }
}
/* Mobile Offcanvas Navigation Patch
   ErgÃ¤nzung fÃ¼r assets/css/mobile.css
   Ziel:
   - Mobile MenÃ¼ Ã¶ffnet von rechts nach links.
   - MenÃ¼ nimmt nur ca. die halbe Breite ein.
   - Keine Sonderzeichen/Pfeile rechts.
   - Text-/Linkliste bleibt erhalten.
*/

@media (max-width: 760px) {
  .main-nav {
    position: fixed;
    top: 72px;
    right: 0;
    left: auto;
    width: min(58vw, 320px);
    max-width: 320px;
    height: calc(100svh - 72px);
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 14px 0;
    border-radius: 18px 0 0 18px;
    border: 1px solid rgba(255, 122, 0, .42);
    border-right: 0;
    background:
      radial-gradient(circle at 100% 0%, rgba(255, 122, 0, .18), transparent 48%),
      linear-gradient(180deg, rgba(12, 12, 12, .98), rgba(0, 0, 0, .97));
    box-shadow:
      -18px 0 44px rgba(0, 0, 0, .72),
      0 0 28px rgba(255, 122, 0, .20);
    transform: translateX(110%);
    opacity: 0;
    pointer-events: none;
    transition:
      transform .28s ease,
      opacity .22s ease;
    z-index: 1100;
  }

  .main-nav.open {
    display: flex;
    transform: translateX(0);
    opacity: 1;
    pointer-events: auto;
  }

  .nav-link {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-height: 54px;
    padding: 0 22px;
    border: 0;
    border-radius: 0;
    border-bottom: 1px solid rgba(255, 122, 0, .22);
    background: transparent;
    text-align: left;
  }

  .nav-link:last-child {
    border-bottom: 0;
  }

  .nav-link img {
    display: none;
  }

  .nav-link span {
    margin-top: 0;
    font-size: .86rem;
    letter-spacing: .16em;
    font-weight: 800;
    color: #f4f4f4;
  }

  .nav-link::after {
    content: none !important;
    display: none !important;
  }

  .nav-link:hover,
  .nav-link:focus {
    background: rgba(255, 122, 0, .10);
  }

  body:has(.main-nav.open)::before {
    content: "";
    position: fixed;
    inset: 72px 0 0 0;
    background: rgba(0, 0, 0, .42);
    backdrop-filter: blur(2px);
    z-index: 1090;
  }

  .nav-toggle {
    position: relative;
    z-index: 1200;
  }
}

@media (max-width: 420px) {
  .main-nav {
    width: min(68vw, 300px);
  }

  .nav-link {
    min-height: 52px;
    padding: 0 18px;
  }

  .nav-link span {
    font-size: .8rem;
    letter-spacing: .14em;
  }
}


/* FINAL FIX: Mobile Offcanvas Navigation clickable + no blur + no weird symbols */

@media (max-width: 760px) {
  body:has(.main-nav.open)::before {
    display: none !important;
    content: none !important;
  }

  .site-header {
    z-index: 3000 !important;
  }

  .main-nav {
    position: fixed !important;
    top: 72px !important;
    right: 0 !important;
    left: auto !important;

    width: min(58vw, 320px) !important;
    max-width: 320px !important;
    height: calc(100svh - 72px) !important;

    display: flex !important;
    flex-direction: column !important;

    padding: 14px 0 !important;
    border-radius: 18px 0 0 18px !important;
    border: 1px solid rgba(255, 122, 0, .42) !important;
    border-right: 0 !important;

    background:
      radial-gradient(circle at 100% 0%, rgba(255, 122, 0, .18), transparent 48%),
      linear-gradient(180deg, rgba(12, 12, 12, .98), rgba(0, 0, 0, .97)) !important;

    box-shadow:
      -18px 0 44px rgba(0, 0, 0, .72),
      0 0 28px rgba(255, 122, 0, .20) !important;

    transform: translateX(110%) !important;
    opacity: 0 !important;
    pointer-events: none !important;

    transition:
      transform .28s ease,
      opacity .22s ease !important;

    z-index: 3100 !important;
  }

  .main-nav.open {
    transform: translateX(0) !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  .nav-link {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;

    width: 100% !important;
    min-height: 54px !important;
    padding: 0 22px !important;

    border: 0 !important;
    border-radius: 0 !important;
    border-bottom: 1px solid rgba(255, 122, 0, .22) !important;

    background: transparent !important;
    text-align: left !important;
    text-decoration: none !important;

    pointer-events: auto !important;
  }

  .nav-link:last-child {
    border-bottom: 0 !important;
  }

  .nav-link img {
    display: none !important;
  }

  .nav-link span {
    margin: 0 !important;
    font-size: .86rem !important;
    letter-spacing: .16em !important;
    font-weight: 800 !important;
    color: #f4f4f4 !important;
  }

  .nav-link::after {
    content: none !important;
    display: none !important;
  }

  .nav-link:hover,
  .nav-link:focus {
    background: rgba(255, 122, 0, .10) !important;
  }

  .nav-toggle {
    position: relative !important;
    z-index: 3200 !important;
  }
}

@media (max-width: 420px) {
  .main-nav {
    width: min(68vw, 300px) !important;
  }

  .nav-link {
    min-height: 52px !important;
    padding: 0 18px !important;
  }

  .nav-link span {
    font-size: .8rem !important;
    letter-spacing: .14em !important;
  }
}

/* =========================================================
   BrainShock CMS v1.2.7-E - Admin Navigation Mobile Split
   Datei: assets/css/mobile.css
   ========================================================= */

/* Adminbereich mobil:
   - Admin Navigation nicht sticky
   - kein Vollbild-Blocker
   - kompakt horizontal scrollbar
   - Desktop-Regeln bleiben in style.css
*/
@media (max-width: 760px) {
  .admin-dashboard {
    padding-top: 92px;
  }

  .admin-topbar {
    position: static !important;
    top: auto !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    width: 100%;
    max-width: 100%;
    margin: 0 0 18px !important;
    padding: 10px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    border-radius: 16px !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }

  .admin-tab-link {
    flex: 0 0 auto !important;
    width: auto !important;
    min-height: 38px !important;
    padding: 0 12px !important;
    font-size: .68rem !important;
    white-space: nowrap !important;
  }

  .admin-tab-logout,
  .admin-tab-site {
    margin-left: 0 !important;
  }
}

/* =========================================================
   BrainShock CMS v1.2.7-F - Admin Mobile Offcanvas Navigation
   Datei: assets/css/mobile.css
   ========================================================= */

@media (max-width: 760px) {
  .admin-mobile-nav-wrap {
    position: relative;
    z-index: 3400;
    margin: 0 0 18px;
  }

  .admin-nav-toggle {
    width: 100%;
    min-height: 48px;
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin: 0 0 12px;
    padding: 0 16px;
    border: 1px solid rgba(255, 122, 0, .45);
    border-radius: 16px;
    color: #f4f4f4;
    background:
      radial-gradient(circle at 100% 0%, rgba(255, 122, 0, .18), transparent 48%),
      rgba(0, 0, 0, .72);
    text-transform: uppercase;
    letter-spacing: .14em;
    font-size: .76rem;
    font-weight: 900;
    box-shadow: 0 0 22px rgba(255, 122, 0, .12);
  }

  .admin-nav-toggle span {
    display: block;
    width: 18px;
    height: 2px;
    border-radius: 999px;
    background: var(--orange);
    box-shadow: 0 0 10px rgba(255, 122, 0, .65);
  }

  .admin-nav-toggle em {
    font-style: normal;
  }

  .admin-nav-toggle.open {
    border-color: rgba(255, 122, 0, .72);
    background:
      radial-gradient(circle at 100% 0%, rgba(255, 122, 0, .28), transparent 48%),
      rgba(0, 0, 0, .86);
  }

  .admin-dashboard {
    padding-top: 92px;
  }

  .admin-topbar#adminTopbar {
    position: fixed !important;
    top: 74px !important;
    right: 0 !important;
    left: auto !important;
    width: min(72vw, 340px) !important;
    max-width: 340px !important;
    height: calc(100svh - 74px) !important;
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: 0 !important;
    margin: 0 !important;
    padding: 14px 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    border-radius: 18px 0 0 18px !important;
    border: 1px solid rgba(255, 122, 0, .42) !important;
    border-right: 0 !important;
    background:
      radial-gradient(circle at 100% 0%, rgba(255, 122, 0, .18), transparent 48%),
      linear-gradient(180deg, rgba(12, 12, 12, .98), rgba(0, 0, 0, .97)) !important;
    box-shadow:
      -18px 0 44px rgba(0, 0, 0, .72),
      0 0 28px rgba(255, 122, 0, .20) !important;
    transform: translateX(110%) !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition:
      transform .28s ease,
      opacity .22s ease !important;
    z-index: 3500 !important;
    -webkit-overflow-scrolling: touch;
  }

  .admin-topbar#adminTopbar.open {
    transform: translateX(0) !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  .admin-topbar#adminTopbar .admin-tab-link {
    width: 100% !important;
    min-height: 54px !important;
    flex: 0 0 auto !important;
    justify-content: flex-start !important;
    padding: 0 22px !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(255, 122, 0, .22) !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #f4f4f4 !important;
    text-align: left !important;
    font-size: .78rem !important;
    letter-spacing: .13em !important;
    white-space: normal !important;
  }

  .admin-topbar#adminTopbar .admin-tab-link:last-child {
    border-bottom: 0 !important;
  }

  .admin-topbar#adminTopbar .admin-tab-link:hover,
  .admin-topbar#adminTopbar .admin-tab-link.active {
    color: #111 !important;
    background: linear-gradient(180deg, rgba(255, 122, 0, .92), rgba(180, 70, 0, .92)) !important;
  }

  .admin-topbar#adminTopbar .admin-tab-site {
    color: #caffdc !important;
    border-color: rgba(56, 217, 121, .28) !important;
  }

  .admin-topbar#adminTopbar .admin-tab-site:hover {
    color: #111 !important;
    background: linear-gradient(180deg, rgba(56, 217, 121, .92), rgba(25, 150, 78, .92)) !important;
  }

  .admin-topbar#adminTopbar .admin-tab-logout,
  .admin-topbar#adminTopbar .admin-tab-site {
    margin-left: 0 !important;
  }

  body.admin-nav-open {
    overflow: hidden;
  }

  body.admin-nav-open::after {
    content: "";
    position: fixed;
    inset: 74px 0 0 0;
    background: rgba(0, 0, 0, .42);
    z-index: 3450;
  }
}

@media (max-width: 420px) {
  .admin-topbar#adminTopbar {
    width: min(82vw, 320px) !important;
  }

  .admin-topbar#adminTopbar .admin-tab-link {
    min-height: 52px !important;
    padding: 0 18px !important;
    font-size: .74rem !important;
  }
}

/* =========================================================
   BrainShock CMS v1.2.7-F Hotfix - Admin Offcanvas Click Fix
   Datei: assets/css/mobile.css
   ========================================================= */

@media (max-width: 760px) {
  .admin-mobile-nav-wrap {
    z-index: 3700 !important;
  }

  .admin-topbar#adminTopbar {
    z-index: 3800 !important;
    pointer-events: auto !important;
  }

  .admin-topbar#adminTopbar.open,
  .admin-topbar#adminTopbar.open .admin-tab-link {
    pointer-events: auto !important;
  }

  .admin-nav-toggle {
    position: relative !important;
    z-index: 3900 !important;
    pointer-events: auto !important;
  }

  body.admin-nav-open::after {
    display: none !important;
    content: none !important;
    pointer-events: none !important;
  }
}

/* =========================================================
   BrainShock CMS v1.2.7-F Hotfix 2 - Admin Toggle Layer Fix
   Datei: assets/css/mobile.css
   ========================================================= */

@media (max-width: 760px) {
  /*
   * Wenn das Admin-Offcanvas geöffnet ist, darf der Button
   * "Admin Menü" nicht über dem ersten Menüpunkt "Übersicht" liegen.
   */
  .admin-nav-toggle.open {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    z-index: 3300 !important;
  }

  .admin-topbar#adminTopbar.open {
    z-index: 3900 !important;
  }

  .admin-topbar#adminTopbar.open .admin-tab-link:first-child {
    pointer-events: auto !important;
  }
}
