/* Markus Zwick Campaign Theme */

:root {
	--mz-blue: #143269;
	--mz-blue-dark: #143269;
	--mz-blue-mid: #163561;
	--mz-orange: #eb7311;
	--mz-orange-dark: #e87212;
	--mz-white: #fcfdfe;
	--mz-black: #0a1628;
	--mz-font-body: "Source Sans 3", system-ui, sans-serif;
	--mz-font-hand: "Caveat", cursive;
	--mz-header-height: 72px;
	--mz-radius: 4px;
	--mz-shadow: 0 12px 40px rgba(20, 50, 105, 0.12);
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body.mz-theme {
	margin: 0;
	font-family: var(--mz-font-body);
	font-size: 1.0625rem;
	line-height: 1.65;
	color: var(--mz-black);
	background: var(--mz-white);
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--mz-blue-dark); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--mz-orange); }

/* Header */
.mz-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: var(--mz-blue-dark);
	box-shadow: 0 2px 16px rgba(0,0,0,.18);
}

.mz-header__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 1.25rem;
	min-height: var(--mz-header-height);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.mz-brand {
	display: flex;
	align-items: center;
	gap: .75rem;
	color: var(--mz-white);
	text-decoration: none;
	font-weight: 800;
	font-size: .95rem;
	letter-spacing: .02em;
	text-transform: uppercase;
}

.mz-brand:hover { color: var(--mz-white); opacity: .92; }

.mz-brand__icon { width: 40px; height: 40px; flex-shrink: 0; }

.mz-brand__text { line-height: 1.15; }
.mz-brand__text small {
	display: block;
	font-size: .68rem;
	font-weight: 600;
	opacity: .85;
	text-transform: none;
	letter-spacing: 0;
}

.mz-nav-toggle {
	display: none;
	background: transparent;
	border: 2px solid rgba(252,253,254,.35);
	color: var(--mz-white);
	padding: .45rem .7rem;
	border-radius: var(--mz-radius);
	cursor: pointer;
	font: inherit;
	font-weight: 700;
}

.mz-nav {
	display: flex;
	flex-wrap: wrap;
	gap: .25rem 1rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.mz-nav a {
	color: var(--mz-white);
	text-decoration: none;
	font-weight: 600;
	font-size: .92rem;
	padding: .35rem 0;
	border-bottom: 2px solid transparent;
}

.mz-nav a:hover,
.mz-nav .current-menu-item > a,
.mz-nav .current_page_item > a {
	color: var(--mz-orange);
	border-bottom-color: var(--mz-orange);
}

/* Slanted headline blocks */
.mz-slant-headline {
	display: flex;
	flex-direction: column;
	gap: .35rem;
	margin-bottom: 1.25rem;
}

.mz-slant {
	display: inline-block;
	width: fit-content;
	padding: .55rem 1.1rem;
	color: var(--mz-white);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .04em;
	line-height: 1.1;
	transform: skewX(-12deg);
	box-shadow: var(--mz-shadow);
}

.mz-slant span,
.mz-slant { transform: skewX(-12deg); }

.mz-slant > * { transform: skewX(12deg); display: inline-block; }

.mz-slant--blue { background: var(--mz-blue-dark); font-size: clamp(1.1rem, 3vw, 1.65rem); }
.mz-slant--orange { background: var(--mz-orange); font-size: clamp(1.25rem, 3.5vw, 1.85rem); }

.mz-handwriting {
	font-family: var(--mz-font-hand);
	font-size: clamp(1.5rem, 4vw, 2.4rem);
	color: var(--mz-orange);
	line-height: 1.1;
	margin: .5rem 0 0;
}

.mz-handwriting--light {
	color: var(--mz-orange);
	text-shadow: 0 2px 12px rgba(10, 22, 40, 0.45);
}

/* Image framing */
.mz-img {
	width: 100%;
	border-radius: var(--mz-radius);
	box-shadow: var(--mz-shadow);
	background: rgba(20, 50, 105, 0.04);
}

.mz-img--landscape {
	aspect-ratio: 16 / 10;
	object-fit: cover;
	max-height: 420px;
}

.mz-img--portrait {
	aspect-ratio: 3 / 4;
	object-fit: cover;
	max-height: 520px;
}

.mz-img--focus-city { object-position: center 42%; }
.mz-img--focus-monument { object-position: center 35%; }
.mz-img--focus-face { object-position: center 18%; }
.mz-img--focus-subject { object-position: center 28%; }
.mz-img--focus-center { object-position: center center; }

/* Front hero – poster-inspired layout */
.mz-front-hero {
	position: relative;
	min-height: clamp(480px, 78vh, 720px);
	overflow: hidden;
	background: var(--mz-blue-mid);
	isolation: isolate;
}

.mz-front-hero__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center 40%;
	filter: brightness(0.78) saturate(1.05);
}

.mz-front-hero__overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(20, 50, 105, 0.55) 0%, rgba(20, 50, 105, 0.08) 45%, rgba(20, 50, 105, 0.15) 100%),
		linear-gradient(180deg, rgba(20, 50, 105, 0.08) 0%, rgba(20, 50, 105, 0.15) 55%, rgba(20, 50, 105, 0.82) 100%);
}

.mz-front-hero__layout {
	position: relative;
	z-index: 2;
	max-width: 1200px;
	margin: 0 auto;
	min-height: clamp(480px, 78vh, 720px);
	padding: 2rem 1.25rem 7.5rem;
	display: flex;
	align-items: flex-end;
}

.mz-front-hero__layout--solo {
	align-items: center;
	padding-bottom: 8rem;
}

@media (min-width: 900px) {
	.mz-front-hero__layout--solo {
		padding-bottom: 9rem;
	}
}

.mz-front-hero__slogan {
	display: flex;
	flex-direction: column;
	gap: .5rem;
	padding-bottom: .5rem;
}

.mz-front-hero__slogan .mz-slant-headline {
	margin-bottom: 0;
	gap: .5rem;
}

.mz-front-hero__portrait {
	margin: 0;
	align-self: end;
	justify-self: end;
	width: min(100%, 420px);
	max-height: min(68vh, 560px);
	display: flex;
	justify-content: flex-end;
}

.mz-front-hero__portrait img {
	width: 100%;
	height: auto;
	max-height: min(68vh, 560px);
	object-fit: contain;
	object-position: bottom right;
	border-radius: 0;
	box-shadow: none;
	background: transparent;
	filter: drop-shadow(0 16px 32px rgba(10, 22, 40, 0.35));
}

.mz-front-hero__identity {
	position: absolute;
	z-index: 3;
	right: 0;
	bottom: 0;
	left: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
	padding: 1.25rem;
	background: linear-gradient(180deg, transparent 0%, rgba(20, 50, 105, 0.92) 35%);
}

@media (min-width: 768px) {
	.mz-front-hero__identity {
		grid-template-columns: auto 1fr auto;
		align-items: end;
		padding: 1.5rem 2rem 2rem;
	}
}

.mz-front-hero__vote {
	display: flex;
	align-items: center;
	gap: .85rem;
}

.mz-brand__icon,
.mz-vote-mark { flex-shrink: 0; }

.mz-vote-mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
}

.mz-vote-mark--small {
	width: 40px;
	height: 40px;
}

.mz-vote-mark-svg {
	display: block;
	width: 100%;
	height: 100%;
	overflow: visible;
}

.mz-vote-mark__stroke {
	paint-order: stroke fill;
}

.mz-front-hero__vote .mz-vote-mark {
	width: 56px;
	height: 56px;
}

.mz-front-hero__role {
	color: var(--mz-white);
	font-size: .95rem;
	margin: 0;
	opacity: .92;
	text-shadow: 0 2px 14px rgba(20, 50, 105, 0.6), 0 1px 2px rgba(0, 0, 0, 0.3);
}

.mz-front-hero__name {
	color: var(--mz-white);
	font-size: clamp(1.5rem, 4vw, 2.4rem);
	font-weight: 800;
	text-transform: uppercase;
	margin: .15rem 0 0;
	line-height: 1.05;
	text-shadow: 0 2px 16px rgba(20, 50, 105, 0.65), 0 1px 3px rgba(0, 0, 0, 0.35);
}

.mz-front-hero__cta .mz-handwriting--light {
	text-shadow: 0 2px 14px rgba(20, 50, 105, 0.55), 0 1px 2px rgba(0, 0, 0, 0.25);
}

.mz-front-hero__cta {
	justify-self: start;
}

@media (min-width: 768px) {
	.mz-front-hero__cta { justify-self: end; text-align: right; }
}

/* Page hero */
.mz-page-hero {
	position: relative;
	min-height: clamp(240px, 36vw, 360px);
	background-color: var(--mz-blue-mid);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center 40%;
}

.mz-page-hero[data-bg-focus="city"] { background-position: center 42%; }
.mz-page-hero[data-bg-focus="face"] { background-position: center 28%; }
.mz-page-hero[data-bg-focus="vita"],
.mz-page-hero[data-bg-focus="kontakt"] {
	background-position: 58% 24%;
	min-height: clamp(280px, 40vw, 400px);
}

.mz-page-hero[data-bg-focus="vita"] .mz-page-hero__overlay,
.mz-page-hero--soft[data-bg-focus="vita"] .mz-page-hero__overlay {
	background: linear-gradient(
		90deg,
		rgba(20, 50, 105, 0.88) 0%,
		rgba(20, 50, 105, 0.55) 30%,
		rgba(20, 50, 105, 0.1) 44%,
		rgba(20, 50, 105, 0) 56%
	);
}

.mz-page-hero[data-bg-focus="vita"] .mz-page-hero__content {
	max-width: 36rem;
	margin-right: auto;
	background: linear-gradient(
		90deg,
		rgba(20, 50, 105, 0.78) 0%,
		rgba(20, 50, 105, 0.42) 72%,
		rgba(20, 50, 105, 0) 100%
	);
}
.mz-page-hero[data-bg-focus="subject"] { background-position: center 30%; }
.mz-page-hero[data-bg-focus="monument"] { background-position: center 35%; }
.mz-page-hero[data-bg-focus="center"] { background-position: center center; }
.mz-page-hero[data-bg-focus="family"] {
	background-position: center 8%;
	min-height: clamp(340px, 50vw, 520px);
}

.mz-page-hero__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-end;
	width: 100%;
	background: linear-gradient(
		180deg,
		rgba(20, 50, 105, 0) 0%,
		rgba(20, 50, 105, 0) 62%,
		rgba(20, 50, 105, 0.52) 88%,
		rgba(20, 50, 105, 0.9) 100%
	);
	padding: 2.5rem 1.25rem;
	pointer-events: none;
}

.mz-page-hero--soft .mz-page-hero__overlay {
	background: linear-gradient(
		180deg,
		rgba(20, 50, 105, 0) 0%,
		rgba(20, 50, 105, 0) 65%,
		rgba(20, 50, 105, 0.4) 88%,
		rgba(20, 50, 105, 0.82) 100%
	);
}

.mz-page-hero__content {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
	pointer-events: auto;
	padding: 0.85rem 1.25rem;
	background: linear-gradient(
		90deg,
		rgba(20, 50, 105, 0.82) 0%,
		rgba(20, 50, 105, 0.48) 52%,
		rgba(20, 50, 105, 0) 88%
	);
}

.mz-page-hero__title {
	color: var(--mz-white);
	font-size: clamp(1.75rem, 4vw, 2.75rem);
	margin: 0 0 .35rem;
	font-weight: 800;
	text-shadow: 0 2px 16px rgba(20, 50, 105, 0.65), 0 1px 3px rgba(0, 0, 0, 0.35);
}

.mz-page-hero__subtitle {
	color: rgba(252, 253, 254, 0.96);
	margin: 0;
	font-size: 1.05rem;
	max-width: 52ch;
	text-shadow: 0 2px 14px rgba(20, 50, 105, 0.6), 0 1px 2px rgba(0, 0, 0, 0.3);
}

.mz-page-hero .mz-handwriting--light {
	text-shadow: 0 2px 14px rgba(20, 50, 105, 0.55), 0 1px 2px rgba(0, 0, 0, 0.25);
}

/* Content wrapper */
.mz-content,
.mz-main > .entry-content,
.mz-main > .wp-block-post-content {
	max-width: 1200px;
	margin: 0 auto;
	padding: 2.5rem 1.25rem 4rem;
}

.mz-intro {
	font-size: 1.125rem;
	max-width: 68ch;
}

.mz-intro p:first-child { margin-top: 0; }

.mz-vision {
	max-width: 68ch;
	margin: 0 auto;
	padding: 2.5rem 1.25rem 1rem;
}

.mz-vision__title {
	font-size: clamp(1.75rem, 4vw, 2.25rem);
	color: var(--mz-blue);
	margin: 0 0 1.75rem;
}

.mz-vision__item {
	margin-bottom: 1.75rem;
	padding-bottom: 1.75rem;
	border-bottom: 1px solid rgba(20, 50, 105, 0.08);
}

.mz-vision__item:last-child {
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: 0;
}

.mz-vision__item-title {
	font-size: 1.15rem;
	color: var(--mz-blue-dark);
	margin: 0 0 0.5rem;
	font-weight: 700;
}

.mz-vision__item p {
	margin: 0;
	line-height: 1.65;
}

/* Sections */
.mz-section {
	padding: 2.5rem 0;
	border-bottom: 1px solid rgba(20,50,105,.08);
}

.mz-section__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 1.25rem;
	display: grid;
	gap: 1.75rem;
	align-items: center;
}

@media (min-width: 900px) {
	.mz-section__inner { grid-template-columns: 1fr 1.1fr; }
	.mz-section--reverse .mz-section__inner { direction: rtl; }
	.mz-section--reverse .mz-section__body,
	.mz-section--reverse .mz-section__media { direction: ltr; }
}

.mz-section__media {
	display: flex;
	align-items: center;
	justify-content: center;
}

.mz-section__media--portrait .mz-img {
	width: min(100%, 360px);
	margin-inline: auto;
}

.mz-section__media--landscape .mz-img {
	width: 100%;
}

.mz-section__media img,
.mz-section__media .mz-img {
	border-radius: var(--mz-radius);
	box-shadow: var(--mz-shadow);
}

.mz-section__title {
	color: var(--mz-blue-dark);
	font-size: clamp(1.25rem, 2.5vw, 1.65rem);
	margin: 0 0 .75rem;
	padding-left: .85rem;
	border-left: 5px solid var(--mz-orange);
}

.mz-section__text p { margin: 0 0 .85rem; }
.mz-section__text p:last-child { margin-bottom: 0; }

/* Anchor navigation (Zukunft page) */
.mz-anchor-nav-wrap {
	position: sticky;
	top: var(--mz-header-height);
	z-index: 900;
	background: var(--mz-white);
	border-bottom: 2px solid rgba(20,50,105,.1);
	box-shadow: 0 4px 20px rgba(20,50,105,.06);
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.mz-anchor-nav {
	display: flex;
	flex-wrap: nowrap;
	gap: .35rem;
	max-width: 1200px;
	margin: 0 auto;
	padding: .65rem 1.25rem;
	min-width: min-content;
}

.mz-anchor-nav a {
	flex: 0 0 auto;
	text-decoration: none;
	font-size: .82rem;
	font-weight: 700;
	color: var(--mz-blue-dark);
	background: rgba(20,50,105,.06);
	padding: .45rem .75rem;
	border-radius: 999px;
	white-space: nowrap;
}

.mz-anchor-nav a:hover,
.mz-anchor-nav a.is-active {
	background: var(--mz-orange);
	color: var(--mz-white);
}

/* Topic sections on Zukunft page */
.mz-topic {
	scroll-margin-top: calc(var(--mz-header-height) + 64px);
	padding: 3rem 0;
}

.mz-topic:nth-child(even) { background: rgba(20,50,105,.03); }

.mz-topic__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 1.25rem;
	display: grid;
	gap: 1.5rem;
	align-items: center;
}

@media (min-width: 900px) {
	.mz-topic__inner { grid-template-columns: 1.05fr 1fr; }
	.mz-topic--reverse .mz-topic__inner { direction: rtl; }
	.mz-topic--reverse .mz-topic__body,
	.mz-topic--reverse .mz-topic__media { direction: ltr; }
}

.mz-topic__label {
	display: inline-block;
	background: var(--mz-blue-dark);
	color: var(--mz-white);
	font-weight: 800;
	font-size: .78rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	padding: .35rem .7rem;
	transform: skewX(-10deg);
	margin-bottom: .65rem;
}

.mz-topic__label span { display: inline-block; transform: skewX(10deg); }

.mz-topic__title {
	color: var(--mz-blue-dark);
	font-size: clamp(1.35rem, 2.8vw, 1.85rem);
	margin: 0 0 .75rem;
	line-height: 1.2;
}

.mz-topic__media {
	display: flex;
	align-items: center;
	justify-content: center;
}

.mz-topic__media--portrait .mz-img {
	width: min(100%, 340px);
	margin-inline: auto;
}

.mz-topic__media--landscape .mz-img {
	width: 100%;
}

.mz-topic__media img,
.mz-topic__media .mz-img {
	border-radius: var(--mz-radius);
	box-shadow: var(--mz-shadow);
}

/* CTA band */
.mz-cta-band {
	background: linear-gradient(135deg, var(--mz-blue-dark), var(--mz-blue-mid));
	color: var(--mz-white);
	padding: 3rem 1.25rem;
	text-align: center;
}

.mz-cta-band__inner { max-width: 720px; margin: 0 auto; }
.mz-cta-band h2 { color: var(--mz-white); margin-top: 0; font-size: clamp(1.5rem, 3vw, 2rem); }
.mz-cta-band p { opacity: .92; }

.mz-btn {
	display: inline-block;
	background: var(--mz-orange);
	color: var(--mz-white) !important;
	text-decoration: none;
	font-weight: 800;
	padding: .75rem 1.35rem;
	border-radius: var(--mz-radius);
	transform: skewX(-8deg);
	box-shadow: var(--mz-shadow);
}

.mz-btn span { display: inline-block; transform: skewX(8deg); }
.mz-btn:hover { background: var(--mz-orange-dark); color: var(--mz-white) !important; }

/* Contact form styling */
.mz-contact-wrap {
	max-width: 720px;
}

.mz-contact-intro {
	font-size: 1.125rem;
	line-height: 1.6;
	margin: 0 0 1.75rem;
	color: var(--mz-blue-dark);
}

.wpcf7 form {
	display: grid;
	gap: 1rem;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea {
	width: 100%;
	padding: .75rem .85rem;
	border: 2px solid rgba(20,50,105,.15);
	border-radius: var(--mz-radius);
	font: inherit;
	background: var(--mz-white);
}

.wpcf7 input:focus,
.wpcf7 textarea:focus {
	outline: none;
	border-color: var(--mz-orange);
}

.wpcf7 input[type="submit"] {
	background: var(--mz-orange);
	color: var(--mz-white);
	border: 0;
	padding: .8rem 1.5rem;
	font-weight: 800;
	cursor: pointer;
	border-radius: var(--mz-radius);
}

.wpcf7 input[type="submit"]:hover { background: var(--mz-orange-dark); }

.mz-legal-content__title {
	color: var(--mz-blue-dark);
	font-size: clamp(1.75rem, 3vw, 2.25rem);
	margin: 0 0 1.5rem;
	padding-bottom: .75rem;
	border-bottom: 4px solid var(--mz-orange);
}

/* Footer */
.mz-footer {
	background: var(--mz-blue-dark);
	color: rgba(252,253,254,.88);
	padding: 2.5rem 1.25rem 2rem;
	margin-top: auto;
}

.mz-footer__inner {
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	gap: 1.5rem;
}

@media (min-width: 768px) {
	.mz-footer__inner { grid-template-columns: 1.2fr 1fr; align-items: start; }
}

.mz-footer a { color: var(--mz-white); text-decoration: none; }
.mz-footer a:hover { color: var(--mz-orange); }

.mz-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem 1.25rem;
	font-size: .92rem;
}

.mz-footer__note {
	font-size: .82rem;
	opacity: .75;
	margin: 1rem 0 0;
}

/* WordPress core overrides */
.mz-main .alignwide { max-width: 1200px; }
.mz-main .alignfull { width: 100%; max-width: none; margin-left: 0; margin-right: 0; }

/* Mobile nav */
@media (max-width: 900px) {
	.mz-nav-toggle { display: inline-block; }

	.mz-nav {
		display: none;
		position: absolute;
		top: var(--mz-header-height);
		left: 0;
		right: 0;
		background: var(--mz-blue-mid);
		flex-direction: column;
		padding: 1rem 1.25rem 1.25rem;
		box-shadow: 0 8px 24px rgba(0,0,0,.2);
	}

	.mz-nav.is-open { display: flex; }

	.mz-header { position: sticky; }
	.mz-header__inner { position: relative; }

	.mz-front-hero__layout--solo {
		padding-bottom: 9rem;
	}
}

@media (max-width: 600px) {
	.mz-content,
	.mz-main > .entry-content { padding-top: 1.75rem; }
}
