/*
Theme Name:		    Directory
Theme URI:		    https://wpgeodirectory.com/downloads/directory-theme/
Description:	    Directory is a unique theme concept, for WordPress.org. With Directory Theme you can easily create an online portal and submit your business listings. Directory utilises the power of the WordPress block editor, GeoDirectory and Bootstrap to be able to create a fast loading modern directory site.
Tags:               full-site-editing, blog, food-and-drink, two-columns, editor-style, block-styles
Author:			    AyeCode Ltd
Author URI:		    https://ayecode.io
Template:		    blockstrap
Version:		    3.0.61
Text Domain:	    directory
Requires at least:  6.1
Requires PHP:       7.2
Tested up to:       6.8

License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/

:root {
    --directory-card-radius: 16px;
    --directory-color-hero: linear-gradient(135deg, #050505 0%, #0A0A0A 45%, #10211F 100%);
    --directory-color-cta: #43D6C2;
    --directory-color-cta-hover: #29C8B3;
    --directory-color-heading: #171717;
    --directory-color-text: #5F6368;
    --directory-color-eyebrow: #43D6C2;
    --directory-color-icon: #43D6C2;
    --directory-color-icon-bg: #F2FFFD;
    --directory-color-rating: #FFC83D;
    --directory-color-page-bg: #F7F8FA;
    --directory-color-card: #FFFFFF;
    --directory-color-border: #E8ECEF;
    --directory-color-footer: #0A0A0A;
    --directory-color-black: #0A0A0A;
    --directory-color-success: #1EB980;
    --directory-color-error: #E5484D;
    --directory-color-section-alt: #F2FFFD;
    --directory-card-border: var(--directory-color-border);
    --directory-card-border-hover: rgba(67, 214, 194, .65);
    --directory-card-shadow: 0 1px 2px rgba(10, 10, 10, .03);
    --directory-card-shadow-hover: 0 10px 24px rgba(10, 10, 10, .08);
    --directory-card-transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
    --directory-card-transform-hover: translateY(-2px);
    --directory-heading-color: var(--directory-color-heading);
    --directory-h1-size: 36px;
    --directory-h2-size: 29px;
    --directory-h3-size: 23px;
    --directory-h4-size: 18px;
    --directory-page-top-margin: 2.75rem;
    --directory-page-top-space: 1.75rem;
    --directory-detail-top-margin: var(--directory-page-top-margin);
    --directory-detail-top-space: 1.75rem;
    --bs-primary: var(--directory-color-cta) !important;
    --bs-primary-rgb: 67, 214, 194 !important;
    --bs-link-color: var(--directory-color-eyebrow);
    --bs-link-hover-color: var(--directory-color-cta-hover);
}

body {
    --bs-primary: var(--directory-color-cta) !important;
    --bs-primary-rgb: 67, 214, 194 !important;
}

.directory-skip-link {
    position: fixed;
    top: .75rem;
    left: .75rem;
    z-index: 100000;
    padding: .75rem 1rem;
    border: 2px solid var(--directory-color-cta);
    border-radius: 999px;
    background: #fff;
    color: var(--directory-color-black);
    font-weight: 600;
    text-decoration: none;
    transform: translateY(-160%);
    transition: transform .18s ease;
}

.directory-skip-link:focus,
.directory-skip-link:focus-visible {
    transform: translateY(0);
}

.directory-skip-target {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible,
.directory-archive-card:focus-visible,
.directory-home-magazine__card:focus-visible,
.directory-magazine-slider-card:focus-visible,
.directory-location-card:focus-visible,
.directory-center-event-card:focus-visible {
    outline: 3px solid rgba(67, 214, 194, .65) !important;
    outline-offset: 3px;
    box-shadow: 0 0 0 5px rgba(67, 214, 194, .16) !important;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

h1,
h1.h1,
h1.h2,
h1.h3,
.wp-block-post-title {
    color: var(--directory-heading-color) !important;
    font-size: var(--directory-h1-size) !important;
    line-height: 1.08;
}

.directory-button,
body.single-gd_place #commentform #submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: .75rem 1.5rem;
    border-radius: var(--directory-card-radius, 8px);
    font-family: inherit;
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.5;
    text-align: center;
    text-decoration: none;
    transition: background-color .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.directory-button--primary,
body.single-gd_place #commentform #submit {
    border: 1px solid var(--directory-color-cta);
    background: var(--directory-color-cta);
    color: #fff;
}

.directory-button--primary:hover,
.directory-button--primary:focus-visible,
body.single-gd_place #commentform #submit:hover,
body.single-gd_place #commentform #submit:focus-visible {
    border-color: var(--directory-color-cta-hover);
    background: var(--directory-color-cta-hover);
    color: #fff;
    box-shadow: 0 12px 24px rgba(194, 65, 12, .18);
    transform: translateY(-1px);
}

h2,
h2.h1,
h2.h2,
h2.h3,
h2.wp-block-heading,
h2.wp-block-blockstrap-blockstrap-widget-heading,
.directory-home-magazine__head h2 {
    color: var(--directory-heading-color) !important;
    font-size: var(--directory-h2-size) !important;
    line-height: 1.15;
}

h3,
h3.h1,
h3.h2,
h3.h3 {
    color: var(--directory-heading-color) !important;
    font-size: var(--directory-h3-size) !important;
    line-height: 1.25;
}

h4,
h4.h1,
h4.h2,
h4.h3,
h4.h4 {
    color: var(--directory-heading-color) !important;
    font-size: var(--directory-h4-size) !important;
    line-height: 1.3;
}

body.home h1,
body.front-page h1 {
    color: inherit !important;
}

body.single-gd_place h1 {
    color: var(--wp--preset--color--primary, #43d6c2) !important;
}

body:not(.home):not(.front-page) header + .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container:first-child {
    margin-top: var(--directory-page-top-margin) !important;
    padding-top: var(--directory-page-top-space) !important;
}

body.single-gd_place header + #title {
    margin-top: var(--directory-detail-top-margin) !important;
    padding-top: var(--directory-detail-top-space) !important;
}

body:not(.home):not(.front-page).geodir-archive #main {
    margin-top: var(--directory-page-top-margin) !important;
    padding-top: var(--directory-page-top-space) !important;
}

body.single-gd_place #title,
body:not(.home):not(.front-page).geodir-archive #main {
    width: 100%;
    max-width: 1320px;
    margin-top: var(--directory-page-top-margin) !important;
    padding-right: 1rem !important;
    padding-left: 1rem !important;
}

body.single-gd_place #title {
    padding-top: var(--directory-page-top-space) !important;
}

body.single-gd_place #title > .wp-block-blockstrap-blockstrap-widget-container.mb-2.bg-image-fixed.row:first-child,
body:not(.home):not(.front-page).geodir-archive #main > .row {
    margin-right: 0 !important;
    margin-left: 0 !important;
}

body.single-gd_place #title > .wp-block-blockstrap-blockstrap-widget-container.mb-2.bg-image-fixed.row:first-child > .wp-block-blockstrap-blockstrap-widget-container.bg-image-fixed.col:empty {
    display: none !important;
}

body.single-gd_place #title nav[aria-label="breadcrumb"],
body:not(.home):not(.front-page).geodir-archive #main nav[aria-label="breadcrumb"] {
    width: 100%;
    margin-top: 38px !important;
    padding-top: .5rem !important;
    padding-right: 0 !important;
    padding-bottom: .5rem !important;
    padding-left: 0 !important;
}

body:not(.home):not(.front-page).geodir-archive #main > .row > .col:first-child {
    margin-top: 0 !important;
    padding: 0 !important;
}

body:not(.home):not(.front-page) nav[aria-label="breadcrumb"] {
    margin-top: 110px !important;
    margin-bottom: 24px !important;
}

.uwp-login-link,
.uwp-logout-link,
.uwp-account-logout,
.nav-item:has(a[href*="logout"]),
.nav-item:has(a[href*="sign-out"]),
.nav-item:has(a[href*="signout"]) {
    display: none !important;
}

@media (max-width: 575.98px) {
    :root {
        --directory-h1-size: 32px;
        --directory-h2-size: 26px;
        --directory-h3-size: 21px;
        --directory-h4-size: 17px;
    }
}

@media (max-width: 767.98px) {
    body:not(.home):not(.front-page) nav[aria-label="breadcrumb"] .breadcrumb {
        display: flex;
        flex-wrap: nowrap;
        max-width: 100%;
        overflow: hidden;
        white-space: nowrap;
    }

    body:not(.home):not(.front-page) nav[aria-label="breadcrumb"] .breadcrumb-item {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    body:not(.home):not(.front-page) nav[aria-label="breadcrumb"] .breadcrumb-item:first-child {
        flex: 0 0 auto;
        max-width: 1.35rem;
    }

    body:not(.home):not(.front-page) nav[aria-label="breadcrumb"] .breadcrumb-item:first-child a,
    body:not(.home):not(.front-page) nav[aria-label="breadcrumb"] .breadcrumb-item:first-child span[itemprop="name"] {
        display: inline-block;
        max-width: 100%;
        overflow: hidden;
        vertical-align: bottom;
        white-space: nowrap;
    }

    body:not(.home):not(.front-page) nav[aria-label="breadcrumb"] .breadcrumb-item:first-child span[itemprop="name"] {
        font-size: 0;
    }

    body:not(.home):not(.front-page) nav[aria-label="breadcrumb"] .breadcrumb-item:first-child span[itemprop="name"]::after {
        content: "\f015";
        font-family: "Font Awesome 6 Free";
        font-size: .875rem;
        font-weight: 900;
    }

    body:not(.home):not(.front-page) nav[aria-label="breadcrumb"] .breadcrumb-item:not(:first-child):not(:nth-last-child(-n+2)) {
        flex: 0 0 auto;
        max-width: 1.5rem;
    }

    body:not(.home):not(.front-page) nav[aria-label="breadcrumb"] .breadcrumb-item:not(:first-child):not(:nth-last-child(-n+2)) a,
    body:not(.home):not(.front-page) nav[aria-label="breadcrumb"] .breadcrumb-item:not(:first-child):not(:nth-last-child(-n+2)) span[itemprop="name"] {
        display: inline-block;
        max-width: 100%;
        overflow: hidden;
        vertical-align: bottom;
        white-space: nowrap;
    }

    body:not(.home):not(.front-page) nav[aria-label="breadcrumb"] .breadcrumb-item:not(:first-child):not(:nth-last-child(-n+2)) span[itemprop="name"] {
        font-size: 0;
    }

    body:not(.home):not(.front-page) nav[aria-label="breadcrumb"] .breadcrumb-item:not(:first-child):not(:nth-last-child(-n+2)) span[itemprop="name"]::after {
        content: "...";
        font-size: .875rem;
    }

    body:not(.home):not(.front-page) nav[aria-label="breadcrumb"] .breadcrumb-item:nth-last-child(2) {
        flex: 0 1 auto;
        max-width: 45%;
    }

    body:not(.home):not(.front-page) nav[aria-label="breadcrumb"] .breadcrumb-item:last-child {
        flex: 1 1 auto;
    }

    body:not(.home):not(.front-page) nav[aria-label="breadcrumb"] .breadcrumb-item:nth-last-child(-n+2) a,
    body:not(.home):not(.front-page) nav[aria-label="breadcrumb"] .breadcrumb-item:nth-last-child(-n+2) span[itemprop="name"] {
        display: inline-block;
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        vertical-align: bottom;
        white-space: nowrap;
    }
}

h2.wp-block-heading {
    display: flex;
    gap: 12px;
}

h1 a,
h2 a,
h3 a {
    color: inherit;
}

.directory-home-magazine__card,
.categories .directory-location-card,
.directory-archive-card,
.geodir-post .card,
.gd-cptcat-parent .card {
    border: 1px solid var(--directory-card-border) !important;
    border-radius: var(--directory-card-radius) !important;
    box-shadow: var(--directory-card-shadow) !important;
    transition: var(--directory-card-transition) !important;
}

.directory-home-magazine__card:hover,
.directory-home-magazine__card:focus-visible,
.categories .directory-location-card:hover,
.categories .directory-location-card:focus-visible,
.directory-archive-card:hover,
.directory-archive-card:focus-within,
.geodir-post .card:hover,
.geodir-post .card:focus-within,
.gd-cptcat-parent .card:hover,
.gd-cptcat-parent .card:focus-within {
    border-color: var(--directory-card-border-hover) !important;
    box-shadow: var(--directory-card-shadow-hover) !important;
    transform: var(--directory-card-transform-hover);
}

.geodir-field-service ul {
    display: flex;
    flex-wrap: wrap;
    margin-top: calc(-1 * var(--bs-gutter-y));
    margin-right: calc(-.5 * var(--bs-gutter-x));
    list-style: none;
    padding-left: 0;
    margin-left: 0;
}

.geodir-field-service ul li {
    flex: 0 0 auto;
    width: 33.3333333333%;
    margin-bottom: .25rem;
        font-size: 1.15rem !important;
}

.tagshop .text-center {
    text-align: left!important;
}

.tagshop .geodir-cpt-tag-parent.col.mb-4 {
    margin-bottom: 0!important;
}

.tagshop .text-truntage {
    text-wrap: auto;
}

.geodir_post_meta:has(.geodir_post_meta_icon) {
    position: relative;
    padding-left: 2em;
}

.geodir_post_meta .geodir_post_meta_icon {
    position: absolute;
    top: 50%;
    left: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.25em;
    opacity: .5;
    transform: translateY(-50%);
}

.geodir_post_meta .geodir_post_meta_icon i {
    width: 1em;
    text-align: center;
}

body.home .wp-block-geodirectory-geodir-widget-search + p.wp-block-paragraph {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
    justify-content: center;
    color: rgba(255, 255, 255, .78);
    font-size: .95rem;
}

body.home .wp-block-geodirectory-geodir-widget-search + p.wp-block-paragraph a {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    padding: .35rem .85rem;
    border: 1px solid;
    border-radius: 999px;
    text-decoration: none;
    transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}

body.home .wp-block-geodirectory-geodir-widget-search + p.wp-block-paragraph a:hover,
body.home .wp-block-geodirectory-geodir-widget-search + p.wp-block-paragraph a:focus-visible {
    transform: translateY(-1px);
}

body.home {
    --directory-home-section-y: 5rem;
    --directory-home-section-y-mobile: 3.5rem;
}

body.home .directory-home-section,
body.home .categories,
body.home .directory-home-magazine {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: var(--directory-home-section-y) !important;
    padding-bottom: var(--directory-home-section-y) !important;
}

body.home .directory-home-featured-centers {
    padding-right: 0;
    padding-left: 0;
}

.directory-location-description {
    max-width: 820px;
}

.directory-location-description-wrap .directory-location-description {
    max-width: 980px;
}

.directory-location-description--map {
    max-width: none;
}

.directory-location-description p:last-child {
    margin-bottom: 0;
}

.directory-home-magazine {
    padding-right: 0;
    padding-left: 0;
    color: #071225;
}

/* "Einkaufszentren in meiner Nähe" — teal-outline pill that sits in the hero
   "Beliebte Shopping-Städte" row, geolocates, and hands off to /search-page/?…&nearby=1 */
body.home .directory-hero-nearby-btn,
.directory-nearby-results [data-nearby-retry] {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    min-height: 2rem;
    padding: .35rem .9rem;
    border: 1px solid var(--directory-color-cta, #43d6c2);
    border-radius: 999px;
    background: var(--directory-color-card, #ffffff);
    color: var(--directory-color-cta-hover, #29c8b3);
    font: inherit;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}

body.home .directory-hero-nearby-btn:hover:not(:disabled),
.directory-nearby-results [data-nearby-retry]:hover:not(:disabled) {
    background: rgba(67, 214, 194, .12);
    transform: translateY(-1px);
}

body.home .directory-hero-nearby-btn:disabled,
.directory-nearby-results [data-nearby-retry]:disabled {
    opacity: .6;
    cursor: default;
}

body.home .directory-hero-nearby-btn .directory-icon {
    width: .95rem;
    height: .95rem;
}

body.home .directory-hero-nearby-sep {
    width: 1px;
    align-self: stretch;
    min-height: 1.4rem;
    margin: 0 .1rem;
    background: rgba(23, 23, 23, .15);
}

body.home .directory-hero-nearby-msg {
    color: var(--directory-color-text, #5f6368);
    font-size: .9rem;
}

body.home .directory-hero-nearby-msg[hidden] {
    display: none;
}

/* Mobile: same size + alignment as the full-width "suchen" button */
@media (max-width: 767.98px) {
    body.home .directory-hero-nearby-btn {
        flex: 0 0 auto;
        width: calc(100% - 1.25rem);
        margin-inline: auto;
        justify-content: center;
        min-height: 47px;
        padding: .65rem 1rem;
        font-size: 16px;
    }

    body.home .directory-hero-nearby-sep {
        display: none;
    }
}

.directory-nearby-results {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1rem;
    align-items: start;
}

.directory-nearby-results > .col {
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.directory-nearby-results .directory-archive-card {
    height: 100%;
}

.directory-nearby-results__msg {
    grid-column: 1 / -1;
    margin: 0 0 .5rem;
    color: var(--directory-color-text, #5f6368);
}

.directory-home-magazine__inner {
    max-width: 1320px;
    margin: 0 auto;
}

.directory-home-magazine__eyebrow {
    display: inline-flex;
    gap: .55rem;
    align-items: center;
    margin-bottom: 1rem;
    color: var(--wp--preset--color--primary, #43d6c2);
    font-size: .9rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.directory-section-heading {
    display: flex;
    gap: 1.5rem;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 1.8rem;
}

.directory-section-heading__title {
    display: grid;
    gap: .7rem;
}

.directory-section-heading__eyebrow,
.directory-detail-eyebrow {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    color: var(--wp--preset--color--primary, #43d6c2);
    font-size: .9rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-decoration: none;
    text-transform: uppercase;
}

.directory-section-heading__eyebrow:hover,
.directory-section-heading__eyebrow:focus-visible,
.directory-detail-eyebrow:hover,
.directory-detail-eyebrow:focus-visible {
    color: #071225;
}

.directory-section-heading h2 {
    margin: 0 !important;
    padding-bottom: 0 !important;
}

.directory-section-heading__all {
    display: inline-flex;
    gap: .55rem;
    align-items: center;
    color: #071225;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.directory-section-heading__all:hover,
.directory-section-heading__all:focus-visible {
    color: var(--wp--preset--color--primary, #43d6c2);
}

.directory-detail-eyebrow {
    margin-bottom: .65rem;
}

body.single-gd_place .wp-block-heading {
    margin-top: 3rem;
    margin-bottom: 1.25rem;
}

body.single-gd_place h2.wp-block-heading:first-child,
body.single-gd_place h3.directory-opening-hours__title {
    margin-top: 0;
}

body.single-gd_place .entry-content > .wp-block-blockstrap-blockstrap-widget-container,
body.single-gd_place main > .wp-block-blockstrap-blockstrap-widget-container {
    margin-bottom: 1.5rem;
}

body.single-gd_place .wp-block-geodirectory-geodir-widget-tabs,
body.single-gd_place .wp-block-geodirectory-geodir-widget-post-rating,
body.single-gd_place .wp-block-geodirectory-geodir-widget-single-taxonomies,
body.single-gd_place .wp-block-geodirectory-geodir-widget-post-content {
    margin-bottom: 1.5rem;
}

body.single-gd_place .comment-respond,
body.single-gd_place .geodir-comments-area,
body.single-gd_place #comments {
    margin-top: 2rem;
}

body.single-gd_place .comment-reply-title {
    margin-top: 2rem;
    margin-bottom: 1rem;
}

body.single-gd_place .wp-block-woocommerce-accordion-header .accordion-item__toggle-icon {
    display: none !important;
}

body.single-gd_place .wp-block-woocommerce-accordion-header .accordion-item__toggle {
    padding-left: 0;
    padding-right: 0;
}

body.single-gd_place .directory-site-footer {
    position: relative;
    left: 50%;
    width: 100vw;
    max-width: 100vw;
    margin-right: -50vw;
    margin-left: -50vw;
    margin-bottom: 0 !important;
    padding-right: 0;
    padding-left: 0;
    clear: both;
}

body.single-gd_place .wp-block-blockstrap-blockstrap-widget-container.mt-5.pt-5.pb-5.bg-image-fixed.container-fluid:has(.geodir-posts-carousel) {
    margin-top: 3rem !important;
    padding-top: 0 !important;
    padding-bottom: 2.5rem !important;
}

body.single-gd_place .wp-block-blockstrap-blockstrap-widget-container.pt-5.pb-5.bg-image-fixed.text-dark.d-none.d-lg-block.container:has(.geodir-posts-carousel) {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

body.single-gd_place .wp-block-blockstrap-blockstrap-widget-container:has(.geodir-posts-carousel) > h2.wp-block-heading {
    margin-bottom: 1.75rem !important;
}

body.single-gd_place .entry-content > *:last-child,
body.single-gd_place main > *:last-child,
body.single-gd_place .wp-site-blocks > *:last-child {
    margin-bottom: 0 !important;
}

body.single-gd_place,
body.single-gd_place .wp-site-blocks {
    padding-bottom: 0 !important;
}

.directory-home-magazine__head {
    display: flex;
    gap: 1.5rem;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 3rem;
}

.directory-home-magazine__head h2 {
    margin: 0;
    font-weight: 800;
    line-height: 1.08;
}

.directory-home-magazine__title p {
    max-width: 680px;
    margin: .85rem 0 0;
    color: #4b5a70;
    font-size: 1.1rem;
    line-height: 1.45;
}

.directory-home-magazine__all {
    display: inline-flex;
    gap: .55rem;
    align-items: center;
    color: #071225;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.directory-home-magazine__all:hover,
.directory-home-magazine__all:focus-visible {
    color: var(--wp--preset--color--primary, #43d6c2);
}

.directory-home-magazine__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.5rem;
}

.directory-home-magazine__card {
    display: grid;
    grid-template-rows: auto auto 1fr auto;
    min-height: 255px;
    padding: 1.65rem;
    color: #071225;
    text-decoration: none;
    background: #fff;
}

.directory-home-magazine__card:hover,
.directory-home-magazine__card:focus-visible {
    color: #071225;
}

.directory-home-magazine__card--featured {
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.35fr);
    grid-template-rows: none;
    gap: 0;
    min-height: 330px;
    overflow: hidden;
    padding: 0;
}

.directory-home-magazine__image {
    display: block;
    min-height: 330px;
    background: #edf2f7;
}

.directory-home-magazine__image img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 330px;
    object-fit: cover;
}

.directory-home-magazine__content {
    display: grid;
    grid-template-rows: auto auto 1fr auto;
    padding: 2.25rem;
}

.directory-home-magazine__card--featured h3 {
    max-width: 780px;
    line-height: 1.12;
}

.directory-home-magazine__card--featured p {
    max-width: 680px;
    font-size: 1.08rem;
}

.directory-home-magazine__label {
    margin-bottom: 1rem;
    color: var(--wp--preset--color--primary, #43d6c2);
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.directory-home-magazine__card h3 {
    margin: 0 0 .85rem;
    color: #071225;
    font-weight: 800;
    line-height: 1.28;
}

.directory-home-magazine__card p {
    margin: 0;
    color: #4b5a70;
    font-size: 1rem;
    line-height: 1.45;
}

.directory-home-magazine__meta {
    margin-top: 1.75rem;
    color: #64748b;
    font-size: .9rem;
    font-weight: 700;
}

.directory-magazine-overview {
    max-width: 1320px;
    margin-right: auto;
    margin-left: auto;
    margin-bottom: 4rem;
    padding-top: calc(var(--directory-page-top-space, 2.5rem) + 3.25rem);
    padding-right: 1rem;
    padding-left: 1rem;
}

.directory-magazine-overview__header {
    margin-bottom: clamp(1.5rem, 3vw, 2rem);
}

body:not(.home):not(.front-page) .directory-magazine-overview__header nav[aria-label="breadcrumb"] {
    display: block !important;
    width: 100%;
    margin-top: 30px !important;
    margin-bottom: 24px !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
    text-align: left !important;
}

body:not(.home):not(.front-page).single-post nav[aria-label="breadcrumb"] {
    margin-top: 2px !important;
    margin-bottom: 24px !important;
}

.directory-magazine-overview__header nav[aria-label="breadcrumb"] .breadcrumb {
    display: flex !important;
    justify-content: flex-start !important;
}

.directory-magazine-overview__header h1 {
    margin: .35rem 0 0;
}

body.blog .wp-block-blockstrap-blockstrap-widget-container.row:has(#bs-block-search-s):has(#_bs_category) {
    display: none !important;
}

.directory-magazine-overview .directory-home-magazine__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.directory-magazine-overview .directory-home-magazine__card {
    min-height: 285px;
}

.directory-magazine-overview .directory-home-magazine__card,
.directory-magazine-overview .directory-home-magazine__card:hover,
.directory-magazine-overview .directory-home-magazine__card:focus-visible,
.directory-magazine-overview .directory-home-magazine__card * {
    text-decoration: none !important;
}

.directory-magazine-overview .directory-home-magazine__card:hover h3,
.directory-magazine-overview .directory-home-magazine__card:focus-visible h3,
.directory-magazine-overview .directory-home-magazine__card:hover .directory-home-magazine__title,
.directory-magazine-overview .directory-home-magazine__card:focus-visible .directory-home-magazine__title {
    color: var(--directory-color-cta) !important;
    text-decoration: none !important;
}

.directory-magazine-featured {
    margin-bottom: clamp(3rem, 6vw, 5rem);
}

.directory-magazine-sections {
    display: grid;
    gap: clamp(3rem, 6vw, 5rem);
}

.directory-magazine-category {
    display: grid;
    grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
    gap: clamp(2rem, 4vw, 3.5rem);
    align-items: start;
}

.directory-magazine-category__intro {
    position: sticky;
    top: 7rem;
}

.directory-magazine-category__eyebrow {
    margin: 0 0 .35rem;
    color: var(--directory-color-eyebrow);
    font-size: .88rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.directory-magazine-category h2 {
    margin: 0 0 1rem;
}

.directory-magazine-category__tags {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: 1.5rem;
}

.directory-magazine-category__tags a {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    padding: .38rem .65rem;
    color: var(--directory-color-heading);
    font-size: .84rem;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    background: #f6f8fa;
    border: 1px solid var(--directory-color-border);
    border-radius: 999px;
    transition: border-color .18s ease, box-shadow .18s ease, color .18s ease, transform .18s ease;
}

.directory-magazine-category__tags a:hover,
.directory-magazine-category__tags a:focus-visible {
    color: var(--directory-color-cta);
    background: #fff;
    border-color: var(--directory-color-cta);
    box-shadow: 0 8px 20px rgba(10, 10, 10, .06);
    transform: translateY(-1px);
}

.directory-magazine-category__all,
.directory-magazine-slider-card__read {
    display: inline-flex;
    gap: .55rem;
    align-items: center;
    color: var(--directory-color-cta);
    font-weight: 700;
    text-decoration: none;
}

.directory-magazine-category__all:hover,
.directory-magazine-category__all:focus-visible {
    color: var(--directory-color-cta-hover);
    text-decoration: none;
}

.directory-magazine-category__rail-wrap {
    min-width: 0;
}

.directory-magazine-category__rail {
    display: grid;
    grid-auto-columns: minmax(260px, 31%);
    grid-auto-flow: column;
    gap: 1.5rem;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    padding-bottom: 1.25rem;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}

.directory-magazine-category__rail::-webkit-scrollbar {
    display: none;
}

.directory-magazine-slider-card {
    display: grid;
    min-height: 285px;
    overflow: hidden;
    color: var(--directory-color-heading);
    text-decoration: none;
    background: #fff;
    border: 1px solid var(--directory-color-border);
    border-radius: 16px;
    scroll-snap-align: start;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.directory-magazine-slider-card:hover,
.directory-magazine-slider-card:focus-visible {
    color: var(--directory-color-heading);
    text-decoration: none;
    border-color: var(--directory-color-cta);
    box-shadow: 0 12px 30px rgba(10, 10, 10, .08);
    transform: translateY(-2px);
}

.directory-magazine-slider-card:hover h3,
.directory-magazine-slider-card:focus-visible h3 {
    color: var(--directory-color-cta);
}

.directory-magazine-slider-card__body {
    display: grid;
    grid-template-rows: auto 1fr;
    padding: 1.5rem;
}

.directory-magazine-slider-card h3 {
    margin: 0 0 .75rem;
    color: var(--directory-color-heading);
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.25;
}

.directory-magazine-slider-card p {
    margin: 0;
    color: var(--directory-color-text);
    font-size: .95rem;
    line-height: 1.45;
}

.directory-magazine-category__controls {
    display: flex;
    justify-content: flex-end;
    gap: .5rem;
    margin-top: .75rem;
}

.directory-magazine-category__control {
    display: inline-grid;
    width: 2.75rem;
    height: 2.75rem;
    place-items: center;
    color: var(--directory-color-cta);
    background: #fff;
    border: 1px solid var(--directory-color-cta);
    border-radius: 999px;
    transition: color .18s ease, background-color .18s ease, border-color .18s ease;
}

.directory-magazine-category__control:hover,
.directory-magazine-category__control:focus-visible {
    color: #111;
    background: var(--directory-color-cta);
    border-color: var(--directory-color-cta);
}

.directory-magazine-term-archive__description {
    width: 100%;
    max-width: none;
    margin: .75rem 0 0;
    color: var(--directory-color-text);
    font-size: 1rem;
    line-height: 1.55;
}

.directory-magazine-term-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.5rem;
}

.directory-magazine-term-grid .directory-magazine-slider-card {
    min-height: 285px;
}

.directory-magazine-term-pagination {
    margin-top: 2.5rem;
}

.directory-magazine-term-pagination ul {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

.directory-magazine-term-pagination a,
.directory-magazine-term-pagination span {
    display: inline-grid;
    min-width: 2.5rem;
    height: 2.5rem;
    place-items: center;
    padding: 0 .75rem;
    color: var(--directory-color-heading);
    text-decoration: none;
    background: #fff;
    border: 1px solid var(--directory-color-border);
    border-radius: 999px;
}

.directory-magazine-term-pagination a:hover,
.directory-magazine-term-pagination a:focus-visible,
.directory-magazine-term-pagination .current {
    color: #111;
    background: var(--directory-color-cta);
    border-color: var(--directory-color-cta);
}

.directory-contact-page {
    max-width: 1320px;
    margin: 0 auto 4rem;
    padding: var(--directory-page-top-space, 2.5rem) 0 0;
}

.directory-contact-hero {
    max-width: 760px;
    margin-bottom: clamp(2rem, 4vw, 3rem);
}

.directory-contact-hero h1 {
    margin: .35rem 0 1rem;
}

.directory-contact-hero p {
    margin: 0;
    color: var(--directory-color-text);
    font-size: 1.08rem;
    line-height: 1.7;
}

.directory-contact-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.directory-contact-card {
    display: flex;
    min-height: 17rem;
    flex-direction: column;
    padding: 1.35rem;
    border: 1px solid var(--directory-card-border);
    border-radius: var(--directory-card-radius);
    background: var(--directory-color-card);
    box-shadow: var(--directory-card-shadow);
    transition: var(--directory-card-transition);
}

.directory-contact-card:hover {
    border-color: var(--directory-card-border-hover);
    box-shadow: var(--directory-card-shadow-hover);
    transform: var(--directory-card-transform-hover);
}

.directory-contact-card__icon {
    display: inline-flex;
    width: 2.65rem;
    height: 2.65rem;
    align-items: center;
    justify-content: center;
    margin-bottom: 1rem;
    border-radius: var(--directory-card-radius);
    background: var(--directory-color-icon-bg);
    font-size: 1.2rem;
}

/* Same outline icon set as the archive/nearby cards (directory_svg_icon()) — sized up from the
   shared .9rem default to fill this larger icon tile. */
.directory-contact-card__icon .directory-icon {
    width: 1.4rem;
    height: 1.4rem;
}

.directory-contact-card h2 {
    margin: 0 0 .65rem;
    font-size: 1.25rem;
}

.directory-contact-card p {
    margin: 0 0 1.25rem;
    color: var(--directory-color-text);
    line-height: 1.6;
}

.directory-contact-card a {
    margin-top: auto;
    color: var(--directory-color-cta);
    font-weight: 500;
    text-decoration: none;
}

.directory-contact-card a:hover,
.directory-contact-card a:focus-visible {
    color: var(--directory-color-cta-hover);
    text-decoration: underline;
}

.directory-contact-note {
    margin-top: clamp(2rem, 4vw, 3rem);
    padding: 1.5rem;
    border: 1px solid var(--directory-color-border);
    border-radius: var(--directory-card-radius);
    background: var(--directory-color-icon-bg);
}

.directory-contact-note h2 {
    margin: 0 0 .65rem;
    font-size: 1.35rem;
}

.directory-contact-note p {
    margin: 0;
    color: var(--directory-color-text);
    line-height: 1.7;
}

.directory-voucher-page {
    width: min(1320px, 100%);
    margin: 0 auto;
    padding: 0 0 5rem;
}

.directory-voucher-hero {
    max-width: 860px;
    margin-bottom: clamp(2rem, 4vw, 3rem);
}

.directory-voucher-hero h1 {
    margin: .35rem 0 1rem;
}

.directory-voucher-hero > p {
    margin: 0;
    color: var(--directory-color-text);
    font-size: 1.08rem;
    line-height: 1.7;
}

.directory-voucher-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 320px);
    gap: clamp(2rem, 5vw, 4rem);
    align-items: start;
}

.directory-voucher-article {
    min-width: 0;
}

.directory-voucher-article section {
    scroll-margin-top: 110px;
    margin-bottom: clamp(2rem, 4vw, 3rem);
}

.directory-voucher-article h2,
.directory-voucher-toc h2,
.directory-voucher-side-card h2,
.directory-voucher-cta h2,
.directory-voucher-related h2 {
    margin: 0 0 1rem;
}

.directory-voucher-article p {
    max-width: 760px;
    margin: 0 0 1rem;
    color: var(--directory-color-text);
    line-height: 1.75;
}

.directory-voucher-toc,
.directory-voucher-side-card,
.directory-voucher-cta,
.directory-voucher-center-card {
    border: 1px solid var(--directory-color-border);
    border-radius: var(--directory-card-radius);
    background: var(--directory-color-card);
}

.directory-voucher-toc {
    max-width: 760px;
    margin-bottom: clamp(2rem, 4vw, 3rem);
    padding: 1.4rem 1.6rem;
}

.directory-voucher-toc h2,
.directory-voucher-side-card h2,
.directory-voucher-cta h2 {
    font-size: .82rem !important;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.directory-voucher-toc ol {
    margin: 0;
    padding-left: 1.25rem;
}

.directory-voucher-toc li {
    margin-bottom: .45rem;
    color: var(--directory-color-text);
}

.directory-voucher-toc a,
.directory-voucher-side-nav a {
    color: var(--directory-color-heading);
    text-decoration: none;
}

.directory-voucher-toc a:hover,
.directory-voucher-toc a:focus-visible,
.directory-voucher-side-nav a:hover,
.directory-voucher-side-nav a:focus-visible {
    color: var(--directory-color-cta);
}

.directory-voucher-faq details {
    max-width: 760px;
    border-bottom: 1px solid var(--directory-color-border);
}

.directory-voucher-faq summary {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 0;
    color: var(--directory-color-heading);
    cursor: pointer;
    font-weight: 700;
    list-style: none;
}

.directory-voucher-faq summary::-webkit-details-marker {
    display: none;
}

.directory-voucher-faq summary::after {
    content: "+";
    color: var(--directory-color-cta);
    font-size: 1.25rem;
    font-weight: 500;
}

.directory-voucher-faq details[open] summary::after {
    content: "-";
}

/* Center-detail-page FAQ accordion (directory_render_detail_faq_section(), per-center "faq"
   custom field) — same visual pattern as .directory-voucher-faq above, own class since it lives
   in a different template context. */
.directory-detail-faq details {
    border-bottom: 1px solid var(--directory-color-border);
}

.directory-detail-faq details:first-of-type {
    border-top: 1px solid var(--directory-color-border);
}

.directory-detail-faq summary {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 0;
    color: var(--directory-color-heading);
    cursor: pointer;
    font-weight: 700;
    list-style: none;
}

.directory-detail-faq summary::-webkit-details-marker {
    display: none;
}

.directory-detail-faq summary::after {
    content: "+";
    color: var(--directory-color-cta);
    font-size: 1.25rem;
    font-weight: 500;
    flex: 0 0 auto;
}

.directory-detail-faq details[open] summary::after {
    content: "-";
}

.directory-detail-faq details > div p:last-child {
    margin-bottom: 1rem;
}

/* FAQ markup (per-center "faq" field): <summary> wraps an <h3 itemprop="name"> so every question
   is a real heading for crawlers/LLMs, while the visible look stays the plain accordion row
   above - the heading is reset to inherit the summary's own type, no extra margin/size. */
.directory-detail-faq summary h3 {
    /* !important: the global h3 rule near the top of this file sets color and font-size with
       !important too, so a plain reset here would lose. */
    margin: 0;
    color: var(--directory-color-heading, #171717) !important;
    font-family: inherit;
    font-size: 1rem !important;
    font-weight: 700;
    line-height: 1.4;
}

.directory-detail-faq summary:focus-visible {
    outline: 2px solid var(--directory-color-cta, #43D6C2);
    outline-offset: 2px;
    border-radius: .25rem;
}

.directory-detail-faq summary:hover h3 {
    color: var(--directory-color-cta-hover, #29C8B3) !important;
}

.directory-detail-faq details > div {
    padding: 0 2rem .25rem 0;
    color: var(--directory-color-text, #5F6368);
    line-height: 1.7;
}

.directory-detail-faq details > div p {
    margin: 0 0 .75rem;
}

.directory-detail-faq details > div ul,
.directory-detail-faq details > div ol {
    margin: 0 0 .75rem;
    padding-left: 1.25rem;
}

.directory-detail-faq details > div a {
    text-decoration: underline;
    text-underline-offset: 2px;
}

.directory-voucher-sidebar {
    position: sticky;
    top: 7rem;
    display: grid;
    gap: 1rem;
}

.directory-voucher-side-card,
.directory-voucher-cta {
    padding: 1.35rem;
}

.directory-voucher-side-card dl {
    display: grid;
    margin: 0;
}

.directory-voucher-side-card dl > div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .6rem 0;
    border-bottom: 1px dashed var(--directory-color-border);
}

.directory-voucher-side-card dl > div:last-child {
    border-bottom: 0;
}

.directory-voucher-side-card dt {
    color: var(--directory-color-text);
    font-weight: 400;
}

.directory-voucher-side-card dd {
    margin: 0;
    color: var(--directory-color-heading);
    font-weight: 700;
    text-align: right;
}

.directory-voucher-side-nav {
    display: grid;
    gap: .55rem;
}

.directory-voucher-side-nav a {
    padding-left: .75rem;
    border-left: 2px solid transparent;
    color: var(--directory-color-text);
}

.directory-voucher-side-nav a:hover,
.directory-voucher-side-nav a:focus-visible {
    border-left-color: var(--directory-color-cta);
}

.directory-voucher-cta {
    background: var(--directory-color-section-alt);
}

.directory-voucher-cta p {
    margin: 0 0 1rem;
    color: var(--directory-color-text);
    line-height: 1.55;
}

.directory-voucher-related {
    margin-top: clamp(3rem, 6vw, 5rem);
}

.directory-voucher-related__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.directory-voucher-center-card {
    display: grid;
    gap: .35rem;
    padding: 1.25rem;
    color: var(--directory-color-heading);
    text-decoration: none;
    transition: var(--directory-card-transition);
}

.directory-voucher-center-card:hover,
.directory-voucher-center-card:focus-visible {
    border-color: var(--directory-card-border-hover);
    color: var(--directory-color-heading);
    box-shadow: var(--directory-card-shadow-hover);
    text-decoration: none;
    transform: var(--directory-card-transform-hover);
}

.directory-voucher-center-card strong {
    transition: color .2s ease;
}

.directory-voucher-center-card:hover strong,
.directory-voucher-center-card:focus-visible strong {
    color: var(--directory-color-cta);
}

.directory-voucher-center-card span {
    color: var(--directory-color-text);
    font-size: .9rem;
}

.directory-voucher-center-card em {
    justify-self: start;
    margin-top: .35rem;
    padding: .22rem .6rem;
    border-radius: 999px;
    background: var(--directory-color-icon-bg);
    color: var(--directory-color-cta);
    font-size: .78rem;
    font-style: normal;
    font-weight: 700;
}

@media (max-width: 991.98px) {
    .directory-voucher-layout {
        grid-template-columns: 1fr;
    }

    .directory-voucher-sidebar {
        position: static;
    }

    .directory-voucher-related__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .directory-voucher-page {
        padding-right: 1.25rem;
        padding-left: 1.25rem;
    }

    .directory-voucher-related__grid {
        grid-template-columns: 1fr;
    }
}

.directory-site-footer {
    margin-top: 2rem;
    background: #f6f9fc;
    border-top: 1px solid #dbe4ee;
    color: #334155;
}

.directory-site-footer__main,
.directory-site-footer__bottom {
    max-width: 1320px;
    margin: 0 auto;
    padding-right: 1rem;
    padding-left: 1rem;
}

.directory-site-footer__main {
    display: grid;
    grid-template-columns: minmax(240px, 1.3fr) repeat(4, minmax(150px, .75fr));
    gap: 3rem;
    padding-top: 4.5rem;
    padding-bottom: 4.5rem;
}

.directory-site-footer__logo {
    display: inline-flex;
    align-items: center;
    max-width: 210px;
    margin-bottom: 1.4rem;
}

.directory-site-footer__logo img {
    display: block;
    width: 100%;
    height: auto;
    filter: invert(1) brightness(.18) saturate(1.1);
}

.directory-site-footer__brand p {
    max-width: 310px;
    margin: 0;
    color: #475569;
    font-size: 1.05rem;
    line-height: 1.45;
}

.directory-site-footer__heading {
    margin: 0 0 1.15rem;
    color: #071225;
    font-size: 1rem !important;
    font-weight: 800;
    line-height: 1.25;
}

.directory-site-footer__nav ul {
    display: grid;
    gap: .65rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.directory-site-footer__nav a {
    color: #475569;
    font-size: 1.02rem;
    line-height: 1.35;
    text-decoration: none;
}

.directory-site-footer__nav a:hover,
.directory-site-footer__nav a:focus-visible {
    color: var(--wp--preset--color--primary, #43d6c2);
}

.directory-site-footer__bottom {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    padding-top: 1.9rem;
    padding-bottom: 1.9rem;
    border-top: 1px solid #dbe4ee;
    color: #475569;
    font-size: .95rem;
}

.directory-site-footer__bottom p {
    margin: 0;
}

.directory-site-footer__bottom span {
    white-space: nowrap;
}

.directory-opening-hours__title,
.directory-contact-title {
    margin: 0 0 1rem;
    font-weight: 800;
}

/* All three sidebar card headings at one explicit size, overriding the sitewide h3 rule
   (--directory-h3-size, !important) which otherwise wins regardless of specificity. */
.directory-opening-hours__title,
.directory-contact-title,
body.single-gd_place .directory-sidebar-report-card__title {
    font-size: 17px !important;
}

/* "Öffnungszeiten" and its Ge&ouml;ffnet/Geschlossen status on one line, status pushed to the right. */
.directory-opening-hours__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin: 0 0 1rem;
}

.directory-opening-hours__head .directory-opening-hours__title {
    margin: 0;
}

.directory-sidebar-image {
    display: block;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
}

.directory-sidebar-image__figure {
    display: block;
    margin: 0;
    padding: 0;
}

.directory-sidebar-image .row,
.directory-sidebar-image .col,
.directory-sidebar-image .col-12,
.directory-sidebar-image .col-md-8,
.directory-sidebar-image [class*="col-"] {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.directory-sidebar-image .col.position-relative {
    margin-bottom: 0 !important;
}

.directory-sidebar-image figure,
.directory-sidebar-image img {
    display: block;
    width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
    border-radius: 8px 8px 0 0 !important;
}

.directory-opening-hours__rows {
    display: grid;
    gap: .25rem;
    font-size: .9rem;
}

.directory-opening-hours__status {
    display: inline-flex;
    gap: .45rem;
    align-items: center;
    margin: 0;
    font-size: .9rem;
    font-weight: 600;
}

.directory-opening-hours__status-icon {
    width: 1rem;
    opacity: .55;
    text-align: center;
}

.directory-opening-hours__status.is-open {
    color: #18a957;
}

.directory-opening-hours__status.is-open .directory-opening-hours__status-icon {
    opacity: 1;
}

.directory-opening-hours__until {
    color: #64748b;
    font-weight: 500;
}

.directory-opening-hours__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: baseline;
}

.directory-opening-hours__value {
    font-weight: 700;
    text-align: right;
    white-space: nowrap;
}

.directory-opening-hours__note {
    margin: .9rem 0 0;
    font-size: .9rem;
    line-height: 1.35;
}

.directory-sidebar-error-widget {
    margin: 0;
    padding: 0 1.25rem 1.15rem;
}

.directory-sidebar-error-notice {
    padding: 0;
    color: var(--directory-color-muted);
    font-size: .8rem;
    line-height: 1.45;
    background: none !important;
    border: 0 !important;
    border-radius: 0;
    box-shadow: none;
}

.directory-sidebar-error-notice p {
    margin: 0;
    color: var(--directory-color-muted);
    font-size: .8rem;
    line-height: 1.45;
}

.directory-sidebar-error-notice a {
    color: var(--directory-color-cta);
    font-weight: 500;
    text-decoration: none;
}

.directory-sidebar-error-notice a:hover,
.directory-sidebar-error-notice a:focus-visible {
    color: var(--directory-color-cta-hover);
    text-decoration: underline;
}

/* Sidebar cards: image / opening hours / contact / report-a-problem each read as their own separate
   rounded card with a gap between, instead of one continuous list-group box with divider lines. */
body.single-gd_place .directory-detail-main-grid__sidebar .list-group.sticky-top {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
}

body.single-gd_place .directory-detail-main-grid__sidebar .list-group.sticky-top > .list-group-item {
    border: 0 !important;
    border-radius: var(--directory-card-radius, 16px) !important;
    background: var(--directory-color-card, #fff) !important;
    box-shadow: var(--directory-card-shadow, 0 1px 2px rgba(10, 10, 10, .03)) !important;
}

/* 20px inner padding on every sidebar card except the image (which stays edge-to-edge). */
body.single-gd_place .directory-detail-main-grid__sidebar .list-group.sticky-top > .list-group-item:not(.directory-sidebar-image) {
    padding: 20px !important;
}

body.single-gd_place .directory-detail-main-grid__sidebar .directory-sidebar-image,
body.single-gd_place .directory-detail-main-grid__sidebar .directory-sidebar-image img,
body.single-gd_place .directory-detail-main-grid__sidebar .directory-sidebar-image figure {
    border-radius: var(--directory-card-radius, 16px) !important;
}

/* Opening-hours status: a colored dot instead of the clock icon, matching the plain "Ge\00f6ffnet" style. */
body.single-gd_place .directory-opening-hours__status-icon {
    display: none;
}

body.single-gd_place .directory-opening-hours__status::before {
    content: "";
    flex: 0 0 auto;
    width: .45rem;
    height: .45rem;
    border-radius: 50%;
    background: currentColor;
}

/* "Angabe falsch?" report-a-problem card: mint CTA, replacing the old plain error notice. */
/* Needs to out-specificity (not just out-!important) the generic white-card rule above — that rule
   targets ".list-group-item" (5 chained classes) which is MORE specific than a single class selector
   here would be, so both being !important still let the generic rule win. Matching the same chain plus
   this card's own class beats it. */
body.single-gd_place .directory-detail-main-grid__sidebar .list-group.sticky-top > .list-group-item.directory-sidebar-report-card {
    background: #EAF7F2 !important;
}

body.single-gd_place .directory-sidebar-report-card__title {
    margin: 0 0 .5rem;
    /* color/size come from the sitewide h3 rule (!important) — matches the other two card headings. */
    font-weight: 800;
}

body.single-gd_place .directory-sidebar-report-card__text {
    margin: 0 0 .75rem;
    color: var(--directory-color-text, #5F6368);
    font-size: .9rem;
    line-height: 1.45;
}

body.single-gd_place .directory-sidebar-report-card__link {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    color: var(--directory-color-cta, #43D6C2);
    font-weight: 700;
    text-decoration: none;
}

body.single-gd_place .directory-sidebar-report-card__link:hover,
body.single-gd_place .directory-sidebar-report-card__link:focus-visible {
    color: var(--directory-color-cta-hover, #29C8B3);
    text-decoration: underline;
}

/* Data-provenance note below the sidebar cards. */
body.single-gd_place .directory-sidebar-data-note {
    margin: 0;
    padding: 0 .25rem;
    color: var(--directory-color-muted, #94A3B8);
    font-size: .8rem;
    line-height: 1.45;
}

body.single-gd_place .directory-sidebar-data-note a {
    color: var(--directory-color-muted, #94A3B8);
    text-decoration: underline;
}

body.single-gd_place .directory-sidebar-data-note a:hover,
body.single-gd_place .directory-sidebar-data-note a:focus-visible {
    color: var(--directory-color-text, #5F6368);
}

.categories {
    /* WordPress's own Global Styles (theme.json) ship a decorative default
       gradient for this class - override it explicitly so "no background"
       actually means no background, instead of just falling through to it. */
    background: transparent;
}

body.home .categories,
body.home .directory-site-footer {
    position: relative;
    left: 50%;
    width: 100vw;
    max-width: 100vw;
    margin-right: -50vw;
    margin-left: -50vw;
    padding-right: 0;
    padding-left: 0;
}

body.geodir-archive .directory-site-footer {
    position: relative;
    left: 50%;
    width: 100vw;
    max-width: 100vw;
    margin-right: -50vw;
    margin-left: -50vw;
    margin-bottom: 0 !important;
    padding-right: 0;
    padding-left: 0;
}

body.home .categories > .wp-block-blockstrap-blockstrap-widget-container {
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.categories > .wp-block-blockstrap-blockstrap-widget-container {
    max-width: 1320px;
    margin-right: auto;
    margin-left: auto;
    padding-right: 1rem;
    padding-left: 1rem;
}

.categories .directory-location-cards__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.5rem;
}

.categories .directory-location-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .75rem;
    align-items: center;
    min-height: 88px;
    padding: 1.2rem 1.4rem;
    color: var(--wp--preset--color--dark-black, #1f1b2d);
    background: #fff;
    text-decoration: none;
}

.categories .directory-location-card:hover,
.categories .directory-location-card:focus-visible {
    color: var(--wp--preset--color--dark-black, #1f1b2d);
}

.categories .directory-location-card__pin {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.25rem;
    color: #4463ff;
    font-size: 1rem;
}

.categories .directory-location-card__body {
    display: grid;
    gap: .08rem;
    min-width: 0;
}

.categories .directory-location-card__name {
    overflow: hidden;
    color: #071225;
    font-weight: 700;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.categories .directory-location-card__count {
    color: #475569;
    font-size: .95rem;
    line-height: 1.2;
}

.categories .directory-location-card__arrow {
    color: #64748b;
    font-size: 1.55rem;
    line-height: 1;
}

.geodir-loop-container .geodir-listing-posts {
    align-items: stretch;
}

.directory-archive-card {
    display: grid;
    grid-template-rows: auto auto auto auto;
    gap: .8rem;
    height: 100%;
    padding: 1.15rem 1.25rem;
    background: #fff;
    color: inherit;
    font-size: .75rem;
    text-decoration: none;
}

.directory-archive-card:hover,
.directory-archive-card:focus-visible {
    color: inherit;
    outline: 0;
    text-decoration: none;
}

.directory-featured-centers-carousel .directory-archive-card {
    min-height: 190px;
}

.directory-featured-centers-carousel .carousel-inner {
    overflow: visible;
}

.directory-featured-centers-carousel__row {
    margin-right: 0;
    margin-left: 0;
}

body.home .directory-home-magazine .carousel-control-prev,
body.home .directory-home-magazine .carousel-control-next {
    display: none !important;
}

.directory-featured-centers-carousel .directory-center-slider-control {
    display: none;
}

@media (min-width: 992px) {
    .directory-featured-centers-carousel .directory-center-slider-control {
        position: absolute !important;
        top: 50% !important;
        bottom: auto !important;
        display: flex !important;
        align-items: center;
        justify-content: center;
        width: 2.75rem;
        height: 2.75rem;
        background: #fff;
        border: 1px solid var(--directory-card-border);
        border-radius: 999px;
        box-shadow: var(--directory-card-shadow-hover);
        opacity: 1 !important;
        transform: translateY(-50%);
        transition: var(--directory-card-transition);
        z-index: 5;
    }

    .directory-featured-centers-carousel .directory-center-slider-control--prev {
        left: -1.35rem !important;
    }

    .directory-featured-centers-carousel .directory-center-slider-control--next {
        right: -1.35rem !important;
    }

    .directory-featured-centers-carousel .directory-center-slider-control:hover,
    .directory-featured-centers-carousel .directory-center-slider-control:focus-visible {
        border-color: var(--directory-card-border-hover);
        transform: translateY(-50%) translateY(-2px);
    }

    .directory-featured-centers-carousel .directory-center-slider-control .carousel-control-prev-icon,
    .directory-featured-centers-carousel .directory-center-slider-control .carousel-control-next-icon {
        width: 1rem;
        height: 1rem;
        filter: invert(12%) sepia(29%) saturate(1275%) hue-rotate(183deg) brightness(91%) contrast(98%);
    }
}

.directory-archive-card__title {
    display: block;
    margin: 0;
    color: #071225;
    font-size: 1.1rem !important;
    font-weight: 700;
    line-height: 1.3;
}

.directory-archive-card__excerpt {
    display: -webkit-box;
    overflow: hidden;
    margin: 0;
    color: var(--directory-color-text, #475569);
    font-size: 0.9rem;
    line-height: 1.45;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    /* -webkit-line-clamp's own height math can round up by a sub-pixel on some mobile
       renderers, letting the top sliver of a 3rd line peek through under overflow:hidden.
       A hard max-height matching exactly 2 lines (line-height * 2) removes that gap. */
    max-height: 2.9em;
}

.directory-archive-card:hover .directory-archive-card__title,
.directory-archive-card:focus-visible .directory-archive-card__title {
    color: var(--wp--preset--color--primary, #43d6c2);
}

.directory-archive-card__meta,
.directory-archive-card__stats {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem 1rem;
    align-items: center;
}

.directory-archive-card__meta {
    justify-content: space-between;
    margin-top: auto;
    padding-top: .75rem;
    border-top: 1px solid #edf2f7;
    color: #475569;
    font-size: .75rem;
}

.directory-archive-card__meta span,
.directory-archive-card__stats span {
    display: inline-flex;
    gap: .4rem;
    align-items: center;
}

.directory-icon {
    display: inline-block;
    flex: 0 0 auto;
    width: .9rem;
    height: .9rem;
    color: currentColor;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    fill: none;
    vertical-align: -.12em;
}

.directory-archive-card__hours.is-open {
    color: #18a957;
    font-weight: 600;
}

.directory-archive-card__hours.is-open i {
    color: currentColor;
    opacity: 1;
}

.directory-archive-card__stats {
    color: #334155;
    font-size: .75rem;
}

.directory-archive-card__hours {
    margin-left: auto;
    text-align: right;
}

.directory-archive-card__stats strong {
    font-weight: 600;
}

/* Explains why a search result matched when it wasn't the center's own name/city, e.g. a shop
   search - directory_render_matched_tag_stat() (functions.php). */
.directory-archive-card__matched-tag {
    color: var(--directory-color-cta-hover, #29c8b3);
    font-weight: 600;
}

.directory-rating-compact {
    display: inline-flex;
    gap: .32rem;
    align-items: center;
}

.directory-rating-compact .directory-icon--star,
.directory-svg-stars .directory-icon--star {
    color: var(--directory-color-rating);
    fill: currentColor;
    stroke: currentColor;
}

.directory-rating-compact strong {
    font-weight: 600;
}

.directory-rating-compact span {
    color: #64748b !important;
}

.directory-svg-stars {
    display: inline-flex;
    gap: .12rem;
    align-items: center;
}

.directory-svg-stars__star:not(.is-filled) .directory-icon--star {
    color: var(--directory-color-border);
    fill: none;
}

body.single-gd_place #commentform .gd-rating-input .fa-star {
    width: 1rem;
    height: 1rem;
    margin-right: .08rem;
    vertical-align: -.12em;
}

body.single-gd_place #commentform .gd-rating-input .fa-star::before {
    content: "";
    display: block;
    width: 1rem;
    height: 1rem;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 3 2.7 5.47 6.03.88-4.36 4.25 1.03 6-5.4-2.84-5.4 2.84 1.03-6-4.36-4.25 6.03-.88L12 3Z' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 3 2.7 5.47 6.03.88-4.36 4.25 1.03 6-5.4-2.84-5.4 2.84 1.03-6-4.36-4.25 6.03-.88L12 3Z' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

body.single-gd_place #commentform .gd-rating-input .gd-rating-foreground .fa-star::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 3 2.7 5.47 6.03.88-4.36 4.25 1.03 6-5.4-2.84-5.4 2.84 1.03-6-4.36-4.25 6.03-.88L12 3Z' fill='black'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 3 2.7 5.47 6.03.88-4.36 4.25 1.03 6-5.4-2.84-5.4 2.84 1.03-6-4.36-4.25 6.03-.88L12 3Z' fill='black'/%3E%3C/svg%3E");
}

/* The favorite-heart badge and the header search box's "clear input" icon are both built by
   GeoDirectory's own JS at runtime (from a JSON icon-name config for the heart; from a plain
   template string for the clear button) — never as literal HTML in the page source — so
   directory_replace_static_font_awesome_icons() (functions.php) can't reach them with a regex.
   Same CSS mask-image technique as the .fa-star rating widget above: the underlying <i class="fa…">
   element, its classes and any JS click/hover binding on it are left completely untouched; only the
   glyph's own rendering is swapped for our outline SVG, so it no longer depends on Font Awesome's
   font ever loading. ".fas.fa-heart" (GeoDirectory's "favorited" state) swaps to the filled variant,
   matching the outline-when-empty / filled-when-active convention already used for star ratings. */
.fa-heart::before {
    content: "";
    display: inline-block;
    width: 1em;
    height: 1em;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.fas.fa-heart::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z' fill='black'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z' fill='black'/%3E%3C/svg%3E");
}

.geodir-search-input-label-clear.fa-times::before {
    content: "";
    display: inline-block;
    width: 1em;
    height: 1em;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18 6 6 18' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='m6 6 12 12' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18 6 6 18' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='m6 6 12 12' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

body.single-gd_place .geodir-posts-carousel .directory-archive-card {
    min-height: 190px;
}

.directory-archive-heading {
    width: 100%;
    margin-bottom: 2rem;
    padding-right: 0;
    padding-left: 0;
}

.directory-archive-heading h1 {
    max-width: none;
}

body.geodir-page-search #main > .row > .col:last-child,
body.geodir-page-search #main > .row > .wp-block-blockstrap-blockstrap-widget-container.mt-0.pt-0.pe-0.ps-0.bg-image-fixed.col.z-index-1 {
    display: none !important;
}

/* GeoDirectory drops the results widget in as a sibling of the search-form column inside a
   row-cols-md-2 row, so both got squeezed to 50%. On search we want one full-width stack. */
body.geodir-page-search #main > .row {
    display: block !important;
}

body.geodir-page-search #main > .row > .col,
body.geodir-page-search #main > .row > .wp-block-geodirectory-geodir-widget-loop {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
}

/* GeoDirectory's native search map and its pager page over the full unfiltered gd_place
   query (hundreds of centers), not the handful of fuzzy-matched results shown above - so
   they only contradict each other on this page. Hide both; the result list is complete. */
body.geodir-page-search .main_map_wrapper,
body.geodir-page-search #gd_map_canvas_archive_wrapper,
body.geodir-page-search .wp-block-geodirectory-geodir-widget-map,
body.geodir-page-search .wp-block-geodirectory-geodir-widget-loop-paging,
body.geodir-page-search .geodir-loop-paging-container {
    display: none !important;
}

/* Search results render as a single-column list, not a card grid - with only a handful
   of fuzzy matches a 2-4 column grid left them stranded as tiny boxes in a wide empty row. */
body.geodir-page-search .geodir-loop-container > .row,
body.geodir-page-search .geodir-listings > .row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
    align-items: stretch;
    margin: 0 !important;
    padding: 0 !important;
}

body.geodir-page-search .geodir-loop-container > .row > .col,
body.geodir-page-search .geodir-listings > .row > .col {
    display: flex;
    flex: none !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
}

body.geodir-page-search .geodir-loop-container > .row > .col > *,
body.geodir-page-search .geodir-listings > .row > .col > *,
body.geodir-page-search .directory-archive-card {
    width: 100%;
    height: 100%;
}

/* Full-width list rows: keep the running text at a readable measure and lay the
   stats out in a row rather than stacked, so the card reads as a list item. */
body.geodir-page-search .directory-archive-card {
    padding: 1.35rem 1.6rem;
}

body.geodir-page-search .directory-archive-card__excerpt {
    max-width: 72ch;
}

body.geodir-page-search .directory-archive-card__stats {
    flex-wrap: wrap;
    gap: .35rem 1.5rem;
}

.geodir-archive-map-wrap,
.geodir-archive-map-wrap .stickymap,
.geodir-archive-map-wrap .geodir_map_container,
.geodir-archive-map-wrap .main_map_wrapper,
.geodir-archive-map-wrap .iprelative,
.geodir-archive-map-wrap .geodir-map-canvas,
.geodir-archive-map-wrap .loading_div {
    height: auto !important;
    min-height: 0 !important;
}

.geodir-archive-map-wrap .main_map_wrapper,
.geodir-archive-map-wrap .iprelative,
.geodir-archive-map-wrap .geodir-map-canvas,
.geodir-archive-map-wrap .loading_div {
    aspect-ratio: 5 / 3;
    max-height: 62vh;
}

.geodir-archive-map-wrap {
    overflow: visible !important;
}

.geodir-archive-map-wrap .geodir-map-canvas {
    border-radius: var(--directory-card-radius, 16px);
}

/* directory_relocate_archive_map_beside_heading() (functions.php) wraps [heading + entries row]
   into .directory-archive-left-col and moves the map out beside it as .directory-archive-map-col,
   both inside a new .directory-archive-two-col — a plain 2-item flex row (a prior version tried
   a #main-wide CSS grid with the map spanning grid-row: 1 / -1 instead; that didn't render
   correctly against this template's many other #main children — the entries row broke out to
   full width and the new "Sortierung" control ended up invisible behind the map). A flex row
   with exactly the two elements that need to sit side by side doesn't depend on how many other
   siblings happen to exist. The map still starts level with the H1 and stays sticky for exactly
   the left column's height, releasing right as that runs out — anything after this wrapper
   (e.g. a bottom category description) sits outside it, full width, below both columns. */
@media (min-width: 992px) {
    /* align-items: stretch (the flex default — kept explicit as a reminder not to "fix" it to
       flex-start) so .directory-archive-map-col is as TALL as .directory-archive-left-col, not
       just as tall as the map itself. position: sticky only has room to stay pinned while its
       own parent scrolls past underneath it — with flex-start, the map-col was only ever as
       tall as the map, so there was no extra height for "sticky" to work with and it just
       scrolled away immediately instead of staying put. */
    body.geodir-archive:not(.geodir-page-search) .directory-archive-two-col {
        display: flex !important;
        align-items: stretch !important;
        gap: 2rem;
    }

    body.geodir-archive:not(.geodir-page-search) .directory-archive-left-col {
        flex: 1 1 calc(61.8% - 1rem) !important;
        min-width: 0;
    }

    /* width:100%, not auto: this column contains a card grid (row-cols-sm-2/md-3) whose cards
       get percentage widths — inside a flex item sized to "auto" (shrink-to-fit), a browser can't
       resolve those percentages against an unknown container size and falls back to each card's
       own max-content width instead, i.e. its excerpt text laid out on one un-wrapped line. That
       measured out to 30,000+ px in testing (a local reproduction of the real markup+CSS,
       verified with getComputedStyle — this exact rule is the one line that fixed it), which is
       what was actually behind the entries spilling out full-width and the "Sortierung" control
       landing off past the visible viewport instead of next to "Filter". */
    body.geodir-archive:not(.geodir-page-search) .directory-archive-left-col > .row > .col:first-child {
        flex: none !important;
        width: 100% !important;
        max-width: none !important;
        min-width: 0;
    }

    body.geodir-archive:not(.geodir-page-search) .directory-archive-map-col {
        flex: 0 0 calc(38.2% - 1rem) !important;
        min-width: 320px;
        margin-top: 0 !important;
    }

    body.geodir-archive:not(.geodir-page-search) .directory-archive-map-col .sticky-top {
        position: sticky !important;
        top: 6.75rem !important;
    }

    /* Airbnb-style: the map fills most of the viewport height while pinned, instead of the
       aspect-ratio 5:3 / max 62vh box sized for the old, much-shorter side-by-side layout. */
    body.geodir-archive:not(.geodir-page-search) .directory-archive-map-col .main_map_wrapper,
    body.geodir-archive:not(.geodir-page-search) .directory-archive-map-col .iprelative,
    body.geodir-archive:not(.geodir-page-search) .directory-archive-map-col .geodir-map-canvas,
    body.geodir-archive:not(.geodir-page-search) .directory-archive-map-col .loading_div {
        aspect-ratio: auto !important;
        height: calc(100vh - 9rem) !important;
        max-height: none !important;
    }

    /* Breathing room at the "fold" — where the sticky map lets go and the page's normal content
       (a bottom category description, on pages that have one) takes over — so that transition
       doesn't read as the map's edge butting straight up against the next thing. */
    body.geodir-archive:not(.geodir-page-search) .directory-archive-two-col {
        margin-bottom: 2rem;
    }
}

/* Mobile map toggle (mallfinder-archive-filters.php: the "Karte anzeigen" button + open/close
   JS) — hidden on desktop by default; the (max-width: 991.98px) block below is what actually
   shows the button and, once tapped, the map itself as a full-screen overlay. */
.directory-archive-map-toggle,
.directory-archive-map-col__mobile-bar,
.directory-archive-map-col__close,
.directory-archive-map-col__back {
    display: none;
}

@media (max-width: 991.98px) {
    body.geodir-archive:not(.geodir-page-search) .directory-archive-map-col {
        display: none;
    }

    body.geodir-archive:not(.geodir-page-search) .directory-archive-map-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: .4rem;
        width: 100%;
        margin-top: .75rem;
        padding: .6rem 1.1rem;
        border: 1px solid #E2E2E2;
        border-radius: 999px;
        background: #fff;
        color: var(--directory-color-heading, #171717);
        font-size: .9rem;
        font-weight: 500;
        cursor: pointer;
    }

    /* Filter + Sortierung stay on one row: less padding, no gap to spare, and the "Sortierung"
       label text goes (the icon + the select's own value, e.g. "Empfehlung", still say what it
       is) — with both pills' full desktop padding plus that label, the two together were wider
       than most phone screens and wrapped "Sortierung" onto its own line. */
    body.geodir-archive:not(.geodir-page-search) .directory-archive-toolbar {
        flex-wrap: nowrap;
        gap: .5rem;
    }

    body.geodir-archive:not(.geodir-page-search) .directory-archive-filters__toggle,
    body.geodir-archive:not(.geodir-page-search) .directory-archive-sort {
        padding: .4rem .75rem;
        font-size: .85rem;
    }

    body.geodir-archive:not(.geodir-page-search) .directory-archive-sort__label {
        display: none;
    }

    /* Tapping "Karte anzeigen" adds this body class (mallfinder_archive_map_toggle_script());
       any data-map-close button removes it again. !important throughout this override: the
       "hidden by default" rule above it (body.geodir-archive:not(.geodir-page-search)
       .directory-archive-map-col) is MORE specific (3 classes vs. 2 here) and would otherwise
       keep winning regardless of source order. */
    body.directory-mobile-map-open .directory-archive-map-col {
        display: flex !important;
        flex-direction: column;
        position: fixed !important;
        inset: 0;
        z-index: 1200;
        background: #fff;
        overflow-y: auto;
        padding: 0 1rem 1rem;
    }

    /* No point being sticky full-screen — it's already the only thing on screen. */
    body.directory-mobile-map-open .directory-archive-map-col .sticky-top {
        position: static !important;
        top: auto !important;
    }

    body.directory-mobile-map-open .directory-archive-map-col .main_map_wrapper,
    body.directory-mobile-map-open .directory-archive-map-col .iprelative,
    body.directory-mobile-map-open .directory-archive-map-col .geodir-map-canvas,
    body.directory-mobile-map-open .directory-archive-map-col .loading_div {
        aspect-ratio: auto !important;
        height: calc(100vh - 10rem) !important;
        max-height: none !important;
    }

    body.directory-mobile-map-open .directory-archive-map-col__mobile-bar {
        display: flex;
        justify-content: flex-end;
        position: sticky;
        top: 0;
        padding: .75rem 0;
        background: #fff;
        z-index: 1;
    }

    body.directory-mobile-map-open .directory-archive-map-col__close {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 2.25rem;
        height: 2.25rem;
        border: 1px solid #E2E2E2;
        border-radius: 50%;
        background: #fff;
        font-size: 1.35rem;
        line-height: 1;
        cursor: pointer;
    }

    body.directory-mobile-map-open .directory-archive-map-col__back {
        display: block;
        width: fit-content;
        margin: 1rem auto 0;
        padding: .6rem 1.5rem;
        border: none;
        border-radius: 999px;
        background: var(--directory-color-cta, #43d6c2);
        color: #fff;
        font-size: .9rem;
        font-weight: 600;
        cursor: pointer;
    }
}

@media (max-width: 991.98px) {
    body.single-gd_place #main > .row {
        display: flex;
    }

    body.single-gd_place #main > .row > .wp-block-blockstrap-blockstrap-widget-container.ms-auto.col-12.col-lg-4,
    body.single-gd_place #main > .row > .wp-block-blockstrap-blockstrap-widget-container.ms-auto.mb-3.ms-lg-auto.col-12.col-lg-4 {
        order: 1;
        margin-left: 0 !important;
    }

    body.single-gd_place #main > .row > .wp-block-blockstrap-blockstrap-widget-container.col-auto.col-lg-7,
    body.single-gd_place #main > .row > .wp-block-blockstrap-blockstrap-widget-container.mb-3.col-auto.col-lg-7 {
        order: 2;
    }

    body.single-gd_place .sticky-top {
        position: static !important;
    }

    .directory-site-footer__main {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 2.2rem;
        padding-top: 3.5rem;
        padding-bottom: 3.5rem;
    }

    .directory-site-footer__brand {
        grid-column: 1 / -1;
    }

    .directory-home-magazine {
        padding-right: 1rem;
        padding-left: 1rem;
    }

    .directory-home-magazine__head {
        align-items: flex-start;
        flex-direction: column;
        margin-bottom: 2rem;
    }

    .directory-home-magazine__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .directory-home-magazine__card--featured {
        grid-template-columns: 1fr;
    }

    .directory-home-magazine__image,
    .directory-home-magazine__image img {
        min-height: 240px;
    }

    .directory-home-magazine__content {
        padding: 1.65rem;
    }

    .directory-magazine-overview .directory-home-magazine__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .categories .directory-location-cards__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .geodir-archive-map-wrap .main_map_wrapper,
    .geodir-archive-map-wrap .iprelative,
    .geodir-archive-map-wrap .geodir-map-canvas,
    .geodir-archive-map-wrap .loading_div {
        max-height: none;
    }

    body.geodir-page-search .geodir-loop-container > .row,
    body.geodir-page-search .geodir-listings > .row {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.25rem;
    }
}

@media (max-width: 575.98px) {
    body.home .directory-home-section,
    body.home .categories,
    body.home .directory-home-magazine {
        padding-top: var(--directory-home-section-y-mobile) !important;
        padding-bottom: var(--directory-home-section-y-mobile) !important;
    }

    .directory-section-heading {
        align-items: flex-start;
        flex-direction: column;
        margin-bottom: 1.5rem;
    }

    .directory-site-footer__main {
        grid-template-columns: 1fr;
    }

    .directory-site-footer__bottom {
        align-items: flex-start;
        flex-direction: column;
    }

    .directory-home-magazine__grid {
        grid-template-columns: 1fr;
    }

    .directory-home-magazine__image,
    .directory-home-magazine__image img {
        min-height: 210px;
    }

    .directory-magazine-overview .directory-home-magazine__grid {
        grid-template-columns: 1fr;
    }

    .directory-contact-grid {
        grid-template-columns: 1fr;
    }

    body.geodir-page-search .geodir-loop-container > .row,
    body.geodir-page-search .geodir-listings > .row {
        grid-template-columns: 1fr;
    }

    .categories .directory-location-cards__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    /* "Bekannte Center im Überblick": all cards in one swipeable row instead of
       being stuck inside whichever single Bootstrap carousel-item happens to be
       .active (the prev/next arrows are desktop-only, so most cards were
       unreachable on mobile before this). */
    .directory-featured-centers-carousel .carousel-inner {
        display: flex;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        gap: 1rem;
        padding-bottom: .5rem;
    }

    .directory-featured-centers-carousel .carousel-item,
    .directory-featured-centers-carousel__row {
        display: contents !important;
    }

    .directory-featured-centers-carousel .col.geodir-post {
        flex: 0 0 78%;
        max-width: 78%;
        padding: 0;
        scroll-snap-align: start;
    }

    /* "Trends, Service & Hintergründe": same swipeable-row treatment. */
    body.home .directory-home-magazine__grid {
        display: flex;
        grid-template-columns: none;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        gap: 1rem;
        padding-bottom: .5rem;
    }

    body.home .directory-home-magazine__card,
    body.home .directory-home-magazine__card--featured {
        flex: 0 0 82%;
        grid-template-columns: 1fr;
        scroll-snap-align: start;
    }
}

.directory-home-hero-subline {
    font-size: 18px !important;
    line-height: 1.55;
}

/* Hero eyebrow: live "open now" status with a state dot */
body.home .directory-hero-status {
    display: block;
    color: var(--directory-color-text, #5f6368);
}

body.home .directory-hero-status strong {
    color: var(--directory-color-heading, #171717);
    font-weight: 700;
}

body.home .directory-hero-status__dot {
    display: inline-block;
    width: .5rem;
    height: .5rem;
    margin-right: .45rem;
    border-radius: 50%;
    vertical-align: middle;
    background: var(--directory-color-muted, #94a3b8);
}

body.home .directory-hero-status__dot.is-open {
    background: var(--directory-color-success, #1eb980);
}

body.home .directory-hero-status__link {
    color: inherit;
    text-decoration: none;
}

body.home .directory-hero-status__link:hover,
body.home .directory-hero-status__link:focus-visible {
    text-decoration: underline;
}

/* Archive/category toolbar: collapsed "Filter" toggle on the left, "Sortierung" on the right */
.directory-archive-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem 1.5rem;
    margin: 0 0 1.5rem;
}

.directory-archive-filters {
    /* <details> — collapsed by default, no native marker (custom chevron on the toggle instead).
       position:relative + the panel below being absolutely positioned takes the open panel out
       of normal flow entirely, so opening it can never push the "Sortierung" pill (a flex
       sibling in .directory-archive-toolbar) down onto a second line — it did exactly that
       when the panel was a normal block, since its own content is wider than it looks. */
    position: relative;
}

.directory-archive-filters > summary {
    list-style: none;
}

.directory-archive-filters > summary::-webkit-details-marker {
    display: none;
}

/* Same pill as .directory-state-pill (Bundesländer links) — border/type/hover all match, just
   with a gap for the chevron added below. */
.directory-archive-filters__toggle {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .4rem 1.1rem;
    border: 1px solid #E2E2E2;
    border-radius: 999px;
    background: #fff;
    color: var(--directory-color-heading, #171717);
    font-size: .9rem;
    font-weight: 500;
    line-height: 1.4;
    cursor: pointer;
    transition: border-color .15s ease, color .15s ease, background-color .15s ease;
}

.directory-archive-filters__toggle::after,
.directory-archive-sort::after {
    content: "\25BE";
    font-size: 1.1rem;
    line-height: 1;
    color: var(--directory-color-cta, #43d6c2);
}

.directory-archive-filters[open] > .directory-archive-filters__toggle::after {
    content: "\25B4";
}

.directory-archive-filters__toggle:hover,
.directory-archive-filters__toggle:focus-visible {
    border-color: var(--directory-color-cta);
    color: var(--directory-color-cta-hover, var(--directory-color-cta));
    background: rgba(67, 214, 194, .08);
}

.directory-archive-filters__panel {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 20;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem 1.5rem;
    width: max-content;
    max-width: min(90vw, 560px);
    margin-top: .5rem;
    padding: .85rem 1.1rem;
    background: var(--directory-color-card, #ffffff);
    border: 1px solid var(--directory-color-border, #e8ecef);
    border-radius: .75rem;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .08);
}

.directory-archive-filters__item {
    display: flex;
    align-items: center;
    gap: .4rem;
    font-size: .9rem;
    color: var(--directory-color-text, #5f6368);
    cursor: pointer;
}

.directory-archive-filters__item input[type="checkbox"] {
    accent-color: var(--directory-color-cta, #43d6c2);
    width: 1rem;
    height: 1rem;
}

.directory-archive-filters__item--select select {
    margin-left: .3rem;
    padding: .3rem .5rem;
    border: 1px solid var(--directory-color-border, #e8ecef);
    border-radius: .4rem;
    font-size: .85rem;
    color: var(--directory-color-text, #5f6368);
}

.directory-archive-filters__submit {
    background: var(--directory-color-cta, #43d6c2);
    color: #ffffff;
    border: none;
    border-radius: 2rem;
    padding: .45rem 1.25rem;
    font-size: .85rem;
    font-weight: 600;
    cursor: pointer;
}

.directory-archive-filters__submit:hover,
.directory-archive-filters__submit:focus-visible {
    background: var(--directory-color-cta-hover, #29c8b3);
}

.directory-archive-filters__reset {
    font-size: .85rem;
    color: var(--directory-color-muted, #94a3b8);
    text-decoration: underline;
}

/* Same pill as .directory-state-pill (Bundesländer links) — border/type/hover all match, just
   with a gap for the chevron and select added below. */
.directory-archive-sort {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .4rem 1.1rem;
    border: 1px solid #E2E2E2;
    border-radius: 999px;
    background: #fff;
    color: var(--directory-color-heading, #171717);
    font-size: .9rem;
    font-weight: 500;
    line-height: 1.4;
    cursor: pointer;
    white-space: nowrap;
    transition: border-color .15s ease, color .15s ease, background-color .15s ease;
}

.directory-archive-sort:hover,
.directory-archive-sort:focus-within {
    border-color: var(--directory-color-cta);
    color: var(--directory-color-cta-hover, var(--directory-color-cta));
    background: rgba(67, 214, 194, .08);
}

.directory-archive-sort__select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border: none;
    background: transparent;
    font: inherit;
    color: inherit;
    cursor: pointer;
}

.directory-archive-sort__select::-ms-expand {
    display: none;
}

.directory-archive-sort__select:focus-visible {
    outline: 2px solid var(--directory-color-cta, #43d6c2);
    outline-offset: 2px;
}

.directory-header-search-item {
    display: flex;
    align-items: center;
    margin-left: 1rem;
}

.directory-header-search {
    position: relative;
    width: min(260px, 28vw);
}

.directory-header-search__icon {
    position: absolute;
    top: 50%;
    left: 0.9rem;
    z-index: 2;
    color: rgba(7, 18, 37, 0.5);
    font-size: 0.85rem;
    line-height: 1;
    pointer-events: none;
    transform: translateY(-50%);
}

.directory-header-search input[type="search"] {
    width: 100%;
    min-height: 2.35rem;
    padding: 0.45rem 1rem 0.45rem 2.25rem;
    border: 1px solid rgba(203, 213, 225, 1);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.96);
    color: #071225;
    font-size: 0.9rem;
    line-height: 1.2;
    box-shadow: 0 1px 8px rgba(15, 23, 42, 0.06);
    transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.directory-header-search input[type="search"]::placeholder {
    color: rgba(71, 85, 105, 0.7);
}

.directory-header-search input[type="search"]:focus {
    border-color: rgba(225, 29, 111, 0.3);
    outline: 0;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.12);
}

body.home .directory-header-search-item,
body.front-page .directory-header-search-item {
    display: none !important;
}

body.geodir-archive .wp-block-geodirectory-geodir-widget-loop-actions,
body.geodir-archive .geodir-loop-actions-container {
    display: none !important;
}

body.geodir-archive .wp-block-geodirectory-geodir-widget-search,
body.geodir-archive .geodir-search-container {
    display: none !important;
}

.directory-center-suggest-wrap {
    position: relative;
}

.directory-center-suggest {
    position: absolute;
    top: calc(100% + 0.45rem);
    right: 0;
    left: 0;
    z-index: 1050;
    overflow: hidden;
    border: 1px solid rgba(203, 213, 225, 1);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 36px rgba(15, 23, 42, 0.14);
}

.directory-center-suggest__item {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.75rem 0.95rem;
    color: #071225;
    text-decoration: none;
    transition: background-color 160ms ease, color 160ms ease;
}

.directory-center-suggest__item + .directory-center-suggest__item {
    border-top: 1px solid rgba(226, 232, 240, 0.9);
}

.directory-center-suggest__item:hover,
.directory-center-suggest__item:focus {
    background: rgba(225, 29, 111, 0.08);
    color: #071225;
    outline: 0;
}

.directory-center-suggest__title {
    overflow: hidden;
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.directory-center-suggest__location {
    overflow: hidden;
    color: rgba(71, 85, 105, 0.78);
    font-size: 0.78rem;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.directory-states-page {
    background: #fff;
    padding: 1.75rem 1rem 5rem;
}

.directory-states-page__inner {
    width: min(1320px, 100%);
    margin: 0 auto;
}

body.page-id-8506 .wp-block-blockstrap-blockstrap-widget-container.mt-9.mb-4.rounded-lg.bg-image-fixed.text-dark.container.position-relative.rounded,
body.page-id-8506 .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-3.pt-4.border-muted.bg-image-fixed.d-flex.border-opacity-25.border-top:has(.bs-share-icons) {
    display: none !important;
}

body.page-id-8506 .entry-content > p {
    margin: 0;
}

.directory-page-navigator {
    margin: 0 0 1.35rem;
    color: #64748b;
    font-size: 0.95rem;
}

.directory-page-navigator ol {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.directory-page-navigator li {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.directory-page-navigator li + li::before {
    content: ">";
    color: #94a3b8;
}

.directory-page-navigator a {
    color: #64748b;
    text-decoration: none;
    transition: color 0.18s ease;
}

.directory-page-navigator a:hover,
.directory-page-navigator [aria-current="page"] {
    color: var(--wp--preset--color--primary, #43d6c2);
}

.directory-states-page__hero {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.72fr);
    gap: 3rem;
    align-items: center;
    margin-bottom: 3rem;
}

.directory-states-page__eyebrow {
    display: inline-flex;
    gap: 0.45rem;
    align-items: center;
    margin-bottom: 1rem;
    color: var(--wp--preset--color--primary, #43d6c2);
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.directory-states-page h1 {
    max-width: 780px;
    margin: 0 0 1rem;
    color: #071225;
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: 0;
}

.directory-states-page__intro p {
    max-width: 720px;
    margin: 0;
    color: #475569;
    font-size: 1.08rem;
    line-height: 1.65;
}

.directory-states-page__stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

.directory-states-page__stats span {
    display: inline-flex;
    gap: 0.35rem;
    align-items: baseline;
    padding: 0.55rem 0.85rem;
    border: 1px solid rgba(203, 213, 225, 1);
    border-radius: 999px;
    background: #fff;
    color: #475569;
    font-size: 0.92rem;
}

.directory-states-page__stats strong {
    color: #071225;
    font-size: 1.05rem;
}

.directory-states-map {
    display: flex;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.directory-states-map img {
    display: block;
    width: min(520px, 100%);
    height: auto;
}

.directory-states-map__shape {
    fill: rgba(225, 29, 111, 0.08);
    stroke: rgba(225, 29, 111, 0.35);
    stroke-width: 1.6;
}

.directory-states-map__dot {
    fill: var(--wp--preset--color--primary, #43d6c2);
    stroke: #fff;
    stroke-width: 1.5;
    transition: transform 180ms ease, fill 180ms ease;
    transform-box: fill-box;
    transform-origin: center;
}

.directory-states-map a:hover .directory-states-map__dot,
.directory-states-map a:focus .directory-states-map__dot {
    fill: #071225;
    transform: scale(1.35);
}

.directory-states-map span {
    color: #475569;
    font-size: 0.92rem;
    font-weight: 700;
}

.directory-states-page .directory-location-cards {
    background: transparent;
}

.directory-states-page .directory-location-cards__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.directory-states-page .directory-location-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.85rem;
    align-items: center;
    min-height: 74px;
    padding: 1rem 1.15rem;
    border: 1px solid var(--directory-card-border);
    border-radius: var(--directory-card-radius);
    background: #fff;
    color: var(--wp--preset--color--dark-black, #1f1b2d);
    text-decoration: none;
    box-shadow: var(--directory-card-shadow);
    transition: var(--directory-card-transition);
}

.directory-states-page .directory-location-card:hover,
.directory-states-page .directory-location-card:focus-visible {
    border-color: var(--directory-card-border-hover);
    color: var(--wp--preset--color--dark-black, #1f1b2d);
    box-shadow: var(--directory-card-shadow-hover);
    outline: 0;
    transform: var(--directory-card-transform-hover);
}

.directory-states-page .directory-location-card__pin {
    color: #4361ff;
}

@media (max-width: 991.98px) {
    .directory-states-page__hero {
        grid-template-columns: 1fr;
    }

    .directory-states-page .directory-location-cards__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .directory-header-search-item {
        width: 100%;
        margin-top: 0.75rem;
        margin-left: 0;
    }

    .directory-header-search {
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .directory-states-page {
        padding: 1.5rem 1rem 4rem;
    }

    .directory-states-page__hero {
        gap: 2rem;
    }

    .directory-states-page .directory-location-cards__grid {
        grid-template-columns: 1fr;
    }
}

/* Site color system */
html,
body {
    background: var(--directory-color-page-bg);
    color: var(--directory-color-text);
}

body,
p,
li,
.geodir_post_meta,
.directory-location-description,
.directory-home-magazine__excerpt,
.directory-archive-card__meta,
.directory-archive-card__stats,
.categories .directory-location-card__count {
    color: var(--directory-color-text);
}

.text-primary,
a,
.directory-section-heading__eyebrow,
.directory-detail-eyebrow,
.directory-home-magazine__eyebrow,
.directory-states-page__eyebrow {
    color: var(--directory-color-eyebrow) !important;
}

body.home nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.home nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.home nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.home nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.home nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.front-page nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.front-page nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.front-page nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.front-page nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.front-page nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .nav-link {
    color: var(--directory-color-icon) !important;
}

body.home nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.home nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.home nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.home nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.home nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.home nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.home nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.home nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.home nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.home nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.front-page nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.front-page nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.front-page nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.front-page nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.front-page nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.front-page nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.front-page nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.front-page nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.front-page nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.front-page nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible {
    color: var(--directory-color-icon) !important;
    opacity: .86;
}

body.home nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.home nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.home nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.home nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.home nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.home nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.home nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.home nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.home nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.home nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.front-page nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.front-page nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.front-page nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.front-page nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.front-page nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.front-page nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.front-page nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.front-page nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.front-page nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.front-page nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible {
    color: var(--directory-color-icon) !important;
    opacity: .86;
}

h1,
h2,
h3,
h4,
h5,
h6,
body.single-gd_place h1,
.directory-archive-card__title,
.categories .directory-location-card__name,
.directory-home-magazine__title,
.directory-center-suggest__title,
.directory-site-footer__heading {
    color: var(--directory-color-heading) !important;
}

body.home h1,
body.front-page h1,
body.home .wp-block-blockstrap-blockstrap-widget-container.bg-custom-gradient h1,
body.home .wp-block-blockstrap-blockstrap-widget-container.bg-custom-gradient h2,
body.home .wp-block-blockstrap-blockstrap-widget-container.bg-custom-gradient p {
    color: var(--directory-color-heading, #171717) !important;
}

.btn-primary,
.btn.btn-primary,
.wp-block-button__link,
button[type="submit"],
input[type="submit"],
.geodir_submit_search,
.bsui .btn-primary,
.bsui .btn.btn-primary,
a.btn-primary {
    border-color: var(--directory-color-cta) !important;
    background-color: var(--directory-color-cta) !important;
    color: #fff !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn.btn-primary:hover,
.btn.btn-primary:focus,
.wp-block-button__link:hover,
.wp-block-button__link:focus,
button[type="submit"]:hover,
button[type="submit"]:focus,
input[type="submit"]:hover,
input[type="submit"]:focus,
.geodir_submit_search:hover,
.geodir_submit_search:focus,
.bsui .btn-primary:hover,
.bsui .btn-primary:focus,
a.btn-primary:hover,
a.btn-primary:focus {
    border-color: var(--directory-color-cta-hover) !important;
    background-color: var(--directory-color-cta-hover) !important;
    color: #fff !important;
}

.directory-archive-card,
.categories .directory-location-card,
.directory-center-suggest,
.directory-states-page .directory-location-card,
.geodir-post .card,
.gd-cptcat-parent .card,
body.single-gd_place #main > .row > .wp-block-blockstrap-blockstrap-widget-container.ms-auto.col-12.col-lg-4 > .wp-block-blockstrap-blockstrap-widget-container,
body.single-gd_place #main > .row > .wp-block-blockstrap-blockstrap-widget-container.ms-auto.mb-3.ms-lg-auto.col-12.col-lg-4 > .wp-block-blockstrap-blockstrap-widget-container {
    background-color: var(--directory-color-card) !important;
    border-color: var(--directory-color-border) !important;
}

body.geodir-archive,
body.single-gd_place,
body.blog,
body.archive,
body.page {
    background-color: var(--directory-color-page-bg);
}

.directory-home-magazine__card,
.directory-archive-card,
.categories .directory-location-card,
.directory-states-page .directory-location-card {
    border-color: var(--directory-color-border) !important;
}

.directory-home-magazine__card:hover,
.directory-home-magazine__card:focus-visible,
.directory-archive-card:hover,
.directory-archive-card:focus-visible,
.categories .directory-location-card:hover,
.categories .directory-location-card:focus-visible,
.directory-states-page .directory-location-card:hover,
.directory-states-page .directory-location-card:focus-visible {
    border-color: rgba(2, 132, 199, .3) !important;
}

.geodir_post_meta .geodir_post_meta_icon,
.directory-archive-card__meta i,
.directory-archive-card__stats i,
.categories .directory-location-card__pin,
.directory-states-page .directory-location-card__pin,
.directory-header-search__icon,
.directory-opening-hours__status i,
.directory-archive-card__hours i {
    color: var(--directory-color-icon) !important;
}

.categories .directory-location-card__pin,
.directory-states-page .directory-location-card__pin {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 999px;
    background: var(--directory-color-icon-bg);
}

.fa-star,
.fas.fa-star,
.gd-list-rating-stars .fa-star,
.directory-archive-card__rating .fa-star {
    color: var(--directory-color-rating) !important;
}

.directory-site-footer {
    background: var(--directory-color-footer) !important;
    border-top-color: var(--directory-color-footer) !important;
    color: #CBD5E1 !important;
}

.directory-site-footer__logo img {
    filter: brightness(0) invert(1);
}

.directory-site-footer__brand p,
.directory-site-footer__nav a,
.directory-site-footer__bottom,
.directory-site-footer__bottom p,
.directory-site-footer__bottom span {
    color: #CBD5E1 !important;
}

.directory-site-footer__heading {
    color: #fff !important;
}

.directory-site-footer__nav a:hover,
.directory-site-footer__nav a:focus-visible {
    color: #fff !important;
}

.directory-site-footer__bottom {
    border-top-color: rgba(226, 232, 240, .16) !important;
}

body.home .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.front-page .wp-block-blockstrap-blockstrap-widget-navbar .nav-link {
    position: relative;
    color: #fff !important;
}

body.home nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.home nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.home nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.home nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.home nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.front-page nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.front-page nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.front-page nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.front-page nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.front-page nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .nav-link {
    color: var(--directory-color-icon) !important;
}

body.home .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.home .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.front-page .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.front-page .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible {
    color: #fff !important;
    opacity: .86;
}

body.home .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-item > .nav-link,
body.home .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-ancestor > .nav-link,
body.home .wp-block-blockstrap-blockstrap-widget-navbar .nav-link.active,
body.home .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[aria-current="page"],
body.front-page .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-item > .nav-link,
body.front-page .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-ancestor > .nav-link,
body.front-page .wp-block-blockstrap-blockstrap-widget-navbar .nav-link.active,
body.front-page .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[aria-current="page"] {
    color: #fff !important;
}

body.home nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-item > .nav-link,
body.home nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-ancestor > .nav-link,
body.home nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .nav-link.active,
body.home nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[aria-current="page"],
body.home nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-item > .nav-link,
body.home nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-ancestor > .nav-link,
body.home nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link.active,
body.home nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[aria-current="page"],
body.home nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-item > .nav-link,
body.home nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-ancestor > .nav-link,
body.home nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link.active,
body.home nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[aria-current="page"],
body.home nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-item > .nav-link,
body.home nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-ancestor > .nav-link,
body.home nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link.active,
body.home nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[aria-current="page"],
body.home nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-item > .nav-link,
body.home nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-ancestor > .nav-link,
body.home nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .nav-link.active,
body.home nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[aria-current="page"],
body.front-page nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-item > .nav-link,
body.front-page nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-ancestor > .nav-link,
body.front-page nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .nav-link.active,
body.front-page nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[aria-current="page"],
body.front-page nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-item > .nav-link,
body.front-page nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-ancestor > .nav-link,
body.front-page nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link.active,
body.front-page nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[aria-current="page"],
body.front-page nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-item > .nav-link,
body.front-page nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-ancestor > .nav-link,
body.front-page nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link.active,
body.front-page nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[aria-current="page"],
body.front-page nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-item > .nav-link,
body.front-page nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-ancestor > .nav-link,
body.front-page nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link.active,
body.front-page nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[aria-current="page"],
body.front-page nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-item > .nav-link,
body.front-page nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-ancestor > .nav-link,
body.front-page nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .nav-link.active,
body.front-page nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[aria-current="page"] {
    color: var(--directory-color-icon) !important;
}

body.home .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-item > .nav-link::after,
body.home .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-ancestor > .nav-link::after,
body.home .wp-block-blockstrap-blockstrap-widget-navbar .nav-link.active::after,
body.home .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[aria-current="page"]::after,
body.front-page .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-item > .nav-link::after,
body.front-page .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-ancestor > .nav-link::after,
body.front-page .wp-block-blockstrap-blockstrap-widget-navbar .nav-link.active::after,
body.front-page .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[aria-current="page"]::after {
    position: absolute;
    right: .75rem;
    bottom: .25rem;
    left: .75rem;
    height: 2px;
    border-radius: 999px;
    background: var(--directory-color-cta);
    content: "";
}

body.home .wp-block-geodirectory-geodir-widget-search + p.wp-block-paragraph,
body.front-page .wp-block-geodirectory-geodir-widget-search + p.wp-block-paragraph {
    color: var(--directory-color-text) !important;
}

body.home .wp-block-geodirectory-geodir-widget-search + p.wp-block-paragraph a,
body.front-page .wp-block-geodirectory-geodir-widget-search + p.wp-block-paragraph a {
    color: var(--directory-color-heading) !important;
    background: var(--directory-color-card) !important;
    border-color: var(--directory-color-border) !important;
}

body.home .wp-block-geodirectory-geodir-widget-search + p.wp-block-paragraph a:hover,
body.home .wp-block-geodirectory-geodir-widget-search + p.wp-block-paragraph a:focus-visible,
body.front-page .wp-block-geodirectory-geodir-widget-search + p.wp-block-paragraph a:hover,
body.front-page .wp-block-geodirectory-geodir-widget-search + p.wp-block-paragraph a:focus-visible {
    color: var(--directory-color-cta-hover) !important;
    background: var(--directory-color-card) !important;
    border-color: var(--directory-card-border-hover) !important;
}

.directory-home-magazine__eyebrow,
.directory-home-magazine__label,
.directory-section-heading__eyebrow,
.directory-detail-eyebrow,
.directory-states-page__eyebrow {
    color: var(--directory-color-eyebrow) !important;
}

body.home nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.home nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.home nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.home nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.home nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.front-page nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.front-page nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.front-page nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.front-page nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.front-page nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.home nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.home nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.home nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.home nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.home nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.home nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.home nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.home nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.home nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.home nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.front-page nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.front-page nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.front-page nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.front-page nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.front-page nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.front-page nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.front-page nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.front-page nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.front-page nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.front-page nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible {
    color: var(--directory-color-icon) !important;
}

.wp-block-blockstrap-blockstrap-widget-navbar .nav-link {
    position: relative;
}

.wp-block-blockstrap-blockstrap-widget-navbar .current-menu-item > .nav-link::after,
.wp-block-blockstrap-blockstrap-widget-navbar .current-menu-ancestor > .nav-link::after,
.wp-block-blockstrap-blockstrap-widget-navbar .nav-link.active::after,
.wp-block-blockstrap-blockstrap-widget-navbar .nav-link[aria-current="page"]::after,
body.blog .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"]::after,
body.single-post .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"]::after,
body.category .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"]::after {
    position: absolute;
    right: .75rem;
    bottom: .25rem;
    left: .75rem;
    height: 2px;
    border-radius: 999px;
    background: var(--directory-color-cta);
    content: "";
}

body.blog .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"],
body.single-post .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"],
body.category .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"] {
    color: var(--directory-color-eyebrow) !important;
}

.wp-block-blockstrap-blockstrap-widget-navbar .current-menu-item > .nav-link,
.wp-block-blockstrap-blockstrap-widget-navbar .current-menu-ancestor > .nav-link,
.wp-block-blockstrap-blockstrap-widget-navbar .nav-link.active,
.wp-block-blockstrap-blockstrap-widget-navbar .nav-link[aria-current="page"] {
    color: var(--directory-color-eyebrow) !important;
}

body.home nav.navbar-dark .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-item > .nav-link,
body.home nav.navbar-dark .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-ancestor > .nav-link,
body.home nav.navbar-dark .wp-block-blockstrap-blockstrap-widget-navbar .nav-link.active,
body.home nav.navbar-dark .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[aria-current="page"],
body.front-page nav.navbar-dark .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-item > .nav-link,
body.front-page nav.navbar-dark .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-ancestor > .nav-link,
body.front-page nav.navbar-dark .wp-block-blockstrap-blockstrap-widget-navbar .nav-link.active,
body.front-page nav.navbar-dark .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[aria-current="page"] {
    color: #fff !important;
}

.wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
.wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.blog .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"]:hover,
body.blog .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"]:focus-visible,
body.single-post .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"]:hover,
body.single-post .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"]:focus-visible,
body.category .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"]:hover,
body.category .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"]:focus-visible {
    color: var(--directory-color-cta) !important;
}

nav[aria-label="breadcrumb"] .breadcrumb-item.active,
nav[aria-label="breadcrumb"] .breadcrumb-item[aria-current="page"],
nav[aria-label="breadcrumb"] .breadcrumb-item.active span,
nav[aria-label="breadcrumb"] .breadcrumb-item[aria-current="page"] span {
    color: var(--directory-color-text) !important;
}

nav[aria-label="breadcrumb"] a {
    color: var(--directory-color-eyebrow) !important;
}

nav[aria-label="breadcrumb"] a:hover,
nav[aria-label="breadcrumb"] a:focus-visible {
    color: var(--directory-color-cta) !important;
}

/* Final consistent navigation states */
.wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
.wp-block-blockstrap-blockstrap-widget-navbar .current-menu-item > .nav-link,
.wp-block-blockstrap-blockstrap-widget-navbar .current-menu-ancestor > .nav-link,
.wp-block-blockstrap-blockstrap-widget-navbar .nav-link.active,
.wp-block-blockstrap-blockstrap-widget-navbar .nav-link[aria-current="page"],
body.blog .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"],
body.single-post .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"],
body.category .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"] {
    color: var(--directory-color-eyebrow) !important;
}

.wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
.wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.blog .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"]:hover,
body.blog .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"]:focus-visible,
body.single-post .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"]:hover,
body.single-post .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"]:focus-visible,
body.category .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"]:hover,
body.category .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"]:focus-visible {
    color: var(--directory-color-eyebrow) !important;
    opacity: .72;
}

body.home nav.navbar-dark .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.home nav.navbar-dark .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-item > .nav-link,
body.home nav.navbar-dark .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-ancestor > .nav-link,
body.home nav.navbar-dark .wp-block-blockstrap-blockstrap-widget-navbar .nav-link.active,
body.home nav.navbar-dark .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[aria-current="page"],
body.front-page nav.navbar-dark .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.front-page nav.navbar-dark .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-item > .nav-link,
body.front-page nav.navbar-dark .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-ancestor > .nav-link,
body.front-page nav.navbar-dark .wp-block-blockstrap-blockstrap-widget-navbar .nav-link.active,
body.front-page nav.navbar-dark .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[aria-current="page"] {
    color: #fff !important;
}

body.home nav.navbar-dark .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.home nav.navbar-dark .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
body.front-page nav.navbar-dark .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
body.front-page nav.navbar-dark .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible {
    color: #fff !important;
    opacity: .78;
}

body.home nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.home nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.home nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.home nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.home nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.front-page nav.bg-transparent-until-scroll.navbar-light .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.front-page nav.bg-transparent-until-scroll.scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.front-page nav.bg-transparent-until-scroll.is-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.front-page nav.bg-transparent-until-scroll.navbar-scrolled .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
body.front-page nav.bg-transparent-until-scroll.color-scheme-flip-on-scroll:not(.navbar-dark) .wp-block-blockstrap-blockstrap-widget-navbar .nav-link {
    color: var(--directory-color-eyebrow) !important;
}

/* Detail review area */
body.single-gd_place .geodir-single-reviews-container {
    margin-top: 2.5rem;
}

body.single-gd_place .geodir-single-reviews-container > h2,
body.single-gd_place #comments .comments-title,
body.single-gd_place #reply-title {
    color: var(--directory-color-heading) !important;
    font-family: inherit;
    letter-spacing: 0;
    text-transform: none;
}

body.single-gd_place .geodir-single-reviews-container > h2 {
    margin-bottom: 1rem;
}

body.single-gd_place .directory-review-empty {
    margin: 2rem 0 1rem;
    color: var(--directory-color-text);
    font-size: .95rem;
    text-align: center;
}

body.single-gd_place .directory-review-toggle {
    gap: .5rem;
    margin: 1.25rem 0 0;
}

body.single-gd_place .directory-review-summary,
body.single-gd_place .comment-list .comment,
body.single-gd_place .commentlist .comment,
body.single-gd_place .comment-respond {
    overflow: hidden;
    border: 0;
    border-radius: var(--directory-card-radius, 8px);
    background: var(--directory-color-card);
    box-shadow: none;
}

/* The actual review card is this inner Bootstrap .card (not .comment-list .comment above, which is
   just the outer <li>) — its own "shadow-sm"/"border-*" utility classes are !important (AyeCode UI's
   convention, same as "fs-sm" elsewhere), so overriding them needs !important too, not extra specificity. */
body.single-gd_place .comment .card {
    border: 0 !important;
    box-shadow: none !important;
}

/* The "admin" row (avatar/name/badge) is a Bootstrap card-header with its own small (!important)
   padding and a divider border, which made it read as a separate boxed strip instead of flowing with
   the rest of the card. Match the body's padding so it starts flush with everything below it. */
body.single-gd_place .comment .card-header {
    padding: 1.25rem 1.25rem 0 !important;
    border: 0 !important;
    background: transparent;
}

body.single-gd_place .directory-review-summary {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 1.5rem;
    align-items: center;
    margin: 1rem 0 1.5rem;
    padding: 1.25rem 1.5rem;
}

body.single-gd_place .directory-review-summary__overall {
    display: grid;
    gap: .25rem;
    justify-items: center;
    color: var(--directory-color-text);
    font-size: .9rem;
    line-height: 1.25;
    text-align: center;
}

body.single-gd_place .directory-review-summary__overall strong {
    color: var(--directory-color-heading);
    font-size: 2.25rem;
    line-height: 1;
}

body.single-gd_place .directory-review-summary__stars {
    display: flex;
    justify-content: center;
    line-height: 1;
}

body.single-gd_place .directory-review-summary__stars .fas,
body.single-gd_place .directory-review-summary__stars .fa,
body.single-gd_place .directory-review-summary__stars i,
body.single-gd_place .gd-rating .fas,
body.single-gd_place .gd-rating .fa,
body.single-gd_place .gd-rating i {
    color: var(--directory-color-rating) !important;
}

body.single-gd_place .directory-review-summary__stars .gd-rating-text,
body.single-gd_place .directory-review-extra-ratings .gd-rating-text,
body.single-gd_place .comment .gd-rating-text {
    display: none !important;
}

body.single-gd_place .directory-review-summary__metrics,
body.single-gd_place .directory-review-extra-ratings {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem 1.25rem;
}

/* Space between the review text and its rating bars below — with the visit badge now moved out of the
   card-body (into the header), the review text became the first child and had nothing separating it
   from the ratings grid right after it. */
body.single-gd_place .comment .card-body .directory-review-extra-ratings {
    margin-top: 1.25rem;
}

body.single-gd_place .directory-review-metric {
    display: grid;
    grid-template-columns: minmax(6.5rem, 1fr) minmax(4.5rem, 7rem) auto;
    gap: .5rem;
    align-items: center;
    color: var(--directory-color-heading);
    font-size: .9rem;
}

body.single-gd_place .directory-review-metric__label {
    overflow-wrap: anywhere;
    line-height: 1.25;
    white-space: normal;
}

body.single-gd_place .directory-review-metric__label i,
body.single-gd_place .directory-review-rating-icon i,
body.single-gd_place .directory-review-visit__option i,
body.single-gd_place .directory-review-visit-badge i {
    width: 1.1em;
    color: var(--directory-color-icon);
    text-align: center;
}

body.single-gd_place .directory-review-metric__bar {
    overflow: hidden;
    height: .4rem;
    border-radius: 999px;
    background: var(--directory-color-border);
}

body.single-gd_place .directory-review-metric__bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--directory-color-rating);
}

body.single-gd_place .directory-review-metric__value {
    min-width: 1.2rem;
    font-weight: 700;
    text-align: right;
}

body.single-gd_place .comment-respond {
    margin-top: 1.5rem;
    padding: 1.5rem;
}

body.single-gd_place .comment-respond .alert.directory-review-note {
    margin: .25rem 0 1rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--directory-color-text);
    font-size: .9rem;
    line-height: 1.45;
}

body.single-gd_place .comment-respond .alert.directory-review-note i {
    display: none;
}

body.single-gd_place .geodir-comments-area:not(.directory-review-form-is-open) .comment-respond {
    display: none;
}

body.single-gd_place #reply-title {
    margin: 0 0 1.25rem;
    font-size: 1.25rem;
    font-weight: 800;
}

body.single-gd_place .directory-review-form-panel__title {
    margin-bottom: 1rem;
    color: var(--directory-color-heading);
    font-size: 1.125rem;
    font-weight: 800;
}

body.single-gd_place .directory-extra-review-ratings {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1.25rem;
}

body.single-gd_place .directory-extra-review-rating {
    display: grid;
    grid-template-columns: minmax(7.25rem, 1fr) auto;
    min-height: 48px;
    gap: .5rem .85rem;
    align-items: center;
    padding: .85rem 1.1rem;
    border: 0;
    border-radius: var(--directory-card-radius, 8px);
    background: var(--directory-color-page-bg);
}

body.single-gd_place .directory-review-rating-label {
    display: inline-flex;
    gap: .5rem;
    align-items: center;
    color: var(--directory-color-heading);
    font-size: .9rem;
    font-weight: 800;
    line-height: 1.25;
    min-width: 0;
    white-space: normal;
}

body.single-gd_place #commentform > .gd-rating-input-group {
    display: none !important;
}

body.single-gd_place .directory-extra-review-rating .gd-rating-input-group,
body.single-gd_place .directory-extra-review-rating .gd-rating {
    margin: 0 !important;
}

body.single-gd_place .directory-extra-review-rating .gd-rating-outer-wrap,
body.single-gd_place .directory-extra-review-rating .gd-rating-input-wrap {
    width: auto !important;
    min-width: 0;
}

body.single-gd_place .directory-extra-review-rating .gd-rating {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .25rem;
    white-space: nowrap;
}

body.single-gd_place .directory-extra-review-rating .gd-rating-text {
    display: none !important;
}

body.single-gd_place .directory-extra-review-rating .gd-rating-background i {
    color: var(--directory-color-border) !important;
}

body.single-gd_place .directory-extra-review-rating .gd-rating-foreground {
    transition: width .15s ease;
}

body.single-gd_place .directory-review-visit {
    margin: .75rem 0 1.25rem;
}

body.single-gd_place .directory-review-visit__title {
    margin-bottom: .6rem;
    color: var(--directory-color-heading);
    font-size: 1.125rem;
    font-weight: 800;
}

body.single-gd_place .directory-review-visit__options {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

body.single-gd_place .directory-review-visit__option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

body.single-gd_place .directory-review-visit__option > span,
/* Moved into the card-header's name row by JS (directory_review_card_layout_script) — it starts out
   in the comment body since that's the only part GeoDirectory lets us filter into, one DOM subtree
   away from the "admin" row it's meant to sit next to. */
body.single-gd_place .card-header .media-heading .directory-review-visit-badge {
    margin-left: .5rem;
}

/* "admin" is a Bootstrap h5 (20px) and "Listing Owner" is a badge with its own relative (em-based)
   sizing nested inside an "fs-sm" (!important) wrapper — three different, incompatible font-size
   sources. Set all three directly in rem (root-relative, not compounding through the em chain) so
   they land at the same size as "Familienausflug" next to them. */
body.single-gd_place .comment .card-header .media-heading,
body.single-gd_place .comment .card-header .media-heading a.text-reset,
body.single-gd_place .comment .card-header .media-heading .badge {
    font-size: .9rem !important;
}

body.single-gd_place .directory-review-visit-badge {
    display: inline-flex;
    gap: .4rem;
    align-items: center;
    padding: .4rem .75rem;
    border: 0;
    border-radius: 999px;
    background: var(--directory-color-page-bg);
    color: var(--directory-color-text);
    font-size: .9rem;
    font-weight: 700;
}

body.single-gd_place .directory-review-visit__option input:checked + span {
    border-color: var(--directory-color-icon);
    background: var(--directory-color-icon);
    color: #fff;
}

body.single-gd_place .directory-review-visit__option input:checked + span i {
    color: #fff;
}

body.single-gd_place #commentform input[type="text"],
body.single-gd_place #commentform input[type="email"],
body.single-gd_place #commentform input[type="url"],
body.single-gd_place #commentform textarea {
    width: 100%;
    padding: .65rem .85rem;
    border: 0;
    border-radius: var(--directory-card-radius, 8px);
    background: var(--directory-color-page-bg);
    color: var(--directory-color-heading);
    font-size: .9rem;
}

body.single-gd_place #commentform .comment-form-url,
body.single-gd_place #commentform .comment-form-cookies-consent {
    display: none !important;
}

body.single-gd_place #commentform textarea {
    min-height: 92px;
}

body.single-gd_place .directory-review-counter {
    margin-top: .35rem;
    color: var(--directory-color-text);
    font-size: .9rem;
    text-align: right;
}

body.single-gd_place #commentform .form-submit {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 0;
}

body.single-gd_place #commentform #submit {
    width: auto !important;
}

/* No outer margin/padding on the <li> itself — the card inside already has its own padding (via
   card-header/card-body), so an additional 1.25rem here on top of that was stacking with the next
   comment's own padding into a large, borderless blank gap once the card's border/shadow were removed.
   Separate comments with a thin divider line instead, with one deliberate gap below it. */
body.single-gd_place .comment-list .comment,
body.single-gd_place .commentlist .comment {
    margin: 0;
    padding: 0;
}

body.single-gd_place .comment-list .comment + .comment,
body.single-gd_place .commentlist .comment + .comment {
    padding-top: 1.25rem;
    border-top: 1px solid #edf2f7;
}

body.single-gd_place .comment-list .comment-meta,
body.single-gd_place .commentlist .comment-meta {
    color: var(--directory-color-text);
    font-size: .9rem;
}

body.single-gd_place .comment-list .comment-content,
body.single-gd_place .commentlist .comment-content {
    color: var(--directory-color-text);
}

body.single-gd_place .geodir-comments-area .reply-link,
body.single-gd_place .geodir-comments-area .comment-reply-link {
    display: none !important;
}

body.single-gd_place .geodir-review-ratings,
body.single-gd_place .geodir-review-ratings-wrap,
body.single-gd_place .geodir-review-rating-summary,
body.single-gd_place .commentlist-wrap > .row.gy-4.mb-5 {
    display: none !important;
}

body.single-gd_place .directory-center-events {
    margin-top: clamp(2rem, 4vw, 3rem);
}

body.single-gd_place .directory-center-events h2 {
    margin: 0 0 1rem;
}

body.single-gd_place .directory-center-events__list {
    display: grid;
    gap: 1rem;
}

body.single-gd_place .directory-center-event-card {
    display: grid;
    grid-template-columns: 3.75rem minmax(0, 1fr);
    gap: 1rem;
    align-items: center;
    padding: 1rem 1.25rem;
    border: 1px solid var(--directory-color-border);
    border-radius: var(--directory-card-radius, 8px);
    background: var(--directory-color-card);
    color: var(--directory-color-text);
    box-shadow: 0 8px 24px rgba(15, 23, 42, .04);
    text-decoration: none;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

body.single-gd_place .directory-center-event-card:hover,
body.single-gd_place .directory-center-event-card:focus-visible {
    border-color: color-mix(in srgb, var(--directory-color-icon) 30%, var(--directory-color-border));
    box-shadow: 0 14px 34px rgba(15, 23, 42, .08);
    color: var(--directory-color-text);
    text-decoration: none;
    transform: translateY(-2px);
}

body.single-gd_place .directory-center-event-card__icon {
    display: inline-flex;
    width: 3.75rem;
    height: 3.75rem;
    align-items: center;
    justify-content: center;
    border-radius: var(--directory-card-radius, 8px);
    background: var(--directory-color-icon-bg);
    color: var(--directory-color-icon);
}

body.single-gd_place .directory-center-event-card__icon .directory-icon {
    width: 1.55rem;
    height: 1.55rem;
}

body.single-gd_place .directory-center-event-card__body {
    display: grid;
    gap: .15rem;
    min-width: 0;
}

body.single-gd_place .directory-center-event-card__title {
    color: var(--directory-color-heading);
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.25;
}

body.single-gd_place .directory-center-event-card__date,
body.single-gd_place .directory-center-event-card__text {
    color: var(--directory-color-text);
    line-height: 1.4;
}

body.single-gd_place .directory-center-event-card__text {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.single-gd_event {
    background: var(--directory-color-page-bg);
}

body.single-gd_event .directory-event-detail {
    padding-top: var(--directory-content-top, 2rem);
    padding-bottom: clamp(3rem, 6vw, 5rem);
}

body.single-gd_event .directory-event-detail__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(17rem, 22rem);
    gap: clamp(2rem, 5vw, 4rem);
    align-items: start;
    margin-top: clamp(1.5rem, 3vw, 2.25rem);
}

body.single-gd_event .directory-event-detail__main {
    min-width: 0;
}

body.single-gd_event .directory-event-detail__main h1 {
    margin: .35rem 0 1rem;
}

body.single-gd_event .directory-event-detail__date {
    display: inline-flex;
    gap: .45rem;
    align-items: center;
    color: var(--directory-color-text);
    font-size: .95rem;
    font-weight: 500;
}

body.single-gd_event .directory-event-detail__date .directory-icon {
    width: 1rem;
    height: 1rem;
    color: var(--directory-color-icon);
}

body.single-gd_event .directory-event-detail__image {
    margin: clamp(1.5rem, 3vw, 2rem) 0;
    overflow: hidden;
    border: 1px solid var(--directory-color-border);
    border-radius: var(--directory-card-radius);
    background: var(--directory-color-card);
    box-shadow: var(--directory-card-shadow);
}

body.single-gd_event .directory-event-detail__image img {
    display: block;
    width: 100%;
    height: auto;
}

body.single-gd_event .directory-event-detail__text {
    color: var(--directory-color-text);
    font-size: 1rem;
    line-height: 1.75;
}

body.single-gd_event .directory-event-detail__sidebar {
    display: grid;
    gap: 1rem;
    position: sticky;
    top: calc(var(--directory-sticky-offset, 6rem) + 1rem);
}

body.single-gd_event .directory-event-detail__box {
    padding: 1.25rem;
    border: 1px solid var(--directory-color-border);
    border-radius: var(--directory-card-radius);
    background: var(--directory-color-card);
    box-shadow: var(--directory-card-shadow);
}

body.single-gd_event .directory-event-detail__box h2 {
    margin: 0 0 .85rem;
    font-size: 1.25rem;
}

body.single-gd_event .directory-event-detail__center {
    display: inline-flex;
    gap: .55rem;
    align-items: center;
    margin-bottom: 1rem;
    color: var(--directory-color-heading);
    font-weight: 500;
    text-decoration: none;
}

body.single-gd_event .directory-event-detail__center:hover,
body.single-gd_event .directory-event-detail__center:focus-visible {
    color: var(--directory-color-icon);
}

body.single-gd_event .directory-event-detail__center .directory-icon {
    width: 1.05rem;
    height: 1.05rem;
    color: var(--directory-color-icon);
}

body.single-gd_event .directory-event-detail__contact {
    display: grid;
    gap: .55rem;
    color: var(--directory-color-text);
    font-size: .95rem;
    line-height: 1.4;
}

body.single-gd_event .directory-event-detail__contact-row {
    display: grid;
    grid-template-columns: 1.1rem minmax(0, 1fr);
    gap: .6rem;
    align-items: center;
}

body.single-gd_event .directory-event-detail__contact-row--address {
    align-items: start;
}

body.single-gd_event .directory-event-detail__contact-row--address > span {
    display: grid;
    gap: .1rem;
}

body.single-gd_event .directory-event-detail__contact-row .directory-icon {
    width: 1rem;
    height: 1rem;
    margin-top: .12rem;
    color: var(--directory-color-text);
    opacity: .5;
}

body.single-gd_event .directory-event-detail__contact-row a {
    color: var(--directory-color-cta);
    text-decoration: none;
}

body.single-gd_event .directory-event-detail__contact-row a:hover,
body.single-gd_event .directory-event-detail__contact-row a:focus-visible {
    color: var(--directory-color-cta-hover);
    text-decoration: underline;
}

body.single-gd_event .directory-event-detail__tag {
    display: inline-flex;
    padding: .35rem .65rem;
    border-radius: 999px;
    background: var(--directory-color-icon-bg);
    color: var(--directory-color-eyebrow);
    font-size: .85rem;
    font-weight: 500;
}

body.single-gd_event .directory-event-detail__related {
    margin-top: clamp(2.5rem, 5vw, 4rem);
}

body.single-gd_event .directory-event-detail__related h2 {
    margin: 0 0 1rem;
}

body.single-gd_event .directory-event-detail__related-list {
    display: grid;
    gap: 1rem;
}

body.single-gd_event .directory-center-event-card {
    display: grid;
    grid-template-columns: 3.75rem minmax(0, 1fr);
    gap: 1rem;
    align-items: center;
    padding: 1rem 1.25rem;
    border: 1px solid var(--directory-color-border);
    border-radius: var(--directory-card-radius, 8px);
    background: var(--directory-color-card);
    color: var(--directory-color-text);
    box-shadow: 0 8px 24px rgba(15, 23, 42, .04);
    text-decoration: none;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

body.single-gd_event .directory-center-event-card:hover,
body.single-gd_event .directory-center-event-card:focus-visible {
    border-color: color-mix(in srgb, var(--directory-color-icon) 30%, var(--directory-color-border));
    box-shadow: 0 14px 34px rgba(15, 23, 42, .08);
    color: var(--directory-color-text);
    text-decoration: none;
    transform: translateY(-2px);
}

body.single-gd_event .directory-center-event-card__icon {
    display: inline-flex;
    width: 3.75rem;
    height: 3.75rem;
    align-items: center;
    justify-content: center;
    border-radius: var(--directory-card-radius, 8px);
    background: var(--directory-color-icon-bg);
    color: var(--directory-color-icon);
}

body.single-gd_event .directory-center-event-card__icon .directory-icon {
    width: 1.55rem;
    height: 1.55rem;
}

body.single-gd_event .directory-center-event-card__body {
    display: grid;
    gap: .15rem;
    min-width: 0;
}

body.single-gd_event .directory-center-event-card__title {
    color: var(--directory-color-heading);
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.25;
}

body.single-gd_event .directory-center-event-card__date,
body.single-gd_event .directory-center-event-card__text {
    color: var(--directory-color-text);
    line-height: 1.4;
}

body.single-gd_event .directory-center-event-card__text {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 991.98px) {
    body.single-gd_event .directory-event-detail__layout {
        grid-template-columns: 1fr;
    }

    body.single-gd_event .directory-event-detail__sidebar {
        position: static;
    }

    body.single-gd_place .directory-review-summary,
    body.single-gd_place .directory-review-summary__metrics,
    body.single-gd_place .directory-review-extra-ratings,
    body.single-gd_place .directory-extra-review-ratings {
        grid-template-columns: 1fr;
    }

    body.single-gd_place .directory-review-metric {
        grid-template-columns: minmax(7rem, 1fr) minmax(5rem, 8rem) auto;
    }
}

@media (max-width: 575.98px) {
    body.single-gd_place .comment-respond,
    body.single-gd_place .directory-review-summary {
        padding: 1rem;
    }

    body.single-gd_place .directory-extra-review-rating {
        grid-template-columns: 1fr;
        align-items: flex-start;
    }

body.single-gd_place .directory-extra-review-rating .gd-rating {
        align-items: flex-start;
    }
}

/* Mallfinder brand refresh: visual styling only */
html,
body {
    background: var(--directory-color-page-bg) !important;
    color: var(--directory-color-text) !important;
    font-family: Inter, Manrope, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

a {
    color: var(--directory-color-heading) !important;
    transition: color .18s ease, border-color .18s ease, background-color .18s ease, opacity .18s ease;
}

a:hover,
a:focus-visible {
    color: var(--directory-color-cta) !important;
}

.wp-block-blockstrap-blockstrap-widget-navbar .current-menu-item > .nav-link,
.wp-block-blockstrap-blockstrap-widget-navbar .current-menu-ancestor > .nav-link,
.wp-block-blockstrap-blockstrap-widget-navbar .nav-link.active,
.wp-block-blockstrap-blockstrap-widget-navbar .nav-link[aria-current="page"],
body.blog .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"],
body.single-post .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"],
body.category .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"],
.wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
.wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible {
    color: var(--directory-color-cta) !important;
    opacity: 1 !important;
}

.wp-block-blockstrap-blockstrap-widget-navbar .current-menu-item > .nav-link::after,
.wp-block-blockstrap-blockstrap-widget-navbar .current-menu-ancestor > .nav-link::after,
.wp-block-blockstrap-blockstrap-widget-navbar .nav-link.active::after,
.wp-block-blockstrap-blockstrap-widget-navbar .nav-link[aria-current="page"]::after,
body.blog .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"]::after,
body.single-post .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"]::after,
body.category .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[href$="/blog/"]::after {
    background: var(--directory-color-cta) !important;
}

body.home .wp-block-blockstrap-blockstrap-widget-container.bg-custom-gradient.text-white.container-fluid.position-relative,
body.front-page .wp-block-blockstrap-blockstrap-widget-container.bg-custom-gradient.text-white.container-fluid.position-relative {
   /* background: #f7f8fa !important; */
background: linear-gradient(0deg,rgba(247, 248, 250, 1) 0%, rgba(247, 248, 250, 1) 20%, rgba(255, 255, 255, 1) 100%)!important;
    isolation: isolate;
    /* The illustrations below bleed 50px past the screen edge on purpose; without clipping here
       they widen the whole document (mobile browsers then zoom out / allow sideways scrolling).
       clip, not hidden: only the x axis is cut, vertical overflow (the bird) stays visible. */
    overflow-x: clip;
}

/* Two mirrored shopping-center illustrations + a flying bird (mallfinder_home_hero_inject_buildings()
   in mallfinder-home-hero.php) replace the old hero_home.png/hero_home_mobil.png photo background.
   isolation: isolate above scopes stacking to the hero itself; the images stay at the default
   (z-index: auto) paint layer, and the text/search column below is lifted onto z-index: 1 so it
   always reads on top.
   Image height is set to 60% of the hero's own rendered height, per spec - since that height is
   auto/content-driven (not fixed), a plain CSS percentage can't resolve against it reliably, so
   mallfinder_home_hero_stage_height_script() (mallfinder-home-hero.php, wp_footer) measures the
   hero's real height in JS and writes it to the --mallfinder-stage-height custom property on the
   hero element; the 420px fallback only matters for the brief instant before that script runs. */
body.home .mallfinder-hero-buildings,
body.front-page .mallfinder-hero-buildings {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

body.home .mallfinder-hero-buildings__center,
body.front-page .mallfinder-hero-buildings__center {
    position: absolute;
    bottom: 0;
    width: auto;
    height: calc(var(--mallfinder-stage-height, 420px) * .88);
    max-width: 45%;
    object-fit: contain;
}

body.home .mallfinder-hero-buildings__center--left,
body.front-page .mallfinder-hero-buildings__center--left {
    left: -50px;
    object-position: left bottom;
}

body.home .mallfinder-hero-buildings__center--right,
body.front-page .mallfinder-hero-buildings__center--right {
    right: -50px;
    object-position: right bottom;
}

body.home .mallfinder-hero-buildings__bird,
body.front-page .mallfinder-hero-buildings__bird {
    position: absolute;
    top: 20%;
    left: -70px;
    width: 42px;
    height: 22px;
    fill: none;
    stroke: #526165;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: 0;
    animation: mallfinder-hero-bird-flight 32s ease-in-out 2s infinite;
}

body.home .mallfinder-hero-buildings__bird-wings,
body.front-page .mallfinder-hero-buildings__bird-wings {
    transform-box: fill-box;
    transform-origin: center bottom;
    animation: mallfinder-hero-bird-flap 1.35s ease-in-out infinite;
}

@keyframes mallfinder-hero-bird-flight {
    0%, 5% { transform: translate(-70px, 16px); opacity: 0; }
    9% { opacity: .72; }
    30% { transform: translate(calc(28vw + 20px), -22px); }
    48% { transform: translate(calc(50vw + 20px), 2px); opacity: .72; }
    68% { transform: translate(calc(72vw + 20px), -16px); }
    86% { opacity: .72; }
    90%, 100% { transform: translate(calc(100vw + 100px), 10px); opacity: 0; }
}

@keyframes mallfinder-hero-bird-flap {
    0%, 100% { transform: scaleY(.72) rotate(-2deg); }
    50% { transform: scaleY(1.08) rotate(2deg); }
}

@media (prefers-reduced-motion: reduce) {
    body.home .mallfinder-hero-buildings__bird,
    body.front-page .mallfinder-hero-buildings__bird,
    body.home .mallfinder-hero-buildings__bird-wings,
    body.front-page .mallfinder-hero-buildings__bird-wings {
        animation: none;
        display: none;
    }
}

/* The text/search column is the hero's own next child after .mallfinder-hero-buildings - lift it
   above the illustrations (see isolation: isolate above). */
body.home .bg-custom-gradient.text-white.container-fluid.position-relative > .container,
body.front-page .bg-custom-gradient.text-white.container-fluid.position-relative > .container {
    position: relative;
    z-index: 1;
}

@media (max-width: 767.98px) {
    /* On a narrow phone screen the hero grows tall (stacked text needs more vertical room) while
       staying narrow, so a height driven purely off the stage would ask for images far wider than
       the screen itself - capped here to a sane absolute height instead, still shrunk further by
       the 50% max-width rule above when needed. */
    body.home .mallfinder-hero-buildings__center,
    body.front-page .mallfinder-hero-buildings__center {
        height: min(calc(var(--mallfinder-stage-height, 420px) * .88), 280px);
    }
}

@media (max-width: 991.98px) {
    body.home .mallfinder-hero-buildings__bird,
    body.front-page .mallfinder-hero-buildings__bird {
        top: 14%;
        width: 36px;
        height: 19px;
    }
}

.directory-section-heading__eyebrow,
.directory-detail-eyebrow,
.directory-home-magazine__eyebrow,
.directory-home-magazine__label,
.directory-states-page__eyebrow,
.directory-section-eyebrow,
.text-primary {
    color: var(--directory-color-cta) !important;
}

.btn-primary,
.btn.btn-primary,
.directory-button--primary,
.wp-block-button__link,
button[type="submit"],
input[type="submit"],
.geodir_submit_search,
.bsui .btn-primary,
.bsui .btn.btn-primary,
a.btn-primary,
body.single-gd_place #commentform #submit {
    border-color: var(--directory-color-cta) !important;
    border-radius: 999px !important;
    background-color: var(--directory-color-cta) !important;
    color: #111 !important;
    box-shadow: none !important;
    font-weight: 600;
}

.btn-primary:hover,
.btn-primary:focus,
.btn.btn-primary:hover,
.btn.btn-primary:focus,
.directory-button--primary:hover,
.directory-button--primary:focus-visible,
.wp-block-button__link:hover,
.wp-block-button__link:focus,
button[type="submit"]:hover,
button[type="submit"]:focus,
input[type="submit"]:hover,
input[type="submit"]:focus,
.geodir_submit_search:hover,
.geodir_submit_search:focus,
.bsui .btn-primary:hover,
.bsui .btn-primary:focus,
a.btn-primary:hover,
a.btn-primary:focus,
body.single-gd_place #commentform #submit:hover,
body.single-gd_place #commentform #submit:focus-visible {
    border-color: var(--directory-color-cta-hover) !important;
    background-color: var(--directory-color-cta-hover) !important;
    color: #111 !important;
    box-shadow: none !important;
}

.btn-outline-primary,
.btn.btn-outline-primary,
.directory-button--secondary,
.bsui .btn-outline-primary {
    border-color: var(--directory-color-cta) !important;
    border-width: 2px;
    border-radius: 999px !important;
    background: transparent !important;
    color: var(--directory-color-cta) !important;
    box-shadow: none !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn.btn-outline-primary:hover,
.btn.btn-outline-primary:focus,
.directory-button--secondary:hover,
.directory-button--secondary:focus-visible,
.bsui .btn-outline-primary:hover,
.bsui .btn-outline-primary:focus {
    background: var(--directory-color-cta) !important;
    color: #111 !important;
}

.geodir-search input[type="text"],
.geodir-search input[type="search"],
.geodir-search .form-control,
.directory-header-search input[type="search"],
input[type="search"],
input[type="text"],
input[type="email"],
input[type="url"],
textarea,
select {
    border-color: var(--directory-color-border) !important;
}

.geodir-search input[type="text"],
.geodir-search input[type="search"],
.geodir-search .form-control,
.directory-header-search input[type="search"],
input[type="search"] {
    border-radius: 999px !important;
    background: #fff !important;
border-color: var(--directory-color-cta) !important;
    outline: 0 !important;
    box-shadow: 0 0 0 .2rem rgba(67, 214, 194, .2) !important;
}

.geodir-search input[type="text"]:focus,
.geodir-search input[type="search"]:focus,
.geodir-search .form-control:focus,
.directory-header-search input[type="search"]:focus,
input[type="search"]:focus,
input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
textarea:focus,
select:focus {
    border-color: var(--directory-color-cta) !important;
    outline: 0 !important;
    box-shadow: 0 0 0 .2rem rgba(67, 214, 194, .2) !important;
}

.directory-home-magazine__card,
.categories .directory-location-card,
.directory-states-page .directory-location-card,
.directory-archive-card,
.directory-center-suggest,
.geodir-post .card,
.gd-cptcat-parent .card,
body.single-gd_place #main > .row > .wp-block-blockstrap-blockstrap-widget-container.ms-auto.col-12.col-lg-4 > .wp-block-blockstrap-blockstrap-widget-container,
body.single-gd_place #main > .row > .wp-block-blockstrap-blockstrap-widget-container.ms-auto.mb-3.ms-lg-auto.col-12.col-lg-4 > .wp-block-blockstrap-blockstrap-widget-container {
    border-color: var(--directory-color-border) !important;
    border-radius: var(--directory-card-radius) !important;
    background: #fff !important;
    box-shadow: var(--directory-card-shadow) !important;
}

.directory-home-magazine__card:hover,
.directory-home-magazine__card:focus-visible,
.categories .directory-location-card:hover,
.categories .directory-location-card:focus-visible,
.directory-states-page .directory-location-card:hover,
.directory-states-page .directory-location-card:focus-visible,
.directory-archive-card:hover,
.directory-archive-card:focus-visible,
.directory-archive-card:focus-within,
.directory-center-suggest:hover,
.directory-center-suggest:focus-within,
.geodir-post .card:hover,
.geodir-post .card:focus-within,
.gd-cptcat-parent .card:hover,
.gd-cptcat-parent .card:focus-within {
    border-color: var(--directory-card-border-hover) !important;
    box-shadow: var(--directory-card-shadow-hover) !important;
    transform: var(--directory-card-transform-hover);
}

.directory-archive-card:hover .directory-archive-card__title,
.directory-archive-card:focus-visible .directory-archive-card__title,
.directory-home-magazine__card:hover .directory-home-magazine__title,
.directory-home-magazine__card:focus-visible .directory-home-magazine__title {
    color: var(--directory-color-cta) !important;
}

.geodir_post_meta .geodir_post_meta_icon,
.directory-archive-card__meta i,
.directory-archive-card__stats i,
.categories .directory-location-card__pin,
.directory-states-page .directory-location-card__pin,
.directory-header-search__icon,
.directory-opening-hours__status i,
.directory-archive-card__hours i,
.directory-icon {
    color: var(--directory-color-icon) !important;
}

.categories .directory-location-card__pin,
.directory-states-page .directory-location-card__pin {
    background: var(--directory-color-icon-bg) !important;
}

.fa-star,
.fas.fa-star,
.gd-list-rating-stars .fa-star,
.directory-archive-card__rating .fa-star,
.directory-rating-compact .directory-icon--star,
.directory-svg-stars .directory-icon--star {
    color: var(--directory-color-rating) !important;
}

.directory-opening-hours__status.is-open,
.directory-archive-card__hours.is-open {
    color: var(--directory-color-success) !important;
}

.directory-opening-hours__status.is-closed,
.directory-archive-card__hours.is-closed,
.directory-archive-card__hours:not(.is-open) {
    color: var(--directory-color-error) !important;
}

.directory-states-page__hero {
    background-color: var(--directory-color-section-alt) !important;
}

.directory-site-footer {
    background: var(--directory-color-footer) !important;
    border-top-color: var(--directory-color-footer) !important;
    color: rgba(255, 255, 255, .72) !important;
}

.directory-site-footer__brand p,
.directory-site-footer__nav a,
.directory-site-footer__bottom,
.directory-site-footer__bottom p,
.directory-site-footer__bottom span {
    color: rgba(255, 255, 255, .72) !important;
}

.directory-site-footer__heading {
    color: #fff !important;
}

.directory-site-footer__nav a:hover,
.directory-site-footer__nav a:focus-visible {
    color: var(--directory-color-cta) !important;
}

.directory-site-footer__bottom {
    border-top-color: rgba(255, 255, 255, .12) !important;
}

.directory-site-footer__logo img,
.site-header .navbar-brand img {
    filter: none !important;
}

/* Header: always the light one (white bar, dark logo and links). There is no dark "at rest" state any more,
   so nothing can flash dark before the scroll script runs. The pill search, fonts and AA colours live in the Airbnb pass block. */
header.wp-block-template-part nav.navbar,
.site-header nav.navbar,
header.site-header nav.navbar,
nav.navbar.fixed-top,
body.home nav.bg-transparent-until-scroll,
body.front-page nav.bg-transparent-until-scroll {
    background: #fff !important;
    background-color: #fff !important;
    box-shadow: 0 1px 0 #EBEBEB !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
}

header.wp-block-template-part nav.navbar .navbar-brand img,
.site-header .navbar-brand img {
    content: url("https://mallfinder.de/wp-content/themes/directory/assets/images/ml-logo_w.svg") !important;
}

header.wp-block-template-part nav.navbar .wp-block-blockstrap-blockstrap-widget-navbar .nav-link,
.site-header nav.navbar .wp-block-blockstrap-blockstrap-widget-navbar .nav-link {
    color: var(--directory-color-heading) !important;
}

header.wp-block-template-part nav.navbar .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
header.wp-block-template-part nav.navbar .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
header.wp-block-template-part nav.navbar .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-item > .nav-link,
header.wp-block-template-part nav.navbar .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-ancestor > .nav-link,
header.wp-block-template-part nav.navbar .wp-block-blockstrap-blockstrap-widget-navbar .nav-link.active,
header.wp-block-template-part nav.navbar .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[aria-current="page"],
.site-header .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:hover,
.site-header .wp-block-blockstrap-blockstrap-widget-navbar .nav-link:focus-visible,
.site-header .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-item > .nav-link,
.site-header .wp-block-blockstrap-blockstrap-widget-navbar .current-menu-ancestor > .nav-link,
.site-header .wp-block-blockstrap-blockstrap-widget-navbar .nav-link.active,
.site-header .wp-block-blockstrap-blockstrap-widget-navbar .nav-link[aria-current="page"] {
    color: #0F766E !important;
}

@media (max-width: 991.98px) {
    .directory-magazine-category {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .directory-magazine-category__intro {
        position: static;
    }

    .directory-magazine-category__rail {
        grid-auto-columns: minmax(260px, 42%);
    }

    .directory-magazine-term-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .directory-magazine-overview {
        padding-right: 1.25rem;
        padding-left: 1.25rem;
    }

    .directory-magazine-category__rail {
        grid-auto-columns: minmax(245px, 82%);
        gap: 1rem;
    }

    .directory-magazine-category__controls {
        display: none;
    }

    .directory-magazine-slider-card {
        min-height: 300px;
    }

    .directory-magazine-term-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
}

/* Home card hover refinements */
body.home .categories .directory-location-card,
body.home .categories .directory-location-card:hover,
body.home .categories .directory-location-card:focus-visible,
body.home .categories .directory-location-card *,
body.home .directory-home-magazine__card,
body.home .directory-home-magazine__card:hover,
body.home .directory-home-magazine__card:focus-visible,
body.home .directory-home-magazine__card * {
    text-decoration: none !important;
}

body.home .categories .directory-location-card:hover .directory-location-card__name,
body.home .categories .directory-location-card:focus-visible .directory-location-card__name,
body.home .categories .directory-location-card:hover .directory-location-card__arrow,
body.home .categories .directory-location-card:focus-visible .directory-location-card__arrow,
body.home .categories .directory-location-card:hover .directory-location-card__pin,
body.home .categories .directory-location-card:focus-visible .directory-location-card__pin {
    color: var(--directory-color-cta) !important;
}

body.home .directory-home-magazine__card:hover h3,
body.home .directory-home-magazine__card:focus-visible h3,
body.home .directory-home-magazine__card:hover .directory-home-magazine__title,
body.home .directory-home-magazine__card:focus-visible .directory-home-magazine__title {
    color: var(--directory-color-cta) !important;
    text-decoration: none !important;
}

/* Magazine article reading layout */
body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.container,
body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.rounded-lg.container {
    max-width: 1320px !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding-right: 1rem !important;
    padding-left: 1rem !important;
    text-align: center !important;
}

body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.container nav,
body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.rounded-lg.container nav {
    display: block;
    text-align: left;
}

body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.container h1,
body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.rounded-lg.container h1 {
    max-width: 760px;
    margin-right: auto !important;
    margin-left: auto !important;
    text-align: center !important;
}

body.single-post .directory-single-post-eyebrow {
    max-width: 760px;
    margin: 1.35rem auto .7rem;
    color: var(--directory-color-cta) !important;
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .06em;
    line-height: 1.2;
    text-align: center;
    text-transform: uppercase;
}

/* body.has-magazin-toc (set in mallfinder_magazin_toc_wrap_layout() when the article has a TOC)
   - the article text itself sits shifted right of true-center once the sidebar TOC is present,
   so the centered heading/eyebrow above it need the same shift, or they read as floating over
   the TOC's empty column instead of sitting above the text.
   449px is #main's own actual rendered left offset from the page canvas's left edge with the
   TOC present: canvas 1296px, TOC 290px + 2rem gap = 322px, #main rendered at 720px (its
   flex-basis in .directory-magazin-layout - narrower than its own 760px max-width ceiling) and
   centered in what's left: 322 + (1296 - 322 - 720) / 2 = 449. This container has its own
   padding-left:1rem (16px, in the base rule above) between its own box edge and h1/eyebrow's
   margin - .directory-magazin-layout has no such padding, so the value used below is 449 - 16 =
   433px for both edges to land at the same absolute position. Only margin-left is set;
   margin-right stays the base rule's auto, which is enough since width is already fixed via
   max-width:760px. Widening the canvas to 1296px here too (from the site's normal 1320px hero
   width) keeps both areas measuring against the same page-width figure the TOC layout uses, so
   this stays correct as long as the viewport is wide enough to show both at their full size.
   Update the 433px if the TOC width/gap or #main's flex-basis in style.css's
   .directory-magazin-layout rules ever change. */
@media (min-width: 1100px) {
    body.has-magazin-toc.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.container,
    body.has-magazin-toc.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.rounded-lg.container {
        max-width: 1296px !important;
    }

    body.has-magazin-toc.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.container h1,
    body.has-magazin-toc.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.rounded-lg.container h1,
    body.has-magazin-toc.single-post .directory-single-post-eyebrow {
        margin-left: 433px !important;
    }
}

body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.container .row,
body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.rounded-lg.container .row {
    justify-content: flex-start !important;
}

body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.container .row > .col,
body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.rounded-lg.container .row > .col {
    flex: 0 0 100% !important;
    width: 100% !important;
    text-align: left !important;
}

body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.container .row:has(.far.fa-calendar),
body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.rounded-lg.container .row:has(.far.fa-calendar) {
    justify-content: center !important;
}

body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.container .row:has(.far.fa-calendar) > .col,
body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.rounded-lg.container .row:has(.far.fa-calendar) > .col {
    flex: 0 1 auto !important;
    width: auto !important;
    text-align: center !important;
}

body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.container .row:has(.far.fa-calendar) .text-end,
body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.rounded-lg.container .row:has(.far.fa-calendar) .text-end {
    text-align: center !important;
}

body.single-post #main {
    max-width: 760px !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding-right: 1rem !important;
    padding-left: 1rem !important;
}

body.single-post #main > .row {
    justify-content: center !important;
}

body.single-post #main > .row > .col-lg-8 {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 640px !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

body.single-post #main > .row > .col-3,
body.single-post #main > .row > .col-lg-3,
body.single-post #main > .row > .wp-block-blockstrap-blockstrap-widget-container.col-3 {
    display: none !important;
}

body.single-post .entry-content {
    max-width: 640px !important;
    margin-right: auto !important;
    margin-left: auto !important;
    color: var(--directory-color-heading) !important;
    font-size: 1.08rem;
    line-height: 1.78;
}

body.single-post .entry-content > p,
body.single-post .entry-content > ul,
body.single-post .entry-content > ol,
body.single-post .entry-content > blockquote,
body.single-post .entry-content > h2,
body.single-post .entry-content > h3,
body.single-post .entry-content > h4 {
    max-width: 640px;
    margin-right: auto;
    margin-left: auto;
}

body.single-post .entry-content > p {
    margin-bottom: 1.35rem;
}

body.single-post .entry-content h2,
body.single-post .entry-content h3 {
    margin-top: 2.4rem;
    margin-bottom: 1rem;
}

body.single-post .entry-content img,
body.single-post .entry-content .wp-block-image {
    max-width: min(100%, 760px);
    margin-right: auto;
    margin-left: auto;
}

body.single-post .uwp_widget_author_box,
body.single-post .wp-block-post-comments-form,
body.single-post .wp-block-comments {
    max-width: 640px;
    margin-right: auto;
    margin-left: auto;
}

@media (max-width: 767.98px) {
    body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.container,
    body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.rounded-lg.container,
    body.single-post #main {
        max-width: 100% !important;
        padding-right: 1.25rem !important;
        padding-left: 1.25rem !important;
    }

    body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.container h1,
    body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.rounded-lg.container h1 {
        font-size: clamp(2rem, 8.5vw, var(--directory-h1-size)) !important;
        line-height: 1.08 !important;
        letter-spacing: 0 !important;
    }

    body.single-post #main > .row {
        margin-right: 0 !important;
        margin-left: 0 !important;
    }

    body.single-post #main > .row > .col-lg-8,
    body.single-post .entry-content,
    body.single-post .entry-content > p,
    body.single-post .entry-content > blockquote,
    body.single-post .entry-content > h2,
    body.single-post .entry-content > h3,
    body.single-post .entry-content > h4 {
        width: 100% !important;
        max-width: 640px !important;
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    body.single-post .entry-content > ul,
    body.single-post .entry-content > ol {
        width: 100% !important;
        max-width: 640px !important;
        margin-right: auto !important;
        margin-left: auto !important;
        padding-right: 0 !important;
        padding-left: 1.35rem !important;
    }

    body.single-post .entry-content > ul li,
    body.single-post .entry-content > ol li {
        padding-left: .15rem;
        margin-bottom: .45rem;
    }
}

.directory-geodir-results-fallback__header {
    margin-bottom: 1.5rem;
}

.directory-geodir-results-fallback__header h2 {
    margin: 0;
    color: var(--directory-color-heading, #171717);
    font-size: var(--directory-h2-size, 29px);
    line-height: 1.2;
}

.directory-state-pills {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin: 0 0 1.75rem;
}

.directory-state-pill {
    display: inline-flex;
    align-items: center;
    padding: .4rem 1.1rem;
    border: 1px solid #E2E2E2;
    border-radius: 999px;
    background: #fff;
    color: var(--directory-color-heading, #171717);
    font-size: .9rem;
    font-weight: 500;
    line-height: 1.4;
    text-decoration: none;
    transition: border-color .15s ease, color .15s ease, background-color .15s ease;
}

.directory-state-pill:hover,
.directory-state-pill:focus-visible {
    border-color: var(--directory-color-cta);
    color: var(--directory-color-cta-hover, var(--directory-color-cta));
    background: rgba(67, 214, 194, .08);
}
/* Mallfinder: full-height archive maps for center and outlet archives */
@media (min-width: 992px) {
    body.geodir-archive:not(.geodir-page-search) .geodir-archive-map-wrap,
    body.geodir-archive:not(.geodir-page-search) .geodir-archive-map-wrap .stickymap,
    body.geodir-archive:not(.geodir-page-search) .geodir-archive-map-wrap .geodir_map_container,
    body.geodir-archive:not(.geodir-page-search) .geodir-archive-map-wrap .main_map_wrapper,
    body.geodir-archive:not(.geodir-page-search) .geodir-archive-map-wrap .iprelative,
    body.geodir-archive:not(.geodir-page-search) .geodir-archive-map-wrap .geodir-map-canvas,
    body.geodir-archive:not(.geodir-page-search) .geodir-archive-map-wrap .loading_div {
        aspect-ratio: auto !important;
        height: calc(100vh - 115px) !important;
        min-height: calc(100vh - 115px) !important;
        max-height: none !important;
    }

    /* Hide GeoDirectory's own "N results found" row above the full-height map layout above — moved
       here from a PHP-generated <style> block in functions.php (its page-type gating added nothing the
       selector itself didn't already express). */
    body.geodir-archive:not(.geodir-page-search) #main > .row > .col:first-child > .wp-block-blockstrap-blockstrap-widget-container.mb-4.bg-image-fixed.row.align-items-center {
        display: none !important;
    }
}

/* Category/archive description text (moved from a PHP-generated <style> block in functions.php — it
   had no real page-type gating, just is_admin(), which never applies to a front-end style tag anyway). */
.directory-center-archive-description {
    max-width: 100%;
    color: var(--bs-gray-600, #5f6368);
    font-size: .95rem;
    line-height: 1.7;
}

.directory-center-archive-description--top {
    margin: 0 0 2rem;
}

.directory-center-archive-description--bottom {
    margin: 2rem 0 0;
}

.directory-center-archive-description p:last-child {
    margin-bottom: 0;
}
/* Mallfinder: subtle global page background so white cards stand out */
html,
body,
.wp-site-blocks {
    background: var(--directory-color-page-bg, #F7F8FA) !important;
}

body:not(.home):not(.front-page) #main,
body:not(.home):not(.front-page) .entry-content,
body:not(.home):not(.front-page) .wp-block-post-content,
body:not(.home):not(.front-page) .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container,
body.geodir-archive #main,
body.single-gd_place #title,
body.single-gd_place #main,
body.blog #main,
body.archive.category #main,
body.archive.tag #main,
body.search #main {
    background-color: transparent !important;
}

.directory-site-footer,
footer.directory-site-footer,
body .directory-site-footer {
    background: var(--directory-color-footer, #0A0A0A) !important;
}

.directory-archive-card,
.directory-home-magazine__card,
.directory-magazine-slider-card,
.directory-location-card,
.directory-opening-hours,
.directory-detail-sidebar-card,
.directory-review-summary,
.directory-contact-card,
.directory-voucher-side-card,
.geodir-post .card,
.card {
    background-color: var(--directory-color-card, #FFFFFF) !important;
}
/* Mallfinder: detail page section cards and anchor navigation */
body.single-gd_place {
    scroll-behavior: smooth;
}

body.single-gd_place .directory-detail-subnav-wrap {
    width: 100%;
    max-width: 1320px;
    margin: 0 auto 1.5rem;
    padding-right: 1rem;
    padding-left: 1rem;
}

body.single-gd_place .directory-detail-subnav {
    display: flex;
    flex-wrap: nowrap;
    gap: .5rem;
    align-items: center;
    overflow-x: auto;
    padding: .65rem;
    background: var(--directory-color-card, #fff);
    border: 1px solid var(--directory-color-border, #E8ECEF);
    border-radius: var(--directory-card-radius, 16px);
    box-shadow: var(--directory-card-shadow, 0 1px 2px rgba(10, 10, 10, .03));
    scrollbar-width: none;
}

body.single-gd_place .directory-detail-subnav::-webkit-scrollbar {
    display: none;
}

body.single-gd_place .directory-detail-subnav a {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-height: 2.25rem;
    padding: .45rem .9rem;
    color: var(--directory-color-heading, #171717);
    font-size: .9rem;
    font-weight: 500;
    line-height: 1;
    text-decoration: none;
    background: transparent;
    border: 0;
    border-radius: 999px;
    transition: color .18s ease, background-color .18s ease, transform .18s ease;
}

body.single-gd_place .directory-detail-subnav a:hover,
body.single-gd_place .directory-detail-subnav a:focus-visible {
    color: var(--directory-color-cta, #43D6C2);
    background: rgba(67, 214, 194, .08);
    transform: translateY(-1px);
}

/* Scroll-spy active state: turquoise underline, matching the main header nav's active nav-link::after. */
body.single-gd_place .directory-detail-subnav a.is-active {
    color: var(--directory-color-cta, #43D6C2);
}

body.single-gd_place .directory-detail-subnav a.is-active::after {
    content: "";
    position: absolute;
    right: .9rem;
    bottom: .3rem;
    left: .9rem;
    height: 2px;
    border-radius: 999px;
    background: var(--directory-color-cta, #43D6C2);
}

body.single-gd_place .directory-detail-intro-card {
    /* Fallback only (native/no-JS anchor jump) — JS does the precise, live-measured offset scroll. */
    scroll-margin-top: 10rem;
}

body.single-gd_place .directory-detail-section-card {
    /* Fallback only (native/no-JS anchor jump) — JS does the precise, live-measured offset scroll. */
    scroll-margin-top: 10rem;
    margin: 0 0 1.5rem !important;
    padding: clamp(1.25rem, 2vw, 2rem) !important;
    background: var(--directory-color-card, #fff) !important;
    border: 1px solid var(--directory-color-border, #E8ECEF) !important;
    border-radius: var(--directory-card-radius, 16px) !important;
    box-shadow: var(--directory-card-shadow, 0 1px 2px rgba(10, 10, 10, .03)) !important;
}

body.single-gd_place .directory-detail-section-card > h2:first-child,
body.single-gd_place .directory-detail-section-card > .wp-block-heading:first-child {
    margin-top: 0 !important;
}

body.single-gd_place .directory-detail-section-card > *:last-child,
body.single-gd_place .directory-detail-section-card p:last-child,
body.single-gd_place .directory-detail-section-card ul:last-child {
    margin-bottom: 0 !important;
}

body.single-gd_place .directory-detail-section-card .wp-block-columns,
body.single-gd_place .directory-detail-section-card .wp-block-geodirectory-geodir-widget-post-map,
body.single-gd_place .directory-detail-section-card .geodir-post-meta-container {
    margin-bottom: 0;
}

body.single-gd_place .geodir-comments-area.directory-detail-section-card,
body.single-gd_place #comments.directory-detail-section-card {
    width: 100%;
}

@media (max-width: 767.98px) {
    body.single-gd_place .directory-detail-subnav-wrap {
        margin-bottom: 1.5rem;
        padding-right: 1rem;
        padding-left: 1rem;
    }

    body.single-gd_place .directory-detail-subnav {
        gap: .25rem;
        padding: .35rem .5rem;
        margin-right: -1rem;
        margin-left: -1rem;
        border-right: 0;
        border-left: 0;
        border-radius: 0;
    }

    body.single-gd_place .directory-detail-subnav a {
        min-height: 1.9rem;
        padding: .3rem .55rem;
        font-size: .8rem;
    }

    body.single-gd_place .directory-detail-subnav a.is-active::after {
        right: .55rem;
        left: .55rem;
    }

    body.single-gd_place .directory-detail-main-grid__content > .directory-detail-subnav-wrap.is-stuck .directory-detail-subnav {
        padding-top: .5rem;
        padding-bottom: .5rem;
    }

    body.single-gd_place .directory-detail-section-card {
        padding: 1.25rem !important;
    }
}
/* Mallfinder: keep each detail target section visually separated */
body.single-gd_place .directory-detail-section-card--shops,
body.single-gd_place .directory-detail-section-card--lage,
body.single-gd_place .directory-detail-section-card--bewertungen,
body.single-gd_place .directory-detail-section-card--faq,
body.single-gd_place .directory-detail-section-card--service {
    display: block;
    clear: both;
}

body.single-gd_place .directory-detail-section-card + .directory-detail-section-card,
body.single-gd_place .directory-detail-section-card + .geodir-comments-area,
body.single-gd_place .geodir-comments-area.directory-detail-section-card + .directory-detail-section-card {
    margin-top: 1.5rem !important;
}

body.single-gd_place .directory-detail-section-card--lage .wp-block-columns,
body.single-gd_place .directory-detail-section-card--lage .wp-block-column,
body.single-gd_place .directory-detail-section-card--lage .wp-block-geodirectory-geodir-widget-post-map {
    width: 100%;
}

body.single-gd_place .directory-detail-section-card--bewertungen .comment-respond,
body.single-gd_place .directory-detail-section-card--bewertungen #comments,
body.single-gd_place .directory-detail-section-card--bewertungen .geodir-comments-area {
    margin-top: 0 !important;
}
/* Mallfinder: stable detail content/sidebar grid */
body.single-gd_place .directory-detail-main-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
    gap: clamp(2rem, 4vw, 4rem);
    align-items: start;
}

body.single-gd_place .directory-detail-main-grid__content {
    min-width: 0;
}

body.single-gd_place .directory-detail-main-grid__content > .wp-block-blockstrap-blockstrap-widget-container,
body.single-gd_place .directory-detail-main-grid__content > .wp-block-geodirectory-geodir-widget-single-reviews {
    width: 100%;
    max-width: 100%;
}

body.single-gd_place .directory-detail-main-grid__sidebar {
    min-width: 0;
    position: sticky;
    top: 6.5rem;
    align-self: start;
}

body.single-gd_place .directory-detail-main-grid__sidebar > * {
    width: 100%;
    max-width: 100%;
}

body.single-gd_place .directory-detail-section-card--lage > .wp-block-columns {
    display: grid !important;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
    gap: 1.5rem;
    align-items: start;
    margin-bottom: 0 !important;
}

body.single-gd_place .directory-detail-section-card--lage .wp-block-column {
    flex-basis: auto !important;
}

body.single-gd_place .directory-detail-section-card--lage .wp-block-geodirectory-geodir-widget-map,
body.single-gd_place .directory-detail-section-card--lage .geodir-map-wrap,
body.single-gd_place .directory-detail-section-card--lage .geodir_map_container,
body.single-gd_place .directory-detail-section-card--lage .main_map_wrapper,
body.single-gd_place .directory-detail-section-card--lage .iprelative,
body.single-gd_place .directory-detail-section-card--lage .geodir-map-canvas,
body.single-gd_place .directory-detail-section-card--lage .loading_div {
    min-height: 260px !important;
    height: 260px !important;
}

body.single-gd_place .directory-detail-section-card--bewertungen {
    width: 100% !important;
    max-width: 100% !important;
}

body.single-gd_place .directory-detail-section-card--bewertungen > .wp-block-geodirectory-geodir-widget-single-reviews,
body.single-gd_place .directory-detail-section-card--bewertungen .geodir-single-reviews-container,
body.single-gd_place .directory-detail-section-card--bewertungen #comments {
    width: 100% !important;
    max-width: 100% !important;
}

@media (max-width: 991.98px) {
    body.single-gd_place .directory-detail-main-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    body.single-gd_place .directory-detail-main-grid__sidebar {
        position: static;
        order: -1;
    }

    body.single-gd_place .directory-detail-section-card--lage > .wp-block-columns {
        grid-template-columns: 1fr;
    }
}
/* Mallfinder: grouped detail intro card */
body.single-gd_place #title {
    margin-bottom: 1.5rem !important;
}

body.single-gd_place .directory-detail-intro-card {
    width: 100%;
    margin: 0 !important;
    padding: clamp(1.25rem, 2vw, 2rem) !important;
    background: var(--directory-color-card, #fff) !important;
    border: 1px solid var(--directory-color-border, #E8ECEF) !important;
    border-bottom: 0 !important;
    border-radius: var(--directory-card-radius, 16px) var(--directory-card-radius, 16px) 0 0 !important;
    box-shadow: none !important;
}

/* Title card + subnav + description visually form one continuous box (unstuck state only). */
body.single-gd_place .directory-detail-main-grid__content > .directory-detail-subnav-wrap:not(.is-stuck) {
    background: var(--directory-color-card, #fff);
    border-left: 1px solid var(--directory-color-border, #E8ECEF);
    border-right: 1px solid var(--directory-color-border, #E8ECEF);
    padding-right: clamp(1.25rem, 2vw, 2rem) !important;
    padding-left: clamp(1.25rem, 2vw, 2rem) !important;
    margin: 0 !important;
}

body.single-gd_place .directory-detail-main-grid__content > .directory-detail-subnav-wrap:not(.is-stuck) .directory-detail-subnav {
    background: transparent;
    border: 0;
    box-shadow: none;
    border-radius: 0;
    padding-right: 0;
    padding-left: 0;
}

body.single-gd_place .directory-detail-intro-card__body {
    border: 1px solid var(--directory-color-border, #E8ECEF) !important;
    border-top: 0 !important;
    border-radius: 0 0 var(--directory-card-radius, 16px) var(--directory-card-radius, 16px) !important;
    margin-top: 0 !important;
    box-shadow: var(--directory-card-shadow, 0 1px 2px rgba(10, 10, 10, .03)) !important;
}

body.single-gd_place .directory-detail-intro-card__header {
    display: grid;
    gap: .75rem;
}

body.single-gd_place .directory-detail-intro-card__header > .wp-block-blockstrap-blockstrap-widget-container,
body.single-gd_place .directory-detail-intro-card__header > .row {
    margin-right: 0 !important;
    margin-left: 0 !important;
}

body.single-gd_place .directory-detail-intro-card h1 {
    margin-bottom: 0 !important;
}

/* Collapse a rating-badge column only if it's truly empty (defensive fallback — normally it now holds
   either real rating stars or the "write first review" link). */
body.single-gd_place .directory-detail-intro-card__header .col-auto:not(:has(*)) {
    display: none;
}

/* Meta row (rating/review-link, address, favorite, share) reads as one line: vertically centered,
   wraps gracefully on narrow screens instead of overlapping. */
body.single-gd_place .directory-detail-intro-card__header .row.text-gray-dark {
    --bs-gutter-x: .5rem;
    align-items: center;
    row-gap: .5rem;
}

/* An unused, always-empty column (GeoDirectory reserves it for a website-link paragraph this theme
   doesn't use) was eating ~48px of width here, which was just enough to push favorite/share onto a
   second line. Drop it so review-link/rating + address + favorite/share reliably fit on one line. */
body.single-gd_place .directory-detail-intro-card__header .col-auto:has(> p:empty) {
    display: none;
}

/* Meta-row text (address, favorite, share) at one consistent size, matching the review-link/rating
   column next to it. GeoDirectory/AyeCode UI render these with their own defaults (the share link
   specifically via Bootstrap's "fs-sm" utility class, which is itself !important — matching that is
   required here, not a stylistic choice). One rule for all three instead of separate per-element patches. */
body.single-gd_place .directory-detail-intro-card__header .geodir-post-address-container,
body.single-gd_place .directory-detail-intro-card__header .gd-fav-info-wrap,
body.single-gd_place .directory-detail-intro-card__header .gd-fav-info-wrap .geodir-fav-text,
body.single-gd_place .directory-detail-intro-card__header .bs-share-dropdown .dropdown-toggle,
body.single-gd_place .directory-detail-intro-card__header .directory-detail-rating-badge {
    font-size: .9rem !important;
}

/* Bootstrap's "ms-4" on the Share link (1rem) was more than this tight row can spare — the rating
   badge (5 icons + number) is wider than the review-link it replaces, so the row now sits close to its
   available width in general. */
body.single-gd_place .directory-detail-intro-card__header .bs-share-dropdown .dropdown-toggle {
    margin-left: .5rem !important;
}

/* Favorit/Herz-Button auf der Detailseite ausgeblendet. */
body.single-gd_place .directory-detail-intro-card__header .gd-fav-info-wrap {
    display: none !important;
}

/* Rating badge (once reviews exist): 5-star SVG display, matching the review summary further down the
   page, instead of GeoDirectory's single-icon "★ 3.3 (3)". */
body.single-gd_place .directory-detail-rating-badge {
    display: inline-flex;
    gap: .25rem;
    align-items: center;
}

/* The stars are an SVG icon centered in its own flex box, while "3,3 (3)" is plain text sitting on its
   natural baseline within a same-height box — geometrically centered but optically higher than the
   text next to it. Nudge down slightly so both read as sitting on the same line. */
body.single-gd_place .directory-detail-rating-badge .directory-svg-stars {
    margin-top: .15rem;
}

body.single-gd_place .directory-detail-rating-badge strong {
    color: var(--directory-color-heading, #171717);
    font-weight: 700;
}

body.single-gd_place .directory-detail-rating-badge__count {
    color: var(--directory-color-text, #5F6368);
}

body.single-gd_place .directory-detail-intro-card__body {
    color: var(--directory-color-text, #5F6368);
    line-height: 1.7;
}

body.single-gd_place .directory-detail-intro-card__body > *:last-child {
    margin-bottom: 0 !important;
}

@media (max-width: 767.98px) {
    body.single-gd_place .directory-detail-intro-card {
        padding: 1.25rem !important;
    }

    body.single-gd_place .directory-detail-intro-card .directory-detail-subnav {
        margin-right: 0;
        margin-left: 0;
        border-right: 1px solid var(--directory-color-border, #E8ECEF);
        border-left: 1px solid var(--directory-color-border, #E8ECEF);
        border-radius: var(--directory-card-radius, 16px);
    }
}
/* Mallfinder: detail intro card sits in content column and subnav sticks */
body.single-gd_place .directory-detail-main-grid__content > .directory-detail-intro-card {
    width: 100%;
    max-width: 100%;
}

body.single-gd_place #title > .directory-detail-intro-card {
    display: none !important;
}

body.single-gd_place .directory-detail-subnav-wrap {
    position: sticky;
    top: 78px;
    z-index: 20;
}

body.admin-bar.single-gd_place .directory-detail-subnav-wrap {
    top: calc(78px + 32px);
}

@media (max-width: 782px) {
    body.admin-bar.single-gd_place .directory-detail-subnav-wrap {
        top: calc(78px + 46px);
    }
}

@media (max-width: 991.98px) {
    body.single-gd_place .directory-detail-subnav-wrap {
        top: 4.75rem;
    }
}
body.single-gd_place .directory-detail-main-grid__content > .directory-detail-subnav-wrap {
    width: 100%;
    max-width: 100%;
    margin: 0 0 1.5rem !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
    transition: background-color .15s ease;
}

body.single-gd_place .directory-detail-main-grid__content > .directory-detail-subnav-wrap .directory-detail-subnav {
    box-shadow: var(--directory-card-shadow, 0 1px 2px rgba(10, 10, 10, .03));
}

/* Only go full-bleed with a solid background once the subnav has actually stuck to the top (JS toggles .is-stuck). */
/* Width/margin/padding for the full-bleed effect are set by JS (directory_detail_subnav_stuck_state_script) as exact
   pixel values, because the content column is NOT centered in the viewport (it sits left of a sidebar), so a pure
   left:50%/-50vw trick leaves a gap on one side. left:0 replaces the old left:50% per request. */
body.single-gd_place .directory-detail-main-grid__content > .directory-detail-subnav-wrap.is-stuck {
    left: 0;
    margin-top: 0 !important;
    padding-top: 0;
    padding-bottom: 0;
    background: #fff !important;
    border-bottom: 1px solid var(--directory-color-border, #E8ECEF);
}

body.single-gd_place .directory-detail-main-grid__content > .directory-detail-subnav-wrap.is-stuck .directory-detail-subnav {
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
    padding-top: .95rem;
    padding-bottom: .95rem;
}

/* Mallfinder: first review link now sits inline in the meta row (same slot real rating stars use),
   next to the address, on one line with the favorite/share icons. */
body.single-gd_place .directory-first-review-link {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    color: var(--directory-color-cta, #43D6C2);
    font-size: .9rem;
    font-weight: 500;
    line-height: 1.4;
    text-decoration: none;
    white-space: nowrap;
}

body.single-gd_place .directory-first-review-link:hover,
body.single-gd_place .directory-first-review-link:focus-visible {
    color: var(--directory-color-cta-hover, #29C8B3);
    text-decoration: underline;
    text-underline-offset: .18em;
}

body.single-gd_place .directory-detail-intro-card__body {
    border-top: 0 !important;
}

/* Mallfinder: detail page polish after server-rendered single template */
body.single-gd_place .directory-detail-list-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem 2rem;
    align-items: start;
    margin-top: 1rem;
    color: var(--directory-color-text, #5F6368);
    line-height: 1.45;
}

body.single-gd_place .directory-detail-list-grid span {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

body.single-gd_place .directory-detail-section-card {
    display: block !important;
}

body.single-gd_place .directory-detail-section-card h2 {
    margin: 0 0 1rem !important;
}

body.single-gd_place .directory-detail-section-card--service,
body.single-gd_place .directory-detail-section-card--shops,
body.single-gd_place .directory-detail-section-card--lage,
body.single-gd_place .directory-detail-section-card--bewertungen,
body.single-gd_place .directory-detail-section-card--faq {
    padding: clamp(1.5rem, 2.2vw, 2rem) !important;
}

body.single-gd_place .directory-detail-section-card--lage > .wp-block-columns {
    grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr) !important;
    gap: clamp(1.25rem, 2vw, 2rem) !important;
}

/* Lage section: map (behind a consent gate) stacked above an Adresse/Parken/&Ouml;PNV facts grid. */
body.single-gd_place .directory-map-consent {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
    padding: clamp(2rem, 5vw, 3rem) 1.5rem;
    text-align: center;
    background: var(--directory-color-section-alt, #F4F4F5);
    border-radius: var(--directory-card-radius, 16px);
}

body.single-gd_place .directory-map-consent__icon .directory-icon {
    width: 2rem;
    height: 2rem;
    color: var(--directory-color-icon, #94A3B8);
}

body.single-gd_place .directory-map-consent__title {
    margin: .5rem 0 0;
    font-size: 1.05rem;
    font-weight: 800;
}

body.single-gd_place .directory-map-consent__text {
    margin: 0;
    max-width: 32rem;
    color: var(--directory-color-text, #5F6368);
    font-size: .9rem;
    line-height: 1.5;
}

body.single-gd_place .directory-map-consent__button {
    margin-top: .5rem;
    padding: .65rem 1.5rem;
    border: 0;
    border-radius: 999px;
    background: var(--directory-color-cta, #43D6C2);
    color: #0A0A0A;
    font-weight: 700;
    font-size: .9rem;
    cursor: pointer;
}

body.single-gd_place .directory-map-consent__button:hover,
body.single-gd_place .directory-map-consent__button:focus-visible {
    background: var(--directory-color-cta-hover, #29C8B3);
}

body.single-gd_place .directory-detail-location-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem 2rem;
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--directory-color-border, #E8ECEF);
}

body.single-gd_place .directory-detail-location-fact--full {
    grid-column: 1 / -1;
}

/* Adresse/Parken/ÖPNV labels match the sidebar cards' headings (Öffnungszeiten/Kontakt) — same size and
   weight, not the small muted all-caps style this started as. */
body.single-gd_place .directory-detail-location-fact__label {
    display: block;
    margin-bottom: .35rem;
    color: var(--directory-color-heading, #171717);
    font-size: 17px;
    font-weight: 800;
    letter-spacing: normal;
    text-transform: none;
}

body.single-gd_place .directory-detail-location-fact__value {
    color: var(--directory-color-heading, #171717);
    font-size: .95rem;
    line-height: 1.5;
}

body.single-gd_place .directory-detail-location-fact--full .directory-detail-location-fact__value {
    color: var(--directory-color-text, #5F6368);
}

/* The address value still carries GeoDirectory's own .geodir_post_meta wrapper (kept deliberately, for
   its schema.org markup) — but an earlier rule turns THAT class into a flex row for the sidebar/intro
   card, which also caught this box and made the <br> between street and city meaningless (flexbox
   doesn't break rows at a <br>), laying street/postal/city out side by side instead of stacked. */
body.single-gd_place .directory-detail-location-fact__value .geodir_post_meta {
    display: block !important;
    padding-left: 0 !important;
}

@media (max-width: 575.98px) {
    body.single-gd_place .directory-detail-location-facts {
        grid-template-columns: 1fr;
    }
}

body.single-gd_place .directory-detail-section-card--lage .geodir_post_meta_title,
body.single-gd_place .directory-detail-main-grid__sidebar .geodir_post_meta_title,
body.single-gd_place .directory-detail-intro-card .geodir_post_meta_title {
    display: none !important;
}

body.single-gd_place .directory-detail-section-card--lage .geodir_post_meta_icon,
body.single-gd_place .directory-detail-main-grid__sidebar .geodir_post_meta_icon,
body.single-gd_place .directory-detail-intro-card .geodir_post_meta_icon {
    position: static !important;
    display: inline-flex !important;
    width: 1.25rem;
    min-width: 1.25rem;
    margin-right: .35rem;
    transform: none !important;
    vertical-align: top;
    /* The base .geodir_post_meta_icon rule dims to .5 opacity to soften GeoDirectory's own solid
       Font Awesome glyphs — our outline directory_svg_icon() replacements (see
       directory_swap_meta_field_icon()) already read lighter by design and should match the full
       strength used on the archive/nearby cards instead of looking washed out next to them. */
    opacity: 1;
}

body.single-gd_place .directory-detail-section-card--lage .geodir_post_meta,
body.single-gd_place .directory-detail-main-grid__sidebar .geodir_post_meta,
body.single-gd_place .directory-detail-intro-card .geodir_post_meta {
    display: flex;
    align-items: center;
    gap: .25rem;
    font-size: .9rem;
    /* The base .geodir_post_meta:has(.geodir_post_meta_icon) rule reserves padding-left:2em for an
       absolutely-positioned icon — but the icon rule right above this makes it position:static/inline
       instead, so that reserved space is now just a dead ~32px indent pushing the whole row (icon
       included) away from the card's left edge. */
    padding-left: 0 !important;
}

body.single-gd_place .directory-detail-intro-card a[href*="show-on-map"],
body.single-gd_place .directory-detail-intro-card a[href*="map"].geodir-show-on-map,
body.single-gd_place .directory-detail-intro-card .geodir-show-on-map {
    display: none !important;
}

body.single-gd_place .directory-detail-related-centers {
    margin-top: clamp(2rem, 4vw, 3rem);
}

body.single-gd_place .directory-detail-related-centers > h2 {
    margin: 0 0 1rem !important;
}

body.single-gd_place .directory-detail-related-centers__grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
}

body.single-gd_place .directory-detail-related-centers__grid > .geodir-post,
body.single-gd_place .directory-detail-related-centers__grid > .col {
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.single-gd_place .directory-detail-related-centers .directory-archive-card {
    min-height: 100%;
}

/* Straight-line distance from the center being viewed to each nearby one. */
.directory-archive-card__distance {
    color: var(--directory-color-cta-hover, #29c8b3);
    font-weight: 600;
}

@media (max-width: 991.98px) {
    body.single-gd_place .directory-detail-list-grid,
    body.single-gd_place .directory-detail-related-centers__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.single-gd_place .directory-detail-section-card--lage > .wp-block-columns {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 575.98px) {
    body.single-gd_place .directory-detail-list-grid,
    body.single-gd_place .directory-detail-related-centers__grid {
        grid-template-columns: 1fr;
    }
}

/* Map marker popup (geodirectory/map-popup.php, theme override) — the plugin's default template
   had no styling of its own here at all, relying entirely on GeoDirectory's own generic output;
   this replaces that with the same clean look as the rest of the site. */
.directory-map-popup {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    min-width: 180px;
}

.directory-map-popup__image img {
    display: block;
    width: 100%;
    height: 110px;
    object-fit: cover;
    border-radius: 8px;
}

/* The popup's title/stats/hours are the real .directory-archive-card__title / __stats / __meta /
   __hours markup and classes now (map-popup.php), not a parallel set of popup-only rules — so
   they pick up all of that CSS as-is (same font sizes, same open/closed colors, same icon
   treatment) with nothing to duplicate here. .directory-archive-card itself is "display:grid;
   gap:.8rem" for that same top-to-bottom spacing between its pieces; this popup body isn't that
   class (it's a plain div inside a Leaflet popup, not a card grid item) so it needs its own,
   slightly tighter version of the same idea. */
.directory-map-popup__body {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.directory-map-popup__link {
    display: inline-block;
    padding: .4rem .9rem;
    border-radius: 999px;
    background: var(--directory-color-cta, #43d6c2);
    color: #ffffff !important;
    font-size: .85rem;
    font-weight: 600;
    text-decoration: none;
}

.directory-map-popup__link:hover,
.directory-map-popup__link:focus-visible {
    background: var(--directory-color-cta-hover, #29c8b3);
}

/* Breadcrumb separator: Bootstrap/AyeCode UI's own .breadcrumb-item::before rule
 * (content: var(--bs-breadcrumb-divider, ""); font-family: "Font Awesome 5 Free"; font-weight: 900)
 * never gets a value for --bs-breadcrumb-divider from anywhere in the loaded CSS, and even where
 * that variable IS set elsewhere on this kind of site, Font Awesome itself (loaded from
 * use.fontawesome.com) is consent-gated by Borlabs Cookie — before a visitor accepts cookies, the
 * icon font never loads, and an icon-font codepoint with no matching glyph in any fallback font
 * renders as a "tofu" box. Setting the divider to a plain character sidesteps needing an icon
 * font for this at all — renders identically in any font, consent or not, and it's the one place
 * on the site relying on Font Awesome for something this small in the first place; everything
 * added this engagement uses the site's own directory_svg_icon() set instead. */
.breadcrumb {
    --bs-breadcrumb-divider: "\203A";
}

/* Back to top button (mallfinder_render_back_to_top(), mallfinder-back-to-top.php) - the ring is
   an SVG circle whose stroke-dashoffset the button's own script drives from scroll position, so
   it visually "closes" as the visitor scrolls down the page. */
.directory-back-to-top {
    position: fixed;
    right: 1.5rem;
    bottom: 1.5rem;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    background: #fff;
    border: none;
    border-radius: 999px;
    box-shadow: 0 8px 22px rgba(10, 10, 10, .14), inset 0 0 0 2px rgba(23, 23, 23, .08);
    cursor: pointer;
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: opacity .3s ease, transform .3s ease, visibility .3s, box-shadow .2s ease;
}

.directory-back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.directory-back-to-top:hover,
.directory-back-to-top:focus-visible {
    box-shadow: 0 10px 26px rgba(10, 10, 10, .18), inset 0 0 0 2px rgba(67, 214, 194, .4);
}

.directory-back-to-top__ring {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.directory-back-to-top__ring path {
    fill: none;
    stroke: var(--directory-color-cta, #43d6c2);
    stroke-width: 4;
    transition: stroke-dashoffset 80ms linear;
}

.directory-back-to-top__icon {
    position: relative;
    z-index: 1;
    display: flex;
}

.directory-back-to-top__icon .directory-icon {
    width: 1.15rem;
    height: 1.15rem;
    color: var(--directory-color-heading, #171717);
    stroke-width: 2.5;
}

@media (max-width: 767.98px) {
    .directory-back-to-top {
        right: 1rem;
        bottom: 1rem;
        width: 44px;
        height: 44px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .directory-back-to-top {
        transition: opacity .01ms, visibility .01ms;
    }

    .directory-back-to-top__ring path {
        transition: none;
    }
}

/* Shop-tag archives (/center/shops/<tag>/...) - directory_strip_tag_archive_map() drops the map
   column and the row's row-cols-md-2/lg-2 classes, leaving row-cols-1 so the remaining single .col
   (Bootstrap's own row-cols-1 rule) claims the row's full width; the card grid one level further
   in (GeoDirectory's own .geodir-listing-posts.row-cols-md-2) is untouched, so cards still lay out
   exactly like every other archive, just with the freed-up width instead of sharing it with a map. */
.directory-tag-archive-row .directory-archive-card {
    height: 100%;
}

/* directory_inject_tag_archive_description() - a gd_place_tags term's own WordPress description,
   shown under the heading like the /center/ category description. Same 2rem bottom margin as
   .directory-center-archive-description--top, so it doesn't run into the filter bar below it. */
.directory-tag-archive-description {
    max-width: 100%;
    margin: .5rem 0 2rem;
    color: var(--directory-color-text, #5f6368);
}

.directory-tag-archive-description p:last-child {
    margin-bottom: 0;
}

/* mallfinder_magazin_toc_wrap_layout() (mallfinder-magazin-toc.php) - auto-generated Magazin
   article TOC. body.single-post #main already has its own long-standing max-width:760px
   !important reading-column rule (further capped to 640px inside via .entry-content/.col-lg-8) -
   deliberately left completely untouched. Instead of fighting that from the inside (an earlier
   version tried floating/flexing *inside* #main and either overlapped the text or fought the
   existing !important rules), this wraps the WHOLE #main element and puts the TOC beside it as
   a flex sibling in a new, wider row - the same "wrap the two things that need to sit side by
   side in their own flex row" technique already proven for the archive-map sidebar on /center/
   (see .directory-archive-two-col). */
.directory-magazin-layout {
    display: block;
}

.directory-magazin-toc-col {
    margin: 0 0 1.5rem;
}

.directory-magazin-toc {
    background: var(--directory-color-card, #fff);
    border: 1px solid var(--directory-color-border, #E8ECEF);
    border-radius: .75rem;
    padding: 1.25rem 1.5rem;
}

.directory-magazin-toc__summary {
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    color: var(--directory-color-heading, #171717);
    cursor: pointer;
    list-style: revert;
}

.directory-magazin-toc__details[open] .directory-magazin-toc__summary {
    margin-bottom: .75rem;
}

.directory-magazin-toc__list {
    margin: 0;
    padding-left: 1.1rem;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.directory-magazin-toc__list li {
    /* Active-state indicator bar lives here, not on the link, so it spans the full row height
       (including the link's line-height) instead of hugging just the text glyphs. */
    position: relative;
    padding-left: .75rem;
    border-left: 2px solid transparent;
    transition: border-color .15s ease;
}

.directory-magazin-toc__list li.is-active {
    border-left-color: var(--directory-color-cta, #43D6C2);
}

.directory-magazin-toc__list a {
    color: var(--directory-color-text, #5F6368);
    text-decoration: none;
    line-height: 1.4;
}

.directory-magazin-toc__list a:hover,
.directory-magazin-toc__list a:focus {
    color: var(--directory-color-cta, #43D6C2);
    text-decoration: underline;
}

.directory-magazin-toc__list a.is-active {
    color: var(--directory-color-cta-hover, #29C8B3);
    font-weight: 600;
    text-decoration: none;
}

.entry-content .wp-block-heading {
    /* Fallback only (native/no-JS anchor jump) — matches the sticky-header clearance already
       used for detail-page anchor targets (.directory-detail-section-card). */
    scroll-margin-top: 10rem;
}

/* Needs the article column's 720px (below - narrower than #main's own 760px !important ceiling,
   see .directory-magazin-layout > #main) plus the 290px TOC plus a gap to fit side by side
   without wrapping - narrower than that, the TOC becomes the hidden-until-opened mobile overlay
   below instead (the .directory-magazin-layout: block default, .directory-magazin-toc-col:
   display:none until .is-open). */
@media (min-width: 1100px) {
    .directory-magazin-layout {
        display: flex;
        /* stretch (not flex-start): gives .directory-magazin-toc-col the full article height
           as its own box height, so its sticky child has room to stay pinned while scrolling
           through the whole article instead of only through the TOC's own short content
           height - same reasoning as .directory-archive-two-col's align-items: stretch. */
        align-items: stretch;
        gap: 2rem;
        /* The site's own overall page width is 1296px (not the raw browser viewport) - the TOC
           column should reach the left edge of THAT canvas, not the true edge of a wider
           browser window. #main keeps its own fixed width regardless of how much room that
           leaves the TOC column. width:100% is required here: a flex container's auto width
           shrinks to fit its children (unlike an ordinary block element), so without it
           max-width + margin:auto centers the whole {TOC+article} pair as one shrink-wrapped
           block instead of letting the container reach its full 1296px, which is what gives
           #main's own auto margins (below) room to center IT within the leftover space. */
        width: 100%;
        max-width: 1296px;
        margin-left: auto;
        margin-right: auto;
    }

    .directory-magazin-toc-col {
        /* Fixed, not growing: matching finanzfluss's own proportions (~290px TOC next to a
           ~720px reading column) matters more than filling 100% of the 1296px canvas's leftover
           width - flex-grow:1 here (an earlier version) stretched this to ~544px since that's
           what was actually left over (1296 - 720 - gap), which read as far too wide. */
        flex: 0 0 290px;
        margin: 0;
    }

    /* #main's own max-width:760px !important rule (body.single-post #main, in the rules further
       up this file) stays as the ceiling; 720px here is comfortably under it, so this flex-basis
       is what actually renders. Its own pre-existing margin-left/right:auto !important rule is
       deliberately left alone (not overridden) - that's what centers #main within whatever flex
       space is left after the fixed-width TOC, matching finanzfluss: TOC flush at the canvas's
       left edge, article centered in the remaining space next to it, not just glued to the TOC
       with a fixed gap. */
    .directory-magazin-layout > #main {
        flex: 0 0 720px;
    }

    .directory-magazin-toc {
        position: sticky;
        top: 6.75rem;
    }

    .directory-magazin-toc__close,
    .directory-magazin-toc-trigger {
        display: none;
    }
}

/* Mobile/tablet: no room for a side-by-side sidebar, so the TOC lives off-screen until the
   floating trigger button (stacked directly above the existing back-to-top button) opens it as
   a full-screen overlay - same pattern as finanzfluss's mobile TOC. */
@media (max-width: 1099.98px) {
    .directory-magazin-toc-col {
        display: none;
    }

    .directory-magazin-toc-col.is-open {
        display: flex;
        align-items: flex-start;
        justify-content: center;
        position: fixed;
        inset: 0;
        z-index: 1200;
        background: rgba(15, 15, 15, .55);
        padding: 4rem 1.25rem;
        overflow-y: auto;
    }

    .directory-magazin-toc-col.is-open .directory-magazin-toc {
        position: relative;
        width: 100%;
        max-width: 420px;
        max-height: calc(100vh - 8rem);
        overflow-y: auto;
    }

    .directory-magazin-toc__close {
        position: absolute;
        top: .75rem;
        right: .75rem;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 32px;
        height: 32px;
        padding: 0;
        background: transparent;
        border: none;
        border-radius: 999px;
        color: var(--directory-color-text, #5F6368);
        cursor: pointer;
    }

    .directory-magazin-toc__close .directory-icon {
        width: 1.1rem;
        height: 1.1rem;
    }

    .directory-magazin-toc-trigger {
        position: fixed;
        right: 1.5rem;
        bottom: 5.25rem;
        width: 48px;
        height: 48px;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 0;
        background: #fff;
        border: none;
        border-radius: 999px;
        box-shadow: 0 8px 22px rgba(10, 10, 10, .14), inset 0 0 0 2px rgba(23, 23, 23, .08);
        color: var(--directory-color-heading, #171717);
        cursor: pointer;
        z-index: 1000;
    }

    .directory-magazin-toc-trigger:hover,
    .directory-magazin-toc-trigger:focus-visible {
        box-shadow: 0 10px 26px rgba(10, 10, 10, .18), inset 0 0 0 2px rgba(67, 214, 194, .4);
    }

    body.directory-magazin-toc-locked {
        overflow: hidden;
    }
}

@media (max-width: 767.98px) {
    .directory-magazin-toc-trigger {
        right: 1rem;
        bottom: 4.5rem;
        width: 44px;
        height: 44px;
    }
}

/* Mobile main nav menu (the hamburger dropdown, #navbarNav_main-nav / .navbar-collapse) -
   previously just Bootstrap/AyeCode's default navbar-dark styling with no background of its
   own: the panel showed near-white text with no backing card, sitting either over a hero photo
   (fine) or, once the page's white background scrolled behind it, effectively invisible - a
   real "not simple to use" bug, not just a look-and-feel preference. The <nav> itself is
   fixed-top, so its child .navbar-collapse is already positioned as an overlay without needing
   position:fixed of its own here - only the panel's own background/text need fixing.
   Selectors use the #navbarNav_main-nav ID (present in the real markup on the collapse panel
   itself) rather than relying on classes alone - an earlier class-only version of this same
   fix (background/border rules only, not shown here) didn't reliably beat every AyeCode/
   Bootstrap navbar-dark color rule on the live site despite matching in isolated testing, and
   an ID is unbeatable regardless of which exact selector was actually winning there. */
@media (max-width: 991.98px) {
    #navbarNav_main-nav.navbar-collapse,
    .wp-block-blockstrap-blockstrap-widget-navbar .navbar-collapse {
        background: #fff !important;
        box-shadow: 0 16px 32px rgba(10, 10, 10, .16);
        border-radius: 0 0 1rem 1rem;
        padding: .25rem 1.25rem 1rem;
        max-height: calc(100vh - 4.5rem);
        overflow-y: auto;
    }

    #navbarNav_main-nav .nav-item,
    .wp-block-blockstrap-blockstrap-widget-navbar .navbar-collapse .nav-item {
        border: none !important;
        border-radius: 0 !important;
        border-bottom: 1px solid var(--directory-color-border, #E8ECEF) !important;
    }

    #navbarNav_main-nav .nav-item:last-child,
    .wp-block-blockstrap-blockstrap-widget-navbar .navbar-collapse .nav-item:last-child {
        border-bottom: none !important;
    }

    #navbarNav_main-nav .nav-link,
    .wp-block-blockstrap-blockstrap-widget-navbar .navbar-collapse .nav-link {
        color: #171717 !important;
        font-weight: 600;
        padding: 1rem .25rem !important;
    }

    #navbarNav_main-nav .nav-link:hover,
    #navbarNav_main-nav .nav-link:focus-visible,
    #navbarNav_main-nav .nav-item.active .nav-link,
    .wp-block-blockstrap-blockstrap-widget-navbar .navbar-collapse .nav-link:hover,
    .wp-block-blockstrap-blockstrap-widget-navbar .navbar-collapse .nav-link:focus-visible,
    .wp-block-blockstrap-blockstrap-widget-navbar .navbar-collapse .nav-item.active .nav-link {
        color: #29c8b3 !important;
    }

    /* The search field lives inside this same collapse panel (directory-header-search-item) -
       it already has its own light styling elsewhere, just dropping its own border here so it
       doesn't get the nav-item divider line meant for the menu links above it. */
    #navbarNav_main-nav .directory-header-search-item,
    .wp-block-blockstrap-blockstrap-widget-navbar .navbar-collapse .directory-header-search-item {
        border-bottom: none !important;
        padding-top: .5rem;
    }
}

/* Mallfinder: detail intro card - title, rating/address row, subnav tabs and description share one left edge.
   Each layer added its own inset (Bootstrap col gutter 12px on the title, 4px on the meta row, 0.65rem + 0.9rem
   padding on the first tab); the description text sits at the card's padding edge, so everything else is pulled to it. */
body.single-gd_place .directory-detail-intro-card__header .row > :first-child {
    padding-left: 0 !important;
}

body.single-gd_place .directory-detail-main-grid__content > .directory-detail-subnav-wrap:not(.is-stuck) .directory-detail-subnav {
    margin-right: -.9rem;
    margin-left: -.9rem;
}

@media (max-width: 767.98px) {
    body.single-gd_place .directory-detail-main-grid__content > .directory-detail-subnav-wrap:not(.is-stuck) .directory-detail-subnav {
        margin-right: -.55rem;
        margin-left: -.55rem;
    }
}

/* Mallfinder: detail intro card - tighter vertical rhythm so the tab bar reads as part of the card instead of
   floating between two large gaps (was ~39px above and below the tabs). The tabs get a hairline underneath
   (classic tab-bar pattern; the active tab's underline sits right on it). Unstuck state only. */
body.single-gd_place .directory-detail-intro-card {
    padding-bottom: .75rem !important;
}

body.single-gd_place .directory-detail-main-grid__content > .directory-detail-subnav-wrap:not(.is-stuck) {
    border-bottom: 1px solid var(--directory-color-border, #E8ECEF);
}

body.single-gd_place .directory-detail-main-grid__content > .directory-detail-subnav-wrap:not(.is-stuck) .directory-detail-subnav {
    padding-top: .35rem;
    padding-bottom: .35rem;
}

body.single-gd_place .directory-detail-main-grid__content > .directory-detail-subnav-wrap:not(.is-stuck) .directory-detail-subnav a.is-active::after {
    bottom: -.35rem;
}

body.single-gd_place .directory-detail-section-card.directory-detail-intro-card__body {
    padding-top: 1.25rem !important;
}

/* Mallfinder: sidebar "Angabe falsch?" - one box. Report CTA as a real button, the data-provenance note moved
   into the same card behind a hairline (it used to float below the card as a separate low-contrast line). */
body.single-gd_place .directory-sidebar-report-card .directory-sidebar-report-card__link {
    padding: .6rem 1.15rem;
    color: var(--directory-color-heading, #171717) !important;
    background: var(--directory-color-cta, #43D6C2);
    border-radius: 999px;
    font-size: .95rem;
    text-decoration: none !important;
    transition: background-color .18s ease;
}

body.single-gd_place .directory-sidebar-report-card .directory-sidebar-report-card__link:hover,
body.single-gd_place .directory-sidebar-report-card .directory-sidebar-report-card__link:focus-visible {
    color: var(--directory-color-heading, #171717) !important;
    background: var(--directory-color-cta-hover, #29C8B3);
}

body.single-gd_place .directory-sidebar-report-card .directory-sidebar-data-note {
    margin: 1.1rem 0 0;
    padding: .85rem 0 0;
    border-top: 1px solid rgba(23, 23, 23, .1);
    color: var(--directory-color-text, #5F6368);
    font-size: .8rem;
    line-height: 1.5;
}

body.single-gd_place .directory-sidebar-report-card .directory-sidebar-data-note a {
    color: var(--directory-color-text, #5F6368);
    text-decoration: underline;
    text-underline-offset: .15em;
}

/* Mallfinder: "Fehler melden" page (/fehler-melden/, Contact Form 7). Form card + short "what happens next" aside. */
.directory-report-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 20rem;
    gap: 1.5rem;
    align-items: start;
}

.directory-report-form {
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid var(--directory-card-border, #E8ECEF);
    border-radius: var(--directory-card-radius, 16px);
    background: var(--directory-color-card, #fff);
    box-shadow: var(--directory-card-shadow, 0 1px 2px rgba(10, 10, 10, .03));
}

.directory-report-form .wpcf7-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 1rem;
}

.directory-report-form .wpcf7-form > * {
    grid-column: 1 / -1;
}

.directory-report-form .wpcf7-form > .mf-field--half {
    grid-column: auto;
}

.directory-report-form .mf-field,
.directory-report-form .mf-consent,
.directory-report-form .mf-actions {
    margin: 0 0 1.15rem;
}

.directory-report-form .mf-field p,
.directory-report-form .mf-consent p,
.directory-report-form .mf-actions p {
    margin: 0;
}

.directory-report-form br {
    display: none;
}

.directory-report-form .mf-field label {
    display: block;
    margin: 0 0 .4rem;
    color: var(--directory-color-heading, #171717);
    font-size: .95rem;
    font-weight: 600;
}

.directory-report-form .mf-optional {
    color: var(--directory-color-muted, #94A3B8);
    font-weight: 400;
}

.directory-report-form .wpcf7-form-control-wrap {
    display: block;
}

.directory-report-form input[type="text"],
.directory-report-form input[type="url"],
.directory-report-form input[type="email"],
.directory-report-form select,
.directory-report-form textarea {
    width: 100%;
    padding: .78rem .95rem;
    color: var(--directory-color-heading, #171717);
    font: inherit;
    background: #fff;
    border: 1px solid var(--directory-color-border, #E8ECEF);
    border-radius: 12px;
    box-shadow: none;
    transition: border-color .18s ease, box-shadow .18s ease;
}

.directory-report-form textarea {
    min-height: 8.5rem;
    resize: vertical;
}

.directory-report-form input:focus,
.directory-report-form select:focus,
.directory-report-form textarea:focus {
    border-color: var(--directory-color-cta, #43D6C2);
    outline: 0;
    box-shadow: 0 0 0 3px rgba(67, 214, 194, .22);
}

.directory-report-form ::placeholder {
    color: var(--directory-color-muted, #94A3B8);
}

.directory-report-form .mf-hp {
    position: absolute !important;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.directory-report-form .mf-consent {
    color: var(--directory-color-text, #5F6368);
    font-size: .9rem;
    line-height: 1.5;
}

.directory-report-form .mf-consent .wpcf7-list-item {
    margin: 0;
}

.directory-report-form .mf-consent label {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
}

.directory-report-form .mf-consent input[type="checkbox"] {
    flex: 0 0 auto;
    width: 1.1rem;
    height: 1.1rem;
    margin-top: .2rem;
    accent-color: var(--directory-color-cta, #43D6C2);
}

.directory-report-form .mf-consent a {
    color: var(--directory-color-text, #5F6368);
    text-decoration: underline;
    text-underline-offset: .15em;
}

.directory-report-form .wpcf7-submit {
    padding: .8rem 1.7rem;
    border: 0;
    border-radius: 999px;
    font-weight: 700;
    cursor: pointer;
}

.directory-report-form .wpcf7-spinner {
    margin: 0 0 0 .75rem;
}

.directory-report-form .wpcf7-not-valid-tip {
    margin-top: .35rem;
    color: #B42318;
    font-size: .85rem;
}

.directory-report-form .wpcf7-not-valid {
    border-color: #B42318;
}

.directory-report-form .wpcf7 form .wpcf7-response-output {
    margin: 1.25rem 0 0;
    padding: .85rem 1rem;
    border: 1px solid var(--directory-color-border, #E8ECEF);
    border-radius: 12px;
    color: var(--directory-color-heading, #171717);
    font-size: .95rem;
}

.directory-report-form .wpcf7 form.sent .wpcf7-response-output {
    background: #EAF7F2;
    border-color: var(--directory-color-cta, #43D6C2);
}

.directory-report-form .wpcf7 form.invalid .wpcf7-response-output,
.directory-report-form .wpcf7 form.failed .wpcf7-response-output,
.directory-report-form .wpcf7 form.spam .wpcf7-response-output,
.directory-report-form .wpcf7 form.unaccepted .wpcf7-response-output {
    background: #FEF3F2;
    border-color: #FDA29B;
}

.directory-report-aside {
    padding: 1.35rem;
    border: 1px solid var(--directory-color-border, #E8ECEF);
    border-radius: var(--directory-card-radius, 16px);
    background: var(--directory-color-icon-bg, #F2FFFD);
}

.directory-report-aside h2 {
    margin: 0 0 .8rem;
    font-size: 1.15rem;
}

.directory-report-aside ol {
    margin: 0 0 1rem;
    padding-left: 1.2rem;
    color: var(--directory-color-text, #5F6368);
    line-height: 1.55;
}

.directory-report-aside li + li {
    margin-top: .4rem;
}

.directory-report-aside p {
    margin: 0;
    color: var(--directory-color-text, #5F6368);
    font-size: .9rem;
    line-height: 1.55;
}

.directory-report-aside a {
    color: var(--directory-color-text, #5F6368);
    text-decoration: underline;
    text-underline-offset: .15em;
}

@media (max-width: 991.98px) {
    .directory-report-layout {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 575.98px) {
    .directory-report-form .wpcf7-form {
        grid-template-columns: minmax(0, 1fr);
    }

    .directory-report-form .wpcf7-form > .mf-field--half {
        grid-column: 1 / -1;
    }
}

/* Mallfinder: archive pages - breadcrumb, h1, region pills, toolbar and cards share one left edge. The entries
   column carried Bootstrap's ps-2 / ps-lg-4 (8px / 24px) on top of the row's -12px gutter offset, so the filter
   toolbar and cards sat 4px left of the heading on phones and 12px right of it on desktop. 12px = the gutter the
   row already compensates, which lands the column's content exactly on the container edge at every width. */
.directory-archive-left-col > .row > .col:first-child {
    padding-left: 12px !important;
}

@media (max-width: 991.98px) {
    .directory-archive-left-col > .row > .col:first-child {
        padding-right: 12px !important;
    }
}

/* Mallfinder: sidebar "Angabe falsch?" is the least important card - quiet version. No mint fill, no shadow,
   smaller type, secondary outline button; it should be findable, not noticed. */
body.single-gd_place .directory-detail-main-grid__sidebar .list-group.sticky-top > .list-group-item.directory-sidebar-report-card {
    padding: 1rem 1.15rem !important;
    background: transparent !important;
    border: 1px solid var(--directory-color-border, #E8ECEF) !important;
    box-shadow: none !important;
}

body.single-gd_place .directory-detail-main-grid__sidebar .directory-sidebar-report-card .directory-sidebar-report-card__title {
    margin: 0 0 .25rem;
    color: var(--directory-color-heading, #171717);
    font-size: .95rem !important;
    font-weight: 600;
}

body.single-gd_place .directory-detail-main-grid__sidebar .directory-sidebar-report-card .directory-sidebar-report-card__text {
    margin: 0 0 .7rem;
    color: var(--directory-color-text, #5F6368);
    font-size: .85rem;
    line-height: 1.45;
}

body.single-gd_place .directory-sidebar-report-card .directory-sidebar-report-card__link {
    padding: .35rem .85rem;
    color: var(--directory-color-text, #5F6368) !important;
    background: transparent;
    border: 1px solid var(--directory-color-border, #E8ECEF);
    font-size: .85rem;
    font-weight: 600;
}

body.single-gd_place .directory-sidebar-report-card .directory-sidebar-report-card__link:hover,
body.single-gd_place .directory-sidebar-report-card .directory-sidebar-report-card__link:focus-visible {
    color: var(--directory-color-heading, #171717) !important;
    background: transparent;
    border-color: var(--directory-color-cta, #43D6C2);
}

body.single-gd_place .directory-sidebar-report-card .directory-sidebar-data-note {
    margin-top: .85rem;
    padding-top: .7rem;
    border-top-color: var(--directory-color-border, #E8ECEF);
    color: var(--directory-color-muted, #94A3B8);
    font-size: .75rem;
}

body.single-gd_place .directory-sidebar-report-card .directory-sidebar-data-note a {
    color: var(--directory-color-text, #5F6368);
}

/* Mallfinder: listing cards v2 + quick-filter chips (learned from GetYourGuide / Airbnb / home24: facts instead
   of filler text, status up front, one-tap filters). */
.directory-archive-card--v2 {
    align-content: start;
    gap: .55rem;
    padding: 1.1rem 1.25rem 1.2rem;
}

.directory-archive-card--v2 .directory-archive-card__status {
    display: inline-flex;
    align-items: center;
    align-self: start;
    justify-self: start;
    gap: .4rem;
    padding: .22rem .7rem;
    border-radius: 999px;
    background: #F1F3F5;
    color: var(--directory-color-text, #5F6368);
    font-size: .75rem;
    font-weight: 600;
    line-height: 1.4;
}

.directory-archive-card--v2 .directory-archive-card__status::before {
    content: "";
    width: .45rem;
    height: .45rem;
    border-radius: 50%;
    background: currentColor;
    opacity: .8;
}

.directory-archive-card--v2 .directory-archive-card__status.is-open {
    background: #E8F8EF;
    color: #12804A;
}

.directory-archive-card--v2 .directory-archive-card__status.is-closing-soon {
    background: #FFF4E5;
    color: #B35C00;
}

.directory-archive-card--v2 .directory-archive-card__status-until {
    font-weight: 500;
}

.directory-archive-card--v2 .directory-archive-card__status-until::before {
    content: "\00b7";
    margin-right: .4rem;
}

.directory-archive-card--v2 .directory-archive-card__title {
    margin-top: .1rem;
}

.directory-archive-card--v2 .directory-archive-card__brands {
    overflow: hidden;
    margin: 0;
    color: var(--directory-color-text, #5F6368);
    font-size: .82rem;
    line-height: 1.4;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.directory-archive-card--v2 .directory-archive-card__brands span {
    color: var(--directory-color-muted, #94A3B8);
}

.directory-archive-card--v2 .directory-archive-card__meta {
    margin-top: .1rem;
    padding-top: .65rem;
}

.directory-archive-chips {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin: 0 0 .75rem;
}

.directory-archive-chip {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .4rem 1rem;
    border: 1px solid #E2E2E2;
    border-radius: 999px;
    background: #fff;
    color: var(--directory-color-heading, #171717);
    font-size: .9rem;
    font-weight: 500;
    line-height: 1.4;
    text-decoration: none;
    white-space: nowrap;
    transition: border-color .15s ease, background-color .15s ease;
}

.directory-archive-chip:hover,
.directory-archive-chip:focus-visible {
    border-color: var(--directory-color-cta, #43D6C2);
    color: var(--directory-color-heading, #171717);
    background: rgba(67, 214, 194, .08);
    text-decoration: none;
}

.directory-archive-chip.is-active {
    border-color: var(--directory-color-cta, #43D6C2);
    background: rgba(67, 214, 194, .16);
    font-weight: 600;
}

.directory-archive-chip.is-active::after {
    content: "\00d7";
    margin-left: .1rem;
    color: var(--directory-color-text, #5F6368);
    font-size: 1.1rem;
    line-height: 1;
}

@media (max-width: 575.98px) {
    .directory-archive-chips {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: .15rem;
        scrollbar-width: none;
    }

    .directory-archive-chips::-webkit-scrollbar {
        display: none;
    }
}

/* Mallfinder: archive bar - the old "Filter" dropdown is gone (the chips are the filters now); chips on the left,
   sort on the right of one row, filters reset as a quiet text link at the end of the chips. */
.directory-archive-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .6rem 1rem;
    margin: 0 0 1.5rem;
}

.directory-archive-bar .directory-archive-chips {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
}

.directory-archive-bar .directory-archive-toolbar {
    flex: 0 0 auto;
    margin: 0;
}

.directory-archive-chips__reset {
    align-self: center;
    padding: 0 .35rem;
    color: var(--directory-color-text, #5F6368);
    font-size: .85rem;
    text-decoration: underline;
    text-underline-offset: .15em;
    white-space: nowrap;
}

.directory-archive-chips__reset:hover,
.directory-archive-chips__reset:focus-visible {
    color: var(--directory-color-heading, #171717);
}

@media (max-width: 575.98px) {
    .directory-archive-bar .directory-archive-chips {
        flex-basis: 100%;
    }
}

/* Mallfinder: homepage in the Airbnb manner - no photos or logos, so structure, type, colour tints and our own
   icons carry it: fact strip, scrollable card rows, tinted state tiles. */
.mallfinder-home-trust {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .6rem 2.25rem;
    max-width: 1320px;
    margin: 0 auto;
    padding: 1rem 1rem;
    border-top: 1px solid var(--directory-color-border, #E8ECEF);
    border-bottom: 1px solid var(--directory-color-border, #E8ECEF);
    background: #fff;
}

.mallfinder-home-trust__item {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    color: var(--directory-color-text, #5F6368);
    font-size: .9rem;
}

.mallfinder-home-trust__item strong {
    color: var(--directory-color-heading, #171717);
    font-weight: 600;
}

.mallfinder-home-trust__item .directory-icon {
    width: 1.1rem;
    height: 1.1rem;
    color: var(--directory-color-cta, #43D6C2) !important;
}

body.home .directory-home-section.directory-home-row {
    padding-top: 0 !important;
}

.directory-hrow {
    position: relative;
}

.directory-hrow__track {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    padding: .25rem 0 1rem;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.directory-hrow__track::-webkit-scrollbar {
    display: none;
}

.directory-hrow__track > .col {
    flex: 0 0 min(290px, 78vw);
    width: auto;
    max-width: none;
    margin: 0 !important;
    padding: 0;
    scroll-snap-align: start;
}

.directory-hrow__btn {
    position: absolute;
    top: calc(50% - 1rem);
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    padding: 0 0 .15rem;
    border: 1px solid var(--directory-color-border, #E8ECEF);
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 8px rgba(10, 10, 10, .12);
    color: var(--directory-color-heading, #171717);
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    transition: transform .15s ease, box-shadow .15s ease;
}

.directory-hrow__btn:hover,
.directory-hrow__btn:focus-visible {
    transform: scale(1.06);
    box-shadow: 0 4px 12px rgba(10, 10, 10, .16);
}

.directory-hrow__btn--prev {
    left: -1.1rem;
}

.directory-hrow__btn--next {
    right: -1.1rem;
}

@media (hover: none), (max-width: 767.98px) {
    .directory-hrow__btn {
        display: none;
    }
}

/* Federal-state cards become tinted tiles (Airbnb's "Reiseziele" without the photos). */
body.home .categories .directory-location-cards__grid {
    gap: 1rem;
}

body.home .categories .directory-location-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto 1fr;
    align-items: start;
    gap: .9rem .5rem;
    min-height: 8.25rem;
    padding: 1.1rem 1.25rem;
    border: 0 !important;
    border-radius: 20px !important;
    background: var(--mf-tile, #E4F7F2) !important;
    box-shadow: none !important;
    transition: transform .18s ease, box-shadow .18s ease;
}

body.home .categories .directory-location-card:nth-child(5n + 2) { --mf-tile: #E3F1F8; }
body.home .categories .directory-location-card:nth-child(5n + 3) { --mf-tile: #FFF3DC; }
body.home .categories .directory-location-card:nth-child(5n + 4) { --mf-tile: #F5E9F3; }
body.home .categories .directory-location-card:nth-child(5n + 5) { --mf-tile: #ECEBFA; }

body.home .categories .directory-location-card:hover,
body.home .categories .directory-location-card:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(10, 10, 10, .08) !important;
}

body.home .categories .directory-location-card__pin {
    grid-area: 1 / 1;
    width: 2.2rem;
    height: 2.2rem;
    border-radius: 50%;
    background: rgba(255, 255, 255, .75) !important;
}

body.home .categories .directory-location-card__arrow {
    grid-area: 1 / 2;
    justify-self: end;
}

body.home .categories .directory-location-card__body {
    grid-area: 2 / 1 / 3 / 3;
    align-self: end;
}

body.home .categories .directory-location-card__name {
    font-size: 1.05rem;
    font-weight: 700;
}

body.home .categories .directory-location-card__count {
    color: var(--directory-color-text, #5F6368);
    font-size: .85rem;
}

/* Mallfinder: the state tiles' section was a full-bleed block (100vw + negative margins) while every other
   homepage section sits in the page container, so below ~1400px its heading and tiles started 28px further left
   than the rows above and below. Back into the container: one left edge for all sections. */
body.home .categories.container-fluid {
    position: static !important;
    left: auto !important;
    width: auto !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

body.home .categories.container-fluid > .wp-block-blockstrap-blockstrap-widget-container {
    max-width: none;
    padding-right: 0;
    padding-left: 0;
}

@media (max-width: 767.98px) {
    body.home .directory-home-magazine {
        padding-right: 0 !important;
        padding-left: 0 !important;
    }
}

/* Mallfinder: hero search, redone. One white pill (input + button inside it, a single focus ring on the pill instead
   of a second outlined field inside the first), a calmer headline/subline rhythm, and one row of equal-weight
   pills underneath. */
body.home h1.display-5 {
    margin-bottom: .6rem !important;
    padding-bottom: 0 !important;
    font-size: clamp(2rem, 4.2vw, 3rem) !important;
    line-height: 1.12;
}

body.home .directory-home-hero-subline {
    max-width: 34rem;
    margin: 0 auto 2rem !important;
    padding-bottom: 0 !important;
    color: var(--directory-color-text, #5F6368) !important;
    font-size: 1.1rem !important;
    line-height: 1.55;
}

body.home .directory-hero-status {
    width: fit-content;
    margin: 0 auto 1.1rem;
    padding: .3rem .85rem;
    border-radius: 999px;
    background: rgba(30, 185, 128, .12);
    color: #12804A;
    font-size: .85rem !important;
    font-weight: 600;
}

body.home .directory-hero-status strong {
    color: inherit;
}

body.home .geodir-search-form-wrapper {
    max-width: 46rem;
    margin: 0 auto 1.1rem !important;
    padding: .35rem .35rem .35rem 1rem !important;
    border: 1px solid rgba(23, 23, 23, .08) !important;
    border-radius: 999px !important;
    background: #fff !important;
    box-shadow: 0 8px 28px rgba(10, 10, 10, .10);
    transition: border-color .18s ease, box-shadow .18s ease;
}

body.home .geodir-search-form-wrapper:focus-within {
    border-color: var(--directory-color-cta, #43D6C2) !important;
    box-shadow: 0 8px 28px rgba(10, 10, 10, .10), 0 0 0 .2rem rgba(67, 214, 194, .22);
}

body.home .geodir-search-form-wrapper .geodir-search {
    flex-wrap: nowrap !important;
    gap: .5rem !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

body.home .geodir-search-form-wrapper input.search_text,
body.home .geodir-search-form-wrapper input.search_text:focus {
    height: 3.2rem;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    font-size: 1.05rem;
}

body.home .geodir-search-form-wrapper .gd-search-field-search.flex-grow-1 {
    flex: 0 0 auto !important;
}

body.home .geodir-search-form-wrapper .geodir_submit_search {
    width: auto !important;
    height: 3.2rem;
    padding: 0 1.8rem !important;
    font-size: 1rem;
}

body.home .geodir-search-form-wrapper .geodir_submit_search::first-letter {
    text-transform: uppercase;
}

/* One row of equal pills: the nearby button first (accent outline), then the cities. The old text label and the
   divider between them are gone. */
body.home .wp-block-geodirectory-geodir-widget-search + p.wp-block-paragraph {
    gap: .55rem;
    max-width: 46rem;
    margin-right: auto;
    margin-left: auto;
}

body.home .directory-hero-nearby-sep {
    display: none;
}

body.home .wp-block-geodirectory-geodir-widget-search + p.wp-block-paragraph a {
    border-color: rgba(23, 23, 23, .12);
    background: #fff;
    color: var(--directory-color-heading, #171717);
    font-size: .9rem;
    font-weight: 500;
}

body.home .wp-block-geodirectory-geodir-widget-search + p.wp-block-paragraph a:hover,
body.home .wp-block-geodirectory-geodir-widget-search + p.wp-block-paragraph a:focus-visible {
    border-color: var(--directory-color-cta, #43D6C2);
    background: rgba(67, 214, 194, .08);
}

body.home .directory-hero-nearby-btn {
    min-height: 2rem;
    font-size: .9rem;
}

@media (max-width: 767.98px) {
    /* Phone: still one pill - the button shrinks to a round magnifier at its right end. */
    body.home .geodir-search-form-wrapper {
        padding: .3rem .3rem .3rem .75rem !important;
    }

    body.home .geodir-search-form-wrapper .geodir_submit_search {
        width: 3rem !important;
        height: 3rem;
        padding: 0 !important;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");
        background-position: center;
        background-repeat: no-repeat;
        background-size: 1.3rem;
        font-size: 0;
    }

    body.home .geodir-search-form-wrapper input.search_text {
        height: 3rem;
        font-size: 1rem;
    }

    body.home .wp-block-geodirectory-geodir-widget-search + p.wp-block-paragraph {
        gap: .5rem;
    }
}

/* Mallfinder: hero round 2 - (1) the search's own category list no longer opens on a plain click (GeoDirectory's
   "Kategorien" suggestion box; it still shows suggestions once something is typed), (2) the focus state is a 2px
   inset line instead of an outer glow that got cut off at the pill's edge, (3) the pill row stays on one line. */
body.home .search_text:placeholder-shown ~ .gd-suggestions-dropdown {
    display: none !important;
}

body.home .geodir-search-form-wrapper:focus-within {
    border-color: var(--directory-color-cta, #43D6C2) !important;
    box-shadow: 0 8px 28px rgba(10, 10, 10, .10), inset 0 0 0 1px var(--directory-color-cta, #43D6C2);
}

@media (min-width: 768px) {
    body.home .wp-block-geodirectory-geodir-widget-search + p.wp-block-paragraph {
        flex-wrap: nowrap;
        gap: .4rem;
    }

    body.home .wp-block-geodirectory-geodir-widget-search + p.wp-block-paragraph a,
    body.home .directory-hero-nearby-btn {
        padding-right: .8rem;
        padding-left: .8rem;
        font-size: .88rem;
        white-space: nowrap;
    }
}

@media (min-width: 992px) {
    body.home .wp-block-geodirectory-geodir-widget-search + p.wp-block-paragraph {
        width: calc(100% + 5rem);
        max-width: none;
        margin-right: -2.5rem;
        margin-left: -2.5rem;
    }
}

/* State tiles: one calm brand tint instead of five colours that stood for nothing. */
body.home .categories .directory-location-cards__grid > .directory-location-card {
    --mf-tile: #F2FFFD !important;
    border: 1px solid #D5F3EC !important;
}

body.home .categories .directory-location-cards__grid > .directory-location-card:hover,
body.home .categories .directory-location-cards__grid > .directory-location-card:focus-visible {
    border-color: var(--directory-color-cta, #43D6C2) !important;
}

/* Mallfinder: state tiles, compact. Tall tiles only make sense with a photo in them; as a plain navigation list
   they were mostly empty space (16 x 132px). One row per state: small pin, name over count, ~60px high. */
body.home .categories .directory-location-cards__grid {
    gap: .75rem;
}

body.home .categories .directory-location-card {
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: auto;
    align-items: center;
    gap: .75rem;
    min-height: 0 !important;
    padding: .7rem 1rem !important;
    border-radius: 14px !important;
}

body.home .categories .directory-location-card__pin {
    grid-area: auto;
    width: 2rem;
    height: 2rem;
    background: #fff !important;
}

body.home .categories .directory-location-card__arrow {
    display: none;
}

body.home .categories .directory-location-card__body {
    grid-area: auto;
    align-self: center;
}

body.home .categories .directory-location-card__name {
    font-size: 1rem;
    line-height: 1.25;
}

body.home .categories .directory-location-card__count {
    font-size: .8rem;
    line-height: 1.3;
}

/* Mallfinder: homepage sections separated by alternating full-width bands (white / page grey / mint for the live row)
   instead of only whitespace on one flat background. Each band is the section's own box stretched edge to edge
   (box-shadow spread + clip-path clips it to the section's height). */
body.home .directory-home-section,
body.home .categories,
body.home .directory-home-magazine {
    padding-top: 4rem !important;
    padding-bottom: 4rem !important;
}

body.home .directory-home-section.directory-home-row {
    padding-top: 4rem !important;
}

body.home .mallfinder-home-trust,
body.home .directory-home-open-now,
body.home .directory-home-outlets,
body.home .directory-home-magazine {
    --mf-band: #fff;
    background: var(--mf-band);
    box-shadow: 0 0 0 100vmax var(--mf-band);
    clip-path: inset(0 -100vmax);
}

body.home .directory-home-open-now {
    --mf-band: #F2FFFD;
}

body.home .mallfinder-home-trust {
    border: 0;
}

@media (max-width: 767.98px) {
    body.home .directory-home-section,
    body.home .categories,
    body.home .directory-home-magazine,
    body.home .directory-home-section.directory-home-row {
        padding-top: 3rem !important;
        padding-bottom: 3rem !important;
    }
}

/* Mallfinder: "So arbeiten wir" trust block (homepage). Mint band like the live row, four plain cards, no imagery. */
body.home .mallfinder-home-why {
    --mf-band: #F2FFFD;
    background: var(--mf-band);
    box-shadow: 0 0 0 100vmax var(--mf-band);
    clip-path: inset(0 -100vmax);
}

.mallfinder-home-why__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.mallfinder-home-why__card {
    padding: 1.35rem 1.35rem 1.45rem;
    border: 1px solid #D5F3EC;
    border-radius: var(--directory-card-radius, 16px);
    background: #fff;
}

.mallfinder-home-why__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.6rem;
    height: 2.6rem;
    margin-bottom: .9rem;
    border-radius: 50%;
    background: #E4F7F2;
}

.mallfinder-home-why__icon .directory-icon {
    width: 1.3rem;
    height: 1.3rem;
    color: #1B9E8C !important;
}

.mallfinder-home-why__card h3 {
    margin: 0 0 .4rem;
    color: var(--directory-color-heading, #171717);
    font-size: 1.1rem !important;
    font-weight: 700;
}

.mallfinder-home-why__card p {
    margin: 0;
    color: var(--directory-color-text, #5F6368);
    font-size: .92rem;
    line-height: 1.55;
}

.mallfinder-home-why__links {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem 1.75rem;
    margin: 1.5rem 0 0;
}

.mallfinder-home-why__links a {
    color: var(--directory-color-heading, #171717);
    font-size: .95rem;
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: var(--directory-color-cta, #43D6C2);
    text-decoration-thickness: 2px;
    text-underline-offset: .25em;
}

.mallfinder-home-why__links a:hover,
.mallfinder-home-why__links a:focus-visible {
    color: var(--directory-color-cta-hover, #29C8B3);
}

@media (max-width: 991.98px) {
    .mallfinder-home-why__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .mallfinder-home-why__grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Mallfinder: Borlabs content blockers (map, reCAPTCHA, Turnstile placeholders) in the brand look instead of the
   plugin's default blue. Borlabs reads all of this from CSS variables, so overriding them on the container is enough. */
html body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker {
    --content-blocker-background-color: #fff;
    --content-blocker-text-color: #5F6368;
    --content-blocker-link-color: #171717;
    --content-blocker-link-color-hover: #1B9E8C;
    --content-blocker-button-color: #43D6C2;
    --content-blocker-button-color-hover: #29C8B3;
    --content-blocker-button-text-color: #111;
    --content-blocker-button-text-color-hover: #111;
    --content-blocker-border-radius-top-left: 16px;
    --content-blocker-border-radius-top-right: 16px;
    --content-blocker-border-radius-bottom-left: 16px;
    --content-blocker-border-radius-bottom-right: 16px;
    --content-blocker-button-border-radius-top-left: 999px;
    --content-blocker-button-border-radius-top-right: 999px;
    --content-blocker-button-border-radius-bottom-left: 999px;
    --content-blocker-button-border-radius-bottom-right: 999px;
    --content-blocker-font-size: 15px;
}

html body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker a.brlbs-cmpnt-cb-btn[data-borlabs-cookie-accept-service] {
    padding: .35rem .75rem;
    background: transparent;
    color: var(--content-blocker-text-color);
    font-weight: 500;
    text-decoration: underline;
    text-underline-offset: .2em;
}

html body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker a.brlbs-cmpnt-cb-btn[data-borlabs-cookie-accept-service]:hover {
    background: transparent;
    color: #171717;
}

html body .brlbs-cmpnt-container.brlbs-cmpnt-content-blocker .brlbs-cmpnt-cb-provider-toggle {
    font-size: .85rem;
}

/* Mallfinder: Borlabs cookie dialog - white text on #43D6C2 had a contrast of ~1.7:1. Dark text on the brand teal
   (about 10:1), pill buttons like the rest of the site, brand-coloured links/controls instead of the plugin's purple.
   "Alle akzeptieren" and "Nur essenzielle" keep the same look on purpose (equal weight). */
:root,
html body .brlbs-cmpnt-container {
    --dialog-button-accept-all-color: #43D6C2;
    --dialog-button-accept-all-color-hover: #29C8B3;
    --dialog-button-accept-all-text-color: #111;
    --dialog-button-accept-all-text-color-hover: #111;
    --dialog-button-accept-only-essential-color: #43D6C2;
    --dialog-button-accept-only-essential-color-hover: #29C8B3;
    --dialog-button-accept-only-essential-text-color: #111;
    --dialog-button-accept-only-essential-text-color-hover: #111;
    --dialog-button-save-consent-color: #43D6C2;
    --dialog-button-save-consent-color-hover: #29C8B3;
    --dialog-button-save-consent-text-color: #111;
    --dialog-button-save-consent-text-color-hover: #111;
    --dialog-button-preferences-color: #43D6C2;
    --dialog-button-preferences-color-hover: #29C8B3;
    --dialog-button-preferences-text-color: #111;
    --dialog-button-preferences-text-color-hover: #111;
    --dialog-button-selection-color: #43D6C2;
    --dialog-button-selection-color-hover: #29C8B3;
    --dialog-button-selection-text-color: #111;
    --dialog-button-selection-text-color-hover: #111;
    --dialog-button-close-color: #171717;
    --dialog-button-close-color-hover: #000;
    --dialog-button-close-text-color: #fff;
    --dialog-button-close-text-color-hover: #fff;
    --dialog-button-border-radius-top-left: 999px;
    --dialog-button-border-radius-top-right: 999px;
    --dialog-button-border-radius-bottom-left: 999px;
    --dialog-button-border-radius-bottom-right: 999px;
    --dialog-link-primary-color: #0F766E;
    --dialog-link-primary-color-hover: #171717;
    --dialog-control-element-color: #0F766E;
    --dialog-card-control-element-color: #0F766E;
    --dialog-list-item-control-element-color: #0F766E;
    --dialog-checkbox-check-mark-color-active: #111;
}

/* Address (street / zip + city) stays two clean lines next to its icon. The flex row above turned the
   street, zip and city spans into three side-by-side items that wrap badly in narrow columns. */
body.single-gd_place .directory-detail-main-grid__sidebar .geodir_post_meta.geodir-field-address {
    display: grid;
    grid-template-columns: auto auto 1fr;
    column-gap: .25rem;
    align-items: start;
}
body.single-gd_place .directory-detail-main-grid__sidebar .geodir_post_meta.geodir-field-address > .geodir_post_meta_icon {
    grid-row: 1 / span 2;
    padding-top: .2rem;
}
body.single-gd_place .directory-detail-main-grid__sidebar .geodir_post_meta.geodir-field-address > [itemprop="streetAddress"] {
    grid-column: 2 / -1;
}
body.single-gd_place .directory-detail-main-grid__sidebar .geodir_post_meta.geodir-field-address > br {
    display: none;
}
body.single-gd_place .directory-detail-main-grid__sidebar .geodir_post_meta.geodir-field-address > [itemprop="postalCode"] {
    grid-column: 2;
}
body.single-gd_place .directory-detail-main-grid__sidebar .geodir_post_meta.geodir-field-address > [itemprop="addressLocality"] {
    grid-column: 3;
}
@media (max-width: 767px) {
    body.single-gd_place .directory-detail-intro-card .geodir_post_meta.geodir-field-address,
    body.single-gd_place .directory-detail-section-card--lage .geodir_post_meta.geodir-field-address {
        display: grid;
        grid-template-columns: auto auto 1fr;
        column-gap: .25rem;
        align-items: start;
    }
    body.single-gd_place .directory-detail-intro-card .geodir_post_meta.geodir-field-address > [itemprop="streetAddress"],
    body.single-gd_place .directory-detail-section-card--lage .geodir_post_meta.geodir-field-address > [itemprop="streetAddress"] {
        grid-column: 1 / -1;
    }
    body.single-gd_place .directory-detail-intro-card .geodir_post_meta.geodir-field-address > br,
    body.single-gd_place .directory-detail-section-card--lage .geodir_post_meta.geodir-field-address > br {
        display: none;
    }
}

/* Mallfinder: Borlabs dialog - the stock dialog is ~900px wide and fills most of the screen. Narrower, tighter
   paddings and a smaller logo keep it a compact window on desktop; phones keep their own (already full-width) layout. */
#BorlabsCookieBox .brlbs-cmpnt-dialog {
    max-width: 620px;
    margin-left: auto;
    margin-right: auto;
    border-radius: 16px;
}
#BorlabsCookieBox .brlbs-cmpnt-dialog .md\:brlbs-p-6 {
    padding: 16px 20px;
}
#BorlabsCookieBox .brlbs-cmpnt-dialog .md\:brlbs-px-12 {
    padding-left: 20px;
    padding-right: 20px;
}
#BorlabsCookieBox .brlbs-cmpnt-dialog .md\:brlbs-pb-6 {
    padding-bottom: 16px;
}
#BorlabsCookieBox .brlbs-cmpnt-dialog img {
    max-height: 36px;
    width: auto;
}
#BorlabsCookieBox .brlbs-cmpnt-dialog h2.brlbs-text-2xl {
    font-size: 20px;
    line-height: 1.2;
}
#BorlabsCookieBox .brlbs-cmpnt-dialog .md\:brlbs-max-h-80 {
    max-height: 230px;
}
/* Header: the stock 3/6/3 split leaves the link column too narrow in a compact dialog (title ran into the links). */
#BorlabsCookieBox .brlbs-cmpnt-dialog .brlbs-cmpnt-dialog-details-header {
    flex-wrap: nowrap;
    align-items: center;
    gap: 12px;
}
#BorlabsCookieBox .brlbs-cmpnt-dialog .brlbs-cmpnt-dialog-details-header > div:first-child {
    display: none;
}
#BorlabsCookieBox .brlbs-cmpnt-dialog .brlbs-cmpnt-dialog-details-header > div:nth-child(2) {
    flex: 1 1 auto;
    order: 0;
    margin-top: 0;
    justify-content: flex-start;
    gap: 12px;
}
#BorlabsCookieBox .brlbs-cmpnt-dialog .brlbs-cmpnt-dialog-details-header > div:nth-child(3) {
    flex: 0 0 auto;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
}

/* Review form stars. The <i class="fa-star"> glyphs are drawn through a block-level ::before mask (see above),
   which made every star its own line: five stars stacked vertically and blew each category card up to ~250px.
   Keep them inline-block so they sit in one row, slightly larger for touch. */
body.single-gd_place #commentform .gd-rating-input .fa-star {
    display: inline-block;
    width: 1.4rem;
    height: 1.4rem;
    margin-right: .15rem;
    vertical-align: middle;
    font-size: 0;
    line-height: 1;
}
body.single-gd_place #commentform .gd-rating-input .fa-star::before {
    width: 1.4rem;
    height: 1.4rem;
}
body.single-gd_place #commentform .gd-rating-input .gd-rating-wrap {
    display: inline-flex;
    align-items: center;
    height: 1.4rem;
}
body.single-gd_place #commentform .gd-rating-input .gd-rating-foreground,
body.single-gd_place #commentform .gd-rating-input .gd-rating-background {
    display: inline-flex;
    align-items: center;
    height: 1.4rem;
}
body.single-gd_place .directory-extra-review-rating {
    min-height: 0;
    padding: .7rem 1rem;
}
body.single-gd_place .directory-extra-review-rating .gd-rating {
    flex-direction: row;
    align-items: center;
}
/* "Bewertung schreiben": the plus glyph is a Font Awesome <i> (blocked until cookie consent) and left a blank gap. */
body.single-gd_place .directory-review-toggle > i {
    display: inline-block;
    width: 1.1rem;
    height: 1.1rem;
    margin-right: .35rem;
    font-size: 0;
    vertical-align: -.2em;
}
body.single-gd_place .directory-review-toggle > i::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5v14M5 12h14' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5v14M5 12h14' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Review form: the big teal toggle makes no sense once the form is open (the form has its own heading and
   submit button) - hide it and offer a quiet "Abbrechen" instead. Empty stars get an orange outline so they
   read clearly against the grey card; filled stars use the same orange. */
body.single-gd_place .geodir-comments-area.directory-review-form-is-open .directory-review-toggle {
    display: none;
}
body.single-gd_place .directory-review-cancel {
    display: block;
    margin: .75rem auto 0;
    padding: .35rem .75rem;
    border: 0;
    background: none;
    color: var(--directory-color-text);
    font-size: .9rem;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}
body.single-gd_place .directory-review-cancel:hover {
    color: var(--directory-color-heading);
}
body.single-gd_place .directory-extra-review-rating .gd-rating-background i,
body.single-gd_place .directory-extra-review-rating .gd-rating-foreground i {
    color: #F59E0B !important;
}
body.single-gd_place #commentform .gd-rating-input .gd-rating-background .fa-star::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 3 2.7 5.47 6.03.88-4.36 4.25 1.03 6-5.4-2.84-5.4 2.84 1.03-6-4.36-4.25 6.03-.88L12 3Z' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 3 2.7 5.47 6.03.88-4.36 4.25 1.03 6-5.4-2.84-5.4 2.84 1.03-6-4.36-4.25 6.03-.88L12 3Z' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* Besuchsart options as pills, same look as the archive filter chips: white with a grey border, the selected
   one gets a teal border + light teal fill + a check mark (the old solid teal with white text was hard to read). */
body.single-gd_place .directory-review-visit__option > span {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .45rem 1rem;
    border: 1px solid #E2E2E2;
    border-radius: 999px;
    background: #fff;
    color: var(--directory-color-heading, #171717);
    font-size: .9rem;
    font-weight: 500;
    line-height: 1.4;
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease;
}
body.single-gd_place .directory-review-visit__option:hover > span,
body.single-gd_place .directory-review-visit__option input:focus-visible + span {
    border-color: var(--directory-color-cta, #43D6C2);
    background: rgba(67, 214, 194, .08);
}
body.single-gd_place .directory-review-visit__option input:checked + span {
    border-color: var(--directory-color-cta, #43D6C2);
    background: rgba(67, 214, 194, .16);
    color: var(--directory-color-heading, #171717);
    font-weight: 600;
    box-shadow: 0 0 0 1px var(--directory-color-cta, #43D6C2);
}
body.single-gd_place .directory-review-visit__option input:checked + span::after {
    content: "";
    width: .9rem;
    height: .9rem;
    background: var(--directory-color-heading, #171717);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
body.single-gd_place .directory-review-visit__option input:checked + span i,
body.single-gd_place .directory-review-visit__option input:checked + span svg {
    color: var(--directory-color-icon, #0F766E);
}

/* Shop pages (gd_place_tags): provider box with the provider's text + affiliate link, labelled "Anzeige". */
.mf-provider-box {
    margin: 0 0 1.5rem;
    padding: 1.25rem 1.5rem;
    border: 1px solid var(--directory-color-border, #E8ECEF);
    border-left: 1px solid rgba(67, 214, 194, .5);
    border-radius: var(--directory-card-radius, 12px);
    background: var(--directory-color-card, #fff);
}
.mf-provider-box__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem .75rem;
    margin-bottom: .6rem;
}
.mf-provider-box__label {
    padding: .15rem .65rem;
    border-radius: 999px;
    background: #F1F3F5;
    color: var(--directory-color-text, #5F6368);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.mf-provider-box .mf-provider-box__title {
    margin: 0;
    color: var(--directory-color-heading, #171717);
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.3;
}
.mf-provider-box__text {
    color: var(--directory-color-text, #5F6368);
    font-size: .98rem;
    line-height: 1.65;
}
.mf-provider-box__text p {
    margin: 0 0 .7rem;
}
.mf-provider-box__text p:last-child {
    margin-bottom: 0;
}
.mf-provider-box__text a {
    color: #0F766E !important;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.mf-provider-box__text a:hover {
    color: var(--directory-color-heading, #171717) !important;
}
.mf-provider-box__note {
    margin: .85rem 0 0;
    color: var(--directory-color-text, #5F6368);
    font-size: .8rem;
    line-height: 1.5;
    opacity: .85;
}
@media (max-width: 575.98px) {
    .mf-provider-box {
        padding: 1rem 1.1rem;
    }
}

/* Reviews empty state: a friendly invitation (icon, short headline, one line of why) with the button right below it. */
body.single-gd_place .directory-review-empty {
    display: grid;
    justify-items: center;
    gap: .35rem;
    max-width: 34rem;
    margin: 1.5rem auto 0;
    padding: 1.5rem 1.25rem 1.25rem;
    border-radius: var(--directory-card-radius, 12px);
    background: var(--directory-color-section-alt, #F2FFFD);
    text-align: center;
}
body.single-gd_place .directory-review-empty__icon {
    display: inline-flex;
    width: 2.75rem;
    height: 2.75rem;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #fff;
    color: #F59E0B;
}
body.single-gd_place .directory-review-empty__icon svg {
    width: 1.4rem;
    height: 1.4rem;
}
body.single-gd_place .directory-review-empty__title {
    color: var(--directory-color-heading, #171717);
    font-size: 1.1rem;
    font-weight: 700;
}
body.single-gd_place .directory-review-empty__text {
    color: var(--directory-color-text, #5F6368);
    font-size: .95rem;
    line-height: 1.55;
}
body.single-gd_place .directory-review-empty + .directory-review-toggle {
    display: flex;
    width: fit-content;
    margin: 1rem auto 0;
}
body.single-gd_place .geodir-comments-area.directory-review-form-is-open .directory-review-empty {
    display: none;
}

/* "Bewertung schreiben" button: its pencil icon inherited the teal icon colour and vanished on the teal button. */
body.single-gd_place .directory-review-toggle .directory-icon {
    width: 1.1rem;
    height: 1.1rem;
    color: currentColor !important;
    stroke: currentColor !important;
}

/* Search results: the filter-chip row is a full-width cell inside the results flex row. Without min-width:0 its
   nowrap chips pushed the whole page 60px wider than a phone screen; now the row itself scrolls sideways. */
.geodir-listing-posts > .col-12 {
    min-width: 0;
    max-width: 100%;
}
.geodir-listing-posts > .col-12 .directory-archive-bar {
    max-width: 100%;
}
.geodir-listing-posts > .col-12 .directory-archive-chips {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.geodir-listing-posts > .col-12 .directory-archive-chips::-webkit-scrollbar {
    display: none;
}

/* ===== Mobile pass (Okt 2026) ===== */

/* Detail page, phone/tablet: the sidebar used to be pushed ABOVE everything (order:-1), so the center's name was
   a thousand pixels down behind a logo placeholder, hours and contact. Now: name + intro first, then hours and
   contact, then the long sections. The content column is flattened (display:contents) so its cards can be
   interleaved with the sidebar. The brand placeholder image is hidden here - it only cost a screen of scrolling. */
@media (max-width: 991.98px) {
    body.single-gd_place .directory-detail-main-grid {
        display: flex;
        flex-direction: column;
        gap: 0;
    }
    body.single-gd_place .directory-detail-main-grid__content {
        display: contents;
    }
    body.single-gd_place .directory-detail-main-grid__content > * {
        order: 4;
        min-width: 0;
    }
    body.single-gd_place .directory-detail-main-grid__content > .directory-detail-intro-card {
        order: 0;
    }
    body.single-gd_place .directory-detail-main-grid__content > .directory-detail-subnav-wrap {
        order: 1;
    }
    body.single-gd_place .directory-detail-main-grid__content > [class*="directory-detail-intro-card__"] {
        order: 2;
    }
    body.single-gd_place .directory-detail-main-grid__sidebar {
        order: 3;
        margin: 1.5rem 0;
    }
    body.single-gd_place .directory-detail-main-grid__sidebar .directory-sidebar-image {
        display: none !important;
    }
}

/* Breadcrumb, phone: one quiet "back" link to the parent level (the page's own name is the H1 right below).
   Replaces the home icon (a Font Awesome glyph, blank until cookie consent) and the "..." crumbs. */
@media (max-width: 767.98px) {
    body:not(.home):not(.front-page) nav[aria-label="breadcrumb"] .breadcrumb {
        flex-wrap: nowrap;
        overflow: visible;
    }
    body:not(.home):not(.front-page) nav[aria-label="breadcrumb"] .breadcrumb-item {
        display: none;
    }
    body:not(.home):not(.front-page) nav[aria-label="breadcrumb"] .breadcrumb-item:nth-last-child(2) {
        display: inline-flex;
        flex: 0 1 auto;
        max-width: 100%;
        overflow: visible;
    }
    body:not(.home):not(.front-page) nav[aria-label="breadcrumb"] .breadcrumb-item:nth-last-child(2)::before {
        content: "\2039";
        float: none;
        padding: 0 .45rem 0 0;
        color: var(--directory-color-cta, #43D6C2);
        font-family: inherit;
        font-weight: 600;
    }
    body:not(.home):not(.front-page) nav[aria-label="breadcrumb"] .breadcrumb-item:nth-last-child(2) a,
    body:not(.home):not(.front-page) nav[aria-label="breadcrumb"] .breadcrumb-item:nth-last-child(2) span[itemprop="name"] {
        display: inline;
        max-width: none;
        overflow: visible;
        font-size: inherit;
        white-space: normal;
    }
    body:not(.home):not(.front-page) nav[aria-label="breadcrumb"] .breadcrumb-item:nth-last-child(2) span[itemprop="name"]::after {
        content: none;
    }
}

/* The stuck sub-navigation is made full-bleed by script with pixel margins/padding; on phones that can leave a few
   px of sideways overflow. clip (unlike hidden) does not create a scroll container, so position:sticky keeps working. */
@media (max-width: 991.98px) {
    body.single-gd_place {
        overflow-x: clip;
    }
}

/* Cookie dialog on phones: logo + title on one row, the two legal links below it (they overlapped the title). */
@media (max-width: 575.98px) {
    #BorlabsCookieBox .brlbs-cmpnt-dialog .brlbs-cmpnt-dialog-details-header {
        flex-wrap: wrap;
        gap: 8px 12px;
    }
    #BorlabsCookieBox .brlbs-cmpnt-dialog .brlbs-cmpnt-dialog-details-header > div:nth-child(2) {
        flex: 1 1 100%;
    }
    #BorlabsCookieBox .brlbs-cmpnt-dialog .brlbs-cmpnt-dialog-details-header > div:nth-child(3) {
        flex: 1 1 100%;
        flex-direction: row;
        justify-content: flex-start;
        align-items: center;
        gap: 4px 16px;
    }
    #BorlabsCookieBox .brlbs-cmpnt-dialog h2.brlbs-text-2xl {
        font-size: 17px;
    }
}

/* Pricing cards (landing page "Geschäftskundenbereich"): three plans side by side, big price, note, button, check list;
   the recommended plan is dark with a teal edge. Scoped to .mf-pricing so it touches nothing else. */
.mf-pricing {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
    align-items: stretch;
    margin: 2rem auto 1.5rem;
}
.mf-plan {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 1.75rem 1.75rem 2rem;
    border: 1px solid var(--directory-color-border, #E8ECEF);
    border-radius: 20px;
    background: #fff;
    color: var(--directory-color-text, #5F6368);
    box-shadow: 0 1px 2px rgba(10, 10, 10, .04), 0 8px 24px rgba(10, 10, 10, .04);
}
.mf-plan .mf-plan__name {
    margin: 0 0 .25rem;
    color: var(--directory-color-heading, #171717);
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.2;
}
.mf-plan p {
    margin: 0;
}
.mf-plan__tagline {
    min-height: 3.1em;
    font-size: .95rem;
    line-height: 1.55;
}
.mf-plan__label {
    margin-top: 1.5rem !important;
    color: var(--directory-color-heading, #171717);
    font-size: .9rem;
    font-weight: 700;
}
.mf-plan__price {
    display: flex;
    align-items: baseline;
    gap: .35rem;
    margin-top: .1rem !important;
    color: var(--directory-color-heading, #171717);
}
.mf-plan__amount {
    font-family: Poppins, Inter, system-ui, sans-serif;
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -.02em;
}
.mf-plan__unit {
    font-size: 1rem;
    font-weight: 600;
}
.mf-plan__note {
    min-height: 2.6em;
    margin-top: .1rem !important;
    font-size: .8rem;
    font-weight: 600;
    line-height: 1.4;
}
.mf-plan .mf-plan__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 1.1rem 0 1.5rem;
    padding: .85rem 1.25rem;
    border: 2px solid var(--directory-color-cta, #43D6C2);
    border-radius: 999px;
    background: transparent;
    color: #111 !important;
    font-weight: 700;
    text-align: center;
    text-decoration: none !important;
    transition: background-color .15s ease, border-color .15s ease;
}
.mf-plan .mf-plan__cta:hover,
.mf-plan .mf-plan__cta:focus-visible {
    background: var(--directory-color-cta, #43D6C2);
}
.mf-plan__list {
    display: grid;
    gap: .75rem;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: .95rem;
    line-height: 1.5;
}
.mf-plan__list li {
    position: relative;
    padding-left: 1.75rem;
}
.mf-plan__list li::before {
    content: "";
    position: absolute;
    top: .25em;
    left: 0;
    width: 1.1rem;
    height: 1.1rem;
    background: var(--directory-color-cta, #43D6C2);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
.mf-plan__list strong {
    color: var(--directory-color-heading, #171717);
}
.mf-plan__hint {
    font-size: .85em;
    opacity: .85;
}

/* recommended plan */
.mf-plan--featured {
    border: 3px solid var(--directory-color-cta, #43D6C2);
    background: #0F2F2B;
    color: rgba(255, 255, 255, .86);
    box-shadow: 0 16px 40px rgba(15, 47, 43, .28);
}
.mf-plan--featured .mf-plan__name,
.mf-plan--featured .mf-plan__label,
.mf-plan--featured .mf-plan__price,
.mf-plan--featured .mf-plan__list strong {
    color: #fff;
}
.mf-plan--featured .mf-plan__cta {
    background: var(--directory-color-cta, #43D6C2);
}
.mf-plan--featured .mf-plan__cta:hover,
.mf-plan--featured .mf-plan__cta:focus-visible {
    background: var(--directory-color-cta-hover, #29C8B3);
    border-color: var(--directory-color-cta-hover, #29C8B3);
}
.mf-plan__badge {
    position: absolute;
    top: -3px;
    right: 1.25rem;
    padding: .3rem .8rem;
    border-radius: 0 0 10px 10px;
    background: var(--directory-color-cta, #43D6C2);
    color: #111;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .02em;
}

@media (max-width: 991.98px) {
    .mf-pricing {
        grid-template-columns: 1fr;
        max-width: 28rem;
    }
    .mf-plan__tagline,
    .mf-plan__note {
        min-height: 0;
    }
}

/* Pricing cards: the page's global text colours are !important, so the dark card needs its light colours the same way. */
.mf-pricing .mf-plan--featured .mf-plan__name,
.mf-pricing .mf-plan--featured .mf-plan__label,
.mf-pricing .mf-plan--featured .mf-plan__price,
.mf-pricing .mf-plan--featured .mf-plan__list strong {
    color: #fff !important;
}
.mf-pricing .mf-plan--featured .mf-plan__tagline,
.mf-pricing .mf-plan--featured .mf-plan__note,
.mf-pricing .mf-plan--featured .mf-plan__list li,
.mf-pricing .mf-plan--featured .mf-plan__hint {
    color: rgba(255, 255, 255, .88) !important;
}
.mf-pricing .mf-plan--featured .mf-plan__hint {
    opacity: 1;
}

/* ===== Landing page "Geschäftskundenbereich" (.mf-biz) =====
   Own sections instead of core group blocks: hero, benefits, steps, packages, independence note, FAQ, closing call to action.
   Everything is scoped to .mf-biz. Full-bleed bands use the same box-shadow/clip-path trick as the homepage bands. */
.mf-biz {
    color: var(--directory-color-text, #5F6368);
}
.mf-biz .mf-band {
    position: relative;
    background: var(--mf-band);
    box-shadow: 0 0 0 100vmax var(--mf-band);
    clip-path: inset(0 -100vmax);
}
.mf-biz .mf-band--mint { --mf-band: #F2FFFD; }
.mf-biz .mf-band--white { --mf-band: #FFFFFF; }
.mf-biz .mf-band--dark { --mf-band: #0F2F2B; }

.mf-biz-section {
    padding: 3.25rem 0;
}
.mf-biz-section.mf-band {
    padding: 3.25rem 0;
}
.mf-biz .mf-biz-h2 {
    margin: 0 0 1.75rem;
    color: var(--directory-color-heading, #171717) !important;
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
}
.mf-biz .mf-biz-sub {
    max-width: 40rem;
    margin: -1rem auto 0;
    text-align: center;
    line-height: 1.6;
}

/* hero */
.mf-biz-hero {
    padding: 3.5rem 0 3rem;
    text-align: center;
}
.mf-biz-eyebrow {
    display: inline-block;
    padding: .3rem .9rem;
    border: 1px solid rgba(67, 214, 194, .55);
    border-radius: 999px;
    background: #fff;
    color: #0F766E;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.mf-biz .mf-biz-hero h1 {
    max-width: 26ch;
    margin: 1rem auto .85rem;
    color: var(--directory-color-heading, #171717) !important;
    font-size: clamp(1.9rem, 4.2vw, 3rem);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -.015em;
}
.mf-biz .mf-biz-lead {
    max-width: 44rem;
    margin: 0 auto;
    font-size: 1.1rem;
    line-height: 1.65;
}
.mf-biz-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .75rem;
    margin-top: 1.75rem;
}
.mf-biz-checks {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .5rem 1.75rem;
    margin: 1.75rem 0 0;
    padding: 0;
    list-style: none;
    font-size: .92rem;
}
.mf-biz-checks li {
    position: relative;
    padding-left: 1.6rem;
}
.mf-biz-checks li::before,
.mf-biz .mf-plan__list li::before {
    content: "";
    position: absolute;
    top: .2em;
    left: 0;
    width: 1.1rem;
    height: 1.1rem;
    background: #0F766E;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* buttons */
.mf-biz .mf-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .85rem 1.7rem;
    border: 2px solid var(--directory-color-cta, #43D6C2);
    border-radius: 999px;
    color: #111 !important;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none !important;
    transition: background-color .15s ease, border-color .15s ease;
}
.mf-biz .mf-btn--primary {
    background: var(--directory-color-cta, #43D6C2);
}
.mf-biz .mf-btn--primary:hover,
.mf-biz .mf-btn--primary:focus-visible {
    border-color: var(--directory-color-cta-hover, #29C8B3);
    background: var(--directory-color-cta-hover, #29C8B3);
}
.mf-biz .mf-btn--ghost {
    background: transparent;
}
.mf-biz .mf-btn--ghost:hover,
.mf-biz .mf-btn--ghost:focus-visible {
    background: rgba(67, 214, 194, .18);
}
.mf-biz .mf-btn--light {
    border-color: #fff;
    background: #fff;
}
.mf-biz .mf-btn--light:hover,
.mf-biz .mf-btn--light:focus-visible {
    background: rgba(255, 255, 255, .85);
}

/* icons */
.mf-biz .mf-ico {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background: #F2FFFD;
}
.mf-biz .mf-ico::before {
    content: "";
    width: 1.5rem;
    height: 1.5rem;
    background: #0F766E;
    -webkit-mask: var(--mf-ico) center / contain no-repeat;
    mask: var(--mf-ico) center / contain no-repeat;
}
.mf-biz .mf-ico--eye { --mf-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E"); }
.mf-biz .mf-ico--clock { --mf-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
.mf-biz .mf-ico--reach { --mf-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 17 6-6 4 4 8-8'/%3E%3Cpath d='M15 7h6v6'/%3E%3C/svg%3E"); }
.mf-biz .mf-ico--shield { --mf-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 4 6v6c0 4.5 3.2 8.2 8 9 4.8-.8 8-4.5 8-9V6l-8-3Z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E"); }

/* benefit cards + steps */
.mf-biz-grid,
.mf-biz-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.mf-biz-card,
.mf-biz-steps li {
    padding: 1.6rem;
    border: 1px solid var(--directory-color-border, #E8ECEF);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(10, 10, 10, .03);
}
.mf-biz-steps li {
    background: var(--directory-color-page-bg, #F7F8FA);
    box-shadow: none;
}
.mf-biz .mf-biz-card h3,
.mf-biz .mf-biz-steps h3 {
    margin: 1rem 0 .5rem;
    color: var(--directory-color-heading, #171717) !important;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.3;
}
.mf-biz .mf-biz-card p,
.mf-biz .mf-biz-steps p {
    margin: 0;
    line-height: 1.65;
}
.mf-biz-step__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 50%;
    background: var(--directory-color-cta, #43D6C2);
    color: #111;
    font-family: Poppins, Inter, system-ui, sans-serif;
    font-size: 1.15rem;
    font-weight: 700;
}

/* independence note */
.mf-biz-callout {
    display: flex;
    align-items: flex-start;
    gap: 1.25rem;
    max-width: 62rem;
    margin: 0 auto;
    padding: 1.6rem 1.75rem;
    border: 1px solid var(--directory-color-border, #E8ECEF);
    border-left: 1px solid rgba(67, 214, 194, .5);
    border-radius: 18px;
    background: #fff;
}
.mf-biz .mf-biz-h3 {
    margin: 0 0 .4rem;
    color: var(--directory-color-heading, #171717) !important;
    font-size: 1.25rem;
    font-weight: 700;
}
.mf-biz-callout p {
    margin: 0;
    line-height: 1.65;
}
.mf-biz-callout a {
    color: #0F766E !important;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* FAQ */
.mf-biz .mf-faq {
    max-width: 52rem;
    margin: 0 auto;
}
.mf-faq details {
    margin-bottom: .7rem;
    border: 1px solid var(--directory-color-border, #E8ECEF);
    border-radius: 14px;
    background: #fff;
}
.mf-faq summary {
    position: relative;
    padding: 1.05rem 3rem 1.05rem 1.3rem;
    color: var(--directory-color-heading, #171717);
    font-weight: 600;
    list-style: none;
    cursor: pointer;
}
.mf-faq summary::-webkit-details-marker {
    display: none;
}
.mf-faq summary::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 1.3rem;
    color: #0F766E;
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 1;
    transform: translateY(-50%);
}
.mf-faq details[open] summary::after {
    content: "\2212";
}
.mf-faq details p {
    margin: 0;
    padding: 0 1.3rem 1.1rem;
    line-height: 1.65;
}
.mf-faq details a {
    color: #0F766E !important;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* closing call to action */
.mf-biz-cta {
    padding: 3.5rem 0;
    text-align: center;
}
.mf-biz .mf-biz-cta h2 {
    margin: 0 0 .6rem;
    color: #fff !important;
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 700;
}
.mf-biz .mf-biz-cta p {
    max-width: 38rem;
    margin: 0 auto;
    color: rgba(255, 255, 255, .88) !important;
    line-height: 1.6;
}

@media (max-width: 991.98px) {
    .mf-biz-grid,
    .mf-biz-steps {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 575.98px) {
    .mf-biz-hero {
        padding: 2.25rem 0 2rem;
    }
    .mf-biz-section,
    .mf-biz-section.mf-band,
    .mf-biz-cta {
        padding: 2.25rem 0;
    }
    .mf-biz-callout {
        flex-direction: column;
        gap: .9rem;
        padding: 1.3rem;
    }
    .mf-biz-actions .mf-btn {
        width: 100%;
    }
}

.mf-biz .mf-plan--featured .mf-plan__list li::before {
    background: var(--directory-color-cta, #43D6C2);
}

/* Landing page colour rhythm: mint hero -> grey (page) -> white band -> grey (page) -> white band -> dark green.
   The independence note and the FAQ now share one white band; the note is mint, FAQ items grey, so nothing sits
   white-on-white. */
.mf-biz .mf-biz-callout {
    margin-bottom: 3rem;
    background: #F2FFFD;
    border-color: rgba(67, 214, 194, .45);
    border-left-color: var(--directory-color-cta, #43D6C2);
}
.mf-biz .mf-biz-callout .mf-ico {
    background: #fff;
}
.mf-biz .mf-faq details {
    border-color: transparent;
    background: var(--directory-color-page-bg, #F7F8FA);
}
.mf-biz .mf-biz-h2--faq {
    margin-top: 0;
}

/* Landing page: the breadcrumb sits inside the mint hero band (it used to float on the grey page background above it,
   which read as a grey strip). The band is a full-width pseudo-element behind the nav, reaching up to the header and down
   to the hero. Links use the darker teal so they stay readable on mint. */
body.page-id-10037 nav[aria-label="breadcrumb"] {
    position: relative;
}
body.page-id-10037 nav[aria-label="breadcrumb"]::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: -16px;
    bottom: -16px;
    left: 50%;
    width: 100vw;
    transform: translateX(-50%);
    background: #F2FFFD;
}
body.page-id-10037 nav[aria-label="breadcrumb"] a {
    color: #0F766E !important;
}

/* ===== Contact page (/kontakt/) - same system as the business landing page (.mf-biz) ===== */

/* more icons for the mask system */
.mf-biz .mf-ico--edit { --mf-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z'/%3E%3C/svg%3E"); }
.mf-biz .mf-ico--store { --mf-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9h16l-1-5H5L4 9Z'/%3E%3Cpath d='M5 9v11h14V9'/%3E%3Cpath d='M9 20v-6h6v6'/%3E%3C/svg%3E"); }
.mf-biz .mf-ico--users { --mf-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.2'/%3E%3Cpath d='M3 20c0-3.3 2.7-6 6-6s6 2.7 6 6'/%3E%3Ccircle cx='17.5' cy='9' r='2.5'/%3E%3Cpath d='M17 14c2.8.2 4.5 2.4 4.5 5'/%3E%3C/svg%3E"); }
.mf-biz .mf-ico--newspaper { --mf-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h13v14H5a1 1 0 0 1-1-1V5Z'/%3E%3Cpath d='M17 9h3v9a1 1 0 0 1-1 1h-2'/%3E%3Cpath d='M7 9h7M7 13h7M7 16h4'/%3E%3C/svg%3E"); }
.mf-biz .mf-ico--tool { --mf-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a4 4 0 0 0-5.4 5.4L3 18l3 3 6.3-6.3a4 4 0 0 0 5.4-5.4l-2.5 2.5-2.4-.6-.6-2.4 2.5-2.5Z'/%3E%3C/svg%3E"); }
.mf-biz .mf-ico--message { --mf-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a8 8 0 0 1-11.6 7.1L3 20.5l1.4-4.9A8 8 0 1 1 21 12Z'/%3E%3C/svg%3E"); }
.mf-biz .mf-ico--mail { --mf-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E"); }
.mf-biz .mf-ico--pin { --mf-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-6-5.3-6-10a6 6 0 1 1 12 0c0 4.7-6 10-6 10Z'/%3E%3Ccircle cx='12' cy='11' r='2.2'/%3E%3C/svg%3E"); }

/* card link with arrow */
.mf-biz .mf-biz-link {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-top: 1rem;
    color: #0F766E !important;
    font-weight: 700;
    text-decoration: none !important;
}
.mf-biz .mf-biz-link::after {
    content: "\2192";
    transition: transform .15s ease;
}
.mf-biz .mf-biz-link:hover::after,
.mf-biz .mf-biz-link:focus-visible::after {
    transform: translateX(3px);
}
.mf-biz .mf-biz-grid--contact .mf-biz-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
.mf-biz .mf-biz-grid--contact .mf-biz-link {
    margin-top: auto;
    padding-top: 1rem;
}

/* form + direct contact */
.mf-contact-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 20rem;
    gap: 1.75rem;
    align-items: start;
    max-width: 62rem;
    margin: 0 auto;
}
.mf-contact-aside {
    display: grid;
    gap: 1rem;
}
.mf-contact-info {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1.25rem 1.35rem;
    border-radius: 16px;
    background: var(--directory-color-page-bg, #F7F8FA);
}
.mf-biz .mf-contact-info h3 {
    margin: 0 0 .25rem;
    color: var(--directory-color-heading, #171717) !important;
    font-size: 1.05rem;
    font-weight: 700;
}
.mf-biz .mf-contact-info p {
    margin: 0;
    line-height: 1.6;
}
.mf-biz .mf-contact-info a,
.mf-biz .mf-contact-privacy a {
    color: #0F766E !important;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.mf-biz .mf-contact-privacy {
    margin: 0;
    padding: 0 .35rem;
    font-size: .85rem;
    line-height: 1.55;
}
.mf-biz .mf-biz-callout--solo {
    margin-bottom: 0;
}
/* the form card sits on a white band here, so give it the grey page tone instead of a white-on-white box */
.mf-biz .mf-contact-form.directory-report-form {
    border-color: transparent;
    background: var(--directory-color-page-bg, #F7F8FA);
    box-shadow: none;
}

@media (max-width: 991.98px) {
    .mf-contact-layout {
        grid-template-columns: 1fr;
    }
}

/* breadcrumb inside the mint hero band (same treatment as the business landing page) */
body.page-id-852 nav[aria-label="breadcrumb"] {
    position: relative;
}
body.page-id-852 nav[aria-label="breadcrumb"]::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: -16px;
    bottom: -16px;
    left: 50%;
    width: 100vw;
    transform: translateX(-50%);
    background: #F2FFFD;
}
body.page-id-852 nav[aria-label="breadcrumb"] a {
    color: #0F766E !important;
}

/* ===================================================================================================
   AIRBNB PASS (Okt 2026) - one system-wide pass, kept in this block so it can be switched off as a unit.
   Orientation from airbnb.de, translated to mallfinder's own brand: white canvas, light header with a pill search,
   weight-600 headings with tight tracking, soft 16px cards that lift on hover, and (instead of photos, which we may
   not show) a calm mint tile with an icon at the top of every listing card.
   Brand stays: teal #43D6C2, the pin logo, live status and trust labels. Nothing here changes content or behaviour.
   =================================================================================================== */

:root {
    --directory-color-page-bg: #F7F8FA;          /* stays the tone of inner surfaces (chips, inputs, grey bands) */
    --directory-card-radius: 16px;
    --directory-card-border: #E6E8EB;
    --directory-card-shadow: none;
    --directory-card-shadow-hover: 0 8px 24px rgba(10, 10, 10, .10);
    --directory-card-border-hover: #D3D7DB;
    --directory-card-transform-hover: none;
}

/* ---- canvas ---------------------------------------------------------------------------------- */
html,
body {
    background: #FFFFFF !important;
}
/* sections that used to sit "naked" on the grey page keep their rhythm as explicit grey bands */
.mf-biz .mf-biz-section:not(.mf-band) {
    --mf-band: #F7F8FA;
    position: relative;
    background: var(--mf-band);
    box-shadow: 0 0 0 100vmax var(--mf-band);
    clip-path: inset(0 -100vmax);
}

/* ---- type: one voice, weight 600, tight tracking --------------------------------------------- */
h1, h2, h3, h4,
.directory-home-section h2,
.directory-archive-heading h1 {
    letter-spacing: -.02em;
    text-wrap: balance;
}
h1, h2 {
    font-weight: 600;
}
h3, h4 {
    font-weight: 600;
}
.mf-biz .mf-biz-hero h1,
.mf-biz .mf-biz-h2,
.mf-biz .mf-biz-cta h2 {
    font-weight: 600;
}

/* ---- no kicker/eyebrow labels above headings (the heading carries itself) --------------------- */
.directory-section-eyebrow,
.directory-section-heading__eyebrow,
.directory-detail-eyebrow,
.directory-states-page__eyebrow,
.directory-home-magazine__eyebrow,
.directory-single-post-eyebrow,
.directory-magazine-category__eyebrow,
.mf-biz-eyebrow {
    display: none !important;
}

/* ---- header: light, hairline, pill search ---------------------------------------------------- */
.site-header nav.navbar,
header.site-header nav.navbar,
header.wp-block-template-part nav.navbar,
body.home nav.bg-transparent-until-scroll,
body.front-page nav.bg-transparent-until-scroll {
    background: #FFFFFF !important;
    background-color: #FFFFFF !important;
    box-shadow: 0 1px 0 #EBEBEB !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
}
.site-header nav.navbar .nav-link,
header.wp-block-template-part nav.navbar .nav-link {
    color: #171717 !important;
    font-size: .95rem;
    font-weight: 600;
}
.site-header nav.navbar .nav-link:hover,
header.wp-block-template-part nav.navbar .nav-link:hover {
    color: #0F766E !important;
}
.directory-header-search {
    border: 1px solid #DDDDDD;
    border-radius: 999px;
    background: #FFFFFF;
    box-shadow: 0 1px 2px rgba(10, 10, 10, .06), 0 2px 8px rgba(10, 10, 10, .04);
    transition: box-shadow .2s ease, border-color .2s ease;
}
.directory-header-search:hover,
.directory-header-search:focus-within {
    border-color: #C9CDD1;
    box-shadow: 0 2px 4px rgba(10, 10, 10, .08), 0 4px 14px rgba(10, 10, 10, .08);
}

/* ---- cards: borderless-feeling, soft, lift on hover ------------------------------------------- */
.directory-archive-card,
.directory-detail-section-card,
.directory-home-card,
.mf-biz-card,
.mf-plan,
.directory-report-form {
    border-radius: var(--directory-card-radius, 16px);
}
.directory-archive-card {
    transition: box-shadow .2s ease, border-color .2s ease;
}
.directory-archive-card:hover,
.directory-archive-card:focus-visible {
    border-color: var(--directory-card-border-hover);
    box-shadow: var(--directory-card-shadow-hover);
}

/* ---- listing card tile: a mint field with an icon where airbnb shows the photo ---------------- */
.directory-archive-card--v2 {
    position: relative;
    gap: .45rem;
    padding: .6rem .6rem 1.15rem;
    overflow: hidden;
}
.directory-archive-card--v2::before {
    content: "";
    display: block;
    height: 7rem;
    margin-bottom: .55rem;
    border-radius: 12px;
    background:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2343D6C2' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9h16l-1-5H5L4 9Z'/%3E%3Cpath d='M5 9v11h14V9'/%3E%3Cpath d='M9 20v-6h6v6'/%3E%3C/svg%3E") center / 3.1rem no-repeat,
        linear-gradient(135deg, #E3FBF6 0%, #F2FFFD 55%, #D9F6F0 100%);
}
.directory-archive-card--v2 > :not(.directory-archive-card__status) {
    margin-left: .6rem;
    margin-right: .6rem;
}
.directory-archive-card--v2 .directory-archive-card__status {
    position: absolute;
    top: 1.15rem;
    left: 1.15rem;
    z-index: 1;
    background: #FFFFFF !important;
    box-shadow: 0 1px 4px rgba(10, 10, 10, .14);
}
.directory-archive-card--v2 .directory-archive-card__status.is-open {
    color: #12804A;
}
.directory-archive-card--v2 .directory-archive-card__status.is-closing-soon {
    color: #B35C00;
}
.directory-archive-card--v2 .directory-archive-card__title {
    font-size: 1.05rem;
    font-weight: 600;
    letter-spacing: -.01em;
}

/* ---- chips / pills: 44px touch height, calm border ------------------------------------------- */
.directory-archive-chip {
    min-height: 2.75rem;
    padding: .5rem 1.1rem;
    border-color: #DDDDDD;
}
.directory-archive-chip:hover,
.directory-archive-chip:focus-visible {
    border-color: #171717;
    background: #fff;
}
.directory-archive-chip.is-active {
    border-color: #171717;
    background: #fff;
    box-shadow: 0 0 0 1px #171717;
}

/* ---- callouts: no coloured side bar (full hairline + tint instead) --------------------------- */
.mf-biz .mf-biz-callout,
.mf-provider-box {
    border: 1px solid rgba(67, 214, 194, .5);
    border-left-width: 1px;
}
.mf-provider-box {
    background: #F2FFFD;
}

@media (max-width: 575.98px) {
    .directory-archive-card--v2::before {
        height: 5.25rem;
    }
}

/* header, before the script has run: out-specify the older "dark at rest" rules so the bar is white from the first paint */
html:not(.mf-x) body:not(.mf-x) header.wp-block-template-part nav.navbar.navbar,
html:not(.mf-x) body:not(.mf-x) .site-header nav.navbar.navbar {
    background: #FFFFFF !important;
    background-color: #FFFFFF !important;
    box-shadow: 0 1px 0 #EBEBEB !important;
}
html:not(.mf-x) body:not(.mf-x) header.wp-block-template-part nav.navbar.navbar .nav-link {
    color: #171717 !important;
}

/* Airbnb pass, fix 1: header links never wrap; the search pill carries one ring (its own), not an extra one on the input */
header.wp-block-template-part nav.navbar .nav-link,
.site-header nav.navbar .nav-link {
    white-space: nowrap;
}
.directory-header-search-item {
    min-width: 9rem;
}
.directory-header-search input[type="search"],
.directory-header-search input[type="search"]:hover,
.directory-header-search input[type="search"]:focus {
    border-color: transparent !important;
    box-shadow: none !important;
}

/* Airbnb pass, fix 2: WCAG AA text contrast. Teal #43D6C2 is a fill/accent colour, not a text colour on white (1.7:1);
   text links and states use the darker teal / red that reach 4.5:1. */
nav[aria-label="breadcrumb"] a,
.directory-section-heading__link,
.directory-archive-heading a {
    color: #0F766E !important;
}
nav[aria-label="breadcrumb"] a:hover,
nav[aria-label="breadcrumb"] a:focus-visible {
    color: #0B5A54 !important;
}
.directory-opening-hours__status.is-closed,
.directory-opening-hours__status.is-closed span {
    color: #C2363B !important;
}
.directory-opening-hours__status.is-open,
.directory-opening-hours__status.is-open span {
    color: #12804A !important;
}

/* Airbnb pass, fix 3 (finish review): AA contrast for teal text, tile with a little brand character and less height,
   no cropped hero fragment on phones, capped sidebar tile, fading row edge. */
:root {
    --directory-color-eyebrow: #0F766E;            /* text/link teal on white; the bright teal stays a fill and accent */
}
body.home .directory-hero-nearby-btn {
    color: #0F766E !important;
}
input::placeholder,
textarea::placeholder,
.directory-header-search input::placeholder,
.search_text::placeholder {
    color: #6B6F76;
    opacity: 1;
}
.directory-archive-card--v2 .directory-archive-card__brands span {
    color: #5F6368;
}

/* listing tile: shorter, icon centred, a faint pin as the brand's signature in the corner */
.directory-archive-card--v2::before {
    height: 5.5rem;
    background:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2343D6C2' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9h16l-1-5H5L4 9Z'/%3E%3Cpath d='M5 9v11h14V9'/%3E%3Cpath d='M9 20v-6h6v6'/%3E%3C/svg%3E") center / 2.7rem no-repeat,
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2343D6C2' stroke-opacity='.28' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-6-5.3-6-10a6 6 0 1 1 12 0c0 4.7-6 10-6 10Z'/%3E%3Ccircle cx='12' cy='11' r='2.2'/%3E%3C/svg%3E") right -.7rem bottom -.9rem / 5rem no-repeat,
        linear-gradient(135deg, #E3FBF6 0%, #F2FFFD 55%, #D9F6F0 100%);
}
@media (max-width: 575.98px) {
    .directory-archive-card--v2::before {
        height: 3.5rem;
        background-size: 2.1rem, 3.6rem, auto;
    }
    .directory-archive-card--v2 .directory-archive-card__status {
        top: .95rem;
        left: .95rem;
    }
    /* the building illustration is cropped to a stray fragment at phone width: hide it rather than show a "bug" */
    body.home .mallfinder-hero-buildings,
    body.front-page .mallfinder-hero-buildings {
        display: none;
    }
}

/* detail page: the brand tile must not push the opening hours out of the first desktop viewport */
@media (min-width: 992px) {
    body.single-gd_place .directory-sidebar-image img {
        width: 100%;
        height: 10rem;
        object-fit: cover;
    }
}

/* horizontal rows: soft fade at the right edge instead of a hard cut through a card; arrows sit in the gutter on wide screens */
.directory-hrow__track {
    -webkit-mask-image: linear-gradient(90deg, #000 93%, transparent);
    mask-image: linear-gradient(90deg, #000 93%, transparent);
}
@media (min-width: 1360px) {
    .directory-hrow__btn--prev { left: -1.9rem; }
    .directory-hrow__btn--next { right: -1.9rem; }
}

/* placeholder text reaches AA everywhere (hero search had 70% alpha slate, about 3.4:1) */
html body input::placeholder,
html body textarea::placeholder {
    color: #5F6368 !important;
    opacity: 1 !important;
    -webkit-text-fill-color: #5F6368 !important;
}

/* ===== Magazine in the Airbnb-pass system (overview, category, article) ===== */

/* headings: one weight, one voice */
.directory-magazine-overview h1,
.directory-magazine-category h2,
.directory-magazine-term-archive h1,
body.single-post h1 {
    font-weight: 600;
    letter-spacing: -.02em;
}
body.single-post .entry-content h2,
body.single-post .entry-content h3 {
    font-weight: 600;
    letter-spacing: -.015em;
}
body.single-post .entry-content h2 {
    font-size: 1.65rem;
    line-height: 1.3;
}

/* the category label above the featured article's title is a kicker */
.directory-home-magazine__label,
.directory-magazine-featured [class*="__label"] {
    display: none !important;
}

/* article header: title and meta line start at the text column's left edge (they used to float centred above it) */
body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.container h1,
body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.rounded-lg.container h1 {
    text-align: left !important;
}
body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.container .row:has(.far.fa-calendar),
body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.rounded-lg.container .row:has(.far.fa-calendar) {
    justify-content: flex-start !important;
}
body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.container .row:has(.far.fa-calendar) > .col,
body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.rounded-lg.container .row:has(.far.fa-calendar) > .col,
body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.container .row:has(.far.fa-calendar) .text-end,
body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.rounded-lg.container .row:has(.far.fa-calendar) .text-end {
    text-align: left !important;
}
/* without a TOC the text column is 640px wide and centred: header follows it */
body.single-post:not(.has-magazin-toc) .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.container h1,
body.single-post:not(.has-magazin-toc) .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.rounded-lg.container h1 {
    max-width: 640px;
}
body.single-post:not(.has-magazin-toc) .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.container .row:has(.far.fa-calendar),
body.single-post:not(.has-magazin-toc) .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.rounded-lg.container .row:has(.far.fa-calendar) {
    max-width: 640px;
    margin-right: auto;
    margin-left: auto;
}
/* meta line: readable grey (AA) */
body.single-post .row:has(.far.fa-calendar),
body.single-post .row:has(.far.fa-calendar) * {
    color: #5F6368 !important;
}

/* category rail: quiet text list instead of a wall of pills; cards and controls follow the card system */
.directory-magazine-category__tags a {
    padding: .1rem 0;
    border: 0;
    background: none;
    color: #5F6368;
    font-weight: 500;
    font-size: .9rem;
    border-radius: 0;
}
.directory-magazine-category__tags a:hover,
.directory-magazine-category__tags a:focus-visible {
    color: #171717;
    text-decoration: underline;
    text-underline-offset: 3px;
    background: none;
}
.directory-magazine-slider-card {
    transition: box-shadow .2s ease, border-color .2s ease;
}
.directory-magazine-slider-card:hover,
.directory-magazine-slider-card:focus-within {
    border-color: var(--directory-card-border-hover);
    box-shadow: var(--directory-card-shadow-hover);
}
.directory-magazine-category__control {
    border-color: #171717;
    color: #171717;
}
.directory-magazine-category__control:hover,
.directory-magazine-category__control:focus-visible {
    background: #171717;
    color: #fff;
}

/* newsletter form at the end of an article (MailPoet "below posts"): one calm mint card with an envelope tile,
   heading, short text and a pill field + pill button in one row. The wrapper stays bare; only the <form> is the card. */
body.single-post .mailpoet_form_below_posts:not(form) {
    margin: 2rem 0 0;
    padding: 0;
    background: none;
}
body.single-post form.mailpoet_form_below_posts {
    position: relative;
    margin: 0;
    padding: 2rem 2rem 1.75rem !important;
    border: 1px solid rgba(67, 214, 194, .35);
    border-radius: 20px;
    background: linear-gradient(135deg, #F2FFFD 0%, #E6FBF7 100%);
}
body.single-post form.mailpoet_form_below_posts::before {
    content: "";
    display: block;
    width: 3rem;
    height: 3rem;
    margin-bottom: 1.1rem;
    border-radius: 14px;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F766E' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2.5'/%3E%3Cpath d='m3.5 7.5 8.5 6 8.5-6'/%3E%3C/svg%3E") center / 1.5rem no-repeat;
    box-shadow: 0 1px 3px rgba(10, 10, 10, .08), 0 0 0 1px rgba(67, 214, 194, .3);
}
body.single-post form.mailpoet_form_below_posts .mailpoet-heading {
    margin: 0 0 .5rem;
    color: #171717;
    font-size: 1.4rem;
    font-weight: 600;
    letter-spacing: -.02em;
    line-height: 1.25;
}
body.single-post form.mailpoet_form_below_posts .mailpoet_form_paragraph {
    max-width: 34rem;
    margin: 0 0 1.35rem;
    color: #5F6368;
    font-size: .95rem;
    line-height: 1.6;
}
body.single-post form.mailpoet_form_below_posts .mailpoet_form_columns {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin: 0;
}
body.single-post form.mailpoet_form_below_posts .mailpoet_form_column {
    flex: 1 1 15rem !important;
    min-width: 0;
    margin: 0 !important;
}
body.single-post form.mailpoet_form_below_posts .mailpoet_form_column:last-child {
    flex: 0 0 11rem !important;
}
body.single-post form.mailpoet_form_below_posts .mailpoet_paragraph {
    margin: 0 !important;
    line-height: normal;
}
body.single-post form.mailpoet_form_below_posts input.mailpoet_text,
body.single-post form.mailpoet_form_below_posts input[type="email"] {
    height: 3rem;
    padding: 0 1.25rem !important;
    border: 1px solid #D5D9DD !important;
    border-radius: 999px !important;
    background: #fff !important;
    color: #171717;
    font-size: .95rem;
}
body.single-post form.mailpoet_form_below_posts input.mailpoet_text:focus {
    border-color: #0F766E !important;
    outline: 2px solid rgba(67, 214, 194, .45);
    outline-offset: 1px;
}
body.single-post form.mailpoet_form_below_posts input.mailpoet_submit {
    width: 100% !important;
    max-width: none !important;
    height: 3rem;
    padding: 0 1.75rem !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: #43D6C2 !important;
    color: #0A0A0A !important;
    font-size: .95rem;
    font-weight: 600;
    cursor: pointer;
    transition: background-color .15s ease, box-shadow .15s ease;
}
body.single-post form.mailpoet_form_below_posts input.mailpoet_submit:hover,
body.single-post form.mailpoet_form_below_posts input.mailpoet_submit:focus-visible {
    background: #29C8B3 !important;
    box-shadow: 0 4px 14px rgba(41, 200, 179, .35);
}
body.single-post form.mailpoet_form_below_posts .mailpoet_message {
    padding: 0 !important;
}
body.single-post form.mailpoet_form_below_posts .mailpoet_validate_success {
    margin: 1rem 0 0;
    color: #12804A;
    font-weight: 600;
}
body.single-post form.mailpoet_form_below_posts .mailpoet_validate_error {
    margin: .75rem 0 0;
    color: #C2363B;
}
@media (max-width: 575.98px) {
    body.single-post form.mailpoet_form_below_posts {
        padding: 1.5rem 1.25rem 1.35rem !important;
    }
    body.single-post form.mailpoet_form_below_posts .mailpoet_form_column,
    body.single-post form.mailpoet_form_below_posts .mailpoet_form_column:last-child {
        flex: 1 1 100% !important;
    }
    body.single-post form.mailpoet_form_below_posts input.mailpoet_submit {
        width: 100% !important;
    }
}

/* Magazine article header alignment (measured: title, meta line and text column all start at the same x).
   With a TOC the text column sits 473px in from the canvas edge; below 1100px (TOC collapsed) everything follows the centred 640px column. */
body.single-post h1,
body.single-post h1.fw-bold,
.directory-magazine-overview h1,
.directory-magazine-term-archive h1 {
    font-weight: 600 !important;
}
@media (min-width: 1100px) {
    body.has-magazin-toc.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.container h1,
    body.has-magazin-toc.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.rounded-lg.container h1 {
        margin-left: 473px !important;
        max-width: 640px !important;
    }
    body.has-magazin-toc.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.container .row:has(.far.fa-calendar),
    body.has-magazin-toc.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.rounded-lg.container .row:has(.far.fa-calendar) {
        margin-left: 473px !important;
        margin-right: 0 !important;
        max-width: 640px !important;
    }
    body.has-magazin-toc.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.container .row:has(.far.fa-calendar) > .col,
    body.has-magazin-toc.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.rounded-lg.container .row:has(.far.fa-calendar) > .col {
        padding-left: 0 !important;
    }
}
@media (max-width: 1099.98px) {
    body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.container h1,
    body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.rounded-lg.container h1 {
        max-width: 640px;
    }
    body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.container .row:has(.far.fa-calendar),
    body.single-post .wp-block-template-part > .wp-block-blockstrap-blockstrap-widget-container.mt-5.mb-4.pt-5.rounded-lg.container .row:has(.far.fa-calendar) {
        max-width: 640px;
        margin-right: auto;
        margin-left: auto;
    }
}

/* magazine rail: tag links as a tidy list (one per line), card titles in the system weight */
.directory-magazine-category__tags {
    display: grid;
    gap: .4rem;
    justify-items: start;
}
.directory-magazine-slider-card h2,
.directory-magazine-slider-card h3,
.directory-magazine-featured h2,
.directory-magazine-featured h3 {
    font-weight: 600;
    letter-spacing: -.015em;
}

/* Poppins 500 and 600: the files were on the server all along (blockstrap/assets/fonts) but only the regular weight was
   declared, so every "semi-bold"/"bold" heading was the browser's synthetic bold of the regular face (smeared, heavy).
   Declaring the real faces gives true Medium and SemiBold. Latin subset (covers German umlauts and ß). */
@font-face {
    font-family: "Poppins";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("https://mallfinder.de/wp-content/themes/blockstrap/assets/fonts/poppins-v20-latin-500.woff2") format("woff2");
}
@font-face {
    font-family: "Poppins";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url("https://mallfinder.de/wp-content/themes/blockstrap/assets/fonts/poppins-v20-latin-600.woff2") format("woff2");
}
/* header navigation: Medium, not Bold (calmer, closer to the reference) */
header.wp-block-template-part nav.navbar .nav-link,
.site-header nav.navbar .nav-link {
    font-weight: 500;
}

/* "Fehler melden" (page 10039) joins the .mf-biz system: mint hero with the breadcrumb inside it, form card + aside */
.mf-biz .mf-ico--check { --mf-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m8.5 12.3 2.4 2.4 4.6-4.9'/%3E%3C/svg%3E"); }
.mf-biz .mf-contact-steps {
    margin: 0;
    padding-left: 1.15rem;
    line-height: 1.6;
}
.mf-biz .mf-contact-steps li {
    margin-bottom: .3rem;
}
body.page-id-10039 nav[aria-label="breadcrumb"] {
    position: relative;
}
body.page-id-10039 nav[aria-label="breadcrumb"]::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: -16px;
    bottom: -16px;
    left: 50%;
    width: 100vw;
    transform: translateX(-50%);
    background: #F2FFFD;
}
body.page-id-10039 nav[aria-label="breadcrumb"] a {
    color: #0F766E !important;
}

/* Magazine article: the comment area looks like the review card on the center pages
   (white card, 16px radius, hairline border, grey 16px-radius fields, pill button on the right). */
body.single-post .wp-block-comments {
    margin-top: 0;
}
body.single-post #respond.comment-respond {
    margin: 0;
    padding: 1.5rem;
    border: 1px solid #E8ECEF;
    border-radius: 16px;
    background: #fff;
}
body.single-post #respond .comment-reply-title {
    margin: 0 0 .4rem;
    color: #171717;
    font-size: 1.5rem;
    font-weight: 600;
    letter-spacing: -.02em;
    line-height: 1.25;
}
body.single-post #respond .comment-reply-title small a {
    color: #0F766E !important;
    font-size: .85rem;
    font-weight: 500;
}
body.single-post #respond .comment-notes,
body.single-post #respond .logged-in-as {
    margin: 0 0 1.25rem;
    color: #5F6368;
    font-size: .9rem;
    line-height: 1.55;
}
body.single-post #respond .logged-in-as a,
body.single-post #respond .comment-notes a {
    color: #0F766E !important;
    font-weight: 600;
}
body.single-post #commentform input[type="text"],
body.single-post #commentform input[type="email"],
body.single-post #commentform input[type="url"],
body.single-post #commentform textarea {
    width: 100%;
    padding: .65rem .85rem;
    border: 0;
    border-radius: 16px;
    background: #F7F8FA;
    color: #171717;
    font-size: .9rem;
}
body.single-post #commentform textarea {
    min-height: 140px;
}
body.single-post #commentform input[type="text"]:focus,
body.single-post #commentform input[type="email"]:focus,
body.single-post #commentform textarea:focus {
    outline: 2px solid rgba(67, 214, 194, .55);
    outline-offset: 1px;
    box-shadow: none;
}
body.single-post #commentform .comment-form-url,
body.single-post #commentform .comment-form-cookies-consent {
    display: none !important;
}
body.single-post #commentform .comment-subscription-form {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    margin: 0 0 .6rem;
    color: #5F6368;
    font-size: .9rem;
    line-height: 1.45;
}
body.single-post #commentform .comment-subscription-form input[type="checkbox"] {
    flex: 0 0 auto;
    width: 1.1rem !important;
    height: 1.1rem;
    margin: .1rem 0 0;
    accent-color: #0F766E;
}
body.single-post #commentform .form-submit {
    display: flex;
    justify-content: flex-end;
    margin: 1.1rem 0 0;
}
body.single-post #commentform #submit {
    width: auto !important;
    padding: .7rem 1.75rem !important;
}
body.single-post .wp-block-comments-title,
body.single-post .wp-block-comments h2 {
    margin: 0 0 1rem;
    font-size: 1.5rem;
    font-weight: 600;
    letter-spacing: -.02em;
}
body.single-post .wp-block-comments .comment-list .comment + .comment {
    padding-top: 1.25rem;
    border-top: 1px solid #EDF2F7;
}
@media (max-width: 575.98px) {
    body.single-post #respond.comment-respond {
        padding: 1.15rem;
    }
    body.single-post #commentform .form-submit {
        justify-content: stretch;
    }
    body.single-post #commentform #submit {
        width: 100% !important;
    }
}

/* Article end: tighter rhythm between author box, newsletter card and comment card.
   The empty divider row (two empty columns with a top border) and the 70px spacer made ~215px of nothing. */
body.single-post .entry-content ~ .wp-block-blockstrap-blockstrap-widget-container.border-top.d-flex {
    display: none !important;
}
body.single-post .entry-content ~ .wp-block-spacer {
    height: 2rem !important;
}

/* Magazine article: author box as a quiet card (white, hairline, 16px) with a small "Geschrieben von" label above the name */
body.single-post .uwp_widget_author_box {
    margin: 2rem 0 0 !important;
    padding: 0 !important;
    border: 1px solid #E8ECEF;
    border-radius: 16px;
    background: #fff !important;
}
body.single-post .uwp_widget_author_box > div {
    background: transparent !important;
    border-radius: 16px;
    display: flex !important;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem !important;
    text-align: left !important;
}
body.single-post .uwp_widget_author_box img {
    width: 3.25rem;
    height: 3.25rem;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 50%;
    background: #E3FBF6;
    box-shadow: none !important;
    object-fit: cover;
}
body.single-post .uwp_widget_author_box .media-body {
    min-width: 0;
}
body.single-post .uwp_widget_author_box h5 {
    margin: 0 !important;
    color: #171717;
    font-size: 1.05rem;
    font-weight: 600;
    line-height: 1.3;
}
body.single-post .uwp_widget_author_box .directory-author-label {
    display: block;
    color: #5F6368;
    font-size: .8rem;
    font-weight: 500;
}
body.single-post .uwp_widget_author_box p {
    margin: .25rem 0 0;
    color: #5F6368;
    font-size: .9rem;
}
body.single-post .uwp_widget_author_box p:empty {
    display: none;
}

/* Visible H1 on info pages whose template prints no title (Über uns, Impressum, Datenschutz, AGB, Redaktion) */
.mf-page-title {
    margin: 0 0 1.5rem;
    color: var(--directory-color-heading, #171717);
    font-size: clamp(1.9rem, 4vw, 2.6rem);
    font-weight: 600;
    letter-spacing: -.02em;
    line-height: 1.15;
}

/* ==========================================================================
   Event detail: generated date tile instead of a photo (26.10.2026)
   ========================================================================== */
body.single-gd_event .directory-event-tile {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: clamp(1rem, 3vw, 1.75rem);
    align-items: center;
    margin: clamp(1.25rem, 3vw, 1.75rem) 0;
    padding: clamp(1.1rem, 3vw, 1.75rem);
    border: 1px solid var(--directory-color-border, #E8ECEF);
    border-radius: 16px;
    background: linear-gradient(135deg, #E6FBF7 0%, #F2FFFD 100%);
}

body.single-gd_event .directory-event-tile__date {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 6.25rem;
    padding: .9rem 1.1rem 1rem;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(23, 23, 23, .06), 0 6px 18px rgba(15, 118, 110, .10);
    text-align: center;
    line-height: 1.1;
}

body.single-gd_event .directory-event-tile__weekday {
    color: #5F6368;
    font-size: .8rem;
    font-weight: 500;
}

body.single-gd_event .directory-event-tile__day {
    margin: .15rem 0;
    color: #171717;
    font: 600 clamp(2.4rem, 7vw, 3.25rem)/1 Poppins, system-ui, sans-serif;
    letter-spacing: -.03em;
}

body.single-gd_event .directory-event-tile__month {
    color: #0F766E;
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

body.single-gd_event .directory-event-tile__until {
    margin-top: .45rem;
    padding-top: .45rem;
    border-top: 1px solid #E8ECEF;
    color: #5F6368;
    font-size: .8rem;
    font-weight: 500;
}

body.single-gd_event .directory-event-tile__info {
    min-width: 0;
}

body.single-gd_event .directory-event-tile__when {
    margin: 0 0 .5rem;
    color: #171717;
    font: 600 clamp(1.1rem, 2.6vw, 1.35rem)/1.3 Poppins, system-ui, sans-serif;
    letter-spacing: -.02em;
}

body.single-gd_event .directory-event-tile__line {
    display: flex;
    gap: .5rem;
    align-items: flex-start;
    margin: .25rem 0 0;
    color: #5F6368;
    font-size: .98rem;
    line-height: 1.45;
}

body.single-gd_event .directory-event-tile__line .directory-icon {
    flex: none;
    width: 1.1rem;
    height: 1.1rem;
    margin-top: .15rem;
    color: #0F766E;
}

@media (max-width: 575.98px) {
    body.single-gd_event .directory-event-tile {
        grid-template-columns: 1fr;
        justify-items: start;
    }
}

/* Center page: the events card is a section card like the others (same padding), no extra top gap above its heading. */
body.single-gd_place .directory-detail-section-card--events {
    padding: clamp(1.5rem, 2.2vw, 2rem) !important;
}

body.single-gd_place .directory-detail-section-card--events > .directory-center-events {
    margin-top: 0;
}
