.m34_location {
    position: relative;
    background: #252525;
    color: #d4d4d4;
    padding: 130px 0 130px;
    overflow: hidden;
    isolation: isolate;
}

/* === Map background === */
.m34_map_bg {
    position: absolute;
    top: 0;
    right: 0;
    width: 75%;
    height: 100%;
    z-index: 0;
}

.m34_map_bg .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker {
	width: 65%;
	margin-left: auto;
}

/* WP Go Maps rendert .wpgmza_map mit inline style="height: 1067px"
   (aus dem Settings-JSON). Wir zwingen es per !important auf 100% des
   Container (m34_map_bg), sonst überläuft die Karte das Container-Box
   und schließt die Lücke zum nächsten Element. */
.m34_map_bg .wpgmza_map {
    height: 100% !important;
    width: 100% !important;
    min-height: 0 !important;
}

.m34_map_iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
    /* Filter darkens Google's bright map style to match the dark theme.
       Used as fallback when SHOWM_GMAPS_API_KEY is not configured. */
    filter: invert(0.9) hue-rotate(180deg) saturate(0.7) brightness(0.95) contrast(0.95);
}

/* JS-rendered map (with SnazzyMaps style applied). No filter needed —
   styling comes from the JSON style. */
.m34_map_styled {
    width: 100%;
    height: 100%;
}

.m34_map_overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(270deg,
        rgba(37, 37, 37, 0) 0%,
        rgba(37, 37, 37, 0) 36.5%,
        #252525 100%
    );
    pointer-events: none;
    z-index: 1;
}

/* === Header === */
.m34_header {
    position: relative;
    z-index: 1;
    margin-bottom: 30px;
    max-width: 700px;
}

.m34_topline {
    margin: 0 0 0.5em;
    font-family: 'Nexa-Black-Italic', 'Nexa', system-ui, sans-serif;
    font-style: italic;
    font-weight: 900;
    font-size: clamp(16px, 1.4vw, 22px);
    color: #6b6b6b;
    text-transform: uppercase;
}
.m34_topline--bottom { margin: 0.6em 0 0; }

.m34_title {
    margin: 0;
    font-family: 'Nexa-Black-Italic', 'Nexa', system-ui, sans-serif;
    font-style: italic;
    font-weight: 900;
    font-size: clamp(28px, 5vw, 50px);
    line-height: 1.05;
    text-transform: uppercase;
    letter-spacing: -0.02em;
    color: #d4d4d4;
}
.m34_title em,
.m34_title .m34_title_accent {
    color: #ffffff;
    font-weight: inherit;
    font-style: italic;
}

/* === Info card === */
.m34_card {
    position: relative;
    z-index: 1;
    max-width: 622px;
    border-radius: 20px;
    overflow: hidden;
    /* Dezenter Regenbogen-Halo (gleiche 6-Farben-Palette wie m30 featured
       und m32 stat-number, aber niedrigere Opacity). Keine farbige Kontur. */
    box-shadow:
         -90px -90px  90px -30px rgba(20,  94, 168, 0.10),
         -50px  90px  90px -30px rgba(235, 127, 177, 0.10),
           0px -120px 90px -30px rgba(126, 202, 212, 0.06),
           0px  120px 90px -30px rgba(124, 118,  64, 0.05),
          50px -90px  90px -30px rgba(218, 167,   7, 0.10),
          90px  90px  90px -30px rgba(238, 114,  44, 0.10);
    backdrop-filter: blur(2px);
}

.m34_card_top {
    background: rgba(45, 45, 45, 0.95);
    padding: 46px;
    color: #d4d4d4;
}

.m34_card_studio {
    margin: 0;
    font-family: 'Nexa-Black-Italic', 'Nexa', system-ui, sans-serif;
    font-weight: 900;
    font-size: 22px;
    line-height: 30px;
    color: #ffffff;
}

.m34_card_addr {
    margin: 0;
    font-family: 'Nexa-Regular', 'Nexa', system-ui, sans-serif;
    font-size: 22px;
    line-height: 30px;
    color: #ffffff;
    font-weight: 400;
}

.m34_card_maps_link {
    display: inline-block;
    margin-top: 8px;
    font-family: 'Nexa-Regular', 'Nexa', system-ui, sans-serif;
    font-weight: 400;
    font-size: 17px;
    line-height: 37px;
    color: #d4d4d4;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.m34_card_maps_link:hover { color: #ffffff; }

.m34_card_contact {
    list-style: none;
    margin: 30px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.m34_card_contact li {
    display: flex;
    align-items: baseline;
    gap: 24px;
    font-family: 'Nexa-Regular', 'Nexa', system-ui, sans-serif;
    font-size: 22px;
    line-height: 30px;
    color: #d4d4d4;
}
.m34_contact_label {
    font-family: 'Nexa-Heavy', 'Nexa-Black-Italic', 'Nexa', system-ui, sans-serif;
    font-style: normal;
    font-weight: 900;
    color: #d4d4d4;
    width: 1em;
}
.m34_card_contact a {
    color: inherit;
    text-decoration: none;
    transition: color .2s ease;
}
.m34_card_contact a:hover { color: #ffffff; }

.m34_card_distances {
    list-style: none;
    margin: 30px 0 0;
    padding: 0;
}

.m34_distance {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid rgba(212, 212, 212, 0.3);
    font-size: 17px;
    line-height: 47px;
    color: #d4d4d4;
}
.m34_distance:first-child { border-top: 1px solid rgba(212, 212, 212, 0.3); }

.m34_distance_city {
    font-family: 'Nexa-Regular', 'Nexa', system-ui, sans-serif;
    font-weight: 400;
}
.m34_distance_duration {
    font-family: 'Nexa-Heavy', 'Nexa-Black-Italic', 'Nexa', system-ui, sans-serif;
    font-weight: 900;
}

/* === Light footer strip === */
.m34_card_bottom {
    background: #d4d4d4;
    padding: 28px 46px;
    color: #353434;
}

.m34_card_footer_note {
    margin: 0;
    font-family: 'Nexa-Regular', 'Nexa', system-ui, sans-serif;
    font-size: 17px;
    line-height: 1.4;
    color: #353434;
}
.m34_card_footer_note strong,
.m34_card_footer_note b {
    font-family: 'Nexa-Black-Italic', 'Nexa', system-ui, sans-serif;
    font-weight: 900;
}

@media all and (max-width: 1399px) {
	.m34_map_bg .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker {
		width: 60%;
	}
}

@media all and (max-width: 1199px) {
	.m34_map_bg .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker {
		width: 50%;
	}
}

@media (max-width: 991px) {
	.m34_map_bg .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker {
		width: 100%;
	}
	
    /* Stack: title/card on top, map shown as a fixed-height band below the
       card so it stays clearly visible (the desktop bg-with-overlay pattern
       collapses to nothing usable on portrait viewports). */
    .m34_location { padding: 90px 0 0; overflow: visible; }
    .m34_map_bg {
        position: relative;
        width: 100%;
        height: 360px;
        margin-top: 50px;
    }
    .m34_map_overlay { display: none; }
    .m34_card { max-width: none; }
    /* Abstand zwischen Karte (.m34_map_bg) und folgendem .m34_header
       direkt auf das header-Element packen, damit's egal ist ob die map_bg
       Position relative oder absolute ist und das margin von irgendwas
       collapsed werden würde. */
    .m34_header {
        padding-top: 60px;
        margin-bottom: 40px;
    }
}

@media (max-width: 768px) {
    .m34_location { padding: 70px 0 0; }
    .m34_map_bg { height: 280px; margin-top: 32px; }
    .m34_header { padding-top: 50px; margin-bottom: 30px; }
    .m34_card_top { padding: 32px 28px; }
    .m34_card_bottom { padding: 22px 28px; }
    .m34_card_studio,
    .m34_card_addr,
    .m34_card_contact li { font-size: 18px; line-height: 26px; }
}
