/* =========================================
   1. GLOBALE STYLES
   ========================================= */
body {
    font-family: 'Montserrat', sans-serif; /* Fallback von 'normal' auf 'sans-serif' korrigiert */
    font-size: 1.1rem;
    color: #875627;
}

p {
    text-align: justify;
}

/* Zusammenfassung aller globalen Link-Styles */
a, 
a:hover, 
footer a {
    color: #875627;
    text-decoration: none;
}

/* =========================================
   2. UTILITY-KLASSEN (Hilfsklassen)
   ========================================= */
.h100 {
    height: 100vh;
}

.w-400 {
    width: 400px;
}

.center-horizontal {
    margin-left: auto;
    margin-right: auto;
}

.centered-element {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

/* VORSICHT: Override für Flexbox-Alignment */
.align-items-center {
    align-items: flex-end !important;
}

.text-customOne {
    color: white;
}

/* =========================================
   3. TYPOGRAFIE & ÜBERSCHRIFTEN
   ========================================= */
.subheader {
    color: inherit !important;
    margin-bottom: 1rem;
}

.landingpage .subheader {
    text-align: center;
}

/* =========================================
   4. TABELLEN (Allgemein)
   ========================================= */
.table,
.table > :not(caption) > * > * {
    color: #875627;
}

.table > :not(caption) > * > * {
    background-color: transparent;
}

/* =========================================
   5. KOMPONENTEN
   ========================================= */

/* --- Gallery --- */
.ns-gallery-album-title, 
.ns-gallery-album-title p {
    text-align: center;
}

.ns-gallery-album-view, 
.ns-gallery-masonry-view, 
.ns-gallery-videos-view, 
.ns-gallery-mosaic-view, 
.ns-gallery-google-view {
    margin: 0;
}

/* --- OpenStreetMap --- */
.map-add {
    font-size: 1rem;
}

.tx-ns-open-street-map figure.table {
    display: block;
    width: 100%;
    margin: 0;
}

.tx-ns-open-street-map figure.table table {
    width: 100% !important;
    max-width: 100%;
    border-collapse: collapse;
}

.tx-ns-open-street-map figure.table table td:last-child,
.tx-ns-open-street-map figure.table table th:last-child {
    text-align: right;
}

/* OpenStreetMap - Responsive Layout */
@media (max-width: 991.98px) {
    .tx-ns-open-street-map .store_loca .map-block,
    .tx-ns-open-street-map .store_loca .add_sidebar {
        flex: 0 0 100%;
        max-width: 100%;
    }
}

@media (min-width: 992px) {
    .tx-ns-open-street-map .store_loca .map-block {
        flex: 0 0 75%;
        max-width: 75%;
    }

    .tx-ns-open-street-map .store_loca .add_sidebar {
        flex: 0 0 25%;
        max-width: 25%;
    }
}

/* --- Modals & Impressum --- */
.modal-content {
    --bs-modal-color: #875627;
}

.impressum header h5 {
    font-size: 2rem;
    color: #02586b;
}

.impressum .modal-body {
    font-size: 1.1rem;
    text-align: left;
}

.impressum .modal-body a, 
.impressum .modal-body a:hover {
    color: #02586b;
}

/* =========================================
   6. FOOTER
   ========================================= */
footer {
    background-color: #bfbe97;
    color: #875627;
}

.back-to-top {
    color: #875627;
}

.back-to-top:hover {
    color: #98765a;
}