/* Inhaltselemente – Feinschliff 2026 (schuetzen-schwinde.de) */

/* Bildkopf: Textelement mit Hintergrundbild und Frame-Klasse "hero" */
.frame-hero {
    position: relative;
    color: #fff;
    min-height: 420px;
    display: flex;
    align-items: flex-end;
}
.frame-hero .frame-backgroundimage-container::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(15, 43, 70, .15) 0%, rgba(15, 43, 70, .85) 100%);
}
.frame-hero > .frame-group-container { position: relative; z-index: 1; width: 100%; }
.frame-hero .frame-inner { padding-top: 10rem; padding-bottom: 3rem; }
.frame-hero .frame-backgroundimage { background-position: center 22%; }
.frame-hero .frame-header { display: flex; flex-direction: column; margin-bottom: 1rem; }
.frame-hero .element-header {
    order: 2;
    color: #fff;
    font-size: clamp(2.25rem, 5vw, 3.5rem);
    font-weight: 600;
    margin: 0;
}
.frame-hero .element-subheader {
    order: 1;
    color: #f2c200;
    font-size: .95rem;
    font-weight: 600;
    margin: 0 0 .35rem;
}
.frame-hero .lead { max-width: 640px; color: rgba(255, 255, 255, .92); margin: 0; }

/* Stundenplan */
.schedule { list-style: none; margin: 0 0 1rem; padding: 0; border-top: 1px solid #e3e9ef; }
.schedule li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 11rem;
    column-gap: 1.5rem;
    align-items: start;
    padding: 1rem 0;
    border-bottom: 1px solid #e3e9ef;
}
.schedule strong { display: block; font-size: 1.15rem; font-weight: 600; color: #1f2d3a; }
.schedule-group,
.schedule-time { color: #5b6b7b; }
.schedule-time { text-align: left; font-variant-numeric: tabular-nums; }
.schedule em { display: block; font-style: normal; font-size: .875rem; color: #0288D1; }
.schedule-fee { font-size: .9rem; color: #5b6b7b; }
@media (max-width: 575.98px) {
    .schedule li { grid-template-columns: minmax(0, 1fr) 8.5rem; column-gap: 1rem; }
    .schedule strong { font-size: 1.05rem; }
}

/* schlanker Abschluss */
.frame-cta { text-align: center; }
.frame-cta .frame-inner { padding-top: 2.5rem; padding-bottom: 2.5rem; border-top: 1px solid #e3e9ef; }
.frame-cta .btn { padding: .65rem 1.6rem; border-radius: 999px; font-weight: 600; }
.frame-cta .cta-note { font-size: .9rem; color: #5b6b7b; margin-top: 1rem; }

/* Seitenkopf ohne Bild: Textelement mit Frame-Klasse "intro" */
.frame-intro .frame-inner { padding-top: 2.5rem; padding-bottom: 1rem; }
.frame-intro .frame-header { display: flex; flex-direction: column; margin-bottom: 1rem; }
.frame-intro .element-header {
    order: 2;
    color: #1f2d3a;
    font-size: clamp(2.25rem, 5vw, 3.25rem);
    font-weight: 600;
    margin: 0;
}
.frame-intro .element-subheader {
    order: 1;
    color: #0288D1;
    font-size: .9rem;
    font-weight: 600;
    margin: 0 0 .35rem;
}
.frame-intro .lead { max-width: 720px; color: #3d4c5a; }

/* Beitragstabelle */
.fee-title { margin: 2rem 0 .5rem; font-size: 1.25rem; font-weight: 500; }
.fee-table { width: 100%; max-width: 480px; border-collapse: collapse; margin-bottom: 1rem; }
.fee-table th,
.fee-table td { padding: .7rem 0; border-bottom: 1px solid #e3e9ef; text-align: left; }
.fee-table thead th {
    font-size: .8rem;
    font-weight: 600;
    color: #5b6b7b;
    border-bottom-color: #c9d3dd;
}
.fee-table td:last-child,
.fee-table th:last-child { text-align: right; }
.fee-table td:last-child { font-weight: 600; color: #1f2d3a; }

/* Tabellen (Inhaltselement "Tabelle") – modernisiert */
.frame-type-table .table-responsive,
.frame-type-table table.table {
    border: 1px solid #e3e9ef;
    border-radius: .6rem;
    overflow: hidden;
}
/* breite Tabellen auf schmalen Bildschirmen seitlich wischbar lassen */
.frame-type-table .table-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.frame-type-table table.table {
    border-collapse: separate;
    border-spacing: 0;
    margin-bottom: 1rem;
    --bs-table-bg: transparent;
}
.frame-type-table .table-responsive table.table { border: 0; border-radius: 0; margin: 0; }
.frame-type-table .table > :not(caption) > * > * {
    padding: .7rem 1rem;
    border-bottom: 0;
    vertical-align: middle;
    background: transparent;
    box-shadow: none;
}
.frame-type-table .table tbody tr:nth-child(odd) { background: #f6f9fb; }
.frame-type-table .table tbody tr { transition: background-color .15s ease; }
.frame-type-table .table tbody tr:hover { background: #e8f2fa; }

/* Majestaeten-Listen: Jahr | Nr. | Name | Ort */
#p90 .frame-type-table td:nth-child(1) { width: 5.5rem; font-weight: 600; color: #1f2d3a; font-variant-numeric: tabular-nums; }
#p90 .frame-type-table td:nth-child(2) { width: 4rem; font-size: .85rem; color: #5f6e7c; font-variant-numeric: tabular-nums; }
#p90 .frame-type-table td:nth-child(3) { font-weight: 500; color: #1f2d3a; }
#p90 .frame-type-table td:nth-child(4) { text-align: right; color: #5f6e7c; }
@media (max-width: 575.98px) {
    #p90 .frame-type-table td:nth-child(2) { display: none; }
    .frame-type-table .table > :not(caption) > * > * { padding: .55rem .6rem; }
    .frame-type-table .table { font-size: .9rem; }
}

/* kurze Hinweistexte zwischen den Tabellen */
#p90 .frame-type-text:not(.frame-intro) p { color: #5f6e7c; font-size: .9rem; }

/* Spenderliste (Schuetzenfest) */
.sponsor-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 2rem;
}
.sponsor-list li { padding: .6rem 0; border-bottom: 1px solid #e3e9ef; line-height: 1.35; }
.sponsor-list strong { display: block; font-weight: 500; color: #1f2d3a; }
.sponsor-list span { font-size: .85rem; color: #5f6e7c; }
@media (max-width: 575.98px) {
    .sponsor-list { grid-template-columns: 1fr; }
}

/* Hinweis-Abschnitt: Textelement mit Frame-Klasse "notice" – dunkelblaue Flaeche in der Footer-Farbe */
.frame-notice .frame-inner {
    padding: 1.5rem 1.75rem;
    border-radius: .5rem;
    background: #0f2b46;
    color: rgba(255, 255, 255, .88);
}
.frame-notice .element-header { color: #fff; }
.frame-notice strong { color: #f2c200; font-weight: 600; }
.frame-notice a { color: #f2c200; }
.frame-notice a:hover { color: #fff; }
.frame-notice li::marker { color: #f2c200; }
.frame-notice p:last-child,
.frame-notice ul:last-child { margin-bottom: 0; }

/* Terminlisten: Tabellen mit Frame-Klasse "events"
   Spalten: Wochentag | Datum | Uhrzeit | Veranstaltung | Detail | Detail | Ort */
.frame-events td:nth-child(1) { width: 3.5rem; font-size: .8rem; color: #5f6e7c; }
.frame-events td:nth-child(2) { width: 6rem; font-weight: 600; color: #1f2d3a; font-variant-numeric: tabular-nums; white-space: nowrap; }
.frame-events td:nth-child(3) { width: 4.5rem; color: #5b6b7b; font-variant-numeric: tabular-nums; }
.frame-events td:nth-child(4) { font-weight: 600; color: #1f2d3a; }
.frame-events td:nth-child(5),
.frame-events td:nth-child(6) { font-size: .875rem; color: #5f6e7c; }
.frame-events td:nth-child(7) { text-align: right; color: #5f6e7c; white-space: nowrap; }

@media (max-width: 767.98px) {
    .frame-events table,
    .frame-events tbody { display: block; }
    .frame-events tr {
        display: grid;
        grid-template-columns: 4.75rem 1fr;
        grid-auto-flow: row dense;
        column-gap: .75rem;
        padding: .7rem .9rem;
    }
    .frame-events .table > :not(caption) > * > * { padding: 0; }
    .frame-events td { width: auto !important; text-align: left !important; white-space: normal !important; }
    .frame-events td:nth-child(-n+3) { grid-column: 1; }
    .frame-events td:nth-child(n+4) { grid-column: 2; }
    .frame-events td:empty { display: none; }
}

/* Disziplin-Karten (Kartengruppe mit Frame-Klasse "disciplines") */
.frame-disciplines .card { border-color: #e3e9ef; border-radius: .6rem; }
.frame-disciplines .card-title { font-weight: 600; margin-bottom: .15rem; }
.frame-disciplines .card-subtitle,
.frame-disciplines .card .element-subheader { color: #0288D1; font-size: .9rem; font-weight: 600; }
.discipline-facts { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; gap: 1.5rem; }
.discipline-facts li { display: flex; flex-direction: column; }
.discipline-facts span { font-size: .75rem; color: #5f6e7c; }
.discipline-facts strong { font-size: 1.35rem; font-weight: 600; color: #1f2d3a; font-variant-numeric: tabular-nums; }

/* Ergebnistabellen: Platz | Mannschaft | Ringzahl */
.frame-results .table-responsive,
.frame-results table.table { max-width: 640px; }
.frame-results .table-responsive table.table { max-width: none; }
.frame-results thead th { font-size: .75rem; color: #5b6b7b; font-weight: 600; }
.frame-results td:nth-child(1),
.frame-results th:nth-child(1) { width: 4rem; color: #5f6e7c; font-variant-numeric: tabular-nums; }
.frame-results td:nth-child(2) { font-weight: 500; color: #1f2d3a; }
.frame-results td:nth-child(3),
.frame-results th:nth-child(3) { width: 6rem; text-align: right; font-weight: 600; color: #1f2d3a; font-variant-numeric: tabular-nums; }
.frame-results tbody tr:nth-child(-n+3) td:nth-child(1) { color: #c99a00; font-weight: 700; }

/* Vorstand: Tabellen mit Frame-Klasse "board" – Funktion | Name | Ort */
.frame-board table.table { margin-bottom: 0; }
.frame-board td:nth-child(1) { width: 38%; color: #5b6b7b; }
.frame-board td:nth-child(2) { font-weight: 600; color: #1f2d3a; }
.frame-board td:nth-child(3) { text-align: right; color: #5f6e7c; font-size: .875rem; }
.frame-board tbody tr:has(td:nth-child(2):empty) { display: none; }
.frame-board + .frame-board .element-header,
.frame-board .element-header { font-size: 1.1rem; font-weight: 600; color: #0288D1; margin-top: .5rem; }
.frame-board-photo figcaption { font-size: .8rem; text-align: center; }
.frame-board-photo .gallery-row { justify-content: center; }

/* Beitraege: Tabelle mit Frame-Klasse "fees" – Gruppe | Betrag */
.frame-fees .table-responsive,
.frame-fees table.table { max-width: 560px; }
.frame-fees .table-responsive table.table { max-width: none; }
.frame-fees td:nth-child(2) { text-align: right; font-weight: 600; color: #1f2d3a; white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 575.98px) {
    .frame-board td:nth-child(3) { display: none; }
    .frame-board td:nth-child(1) { width: 45%; }
}

/* Formatierte Bildunterschrift im Textbereich eines Foto-Elements (Frame-Klasse "board-photo") */
.frame-board-photo figcaption { display: none; }
.frame-board-photo .gallery-row,
.frame-board-photo figure.image { margin-bottom: 0; }
.frame-board-photo .textpic { gap: 0; row-gap: 0; }
.frame-board-photo .textpic-text { margin-top: .75rem; }
.frame-board-photo .textpic-text p { max-width: 760px; margin: 0 auto .3rem; text-align: center; font-size: .85rem; line-height: 1.55; color: #5b6b7b; }
.frame-board-photo .textpic-text p:first-child { font-size: .95rem; font-weight: 600; color: #1f2d3a; }
.frame-board-photo .textpic-text p:last-child { font-size: .8rem; color: #5f6e7c; margin-bottom: 0; }

/* Lightbox-Bildunterschrift: kompakter, bei langen Texten scrollbar */
.pswp__dynamic-caption { font-size: .85rem; line-height: 1.5; }
.pswp__dynamic-caption__title { font-size: 1rem; margin-bottom: .35rem; }
.pswp__dynamic-caption--aside { max-height: calc(100vh - 2rem); overflow-y: auto; }
.pswp__dynamic-caption--mobile { max-height: 45vh; overflow-y: auto; }

/* vergangene Termine (per termine-2026.js markiert): lesbar, aber mit Etikett "vorbei" */
.frame-events tbody tr.is-past { background: #f1f3f5 !important; }
.frame-events tr.is-past td { color: #5f6e7c !important; }
.frame-events tr.is-past td:nth-child(2),
.frame-events tr.is-past td:nth-child(4) { color: #4a5866 !important; font-weight: 500 !important; }
.frame-events tr.is-past td:nth-child(4)::after {
    content: "vorbei";
    display: inline-block;
    margin-left: .5rem;
    padding: .05rem .5rem;
    border-radius: 999px;
    background: #dde3e9;
    color: #4a5866;
    font-size: .72rem;
    font-weight: 600;
    vertical-align: .1em;
}
.frame-events.is-past-month .element-header { color: #5f6e7c; }

/* Ansprechpartner: Name + Funktion | anklickbare Telefonnummer */
.contact-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid #e3e9ef; }
.contact-list li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 1.5rem;
    align-items: center;
    padding: .85rem 0;
    border-bottom: 1px solid #e3e9ef;
}
.contact-person { color: #5b6b7b; }
.contact-person strong { display: block; font-size: 1.05rem; font-weight: 600; color: #1f2d3a; }
.contact-phone {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    font-weight: 500;
    color: #0288D1;
    text-decoration: none;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
.contact-phone::before {
    content: "";
    width: 1rem;
    height: 1rem;
    background-color: currentColor;
    -webkit-mask: 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='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%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' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.contact-phone:hover { color: #01579b; }

/* Linkliste: Varianten fuer E-Mail und interne Seiten, 3 Spalten */
.link-list a.link-list-mail::after {
    -webkit-mask-image: 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");
            mask-image: 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");
}
.link-list a.link-list-internal::after {
    -webkit-mask-image: 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='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
            mask-image: 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='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
}
.link-list.link-list-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 767.98px) { .link-list.link-list-3 { grid-template-columns: 1fr; } }

/* Karten-Platzhalter in den Footer-Farben */
.frame .map-consent { background: #0f2b46; color: rgba(255, 255, 255, .88); }
.frame .map-consent .map-consent-title { color: #fff; }
.frame .map-consent .map-consent-note { color: rgba(255, 255, 255, .7); }
.frame .map-consent .map-consent-note a { color: #f2c200; }
.frame .map-consent .btn-primary { background: #f2c200; border-color: #f2c200; color: #0f2b46; font-weight: 600; }
.frame .map-consent .btn-outline-primary { border-color: rgba(255, 255, 255, .6); color: #fff; }
.frame .map-consent .btn-outline-primary:hover { background: #fff; color: #0f2b46; }

/* Startseite: Buttons im Bildkopf, "mehr"-Links */
.frame-hero .hero-actions { margin-top: 1.5rem; display: flex; flex-wrap: wrap; gap: .75rem; }
.frame-hero .btn-hero { background: #f2c200; color: #0f2b46; border-radius: 999px; padding: .65rem 1.5rem; font-weight: 600; border: 0; }
.frame-hero .btn-hero:hover { background: #ffd633; color: #0f2b46; }
.frame-hero .btn-hero-outline { border: 1px solid rgba(255, 255, 255, .7); color: #fff; border-radius: 999px; padding: .6rem 1.5rem; font-weight: 600; }
.frame-hero .btn-hero-outline:hover { background: #fff; color: #0f2b46; }
.frame-hero .frame-backgroundimage { background-position: center 30%; }
.more-link { text-align: right; margin: 0; }
.more-link a { font-weight: 600; text-decoration: none; }
.more-link a::after { content: " \2192"; }
.next-events-loading { color: #5f6e7c; }

/* News-Karten als Anriss (Datensatz-Verweis mit Frame-Klasse "news-teaser", z. B. Startseite) */
.frame-news-teaser .card-body > p:not(:first-of-type) { display: none; }
.frame-news-teaser .card-body > p:first-of-type {
    display: -webkit-box;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 0;
}
/* eingebundene Datensaetze (Inhaltselement "Datensatz einfuegen") buendig ausrichten */
.frame-type-shortcut .frame .frame-container,
.frame-type-shortcut .frame .frame-inner { padding-left: 0; padding-right: 0; max-width: none; }
.frame-type-shortcut .frame .frame-inner { padding-top: 0; padding-bottom: 0; }


/* Typografie angleichen: Abschnittsueberschriften kraeftiger, Zusatzzeilen in normaler Schreibweise */
.frame:not(.frame-intro):not(.frame-hero) > .frame-group-container .element-header,
.frame:not(.frame-intro):not(.frame-hero) .frame-header .element-header { font-weight: 600; color: #1f2d3a; letter-spacing: -.005em; }
.frame-notice .element-header { color: #fff; }
.card .card-title { font-weight: 600; }
.frame-intro .element-subheader,
.frame-hero .element-subheader { font-size: 1.05rem; font-weight: 600; letter-spacing: 0; }

/* E-Mail-Zeilen im Stil der Ansprechpartner */
.contact-mail {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    font-weight: 500;
    color: #0288D1;
    text-decoration: none;
    word-break: break-all;
}
.contact-mail::before {
    content: "";
    flex: 0 0 1rem;
    width: 1rem;
    height: 1rem;
    background-color: currentColor;
    -webkit-mask: 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") center / contain no-repeat;
            mask: 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") center / contain no-repeat;
}
.contact-mail:hover { color: #01579b; }
@media (max-width: 575.98px) {
    .contact-list li { grid-template-columns: 1fr; row-gap: .35rem; }
}

/* Bildkopf: Zusatzzeile als Fortsetzung UNTER dem Vereinsnamen */
.frame-hero .element-subheader { order: 3; margin: .15rem 0 0; color: #f2c200; font-size: clamp(1.05rem, 2vw, 1.35rem); }

/* Abschnitts-Ueberschrift als eigenes Element direkt ueber dem folgenden Inhalt (Frame-Klasse "section-head") */
.frame-section-head { padding-bottom: .9rem; }
.frame-section-head + .frame { margin-top: 0; padding-top: 0; }

/* "Alle ..."-Links direkt unter ihrem Block (Frame-Klasse "more") */
.frame:has(+ .frame-more) { padding-bottom: .75rem; }
.frame-more { margin-top: 0; padding-top: 0; }
.frame-more .more-link { margin: 0; }

/* Hauptmenue: "Home" nur auf der Startseite als aktiv markieren (Home ist allen Seiten uebergeordnet) */
body:not(.page-1) .navbar-mainnavigation .navbar-nav > .nav-item:first-child > .nav-link-main { font-weight: inherit; color: inherit; }
body:not(.page-1) .navbar-mainnavigation .navbar-nav > .nav-item:first-child > .nav-link-main .nav-link-text::after { transform: scaleX(0); }
body:not(.page-1) .navbar-mainnavigation .navbar-nav > .nav-item:first-child > .nav-link-main:hover .nav-link-text::after { transform: scaleX(1); }

/* News-Anriss: Ausblendverlauf + "Weiterlesen" */
.frame-news-teaser .card { position: relative; transition: box-shadow .2s ease, transform .2s ease; }
.frame-news-teaser .card:hover { box-shadow: 0 .5rem 1.5rem rgba(15, 43, 70, .12); transform: translateY(-2px); }
.frame-news-teaser .card-body { display: flex; flex-direction: column; }
.frame-news-teaser .card-body > p:first-of-type {
    -webkit-mask-image: linear-gradient(180deg, #000 60%, transparent 100%);
            mask-image: linear-gradient(180deg, #000 60%, transparent 100%);
}
.frame-news-teaser .card-more {
    margin-top: auto;
    padding-top: .75rem;
    font-weight: 600;
    color: #0288D1;
    text-decoration: none;
}
.frame-news-teaser .card:hover .card-more { color: #01579b; }

/* Handy-Menue (unterhalb Bootstrap lg) */
.navbar-mainnavigation .navbar-toggler:focus { box-shadow: none; outline: 0; }
.navbar-mainnavigation .navbar-toggler:focus-visible { outline: 2px solid #0288D1; outline-offset: 2px; }
.navbar-mainnavigation .navbar-toggler { border: 0; }
.navbar-mainnavigation .nav-item-cta { display: none; }
@media (max-width: 991.98px) {
    .navbar-mainnavigation .navbar-collapse { padding: 0 0 .9rem; }
    .navbar-mainnavigation .navbar-nav { gap: 0; }
    .navbar-mainnavigation .navbar-nav > .nav-item { border-bottom: 1px solid #e3e9ef; }
    .navbar-mainnavigation .navbar-nav > .nav-item > .nav-link-main {
        display: block;
        padding: .55rem .25rem .55rem .9rem;
        font-size: 1.02rem;
        font-weight: 500;
        color: #1f2d3a;
        border-left: 3px solid transparent;
    }
    .navbar-mainnavigation .navbar-nav > .nav-item > .nav-link-main .nav-link-text::after,
    .navbar-mainnavigation .navbar-nav > .nav-item > .nav-link-main::before { display: none; }
    .navbar-mainnavigation .navbar-nav > .nav-item > .nav-link-main.active,
    .navbar-mainnavigation .navbar-nav > .nav-item.active > .nav-link-main {
        color: #0288D1;
        font-weight: 600;
        border-left-color: #0288D1;
        background: #f4f7fa;
    }
    body:not(.page-1) .navbar-mainnavigation .navbar-nav > .nav-item:first-child > .nav-link-main {
        color: #1f2d3a;
        font-weight: 500;
        border-left-color: transparent;
        background: none;
    }
    .navbar-mainnavigation .nav-item-cta { display: block; border-bottom: 0 !important; padding: .85rem .25rem 0; }
    .navbar-mainnavigation .nav-cta {
        display: block;
        text-align: center;
        padding: .6rem 1rem;
        border-radius: 999px;
        background: #f2c200;
        color: #0f2b46;
        font-weight: 600;
        text-decoration: none;
    }
}

/* News-Seite: Karten als Anriss mit aufklappbarem Volltext (Frame-Klasse "news-expand") */
.frame-news-expand .card-body { display: flex; flex-direction: column; }
.frame-news-expand .card-body:not(.is-open):not(.is-short) > p:not(:first-of-type) { display: none; }
.frame-news-expand .card-body:not(.is-open):not(.is-short) > p:first-of-type {
    display: -webkit-box;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 0;
    -webkit-mask-image: linear-gradient(180deg, #000 60%, transparent 100%);
            mask-image: linear-gradient(180deg, #000 60%, transparent 100%);
}
.frame-news-expand .card-toggle {
    margin-top: auto;
    align-self: flex-start;
    padding: .75rem 0 0;
    border: 0;
    background: none;
    font-weight: 600;
    color: #0288D1;
    cursor: pointer;
}
.frame-news-expand .card-toggle:hover { color: #01579b; }
.frame-news-expand .card-toggle:focus-visible { outline: 2px solid #0288D1; outline-offset: 3px; border-radius: 4px; }
.frame-news-expand .card-body.is-open .card-toggle { margin-top: .75rem; }
/* aufgeklappte Karte zieht die anderen nicht mit in die Hoehe */
.frame-news-expand .card-group-element:has(.is-open) .card-group-element-item { align-self: flex-start; }
.frame-news-expand .card-group-element:has(.is-open) .card { height: auto; }

/* Startseite: keine Breadcrumb (nur Haus-Symbol, ueberfluessig) */
body.page-1 .breadcrumb-section { display: none; }
/* Bildkopf ohne weissen Streifen oben/unten */
.frame-hero { padding-top: 0; padding-bottom: 0; }

/* Vereinsname neben dem Logo im Kopfbereich */
.navbar-mainnavigation .navbar-brand { display: inline-flex; align-items: center; gap: .7rem; text-decoration: none; }
.navbar-brand-name { display: flex; flex-direction: column; line-height: 1.15; white-space: nowrap; }
.navbar-brand-name strong { font-size: 1.02rem; font-weight: 700; color: #0f2b46; letter-spacing: -.005em; }
.navbar-brand-name span { font-size: .78rem; font-weight: 500; color: #5b6b7b; }
@media (max-width: 380px) {
    .navbar-brand-name strong { font-size: .95rem; }
    .navbar-brand-name span { font-size: .72rem; }
}
/* Desktop 992–1399 px: Menue braucht die Breite, dort nur das Logo */
@media (min-width: 992px) and (max-width: 1399.98px) {
    .navbar-brand-name { display: none; }
}
/* kleine Desktops (992–1199 px): Menue etwas enger, damit alle 10 Punkte in eine Zeile passen */
@media (min-width: 992px) and (max-width: 1199.98px) {
    .navbar-mainnavigation .navbar-nav { gap: 0; }
    .navbar-mainnavigation .navbar-nav > .nav-item > .nav-link-main { padding-left: .4rem; padding-right: .4rem; font-size: .9rem; }
    .navbar-mainnavigation .navbar-brand-logo-normal { height: 64px; width: auto; }
}
body:not(.page-1) .navbar-mainnavigation .navbar-nav > .nav-item:first-child > .nav-link-main::before { display: none; }
body:not(.page-1) .navbar-mainnavigation .navbar-nav > .nav-item:first-child > .nav-link-main:not(:hover) { color: rgba(0, 0, 0, 0.65); }


/* Lesbarkeit: Fliesstext auf ca. 75 Zeichen pro Zeile begrenzen (Listen/Tabellen/Raster bleiben breit) */
#page-content .frame-type-text .frame-inner > p,
#page-content .frame-type-text .frame-inner > ul:not([class]),
#page-content .frame-type-text .frame-inner > ol:not([class]),
#page-content .frame-type-text .frame-inner > h2,
#page-content .frame-type-text .frame-inner > h3,
#page-content .textpic-text > p,
#page-content .textpic-text > ul:not([class]) { max-width: 75ch; }
#page-content .frame-cta .frame-inner > p,
#page-content .frame-board-photo .textpic-text > p { margin-left: auto; margin-right: auto; }

/* 404-Seite: Zielscheibe mit Fehlschuss */
body.page-5 .breadcrumb-section { display: none; }
.miss { text-align: center; padding: .5rem 0 1rem; }
.miss-target { width: min(260px, 70vw); height: auto; }
.miss-target .ring { fill: #fff; stroke: #1f2d3a; stroke-width: 1.2; }
.miss-target .ring-dark { fill: #1f2d3a; stroke: #fff; stroke-width: 1.2; }
.miss-target .ring-ten { fill: #fff; }
.miss-target .num { font: 600 7px/1 sans-serif; fill: #1f2d3a; }
.miss-target .num-light { font: 600 7px/1 sans-serif; fill: #fff; }
.miss-hole circle { fill: #f2c200; }
.miss-hole .miss-hole-core { fill: #0f2b46; }
.miss-hole { animation: miss-pop .6s .3s both cubic-bezier(.2, 1.6, .4, 1); transform-box: fill-box; }
@keyframes miss-pop { from { opacity: 0; transform: translate(212px, 34px) scale(.2); } to { opacity: 1; transform: translate(212px, 34px) scale(1); } }
@media (prefers-reduced-motion: reduce) { .miss-hole { animation: none; } }
.miss-text { margin: 1rem auto 0; max-width: 34rem; font-size: 1.05rem; color: #3d4c5a; }

/* Zwischenueberschriften im Fliesstext (z. B. Impressum, Datenschutz) wie Abschnittsueberschriften */
#page-content .frame-type-text .frame-inner > h2,
#page-content .frame-type-text .frame-inner > h3 { font-weight: 600; color: #1f2d3a; margin-top: 1.75rem; }
#page-content .frame-type-text .frame-inner > h2 { font-size: 1.45rem; }
#page-content .frame-type-text .frame-inner > h3 { font-size: 1.15rem; }

/* 404-Minispiel: wackelnde Zielscheibe, 5 Schuss */
.shoot { text-align: center; padding: .5rem 0 1rem; }
.shoot-intro { max-width: 36rem; margin: 0 auto 1rem; font-size: 1.05rem; color: #3d4c5a; }
.shoot-target { width: min(320px, 82vw); height: auto; cursor: crosshair; touch-action: manipulation; user-select: none; -webkit-tap-highlight-color: transparent; }
.shoot-target .ring { fill: #fff; stroke: #1f2d3a; stroke-width: .9; }
.shoot-target .ring-dark { fill: #1f2d3a; stroke: #fff; stroke-width: .9; }
.shoot-target .num { font: 600 6px/1 sans-serif; fill: #1f2d3a; }
.shoot-target .num-light { font: 600 6px/1 sans-serif; fill: #fff; }
.shoot-target .hole { fill: #f2c200; stroke: #0f2b46; stroke-width: 1.4; animation: shoot-hit .25s ease-out both; transform-box: fill-box; transform-origin: center; }
@keyframes shoot-hit { from { transform: scale(2.2); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.shoot-hud { display: flex; flex-wrap: wrap; justify-content: center; gap: .35rem 1.25rem; margin-top: .75rem; font-variant-numeric: tabular-nums; color: #3d4c5a; }
.shoot-score { font-weight: 700; color: #0f2b46; }
.shoot-best { color: #5f6e7c; }
.shoot-msg { min-height: 1.6em; margin: .5rem auto 0; max-width: 34rem; font-size: 1.05rem; color: #1f2d3a; }
.shoot.is-done .shoot-msg { font-size: 1.15rem; }
.shoot-again { margin-top: .75rem; padding: .55rem 1.5rem; border: 0; border-radius: 999px; background: #f2c200; color: #0f2b46; font-weight: 600; cursor: pointer; }
.shoot-again:hover { background: #ffd633; }
.shoot-again:focus-visible { outline: 2px solid #0288D1; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .shoot-target .hole { animation: none; } }
.shoot-teiler { color: #3d4c5a; }
