/*
Theme Name: Divi 5 Child Theme | 2026
Theme URI: https://www.cordmedia.de
Version: 2.4
Description: Made with love by Cord Media Digital Services
Template: Divi
Author: Frank Oschatz
Author URI: https://www.cordmedia.de
*/

 
/* =Theme customization starts here
------------------------------------------------------- */


/* ============================================================
 * PC CADDIE iFrame (Stand 17.06.2026)
 * --
 * cms.php liefert jetzt das iframe-resizer-Content-Script -> die Auto-Höhe
 * greift (Eltern: iFrameResize auf iframe[id^="pcco-"], Kind: contentWindow).
 * Die alten Fix-Min-Heights vom 18.05. (404-Ära) sind damit obsolet und wurden
 * entfernt — sie verhinderten sogar das Schrumpfen (Leerraum bei kurzem Inhalt).
 * Bleibt nur Breite/Rahmen + ein kleiner Lade-Platzhalter gegen Layout-Sprung,
 * bevor der Resizer greift.
 * ============================================================ */
#pcco-frame {
    width: 100%;
    min-height: 300px;
    border: 0;
}

/* ============================================================
 * CORD MEDIA 2026-05-22 — Responsive Wrapper für wp:divi/video
 *
 * Divi 5 generiert für das wp:divi/video-Modul kein eigenes
 * responsive CSS. Plus der WP-Customizer-CSS-Sanitizer strippt
 * iframe-Selektoren aus dem Customizer-CSS heraus, deshalb hier
 * direkt im Child-Theme.
 *
 * Hält iframes (YouTube etc.) im 16:9-Aspekt-Ratio und füllt die
 * Spaltenbreite. Ohne diese Regeln rendert YouTube mit fixen
 * 1080×608 in einer 25%-Spalte → unsichtbar/deformiert.
 * ============================================================ */
.et_pb_video_box iframe {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
}

/* CORD MEDIA 2026-05-22 — Nachzieher: outer .et_pb_video kollabiert sonst
   im Flex-Parent (et_flex_module ohne explizite width) → wir setzen
   width:100% damit die Spalte komplett gefüllt wird. */
.et_pb_video {
    width: 100% !important;
}

/* CORD MEDIA 2026-05-24 — Eigentlicher Fix fuer den Doppel-Wrapper-Bug:
   Divi 5 wrappt YouTube-Embeds intern in
   <div class='fluid-width-video-wrapper' style='padding-top:56.2963%'>.
   Dieser Wrapper sitzt geometrisch UNTER der .et_pb_video_box (Block-Element
   nach dem Box-Padding-Bereich) -> Iframe rendert ausserhalb des sichtbaren
   Box-Bereichs. Wir absolutieren den Wrapper an top:0 der Box, damit der
   Iframe sichtbar in der Spalte landet. */
.fluid-width-video-wrapper {
    width: 100% !important;
    position: absolute !important;
    top: 0 !important;
    padding: 0 !important;
    height: 100% !important;
}

/* CORD MEDIA 2026-05-28 — Natur-News-Galerien (Gutenberg wp:gallery):
   quadratische Thumbnails fuer ein ruhiges Raster. Betrifft nur
   Block-Galerien (Blogbeitraege), nicht die Divi-Galerie-Module. */
.wp-block-gallery .wp-block-image img {
    aspect-ratio: 1 / 1;
    object-fit: cover;
    width: 100%;
    height: auto;
}

/* ============================================================
 * CORD MEDIA 2026-07-27 — PC CADDIE Snapshot (Turnier-Vorschau) v2
 *
 * Design nach Dore-Jacobs-Muster (Frank-Vorgaben):
 * eckige weisse Karten, 1px #f2f2f2 Rahmen, 4px gruene Bodenkante,
 * weicher Schatten, Golfball halb ueber der Ecke unten rechts.
 *
 * WICHTIG: pcco-style.css (Plugin) stylt mit .pcco-snapshot .pcco-*
 * (Spezifitaet 0,2,0) und animiert die Titel-Ebene beim Hover nach
 * unten raus — frueher per overflow:hidden abgeschnitten. Da der Ball
 * overflow:visible braucht, blenden wir die Titel-Ebene beim Hover
 * per opacity aus. Alle Regeln mit html-Praefix, damit sie das
 * Plugin-CSS sicher schlagen.
 * ============================================================ */
html .pcco-snapshot-container {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    row-gap: 40px;
    margin: 0 0 40px;
}
html .pcco-snapshot-container:empty { display: none; }
html .pcco-snapshot-spacer { display: none; }

html .pcco-snapshot {
    position: relative;
    flex: 1 1 calc(25% - 15px);
    min-width: 210px;
    min-height: 210px;
    background: #fff;
    border: 1px solid #f2f2f2;
    border-bottom: 4px solid #00ba65;
    border-radius: 0;
    overflow: visible; /* Golfball ragt ueber die Kante */
    box-shadow: 0px 0px 54px -28px rgba(0, 0, 0, 0.3);
    transition: box-shadow .25s ease, transform .25s ease;
}
html .pcco-snapshot:hover {
    box-shadow: 0px 0px 54px -18px rgba(0, 0, 0, 0.42);
    transform: translateY(-3px);
}

/* Golfball unten rechts, halb ueber der Kante */
html .pcco-snapshot::after {
    content: '';
    position: absolute;
    right: 12px;
    bottom: -21px;
    width: 38px;
    height: 37px; /* Bild 408x400 */
    background: url('/wp-content/uploads/2026/07/golfball.png') center / contain no-repeat;
    z-index: 2;
    pointer-events: none;
    filter: drop-shadow(0 2px 5px rgba(0, 0, 0, .25));
}

/* --- Titel-Ebene: Datum + Turniername --- */
html .pcco-snapshot .pcco-snapshot-default {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    height: 100%;
    min-height: 160px;
    padding: 22px 16px;
    box-sizing: border-box;
    border: 0; /* Plugin bringt border-top 1px #ccc mit (graue Doppel-Linie oben) */
    background: #fff;
    color: #000;
    opacity: 1;
    transition: opacity .2s ease;
}
/* Beim Hover ausblenden — Plugin schiebt sie sonst sichtbar nach unten raus */
html .pcco-snapshot:hover .pcco-snapshot-default,
html .pcco-snapshot:focus-within .pcco-snapshot-default {
    opacity: 0;
}
html .pcco-snapshot .pcco-snapshot-default-date {
    margin: 0 0 12px;
    line-height: 1;
    font-size: 0; /* Inline-Whitespace zwischen den Spans entfernen */
}
html .pcco-snapshot .pcco-snapshot-default-date .pcco-day,
html .pcco-snapshot .pcco-snapshot-default-date .pcco-month {
    font-size: 54px; /* Frank 06.10.2026: Tag/Monat 54 px (vorher 34) */
    font-weight: 700;
    letter-spacing: -.5px;
}
html .pcco-snapshot .pcco-snapshot-default-date .pcco-year {
    display: block;
    font-size: 18px; /* Frank 06.10.2026: Jahr 18 px (vorher 14) */
    font-weight: 400;
    opacity: .85;
    margin-top: 6px;
}
html .pcco-snapshot .pcco-snapshot-default-name {
    margin: 0;
    font-size: 20px; /* Frank 06.10.2026: Titel 20 px (vorher 15) */
    font-weight: 600;
    line-height: 1.3;
}

/* --- Info-Ebene (Hover): Zeiten, Anmeldung, Turnierlink --- */
html .pcco-snapshot .pcco-snapshot-appear {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 3px;
    padding: 14px 16px;
    box-sizing: border-box;
    background: #fff;
    color: #000;
    font-size: 12.5px;
    line-height: 1.35;
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
    overflow: hidden;
}
html .pcco-snapshot:hover .pcco-snapshot-appear,
html .pcco-snapshot:focus-within .pcco-snapshot-appear {
    opacity: 1;
    visibility: visible;
    transform: none;
}
html .pcco-snapshot .pcco-snapshot-appear p { margin: 0; }
html .pcco-snapshot .pcco-snapshot-appear-info { font-size: 16px; } /* Frank 06.10.2026: Startinfo-Zeile 16 px (vorher 12,5 geerbt) */
html .pcco-snapshot .pcco-snapshot-appear-start, html .pcco-snapshot .pcco-snapshot-appear-end, html .pcco-snapshot .pcco-snapshot-appear-entrystart, html .pcco-snapshot .pcco-snapshot-appear-entryend { font-size: 14px; } /* Frank 06.10.2026: Ende/Anmeldung 14 px zum Testen (vorher 12,5 geerbt); 27.10. + appear-end (= Turnierende, cm-pccaddie-snapshot-fix) */

/* Datum steht schon auf der Titel-Ebene -> in der Info-Ebene ausblenden */
html .pcco-snapshot .pcco-snapshot-appear-date,
html .pcco-snapshot .pcco-snapshot-appear-endtime { display: none; }

html .pcco-snapshot .pcco-snapshot-appear-name {
    font-size: 18px; /* Frank 06.10.2026: Hover-Titel 18 px (vorher 14) */
    font-weight: 700;
    margin-bottom: 5px !important;
}
html .pcco-snapshot .pcco-snapshot-appear-link { margin-top: 8px !important; }
html .pcco-snapshot .pcco-snapshot-appear-link a {
    display: inline-block;
    padding: 6px 14px;
    background: #00ba65;
    color: #fff;
    border-radius: 0;
    font-weight: 600;
    text-decoration: none;
    transition: background .2s ease;
}
html .pcco-snapshot .pcco-snapshot-appear-link a:hover { background: #059832; }

/* --- Touch-Geraete: kein Hover -> Titel-Ebene weg, Info-Ebene IST die
 * Karte (inkl. Datum, das auf Desktop ausgeblendet ist, weil doppelt) --- */
@media (hover: none) {
    html .pcco-snapshot { height: auto; min-height: 0; }
    html .pcco-snapshot .pcco-snapshot-default { display: none; }
    html .pcco-snapshot .pcco-snapshot-appear {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        background: #fff;
        padding: 18px 16px 20px;
    }
    html .pcco-snapshot .pcco-snapshot-appear-date {
        display: block;
        margin: 0 0 8px;
        line-height: 1;
        font-size: 0;
    }
    html .pcco-snapshot .pcco-snapshot-appear-date .pcco-day,
    html .pcco-snapshot .pcco-snapshot-appear-date .pcco-month {
        font-size: 64px;
        font-weight: 700;
        letter-spacing: -.5px;
    }
    html .pcco-snapshot .pcco-snapshot-appear-date .pcco-year {
        font-size: 13px;
        font-weight: 400;
        opacity: .85;
        margin-left: 6px;
    }
}

/* --- Responsiv: 2 pro Reihe, dann 1 --- */
@media (max-width: 980px) {
    html .pcco-snapshot { flex: 1 1 calc(50% - 10px); }
}
/* 30.10.2026 (Eric): Handy 2 Karten nebeneinander statt 1, deutlich kompakter — siehe Block „Turnierkarten Handy“ am Dateiende */
@media (max-width: 600px) {
    html .pcco-snapshot { flex: 1 1 calc(50% - 5px); min-width: 0; }
}


/* ============================================================
   Newsletter-Anmeldung im Footer (CleverReach-Embed)
   Frank-Auftrag 07.08.2026 — das Embed kam ungestylt: Label in
   Dunkelgrau auf Gruen (kaum lesbar), Eingabefeld nur 162 px breit,
   Button im Browser-Grau.
   Bewusst am Haus-Muster der Seite orientiert (PC-CADDIE-Buttons):
   Grossbuchstaben, letter-spacing 2px, KEINE Rundung, Hover
   invertiert nach Hellgrau. Auf dem gruenen Footergrund ist der
   Button weiss mit gruener Schrift — das entspricht genau dem
   Hover-Zustand der uebrigen Buttons.
   ============================================================ */

.cr_form,
.cr_form .cr_body,
.cr_form .cr_page {
    margin: 0;
    padding: 0;
    background: none;
    border: 0;
}

/* Label: war #232323 auf Gruen. Weiss + etwas kleiner als der
   Fliesstext, damit es als Feldbeschriftung liest. */
.cr_form label {
    display: block;
    margin: 0 0 6px;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    color: #ffffff;
}

/* Eingabefeld ueber die volle Spaltenbreite. Weisser Grund +
   dunkler Text = bester Kontrast; kantig wie die Haus-Buttons. */
.cr_form .cr_form-input {
    width: 100%;
    box-sizing: border-box;
    padding: 12px;
    background: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.65);
    border-radius: 0;
    color: #232323;
    font-size: 16px;
    line-height: 1.4;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.cr_form .cr_form-input::placeholder {
    color: #7a7a7a;
    opacity: 1;               /* Firefox dimmt Placeholder sonst zusaetzlich */
}

/* Fokus sichtbar machen (Tastaturbedienung) — der weisse Ring
   traegt auch auf dem gruenen Grund. */
.cr_form .cr_form-input:focus {
    outline: none;
    border-color: #ffffff;
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.4);
}

/* Button: Haus-Optik, invertiert fuer den gruenen Footer.
   Schriftgruen ist bewusst dunkler als das CD-Gruen #00ba66 —
   #00ba66 auf Weiss haette nur ~2,4:1 Kontrast und waere nicht
   barrierefrei lesbar; #007a45 liegt bei ~4,6:1. */
.cr_form .cr_button {
    display: block;
    width: 100%;
    margin-top: 12px;
    padding: .7em 1em;
    background: #ffffff;
    border: 0;
    border-radius: 0;
    color: #007a45;
    font-size: 16px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease;
}

.cr_form .cr_button:hover,
.cr_form .cr_button:focus-visible {
    background: #f2f2f2;
    color: #00693e;
}

/* Hinweistext unter dem Formular (Divi-Textmodul) */
.cm-newsletter-hinweis,
.cm-newsletter-hinweis p {
    font-size: 13px;
    line-height: 1.5;
    color: #ffffff;
}

.cm-newsletter-hinweis a {
    color: #ffffff;
    text-decoration: underline;
}

.cm-newsletter-hinweis a:hover {
    text-decoration: none;
}

/* ------------------------------------------------------------------
   Footer-Links: weiss erzwingen
   Divis globale Linkfarbe ist --gcid-link-color = #00ba66 — exakt die
   Hintergrundfarbe des Footers. Das generierte Layout-CSS setzt
   `a { color: var(--gcid-link-color, ...) }` ungescopt; sobald Divi das
   Footer-CSS neu baut, stehen die Links gruen auf gruen und sind
   unsichtbar (aufgefallen 07.08.2026 nach einer Layout-Aenderung).
   Hier deshalb unabhaengig von Divis Generierung festgenagelt.
   ------------------------------------------------------------------ */
.et-l--footer a {
    color: #ffffff;
}

.et-l--footer a:hover {
    color: #f2f2f2;
    text-decoration: underline;
}

/* ------------------------------------------------------------------
   Footer-Ausrichtungen festnageln
   Hintergrund: Die alte et-cache-Datei des Footer-Layouts stammte noch
   von einem frueheren Stand. Als Divi das CSS am 07.08.2026 neu baute
   (ausgeloest durch das neue Textmodul), sprang die Linkliste auf
   zentriert und die Copyright-Zeile nach links — in den Modulen ist
   naemlich gar kein textAlign hinterlegt, es galt reiner Default.
   Damit die abgenommene Optik unabhaengig von Divis Generierung
   erhalten bleibt, hier explizit.
   ------------------------------------------------------------------ */
.et-l--footer ul {
    text-align: left;
}

.et-l--footer .et_pb_row_1_tb_footer .et_pb_text_inner {
    text-align: center;
}

/* ============================================================
 * CORD MEDIA 2026-09-26 — Designanpassungen nach Manual (Eric/Alena, 24.09.2026)
 * Charts: 1–2 Header · 3 Flächen/Kanten · 4 Footer · 8 Intro · 11–13 News · 14 Bilder.
 * Farben: nur Hellgrau #f2f2f2 (Global Color „Hellgrau", seit 27.09. = Manual-Grau), Weiß, Grün #00ba66.
 * Regel (Frank 27.09.): Presets/Gruppen-Presets/Global Colors zuerst — dieses CSS nur für Dinge, die der Builder nicht kann (Customizer-Header, Fremd-Markup, Pseudo-Elemente).
 * ============================================================ */

/* --- Chart 1: grüne Leiste oben ohne Text (Sekundärmenü bleibt im Menü-Editor erhalten, wird nur nicht angezeigt) --- */
#top-header #et-secondary-nav, #top-header #et-secondary-menu, #top-header #et-info, #top-header .et-social-icons { display: none !important; }
#top-header { height: 22px !important; min-height: 22px; line-height: 22px; }
#top-header .container { min-height: 22px; }

/* --- Chart 1–2: weiße Kopfleiste, Logo ragt ins Bild, Claim als Text neben dem Logo, Menü rechts --- */
#main-header, .et-fixed-header#main-header { background: #ffffff !important; box-shadow: none !important; }
body.et_transparent_nav #main-header { background: #ffffff !important; }
#main-header, #main-header .container, #main-header .logo_container { overflow: visible !important; }
#main-header .logo_container { position: absolute; top: 0; left: 0; height: 100%; width: 100%; }
#main-header #logo { max-height: none !important; height: 130px !important; /* Frank 06.10.2026: 130 (vorher 140) */ width: auto; margin-top: 12px; position: relative; z-index: 6; }
.et-fixed-header#main-header #logo { height: 44px !important; margin-top: 4px; } /* beim Scrollen kompakt, sonst ragt das Logo in den Inhalt */
.et-fixed-header#main-header .logo_container::after { left: 60px; }
#main-header .logo_container::after { /* Claim (Manual Chart 2: „steht auf weißer Fläche, immer lesbar") */
  content: "Der Platz in Deinem Herzen"; position: absolute; left: 145px; /* Frank 06.10.2026: 10 px nach links (vorher 155) */ top: 50%; transform: translateY(-50%);
  font-family: Urbanist, Arial, sans-serif; font-weight: 700; font-size: 16px; letter-spacing: 1px; text-transform: uppercase; color: #00ba66; white-space: nowrap;
}
#main-header .logo_helper::after { display: none !important; } /* alter Claim aus dem Customizer-CSS (Post 1018, weiß unter dem Logo) */
#et-top-navigation { padding: 0 !important; display: flex; align-items: center; height: 100%; } /* Menü vertikal mittig, wie der Claim */
#main-header .container { display: flex; align-items: center; justify-content: flex-end; min-height: 52px; }
#main-header #top-menu { line-height: 22px; }
#et_top_search, #et_search_icon, .et_search_outer { display: none !important; }
#top-menu > li { padding: 0 !important; margin: 0; line-height: 1; }
#top-menu > li > a { padding: 0 13px !important; font-family: Urbanist, Arial, sans-serif; font-weight: 400; font-size: 14px; letter-spacing: .2px; text-transform: uppercase; color: #8a8a8a !important; border-left: 1px solid #b5b5b5; line-height: 22px; } /* Links grau wie in der Vorlage (Frank 27.09.) */
#top-menu > li:first-child > a { border-left: 0; }
#top-menu > li.menu-item-has-children > a { padding-right: 13px !important; }
#top-menu > li.menu-item-has-children > a::after { display: none; } /* Pfeil weg wie im Design */
#top-menu > li > a:hover { color: #00ba66 !important; font-weight: 400; opacity: 1 !important; } /* Hover nur grün, nicht fett (Frank 27.09.) */
#top-menu > li.current-menu-item > a, #top-menu > li.current-menu-ancestor > a, #top-menu > li.current_page_item > a, #top-menu > li.current_page_ancestor > a { color: #00ba66 !important; font-weight: 700; opacity: 1 !important; }
#top-menu li li a { font-family: Urbanist, Arial, sans-serif; text-transform: none; }
#top-menu li li.current-menu-item > a { color: #00ba66 !important; font-weight: 700; }

/* --- Header Zwischenbreiten (Alena/Vorstand 26.10.: Logo/Claim/Menü überlagern sich; gemessen 27.10.: unter 1600 px liegt der Claim auf dem Menü, bei 1024 läuft das Menü zweizeilig übers Logo). Frank-Go 27.10. --- */
@media (min-width: 981px) and (max-width: 1699px) {
  #main-header .container { width: 90%; max-width: 90%; }
  #main-header .logo_container::after { font-size: 13px; white-space: normal; max-width: 140px; line-height: 1.25; } /* Claim zweizeilig */
  #top-menu > li > a, #top-menu > li.menu-item-has-children > a { padding: 0 10px !important; }
}
@media (min-width: 981px) and (max-width: 1279px) {
  #top-menu > li > a, #top-menu > li.menu-item-has-children > a { padding: 0 8px !important; font-size: 13px !important; } /* !important: Divi-Cache-CSS #top-menu li a 16px lädt nach dem Child-CSS */
}
@media (min-width: 981px) and (max-width: 1149px) {
  #main-header .logo_container::after { display: none; } /* Claim aus, sonst kein Platz fürs Menü (Frank 27.10., ggf. neu entscheiden) */
}

/* --- Chart 3: scharfe Kanten, Bilder ohne Rahmen und Schatten --- */
.et_pb_section [class*="inside_divider"] { display: none !important; }
.et_pb_image img, .et_pb_image .et_pb_image_wrap, .et_pb_blog_grid .et_pb_post .entry-featured-image-url img { border: 0 !important; box-shadow: none !important; border-radius: 0 !important; }
.et_pb_row, .et_pb_column, .et_pb_button { border-radius: 0 !important; }

/* --- Chart 4: Footer höher, ohne Gras (Padding im Layout gesetzt, hier gegen alte Cache-Werte festgenagelt); Gras-Kante kam aus dem Customizer-CSS (Post 1018, #footer::after) --- */
#footer::after { display: none !important; content: none !important; }
.et-l--footer .et_pb_section { padding-top: 80px !important; padding-bottom: 70px !important; }

/* --- Chart 8: Quick-Link-Kacheln — Leiste = Button-Modul mit Preset „Button | Block Grau/Hellgrau“, Bild 1:1 = Preset „Bild | Quad Quicklinks“, Spaltenabstand 0 in der Zeile (Frank 06.10.2026). Rest unten nur noch, bis ein Spalten-Preset Padding 0 / Gap 0 übernimmt. --- */
.gcmt-quicklinks .gcmt-kachel { padding: 0 !important; gap: 0 !important; row-gap: 0 !important; cursor: pointer; }
.gcmt-quicklinks .gcmt-kachel .et_pb_image { margin: 0 !important; width: 100%; }
.gcmt-quicklinks .gcmt-kachel .et_pb_image .et_pb_image_wrap, .gcmt-quicklinks .gcmt-kachel .et_pb_image img { display: block; width: 100%; }

/* --- Chart 8/Save the Date: Karten flach, ohne Golfball und grüne Bodenkante --- */
html .pcco-snapshot::after { display: none !important; }
html .pcco-snapshot { border: 1px solid #f2f2f2; border-bottom: 1px solid #f2f2f2; box-shadow: none; transition: none; }
html .pcco-snapshot:hover { box-shadow: none; transform: none; }

/* --- Chart 11–13: News-Karten vereinfachen (Divi-Blog-Modul) --- */
.et_pb_blog_grid .et_pb_post, .et_pb_posts .et_pb_post { border: 0 !important; box-shadow: none !important; background: #ffffff; padding: 0 0 24px !important; }
.et_pb_blog_grid .et_pb_post .post-meta, .et_pb_posts .et_pb_post .post-meta, .et_pb_post .et_pb_post_meta, .et_pb_post .published, .et_pb_post .et-pb-reading-time { display: none !important; }
.et_pb_blog_grid .et_pb_post .entry-title a, .et_pb_posts .et_pb_post .entry-title a { color: #00ba66 !important; text-transform: uppercase; } /* Gewicht 800 aus dem Blog-Preset (01.10.) */
.et_pb_blog_grid .et_pb_post .post-content-inner, .et_pb_blog_grid .et_pb_post .entry-title, .et_pb_blog_grid .et_pb_post .more-link { padding-left: 20px; padding-right: 20px; }
.et_pb_post .more-link { color: #00ba66 !important; font-weight: 400; }
/* Karten auf weißer Fläche bekommen einen grünen Rahmen (Chart 12) */
.gcmt-news-weiss .et_pb_post { border: 1px solid #00ba66 !important; }
/* Zurück-Button im Beitrag (Chart 13) */
/* Seitenleisten in News-Layouts nie anzeigen (Chart 11) */
.et_pb_sidebar, .et_pb_widget_area { display: none !important; }
/* Beitrags-Karussell Startseite: Karten weiß ohne Rahmen/Schatten, Titel grün */
.et_pb_group_carousel .et_pb_group { border: 0 !important; box-shadow: none !important; background: #ffffff; }
.et_pb_group_carousel .et_pb_heading h3, .et_pb_group_carousel .et_pb_heading h2 { color: #00ba66 !important; } /* Gewicht 800 im Heading-Block (01.10.) */

/* --- Mobil: Logo/Claim kleiner --- */
@media (max-width: 980px) {
  #main-header .container, #main-header .et_menu_container { width: 90%; max-width: 90%; } /* Eric/Frank 29.10.: breiter als Divi-Standard 80 % */
  #main-header #logo, .et-fixed-header#main-header #logo { height: 90px !important; margin-top: 4px; }
  #main-header .logo_container::after, .et-fixed-header#main-header .logo_container::after { left: 105px; font-size: 12px; letter-spacing: 0.5px; white-space: normal; max-width: calc(100% - 140px); line-height: 1.2; } /* Laufweite 0,5 statt 1 px: Claim (~181 px) passt neben dem 90-px-Logo ab 360 px einzeilig; max-width = Platz bis Hamburger → darunter zweizeilig statt Überlappung (gemessen 29.10.) */
  #top-menu > li > a { border-left: 0; }
  .et_pb_group_carousel .et_pb_group .et_pb_heading .et_pb_heading_container h3, .et_pb_group_carousel .et_pb_group .et_pb_text_inner, .et_pb_group_carousel .et_pb_group .et_pb_text_inner p { text-align: center !important; } /* News-Karussell mobil mittig (Frank 29.10.); !important wegen der Desktop-Regel „links !important“ (Manual 01.10.) weiter oben */
  .et_pb_group_carousel .et_pb_group_carousel_slide > .et_pb_group { margin-left: auto !important; margin-right: auto !important; } /* Karte (max 300 px) mittig im Slide statt links mit 10 px (Frank 29.10.) */
  #main-header { border-top: 22px solid #00ba66; } /* gruener Balken oben an der Bildschirmkante = Secondary-Nav-Ersatz mobil, Teil des fixierten Headers (Eric/Frank 29.10.) */
  #page-container { padding-top: 77px !important; } /* Divi setzt per JS inline 55 px (Header-Höhe ohne Rahmen) → + 22 px Balken; !important nötig gegen das Inline-Style */
  #main-header #et-top-navigation .mobile_menu_bar { padding: 12px 0; } /* Hamburger (32 px) mittig im 56-px-Header; 2 IDs schlagen Divi-Cache .et_header_style_left #et-top-navigation .mobile_menu_bar { padding-bottom: 24px } (Frank 29.10.) */
}
@media (max-width: 359px) {
  #main-header .logo_container::after, .et-fixed-header#main-header .logo_container::after { max-width: calc(100% - 155px); } /* sehr schmale Geräte: Claim zweizeilig mit Luft zum Hamburger (29.10.) */
}

/* --- Nachtrag 26.09. abends: Save-the-Date-Daten grün, Karussell-Karten linksbündig, Hero-Titelbild begrenzt --- */
html .pcco-snapshot .pcco-day, html .pcco-snapshot .pcco-month { color: #00ba66 !important; }
/* Save the Date nach Manual 29.09.: Tag/Monat Light, Jahr Medium grün, Titel Bold (01.10.) — sichtbare Karte = .pcco-snapshot-default, Hover-Zustand = -appear */
html .pcco-snapshot .pcco-day, html .pcco-snapshot .pcco-month { font-weight: 300 !important; }
html .pcco-snapshot .pcco-year { font-weight: 600 !important; color: #00ba66 !important; }
html .pcco-snapshot .pcco-snapshot-default-name, html .pcco-snapshot .pcco-snapshot-appear-name { font-weight: 700 !important; }
.et_pb_group_carousel .et_pb_group .et_pb_heading, .et_pb_group_carousel .et_pb_group .et_pb_text { text-align: left !important; padding-left: 20px; padding-right: 20px; }
.et_pb_group_carousel .et_pb_group .et_pb_heading h3, .et_pb_group_carousel .et_pb_group .et_pb_heading h2 { text-align: left !important; } /* 18 px + Versalien im Heading-Block (01.10.) */
.gcmt-hero--start .et_pb_image_0 img { max-height: 380px; width: auto; } /* Titelbild Herzlich Willkommen */

/* --- Chart 1/Design S. 1: Quick-Link-Buttons im Hero (rechts unten, gleiche Breite wie das AKTUELL-Feld des Laufbands); Icons folgen von Eric --- */
.gcmt-hero--start .gcmt-hero__links { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; row-gap: 10px; padding-bottom: 0 !important; }
.gcmt-hero--start .gcmt-hero__links > .et_pb_module { margin: 0 !important; width: 340px; max-width: 100%; }
/* 20.10.2026: Icon-Buttons laufen jetzt über Presets „Button | Icon“ + „Bild | im Button“ (Bild-Modul im Button, Icons aus der Mediathek) — Quicklink-Klassen/CSS-Masken entfernt. */
@media (max-width: 980px) { .gcmt-hero--start .gcmt-hero__links { align-items: flex-start; margin-top: 20px; } }

/* --- Chart 10: keine Linien (Trennlinien-Modul unter Überschriften aus, Footer-Linien bleiben) --- */
.et-l--post .et_pb_divider, .et-l--body .et_pb_divider { display: none !important; }
/* 15.10.2026 (Frank): globale Regel „alle Überschriften mittig !important“ ENTFERNT — sie überschrieb die Ausrichtung im Modul/Preset (Team-Seite: Gruppe mit Heading links ging nicht). Mittig gehört ins Heading-Preset. */
.et-l--post .et_pb_heading .et_pb_heading_container, .et-l--body .et_pb_heading .et_pb_heading_container { width: 100%; }
/* News-Karten: Bild bündig in der Karte — der Versatz kommt vom Divi-Wrapper .et_pb_image_container (margin -20px) */
#et-boc .et-l .et_pb_post .et_pb_image_container { margin: 0 0 20px !important; padding: 0 !important; width: 100% !important; }
/* News-Karten: Bild bündig in der Karte (Fullwidth-Layout zieht es sonst 20 px nach links), Titel kompakter */
#et-boc .et-l .et_pb_posts .et_pb_post .entry-featured-image-url, #et-boc .et-l .et_pb_blog_grid .et_pb_post .entry-featured-image-url { margin: 0 0 20px !important; padding: 0 !important; position: static !important; transform: none !important; width: 100% !important; max-width: 100% !important; display: block; }
#et-boc .et-l .et_pb_posts .et_pb_post .entry-featured-image-url img, #et-boc .et-l .et_pb_blog_grid .et_pb_post .entry-featured-image-url img { width: 100% !important; max-width: 100% !important; margin: 0 !important; position: static !important; display: block; }

.et_pb_blog_grid .et_pb_post .entry-title, .et_pb_posts .et_pb_post .entry-title { font-size: 18px !important; line-height: 1.3em !important; }

/* --- Mobil: Überschriften begrenzen (Intro 44 px bricht sonst dreizeilig) --- */
@media (max-width: 767px) { .et-l--post .et_pb_heading .et_pb_module_header, .et-l--body .et_pb_heading .et_pb_module_header { font-size: clamp(24px, 7.5vw, 32px) !important; line-height: 1.2em !important; } }
/* Frank 02.11.2026: Namen in den Personen-Boxen (Überschrift-Preset ss3316n9ob) fielen ohne Foto unter die Regel oben → 27–29 px. Am Handy wie die Boxen mit Foto: 16 px. Gleiche Spezifität, steht danach → gewinnt. */
@media (max-width: 767px) { .et-l--post .preset--module--divi-heading--ss3316n9ob .et_pb_module_header, .et-l--body .preset--module--divi-heading--ss3316n9ob .et_pb_module_header { font-size: 16px !important; line-height: 1.3em !important; } }
@media (max-width: 767px) { .et_pb_group_carousel .et_pb_group .et_pb_heading .et_pb_module_header { font-size: 18px !important; } }

/* --- Mobil: Hero-Schreibschrift kleiner (72–138 px brechen sonst mitten im Wort), Karussell-Pfeil nicht über den Rand --- */
@media (max-width: 767px) {
  .gcmt-hero .et_pb_text .et_pb_text_inner p { font-size: 44px !important; line-height: 1.1em !important; } /* 27.10.: nur noch Startseiten-Hero; Header-Komponente regelt Tablet 72 / Handy 32 px selbst, kein Wortbruch mehr (overflow-wrap: anywhere raus) */
}
@media (max-width: 980px) {
  .et_pb_section:has(.et_pb_group_carousel) { overflow-x: clip; }
  .et_pb_group_carousel .et_pb_group_carousel_arrow_next { right: 0 !important; transform: translateY(-50%) !important; }
  .et_pb_group_carousel .et_pb_group_carousel_arrow_prev { left: 0 !important; transform: translateY(-50%) !important; }
}

/* --- 01.10.2026 Phase 2 Unterseiten nach Design-PDF 04 (Gruppen, Greenfee, Mitgliedschaft, Vorstand). Klassen kommen aus dem Script 2026-10-01_phase2-unterseiten.php. Merker: Bildverhältnisse später als Bild-Presets (Frank-Regel Presets vor CSS). --- */
/* Icon-Buttons außerhalb des Hero: Inline statt Blockbreite */
/* Preistabellen (PDF S. 4): grüner Tabellenkopf, weiße Zeilen, feine Linien */
.gcmt-preistabelle table { width: 100%; border-collapse: collapse; background: #ffffff; margin: 0; border: 0; }
.gcmt-preistabelle caption { caption-side: top; background: #00ba66; color: #ffffff; font-weight: 700; font-size: 13px; letter-spacing: 1px; text-transform: uppercase; text-align: left; padding: 11px 16px; }
.gcmt-preistabelle td { padding: 12px 16px; border: 0; border-bottom: 1px solid #f2f2f2; font-size: 14px; line-height: 1.5; vertical-align: top; }
.gcmt-preistabelle td:first-child { font-weight: 700; width: 55%; }
.gcmt-preistabelle tr:last-child td { border-bottom: 0; }
.gcmt-koop .gcmt-preistabelle { max-width: 1120px; margin: 0 auto; }
/* Bilder im 2-Spalter: 4:3, Ausschnitt */
.gcmt-bild43 img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
/* Vollbreites Bildband vor dem Footer */
.gcmt-bildband-sektion .et_pb_row { width: 100% !important; max-width: 100% !important; padding: 0 !important; }
.gcmt-bildband .et_pb_image_wrap, .gcmt-bildband img { width: 100%; display: block; }
.gcmt-bildband img { aspect-ratio: 16 / 6; object-fit: cover; }
/* Grüner CTA-Balken, ganze Spalte verlinkt */
.gcmt-cta .et_pb_column { cursor: pointer; }
.gcmt-cta .gcmt-cta-balken { margin: 0 !important; }
.gcmt-cta .gcmt-cta-balken h2 { color: #ffffff !important; font-size: 18px !important; font-weight: 700 !important; text-transform: uppercase; letter-spacing: 1px; margin: 0; }
/* Nummer über den Modell-Überschriften (Mitgliedschaft): Text-Modul mit Preset „Text | Zahl“ + Klasse gcmt-nummer; Linie hängt am Modul, nicht an h3/p (16.10.) */
.gcmt-nummer::after { content: ""; display: block; width: 44px; height: 2px; background: #00ba66; margin: 8px auto 0; }
/* Linie dichter an die Zahl, dafür mehr Luft zur Überschrift (Frank 30.10.): Divi-5-Flex-Lücke (30 px) im Modul aus, Abstand zur Überschrift 45/35 */
#et-boc .et-l .gcmt-nummer { row-gap: 0 !important; margin-bottom: 40px !important; }
@media (max-width: 767px) { #et-boc .et-l .gcmt-nummer { margin-bottom: 30px !important; } }
.gcmt-preis-text p { color: #00ba66; font-size: 24px; font-weight: 700; margin-top: 20px; }
.gcmt-intro-mitte .et_pb_text { text-align: center; }
/* Team-Karten (PDF S. 9): weiße Karte, Name grün fett Versalien */
.gcmt-team .et_pb_team_member { background: #ffffff !important; padding: 0 0 20px !important; }
.gcmt-team .et_pb_team_member .et_pb_team_member_image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.gcmt-team .et_pb_team_member h4, .gcmt-team .et_pb_team_member .et_pb_module_header { color: #00ba66 !important; font-weight: 700; text-transform: uppercase; font-size: 15px !important; letter-spacing: .5px; margin: 16px 16px 4px; }
.gcmt-team .et_pb_team_member .et_pb_member_position { margin: 0 16px; font-size: 14px; }

/* --- 05.10.2026 Hero-Slider (Frank-Notizen Eric-Call): Divi-Slider-Modul .gcmt-hero__slider liegt als Hintergrundebene über der ganzen Startsektion, Schriftzug + Buttons (Zeile) darüber. Bilder/Tempo pflegt der Club im Slider-Modul; Wechsel 3 s, Überblenden = Divi-Standard, Pfeile/Punkte im Modul aus. --- */
.gcmt-hero--start { position: relative; overflow: hidden; }
#et-boc .et-l .gcmt-hero--start .gcmt-hero__slider { position: absolute !important; top: 0; right: 0; bottom: 0; left: 0; width: 100% !important; max-width: none !important; height: 100% !important; margin: 0 !important; padding: 0 !important; z-index: 0; }
#et-boc .et-l .gcmt-hero--start .gcmt-hero__slider .et_pb_slides,
#et-boc .et-l .gcmt-hero--start .gcmt-hero__slider .et_pb_slide { height: 100% !important; min-height: 100% !important; padding: 0 !important; }
#et-boc .et-l .gcmt-hero--start .gcmt-hero__slider .et_pb_slide { background-size: cover !important; background-position: center !important; }
#et-boc .et-l .gcmt-hero--start .gcmt-hero__slider .et_pb_slide .et_pb_container,
#et-boc .et-l .gcmt-hero--start .gcmt-hero__slider .et_pb_slide_description,
#et-boc .et-l .gcmt-hero--start .gcmt-hero__slider .et-pb-arrow-prev,
#et-boc .et-l .gcmt-hero--start .gcmt-hero__slider .et-pb-arrow-next,
#et-boc .et-l .gcmt-hero--start .gcmt-hero__slider .et-pb-controllers { display: none !important; }
#et-boc .et-l .gcmt-hero--start > .et_pb_row { position: relative; z-index: 1; }
@media (prefers-reduced-motion: reduce) { .gcmt-hero--start .gcmt-hero__slider .et_pb_slide { transition: none !important; } }

/* 05.10.2026 Laufband: Lauftext 1 px Buchstabenabstand (Frank-Notiz) */
.cm-laufband .cm-laufband__item { letter-spacing: 1px; }

/* --- Blog-Presets „Blog | Auf Grau“ / „Blog | Auf Weiß“ (Frank 13.10.2026): Divi 5.15.1 druckt pro Modul eine Regel
   .et_pb_blog_N .et_pb_blog_posts{--column-count:2} ohne Media-Query hinter die Preset-Regel (3 Spalten) und gewinnt damit.
   Quelle der 2 nicht auffindbar (Modul hat 3, Preset hat 3, Standard-Preset nichts). Drei Klassen Spezifität + dieselben
   Breakpoints wie im Preset (Desktop 3, bis 980 px 2, bis 767 px 1). Weg, sobald Divi das fixt. --- */
.et_pb_blog.preset--module--divi-blog--76hdcyohdt .et_pb_blog_posts, .et_pb_blog.preset--module--divi-blog--d5zr093hv0 .et_pb_blog_posts { --column-count: 3; }
@media (max-width: 980px) { .et_pb_blog.preset--module--divi-blog--76hdcyohdt .et_pb_blog_posts, .et_pb_blog.preset--module--divi-blog--d5zr093hv0 .et_pb_blog_posts { --column-count: 2; } }
@media (max-width: 767px) { .et_pb_blog.preset--module--divi-blog--76hdcyohdt .et_pb_blog_posts, .et_pb_blog.preset--module--divi-blog--d5zr093hv0 .et_pb_blog_posts { --column-count: 1; } }
/* Innenabstand 20 px links/rechts von Titel und Inhalt steht im Preset, „Mehr lesen“ dort 0 (liegt im Inhalt-Container) (Frank 13.10.).
   Divi druckt das Titel-Padding zusätzlich auf den Inline-Link und das Inhalt-Padding zusätzlich auf den Absatz → doppelt.
   Deshalb bekommen Link und Absatz 0 (Absatz: 5 Klassen, Divis Regel hat 4). */
.et_pb_blog.preset--module--divi-blog--76hdcyohdt .et_pb_post .entry-title a, .et_pb_blog.preset--module--divi-blog--d5zr093hv0 .et_pb_post .entry-title a, .et_pb_blog.et_pb_posts.et_pb_module.preset--module--divi-blog--76hdcyohdt .et_pb_post .post-content p, .et_pb_blog.et_pb_posts.et_pb_module.preset--module--divi-blog--d5zr093hv0 .et_pb_post .post-content p { padding-left: 0; padding-right: 0; }

/* --- 15.10.2026 Platz-Infos (Alena/Eric-Mockup 14.10.): 4. Quicklink „Meine Platz-Infos“ öffnet Panel [cm_platzinfos] (Plugin cm-platzampel 2.0) an der Stelle der Buttons. Status/Texte pflegt der Club auf /platzstatus/. --- */
.gcmt-hero--start .gcmt-hero__links { position: relative; }
#et-boc .et-l .gcmt-hero__links .gcmt-hero__platzinfos { margin: 0 !important; width: 100%; max-width: 100%; }
.gcmt-hero__links .cm-platzinfos { position: absolute; right: 0; bottom: 0; width: 420px; max-width: 100%; z-index: 5; --cm-platzinfos-bg: rgba(38, 38, 38, 0.86); --cm-platzinfos-font: Urbanist, Arial, sans-serif; }
.gcmt-hero__links .cm-platzinfos__inner { padding: 24px 28px 20px; }
.gcmt-hero__links .cm-platzinfos__name { font-size: 15px; letter-spacing: 1.5px; }
.gcmt-hero__links .cm-platzinfos__line { font-size: 14px; }
.gcmt-hero__links .cm-platzinfos__close { background: #00ba66; }
.gcmt-hero__links .cm-platzinfos__close:hover { background: #009653; }
/* Panel offen: Buttons ausblenden (Mockup: Panel ersetzt die Button-Spalte), Platz bleibt reserviert */
body.cm-platzinfos-is-open .gcmt-hero--start .gcmt-hero__links > .et_pb_module:not(.gcmt-hero__platzinfos) { visibility: hidden; }
@media (max-width: 980px) {
	.gcmt-hero__links .cm-platzinfos { position: static; width: 100%; margin-top: 10px; }
	body.cm-platzinfos-is-open .gcmt-hero--start .gcmt-hero__links > .et_pb_module:not(.gcmt-hero__platzinfos) { visibility: visible; }
}

/* --- 15.10.2026 Webcam-Seite /platz/webcam/ (statt Impressionen): Bild 1920×1080 von GKMB, Anzeige-Ausschnitt oberer Streifen (Bahn 1 + Himmel), Personen auf der Terrasse bleiben außerhalb des Ausschnitts. Quelle wird alle 5 Min. erneuert (JS). --- */
.gcmt-webcam { position: relative; width: 100%; aspect-ratio: 16 / 4.2; overflow: hidden; background: #e9efe9; }
.gcmt-webcam img { position: absolute; left: 0; top: 0; width: 100%; height: auto; display: block; }
.gcmt-webcam__meta { font-size: 14px; opacity: 0.7; margin-top: 8px; }

/* --- 19.10.2026 Franks Punkte 3 + 4 (Hauptnavi-Dropdowns): Subnavi tiefer + Laufweite 1 px ---
   Gemessen: Menütext endet 15 px über der Unterkante der Kopfleiste (52 px), Dropdown klebte direkt am Text (top 22 px).
   Jetzt: Dropdown beginnt an der Unterkante der Kopfleiste (22 + 15 = 37 px), grüne Oberkante liegt auf der Leistenkante.
   ::before = unsichtbare Hover-Brücke über die 15 px Lücke, sonst klappt das Menü beim Runterfahren zu. Gilt auch für den fixierten Header (gleiche Maße). */
#top-menu > li > ul.sub-menu { top: 37px; }
#top-menu > li > ul.sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -18px; height: 18px; }
#top-menu li li a { letter-spacing: 1px; }

/* --- 19.10.2026 Franks Punkt 2 (Abstand Überschriften = ehrliche Zahlen): Divi gibt dem H-Tag im Überschrift-Modul 10 px padding-bottom mit,
   die in keinem Preset sichtbar sind. Auf 0, damit „Rand unten“ im Preset bzw. die Variable „Abstand Sektion“ allein den Abstand bestimmen.
   Ausnahme: Preset „H3 | Standard innen“ (ss3316n9ob, Personen-Gruppen) ist mit Rand unten −5 px auf diese 10 px abgestimmt → bleibt. */
.et_pb_heading:not(.preset--module--divi-heading--ss3316n9ob) .et_pb_module_header { padding-bottom: 0; }

/* --- 22.10.2026 Table Captions (Eric via Frank): 17 px statt geerbter 16 px, Laufweite 1 px ausdrücklich. Grundregel (Farbe, Padding) steht im Customizer-CSS (Post 1018).
   Preistabellen Greenfee (.gcmt-preistabelle, 13 px Versalien nach PDF) bleiben unberührt. --- */
.et_pb_text:not(.gcmt-preistabelle) table caption { font-size: 17px; letter-spacing: 1px; }

/* --- 22.10.2026 Lange Tabellen kürzen + aufklappen (Alena, Call 22.10.): Script js/gcmt-tabellen-aufklappen.js, nur in Sektionen mit Klasse
   „gcmt-tabellen-aufklappen“ (Clubmeister auf Club › Geschichte). Gekürzt wird erst, wenn das Script die Klasse setzt → ohne JS bleibt alles sichtbar.
   Button-Text dunkelgrün #007a45 statt Hellgrün (Kontrast ≥ 4,5:1 für kleine Schrift). --- */
.gcmt-tabelle-gekuerzt:not(.ist-offen) > tbody > tr:nth-child(n+6) { display: none; }
.gcmt-tabelle-mehr { display: inline-flex; align-items: center; gap: 8px; margin: 10px 0 0; padding: 6px 0; background: none; border: 0; cursor: pointer;
  font-family: Urbanist, Arial, sans-serif; font-weight: 700; font-size: 14px; letter-spacing: 1px; text-transform: uppercase; color: #007a45; }
.gcmt-tabelle-mehr::after { content: ""; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .2s; }
.gcmt-tabelle-mehr[aria-expanded="true"]::after { transform: translateY(2px) rotate(-135deg); }
.gcmt-tabelle-mehr:hover { text-decoration: underline; text-underline-offset: 4px; }
.gcmt-tabelle-mehr:focus-visible { outline: 2px solid #007a45; outline-offset: 3px; }

/* --- 23.10.2026 Mannschaften Damen/Herren (Frank): Reihen Bild|Text (Klasse „gcmt-mannschaft-reihe“ an der Reihe) unter 1500 px gestapelt,
   immer Bild oben, Text unten. Divi bricht erst mobil um und behält dabei die Desktop-Reihenfolge → abwechselnd Bild/Bild und Text/Text.
   Bildspalte = die Spalte ohne Überschrift-Modul. --- */
@media (max-width: 1500px) {
	.et_pb_row.gcmt-mannschaft-reihe { flex-wrap: wrap; }
	.et_pb_row.gcmt-mannschaft-reihe > .et_pb_column { flex: 0 0 100%; width: 100%; max-width: 100%; }
	.et_pb_row.gcmt-mannschaft-reihe > .et_pb_column:not(:has(.et_pb_heading)) { order: -1; }
	/* Gestapelt saß der Button bündig auf der Kastenunterkante → 45 px Luft (Frank). */
	.et_pb_row.gcmt-mannschaft-reihe > .et_pb_column:has(.et_pb_heading) { padding-bottom: 45px; }
}

/* --- 23.10.2026 Tabellen mobil (Alena, Greenfee-Kooperationen): Im Customizer-CSS (≤ 600 px) bekommt die erste Zelle weiße Schrift
   auf Grün, das Grün ist aber nur für gerade Zeilen abgesichert. In ungeraden Zeilen gewinnt die Desktop-Zebraregel
   „tr:nth-child(odd) td { background: #fff }“ → Weiß auf Weiß, jeder zweite Name unsichtbar. Trainingsplan-Tabellen haben eigenes Muster. --- */
@media (max-width: 600px) {
	.et_pb_text table:not(.trainingsplan) tr:nth-child(odd) td:first-child { background-color: var(--gcid-primary-color, #00ba66); }
}
/* Trainingsplan (Jugend › Training): Auch die Customizer-Regel „tr:nth-child(even) td:first-child“ (grün) ist spezifischer als
   die Trainingsplan-Ausnahme (#f7f7f7) → jede zweite Karte hatte die Zeit-Zeile grün, Label „Trainingszeit“ grün auf grün. */
@media (max-width: 600px) {
	.et_pb_text table.trainingsplan tr:nth-child(even) td:first-child { background-color: #f7f7f7; }
}
/* 27.10.2026 (Vorstandsfeedback „mobil“): ≤ 600 px stapelt das Customizer-CSS die Zellen als Karten, die Kopfzeile blieb eine
   dreispaltige Zeile und ragte über den Bildschirm (HGV First Drive, Jugend-Turniere: Querscroll 432 px). Kopfzeile visuell aus,
   für Screenreader vorhanden — wie schon auf Jugend-Training (Seiten-CSS 227484, .trainingsplan). */
@media (max-width: 600px) {
	.et_pb_text table thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
}
/* 28.10.2026 (Alena 27.10., Mitgliedschaft mobil): Button-Preset „Button | Icon“ hat auf dem Handy jetzt Spaltenbreite (Preset,
   minWidth 100 %). Ein langes Wort wie „Schnuppermitgliedschaft“ ist aber allein breiter als die Spalte → Button ragte raus,
   bei 360 px Querscroll. Auf Handy/Tablet Buttons nie breiter als die Spalte, lange Wörter mit deutscher Silbentrennung. */
@media (max-width: 767px) {
	/* !important: Divis Grund-CSS setzt Buttons ohne eigene Breite auf max-width: max-content (stärkerer Selektor). */
	.et_pb_button { max-width: 100% !important; -webkit-hyphens: auto; hyphens: auto; overflow-wrap: break-word; }
}

/* 28.10.2026 Mobilmenü (Alena 27.10., Vorbild Mainzer Golfclub): Kopfleiste ≤ 980 px fixiert, damit das Menü beim Scrollen
   erreichbar bleibt (#page-container hat die 55 px Platz oben schon). Menü scrollt innerhalb des Bildschirms.
   Untermenüs per Pfeil auf-/zuklappbar (js/gcmt-mobilmenue.js setzt .gcmt-mm-zu / .gcmt-mm-offen + Button). */
@media (max-width: 980px) {
	#main-header { position: fixed !important; top: 0; left: 0; right: 0; z-index: 99990; }
	#main-header .et_mobile_menu { max-height: calc(100vh - 78px); max-height: calc(100dvh - 78px); overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }
	#mobile_menu li.menu-item-has-children { position: relative; }
	#mobile_menu li.menu-item-has-children > a { padding-right: 56px; }
	#mobile_menu li.gcmt-mm-zu > .sub-menu { display: none !important; }
	#mobile_menu .gcmt-mm-toggle { position: absolute; top: 0; right: 0; width: 48px; height: 44px; margin: 0; padding: 0; border: 0; background: transparent; cursor: pointer; }
	#mobile_menu .gcmt-mm-toggle::after { content: ""; position: absolute; top: 50%; left: 50%; width: 9px; height: 9px; margin: -7px 0 0 -5px;
		border-right: 2px solid var(--gcid-primary-color, #00ba66); border-bottom: 2px solid var(--gcid-primary-color, #00ba66); transform: rotate(45deg); transition: transform .2s ease; }
	#mobile_menu li.gcmt-mm-offen > .gcmt-mm-toggle::after { margin-top: -2px; transform: rotate(-135deg); }
	#mobile_menu .gcmt-mm-toggle:focus-visible { outline: 2px solid var(--gcid-primary-color, #00ba66); outline-offset: -4px; }
}
/* Angemeldet: WordPress-Adminleiste (782 px und breiter fest 32 px, 601–782 fest 46 px, darunter scrollt sie mit) */
@media (min-width: 783px) and (max-width: 980px) { body.admin-bar #main-header { top: 32px; } }
@media (min-width: 601px) and (max-width: 782px) { body.admin-bar #main-header { top: 46px; } }

/* 30.10.2026 Startseiten-Hero ≤ 860 px neu angeordnet (Frank-Entwurf Startheader-mobil.jpg, Eric-Call 29.10.):
   Slider nur noch als Bildfläche oben (Höhe --gcmt-hero-bild-h), „Herzlich Willkommen“ mittig darauf,
   die 5 Quick-Link-Buttons darunter auf Weiß (Spalte max. 320 px, Buttons volle Spaltenbreite), danach das Laufband.
   Ab 861 px unverändert (Slider über die ganze Sektion, Buttons rechts): die Hero-Spalten stapeln nur bis phoneWide (860 px),
   Tablet 861–980 hat zwei Spalten nebeneinander. */
@media (max-width: 860px) {
	/* !important: Divi druckt min-height 560 + padding 60/40 der Sektion als Modul-CSS */
	/* Weißraum um die Buttons max. 25 px oben/unten (Eric 30.10.) */
	.gcmt-hero--start { --gcmt-hero-bild-h: clamp(260px, 70vw, 460px); min-height: 0 !important; padding-top: 0 !important; padding-bottom: 25px !important; background-color: #fff; }
	#et-boc .et-l .gcmt-hero--start .gcmt-hero__slider { bottom: auto !important; height: var(--gcmt-hero-bild-h) !important; }
	/* Schriftzug-Spalte genau so hoch wie die Bildfläche, Schriftzug rechts unten (Frank 30.10.; rechter Rand = Zeilenrand 5 %, unten 20 px) */
	.gcmt-hero--start > .et_pb_row > .et_pb_column:first-child { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; box-sizing: border-box; height: var(--gcmt-hero-bild-h); padding-bottom: 20px; }
	/* align-self !important: Bildmodul hat für phone „Ausrichtung mittig“ (alignSelf center) als Modul-CSS */
	.gcmt-hero--start > .et_pb_row > .et_pb_column:first-child .et_pb_image { width: clamp(200px, 55vw, 380px); max-width: 100% !important; margin: 0 !important; padding: 0 !important; align-self: flex-end !important; }
	.gcmt-hero--start > .et_pb_row > .et_pb_column:first-child .et_pb_image img { width: 100%; height: auto; max-height: none; }
	/* Zeile 90 % wie der Mobil-Header (bei 80 % brechen „Zum Turnier anmelden“/„Infos Mitgliedschaft“ unter 390 px zweizeilig) */
	/* row-gap 0: im Modul nur für phone gesetzt, phoneWide (768–860) hatte sonst 40 px Lücke zwischen Bild und Buttons */
	.gcmt-hero--start > .et_pb_row { width: 90% !important; row-gap: 0 !important; }
	/* 4 Klassen: Divis .et_pb_row .et_pb_column:last-child { margin-right: 0 !important } schiebt die Spalte sonst nach rechts */
	.gcmt-hero--start > .et_pb_row > .et_pb_column.gcmt-hero__links { align-items: stretch; width: 100%; max-width: 320px; margin: 25px auto 0 !important; }
	/* Platz-Infos-Modul (zu = leer) hängt hinter dem letzten Button + 10 px Spalten-Gap → Gap aufheben, sonst 36 statt 25 px unten.
	   Offenes Panel bringt seine 10 px Abstand selbst mit (margin-top oben). */
	#et-boc .et-l .gcmt-hero--start .gcmt-hero__links .gcmt-hero__platzinfos { margin-top: -10px !important; }
	.gcmt-hero--start .gcmt-hero__links > .et_pb_module { width: 100%; }
}

/* 30.10.2026 Turnierkarten Handy (Eric: „viel kompakter, 2 Boxen nebeneinander“), Startseite „Aktuelle Turniere“ + überall wo [pcco snapshot] steht.
   ≤ 600 px: 2 Karten pro Reihe (Flex-Basis oben im PC-CADDIE-Block), Zeile der Startseiten-Sektion 90 % wie Hero/Header,
   Abstände 10 px, Datum 34 statt 64 px, Titel 15 px, Startinfo 13 px, Button kleiner und immer unten bündig.
   Anmeldung ab/bis auf dem Handy aus (steht auf der Turnierseite hinter „Turnierlink“) — sonst bricht jede Zeile 2× um. */
@media (max-width: 600px) {
	.gcmt-savethedate > .et_pb_row { width: 90% !important; }
	html .pcco-snapshot-container { gap: 10px; row-gap: 10px; margin: 0 0 10px; }
	html .pcco-snapshot-container:last-child { margin-bottom: 0; }
	html .pcco-snapshot .pcco-snapshot-default { min-height: 0; padding: 14px 10px; }
	html .pcco-snapshot .pcco-snapshot-default-date .pcco-day,
	html .pcco-snapshot .pcco-snapshot-default-date .pcco-month { font-size: 34px; }
	html .pcco-snapshot .pcco-snapshot-default-date .pcco-year { font-size: 12px; margin-top: 4px; }
	html .pcco-snapshot .pcco-snapshot-default-name { font-size: 15px; line-height: 1.25; }
	html .pcco-snapshot .pcco-snapshot-appear { justify-content: flex-start; gap: 2px; padding: 12px 10px 12px; -webkit-hyphens: auto; hyphens: auto; overflow-wrap: break-word; }
	html .pcco-snapshot .pcco-snapshot-appear-date { margin: 0 0 6px; }
	html .pcco-snapshot .pcco-snapshot-appear-date .pcco-day,
	html .pcco-snapshot .pcco-snapshot-appear-date .pcco-month { font-size: 34px; letter-spacing: -.3px; }
	html .pcco-snapshot .pcco-snapshot-appear-date .pcco-year { font-size: 11px; margin-left: 4px; }
	html .pcco-snapshot .pcco-snapshot-appear-name { font-size: 15px; line-height: 1.25; margin-bottom: 2px !important; }
	html .pcco-snapshot .pcco-snapshot-appear-info { font-size: 13px; line-height: 1.3; }
	html .pcco-snapshot .pcco-snapshot-appear-entrystart,
	html .pcco-snapshot .pcco-snapshot-appear-entryend { display: none; }
	html .pcco-snapshot .pcco-snapshot-appear-start,
	html .pcco-snapshot .pcco-snapshot-appear-end { font-size: 12px; }
	html .pcco-snapshot .pcco-snapshot-appear-link a { padding: 5px 10px; font-size: 13px; }
}
/* 30.10.2026 (Frank): „Turnierlink“-Button grundsätzlich an der Kartenunterkante, alle Breiten.
   Touch: Karte = Flex-Spalte, Info-Ebene füllt die (reihenweise gleiche) Kartenhöhe, Inhalt oben.
   Desktop-Hover-Ebene (absolut, inset 0): Titel margin-top auto → Textblock bleibt mittig zwischen Oberkante und Button. */
html .pcco-snapshot .pcco-snapshot-appear-link { margin-top: auto !important; padding-top: 8px; }
@media (hover: none) {
	html .pcco-snapshot { display: flex; flex-direction: column; }
	html .pcco-snapshot .pcco-snapshot-appear { flex: 1 1 auto; justify-content: flex-start; }
}
@media (hover: hover) {
	html .pcco-snapshot .pcco-snapshot-appear-name { margin-top: auto; }
}

/* 30.10.2026 Abstand unter Überschriften einheitlich: Desktop 50 px, Handy 25 px (Frank, Analyse job_2026-10-30_abstand-erste-headline-analyse.md).
   Zwei Bauweisen auf der Stage: (A) Überschrift allein in der ersten Zeile einer Sektion, Inhalt in der nächsten Zeile
   → Sektions-Zeilenabstand 50 + Heading-Abstand (Handy 25, teils Desktop 45) = 50/75 bzw. 95/70; (B) Überschrift + Text in einer Zeile = 50/25.
   Regel nur für (A): Heading-Abstand 0, auf dem Handy zieht die Zeile 25 px vom Sektions-Zeilenabstand (50) ab.
   Greift nur bei erster Zeile einer Sektion, die genau eine Spalte mit genau einer Überschrift hat und nicht die letzte Zeile ist; nie im Hero.
   Zweite Variante: Überschrift + (ausgeblendeter) Trenner dahinter (Kursangebote, PGA-Golflehrer). */
.et_pb_section:not(.gcmt-hero) > .et_pb_row:first-child:not(:last-child):has(> .et_pb_column:only-child > .et_pb_heading:only-child) > .et_pb_column > .et_pb_heading,
.et_pb_section:not(.gcmt-hero) > .et_pb_row:first-child:not(:last-child):has(> .et_pb_column:only-child > .et_pb_heading:first-child + .et_pb_divider:last-child) > .et_pb_column > .et_pb_heading { margin-bottom: 0 !important; }
@media (max-width: 767px) {
	.et_pb_section:not(.gcmt-hero) > .et_pb_row:first-child:not(:last-child):has(> .et_pb_column:only-child > .et_pb_heading:only-child),
	.et_pb_section:not(.gcmt-hero) > .et_pb_row:first-child:not(:last-child):has(> .et_pb_column:only-child > .et_pb_heading:first-child + .et_pb_divider:last-child) { margin-bottom: -25px !important; }
}

/* 30.10.2026 Personenbilder (Abnahme-Liste 28.10. Punkt 8, Frank-Go):
   (1) Team & Vorstand 1102, DGL 1119, Jugend-Ansprechpartner 225273, Kursangebote 1126 (Trainerkarten, Frank 30.10.):
       ≤ 860 px (bis phoneWide; dort standen die Karten sonst einzeln 614–688 px breit) Karten 2 nebeneinander.
       Kartenzeile = Zeile mit mind. einer Gruppe mit Bild; Karte = jede Spalte darin mit Bild
       (auch wenn das Bild NEBEN statt in der Gruppe sitzt, z. B. „Unser Management“).
       Kartenzeilen der Sektion lösen sich auf (display: contents), damit alle Karten einer Sektion durchlaufen
       (3er-Zeilen würden sonst je eine Karte allein lassen). Spalten 38 % + 4 % Lücke = 80 % Zeilenbreite.
       Zeilenabstand 30 px; Überschriften-Zeile davor so ausgeglichen, dass die Überschriften-Regel oben gilt (Handy 25, sonst 50).
       Leere Platzhalter-Spalten aus. Nur Handy ≤ 767: Namen 16 px mit Silbentrennung, Texte 14 px.
       E-Mails brechen per js/gcmt-email-umbruch.js nach dem „@“ um.
   (2) PGA-Golflehrer 1191: Handy untereinander (lange Texte/Preislisten), Foto 200 px statt Kartenbreite.
   (3) Alle Breiten, alle fünf Seiten (Frank 30.10.): Karten einer Reihe gleich hoch (Spalte streckt sich, letzte Gruppe füllt). */
:is(body.page-id-1102, body.page-id-1119, body.page-id-225273, body.page-id-1126, body.page-id-1191) #main-content .et_pb_section > .et_pb_row:has(> .et_pb_column > .et_pb_group > .et_pb_image) { align-items: stretch !important; }
:is(body.page-id-1102, body.page-id-1119, body.page-id-225273, body.page-id-1126, body.page-id-1191) #main-content .et_pb_section > .et_pb_row:has(> .et_pb_column > .et_pb_group > .et_pb_image) > .et_pb_column:has(.et_pb_image) { align-self: stretch !important; display: flex !important; flex-direction: column !important; }
:is(body.page-id-1102, body.page-id-1119, body.page-id-225273, body.page-id-1126, body.page-id-1191) #main-content .et_pb_section > .et_pb_row:has(> .et_pb_column > .et_pb_group > .et_pb_image) > .et_pb_column > .et_pb_group:last-child { flex: 1 1 auto !important; }
@media (max-width: 860px) {
	:is(body.page-id-1102, body.page-id-1119, body.page-id-225273, body.page-id-1126) #main-content .et_pb_section:has(> .et_pb_row > .et_pb_column > .et_pb_group > .et_pb_image) { flex-direction: row !important; flex-wrap: wrap !important; justify-content: center; align-items: stretch !important; column-gap: 4%; row-gap: 30px !important; }
	:is(body.page-id-1102, body.page-id-1119, body.page-id-225273, body.page-id-1126) #main-content .et_pb_section:has(> .et_pb_row > .et_pb_column > .et_pb_group > .et_pb_image) > .et_pb_row:first-child:not(:has(.et_pb_image)) { margin-bottom: 20px !important; }
	:is(body.page-id-1102, body.page-id-1119, body.page-id-225273, body.page-id-1126) #main-content .et_pb_section > .et_pb_row:has(> .et_pb_column > .et_pb_group > .et_pb_image) { display: contents !important; }
	:is(body.page-id-1102, body.page-id-1119, body.page-id-225273, body.page-id-1126) #main-content .et_pb_section > .et_pb_row:has(> .et_pb_column > .et_pb_group > .et_pb_image) > .et_pb_column:has(.et_pb_image) { flex: 0 0 38% !important; width: 38% !important; max-width: 38% !important; margin: 0 !important; }
	:is(body.page-id-1102, body.page-id-1119, body.page-id-225273, body.page-id-1126) #main-content .et_pb_section > .et_pb_row:has(> .et_pb_column > .et_pb_group > .et_pb_image) > .et_pb_column:not(:has(.et_pb_module)) { display: none !important; }
	:is(body.page-id-1102, body.page-id-1119, body.page-id-225273, body.page-id-1126) #main-content .et_pb_section > .et_pb_row:has(> .et_pb_column > .et_pb_group > .et_pb_image) > .et_pb_column > :is(.et_pb_group, .et_pb_image) { max-width: 100% !important; width: 100% !important; }
}
@media (max-width: 767px) {
	:is(body.page-id-1102, body.page-id-1119, body.page-id-225273, body.page-id-1126) #main-content .et_pb_section:has(> .et_pb_row > .et_pb_column > .et_pb_group > .et_pb_image) > .et_pb_row:first-child:not(:has(.et_pb_image)) { margin-bottom: -5px !important; }
	:is(body.page-id-1102, body.page-id-1119, body.page-id-225273, body.page-id-1126) #main-content .et_pb_section > .et_pb_row:has(> .et_pb_column > .et_pb_group > .et_pb_image) > .et_pb_column .et_pb_heading :is(h1, h2, h3, h4) { font-size: 16px !important; line-height: 1.25 !important; letter-spacing: .5px !important; -webkit-hyphens: auto; hyphens: auto; overflow-wrap: normal; word-break: normal; }
	:is(body.page-id-1102, body.page-id-1119, body.page-id-225273, body.page-id-1126) #main-content .et_pb_section > .et_pb_row:has(> .et_pb_column > .et_pb_group > .et_pb_image) > .et_pb_column .et_pb_text :is(p, a, div) { font-size: 14px !important; line-height: 1.4 !important; -webkit-hyphens: auto; hyphens: auto; }
	body.page-id-1191 .et_pb_group > .et_pb_image:first-child { width: 200px !important; max-width: 100% !important; margin-left: auto !important; margin-right: auto !important; }
	body.page-id-1191 .et_pb_group > .et_pb_image:first-child img { width: 100%; height: auto; }
}

/* 30.10.2026 Querscroll Handy (Abnahme-Liste 28.10. Punkt 10): Seiten waren bei 320/360 px 3–28 px zu breit.
   (1) Seitentitel im Standard-Template (h1.entry-title, z. B. „SPIELVORGABENTABELLEN“, 30 px Versalien) ist ein einziges langes Wort
       ohne Silbentrennung → deutsche Silbentrennung (lang="de"), Umbruch als Rückfall.
   (2) Kopfbild-Schriftzug „für …“ (globales Layout „Header - Komponente“ 227524, Good Karma 50 px auf dem Handy, gedreht, rechts −15 px)
       ist bei langen Texten („für Herausforderungen“) zu breit → Handy mit der Bildschirmbreite skalieren, höchstens 50 px wie bisher.
       Erkennung: Textmodul direkt hinter dem „Dein Platz“-Bild (deinplatz*.png). */
h1.entry-title.main_title { -webkit-hyphens: auto; hyphens: auto; overflow-wrap: break-word; }
/* Handy: lange Ein-Wort-Titel passen in eine Zeile (Not-Umbruch ohne Trennstrich sieht schlecht aus, nicht jedes Gerät hat ein Trennwörterbuch) */
@media (max-width: 767px) { h1.entry-title.main_title { font-size: clamp(20px, 6.6vw, 30px) !important; } }
@media (max-width: 767px) {
	/* Eric 02.11.2026 Folie 11: Herztext im selben Verhältnis zum „Dein Platz“-Bild wie am Desktop (108/430 ≈ 0,25 → 65 px bei 260 px Bild); zu lange Wörter passt MU cm-gcmt-texte (herztext-fit.js) an */
	.et_pb_image:has(img[src*="/deinplatz"]) + .et_pb_text p { font-size: min(16.67vw, 65px) !important; line-height: 1 !important; }
}
/* (3) Gravity-Forms-Beschriftungen (Angebote für Gruppen: „Bierzeltgarnituren/Stehtische/Pavillons?“ ist ohne Leerzeichen ein Wort,
       am Schrägstrich bricht der Browser nicht um → bei 320 px 3 px zu breit): Silbentrennung + Umbruch als Rückfall. */
.gform_wrapper :is(.gfield_label, .gform-field-label, .gfield_description) { -webkit-hyphens: auto; hyphens: auto; overflow-wrap: anywhere; }

/* --- Erics Korrekturen mobil 02.11.2026 (Korrekturen_Mobile_Version.pptx) --- */
@media (max-width: 980px) {
  /* Folie 1/2: Logo kleiner, Claim mit Abstand „XX“ daneben, auf Linie mit dem Hamburger */
  #main-header #logo, .et-fixed-header#main-header #logo { height: 70px !important; margin-top: 4px; }
  #main-header .logo_container::after, .et-fixed-header#main-header .logo_container::after { left: 87px; max-width: calc(100% - 122px); }
}
@media (max-width: 767px) {
  /* Folie 3–5: nur echte Header-Komponenten (Herzbild deinplatz.png; Login u. a. haben andere Sektion 0) – Header aller Unterseiten so hoch wie der Startseiten-Hero (Slider 273 px bei 390 px = 70 % der Breite) */
  /* 02.11. Nachtrag: Beiträge (Theme-Builder-Vorlage 597) haben die Header-Sektion als .et_pb_section_0_tb_body */
  body:not(.home) #et-main-area .et_pb_section_0:has(img[src*="deinplatz"]), body:not(.home) #et-main-area .et_pb_section_0_tb_body:has(img[src*="deinplatz"]) { min-height: 70vw !important; height: 70vw !important; max-height: 70vw; overflow: hidden; }
}
@media (max-width: 767px) {
  /* Folie 7: Quick-Link-Kacheln – kleinere Schrift, keine Silbentrennung („STARTZEITE-N“) */
  /* .et_pb_button doppelt: muss die Preset-Regel „body #page-container .et_pb_section .preset--…“ (gleiche Spezifität, lädt später) schlagen */
  body #page-container .gcmt-quicklinks .et_pb_button.et_pb_button { font-size: 13px !important; letter-spacing: 0.5px !important; hyphens: none !important; -webkit-hyphens: none !important; }
  /* Folie 9: Turnier-Karten (aufgeklappte Fassung) mittelachsig */
  html .pcco-snapshot .pcco-snapshot-appear, html .pcco-snapshot .pcco-snapshot-appear p { text-align: center !important; }
  /* Folie 4/6: News-Überschrift so groß wie die Seiten-Überschriften (Meisterschaftsplatz 29,25 px) */
  body.single-post .gcmt-beitrag-titel h1.entry-title { font-size: 29.25px !important; line-height: 1.2 !important; }
}

/* --- Eric 02.11.2026 Folie 4/5: News-Beiträge zeigen am Handy ihr Beitragsbild als Header (ohne Herztext). ---
   Die Bild-URL setzt MU cm-gcmt-texte als Variable --gcmt-news-bild + Body-Klasse gcmt-news-bild (nur Beiträge MIT Beitragsbild).
   Desktop/Tablet: Standard-Header bleibt (viele Beitragsbilder < 1200 px oder Hochformat). */
@media (max-width: 767px) {
  body.gcmt-news-bild #et-main-area .et_pb_section_0_tb_body:has(img[src*="deinplatz"]) { background-image: var(--gcmt-news-bild) !important; background-position: center center !important; background-size: cover !important; }
  body.gcmt-news-bild #et-main-area .et_pb_section_0_tb_body:has(img[src*="deinplatz"]) > .et_pb_row { visibility: hidden; }
}

/* --- Erics Korrekturen mobil Runde 2, 03.11.2026 (Mobile_Korrekturen_02.pptx) --- */
@media (max-width: 860px) {
  /* Folie 1: Header niedriger – Startseiten-Bildfläche 70vw → 58vw (226 statt 273 px bei 390) */
  .gcmt-hero--start { --gcmt-hero-bild-h: clamp(210px, 58vw, 380px); }
}
@media (max-width: 767px) {
  /* Folie 1: Header aller Unterseiten genauso niedrig (überschreibt die 70vw-Regel vom 02.11.) */
  body:not(.home) #et-main-area .et_pb_section_0:has(img[src*="deinplatz"]), body:not(.home) #et-main-area .et_pb_section_0_tb_body:has(img[src*="deinplatz"]) { min-height: 58vw !important; height: 58vw !important; max-height: 58vw; }
  /* Folie 3: Herz („Dein Platz“ + Text) überall gleich groß und unten rechts im Bild, wie „Herzlich Willkommen“ auf der Startseite.
     Die ganze Gruppe wird einheitlich verkleinert (Ursprung unten rechts), damit Bild und Text im Verhältnis bleiben. */
  #et-main-area .et_pb_section:has(img[src*="deinplatz"]) > .et_pb_row:has(img[src*="deinplatz"]) { width: 90% !important; margin-bottom: 10px !important; }
  /* Text rechts nicht über den Zeilenrand (Desktop-Versatz −15 px), damit rechts wie auf der Startseite ~20 px Luft bleiben */
  #et-main-area .et_pb_section:has(img[src*="deinplatz"]) > .et_pb_row > .et_pb_column:has(img[src*="deinplatz"]) > .et_pb_image:has(img[src*="deinplatz"]) + .et_pb_text { margin-right: 0 !important; }
  #et-main-area .et_pb_section:has(img[src*="deinplatz"]) > .et_pb_row > .et_pb_column:has(img[src*="deinplatz"]) { transform: scale(var(--gcmt-herz-scale, .7)); transform-origin: right bottom; }
  /* Folie 2: Webcam – Herztext darf kleiner sein */
  body.page-id-1113 { --gcmt-herz-scale: .55; }
  /* Folie 3: keine Silbentrennung in Überschriften, überall. Zu lange Einzelwörter verkleinert MU cm-gcmt-texte (herztext-fit.js). */
  #et-main-area :is(h1, h2, h3, h4, h5, h6), #et-main-area .et_pb_module_header { -webkit-hyphens: manual !important; hyphens: manual !important; overflow-wrap: normal !important; word-break: normal !important; }
  /* Folie 4: Startseite – weniger Weißraum über und unter „Deine Club-News“ */
  .home .gcmt-quicklinks + .et_pb_section > .et_pb_row:first-child { padding-top: 25px !important; }
  .home .gcmt-quicklinks + .et_pb_section > .et_pb_row:first-child > .et_pb_column > .et_pb_heading:first-child { margin-bottom: 25px !important; }
}
@media (max-width: 600px) {
  /* Folie 5: Turnierkarten wie Erics Vorlage – Datum groß, Jahr darunter, Titel fett, etwas hochformatig (3:4) */
  /* min-height auto: aspect-ratio ist nur Mindesthöhe, Karten mit langem Titel wachsen mit (sonst Button abgeschnitten) */
  html .pcco-snapshot { aspect-ratio: 3 / 4; min-height: auto !important; }
  html .pcco-snapshot .pcco-snapshot-appear { gap: 4px; padding: 16px 10px 14px; }
  html .pcco-snapshot .pcco-snapshot-appear-date { margin: 0 0 8px; line-height: 1; }
  html .pcco-snapshot .pcco-snapshot-appear-date .pcco-day,
  html .pcco-snapshot .pcco-snapshot-appear-date .pcco-month { font-size: 40px; }
  html .pcco-snapshot .pcco-snapshot-appear-date .pcco-year { display: block; margin: 4px 0 0; font-size: 13px; letter-spacing: .5px; }
  html .pcco-snapshot .pcco-snapshot-appear-name { font-size: 16px; line-height: 1.25; color: #000; }
  html .pcco-snapshot .pcco-snapshot-appear-info { font-size: 14px; line-height: 1.35; }
}

/* Eric 03.11.2026 11:11: „Meine Platz-Infos“ öffnet das Ampel-Feld am Handy direkt unter dem Button, die übrigen Buttons rutschen darunter.
   Nur Reihenfolge (order), Inhalt unverändert; geschlossen gleiche Abstände wie vorher (Panel 0 px hoch, margin-top −10 hebt den Gap auf). */
@media (max-width: 860px) {
  .gcmt-hero--start .gcmt-hero__links > .et_pb_module:nth-child(-n+2) { order: 1; }
  .gcmt-hero--start .gcmt-hero__links > .gcmt-hero__platzinfos { order: 2; }
  .gcmt-hero--start .gcmt-hero__links > .et_pb_module:not(.gcmt-hero__platzinfos):nth-child(n+3) { order: 3; }
}

/* ==========================================================================
   Untermenü als Buttons statt ☰ (Handy/Tablet ≤ 980 px) — Frank 04.11.2026
   Gilt für Menü-Module mit der Klasse „gcmt-menu-buttons“ (Divi: Erweitert → CSS-Klasse).
   Aktuell: globales Layout #226485 „Menü Jugend Turniere“ (6 Jugend-Turniere-Unterseiten).
   Desktop bleibt unverändert.
   ========================================================================== */
@media (max-width: 980px) {
	.gcmt-menu-buttons .et_mobile_nav_menu { display: none !important; }
	.gcmt-menu-buttons .et_pb_menu__wrap { justify-content: center !important; }
	.gcmt-menu-buttons .et_pb_menu_inner_container,
	.gcmt-menu-buttons .et_pb_menu__wrap,
	.gcmt-menu-buttons .et_pb_menu__menu,
	.gcmt-menu-buttons .et-menu-nav { display: block !important; width: 100% !important; flex: 1 1 100%; }
	/* gleich breit untereinander (Frank); kompakter: grid-template-columns: 1fr 1fr */
	.gcmt-menu-buttons .et-menu-nav > ul.et-menu {
		display: grid !important; grid-template-columns: 1fr; gap: 8px;
		width: 100%; max-width: 360px; margin: 0 auto !important; padding: 0 !important;
	}
	.gcmt-menu-buttons .et-menu-nav > ul.et-menu > li { display: block !important; width: 100% !important; margin: 0 !important; padding: 0 !important; }
	.gcmt-menu-buttons .et-menu-nav > ul.et-menu > li > a {
		display: block; width: 100%; box-sizing: border-box; padding: 7px 16px !important; border: 2px solid var(--gcid-primary-color, #00ba66);
		background: #fff; color: var(--gcid-primary-color, #00ba66) !important; opacity: 1 !important;
		font-size: 14px; font-weight: 700; line-height: 1.3; text-align: center;
	}
	.gcmt-menu-buttons .et-menu-nav > ul.et-menu > li.current-menu-item > a {
		background: var(--gcid-primary-color, #00ba66); color: #fff !important;
	}
	/* Abstand unter den Buttons = Abstand über den Buttons (Tablet 50, Handy 25):
	   folgt ein Modul in derselben Spalte → Innenabstand + 5 Spaltenabstand;
	   Menü ist letztes Modul der Spalte → 0 + Sektions-Zeilenabstand 50 (Handy − 25 wie Überschriften 30.10.) */
	.gcmt-menu-buttons { padding-bottom: 45px !important; }
	.et_pb_column > .gcmt-menu-buttons:last-child { padding-bottom: 0 !important; }
}
@media (max-width: 767px) {
	.gcmt-menu-buttons { padding-bottom: 20px !important; }
	.et_pb_row:has(> .et_pb_column > .gcmt-menu-buttons:last-child) { margin-bottom: -25px !important; }
}
