/*
 Theme Name:   Faschingswelt GeneratePress Child
 Theme URI:    https://faschingswelt.sketchig.de/
 Description:  Editorial Magazine & Interactive Tool Theme for Faschingswelt.sketchig.de (Kostuem-Finder, Tusch-Maschine, Party-Planer)
 Author:       Philipp Roeder (Web-Roeder)
 Author URI:   https://web-roeder.de/
 Template:     generatepress
 Version:      2.1.0
 Text Domain:  generatepress-child
*/

:root {
	--fw-crimson: #be123c;
	--fw-crimson-dark: #9f1239;
	--fw-crimson-soft: #fff1f2;
	--fw-gold: #d97706;
	--fw-gold-bright: #f59e0b;
	--fw-gold-soft: #fef3c7;
	--fw-slate: #0f172a;
	--fw-slate-mid: #1e293b;
	--fw-ink: #1c1917;
	--fw-body: #334155;
	--fw-muted: #64748b;
	--fw-bg: #faf8f5;
	--fw-card: #ffffff;
	--fw-border: #e2e8f0;
	--fw-border-warm: #e7e0d6;
	--fw-radius: 14px;
	--fw-shadow: 0 4px 18px rgba(15, 23, 42, 0.06);
}

/* ==========================================================================
   1. Base Typography & Layout Container
   ========================================================================== */
html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	background-color: var(--fw-bg);
	color: var(--fw-ink);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	font-size: 16.5px;
	line-height: 1.68;
	margin: 0;
	padding: 0;
	max-width: 100%;
	overflow-x: clip;
}

h1, h2, h3, h4 {
	color: var(--fw-ink);
	font-weight: 800;
	line-height: 1.26;
	letter-spacing: -0.02em;
	overflow-wrap: break-word;
	word-wrap: break-word;
	hyphens: auto;
}

.entry-header h1.entry-title {
	font-size: 30px;
	line-height: 1.24;
	margin: 0 0 14px;
	color: var(--fw-slate);
}

.entry-content h2 {
	font-size: 23px;
	line-height: 1.3;
	margin: 30px 0 12px;
	color: var(--fw-slate);
}

.entry-content h3 {
	font-size: 18.5px;
	line-height: 1.35;
	margin: 22px 0 8px;
	color: var(--fw-slate);
}

/* Hide duplicate GeneratePress meta & page-header-image */
.entry-header .entry-meta,
footer.entry-meta,
.page-header-image,
.page-header-image-single {
	display: none !important;
}

a {
	color: var(--fw-crimson);
	text-decoration: underline;
	text-underline-offset: 3px;
	transition: color 0.15s ease;
}

a:hover {
	color: var(--fw-crimson-dark);
}

.site.grid-container {
	max-width: 1240px !important;
	width: 100%;
	margin: 0 auto;
	padding: 26px 20px 56px;
	box-sizing: border-box;
}

.site-content {
	display: flex;
	gap: 32px;
	align-items: flex-start;
	width: 100%;
}

#primary.content-area {
	flex: 1 1 0%;
	min-width: 0;
	max-width: 100%;
	width: auto !important;
}

#main.site-main {
	margin: 0 !important;
	width: 100%;
}

#right-sidebar.widget-area,
.fw-sidebar-area {
	width: 330px !important;
	flex: 0 0 330px;
}

.fw-sidebar-inner {
	padding: 0 !important;
}

.no-sidebar #primary.content-area {
	width: 100% !important;
}

.single .inside-article,
.page:not(.home) .inside-article {
	background: var(--fw-card);
	border: 1px solid var(--fw-border-warm);
	border-radius: 16px;
	padding: 34px 38px !important;
	box-shadow: var(--fw-shadow);
}

.home .inside-article {
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
}

@media (max-width: 980px) {
	.site-content {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
	}
	#primary.content-area,
	#right-sidebar.widget-area,
	.fw-sidebar-area {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box !important;
	}
	#right-sidebar.widget-area {
		margin-top: 28px !important;
	}
}

@media (max-width: 680px) {
	.site.grid-container {
		padding: 14px 12px 36px !important;
		width: 100% !important;
		max-width: 100vw !important;
		box-sizing: border-box !important;
		overflow-x: hidden !important;
	}
	.single .inside-article,
	.page:not(.home) .inside-article {
		padding: 18px 14px !important;
		border-radius: 14px;
		box-sizing: border-box !important;
		max-width: 100% !important;
		overflow-x: hidden !important;
	}
	body {
		font-size: 15.5px;
	}
	.entry-header h1.entry-title,
	.fw-hero h1 {
		font-size: 22px !important;
		line-height: 1.26 !important;
		margin-bottom: 10px !important;
	}
	.entry-content h2,
	.fw-sec-head h2,
	.fw-section-head h2 {
		font-size: 19px !important;
		line-height: 1.3 !important;
	}
	.entry-content h3 {
		font-size: 17px !important;
		line-height: 1.34 !important;
	}
}

/* ==========================================================================
   2. Custom Sticky Header & Mobile-Friendly Navigation
   ========================================================================== */
.fw-site-header {
	background: #ffffff;
	border-bottom: 1px solid var(--fw-border);
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	z-index: 9999;
	box-shadow: 0 2px 12px rgba(15, 23, 42, 0.06);
	width: 100%;
	max-width: 100vw;
	box-sizing: border-box;
}

body.admin-bar .fw-site-header {
	top: 32px;
}

@media screen and (max-width: 782px) {
	body.admin-bar .fw-site-header {
		top: 46px;
	}
}

.fw-header-inner {
	max-width: 1240px;
	width: 100%;
	margin: 0 auto;
	padding: 11px 20px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	box-sizing: border-box;
}

.fw-brand {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
	flex-shrink: 0;
}

.fw-brand img {
	height: 46px;
	width: auto;
	display: block;
}

.fw-header-search {
	display: flex;
	align-items: center;
	gap: 6px;
	flex: 0 1 360px;
}

.fw-header-search input[type="search"] {
	width: 100%;
	padding: 8px 14px;
	border: 1px solid #cbd5e1;
	border-radius: 999px;
	font-size: 14px;
	background: #f8fafc;
	color: var(--fw-ink);
	box-sizing: border-box;
}

.fw-header-search button {
	background: var(--fw-slate);
	color: #ffffff;
	border: 0;
	border-radius: 999px;
	padding: 8px 15px;
	font-size: 13.5px;
	font-weight: 700;
	cursor: pointer;
	flex-shrink: 0;
}

.fw-header-search button:hover {
	background: var(--fw-crimson);
}

.fw-sister-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: var(--fw-crimson-soft);
	border: 1px solid #fecdd3;
	color: var(--fw-crimson) !important;
	font-size: 13px;
	font-weight: 800;
	padding: 7px 14px;
	border-radius: 999px;
	text-decoration: none !important;
	white-space: nowrap;
}

.fw-sister-pill:hover {
	background: #ffe4e6;
}

.fw-nav-bar {
	background: var(--fw-slate);
	color: #ffffff;
	width: 100%;
	max-width: 100vw;
	box-sizing: border-box;
	overflow: hidden;
}

.fw-nav-inner {
	max-width: 1240px;
	width: 100%;
	margin: 0 auto;
	padding: 0 16px;
	display: flex;
	align-items: center;
	gap: 4px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	box-sizing: border-box;
}

.fw-nav-inner::-webkit-scrollbar {
	display: none;
}

.fw-nav-link {
	color: #e2e8f0 !important;
	text-decoration: none !important;
	font-size: 13.5px;
	font-weight: 700;
	padding: 10px 13px;
	white-space: nowrap;
	border-bottom: 3px solid transparent;
	transition: all 0.15s ease;
}

.fw-nav-link:hover,
.fw-nav-link.is-active {
	color: #ffffff !important;
	background: rgba(255, 255, 255, 0.08);
	border-bottom-color: var(--fw-gold-bright);
}

@media (max-width: 860px) {
	.fw-sister-pill {
		display: none;
	}
	.fw-header-inner {
		padding: 10px 14px;
	}
	.fw-brand img {
		height: 38px;
	}
}

@media (max-width: 640px) {
	.fw-header-inner {
		flex-wrap: wrap;
		gap: 8px;
		padding: 8px 14px;
	}
	.fw-brand img {
		height: 34px;
	}
	.fw-header-search {
		flex: 1 1 100%;
		order: 3;
	}
	.fw-header-search input[type="search"] {
		font-size: 16px;
		padding: 7px 13px;
	}
	.fw-header-search button {
		padding: 8px 14px;
		font-size: 14px;
	}
	.fw-nav-inner {
		padding: 0 10px;
		gap: 2px;
	}
	.fw-nav-link {
		padding: 10px 10px;
		font-size: 13px;
	}
}

/* ==========================================================================
   3. Buttons & Badges
   ========================================================================== */
.fw-btn,
.fw-btn-primary,
.fw-btn-secondary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	padding: 10px 18px;
	border-radius: 10px;
	font-size: 14px;
	font-weight: 800;
	text-decoration: none !important;
	cursor: pointer;
	border: 1px solid transparent;
	transition: transform 0.12s ease, background 0.15s ease, box-shadow 0.15s ease;
	line-height: 1.3;
	box-sizing: border-box;
}

.fw-btn:hover,
.fw-btn-primary:hover,
.fw-btn-secondary:hover {
	transform: translateY(-1px);
}

.fw-btn--gold,
.fw-btn-primary {
	background: var(--fw-gold-bright);
	color: #0f172a !important;
	border-color: #d97706;
	box-shadow: 0 3px 10px rgba(245, 158, 11, 0.25);
}

.fw-btn--gold:hover,
.fw-btn-primary:hover {
	background: #fbbf24;
	color: #0f172a !important;
}

.fw-btn--crimson {
	background: var(--fw-crimson);
	color: #ffffff !important;
	border-color: var(--fw-crimson-dark);
}

.fw-btn--crimson:hover {
	background: var(--fw-crimson-dark);
	color: #ffffff !important;
}

.fw-btn--ghost,
.fw-btn-secondary {
	background: rgba(255, 255, 255, 0.12);
	color: #ffffff !important;
	border: 1px solid rgba(255, 255, 255, 0.28);
}

.fw-btn--ghost:hover,
.fw-btn-secondary:hover {
	background: rgba(255, 255, 255, 0.22);
	color: #ffffff !important;
}

.fw-btn--outline {
	background: #ffffff;
	color: var(--fw-slate) !important;
	border: 1px solid #cbd5e1;
}

.fw-btn--outline:hover {
	background: #f1f5f9;
	border-color: #94a3b8;
}

.fw-btn--amazon {
	background: #ff9900;
	color: #111827 !important;
	border-color: #e68a00;
	font-weight: 800;
}

.fw-btn--amazon:hover {
	background: #ffad33;
	color: #111827 !important;
}

.fw-btn--awin {
	background: var(--fw-slate);
	color: #ffffff !important;
	border-color: #334155;
}

.fw-btn--awin:hover {
	background: var(--fw-crimson);
	color: #ffffff !important;
}

.fw-btn--whatsapp {
	background: #16a34a;
	color: #ffffff !important;
	border-color: #15803d;
}

.fw-btn--whatsapp:hover {
	background: #15803d;
	color: #ffffff !important;
}

/* ==========================================================================
   4. Front-Page Hero & Event Cards
   ========================================================================== */
.fw-hero {
	background: linear-gradient(135deg, #0f172a 0%, #1e293b 65%, #3b0718 100%);
	color: #ffffff;
	border-radius: 18px;
	padding: 32px 36px;
	margin-bottom: 32px;
	border: 1px solid #334155;
	box-shadow: 0 10px 28px rgba(15, 23, 42, 0.12);
}

.fw-hero-eyebrow,
.fw-hero-badge {
	display: inline-block;
	background: rgba(245, 158, 11, 0.2);
	border: 1px solid rgba(245, 158, 11, 0.5);
	color: #fde68a;
	font-size: 12.5px;
	font-weight: 800;
	padding: 4px 12px;
	border-radius: 999px;
	margin-bottom: 12px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.fw-hero h1 {
	color: #ffffff !important;
	font-size: 31px;
	font-weight: 900;
	margin: 0 0 12px;
	line-height: 1.22;
}

.fw-hero-lead,
.fw-hero-sub {
	color: #e2e8f0;
	font-size: 16.5px;
	line-height: 1.62;
	margin: 0 0 22px;
	max-width: 820px;
}

.fw-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

/* 4-Column Occasion / Event Grid & 3-Column Tools Grid */
.fw-silo-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	margin-bottom: 10px;
}

.fw-silo-grid.fw-tools-grid-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fw-silo-card {
	background: #ffffff;
	border: 1px solid var(--fw-border-warm);
	border-top: 4px solid var(--fw-crimson);
	border-radius: 14px;
	padding: 18px 20px;
	text-decoration: none !important;
	color: var(--fw-ink) !important;
	box-shadow: var(--fw-shadow);
	transition: transform 0.15s ease, border-color 0.15s ease;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.fw-silo-card:hover {
	transform: translateY(-2px);
	border-color: var(--fw-crimson);
}

.fw-silo-icon {
	font-size: 26px;
	line-height: 1;
}

.fw-silo-card h3 {
	font-size: 17px;
	margin: 2px 0 0;
	color: var(--fw-ink) !important;
}

.fw-silo-card p {
	font-size: 13.8px;
	color: var(--fw-body);
	margin: 0;
	line-height: 1.52;
}

.fw-silo-link {
	margin-top: auto;
	padding-top: 6px;
	font-size: 13.5px;
	font-weight: 800;
	color: var(--fw-crimson);
}

.fw-home-check-box {
	background: #ffffff;
	border: 1px solid var(--fw-border-warm);
	border-radius: 18px;
	padding: 26px 28px;
	box-shadow: var(--fw-shadow);
}

@media (max-width: 920px) {
	.fw-silo-grid,
	.fw-silo-grid.fw-tools-grid-3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.fw-hero {
		padding: 24px 20px;
	}
	.fw-hero h1 {
		font-size: 24px;
	}
	.fw-hero-lead,
	.fw-hero-sub {
		font-size: 15.5px;
	}
}

@media (max-width: 560px) {
	.fw-silo-grid,
	.fw-silo-grid.fw-tools-grid-3 {
		grid-template-columns: 1fr;
		gap: 12px;
	}
	.fw-hero-actions {
		flex-direction: column;
	}
	.fw-hero-actions .fw-btn {
		width: 100%;
	}
	.fw-home-check-box {
		padding: 18px 16px;
	}
}

/* ==========================================================================
   5. Interactive Tools: Kostüm-Finder & Sitzungs-/Party-Ablaufplaner
   ========================================================================== */
.fw-tool-box {
	background: #ffffff;
	border: 2px solid #cbd5e1;
	border-radius: 18px;
	overflow: hidden;
	margin: 16px 0 28px;
	box-shadow: 0 8px 24px rgba(15, 23, 42, 0.07);
}

.fw-tool-header {
	background: var(--fw-slate);
	border-bottom: 3px solid var(--fw-gold-bright);
	color: #ffffff;
	padding: 22px 26px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	flex-wrap: wrap;
}

.fw-tool-badge {
	display: inline-block;
	background: rgba(245, 158, 11, 0.22);
	border: 1px solid rgba(245, 158, 11, 0.55);
	color: #fde68a;
	font-size: 12px;
	font-weight: 800;
	padding: 3px 10px;
	border-radius: 999px;
	margin-bottom: 8px;
	text-transform: uppercase;
}

.fw-tool-header h2,
.fw-tool-header h3 {
	color: #ffffff !important;
	font-size: 22px;
	font-weight: 800;
	margin: 0 0 6px;
}

.fw-tool-header p {
	color: #e2e8f0 !important;
	font-size: 14.5px;
	margin: 0;
	line-height: 1.55;
	max-width: 760px;
}

.fw-filter-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
	padding: 20px 26px;
	background: #f8fafc;
	border-bottom: 1px solid var(--fw-border);
}

.fw-filter-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.fw-filter-field label {
	font-size: 13px;
	font-weight: 800;
	color: var(--fw-slate);
}

.fw-filter-field select,
.fw-filter-field input[type="search"] {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #94a3b8;
	border-radius: 10px;
	background: #ffffff;
	color: var(--fw-ink);
	font-size: 14px;
	font-weight: 600;
	box-sizing: border-box;
}

.fw-tool-actions {
	padding: 14px 26px;
	background: #ffffff;
	border-bottom: 1px solid var(--fw-border);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}

.fw-finder-results {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	padding: 22px 26px;
	background: #fafaf9;
}

.fw-idea-card {
	background: #ffffff;
	border: 1px solid #cbd5e1;
	border-radius: 14px;
	padding: 18px 20px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
}

.fw-idea-card.is-highlighted {
	border: 2px solid var(--fw-crimson);
	background: #fff1f2;
	box-shadow: 0 0 0 4px rgba(190, 18, 60, 0.12);
}

.fw-idea-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.fw-idea-tag {
	font-size: 12px;
	font-weight: 700;
	padding: 3px 9px;
	border-radius: 999px;
}

.fw-idea-tag--group {
	background: #eff6ff;
	color: #1d4ed8;
	border: 1px solid #bfdbfe;
}

.fw-idea-tag--weather {
	background: #f0fdf4;
	color: #15803d;
	border: 1px solid #bbf7d0;
}

.fw-idea-tag--budget {
	background: #fef3c7;
	color: #92400e;
	border: 1px solid #fde68a;
}

.fw-idea-card h3 {
	font-size: 18px;
	margin: 2px 0 0;
	color: var(--fw-slate);
}

.fw-idea-card p {
	font-size: 14.5px;
	color: var(--fw-body);
	margin: 0;
	line-height: 1.58;
}

.fw-idea-footer {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: auto;
	padding-top: 8px;
}

.fw-idea-footer .fw-btn {
	padding: 8px 12px;
	font-size: 12.5px;
}

.fw-finder-more-wrap {
	padding: 0 26px 24px;
	background: #fafaf9;
	text-align: center;
}

/* High-Contrast Timetable Rows for [fw_party_planer] */
.fw-pp-body {
	padding: 22px 26px;
	background: #ffffff;
}

.fw-pp-head-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 16px;
	padding-bottom: 12px;
	border-bottom: 2px solid #e2e8f0;
}

.fw-pp-head-bar h4 {
	margin: 0;
	font-size: 18px;
	color: var(--fw-slate) !important;
}

.fw-pp-list {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.fw-pp-row {
	display: grid;
	grid-template-columns: 125px 1fr;
	gap: 16px;
	align-items: center;
	padding: 14px 16px;
	background: #f8fafc;
	border: 1px solid #cbd5e1;
	border-left: 5px solid var(--fw-crimson);
	border-radius: 10px;
}

.fw-pp-time {
	display: inline-block;
	background: var(--fw-slate);
	color: #ffffff !important;
	font-weight: 800;
	font-size: 14px;
	padding: 6px 10px;
	border-radius: 8px;
	text-align: center;
}

.fw-pp-title {
	font-size: 16px;
	font-weight: 800;
	color: var(--fw-slate) !important;
	margin: 0 0 4px;
}

.fw-pp-note {
	font-size: 14px;
	color: #334155 !important;
	margin: 0;
}

.fw-pp-note a {
	color: var(--fw-crimson) !important;
	font-weight: 700;
}

@media (max-width: 900px) {
	.fw-filter-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.fw-finder-results {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 600px) {
	.fw-filter-grid {
		grid-template-columns: 1fr;
		padding: 16px;
		gap: 12px;
	}
	.fw-filter-field select,
	.fw-filter-field input[type="search"] {
		font-size: 16px;
		padding: 10px 12px;
	}
	.fw-finder-results,
	.fw-pp-body,
	.fw-tool-header,
	.fw-tool-actions {
		padding-left: 16px;
		padding-right: 16px;
	}
	.fw-tool-header h2,
	.fw-tool-header h3 {
		font-size: 19px;
	}
	.fw-tool-header #fw-btn-roulette,
	.fw-tool-actions #fw-btn-whatsapp,
	.fw-finder-more-wrap #fw-btn-showall {
		width: 100%;
	}
	.fw-idea-footer .fw-btn--amazon {
		flex: 1 1 100%;
		padding: 10px 14px;
		font-size: 13.5px;
	}
	.fw-idea-footer .fw-btn--outline {
		flex: 1 1 auto;
		padding: 8px 10px;
	}
	.fw-pp-row {
		grid-template-columns: 1fr;
		gap: 8px;
	}
	.fw-pp-time {
		width: fit-content;
	}
}

/* ==========================================================================
   6. Tusch-Maschine & Büttenreden Stage Mode
   ========================================================================== */
.fw-tusch-bar {
	background: var(--fw-slate);
	color: #ffffff;
	border-radius: 16px;
	padding: 22px 24px;
	margin: 24px 0;
	border: 2px solid #334155;
}

.fw-tusch-top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	margin-bottom: 16px;
}

.fw-tusch-top h3 {
	color: #ffffff !important;
	font-size: 20px;
	margin: 0 0 6px;
}

.fw-tusch-top p {
	color: #cbd5e1 !important;
	font-size: 14px;
	margin: 0;
	max-width: 640px;
}

.fw-stage-controls {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.fw-stage-btn {
	background: #1e293b;
	color: #ffffff;
	border: 1px solid #475569;
	padding: 9px 14px;
	border-radius: 10px;
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
}

.fw-stage-btn:hover,
.fw-stage-btn.is-active {
	background: var(--fw-gold-bright);
	color: #0f172a;
	border-color: var(--fw-gold-bright);
}

.fw-tusch-buttons {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
}

.fw-tusch-btn {
	background: linear-gradient(180deg, #e11d48 0%, #be123c 100%);
	color: #ffffff;
	border: 1px solid #f43f5e;
	padding: 12px 14px;
	border-radius: 10px;
	font-size: 14px;
	font-weight: 800;
	cursor: pointer;
	text-align: center;
}

.fw-tusch-btn:hover {
	background: #9f1239;
}

.fw-aff-item .fw-btn {
	white-space: nowrap;
	font-size: 13px;
	padding: 10px 10px;
}

@media (max-width: 780px) {
	.fw-tusch-buttons {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 480px) {
	.fw-tusch-buttons {
		grid-template-columns: 1fr;
	}
	.fw-stage-controls {
		width: 100%;
	}
	.fw-stage-btn {
		flex: 1 1 100%;
		text-align: center;
	}
}

.fw-speech-card {
	background: #fffdf9;
	border: 2px solid #fde68a;
	border-left: 6px solid var(--fw-crimson);
	border-radius: 14px;
	padding: 22px 26px;
	margin: 18px 0 28px;
	font-size: 17.5px;
	line-height: 1.78;
}

.fw-speech-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	font-size: 13px;
	font-weight: 700;
	color: #92400e;
	background: #fef3c7;
	padding: 8px 12px;
	border-radius: 8px;
	margin-bottom: 16px;
}

.fw-tusch-cue {
	display: inline-block;
	background: #fff1f2;
	color: var(--fw-crimson);
	border: 1px solid #fecdd3;
	font-size: 13px;
	font-weight: 800;
	padding: 2px 9px;
	border-radius: 999px;
	margin-top: 4px;
}

body.fw-pult-mode .fw-speech-card {
	font-size: 23px !important;
	line-height: 1.9 !important;
	background: #ffffff !important;
	border-color: #0f172a !important;
}

/* ==========================================================================
   7. Magazine Post Grid & Cards
   ========================================================================== */
.fw-sec-head,
.fw-section-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 14px;
	flex-wrap: wrap;
	margin-bottom: 18px;
}

.fw-sec-head h2,
.fw-section-head h2 {
	margin: 0;
	font-size: 24px;
}

.fw-sec-head p,
.fw-section-head p {
	margin: 4px 0 0;
	font-size: 15px;
	color: var(--fw-muted);
}

.fw-grid,
.fw-article-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px;
}

.fw-card {
	background: #ffffff;
	border: 1px solid var(--fw-border-warm);
	border-radius: 16px;
	overflow: hidden;
	box-shadow: var(--fw-shadow);
	display: flex;
	flex-direction: column;
	transition: transform 0.16s ease, box-shadow 0.16s ease;
}

.fw-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 26px rgba(15, 23, 42, 0.1);
}

.fw-card-thumb {
	position: relative;
	display: block;
	aspect-ratio: 16 / 9;
	background: #e2e8f0;
	overflow: hidden;
}

.fw-card-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.fw-card-badge,
.fw-card-cat {
	position: absolute;
	top: 12px;
	left: 12px;
	background: rgba(15, 23, 42, 0.88);
	color: #ffffff;
	font-size: 12px;
	font-weight: 800;
	padding: 4px 10px;
	border-radius: 999px;
	z-index: 2;
}

.fw-card-body {
	padding: 18px 22px 20px;
	display: flex;
	flex-direction: column;
	flex: 1;
}

.fw-card-title {
	font-size: 19px;
	margin: 0 0 8px;
	line-height: 1.32;
}

.fw-card-title a {
	color: var(--fw-ink) !important;
	text-decoration: none !important;
}

.fw-card-title a:hover {
	color: var(--fw-crimson) !important;
}

.fw-card-excerpt {
	font-size: 14.5px;
	color: var(--fw-body);
	margin: 0 0 16px;
	line-height: 1.58;
}

.fw-card-meta {
	margin-top: auto;
	padding-top: 12px;
	border-top: 1px solid #f1f5f9;
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 13px;
	color: var(--fw-muted);
	font-weight: 600;
}

.fw-card-cta,
.fw-card-readmore {
	color: var(--fw-crimson);
	font-weight: 800;
	text-decoration: none !important;
}

@media (max-width: 720px) {
	.fw-grid,
	.fw-article-grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}
	.fw-sec-head h2,
	.fw-section-head h2 {
		font-size: 21px;
	}
}

/* ==========================================================================
   8. Single Post Elements: Tables, Callouts, FAQs & Affiliate Box
   ========================================================================== */
.fw-breadcrumbs {
	font-size: 13.5px;
	color: var(--fw-muted);
	margin-bottom: 14px;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.fw-breadcrumbs a {
	color: var(--fw-body);
	text-decoration: none;
	font-weight: 600;
}

.fw-single-meta-bar {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	font-size: 13.5px;
	color: var(--fw-muted);
	padding-bottom: 14px;
	margin-bottom: 18px;
	border-bottom: 1px solid var(--fw-border);
}

.fw-single-hero {
	margin: 0 0 24px;
	border-radius: 14px;
	overflow: hidden;
	border: 1px solid var(--fw-border);
	background: #f8fafc;
}

.fw-single-hero img {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	display: block;
}

.fw-single-hero-caption {
	font-size: 12.5px;
	color: var(--fw-muted);
	padding: 8px 14px;
	background: #f8fafc;
}

.fw-table-wrap {
	display: block;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	margin: 20px 0 26px;
	border: 1px solid #cbd5e1;
	border-radius: 12px;
	background: #ffffff;
}

.fw-table {
	width: 100%;
	max-width: 100%;
	margin: 0 !important;
	table-layout: auto;
	border-collapse: collapse;
	font-size: 13.5px;
	line-height: 1.5;
	background: #ffffff;
}

.fw-table th {
	background: var(--fw-slate);
	color: #ffffff;
	font-weight: 800;
	text-align: left;
	padding: 11px 12px;
	overflow-wrap: break-word;
	word-break: normal;
	hyphens: manual;
	vertical-align: middle;
}

.fw-table th:first-child,
.fw-table td:first-child {
	width: 18%;
	min-width: 105px;
	font-weight: 700;
}

.fw-table td {
	padding: 11px 12px;
	border-top: 1px solid #e2e8f0;
	color: var(--fw-ink);
	vertical-align: top;
	overflow-wrap: break-word;
	word-break: normal;
	hyphens: manual;
}

.fw-table td a {
	display: inline-block;
	font-weight: 700;
	white-space: nowrap;
}

@media (max-width: 640px) {
	.fw-table-wrap {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
	.fw-table {
		font-size: 12.8px;
	}
	.fw-table th,
	.fw-table td {
		padding: 8px 9px;
	}
}

.fw-table tr:nth-child(even) td {
	background: #f8fafc;
}

.fw-callout {
	padding: 16px 20px;
	border-radius: 12px;
	margin: 20px 0;
	font-size: 15px;
	line-height: 1.6;
}

.fw-callout--tip {
	background: #fffbeb;
	border: 1px solid #fde68a;
	border-left: 5px solid var(--fw-gold-bright);
	color: #78350f;
}

.fw-callout--warn {
	background: #fff1f2;
	border: 1px solid #fecdd3;
	border-left: 5px solid var(--fw-crimson);
	color: #881337;
}

.fw-faq-list {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 18px 0 28px;
}

.fw-faq-item {
	background: #ffffff;
	border: 1px solid #cbd5e1;
	border-radius: 12px;
	padding: 14px 18px;
}

.fw-faq-item summary {
	font-weight: 800;
	font-size: 16px;
	color: var(--fw-slate);
	cursor: pointer;
}

.fw-faq-body {
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px solid #f1f5f9;
	font-size: 15px;
	color: var(--fw-body);
}

.fw-aff-box {
	background: linear-gradient(180deg, #fffbeb 0%, #ffffff 100%);
	border: 2px solid #fde68a;
	border-radius: 16px;
	padding: 22px 24px;
	margin: 30px 0;
}

.fw-aff-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 10px;
}

.fw-aff-badge {
	background: var(--fw-gold-bright);
	color: #0f172a;
	font-size: 12px;
	font-weight: 800;
	padding: 3px 10px;
	border-radius: 999px;
}

.fw-aff-disclosure {
	font-size: 12px;
	color: var(--fw-muted);
}

.fw-aff-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin-top: 16px;
}

.fw-aff-item {
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	padding: 14px 16px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 10px;
}

.fw-aff-item h4 {
	margin: 0;
	font-size: 15.5px;
}

.fw-aff-item p {
	margin: 0;
	font-size: 13.5px;
	color: var(--fw-body);
}

.fw-aff-item .fw-btn {
	white-space: nowrap;
	font-size: 13px;
	padding: 10px 10px;
}

@media (max-width: 780px) {
	.fw-aff-grid {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   9. Sidebar & Footer
   ========================================================================== */
.fw-sidebar-card {
	background: #ffffff;
	border: 1px solid var(--fw-border-warm);
	border-radius: 16px;
	padding: 20px 22px;
	margin-bottom: 22px;
	box-shadow: var(--fw-shadow);
}

.fw-sidebar-title {
	font-size: 17px;
	font-weight: 800;
	margin: 0 0 14px;
	padding-bottom: 10px;
	border-bottom: 2px solid #f1f5f9;
	color: var(--fw-slate);
}

.fw-sidebar-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 7px;
}

.fw-sidebar-list li a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 8px 11px;
	border-radius: 9px;
	background: #f8fafc;
	color: var(--fw-slate) !important;
	text-decoration: none !important;
	font-size: 13.8px;
	font-weight: 700;
	border: 1px solid #e2e8f0;
}

.fw-sidebar-list li a:hover {
	background: #fff1f2;
	border-color: #fecdd3;
	color: var(--fw-crimson) !important;
}

.fw-sidebar-badge {
	font-size: 11px;
	font-weight: 800;
	background: #e2e8f0;
	color: var(--fw-slate);
	padding: 2px 7px;
	border-radius: 999px;
}

.fw-site-footer {
	background: var(--fw-slate);
	color: #cbd5e1;
	padding: 48px 20px 32px;
	margin-top: 48px;
	border-top: 4px solid var(--fw-crimson);
}

.fw-footer-inner {
	max-width: 1240px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1fr;
	gap: 32px;
}

.fw-footer-brand {
	font-size: 20px;
	font-weight: 900;
	color: #ffffff;
	margin-bottom: 10px;
}

.fw-footer-desc {
	font-size: 14px;
	line-height: 1.6;
	color: #94a3b8;
	margin: 0;
}

.fw-footer-col h4 {
	color: #ffffff !important;
	font-size: 15px;
	margin: 0 0 12px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.fw-footer-col ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.fw-footer-col ul li a {
	color: #cbd5e1 !important;
	text-decoration: none !important;
	font-size: 14px;
}

.fw-footer-col ul li a:hover {
	color: #fbbf24 !important;
}

.fw-footer-bottom {
	max-width: 1240px;
	margin: 32px auto 0;
	padding-top: 20px;
	border-top: 1px solid #1e293b;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
	font-size: 13px;
	color: #94a3b8;
}

@media (max-width: 880px) {
	.fw-footer-inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 540px) {
	.fw-footer-inner {
		grid-template-columns: 1fr;
		gap: 24px;
	}
	.fw-site-footer {
		padding: 36px 16px 28px;
	}
}

/* ==========================================================================
   10. Print Styles (A4 Büttenreden & Party-Planer Printout)
   ========================================================================== */
@media print {
	.fw-site-header,
	.fw-site-footer,
	#right-sidebar,
	.fw-tusch-bar,
	.fw-aff-box,
	.fw-breadcrumbs {
		display: none !important;
	}
	body, .single .inside-article {
		background: #ffffff !important;
		border: 0 !important;
		box-shadow: none !important;
		padding: 0 !important;
	}
	.fw-speech-card {
		page-break-inside: avoid;
		border: 1px solid #000 !important;
		font-size: 16pt !important;
	}
}


/* ==========================================================================
   11. PROFI-BÜTTENREDNERPULT & SOUNDBOARD COCKPIT v3.0
   ========================================================================== */
.fw-pult-cockpit {
	background: linear-gradient(145deg, #0f172a 0%, #1e293b 65%, #2e101d 100%);
	color: #f8fafc;
	border-radius: 18px;
	padding: 24px 26px;
	margin: 26px 0 32px;
	border: 2px solid #334155;
	box-shadow: 0 14px 34px rgba(15, 23, 42, 0.22);
}

.fw-pult-header {
	display: grid;
	grid-template-columns: 1fr 235px;
	gap: 20px;
	align-items: center;
	padding-bottom: 18px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
	margin-bottom: 18px;
}

.fw-pult-badge {
	display: inline-block;
	background: rgba(245, 158, 11, 0.2);
	color: #fde68a;
	border: 1px solid rgba(251, 191, 36, 0.45);
	font-size: 11.5px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 3px 10px;
	border-radius: 999px;
	margin-bottom: 8px;
}

.fw-pult-brand h3 {
	color: #ffffff !important;
	font-size: 22px !important;
	margin: 0 0 6px !important;
	line-height: 1.25;
}

.fw-pult-brand p {
	color: #cbd5e1 !important;
	font-size: 14px;
	line-height: 1.5;
	margin: 0;
}

/* Stopwatch / Redezeit-Ampel Box */
.fw-pult-timer-box {
	background: rgba(15, 23, 42, 0.78);
	border: 1px solid #475569;
	border-radius: 14px;
	padding: 12px 14px;
	text-align: center;
}

.fw-timer-label {
	font-size: 11.5px;
	font-weight: 800;
	text-transform: uppercase;
	color: #94a3b8;
	letter-spacing: 0.04em;
}

.fw-timer-display {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 28px;
	font-weight: 900;
	color: #fde68a;
	line-height: 1.15;
	margin: 3px 0;
}

.fw-timer-ampel {
	font-size: 11.5px;
	font-weight: 700;
	color: #86efac;
	margin-bottom: 8px;
}
.fw-timer-ampel.is-yellow { color: #fde047; }
.fw-timer-ampel.is-red { color: #fca5a5; animation: fwPulseGlow 1s infinite alternate; }

.fw-timer-btns {
	display: flex;
	gap: 6px;
	justify-content: center;
}

.fw-timer-btn {
	background: #334155;
	color: #ffffff;
	border: 1px solid #475569;
	border-radius: 8px;
	padding: 5px 11px;
	font-size: 12px;
	font-weight: 800;
	cursor: pointer;
}
.fw-timer-btn--start {
	background: #059669;
	border-color: #10b981;
}
.fw-timer-btn:hover {
	filter: brightness(1.12);
}

/* Soundboard Bar & Volume Booster */
.fw-soundboard-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
	background: rgba(15, 23, 42, 0.65);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 10px;
	padding: 8px 14px;
	margin-bottom: 14px;
	font-size: 13px;
}

.fw-soundboard-status {
	display: flex;
	align-items: center;
	gap: 9px;
	color: #fde68a;
	font-weight: 700;
}

.fw-eq-bars {
	display: inline-flex;
	align-items: flex-end;
	gap: 2px;
	height: 14px;
}
.fw-eq-bars i {
	display: inline-block;
	width: 3px;
	height: 4px;
	background: #fbbf24;
	border-radius: 2px;
	transition: height 0.15s ease;
}
.fw-eq-bars.is-active i:nth-child(1) { animation: fwEqBar 0.35s infinite alternate; }
.fw-eq-bars.is-active i:nth-child(2) { animation: fwEqBar 0.25s 0.1s infinite alternate; }
.fw-eq-bars.is-active i:nth-child(3) { animation: fwEqBar 0.30s 0.05s infinite alternate; }
.fw-eq-bars.is-active i:nth-child(4) { animation: fwEqBar 0.28s 0.15s infinite alternate; }

@keyframes fwEqBar {
	0%   { height: 3px; background: #f59e0b; }
	100% { height: 14px; background: #fde047; }
}

.fw-soundboard-vol {
	display: flex;
	align-items: center;
	gap: 8px;
	color: #e2e8f0;
	font-weight: 700;
}

.fw-soundboard-vol input[type="range"] {
	width: 95px;
	accent-color: #fbbf24;
	cursor: pointer;
}

.fw-sound-stop-btn {
	background: #475569;
	color: #ffffff;
	border: 1px solid #64748b;
	border-radius: 7px;
	padding: 4px 10px;
	font-size: 12px;
	font-weight: 800;
	cursor: pointer;
}
.fw-sound-stop-btn:hover {
	background: #e11d48;
	border-color: #f43f5e;
}

/* 7-Button Sound Grid */
.fw-pult-cockpit .fw-tusch-buttons {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
	margin-bottom: 18px;
}

.fw-pult-cockpit .fw-tusch-btn {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 3px;
	padding: 13px 10px 11px;
	border-radius: 12px;
	border: 1px solid rgba(255, 255, 255, 0.22);
	color: #ffffff !important;
	cursor: pointer;
	transition: transform 0.12s ease, box-shadow 0.15s ease, filter 0.15s ease;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.22);
	text-align: center;
}

.fw-tusch-btn--primary  { background: linear-gradient(180deg, #e11d48 0%, #be123c 100%); }
.fw-tusch-btn--gold     { background: linear-gradient(180deg, #d97706 0%, #b45309 100%); border-color: #fbbf24 !important; }
.fw-tusch-btn--drum     { background: linear-gradient(180deg, #7c3aed 0%, #5b21b6 100%); }
.fw-tusch-btn--gag      { background: linear-gradient(180deg, #0284c7 0%, #0369a1 100%); }
.fw-tusch-btn--fanfare  { background: linear-gradient(180deg, #059669 0%, #047857 100%); }
.fw-tusch-btn--applause { background: linear-gradient(180deg, #db2777 0%, #9d174d 100%); }
.fw-tusch-btn--wah      { background: linear-gradient(180deg, #475569 0%, #334155 100%); }

.fw-pult-cockpit .fw-tusch-btn:hover {
	transform: translateY(-2px);
	filter: brightness(1.1);
}

.fw-pult-cockpit .fw-tusch-btn.is-playing {
	transform: scale(0.97);
	box-shadow: 0 0 0 3px #fde047, 0 0 20px rgba(253, 224, 71, 0.65);
}

.fw-tusch-key {
	position: absolute;
	top: 6px;
	right: 7px;
	font-size: 10px;
	font-weight: 800;
	background: rgba(0, 0, 0, 0.32);
	color: #e2e8f0;
	padding: 1px 6px;
	border-radius: 5px;
}

.fw-tusch-icon {
	font-size: 21px;
	line-height: 1;
	margin-bottom: 2px;
}

.fw-tusch-label {
	font-size: 13.5px;
	font-weight: 800;
	line-height: 1.2;
}

.fw-tusch-sub {
	font-size: 11px;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.82);
	line-height: 1.2;
}

/* Teleprompter Bar */
.fw-teleprompter-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px;
	background: rgba(15, 23, 42, 0.55);
	padding: 10px 14px;
	border-radius: 12px;
	border: 1px solid rgba(255, 255, 255, 0.1);
	margin-bottom: 14px;
}

.fw-tp-group {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 7px;
}

.fw-tp-title {
	font-size: 12.5px;
	font-weight: 800;
	color: #cbd5e1;
	margin-right: 2px;
}

.fw-tp-select {
	background: #1e293b;
	color: #ffffff;
	border: 1px solid #475569;
	border-radius: 8px;
	padding: 7px 10px;
	font-size: 12.5px;
	font-weight: 700;
}

/* Drawers: Personalizer & Custom Speech */
.fw-pult-drawers {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.fw-pult-drawer {
	background: rgba(30, 41, 59, 0.85);
	border: 1px solid #475569;
	border-radius: 12px;
	overflow: hidden;
}

.fw-pult-drawer summary {
	padding: 11px 16px;
	cursor: pointer;
	font-size: 14px;
	color: #ffffff;
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 8px;
}
.fw-pult-drawer summary::-webkit-details-marker { display: none; }
.fw-pult-drawer summary span {
	font-size: 12px;
	color: #fde68a;
	font-weight: 600;
}
.fw-pult-drawer[open] summary {
	background: rgba(15, 23, 42, 0.6);
	border-bottom: 1px solid #475569;
}

.fw-pult-drawer-body {
	padding: 14px 16px 16px;
}

.fw-drawer-intro {
	font-size: 13.5px !important;
	color: #cbd5e1 !important;
	margin: 0 0 12px !important;
}

.fw-personalizer-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	align-items: end;
}

.fw-personalizer-grid label {
	display: block;
	font-size: 12px;
	font-weight: 700;
	color: #fde68a;
	margin-bottom: 4px;
}

.fw-personalizer-grid input[type="text"] {
	width: 100%;
	box-sizing: border-box;
	background: #0f172a;
	color: #ffffff;
	border: 1px solid #475569;
	border-radius: 8px;
	padding: 8px 10px;
	font-size: 13.5px;
}

.fw-personalizer-actions {
	display: flex;
	gap: 8px;
}

.fw-custom-cue-bar {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 10px;
	font-size: 12.5px;
	font-weight: 700;
	color: #fde68a;
}

.fw-InsertCueBtn {
	background: #334155;
	color: #ffffff;
	border: 1px solid #64748b;
	border-radius: 999px;
	padding: 4px 10px;
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
}
.fw-InsertCueBtn:hover {
	background: #e11d48;
	border-color: #fb7185;
}

#fw-custom-speech-input {
	width: 100%;
	box-sizing: border-box;
	background: #0f172a;
	color: #f8fafc;
	border: 1px solid #475569;
	border-radius: 10px;
	padding: 12px 14px;
	font-size: 15px;
	line-height: 1.6;
	font-family: inherit;
	margin-bottom: 10px;
}

.fw-custom-speech-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
}

.fw-custom-stats {
	font-size: 13px;
	font-weight: 700;
	color: #fde68a;
}

/* Interactive Clickable .fw-tusch-cue Buttons inside the Speeches! */
.fw-tusch-cue {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	background: linear-gradient(135deg, #e11d48 0%, #be123c 100%) !important;
	color: #ffffff !important;
	border: 1px solid #f43f5e !important;
	font-size: 13.5px !important;
	font-weight: 800 !important;
	padding: 5px 14px !important;
	border-radius: 999px !important;
	margin-top: 8px !important;
	cursor: pointer !important;
	box-shadow: 0 3px 10px rgba(225, 29, 72, 0.25);
	transition: transform 0.12s ease, box-shadow 0.15s ease, background 0.15s ease;
	user-select: none;
}

.fw-tusch-cue:hover {
	transform: translateY(-2px) scale(1.02);
	background: linear-gradient(135deg, #be123c 0%, #9f1239 100%) !important;
	box-shadow: 0 5px 14px rgba(225, 29, 72, 0.38);
}

.fw-tusch-cue * {
	pointer-events: none;
}

.fw-tusch-cue:active {
	transform: scale(0.96) !important;
}

.fw-tusch-cue.is-playing {
	background: linear-gradient(135deg, #d97706 0%, #b45309 100%) !important;
	border-color: #fde047 !important;
	box-shadow: 0 0 0 3px #fde047, 0 0 18px rgba(245, 158, 11, 0.65) !important;
	animation: fwCuePulse 0.9s infinite alternate;
}

@keyframes fwCuePulse {
	from { transform: scale(1.02); box-shadow: 0 0 0 2px #fde047, 0 0 10px rgba(245, 158, 11, 0.4); }
	to   { transform: scale(1.05); box-shadow: 0 0 0 4px #fde047, 0 0 22px rgba(245, 158, 11, 0.85); }
}

.fw-cue-play-hint {
	font-size: 11px;
	font-weight: 700;
	background: rgba(0, 0, 0, 0.28);
	padding: 2px 8px;
	border-radius: 999px;
	color: #fde68a;
}

/* Interactive Stanza Highlighting & Personalized Placeholders */
.fw-speech-card p.fw-stanza {
	padding: 10px 14px;
	border-radius: 10px;
	border-left: 4px solid transparent;
	transition: background 0.15s ease, border-color 0.15s ease, opacity 0.15s ease;
	cursor: pointer;
	margin-bottom: 12px;
}

.fw-speech-card p.fw-stanza:hover {
	background: rgba(251, 191, 36, 0.12);
}

.fw-speech-card p.fw-stanza.is-current-stanza {
	background: #fef9c3 !important;
	border-left-color: #e11d48 !important;
	box-shadow: 0 3px 12px rgba(15, 23, 42, 0.06);
}

.fw-speech-card p.fw-stanza.is-read-stanza {
	opacity: 0.58;
}

.fw-speech-card code.is-personalized {
	background: #dcfce7 !important;
	color: #166534 !important;
	border: 1px solid #86efac !important;
	font-weight: 800;
	padding: 2px 7px;
	border-radius: 6px;
}

/* XXL & Dark Stage Mode for Speeches */
body.fw-pult-xxl .fw-speech-card {
	font-size: 27px !important;
	line-height: 1.95 !important;
}

body.fw-dark-stage .fw-speech-card {
	background: #0f172a !important;
	color: #f8fafc !important;
	border-color: #fbbf24 !important;
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.35);
}

body.fw-dark-stage .fw-speech-card p.fw-stanza.is-current-stanza {
	background: #1e293b !important;
	color: #fde047 !important;
	border-left-color: #fbbf24 !important;
}

body.fw-dark-stage .fw-speech-card code {
	background: #334155 !important;
	color: #fde68a !important;
}


/* ==========================================================================
   12. INTERAKTIVER SITZUNGS- & PARTY-ABLAUFPLANER v3.0
   ========================================================================== */
.fw-pp-top-actions {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.fw-pp-config-bar {
	padding: 18px 24px;
	background: #f8fafc;
	border-bottom: 1px solid #e2e8f0;
}

.fw-pp-meta-inputs {
	display: grid;
	grid-template-columns: 1.2fr 1.2fr 1fr;
	gap: 14px;
	margin-bottom: 14px;
}

.fw-pp-meta-inputs input[type="text"],
.fw-pp-meta-inputs input[type="time"] {
	width: 100%;
	box-sizing: border-box;
	padding: 9px 12px;
	border: 1px solid #cbd5e1;
	border-radius: 10px;
	font-size: 14px;
	font-weight: 700;
	color: var(--fw-slate);
	background: #ffffff;
}

.fw-pp-time-input-wrap {
	display: flex;
	gap: 5px;
	align-items: center;
}

.fw-pp-quicktime {
	background: #e2e8f0;
	color: #1e293b;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	padding: 8px 8px;
	font-size: 12px;
	font-weight: 800;
	cursor: pointer;
}
.fw-pp-quicktime:hover {
	background: #fde68a;
	border-color: #f59e0b;
}

.fw-pp-preset-bar {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	padding-top: 10px;
	border-top: 1px dashed #cbd5e1;
}

.fw-pp-preset-label {
	font-size: 13px;
	font-weight: 800;
	color: #334155;
}

.fw-pp-preset-btn {
	background: #ffffff;
	color: #1e293b;
	border: 1px solid #cbd5e1;
	border-radius: 999px;
	padding: 6px 13px;
	font-size: 12.8px;
	font-weight: 700;
	cursor: pointer;
	transition: all 0.12s ease;
}
.fw-pp-preset-btn:hover,
.fw-pp-preset-btn.is-active {
	background: var(--fw-slate);
	color: #ffffff;
	border-color: var(--fw-slate);
}

/* Dashboard & Mix Bar */
.fw-pp-dashboard {
	padding: 16px 24px;
	background: #fffbeb;
	border-bottom: 1px solid #fde68a;
}

.fw-pp-stats-row {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
	margin-bottom: 12px;
}

.fw-pp-stat-pill {
	background: #ffffff;
	border: 1px solid #fde68a;
	border-radius: 10px;
	padding: 8px 12px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 13px;
}
.fw-pp-stat-pill span { color: #64748b; font-weight: 700; }
.fw-pp-stat-pill strong { color: #0f172a; font-size: 14.5px; font-weight: 800; }

.fw-pp-mix-bar {
	display: flex;
	height: 10px;
	border-radius: 999px;
	overflow: hidden;
	background: #e2e8f0;
	margin-bottom: 8px;
}
.fw-pp-mix-bar span {
	display: block;
	height: 100%;
}

.fw-pp-mix-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	font-size: 12px;
	font-weight: 700;
	color: #475569;
	margin-bottom: 8px;
}
.fw-pp-mix-legend i {
	display: inline-block;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	margin-right: 4px;
}

.fw-pp-advice {
	font-size: 13px;
	color: #78350f;
	background: rgba(254, 243, 199, 0.7);
	padding: 7px 11px;
	border-radius: 8px;
}

.fw-pp-print-header,
.fw-pp-print-check {
	display: none;
}

/* Editable Item Cards */
.fw-pp-item-card {
	display: grid;
	grid-template-columns: 165px 1fr 122px;
	gap: 14px;
	align-items: center;
	background: #f8fafc;
	border: 1px solid #cbd5e1;
	border-left: 6px solid var(--fw-crimson);
	border-radius: 12px;
	padding: 12px 14px;
	transition: box-shadow 0.12s ease;
}
.fw-pp-item-card:hover {
	background: #ffffff;
	box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
}

.fw-pp-col-time {
	display: flex;
	flex-direction: column;
	gap: 6px;
	align-items: stretch;
}

.fw-pp-time-badge {
	color: #ffffff;
	font-weight: 800;
	font-size: 13.5px;
	padding: 5px 8px;
	border-radius: 8px;
	text-align: center;
	white-space: nowrap;
}

.fw-pp-dur-controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	font-size: 12px;
	font-weight: 700;
	color: #475569;
}

.fw-pp-dur-btn {
	background: #e2e8f0;
	color: #0f172a;
	border: 1px solid #cbd5e1;
	border-radius: 6px;
	padding: 2px 6px;
	font-size: 11.5px;
	font-weight: 800;
	cursor: pointer;
}
.fw-pp-dur-btn:hover { background: #cbd5e1; }

.fw-pp-dur-inp {
	width: 46px !important;
	text-align: center;
	padding: 2px 4px !important;
	border: 1px solid #cbd5e1;
	border-radius: 6px;
	font-size: 12.5px;
	font-weight: 800;
}

.fw-pp-col-main {
	display: flex;
	flex-direction: column;
	gap: 7px;
}

.fw-pp-main-top {
	display: grid;
	grid-template-columns: 185px 1fr;
	gap: 8px;
}

.fw-pp-cat-sel {
	padding: 6px 8px;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	font-size: 12.5px;
	font-weight: 700;
	background: #ffffff;
	color: #0f172a;
}

.fw-pp-title-inp {
	width: 100%;
	box-sizing: border-box;
	padding: 6px 10px;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	font-size: 14.5px;
	font-weight: 800;
	color: #0f172a;
	background: #ffffff;
}

.fw-pp-main-sub {
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: 8px;
}

.fw-pp-actor-inp,
.fw-pp-note-inp {
	width: 100%;
	box-sizing: border-box;
	padding: 5px 9px;
	border: 1px solid #e2e8f0;
	border-radius: 7px;
	font-size: 12.5px;
	color: #334155;
	background: #ffffff;
}

.fw-pp-col-actions {
	display: flex;
	gap: 4px;
	justify-content: flex-end;
}

.fw-pp-act-btn {
	background: #ffffff;
	color: #334155;
	border: 1px solid #cbd5e1;
	border-radius: 7px;
	width: 28px;
	height: 28px;
	font-size: 13px;
	font-weight: 800;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}
.fw-pp-act-btn:hover:not(:disabled) {
	background: #f1f5f9;
	border-color: #94a3b8;
}
.fw-pp-act-btn:disabled {
	opacity: 0.35;
	cursor: default;
}
.fw-pp-act-btn--del:hover {
	background: #ffe4e6 !important;
	color: #e11d48 !important;
	border-color: #fda4af !important;
}

/* Add Building Blocks Box */
.fw-pp-add-box {
	margin-top: 18px;
	padding: 16px;
	background: #f8fafc;
	border: 2px dashed #cbd5e1;
	border-radius: 12px;
}

.fw-pp-add-title {
	font-size: 13.5px;
	color: #1e293b;
	margin-bottom: 10px;
}

.fw-pp-add-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.fw-pp-add-btn {
	background: #ffffff;
	color: #0f172a;
	border: 1px solid #cbd5e1;
	border-radius: 999px;
	padding: 7px 13px;
	font-size: 12.5px;
	font-weight: 800;
	cursor: pointer;
	transition: all 0.12s ease;
}
.fw-pp-add-btn:hover {
	background: #fffbeb;
	border-color: #f59e0b;
	transform: translateY(-1px);
}
.fw-pp-add-btn--custom {
	background: var(--fw-slate);
	color: #ffffff;
	border-color: var(--fw-slate);
}
.fw-pp-add-btn--custom:hover {
	background: var(--fw-crimson);
	color: #ffffff;
	border-color: var(--fw-crimson);
}

.fw-pp-footer-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 18px;
	padding-top: 14px;
	border-top: 1px solid #e2e8f0;
	font-size: 12.5px;
	color: #64748b;
	font-weight: 700;
}

.fw-pp-footer-btns {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

@media (max-width: 860px) {
	.fw-pult-header,
	.fw-pp-meta-inputs,
	.fw-personalizer-grid {
		grid-template-columns: 1fr;
	}
	.fw-pult-cockpit .fw-tusch-buttons,
	.fw-pp-stats-row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.fw-pp-item-card {
		grid-template-columns: 1fr;
		gap: 10px;
	}
	.fw-pp-main-top,
	.fw-pp-main-sub {
		grid-template-columns: 1fr;
	}
	.fw-pp-col-actions {
		justify-content: flex-start;
	}
}

@media print {
	.fw-pult-cockpit,
	.fw-pp-config-bar,
	.fw-pp-dashboard,
	.fw-pp-add-box,
	.fw-pp-footer-bar,
	.fw-pp-col-actions,
	.fw-pp-dur-controls,
	.fw-pp-top-actions {
		display: none !important;
	}
	.fw-pp-print-header {
		display: block !important;
		margin-bottom: 14px;
		padding-bottom: 10px;
		border-bottom: 2px solid #000;
	}
	.fw-pp-print-check {
		display: inline-block !important;
		font-size: 16pt;
		margin-right: 6px;
	}
	.fw-pp-item-card {
		grid-template-columns: 140px 1fr !important;
		border: 1px solid #000 !important;
		page-break-inside: avoid;
		padding: 8px 10px !important;
	}
	.fw-pp-time-badge {
		background: transparent !important;
		color: #000 !important;
		border: 1px solid #000;
	}
	.fw-pp-cat-sel {
		border: 0 !important;
		appearance: none;
		padding: 0 !important;
	}
	.fw-pp-title-inp,
	.fw-pp-actor-inp,
	.fw-pp-note-inp {
		border: 0 !important;
		padding: 0 !important;
	}
}
