/* ESG Elemente – Design-System-Tokens + Komponenten (Quelle: design-system/tokens, Stand 29.09.2026). Schriften lädt das Child-Theme. */
/* --- colors.css --- */
/* ESG Esslingen – Farben (Quelle: styleguide/tokens.css v0.1) */
:root{
--font-display:"Bebas Neue",Impact,sans-serif;--font-body:"Montserrat",system-ui,sans-serif;
/* Markenfarben – bestätigt */
--esg-navy:#0e1f3d;--esg-vereinblau:#0046ad;--esg-mittelblau:#1e62d0;--esg-hellblau:#a3cfff;--esg-eisblau:#e7edf5;--esg-eisgrau:#d9e2ec;--esg-weiss:#ffffff;
/* Sparten-Akzente – VORSCHLAG */
--sparte-eislaufen:#1e62d0;--sparte-eishockey:#0046ad;--sparte-eiskunstlauf:#6b5bd6;--sparte-eisstock:#0f8a8a;
/* Status – VORSCHLAG (Hintergründe aus src/styles/global.css) */
--status-offen:#1a7f4b;--status-offen-dark:#7ee2a8;/* Punkt/Text auf Navy */--status-offen-bg:#e3f4ea;--status-bald:#0046ad;--status-bald-bg:#e8f0fd;--status-geschlossen:#b3261e;--status-geschlossen-bg:#fbe9e7;
--status-bald-dark:#ffd27a;/* Punkt „schließt bald“ / „Hinweis“ auf Navy, 11:1 */--status-hinweis:#7a4f00;--status-hinweis-bg:#fff4d6;
--row-heute:#eaf2ff;--ice-highlight:#f4f7fb;--entwurf-bg:#fff7e0;--entwurf-rand:#c98a00;
/* Semantik */
--color-bg:var(--esg-weiss);--color-bg-alt:var(--esg-eisblau);--color-surface-dark:var(--esg-navy);--color-surface-card:var(--esg-weiss);
--esg-navy-80:#3a4964;/* Sekundärtext, 8.9:1 auf Weiß */
--esg-navy-90:#152a50;/* Hover-Fläche auf Navy */
--color-text:var(--esg-navy);--color-text-muted:var(--esg-navy-80);--color-text-on-dark:var(--esg-weiss);
--color-accent:var(--esg-vereinblau);--color-accent-hover:var(--esg-mittelblau);--color-highlight-on-dark:var(--esg-hellblau);
--color-border:var(--esg-eisgrau);--color-focus:var(--esg-mittelblau);--color-focus-on-dark:var(--esg-hellblau);
--color-disabled-bg:var(--esg-eisgrau);--color-disabled-text:var(--esg-navy-80);--color-error:#b3261e;--color-error-bg:#fbe9e7;--color-success:#1a7f4b;--color-success-bg:#e3f4ea;
--color-link:var(--esg-vereinblau);--color-link-hover:var(--esg-mittelblau);
}

/* --- typography.css --- */
/* ESG – Typo-Skala 2026. Rollen: Display · H2 · H3 · Text · Zahl · Label. Zwei Familien: Bebas Neue, Montserrat. */
:root{
--fs-display:clamp(3rem,1.9rem + 4.7vw,6rem);/* @kind other */ /* 48 → 96 px; „Eiskunstlaufgala“ passt bei 375 px */
--fs-h1:var(--fs-display);/* @kind other */ /* Alias: die eine H1 der Seite nutzt die Display-Rolle */
--fs-h2:clamp(2.25rem,1.8rem + 1.9vw,3.5rem);/* @kind other */ /* 36 → 56 px, Bebas Neue */
--fs-h3:clamp(1.25rem,1.15rem + .45vw,1.5rem);/* @kind other */ /* 20 → 24 px, Montserrat 800 */
--fs-body:clamp(1rem,.96rem + .19vw,1.125rem);/* @kind other */ /* 16 → 18 px, nie kleiner */
--fs-body-lg:clamp(1.125rem,1.05rem + .3vw,1.25rem);/* @kind other */ /* Intro-Absätze */
--fs-number:clamp(2rem,1.6rem + 1.6vw,3rem);/* @kind other */ /* Ergebnis, Preis, Uhrzeit groß */
--fs-number-sm:1.125rem;/* @kind font */
--fs-small:.875rem;/* @kind font */ /* Meta, Fußnoten – kein Fließtext */
--fs-label:.8125rem;/* @kind font */ /* 13 px, 700, Versalien */
--lh-tight:1;/* @kind font */
--lh-display:.95;/* @kind font */
--lh-heading:1.2;/* @kind font */
--lh-body:1.6;/* @kind font */
--fw-body:400;/* @kind font */
--fw-medium:500;/* @kind font */
--fw-bold:700;/* @kind font */
--fw-heavy:800;/* @kind font */
--ls-display:.01em;/* @kind font */
--ls-label:.08em;/* @kind font */
--ls-th:.05em;/* @kind font */
--measure:68ch;/* @kind other */ /* max. Zeilenlänge Fließtext */
--numeric:tabular-nums lining-nums;/* @kind other */
}

/* --- spacing.css --- */
/* 4/8-px-Raster. Abschnittsabstände bewusst in drei Stufen. */
:root{
--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;
--section-s:clamp(2.5rem,2rem + 2vw,3rem);/* @kind spacing */ /* 40–48: eng verwandte Blöcke */
--section-m:clamp(3.5rem,2.5rem + 3.5vw,5rem);/* @kind spacing */ /* 56–80: Standard */
--section-l:clamp(4rem,2.5rem + 6vw,7.5rem);/* @kind spacing */ /* 64–120: Themenwechsel */
--container-max:1440px;--container-text:44rem;--gutter:clamp(1rem,4vw,3rem);/* @kind spacing */
--bp-tablet:768px;--bp-desktop:1025px;--bp-widescreen:1920px;/* @kind other */ /* = Elementor: Mobil max 767, Tablet max 1024, Widescreen min 1920 */
--touch-min:44px;/* @kind spacing */
--statusbar-h:44px;--header-h:76px;--header-h-compact:56px;/* @kind spacing */
/* Formsprache – Empfehlung: kantig. Umschalten per data-form="weich" auf einem Vorfahren. */
--radius-control:2px;--radius-card:4px;--radius-chip:2px;/* @kind radius */
--radius-sm:4px;--radius-md:var(--radius-card);--radius-lg:var(--radius-card);--radius-pill:999px;
}
[data-form="weich"]{--radius-control:999px;--radius-card:16px;--radius-chip:999px;--card-border-color:transparent;--card-shadow:0 2px 8px rgb(14 31 61 / .08);--card-shadow-hover:0 6px 12px rgb(14 31 61 / .12)}

/* --- effects.css --- */
:root{
--card-border-color:var(--esg-eisgrau);--card-border-hover:var(--esg-vereinblau);/* @kind color */
--card-shadow:none;--card-shadow-hover:none;
--shadow-card:0 2px 8px rgb(14 31 61 / .08);
--shadow-raised:0 6px 12px rgb(14 31 61 / .12);
--gradient-hero:linear-gradient(180deg,rgb(14 31 61 / 0) 30%,rgb(14 31 61 / .9) 100%);/* @kind color */
--gradient-scrim:linear-gradient(90deg,rgb(14 31 61 / .85) 0%,rgb(14 31 61 / .35) 60%,rgb(14 31 61 / .1) 100%);/* @kind color */
--gradient-brand:linear-gradient(135deg,var(--esg-navy) 0%,var(--esg-vereinblau) 60%,var(--esg-mittelblau) 100%);
/* Fokus: 3 px, 2 px Abstand. Mittelblau auf hell (5,6:1), Hellblau auf Navy (9,8:1). */
--focus-width:3px;/* @kind other */
--focus-offset:2px;/* @kind other */
/* Bewegung: kurz, weich auslaufend (ease-out-quart), kein Bounce */
--ease-out:cubic-bezier(.25,1,.5,1);/* @kind other */
--dur-1:120ms;/* @kind other */
--dur-2:200ms;/* @kind other */
--dur-3:320ms;/* @kind other */
--transition:var(--dur-2) var(--ease-out);/* @kind other */
--lift:-2px;/* @kind other */ /* Hover-Anheben verlinkter Karten */
--press:1px;/* @kind other */
/* Ebenen */
--z-dropdown:10;/* @kind other */
--z-sticky:20;/* @kind other */
--z-quickbar:30;/* @kind other */
--z-overlay:40;/* @kind other */
--z-modal:50;/* @kind other */
--z-toast:60;/* @kind other */
}
@media (prefers-reduced-motion:reduce){:root{--dur-1:1ms;/* @kind other */--dur-2:1ms;/* @kind other */--dur-3:1ms;/* @kind other */--lift:0px;/* @kind other */--press:0px;/* @kind other */}}

/* --- components.css --- */
/* ESG – Komponenten-Klassen. Zustände (hover/focus/active/disabled) leben hier, nicht in JS. */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--focus-offset)}
[data-surface="dark"]{--color-focus:var(--color-focus-on-dark)}
.esg-num{font-variant-numeric:var(--numeric)}
.esg-label{font:700 var(--fs-label)/1.2 var(--font-body);text-transform:uppercase;letter-spacing:var(--ls-label)}
.esg-display{font:400 var(--fs-display)/var(--lh-display) var(--font-display);letter-spacing:var(--ls-display);margin:0;text-wrap:balance}
.esg-h2{font:400 var(--fs-h2)/1 var(--font-display);letter-spacing:var(--ls-display);margin:0;text-wrap:balance}
.esg-h3{font:800 var(--fs-h3)/var(--lh-heading) var(--font-body);margin:0;text-wrap:balance}
.esg-text{font:400 var(--fs-body)/var(--lh-body) var(--font-body);max-width:var(--measure);margin:0;text-wrap:pretty}
.esg-muted{color:var(--color-text-muted)}
[data-surface="dark"] .esg-muted{color:#c9d6e8}
.esg-link{color:var(--color-link);font-weight:700;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;transition:color var(--transition),text-decoration-thickness var(--transition)}
.esg-link:hover{color:var(--color-link-hover);text-decoration-thickness:2px}
[data-surface="dark"] .esg-link{color:var(--esg-weiss)}
[data-surface="dark"] .esg-link:hover{color:var(--esg-hellblau)}
/* Button */
.esg-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:0 1.25rem;border:2px solid transparent;border-radius:var(--radius-control);font:700 1rem/1.2 var(--font-body);text-decoration:none;cursor:pointer;white-space:nowrap;transition:background-color var(--transition),color var(--transition),border-color var(--transition),translate var(--dur-1) var(--ease-out);-webkit-tap-highlight-color:transparent}
.esg-btn:active{translate:0 var(--press)}
.esg-btn--primary{background:var(--esg-vereinblau);color:var(--esg-weiss)}
.esg-btn--primary:hover{background:var(--esg-mittelblau)}
.esg-btn--primary:active{background:var(--esg-navy)}
.esg-btn--secondary{background:transparent;color:var(--esg-vereinblau);border-color:var(--esg-vereinblau)}
.esg-btn--secondary:hover{background:var(--esg-eisblau)}
.esg-btn--secondary:active{background:var(--esg-eisgrau)}
.esg-btn--light{background:var(--esg-weiss);color:var(--esg-navy)}
.esg-btn--light:hover{background:var(--esg-eisblau)}
.esg-btn--light:active{background:var(--esg-eisgrau)}
.esg-btn--outline-light{background:transparent;color:var(--esg-weiss);border-color:var(--esg-weiss)}
.esg-btn--outline-light:hover{background:rgb(255 255 255 / .12)}
.esg-btn--outline-light:active{background:rgb(255 255 255 / .22)}
.esg-btn--sm{min-height:44px;padding:0 1rem;font-size:.875rem}
.esg-btn--lg{min-height:56px;padding:0 1.75rem;font-size:1.125rem}
.esg-btn--block{display:flex;width:100%}
.esg-btn:disabled,.esg-btn[aria-disabled="true"]{background:var(--color-disabled-bg);color:var(--color-disabled-text);border-color:transparent;cursor:not-allowed;translate:none}
.esg-btn svg{width:1.125em;height:1.125em;flex:none}
/* Karte */
.esg-card{background:var(--esg-weiss);border:1px solid var(--card-border-color);border-radius:var(--radius-card);box-shadow:var(--card-shadow);color:var(--esg-navy)}
.esg-card--dark{background:var(--esg-navy);border-color:var(--esg-navy);color:var(--esg-weiss)}
.esg-card--ice{background:var(--esg-eisblau);border-color:var(--esg-eisblau)}
.esg-card--link{position:relative;transition:border-color var(--transition),box-shadow var(--transition),translate var(--transition)}
.esg-card--link:hover{border-color:var(--card-border-hover);box-shadow:var(--card-shadow-hover);translate:0 var(--lift)}
[data-form="weich"] .esg-card--link:hover{border-color:transparent}
.esg-stretch::after{content:"";position:absolute;inset:0;z-index:1}
/* Label/Tag */
.esg-tag{display:inline-flex;align-items:center;gap:.375rem;padding:.3125rem .5rem;border-radius:var(--radius-chip);background:var(--esg-eisblau);color:var(--esg-navy);font:700 .75rem/1 var(--font-body);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
.esg-tag--solid{background:var(--esg-navy);color:var(--esg-weiss)}
.esg-tag--blue{background:var(--esg-vereinblau);color:var(--esg-weiss)}
.esg-tag--notice{background:var(--status-bald-dark);color:var(--esg-navy)}
[data-surface="dark"] .esg-tag:not(.esg-tag--notice):not(.esg-tag--blue){background:rgb(255 255 255 / .14);color:var(--esg-weiss)}
/* Status-Punkte: Form + Farbe, nie nur Farbe */
.esg-dot{position:relative;flex:none;width:10px;height:10px;border-radius:50%}
.esg-dot--open{background:var(--status-offen-dark)}
.esg-dot--open::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--status-offen-dark);opacity:0;animation:esg-pulse 2.4s var(--ease-out) infinite}
.esg-dot--closing{background:var(--status-bald-dark);box-shadow:0 0 0 3px rgb(255 210 122 / .3)}
.esg-dot--closed{border:2px solid var(--esg-hellblau)}
.esg-dot--special{width:9px;height:9px;border-radius:1px;rotate:45deg;background:var(--esg-hellblau)}
.esg-dot--light.esg-dot--open,.esg-dot--light.esg-dot--open::after{background:var(--status-offen);border-color:var(--status-offen)}
.esg-dot--light.esg-dot--open::after{background:none}
.esg-dot--light.esg-dot--closing{background:var(--entwurf-rand);box-shadow:0 0 0 3px var(--status-hinweis-bg)}
.esg-dot--light.esg-dot--closed{border-color:var(--esg-navy-80)}
.esg-dot--light.esg-dot--special{background:var(--esg-vereinblau)}
@keyframes esg-pulse{0%{opacity:.8;scale:.6}100%{opacity:0;scale:1.6}}
@media (prefers-reduced-motion:reduce){.esg-dot--open::after{animation:none}}
/* StatusBar */
.esg-statusbar{container-type:inline-size;background:var(--esg-navy);color:var(--esg-weiss);font:500 .875rem/1.3 var(--font-body);font-variant-numeric:var(--numeric)}
.esg-statusbar__in{max-width:var(--container-max);margin:0 auto;padding:0 var(--gutter);display:flex;align-items:center;gap:var(--space-6);min-height:var(--statusbar-h)}
.esg-statusbar a{color:inherit;text-decoration:none}
.esg-statusbar__main{display:flex;align-items:center;gap:.625rem;min-width:0;flex:1 1 auto;min-height:var(--touch-min)}
.esg-statusbar__state{font-weight:800;white-space:nowrap}
.esg-statusbar__detail{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;color:#dfe8f4}
.esg-statusbar__more{flex:none;display:inline-flex;align-items:center;gap:.25rem;font-weight:700;color:var(--esg-hellblau)}
.esg-statusbar__more span{display:none}
.esg-statusbar__main:hover .esg-statusbar__more span{text-decoration:underline;text-underline-offset:.2em}
.esg-statusbar__notice{flex:none;display:flex;align-items:center;gap:.5rem;min-height:var(--touch-min)}
.esg-statusbar__notice-text{display:none}
.esg-statusbar__notice:hover .esg-statusbar__notice-text{text-decoration:underline;text-underline-offset:.2em}
.esg-statusbar__game{display:none;flex:none;align-items:center;gap:.5rem;min-height:var(--touch-min);padding-left:var(--space-6);border-left:1px solid rgb(255 255 255 / .2)}
.esg-statusbar__game b{font-weight:800}
.esg-statusbar__game:hover b{text-decoration:underline;text-underline-offset:.2em}
@container (min-width:768px){.esg-statusbar__more span{display:inline}.esg-statusbar__notice-text{display:inline}}
@container (min-width:1100px){.esg-statusbar__game{display:flex}}
/* Öffnungszeiten */
.esg-hours{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-5)}
.esg-hours__head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap}
.esg-hours__state{display:flex;align-items:center;gap:.5rem;font:700 .9375rem/1.3 var(--font-body)}
.esg-hours__slots{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}
.esg-hours__slot{display:flex;align-items:baseline;flex-wrap:wrap;gap:.25rem .75rem}
.esg-hours__time{font:800 clamp(1.625rem,1.3rem + 1vw,2.25rem)/1.05 var(--font-body);font-variant-numeric:var(--numeric);letter-spacing:-.01em}
.esg-hours__slot.is-past .esg-hours__time{color:var(--esg-navy-80);text-decoration:line-through;text-decoration-thickness:2px}
[data-surface="dark"] .esg-hours__slot.is-past .esg-hours__time{color:#9fb0c8}
.esg-hours__meta{font:600 .875rem/1.3 var(--font-body)}
.esg-hours__price{display:flex;align-items:baseline;gap:.5rem;padding-top:var(--space-4);border-top:1px solid var(--esg-eisgrau)}
[data-surface="dark"] .esg-hours__price{border-color:rgb(255 255 255 / .2)}
.esg-hours__actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}
.esg-week{list-style:none;margin:0;padding:0;font-variant-numeric:var(--numeric)}
.esg-week li{display:grid;grid-template-columns:2.25rem minmax(0,1fr);gap:var(--space-3);padding:.625rem .5rem;border-top:1px solid var(--esg-eisgrau);font-size:1rem;line-height:1.4}
.esg-week li:first-child{border-top:0}
.esg-week li.is-today{background:var(--row-heute);font-weight:700;border-radius:var(--radius-chip)}
.esg-week li.is-none{color:var(--esg-navy-80)}
.esg-week b{font-weight:800}
/* Tabellen */
.esg-table{width:100%;border-collapse:collapse;font:400 var(--fs-body)/1.45 var(--font-body);font-variant-numeric:var(--numeric);color:var(--esg-navy)}
.esg-table caption{text-align:left;padding-bottom:var(--space-3);font:800 var(--fs-h3)/1.2 var(--font-body);caption-side:top}
.esg-table th,.esg-table td{padding:.75rem .75rem;border-bottom:1px solid var(--esg-eisgrau);text-align:left;vertical-align:top}
.esg-table thead th{font:700 var(--fs-label)/1.2 var(--font-body);text-transform:uppercase;letter-spacing:var(--ls-th);color:var(--esg-navy-80);border-bottom:2px solid var(--esg-navy);padding-top:0}
.esg-table tbody th[scope="row"]{font-weight:700;white-space:nowrap}
.esg-table tbody th[scope="rowgroup"]{font:400 1.5rem/1 var(--font-display);letter-spacing:var(--ls-display);padding-top:var(--space-6);border-bottom:2px solid var(--esg-navy)}
.esg-table tr.is-today>*{background:var(--row-heute)}
.esg-table tr.is-today th[scope="row"]{box-shadow:inset 3px 0 0 var(--esg-vereinblau)}
.esg-table .is-num{text-align:right;white-space:nowrap;font-weight:700}
.esg-table .is-none{color:var(--esg-navy-80)}
.esg-table sup{font-size:.7em;font-weight:700;color:var(--esg-vereinblau);margin-left:.1em}
.esg-footnotes{list-style:none;margin:var(--space-4) 0 0;padding:0;display:grid;gap:.25rem;font:400 var(--fs-small)/1.5 var(--font-body);color:var(--esg-navy-80);max-width:var(--measure)}
.esg-footnotes sup{font-weight:700;color:var(--esg-vereinblau);margin-right:.25rem}
/* Preis */
.esg-price{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);height:100%}
.esg-price ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem;font:400 1rem/1.45 var(--font-body)}
.esg-price li{display:grid;grid-template-columns:.5rem minmax(0,1fr);gap:.625rem}
.esg-price li::before{content:"";width:6px;height:6px;margin-top:.55em;background:var(--esg-vereinblau);border-radius:var(--radius-chip)}
[data-surface="dark"] .esg-price li::before{background:var(--esg-hellblau)}
.esg-price__amount{margin-top:auto;display:flex;align-items:baseline;flex-wrap:wrap;gap:.375rem;padding-top:var(--space-4);border-top:1px solid var(--esg-eisgrau);font-variant-numeric:var(--numeric)}
[data-surface="dark"] .esg-price__amount{border-color:rgb(255 255 255 / .2)}
.esg-price__from{font:700 1rem/1 var(--font-body)}
.esg-price__value{font:800 var(--fs-number)/1 var(--font-body);letter-spacing:-.02em}
.esg-price__value--text{font-size:clamp(1.5rem,1.3rem + .8vw,2rem)}
.esg-price__unit{font:500 .9375rem/1.3 var(--font-body)}
/* Spiel */
.esg-game{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-5)}
.esg-game__top{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .75rem;font:600 .875rem/1.3 var(--font-body)}
.esg-game__body{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:var(--space-4)}
.esg-game__teams{display:grid;gap:.125rem;font:400 clamp(1.75rem,1.4rem + 1.2vw,2.25rem)/1 var(--font-display);letter-spacing:var(--ls-display)}
.esg-game__teams .is-esg{color:var(--esg-vereinblau)}
[data-surface="dark"] .esg-game__teams .is-esg{color:var(--esg-hellblau)}
.esg-game__vs{font:700 .75rem/1.4 var(--font-body);text-transform:uppercase;letter-spacing:.08em;color:var(--esg-navy-80)}
[data-surface="dark"] .esg-game__vs{color:#c9d6e8}
.esg-game__score{font:800 clamp(2.5rem,2rem + 2vw,3.5rem)/1 var(--font-body);font-variant-numeric:var(--numeric);letter-spacing:-.02em;white-space:nowrap}
.esg-game__when{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;font-variant-numeric:var(--numeric)}
.esg-game__rel{font:800 1.25rem/1.2 var(--font-body)}
.esg-game__abs{font:600 1rem/1.3 var(--font-body)}
.esg-game__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3) var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--esg-eisgrau)}
[data-surface="dark"] .esg-game__foot{border-color:rgb(255 255 255 / .2)}
.esg-game__place{font:500 .9375rem/1.4 var(--font-body)}
/* News */
.esg-news{position:relative;display:flex;flex-direction:column;gap:var(--space-3);color:var(--esg-navy)}
.esg-news__img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--radius-card);background:var(--esg-eisblau)}
.esg-news--lg .esg-news__img{aspect-ratio:16/9}
.esg-news__meta{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .75rem;font:600 .875rem/1.3 var(--font-body);font-variant-numeric:var(--numeric);color:var(--esg-navy-80)}
.esg-news__title{margin:0;font:800 1.125rem/1.3 var(--font-body);text-wrap:balance}
.esg-news--lg .esg-news__title{font:400 clamp(2rem,1.6rem + 1.5vw,2.75rem)/1 var(--font-display);letter-spacing:var(--ls-display)}
.esg-news__title a{color:inherit;text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-size:0 2px;background-position:0 100%;background-repeat:no-repeat;transition:background-size var(--dur-3) var(--ease-out),color var(--transition)}
.esg-news:hover .esg-news__title a{color:var(--esg-vereinblau);background-size:100% 2px}
.esg-news__text{margin:0;font:400 1rem/1.6 var(--font-body);max-width:var(--measure);text-wrap:pretty}
.esg-news--list{display:grid;grid-template-columns:4.5rem minmax(0,1fr);gap:var(--space-4);padding:var(--space-4) 0;border-top:1px solid var(--esg-eisgrau)}
.esg-news__date{font:400 1.75rem/1 var(--font-display);letter-spacing:var(--ls-display);font-variant-numeric:var(--numeric)}
.esg-news__date small{display:block;font:700 .75rem/1.4 var(--font-body);text-transform:uppercase;letter-spacing:.06em;color:var(--esg-navy-80)}
.esg-ph{display:grid;place-items:center;width:100%;aspect-ratio:3/2;border-radius:var(--radius-card);background:var(--esg-eisblau);color:var(--esg-navy-80);font:500 .75rem/1.4 ui-monospace,Menlo,monospace;text-align:center;padding:1rem}
.esg-news--lg .esg-ph{aspect-ratio:16/9}

/* Schnellzugriff */
.esg-quick{container-type:inline-size;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr)}
.esg-quick__link{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.25rem var(--space-4);min-height:64px;padding:var(--space-4) 0;border-top:1px solid var(--esg-eisgrau);color:var(--esg-navy);text-decoration:none;transition:color var(--transition)}
.esg-quick__item:last-child .esg-quick__link{border-bottom:1px solid var(--esg-eisgrau)}
.esg-quick__title{grid-column:1;margin:0;font:800 1.125rem/1.25 var(--font-body);text-wrap:balance}
.esg-quick__text{grid-column:1;font:400 .9375rem/1.5 var(--font-body);color:var(--color-text-muted);text-wrap:pretty}
.esg-quick__arrow{grid-column:2;grid-row:1/span 2;display:flex;color:var(--esg-vereinblau);transition:translate var(--transition)}
.esg-quick__link:hover{color:var(--esg-vereinblau)}
.esg-quick__link:hover .esg-quick__arrow{translate:4px 0}
@container (min-width:720px){.esg-quick{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--space-8)}}
@container (min-width:1000px){.esg-quick{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:var(--space-6)}.esg-quick__link{align-items:start;align-content:start;height:100%;padding:var(--space-5) 0 var(--space-6);border-top:2px solid var(--esg-navy);border-bottom:0!important}.esg-quick__title{font-size:1.25rem}.esg-quick__arrow{grid-row:1}}
/* Tabellenausschnitt */
.esg-standings{display:grid;gap:var(--space-4)}
.esg-standings__head{display:flex;align-items:baseline;flex-wrap:wrap;gap:.5rem .75rem}
.esg-standings__table th,.esg-standings__table td{padding:.625rem .5rem}
.esg-standings__table thead th{padding-top:0}
.esg-standings__table tbody th[scope="row"]{white-space:normal;font-weight:500}
.esg-standings__table tr.is-own>*{background:var(--row-heute);font-weight:800}
.esg-standings__table tr.is-own>:first-child{box-shadow:inset 3px 0 0 var(--esg-vereinblau)}
/* Veranstaltung */
.esg-event{position:relative;display:grid;grid-template-columns:4.5rem minmax(0,1fr) auto;align-items:center;gap:var(--space-4);padding:var(--space-4) 0;border-top:1px solid var(--esg-eisgrau);color:var(--esg-navy)}
.esg-event:last-child{border-bottom:1px solid var(--esg-eisgrau)}
.esg-event__date{display:grid;justify-items:start;font-variant-numeric:var(--numeric)}
.esg-event__day{font:400 2.75rem/.9 var(--font-display);letter-spacing:var(--ls-display)}
.esg-event__mon{font:700 .75rem/1.4 var(--font-body);text-transform:uppercase;letter-spacing:.06em;color:var(--esg-navy-80);white-space:nowrap}
.esg-event__body{display:grid;gap:.25rem;min-width:0}
.esg-event__title{margin:0;font:800 1.125rem/1.3 var(--font-body);text-wrap:balance}
.esg-event__title a{color:inherit;text-decoration:none;transition:color var(--transition)}
.esg-event:hover .esg-event__title a{color:var(--esg-vereinblau)}
.esg-event__meta{margin:0;display:flex;flex-wrap:wrap;gap:.125rem 1rem;font:500 .9375rem/1.4 var(--font-body);font-variant-numeric:var(--numeric);color:var(--color-text-muted)}
.esg-event__arrow{display:flex;color:var(--esg-vereinblau);transition:translate var(--transition)}
.esg-event:hover .esg-event__arrow{translate:4px 0}
/* Mitmachen */
.esg-join{display:flex;flex-direction:column;overflow:hidden;border-top:4px solid var(--join-accent,var(--esg-vereinblau))}
.esg-join__img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:0}
.esg-join__body{flex:1;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-6)}
.esg-join__title{margin:0;font:400 clamp(1.75rem,1.4rem + 1vw,2.25rem)/1 var(--font-display);letter-spacing:var(--ls-display)}
.esg-join__age{margin:0;font:700 1rem/1.3 var(--font-body);color:var(--join-accent,var(--esg-vereinblau))}
.esg-join__trial{margin:0 0 var(--space-2);display:grid;gap:.25rem;padding:var(--space-3) 0;border-top:1px solid var(--esg-eisgrau);font:600 1rem/1.4 var(--font-body)}
/* Hinweis-Band */
.esg-notice{background:var(--esg-eisblau);color:var(--esg-navy)}
.esg-notice--wichtig{background:var(--status-hinweis-bg)}
.esg-notice__in{max-width:var(--container-max);margin:0 auto;padding:var(--space-3) var(--gutter);display:flex;align-items:center;flex-wrap:wrap;gap:.5rem var(--space-3);min-height:52px}
.esg-notice__icon{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:var(--radius-chip);background:var(--esg-vereinblau);color:var(--esg-weiss)}
.esg-notice--wichtig .esg-notice__icon{background:var(--status-hinweis)}
.esg-notice__text{flex:1 1 20rem;margin:0;font:500 .9375rem/1.45 var(--font-body);text-wrap:pretty}
.esg-notice__text b{font-weight:800}
.esg-notice__link{flex:none;font-size:.9375rem}
.esg-notice--wichtig .esg-notice__link{color:var(--status-hinweis)}
/* Sponsoren */
.esg-sponsors{display:grid;gap:var(--space-4)}
.esg-sponsors__list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.esg-sponsors--premium .esg-sponsors__list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.esg-sponsors--silber .esg-sponsors__list{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.esg-sponsors--bronze .esg-sponsors__list{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}
.esg-sponsors--premium .esg-sponsors__slot{height:120px}.esg-sponsors--silber .esg-sponsors__slot{height:72px}.esg-sponsors--bronze .esg-sponsors__slot{height:56px}
.esg-sponsors__slot{display:grid;place-items:center;height:96px;padding:var(--space-3);background:var(--esg-weiss);border:1px solid var(--esg-eisgrau);border-radius:var(--radius-card);color:var(--esg-navy-80);font:600 .8125rem/1.3 var(--font-body);text-align:center;text-decoration:none;transition:border-color var(--transition)}
a.esg-sponsors__slot:hover{border-color:var(--esg-vereinblau);color:var(--esg-navy)}
.esg-sponsors__slot img{max-width:100%;max-height:100%;object-fit:contain}

/* --- Eiszeitleiste (Plugin) --- */
.esg-eiszeitleiste{display:grid;gap:6px;font:700 12px/1 var(--font-body);font-variant-numeric:tabular-nums;color:var(--esg-navy)}
.esg-eiszeitleiste.is-dark{color:var(--esg-weiss)}
.esg-ezl__row{display:flex;align-items:center;gap:8px}
.esg-ezl__day{width:2.25rem;flex:none;font-size:13px}
.esg-ezl__row.is-today .esg-ezl__day{color:var(--esg-vereinblau);font-weight:800}
.is-dark .esg-ezl__row.is-today .esg-ezl__day{color:var(--esg-hellblau)}
.esg-ezl__track{position:relative;flex:1;height:36px;border-radius:var(--radius-sm);background:var(--esg-eisblau)}
.is-dark .esg-ezl__track{background:rgb(255 255 255 / .08)}
.esg-ezl__block{position:absolute;top:4px;bottom:4px;display:flex;align-items:center;padding:0 6px;overflow:hidden;white-space:nowrap;border-radius:var(--radius-sm);background:var(--esg-vereinblau);color:var(--esg-weiss)}
.is-dark .esg-ezl__block{background:var(--esg-hellblau);color:var(--esg-navy)}
.esg-ezl__block.is-past{background:var(--esg-eisgrau);color:var(--esg-navy)}
.is-dark .esg-ezl__block.is-past{background:rgb(255 255 255 / .16);color:var(--esg-weiss)}
.esg-ezl__now{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;background:var(--esg-navy);border-radius:2px}
.is-dark .esg-ezl__now{background:var(--esg-weiss)}

/* --- Fix 0.1.2: Elementor-Kit-Linkfarben dürfen die Status-Leiste nicht überschreiben --- */
.esg-statusbar .esg-statusbar__main,.esg-statusbar .esg-statusbar__main:hover,
.esg-statusbar .esg-statusbar__notice,.esg-statusbar .esg-statusbar__game{color:var(--esg-weiss)}
.esg-statusbar .esg-statusbar__state{color:var(--esg-weiss)}
.esg-statusbar .esg-statusbar__more{color:var(--esg-hellblau)}
/* Überschriften der Custom-Elemente immer in Hausfarbe (auf dunklem Grund weiß) */
.esg-display{color:var(--esg-navy)}
[data-surface="dark"] .esg-display,.is-dark .esg-display{color:var(--esg-weiss)}

/* ===== Kopf & Fuß ([esg_header], [esg_footer]) – 0.2.0 ===== */
/* Elementor-Container um die Shortcodes: keine Abstände, volle Breite */
.elementor-location-header :is(.e-con,.e-con-inner,.elementor-widget-shortcode,.elementor-shortcode):has(.esg-kopf),
.elementor-location-footer :is(.e-con,.e-con-inner,.elementor-widget-shortcode,.elementor-shortcode):has(.esg-fuss){padding:0!important;margin:0!important;max-width:none!important;width:100%!important;gap:0!important}
/* Status-Leiste scrollt weg, Navigation bleibt oben kleben */
.elementor-location-header:has(.esg-kopf){position:sticky;top:calc(var(--esg-adminbar,0px) - var(--esg-status-h,0px));z-index:100}
.admin-bar{--esg-adminbar:32px}
@media (max-width:782px){.admin-bar{--esg-adminbar:0px}}
.esg-kopf .esg-statusbar{margin:0}
.esg-nav{background:var(--esg-navy);color:var(--esg-weiss);font-family:var(--font-body)}
.esg-nav__in{max-width:1440px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;gap:24px;min-height:72px}
.esg-nav a{text-decoration:none}
.esg-nav__brand,.esg-nav__brand:hover{display:flex;align-items:center;gap:12px;color:var(--esg-weiss);flex:none}
.esg-logo{display:block;flex:none}
.esg-nav__name{display:block;line-height:1.05}
.esg-nav__titel{display:block;font-family:var(--font-display);font-size:26px;letter-spacing:.01em;color:var(--esg-weiss);font-weight:400}
.esg-nav__sub{display:block;font-size:11px;font-weight:600;color:var(--esg-hellblau)}
.esg-nav__menu{display:flex;align-items:center;gap:24px;margin-left:auto}
.esg-nav__list{display:flex;gap:24px;list-style:none;margin:0;padding:0}
.esg-nav__list a,.esg-nav__list a:visited{display:block;padding:8px 0;color:var(--esg-weiss);font-weight:700;font-size:15px;border-bottom:2px solid transparent}
.esg-nav__list a:hover,.esg-nav__list .current-menu-item>a,.esg-nav__list .current-menu-ancestor>a{color:var(--esg-hellblau);border-bottom-color:var(--esg-hellblau)}
.esg-nav__cta{display:flex;gap:12px}
.esg-nav .esg-btn--primary,.esg-nav .esg-btn--primary:hover{color:var(--esg-weiss)}
.esg-nav .esg-btn--outline-light,.esg-nav .esg-btn--outline-light:hover{color:var(--esg-weiss)}
.esg-nav a:focus-visible,.esg-nav__toggle:focus-visible{outline:2px solid var(--esg-hellblau);outline-offset:2px}
.esg-nav__toggle{display:none;margin-left:auto;background:none;border:0;padding:10px;cursor:pointer;width:46px;height:46px;flex-direction:column;justify-content:center;gap:5px}
.esg-nav__toggle span{display:block;height:2px;background:var(--esg-weiss);border-radius:1px;transition:transform .2s,opacity .2s}
.esg-nav__toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.esg-nav__toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.esg-nav__toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media (max-width:1024px){
  .esg-nav__in{flex-wrap:wrap;gap:0 16px;min-height:64px;padding:8px 16px}
  .esg-nav__toggle{display:flex}
  .esg-nav__menu{display:none;flex-basis:100%;flex-direction:column;align-items:stretch;gap:16px;margin:0;padding:8px 0 20px}
  .esg-nav__menu.is-open{display:flex}
  .esg-nav__list{flex-direction:column;gap:0}
  .esg-nav__list a,.esg-nav__list a:visited{padding:14px 0;border-bottom:1px solid rgb(255 255 255 / .12)}
  .esg-nav__cta .esg-btn{flex:1}
}
@media (max-width:767px){.esg-logo{width:40px;height:40px}.esg-nav__titel{font-size:22px}}

.esg-fuss{background:var(--esg-navy);color:var(--esg-weiss);font-family:var(--font-body);font-size:15px;line-height:1.6}
.esg-fuss a,.esg-fuss a:visited{color:var(--esg-weiss);text-decoration:none}
.esg-fuss a:hover{color:var(--esg-hellblau);text-decoration:underline}
.esg-fuss p{margin:0}
.esg-fuss__in{max-width:1440px;margin:0 auto;padding:64px 24px 32px;display:grid;gap:32px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.esg-fuss__verein p{margin-top:12px}
.esg-fuss__h{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--esg-hellblau);margin:0 0 12px!important}
.esg-fuss__list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.esg-fuss__unten{max-width:1440px;margin:0 auto;padding:16px 24px 24px;border-top:1px solid rgb(255 255 255 / .15);display:flex;flex-wrap:wrap;gap:24px;font-size:13px}

/* ===== Startseiten-Listen – 0.3.0 ===== */
.esg-newsblock{display:grid;gap:32px;grid-template-columns:minmax(0,1fr)}
@media (min-width:1025px){.esg-newsblock{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start}}
.esg-newsblock__liste .esg-news--list:first-child{border-top:0;padding-top:0}
.esg-news--list .esg-news__text{font-size:.9375rem}
.esg-events{display:grid}
.esg-event__arrow{font-size:1.25rem}
.esg-sparten{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.esg-sponsorenblock{display:grid;gap:32px}
.esg-quick__arrow{font-size:1.25rem}
.is-dark .esg-muted{color:#c9d6e8}
.is-dark .esg-display{color:var(--esg-weiss)}

/* ===== 0.3.1: Vorrang vor Elementor-Kit (Links, H3) – doppelte Klassen = höhere Spezifität ===== */
.esg-btn.esg-btn--primary,.esg-btn.esg-btn--primary:hover,.esg-btn.esg-btn--primary:visited{color:var(--esg-weiss)}
.esg-btn.esg-btn--outline-light,.esg-btn.esg-btn--outline-light:hover{color:var(--esg-weiss)}
.esg-btn.esg-btn--light,.esg-btn.esg-btn--light:hover{color:var(--esg-navy)}
.esg-btn.esg-btn--secondary,.esg-btn.esg-btn--secondary:hover{color:var(--esg-vereinblau)}
.esg-quick .esg-quick__link,.esg-quick .esg-quick__link:visited{color:var(--esg-navy)}
.esg-quick .esg-quick__link:hover{color:var(--esg-vereinblau)}
.esg-quick .esg-quick__title{font:800 1.125rem/1.25 var(--font-body)}
@container (min-width:1000px){.esg-quick .esg-quick__title{font-size:1.25rem}}
.esg-news .esg-news__title,.esg-event .esg-event__title{font:800 1.125rem/1.3 var(--font-body);color:var(--esg-navy);margin:0;letter-spacing:0;text-transform:none}
.esg-news.esg-news--lg .esg-news__title{font:400 clamp(2rem,1.6rem + 1.5vw,2.75rem)/1 var(--font-display);letter-spacing:.01em}
.esg-news .esg-news__title a,.esg-event .esg-event__title a,.esg-join .esg-join__title a{color:inherit}
.esg-news:hover .esg-news__title a,.esg-event:hover .esg-event__title a{color:var(--esg-vereinblau)}
.esg-join .esg-join__title{font:400 clamp(1.75rem,1.4rem + 1vw,2.25rem)/1 var(--font-display);letter-spacing:.01em;color:var(--esg-navy);margin:0}
.esg-news .esg-news__date{font:400 1.75rem/1 var(--font-display);color:var(--esg-navy)}
.esg-event .esg-event__day{font:400 2.75rem/.9 var(--font-display);color:var(--esg-navy)}
.esg-event .esg-event__arrow,.esg-quick .esg-quick__arrow{color:var(--esg-vereinblau)}
.elementor-widget-heading p.elementor-heading-title{margin:0;line-height:1.3}

/* ===== 0.3.2: Schriften als Einzelwerte (unabhängig von Variablen) ===== */
.esg-quick .esg-quick__title,.esg-news .esg-news__title,.esg-event .esg-event__title{font-family:"Montserrat",system-ui,sans-serif!important;font-weight:800!important;font-size:1.125rem!important;line-height:1.3!important}
.esg-quick .esg-quick__text,.esg-news .esg-news__text{font-family:"Montserrat",system-ui,sans-serif}
.esg-news.esg-news--lg .esg-news__title,.esg-join .esg-join__title{font-family:"Bebas Neue",Impact,sans-serif!important;font-weight:400!important;font-size:clamp(1.75rem,1.4rem + 1.5vw,2.75rem)!important;line-height:1!important;letter-spacing:.01em}
.esg-news .esg-news__date,.esg-event .esg-event__day{font-family:"Bebas Neue",Impact,sans-serif!important;font-weight:400}
.esg-event .esg-event__day{font-size:2.75rem;line-height:.9}
.esg-news .esg-news__date{font-size:1.75rem;line-height:1}
.esg-event .esg-event__mon{margin-right:.5rem}

/* ===== 0.3.3: Pfeile 24 px, Schnellzugriff mehrspaltig (Media- statt Container-Query) ===== */
.esg-quick .esg-quick__arrow svg,.esg-event .esg-event__arrow svg{width:24px;height:24px;display:block}
@media (min-width:720px){.esg-quick{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}}
@media (min-width:1100px){
  .esg-quick{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:24px}
  .esg-quick .esg-quick__link{align-items:start;align-content:start;height:100%;padding:20px 0 24px;border-top:2px solid var(--esg-navy);border-bottom:0!important}
  .esg-quick .esg-quick__title{font-size:1.25rem!important}
  .esg-quick .esg-quick__arrow{grid-row:1}
}

/* ===== 0.3.4: Mobil – Status-Leiste umbrechen, Eiszeitleiste mit Beschriftung und Skala ===== */
@media (max-width:767px){
  .esg-statusbar__in{padding:6px 16px}
  .esg-statusbar__main{flex-wrap:wrap;row-gap:0}
  .esg-statusbar__detail{white-space:normal;overflow:visible}
}
.esg-ezl__cap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 8px;font:500 .875rem/1.4 "Montserrat",system-ui,sans-serif}
.esg-ezl__cap b{font-weight:800}
.esg-ezl__jetzt{font-variant-numeric:tabular-nums;opacity:.8}
.esg-ezl__block{font:700 .75rem/1 "Montserrat",system-ui,sans-serif;font-variant-numeric:tabular-nums}
.esg-ezl__scale{position:relative;height:18px;margin-top:6px;font:500 .6875rem/1 "Montserrat",system-ui,sans-serif;opacity:.7}
.esg-ezl__scale.has-day{margin-left:calc(2.25rem + 8px)}
.esg-ezl__scale span{position:absolute;top:0;transform:translateX(-50%)}
.esg-ezl__scale span:first-child{transform:none}
.is-dark .esg-ezl__cap,.is-dark .esg-ezl__scale{color:var(--esg-weiss)}
.esg-ezl__now{z-index:2;box-shadow:0 0 0 2px var(--esg-navy)}

/* ===== 0.3.5: Header klebt als Ganzes, Status-Leiste scrollt weg (ersetzt Elementor-Sticky) ===== */
.elementor-location-header{position:sticky;top:calc(var(--esg-adminbar,0px) - var(--esg-status-h,0px));z-index:100}
@media (max-width:782px){.admin-bar{--esg-adminbar:46px}}
@media (max-width:600px){.admin-bar{--esg-adminbar:0px}}
.elementor-location-header .elementor-sticky__spacer{display:none!important}
/* Eiszeitleiste Tagesansicht: Zeiten stehen darüber, im schmalen Block nicht wiederholen */
@media (max-width:1024px){.esg-ezl__block{font-size:0;padding:0}}

/* ===== 0.4.2: Tabellen gegen Hello-Elementor-Tabellenstile (Zellrahmen, Zebra, 15 px Innenabstand) absichern ===== */
.esg-table.esg-table{margin:0;font-size:var(--fs-body);border:0;background:transparent}
.esg-table.esg-table th,.esg-table.esg-table td{border:0;border-bottom:1px solid var(--esg-eisgrau);padding:.75rem;line-height:1.45;vertical-align:middle;text-align:left;background:transparent}
.esg-table.esg-table thead th{border-bottom:2px solid var(--esg-navy);padding:0 .75rem .625rem;line-height:1.2;vertical-align:bottom}
.esg-table.esg-table tbody>tr:nth-child(odd)>td,.esg-table.esg-table tbody>tr:nth-child(odd)>th,
.esg-table.esg-table tbody>tr:hover>td,.esg-table.esg-table tbody>tr:hover>th{background:transparent}
.esg-table.esg-table tbody tr.is-today>*{background:var(--row-heute)}
.esg-table.esg-table caption{padding:0 .75rem var(--space-3);font-size:var(--fs-h3)}
/* feste Spaltenbreiten: Datum/Tag | Zeiten | Hinweis */
.esg-table.esg-table{table-layout:fixed}
.esg-table.esg-table th:nth-child(1){width:26%}
.esg-table.esg-table th:nth-child(2){width:32%}
/* Handy: Zeilenansicht statt Spalten (Tag/Datum | Zeiten, Hinweis darunter); Kopfzeile bleibt für Screenreader */
@media (max-width:600px){
  .esg-table.esg-table{table-layout:auto;hyphens:manual}
  .esg-table.esg-table th:nth-child(n){width:auto}
  .esg-table.esg-table th[scope="row"]{white-space:nowrap}
  .esg-table.esg-table caption{display:block;padding:0 0 var(--space-3)}
  .esg-table.esg-table[data-esg="laufzeiten"],.esg-table.esg-table[data-esg="ausnahmen"],
  [data-esg="laufzeiten"] tbody,[data-esg="ausnahmen"] tbody{display:block;width:100%}
  [data-esg="laufzeiten"] thead,[data-esg="ausnahmen"] thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  [data-esg="laufzeiten"] tbody tr,[data-esg="ausnahmen"] tbody tr{display:grid;grid-template-columns:9.5rem 1fr;align-items:baseline;border-bottom:1px solid var(--esg-eisgrau)}
  .esg-table.esg-table:not([data-esg="preise"]) tbody th,.esg-table.esg-table:not([data-esg="preise"]) tbody td{border-bottom:0;padding:.625rem .5rem}
  .esg-table.esg-table:not([data-esg="preise"]) tbody td:nth-child(3){grid-column:1 / -1;padding-top:0;color:var(--esg-navy-80)}
  .esg-table.esg-table:not([data-esg="preise"]) tbody td:empty{display:none}
}

/* ===== 0.5.0: Preistabelle (2 Spalten: Leistung | Preis) ===== */
.esg-table.esg-table .is-num{text-align:right;white-space:nowrap}
.esg-table.esg-table[data-esg="preise"] th:nth-child(1){width:auto}
.esg-table.esg-table[data-esg="preise"] th:nth-child(2){width:9rem;text-align:right}
.esg-table.esg-table[data-esg="preise"] tbody th[scope="row"]{white-space:normal;font-weight:700}
.esg-table.esg-table[data-esg="preise"] tbody th[scope="rowgroup"]{font:400 1.5rem/1 var(--font-display);letter-spacing:var(--ls-display);padding-top:var(--space-8);border-bottom:2px solid var(--esg-navy)}
.esg-table.esg-table[data-esg="preise"] tbody tr:first-child th[scope="rowgroup"]{padding-top:.75rem}
.esg-table.esg-table[data-esg="preise"] .esg-muted{display:block;font-weight:400;font-size:var(--fs-small)}
@media (max-width:600px){.esg-table.esg-table[data-esg="preise"] th:nth-child(2){width:6.5rem}}

/* ===== 0.5.1: Button-Text vertikal mittig (Mindesthöhe 48 px ließ den Text oben kleben) ===== */
.elementor-widget-button .elementor-button.elementor-button{display:inline-flex;align-items:center;justify-content:center}

/* ===== 0.5.2: Spielkarte ist immer weiß – Hilfstext dunkel, auch auf dunklem Abschnitt ===== */
.esg-game .esg-muted,.esg-game .esg-game__top .esg-muted{color:var(--esg-navy-80)}

/* ===== 0.6.0: Ligatabelle ===== */
.esg-table.esg-table[data-esg="tabelle"] th[scope="row"]{white-space:normal}
.esg-table.esg-table[data-esg="tabelle"] th:nth-child(n){width:auto}
.esg-table.esg-table[data-esg="tabelle"] th:nth-child(1),.esg-table.esg-table[data-esg="tabelle"] td:nth-child(1){width:4.5rem}
.esg-table.esg-table[data-esg="tabelle"] tbody tr.is-esg>*{background:var(--row-heute);font-weight:800}
.esg-table.esg-table[data-esg="tabelle"] tbody tr.is-esg>td:first-child{box-shadow:inset 3px 0 0 var(--esg-vereinblau)}
@media (max-width:600px){.esg-table.esg-table[data-esg="tabelle"] th,.esg-table.esg-table[data-esg="tabelle"] td{padding:.625rem .375rem;font-size:.875rem}.esg-table.esg-table[data-esg="tabelle"] th:nth-child(1),.esg-table.esg-table[data-esg="tabelle"] td:nth-child(1){width:2.75rem}}

/* ===== 0.6.1: Bebas-Überschriften mit Luft (Zeilenhöhe < 1 ließ Umlaut-Punkte und Oberlängen an die Zeile darüber stoßen) ===== */
.elementor-widget-heading .elementor-heading-title.elementor-heading-title:is(h1,h2,h3){line-height:1.15;padding-block:.08em .02em}
.esg-display.esg-display{line-height:1.1;padding-block:.08em .02em}

/* ===== 0.6.2: Kleine Kennzeichen-Zeilen (Label, Footer-Überschriften) mit eigener Textbox-Höhe, damit die Schrift nicht aus dem Container ragt ===== */
.elementor-widget-heading .elementor-heading-title.elementor-heading-title:is(p,div){line-height:1.4;padding-block:.2em;margin:0}

/* ===== 0.7.0: News-Liste (Seitenumbruch) ===== */
.esg-pagination ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.esg-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:2.75rem;min-height:2.75rem;padding:0 .75rem;border:2px solid var(--esg-vereinblau);border-radius:var(--radius-chip);font:700 .9375rem/1 var(--font-body);color:var(--esg-vereinblau);text-decoration:none}
.esg-pagination .page-numbers.current{background:var(--esg-vereinblau);color:var(--esg-weiss)}

/* ===== 0.7.2: Alle .esg-table – Kopfzeile mit Luft nach oben, keine Linie oberhalb (Kit/Hello-Tabellenrahmen) ===== */
.esg-table-wrap,.esg-table.esg-table,.esg-table.esg-table thead,.esg-table.esg-table thead tr{border-top:0;box-shadow:none}
.esg-table.esg-table thead th{border-top:0;padding:.75rem .75rem .625rem;vertical-align:middle}
.esg-table.esg-table caption{padding:0 .75rem var(--space-4)}
@media (max-width:600px){.esg-table.esg-table thead th{padding:.625rem .5rem .5rem}.esg-table.esg-table caption{padding:0 0 var(--space-3)}}

/* ===== 0.8.1: „Alle anzeigen“ (details) ===== */
.esg-more{margin-top:var(--space-6)}
.esg-more>summary{list-style:none;cursor:pointer}
.esg-more>summary::-webkit-details-marker{display:none}
.esg-more__btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 20px;border:2px solid var(--esg-vereinblau);border-radius:var(--radius-chip);color:var(--esg-vereinblau);font:700 .875rem/1.2 var(--font-body);text-transform:uppercase;letter-spacing:.02em;background:transparent;transition:background-color .2s,color .2s}
.esg-more__btn:hover{background:var(--esg-eisblau)}
.esg-more__btn:focus-visible{outline:3px solid var(--esg-mittelblau);outline-offset:2px}
.esg-more__close{display:none}
.esg-more[open] .esg-more__open{display:none}
.esg-more[open] .esg-more__close{display:inline}
[data-surface="dark"] .esg-more__btn,.is-dark .esg-more__btn{border-color:var(--esg-weiss);color:var(--esg-weiss)}
[data-surface="dark"] .esg-more__btn:hover,.is-dark .esg-more__btn:hover{background:rgb(255 255 255 / .12)}

/* ===== 0.9.0: Mannschafts-Logos ===== */
.esg-teamlogo{display:block;flex:none;object-fit:contain}
.esg-game__team{display:flex;align-items:center;gap:.75rem}
.esg-game__team .esg-teamlogo{width:56px;height:56px}
.esg-tabelle__team{display:inline-flex;align-items:center;gap:.625rem}
.esg-tabelle__team .esg-teamlogo{width:32px;height:32px}
@media (max-width:600px){.esg-game__team .esg-teamlogo{width:44px;height:44px}.esg-tabelle__team .esg-teamlogo{width:28px;height:28px}}
/* Spielkarte ist immer weiß: ESG-Name blau, „gegen“ dunkel – auch auf dunklem Abschnitt */
.esg-game .esg-game__teams .is-esg,[data-surface="dark"] .esg-game .esg-game__teams .is-esg{color:var(--esg-vereinblau)}
.esg-game .esg-game__vs,[data-surface="dark"] .esg-game .esg-game__vs{color:var(--esg-navy-80);padding-left:4.25rem}
@media (max-width:600px){.esg-game .esg-game__vs{padding-left:3.5rem}}

/* ===== 0.11.1: FAQ = Elementor-Akkordeon (Widget-Klasse „esg-faq-el“): ruhig, linksbündig, Icon rechts mittig ===== */
.esg-faq-el.esg-faq-el .elementor-accordion{max-width:52rem;border-top:2px solid var(--esg-navy)}
.esg-faq-el.esg-faq-el .elementor-accordion .elementor-accordion-item{border:0;border-bottom:1px solid var(--esg-eisgrau)}
.esg-faq-el.esg-faq-el .elementor-accordion .elementor-tab-title{display:flex;flex-direction:row-reverse;justify-content:space-between;align-items:center;gap:1rem;margin:0;padding:1.125rem 0;border:0;background:transparent}
.esg-faq-el.esg-faq-el .elementor-accordion .elementor-accordion-icon{float:none;width:auto;margin:0;padding:0;text-align:center;color:var(--esg-vereinblau);font-size:1rem;line-height:1}
.esg-faq-el.esg-faq-el .elementor-accordion .elementor-accordion-title{display:block;flex:1 1 auto;margin:0;padding:0;font:700 1.0625rem/1.4 var(--font-body);letter-spacing:0;text-transform:none;color:var(--esg-navy);text-wrap:pretty}
.esg-faq-el.esg-faq-el .elementor-accordion .elementor-tab-title:hover .elementor-accordion-title,.esg-faq-el.esg-faq-el .elementor-accordion .elementor-tab-title.elementor-active .elementor-accordion-title{color:var(--esg-vereinblau)}
.esg-faq-el.esg-faq-el .elementor-accordion .elementor-tab-content{padding:0 2.5rem 1.25rem 0;border:0;max-width:var(--measure);font:400 1rem/1.6 var(--font-body);color:var(--esg-navy)}
.esg-faq-el.esg-faq-el .elementor-accordion .elementor-tab-content p{margin:0 0 .75rem}
.esg-faq-el.esg-faq-el .elementor-accordion .elementor-tab-content p:last-child{margin:0}

/* Schnellzugriff (Elementor-Container als Karten) */
.esg-quickcard.esg-quickcard{transition:border-color .2s,box-shadow .2s}
.esg-quickcard.esg-quickcard:hover{border-color:var(--esg-vereinblau)}

/* ===== 0.12.0: Header-Logo als Medaillon – größer, ragt unten über die Leiste, weißer Ring, Schatten ===== */
.elementor-location-header .esg-header-logo.esg-header-logo{position:relative;z-index:5;align-self:center}
.elementor-location-header .esg-header-logo.esg-header-logo img{display:block;width:92px;height:92px;max-width:none;object-fit:contain;border-radius:50%;background:var(--esg-weiss);box-shadow:0 0 0 3px var(--esg-weiss),0 8px 20px rgb(0 0 0 / .38);margin:-2px 0 -30px;transition:transform .25s cubic-bezier(.22,1,.36,1)}
.elementor-location-header .esg-header-logo.esg-header-logo:hover img{transform:scale(1.05) rotate(-2deg)}
@media (max-width:1024px){.elementor-location-header .esg-header-logo.esg-header-logo img{width:72px;height:72px;margin:0 0 -16px}}
@media (max-width:767px){.elementor-location-header .esg-header-logo.esg-header-logo img{width:56px;height:56px;margin:0;box-shadow:0 0 0 2px var(--esg-weiss),0 4px 12px rgb(0 0 0 / .35)}}
@media (prefers-reduced-motion:reduce){.elementor-location-header .esg-header-logo.esg-header-logo img{transition:none}.elementor-location-header .esg-header-logo.esg-header-logo:hover img{transform:none}}

/* ===== 0.12.1: Untermenü (Dropdown) wie das Hauptmenü: gleiche Schrift, Größe, Groß-/Kleinschreibung ===== */
.elementor-location-header .elementor-nav-menu--dropdown.elementor-nav-menu--dropdown a,
.elementor-location-header .elementor-nav-menu--main .sub-menu.sub-menu a{font-family:var(--font-body);font-size:15px;font-weight:700;line-height:1.4;letter-spacing:0;text-transform:none}

/* 0.12.3 – Loop-Items (Termin, Sponsor, Karten) */
.esg-td.esg-td{display:flex;flex-direction:column;align-items:center;min-width:64px;line-height:1}
.esg-td.esg-td .esg-td-tag{font:400 48px/1 "Bebas Neue",sans-serif;letter-spacing:.01em;color:var(--esg-navy)}
.esg-td.esg-td .esg-td-monat{font:700 13px/1.3 Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.08em;color:var(--esg-navy-80)}
.esg-loop-sponsor.esg-loop-sponsor img{height:72px;width:auto;max-width:180px;object-fit:contain}
.esg-sponsor-premium.esg-sponsor-premium .esg-loop-sponsor img{height:96px;max-width:260px}
.esg-loop-karte.esg-loop-karte{border-radius:4px;overflow:hidden}
.esg-loop-karte.esg-loop-karte{height:100%}
.esg-loop-bild.esg-loop-bild img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}
.esg-loop-bild.esg-loop-bild{background:var(--esg-eisblau);aspect-ratio:3/2;overflow:hidden}

/* 0.13.0 – Eiszeitleiste im Hero (Variante hero): Stundenraster, Block mit Zeitspanne, Jetzt-Marke */
.esg-ezlh.esg-ezlh{display:block;color:var(--esg-weiss);border-top:1px solid rgb(255 255 255 / .25);padding-top:20px;margin-top:8px}
.esg-ezlh .esg-ezlh__head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:56px}
.esg-ezlh .esg-ezlh__title{font:400 28px/1.1 "Bebas Neue",sans-serif;letter-spacing:.01em;text-transform:uppercase;color:var(--esg-weiss)}
.esg-ezlh .esg-ezlh__more.esg-ezlh__more{font:700 14px/1.2 Montserrat,sans-serif;color:var(--esg-hellblau);text-decoration:underline;text-underline-offset:3px}
.esg-ezlh .esg-ezlh__track{position:relative;height:44px}
@media (max-width:767px){.esg-ezlh .esg-ezlh__block{min-width:0;overflow:hidden;justify-content:center}.esg-ezlh .esg-ezlh__block.is-past{background:rgb(255 255 255 / .1);color:rgb(255 255 255 / .55);text-decoration:line-through}}
.esg-ezlh .esg-ezlh__tick{position:absolute;top:-30px;bottom:-14px;width:0;border-left:1px solid rgb(255 255 255 / .22)}
.esg-ezlh .esg-ezlh__tick i{position:absolute;top:0;left:0;transform:translateX(-50%);font:700 13px/1 Montserrat,sans-serif;font-style:normal;color:var(--esg-weiss);opacity:.9}
.esg-ezlh .esg-ezlh__block{position:absolute;top:0;bottom:0;display:flex;align-items:center;padding:0 10px;min-width:max-content;background:var(--esg-hellblau);color:var(--esg-navy);font:700 14px/1 Montserrat,sans-serif;border-radius:2px;white-space:nowrap}
.esg-ezlh .esg-ezlh__block.is-past{background:rgb(255 255 255 / .22);color:var(--esg-weiss)}
.esg-ezlh .esg-ezlh__none{margin:36px 0 0;padding:10px 14px;display:inline-block;background:rgb(255 255 255 / .12);border-radius:2px;font:600 15px/1.3 Montserrat,sans-serif;color:var(--esg-weiss)}
.esg-ezlh .esg-ezlh__now{position:absolute;top:-46px;bottom:-14px;width:2px;margin-left:-1px;background:var(--esg-weiss);z-index:2}
.esg-ezlh .esg-ezlh__now b{position:absolute;top:0;left:50%;transform:translateX(-50%);padding:4px 8px;background:var(--esg-weiss);color:var(--esg-navy);border-radius:2px;font:800 12px/1 Montserrat,sans-serif;white-space:nowrap}
@media (max-width:767px){.esg-ezlh .esg-ezlh__title{font-size:22px}.esg-ezlh .esg-ezlh__tick:nth-child(even) i{display:none}.esg-ezlh .esg-ezlh__block{font-size:12px;padding:0 6px}}
.esg-tabelle__extern.esg-tabelle__extern{padding:24px;display:grid;gap:16px;max-width:560px}.esg-tabelle__extern p{margin:0}.esg-tabelle__link{margin:16px 0 0}
.esg-kanaele{margin:24px 0 0}.esg-kanaele__titel{margin:0 0 8px;font:700 13px/1.3 Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.08em;color:var(--esg-navy-80)}.esg-kanaele__liste{margin:0;display:flex;flex-wrap:wrap;gap:12px}.esg-quelle{margin:24px 0 0}

/* 0.18.2 – Abteilungs-Bild als Fläche in den „Wegen“ auf der Startseite */
.esg-weg-widget.esg-weg-widget{position:absolute;inset:0;margin:0;width:100%;height:100%;z-index:0}
.esg-weg-bild{display:block;position:absolute;inset:0;background-size:cover;background-position:center}
.esg-weg-bild::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgb(14 31 61 / .15),rgb(14 31 61 / .75))}
.esg-card .e-con>.elementor-widget:not(.esg-weg-widget){position:relative;z-index:1}

/* 0.18.3 – kompakte Spielkarte (Startseite), Wochenzeitleiste auf Eisblau lesbar */
.esg-game.esg-game--kompakt{padding:var(--space-4);gap:var(--space-3)}
.esg-game--kompakt .esg-game__teams{font-size:1.5rem}
.esg-game--kompakt .esg-game__rel{font-size:1rem}
.esg-game--kompakt .esg-game__abs{font-size:.875rem}
.esg-game--kompakt .esg-game__foot{gap:var(--space-3)}
.esg-game--kompakt .esg-game__foot .esg-btn{padding:8px 14px;font-size:.875rem}
.esg-eiszeitleiste:not(.is-dark):not(.esg-ezlh) .esg-ezl__track{background:rgb(14 31 61 / .07)}
.esg-eiszeitleiste:not(.is-dark):not(.esg-ezlh) .esg-ezl__block.is-past{background:#b4c1d6;color:var(--esg-navy)}

/* 0.18.4 – Startseite: linke Karte (groß) so hoch wie die zwei kleinen rechts */
.esg-fill.esg-fill{display:flex;flex-direction:column}
.esg-fill>.elementor-widget-shortcode{flex:1 1 auto;display:flex;flex-direction:column}
.esg-fill>.elementor-widget-shortcode .elementor-widget-container,.esg-fill>.elementor-widget-shortcode .elementor-shortcode{flex:1 1 auto;display:flex;flex-direction:column}
.esg-fill .elementor-shortcode>.esg-game,.esg-fill .elementor-shortcode>.esg-spielplan{flex:1 1 auto}
.esg-fill .elementor-shortcode>.esg-spielplan{display:grid;grid-auto-rows:1fr}
.esg-fill .elementor-shortcode>.esg-game{justify-content:space-between}
.esg-fill .elementor-shortcode>.esg-game .esg-game__teams{font-size:clamp(2rem,1.6rem + 1.4vw,2.75rem)}
.esg-fill .elementor-shortcode>.esg-spielplan .esg-game--kompakt .esg-game__teams{font-size:1.5rem}

/* 0.18.6 – Header-Buttons: gleich breit, gleich hoch, Text bricht nicht um */
.esg-header-btns.esg-header-btns { flex: 0 0 auto; flex-wrap: nowrap; }
.esg-header-btn.esg-header-btn { width: auto; }
.esg-header-btn.esg-header-btn .elementor-button {
	width: auto; min-height: 48px; box-sizing: border-box; justify-content: center;
	padding: 0 24px; white-space: nowrap; letter-spacing: 0.04em; font-size: 14px;
}
.esg-header-btn.esg-header-btn .elementor-button-text { white-space: nowrap; }

/* 0.18.7 – Header-Buttons auch ohne Zusatzklassen (alte Header-Vorlage): gleich groß, ohne Umbruch und Silbentrennung */
.elementor-location-header .elementor-widget-button .elementor-button.elementor-button {
	width: auto; min-width: 0; min-height: 48px; box-sizing: border-box; justify-content: center;
	padding: 0 24px; white-space: nowrap; hyphens: manual; -webkit-hyphens: manual; word-break: normal; overflow-wrap: normal;
	letter-spacing: 0.04em; font-size: 14px;
}
.elementor-location-header .elementor-widget-button .elementor-button-text { white-space: nowrap; hyphens: manual; }
.elementor-location-header .elementor-widget-button { flex: 0 0 auto; }

/* 0.18.8 – Header-Buttons: Breite folgt dem Text, gleichmäßiger Innenabstand, etwas kleinerer Abstand dazwischen */
.elementor-location-header .esg-header-btns, .elementor-location-header .elementor-widget-button { flex: 0 0 auto; }
.elementor-location-header .elementor-widget-button .elementor-button.elementor-button { padding: 0 22px; letter-spacing: 0.03em; }

/* 0.18.9 – Header: Vereinsname neben dem Logo bleibt einzeilig */
.elementor-location-header .elementor-widget-heading .elementor-heading-title { white-space: nowrap; }
.elementor-location-header .elementor-widget-heading { flex: 0 0 auto; }

/* 0.19.0 – Heimspiele mehrerer Teams nebeneinander, gleich hoch; Mannschaftsname in der Karte */
.esg-spielplan.esg-spielplan--spalten { grid-template-columns: repeat(var(--esg-sp, 3), minmax(0, 1fr)); align-items: stretch; }
.esg-spielplan--spalten .esg-game { height: 100%; }
.esg-game__team-name { font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: .75rem; color: var(--esg-navy); }
@media (max-width: 1024px) { .esg-spielplan.esg-spielplan--spalten { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px)  { .esg-spielplan.esg-spielplan--spalten { grid-template-columns: 1fr; } }

/* 0.19.2 – 4. Karte nur im Tablet-Bereich (2 × 2), sonst 3 nebeneinander (Desktop) bzw. 3 untereinander (Handy) */
.esg-spielplan--spalten > .esg-game:nth-child(4) { display: none; }
@media (min-width: 768px) and (max-width: 1024px) { .esg-spielplan--spalten > .esg-game:nth-child(4) { display: flex; } }

/* 0.20.0 – Ergebnisse vergangener Spiele (kompakte Liste) */
.esg-ergebnisse.esg-card { padding: var(--space-4) var(--space-5, 24px); }
.esg-erg-liste { list-style: none; margin: 0; padding: 0; }
.esg-erg-liste .esg-erg { display: grid; grid-template-columns: 8.5rem auto 1fr auto auto; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--esg-eisblau); }
.esg-erg-liste .esg-erg:last-child { border-bottom: 0; }
.esg-erg-liste--solo .esg-erg { grid-template-columns: 8.5rem 1fr auto auto; }
.esg-erg__datum { font-size: .875rem; color: var(--esg-navy-80); white-space: nowrap; }
.esg-erg__team { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--esg-navy); background: var(--esg-eisblau); padding: 2px 8px; border-radius: 2px; }
.esg-erg__teams { font-weight: 600; color: var(--esg-navy); }
.esg-erg__score { font-family: "Bebas Neue", sans-serif; font-size: 1.5rem; line-height: 1; color: var(--esg-navy); white-space: nowrap; }
.esg-erg__tag { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; padding: 2px 8px; border-radius: 2px; background: var(--esg-eisblau); color: var(--esg-navy); }
.esg-erg__tag.is-sieg { background: var(--esg-vereinblau); color: var(--esg-weiss); }
.esg-ergebnisse details.esg-more { margin-top: var(--space-3, 12px); }
/* Ergebnisse: Tags nur so breit wie ihr Text, Farbe je Ausgang (0.59.5) */
.esg-erg__team, .esg-erg__tag { justify-self: start; width: max-content; }
.esg-erg__tag.is-niederlage { background: #fbe9e7; color: #b3261e; }
.esg-erg__tag.is-remis { background: var(--esg-eisgrau); color: var(--esg-navy); }
.esg-erg__teams { hyphens: none; -webkit-hyphens: none; overflow-wrap: normal; }
@media (max-width: 767px) {
	.esg-ergebnisse.esg-card { padding: 12px; background: transparent; border: 0; box-shadow: none; }
	.esg-erg-liste .esg-erg, .esg-erg-liste--solo .esg-erg {
		grid-template-columns: 1fr auto; grid-template-areas: "datum mt" "teams score" "tag score";
		row-gap: 8px; column-gap: 16px; margin: 0 0 10px; padding: 14px 16px; background: var(--esg-weiss);
		border: 1px solid var(--esg-eisgrau); border-left: 4px solid var(--esg-eisgrau); border-radius: 4px;
	}
	.esg-erg-liste .esg-erg:last-child { border-bottom: 1px solid var(--esg-eisgrau); }
	.esg-erg--sieg { border-left-color: var(--esg-vereinblau) !important; }
	.esg-erg--niederlage { border-left-color: #b3261e !important; }
	.esg-erg-liste .esg-erg .esg-erg__datum { grid-area: datum; font-size: .8125rem; }
	.esg-erg-liste .esg-erg .esg-erg__team { grid-area: mt; justify-self: end; }
	.esg-erg-liste .esg-erg .esg-erg__teams { grid-area: teams; font-size: 1rem; line-height: 1.35; }
	.esg-erg-liste .esg-erg .esg-erg__score { grid-area: score; align-self: center; font-size: 2rem; }
	.esg-erg-liste .esg-erg .esg-erg__tag { grid-area: tag; }
	.esg-erg-liste .esg-erg .esg-link { grid-column: 1 / -1; }
}

/* 0.20.2 – Klickbare Karten (ganze Box ist ein Link): Cursor, Fokus, Hover; keine Silbentrennung in Überschriften */
a.esg-quickcard.esg-quickcard, a.esg-card.esg-card { text-decoration: none; cursor: pointer; }
a.esg-quickcard.esg-quickcard:hover { box-shadow: 0 6px 18px rgba(14,31,61,.12); transform: translateY(-2px); }
a.esg-quickcard.esg-quickcard:focus-visible, a.esg-card.esg-card:focus-visible { outline: 3px solid var(--esg-vereinblau); outline-offset: 3px; }
.esg-quickcard .elementor-heading-title { hyphens: manual; -webkit-hyphens: manual; overflow-wrap: normal; word-break: normal; }

/* 0.20.3 – Schnellzugriff-Karten sind als klickbar erkennbar: Pfeil, Hover in Vereinsblau, Anheben */
a.esg-quickcard.esg-quickcard { position: relative; padding-bottom: 52px; border-top: 3px solid var(--esg-eisgrau); transition: border-color .2s, box-shadow .2s, transform .2s; }
a.esg-quickcard.esg-quickcard::after {
	content: "\2192"; position: absolute; left: 24px; bottom: 16px; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center;
	font-size: 18px; font-weight: 700; color: var(--esg-weiss); background: var(--esg-vereinblau); border-radius: 2px; transition: transform .2s, background .2s;
}
a.esg-quickcard.esg-quickcard:hover, a.esg-quickcard.esg-quickcard:focus-visible { border-color: var(--esg-vereinblau); box-shadow: 0 8px 22px rgba(14,31,61,.14); transform: translateY(-3px); }
a.esg-quickcard.esg-quickcard:hover::after { transform: translateX(4px); background: var(--esg-navy); }
a.esg-quickcard.esg-quickcard:hover .elementor-heading-title { color: var(--esg-vereinblau); }
.esg-quickcard .elementor-heading-title { hyphens: none !important; -webkit-hyphens: none !important; word-break: normal; overflow-wrap: normal; }

/* 0.20.4 – Spielkarte mit Ergebnis: Tore stehen rechts neben jedem Team, gleiche Spalte, Sieger hervorgehoben */
.esg-game--ergebnis .esg-game__body { grid-template-columns: minmax(0, 1fr); }
.esg-game--ergebnis .esg-game__vs { display: none; }
.esg-game--ergebnis .esg-game__teams { gap: 0; }
.esg-game--ergebnis .esg-game__team { display: flex; align-items: center; gap: 1rem; padding: 12px 0; }
.esg-game--ergebnis .esg-game__name { flex: 1 1 auto; min-width: 0; }
.esg-game--ergebnis .esg-game__team + .esg-game__team { border-top: 1px solid var(--esg-eisblau); }
.esg-game--ergebnis .esg-game__tore { flex: 0 0 4.5rem; font: 800 clamp(2rem, 1.6rem + 1.6vw, 2.75rem)/1 var(--font-body, "Montserrat", sans-serif); font-variant-numeric: tabular-nums; text-align: right; color: #7A869C; }
.esg-game--ergebnis .esg-game__team.is-sieger .esg-game__tore { color: var(--esg-navy); }
.esg-game--ergebnis .esg-game__team:not(.is-sieger):not(.is-esg) .esg-game__name { color: var(--esg-navy-80); }
.esg-game__zusatz { align-self: start; font: 700 .75rem/1.2 var(--font-body, "Montserrat", sans-serif); text-transform: uppercase; letter-spacing: .08em; color: var(--esg-navy-80); background: var(--esg-eisblau); padding: 4px 8px; border-radius: 2px; width: fit-content; }
.esg-game--ergebnis.esg-game--kompakt .esg-game__tore { font-size: 1.75rem; }

/* 0.20.5 – Ganze Karte ist ein Link: Texte behalten ihre Farbe (kein Link-Blau, kein „besucht“-Lila aus dem Kit) */
a.esg-card.esg-card, a.esg-card.esg-card:visited, a.esg-quickcard.esg-quickcard, a.esg-quickcard.esg-quickcard:visited { color: var(--esg-navy); }
a.esg-card.esg-card .esg-weg-text, a.esg-card.esg-card p, a.esg-card.esg-card .elementor-widget-text-editor, a.esg-card.esg-card .elementor-widget-text-editor p { color: var(--esg-navy-80); }
a.esg-quickcard.esg-quickcard .elementor-widget-text-editor, a.esg-quickcard.esg-quickcard .elementor-widget-text-editor p { color: var(--esg-navy-80); }

/* 0.21.2 – Turnierkarte: ESG oben, darunter die Teilnehmer als Chips */
.esg-game__teilnehmer { display: grid; gap: 8px; margin-top: var(--space-3, 12px); }
.esg-game__teilnehmer .esg-game__vs { padding-left: 0; }
.esg-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.esg-chip { font: 700 .9375rem/1.2 var(--font-body, "Montserrat", sans-serif); color: var(--esg-navy); background: var(--esg-eisblau); border: 1px solid var(--esg-eisgrau); border-radius: 2px; padding: 8px 12px; }
.esg-game--kompakt .esg-chip { font-size: .8125rem; padding: 6px 10px; }

/* 0.21.3 – Spielort mit Standort-Icon */
.esg-game__place { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; }
.esg-game__pin { flex: 0 0 auto; color: var(--esg-vereinblau); }

/* 0.22.0 – Eisdisco: Kennzeichnung mit Disco-Kugel, Hinweis direkt hinter der Zeit */
.esg-table .esg-slot { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; padding: 2px 0; }
.esg-table .esg-slot__zeit { font-variant-numeric: tabular-nums; min-width: 8.5rem; }
.esg-slot__tag { display: inline-flex; align-items: center; gap: 6px; font: 700 .8125rem/1.2 var(--font-body, "Montserrat", sans-serif); text-transform: uppercase; letter-spacing: .05em; color: var(--esg-navy); background: var(--esg-eisblau); padding: 3px 8px; border-radius: 2px; }
.esg-slot.is-disco .esg-slot__tag { background: #2A1B5C; color: var(--esg-weiss); }
.esg-slot__hint { font: 500 .875rem/1.3 var(--font-body, "Montserrat", sans-serif); color: var(--esg-navy-80); }
.esg-disco { flex: 0 0 auto; }
.esg-ezl__block.is-disco { background: #2A1B5C; color: var(--esg-weiss); gap: 5px; }
.is-dark .esg-ezl__block.is-disco { background: #C9B8FF; color: #2A1B5C; }
.esg-ezl__block.is-disco.is-past { background: var(--esg-eisgrau); color: var(--esg-navy); }

/* 0.23.0 – Kalender */
.esg-kal { --kal-eislaufen: var(--esg-vereinblau); --kal-eishockey: var(--esg-navy); --kal-eiskunstlauf: #7B61D9; --kal-eisstock: #0E8F7E; --kal-verein: var(--esg-navy-80); font-family: "Montserrat", system-ui, sans-serif; color: var(--esg-navy); }
.esg-kal__kopf { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.esg-kal__monat { margin: 0; flex: 1 1 auto; font: 400 clamp(2rem, 1.6rem + 1.4vw, 2.75rem)/1 "Bebas Neue", sans-serif; letter-spacing: .01em; text-transform: uppercase; }
.esg-kal__nav, .esg-kal__heute { min-width: 44px; height: 44px; border: 2px solid var(--esg-vereinblau); background: var(--esg-weiss); color: var(--esg-vereinblau); font: 700 1rem/1 "Montserrat", sans-serif; border-radius: 2px; cursor: pointer; padding: 0 14px; }
.esg-kal__nav:disabled { opacity: .35; cursor: default; }
.esg-kal__nav:not(:disabled):hover, .esg-kal__heute:hover { background: var(--esg-vereinblau); color: var(--esg-weiss); }
.esg-kal__filter { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.esg-kal__fb { border: 2px solid currentColor; background: var(--esg-weiss); border-radius: 2px; padding: 8px 14px; font: 700 .8125rem/1 "Montserrat", sans-serif; letter-spacing: .04em; text-transform: uppercase; cursor: pointer; opacity: .55; }
.esg-kal__fb.is-on { opacity: 1; background: currentColor; }
.esg-kal__fb.is-on { color: var(--c, var(--esg-vereinblau)); }
.esg-kal__fb.b-eislaufen { --c: var(--kal-eislaufen); color: var(--kal-eislaufen); } .esg-kal__fb.b-eishockey { --c: var(--kal-eishockey); color: var(--kal-eishockey); }
.esg-kal__fb.b-eiskunstlauf { --c: var(--kal-eiskunstlauf); color: var(--kal-eiskunstlauf); } .esg-kal__fb.b-eisstock { --c: var(--kal-eisstock); color: var(--kal-eisstock); }
.esg-kal__fb.b-verein { --c: var(--kal-verein); color: var(--kal-verein); }
.esg-kal__fb.is-on { color: var(--esg-weiss); background: var(--c); border-color: var(--c); }
.esg-kal__wt { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; font: 800 .75rem/1 "Montserrat", sans-serif; text-transform: uppercase; letter-spacing: .08em; color: var(--esg-navy-80); margin-bottom: 6px; }
.esg-kal__tage { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.esg-kal__tag { text-align: left; min-height: 118px; display: flex; flex-direction: column; gap: 3px; padding: 6px; background: var(--esg-weiss); border: 1px solid var(--esg-eisgrau); border-radius: 4px; cursor: pointer; font: inherit; color: inherit; }
.esg-kal__tag:hover { border-color: var(--esg-vereinblau); }
.esg-kal__tag.is-sel { outline: 3px solid var(--esg-vereinblau); outline-offset: -1px; }
.esg-kal__tag.is-heute .esg-kal__nr { background: var(--esg-vereinblau); color: var(--esg-weiss); }
.esg-kal__tag.is-ferien { background: #FFF6DB; border-color: #F0DFA4; }
.esg-kal__tag.is-vorbei { opacity: .7; }
.esg-kal__nr { align-self: flex-start; min-width: 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center; border-radius: 2px; font: 800 .875rem/1 "Montserrat", sans-serif; }
.esg-kal__chip { display: block; font: 500 .6875rem/1.25 "Montserrat", sans-serif; padding: 3px 5px; border-left: 3px solid var(--cc, var(--esg-vereinblau)); background: color-mix(in srgb, var(--cc, var(--esg-vereinblau)) 12%, var(--esg-weiss)); border-radius: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.esg-kal__chip b { font-weight: 800; }
.esg-kal__chip.b-eislaufen, .esg-kal__ev.b-eislaufen { --cc: var(--kal-eislaufen); } .esg-kal__chip.b-eishockey, .esg-kal__ev.b-eishockey { --cc: var(--kal-eishockey); }
.esg-kal__chip.b-eiskunstlauf, .esg-kal__ev.b-eiskunstlauf { --cc: var(--kal-eiskunstlauf); } .esg-kal__chip.b-eisstock, .esg-kal__ev.b-eisstock { --cc: var(--kal-eisstock); }
.esg-kal__chip.b-verein, .esg-kal__ev.b-verein { --cc: var(--kal-verein); }
.esg-kal__chip.k-sonder { --cc: var(--color-error); font-weight: 700; }
.esg-kal__chip .esg-disco, .esg-kal__ev .esg-disco { margin-right: 3px; vertical-align: -2px; color: #2A1B5C; }
.esg-kal__mehr { font: 700 .6875rem/1 "Montserrat", sans-serif; color: var(--esg-vereinblau); padding: 2px 4px; }
.esg-kal__detail { margin-top: 20px; background: var(--esg-weiss); border: 1px solid var(--esg-eisgrau); border-radius: 4px; padding: 20px 24px; }
.esg-kal__detail h4, .esg-kal__liste h4 { margin: 0 0 8px; font: 400 1.75rem/1.1 "Bebas Neue", sans-serif; text-transform: uppercase; letter-spacing: .01em; }
.esg-kal__fer { margin: 0 0 8px; font-weight: 700; color: #8A6D00; }
.esg-kal ul { list-style: none; margin: 0; padding: 0; }
.esg-kal__ev { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 10px 0 10px 12px; border-left: 4px solid var(--cc, var(--esg-vereinblau)); margin: 0 0 8px; background: color-mix(in srgb, var(--cc, var(--esg-vereinblau)) 7%, var(--esg-weiss)); }
.esg-kal__evb { font: 800 .6875rem/1 "Montserrat", sans-serif; text-transform: uppercase; letter-spacing: .08em; color: var(--cc, var(--esg-vereinblau)); }
.esg-kal__evs, .esg-kal__evo { font-size: .875rem; color: var(--esg-navy-80); }
.esg-kal__evo::before { content: "📍 "; }
.esg-kal__slot { display: block; flex-basis: 100%; font-size: .9375rem; }
.esg-kal__slot.is-disco b { color: #2A1B5C; }
.esg-kal__slot i { color: var(--esg-navy-80); font-style: normal; margin-left: 6px; }
.esg-kal__legende { margin: 12px 0 0; font-size: .8125rem; color: var(--esg-navy-80); display: flex; align-items: center; gap: 8px; }
.esg-kal__fkey { width: 16px; height: 16px; background: #FFF6DB; border: 1px solid #F0DFA4; border-radius: 2px; }
.esg-kal__liste { display: none; }
.esg-kal__lt h5 { margin: 16px 0 6px; font: 800 .9375rem/1.2 "Montserrat", sans-serif; }
.esg-kal__lt.is-heute h5 { color: var(--esg-vereinblau); }
.esg-kal__fallback { padding-left: 1.2rem; list-style: disc; }
@media (max-width: 900px) {
	.esg-kal__tag { min-height: 78px; padding: 4px; }
	.esg-kal__chip { font-size: 0; padding: 0; height: 5px; border: 0; background: var(--cc, var(--esg-vereinblau)); border-radius: 3px; }
	.esg-kal__mehr { display: none; }
}
@media (max-width: 767px) {
	.esg-kal__grid, .esg-kal__detail { display: none; }
	.esg-kal__liste { display: block; }
	.esg-kal__legende { display: none; }
}

/* 0.23.1 – Kalender: Kit-Button-Stile (blau/weiß/zentriert) für die Tageskacheln überschreiben, Lesbarkeit */
.esg-kal .esg-kal__tag.esg-kal__tag {
	appearance: none; -webkit-appearance: none; background: var(--esg-weiss); color: var(--esg-navy); text-align: left; text-transform: none; letter-spacing: 0;
	box-shadow: none; border: 1px solid var(--esg-eisgrau); border-radius: 4px; font: 500 .875rem/1.2 "Montserrat", sans-serif; padding: 6px;
	display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 3px; min-height: 124px;
}
.esg-kal .esg-kal__tag.esg-kal__tag:hover, .esg-kal .esg-kal__tag.esg-kal__tag:focus-visible { background: var(--ice-highlight); color: var(--esg-navy); border-color: var(--esg-vereinblau); }
.esg-kal .esg-kal__tag.esg-kal__tag.is-ferien { background: #FFF6DB; border-color: #F0DFA4; }
.esg-kal .esg-kal__tag.esg-kal__tag.is-sel { outline: 3px solid var(--esg-vereinblau); outline-offset: -1px; }
.esg-kal .esg-kal__tag.esg-kal__tag.is-vorbei { opacity: .75; }
.esg-kal .esg-kal__tag .esg-kal__nr { align-self: flex-start; background: transparent; color: var(--esg-navy); }
.esg-kal .esg-kal__tag.is-heute .esg-kal__nr { background: var(--esg-vereinblau); color: var(--esg-weiss); }
.esg-kal .esg-kal__tag .esg-kal__chip { color: var(--esg-navy); background: color-mix(in srgb, var(--cc, var(--esg-vereinblau)) 16%, var(--esg-weiss)); border-left: 4px solid var(--cc, var(--esg-vereinblau)); font-size: .75rem; line-height: 1.3; padding: 3px 5px; }
.esg-kal .esg-kal__tag .esg-kal__chip b { color: inherit; }
.esg-kal .esg-kal__tag .esg-kal__chip.k-sonder { color: #7A1510; background: var(--color-error-bg); --cc: var(--color-error); }
.esg-kal .esg-kal__tag .esg-kal__mehr { color: var(--esg-vereinblau); background: transparent; }
.esg-kal .esg-kal__nav.esg-kal__nav, .esg-kal .esg-kal__heute.esg-kal__heute { background: var(--esg-weiss); color: var(--esg-vereinblau); border: 2px solid var(--esg-vereinblau); text-transform: none; letter-spacing: 0; box-shadow: none; }
.esg-kal .esg-kal__nav.esg-kal__nav:hover:not(:disabled), .esg-kal .esg-kal__heute.esg-kal__heute:hover { background: var(--esg-vereinblau); color: var(--esg-weiss); }
.esg-kal .esg-kal__fb.esg-kal__fb { background: var(--esg-weiss); color: var(--c); border: 2px solid var(--c); box-shadow: none; opacity: .65; }
.esg-kal .esg-kal__fb.esg-kal__fb.is-on { background: var(--c); color: var(--esg-weiss); opacity: 1; }
.esg-kal .esg-kal__nr { font-size: .9375rem; }
@media (max-width: 900px) {
	.esg-kal .esg-kal__tag.esg-kal__tag { min-height: 78px; }
	.esg-kal .esg-kal__tag .esg-kal__chip { font-size: 0; height: 6px; padding: 0; border: 0; background: var(--cc, var(--esg-vereinblau)); }
}

/* 0.25.0 – Galerie */
.esg-gal { font-family: "Montserrat", system-ui, sans-serif; color: var(--esg-navy); }
.esg-gal__filter { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 16px; margin-bottom: 20px; }
.esg-gal__filter label { display: grid; gap: 4px; font: 700 .75rem/1 "Montserrat", sans-serif; text-transform: uppercase; letter-spacing: .06em; }
.esg-gal__filter select { min-width: 12rem; height: 44px; border: 2px solid var(--esg-navy); border-radius: 2px; background: var(--esg-weiss); color: var(--esg-navy); padding: 0 12px; font: 500 .9375rem/1 "Montserrat", sans-serif; text-transform: none; letter-spacing: 0; }
.esg-gal .esg-gal__reset { height: 44px; padding: 0 16px; border: 2px solid var(--esg-vereinblau); background: var(--esg-weiss); color: var(--esg-vereinblau); border-radius: 2px; font: 700 .875rem/1 "Montserrat", sans-serif; cursor: pointer; text-transform: none; letter-spacing: 0; box-shadow: none; }
.esg-gal .esg-gal__reset:hover { background: var(--esg-vereinblau); color: var(--esg-weiss); }
.esg-gal__count { margin-left: auto; font: 600 .875rem/1 "Montserrat", sans-serif; color: var(--esg-navy-80); }
.esg-gal__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.esg-gal__item { margin: 0; background: var(--esg-weiss); border: 1px solid var(--esg-eisgrau); border-radius: 4px; overflow: hidden; }
.esg-gal__item[hidden] { display: none; }
.esg-gal__link { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--esg-eisblau); }
.esg-gal__link img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s; }
.esg-gal__link:hover img, .esg-gal__link:focus-visible img { transform: scale(1.04); }
.esg-gal__link:focus-visible { outline: 3px solid var(--esg-vereinblau); outline-offset: -3px; }
.esg-gal__item figcaption { display: grid; gap: 2px; padding: 10px 12px; font-size: .8125rem; line-height: 1.3; }
.esg-gal__titel { font-weight: 700; }
.esg-gal__credit { color: var(--esg-navy-80); }
.esg-gal__more { text-align: center; margin: 24px 0 0; }
.esg-gal .esg-gal__more button { height: 48px; padding: 0 28px; border: 2px solid var(--esg-vereinblau); background: var(--esg-vereinblau); color: var(--esg-weiss); border-radius: 2px; font: 700 .9375rem/1 "Montserrat", sans-serif; cursor: pointer; text-transform: none; letter-spacing: 0; }
.esg-gal .esg-gal__more button:hover { background: var(--esg-weiss); color: var(--esg-vereinblau); }
html.esg-gal-offen { overflow: hidden; }
.esg-lb { position: fixed; inset: 0; z-index: 99999; background: rgba(14,31,61,.94); display: flex; align-items: center; justify-content: center; padding: 56px 64px; }
.esg-lb figure { margin: 0; max-width: 100%; max-height: 100%; display: grid; gap: 10px; justify-items: center; }
.esg-lb img { max-width: 100%; max-height: calc(100vh - 160px); object-fit: contain; border-radius: 2px; }
.esg-lb figcaption { color: var(--esg-weiss); text-align: center; font-size: .9375rem; display: grid; gap: 2px; }
.esg-lb figcaption span { color: #C9D6E8; font-size: .8125rem; }
.esg-lb button { position: absolute; border: 0; background: rgba(255,255,255,.14); color: var(--esg-weiss); width: 48px; height: 48px; border-radius: 2px; font: 400 2rem/1 "Montserrat", sans-serif; cursor: pointer; padding: 0; text-transform: none; letter-spacing: 0; box-shadow: none; }
.esg-lb button:hover { background: rgba(255,255,255,.28); }
.esg-lb__x { top: 12px; right: 12px; } .esg-lb__p { left: 8px; top: 50%; transform: translateY(-50%); } .esg-lb__n { right: 8px; top: 50%; transform: translateY(-50%); }
@media (max-width: 767px) { .esg-gal__grid { grid-template-columns: repeat(2, 1fr); gap: 10px; } .esg-gal__item figcaption { display: none; } .esg-gal__filter select { min-width: 9rem; } .esg-lb { padding: 56px 8px; } }
.esg-gal__filter[hidden], .esg-gal__more[hidden] { display: none; }

/* 0.25.1 – Galerie: Albenübersicht als erste Ebene */
.esg-gal[data-ansicht="alben"] .esg-gal__bilder, .esg-gal[data-ansicht="bilder"] .esg-gal__alben { display: none; }
.esg-gal__albenliste { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; }
.esg-gal__album[hidden] { display: none; }
.esg-gal .esg-gal__albumlink { display: block; background: var(--esg-weiss); border: 1px solid var(--esg-eisgrau); border-radius: 4px; overflow: hidden; text-decoration: none; color: var(--esg-navy); transition: border-color .2s, box-shadow .2s, transform .2s; }
.esg-gal .esg-gal__albumlink:hover, .esg-gal .esg-gal__albumlink:focus-visible { border-color: var(--esg-vereinblau); box-shadow: 0 8px 22px rgba(14,31,61,.14); transform: translateY(-3px); }
.esg-gal__cover { display: block; aspect-ratio: 4 / 3; background: var(--esg-eisblau); overflow: hidden; }
.esg-gal__cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.esg-gal__albumtext { display: grid; gap: 4px; padding: 14px 16px 16px; }
.esg-gal__albumname { font: 400 1.5rem/1.1 "Bebas Neue", sans-serif; text-transform: uppercase; letter-spacing: .01em; color: var(--esg-navy); }
.esg-gal__albummeta { font: 500 .8125rem/1.35 "Montserrat", sans-serif; color: var(--esg-navy-80); }
.esg-gal .esg-gal__back { height: 44px; padding: 0 16px; border: 2px solid var(--esg-vereinblau); background: var(--esg-weiss); color: var(--esg-vereinblau); border-radius: 2px; font: 700 .875rem/1 "Montserrat", sans-serif; cursor: pointer; text-transform: none; letter-spacing: 0; box-shadow: none; }
.esg-gal .esg-gal__back:hover { background: var(--esg-vereinblau); color: var(--esg-weiss); }
.esg-gal__back[hidden], .esg-gal__albumfilter[hidden], .esg-gal__albumtitel[hidden] { display: none; }
.esg-gal__albumtitel { margin: 0 0 14px; font: 400 clamp(1.75rem, 1.4rem + 1.2vw, 2.25rem)/1.05 "Bebas Neue", sans-serif; text-transform: uppercase; letter-spacing: .01em; }

/* 0.25.4 – Galerie: Filter immer oben, Abstände, Vorschaubilder füllen den Rahmen (kein grauer Balken) */
.esg-gal .esg-gal__filter { margin: 0 0 28px; padding-bottom: 20px; border-bottom: 1px solid var(--esg-eisgrau); }
.esg-gal .esg-gal__albenliste { margin-top: 0; }
.esg-gal .esg-gal__cover, .esg-gal .esg-gal__link { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--esg-eisblau); }
.esg-gal .esg-gal__cover img, .esg-gal .esg-gal__link img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center; display: block; }
.esg-gal .esg-gal__albumname { font-size: 1.375rem; hyphens: manual; -webkit-hyphens: manual; overflow-wrap: normal; word-break: normal; }
.esg-gal__count { padding-bottom: 4px; }
.esg-lb img { background: transparent; }

/* 0.26.0 – Suche */
.esg-sf { position: relative; flex: 0 0 auto; }
.esg-sf .esg-sf__btn { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 2px solid transparent; border-radius: 2px; background: transparent; color: var(--esg-weiss); cursor: pointer; padding: 0; box-shadow: none; }
.esg-sf .esg-sf__btn:hover, .esg-sf .esg-sf__btn[aria-expanded="true"] { background: rgba(255,255,255,.16); color: var(--esg-weiss); }
.esg-sf .esg-sf__btn:focus-visible { outline: 3px solid #9CC4FF; outline-offset: 2px; }
.esg-sf__panel { position: absolute; right: 0; top: calc(100% + 12px); z-index: 200; display: flex; gap: 8px; width: min(420px, calc(100vw - 32px)); padding: 12px; background: var(--esg-weiss); border: 1px solid var(--esg-eisgrau); border-radius: 4px; box-shadow: 0 12px 32px rgba(14,31,61,.25); }
.esg-sf__panel[hidden] { display: none; }
.esg-sf__panel input[type="search"], .esg-suche__form input[type="search"] { flex: 1 1 auto; min-width: 0; height: 48px; border: 2px solid var(--esg-navy); border-radius: 2px; padding: 0 14px; font: 500 1rem/1 "Montserrat", sans-serif; color: var(--esg-navy); background: var(--esg-weiss); }
.esg-sf__panel button[type="submit"], .esg-suche__form button[type="submit"] { height: 48px; padding: 0 20px; border: 2px solid var(--esg-vereinblau); background: var(--esg-vereinblau); color: var(--esg-weiss); border-radius: 2px; font: 700 .9375rem/1 "Montserrat", sans-serif; cursor: pointer; text-transform: none; letter-spacing: 0; box-shadow: none; }
.esg-sf__panel button[type="submit"]:hover, .esg-suche__form button[type="submit"]:hover { background: var(--esg-navy); border-color: var(--esg-navy); }
.esg-suche { font-family: "Montserrat", system-ui, sans-serif; color: var(--esg-navy); max-width: 860px; }
.esg-suche__form { display: flex; gap: 8px; margin-bottom: 24px; }
.esg-suche__schnell { list-style: none; margin: 0 0 20px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.esg-suche__schnell a { display: inline-block; padding: 10px 16px; border: 2px solid var(--esg-vereinblau); border-radius: 2px; color: var(--esg-vereinblau); font-weight: 700; text-decoration: none; }
.esg-suche__schnell a:hover { background: var(--esg-vereinblau); color: var(--esg-weiss); }
.esg-suche__anzahl { font-weight: 700; margin: 0 0 12px; }
.esg-suche__liste { list-style: none; margin: 0; padding: 0; }
.esg-suche__treffer { display: grid; gap: 4px; padding: 18px 0; border-bottom: 1px solid var(--esg-eisgrau); }
.esg-suche__art { font: 800 .6875rem/1 "Montserrat", sans-serif; text-transform: uppercase; letter-spacing: .08em; color: var(--esg-navy-80); }
.esg-suche__titel { font: 400 1.75rem/1.1 "Bebas Neue", sans-serif; letter-spacing: .01em; text-transform: uppercase; color: var(--esg-vereinblau); text-decoration: none; }
.esg-suche__titel:hover { text-decoration: underline; }
.esg-suche__text { color: var(--esg-navy-80); font-size: .9375rem; line-height: 1.5; }
.esg-suche mark { background: #FFE98A; color: inherit; padding: 0 2px; border-radius: 2px; }
.esg-suche__seiten { margin: 20px 0; display: flex; gap: 8px; flex-wrap: wrap; }
.esg-suche__seiten .page-numbers { padding: 8px 14px; border: 2px solid var(--esg-vereinblau); border-radius: 2px; color: var(--esg-vereinblau); font-weight: 700; text-decoration: none; }
.esg-suche__seiten .page-numbers.current { background: var(--esg-vereinblau); color: var(--esg-weiss); }
.esg-suche__hinweis { margin-top: 20px; }
@media (max-width: 767px) { .esg-suche__form { flex-direction: column; } .esg-sf__panel { right: -8px; } }

/* 0.26.1 / 0.39.3 – Einheitlicher, ruhiger Button-Hover: keine Größen-/Positionsänderung, kein Rahmen und kein Schatten (Text-Links bleiben Text-Links) */
.elementor-widget-button .elementor-button.elementor-button,
.elementor-widget-button .elementor-button.elementor-button:hover,
.elementor-widget-button .elementor-button.elementor-button:focus,
.elementor-widget-button .elementor-button.elementor-button:active,
.esg-btn.esg-btn:hover, .esg-btn.esg-btn:active {
  transform: none !important; translate: none !important; scale: none !important; zoom: 1;
  box-sizing: border-box;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
  animation: none !important;
}
.elementor-widget-button .elementor-button.elementor-button:hover, .elementor-widget-button .elementor-button.elementor-button:focus { box-shadow: none !important; }
.elementor-widget-button .elementor-button.elementor-button:focus-visible { outline: 3px solid #9CC4FF; outline-offset: 2px; }
.elementor-widget-button .elementor-button .elementor-button-text, .elementor-widget-button .elementor-button .elementor-button-content-wrapper { transform: none !important; }

/* 0.27.0 – News: einheitliche Vorschau, Beitragsbild, Vollbild */
.esg-nb { position: relative; display: block; width: 100%; aspect-ratio: 3 / 2; overflow: hidden; border-radius: 4px; background: var(--esg-eisblau); }
.esg-nb--breit { aspect-ratio: 16 / 9; }
.esg-nb .esg-nb__img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; display: block; }
.esg-nb--fuellen .esg-nb__img { object-fit: cover; }
.esg-nb--ganz .esg-nb__img { object-fit: contain; }
.elementor-widget-shortcode .esg-nb { border-radius: 0; }
.esg-bb { margin: 0 auto; max-width: 960px; }
.esg-bb .esg-bb__link { position: relative; display: block; background: var(--esg-eisblau); border-radius: 4px; overflow: hidden; line-height: 0; cursor: zoom-in; }
.esg-bb .esg-bb__img { display: block; width: 100%; height: auto; max-height: 80vh; object-fit: contain; margin: 0 auto; }
.esg-bb .esg-bb__hint { position: absolute; right: 12px; bottom: 12px; padding: 8px 12px; background: rgba(14,31,61,.85); color: var(--esg-weiss); font: 700 13px/1 "Montserrat", sans-serif; border-radius: 2px; }
.esg-nlb { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; background: rgba(14,31,61,.94); overflow: auto; padding: 16px; cursor: zoom-out; }
.esg-nlb img { max-width: 100%; max-height: calc(100vh - 32px); object-fit: contain; cursor: zoom-in; }
.esg-nlb.esg-nlb--gross { place-items: start center; } .esg-nlb.esg-nlb--gross img { max-width: none; max-height: none; cursor: zoom-out; }
.esg-nlb .esg-nlb__x { position: fixed; top: 12px; right: 12px; width: 44px; height: 44px; border: 2px solid var(--esg-weiss); border-radius: 2px; background: rgba(14,31,61,.8); color: var(--esg-weiss); font: 400 28px/1 sans-serif; cursor: pointer; padding: 0; text-transform: none; box-shadow: none; }
.esg-nlb .esg-nlb__x:hover { background: var(--esg-weiss); color: var(--esg-navy); }
.esg-nf { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 32px; }
.esg-nf .esg-nf__chip.esg-nf__chip { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border: 2px solid var(--esg-navy); border-radius: 2px; background: var(--esg-weiss); color: var(--esg-navy); font: 700 14px/1 "Montserrat", sans-serif; text-decoration: none; transition: background-color .2s, color .2s; }
.esg-nf .esg-nf__chip.esg-nf__chip:hover { background: var(--esg-eisblau); color: var(--esg-navy); }
.esg-nf .esg-nf__chip.esg-nf__chip.is-aktiv { background: var(--esg-navy); color: var(--esg-weiss); }

/* 0.27.2 – News-Kachel: ruhiger Textteil */
.esg-nt { display: flex; flex-direction: column; gap: 10px; }
.esg-nt .esg-nt__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; }
.esg-nt .esg-nt__kat { display: inline-block; padding: 3px 8px; background: var(--esg-eisblau); color: var(--esg-navy); border-radius: 2px; font: 700 11px/1.3 "Montserrat", sans-serif; letter-spacing: .06em; text-transform: uppercase; }
.esg-nt .esg-nt__datum { color: var(--esg-navy-80); font: 500 13px/1.3 "Montserrat", sans-serif; }
.esg-nt .esg-nt__titel { color: var(--esg-navy); font: 800 19px/1.3 "Montserrat", sans-serif; letter-spacing: 0; text-transform: none; hyphens: none; word-break: normal; text-wrap: pretty; }
.esg-nt .esg-nt__text { margin: 0; color: var(--esg-navy-80); font: 400 15px/1.55 "Montserrat", sans-serif; }
a.esg-loop-karte.esg-loop-karte, a.esg-loop-karte.esg-loop-karte:hover { text-decoration: none; color: inherit; cursor: pointer; transition: box-shadow .2s ease, border-color .2s ease; }
a.esg-loop-karte.esg-loop-karte:hover { box-shadow: 0 8px 22px rgba(14,31,61,.16); }
a.esg-loop-karte:hover .esg-nt__titel { color: var(--esg-vereinblau); }

/* 0.28.0 – News-Slider */
.esg-ns { position: relative; }
.esg-ns .esg-ns__track { display: flex; gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 4px 2px 16px; }
.esg-ns .esg-ns__track::-webkit-scrollbar { display: none; }
.esg-ns .esg-ns__karte { flex: 0 0 calc((100% - 48px) / 3); scroll-snap-align: start; display: flex; flex-direction: column; background: var(--esg-weiss); border-radius: 4px; overflow: hidden; box-shadow: 0 4px 20px rgba(14,31,61,.08); text-decoration: none; color: inherit; transition: box-shadow .2s ease; }
.esg-ns .esg-ns__karte:hover { box-shadow: 0 8px 22px rgba(14,31,61,.16); }
.esg-ns .esg-ns__karte:hover .esg-nt__titel { color: var(--esg-vereinblau); }
.esg-ns .esg-ns__karte .esg-nb { border-radius: 0; }
.esg-ns .esg-ns__text { display: block; padding: 20px 24px 24px; }
.esg-ns .esg-ns__nav { display: flex; justify-content: flex-end; gap: 8px; margin-top: 8px; }
.esg-ns .esg-ns__nav[hidden] { display: none; }
.esg-ns .esg-ns__btn.esg-ns__btn { width: 44px; height: 44px; padding: 0; border: 2px solid var(--esg-navy); border-radius: 2px; background: var(--esg-weiss); color: var(--esg-navy); font: 700 24px/1 "Montserrat", sans-serif; cursor: pointer; text-transform: none; box-shadow: none; transition: background-color .2s, color .2s; }
.esg-ns .esg-ns__btn.esg-ns__btn:hover:not(:disabled) { background: var(--esg-navy); color: var(--esg-weiss); }
.esg-ns .esg-ns__btn.esg-ns__btn:disabled { opacity: .35; cursor: default; }
@media (max-width: 1024px) { .esg-ns .esg-ns__karte { flex-basis: calc((100% - 24px) / 2); } }
@media (max-width: 640px) { .esg-ns .esg-ns__karte { flex-basis: 86%; } }

/* 0.28.1 – Beitragstitel im Einzelbeitrag: kein Link-Hover (Farbe/Unterstrich) */
.elementor-widget-theme-post-title .elementor-heading-title a,
.elementor-widget-theme-post-title .elementor-heading-title a:hover,
.elementor-widget-theme-post-title .elementor-heading-title a:focus {
  color: inherit !important; text-decoration: none !important; background-image: none !important; border: 0 !important; box-shadow: none !important; pointer-events: none; cursor: default;
}
.single-post .elementor-widget-theme-post-title .elementor-heading-title { text-decoration: none; }

/* 0.28.2 – News-Titel: Hover nur Farbe (kein Unterstrich quer durch den Text); Bildmodus nicht überschreibbar */
.esg-news .esg-news__title a, .esg-news:hover .esg-news__title a { background-image: none !important; text-decoration: none !important; }
.esg-news .esg-nb--ganz .esg-nb__img { object-fit: contain !important; }
.esg-news .esg-nb--fuellen .esg-nb__img { object-fit: cover !important; }
.esg-news .esg-nb .esg-nb__img { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; max-width: none !important; }

/* 0.29.1 – Titel bleibt beim Hover in seiner Farbe (Link erbt vom Titel) */
.elementor-widget-theme-post-title .elementor-heading-title a, .elementor-widget-theme-post-title .elementor-heading-title a:hover { color: inherit !important; }

/* 0.29.2 – Beitragsbild mittig und kleiner; Vorschau in „Mehr aus dem Verein“ kompakter */
.esg-bb.esg-bb { max-width: 100%; margin: 0 auto 32px; display: flex; justify-content: center; }
.esg-bb .esg-bb__link { width: fit-content; max-width: 100%; margin: 0 auto; box-shadow: 0 8px 28px rgba(14,31,61,.14); }
.esg-bb .esg-bb__img { width: auto; max-width: 100%; height: auto; max-height: min(68vh, 620px); }
.esg-bb:not(.esg-bb--plakat) .esg-bb__img { max-width: 760px; }
@media (max-width: 767px) { .esg-bb .esg-bb__img { max-height: 70vh; } }
.esg-newsblock .esg-news--lg .esg-nb, .esg-newsblock .esg-news--lg .esg-ph { aspect-ratio: 16 / 9; max-height: 280px; }
@media (min-width: 1025px) { .esg-newsblock { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; } }

/* 0.34.0 – Veranstaltungen */
.esg-vi { display: flex; flex-direction: column; gap: 16px; padding: 24px; background: var(--esg-eisblau); border-left: 4px solid var(--esg-vereinblau); border-radius: 2px; max-width: 800px; margin: 0 auto 32px; }
.esg-vi .esg-vi__liste { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px 24px; margin: 0; }
.esg-vi .esg-vi__liste div { margin: 0; }
.esg-vi dt { margin: 0 0 2px; color: var(--esg-navy-80); font: 700 12px/1.3 "Montserrat", sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.esg-vi dd { margin: 0; color: var(--esg-navy); font: 700 17px/1.4 "Montserrat", sans-serif; }
.esg-vi .esg-btn { align-self: flex-start; }
.esg-vs { display: inline-block; align-self: flex-start; padding: 4px 10px; border-radius: 2px; font: 700 12px/1.3 "Montserrat", sans-serif; letter-spacing: .06em; text-transform: uppercase; color: var(--esg-weiss); background: var(--esg-navy-80); }
.esg-vs--abgesagt { background: var(--color-error); } .esg-vs--ausverkauft { background: var(--status-hinweis); } .esg-vs--verschoben { background: var(--esg-vereinblau); }
.esg-vl { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; }
.esg-vl .esg-vk { display: flex; flex-direction: column; background: var(--esg-weiss); border-radius: 4px; overflow: hidden; box-shadow: 0 4px 20px rgba(14,31,61,.08); text-decoration: none; color: var(--esg-navy); transition: box-shadow .2s ease; }
.esg-vl .esg-vk:hover { box-shadow: 0 8px 22px rgba(14,31,61,.16); }
.esg-vl .esg-vk .esg-nb { border-radius: 0; aspect-ratio: 4 / 3; }
.esg-vk .esg-vk__body { display: flex; flex-direction: column; gap: 6px; padding: 18px 20px 22px; }
.esg-vk .esg-vk__datum { color: var(--esg-navy-80); font: 600 13px/1.3 "Montserrat", sans-serif; text-transform: uppercase; letter-spacing: .04em; }
.esg-vk .esg-vk__datum b { color: var(--esg-vereinblau); font: 400 28px/1 "Bebas Neue", Impact, sans-serif; letter-spacing: .01em; }
.esg-vk .esg-vk__titel { color: var(--esg-navy); font: 800 19px/1.3 "Montserrat", sans-serif; }
.esg-vk:hover .esg-vk__titel { color: var(--esg-vereinblau); }
.esg-vk .esg-vk__meta { color: var(--esg-navy-80); font: 400 14px/1.5 "Montserrat", sans-serif; }
.esg-kal .esg-kal__ev.is-abgesagt .esg-kal__evt { text-decoration: line-through; opacity: .7; }
.esg-kal .esg-kal__ev.is-abgesagt .esg-kal__evs { color: var(--color-error); font-weight: 700; }
.esg-vl .esg-vk.esg-vk--spiel { display: block; background: transparent; box-shadow: none; overflow: visible; }
.esg-vl .esg-vk--spiel .esg-game { height: 100%; }

/* 0.36.0 – Turnierkarte in schmaler Kachel, Monatsfilter, Highlights */
.esg-game.esg-game--turnier .esg-game__body { grid-template-columns: minmax(0, 1fr); align-items: start; }
.esg-game--turnier .esg-game__teams { font-size: clamp(1.5rem, 1.3rem + 1vw, 2rem); }
.esg-game--turnier .esg-game__team { flex-wrap: nowrap; }
.esg-game--turnier .esg-game__name { min-width: 0; overflow-wrap: anywhere; line-height: 1.05; }
.esg-game--turnier .esg-game__teilnehmer .esg-game__vs { padding-left: 0; }
.esg-nf.esg-nf--monat { margin-top: -16px; }
.esg-nf .esg-nf__label { align-self: center; margin-right: 4px; color: var(--esg-navy-80); font: 700 12px/1 "Montserrat", sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.esg-vl.esg-vl--pin { margin-bottom: 40px; padding-bottom: 40px; border-bottom: 1px solid var(--esg-eisgrau); }
.esg-vl--pin .esg-vk { border-top: 4px solid var(--esg-vereinblau); }
.esg-vs.esg-vs--hl { background: var(--esg-vereinblau); }

/* 0.36.1 – Feinschliff für alle Bildschirmgrößen (Veranstaltungen, Filter, Info-Kasten) */
.esg-vl { align-items: start; }
.esg-vl.esg-vl--pin { grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); }
.esg-vk .esg-vk__titel { overflow-wrap: anywhere; hyphens: manual; }
@media (max-width: 767px) {
  .esg-vl, .esg-vl.esg-vl--pin { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .esg-nf { gap: 6px; margin-bottom: 24px; }
  .esg-nf .esg-nf__chip.esg-nf__chip { min-height: 44px; padding: 0 14px; font-size: 13px; }
  .esg-nf.esg-nf--monat { margin-top: -8px; }
  .esg-vi { padding: 18px 16px; }
  .esg-vi .esg-btn { align-self: stretch; text-align: center; }
  .esg-vl .esg-game__foot .esg-btn { width: 100%; text-align: center; }
}

/* 0.37.0 – Vergangenes grau mit rotem Etikett, Zeitraum-Filter */
.esg-vl .esg-vk-wrap { position: relative; display: block; }
.esg-vl .esg-vk-wrap.is-vorbei .esg-vk, .esg-vl .esg-vk-wrap.is-vorbei .esg-game { background: #EEF0F3; box-shadow: none; filter: grayscale(.85); opacity: .82; }
.esg-vl .esg-vk-wrap.is-vorbei .esg-vk .esg-nb { opacity: .8; }
.esg-vl .esg-vk-wrap .esg-vv { position: absolute; top: 12px; right: 12px; z-index: 3; padding: 5px 10px; border-radius: 2px; background: var(--color-error); color: var(--esg-weiss); font: 700 12px/1.2 "Montserrat", sans-serif; letter-spacing: .08em; text-transform: uppercase; box-shadow: 0 2px 6px rgba(0,0,0,.2); }
.esg-vl .esg-vk-wrap--spiel .esg-vk--spiel { display: block; background: transparent; box-shadow: none; overflow: visible; }
.esg-nf.esg-nf--zeit { margin-top: -16px; }
@media (max-width: 767px) { .esg-nf.esg-nf--zeit { margin-top: -8px; } }

/* 0.38.0 – Veranstaltung im News-Slider */
.esg-nb.esg-nb--datum { display: flex; flex-direction: column; align-items: center; justify-content: center; background: var(--esg-navy); color: var(--esg-weiss); }
.esg-nb--datum b { font: 400 clamp(64px, 12vw, 96px)/1 "Bebas Neue", Impact, sans-serif; letter-spacing: .01em; }
.esg-nb--datum i { font: 700 16px/1 "Montserrat", sans-serif; font-style: normal; letter-spacing: .12em; text-transform: uppercase; color: var(--esg-hellblau); }
.esg-nt .esg-nt__kat.esg-nt__kat--ver { background: var(--esg-vereinblau); color: var(--esg-weiss); }
.esg-vl + .esg-more { margin-top: 24px; }
.esg-more .esg-vl { margin-top: 24px; }

/* 0.40.0 – Abschnitte auf Abteilungsseiten (blenden sich selbst aus, wenn leer) */
.esg-sk { margin: 0 0 24px; }
.esg-sk .esg-sk__label { margin: 0 0 8px; color: var(--esg-navy-80); font: 700 13px/1.3 "Montserrat", sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.esg-sk .esg-sk__titel { margin: 0; color: var(--esg-navy); font: 400 clamp(36px, 5vw, 56px)/1 "Bebas Neue", Impact, sans-serif; letter-spacing: .01em; text-transform: uppercase; }

/* 0.42.0 – Ansprechpersonen */
.esg-kontakt { margin-top: 24px; }
.esg-kontakt .esg-kontakt__liste { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 16px; }
.esg-kontakt .esg-kontakt__karte { display: flex; flex-direction: column; gap: 4px; padding: 16px 20px; background: var(--esg-weiss); border: 1px solid var(--esg-eisgrau); border-left: 4px solid var(--esg-vereinblau); border-radius: 2px; }
.esg-kontakt .esg-kontakt__karte strong { color: var(--esg-navy); font: 800 17px/1.3 "Montserrat", sans-serif; }
.esg-kontakt .esg-kontakt__funktion { color: var(--esg-navy-80); font: 600 13px/1.4 "Montserrat", sans-serif; text-transform: uppercase; letter-spacing: .04em; }
.esg-kontakt .esg-kontakt__karte a { color: var(--esg-vereinblau); font: 600 15px/1.4 "Montserrat", sans-serif; text-decoration: none; word-break: break-all; }
.esg-kontakt .esg-kontakt__karte a:hover { text-decoration: underline; }

/* 0.43.1 – Elementor-Buttons: Der Kit setzt im Hover-Zustand „border-style:none“ → der Rahmen (2 px) fiel weg und der Button schrumpfte um 4 px. Nur der Stil bleibt „solid“, die Breite kommt wie im Normalzustand (Text-Links mit 0 px bleiben ohne Rahmen). */
.elementor-widget-button .elementor-button.elementor-button:hover,
.elementor-widget-button .elementor-button.elementor-button:focus,
.elementor-widget-form .elementor-button.elementor-button:hover,
.elementor-widget-form .elementor-button.elementor-button:focus { border-style: solid !important; }

/* 0.44.0 – Gutenberg-Muster: Hinweis-Kasten und Button im Vereinsdesign */
.esg-muster-hinweis.esg-muster-hinweis { background: var(--esg-eisblau); border-left: 4px solid var(--esg-vereinblau); border-radius: 2px; padding: 16px 20px; margin: 24px 0; }
.esg-muster-hinweis.esg-muster-hinweis p { margin: 0; }
.esg-muster-btn.esg-muster-btn .wp-block-button__link { background: var(--esg-vereinblau); color: var(--esg-weiss); border: 2px solid var(--esg-vereinblau); border-radius: 2px; padding: 14px 24px; font-weight: 700; text-decoration: none; }
.esg-muster-btn.esg-muster-btn .wp-block-button__link:hover, .esg-muster-btn.esg-muster-btn .wp-block-button__link:focus { background: var(--esg-mittelblau); border-color: var(--esg-mittelblau); color: var(--esg-weiss); }

/* 0.45.0 – Icon-Set: [esg_icon name="uhr"] */
.esg-icon { display: inline-flex; vertical-align: middle; line-height: 0; color: inherit; }
.esg-icon svg { display: block; }
.esg-icon--blau { color: var(--esg-vereinblau); } .esg-icon--navy { color: var(--esg-navy); } .esg-icon--hell { color: var(--esg-hellblau); } .esg-icon--weiss { color: var(--esg-weiss); }

/* 0.48.0 – Gutenberg-Layout: Section-Hintergründe, Spalten, Buttons, Tabelle (Vereinsdesign, nur Tokens) */
.wp-block-group.is-style-esg-hell, .wp-block-group.is-style-esg-eisblau, .wp-block-group.is-style-esg-dunkel { padding: 48px 24px; margin: 32px 0; border-radius: 4px; }
.wp-block-group.is-style-esg-hell { background: var(--esg-weiss); }
.wp-block-group.is-style-esg-eisblau { background: var(--esg-eisblau); }
.wp-block-group.is-style-esg-dunkel { background: var(--esg-navy); color: var(--esg-weiss); }
.wp-block-group.is-style-esg-dunkel :is(h1, h2, h3, h4, p, li) { color: var(--esg-weiss); }
.wp-block-group.is-style-esg-dunkel a:not(.wp-block-button__link) { color: var(--esg-hellblau); }
.wp-block-group.is-style-esg-karte { background: var(--esg-weiss); border: 1px solid var(--esg-eisgrau); border-radius: 4px; padding: 24px; }
.wp-block-group.is-style-esg-hinweis { background: var(--esg-eisblau); border-left: 4px solid var(--esg-vereinblau); border-radius: 2px; padding: 16px 20px; margin: 24px 0; }
.wp-block-group.is-style-esg-hinweis > :last-child { margin-bottom: 0; }
.wp-block-columns.esg-spalten { gap: 32px; margin: 24px 0; }
@media (max-width: 781px) { .wp-block-group.is-style-esg-hell, .wp-block-group.is-style-esg-eisblau, .wp-block-group.is-style-esg-dunkel { padding: 32px 16px; } }

.wp-block-button .wp-block-button__link.wp-element-button { background: var(--esg-vereinblau); color: var(--esg-weiss); border: 2px solid var(--esg-vereinblau); border-radius: 2px; padding: 14px 24px; font-weight: 700; text-decoration: none; }
.wp-block-button .wp-block-button__link.wp-element-button:hover, .wp-block-button .wp-block-button__link.wp-element-button:focus { background: var(--esg-mittelblau); border-color: var(--esg-mittelblau); color: var(--esg-weiss); }
.wp-block-button.is-style-esg-outline .wp-block-button__link.wp-element-button { background: transparent; color: var(--esg-vereinblau); }
.wp-block-button.is-style-esg-outline .wp-block-button__link.wp-element-button:hover, .wp-block-button.is-style-esg-outline .wp-block-button__link.wp-element-button:focus { background: var(--esg-eisblau); color: var(--esg-vereinblau); border-color: var(--esg-vereinblau); }
.wp-block-group.is-style-esg-dunkel .wp-block-button.is-style-esg-outline .wp-block-button__link.wp-element-button { color: var(--esg-weiss); border-color: var(--esg-weiss); }

.wp-block-table table { border-collapse: collapse; width: 100%; }
.wp-block-table th, .wp-block-table td { padding: 12px 16px; border: 1px solid var(--esg-eisgrau); text-align: left; }
.wp-block-table thead th { background: var(--esg-navy); color: var(--esg-weiss); border-color: var(--esg-navy); }
.wp-block-table.is-style-esg-zebra tbody tr:nth-child(even) { background: var(--esg-eisblau); }
.wp-block-image.is-style-esg-rahmen img { border: 1px solid var(--esg-eisgrau); border-radius: 4px; }
.wp-block-image img { height: auto; max-width: 100%; }

/* 0.48.1 – eigene Layout-Blöcke: ESG Section und ESG Spalten (Gutenberg) */
.wp-block-esg-section { padding: 48px 24px; margin: 32px 0; border-radius: 4px; background: var(--esg-weiss); }
.wp-block-esg-section.is-style-esg-eisblau { background: var(--esg-eisblau); }
.wp-block-esg-section.is-style-esg-dunkel { background: var(--esg-navy); color: var(--esg-weiss); }
.wp-block-esg-section.is-style-esg-dunkel :is(h1, h2, h3, h4, p, li) { color: var(--esg-weiss); }
.wp-block-esg-section.is-style-esg-dunkel a:not(.wp-block-button__link) { color: var(--esg-hellblau); }
.wp-block-esg-section.is-style-esg-dunkel .wp-block-button.is-style-esg-outline .wp-block-button__link.wp-element-button { color: var(--esg-weiss); border-color: var(--esg-weiss); }
.wp-block-esg-section.is-style-esg-karte { border: 1px solid var(--esg-eisgrau); padding: 24px; }
.wp-block-esg-section.is-style-esg-hinweis { background: var(--esg-eisblau); border-left: 4px solid var(--esg-vereinblau); border-radius: 2px; padding: 16px 20px; margin: 24px 0; }
.wp-block-esg-section > :first-child { margin-top: 0; } .wp-block-esg-section > :last-child { margin-bottom: 0; }
.wp-block-esg-spalten { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 32px; margin: 24px 0; }
.wp-block-esg-spalte { min-width: 0; } .wp-block-esg-spalte > :first-child { margin-top: 0; }
@media (max-width: 781px) { .wp-block-esg-section { padding: 32px 16px; } }

/* 0.48.2 – Header: Such-Knopf wird nicht mehr zusammengedrückt (verursachte seitliches Scrollen); unter 1280 px Platz sparen, die zwei Header-Buttons stehen dort im Menü */
.esg-sf { min-width: 44px; }
.elementor-location-header .elementor-widget-shortcode:has(.esg-sf) { flex: none; }
@media (max-width: 1279px) { .elementor-location-header .esg-header-btns, .elementor-location-header .elementor-widget-button { display: none; } }

/* 0.52.0 – Trainingsplan als Raster (Gruppen × Wochentage); am Handy pro Gruppe eine Karte */
.esg-plan-wrap { width: 100%; }
.esg-plan { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--esg-weiss); border: 1px solid var(--esg-eisgrau); border-radius: 4px; overflow: hidden; }
.esg-plan th, .esg-plan td { padding: 14px 16px; text-align: left; vertical-align: middle; border-bottom: 1px solid var(--esg-eisgrau); }
.esg-plan thead th { background: var(--esg-navy); color: var(--esg-weiss); font-size: .8125rem; letter-spacing: .06em; text-transform: uppercase; border-bottom: 0; }
.esg-plan tbody tr:last-child th, .esg-plan tbody tr:last-child td { border-bottom: 0; }
.esg-plan tbody tr:nth-child(even) { background: var(--esg-eisblau); }
.esg-plan tbody th { font-weight: 800; color: var(--esg-navy); min-width: 190px; }
.esg-plan tbody th small { display: block; margin-top: 2px; font-weight: 500; font-size: .8125rem; color: var(--esg-navy-80); }
.esg-plan__zeit { display: inline-block; padding: 4px 10px; border-radius: 2px; background: var(--esg-weiss); border: 1px solid var(--esg-vereinblau); color: var(--esg-vereinblau); font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.esg-plan tbody tr:nth-child(even) .esg-plan__zeit { background: var(--esg-weiss); }
.esg-plan__leer { color: var(--esg-navy-80); opacity: .5; }
@media (max-width: 767px) {
	.esg-plan, .esg-plan tbody, .esg-plan tr, .esg-plan th, .esg-plan td { display: block; width: 100%; box-sizing: border-box; }
	.esg-plan { border: 0; background: transparent; }
	.esg-plan thead { position: absolute; left: -9999px; }
	.esg-plan tbody tr { margin: 0 0 12px; background: var(--esg-weiss); border: 1px solid var(--esg-eisgrau); border-left: 4px solid var(--esg-vereinblau); border-radius: 2px; }
	.esg-plan tbody tr:nth-child(even) { background: var(--esg-weiss); }
	.esg-plan tbody th { min-width: 0; background: var(--esg-eisblau); border-bottom: 1px solid var(--esg-eisgrau); }
	.esg-plan td { display: flex; justify-content: space-between; align-items: center; gap: 12px; border-bottom: 1px solid var(--esg-eisgrau); }
	.esg-plan td:last-child { border-bottom: 0; }
	.esg-plan td::before { content: attr(data-label); font-weight: 700; color: var(--esg-navy); }
	.esg-plan td.esg-plan__leer { display: none; }
}
.esg-plan__hinweis { color: var(--esg-navy-80); font-weight: 600; }
@media (max-width: 767px) { .esg-plan td.esg-plan__hinweis { display: block; } }

/* Schnellleiste (Zeiten, Preise, Route, Anrufen) nur am Handy, unabhängig von den Elementor-Breakpoints (Laptop, Widescreen …) */
@media (min-width:768px){.esg-schnellleiste.esg-schnellleiste{display:none!important}}

/* Abgesagte Spiele (0.54.0): ausgegraut, rotes Label „Abgesagt“, bleiben im Spielplan */
.esg-tag.esg-tag--abgesagt{background:var(--color-error);color:var(--esg-weiss)}
.esg-game.esg-game--abgesagt{background:#EEF0F3;box-shadow:none}
.esg-game.esg-game--abgesagt .esg-game__body,.esg-game.esg-game--abgesagt .esg-game__when{filter:grayscale(.9);opacity:.65}
.esg-game.esg-game--abgesagt .esg-game__abs{text-decoration:line-through;text-decoration-thickness:2px}
.esg-game.esg-game--abgesagt .esg-game__abgesagt-text{font:700 .9375rem/1.4 var(--font-body);color:var(--color-error)}
/* Statusleiste: abgesagtes nächstes Heimspiel */
.esg-statusbar .esg-statusbar__game b.is-abgesagt{text-decoration:line-through;text-decoration-thickness:2px;opacity:.75}
.esg-statusbar .esg-statusbar__abgesagt{margin-left:.5rem;padding:2px 8px;border-radius:2px;background:var(--color-error);color:var(--esg-weiss);font:700 .75rem/1.3 var(--font-body);letter-spacing:.06em;text-transform:uppercase}

/* ===== 0.55.1: Mobil – kein Elementor-Sticky im Header (verursacht weiße Lücke), Pfeil der Status-Leiste inline ===== */
.elementor-location-header .elementor-sticky--active,
.elementor-location-header .elementor-sticky--effects{position:relative!important;top:auto!important;left:auto!important;width:auto!important;transform:none!important}
.elementor-location-header .elementor-sticky__spacer{display:none!important;height:0!important}
@media (max-width:767px){
  .esg-statusbar .esg-statusbar__main{display:block}
  .esg-statusbar .esg-statusbar__main>*{display:inline}
  .esg-statusbar .esg-dot{display:inline-block;vertical-align:middle;margin-right:.5rem}
  .esg-statusbar .esg-statusbar__state{margin-right:.375rem}
  .esg-statusbar .esg-statusbar__more{margin-left:.25rem}
}

/* ===== 0.55.2: Header mobil – Elementor setzt auf dem Handy flex-wrap:wrap; im Spalten-Container streckt das die Status-Leiste auf ~210 px (weiße Lücke). ===== */
.elementor-location-header .e-con:has(.esg-statusbar),
.elementor-location-header .e-con:has(.esg-notice){flex-wrap:nowrap!important;--flex-wrap:nowrap;--flex-wrap-mobile:nowrap}

/* ===== 0.56.0: hockeydata Live-Tabellen ===== */
.esg-hd{border:1px solid var(--esg-eisgrau);border-radius:4px;background:#fff}
.esg-hd__hinweis{padding:20px;display:grid;gap:12px;justify-items:start;font:400 .9375rem/1.5 "Montserrat",sans-serif;color:var(--esg-navy)}
.esg-hd__hinweis p{margin:0}
.esg-hd__merken{font-size:.875rem;color:var(--esg-navy-80);display:flex;gap:6px;align-items:center}
.esg-hd__scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.esg-hd__scroll:focus-visible{outline:3px solid var(--esg-mittelblau);outline-offset:2px}
.esg-hd .hd-widget,.esg-hd [data-hd-widget]{font-family:"Montserrat",sans-serif;min-width:560px}
.esg-hd [data-hd-widget] th{background:var(--esg-navy);color:#fff}
.esg-hd [data-hd-widget] tr:nth-child(even) td{background:var(--esg-eisblau)}

/* Wochenansicht am Handy als Liste (0.59.4) */
.esg-ezlw{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.esg-ezlw__tag{display:flex;flex-direction:column;gap:6px;padding:12px 14px;background:var(--esg-weiss);border:1px solid var(--esg-eisgrau);border-left:4px solid var(--esg-eisgrau);border-radius:var(--radius-sm)}
.esg-ezlw__tag.is-today{border-left-color:var(--esg-vereinblau)}
.esg-ezlw__name{font:800 15px/1.2 Montserrat,sans-serif;color:var(--esg-navy)}
.esg-ezlw__name small{margin-left:6px;padding:2px 6px;border-radius:2px;background:var(--esg-vereinblau);color:var(--esg-weiss);font-size:11px;text-transform:uppercase;letter-spacing:.04em;vertical-align:middle}
.esg-ezlw__zeiten{display:flex;flex-wrap:wrap;gap:6px}
.esg-ezlw__z{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border-radius:2px;background:rgb(0 70 173 / .1);color:var(--esg-navy);font:700 14px/1 Montserrat,sans-serif;font-variant-numeric:tabular-nums}
.esg-ezlw__z em{font-style:normal;font-weight:600;font-size:12px}
.esg-ezlw__z.is-now{background:var(--esg-vereinblau);color:var(--esg-weiss)}
.esg-ezlw__z.is-past{background:transparent;color:#6b7a93;text-decoration:line-through}
.esg-ezlw__z.is-disco{background:#2A1B5C;color:var(--esg-weiss)}
.esg-ezlw__leer{font:500 14px/1.3 Montserrat,sans-serif;color:#6b7a93}
.esg-ezlw__hinweis{margin:10px 0 24px;font:500 12px/1.4 Montserrat,sans-serif;opacity:.7}
.is-dark .esg-ezlw__tag{background:rgb(255 255 255 / .06);border-color:rgb(255 255 255 / .15)}
.is-dark .esg-ezlw__name,.is-dark .esg-ezlw__z{color:var(--esg-weiss)}
