/*
Theme Name:   GP Seenplatte (TVMSE)
Theme URI:    https://1000seen.de/digitalsuite/
Description:  Child Theme für GeneratePress im TVMSE-Multisite (1000seen.de): zentrales Designsystem, Utilities, TVMSE-Standard-Profil und site-spezifische Akzente über den GP Customizer. Technischer Slug: gp1000seen.
Author:       Robert Neidel
Author URI:   https://tourismusmacher.de
Template: generatepress
Version: 1.8.66
Text Domain: gp1000seen
*/

/* ===============  TABLE OF CONTENTS  ===============

0. Design Tokens (:root)
1. Theme Tweaks
2. Utilities
3. Typography
4. Global Styles
5. Forms
6. Components (Carousel, Hero, …)

================================================== */

/**
 * 0. DESIGN TOKENS
 * SSOT der Render-Tokens: inc/mse-defaults.php (GP Global Colors je blog_id) + theme.json (Editor).
 * Urlaubsmarke MV: MV-Brand-Core + Akzent-Paar (--accent Fläche, --link textsicher, --accent-contrast).
 * Child: Spacing, Typo-Skala, Surface-Aliase, Form-/Layout-Utilities.
 */
:root {
	/* Surface → GP */
	--surface-0: var(--base-3);
	--surface-10: var(--base-2);
	--surface-20: var(--base);
	--surface-30: var(--contrast-3);
	--surface-70: var(--contrast-2);
	--surface-80: var(--contrast);
	--surface-90: var(--contrast);
	--contrast-alt: var(--contrast-2);

	/* Layout */
	--width-m: 64rem;
	--width-s: 48rem;
	--width-xs: 40rem;
	--gutter: clamp(1rem, 0.848rem + 0.758vw, 1.5rem);

	/* Radius */
	--radius-xs: 0.125rem;
	--radius-s: 0.25rem;
	--radius-m: 2px;
	--radius-l: 1rem;
	--radius-xl: 1.5rem;
	--radius-xxl: 2rem;
	--radius-50: 50%;
	--radius-circle: 50%;
	--radius--xl: var(--radius-xl);

	/* Typography — Urlaubsmarke MV: Roboto (Text) · Roboto Condensed (Struktur-Headlines) · Merriweather (emotional) */
	--body-font: var(--gp-font--roboto, "Roboto", sans-serif);
	--font-condensed: var(--gp-font--roboto-condensed, "Roboto Condensed", "Roboto", sans-serif);
	--headline-font: var(--font-condensed);
	--emotional-font: var(--gp-font--merriweather, "Merriweather", serif);
	--fs-body: clamp(1rem, calc(0.96rem + 0.21vw), 1.125rem);
	--fs-headline-xl: clamp(3rem, calc(2.5rem + 2.5vw), 4.5rem);
	--fs-headline-h1: clamp(2.5rem, calc(2.167rem + 1.667vw), 3.5rem);
	--fs-headline-h2: clamp(2rem, calc(1.833rem + 0.833vw), 2.5rem);
	--fs-headline-h3: clamp(1.75rem, calc(1.625rem + 0.625vw), 2.125rem);
	--fs-headline-h4: clamp(1.5rem, calc(1.417rem + 0.417vw), 1.75rem);
	--fs-headline-h5: clamp(1.25rem, calc(1.167rem + 0.417vw), 1.5rem);
	--fs-headline-h6: clamp(1.125rem, calc(1.083rem + 0.208vw), 1.25rem);
	--fs-headline-pre: clamp(0.9375rem, calc(0.917rem + 0.104vw), 1rem);
	--fs-headline-body-xl: clamp(1.25rem, calc(1.167rem + 0.417vw), 1.5rem);
	--fs-headline-body-l: clamp(1.125rem, calc(1.083rem + 0.208vw), 1.25rem);
	--fs-headline-body-s: clamp(0.9375rem, calc(0.917rem + 0.104vw), 1rem);
	--fs-headline-body-xs: clamp(0.875rem, calc(0.854rem + 0.104vw), 0.9375rem);
	--text-s: clamp(0.875rem, calc(0.833rem + 0.208vw), 1rem);
	--text-xs: clamp(0.75rem, calc(0.729rem + 0.104vw), 0.8125rem);

	/* Forms & buttons (site accent via GP Customizer) */
	--form-border: var(--contrast-3);
	--form-bg: var(--base-3);
	--form-text: var(--contrast);
	--form-radius: var(--radius-btn, 2px);
	--button-bg: var(--accent);
	--button-text: var(--accent-contrast, var(--base-3));
	--radius-btn: 2px;
	--mv-orange: #f18700;
	--mv-gold: #efa800;
	--mv-night: #083652;
	--mv-water: #005e90;
	--shadow-s: 0 4px 10px color-mix(in srgb, var(--contrast) 10%, transparent);
	--overlay: color-mix(in srgb, var(--contrast) 60%, transparent);
}


/*** 1. THEME TWEAKS ***/

body.tvmse-hub-page.no-sidebar #primary,
body.tvmse-hub-page.no-sidebar #main {
	width: 100%;
	max-width: none;
}

body.tvmse-hub-page .widget-area.sidebar,
body.tvmse-hub-page #right-sidebar,
body.tvmse-hub-page #left-sidebar {
	display: none !important;
}

body.tvmse-hub-page .entry-header,
body.tvmse-hub-page .page-header {
	display: none;
}

body.tvmse-hub-page.separate-containers .inside-article {
	padding-top: 0;
}

body.tvmse-hub-page .entry-content > .alignfull,
body.tvmse-hub-page .entry-content > .wp-block-cover.alignfull {
	margin-left: -40px;
	width: calc(100% + 80px);
	max-width: calc(100% + 80px);
}

@media (max-width: 768px) {
	body.tvmse-hub-page .entry-content > .alignfull,
	body.tvmse-hub-page .entry-content > .wp-block-cover.alignfull {
		margin-left: -30px;
		width: calc(100% + 60px);
		max-width: calc(100% + 60px);
	}
}

.tvmse-hub-hero h1.accent-headline {
	font-family: var(--font-condensed);
	font-style: normal;
	font-weight: 700;
}

/* --- Seenplatte Digital Suite Hub (blog 10) --- */
body.tvmse-hub-page .tvmse-hub-header {
	background: var(--mv-night, #083652);
	border-bottom: 1px solid color-mix(in srgb, var(--mv-night, #083652) 82%, #000);
	color: var(--base-3);
	padding: 0.65rem clamp(1rem, 0.848rem + 0.758vw, 1.5rem);
	position: sticky;
	top: 0;
	z-index: 100;
	box-shadow: none;
}

body.tvmse-hub-page .tvmse-suite-site-header,
body.tvmse-hub-page .gb-site-header.tvmse-suite-site-header {
	background: var(--mv-night, #083652) !important;
	box-shadow: none !important;
	border-radius: 0;
	border-bottom: 1px solid color-mix(in srgb, #fff 14%, transparent);
}

body.tvmse-hub-page .tvmse-suite-site-header a,
body.tvmse-hub-page .tvmse-suite-site-header .site-title a,
body.tvmse-hub-page .tvmse-suite-site-header .gb-menu-link {
	color: var(--base-3, #f1f0f0);
	text-decoration: none;
}

body.tvmse-hub-page .tvmse-suite-site-header a:hover,
body.tvmse-hub-page .tvmse-suite-site-header a:focus-visible {
	color: var(--base-3, #f1f0f0);
	opacity: 0.9;
}

body.tvmse-hub-page .gb-menu-container--mobile,
body.tvmse-hub-page .gb-menu-container.gb-menu-container--mobile {
	background-color: var(--mv-night, #083652) !important;
}

body.tvmse-hub-page .tvmse-hub-header__brand:hover .tvmse-hub-header__product,
body.tvmse-hub-page .tvmse-hub-header__brand:focus-visible .tvmse-hub-header__product,
body.tvmse-hub-page .tvmse-hub-header__product:hover,
body.tvmse-hub-page .tvmse-hub-header__product:focus-visible {
	color: var(--accent-contrast);
	opacity: 0.92;
}

body.tvmse-hub-page .tvmse-hub-header__inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 1rem 1.5rem;
}

body.tvmse-hub-page .tvmse-hub-header__lead {
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
	line-height: 1.15;
	justify-self: start;
	min-width: 0;
}

body.tvmse-hub-page .tvmse-hub-header__logo-link {
	justify-self: center;
	display: flex;
	line-height: 0;
}

body.tvmse-hub-page .tvmse-hub-header__nav {
	justify-self: end;
}

@media (max-width: 52rem) {
	body.tvmse-hub-page .tvmse-hub-header__inner {
		grid-template-columns: 1fr auto;
		grid-template-areas:
			"lead nav"
			"logo logo";
	}

	body.tvmse-hub-page .tvmse-hub-header__lead { grid-area: lead; }
	body.tvmse-hub-page .tvmse-hub-header__logo-link { grid-area: logo; }
	body.tvmse-hub-page .tvmse-hub-header__nav { grid-area: nav; }
}

body.tvmse-hub-page .tvmse-hub-header__product {
	color: var(--accent-contrast);
	text-decoration: none;
}

body.tvmse-hub-page .tvmse-hub-header__tagline {
	color: var(--accent-contrast);
	opacity: 0.82;
}

body.tvmse-hub-page .tvmse-hub-nav a {
	color: var(--accent-contrast);
	opacity: 0.92;
	border-bottom-color: transparent;
}

body.tvmse-hub-page .tvmse-hub-nav a:hover,
body.tvmse-hub-page .tvmse-hub-nav a:focus-visible {
	color: var(--accent-contrast);
	opacity: 1;
	border-bottom-color: var(--accent-contrast);
}

body.tvmse-hub-page .tvmse-hub-nav a.tvmse-hub-nav__meta {
	opacity: 0.65;
}

body.tvmse-hub-page .tvmse-hub-nav a.tvmse-hub-nav__meta:hover,
body.tvmse-hub-page .tvmse-hub-nav a.tvmse-hub-nav__meta:focus-visible {
	opacity: 0.9;
}

body.tvmse-hub-page .tvmse-hub-footer {
	background: var(--mv-night, #083652);
	border-top: 1px solid color-mix(in srgb, #fff 14%, transparent);
	color: var(--base-3, #f1f0f0);
	padding: clamp(1.5rem, 1rem + 2vw, 2.5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem);
	margin-top: 3rem;
	font-size: var(--text-s, 0.9375rem);
}

body.tvmse-hub-page .tvmse-hub-footer__brand strong {
	color: inherit;
}

body.tvmse-hub-page .tvmse-hub-footer a {
	color: var(--base-3, #f1f0f0);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

body.tvmse-hub-page .tvmse-hub-footer a:hover,
body.tvmse-hub-page .tvmse-hub-footer a:focus-visible {
	opacity: 0.88;
}

body.tvmse-hub-page .tvmse-hub-footer__note {
	color: inherit;
	opacity: 0.78;
}

/* Fallback: andere Sites / Editor-Vorschau ohne body.tvmse-hub-page */
.tvmse-hub-header {
	background: var(--base-3);
	border-bottom: 1px solid var(--contrast-3);
	padding: 0.65rem clamp(1rem, 0.848rem + 0.758vw, 1.5rem);
	position: sticky;
	top: 0;
	z-index: 100;
}

.tvmse-hub-header__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 1.5rem;
	max-width: var(--width-l, 72rem);
	margin-inline: auto;
}

.tvmse-hub-header__brand {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	text-decoration: none;
	color: inherit;
	min-width: 0;
}

.tvmse-hub-header__brand:hover .tvmse-hub-header__product,
.tvmse-hub-header__brand:focus-visible .tvmse-hub-header__product {
	color: var(--link);
}

.tvmse-hub-header__logo {
	height: 2.35rem;
	width: auto;
	flex-shrink: 0;
}

.tvmse-hub-header__titles {
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
	line-height: 1.15;
	min-width: 0;
}

.tvmse-hub-header__product {
	font-family: var(--font-condensed);
	font-weight: 700;
	font-size: clamp(1rem, 0.95rem + 0.35vw, 1.2rem);
	color: var(--contrast);
	text-decoration: none;
}

.tvmse-hub-header__tagline {
	font-size: var(--text-xs, 0.75rem);
	color: var(--contrast-2);
	font-weight: 400;
}

.tvmse-hub-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 1.1rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.tvmse-hub-nav a {
	color: var(--contrast-2);
	text-decoration: none;
	font-size: var(--text-s, 0.9375rem);
	font-family: var(--font-condensed);
	font-weight: 600;
	padding: 0.15rem 0;
	border-bottom: 2px solid transparent;
}

.tvmse-hub-nav a:hover,
.tvmse-hub-nav a:focus-visible {
	color: var(--link);
	border-bottom-color: var(--link);
}

.tvmse-hub-nav a.tvmse-hub-nav__meta {
	color: var(--contrast-3);
	font-weight: 500;
	font-size: var(--text-xs, 0.75rem);
}

.tvmse-hub-nav a.tvmse-hub-nav__meta:hover,
.tvmse-hub-nav a.tvmse-hub-nav__meta:focus-visible {
	color: var(--contrast-2);
	border-bottom-color: transparent;
}

.tvmse-hub-footer {
	background: var(--base-2);
	border-top: 1px solid var(--contrast-3);
	padding: clamp(1.5rem, 1rem + 2vw, 2.5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem);
	margin-top: 3rem;
	font-size: var(--text-s, 0.9375rem);
	color: var(--contrast-2);
}

.tvmse-hub-footer__inner {
	display: grid;
	gap: 1.5rem;
	max-width: var(--width-l, 72rem);
	margin-inline: auto;
}

@media (min-width: 48rem) {
	.tvmse-hub-footer__inner {
		grid-template-columns: 1.2fr 1fr;
		align-items: start;
	}

	.tvmse-hub-footer__meta {
		text-align: right;
	}
}

.tvmse-hub-footer__brand p {
	margin: 0 0 0.5rem;
}

.tvmse-hub-footer__brand strong {
	color: var(--contrast);
}

.tvmse-hub-footer a {
	color: var(--link);
	text-decoration: none;
}

.tvmse-hub-footer a:hover,
.tvmse-hub-footer a:focus-visible {
	text-decoration: underline;
}

.tvmse-hub-footer__meta p {
	margin: 0 0 0.35rem;
}

.tvmse-hub-footer__note {
	font-size: var(--text-xs, 0.75rem);
	color: var(--contrast-3);
	max-width: 28rem;
	margin-left: auto;
}

.tvmse-hub-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
	gap: 1.25rem;
	max-width: var(--width-m, 64rem);
	margin: 2rem auto;
}

.tvmse-hub-card {
	background: var(--base-3);
	border: 1px solid var(--contrast-3);
	border-radius: var(--radius-btn, 2px);
	padding: 1.25rem 1.5rem;
	box-shadow: none;
	transition: border-color 0.15s ease;
}

.tvmse-hub-card:hover {
	border-color: var(--accent);
	box-shadow: none;
}

.tvmse-hub-card h3 {
	margin: 0 0 0.5rem;
	font-size: var(--fs-headline-h5, 1.25rem);
}

.tvmse-hub-card p {
	margin: 0 0 1rem;
	color: var(--contrast-2);
	font-size: var(--text-s, 0.9375rem);
}

.tvmse-hub-card a.gb-button,
.tvmse-hub-card .tvmse-hub-card__link {
	display: inline-block;
	color: var(--accent);
	font-weight: 600;
	text-decoration: none;
}

.tvmse-hub-card__badge {
	display: inline-block;
	font-size: var(--text-xs, 0.75rem);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--accent);
	background: color-mix(in srgb, var(--accent) 12%, var(--base-3));
	border-radius: var(--radius-s);
	padding: 0.2rem 0.5rem;
	margin-bottom: 0.5rem;
}

.tvmse-hub-hero {
	background: var(--base-2);
	border-bottom: 1px solid var(--contrast-3);
	padding: clamp(2.5rem, 1.5rem + 4vw, 4.5rem) 0;
	margin-bottom: 2rem;
}

.tvmse-hub-hero__inner {
	max-width: var(--width-m, 64rem);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.tvmse-hub-hero__eyebrow {
	font-size: var(--text-s);
	font-family: var(--font-condensed);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--mv-gold, #efa800);
	margin: 0 0 0.75rem;
}

.tvmse-hub-hero h1 {
	margin: 0 0 1rem;
	font-size: var(--fs-headline-h1);
	line-height: 1.1;
}

.tvmse-hub-hero__lead {
	font-size: var(--fs-headline-body-l);
	color: var(--contrast-2);
	max-width: 42rem;
	margin: 0;
	line-height: 1.5;
}

.tvmse-hub-section-title {
	font-size: var(--fs-headline-h4);
	margin: 2.5rem auto 1rem;
	max-width: var(--width-m, 64rem);
	padding-inline: var(--gutter);
}

.tvmse-hub-steps {
	max-width: var(--width-m, 64rem);
	margin: 1.5rem auto 2.5rem;
	padding: 1.5rem var(--gutter);
	background: var(--base-2);
	border-radius: var(--radius-m);
	border: 1px solid var(--contrast-3);
}

.tvmse-hub-steps ol {
	margin: 0;
	padding-left: 1.25rem;
	color: var(--contrast-2);
}

.tvmse-hub-steps li + li {
	margin-top: 0.5rem;
}

body.tvmse-hub-page .entry-title {
	display: none;
}

.tvmse-pattern-section {
	max-width: var(--width-m, 64rem);
	margin: 2.5rem auto;
	padding: 0 clamp(1rem, 0.848rem + 0.758vw, 1.5rem);
}

.tvmse-pattern-section h2 {
	border-bottom: 1px solid var(--contrast-3);
	padding-bottom: 0.5rem;
	margin-bottom: 1.25rem;
}

body.tvmse-hub-page #primary {
	padding-top: 0;
}

body.tvmse-hub-page .entry-content > .tvmse-hub-lead {
	color: var(--contrast-2);
	max-width: 42rem;
	margin-bottom: 2rem;
}

.tvmse-element-catalog {
	max-width: var(--width-m, 64rem);
	margin: 0 auto 2.5rem;
	padding: 0 var(--gutter);
	overflow-x: auto;
}

.tvmse-element-catalog table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--text-s, 0.9375rem);
}

.tvmse-element-catalog th,
.tvmse-element-catalog td {
	text-align: left;
	padding: 0.65rem 0.75rem;
	border-bottom: 1px solid var(--contrast-3);
	vertical-align: top;
}

.tvmse-element-catalog th {
	font-weight: 600;
	color: var(--contrast);
	background: var(--base-2);
}

.tvmse-element-catalog tr:hover td {
	background: color-mix(in srgb, var(--accent) 4%, var(--base-3));
}

.tvmse-element-catalog code {
	font-size: 0.85em;
}

.tvmse-element-kit {
	display: inline-block;
	font-size: var(--text-xs, 0.75rem);
	font-weight: 600;
	padding: 0.15rem 0.45rem;
	border-radius: var(--radius-s);
	white-space: nowrap;
}

.tvmse-element-kit--core {
	color: var(--accent);
	background: color-mix(in srgb, var(--accent) 12%, var(--base-3));
}

.tvmse-element-kit--snippet {
	color: var(--contrast);
	background: var(--base-2);
	border: 1px solid var(--contrast-3);
}

.tvmse-element-kit--hub {
	color: var(--contrast-2);
	background: var(--base);
}

.tvmse-hub-glossary {
	max-width: var(--width-m, 64rem);
	margin: 0 auto 2rem;
	padding: 1.25rem var(--gutter);
	background: var(--base-2);
	border-radius: var(--radius-m);
	border: 1px solid var(--contrast-3);
}

.tvmse-hub-glossary dl {
	margin: 0;
	display: grid;
	gap: 0.75rem;
}

.tvmse-hub-glossary dt {
	font-weight: 600;
	margin: 0;
}

.tvmse-hub-glossary dd {
	margin: 0.15rem 0 0;
	color: var(--contrast-2);
	font-size: var(--text-s, 0.9375rem);
}

/* Meckschweiz: Markengrün (Prod: Header #289b38, Footer #144f26) */
body.blogid-3 {
	--accent: #289b38;
	--tvmse-meck-header-bg: #289b38;
	--tvmse-meck-footer-bg: #144f26;
	--ms-btn-bg: #144f26;
	--ms-btn-bg-hover: #289b38;
	--ms-btn-text: #ffffff;
	--ms-btn-radius: 20px;
	--ms-btn-py: 1rem;
	--ms-btn-px: 2rem;
	--ms-btn-chip-py: 0.45rem;
	--ms-btn-chip-px: 0.95rem;
	--ms-btn-chip-radius: 20px;
	--button-bg: var(--ms-btn-bg);
	--button-text: var(--ms-btn-text);
}

/* Meckschweiz Inhaltsfläche: Prod-Parität = GP base-3 (#fff), nicht --base (#f0f0f0) */
body.blogid-3.one-container:not(.full-width-content) .site,
body.blogid-3.one-container:not(.full-width-content) .container,
body.blogid-3.one-container .site-content,
body.blogid-3.one-container .site-main {
	background-color: var(--base-3);
}

/* Desktop: kein grauer Seitenstreifen (body --base-2) links/rechts der Content-Spalte */
@media (min-width: 768px) {
	body.blogid-3 {
		background-color: var(--base-3, #ffffff);
	}
}

/* Startseite: Teaser-Kacheln einheitlich 16:10 */
body.blogid-3 .grid-teaser img {
	aspect-ratio: 16 / 10;
	object-fit: cover;
	width: 100%;
	height: auto;
}

/* Legacy PHP-Header (TVMSE_MECK_CUSTOM_HEADER): GP-Header ausblenden */
body.blogid-3.tvmse-meck-custom-header #masthead.site-header,
body.blogid-3.tvmse-meck-custom-header .site-header,
body.blogid-3.tvmse-meck-custom-header #site-navigation,
body.blogid-3.tvmse-meck-custom-header nav#site-navigation,
body.blogid-3.tvmse-meck-custom-header .mobile-menu-control-wrapper,
body.blogid-3.tvmse-meck-custom-header .gb-site-header,
body.blogid-3.tvmse-meck-custom-header header.gb-site-header {
	display: none !important;
}

.tvmse-meck-header {
	position: relative;
	z-index: 200;
	background: var(--tvmse-meck-header-bg, #289b38);
	color: #fff;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.tvmse-meck-header__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	max-width: var(--width-m, 64rem);
	margin-inline: auto;
	padding: 0.75rem clamp(1rem, 0.848rem + 0.758vw, 1.5rem);
}

.tvmse-meck-header__logo {
	font-weight: 700;
	font-size: 1.125rem;
	color: var(--base-3, #fff);
	text-decoration: none;
}

.tvmse-meck-header__nav .menu {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.25rem 1.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.tvmse-meck-header__nav .menu > li {
	position: relative;
}

.tvmse-meck-header__nav .menu a {
	color: var(--base-3, #fff);
	text-decoration: none;
	font-size: 0.9375rem;
	font-weight: 500;
	white-space: nowrap;
}

.tvmse-meck-header__nav .menu a:hover,
.tvmse-meck-header__nav .menu a:focus {
	text-decoration: underline;
}

body.blogid-3 .gb-element-c011ed89,
body.blogid-3 .site-footer,
body.blogid-3 footer.site-footer {
	background-color: var(--tvmse-meck-footer-bg, #144f26) !important;
}

.tvmse-meck-header__nav .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 12rem;
	margin: 0;
	padding: 0.5rem 0;
	list-style: none;
	background: var(--tvmse-meck-header-bg, #289b38);
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: 4px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
	z-index: 210;
}

.tvmse-meck-header__nav .menu > li:hover > .sub-menu,
.tvmse-meck-header__nav .menu > li:focus-within > .sub-menu {
	display: block;
}

.tvmse-meck-header__nav .sub-menu a {
	display: block;
	padding: 0.5rem 1rem;
}

@media (max-width: 980px) {
	.tvmse-meck-header__inner {
		flex-direction: column;
		align-items: flex-start;
	}

	.tvmse-meck-header__nav .menu {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.5rem;
	}

	.tvmse-meck-header__nav .sub-menu {
		position: static;
		display: block;
		border: 0;
		box-shadow: none;
		padding-left: 1rem;
		background: transparent;
	}
}

/* Body background color (outside wrapper) */
body.blogid-10,
body.tvmse-hub-page {
	background-color: var(--surface-20);
}

/* Site Wrapper */
.site-wrapper {
	width: 100%;
	max-width: 1920px;
	margin-inline: auto;
	background-color: var(--surface-10);
}

/* Set the main content area height */
#main{
	min-height: 65vh;
}

/* Container Padding Overrides */
.inside-header {
	padding-inline: 0px !important;
}

.site-header {
	padding-inline: clamp(1rem, 0.848rem + 0.758vw, 1.5rem) !important;
}

.site-content {
	padding: 0px;
}

/* Post Editor Width (Backend) */
.post-type-post .block-editor-block-list__layout,
.post-type-post .edit-post-visual-editor__post-title-wrapper .editor-post-title {
	max-width: 728px !important;
	margin-inline: auto !important;
	padding-inline: 200px !important;
}

/* -- Search Tweaks -- */

/* Clears the "X" from Chrome */

input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration {
	filter: grayscale(100) opacity(.3);
	cursor: pointer;
}

/* Search Block */

.wp-block-search {
	border-radius: 4px;
	overflow: hidden;
	outline: 1px solid var(--surface-30);
	box-shadow: 0px 0px 0px #00000010;
	transition: all 250ms ease-in;
}

.wp-block-search:focus-within {
	outline: 1px solid var(--surface-30);
	box-shadow: 0px 0px 0px #00000010;
}

.wp-block-search input {
	border: none;
	padding: 0px 1em;
	border-radius: 4px;
	outline: none;
}

.wp-block-search button {
	background: var(--surface-20);	
	color:  var(--surface-70);
	padding: 10px 12px;
	border-left: 1px solid var(--surface-30);	 
}

/* Modal */

.search-modal-fields button {
	background: var(--surface-20) !important;	
	color:  var(--surface-70) !important;	
	line-height: 1;
	font-weight: 600;
	border-left: 1px solid var(--surface-30);
	padding: 10px 12px;
}

.search-modal-fields button:hover {
	background: var(--surface-30) !important;	
	color:  var(--surface-90) !important;		
}

.search-modal-fields input {
	background-color: var(--base-3) !important;
	border-radius: 4px;
	border: none;
	padding: 0px 1em;
	outline: none;
}

.search-modal-form {
	color:  var(--surface-80);
}

.search-modal-fields {
	border-radius: 4px;
	overflow: hidden;
	outline: 1px solid var(--surface-30);
	box-shadow: 0px 0px 0px #00000010;
	transition: all 250ms ease-in;
	background-color: var(--surface-0);
}

.search-modal-fields:focus-within {
	outline: 1px solid var(--surface-30);
	box-shadow: 0px 4px 10px #00000010;
}

.gp-search-modal .gp-modal__overlay {
	background-color: var(--overlay);
}

/* Search Results / No Search Results template */

.search-title-wrapper {
	display: flex;
	align-items: flex-start;
	margin-top: 40px;
	padding-top: 40px;
	border-top: 1px solid var(--surface-30);
}

.search-for {
	line-height: 1.4;
}

.search-title{
	font-size: var(--fs-body);
	text-transform: capitalize;
	margin-left: .4em;
	line-height: 1.4;
}

/* Hamburger Menu */
.mobile-menu-control-wrapper .menu-toggle,
.mobile-menu-control-wrapper .menu-toggle:hover,
.mobile-menu-control-wrapper .menu-toggle:focus,
.has-inline-mobile-toggle #site-navigation.toggled {
	background-color: transparent;
	margin-right: -1rem;
	font-size: 1em;
	line-height: 8px;
}

/* Primary Menu Button Styles */
@media (min-width: 1025px) {
	.main-navigation .main-nav ul li.nav-cta a {
		background: var(--contrast) !important;
		color: var(--surface-10) !important;
		padding: 1em 1.5em;
		margin-left: 16px;
		border-radius: 4px;
		line-height: 1;
		font-weight: 600;
	}
	.main-navigation .main-nav ul li.nav-cta a:hover {
		background: var(--contrast-alt) !important;
		color: var(--surface-0) !important;
	}
}

@media (max-width: 1024px) {
	.main-navigation .main-nav ul li.nav-cta a {
		margin-left: 0px;
	}
}

/* Password Protect Pages */

.post-password-form {
	max-width: 768px;
	padding: 8rem 0px;
	margin-inline: auto;
	text-align: center;
}


/*** 2. UTILITIES ***/
/* Child-Theme Utilities (TAB-Inspiration, ohne Präfix). Nur GP-Tokens in Werten. */

/* --- A11y --- */
.visually-hidden:not(:focus):not(:active) {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.wp-block-cover:has(> .tvmse-cover-stretch) {
	position: relative;
}

.tvmse-cover-stretch {
	position: absolute;
	inset: 0;
	z-index: 2;
}

.wp-block-cover:has(> .tvmse-cover-stretch) .wp-block-cover__inner-container {
	position: relative;
	z-index: 1;
	pointer-events: none;
}

/* --- Text --- */
.line-clamp-2,
.line-clamp-3,
.line-clamp-4,
.line-limit-2,
.line-limit-3 {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.line-clamp-2,
.line-limit-2 {
	-webkit-line-clamp: 2;
}

.line-clamp-3,
.line-limit-3 {
	-webkit-line-clamp: 3;
}

.line-clamp-4 {
	-webkit-line-clamp: 4;
}

.text-balance {
	text-wrap: balance;
}

.no-ul,
.no-ul a {
	text-decoration: none;
}

.text-muted {
	color: var(--contrast-2);
}

.text-accent {
	color: var(--accent);
}

/* --- Surfaces & radius --- */
.bg-surface-0 { background-color: var(--surface-0); }
.bg-surface-10 { background-color: var(--surface-10); }
.bg-surface-20 { background-color: var(--surface-20); }
.bg-accent { background-color: var(--accent); }

.rounded-s { border-radius: var(--radius-s); }
.rounded-m { border-radius: var(--radius-m); }
.rounded-l { border-radius: var(--radius-l); }
.rounded-xl { border-radius: var(--radius-xl); }

/* --- Layout width --- */
.max-w-xs {
	max-width: var(--width-xs);
	margin-inline: auto;
}

.max-w-s {
	max-width: var(--width-s);
	margin-inline: auto;
}

.max-w-m {
	max-width: var(--width-m);
	margin-inline: auto;
}

.max-w-full {
	max-width: 100%;
}

.gutter {
	padding-inline: var(--gutter);
}

/* --- Vertical stack --- */
.stack > * + * {
	margin-top: var(--stack-gap, 1rem);
}

.stack-xs { --stack-gap: 0.25rem; }
.stack-s { --stack-gap: 0.5rem; }
.stack-m { --stack-gap: 1rem; }
.stack-l { --stack-gap: 2rem; }
.stack-xl { --stack-gap: 3rem; }

/* --- Flex cluster --- */
.cluster {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--cluster-gap, 1rem);
}

.cluster-s { --cluster-gap: 0.5rem; }
.cluster-m { --cluster-gap: 1rem; }
.cluster-l { --cluster-gap: 1.5rem; }

/* --- Aspect ratio --- */
.ar-16-9,
.ar-9-16,
.ar-4-3,
.ar-3-4,
.ar-1-1 {
	display: block;
	overflow: hidden;
}

.ar-16-9 { aspect-ratio: 16 / 9; }
.ar-9-16 { aspect-ratio: 9 / 16; }
.ar-4-3 { aspect-ratio: 4 / 3; }
.ar-3-4 { aspect-ratio: 3 / 4; }
.ar-1-1 { aspect-ratio: 1 / 1; }

.ar-16-9 img,
.ar-9-16 img,
.ar-4-3 img,
.ar-3-4 img,
.ar-1-1 img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* --- CSS Grid --- */
.grid-2 {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
}

.grid-3 {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
}

.grid-4 {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
}

.grid-5 {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
}

.grid-6 {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
}

.grid-auto-fit {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(16rem, 100%), 1fr));
	gap: var(--grid-gap, 1.25rem);
}

.grid-auto-fill {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(14rem, 100%), 1fr));
	gap: var(--grid-gap, 1.25rem);
}

.gap-xs { gap: 0.5rem; }
.gap-s { gap: 1rem; }
.gap-m { gap: 2rem; }
.gap-l { gap: 4rem; }
.gap-xl { gap: 6rem; }

/* Tablet */
@media (min-width: 769px) and (max-width: 1024px) {
	.grid-2 { grid-template-columns: 1fr; }
	.grid-3,
	.grid-4 { grid-template-columns: repeat(2, 1fr); }
	.grid-5,
	.grid-6 { grid-template-columns: repeat(3, 1fr); }
	.gap-xs { gap: 0.5rem; }
	.gap-s { gap: 1rem; }
	.gap-m { gap: 1.5rem; }
	.gap-l { gap: 3rem; }
	.gap-xl { gap: 4rem; }
}

/* Mobile */
@media (max-width: 768px) {
	.grid-2,
	.grid-3,
	.grid-4 { grid-template-columns: 1fr; }
	.grid-5,
	.grid-6 { grid-template-columns: repeat(2, 1fr); }
	.gap-xs { gap: 0.25rem; }
	.gap-s { gap: 0.5rem; }
	.gap-m { gap: 1rem; }
	.gap-l { gap: 1.5rem; }
	.gap-xl { gap: 2rem; }
}


/*** 3. TYPOGRAPHY ***/

/*
 * TVMSE-Standard: Roboto (Fließtext) + Merriweather (Überschriften).
 * GP main.min.css setzt body auf System-UI — daher explizite Bindung inkl. GB/Nav.
 */
body,
button,
input,
select,
textarea,
.entry-content,
.site-content,
.gb-menu,
.gb-menu-link,
.gb-navigation,
.main-navigation a {
	font-family: var(--body-font);
}

/* GB-Text: Fließtext erbt Roboto; Überschriften (h1–h6.gb-text) siehe Headline-Regel unten */
p.gb-text,
span.gb-text,
div.gb-text:not(:is(h1, h2, h3, h4, h5, h6)) {
	font-family: var(--body-font);
}

p {
	font-size: var(--fs-body);
	font-weight: 400;
	line-height: 1.5;
	margin-bottom: 1.5rem;
	font-family: var(--body-font);
}

/* Überschriften + GB-Headline-Klassen + Legacy-Pattern headline2 */
h1,
h2,
h3,
h4,
h5,
h6,
.headline2,
.gb-headline-xxl,
.gb-headline-xl,
.gb-headline-h1,
.gb-headline-h2,
.gb-headline-h3,
.gb-headline-h4,
.gb-headline-h5,
.gb-headline-h6 {
	font-weight: 700;
	margin-bottom: .5em;
	font-family: var(--headline-font);
}

/*
 * Emotionale Headlines (Urlaubsmarke MV): Merriweather kursiv, bewusst sparsam.
 * Opt-in über die Klasse .accent-headline (z. B. Hero/Kampagne), NICHT als Default.
 */
.accent-headline,
h1.accent-headline,
h2.accent-headline,
.gb-headline.accent-headline {
	font-family: var(--emotional-font);
	font-style: italic;
	font-weight: 700;
}

/* Heading font-size and line-height */

.gb-headline-xl {
	font-size: var(--fs-headline-xl);
	line-height: 1.05;
}

.gb-headline-h1 {
	font-size: var(--fs-headline-h1);
	line-height: 1.05;
}

.gb-headline-h2 {
	font-size: var(--fs-headline-h2);
	line-height: 1.1;
}

.gb-headline-h3 {
	font-size: var(--fs-headline-h3);
	line-height: 1.15;
}

.gb-headline-h4 {
	font-size: var(--fs-headline-h4);
	line-height: 1.2;
}

.gb-headline-h5 {
	font-size: var(--fs-headline-h5);
	line-height: 1.25;
}

.gb-headline-h6 {
	font-size: var(--fs-headline-h6);
	line-height: 1.4;
}

.gb-headline-pre {
	font-size: var(--fs-headline-pre);
	text-transform: uppercase;
	letter-spacing: .1em;
}

/* Additional Body font-size */

.gb-headline-body-xl {
	font-family: var(--body-font);
	font-size: var(--fs-headline-body-xl);
}

.gb-headline-body-l {
	font-family: var(--body-font);
	font-size: var(--fs-headline-body-l);
}

.gb-headline-body-s {
	font-family: var(--body-font);
	font-size: var(--fs-headline-body-s);
}

.gb-headline-body-xs {
	font-family: var(--body-font);
	font-size: var(--fs-headline-body-xs);
}

/* Add top margin to blog post H2-H6 */

.single-post :is(h2, h3, h4, h5, h6) {
	margin-top: 1.5em;
}

/* Button Global Line Height */

.gb-button {
	line-height: 1em;
}

/* Remove bottom margin on last paragraph */

.gb-container p:last-child:last-of-type,
.block-editor-block-list__layout .gb-container p:nth-last-child(2) {
	margin-bottom: 0px;
}


/*** 4. GLOBAL STYLES ***/

/* Sections */

.gb-container-section-xs {
	padding: 1rem clamp(1rem, 0.848rem + 0.758vw, 1.5rem) 1rem clamp(1rem, 0.848rem + 0.758vw, 1.5rem);
}

.gb-container-section-s {
	padding: clamp(1.5rem, 1rem + 0vw, 1.5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem) clamp(1.5rem, 1rem + 0vw, 1.5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem);
}

.gb-container-section-m {
	padding: clamp(1.5rem, 1.197rem + 1.515vw, 2.5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem) clamp(1.5rem, 1.197rem + 1.515vw, 2.5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem);
}

.gb-container-section-d {
	padding: clamp(3rem, 2.394rem + 3.03vw, 5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem) clamp(3rem, 2.394rem + 3.03vw, 5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem);
}

.gb-container-section-l {
	padding: clamp(4.5rem, 3.591rem + 4.545vw, 7.5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem) clamp(4.5rem, 3.591rem + 4.545vw, 7.5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem);
}

.gb-container-section-xl {
	padding: clamp(6rem, 4.788rem + 6.061vw, 10rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem) clamp(6rem, 4.788rem + 6.061vw, 10rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem);
}

/* Announcement Bar*/

.announcement-bar {
	position: relative;
}

.announcement-bar-closed {
	display: none;
}

.announcement-closed {
	position: absolute;
	right: 4px;
	top: 50%;
	transform: translateY(-50%);
	cursor: pointer;
}


/*** 5. FORMS ***/

/* MeckSchweiz: Fluent Forms — Markengrün wie Site-Buttons */
body.blogid-3 .fluentform .ff-btn-submit,
body.blogid-3 .fluentform .ff-btn-submit:focus {
	background-color: #144f26 !important;
	border-color: #144f26 !important;
	color: #ffffff !important;
}

body.blogid-3 .fluentform .ff-btn-submit:hover {
	background-color: #289b38 !important;
	border-color: #289b38 !important;
	color: #ffffff !important;
}

body.blogid-9 .fluentform .ff-btn-submit,
body.blogid-9 .fluentform .ff-btn-submit:focus {
	background-color: var(--button-bg, #1f3a4d) !important;
	border-color: var(--button-bg, #1f3a4d) !important;
	color: var(--button-text, #ffffff) !important;
	border-radius: 10px !important;
}

body.blogid-9 .fluentform .ff-btn-submit:hover {
	background-color: #2a5168 !important;
	border-color: #2a5168 !important;
	color: #ffffff !important;
}

body.blogid-9 .booking-gruppe-inquiry-cta {
	margin-top: 1.25rem;
}

.gb-form-row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: stretch;
}

input.gb-input,
textarea.gb-input,
select.gb-input {
	width: 100%;
	padding: 1.5rem 3rem;
	border: 1px solid var(--form-border);
	border-radius: var(--form-radius);
	line-height: 1;
	outline: none;
	background: var(--form-bg);
	color: var(--form-text);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	margin-bottom: 10px;
}

input.gb-input:focus,
textarea.gb-input:focus,
select.gb-input:focus {
	border-color: var(--accent);
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 25%, transparent);
}

main button.gb-button,
main a.gb-button {
	padding: 1.5rem 3rem;
	border: 0;
	border-radius: var(--form-radius);
	cursor: pointer;
	background: var(--button-bg);
	color: var(--button-text);
	transition: transform 0.04s ease, background 0.2s ease, box-shadow 0.2s ease;
	align-items: center;
	justify-content: center;
	text-align: center;
	text-decoration: none;
}

.gb-button.block {
	display: block;
}

main button.gb-button:hover,
main a.gb-button:hover,
main .gb-button:hover {
	background: color-mix(in srgb, var(--button-bg) 85%, var(--contrast));
}


/*** 6. COMPONENTS ***/

/*** Carousel/Slider Flickity ***/

.tvmse-carousel-demo {
	max-width: var(--width-m, 64rem);
	margin-inline: auto;
	padding: clamp(1rem, 0.848rem + 0.758vw, 1.5rem) clamp(2.5rem, 1.5rem + 2vw, 3.5rem);
}

.tvmse-carousel-demo .carousel {
	width: 100%;
}

.tvmse-carousel-demo .carousel::after {
	content: "";
	display: block;
	clear: both;
}

body.page-carousel-slider #primary,
body.page-horizontal-scroll #primary {
	max-width: 100%;
}

/* For 2 cells with 2rem gap */
.cell-2 .carousel-cell {
  width: calc(50% - 2rem * 1/2);
  margin-right: 2rem;
}

/* For 3 cells with 1rem gap */
.cell-3 .carousel-cell {
  width: calc(33.333% - 1rem * 2/3);
  margin-right: 1rem;
}

@media (max-width: 1024px) {
	.cell-3 .carousel-cell {
	  width: calc(50% - 1rem * 1/2);
	  margin-right: 1rem;
	}
}

@media (max-width: 768px) {
	.cell-3 .carousel-cell,
	.cell-2 .carousel-cell	{
	  width: 100%;
	  margin-right: 1rem;
	}
}

/* Pagination */
.flickity-page-dots {
    width: 100%;
    bottom: -1.5rem;
    padding: 0;
    margin: 0;    
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 0.5rem;
}

.flickity-page-dots .dot {
    width: 0.5rem;
    height: 0.5rem;
    margin: 0;
    background: var(--contrast);
}

/* Navigation */
.flickity-button {
    height: 2.5rem;
    width: 2.5rem;
    background: none;
    color: var(--contrast);
}

.flickity-button:hover {
    background: none;
}

.flickity-prev-next-button.previous {
    left: 0;
    transform: translateX(-1.8rem) translateY(-50%);
}

.flickity-prev-next-button.next {
    right: 0;
    transform: translateX(1.8rem) translateY(-50%);
}


/*** Scrolling Grid ***/
.scroll-grid {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: min(240px, 80vw);
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scroll-snap-type: x mandatory;
	gap: var(--scroll-gap, 1rem);
	padding-bottom: 1rem;
	scrollbar-width: thin;
}

.scroll-grid > * {
	scroll-snap-align: start;
}

/*** Hero Section / Images ***/
/* Bild füllt den Container wie ein Cover-Background */
.gb-hero { position: relative; overflow: hidden; }

.gb-hero .gb-hero__img img {
  position: absolute;
  inset: 0;           /* top/right/bottom/left: 0 */
  width: 100%;
  height: 100%;
  object-fit: cover;  /* "Cover"-Wirkung */
  object-position: center; /* nach Bedarf z. B. "50% 30%" */
  z-index: 0;
}

/* Inhalte im Hero über dem Bild halten */
.gb-hero > *:not(.gb-hero__img) {
  position: relative;
  z-index: 1;
}

/* Optional: dunkles Overlay */
.gb-hero::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(0deg, rgba(0,0,0,.35), rgba(0,0,0,.35));
  z-index: 0; /* unter dem Text, über dem Bild */
}

/*
 * Full-bleed Startseiten-Hero (Performance-first).
 * — festes aspect-ratio + max-height → kein CLS
 * — echtes <img> statt CSS background-image → LCP + fetchpriority
 * — Overlay per Gradient, Text ohne Karte
 */
.tvmse-hero-fullbleed {
	position: relative;
	width: 100%;
	margin-bottom: clamp(1.5rem, 1rem + 2vw, 2.5rem);
	color: var(--base-3);
}

.tvmse-hero-fullbleed__frame {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	max-height: min(68vh, 720px);
	overflow: hidden;
	background: var(--contrast-3);
}

@media (max-width: 1024px) {
	.tvmse-hero-fullbleed__frame { aspect-ratio: 4 / 3; max-height: min(58vh, 560px); }
}

@media (max-width: 767px) {
	.tvmse-hero-fullbleed__frame { aspect-ratio: 1 / 1; max-height: min(52vh, 480px); }
}

.tvmse-hero-fullbleed__media,
.tvmse-hero-fullbleed__frame .gb-media,
.tvmse-hero-fullbleed__media img,
.tvmse-hero-fullbleed__frame .gb-media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
}

.tvmse-hero-fullbleed__media img {
	object-fit: cover;
	object-position: center 42%;
}

.tvmse-hero-fullbleed__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(180deg, rgba(8, 54, 82, .15) 0%, rgba(8, 54, 82, .55) 72%, rgba(8, 54, 82, .72) 100%);
	pointer-events: none;
}

.tvmse-hero-fullbleed__content {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: .65rem;
	max-width: var(--width-m, 64rem);
	margin-inline: auto;
	padding: clamp(1.25rem, .8rem + 2vw, 2.5rem) var(--gutter, 1.25rem);
}

.tvmse-hero-fullbleed__content .tvmse-eyebrow {
	color: var(--mv-gold, #efa800);
	margin: 0;
}

.tvmse-hero-fullbleed__content .accent-headline {
	margin: 0;
	color: var(--base-3);
	text-shadow: 0 1px 18px rgba(0, 0, 0, .28);
}

.tvmse-hero-fullbleed__lead {
	margin: 0;
	max-width: 38rem;
	font-size: var(--fs-headline-body-l, 1.125rem);
	line-height: 1.45;
	color: color-mix(in srgb, var(--base-3) 92%, var(--base) 8%);
}

/* Cover-Hero Y1/Y2 — Klassen, kein UniqueId. Overlay = Cover-Dim Nacht. */
.wp-block-cover.tvmse-hero {
	border-radius: 0;
	min-height: min(68vh, 32rem);
	margin-bottom: clamp(1.5rem, 1rem + 2vw, 2.5rem);
}
.wp-block-cover.tvmse-hero--fullbleed {
	min-height: min(52vh, 24rem);
}
@media (max-width: 767px) {
	.wp-block-cover.tvmse-hero { min-height: min(52vh, 22rem); }
	.wp-block-cover.tvmse-hero--fullbleed { min-height: min(42vh, 18rem); }
}
.wp-block-cover.tvmse-hero .wp-block-cover__inner-container {
	max-width: var(--width-m, 64rem);
}
.wp-block-cover.tvmse-hero .tvmse-eyebrow {
	color: var(--mv-gold, #efa800);
	margin: 0 0 0.5rem;
}
.wp-block-cover.tvmse-hero .accent-headline {
	margin: 0;
	color: var(--base-3);
}
.wp-block-cover.tvmse-hero .tvmse-hero__lead {
	margin: 0.35rem 0 0.85rem;
	max-width: 38rem;
	font-size: var(--fs-headline-body-l, 1.125rem);
	line-height: 1.45;
	color: color-mix(in srgb, var(--base-3) 92%, var(--base) 8%);
}
.wp-block-cover.tvmse-hero .wp-block-button.tvmse-btn--primary > .wp-block-button__link {
	background: var(--mv-night, #083652);
	color: var(--base-3);
	border: 0;
}
.wp-block-cover.tvmse-hero .wp-block-button.tvmse-btn--primary > .wp-block-button__link:hover,
.wp-block-cover.tvmse-hero .wp-block-button.tvmse-btn--primary > .wp-block-button__link:focus-visible {
	background: var(--link);
	color: var(--base-3);
}
.wp-block-cover.tvmse-hero .wp-block-button.tvmse-btn--ghost > .wp-block-button__link {
	background: transparent;
	color: var(--base-3);
	border: 2px solid currentColor;
}
.wp-block-cover.tvmse-hero .wp-block-button.tvmse-btn--ghost > .wp-block-button__link:hover,
.wp-block-cover.tvmse-hero .wp-block-button.tvmse-btn--ghost > .wp-block-button__link:focus-visible {
	background: var(--base-3);
	color: var(--mv-night, #083652);
}
.wp-block-cover.tvmse-hero .wp-block-button.tvmse-btn--signal > .wp-block-button__link {
	background: var(--mv-orange, #f18700);
	color: var(--contrast, #2c0d1d);
	border: 0;
}
.wp-block-cover.tvmse-hero .wp-block-button.tvmse-btn--signal > .wp-block-button__link:hover,
.wp-block-cover.tvmse-hero .wp-block-button.tvmse-btn--signal > .wp-block-button__link:focus-visible {
	background: var(--mv-gold, #efa800);
	color: var(--contrast, #2c0d1d);
}


/*** 7. TVMSE KOMPONENTEN-UTILITIES (Phase B) ***/
/*
 * Wiederverwendbare, token-gebundene Klassen für Editor-Patterns (inc/patterns.php).
 * Alle Farben über GP-Variablen → folgen automatisch dem Per-Site-Akzent
 * (Seenplatte blau, Meckschweiz grün, Röbel eigenes Profil).
 * WCAG: Akzent-/Dunkel-Flächen nutzen kontrastsichere Textfarben.
 */

/* Sections (volle Breite, Innenabstand) */
.tvmse-section { padding-block: clamp(2rem, 1.2rem + 4vw, 4rem); }
.tvmse-section--tint { background: var(--base-2); color: var(--contrast); }
.tvmse-section--card { background: var(--base-3); color: var(--contrast); }
.tvmse-section--accent { background: var(--accent); color: var(--accent-contrast); }
.tvmse-section--dark { background: var(--contrast); color: var(--base); }
.tvmse-section--accent :is(h1,h2,h3,h4,h5,h6),
.tvmse-section--dark :is(h1,h2,h3,h4,h5,h6) { color: inherit; }
.tvmse-section--accent a:not(.tvmse-btn),
.tvmse-section--dark a:not(.tvmse-btn) { color: inherit; text-decoration: underline; }

/* Eyebrow / Kicker — kleine Akzent-Überzeile */
.tvmse-eyebrow {
  display: inline-block;
  font-family: var(--font-condensed);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: var(--text-s, .9375rem);
  color: var(--link);
  margin-bottom: .5rem;
}
.tvmse-section--accent .tvmse-eyebrow,
.tvmse-section--dark .tvmse-eyebrow { color: inherit; opacity: .85; }

/* Karte */
.tvmse-card {
  background: var(--base-3);
  color: var(--contrast);
  border: 1px solid var(--contrast-3);
  border-radius: var(--radius-btn, 2px);
  padding: clamp(1.1rem, .9rem + 1vw, 1.6rem);
  box-shadow: none;
}
.tvmse-card--flat { box-shadow: none; }

/* Grid */
.tvmse-grid { display: grid; gap: clamp(1rem, .8rem + 1vw, 1.5rem); }
.tvmse-grid--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); }
.tvmse-grid--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.tvmse-grid--4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); }

/* Split layout (Hero, Bild+Text) */
.tvmse-split {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
	gap: clamp(1.25rem, 1rem + 1.5vw, 2rem);
	align-items: center;
}
.wp-block-columns.tvmse-split {
	display: flex;
	gap: clamp(1.25rem, 1rem + 1.5vw, 2rem);
	align-items: center;
}
.tvmse-split__media {
	aspect-ratio: 4 / 3;
	min-height: 14rem;
	border-radius: var(--radius-btn, 2px);
	background: var(--base-2);
	border: 1px dashed var(--contrast-3);
	margin: 0;
	overflow: hidden;
}
.tvmse-split__media img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 14rem;
	object-fit: cover;
}
.tvmse-split__media img:not([src]),
.tvmse-split__media img[src=""] {
	display: block;
	min-height: 14rem;
	background: var(--base-2);
}
.tvmse-media-slot {
	cursor: pointer;
}

/* Feature grid */
.tvmse-feature { margin: 0; }
.tvmse-feature__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: var(--radius-btn, 2px);
	background: color-mix(in srgb, var(--accent) 14%, var(--base-3));
	color: var(--accent);
	font-size: 1.25rem;
	font-weight: 700;
	margin: 0 0 0.65rem;
}

/* Events */
.tvmse-event-list { display: grid; gap: 1rem; }
.tvmse-event {
	padding: 0.85rem 0 0.85rem 1rem;
	border-left: 4px solid var(--accent);
	background: var(--base-3);
	border-radius: 0 var(--radius-s) var(--radius-s) 0;
}
.tvmse-event__date {
	display: block;
	font-size: var(--text-xs);
	font-weight: 700;
	color: var(--accent);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin: 0 0 0.25rem;
}

/* Stats */
.tvmse-stat-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 8rem), 1fr));
	gap: 1.25rem;
	text-align: center;
}
.tvmse-stat__num {
	display: block;
	font-size: var(--fs-headline-h2);
	font-weight: 700;
	color: var(--accent);
	line-height: 1.1;
	margin: 0;
}
.tvmse-stat__label { font-size: var(--text-s); color: var(--contrast-2); margin: 0.25rem 0 0; }
.tvmse-section--accent .tvmse-stat__num { color: var(--accent-contrast); }
.tvmse-section--accent .tvmse-stat__label { color: var(--accent-contrast); opacity: .9; }

/* Partner strip */
.tvmse-partner-strip {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 1.25rem 2rem;
	padding: 1.25rem;
	background: var(--base-2);
	border-radius: var(--radius-m);
}
.tvmse-partner {
	padding: 0.5rem 1rem;
	font-size: var(--text-s);
	font-weight: 600;
	color: var(--contrast-2);
	border: 1px dashed var(--contrast-3);
	border-radius: var(--radius-btn, 2px);
	margin: 0;
}

/* FAQ — Core details, Inhaltsbreite (kein schmaler Kasten) */
.tvmse-faq {
	max-width: none;
	width: 100%;
}
.tvmse-faq .wp-block-details {
	margin: 0 0 0.75rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--contrast-3);
}
.tvmse-faq .wp-block-details > summary {
	font-weight: 700;
	font-family: var(--font-condensed);
	cursor: pointer;
}
.tvmse-faq .wp-block-details p {
	margin: 0.35rem 0 0;
	color: var(--contrast-2);
	font-size: var(--text-s);
}
.tvmse-note {
	margin-top: 1rem;
	font-size: var(--text-xs);
	color: var(--contrast-2);
}

/* Contact block */
.tvmse-contact {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
	gap: 1.5rem;
	align-items: start;
}

.tvmse-btn,
.wp-block-button.tvmse-btn > .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .7rem 1.4rem;
  border-radius: var(--radius-btn, 2px);
  font-family: var(--font-condensed);
  font-weight: 700;
  text-decoration: none;
  line-height: 1.1;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.wp-block-button.tvmse-btn {
  margin: 0;
}
.tvmse-btn:hover,
.tvmse-btn:focus,
.tvmse-btn:focus-visible,
.wp-block-button.tvmse-btn > .wp-block-button__link:hover,
.wp-block-button.tvmse-btn > .wp-block-button__link:focus,
.wp-block-button.tvmse-btn > .wp-block-button__link:focus-visible {
  text-decoration: none;
}
.tvmse-btn:focus-visible,
.wp-block-button.tvmse-btn > .wp-block-button__link:focus-visible {
  outline: 2px solid var(--contrast);
  outline-offset: 2px;
}
.tvmse-btn--primary,
.wp-block-button.tvmse-btn--primary > .wp-block-button__link {
  background: var(--button-bg, var(--accent));
  color: var(--button-text, var(--accent-contrast));
  border: 0;
}
.tvmse-btn--primary:hover, .tvmse-btn--primary:focus,
.wp-block-button.tvmse-btn--primary > .wp-block-button__link:hover,
.wp-block-button.tvmse-btn--primary > .wp-block-button__link:focus {
  background: var(--ms-btn-bg-hover, var(--contrast));
  color: var(--accent-contrast, var(--base-3));
}
.tvmse-btn--ghost,
.wp-block-button.tvmse-btn--ghost > .wp-block-button__link {
  background: transparent;
  color: var(--link);
  border: 2px solid currentColor;
}
.tvmse-btn--ghost:hover, .tvmse-btn--ghost:focus,
.wp-block-button.tvmse-btn--ghost > .wp-block-button__link:hover,
.wp-block-button.tvmse-btn--ghost > .wp-block-button__link:focus {
  background: var(--link);
  color: var(--accent-contrast, var(--base-3));
}
.tvmse-btn--signal,
.wp-block-button.tvmse-btn--signal > .wp-block-button__link {
  background: var(--mv-orange, #f18700);
  color: var(--contrast, #2c0d1d);
  border: 0;
}
.tvmse-btn--signal:hover,
.tvmse-btn--signal:focus,
.wp-block-button.tvmse-btn--signal > .wp-block-button__link:hover,
.wp-block-button.tvmse-btn--signal > .wp-block-button__link:focus {
  background: var(--mv-gold, #efa800);
  color: var(--contrast, #2c0d1d);
}
.tvmse-section--accent .tvmse-btn--primary,
.tvmse-section--accent .wp-block-button.tvmse-btn--primary > .wp-block-button__link { background: var(--base-3); color: var(--accent); }
.tvmse-section--accent .tvmse-btn--ghost,
.tvmse-section--accent .wp-block-button.tvmse-btn--ghost > .wp-block-button__link { color: inherit; }

/* Landesmarke-Ecke im Foto-Hero — nur Startseite, nie UniqueId */
.tvmse-endorser {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  max-height: 120px;
  pointer-events: none;
}
.tvmse-endorser img {
  display: block;
  width: auto;
  height: auto;
  max-height: 120px;
  max-width: 40vw;
  object-fit: contain;
}
.tvmse-endorser__caption {
  display: none;
  margin: 0;
  font-family: var(--body-font);
  font-weight: 400;
  font-size: 0.75rem;
  line-height: 1.2;
  color: var(--contrast-2, #4a3d42);
}
@media (min-width: 1025px) {
  .tvmse-endorser__caption { display: block; }
}
@media (max-width: 767px) {
  .tvmse-endorser img { max-height: 72px; }
}

/* CTA-Banner */
.tvmse-cta {
  border-radius: var(--radius-l, 1rem);
  padding: clamp(1.5rem, 1rem + 3vw, 3rem);
  text-align: center;
}
.tvmse-cta .tvmse-btn { margin-top: .5rem; }

/* Lead / Intro-Text */
.tvmse-lead { font-size: var(--fs-headline-body-l, 1.125rem); color: var(--contrast-2); max-width: 46rem; }
.tvmse-measure { max-width: 46rem; }
.tvmse-center { margin-inline: auto; text-align: center; }


/*** 8. DESIGN SYSTEM (Hub AP2) — .tvmse-ds-* ***/
.tvmse-ds-section { margin-bottom: clamp(2rem, 1.5rem + 2vw, 3rem); }
.tvmse-ds-section h2 { margin-top: 0; }
.tvmse-ds-lead { max-width: 46rem; color: var(--contrast-2); margin-bottom: 1.5rem; }

.tvmse-ds-table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--text-s, 0.9375rem);
	margin: 1rem 0;
}
.tvmse-ds-table th,
.tvmse-ds-table td {
	padding: 0.55rem 0.75rem;
	border-bottom: 1px solid var(--contrast-3);
	text-align: left;
	vertical-align: top;
}
.tvmse-ds-table th { font-family: var(--font-condensed); font-weight: 700; }
.tvmse-ds-table code { font-size: 0.88em; }

.tvmse-ds-swatch-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr));
	gap: 0.85rem;
	margin: 1rem 0 1.5rem;
}
.tvmse-ds-swatch {
	border: 1px solid var(--contrast-3);
	border-radius: var(--radius-m, 0.75rem);
	overflow: hidden;
	background: var(--base-3);
}
.tvmse-ds-swatch__chip { height: 3.75rem; }
.tvmse-ds-swatch__meta {
	padding: 0.45rem 0.55rem;
	font-size: var(--text-xs, 0.75rem);
	line-height: 1.35;
	color: var(--contrast-2);
}
.tvmse-ds-swatch__meta strong { display: block; color: var(--contrast); font-size: 0.8rem; }

.tvmse-ds-accent-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
	gap: 1.25rem;
	margin: 1rem 0;
}
.tvmse-ds-accent-card {
	border: 1px solid var(--contrast-3);
	border-radius: var(--radius-m);
	padding: 1.25rem;
	background: var(--base-3);
}
.tvmse-ds-accent-card h3 { margin: 0 0 0.75rem; font-size: 1.1rem; }
.tvmse-ds-accent-card__bar {
	padding: 0.85rem 1rem;
	border-radius: var(--radius-s);
	margin-bottom: 0.75rem;
	font-weight: 700;
	font-family: var(--font-condensed);
}
.tvmse-ds-accent-card__link { color: var(--ds-link, var(--link)); font-weight: 600; }
.tvmse-ds-accent-card__btn {
	display: inline-block;
	padding: 0.55rem 1.1rem;
	border-radius: var(--radius-m);
	font-family: var(--font-condensed);
	font-weight: 700;
	text-decoration: none;
	background: var(--ds-accent, var(--accent));
	color: var(--ds-accent-contrast, var(--accent-contrast));
}

.tvmse-ds-wcag-ok { color: #144f26; font-weight: 700; }
.tvmse-ds-wcag-flaeche { color: var(--contrast-2); font-weight: 600; }
.tvmse-ds-wcag-fail { color: #a63659; font-weight: 700; }

.tvmse-ds-type-block { max-width: 46rem; }
.tvmse-ds-type-block h1,
.tvmse-ds-type-block h2,
.tvmse-ds-type-block h3 { margin: 0 0 0.5rem; }
.tvmse-ds-type-block p { margin: 0 0 1rem; }
.tvmse-ds-type-label {
	display: block;
	font-size: var(--text-xs);
	color: var(--contrast-2);
	margin-bottom: 0.35rem;
	font-family: var(--font-condensed);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.tvmse-ds-do-dont {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
	gap: 1.25rem;
	margin: 1rem 0;
}
.tvmse-ds-do,
.tvmse-ds-dont {
	padding: 1rem 1.15rem;
	border-radius: var(--radius-m);
	background: var(--base-3);
	border: 1px solid var(--contrast-3);
}
.tvmse-ds-do { border-left: 4px solid #289b38; }
.tvmse-ds-dont { border-left: 4px solid #a63659; }
.tvmse-ds-do h3,
.tvmse-ds-dont h3 { margin: 0 0 0.5rem; font-size: 1rem; }
.tvmse-ds-do ul,
.tvmse-ds-dont ul { margin: 0; padding-left: 1.2rem; font-size: var(--text-s); }

.tvmse-ds-buttons { display: flex; flex-wrap: wrap; gap: 0.75rem 1rem; align-items: center; margin: 1rem 0; }

.tvmse-ds-meta {
	font-size: var(--text-xs);
	color: var(--contrast-2);
	margin-top: 2rem;
	padding-top: 1rem;
	border-top: 1px solid var(--contrast-3);
}

/* Playbooks (Hub AP4) */
.tvmse-playbook-badge {
	display: inline-block;
	font-size: var(--text-xs);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--accent);
	background: color-mix(in srgb, var(--accent) 10%, var(--base-3));
	border: 1px solid color-mix(in srgb, var(--accent) 25%, var(--contrast-3));
	border-radius: var(--radius-s);
	padding: 0.25rem 0.55rem;
	margin-bottom: 1rem;
}
.tvmse-playbook-note {
	max-width: 46rem;
	font-size: var(--text-s);
	color: var(--contrast-2);
	margin: 0 0 2rem;
	padding: 0.85rem 1rem;
	background: var(--base-2);
	border-radius: var(--radius-m);
	border-left: 4px solid var(--accent);
}

/* Hub TOC (AP5 IA) */
.tvmse-hub-toc {
	max-width: var(--width-m, 64rem);
	margin: 0 auto 2rem;
	padding: 1rem var(--gutter);
	background: var(--base-2);
	border: 1px solid var(--contrast-3);
	border-radius: var(--radius-m);
}
.tvmse-hub-toc ul {
	margin: 0.5rem 0 0;
	padding-left: 1.25rem;
	columns: 2;
	column-gap: 2rem;
	font-size: var(--text-s);
}
@media (max-width: 40rem) {
	.tvmse-hub-toc ul { columns: 1; }
}

/* Hub Galerie-UX (AP6) — Katalog-Grid + Pattern-Akkordeon */
.tvmse-catalog-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(14.5rem, 1fr));
	gap: 1rem;
	max-width: var(--width-m, 64rem);
	margin: 0 auto 2.5rem;
	padding-inline: var(--gutter);
}

.tvmse-catalog-card {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	padding: 1rem 1.1rem;
	background: var(--base-3);
	border: 1px solid var(--contrast-3);
	border-radius: var(--radius-btn, 2px);
	text-decoration: none;
	color: inherit;
	box-shadow: none;
	transition: border-color 0.15s ease;
}

.tvmse-catalog-card:hover,
.tvmse-catalog-card:focus-visible {
	border-color: var(--accent);
	box-shadow: none;
	outline: none;
}

.tvmse-catalog-card__group {
	display: inline-block;
	align-self: flex-start;
	font-size: var(--text-xs, 0.75rem);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--accent);
	background: color-mix(in srgb, var(--accent) 12%, var(--base-3));
	border-radius: var(--radius-s);
	padding: 0.15rem 0.45rem;
}

.tvmse-catalog-card__title {
	font-size: var(--text-s, 0.9375rem);
	font-weight: 600;
	line-height: 1.35;
	margin: 0;
	color: var(--contrast);
}

.tvmse-catalog-card__use {
	margin: 0;
	font-size: var(--text-xs, 0.75rem);
	color: var(--contrast-2);
	line-height: 1.45;
}

.tvmse-catalog-card__action {
	margin-top: auto;
	padding-top: 0.35rem;
	font-size: var(--text-xs, 0.75rem);
	font-weight: 600;
	color: var(--accent);
}

.tvmse-pattern-previews {
	max-width: var(--width-m, 64rem);
	margin: 0 auto 3rem;
	padding-inline: var(--gutter);
}

.tvmse-pattern-preview {
	border: 1px solid var(--contrast-3);
	border-radius: var(--radius-btn, 2px);
	margin-bottom: 1rem;
	background: var(--base-3);
	overflow: hidden;
	box-shadow: none;
}

.tvmse-pattern-preview[open] {
	border-color: color-mix(in srgb, var(--accent) 35%, var(--contrast-3));
	box-shadow: none;
}

.tvmse-pattern-preview > summary {
	cursor: pointer;
	list-style: none;
	padding: 1rem 1.25rem;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.5rem 1rem;
	background: var(--base-2);
	border-bottom: 1px solid transparent;
}

.tvmse-pattern-preview[open] > summary {
	border-bottom-color: var(--contrast-3);
}

.tvmse-pattern-preview > summary::-webkit-details-marker {
	display: none;
}

.tvmse-pattern-preview > summary::after {
	content: "Vorschau";
	margin-left: auto;
	font-size: var(--text-xs, 0.75rem);
	font-weight: 600;
	color: var(--accent);
}

.tvmse-pattern-preview[open] > summary::after {
	content: "Schließen";
}

.tvmse-pattern-preview__title {
	margin: 0;
	font-size: var(--fs-headline-h5, 1.25rem);
}

.tvmse-pattern-preview__meta {
	margin: 0;
	flex: 1 1 100%;
	font-size: var(--text-s, 0.9375rem);
	color: var(--contrast-2);
}

.tvmse-pattern-preview__editor {
	margin: 0;
	padding: 0.65rem 1.25rem;
	font-size: var(--text-xs, 0.75rem);
	color: var(--contrast-2);
	background: var(--base-2);
	border-bottom: 1px solid var(--contrast-3);
}

.tvmse-pattern-preview__editor code {
	font-size: inherit;
}

.tvmse-pattern-preview__body {
	padding: 0.5rem 0 1rem;
}

.tvmse-pattern-preview__body > .wp-block-group:first-child,
.tvmse-pattern-preview__body > .wp-block-group:first-child .tvmse-section {
	margin-top: 0;
}

/* Vorlagen-Examples-Grid (AP6) */
.tvmse-vorlagen-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
	gap: 1.5rem;
	max-width: var(--width-l, 72rem);
	margin: 2rem auto;
}

.tvmse-vorlage-card {
	background: var(--base-3);
	border: 1px solid var(--contrast-3);
	border-radius: var(--radius-btn, 2px);
	overflow: hidden;
	box-shadow: none;
	transition: border-color 0.2s ease;
}

.tvmse-vorlage-card:hover {
	border-color: color-mix(in srgb, var(--accent) 40%, var(--contrast-3));
	box-shadow: none;
}

.tvmse-vorlage-card__link {
	display: block;
	text-decoration: none;
	color: inherit;
}

.tvmse-vorlage-card__preview {
	position: relative;
	height: 10.5rem;
	background: var(--base-2);
	border-bottom: 1px solid var(--contrast-3);
}

.tvmse-vorlage-card__preview::before {
	content: "";
	position: absolute;
	inset: 1rem 1rem auto;
	height: 0.45rem;
	width: 3.5rem;
	border-radius: var(--radius-btn, 2px);
	background: var(--mv-gold, #efa800);
	opacity: 0.85;
}

.tvmse-vorlage-card__preview::after {
	content: "";
	position: absolute;
	left: 1rem;
	right: 1rem;
	top: 2.25rem;
	bottom: 1rem;
	border-radius: var(--radius-s);
	background: var(--base-3);
	box-shadow: inset 0 0 0 1px var(--contrast-3);
}

.tvmse-vorlage-card__preview--landing {
	background: color-mix(in srgb, var(--mv-night, #083652) 8%, var(--base-2));
}

.tvmse-vorlage-card__preview--region {
	background: color-mix(in srgb, var(--accent) 10%, var(--base-2));
}

.tvmse-vorlage-card__preview--events {
	background: var(--base-2);
}

.tvmse-vorlage-card__type {
	position: absolute;
	top: 0.85rem;
	right: 0.85rem;
	z-index: 1;
	font-size: var(--text-xs, 0.75rem);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--accent-contrast, var(--base-3));
	background: var(--accent);
	border-radius: var(--radius-s);
	padding: 0.2rem 0.55rem;
}

.tvmse-vorlage-card__body {
	padding: 1.15rem 1.25rem 1.35rem;
}

.tvmse-vorlage-card__body h3 {
	margin: 0 0 0.5rem;
	font-size: var(--fs-headline-h5, 1.25rem);
}

.tvmse-vorlage-card__body p {
	margin: 0 0 0.85rem;
	font-size: var(--text-s, 0.9375rem);
	color: var(--contrast-2);
}

.tvmse-vorlage-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	margin: 0 0 0.85rem;
	padding: 0;
	list-style: none;
}

.tvmse-vorlage-card__tags li {
	font-size: var(--text-xs, 0.75rem);
	color: var(--contrast-2);
	background: var(--base-2);
	border: 1px solid var(--contrast-3);
	border-radius: 999px;
	padding: 0.15rem 0.55rem;
}

.tvmse-vorlage-card__cta {
	font-size: var(--text-s, 0.9375rem);
	font-weight: 600;
	color: var(--accent);
}

