/* ==========================================================================
   client.css — Märkisches Zentrum (MZ)
   Client-spezifische Overrides für frontend.css (ANOXA Shared)

   Struktur:
     0.  Globale Brand-Variablen & Reset
     1.  Header & Navigation
     2.  Basis Layout / Hero-Overlay
     3.  Home — Kacheln (Schachbrett)
     4.  Slider (Swiper)
     5.  Video & Footer
     6.  Google Maps
     7.  Öffnungszeiten (.openclass — aktive MZ-Gold-Version)
     8.  Service Icons & Service-Detail-Panel
     9.  Kontaktformular
    10.  Shops — Übersicht & Detailansicht
    11.  Events — Übersicht, Fokus-Teaser, Detail-Bühne, Archiv
    12.  Rechtliches & Anfahrt
    13.  Mapplic / Centerplan
    14.  KI-Chat Panel & Header-Trigger
    15.  Hero-Block (Startseite Slogan)
    16.  Instagram-Feed
    17.  Dauerparkplätze — Kernfaktoren-Grid

    Am Dateiende: ###PRUEFEN### — Blöcke, deren Verwendung unklar ist.

    Farbpalette:
      Anthrazit       #2A2A2A
      Champagner      #FAF8F2
      Bourbon-Schwarz #1A1612
      Messing-Gold    rgb(197, 155, 39)
      Gold-Gradient   linear-gradient(90deg, #8A6623, #C59B27, #E6CA65)
      Slogan-Fill 45° + #FFF0A5
    Fonts: standard (body), medium (Banderolen/Sublines), headlines (Display/Slogans), this (light)
   ========================================================================== */


/* ==========================================================================
   0. Globale Brand-Variablen & Reset
   ========================================================================== */

:root {
    --focus-outline: #fff;
}

/* Mehr Abstand für Outlines auf dunklem Theme */
.event-archiv-icon,
.event-teaser {
    outline-offset: 6px;
}
.event-archiv-icon a:focus-visible,
.event-teaser > a:focus-visible {
    outline-offset: 6px;
}


/* ==========================================================================
   1. Header & Navigation
   ========================================================================== */

/* Language Select */
.language_select {
    position: absolute;
    width: 60px;
    height: 30px;
    line-height: 30px;
    z-index: 103;
    color: #FFF;
    text-align: right;
    font-size: 12px;
    right: 150px;
    top: 37px;
}
.language_select a {
    padding: 0 4px;
    font-size: 12px;
    height: auto;
}
.language_select a.sel {
    font-family:'standard', sans-serif;
}
.language_select a:link,
.language_select a:active,
.language_select a:visited {
    color: #FFF;
    transition: 0.5s ease;
    line-height: 30px;
}
.language_select a:focus,
.language_select a:hover {
    color: #c59b27;
}

a.header_logo:focus img {
    outline: 1px solid #fff;
    outline-offset: 8px;
}

#header_logo img {

    z-index: 100;
}
@media (max-width: 800px) {
    .content_header{
        height: 100px !important;
    }
    #header_logo img {
        top:15px !important;
        width: 170px !important;
    }

    .language_select {
        text-align: left;
        right:auto;
        left:20px;

    }
    main section:first-of-type {
        margin-top: 100px !important;
    }
}


/* ==========================================================================
   2. Basis Layout / Hero-Overlay
   ========================================================================== */

/* Globaler Section-Titel — Magazinkapitel-Style mit Gold-Akzent */
section > h1 {
    font-family: 'medium', sans-serif;
    font-size: 44px;
    line-height: 1.1;
    letter-spacing: 4px;
    text-align: center;
    text-transform: uppercase;
    margin: 60px 0 40px;
    padding-bottom: 18px;
    position: relative;
}

section > h1::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 72px;
    height: 1px;
    background: linear-gradient(90deg,
        rgba(138, 102, 35, 0) 0%,
        #8A6623 15%,
        #C59B27 50%,
        #8A6623 85%,
        rgba(138, 102, 35, 0) 100%
    );
}

@media (max-width: 768px) {
    section > h1 {
        font-size: 32px;
        letter-spacing: 3px;
        margin: 40px 0 30px;
    }
}

h2 {
    font-family: 'medium', sans-serif;
    font-size: 20px;
    line-height: 1.3;
    letter-spacing: 3px;
    margin: 0 0 16px;
}
.borderclass .slot {
    border: 1px solid #000;
}
.stores .slot {
    display: flex !important;
    flex-direction: row;
    align-items: end;
    gap: 10px;
}

.stores .slot > h1,
.stores .slot>  h2 {
    margin: 0;
    font-family: 'medium', sans-serif;
    line-height: 1;
    letter-spacing: 3px;
    color: #1A1612;
    font-size: 20px;
    flex: 1;
    min-width: 0;

    /* Banderole: Gold-Linie links + Text rechts, automatische Breitenanpassung
       statt fixer calc(100% - N) Werte. Funktioniert für jede Textlänge. */
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 24px;
    text-align: right;
}

.stores .slot> h1::before,
.stores .slot>  h2::before {
    content: '';
    flex: 1 1 auto;
    height: 1px;
    background: linear-gradient(90deg,
        rgba(138, 102, 35, 0) 0%,
        #8A6623 15%,
        #C59B27 50%,
        #8A6623 85%,
        rgba(138, 102, 35, 0) 100%);
}

.stores.white .slot h1,
.stores.white .slot h2 {
    color: #FFF;
}

.hero-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 2rem 3rem;
    background: linear-gradient(to right, rgba(0,0,0,0.5) 0%, transparent 70%);
    color: #fff;
}

.hero-title {
    font-family: 'headlines', sans-serif;
    font-size: clamp(36px, 6.4vw, 120px);
    line-height: 0.95;
    letter-spacing: -1px;
    text-transform: uppercase;
    font-weight: 700;
    margin: 0;
    /* Default-Schrift weiß (über dem Bild) */
    color: #fff;

    position: relative !important;
    left: 0;
    max-width: 100% !important;
    width: fit-content !important;
    transform: none !important;
}

/* Hervorgehobenes Wort im Slogan in Gold-Verlauf */
.hero-title span {
    background: linear-gradient(45deg,
        #8A6623 0%,
        #C59B27 30%,
        #E6CA65 55%,
        #FFF0A5 70%,
        #C59B27 85%,
        #8A6623 100%);
    -webkit-background-clip: text;
            background-clip: text;
    -webkit-text-fill-color: transparent;
            color: transparent;
}

.hero-subtitle {
    font-size: clamp(16px, 0.9vw, 16px);
    letter-spacing: 3px;
    text-transform: uppercase;
    margin-bottom: 0.5rem;
}

.hero-address {
    font-size: clamp(16px, 0.9vw, 16px);
    margin-top: 1rem;
    opacity: 0.9;
}

.hero-button:hover {
    background: #fff;
    color: #000 !important;
}

.hero-button,
.zuuns button {
    margin-top: 2rem;
    cursor: pointer;
    font-size: 1.25rem;
    color: #fff;
    z-index: 20;
    padding: 0.75rem 1.5rem;
    border: 1px solid #fff;
    background: transparent;
    display: inline-block;
    width: 200px;
}
.hero-button{
    color:#FFF !important;
}

@media (max-width: 768px) {
    .hero-overlay {
        padding: 1.5rem 1.5rem;
    }
    .hero-subtitle {
        font-size: clamp(13px, 0.9vw, 13px);

    }

    .hero-address {
        font-size: clamp(13px, 0.9vw, 13px);

    }
}

@media (max-width: 480px) {
    .hero-overlay {
        padding: 1rem 1rem;
        justify-content: flex-end;
        padding-bottom: 2rem;
    }
    .hero-button,
    .zuuns button {
        font-size: 1rem;
        padding: 0.6rem 1.2rem;
        width: auto;

        margin-top: 1rem;
    }
}
@media (max-width: 1620px) {
   section{
       max-width:calc(100% - 20px) !important;
       margin-left: 10px !important;
   }
}


/* ==========================================================================
   3. Home — Kacheln (Schachbrett)
   ========================================================================== */

.mystyle .newmenu a {
    position: absolute;
    inset: 0;
    z-index: 2;
}

.mystyle .newmenu h2 {
    position: relative;
    z-index: 1;
    pointer-events: none;
}

.mystyle .newmenu {
    position: relative;
    overflow: hidden;
    background: #2A2A2A;
}

/* ── Schachbrettmuster (X-Komposition) ───────────────────────────────────
   Wiederkehrendes MZ-Vokabular aus /shops/, /gastronomie/, /gesundheit/.
   Bei 2×2 Grid ergibt :nth-child(even) Streifen, kein Schachbrett.
   Für echte X-Komposition brauchen wir explizite Positionen 2 und 3 hell:

     [1 dunkel ] [2 hell  ]
     [3 hell   ] [4 dunkel]

   Position 1 (Shops) und 4 (Centerplan) bleiben Anthrazit.
   Position 2 (Gastronomie) und 3 (Gesundheit) werden Champagner.
   ─────────────────────────────────────────────────────────────────────── */

.mystyle .newmenu:nth-child(2),
.mystyle .newmenu:nth-child(3) {
    background: #FAF8F2;
}
.mystyle .newmenu:nth-child(2) img,
.mystyle .newmenu:nth-child(2) svg,
.mystyle .newmenu:nth-child(3) img,
.mystyle .newmenu:nth-child(3) svg {
    /* Weiße Icon-SVGs → dunkles Anthrazit */
    filter: brightness(0) saturate(100%) invert(13%) sepia(0%) saturate(0%) hue-rotate(180deg) brightness(95%) contrast(85%);
}
.mystyle .newmenu:nth-child(2) h2,
.mystyle .newmenu:nth-child(3) h2 {
    color: #2A2A2A;
}

/* Hover-Flip: helle Kachel wird dunkel beim Hover */
.mystyle .newmenu:nth-child(2):hover,
.mystyle .newmenu:nth-child(2):focus-within,
.mystyle .newmenu:nth-child(3):hover,
.mystyle .newmenu:nth-child(3):focus-within {
    background: #2A2A2A;
}
.mystyle .newmenu:nth-child(2):hover img,
.mystyle .newmenu:nth-child(2):focus-within img,
.mystyle .newmenu:nth-child(2):hover svg,
.mystyle .newmenu:nth-child(2):focus-within svg,
.mystyle .newmenu:nth-child(3):hover img,
.mystyle .newmenu:nth-child(3):focus-within img,
.mystyle .newmenu:nth-child(3):hover svg,
.mystyle .newmenu:nth-child(3):focus-within svg {
    /* Beim Hover: wieder Messing-Gold (gleicher Effekt wie dunkle Kacheln) */
    filter: brightness(0) saturate(100%) invert(54%) sepia(57%) saturate(670%) hue-rotate(11deg) brightness(95%) contrast(91%);
}
.mystyle .newmenu:nth-child(2):hover h2,
.mystyle .newmenu:nth-child(2):focus-within h2,
.mystyle .newmenu:nth-child(3):hover h2,
.mystyle .newmenu:nth-child(3):focus-within h2 {
    color: #fff;
}

/* ── Home Kacheln: ab 800px übereinander ─────────────────────────────────── */
@media (max-width: 800px) {
    .mystyle .row {
        flex-direction: none;
        display: block !important;
        width: 100% !important;
    }
    .mystyle .row .slot {
        width: 100% !important;
        display: block !important;
        max-width: none !important;
    }
    .mystyle .row .slot:nth-of-type(2) {
        margin-left: 0 !important;
    }
    .mystyle .row .slot:first-of-type > .newmenu-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        grid-template-rows: repeat(2, calc(50vw - 4px)) !important;
        height: 100% !important;
        gap: 8px !important;
    }
    .newmenu h2 {
        font-size: 18px !important;
    }
}

.mystyle .row .slot:first-of-type > .newmenu-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, 1fr);
    gap: 10px;
    height: 100%;
}

.newmenu {
    width: auto;
    position: relative;
    height: auto;
    transition: transform 0.25s ease, background-color 0.25s ease, box-shadow 0.25s ease;
    cursor: pointer;
}

.newmenu::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(184,134,11,0) 0%, rgba(184,134,11,0) 100%);
    transition: background 0.3s ease, opacity 0.3s ease;
    pointer-events: none;
    z-index: 1;
    opacity: 0;
}

/* Hover: Anthrazit hellt sich auf + dezenter Messing-Glow von innen */
.newmenu:hover::after,
.newmenu:focus-within::after {
    background: radial-gradient(circle at center,
                rgba(184,134,11,0.18) 0%,
                rgba(184,134,11,0.06) 50%,
                rgba(184,134,11,0) 100%);
    opacity: 1;
}

.newmenu:hover,
.newmenu:focus-within {
    transform: scale(1.03);
    outline: none;
    box-shadow: inset 0 0 0 1px rgba(184,134,11,0.4);
}

/* Icon färbt sich beim Hover dezent in Messing-Gold */
.newmenu img,
.newmenu svg {
    transition: filter 0.3s ease, opacity 0.3s ease;
}
.newmenu:hover img,
.newmenu:focus-within img,
.newmenu:hover svg,
.newmenu:focus-within svg {
    /* Weißes Icon → Messing #B8860B (gleicher Ton wie Live-Uhr & Label) */
    filter: brightness(0) saturate(100%) invert(54%) sepia(57%) saturate(670%) hue-rotate(11deg) brightness(95%) contrast(91%);
}

.newmenu > a:focus {
    outline: none;
}

.newmenu:focus-within {
    outline: none;
}

.newmenu img,
.service-icon img {
    position: absolute !important;
    top: 25%;
    left: 50%;
    transform: translateX(-50%);
    max-height: 35%;
    width: auto;
    z-index: 2;
}

.newmenu h2,
.service-icon .service-title {
    position: absolute !important;
    bottom: 30px;
    left: 50%;
    text-transform: uppercase;
    color: #fff;
    transform: translateX(-50%);
    letter-spacing: 3px;
    font-family: 'standard', sans-serif;
    font-weight: 600;
    z-index: 2;
    white-space: nowrap;
}

.newmenu h2 {
    font-size: 20px !important;
}

/* Service-Tiles sind in 8er-Reihe deutlich kleiner — Title entsprechend kleiner */
.service-icon .service-title {
    font-size: 12px !important;
    bottom: 22px;
    letter-spacing: 2px;
}

@media (max-width: 1400px) {
    /* Bei 4er-Grid wieder größere Service-Titles */
    .service-icon .service-title {
        font-size: 16px !important;
        bottom: 30px;
        letter-spacing: 3px;
    }
}

@media (max-width: 600px) {
    .newmenu h2 {
        font-size: 14px !important;
    }
    .service-icon .service-title {
        font-size: 14px !important;
    }
}


/* ==========================================================================
   4. Slider (Swiper)
   ========================================================================== */
.mySwiper {
    overflow: hidden;
    isolation: isolate; /* eigener Stacking-Context, sonst clippt border-radius nicht visuell über die Slide-Layer */
}

.mystyle .swiper-slide:after,
.mystyle2 .swiper-slide:after {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    content: "";
    z-index: 3;
    display: block;
    background: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0.9) 100%);
}

/* GPU-Compositing deaktivieren damit background-attachment:fixed auf .mystyle funktioniert */
.mystyle .swiper-backface-hidden,
.mystyle .swiper-backface-hidden .swiper-slide {
    backface-visibility: visible !important;
    -webkit-backface-visibility: visible !important;
}

.mystyle .slidetext {
    top: auto;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 5;
    height: auto;
    padding: 80px 40px 80px;
    /* Dunkler Gradient von unten für Lesbarkeit auf jedem Foto */
    background: linear-gradient(to top,
        rgba(0, 0, 0, 0.85) 0%,
        rgba(0, 0, 0, 0.65) 40%,
        rgba(0, 0, 0, 0.25) 75%,
        rgba(0, 0, 0, 0) 100%
    );
    pointer-events: none;
}

.slidetext .textcontent {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.slidetext h2 {
    color: #fff !important;
    font-family: 'medium', sans-serif !important;
    font-size: 42px !important;
    line-height: 1.1 !important;
    letter-spacing: 2px;
    margin: 0 !important;
    text-transform: uppercase;
}

.slidetext p {
    color: #fff;
    font-family: 'medium', sans-serif;
    font-size: 13px;
    line-height: 1.3;
    letter-spacing: 3px;
    margin: 0;
    text-transform: uppercase;
    /* Akzent-Linie links als visuelle Brücke zur Banderole oben */
    padding-left: 14px;
    position: relative;
}

.slidetext p::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 8px;
    height: 1px;
    background: #B8860B;
}

.slidetext *{
    color: #fff;
}
#pause-scontainer2488_2 {
    background: transparent !important;
}

#pause-scontainer2488_2 i {
    color: #fff !important;
}
@media (max-width: 800px) {
    .mystyle .slidetext {
        padding: 20px 20px 60px;
    }
}


/* ==========================================================================
   5. Video & Footer
   ========================================================================== */

video,
.container_video {
    margin-bottom: -2px;
}

.site-footer:before {
    content: '';
    position: absolute;
    left: 20px;
    top: 0;
    width: calc(100% - 40px);
    height: 1px;
    background: rgba(255,255,255,0.3);
}


/* ==========================================================================
   6. Google Maps
   ========================================================================== */

#googleoverlay:focus .overlaywindow,
#googleoverlay:hover .overlaywindow {
    color: rgb(197, 155, 39);
}


/* ==========================================================================
   7. Öffnungszeiten (.openclass — aktive MZ-Gold-Version)
   Layout: Liste links (gestapelt), Trennlinie, Status + Live-Uhr rechts.
   Markup kommt aus dem Master (_open.php). Die frühere RC1-Orange-Variante
   wurde entfernt — siehe ###PRUEFEN### am Dateiende für die Reste.
   ========================================================================== */

.openclass {
    position: relative;
    padding: 30px 50px 50px;
    color: #FFF;
}

.openclass h2 {
    font-family: 'medium', sans-serif;
    font-size: 20px;
    text-transform: uppercase;
    text-align: center;
    margin: 0 0 20px;
    color: #FFF;
}

.open-sonder .open-titel {
    text-transform: uppercase;
    color: #fff;
}

.open-layout {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 28px;
}

/* 3-Spalten-Grid (Titel | Tag | Zeit), Entries fließen via display:contents direkt rein */
.open-left {
    flex: 0 0 auto;
    font-size: 14px;
    line-height: 1.5;
    display: grid;
    grid-template-columns: auto auto auto;
    column-gap: 16px;
    row-gap: 4px;
    align-items: baseline;
}

.open-entry {
    display: contents;
}

.open-entry .open-titel {
    font-family: 'medium', sans-serif;
    white-space: nowrap;
}

.open-entry .day {
    white-space: nowrap;
}

.open-entry .time {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* Sonderzeiten */
.open-sonder-row {
    display: contents;
}
.open-sonder-row .time {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.open-divider {
    flex: 0 0 1px;
    align-self: stretch;
    background: linear-gradient(180deg,
        rgba(138, 102, 35, 0) 0%,
        #C59B27 50%,
        rgba(138, 102, 35, 0) 100%
    );
}

.open-right {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    text-align: right;
    padding-left: 8px;
}

.opento {
    font-family: 'medium', sans-serif;
    font-size: 14px;
    line-height: 1.2;
    color: #B8860B;
    margin: 0 auto 4px auto;
    text-transform: uppercase;
    letter-spacing: 1.5px;
}

.openstd {
    font-family: 'medium', sans-serif;
    font-size: 72px;
    line-height: 1;
    color: #B8860B;
    font-variant-numeric: tabular-nums;
}

@media (max-width: 600px) {
    .openclass { padding: 20px 20px 30px; }
    .open-layout { flex-direction: column; gap: 16px; }
    .open-divider {
        flex: 0 0 1px;
        height: 1px;
        background: linear-gradient(90deg,
            rgba(138, 102, 35, 0) 0%,
            #C59B27 50%,
            rgba(138, 102, 35, 0) 100%
        );
    }
    .open-right { align-items: flex-start; text-align: left; padding-left: 0; }
    .openstd { font-size: 56px; }
}

/* Öffnungszeiten-Sonderseite: Texte schwarz.
   Nur auf der Sonderpage (main.oeffnungszeiten), NICHT auf der Home — dort
   liegt der gleiche .openclass-Block auf dunklem Grund, da bleibt er weiß. */
.oeffnungszeiten .open-titel,
.oeffnungszeiten .day,
.oeffnungszeiten .time {
    color: #1A1612;
}

.oeffnungszeiten .openclass h2 {
    color: #1A1612;
}

.oeffnungszeiten .opento,
.oeffnungszeiten .openstd {
    color: #000;
}


/* ==========================================================================
   8. Service Icons & Service-Detail-Panel
   ========================================================================== */

.service-icon img {
    max-height: 40%;
    z-index: 2;
}

.service-button {
    background: transparent;
    border: none;
}

.myservice .row,
.myservice .row .slot:first-of-type {
    min-height: auto;
    height: auto;
}

.myservice .row .slot:first-of-type {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    grid-template-rows: 1fr;
    gap: 10px;
    height: 100%;
}

.myservice .row .slot:first-of-type .service-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    aspect-ratio: 1;
}

@media (max-width: 1400px) {
    .myservice .row .slot:first-of-type {
        grid-template-columns: repeat(4, 1fr);
        grid-template-rows: repeat(2, 1fr);
    }
    .myservice .row .slot:first-of-type .service-icon {
        aspect-ratio: 1;
    }
}

@media (max-width: 600px) {
    .myservice .row,
    .myservice .row .slot:first-of-type {
        min-height: auto;
    }
    .myservice .row .slot:first-of-type {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: repeat(4, 1fr);
    }
}

section.myservice {
    min-height: auto;
}

.myservice .row .slot:first-of-type .trenner {
    display: none;
}

/* ── Service-Detail Panel (öffnet sich beim Klick auf Service-Tile ohne URL) ──
   Sitzt absolut über dem 8er-Tile-Grid, passt zum weißen Service-Layer */
.myservice .row .slot:first-of-type .service-detail {
    position: absolute;
    inset: 0;
    z-index: 20;
    background: #fff;
    border: 1px solid #e8e8e8;
    box-sizing: border-box;
    padding: 60px 80px 60px;
    overflow-y: auto;
    display: none;
}

.myservice .row .slot:first-of-type .service-detail:not([hidden]) {
    display: block;
}

.myservice .row .slot:nth-of-type(2) .service-detail:not([hidden]) {
    display: block;
}

/* Headline im Panel — schwarz, Magazinkapitel-Style mit Gold-Akzent */
.service-detail > h2 {
    font-family: 'headlines', sans-serif !important;
    font-size: 32px !important;
    line-height: 1.1 !important;
    letter-spacing: 4px !important;
    color: #000 !important;
    text-transform: uppercase;
    margin: 0 0 28px !important;
    padding-bottom: 16px;
    padding-right: 60px; /* Platz für Close-Button rechts */
    position: relative;
    border-bottom: none;
}

.service-detail > h2::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 60px;
    height: 1px;
    background: linear-gradient(90deg,
        #8A6623 0%,
        #C59B27 50%,
        #8A6623 100%
    );
}

/* Schließen-Button — Messing-Outline, sitzt rechts oben */
.service-close {
    position: absolute;
    top: 24px;
    right: 24px;
    background: transparent !important;
    border: 1px solid #B8860B !important;
    color: #B8860B !important;
    font-size: 16px;
    line-height: 1;
    width: 40px;
    height: 40px;
    padding: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
    border-radius: 0;
    z-index: 25;
}

.service-close i {
    font-size: 14px;
    line-height: 1;
}

.service-close:hover,
.service-close:focus-visible {
    background: #B8860B !important;
    color: #fff !important;
    outline: none;
    transform: scale(1.05);
}

/* Content-Bereich: lesbare Schriftgröße, gemütliches Reading-Layout */
.service-detail__content {
    margin: 0 auto;
    max-width: 760px;
    font-family: 'standard', sans-serif;
    font-size: 15px;
    line-height: 1.6;
    color: #2a2a2a;
}

.service-detail__content p {
    margin: 0 0 14px;
}

.service-detail__content strong {
    color: #000;
    font-family: 'medium', sans-serif;
    font-weight: normal;
    letter-spacing: 0.5px;
}

.service-detail__content a {
    color: #B8860B;
    text-decoration: none;
    border-bottom: 1px solid rgba(184,134,11,0.3);
    transition: border-color 0.2s ease;
}

.service-detail__content a:hover {
    border-bottom-color: #B8860B;
}

@media (max-width: 800px) {
    .myservice .row .slot:first-of-type .service-detail {
        padding: 40px 30px;
    }
    .service-detail > h2 {
        font-size: 24px !important;
        letter-spacing: 3px !important;
        padding-right: 50px;
    }
    .service-close {
        top: 16px;
        right: 16px;
        width: 36px;
        height: 36px;
    }
}

.service-icon {
    position: relative;
    transition: transform 0.25s ease, border-color 0.25s ease;
    cursor: pointer;
}

/* Icon standardmäßig in Messing-Gold (#B8860B) */
.service-icon img {
    filter: brightness(0) saturate(100%) invert(54%) sepia(57%) saturate(670%) hue-rotate(11deg) brightness(95%) contrast(91%);
    transition: filter 0.3s ease;
}

/* Hover: Icon wird schwarz */
.service-icon:hover img,
.service-icon:focus-within img {
    filter: invert(1);
}

.service-icon:hover,
.service-icon:focus-within {
    transform: scale(1.03);
    outline: none;
    border-color: #000 !important;
}

/* ── Service-Tiles: Schachbrett-Pattern ────────────────────────────────────
   Wiederkehrendes MZ-Vokabular wie auf Home & Shops.

   Die Spaltenzahl variiert je Breakpoint (8 / 4 / 2), daher braucht jedes
   Layout seine eigene Modulo-Regel für echtes Schachbrett:

   - Default (8 Spalten × 1 Zeile):
     `:nth-child(even)` dunkel → Wechselrhythmus 1-2-3-4-5-6-7-8

   - @1400px (4 Spalten × 2 Zeilen):
     `:nth-child(4n+2), :nth-child(4n+3)` dunkel → echtes 2D-Schachbrett
       [hell ][dunkel][dunkel][hell ]
       [dunkel][hell ][hell ][dunkel]

   - @600px (2 Spalten × 4 Zeilen):
     Wieder `:nth-child(4n+2), :nth-child(4n+3)` dunkel:
       [hell  ][dunkel]
       [dunkel][hell  ]
       [hell  ][dunkel]
       [dunkel][hell  ]

   Hover-Flip auf allen Breakpoints identisch.

   WICHTIG: Icon-Filter auf dunklen Tiles MUSS mit brightness(0) starten,
   damit die goldenen Original-SVGs erst entsättigt werden, bevor invert(1)
   sie zu echtem Weiß macht. Reines invert(1) auf Gold ergäbe Blau-Grau.
   ─────────────────────────────────────────────────────────────────────── */

/* Default: alle Tiles hell mit goldenem Icon */
.myservice .row .slot:first-of-type .service-icon {
    background: #fff;
    border: 1px solid #e8e8e8;
    box-sizing: border-box;
}

/* Default: gerade Positionen (Desktop 8er-Reihe) dunkel */
.myservice .row .slot:first-of-type .service-icon:nth-child(even) {
    background: #2A2A2A;
    border-color: #2A2A2A;
}
.myservice .row .slot:first-of-type .service-icon:nth-child(even) img {
    /* Goldenes Original-SVG → erst schwarz, dann zu Weiß invertieren */
    filter: brightness(0) invert(1);
}
.myservice .row .slot:first-of-type .service-icon:nth-child(even) .service-title {
    color: #fff !important;
}

/* Tablet: 4 Spalten / 2 Zeilen → Schachbrett:
   Dunkel sind Pos 2, 4, 5, 7. Modulo 8: 8n+2, 8n+4, 8n+5, 8n+7.
       [hell  ][dunkel][hell  ][dunkel]
       [dunkel][hell  ][dunkel][hell  ]
   Annahme: 8 Tiles. Bei mehr Tiles würde die Logik in Sets zu 8 weiterlaufen.
   WICHTIG: Range nur Tablet (601–1400px), NICHT auch Mobile — sonst kollidiert
   diese Regel mit der Mobile-2-Spalten-Logik unten. */
@media (min-width: 601px) and (max-width: 1400px) {
    /* Erstmal alle Tiles zurück auf hell setzen ... */
    .myservice .row .slot:first-of-type .service-icon:nth-child(even) {
        background: #fff;
        border-color: #e8e8e8;
    }
    .myservice .row .slot:first-of-type .service-icon:nth-child(even) img {
        filter: brightness(0) saturate(100%) invert(54%) sepia(57%) saturate(670%) hue-rotate(11deg) brightness(95%) contrast(91%);
    }
    .myservice .row .slot:first-of-type .service-icon:nth-child(even) .service-title {
        color: #000 !important;
    }
    /* ... dann Pos 2, 4, 5, 7 dunkel = echtes 2D-Schachbrett bei 4 Spalten */
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+2),
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+4),
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+5),
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+7) {
        background: #000;
        border-color: #333;
    }
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+2) img,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+4) img,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+5) img,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+7) img {
        filter: brightness(0) invert(1);
    }
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+2) .service-title,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+4) .service-title,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+5) .service-title,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+7) .service-title {
        color: #fff !important;
    }
}

/* @600px: 2 Spalten / 4 Zeilen → gleiche 4n+2 / 4n+3 Logik */
@media (max-width: 600px) {
    /* Tiles wieder zurück auf hell */
    .myservice .row .slot:first-of-type .service-icon:nth-child(even) {
        background: #fff;
        border-color: #e8e8e8;
    }
    .myservice .row .slot:first-of-type .service-icon:nth-child(even) img {
        filter: brightness(0) saturate(100%) invert(54%) sepia(57%) saturate(670%) hue-rotate(11deg) brightness(95%) contrast(91%);
    }
    .myservice .row .slot:first-of-type .service-icon:nth-child(even) .service-title {
        color: #000 !important;
    }
    /* 4n+2 und 4n+3 dunkel */
    .myservice .row .slot:first-of-type .service-icon:nth-child(4n+2),
    .myservice .row .slot:first-of-type .service-icon:nth-child(4n+3) {
        background: #2A2A2A;
        border-color: #2A2A2A;
    }
    .myservice .row .slot:first-of-type .service-icon:nth-child(4n+2) img,
    .myservice .row .slot:first-of-type .service-icon:nth-child(4n+3) img {
        filter: brightness(0) invert(1);
    }
    .myservice .row .slot:first-of-type .service-icon:nth-child(4n+2) .service-title,
    .myservice .row .slot:first-of-type .service-icon:nth-child(4n+3) .service-title {
        color: #fff !important;
    }
}

/* ── Hover-Flip für dunkle Tiles ──────────────────────────────────────────
   Egal welcher Breakpoint und welche Modulo-Regel: jede aktuell dunkle
   Tile wird beim Hover hell, Icon zurück zu Messing.
   Wir hängen den Hover-Effekt an jeden Selektor, der dunkel macht. */

.myservice .row .slot:first-of-type .service-icon:nth-child(even):hover,
.myservice .row .slot:first-of-type .service-icon:nth-child(even):focus-within {
    background: #fff;
    border-color: #e8e8e8;
}
.myservice .row .slot:first-of-type .service-icon:nth-child(even):hover img,
.myservice .row .slot:first-of-type .service-icon:nth-child(even):focus-within img {
    filter: brightness(0) saturate(100%) invert(54%) sepia(57%) saturate(670%) hue-rotate(11deg) brightness(95%) contrast(91%);
}
.myservice .row .slot:first-of-type .service-icon:nth-child(even):hover .service-title,
.myservice .row .slot:first-of-type .service-icon:nth-child(even):focus-within .service-title {
    color: #000 !important;
}

@media (min-width: 601px) and (max-width: 1400px) {
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+2):hover,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+2):focus-within,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+4):hover,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+4):focus-within,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+5):hover,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+5):focus-within,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+7):hover,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+7):focus-within {
        background: #fff;
        border-color: #e8e8e8;
    }
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+2):hover img,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+2):focus-within img,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+4):hover img,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+4):focus-within img,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+5):hover img,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+5):focus-within img,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+7):hover img,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+7):focus-within img {
        filter: brightness(0) saturate(100%) invert(54%) sepia(57%) saturate(670%) hue-rotate(11deg) brightness(95%) contrast(91%);
    }
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+2):hover .service-title,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+2):focus-within .service-title,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+4):hover .service-title,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+4):focus-within .service-title,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+5):hover .service-title,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+5):focus-within .service-title,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+7):hover .service-title,
    .myservice .row .slot:first-of-type .service-icon:nth-child(8n+7):focus-within .service-title {
        color: #000 !important;
    }
}

/* Service-Tile Title (Default) */
.service-icon .service-title {
    color: #000 !important;
}


/* ==========================================================================
   9. Kontaktformular
   ========================================================================== */

.kontakt-feld {
    background: transparent;
    border: 1px solid #000;
}

.kontakt-feld::placeholder {
    color: rgba(0,0,0,0.35);
}

.kontakt-feld:hover::placeholder,
.kontakt-feld:focus::placeholder {
    color: rgba(255,255,255,0.5);
}

.kontakt-feld:hover,
.kontakt-feld:focus {
    background: #000;
    color: #fff;
    outline: none;
    box-shadow: none;
}

textarea {
    font-family: 'standard', sans-serif;
}

.kontakt-button {
    display: table;
    text-transform: uppercase;
    font-size: 16px;
    background: transparent;
    border: 1px solid #000;
    color: #000;
    padding: 10px 20px;
    transition: all 0.2s ease;
    width: auto;
    margin: 30px auto;
}

.kontakt-button:hover,
.kontakt-button:focus-visible {
    background: #000;
    color: #fff;
    outline: none;
}

/* Intro-/SEO-Text über dem Dauerparkplatz-Formular (kontaktformular_headline) */
.parkintro-title {
    font-family: 'medium', sans-serif;
    font-size: 26px;
    line-height: 1.15;
    color: #1A1612;
    margin: 0 0 16px;
}

.parkintro {
    text-align: left;
    font-family: 'standard', sans-serif;
    font-size: 15px;
    line-height: 1.55;
    color: #1A1612;
    margin: 0 0 14px;
}

.parkintro-hint {
    font-family: 'standard', sans-serif;
    font-size: 13px;
    line-height: 1.5;
    color: rgba(26,22,18,0.7);
    margin: 4px 0 0;
}

@media (max-width: 600px) {
    .parkintro-title { font-size: 21px; }
    .parkintro       { font-size: 14px; }
}

/* Befund der Fahrzeug-Vorprüfung */
.park-befund {
    margin: 10px 0 6px;
    padding: 12px 14px;
    font-family: 'standard', sans-serif;
    font-size: 15px;
    line-height: 1.5;
    color: #1A1612;
    background: rgba(26,22,18,0.06);
    border-left: 3px solid #1A1612;
}


/* ==========================================================================
   10. Shops — Übersicht & Detailansicht
   ========================================================================== */

/* ── 10a. Slogan-Header & Gold-Schiene ──────────────────────────────────────
   Pattern für ALLE Sektions-Übersichten (Shops, Gastronomie, Gesundheit ...):
   - Marken-Klammer "ALLET DA, ALLET ..." bleibt Gold-Gradient
   - Sektions-Wort im <span> wird Bourbon-Schwarz (Material-Bruch =
     "jetzt kommt der Inhalt, nicht mehr die Marke")
   - Filter-Buttons sitzen in einer dünnen Gold-Schiene zwischen Slogan und
     Inhalts-Block — wie eine Bilderleiste, die die beiden Bereiche trennt
   ─────────────────────────────────────────────────────────────────────────── */

/* Sektions-Wort: Bourbon-Schwarz statt Gold-Gradient.
   Span liegt im .hero-slogan, der per background-clip:text transparent
   gerendert wird — wir setzen das gezielt zurück. */
.hero-slogan span, .hero-slogan h1 {
    background: none;
    -webkit-text-fill-color: #1A1612;
    color: #1A1612;
}

/* Gold-Schiene: schmaler Verlauf-Streifen, in dem die Filter-Buttons sitzen.
   Geltungsbereich: jede .shop-filter auf einer Sektions-Übersicht (Shops,
   Gastronomie, Gesundheit ...). Sektions-Wort oben verankert die Schiene
   visuell. */
.shop-filter {
    position: relative;
    padding: 2px 16px;
    margin: 24px -16px 32px;
    gap: 0;
    align-items: stretch;
    background: linear-gradient(90deg,
        rgba(255, 255, 255, 0) 0%,
        rgba(245, 230, 180, 0.22) 50%,
        rgba(255, 255, 255, 0) 100%);
}

/* Buttons spannen sich zwischen die beiden Goldlinien mit
   ein wenig Luft (margin) damit sie nicht reingeklatscht wirken. */
.shop-filter > * {
    margin-top: 2px;
    margin-bottom: 2px;
}

/* Obere Gold-Linie (Trennung zum Slogan oben) */
.shop-filter::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg,
        rgba(138, 102, 35, 0) 0%,
        rgb(138, 102, 35) 15%,
        rgb(230, 202, 101) 50%,
        rgb(138, 102, 35) 85%,
        rgba(138, 102, 35, 0) 100%);
}

/* Untere Gold-Linie (Trennung zum Inhalts-Block unten) */
.shop-filter::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg,
        rgba(138, 102, 35, 0) 0%,
        rgb(138, 102, 35) 15%,
        rgb(230, 202, 101) 50%,
        rgb(138, 102, 35) 85%,
        rgba(138, 102, 35, 0) 100%);
}

/* Filter-Buttons in der Gold-Schiene: flache Labels OHNE Border und
   ohne Radius. Sie spannen sich zwischen die beiden Goldlinien und
   bilden mit ihnen zusammen die Schiene als Einheit. */
.shop-filter .button,
.shop-filter button {
    background: transparent;
    border: none;
    border-radius: 0;
    color: #1A1612;
    font-weight: 500;
    padding: 10px 20px;
    line-height: 1.4;
}

.shop-filter .button:hover,
.shop-filter button:hover,
.shop-filter .button:focus-visible,
.shop-filter button:focus-visible {
    background: #1A1612;
    color: #fff;
    outline: none;
}

.shop-filter .button.is-checked,
.shop-filter button.is-checked {
    background: rgb(197, 155, 39);
    color: #fff;
    font-weight: 700;
}

/* Mobile: Schiene etwas schmaler, Buttons kompakter */
@media (max-width: 600px) {
    .shop-filter {
        padding: 2px 8px;
        margin: 20px -8px 24px;
    }
    .shop-filter .button,
    .shop-filter button {
        padding: 6px 10px;
        font-size: 12px;
    }
}

/* ── 10b. Logo-Grid shop_icon — 5 Spalten Desktop ────────────────────────── */
.shop_icon {
    width: calc(20% - 4px);
    margin: 2px;
    background: #000;
}

@media (max-width: 1200px) {
    .shop_icon { width: calc(25% - 4px); }
}

@media (max-width: 1024px) {
    .shop_icon { width: calc(33.333% - 4px); }
}

@media (max-width: 600px) {
    .shop_icon { width: calc(50% - 4px); }
}

.storemieter {
    position: relative;
    align-items: center;
    float: left;
    justify-content: center;
    height: 200px;
    width: 20%;
    padding: 20px;
}

.storemieter img,
.storemieter svg {
    position: absolute !important;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    max-height: 100px;
    width: 80%;
    height: auto;
}

.storemieter img {
    object-fit: contain;
}

.shop_icon:hover .mieterlogo,
.shop_icon:focus-within .mieterlogo {
    filter: brightness(0) saturate(100%) invert(54%) sepia(57%) saturate(670%) hue-rotate(11deg) brightness(95%) contrast(91%);
}

.shop_icon .mieterlogo {
    width: 50% !important;
    height: auto;
    max-width: 50% !important;
    max-height: 50% !important;
    filter: invert(0);
    background: transparent !important;
}

/* ── 10c. Shop-Grid (Schachbrettmuster, MZ-spezifisch) ────────────────────
   Layout-Basics (Grid, Spalten, Aspect-Ratio) kommen aus frontend.css.
   Hier nur die MZ-spezifische Schwarz/Weiß-Inszenierung.

   Schachbrettmuster:
     - .shop-bw-odd  → schwarze Kachel mit weißem Logo
     - .shop-bw-even → weiße Kachel mit schwarzem Logo (Logo-invert)
     - Marker werden via JS bei jedem Filter-Wechsel auf die SICHTBAREN
       Items neu vergeben → Pattern bleibt nach Filter intakt
     - JS-Hook: Event "shop-grid:filtered" wird in client.basic.js gefeuert,
       MZ-Listener vergibt die Marker (siehe unten)

   Hover-Flip:
     - schwarze Kachel beim Hover → weiß mit schwarzem Logo & Pfeil
     - weiße Kachel beim Hover → schwarz mit weißem Logo & Pfeil
     - kraftvoller Magazin-Wechsel, sehr klare Klick-Affordance
   ───────────────────────────────────────────────────────────────────────── */

.shop-grid .shop_icon {
    transition: background 0.25s ease;
}

/* SCHWARZE Kachel (ungerade Position, Marker shop-bw-odd) */
.shop-grid .shop_icon.shop-bw-odd {
    background: #2A2A2A;
}
.shop-grid .shop_icon.shop-bw-odd .mieterlogo {
    filter: invert(0);  /* Logo bleibt weiß wie in der SVG */
}
.shop-grid .shop_icon.shop-bw-odd .shop-hover-overlay {
    background: rgba(255, 255, 255, 0.95);
}
.shop-grid .shop_icon.shop-bw-odd .shop-hover-overlay i {
    color: #2A2A2A;
}

/* WEISSE Kachel (gerade Position, Marker shop-bw-even) */
.shop-grid .shop_icon.shop-bw-even {
    background: #FAF8F2;
}
.shop-grid .shop_icon.shop-bw-even .mieterlogo {
    filter: invert(1);  /* Weißes SVG → schwarz dargestellt */
}
.shop-grid .shop_icon.shop-bw-even .shop-hover-overlay {
    background: rgba(42, 42, 42, 0.95);
}
.shop-grid .shop_icon.shop-bw-even .shop-hover-overlay i {
    color: #FAF8F2;
}

/* Schwarze Kachel beim Hover → Weiß */
.shop-grid .shop_icon.shop-bw-odd:hover,
.shop-grid .shop_icon.shop-bw-odd:focus-within {
    background: #FAF8F2;
}
.shop-grid .shop_icon.shop-bw-odd:hover .mieterlogo,
.shop-grid .shop_icon.shop-bw-odd:focus-within .mieterlogo {
    filter: invert(1);
}

/* Weiße Kachel beim Hover → Schwarz */
.shop-grid .shop_icon.shop-bw-even:hover,
.shop-grid .shop_icon.shop-bw-even:focus-within {
    background: #2A2A2A;
}
.shop-grid .shop_icon.shop-bw-even:hover .mieterlogo,
.shop-grid .shop_icon.shop-bw-even:focus-within .mieterlogo {
    filter: invert(0);
}

.shop_icon a:before {
    display: none;
}

.shop_icon h2 {
    opacity: 0;
}

.shop-hover-overlay {
    background: rgba(255,255,255,1);
}

.shop-hover-overlay i {
    color: #000;
    margin-top: calc(100% - 60px);
    font-size: 36px;
}

/* ── 10d. Shop-Übersicht Isotope-Filter ──────────────────────────────────── */
.shops-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 16px 0 24px;
}

.shops-filter .button {
    padding: 6px 18px;
    border: 1px solid rgba(0,0,0,0.9);
    background: transparent;
    color: #000;
    border-radius: 20px;
    cursor: pointer;
    font-size: 14px;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.shops-filter .button:hover,
.shops-filter .button:focus-visible {
    background: #000;
    color: #fff;
    border-color: #000;
    outline: none;
}

.shops-filter .button.is-checked {
    background: #000;
    border-color: #000;
    color: #fff;
    font-weight: 600;
}

/* ── 10e. Shop-Karte ────────────────────────────────────────────────────────
   MZ-Stil: kantig statt rund, Anthrazit statt fast-schwarz,
   Telefon-Zeile zarter. */
.shop-card {
    text-decoration: none;
    color: inherit;
    background: #2A2A2A;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 0;
    padding: 14px 16px;
    transition: background 0.2s ease, border-color 0.2s ease;
}

.shop-card:hover,
.shop-card:focus-visible {
    background: #FAF8F2;
    border-color: rgba(0, 0, 0, 0.15);
    outline: none;
    box-shadow: none;
    transform: none;
}

.shop-card:hover .shop-card__kat,
.shop-card:focus-visible .shop-card__kat,
.shop-card:hover .shop-card__name,
.shop-card:focus-visible .shop-card__name,
.shop-card:hover .shop-card__tel,
.shop-card:focus-visible .shop-card__tel {
    color: var(--kat-color, #000);
}

.shop-card--umbau {
    opacity: 0.5;
    cursor: default;
}

/* Kategorie-Tags: kantig statt gerundet */
.shop-card__kat {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 0;
    letter-spacing: 1px;
}

.shop-card__name {
    font-family: 'medium', sans-serif;
    color: #fff;
}

/* Telefon-Zeile: zarter (sekundäre Info) */
.shop-card__tel {
    color: rgba(255, 255, 255, 0.7);
    font-size: 13px;
}
.shop-card__tel i {
    font-size: 12px;
    /* Gold — passt zur MZ-Sprache */
    color: rgb(197, 155, 39);
}

/* ── 10f. Filter-Buttons (Shop-Übersicht unter Mapplic-Karte) ──────────────
   Kantig statt Pille — passt zur MZ-Magazin-Sprache. Gold-Akzent für active. */
.button-group .button,
.button-group button {
    background: transparent;
    border: 1px solid rgba(0, 0, 0, 0.6);
    border-radius: 0;
    font-size: 14px;
    color: #1A1612;
    padding: 8px 16px;
    line-height: 1.3;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.button-group .button:hover,
.button-group button:hover,
.button-group .button:focus-visible,
.button-group button:focus-visible {
    background: #2A2A2A;
    border-color: #2A2A2A;
    color: #fff;
    outline: none;
}

.button-group .button.is-checked,
.button-group button.is-checked {
    background: rgb(197, 155, 39);
    border-color: rgb(197, 155, 39);
    color: #fff;
}

/* ── 10g. Zurück-Button (Shop- & Event-Detail) ───────────────────────────── */
.sd-back,
.event-back {
    background: rgba(0,0,0,1);
    color: #fff;
    text-decoration: none;
    transition: background 0.2s ease;
}

.sd-back i,
.event-back i {
    color: #fff;
}

.sd-back:hover i,
.sd-back:focus-visible i,
.event-back:hover i,
.event-back:focus-visible i {
    color: #000;
}

.sd-back:hover,
.sd-back:focus-visible,
.event-back:hover,
.event-back:focus-visible {
    background: rgba(255,255,255,1);
    outline: none;
}

/* ── 10h. Shop-Detail Panel ──────────────────────────────────────────────── */
.sd-panel {
    background: rgba(0,0,0,0.9);
}

.sd-logo {
    max-width: 180px;
    max-height: 180px;
    width: 180px;
    text-align: center;
    height: 180px;
    object-fit: contain;
    background: transparent;
    border-radius: 5px;
    transition: all 0.3s ease;
    padding: 0;
    z-index: 3;
    display: flex;
    margin: 0 auto 20px;
    flex-shrink: 0;
}
.sd-logo img {
    filter: invert(1);
    margin: 0 auto;
}
.sd-contacts {
    display: flex;
    flex-direction: row;
    gap: clamp(5px, 0.3vw, 6px);
    width: auto;
    margin: 0 auto;
}

.sd-contact-item a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    color: rgba(255,255,255,0.92);
    text-decoration: none;
    border: 1px solid rgba(255,255,255,0.5);
    border-radius: 50%;
    transition: all 0.2s ease;
}

.sd-contact-item a:hover,
.sd-contact-item a:focus-visible {
    border-color: rgba(255,255,255,1);
    background: rgba(255,255,255,0.1);
    outline: none;
}

.sd-contact-item a:hover i,
.sd-contact-item a:focus-visible i {
    color: #fff;
}

.sd-contact-item a span {
    display: none;
}

.sd-btn-plan {
    border: 1px solid rgba(255,255,255,0.5);
    color: #fff;
}

.sd-btn-plan span { color: #fff; }

.sd-btn-plan:hover,
.sd-btn-plan:focus-visible {
    border-color: rgba(255,255,255,1);
}

.sd-btn-plan i {
    font-size: 13px;
    color: #fff;
}

.sd-body-left h1 {
    margin: 0;
    font-family: 'headlines', sans-serif;
    font-weight: 700;
    font-size: clamp(34px, 3.4vw, 56px);
    line-height: 1;
    letter-spacing: -0.5px;
    color: #000;
    text-transform: uppercase;
    /* Banderole: Gold-Linie rechts vom Text, wie ein Echo der Hero-Banderole */
    display: flex;
    align-items: center;
    gap: 18px;
    white-space: nowrap;
}

.sd-body-left h1::after {
    content: '';
    flex: 1 1 auto;
    height: 1px;
    background: linear-gradient(90deg,
        #8A6623 0%,
        #C59B27 50%,
        rgba(138, 102, 35, 0) 100%);
}

.sd-body-left h2 {
    margin: 12px 0 24px;
    font-family: 'medium', sans-serif;
    font-weight: 400;
    font-size: clamp(13px, 1.1vw, 16px);
    letter-spacing: 3px;
    text-transform: uppercase;
    color: #1A1612;
    opacity: 0.85;
}

main .shopeintrag {
    min-height: calc(100vh - 280px) !important;
}

.sd-text {
    margin-top: 24px;
    line-height: 1.7;
    opacity: 0.85;
    color: #000;
    font-size: clamp(15px, 1vw, 17px);
}

/* Wenn eine Subline (h2) zwischen h1 und Text steht, trägt sie das
   Spacing und der Text braucht oben keinen Extra-Abstand mehr. */
.sd-body-left h2 + .sd-text {
    margin-top: 0;
}

.sd-body-right h2 {
    color: #000;
    font-size: clamp(18px, 1.3vw, 25px);
}

.sd-open-now {
    font-size: clamp(13px, 0.8vw, 16px);
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 3px 10px;
    border-radius: 20px;
    /* Override des Default-Grüns aus frontend.css — MZ-Sprache ist Gold */
    background: linear-gradient(90deg, #8A6623 0%, #C59B27 50%, #8A6623 100%);
    color: #fff;
}

.sd-hours-row {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: clamp(4px, 0.5vw, 8px) 0;
    border-bottom: 1px solid rgba(0,0,0,0.2);
    font-size: clamp(16px, 1.1vw, 19px);
}

.sd-day {
    font-weight: 700;
    font-family: 'medium', sans-serif;
}

/* ── 10i. Responsive ─────────────────────────────────────────────────────── */
@media (max-width: 900px) {
    .shop-item { width: calc(50% - 12px); }
}

@media (max-width: 600px) {
    .shop-item { width: calc(50% - 12px); }
    .shops-filter { gap: 6px; }
    .shops-filter .button { font-size: 12px; padding: 5px 12px; }
}


/* ==========================================================================
   11. Events — Übersicht, Fokus-Teaser, Detail-Bühne, Archiv
   ========================================================================== */

/* ── 11a. Teaser (Basis) ─────────────────────────────────────────────────── */
.event-teaser {
    --event-hover-outline: rgba(0,0,0,0.12);
}

.event-teaser > a:focus {
    outline: none;
}

.event-maintext h1 {
    color: #333;
}

.event-focus-container {
    padding: 0;
}

/* ── 11b. Fokus-Teaser im MZ-Magazin-Stil ────────────────────────────────────
   - Bei meistens 1 Event im Fokus: Bühne wie Shops-Hero — Bild links,
     Slogan rechts in Gold, Datum darunter in Schwarz
   - Bei mehreren Events: weiterhin nebeneinander, beide volle Bühnenbreite
   ─────────────────────────────────────────────────────────────────────────── */

.news-und-events .news-focus {
    display: flex;
    flex-direction: column;
    gap: 40px;
    padding:  0;
}

.news-und-events .event-teaser {
    background: transparent;
    box-shadow: none;
    outline: none;
    transition: none;

    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 48px;
    overflow: visible;
}

.news-und-events .event-teaser:hover,
.news-und-events .event-teaser:focus-within {
    outline: none;
    transform: none;
}

.news-und-events .event-teaser > a {
    display: block;
    overflow: hidden;
}

.news-und-events .event-teaser > a img {
    aspect-ratio: 1;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.news-und-events .event-teaser:hover > a img,
.news-und-events .event-teaser:focus-within > a img {
    transform: scale(1.03);
}

.news-und-events .event-teaser-info {
    padding: 0;
}

/* Headline in Gold-Verlauf-Text — wie .hero-slogan auf der Shops-Übersicht.
   Jedes Wort auf eigene Zeile durch word-spacing-Trick (kein Markup-Patch nötig). */
.news-und-events .event-teaser-info h2 {
    font-family: 'headlines', sans-serif;
    font-size: clamp(36px, 4vw, 72px);
    line-height: 1;
    letter-spacing: -0.5px;
    text-transform: uppercase;
    margin: 0 0 20px;
    word-spacing: 100vw;

    background: linear-gradient(45deg,
        #8A6623 0%,
        #C59B27 30%,
        #E6CA65 55%,
        #FFF0A5 70%,
        #C59B27 85%,
        #8A6623 100%);
    -webkit-background-clip: text;
            background-clip: text;
    -webkit-text-fill-color: transparent;
            color: transparent;
}

/* Datum als ruhige Subline in Bourbon-Schwarz */
.news-und-events .event-teaser-date {
    color: #1A1612;
    font-family: 'medium', sans-serif;
    font-size: 15px;
    letter-spacing: 3px;
    text-transform: uppercase;
}

.news-und-events .event-teaser-date i {
    color: #1A1612;
}

/* ── 11c. Detail-Seite: Bild links, Slogan rechts ─────────────────────────
   Mappt das gleiche Hero-Layout wie auf der Übersicht. PHP-Master bleibt
   unverändert; per CSS-Grid bringen wir Bild + Headline + Datum
   nebeneinander, der Text läuft darunter über die ganze Breite.

   Trick: .event-maintext wird zu display:contents, damit h1/h2/p direkt
   im Slot-Grid liegen können. */

/* Inline-Styles vom Master-PHP-Script (padding:0, width:100%, margin-top:100px)
   überschreiben — analog zum Shops-Detail (max-width 1600px + Header-Abstand).
   :has(.event-hero) — greift NUR auf Detail-Seite, NICHT auf Übersicht.
   Header (.content_header) ist 100px hoch → 100 + 10px gap = 110px. */
.news-und-events .shopeintrag:has(.event-hero) {
    max-width: 1600px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-top: 110px !important;
}

.news-und-events .shopeintrag .row:has(.event-hero) {
    margin-top: 0 !important;
}

/* Ab 1620px abwärts: seitliche 10px-Luft (analog Shops calc(100% - 20px)).
   Darüber limitiert max-width:1600px ohnehin, daher kein Eingriff nötig. */
@media (max-width: 1620px) {
    .news-und-events .shopeintrag:has(.event-hero),
    .news-und-events .shopeintrag .row:has(.event-hero),
    .news-und-events .shopeintrag .slot.eins:has(.event-hero) {
        max-width: calc(100% - 20px) !important;
        width: calc(100% - 20px) !important;
    }
}

.news-und-events .shopeintrag .slot.eins:has(.event-hero) {
    max-width: 1600px !important;
    width: 100% !important;
    margin: 0 auto !important;

    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
        "hero  title"
        "hero  date"
        "text  text";
    grid-template-rows: auto auto 1fr;
    column-gap: 48px;
    row-gap: 16px;
    align-items: start;

    /* Verankerung für den absolut positionierten Zurück-Button */
    position: relative;
}

/* Hero-Spalte: Bild clippt, Hero selbst sichtbar, damit der Zurück-Button
   herausragen darf. */
.news-und-events .event-hero {
    grid-area: hero;
    grid-row: span 2;
    background: transparent;
    overflow: visible;
    position: static;
}

.news-und-events .event-hero .event-foto {
    width: 100%;
    height: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    object-position: center center;
    display: block;
}

.news-und-events .event-hero .event-back {
    position: absolute;
    top: 0;
    left: auto;
    right: 0;
    z-index: 5;
}

.news-und-events .event-detail {
    display: contents;
}

.news-und-events .event-maintext {
    display: contents;
}

/* Headline oben rechts: wortweise gestapelt, Gold-Verlauf */
.news-und-events .event-maintext h1 {
    grid-area: title;
    align-self: end;
    margin: 0;

    font-family: 'headlines', sans-serif;
    font-size: clamp(36px, 4vw, 72px);
    line-height: 1;
    letter-spacing: -0.5px;
    text-transform: uppercase;
    word-spacing: 100vw;

    background: linear-gradient(45deg,
        #8A6623 0%,
        #C59B27 30%,
        #E6CA65 55%,
        #FFF0A5 70%,
        #C59B27 85%,
        #8A6623 100%);
    -webkit-background-clip: text;
            background-clip: text;
    -webkit-text-fill-color: transparent;
            color: transparent;
}

/* Datum direkt unter der Headline */
.news-und-events .event-maintext h2 {
    grid-area: date;
    align-self: start;
    margin: 0;

    font-family: 'medium', sans-serif;
    font-size: 15px;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: #1A1612;
    font-weight: 400;
    display: flex;
    align-items: center;
    gap: 10px;
}

.news-und-events .event-maintext h2 i {
    color: #1A1612;
}

/* Text läuft volle Breite darunter */
.news-und-events .event-maintext > *:not(h1):not(h2) {
    grid-area: text;
    margin-top: 32px;
}

/* Mobile: Bild + Slogan bleiben nebeneinander, nur kompakter.
   Datum wandert unter die Headline (eigene Zeile), gleicher Grid-Aufbau. */
@media (max-width: 700px) {
    .news-und-events .shopeintrag .slot.eins:has(.event-hero) {
        column-gap: 16px;
        row-gap: 8px;
    }
    .news-und-events .event-maintext h1 {
        font-size: clamp(20px, 6vw, 36px);
        margin: 0;
    }
    .news-und-events .event-maintext h2 {
        font-size: 11px;
        letter-spacing: 2px;
        gap: 6px;
    }
    .news-und-events .event-maintext > *:not(h1):not(h2) {
        margin-top: 20px;
        font-size: 14px;
    }
    .news-und-events .event-hero .event-back {
        top: 0;
        right: 0;
    }
}

/* ── 11d. Archiv-Bilder im MZ-Stil ────────────────────────────────────────
   - Kantig (kein border-radius)
   - Anthrazit-Rahmen statt Opacity-Trick
   - Gold-Outline beim Hover statt scale  */
.archiv-headline {
    display: flex;
    align-items: center;
    gap: 16px;
    color: #fff;
    font-family: 'standard', sans-serif;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 3px;
}
.archiv-headline::before {
    content: '';
    flex: 1;
    height: 1px;
    background: #fff;
}

.news-und-events .archiv-headline {
    font-family: 'medium', sans-serif;
    letter-spacing: 3px;
    color: #1A1612;
}

.news-und-events .archiv-headline::before {
    background: linear-gradient(90deg,
        rgba(138, 102, 35, 0) 0%,
        #8A6623 15%,
        #C59B27 50%,
        #8A6623 85%,
        rgba(138, 102, 35, 0) 100%);
    opacity: 1;
}

.news-und-events .archiv-container {
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 12px;
    padding: 12px 0 32px;
}

.news-und-events .event-archiv-icon {
    border-radius: 0;
    opacity: 1;
    background: #2A2A2A;
    outline: 2px solid transparent;
    outline-offset: 3px;
    transition: outline-color 0.2s ease;
}

.news-und-events .event-archiv-icon:hover,
.news-und-events .event-archiv-icon:focus-within {
    opacity: 1;
    transform: none;
    outline-color: rgb(197, 155, 39);
}


/* ==========================================================================
   12. Rechtliches & Anfahrt
   ========================================================================== */

.rechtliches h2 {
    font-size: 24px;
    color: #000;
    letter-spacing: 3px;
}

/* h1 (Impressum/Datenschutz-Titel) hat inline width:600px — auf schmalen
   Viewports überläuft das und wirkt nicht mehr mittig. max-width begrenzt
   die effektive Breite auf den Viewport (gewinnt gegen inline width).
   Plus Abstand zum Header. */
.rechtliches h1 {
    max-width: 100% !important;
    padding: 0 20px;
    box-sizing: border-box;
    margin-top: 130px !important;
}

@media (max-width: 600px) {
    .rechtliches h1 {
        width: 100% !important;
        margin-top: 120px !important;
    }
}

.rechtliches h3 {
    font-size: 20px;
    color: #000;
    letter-spacing: 2px;
}

.anfahrt h2 {
    font-size: 24px;
    color: #fff;
    letter-spacing: 3px;
}

.anfahrt button {
    padding: 6px 18px;
    border: 1px solid rgba(255,255,255,0.9);
    background: transparent;
    color: #fff;
    border-radius: 20px;
    cursor: pointer;
    font-size: 14px;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.anfahrt button:hover,
.anfahrt button:focus-visible {
    background: rgba(255,255,255,1);
    color: #000;
    border-color: transparent;
    outline: none;
}

/* ── Anfahrt: Routen-Buttons im MZ-Stil ────────────────────────────────────
   Default waren sie weiß auf weißem Grund (unsichtbar). Jetzt kantig,
   schwarz umrandet, Hover invertiert — wie die anderen MZ-Buttons. */
.anfahrt #openRoute,
.anfahrt #routeButton {
    background: transparent;
    border: 1px solid rgba(0, 0, 0, 0.6);
    border-radius: 0;
    color: #1A1612;
    font-family: 'medium', sans-serif;
    font-size: 14px;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 12px 24px;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.anfahrt #openRoute:hover,
.anfahrt #openRoute:focus-visible,
.anfahrt #routeButton:hover,
.anfahrt #routeButton:focus-visible {
    background: #2A2A2A;
    border-color: #2A2A2A;
    color: #fff;
    outline: none;
}

/* Sektions-Header (BUS & BAHN, AUTO) auf der Gold-Fläche: schwarz statt weiß */
.anfahrt section .slot.eins h2 {
    color: #1A1612;
}


/* ==========================================================================
   13. Mapplic / Centerplan
   ========================================================================== */

.mapplic-container {
    background: transparent !important;
}

.mapplic-search svg circle,
.mapplic-search svg line {
    stroke: #fff;
    transition: 0.5s ease;
}

.mapplic-search,
.mapplic-search > input {
    background: #000 !important;
}

.mapplic-item-body h4 {
    color: #000 !important;
}

.mapplic-search:hover,
.mapplic-search > input:hover {
    background: #fff !important;
}

.mapplic-search:hover svg circle,
.mapplic-search:hover svg line,
.mapplic-search:focus-within svg circle,
.mapplic-search:focus-within svg line {
    stroke: #000;
}

.mapplic-layer-switcher .mapplic-active {
    background: #000 !important;
    color: #fff !important;
}

.mapplic-dir-items .mapplic-highlight {
    background: #efefef !important;
}

.mapplic-search input::placeholder,
.mapplic-search input::-webkit-input-placeholder,
.mapplic-search input:-ms-input-placeholder {
    color: #efefef;
}

.mapplic-search input::-moz-placeholder {
    color: #efefef;
    opacity: 1;
}

.mapplic-search {
    background: #fff;
}

.mapplic-search > input:focus {
    outline: none;
    background: #fff !important;
}

.mapplic-layer svg .anchor.mapplic-hightlight,
.mapplic-layer svg .anchor.mapplic-highlight > *,
.mapplic-layer svg .anchor:focus-within > *,
.mapplic-layer svg .anchor a:focus > * {
    fill: #f74600 !important;
}
@media (max-width: 800px) {
    .mapplic-sidebar {
        display: none !important;
    }
}


/* ==========================================================================
   14. KI-Chat Panel & Header-Trigger
   ========================================================================== */

/* ── 14a. Floating Chat-Button ────────────────────────────────────────────── */
.nav-search {
    position: fixed;
    top: 27px;
    right: 70px;
    left: auto;
    bottom: auto;
    width: 44px;
    height: 44px;
    background: #000;
    color: #fff;
    box-shadow: 0 4px 18px rgba(0,0,0,0.45);
}

.nav-search::before,
.nav-search::after {
    border-color: #fff;
}

.nav-search:hover,
.nav-search:focus-visible {
    background: #1a1a1a;
    box-shadow: 0 6px 24px rgba(0,0,0,0.6);
    outline: 2px solid #fff;
    outline-offset: 4px;
}

/* ── 14b. Panel ───────────────────────────────────────────────────────────── */
#ki-chat-panel {
    background: rgba(0,0,0,0.82);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-left: 1px solid rgba(255,255,255,0.15);
    box-shadow: -4px 0 24px rgba(0,0,0,0.8);
}

@media (max-width: 600px) {
    #ki-chat-panel {
        border-left: none;
        border-radius: 20px 20px 0 0;
        box-shadow: 0 -4px 24px rgba(0,0,0,0.8);
    }
}

#ki-chat-messages,
#ki-chat-form,
#ki-chat-banner {
    background: transparent;
}

#ki-chat-form {
    border-top-color: rgba(255,255,255,0.1);
}

/* Permanenter Hinweisbanner — MZ-Gold-Akzent statt gelbes Default */
#ki-chat-banner {
    background: rgba(197, 155, 39, 0.10);
    border-bottom: 1px solid rgba(197, 155, 39, 0.25);
    color: rgba(255, 255, 255, 0.82);
    font-size: 11.5px;
    line-height: 1.45;
}

#ki-chat-banner i {
    color: rgb(197, 155, 39);
}

/* ── 14c. Header ──────────────────────────────────────────────────────────── */
#ki-chat-header {
    border-bottom: 1px solid rgba(255,255,255,0.12);
    padding: 18px 20px;
}

#ki-chat-header-name {
    font-size: 17px;
    letter-spacing: 0.3px;
}

#ki-status-text {
    font-size: 12px;
    color: rgb(197, 155, 39);
}

#ki-status-text::before {
    background: rgba(255,255,255,0.5);
}

/* ── 14d. Bubbles ─────────────────────────────────────────────────────────── */
.ki-bubble {
    font-size: 15px;
    line-height: 1.65;
}

.ki-msg-row--agent .ki-bubble {
    background: rgba(255,255,255,0.06);
    border-color: rgba(255,255,255,0.11);
    color: rgba(255,255,255,0.95);
}

.ki-msg-row--user .ki-bubble {
    background: #fff;
    border: none;
    color: #000;
}

.ki-bubble--intro {
    background: rgba(255,255,255,0.04);
    border-color: rgba(255,255,255,0.09);
    color: rgba(255,255,255,0.8);
    font-size: 15px;
    font-style: normal;
}

.ki-bubble--typing span {
    background: rgba(255,255,255,0.5);
}

/* ── 14e. Links ───────────────────────────────────────────────────────────── */
.ki-link-btn {
    background: rgba(255,255,255,0.07);
    border-color: rgba(255,255,255,0.18);
    color: rgba(255,255,255,0.9);
}

.ki-link-btn:hover {
    background: rgba(255,255,255,0.14);
    border-color: rgba(255,255,255,0.35);
    color: #fff;
    text-decoration: none;
}

.ki-msg-row--agent .ki-bubble a {
    color: rgba(255,255,255,0.8);
}

.ki-msg-row--agent .ki-bubble a:hover {
    color: #fff;
}

/* ── 14f. Input ───────────────────────────────────────────────────────────── */
#ki-chat-input {
    background: rgba(255,255,255,0.07);
    border-color: rgba(255,255,255,0.14);
    color: #fff;
    font-size: 15px;
}

#ki-chat-input::placeholder {
    color: rgba(255,255,255,0.35);
}

#ki-chat-input:focus {
    border-color: rgba(255,255,255,0.35);
}

/* ── 14g. Senden-Button (MZ-Gold) ─────────────────────────────────────────── */
#ki-chat-send {
    color: #1A1612;
    background: linear-gradient(90deg, #8A6623 0%, #C59B27 50%, #E6CA65 100%);
    border-radius: 50%;
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    opacity: 1;
}

#ki-chat-send:hover {
    background: linear-gradient(90deg, #E6CA65 0%, #C59B27 50%, #8A6623 100%);
    opacity: 1;
}

#ki-chat-send:disabled {
    background: rgba(255,255,255,0.1);
    opacity: 0.4;
}

/* ── 14h. Disclaimer-Screen: MZ-Gold-Branding ────────────────────────────── */

/* Info-Icon: Gold-getönter Hintergrund mit Gold-Glyph */
.ki-disclaimer-icon {
    background: rgba(197, 155, 39, 0.15);
    color: rgb(197, 155, 39);
}

/* Headline mit MZ-Gold-Akzentstrich */
.ki-disclaimer-titel {
    position: relative;
    padding-bottom: 14px;
    letter-spacing: 0.3px;
}

.ki-disclaimer-titel::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 40px;
    height: 2px;
    background: linear-gradient(90deg, #8A6623 0%, #C59B27 50%, #E6CA65 100%);
}

/* DSGVO/KI-Hinweis-Links: dezente Hover-Animation in Gold */
.ki-disclaimer-links a:hover,
.ki-disclaimer-links a:focus-visible {
    background: rgba(197, 155, 39, 0.10);
    border-color: rgba(197, 155, 39, 0.45);
    color: #fff;
}

.ki-disclaimer-links a:hover i,
.ki-disclaimer-links a:focus-visible i {
    color: rgb(197, 155, 39);
}

/* Start-Button: MZ-Gold-CTA (überschreibt Fallback aus frontend.css) */
.ki-disclaimer-start {
    background: linear-gradient(90deg, #8A6623 0%, #C59B27 50%, #E6CA65 100%);
    color: #1A1612;
    border-radius: 28px;
    padding: 13px 32px;
    letter-spacing: 0.4px;
    box-shadow: 0 6px 18px rgba(197, 155, 39, 0.32);
    transition: background 0.18s ease, transform 0.12s ease, box-shadow 0.18s ease;
}

.ki-disclaimer-start:hover {
    background: linear-gradient(90deg, #E6CA65 0%, #C59B27 50%, #8A6623 100%);
    transform: translateY(-1px);
    box-shadow: 0 8px 22px rgba(197, 155, 39, 0.42);
}

.ki-disclaimer-start:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
}

/* KI-Chat-Trigger = .nav-search aus __suche.php, gegated ueber site_search (_body.php).
   Position/Icon ueber CMS (config_search_*, config_suche_image). Kein Override hier. */


/* ==========================================================================
   15. Hero-Block (Startseite Slogan)
   Markup kommt aus $laender['website_slogan'] via _open.php
   ========================================================================== */

/* Home: Video-Slot quadratisch statt 16:9
   (Standard ist .container_video::before { padding-top: 56.25% } in frontend.css) */
.homeclass .container_video::before {
    padding-top: 100%; /* 1:1 quadratisch */
}

.hero-block {
    padding: 40px 50px 30px;
    color: #000;
    /* Slot kann display:flex/justify-content:flex-end haben (vertical_align_center=1)
       → Hero soll trotzdem volle Breite & linksbündig sein */
    align-self: stretch;
    width: 100%;
    box-sizing: border-box;
    /* Inhalt vertikal zentrieren, damit kein Leerraum unten entsteht
       wenn der Slot quadratisch ist (Home) */
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.hero-titel {
    font-family: 'medium', sans-serif;
    font-size: 13px;
    line-height: 1.2;
    letter-spacing: 4px;
    color: #000;
    margin: 0 0 22px;
    text-transform: uppercase;
    /* Banderole: goldene Striche links + rechts vom Text */
    display: flex;
    align-items: center;
    gap: 14px;
    white-space: nowrap;
}

.hero-titel::before,
.hero-titel::after {
    content: '';
    flex: 1 1 auto;
    height: 1px;
    background: linear-gradient(90deg,
        rgba(138, 102, 35, 0) 0%,
        #8A6623 15%,
        #C59B27 50%,
        #8A6623 85%,
        rgba(138, 102, 35, 0) 100%
    );
}

/* Banderole soll nicht über die volle Hero-Breite — leicht eingerückt für Eleganz */
.hero-titel::before { max-width: 40px; }
.hero-titel::after  { max-width: 100%; }

.hero-slogan  {
    font-family: 'headlines', sans-serif;
    font-size: 120px;
    line-height: 0.95;
    letter-spacing: -1px;
    text-transform: uppercase;
    margin: 0;
    background: linear-gradient(45deg,
        #8A6623 0%,
        #C59B27 30%,
        #E6CA65 55%,
        #FFF0A5 70%,
        #C59B27 85%,
        #8A6623 100%
    );
    -webkit-background-clip: text;
            background-clip: text;
    -webkit-text-fill-color: transparent;
            color: transparent;
}
.hero-slogan h1{
    font-family: 'headlines', sans-serif;
    font-size: 120px;
    line-height: 0.95;
    letter-spacing: -1px;
    text-transform: uppercase;
}

/* Responsive Hero-Slogan */
@media (max-width: 1500px) {
    .hero-block { padding: 30px 30px 20px; }
    .hero-slogan { font-size: 92px; }
}
@media (max-width: 1300px) {
    .hero-block { padding: 30px 30px 20px; }
    .hero-slogan { font-size: 82px; }
}
@media (max-width:1100px) {
    .hero-slogan { font-size: 70px; }
}
@media (max-width: 900px) {
    .hero-block { padding: 30px 30px 20px; }
    .hero-slogan { font-size: 60px; }
}

/* ── .stores-spezifischer Hero (2-Spalten-Layout) ──────────────────────
   Auf der Shops-Übersicht steht der Slogan-Block neben einem Bild
   (.slot.zwei links + .slot.zwei rechts). Die Slogan-Spalte hat nur
   halbe Viewport-Breite — daher braucht das Hero-Font einen früheren
   und stärkeren Sprung nach unten, damit „ALLET NAH." in eine Zeile
   passt. Layout bleibt unangetastet. */
@media (max-width: 1300px) {
    .stores .hero-slogan, .stores .hero-slogan h1 { font-size: 64px; }
    .stores .hero-titel  { font-size: 12px; letter-spacing: 3.5px; }
}
@media (max-width: 1100px) {
    .stores .hero-slogan, .stores .hero-slogan h1 { font-size: 54px; }
    .stores .hero-titel  { font-size: 11px; letter-spacing: 3px; }
}
@media (max-width: 900px) {
    .stores .hero-slogan, .stores .hero-slogan h1 { font-size: 46px; }
    .stores .hero-titel  { font-size: 10px; letter-spacing: 2.5px; }
}
@media (max-width: 575px) {
    .stores .hero-slogan, .stores .hero-slogan h1 { font-size: 32px; }
    .stores .hero-titel  { font-size: 9px; letter-spacing: 2px; }
}

@media (max-width: 600px) {
    .hero-block { padding: 24px 20px 16px; }
    .hero-titel { font-size: 11px; letter-spacing: 3px; margin-bottom: 16px; gap: 10px; }
    .hero-slogan,.hero-slogan h1 { font-size: 44px; }
}
@media (max-width: 500px) {
    .hero-block { padding: 24px 20px 16px; }
    .hero-titel { font-size: 11px; letter-spacing: 3px; margin-bottom: 16px; gap: 10px; }
    .hero-slogan,.hero-slogan h1 { font-size: 25px !important; }
}

/* Home (Video + Slogan) und Slider: bei <800px untereinander stapeln
   - Gleicher Breakpoint wie .mystyle Kacheln und 8er-Service-Grid
   - Slider bekommt margin-top, damit er nicht direkt am Hero klebt */
@media (max-width: 800px) {
    .homeclass .row {
        flex-direction: column;
        display: block !important;
        width: 100% !important;
    }
    .homeclass .row .slot {
        width: 100% !important;
        display: block !important;
        max-width: none !important;
    }
    main section.homeclass{
        margin-top:110px !important;
    }
    .homeclass .row .slot:nth-of-type(2) {
        margin-left: 0 !important;
    }
    /* Video bleibt quadratisch — Slot übernimmt full width */
    .homeclass .container_video::before {
        padding-top: 100%;
    }
    /* Slider-Section bekommt Abstand nach oben, damit nicht direkt an
       den Tiles klebt — die laufen jetzt ja untereinander */
    .mystyle .row .slot:nth-of-type(2) {
        margin-top: 30px !important;
    }
}


/* ==========================================================================
   16. Instagram-Feed (Section am Seiten-Ende)
   Schwarzer Hintergrund kommt aus .bg.sectionbg (inline-style im Container).
   Bilder werden 1:1 quadratisch erzwungen.
   ========================================================================== */

/* Section-Padding und vertikales Atmen */
section:has(> div > .row > .slot > #instafeed) > .row > .slot {
    padding: 50px 40px 60px;
}

.instaheader {
    margin-bottom: 24px;
}

.instaheader a {
    text-decoration: none;
    display: inline-block;
    transition: opacity 0.25s ease;
}

.instaheader a:hover {
    opacity: 0.7;
}

.instatitel {
    font-family: 'medium', sans-serif !important;
    font-size: 14px !important;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: #B8860B !important;
    display: flex;
    align-items: center;
    gap: 10px;
}

.instatitel i {
    font-size: 18px;
}

/* Bilder 1:1 erzwingen */
#instafeed a {
    display: block;
    aspect-ratio: 1 / 1;
    position: relative;
    overflow: hidden;
    transition: transform 0.3s ease;
}

#instafeed img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block;
    transition: transform 0.4s ease, filter 0.3s ease;
}

/* Hover: Bild zoomt leicht + Messing-Tint via Overlay */
#instafeed a::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at center,
                rgba(184,134,11,0) 0%,
                rgba(184,134,11,0) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
    z-index: 1;
}

#instafeed a:hover::after,
#instafeed a:focus-visible::after {
    background: radial-gradient(circle at center,
                rgba(184,134,11,0.25) 0%,
                rgba(184,134,11,0.05) 70%,
                rgba(184,134,11,0) 100%);
    opacity: 1;
}

#instafeed a:hover img,
#instafeed a:focus-visible img {
    transform: scale(1.05);
}

@media (max-width: 1200px) {
    #instafeed {
        grid-template-columns: repeat(4, 1fr) !important;
    }
}

@media (max-width: 600px) {
    #instafeed {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    .instaheader {
        margin-bottom: 18px;
    }
    .instatitel {
        font-size: 13px !important;
    }
}


/* ==========================================================================
   17. Dauerparkplätze — Kernfaktoren-Grid (.parkgrid / .parkicons)
   ========================================================================== */

.parkgrid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(calc(16.66% - 32px), 1fr));
    gap: 16px;
}

.parkicons {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    padding: 48px 28px;
    text-align: center;
    background: #1A1612;
}

/* Icon im Gold-Verlauf (wie Slogan-Fill) */
.parkicons i {
    font-size: 40px;
    line-height: 1;
    color: #C59B27; /* Fallback ohne background-clip */
    background: linear-gradient(45deg,
        #8A6623 0%,
        #C59B27 30%,
        #E6CA65 55%,
        #FFF0A5 70%,
        #C59B27 85%,
        #8A6623 100%);
    -webkit-background-clip: text;
            background-clip: text;
    -webkit-text-fill-color: transparent;
}

.parkicons h2 {
    margin: 0;
    min-height: 2.2em; /* immer 2 Zeilen Höhe -> Texte bündig */
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'medium', sans-serif;
    font-size: 22px;
    line-height: 1.1;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #FFFFFF;
}

.parktext {
    max-width: 26ch;
    margin: 0 auto;
    font-family: 'standard', sans-serif;
    font-size: 15px;
    line-height: 1.45;
    color: #FFFFFF;
}
@media (max-width: 1200px) {

    .parkgrid {
        grid-template-columns: repeat(auto-fit, minmax(calc(33.33% - 32px), 1fr));

    }
}
@media (max-width: 600px) {

    .parkgrid {
        grid-template-columns: repeat(auto-fit, minmax(calc(50% - 24px), 1fr));
        gap: 12px;
    }
    .parkicons {
        padding: 28px 14px;
    }
    .parkicons i {
        font-size: 30px;
    }
    .parkicons h2 {
        font-size: 18px;
    }
    .parktext {
        font-size: 14px;
    }
}


/* ==========================================================================
   ###PRUEFEN###
   Blöcke, deren Verwendung unklar ist. NICHT gelöscht, damit nichts verloren
   geht. Bitte einzeln prüfen und dann entweder in die passende Sektion oben
   einsortieren oder entfernen.
   ========================================================================== */

/* ---------------------------------------------------------------------------
   [P1] Öffnungszeiten — ALTE RC1-Variante (war Section 7, Z.694–845 alt).
   Wurde komplett durch die MZ-Gold-Version (jetzt Sektion 7) überschrieben,
   da gleiche Spezifität + spätere Position gewinnt. Farben hier waren
   RC1-Orange (#f74600). Übrig bleiben nur Eigenschaften, die die Gold-Version
   NICHT neu setzt: .open-titel padding-right, die @media-480px-Regeln,
   .opentage, .openuhrzeit. Markup kommt aus dem ANOXA-Master (nicht prüfbar
   über MZ-MCP) → erst nach Sichtkontrolle der Öffnungszeiten-Seiten löschen.
   --------------------------------------------------------------------------- */
/*
.openclass {
    position: relative;
    color: #FFF;
    padding: 20px;
    margin:5px;
}
.openclass h2 {
    text-align: center;
    text-transform: uppercase;
    margin-bottom: 25px;
    color: #FFF;
    font-family: 'medium', sans-serif;
}
.open-left {
    flex: 3;
    display: grid;
    grid-template-columns: max-content max-content max-content;
    align-content: center;
    column-gap: 8px;
    row-gap: 4px;
    padding-right: 24px;
}
.open-divider {
    width: 1px;
    background: rgba(255,255,255,0.5);
    align-self: stretch;
    flex-shrink: 0;
}
.open-right {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-left: 24px;
    min-width: 140px;
}
.open-titel {
    font-weight: 600;
    white-space: nowrap;
    font-size: 16px;
    line-height: 24px;
    padding-right: 8px;
}
.open-entry .day { font-size: 16px; line-height: 24px; white-space: nowrap; }
.open-entry .time { font-size: 16px; line-height: 24px; white-space: nowrap; }
@media (max-width: 480px) {
    .open-layout { flex-direction: row; align-items: center; }
    .open-divider { width: 1px; height: auto; align-self: stretch; margin-top: 0; }
    .open-right { padding-left: 12px; flex-direction: column; align-items: center; gap: 4px; min-width: 80px; flex-shrink: 0; }
    .openclass h2 { font-size: 18px; margin-bottom: 16px; }
    .open-titel { font-size: 13px; line-height: 20px; }
    .open-entry .day, .open-entry .time { font-size: 13px; line-height: 20px; }
    .opento { font-size: 11px; }
    .openstd { font-size: 36px; }
}
.opentage {
    text-transform: uppercase;
    font-size: 37px;
    text-align: center;
    line-height: 38px;
    width: 100%;
}
.opento {
    font-size: 16px;
    line-height: 18px;
    text-align: center;
    color: #f74600;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 6px;
}
.openuhrzeit {
    color: #f74600;
    font-size: 20px !important;
    text-transform: uppercase;
    text-align: center;
    line-height: 26px !important;
}
.openstd {
    color: #f74600;
    text-align: center;
    font-size: 60px;
    line-height: 1;
    font-family: 'standard', sans-serif;
}
*/

/* ---------------------------------------------------------------------------
   [P2] Cookie-Banner #infosbanner — war als "RC1 Branding" kommentiert.
   Nur eine isolierte Hover-Regel übrig (Layout/Größen kommen aus ANOXA
   frontend.css). Prüfen, ob das Banner auf MZ überhaupt diesen Selektor
   nutzt und ob die schwarz/weiß-Hover-Optik gewollt ist.
   --------------------------------------------------------------------------- */
/*
#infosbanner button:hover,
#infosbanner button:focus-visible {
    background: #fff;
    color: #000;
    outline: none;
}
*/


/* ==========================================================================
   18. Jobs — Stellenangebote (MZ Dark + Gold)
   Overrides für das Shared-Job-Modul (frontend.css). Die Modul-Regeln
   sind über CSS-Variablen steuerbar; wir scopen sie auf den Jobs-Container,
   sodass nur die Job-Optik (nicht andere Module) MZ-Farben erhält.
   ========================================================================== */

/* Brand-Variablen des Job-Moduls auf MZ-Palette + Container 1600 / zentriert */
.jobs .jobcontainer {
    --brand-primary: #C59B27;          /* Messing-Gold */
    --brand-primary-dark: #8A6623;
    --card-border: rgba(197, 155, 39, 0.35);
    --logo-filter: brightness(0);      /* CMS liefert weiße Logos -> für hellen Logo-Streifen schwärzen */

    max-width: 1600px;
    width: 96%;
    justify-content: center;
    gap: 24px;
}

/* Card: Anthrazit statt Weiß, gleichmäßige Breite, Abstand über gap */
.jobs .jobwrapper {
    width: 380px;
    max-width: 100%;
    margin: 0;
    background: #2A2A2A;               /* Anthrazit */
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
}

/* Logo-Streifen: sauberes Weiß statt Grau, damit Logos sichtbar bleiben */
.jobs .jobwrapper .imagecontainer {
    background: #fff;
    border-bottom: 1px solid rgba(197, 155, 39, 0.35);
}

/* Titel & "Verfügbar ab"-Zeile hell auf dunkler Card */
.jobs .jobwrapper h1,
.jobs .jobwrapper a h1 {
    color: #FAF8F2;                    /* Champagner */
}
.jobs .jobwrapper h2 {
    color: #B8B2A6;
}

/* Stellenart-Badge (AZUBI etc.): Gold-Grund -> dunkle Schrift für Kontrast */
.jobs .jobart {
    color: #1A1612;
}

/* Aufgeklappter Detailbereich: heller Text auf dunkler Card */
.jobs .job_text {
    color: #D8D3CA;
}
.jobs .job_text h3 {
    color: #FAF8F2;
}
.jobs .job_text .media_preview i {
    color: #FAF8F2;
}
.jobs .jobdetail .showsub {
    background: rgba(255, 255, 255, 0.08);
}
.jobs .jobdetail .showsub i {
    color: #FAF8F2;
}

/* CTA "Jetzt bewerben": MZ-Gold statt Türkis, dunkle Schrift (lesbar) */
.jobs .bewerbung-link,
.jobs .bewerbung-link h1 {
    color: #1A1612 !important;
}
.jobs .bewerbung-link:hover,
.jobs .bewerbung-link:focus-visible {
    background: #E6CA65;               /* helles Gold im Hover */
}
