/* ---------------------------------------------------------------------------
   Kompatibilität: Elementor / MEC / Real Cookie Banner / Embeds
   P0 – greift nur, wenn die jeweiligen Plugins/Markups vorhanden sind.
   Lädt nach style.css, überschreibt nichts Bestehendes ohne Prefix.
--------------------------------------------------------------------------- */

/* --- Generelle Einbettungen (YouTube, etc.) responsiv --- */
.entry-content .wp-block-embed__wrapper,
.entry-content iframe[src*="youtube"],
.entry-content iframe[src*="youtu.be"],
.entry-content iframe[src*="vimeo"] {
	max-width: 100%;
}

.entry-content iframe[src*="youtube"],
.entry-content iframe[src*="youtu.be"],
.entry-content iframe[src*="vimeo"] {
	width: 100%;
	aspect-ratio: 16 / 9;
	height: auto;
	border: 0;
	border-radius: var(--jef-radius);
}

/* --- Elementor: Typo & Buttons ans Theme angleichen --- */
.elementor-widget-text-editor,
.elementor-widget-theme-post-content {
	line-height: 1.7;
	color: var(--jef-text-soft);
}

.elementor-widget-heading :is(h1, h2, h3, h4, h5, h6),
.elementor-widget-text-editor :is(h1, h2, h3) {
	font-family: var(--jef-font-heading);
	letter-spacing: -0.02em;
}

.elementor-button,
.elementor-widget-button .elementor-button {
	border-radius: var(--jef-radius-sm);
	font-family: var(--jef-font-heading);
	font-weight: 600;
}

/* Elementor-Bilder wie Theme-Bilder abrunden */
.elementor-widget-image img {
	border-radius: var(--jef-radius);
}

/* Elementor-Thumbs aus jef-bw.de (thumbs-Ordner) nicht verzerren */
.elementor img {
	max-width: 100%;
	height: auto;
}

/* Volle Breite nur innerhalb .entry-content sinnvoll begrenzen */
.entry-content > .elementor {
	margin-inline: calc(50% - 50vw);
}

/* --- Modern Events Calendar (MEC): Listen & Kalender ans Theme --- */
.mec-wrap,
.mec-event-list-modern,
.mec-calendar,
.mec-search-form {
	font-family: var(--jef-font-body);
	color: var(--jef-text);
}

.mec-wrap a {
	color: var(--jef-secondary);
}

.mec-event-article,
.mec-event-list-standard .mec-event-article {
	border: 1px solid var(--jef-border);
	border-radius: var(--jef-radius);
	overflow: hidden;
	background: #fff;
}

.mec-event-title a {
	font-family: var(--jef-font-heading);
	color: var(--jef-text);
	text-decoration: none;
}

.mec-event-title a:hover {
	color: var(--jef-primary-dark);
}

.mec-event-date,
.mec-event-meta {
	color: var(--jef-text-soft);
	font-size: 0.875rem;
}

.mec-search-form,
.mec-event-list-modern .mec-event-footer {
	background: var(--jef-bg-soft);
	border: 1px solid var(--jef-border);
	border-radius: var(--jef-radius-sm);
}

.mec-button,
.mec-book-form-btn,
.mec-load-more-btn {
	border-radius: var(--jef-radius-sm) !important;
	font-family: var(--jef-font-heading) !important;
	font-weight: 600 !important;
	background: var(--jef-primary) !important;
	border-color: var(--jef-primary) !important;
	color: #fff !important;
}

.mec-button:hover,
.mec-book-form-btn:hover,
.mec-load-more-btn:hover {
	background: var(--jef-primary-dark) !important;
	border-color: var(--jef-primary-dark) !important;
}

/* MEC in grüner Shell: Monatstitel + Event-Dots im CI-Grün */
.mec-card .mec-month-navigator,
.mec-card .mec-calendar-header,
.mec-card .mec-calendar-topsec,
.mec-card .mec-event-list-header {
	font-family: var(--jef-font-heading);
}

.mec-card .mec-month-navigator span,
.mec-card .mec-calendar-header h2,
.mec-card .mec-totalcal-box {
	color: var(--jef-primary-dark) !important;
}

.mec-card .mec-has-event::after,
.mec-card .mec-selected-day,
.mec-card .mec-calendar-day.mec-has-event {
	background-color: var(--jef-primary) !important;
	border-color: var(--jef-primary) !important;
}

.mec-card .mec-event-title a:hover {
	color: var(--jef-primary-dark);
}

/* MEC-Einzelansicht: Bild abrunden */
.mec-single-event .mec-events-event-image img,
.mec-event-image img {
	border-radius: var(--jef-radius);
}

/* --- Real Cookie Banner: Blocker-Platzhalter --- */
.rcb-content-blocker {
	border: 1px solid var(--jef-border);
	border-radius: var(--jef-radius);
	background: var(--jef-bg-soft);
	padding: var(--jef-space-3);
	text-align: center;
	color: var(--jef-text-soft);
}

/* --- Formular-Plugins (CF7 / WPForms / Gravity / Fluent) ans Theme --- */
.wpcf7-form,
.wpforms-container form,
.gform_wrapper form,
.fluentform form {
	display: grid;
	gap: var(--jef-space-2);
}

.wpcf7-form label,
.wpforms-container label,
.gform_wrapper label,
.fluentform label {
	font-family: var(--jef-font-heading);
	font-size: 0.9375rem;
	font-weight: 600;
}

.wpcf7-form input[type="submit"],
.wpforms-container button[type="submit"],
.wpforms-container input[type="submit"],
.gform_wrapper input[type="submit"],
.gform_wrapper .gform_button,
.fluentform button[type="submit"] {
	border: 0;
	border-radius: var(--jef-radius-sm);
	background: var(--jef-primary);
	color: #fff;
	padding: 0.85rem 1.75rem;
	font-family: var(--jef-font-heading);
	font-weight: 600;
	cursor: pointer;
}

.wpcf7-not-valid-tip,
.wpforms-error,
.gfield_error .validation_message,
.fluentform .error {
	color: #b3261e;
	font-size: 0.875rem;
}

.wpcf7-response-output {
	border-radius: var(--jef-radius-sm);
}

.rcb-content-blocker .rcb-load-button,
a.rcb-load-button,
button.rcb-load-button {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: var(--jef-space-2);
	padding: 0.85rem 1.75rem;
	border-radius: var(--jef-radius-sm);
	border: 0;
	background: var(--jef-primary);
	color: #fff;
	font-family: var(--jef-font-heading);
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
}
