/* WordPress/Elementor-Anpassungen. Das eigentliche Design steht in site.css (Kopie von assets_src/style.css). */

/* Elementor-Container mit unseren Klassen: Abstände und Raster kommen aus dem Design, nicht aus Elementor */
.e-con.sv-voll { padding: 0 !important; gap: 0 !important; --width: 100%; }
.e-con.sv-voll > .elementor-widget, .e-con.sv-voll > .e-con-inner > .elementor-widget { width: 100%; }
.e-con.sv-band {
  padding-block: clamp(48px, 7vw, 88px) !important;
  padding-inline: max(var(--gut), calc((100% - var(--wrap)) / 2 + var(--gut))) max(var(--gut-r), calc((100% - var(--wrap)) / 2 + var(--gut-r))) !important;
  gap: clamp(40px, 6vw, 72px) !important; display: flex !important; flex-direction: column !important; flex-wrap: nowrap !important;
}
.e-con.sv-band.sv-eng { gap: 28px !important; }
.e-con.sv-band.sv-surface { background: var(--surface); border-block: 1px solid var(--line); }
.e-con.sv-band.sv-oben-null { padding-top: 0 !important; }
.e-con.sv-inhalt { display: grid !important; grid-template-columns: minmax(0, 1fr) clamp(300px, 22vw, 360px); gap: clamp(28px, 4vw, 56px) !important; align-items: start; padding: 0 !important; }
.e-con.sv-split { display: grid !important; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 56px) !important; align-items: start; padding: 0 !important; }
.e-con.sv-zwei { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px !important; align-items: start; padding: 0 !important; }
.e-con.sv-haupt { display: flex !important; flex-direction: column !important; gap: clamp(40px, 6vw, 72px) !important; padding: 0 !important; min-width: 0; --width: auto; }
.e-con.sv-haupt.sv-eng { gap: 22px !important; }
.e-con.sv-leiste { display: grid !important; gap: 16px !important; padding: 0 !important; position: sticky; top: calc(88px + env(safe-area-inset-top, 0px)); min-width: 0; --width: auto; }
.e-con.sv-gruppe { display: flex !important; flex-direction: column !important; gap: 22px !important; padding: 0 !important; min-width: 0; --width: auto; }
.e-con.sv-inhalt > .e-con, .e-con.sv-split > .e-con, .e-con.sv-zwei > .e-con { width: auto !important; max-width: none !important; }
@media (max-width: 960px) { .e-con.sv-inhalt { grid-template-columns: minmax(0, 1fr); } .e-con.sv-leiste { position: static; } }
@media (max-width: 860px) { .e-con.sv-split { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 760px) { .e-con.sv-zwei { grid-template-columns: minmax(0, 1fr); } }
.e-con.sv-band > .elementor-widget, .e-con.sv-haupt > .elementor-widget, .e-con.sv-gruppe > .elementor-widget { width: 100%; max-width: 100%; }
.elementor-widget-sv_text .abschnitt, .elementor-widget-sv_abschnittskopf .kopfzeile { margin: 0; }
.elementor-widget-sv_abschnittskopf .kopfzeile { margin-bottom: 0; }
.e-con .kopfzeile + * { margin-top: 0; }

/* Bilder: Elementor setzt height:auto – Kacheln und Galerien brauchen die Füllung */
.kachel .bild img, .galerie img, .eintrag .bild img, .seitenkopf .bild img, .rose-band .bild img { height: 100% !important; }

/* Fließtext aus dem Editor */
.prosa > p:empty { display: none; }
.prosa table { margin-block: 6px; }
.box p, .box ul { margin: 0; }
.karte > p:empty { display: none; }
.bericht p:empty { display: none; }

/* Inhalt ohne Elementor (klassische Seiten, Termine, Chronik-Einträge) */
.wp-inhalt > * + * { margin-top: 1em; }
.alignleft { float: left; margin: 0 1.2em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.2em; }
.aligncenter { margin-inline: auto; }
.wp-caption-text { font-family: var(--f-ui); font-size: .82rem; color: var(--muted); }

/* Angemeldet: WordPress-Leiste nicht über den klebenden Kopf legen */
body.admin-bar .kopf { top: calc(32px + env(safe-area-inset-top, 0px)); }
@media (max-width: 782px) { body.admin-bar .kopf { top: 0; } }

/* Breite Tabellen bleiben in ihrem Kasten (Flex-Kinder dürfen schrumpfen) */
.e-con > .elementor-element, .e-con > .e-con-inner > .elementor-element, .elementor-widget-container { min-width: 0; max-width: 100%; }

/* Hinweis für angemeldete Redakteure: wo wird diese Liste gepflegt? */
.sv-pflege { margin: 0 0 10px; }
.sv-pflege a { display: inline-flex; gap: 6px; align-items: center; font-family: var(--f-ui); font-size: .82rem; color: var(--rose); text-decoration: none; border: 1px dashed var(--rose); border-radius: 99px; padding: 4px 12px; background: var(--surface); }
.sv-pflege a:hover { background: var(--rose-soft); }
.band-board .sv-pflege a, .abend + .sv-pflege a { color: var(--rose); }

/* Fußzeile: Hinweis auf Konzeption & Umsetzung */
.fuss .macher { margin: 12px 0 0; font-size: .78rem; color: var(--on-board-muted); opacity: .85; }
.fuss .macher a { color: var(--on-board-muted); text-decoration: underline; text-decoration-color: transparent; }
.fuss .macher a:hover { color: var(--on-board); text-decoration-color: currentColor; }

/* Credit von new face Media im Impressum: Farben aus dem Vereinsdesign, damit er hell und dunkel lesbar ist */
.elementor-widget-html .nfm-credit, body .nfm-credit { color: var(--ink); max-width: 880px; margin-top: 0; border-top-color: var(--line); font-family: var(--f-ui); }
body .nfm-credit__h { font-family: var(--f-display); }
body .nfm-credit a { color: var(--ink); }
body .nfm-credit__contact, body .nfm-credit__aside-label { color: var(--muted); }
body .nfm-credit__aside, body .nfm-credit__aside a { color: var(--muted); border-top-color: var(--line); }
body .nfm-credit__logo img { border-radius: 6px; }
body .nfm-credit__aside img { background: #fff; border-radius: 4px; padding: 2px; box-sizing: content-box; }
