/*
 Theme Name:   Divi Child — Om Vailali
 Theme URI:    https://geh-online.eu
 Description:  Child-Theme fuer Divi. Anpassungen fuer omvailali.de — hier CSS ergaenzen, nie im Parent.
 Author:       geh online
 Author URI:   https://geh-online.eu
 Template:     Divi
 Version:      1.0.0
 License:      GNU General Public License v2 or later
 Text Domain:  divi-child
*/

/* ── Schriften: lokal gehostet (DSGVO), kein Google-CDN ── */

@font-face {
	font-family: 'Kalam';
	font-style: normal;
	font-weight: 300;
	font-display: swap;
	src: url('fonts/kalam-v18-latin-300.woff2') format('woff2');
}
@font-face {
	font-family: 'Kalam';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('fonts/kalam-v18-latin-regular.woff2') format('woff2');
}
@font-face {
	font-family: 'Kalam';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('fonts/kalam-v18-latin-700.woff2') format('woff2');
}
/* ── Farben der alten Seite (omvailali.de) ─────────────── */
:root {
	--om-magenta:      #d151c7; /* Markenfarbe: Header, Links, Akzente */
	--om-aubergine:    #360f3e; /* Footer, dunkle Flaechen */
	--om-text:         #252525;
	--om-grund:        #ffffff;
	--om-grau-dunkel:  #333333; /* Topbar alt */
	--om-grau-hell:    #dddddd; /* Hover-Zustaende auf Magenta */
}
/* Grundzuweisungen im Geist der alten Seite */
body {
	color: var(--om-text);
	background: var(--om-grund);
}
a { color: var(--om-magenta); }
a:hover { color: var(--om-aubergine); }
.om-handschrift {
	font-family: 'Kalam', 'Segoe Script', 'Comic Sans MS', cursive;
}
/* Bilder nie hoeher als ihr Attribut erzwingt */
img,
video { height: auto; }
/* Footer: Copyright links, geh-online rechts */
#footer-info {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 0.5em 2em;
	width: 100%;
}
#footer-info .om-design a { color: var(--om-grau-hell); }
/* ── Galerien: gleichmaessiges Raster statt Bilderwurst ── */
.joomla-galerie {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 14px;
	margin: 1.5em 0 2em;
}
.joomla-galerie figure {
	margin: 0;
	border-radius: 10px;
	overflow: hidden;
	background: #f3eef4;
	box-shadow: 0 2px 10px rgba(54, 15, 62, 0.12);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.joomla-galerie figure:hover {
	transform: translateY(-3px);
	box-shadow: 0 8px 22px rgba(54, 15, 62, 0.22);
}
.joomla-galerie img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
}
/* ── Einzelbilder im Inhalt: gerahmt und begrenzt ──────── */
.entry-content figure:not(.joomla-galerie figure) {
	margin: 1.5em auto;
	max-width: 720px;
	text-align: center;
}
/* Ein Bild darf nie den ganzen Bildschirm fuellen — sonst sieht man
   beim Oeffnen nur Foto und keinen Kontext */
.entry-content figure:not(.joomla-galerie figure) img {
	max-height: 62vh;
	width: auto;
	max-width: 100%;
}
.entry-content figure img {
	border-radius: 10px;
	box-shadow: 0 2px 12px rgba(54, 15, 62, 0.15);
}
.entry-content img { max-width: 100%; }
/* ── Tabellen (Turnier-Ergebnisse etc.): lesbar machen ─── */
.om-tabelle { margin: 1.5em 0 2em; overflow-x: auto; }
.om-tabelle table {
	border-collapse: collapse;
	width: 100%;
	font-size: 15px;
	border: 0;
}
.om-tabelle td,
.om-tabelle th {
	padding: 8px 12px;
	border: 0;
	border-bottom: 1px solid #eadfe9;
	text-align: left;
	white-space: normal;
}
.om-tabelle tr:first-child td,
.om-tabelle th {
	background: var(--om-magenta);
	color: #ffffff;
	font-weight: 700;
}
.om-tabelle tr:nth-child(even) td { background: #faf5fa; }
/* ── Inhalt: Luft und Grundordnung ─────────────────────── */
.entry-content h2,
.entry-content h3 {
	color: var(--om-aubergine);
	margin: 1.4em 0 0.5em;
}
.entry-content p { line-height: 1.7; }
/* ── Typografie: eine Schrift-Familie fuer alles ───────── */
body,
.entry-content,
#main-content {
	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
h1,
h2,
h3,
h4,
h5,
h6,
.entry-title,
.et_pb_post h2,
.et_pb_post .entry-title {
	font-family: 'Kalam', 'Segoe Script', 'Comic Sans MS', cursive;
	color: var(--om-aubergine);
}
h1.entry-title,
.entry-title {
	font-size: clamp(26px, 4vw, 36px);
	font-weight: 700;
	margin-bottom: 0.4em;
}
/* Meta-Zeile (Autor | Datum | Kategorie) ausblenden */
.post-meta,
p.post-meta,
.et_pb_title_meta_container {
	display: none !important;
}

/* ── Tabellen mobil: Zeilen werden Karten, kein Wischen ── */

@media (max-width: 980px) {
	/* Karten-Umbau fuer ALLE Datentabellen — auch solche ohne
	   erkannte Kopfzeile; nur Zweispalter bleiben echte Tabellen */
.om-tabelle:not(:has(table.om-zweispalter)) { overflow-x: visible; }
.om-tabelle table:not(.om-zweispalter),
.om-tabelle table:not(.om-zweispalter) tbody,
.om-tabelle table:not(.om-zweispalter) tr,
.om-tabelle table:not(.om-zweispalter) td,
.om-tabelle table:not(.om-zweispalter) th {
		display: block;
		width: 100%;
	}
.om-tabelle table:not(.om-zweispalter) .om-kopfzeile { display: none; }
.om-tabelle table:not(.om-zweispalter) tr {
		margin-bottom: 14px;
		border: 1px solid #eadfe9;
		border-radius: 10px;
		padding: 10px 14px;
		background: #ffffff;
		box-shadow: 0 2px 8px rgba(54, 15, 62, 0.08);
	}
.om-tabelle table:not(.om-zweispalter) td {
		display: grid;
		grid-template-columns: 8em 1fr;
		gap: 0 12px;
		padding: 5px 0;
		border: 0;
		min-width: 0;
	}
.om-tabelle table:not(.om-zweispalter) td::before {
		content: attr(data-label);
		font-weight: 700;
		color: var(--om-aubergine);
		white-space: normal;
	}
.om-tabelle table:not(.om-zweispalter) td:not([data-label]) {
		grid-template-columns: 1fr;
	}
.om-tabelle table:not(.om-zweispalter) td:not([data-label])::before { content: none; }
.om-tabelle table:not(.om-zweispalter) td:empty { display: none; }
.om-tabelle table:not(.om-zweispalter) tr:not(:has(td:not(:empty))) { display: none; }
.om-tabelle table:not(.om-zweispalter) tr:nth-child(even) td { background: transparent; }
}
/* ── Ueberschriften: Divis Standardschrift ueberstimmen ── */
#main-content h1,
#main-content h2,
#main-content h3,
#main-content h4,
#main-content h5,
#main-content h6,
#main-content .entry-title,
body #page-container .entry-title {
	font-family: 'Kalam', 'Segoe Script', 'Comic Sans MS', cursive !important;
	color: var(--om-aubergine);
}
/* ── Footer wie die alte Seite: Aubergine, weisse Schrift ── */
#main-footer,
#footer-bottom {
	background: var(--om-aubergine);
}
#footer-bottom { padding: 18px 0; }
#footer-info,
#footer-info .om-copyright {
	color: #ffffff;
	font-size: 14px;
}
#footer-info .om-design,
#footer-info .om-design a {
	color: #cfaed3;
	text-decoration: none;
}
#footer-info .om-design a:hover { color: #ffffff; }
#main-footer .footer-widget,
#main-footer .footer-widget a,
#main-footer li,
#main-footer .et_pb_widget a {
	color: #e6d8e8;
}
#et-footer-nav { background: var(--om-aubergine); }
#et-footer-nav .bottom-nav,
.bottom-nav a { color: #cfaed3; }
.bottom-nav a:hover { color: #ffffff; }
/* ── Lightbox ──────────────────────────────────────────── */
.om-lb-klickbar { cursor: zoom-in; }
.om-lb-kein-scroll { overflow: hidden; }
.om-lb-overlay {
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: none;
	align-items: center;
	justify-content: center;
	background: rgba(24, 6, 28, 0.94);
}
.om-lb-overlay.om-lb-offen { display: flex; }
.om-lb-buehne {
	margin: 0;
	max-width: min(92vw, 1400px);
	max-height: 88vh;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
}
.om-lb-buehne img {
	max-width: 100%;
	max-height: 82vh;
	object-fit: contain;
	border-radius: 8px;
	box-shadow: 0 12px 48px rgba(0, 0, 0, 0.6);
}
.om-lb-buehne figcaption {
	color: #e6d8e8;
	font-size: 14px;
	text-align: center;
	min-height: 1.2em;
}
.om-lb-overlay button {
	position: fixed;
	background: rgba(255, 255, 255, 0.1);
	border: 0;
	color: #ffffff;
	font-size: 26px;
	line-height: 1;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.15s ease;
}
.om-lb-overlay button:hover { background: var(--om-magenta); }
.om-lb-schliessen { top: 18px; right: 18px; }
.om-lb-zurueck { left: 14px; top: 50%; transform: translateY(-50%); }
.om-lb-weiter { right: 14px; top: 50%; transform: translateY(-50%); }
.om-lb-zaehler {
	position: fixed;
	bottom: 16px;
	left: 50%;
	transform: translateX(-50%);
	color: #cfaed3;
	font-size: 14px;
	letter-spacing: 0.06em;
}
@media (max-width: 767px) {
.om-lb-zurueck { left: 6px; }
.om-lb-weiter { right: 6px; }
.om-lb-overlay button { width: 44px; height: 44px; font-size: 20px; }
}
/* ── Kachel-Navigation fuer Unterseiten ────────────────── */
.om-unterseiten {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 16px;
	margin: 2.5em 0 1.5em;
}
.om-kachel {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 150px;
	border-radius: 12px;
	overflow: hidden;
	background-size: cover;
	background-position: center;
	box-shadow: 0 3px 14px rgba(54, 15, 62, 0.18);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	text-decoration: none;
}
.om-kachel::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(54, 15, 62, 0.85) 0%, rgba(54, 15, 62, 0.1) 55%);
	transition: background 0.2s ease;
}
.om-kachel:hover {
	transform: translateY(-4px);
	box-shadow: 0 10px 26px rgba(54, 15, 62, 0.3);
}
.om-kachel span {
	position: relative;
	padding: 12px 14px;
	color: #ffffff;
	font-family: 'Kalam', 'Segoe Script', 'Comic Sans MS', cursive;
	font-size: 19px;
	line-height: 1.25;
	text-shadow: 0 1px 6px rgba(0, 0, 0, 0.45);
}
.om-kachel-ohne-bild {
	background: linear-gradient(135deg, var(--om-magenta), var(--om-aubergine));
}
@media (prefers-reduced-motion: reduce) {
.om-kachel { transition: none; }
}
/* ── Menue 2.0: Handschrift-Schwung + schwebende Karten ── */
/* Oberpunkte: Pille statt Unterstrich — kann nie durchs Wort rutschen */
/* Dropdowns: weisse schwebende Karte, mittig unterm Menuepunkt */
/* Verschachtelte Menues bleiben seitliche Flyouts */
/* Pfeil-Andeutung fuer Punkte mit Untermenue */
/* Verschachtelte Karten leicht versetzt oeffnen */
/* ── Zweispalter-Tabellen (Merkmal/Wert): keine Kopfzeile ── */
.om-tabelle table.om-zweispalter tr:first-child td {
	background: transparent;
	color: inherit;
	font-weight: inherit;
}
/* Zweispalter bleiben Tabelle, duerfen aber nie ausbrechen:
   feste Layout-Berechnung statt Inhaltsbreite */
.om-tabelle table.om-zweispalter {
	table-layout: fixed;
	width: 100%;
	max-width: 100%;
}
.om-tabelle table.om-zweispalter td {
	min-width: 0;
	word-break: break-word;
	overflow-wrap: anywhere;
}
.om-tabelle table.om-zweispalter td:first-child {
	font-weight: 700;
	color: var(--om-aubergine);
	white-space: normal;
	min-width: 0;
	width: 38%;
}
.om-tabelle table.om-zweispalter tr:nth-child(even) td { background: #faf5fa; }
/* ── Header-Platz: Menue darf Logo nie beruehren/umbrechen ── */
/* ── Mobiles Menue: weisse Karte, kein Divi-Blau ───────── */
/* Suche: Lupe dezent statt riesig */
/* Startseite: internen Seitentitel nicht anzeigen */
.home .entry-title { display: none; }
/* ── Menue-Finish: knackig, ausgerichtet, barrierefrei ── */
/* Kopfzeile als saubere Flex-Zeile: Logo — Menue — Lupe */
/* Schnelle, praezise Reaktionen statt traeger Fades */
/* Tastatur-Fokus sichtbar */
.om-acc-knopf:focus-visible {
	outline: 2px solid var(--om-magenta);
	outline-offset: 2px;
}
/* ── Mobiles Menue: Accordion statt Endlosliste ────────── */
/* Elternpunkte: Link + Pfeilknopf nebeneinander */
.om-acc-knopf {
	flex: 0 0 48px;
	height: 48px;
	border: 0;
	background: transparent;
	color: var(--om-magenta);
	font-size: 17px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
}
.om-acc-knopf span {
	display: block;
	transform: rotate(90deg);
	transition: transform 0.15s ease-out;
}
li.om-offen > .om-acc-knopf span { transform: rotate(270deg); }
/* Untermenues: zu, bis der Pfeil sie oeffnet
   (per ID, weil Divi sie mit #mobile_menu-Regeln erzwingt) */
/* ── Abstands-Feinschliff ──────────────────────────────── */
#main-content .container { padding-top: 34px !important; }
.entry-content figure { margin-top: 0.4em; margin-bottom: 1.6em; }
.entry-content h2 + figure,
.entry-content h3 + figure { margin-top: 0.8em; }
@media (max-width: 980px) {
#main-content .container { padding-top: 20px !important; }
.entry-content { font-size: 16px; }
}

@media (prefers-reduced-motion: reduce) {
.om-acc-knopf span { transition: none !important; }
}
/* ════════════════════════════════════════════════════════
   OM-HEADER — Variante 1 "Markenband"
   Eigenes Markup (header.php), kein Divi-Geruest mehr.
   ════════════════════════════════════════════════════════ */
.om-header {
	position: sticky;
	top: 0;
	z-index: 990;
	background: var(--om-magenta);
	box-shadow: 0 2px 12px rgba(54, 15, 62, 0.25);
}
body.admin-bar .om-header { top: 32px; }
@media (max-width: 782px) {
body.admin-bar .om-header { top: 46px; }
}
.om-header-inner {
	max-width: 1400px;
	width: 92%;
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: 24px;
	height: 72px;
}
.om-logo { display: block; flex: 0 0 auto; }
.om-logo img { height: 40px; width: auto; display: block; }
/* Desktop-Menue */
.om-nav { margin-left: auto; }
.om-menue {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: 2px;
}
.om-menue li { position: relative; white-space: nowrap; }
.om-menue a {
	display: block;
	font-family: 'Kalam', 'Segoe Script', 'Comic Sans MS', cursive;
	font-size: 16.5px;
	color: #ffffff;
	text-decoration: none;
	padding: 6px 13px;
	border-radius: 999px;
	transition: background 0.1s ease-out, color 0.1s ease-out;
}
.om-menue > li > a:hover { background: rgba(255, 255, 255, 0.16); }
.om-menue > li.current-menu-item > a,
.om-menue > li.current-menu-ancestor > a {
	background: rgba(255, 255, 255, 0.94);
	color: var(--om-magenta);
}
/* Andeutung fuer Punkte mit Untermenue */
.om-menue > li.menu-item-has-children > a::after {
	content: '\203A';
	display: inline-block;
	transform: rotate(90deg) translateX(1px);
	margin-left: 7px;
	font-size: 13px;
	opacity: 0.85;
}
/* Kontakt = letzter Punkt als dunkler Knopf */
.om-menue > li:last-child > a {
	background: var(--om-aubergine);
	color: #ffffff;
	margin-left: 8px;
	padding: 7px 17px;
	box-shadow: 0 3px 10px rgba(54, 15, 62, 0.35);
}
.om-menue > li:last-child > a:hover { background: #4b1856; }
/* Dropdown: schwebende weisse Karte, mittig */
.om-menue li ul {
	list-style: none;
	margin: 0;
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translate(-50%, 8px);
	min-width: 210px;
	background: #ffffff;
	border-radius: 14px;
	padding: 8px;
	box-shadow: 0 16px 40px rgba(54, 15, 62, 0.24), 0 2px 8px rgba(54, 15, 62, 0.12);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.12s ease-out, transform 0.12s ease-out, visibility 0.12s;
}
.om-menue li:hover > ul,
.om-menue li:focus-within > ul {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, 4px);
}
.om-menue li ul li + li { margin-top: 3px; }
.om-menue li ul a {
	color: var(--om-aubergine);
	font-size: 16px;
	padding: 10px 14px;
	border-radius: 9px;
	white-space: normal;
	line-height: 1.3;
}
.om-menue li ul a:hover { background: var(--om-blush, #fbeef9); color: var(--om-magenta); }
.om-menue li ul .current-menu-item > a { background: #fbeef9; color: var(--om-magenta); }
/* Tastatur-Fokus */
.om-menue a:focus-visible,
.om-burger:focus-visible {
	outline: 2px solid #ffffff;
	outline-offset: 2px;
}
.om-menue li ul a:focus-visible { outline-color: var(--om-magenta); }
/* Burger */
.om-burger {
	display: none;
	flex: 0 0 44px;
	height: 44px;
	margin-left: auto;
	border: 0;
	background: transparent;
	cursor: pointer;
	padding: 10px;
}
.om-burger span {
	display: block;
	height: 2.6px;
	border-radius: 2px;
	background: #ffffff;
	margin: 4.6px 0;
	transition: transform 0.18s ease-out, opacity 0.18s ease-out;
}
.om-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7.2px) rotate(45deg); }
.om-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.om-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7.2px) rotate(-45deg); }
/* Mobiles Menue: weisse Karte unterm Band */
.om-mobilnav[hidden] { display: none !important; }
#page-container { padding-top: 0 !important; }
.om-mobilnav {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	background: #ffffff;
	border-radius: 0 0 16px 16px;
	box-shadow: 0 18px 40px rgba(54, 15, 62, 0.28);
	max-height: calc(100vh - 90px);
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}
.om-mobilmenue {
	list-style: none;
	margin: 0;
	padding: 4px 0 14px;
}
.om-mobilmenue li { display: flex; flex-wrap: wrap; align-items: center; }
.om-mobilmenue a {
	flex: 1 1 auto;
	font-family: 'Kalam', 'Segoe Script', 'Comic Sans MS', cursive;
	font-size: 17px;
	color: var(--om-aubergine);
	text-decoration: none;
	padding: 13px 18px;
	border-bottom: 1px solid #f4ecf3;
}
.om-mobilmenue .current-menu-item > a { color: var(--om-magenta); font-weight: 700; }
.om-mobilmenue li ul {
	flex-basis: 100%;
	list-style: none;
	margin: 0;
	padding: 0;
	display: none;
}
.om-mobilmenue li.om-offen > ul { display: block; }
.om-mobilmenue li ul a { font-size: 16px; padding-left: 34px; }
.om-acc-knopf {
	flex: 0 0 48px;
	height: 48px;
	border: 0;
	background: transparent;
	color: var(--om-magenta);
	font-size: 17px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
}
.om-acc-knopf span { display: block; transform: rotate(90deg); transition: transform 0.15s ease-out; }
li.om-offen > .om-acc-knopf span { transform: rotate(270deg); }
/* Kontakt mobil als Magenta-Knopf */
.om-mobilmenue > li:last-child > a {
	margin: 14px 16px 4px;
	background: var(--om-magenta);
	color: #ffffff;
	border-radius: 999px;
	text-align: center;
	border-bottom: 0;
	padding: 11px;
	box-shadow: 0 5px 16px rgba(209, 81, 199, 0.4);
}

@media (max-width: 980px) {
.om-header-inner { height: 60px; gap: 14px; }
.om-logo img { height: 32px; }
.om-nav { display: none; }
.om-burger { display: block; }
}
@media (max-width: 1600px) and (min-width: 981px) {
.om-menue a { font-size: 15.5px; padding: 5px 10px; }
.om-menue > li:last-child > a { padding: 6px 14px; }
}
@media (prefers-reduced-motion: reduce) {
.om-menue a,
.om-menue li ul,
.om-burger span,
.om-acc-knopf span { transition: none; }
}
/* ════════════════════════════════════════════════════════
   STARTSEITE — Hero, Themen-Kacheln, Kontakt-Band
   ════════════════════════════════════════════════════════ */
/* Volle Fensterbreite trotz Inhaltsspalte */
.om-hero,
.om-kontaktband {
	width: 100vw;
	position: relative;
	left: 50%;
	transform: translateX(-50%);
}
.om-hero { overflow: hidden; }
.om-hero-bild {
	width: 100%;
	height: min(72vh, 620px);
	object-fit: cover;
	display: block;
}
.om-hero-text {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 24px;
	background: linear-gradient(to top, rgba(54, 15, 62, 0.65) 0%, rgba(54, 15, 62, 0.18) 55%, rgba(54, 15, 62, 0.3) 100%);
	text-align: center;
}
.om-hero-text h1 {
	color: #ffffff !important;
	font-size: clamp(30px, 5vw, 54px);
	line-height: 1.15;
	max-width: 18ch;
	margin: 0;
	text-shadow: 0 2px 14px rgba(0, 0, 0, 0.45);
}
.om-hero-text p {
	color: #f3e6f5;
	font-size: clamp(16px, 2vw, 21px);
	margin: 0 0 10px;
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.4);
}
/* Knoepfe */
.om-knopf {
	display: inline-block;
	font-family: 'Kalam', 'Segoe Script', 'Comic Sans MS', cursive;
	font-size: 18px;
	font-weight: 700;
	color: #ffffff !important;
	background: var(--om-magenta);
	padding: 11px 26px;
	border-radius: 999px;
	text-decoration: none !important;
	box-shadow: 0 6px 20px rgba(54, 15, 62, 0.35);
	transition: transform 0.12s ease-out, box-shadow 0.12s ease-out;
}
.om-knopf:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 26px rgba(54, 15, 62, 0.45);
	color: #ffffff !important;
}
.om-knopf:focus-visible { outline: 3px solid #ffffff; outline-offset: 3px; }
.om-knopf--dunkel { background: var(--om-aubergine); }
.om-knopf--dunkel:focus-visible { outline-color: var(--om-aubergine); }
.om-knopf--hell { background: #ffffff; color: var(--om-magenta) !important; }
.om-knopf--hell:hover { color: var(--om-magenta) !important; }
/* Startseite: Hero buendig unter den Header */
.home #main-content .container { padding-top: 0 !important; }
.home .om-hero { margin-top: 0; }
/* Themen-Kacheln: grosse Buehne
   (Grundregeln zuerst, Media-Query dahinter — sonst sticht die
   allgemeine Regel die mobile Anpassung aus) */
.om-startthemen { margin: 44px 0 8px; }
.om-unterseiten--gross { grid-template-columns: repeat(3, 1fr); }
.om-unterseiten--gross .om-kachel { min-height: 300px; }
@media (max-width: 900px) {
.om-unterseiten--gross { grid-template-columns: 1fr; }
.om-unterseiten--gross .om-kachel { min-height: 220px; }
}
.om-unterseiten--gross .om-kachel span {
	font-size: 24px;
	padding: 16px 18px;
	display: block;
}
.om-unterseiten--gross .om-kachel small {
	display: block;
	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.45;
	margin-top: 6px;
	color: #f0e2f2;
	text-shadow: none;
}
/* Willkommens-Block */
.om-willkommen {
	max-width: 720px;
	margin: 56px auto;
	text-align: center;
}
.om-willkommen h2 { margin-bottom: 0.5em; }
.om-willkommen p { font-size: 17px; line-height: 1.7; margin-bottom: 1.4em; }
/* Kontakt-Band */
.om-kontaktband {
	background: var(--om-magenta);
	text-align: center;
	padding: 54px 24px 58px;
	margin-top: 30px;
	margin-bottom: -34px; /* schliesst buendig an den Footer an */
}
.om-kontaktband h2 { color: #ffffff !important; margin: 0 0 0.3em; }
.om-kontaktband p { color: #fbeef9; font-size: 17px; margin: 0 0 1.2em; }

@media (max-width: 980px) {
.om-hero-bild { height: 54vh; }
.om-startthemen { margin-top: 24px; }
.om-willkommen { margin: 36px auto; }
}
@media (prefers-reduced-motion: reduce) {
.om-knopf { transition: none; }
}
/* ── Footer: Plaketten & Mitgliedschaften ──────────────── */
.om-plaketten {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 18px;
	padding: 60px 20px 14px;
}
.om-plakette {
	display: flex;
	align-items: center;
	gap: 10px;
	background: #ffffff;
	border-radius: 12px;
	padding: 10px 16px;
	min-height: 72px;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
	transition: transform 0.12s ease-out, box-shadow 0.12s ease-out;
	text-decoration: none;
}
.om-plakette:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.35);
}
.om-plakette:focus-visible { outline: 3px solid #ffffff; outline-offset: 3px; }
.om-plakette img { display: block; height: 56px; width: auto; }
.om-plakette--facebook {
	background: transparent;
	box-shadow: none;
	color: #e6d8e8;
	font-family: 'Kalam', 'Segoe Script', 'Comic Sans MS', cursive;
	font-size: 16px;
}
.om-plakette--facebook:hover {
	transform: none;
	box-shadow: none;
	color: #ffffff;
}
.om-plakette--facebook span { text-decoration: underline; text-underline-offset: 4px; }
@media (prefers-reduced-motion: reduce) {
.om-plakette { transition: none; }
}
/* ── Pillen-Raster fuer kurze Untermenues (Jahre, Wuerfe) ── */
/* Desktop-Dropdown: mehrspaltiges Raster in der Karte */
.om-menue li ul.om-pillen {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 6px;
	min-width: 264px;
	padding: 12px;
}
.om-menue li:hover > ul.om-pillen,
.om-menue li:focus-within > ul.om-pillen { display: grid; }
.om-menue li ul.om-pillen li { white-space: nowrap; }
.om-menue li ul.om-pillen a {
	text-align: center;
	padding: 8px 6px;
	border: 1.6px solid #f0e4ee;
	border-radius: 999px;
	font-size: 15.5px;
}
.om-menue li ul.om-pillen a:hover {
	border-color: var(--om-magenta);
	background: var(--om-blush, #fbeef9);
}
.om-menue li ul.om-pillen .current-menu-item > a {
	background: var(--om-magenta);
	border-color: var(--om-magenta);
	color: #ffffff;
}
/* Mobil: Chips statt Zeilenliste */
.om-mobilmenue li.om-offen > ul.om-pillen { display: flex !important; }
.om-mobilmenue ul.om-pillen {
	flex-wrap: wrap;
	gap: 9px;
	padding: 12px 18px 18px;
}
.om-mobilmenue ul.om-pillen li {
	display: block;
	flex: 0 0 auto;
}
.om-mobilmenue ul.om-pillen a {
	display: block;
	padding: 9px 18px;
	border: 1.6px solid #eadfe9;
	border-radius: 999px;
	border-bottom: 1.6px solid #eadfe9 !important;
	font-size: 16px;
}
.om-mobilmenue ul.om-pillen a:active,
.om-mobilmenue ul.om-pillen a:hover {
	border-color: var(--om-magenta);
	background: #fbeef9;
}
.om-mobilmenue ul.om-pillen .current-menu-item > a {
	background: var(--om-magenta);
	border-color: var(--om-magenta);
	color: #ffffff !important;
	font-weight: 400;
}
/* ── JA-Builder-Altseiten: nichts sprengt den Viewport ── */
.entry-content [class*="jub-"],
.entry-content [class*="jub-"] * {
	max-width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box;
}
.entry-content [class*="jub-"] img { height: auto !important; }
.entry-content [class*="jub-"] .row,
.entry-content [class*="jub-"] [class*="col-"] {
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	float: none !important;
	width: 100% !important;
}
/* Zierlicher Trenner statt Sternchen-Zeilen */
.entry-content hr.om-trenner {
	border: 0;
	border-top: 3px dotted #d9a8d4;
	width: 140px;
	margin: 2.2em auto;
}
/* ── Alt-Seiten netter anrichten: Album-Charakter ──────── */
/* Zwischenueberschriften in der Handschrift — wie beschriftete Alben */
.entry-content h3 {
	font-family: 'Kalam', 'Segoe Script', 'Comic Sans MS', cursive !important;
	font-size: 23px;
	font-weight: 700;
	color: var(--om-aubergine);
}
.entry-content h2 {
	font-family: 'Kalam', 'Segoe Script', 'Comic Sans MS', cursive !important;
	font-size: 30px;
	font-weight: 700;
}
/* Lesefreundliche Zeilenlaenge fuer Fliesstext */
.entry-content > p { max-width: 75ch; }
/* Luft zwischen Tagebuch-Eintraegen */
.entry-content > h3 { margin-top: 2em; }
.entry-content .joomla-galerie + h3 { margin-top: 2.4em; }

/* ── Eigene Styles ab hier ─────────────────────────────── */
