/*
 * OVERHEAD Inserate – Basis-Styles.
 * Farben über CSS-Variablen, pro Bereich im Child-Theme überschreibbar:
 *   .oh-type-job      { --oh-accent: #1fb3c7; --oh-tint: #d5f2f6; }
 *   .oh-type-seminar  { --oh-accent: #7f9a1f; --oh-tint: #d6dfb5; }
 *   .oh-type-immobilie{ --oh-accent: #a86f72; --oh-tint: #dcb4b6; }
 */
:root {
	--oh-accent: #222;
	--oh-accent-contrast: #fff;
	--oh-tint: #f0f0f0;
	--oh-soft: #f6f6f6;
	--oh-border: #ddd;
	--oh-text: #222;
	--oh-heading: #2a1a14;
	--oh-muted: #767676;
	--oh-radius: 4px;
	--oh-gap: 24px;
	--oh-shadow: 0 2px 10px rgba(0, 0, 0, .08);
}

.oh-page { padding-bottom: 48px; color: var(--oh-text); }
.oh-container { box-sizing: border-box; }
/* tagDiv-Clearfix (.td-container:before/:after { display: table }) würde in Grid/Flex zu eigenen Elementen –
   im Grid der Detailseite landete der Inhalt dadurch in der Seitenleisten-Spalte. */
.td-container.oh-container::before,
.td-container.oh-container::after { content: none; display: none; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }

/* ---------- Icons (SVG-Masken, Farbe = currentColor) ---------- */
.oh-icon { position: relative; padding-left: 30px; }
.oh-icon::before {
	content: ""; position: absolute; left: 0; top: .1em;
	width: 20px; height: 20px; background: var(--oh-accent);
	-webkit-mask: var(--oh-i) center / contain no-repeat; mask: var(--oh-i) center / contain no-repeat;
}
.oh-icon--location  { --oh-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5z'/%3E%3C/svg%3E"); }
.oh-icon--calendar  { --oh-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 2v2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-2V2h-2v2H9V2zm-2 8h14v10H5z'/%3E%3C/svg%3E"); }
.oh-icon--clock     { --oh-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm1 5h-2v6l5 3 1-1.7-4-2.3z'/%3E%3C/svg%3E"); }
.oh-icon--euro      { --oh-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm2.5 14.5c-2 0-3.6-1.1-4.2-2.8H9v-1.3h1v-.8H9v-1.3h1.3c.6-1.7 2.2-2.8 4.2-2.8.8 0 1.5.2 2.1.5l-.5 1.4a3 3 0 0 0-1.6-.4c-1.1 0-2 .5-2.4 1.3h3v1.3h-3.3v.8h3.3v1.3h-3c.4.8 1.3 1.3 2.4 1.3.6 0 1.1-.1 1.6-.4l.5 1.4c-.6.3-1.3.5-2.1.5z'/%3E%3C/svg%3E"); }
.oh-icon--person,
.oh-icon--company   { --oh-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12a5 5 0 1 0 0-10 5 5 0 0 0 0 10zm0 2c-4.4 0-8 2.2-8 5v3h16v-3c0-2.8-3.6-5-8-5z'/%3E%3C/svg%3E"); }
.oh-icon--briefcase,
.oh-icon--tag       { --oh-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 3a2 2 0 0 0-2 2v1H4a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-3V5a2 2 0 0 0-2-2zm0 2h6v1H9z'/%3E%3C/svg%3E"); }
.oh-icon--phone     { --oh-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15 15 0 0 0 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1A17 17 0 0 1 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1z'/%3E%3C/svg%3E"); }
.oh-icon--mail      { --oh-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2zm8 7 8-5H4z'/%3E%3C/svg%3E"); }
.oh-icon--web       { --oh-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm6.9 6h-3a15 15 0 0 0-1.3-3.9A8 8 0 0 1 18.9 8zM12 4c.8 1.2 1.5 2.5 1.9 4h-3.8c.4-1.5 1.1-2.8 1.9-4zM4.3 14a8 8 0 0 1 0-4h3.4a16 16 0 0 0 0 4zm.8 2h3a15 15 0 0 0 1.3 3.9A8 8 0 0 1 5.1 16zm3-8h-3a8 8 0 0 1 4.3-3.9C8.8 5.3 8.4 6.6 8.1 8zM12 20c-.8-1.2-1.5-2.5-1.9-4h3.8c-.4 1.5-1.1 2.8-1.9 4zm2.3-6H9.7a14 14 0 0 1 0-4h4.6a14 14 0 0 1 0 4zm.3 5.9c.6-1.2 1-2.5 1.3-3.9h3a8 8 0 0 1-4.3 3.9zm1.7-5.9a16 16 0 0 0 0-4h3.4a8 8 0 0 1 0 4z'/%3E%3C/svg%3E"); }
.oh-icon--dot::before { display: none; }
.oh-icon--dot { padding-left: 0; }

/* ---------- Unternavigation ---------- */
.oh-subnav { background: var(--oh-tint); }
.oh-subnav__inner { display: flex; gap: 4px; overflow-x: auto; }
.oh-subnav__tab {
	padding: 16px 24px;
	color: var(--oh-accent);
	font-weight: 600;
	white-space: nowrap;
	text-decoration: none;
}
.oh-subnav__tab:hover { background: rgba(255, 255, 255, .45); }
.oh-subnav__tab.is-active { background: #fff; }
.oh-submit .oh-subnav { margin: 0 0 32px; }

/* ---------- Hero mit Filtern ---------- */
.oh-hero { background: var(--oh-tint); padding: 48px 0 40px; margin-bottom: 40px; }
.oh-page--archive .oh-subnav { border-bottom: 3px solid #fff; }
.oh-title { font-size: clamp(32px, 5.5vw, 64px); line-height: 1.1; margin: 0 0 20px; color: var(--oh-heading); }
.oh-type-seminar .oh-hero .oh-title,
.oh-type-job .oh-hero .oh-title { color: var(--oh-accent); }
.oh-lead { font-size: 20px; margin: 0 0 24px; }

.oh-filters__row { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; }
.oh-filter {
	display: flex; flex-direction: column;
	padding: 10px 16px; min-height: 64px; box-sizing: border-box;
	border: 1px solid var(--oh-border); border-radius: var(--oh-radius);
	background: #fff;
}
.oh-filter--icon { padding-left: 50px; position: relative; }
.oh-filter--icon::before {
	content: ""; position: absolute; left: 16px; top: 50%; width: 22px; height: 22px; margin-top: -11px;
	background: var(--oh-accent); -webkit-mask: var(--oh-i) center / contain no-repeat; mask: var(--oh-i) center / contain no-repeat;
}
.oh-filter--was { --oh-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 2a8 8 0 0 1 6.3 12.9l5.4 5.4-1.4 1.4-5.4-5.4A8 8 0 1 1 10 2zm0 2a6 6 0 1 0 0 12 6 6 0 0 0 0-12z'/%3E%3C/svg%3E"); }
.oh-filter--where { --oh-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5z'/%3E%3C/svg%3E"); }
.oh-filter--radius { --oh-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a5 5 0 0 0-5 5c0 3.6 5 9 5 9s5-5.4 5-9a5 5 0 0 0-5-5zm0 6.8A1.8 1.8 0 1 1 12 5.2a1.8 1.8 0 0 1 0 3.6zM4 17c0 2.2 3.6 4 8 4s8-1.8 8-4c0-1.2-1.1-2.3-2.9-3l-.6 1.6c1.1.4 1.5 1 1.5 1.4 0 .9-2.4 2-6 2s-6-1.1-6-2c0-.4.4-1 1.5-1.4L6.9 14C5.1 14.7 4 15.8 4 17z'/%3E%3C/svg%3E"); }
.oh-filter__label { font-size: 13px; color: var(--oh-accent); font-weight: 600; }
.oh-filter input,
.oh-filter select {
	border: 0 !important; padding: 2px 0 !important; margin: 0; height: auto;
	font-size: 18px; background: transparent; width: 100%; box-shadow: none !important; color: var(--oh-text);
}
.oh-filter--checkbox { flex-direction: row; align-items: center; gap: 10px; }
.oh-filter--checkbox input { width: auto; }

.oh-filters__more { margin-top: 10px; }
.oh-filters__more > summary,
.oh-filters__reset {
	display: inline-flex; align-items: center; gap: 8px;
	color: var(--oh-accent); cursor: pointer; font-size: 15px; text-decoration: none; list-style: none;
}
.oh-filters__more > summary::-webkit-details-marker { display: none; }
.oh-filters__more > summary::before { content: "⚲"; display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--oh-accent); color: #fff; font-size: 13px; }
.oh-filters__more[open] > summary { margin-bottom: 10px; }
.oh-filters__reset::before { content: "↺"; display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--oh-accent); color: #fff; font-size: 13px; }
.oh-filters__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: 14px; }
.js .oh-filters__submit { display: none; }

.oh-views { display: inline-flex; border-radius: var(--oh-radius); overflow: hidden; background: rgba(255, 255, 255, .5); }
.oh-views__btn { padding: 9px 22px; color: #fff; text-decoration: none; font-weight: 600; background: color-mix(in srgb, var(--oh-accent) 45%, #fff); }
.oh-views__btn.is-active { background: var(--oh-accent); }

/* Themen-Buttons (Seminare) */
.oh-topics { margin-top: 32px; }
.oh-topics__title, .oh-section__title {
	display: flex; align-items: center; gap: 20px;
	font-size: 26px; margin: 0 0 14px; color: var(--oh-accent);
}
.oh-topics__title::after, .oh-section__title::after { content: ""; flex: 1; height: 2px; background: var(--oh-accent); opacity: .7; }
.oh-topics__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px 24px; }
.oh-topics__btn {
	display: flex; justify-content: space-between; align-items: center;
	padding: 6px 14px; border-radius: var(--oh-radius);
	background: var(--oh-accent); color: #fff !important; font-weight: 700; text-decoration: none;
}
.oh-topics__btn::after { content: "›"; font-size: 24px; line-height: 1; }
.oh-topics__btn.is-active { outline: 3px solid #fff; }

/* ---------- Buttons ---------- */
.oh-btn {
	display: inline-block; padding: 10px 20px;
	border: 1px solid var(--oh-accent); border-radius: var(--oh-radius);
	background: var(--oh-accent); color: var(--oh-accent-contrast) !important;
	font-weight: 600; text-decoration: none; cursor: pointer; line-height: 1.3;
}
.oh-btn:hover { filter: brightness(.95); }
.oh-btn--ghost { background: transparent; color: var(--oh-accent) !important; }
.oh-btn--small { padding: 6px 12px; font-size: 14px; }

/* ---------- Ergebnisse: Kacheln ---------- */
.oh-results__count { margin: 0 0 16px; }
.oh-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 32px var(--oh-gap); }
.oh-card { position: relative; }
.oh-card.is-featured .oh-card__body { box-shadow: 0 0 0 2px var(--oh-accent), var(--oh-shadow); }
.oh-card__link { display: block; color: inherit; text-decoration: none; height: 100%; }
.oh-card__media { position: relative; aspect-ratio: 3 / 2; background: var(--oh-soft); border-radius: 16px 16px 0 0; overflow: hidden; margin: 0 24px; }
.oh-card__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.oh-card__logo {
	position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
	width: 60%; height: 36%; background: #fff; border-radius: 12px 12px 0 0;
	display: flex; align-items: center; justify-content: center; padding: 6px; box-sizing: border-box;
}
.oh-card__logo img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.oh-card__body { background: #fff; border-radius: 12px; box-shadow: var(--oh-shadow); padding: 18px 24px 22px; margin-top: -8px; position: relative; }
.oh-card__title { font-size: 24px; line-height: 1.25; margin: 0 0 12px; color: var(--oh-heading); }
.oh-card__title::after { content: ""; display: block; width: 56px; height: 1px; background: var(--oh-muted); margin-top: 14px; }
.oh-card__meta { list-style: none; margin: 0; padding: 0; font-size: 17px; }
.oh-card__meta li { margin: 0 0 6px; }
.oh-card__meta-label { display: block; font-size: 12px; text-transform: uppercase; color: var(--oh-muted); }
.oh-kicker { margin: 0 0 6px; font-size: 14px; letter-spacing: .06em; text-transform: uppercase; color: var(--oh-accent); }
.oh-badge {
	position: absolute; top: 10px; left: 10px; padding: 3px 10px; border-radius: 99px;
	background: var(--oh-accent); color: var(--oh-accent-contrast); font-size: 12px; font-weight: 700; text-transform: uppercase;
}

/* ---------- Ergebnisse: Liste ---------- */
.oh-list { display: flex; flex-direction: column; gap: 20px; }
.oh-row {
	display: grid; grid-template-columns: 170px 220px 1fr; align-items: stretch;
	background: #fff; box-shadow: var(--oh-shadow); min-height: 180px;
}
.oh-row.is-featured { box-shadow: 0 0 0 2px var(--oh-accent), var(--oh-shadow); }
.oh-row__logo { display: flex; align-items: center; justify-content: center; padding: 16px; background: #fff; }
.oh-row__logo img { max-width: 100%; max-height: 140px; width: auto; height: auto; object-fit: contain; }
.oh-row__badge { display: flex; align-items: center; justify-content: center; background: var(--oh-accent); color: #fff !important; text-decoration: none; }
.oh-row:not(:has(.oh-row__badge)) { grid-template-columns: 170px 1fr; }
.oh-date { display: flex; flex-direction: column; align-items: center; line-height: 1.1; }
.oh-date__prefix { font-size: 24px; }
.oh-date__day { font-size: 54px; font-weight: 700; }
.oh-date__year { font-size: 24px; }
.oh-row__body { padding: 20px 60px 20px 44px; position: relative; }
.oh-row__title { font-size: 28px; line-height: 1.25; margin: 0 0 14px; }
.oh-row__title a { color: var(--oh-heading); text-decoration: none; }
.oh-row__meta { list-style: none; margin: 0; padding: 0; font-size: 20px; }
.oh-row__meta li { margin: 0 0 10px; }
.oh-row__meta .oh-icon::before { width: 22px; height: 22px; }
.oh-row__more > summary {
	position: absolute; right: 24px; top: 50%; width: 50px; height: 30px; margin-top: -15px;
	background: var(--oh-accent); border-radius: 2px; cursor: pointer; list-style: none;
}
.oh-row__more > summary::-webkit-details-marker { display: none; }
.oh-row__more > summary::after { content: ""; position: absolute; left: 50%; top: 45%; width: 10px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0; transform: translate(-50%, -50%) rotate(45deg); }
.oh-row__more[open] > summary::after { transform: translate(-50%, -20%) rotate(-135deg); }

/* Seminaranbieter */
.oh-providers { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 24px; }
.oh-provider { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 20px; background: #fff; box-shadow: var(--oh-shadow); text-decoration: none; color: inherit; text-align: center; }
.oh-provider__logo { height: 100px; display: flex; align-items: center; }
.oh-provider__logo img { max-width: 100%; max-height: 100px; width: auto; height: auto; object-fit: contain; }
.oh-provider__name { font-weight: 700; }
.oh-provider__count { color: var(--oh-accent); font-size: 14px; }

.oh-pagination { margin: 32px 0 0; display: flex; gap: 6px; flex-wrap: wrap; }
.oh-pagination .page-numbers { padding: 6px 12px; border: 1px solid var(--oh-border); border-radius: var(--oh-radius); text-decoration: none; }
.oh-pagination .current { background: var(--oh-accent); color: var(--oh-accent-contrast); border-color: var(--oh-accent); }
.oh-empty { padding: 32px 0; color: var(--oh-muted); }

/* Anzeigen */
.oh-ad { background: var(--oh-soft); padding: 12px; margin: 0 0 32px; text-align: center; }
.oh-ad__label { display: block; font-size: 11px; color: var(--oh-muted); margin-bottom: 6px; }

/* ---------- Detailseite ---------- */
.oh-single__layout { padding-top: 24px; }
.oh-single__hero { margin: 0 0 16px; }
.oh-single__hero img { width: 100%; height: auto; display: block; }
.oh-credit { font-size: 11px; color: var(--oh-muted); margin: 4px 0 0; }
.oh-single__header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: start; margin: 12px 0 24px; }
.oh-page--single .oh-title { font-size: clamp(28px, 4vw, 40px); color: var(--oh-accent); }
.oh-type-immobilie.oh-page--single .oh-title { color: var(--oh-heading); }
.oh-single__teaser { font-size: 18px; font-weight: 700; margin: 0 0 16px; }

.oh-share { display: flex; align-items: center; gap: 6px; }
.oh-share__label { font-size: 12px; color: var(--oh-muted); margin-right: 4px; }
.oh-share__link {
	width: 26px; height: 26px; border-radius: 50%; background: var(--oh-accent); position: relative;
}
.oh-share__link::before { content: ""; position: absolute; inset: 6px; background: #fff; -webkit-mask: var(--oh-i) center / contain no-repeat; mask: var(--oh-i) center / contain no-repeat; }
.oh-share__link--facebook { --oh-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 8V6c0-.8.2-1.2 1.4-1.2H17V1.5h-2.6C11.3 1.5 10 3 10 5.7V8H7.5v3.3H10V22h4V11.3h2.8L17.3 8z'/%3E%3C/svg%3E"); }
.oh-share__link--linkedin { --oh-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 3a2 2 0 1 1 0 4 2 2 0 0 1 0-4zM2 9h4v12H2zm7 0h3.8v1.7c.6-1 1.9-2 3.9-2 4.1 0 4.3 2.7 4.3 6.2V21h-4v-5.4c0-1.3 0-3-1.8-3S13 14 13 15.5V21H9z'/%3E%3C/svg%3E"); }
.oh-share__link--whatsapp { --oh-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm5.3 14.1c-.2.6-1.3 1.2-1.8 1.2-.5.1-1 .1-3.3-.8-2.8-1.1-4.5-4-4.7-4.2-.1-.2-1.1-1.5-1.1-2.9s.7-2 1-2.3c.2-.3.5-.3.7-.3h.5c.2 0 .4 0 .6.5l.9 2.1c0 .2.1.4 0 .6l-.4.6-.4.4c-.1.2-.3.3-.1.6.2.3.8 1.3 1.7 2.1 1.2 1 2.1 1.4 2.4 1.5.3.2.5.1.6 0l.9-1.1c.2-.3.4-.2.7-.1l2 1c.3.1.5.2.5.3.1.1.1.7-.1 1.3z'/%3E%3C/svg%3E"); }
.oh-share__link--mail { --oh-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2zm8 7 8-5H4z'/%3E%3C/svg%3E"); }
.oh-share__link--x { --oh-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.8 3h3.1l-6.8 7.7L22 21h-6.2l-4.9-6.3L5.3 21H2.2l7.2-8.3L1.8 3h6.4l4.4 5.8zm-1.1 16.2h1.7L7.4 4.7H5.6z'/%3E%3C/svg%3E"); }

.oh-logo-box { width: 200px; text-align: left; font-size: 14px; }
.oh-logo-box__logo { display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 1; box-shadow: var(--oh-shadow); border-radius: 6px; margin-bottom: 10px; padding: 12px; box-sizing: border-box; background: #fff; }
.oh-logo-box__logo img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.oh-logo-box__company { font-weight: 700; margin: 0 0 8px; }
.oh-logo-box__person span { font-size: 11px; color: var(--oh-accent); }

.oh-info { list-style: none; margin: 0 0 32px; padding: 24px 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px 32px; border-top: 1px solid var(--oh-border); border-bottom: 1px solid var(--oh-border); }
.oh-info__item { padding-left: 38px; }
.oh-info__item::before { width: 26px; height: 26px; }
.oh-info__label { display: block; font-size: 11px; color: var(--oh-accent); }
.oh-info__value { display: block; font-size: 16px; }

.oh-single__text { margin: 0 0 32px; }
.oh-single__text h2, .oh-single__text h3 { color: var(--oh-accent); }
.oh-section { margin: 0 0 32px; }
.oh-details { margin: 0; max-width: 560px; }
.oh-details__row { display: grid; grid-template-columns: 200px 1fr; gap: 16px; padding: 6px 0; }
.oh-details dt { font-weight: 700; }
.oh-details dd { margin: 0; }
.oh-details dd p { margin: 0 0 6px; }

.oh-slider { position: relative; }
.oh-slider__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.oh-slider__track::-webkit-scrollbar { display: none; }
.oh-slider__slide { flex: 0 0 100%; margin: 0; scroll-snap-align: start; }
.oh-slider__slide img { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; display: block; }
.oh-slider__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 34px; height: 44px; border: 0; background: color-mix(in srgb, var(--oh-accent) 75%, transparent); color: #fff; font-size: 28px; cursor: pointer; }
.oh-slider__nav--prev { left: 12px; }
.oh-slider__nav--next { right: 12px; }

.oh-download { margin: 0 0 32px; }

.oh-box { padding: 28px 32px; background: var(--oh-tint); margin: 0 0 24px; }
.oh-box__title { font-size: 22px; margin: 0 0 14px; color: var(--oh-heading); }
.oh-contact__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.oh-contact__org { display: flex; gap: 14px; align-items: flex-start; }
.oh-contact__logo img { width: 64px; height: 64px; object-fit: contain; background: #fff; }
.oh-contact__company { font-weight: 700; margin: 0 0 4px; }
.oh-contact__label { font-size: 11px; color: var(--oh-accent); }
.oh-contact__link { color: var(--oh-accent); }
.oh-contact p { margin: 0 0 10px; }

.oh-map { margin: 0 0 32px; min-height: 320px; background: var(--oh-soft); position: relative; }
.oh-map__consent { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 20px; color: var(--oh-muted); }
.oh-map.is-loaded .oh-map__consent { display: none; }
.oh-map__canvas { height: 320px; }
.oh-map__pin span { display: block; width: 24px; height: 24px; background: var(--oh-accent); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5z'/%3E%3C/svg%3E") center / contain no-repeat; }

.oh-single__footer { display: flex; flex-direction: column; gap: 18px; padding: 0 0 24px; margin-bottom: 24px; border-bottom: 1px solid var(--oh-accent); }
.oh-back { color: var(--oh-accent); font-size: 14px; }
.oh-back::before { content: "‹"; display: inline-grid; place-items: center; width: 20px; height: 20px; margin-right: 8px; border-radius: 50%; background: var(--oh-accent); color: #fff; }
.oh-more-link { display: flex; align-items: center; gap: 16px; color: var(--oh-accent); font-size: 20px; text-decoration: none; }
.oh-more-link::after { content: "›"; margin-left: auto; font-size: 28px; }

.oh-related__title { font-size: 24px; color: var(--oh-accent); }
.oh-related__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.oh-related__item { display: block; box-shadow: var(--oh-shadow); color: inherit; text-decoration: none; }
.oh-related__item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.oh-related__item-title { display: block; padding: 10px; font-weight: 700; font-size: 14px; }

/* Termine (Seminare) / Bewerbung (Jobs) */
.oh-termine__termin { padding: 14px 0; border-bottom: 1px solid rgba(0, 0, 0, .08); }
.oh-termine__termin p { margin: 0 0 6px; }
.oh-apply-form .oh-form { max-width: 560px; }
.oh-form input[type="text"], .oh-form input[type="email"], .oh-form input[type="tel"], .oh-form textarea { width: 100%; box-sizing: border-box; }
.oh-hp { position: absolute !important; left: -9999px; }
.oh-notice { padding: 12px 16px; border-left: 4px solid var(--oh-accent); background: var(--oh-soft); }
.oh-notice--error { border-color: #b00; }

/* ---------- Formular ---------- */
.oh-submit__intro { max-width: 720px; margin: 0 0 32px; }
.oh-submit__intro .oh-title { font-size: clamp(28px, 4vw, 40px); }
.oh-submit__packages { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px; margin: 20px 0; }
.oh-submit__package { display: flex; flex-direction: column; gap: 4px; padding: 16px 20px; border: 1px solid var(--oh-border); border-radius: var(--oh-radius); }
.oh-submit__package-name { font-weight: 700; }
.oh-submit__price { font-size: 26px; font-weight: 700; line-height: 1.2; }
.oh-submit__package-desc { font-size: 14px; color: var(--oh-muted); }
.oh-submit__required { font-size: 14px; }
.oh-submit__form { max-width: 720px; }
.oh-submit__form .rwmb-field { margin-bottom: 16px; }
.oh-submit__form .rwmb-label label { font-weight: 700; font-family: inherit; }
.oh-submit__form input[type="text"],
.oh-submit__form input[type="email"],
.oh-submit__form input[type="tel"],
.oh-submit__form input[type="number"],
.oh-submit__form input[type="url"],
.oh-submit__form input[type="date"],
.oh-submit__form select,
.oh-submit__form textarea { width: 100%; max-width: 100%; box-sizing: border-box; padding: 10px 12px; border: 1px solid color-mix(in srgb, var(--oh-accent) 35%, #fff); border-radius: var(--oh-radius); }
.oh-submit__form .rwmb-heading-wrapper h4 { font-size: 20px; margin: 24px 0 4px; }
.oh-submit__form .rwmb-media-list + .rwmb-upload-area,
.oh-submit__form .rwmb-upload-area { border: 2px dashed color-mix(in srgb, var(--oh-accent) 40%, #fff); }
.oh-submit__form .rwmb-form-submit button,
.oh-submit__form button.rwmb-button[type="submit"] { background: var(--oh-accent); color: var(--oh-accent-contrast); border: 0; padding: 12px 24px; border-radius: var(--oh-radius); font-weight: 600; }
.oh-submit__note { max-width: 720px; color: var(--oh-muted); font-size: 14px; }

/* ---------- Mein Konto ---------- */
.oh-account__item { padding: 16px 0; border-bottom: 1px solid var(--oh-border); }
.oh-account__head { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.oh-status { font-size: 13px; padding: 2px 10px; border-radius: 99px; background: var(--oh-soft); }
.oh-status-publish .oh-status { background: #e3f4e5; }
.oh-status-oh_pending_payment .oh-status,
.oh-status-oh_expired .oh-status { background: #fdecea; }
.oh-account__meta { color: var(--oh-muted); font-size: 14px; margin: 4px 0; }
.oh-account__actions { display: flex; gap: 16px; font-size: 14px; }
.oh-account__renew { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.oh-account__renew select { flex: 1 1 260px; }
.oh-account__quota { padding: 16px 20px; }

/* ---------- Mobil ---------- */
@media (max-width: 767px) {
	.oh-container { padding-left: 16px; padding-right: 16px; }
	.oh-hero { padding: 28px 0; }
	.oh-row, .oh-row:not(:has(.oh-row__badge)) { grid-template-columns: 96px 1fr; }
	.oh-row__logo { grid-row: span 2; padding: 10px; }
	.oh-row__badge { padding: 10px; }
	.oh-date { flex-direction: row; gap: 6px; align-items: baseline; }
	.oh-date__day { font-size: 26px; }
	.oh-date__prefix, .oh-date__year { font-size: 16px; }
	.oh-row__body { grid-column: 1 / -1; padding: 16px 70px 16px 16px; }
	.oh-row__title { font-size: 21px; }
	.oh-row__meta { font-size: 16px; }
	.oh-card__media { margin: 0 12px; }
	.oh-single__header { grid-template-columns: 1fr; }
	.oh-logo-box { width: 100%; display: grid; grid-template-columns: 96px 1fr; gap: 4px 14px; align-items: center; }
	.oh-logo-box__logo { grid-row: span 3; margin: 0; }
	.oh-contact__grid { grid-template-columns: 1fr; }
	.oh-details__row { grid-template-columns: 1fr; gap: 2px; }
	.oh-related__grid { grid-template-columns: 1fr; }
	.oh-box { padding: 20px; }
	.oh-views { width: 100%; }
	.oh-views__btn { flex: 1; text-align: center; }
}

/* ---------- Shortcode [overhead_listings] ---------- */
.oh-shortcode { margin: 0 0 32px; }
.oh-shortcode.has-columns .oh-grid { grid-template-columns: repeat(var(--oh-columns), minmax(0, 1fr)); }
@media (max-width: 1018px) {
	.oh-shortcode.has-columns .oh-grid { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
}
.oh-shortcode__title { margin: 0 0 24px; }
.oh-shortcode__more { margin: 28px 0 0; text-align: center; }
