/*
 * Farben, Typografie und Layout orientieren sich an agorion.de
 * (WordPress-Theme "Twenty Eleven"): helle Seiten-Hintergrundfarbe,
 * weißer Content-Container, dunkle Verlaufs-Navigation, Akzentblau.
 */
:root {
    --color-page-bg: #b7b7b7;
    --color-content-bg: #fff;
    --color-text: #373737;
    --color-muted: #7a7a7a;
    --color-heading: #111;
    --color-accent: #1982d1;
    --color-border: #bbb;
    --nav-bg-top: #252525;
    --nav-bg-bottom: #0a0a0a;
    --nav-text: #eee;
    --nav-hover-bg-top: #f9f9f9;
    --nav-hover-bg-bottom: #e5e5e5;
    --max-width: 1000px;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    font: 15px "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-weight: 300;
    line-height: 1.625;
    color: var(--color-text);
    background: var(--color-page-bg);
}

#page {
    max-width: var(--max-width);
    margin: 2em auto;
    background: var(--color-content-bg);
}

#branding {
    border-top: 2px solid var(--color-border);
    padding: 0 0 10px;
}

#site-title {
    margin: 0 270px 0 7.6%;
    padding: 3.65625em 0 0;
    font-size: 1em;
}

#site-title a {
    color: var(--color-heading);
    font-size: 30px;
    font-weight: bold;
    line-height: 36px;
    text-decoration: none;
}

#site-title a:hover,
#site-title a:focus {
    color: var(--color-accent);
}

#site-description {
    margin: 0.3em 270px 3.65625em 7.6%;
    color: var(--color-muted);
    font-size: 14px;
}

.branding-image {
    display: block;
}

.branding-image img {
    display: block;
    width: 100%;
    height: auto;
}

#access {
    background: #222;
    background: linear-gradient(var(--nav-bg-top), var(--nav-bg-bottom));
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}

#access div {
    margin: 0 7.6%;
}

#access ul {
    list-style: none;
    margin: 0 0 0 -0.8125em;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    font-size: 13px;
}

#access a {
    display: block;
    color: var(--nav-text);
    text-decoration: none;
    padding: 0 1.2125em;
    line-height: 3.333em;
}

#access a:hover,
#access a:focus {
    background: #f9f9f9;
    background: linear-gradient(var(--nav-hover-bg-top), var(--nav-hover-bg-bottom));
    color: var(--color-text);
}

#access a.current {
    font-weight: bold;
}

main {
    padding: 1.5rem 7.6%;
}

main h1 {
    margin: 0;
    color: #222;
    font-size: 26px;
    font-weight: bold;
    line-height: 1.5em;
    padding: 15px 0 0.3em;
}

.karte {
    width: 100%;
    aspect-ratio: 16 / 9;
    background: #eee;
    border-radius: 4px;
    margin: 1rem 0;
}

.status-badge {
    display: inline-block;
    padding: 0.15em 0.7em;
    border-radius: 999px;
    font-size: 0.8em;
    font-weight: 600;
    white-space: nowrap;
}

.badge-vorschlag { background: #d6f0f5; color: #0b6577; }
.badge-pruefen { background: #d7e9fa; color: #14527e; }
.badge-vorort { background: #d3f0e8; color: #106354; }
.badge-geeignet { background: #dcf3d8; color: #2c6b23; }
.badge-eingeschraenkt { background: #fbf0c9; color: #7a5d05; }
.badge-ungeeignet { background: #fbe0cf; color: #8a3c11; }
.badge-nichtmehr { background: #f6d3d3; color: #7a1f1f; }

/* Andrang-Tags: Skala von Blau (gering) über Gelb/Orange bis Rot (sehr hoch). */
.andrang-sehr-gering { background: #d7e9fa; color: #14527e; }
.andrang-gering { background: #d3f0e8; color: #106354; }
.andrang-mittel { background: #fbf0c9; color: #7a5d05; }
.andrang-hoch { background: #fbe0cf; color: #8a3c11; }
.andrang-sehr-hoch { background: #f6d3d3; color: #7a1f1f; }

.standorte-liste {
    margin: 1rem 0;
}

.standort-zeile {
    border: 1px solid #ddd;
    border-radius: 4px;
    margin-bottom: 0.5rem;
}

.standort-zeile summary {
    cursor: pointer;
    list-style: none;
    padding: 0.75rem 1rem;
    display: flex;
    align-items: center;
    gap: 1rem;
}

.standort-zeile summary::-webkit-details-marker {
    display: none;
}

.standort-zeile summary::after {
    content: "+";
    margin-left: auto;
    color: var(--color-muted);
}

.standort-zeile[open] summary::after {
    content: "\2212";
}

.standort-name {
    font-weight: 600;
}

.standort-details {
    padding: 0 1rem 1rem;
    border-top: 1px solid #eee;
}

.standort-fakten {
    color: var(--color-muted);
    font-size: 0.9em;
}

.standort-details-tabelle {
    border-collapse: collapse;
    width: 100%;
    margin: 1rem 0;
}

.standort-details-tabelle th,
.standort-details-tabelle td {
    text-align: left;
    padding: 0.4rem 0.6rem;
    border-bottom: 1px solid #eee;
}

.standort-details-tabelle th {
    color: var(--color-muted);
    font-weight: 600;
    width: 40%;
}

.foto-galerie {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0.5rem 0 1.5rem;
}

.foto-galerie figure {
    margin: 0;
    max-width: 200px;
}

.foto-galerie a {
    display: block;
}

.foto-galerie img {
    display: block;
    max-width: 200px;
    max-height: 200px;
    width: auto;
    height: auto;
    object-fit: contain;
    border: 1px solid #ddd;
    border-radius: 4px;
    background: #fafafa;
    cursor: zoom-in;
}

.foto-galerie figcaption {
    margin-top: 0.25rem;
    font-size: 0.75rem;
    color: var(--color-muted);
}

footer {
    padding: 1rem 7.6%;
    border-top: 1px solid #ddd;
    color: var(--color-muted);
    font-size: 0.9rem;
}

footer a {
    color: var(--color-muted);
}

footer a:hover,
footer a:focus {
    color: var(--color-accent);
}

@media (max-width: 600px) {
    #site-title,
    #site-description {
        margin-right: 7.6%;
    }

    main {
        padding: 1rem 7.6%;
    }

    footer {
        padding: 1rem 7.6%;
    }

    #access ul {
        font-size: 12px;
    }

    #access a {
        padding: 0 0.9em;
        line-height: 2.6em;
    }
}
