/* =============================================================================
   Ostenland
   Poppins headings · Lato body · leaf-green accent · dark-forest structure
   ============================================================================= */

/* ── Design tokens ─────────────────────────────────────────────────────────── */
:root {
    --leaf:      #6faa2e;   /* signature accent — deeper leaf-green (bars/buttons) */
    --leaf-dk:   #5c9126;   /* darker leaf for hover on green fills             */
    --forest:    #006837;   /* mid forest — links, titles (readable on white)   */
    --forest-dk: #0a3f1a;   /* darkest forest — header/footer text, headings    */
    --blue:      #3d66ae;   /* secondary accent (from reference)                */
    --text:      #3f3f3f;   /* body text                                        */
    --muted:     #626262;   /* meta / captions                                  */
    --border:    #e2e2e2;   /* light borders                                    */
    --tint:      #f2f7e8;   /* light leaf-green section background              */
    --tint-2:    rgba(111, 170, 46, 0.12);

    /* Legacy aliases kept so any stray references still resolve */
    --primary:    #006837;
    --primary-dk: #0a3f1a;
    --primary-lt: #f4f9ec;
    --accent:     #6faa2e;

    /* Consumed by the parent theme for the primary navigation */
    --navi-font: 'Poppins', sans-serif;
    --navi-font-weight: 600;
    --navi-text-transform: uppercase;
    --header-text-color: #0a3f1a;
}

/* ── Typography ────────────────────────────────────────────────────────────── */
body, p, li, td, input, textarea, select {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    line-height: 1.7;
    color: var(--text);
}
h1, h2, h3, h4, h5, h6,
.site-title,
.wp-block-heading {
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    color: var(--forest-dk);
    letter-spacing: -0.01em;
}

a { color: var(--forest); }
a:hover { color: var(--forest-dk); text-decoration: underline; }

/* Guard custom components against content-box overflow (esp. 2-col mobile grids) */
.ost-topbar-inner,
.quicknav-grid, .quicknav-card,
.latest-posts-grid, .latest-post-card,
.aktuelles-grid, .aktuelles-card,
.upcoming-events, .upcoming-event { box-sizing: border-box; }
.quicknav-grid > *, .latest-posts-grid > *, .aktuelles-grid > * { min-width: 0; }

/* Never allow horizontal overflow (wide embeds, big cover headings, long words) */
html, body { overflow-x: clip; max-width: 100%; }
img, iframe, video, embed, object { max-width: 100%; }
.wp-block-cover__inner-container { max-width: 100%; }
.wp-block-cover__inner-container h1,
.wp-block-cover__inner-container h2,
.wp-block-cover__inner-container p { max-width: 100%; overflow-wrap: break-word; }

/* ── Top contact bar (injected via harrison_before_header) ─────────────────── */
.ost-topbar {
    background: var(--forest-dk);
    color: #dcefd0;
    font-family: 'Poppins', sans-serif;
    font-size: 0.8rem;
}
.ost-topbar-inner {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0.4rem 1.5rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.5rem;
    align-items: center;
    justify-content: space-between;
}
.ost-topbar a { color: #dcefd0; text-decoration: none; letter-spacing: 0.02em; }
.ost-topbar a:hover { color: var(--leaf); text-decoration: none; }
.ost-topbar-mail { font-weight: 600; }
.ost-topbar-tag { opacity: 0.8; }

/* ── Header ────────────────────────────────────────────────────────────────── */
#masthead,
.site-header {
    background: #ffffff;
    border-bottom: 4px solid var(--leaf);
    box-shadow: 0 2px 10px rgba(10, 63, 26, 0.08);
}

/* Site title + description */
.site-title,
.site-title a,
.site-title a:hover {
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    color: var(--forest-dk) !important;
    letter-spacing: -0.01em;
    text-decoration: none;
}
.site-description {
    color: var(--muted);
    font-family: 'Lato', sans-serif;
    letter-spacing: 0.02em;
}

/* Navigation — Poppins, uppercase, leaf-green bottom-bar highlight */
.main-navigation a {
    color: var(--forest-dk);
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    font-size: 13px;
}
.main-navigation ul a:hover,
.main-navigation ul a:active,
.main-navigation ul a:focus {
    color: var(--forest);
}
.main-navigation > ul > li > a:hover {
    border-bottom-color: var(--leaf) !important;
}
.main-navigation > ul > li.current-menu-item > a,
.main-navigation > ul > li.current_page_item > a {
    color: var(--forest);
    text-decoration: none;
    border-bottom-color: var(--leaf) !important;
}
.main-navigation ul ul {
    background: #ffffff;
    border: 1px solid var(--border);
    box-shadow: 0 6px 18px rgba(10, 63, 26, 0.12);
}
.main-navigation ul ul a { color: var(--forest-dk); }
.main-navigation ul ul a:hover { color: var(--forest); }

/* Centered header layout on desktop (echoes the reference's centered logo/nav) */
@media only screen and (min-width: 960px) {
    .header-main {
        flex-direction: column;
        align-items: center;
        justify-content: center;
        row-gap: 0.35rem;
    }
    .site-branding { justify-content: center; text-align: center; }
    .site-branding > div { justify-content: center; gap: 17px !important; }

    /* Wappen + Schriftzug so groß, dass sie die Breite des Hauptmenüs erreichen.
       Feste px-Werte, da auch das Menü eine feste Schriftgröße (13px) hat. */
    .site-branding img { height: 115px !important; }
    .site-title { font-size: 69px !important; line-height: 1.15; }
    .primary-navigation { margin: 0 !important; width: auto; }
    #masthead .main-navigation > ul.menu { justify-content: center; }
    .main-navigation > ul { margin-top: 0; }
}

/* Branding logo (Wappen) */
.site-branding img {
    filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.25));
}

/* ── Section title treatment — UPPERCASE + centered leaf underline ─────────── */
.quicknav-section  > .wp-block-group__inner-container > h2,
.aktuelles-section > .wp-block-group__inner-container > h2,
.termine-section   > .wp-block-group__inner-container > h2,
.gallery-section   > .wp-block-group__inner-container > h2,
.map-section       > .wp-block-group__inner-container > h2,
.section-title {
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
    color: var(--forest-dk);
    font-size: clamp(1.35rem, 2.6vw, 1.7rem) !important;
    margin-bottom: 1.6rem;
    position: relative;
    padding-bottom: 0.9rem;
}
.quicknav-section  > .wp-block-group__inner-container > h2::after,
.aktuelles-section > .wp-block-group__inner-container > h2::after,
.termine-section   > .wp-block-group__inner-container > h2::after,
.gallery-section   > .wp-block-group__inner-container > h2::after,
.map-section       > .wp-block-group__inner-container > h2::after,
.section-title::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 56px;
    height: 4px;
    border-radius: 2px;
    background: var(--leaf);
}

/* ── Hero cover block ──────────────────────────────────────────────────────── */
.wp-block-cover.hero-cover {
    min-height: 520px !important;
    border-radius: 0 !important;
    overflow: hidden;
    margin-bottom: 0 !important;
}
/* Homepage: full-bleed hero sits flush under the header (no top gap) */
body.page-id-68 .site-content { padding-top: 0; }
body.page-id-68 .site-main,
body.page-id-68 .site-main > article,
body.page-id-68 .entry-content { margin-top: 0; }
body.page-id-68 .hero-cover.alignfull { margin-top: 0 !important; }
.hero-cover .wp-block-cover__inner-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.3rem;
}
.wp-block-cover.hero-cover .wp-block-cover__inner-container h1,
.wp-block-cover.hero-cover .wp-block-cover__inner-container h2 {
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    color: #fff;
    font-size: clamp(1.8rem, 4.5vw, 2.8rem);
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.55);
    margin-bottom: 0.5rem;
}
.wp-block-cover.hero-cover .wp-block-cover__inner-container p {
    font-size: 1.1rem;
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
}
.hero-wappen { margin: 0 auto 0.5rem !important; }
.hero-wappen img { filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.5)); }

/* Hide the redundant "Startseite" page title on the homepage —
   the hero H1 ("Willkommen in Ostenland") already serves as the page heading. */
body.page-id-68 .site-main > article > .entry-header.page-header { display: none; }

/* ── Info box "Über Ostenland" ─────────────────────────────────────────────── */
.ueber-ostenland {
    background: var(--tint);
    border-left: 5px solid var(--leaf);
    border-radius: 4px;
    padding: 1.5rem 2rem;
    margin: 2rem 0;
}
.ueber-ostenland h2 { color: var(--forest-dk); margin-top: 0; }
.ueber-ostenland ul { list-style: none; padding: 0; margin: 0; }
.ueber-ostenland ul li {
    padding: 0.3rem 0;
    border-bottom: 1px solid var(--border);
}
.ueber-ostenland ul li:last-child { border-bottom: none; }
.ueber-ostenland ul li::before { content: "📍 "; }

/* ── Welcome intro (Wappen + greeting)────────────── */
.welcome-intro { padding: 3.5rem 1.5rem 2.75rem; background: #fff; }
.welcome-intro-inner {
    max-width: 940px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 2.5rem;
}
.welcome-media { flex: 0 0 auto; }
.welcome-media img {
    width: 130px;
    height: auto;
    filter: drop-shadow(0 3px 12px rgba(10, 63, 26, 0.18));
}
.welcome-text h2 {
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    font-size: clamp(1.5rem, 3vw, 2rem);
    color: var(--forest-dk);
    letter-spacing: -0.01em;
    margin: 0 0 0.6rem;
}
.welcome-text p {
    font-size: 1.05rem;
    line-height: 1.7;
    color: var(--text);
    margin: 0;
}
@media (max-width: 640px) {
    .welcome-intro-inner { flex-direction: column; text-align: center; gap: 1.3rem; }
    .welcome-media img { width: 104px; }
}


.quicknav-section { padding: 3.5rem 1rem 3rem; background: #fff; }
.quicknav-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
    max-width: 1120px;
    margin: 0 auto;
}
.quicknav-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    text-align: left;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 1.9rem 1.6rem 1.6rem;
    text-decoration: none;
    color: var(--text);
    box-shadow: 0 2px 10px rgba(10, 63, 26, 0.05);
    overflow: hidden;
    transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
}
/* left leaf-green accent bar that grows in on hover */
.quicknav-card::before {
    content: "";
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: var(--leaf);
    transform: scaleY(0);
    transform-origin: top;
    transition: transform 0.25s ease;
}
.quicknav-card:hover::before { transform: scaleY(1); }
.quicknav-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 28px rgba(111, 170, 46, 0.20);
    border-color: #d6e7c5;
    text-decoration: none;
}
.qn-icon {
    width: 100%;              /* so breit wie die Textspalte der Box */
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--tint-2);
    border-radius: 14px;
    margin-bottom: 1.1rem;
    padding: 11%;
    color: var(--forest);
}
/* Piktogramme — eigene Inline-SVGs, erben die Farbe über currentColor */
.qn-icon svg {
    width: 100%;
    height: 100%;
    display: block;
    stroke-width: 1;          /* dünnere Linien, da stark vergrößert */
    transition: color 0.2s;
}
.quicknav-card:hover .qn-icon { color: var(--leaf-dk); }
.qn-title {
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    font-size: 1.2rem;
    letter-spacing: -0.01em;
    line-height: 1.2;
    color: var(--forest-dk);
    margin-bottom: 0.45rem;
}
.qn-sub {
    font-size: 0.9rem;
    color: var(--muted);
    line-height: 1.55;
    text-align: justify;      /* Blocksatz */
    text-justify: inter-word;
    hyphens: auto;            /* verhindert große Wortlücken in der schmalen Spalte */
}
/* "Mehr erfahren" affordance — the whole box is already the link */
.quicknav-card::after {
    content: "Mehr erfahren →";
    margin-top: 1.1rem;
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--forest);
    transition: color 0.2s;
}
.quicknav-card:hover::after { color: var(--forest-dk); }

/* Overview boxes: fewer columns as the viewport narrows (text needs room) */
@media (max-width: 980px) { .quicknav-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .quicknav-grid { grid-template-columns: 1fr; } }

/* ── Aktuelles (Startseite latest-post cards) ──────────────────────────────── */
.aktuelles-section { padding: 3rem 1rem 2.5rem; }
.latest-posts-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    max-width: 980px;
    margin: 0 auto 1.75rem;
}
.latest-post-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 4px;
    overflow: hidden;
    text-decoration: none;
    color: var(--text);
    box-shadow: 0 2px 8px rgba(10, 63, 26, 0.05);
    transition: transform 0.2s, box-shadow 0.2s;
}
.latest-post-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 24px rgba(111, 170, 46, 0.20);
    text-decoration: none;
}
.latest-post-thumb { width: 100%; height: 180px; overflow: hidden; }
.latest-post-thumb img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform 0.35s;
}
.latest-post-card:hover .latest-post-thumb img { transform: scale(1.05); }
.latest-post-img-placeholder { width: 100%; height: 100%; background: var(--tint); }
.latest-post-body { padding: 1rem 1.2rem 1.2rem; border-top: 3px solid var(--leaf); }
.latest-post-body time {
    font-size: 0.75rem;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-family: 'Poppins', sans-serif;
}
.latest-post-body h3 {
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    font-size: 0.98rem;
    margin: 0.3rem 0 0;
    line-height: 1.4;
    color: var(--forest-dk);
}

/* ── Aktuelles archive grid (blog index / home.php) ────────────────────────── */
.aktuelles-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 1.75rem;
    padding: 0 0 2rem;
}
.aktuelles-card {
    background: #ffffff;
    border: 1px solid var(--border);
    border-radius: 4px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.aktuelles-card:hover {
    box-shadow: 0 10px 26px rgba(111, 170, 46, 0.18);
    transform: translateY(-3px);
}
.aktuelles-card-thumb { display: block; overflow: hidden; height: 200px; }
.aktuelles-thumb-img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}
.aktuelles-card:hover .aktuelles-thumb-img { transform: scale(1.04); }
.aktuelles-card-body {
    padding: 1.25rem 1.5rem 1.5rem;
    border-top: 3px solid var(--leaf);
    display: flex;
    flex-direction: column;
    flex: 1;
}
.aktuelles-card .post-title {
    font-family: 'Poppins', sans-serif;
    font-size: 1.1rem;
    line-height: 1.35;
    margin: 0 0 0.5rem;
}
.aktuelles-card .post-title a { color: var(--forest-dk); text-decoration: none; }
.aktuelles-card .post-title a:hover { color: var(--forest); }
.aktuelles-meta { margin-bottom: 0.75rem; }
.aktuelles-date {
    font-size: 0.78rem;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-family: 'Poppins', sans-serif;
    font-style: normal;
}
.aktuelles-excerpt {
    font-size: 0.92rem;
    color: #555;
    line-height: 1.65;
    flex: 1;
    margin-bottom: 1rem;
}
.aktuelles-excerpt p { margin: 0; }
.aktuelles-read-more {
    display: inline-block;
    font-family: 'Poppins', sans-serif;
    font-size: 0.82rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--forest);
    text-decoration: none;
    margin-top: auto;
}
.aktuelles-read-more:hover { color: var(--forest-dk); text-decoration: underline; }

/* ── Termine section (Startseite) ──────────────────────────────────────────── */
.termine-section { padding: 3rem 1rem 2.5rem; background: #fff; }
.upcoming-events {
    max-width: 720px;
    margin: 0 auto 2.25rem;   /* Abstand zum Button „Zum vollständigen Kalender“ */
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 4px;
    overflow: hidden;
}
.upcoming-event {
    display: grid;
    grid-template-columns: 130px 1fr auto;
    gap: 0.8rem;
    align-items: baseline;
    padding: 0.85rem 1.25rem;
    border-bottom: 1px solid var(--border);
    border-left: 3px solid transparent;
    transition: background 0.15s, border-color 0.15s;
}
.upcoming-event:last-child { border-bottom: none; }
.upcoming-event:hover { background: var(--tint-2); border-left-color: var(--leaf); }
.ue-date {
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    font-size: 0.85rem;
    color: var(--forest);
    white-space: nowrap;
}
.ue-title { font-size: 0.95rem; color: var(--text); }
.ue-loc { font-size: 0.8rem; color: var(--muted); white-space: nowrap; }

/* ── "Ostenland entdecken" – Bild-Kacheln, die nach /der-ort/ und /vereine/ ── */
.gallery-section { padding: 3rem 1rem 2.5rem; }
.entdecken-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
    max-width: 1120px;
    margin: 0 auto;
}
.entdecken-card {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: var(--text);
}
.entdecken-card img {
    display: block;
    width: 100%;
    height: 170px;
    object-fit: cover;
    border-radius: 4px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.entdecken-card:hover img {
    transform: scale(1.03);
    box-shadow: 0 8px 22px rgba(10, 63, 26, 0.2);
}
.entdecken-card:focus-visible {
    outline: 3px solid var(--leaf);
    outline-offset: 3px;
}
.ent-caption {
    padding-top: 0.6rem;
    font-size: 0.8rem;
    line-height: 1.35;
    text-align: center;
    color: var(--muted);
}
.entdecken-card:hover .ent-caption { color: var(--forest); }
@media (max-width: 980px) { .entdecken-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .entdecken-grid { grid-template-columns: 1fr; } }

/* ── Map section ───────────────────────────────────────────────────────────── */
.map-section { padding: 2.5rem 1rem 3rem; background: #fff; }
.map-wrap { max-width: 820px; margin: 0 auto; }

/* ── Legacy single-post / archive styles ───────────────────────────────────── */
.type-post {
    border-bottom: 1px solid var(--border);
    padding-bottom: 1.5rem;
    margin-bottom: 1.5rem;
}
.entry-title, .page-title { color: var(--forest-dk); font-family: 'Poppins', sans-serif; }
.entry-title a { color: var(--forest-dk); }
.entry-title a:hover { color: var(--forest); }
.entry-meta { color: var(--muted); font-size: 0.875rem; }
.post-thumbnail img {
    border-radius: 4px;
    width: 100%;
    height: 220px;
    object-fit: cover;
    margin-bottom: 1rem;
}

/* ── Buttons ───────────────────────────────────────────────────────────────── */
.wp-block-button__link,
.button, button, input[type="submit"] {
    background-color: var(--leaf) !important;
    border-color: var(--leaf) !important;
    color: var(--forest-dk) !important;
    border-radius: 3px;
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.85rem;
}
.wp-block-button__link:hover,
.button:hover, button:hover, input[type="submit"]:hover {
    background-color: var(--leaf-dk) !important;
    border-color: var(--leaf-dk) !important;
    color: var(--forest-dk) !important;
}
/* Outline variant → forest-green outline that fills on hover */
.wp-block-button.is-style-outline .wp-block-button__link {
    background-color: transparent !important;
    color: var(--forest) !important;
    border: 2px solid var(--forest) !important;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
    background-color: var(--forest) !important;
    color: #fff !important;
}

/* ── Footer ────────────────────────────────────────────────────────────────── */
#colophon {
    background-color: var(--forest-dk);
    border-top: 4px solid var(--leaf);
    margin-top: 0;
}
#footer-line {
    padding: 1.75rem 2rem;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: space-between;
    align-items: center;
    font-size: 0.875rem;
    font-family: 'Lato', sans-serif;
}
#footer-line, #footer-line a { color: #c8dfc4; }
#footer-line a { text-decoration: none; }
#footer-line a:hover { color: var(--leaf); text-decoration: none; }
.footer-contact { flex: 1 1 auto; }
.footer-links a { margin: 0 0.5rem; }
.footer-copy { opacity: 0.7; }

/* ── Separator ─────────────────────────────────────────────────────────────── */
.wp-block-separator {
    border-color: var(--border) !important;
    margin: 2.5rem auto;
}

/* ── Vereine — Kachel-Raster statt Tabelle (page-id-21) ─────────────────────── */
.vereine-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.1rem;
    margin: 2rem 0 2.5rem;
}
.vereine-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 96px;
    padding: 1rem 1.1rem;
    background: #fff;
    border: 1px solid var(--border);
    border-left: 3px solid var(--leaf);
    border-radius: 6px;
}
.vn-name {
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    font-size: 0.95rem;
    line-height: 1.35;
    color: var(--forest-dk);
    overflow-wrap: break-word;
}
/* Nur Eintraege mit Website sind Links – die uebrigen bleiben ruhige Kacheln. */
a.vereine-card {
    text-decoration: none;
    color: inherit;
    box-shadow: 0 2px 10px rgba(10, 63, 26, 0.05);
    transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
}
a.vereine-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(10, 63, 26, 0.12);
}
a.vereine-card:hover .vn-name { color: var(--forest); }
a.vereine-card:focus-visible {
    outline: 3px solid var(--leaf);
    outline-offset: 3px;
}
.vn-link {
    margin-top: 0.7rem;
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    font-size: 0.72rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--leaf);
}
div.vereine-card {
    background: transparent;
    border-left-color: var(--border);
    /* keine "ZUR WEBSITE"-Zeile – Kachel darf niedriger sein (im Raster
       streckt sie sich ohnehin auf die Zeilenhoehe). */
    min-height: 0;
}
@media (max-width: 980px) { .vereine-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .vereine-grid { grid-template-columns: 1fr; } }

/* ── Termine table — fixed column widths (page-id-20) ──────────────────────── */
body.page-id-20 .wp-block-table table {
    table-layout: fixed !important;
    width: 100% !important;
}
body.page-id-20 .wp-block-table table th:nth-child(1),
body.page-id-20 .wp-block-table table td:nth-child(1) {
    width: 13% !important;
    white-space: nowrap;
}
body.page-id-20 .wp-block-table table th:nth-child(2),
body.page-id-20 .wp-block-table table td:nth-child(2) {
    width: 67% !important;
    word-break: break-word;
}
body.page-id-20 .wp-block-table table th:nth-child(3),
body.page-id-20 .wp-block-table table td:nth-child(3) {
    width: 20% !important;
    word-break: break-word;
}

/* ── Responsive ────────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
    .ost-topbar-inner { justify-content: center; }
    .hero-cover { min-height: 380px !important; }
    .hero-cover h1, .hero-cover h2 { font-size: 1.9rem !important; }
    .latest-posts-grid { grid-template-columns: 1fr; }
    .upcoming-event { grid-template-columns: 110px 1fr; }
    .upcoming-event .ue-loc { grid-column: 2; }
    #footer-line { flex-direction: column; text-align: center; }
}
