/*
 * Camtheme – Grundlayout.
 * Farben, Schriften und Formen kommen aus den Variablen, die jedes Design
 * in skins/<design>/skin.css setzt.
 */

:root {
	--ct-bg: #16121a;
	--ct-surface: #211b27;
	--ct-surface-2: #2c2433;
	--ct-text: #f3edf3;
	--ct-muted: #a99fae;
	--ct-line: rgba(255, 255, 255, .1);
	--ct-accent: #e04f7c;
	--ct-accent-text: #fff;
	--ct-live: #3ddc84;
	--ct-live-text: #06210f;
	--ct-offline: #6d6573;
	--ct-star: #f5b942;

	--ct-font-body: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--ct-font-head: var(--ct-font-body);
	--ct-head-weight: 700;
	--ct-head-transform: none;
	--ct-head-tracking: -0.01em;
	--ct-body-size: 1rem;

	--ct-radius: 10px;
	--ct-radius-img: var(--ct-radius);
	--ct-radius-btn: 8px;
	--ct-wrap: 1320px;
	--ct-gap: 18px;
	--ct-cols: 4;
	--ct-card-ratio: 4 / 3;
	--ct-logo-h: 48px;
	--ct-header-bg: var(--ct-bg);
	--ct-shadow: none;
}

/* Grundlagen ------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
html.ct-dialog-open { overflow: hidden; }
body {
	margin: 0;
	background: var(--ct-bg);
	color: var(--ct-text);
	font-family: var(--ct-font-body);
	font-size: var(--ct-body-size);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}
img, video, iframe { max-width: 100%; }
img { height: auto; }
a { color: var(--ct-accent); text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 2px solid var(--ct-accent); outline-offset: 2px; }
h1, h2, h3, h4 {
	font-family: var(--ct-font-head);
	font-weight: var(--ct-head-weight);
	text-transform: var(--ct-head-transform);
	letter-spacing: var(--ct-head-tracking);
	line-height: 1.15;
	margin: 0 0 .5em;
}
button, input, select, textarea { font: inherit; color: inherit; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; animation: none !important; }
}

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.ct-skip:focus {
	clip: auto; width: auto; height: auto; margin: 0; z-index: 1000;
	top: 8px; left: 8px; padding: 10px 14px; background: var(--ct-accent); color: var(--ct-accent-text);
}

.ct-wrap { width: 100%; max-width: var(--ct-wrap); margin-inline: auto; padding-inline: 16px; }
@media (min-width: 700px) { .ct-wrap { padding-inline: 24px; } }

.ct-muted { color: var(--ct-muted); }

/* Kopf ------------------------------------------------------------------- */
.ct-header { background: var(--ct-header-bg); border-bottom: 1px solid var(--ct-line); position: relative; z-index: 20; }
.ct-header__inner { display: flex; align-items: center; gap: 16px 24px; flex-wrap: wrap; min-height: 72px; padding-block: 12px; }
.ct-brand { display: flex; flex-direction: column; justify-content: center; min-width: 0; margin-right: auto; }
.ct-brand__link { color: var(--ct-text); text-decoration: none; display: inline-flex; }
.ct-brand__logo { height: var(--ct-logo-h); width: auto; display: block; }
.ct-brand__name { font-family: var(--ct-font-head); font-weight: var(--ct-head-weight); font-size: 1.6rem; line-height: 1; margin: 0; letter-spacing: var(--ct-head-tracking); text-transform: var(--ct-head-transform); }
.ct-brand__tagline { margin: 4px 0 0; color: var(--ct-muted); font-size: .85rem; }

.ct-header__tools { display: flex; align-items: center; gap: 12px 20px; flex-wrap: wrap; }
.ct-nav__list { list-style: none; display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 0; padding: 0; }
.ct-nav__list a { color: var(--ct-text); text-decoration: none; font-weight: 500; padding: 6px 0; display: block; }
.ct-nav__list a:hover, .ct-nav__list .current-menu-item > a, .ct-nav__list .current-menu-ancestor > a { color: var(--ct-accent); }
.ct-nav__list .sub-menu { list-style: none; margin: 0; padding: 8px 12px; display: none; position: absolute; background: var(--ct-surface); border: 1px solid var(--ct-line); border-radius: var(--ct-radius-btn); min-width: 180px; z-index: 30; }
.ct-nav__list li { position: relative; }
.ct-nav__list li:hover > .sub-menu, .ct-nav__list li:focus-within > .sub-menu { display: block; }

.ct-search { display: flex; align-items: stretch; background: var(--ct-surface); border: 1px solid var(--ct-line); border-radius: var(--ct-radius-btn); overflow: hidden; }
.ct-search__input { border: 0; background: transparent; padding: 8px 12px; min-width: 0; width: 190px; }
.ct-search__input:focus { outline: none; }
.ct-search:focus-within { outline: 2px solid var(--ct-accent); outline-offset: 1px; }
.ct-search__btn { border: 0; background: transparent; color: var(--ct-muted); padding: 0 12px; cursor: pointer; display: grid; place-items: center; }
.ct-search__btn:hover { color: var(--ct-accent); }
.ct-search--block { max-width: 520px; margin: 16px 0; }
.ct-search--block .ct-search__input { flex: 1; }
.ct-search--block .ct-btn { border-radius: 0; }

.ct-nav-toggle { display: none; background: transparent; border: 1px solid var(--ct-line); border-radius: var(--ct-radius-btn); width: 44px; height: 40px; cursor: pointer; }
.ct-nav-toggle__bars, .ct-nav-toggle__bars::before, .ct-nav-toggle__bars::after { display: block; width: 18px; height: 2px; background: var(--ct-text); margin: 0 auto; position: relative; transition: transform .2s; }
.ct-nav-toggle__bars::before, .ct-nav-toggle__bars::after { content: ""; position: absolute; left: 0; }
.ct-nav-toggle__bars::before { top: -6px; }
.ct-nav-toggle__bars::after { top: 6px; }
.ct-nav-toggle[aria-expanded="true"] .ct-nav-toggle__bars { background: transparent; }
.ct-nav-toggle[aria-expanded="true"] .ct-nav-toggle__bars::before { transform: translateY(6px) rotate(45deg); }
.ct-nav-toggle[aria-expanded="true"] .ct-nav-toggle__bars::after { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 899px) {
	.ct-nav-toggle { display: block; }
	.ct-header__tools { display: none; width: 100%; flex-direction: column; align-items: stretch; padding-bottom: 8px; }
	.ct-header__tools.is-open { display: flex; }
	.ct-nav__list { flex-direction: column; }
	.ct-nav__list .sub-menu { position: static; display: block; border: 0; background: transparent; padding: 0 0 0 14px; }
	.ct-search__input { width: 100%; flex: 1; }
	/* Ohne Menü bleibt die Suche sichtbar. */
	.ct-header__inner:not(:has(.ct-nav-toggle)) .ct-header__tools { display: flex; width: auto; flex-direction: row; }
}

/* Variante: zentrierter Kopf */
@media (min-width: 900px) {
	.ct-header-centered .ct-header__inner { flex-direction: column; justify-content: center; padding-block: 22px 0; gap: 14px; }
	.ct-header-centered .ct-brand { margin: 0; align-items: center; text-align: center; }
	.ct-header-centered .ct-header__tools { width: 100%; justify-content: center; border-top: 1px solid var(--ct-line); padding-block: 10px; }
	.ct-header-centered .ct-search { margin-left: auto; }
	.ct-header-centered .ct-nav { margin-left: auto; }
}

/* Seitenaufbau ----------------------------------------------------------- */
.ct-layout { display: grid; gap: 32px; padding-block: 28px 56px; }
.ct-main { min-width: 0; }
.ct-main:focus { outline: none; }
@media (min-width: 1000px) {
	.ct-has-sidebar .ct-layout { grid-template-columns: minmax(0, 1fr) 300px; }
	.ct-sidebar-left .ct-layout { grid-template-columns: 300px minmax(0, 1fr); }
	.ct-sidebar-left .ct-sidebar { order: -1; }
}
.ct-sidebar .widget { background: var(--ct-surface); border-radius: var(--ct-radius); padding: 18px; margin-bottom: 20px; }
.ct-sidebar .widget-title, .ct-footer .widget-title { font-size: 1.05rem; margin-bottom: .8em; }
.widget ul { list-style: none; margin: 0; padding: 0; }
.widget li { padding: 4px 0; }

.ct-page-head { margin-bottom: 22px; }
.ct-page-title { font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.4rem); margin: 0; }
.ct-page-count { margin: 6px 0 0; color: var(--ct-muted); font-size: .9rem; }
.ct-page-intro { margin-top: 14px; max-width: 72ch; color: var(--ct-muted); }
.ct-section-title { font-size: 1.35rem; margin: 0 0 16px; }

.ct-prose { max-width: 72ch; }
.ct-prose p { margin: 0 0 1em; }
.ct-prose > :last-child { margin-bottom: 0; }
.ct-seo { margin-top: 80px; padding-top: 36px; border-top: 1px solid var(--ct-line); color: var(--ct-muted); }
.ct-seo h2, .ct-seo h3 { color: var(--ct-text); }

/* Raster ----------------------------------------------------------------- */
.ct-grid { display: grid; gap: var(--ct-gap); grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 700px) { .ct-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .ct-grid { grid-template-columns: repeat(var(--ct-cols), minmax(0, 1fr)); } }
.ct-has-sidebar .ct-main .ct-grid { --ct-cols: 3; }
.ct-grid--compact { grid-template-columns: repeat(var(--ct-cols), minmax(0, 1fr)) !important; gap: 10px; }
.ct-grid--compact .ct-card__motto, .ct-grid--compact .ct-card__features { display: none; }
.ct-grid--compact .ct-card__name { font-size: .9rem; }

/* Kachel: Grundform (Text unter dem Bild) */
.ct-card { position: relative; min-width: 0; display: flex; flex-direction: column; }
.ct-card__media { position: relative; display: block; aspect-ratio: var(--ct-card-ratio); overflow: hidden; border-radius: var(--ct-radius-img); background: var(--ct-surface-2); }
.ct-card__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.ct-card__img--empty { background: linear-gradient(135deg, var(--ct-surface), var(--ct-surface-2)); }
.ct-card.is-offline .ct-card__img { filter: saturate(.55) brightness(.8); }
.ct-card__body { padding: 10px 2px 2px; min-width: 0; }
.ct-card__name { font-size: 1rem; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ct-card__name a { color: var(--ct-text); text-decoration: none; }
.ct-card__name a::after { content: ""; position: absolute; inset: 0; z-index: 1; } /* ganze Kachel klickbar */
.ct-card__name a:focus-visible { outline: none; }
.ct-card:has(.ct-card__name a:focus-visible) { outline: 2px solid var(--ct-accent); outline-offset: 3px; border-radius: var(--ct-radius); }
.ct-card__meta { display: flex; align-items: center; gap: 8px; margin-top: 3px; color: var(--ct-muted); font-size: .85rem; min-height: 1.2em; }
.ct-card__age::after { content: " J."; }
.ct-card__motto { margin: 4px 0 0; color: var(--ct-muted); font-size: .85rem; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

.ct-card__features { position: absolute; right: 8px; top: 8px; display: flex; gap: 4px; flex-wrap: wrap; justify-content: flex-end; max-width: 70%; }
.ct-feature { display: inline-block; font-size: .7rem; font-weight: 600; line-height: 1; padding: 4px 6px; border-radius: 4px; background: rgba(0, 0, 0, .62); color: #fff; backdrop-filter: blur(4px); }

.ct-live { position: absolute; left: 8px; top: 8px; display: inline-flex; align-items: center; gap: 6px; font-size: .72rem; font-weight: 700; line-height: 1; padding: 5px 8px 5px 7px; border-radius: 999px; }
.ct-live::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.ct-live--on { background: var(--ct-live); color: var(--ct-live-text); }
.ct-live--off { background: rgba(0, 0, 0, .55); color: #ddd; }
.ct-live--lg { font-size: .85rem; padding: 7px 12px 7px 10px; left: 14px; top: 14px; }

.ct-flag { width: 16px; height: 11px; object-fit: cover; border-radius: 1px; vertical-align: middle; }

.ct-stars { --ct-rating: 0%; display: inline-block; width: 70px; height: 13px; vertical-align: middle;
	background: linear-gradient(90deg, var(--ct-star) var(--ct-rating), rgba(127, 127, 127, .35) var(--ct-rating));
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 13'%3E%3Cpath d='M7 0l2.1 4.3 4.7.7-3.4 3.3.8 4.7L7 10.8 2.8 13l.8-4.7L.2 5l4.7-.7z'/%3E%3C/svg%3E") 0 0 / 14px 13px repeat-x;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 13'%3E%3Cpath d='M7 0l2.1 4.3 4.7.7-3.4 3.3.8 4.7L7 10.8 2.8 13l.8-4.7L.2 5l4.7-.7z'/%3E%3C/svg%3E") 0 0 / 14px 13px repeat-x; }

/* Kachel-Variante: Text über dem Bild */
.ct-card-overlay .ct-card__media { aspect-ratio: var(--ct-card-ratio); }
.ct-card-overlay .ct-card__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 36px 12px 10px; background: linear-gradient(to top, rgba(0, 0, 0, .86), rgba(0, 0, 0, 0)); border-radius: 0 0 var(--ct-radius-img) var(--ct-radius-img); pointer-events: none; }
.ct-card-overlay .ct-card__body a { pointer-events: auto; }
.ct-card-overlay .ct-card__name a, .ct-card-overlay .ct-card__meta { color: #fff; }
.ct-card-overlay .ct-card__meta { color: rgba(255, 255, 255, .8); }
.ct-card-overlay .ct-card__motto { display: none; }

/* Kachel-Variante: Rahmen */
.ct-card-framed .ct-card { background: var(--ct-surface); padding: 8px; border: 1px solid var(--ct-line); border-radius: var(--ct-radius); }
.ct-card-framed .ct-card__body { text-align: center; padding: 12px 4px 6px; }
.ct-card-framed .ct-card__meta { justify-content: center; }

/* Kachel-Variante: Balken */
.ct-card-bar .ct-card__body { background: var(--ct-surface); padding: 10px 12px 12px; border-radius: 0 0 var(--ct-radius) var(--ct-radius); flex: 1; }
.ct-card-framed .ct-card__body { flex: 1; }
.ct-card-bar .ct-card__media { border-radius: var(--ct-radius) var(--ct-radius) 0 0; }

/* Seitennavigation -------------------------------------------------------- */
.ct-pagination { margin-top: 36px; }
.ct-pagination ul { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; padding: 0; margin: 0; justify-content: center; }
.ct-pagination a, .ct-pagination span { display: grid; place-items: center; min-width: 42px; height: 42px; padding: 0 12px; border-radius: var(--ct-radius-btn); background: var(--ct-surface); color: var(--ct-text); text-decoration: none; font-weight: 600; }
.ct-pagination a:hover { background: var(--ct-surface-2); }
.ct-pagination .current { background: var(--ct-accent); color: var(--ct-accent-text); }
.ct-pagination .dots { background: transparent; }

/* Buttons ---------------------------------------------------------------- */
.ct-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid transparent; border-radius: var(--ct-radius-btn); padding: 12px 20px; font-weight: 700; font-family: var(--ct-font-body); text-decoration: none; cursor: pointer; line-height: 1.2; transition: background-color .15s, color .15s, border-color .15s; }
.ct-btn--primary { background: var(--ct-accent); color: var(--ct-accent-text); }
.ct-btn--primary:hover { background: color-mix(in srgb, var(--ct-accent) 85%, #fff); }
.ct-btn--ghost { background: transparent; border-color: var(--ct-line); color: var(--ct-text); }
.ct-btn--ghost:hover { border-color: var(--ct-accent); color: var(--ct-accent); }
.ct-btn--block { display: flex; width: 100%; text-align: center; }
.ct-btn.is-waiting { opacity: .6; cursor: progress; }
.ct-btn.is-live::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 0 currentColor; animation: ct-pulse 1.8s infinite; }
@keyframes ct-pulse { 0% { box-shadow: 0 0 0 0 rgba(255, 255, 255, .6); } 70% { box-shadow: 0 0 0 9px rgba(255, 255, 255, 0); } 100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); } }

/* Setcard ---------------------------------------------------------------- */
.ct-setcard__head { margin-bottom: 20px; }
.ct-setcard__title { font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.3rem); margin: 0 0 6px; max-width: 30ch; }
.ct-setcard__who { margin: 0; color: var(--ct-muted); display: flex; gap: 12px; flex-wrap: wrap; }
.ct-setcard__name { color: var(--ct-text); font-weight: 600; }
.ct-setcard__top { display: grid; gap: 24px; align-items: start; }
@media (min-width: 900px) { .ct-setcard__top { grid-template-columns: minmax(0, 1.65fr) minmax(280px, 1fr); } }

.ct-media { position: relative; border-radius: var(--ct-radius); overflow: hidden; background: #000; aspect-ratio: 4 / 3; }
.ct-media__img, .ct-media__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.ct-media__video { object-fit: contain; }
.is-offline .ct-media__img { filter: saturate(.6); }

.ct-panel { background: var(--ct-surface); border-radius: var(--ct-radius); padding: 20px; display: flex; flex-direction: column; gap: 14px; }
.ct-panel__status { margin: 0; display: flex; align-items: center; gap: 10px; font-weight: 600; }
.ct-dot { width: 10px; height: 10px; border-radius: 50%; flex: none; }
.ct-dot--on { background: var(--ct-live); box-shadow: 0 0 0 4px color-mix(in srgb, var(--ct-live) 25%, transparent); }
.ct-dot--off { background: var(--ct-offline); }
.ct-panel__facts { margin: 4px 0 0; display: grid; gap: 12px; }
.ct-panel__facts dt { font-size: .8rem; color: var(--ct-muted); margin-bottom: 4px; }
.ct-panel__facts dd { margin: 0; }
.ct-panel__features, .ct-panel__langs { display: flex; flex-wrap: wrap; gap: 6px; }
.ct-panel .ct-feature { background: var(--ct-surface-2); color: var(--ct-text); font-size: .78rem; padding: 6px 8px; backdrop-filter: none; }
.ct-lang { display: inline-flex; align-items: center; gap: 6px; background: var(--ct-surface-2); padding: 4px 8px; border-radius: 4px; font-size: .85rem; }

.ct-gallery { list-style: none; margin: 4px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.ct-gallery a { display: block; border-radius: calc(var(--ct-radius) / 2); overflow: hidden; aspect-ratio: 1; }
.ct-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; transition: opacity .15s; }
.ct-gallery a:hover img { opacity: .8; }

/* Reiter */
.ct-tabs { margin-top: 36px; }
.ct-tabs__list { display: flex; gap: 4px; border-bottom: 1px solid var(--ct-line); overflow-x: auto; scrollbar-width: none; }
.ct-tabs__list[hidden] { display: none; }
.ct-tabs__list button { background: transparent; border: 0; border-bottom: 2px solid transparent; padding: 12px 16px; margin-bottom: -1px; color: var(--ct-muted); font-weight: 600; cursor: pointer; white-space: nowrap; }
.ct-tabs__list button[aria-selected="true"] { color: var(--ct-text); border-bottom-color: var(--ct-accent); }
.ct-tabs__list button:hover { color: var(--ct-text); }
.ct-tabs__panel { padding: 22px 0 0; }
.ct-tabs__panel + .ct-tabs__panel { margin-top: 18px; }
.ct-tabs.is-enhanced .ct-tabs__panel + .ct-tabs__panel { margin-top: 0; }
.ct-tabs.is-enhanced .ct-tabs__fallback-title { display: none; }
.ct-tabs__fallback-title { font-size: 1.2rem; }

.ct-chips { list-style: none; margin: 0 0 14px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ct-chip { display: inline-block; padding: 6px 12px; border-radius: 999px; background: var(--ct-surface); color: var(--ct-text); text-decoration: none; font-size: .9rem; border: 1px solid var(--ct-line); }
.ct-chip:hover { border-color: var(--ct-accent); color: var(--ct-accent); }

.ct-props { margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 0 32px; max-width: 900px; }
.ct-props > div { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--ct-line); }
.ct-props dt { color: var(--ct-muted); }
.ct-props dd { margin: 0; text-align: right; font-weight: 500; }

.ct-related { margin-top: 56px; }

/* Dialoge ---------------------------------------------------------------- */
.ct-dialog { border: 0; padding: 0; background: var(--ct-surface); color: var(--ct-text); border-radius: var(--ct-radius); width: min(560px, calc(100vw - 24px)); max-height: calc(100vh - 24px); }
.ct-dialog::backdrop { background: rgba(0, 0, 0, .72); }
.ct-dialog__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 18px 18px 12px 22px; }
.ct-dialog__title { font-size: 1.15rem; margin: 0; }
.ct-dialog__close { background: transparent; border: 0; color: var(--ct-muted); font-size: 1.8rem; line-height: 1; cursor: pointer; padding: 0 4px; }
.ct-dialog__close:hover { color: var(--ct-text); }
.ct-dialog__frame { display: block; width: 100%; height: 600px; max-height: calc(100vh - 120px); border: 0; background: #fff; }
.ct-dialog__frame--mdh { height: 420px; }

.ct-lightbox { width: auto; max-width: calc(100vw - 24px); background: #000; overflow: visible; }
.ct-lightbox__img { display: block; max-width: calc(100vw - 24px); max-height: calc(100vh - 40px); width: auto; height: auto; border-radius: var(--ct-radius); }
.ct-lightbox .ct-dialog__close { position: absolute; top: 6px; right: 8px; color: #fff; text-shadow: 0 1px 4px #000; }
.ct-lightbox__nav { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(0, 0, 0, .55); color: #fff; border: 0; width: 44px; height: 60px; font-size: 2rem; cursor: pointer; border-radius: 6px; }
.ct-lightbox__prev { left: 8px; }
.ct-lightbox__next { right: 8px; }

/* Filter ----------------------------------------------------------------- */
.ct-filter { display: grid; gap: 14px; }
.ct-filter__title { font-size: 1.05rem; margin: 0; }
.ct-field { display: grid; gap: 6px; border: 0; padding: 0; margin: 0; min-width: 0; }
.ct-field label, .ct-field legend { font-size: .85rem; color: var(--ct-muted); padding: 0; }
.ct-field input[type="search"], .ct-field select, .ct-filter select {
	width: 100%; padding: 10px 12px; border-radius: var(--ct-radius-btn); border: 1px solid var(--ct-line); background: var(--ct-bg); color: var(--ct-text);
}
.ct-field--checks label { display: flex; align-items: center; gap: 8px; color: var(--ct-text); font-size: .95rem; }
.ct-field--checks input, .ct-chip-check input { accent-color: var(--ct-accent); width: 16px; height: 16px; }
.ct-field--chips { display: flex; flex-wrap: wrap; gap: 6px; }
.ct-field--chips legend { margin-bottom: 6px; }
.ct-chip-check { position: relative; }
.ct-chip-check input { position: absolute; opacity: 0; }
.ct-chip-check span { display: inline-block; padding: 5px 10px; border-radius: 999px; border: 1px solid var(--ct-line); font-size: .85rem; cursor: pointer; }
.ct-chip-check input:checked + span { background: var(--ct-accent); color: var(--ct-accent-text); border-color: var(--ct-accent); }
.ct-chip-check input:focus-visible + span { outline: 2px solid var(--ct-accent); outline-offset: 2px; }
@media (min-width: 900px) {
	.ct-filter--row { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); align-items: end; }
}

/* Leere Zustände ---------------------------------------------------------- */
.ct-empty-state { padding: 24px; background: var(--ct-surface); border-radius: var(--ct-radius); max-width: 640px; }
.ct-empty-state p { margin-top: 0; }
.ct-empty-state__widgets { margin-top: 28px; }
.ct-empty { color: var(--ct-muted); }

/* Beiträge, Kommentare ---------------------------------------------------- */
.ct-entry__image { margin: 0 0 24px; }
.ct-entry__image img { border-radius: var(--ct-radius); }
.comment-form label { display: block; font-size: .85rem; color: var(--ct-muted); margin-bottom: 4px; }
.comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"], .comment-form textarea {
	width: 100%; padding: 10px 12px; border-radius: var(--ct-radius-btn); border: 1px solid var(--ct-line); background: var(--ct-bg); color: var(--ct-text);
}
.comment-form p { margin: 0 0 14px; }

/* Fuß -------------------------------------------------------------------- */
.ct-footer { border-top: 1px solid var(--ct-line); background: var(--ct-surface); color: var(--ct-muted); font-size: .92rem; }
.ct-footer a { color: var(--ct-text); }
.ct-footer__widgets { display: grid; gap: 28px; padding-block: 40px 12px; }
@media (min-width: 800px) { .ct-footer__widgets { grid-template-columns: repeat(var(--ct-footer-cols, 3), minmax(0, 1fr)); } }
.ct-footer__bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 24px; padding-block: 22px; }
.ct-footer__nav ul { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0; padding: 0; }
.ct-footer__nav a { text-decoration: none; }
.ct-footer__copy { margin: 0; }

/* WordPress-Klassen ------------------------------------------------------- */
.alignleft { float: left; margin: 0 1.5em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.5em; }
.aligncenter { display: block; margin-inline: auto; }
.wp-caption-text { font-size: .85rem; color: var(--ct-muted); }
.sticky, .bypostauthor, .gallery-caption { }

/* Startseite & alte Inhalte (Camtheme 1.x / Visual Composer) -------------- */
.ct-seo .ct-seo { margin: 0; padding: 0; border: 0; }
.ct-front-seo h1, .ct-front-seo h2 { color: var(--ct-text); }
.ct-front--content > .ct-vc-row + .ct-vc-row, .ct-front--content .ct-shortcode-grid { margin-top: 28px; }
.ct-vc-row::after { content: ""; display: table; clear: both; }
.ct-vc-sep { border: 0; border-top: 1px solid var(--ct-line); margin: 28px 0; }
.ct-vc-image img { border-radius: var(--ct-radius); }
.ct-spotlight { display: grid; gap: 24px; align-items: center; margin-block: 24px; }
@media (min-width: 800px) { .ct-spotlight { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); } }
.ct-grid--spotlight { grid-template-columns: 1fr !important; }

/* Große Buttons über/unter den Cams ------------------------------------------ */
.ct-cta { display: flex; justify-content: center; margin: 4px 0 26px; }
.ct-cta--bottom { margin: 34px 0 80px; }
.ct-cta--inline { margin: 24px 0; }
.ct-btn--xl { font-size: clamp(1.05rem, .95rem + .5vw, 1.3rem); padding: 18px 34px; min-height: 60px; width: 100%; max-width: 640px; text-align: center; }

/* Option „Breite von Texten: volle Breite“ */
.ct-text-full .ct-prose,
.ct-text-full .ct-page-intro,
/* SEO-Block: Trennlinie immer volle Breite, nur der Text wird begrenzt. */
.ct-seo.ct-prose { max-width: none; }
.ct-seo.ct-prose > * { max-width: 72ch; }
.ct-text-full .ct-seo.ct-prose > * { max-width: none; }
/* Alte Startseiten (Visual Composer): Abstand unter dem Button nicht doppelt zählen. */
.ct-front--content:has(.ct-cta--bottom) .ct-seo { margin-top: 0; }
.ct-front--content > .ct-vc-row:has(.ct-cta--bottom) + .ct-vc-row { margin-top: 0; }


/* Profiltexte: Bausteine und FAQ */
.ct-pt { }
.ct-faq { margin-top: 48px; max-width: 900px; }
.ct-faq__title { margin: 0 0 16px; }
.ct-faq__list { border-top: 1px solid var(--ct-line); }
.ct-faq__item { border-bottom: 1px solid var(--ct-line); }
.ct-faq__q {
	list-style: none; cursor: pointer; padding: 14px 36px 14px 0; position: relative;
	font-weight: 600; color: var(--ct-text);
}
.ct-faq__q::-webkit-details-marker { display: none; }
.ct-faq__q::after {
	content: ""; position: absolute; right: 6px; top: 50%; width: 9px; height: 9px; margin-top: -7px;
	border-right: 2px solid var(--ct-accent); border-bottom: 2px solid var(--ct-accent);
	transform: rotate(45deg); transition: transform .2s ease;
}
.ct-faq__item[open] > .ct-faq__q::after { transform: rotate(-135deg); margin-top: -2px; }
.ct-faq__q:hover { color: var(--ct-accent); }
.ct-faq__q:focus-visible { outline: 2px solid var(--ct-accent); outline-offset: 2px; }
.ct-faq__a { padding: 0 0 16px; }
.ct-faq__a p { margin: 0; }
@media (prefers-reduced-motion: reduce) { .ct-faq__q::after { transition: none; } }

/* Antworten auf Profilfragen */
.ct-answers { margin: 0 0 1.2em; display: grid; gap: 14px; }
.ct-answers dt { font-weight: 600; color: var(--ct-accent); font-size: .92em; }
.ct-answers dd { margin: 2px 0 0; }
.ct-showtext__title, .ct-answers__title { margin: 1.6em 0 .6em; font-size: 1.1em; }

/* Beschreibung (ohne Reiter) */
.ct-desc { margin-top: 40px; max-width: 900px; }
.ct-desc__title { margin: 0 0 14px; }
.ct-desc .ct-pt { margin: 0 0 1em; }
.ct-about { margin: 0 0 1.2em; padding: 4px 0 4px 18px; border-left: 3px solid var(--ct-accent); color: var(--ct-muted); font-style: italic; }
.ct-about p { margin: 0 0 .6em; }
.ct-about p:last-child { margin-bottom: 0; }

/* Bonus-Buttons auf Profilseiten */
.ct-cta--profile-top { margin: 32px 0 0; }
.ct-cta--profile-bottom { margin: 40px 0 8px; }
