:root {
	--fw-radius-card: 28px;
	--fw-radius-small: 16px;
	--fw-shadow-card: 0 12px 35px rgba(11, 38, 51, 0.08);
	--fw-shadow-raised: 0 18px 50px rgba(11, 38, 51, 0.14);
	--fw-dark-surface-text: #479a8c;
}

html {
	scroll-behavior: smooth;
}

body {
	-webkit-font-smoothing: antialiased;
}

*:focus-visible {
	outline: 3px solid #ffbf47;
	outline-offset: 3px;
	box-shadow: 0 0 0 6px #0b2633;
}

.skip-link {
	position: fixed;
	top: 0.75rem;
	left: 0.75rem;
	z-index: 9999;
	padding: 0.75rem 1rem;
	border-radius: 8px;
	background: #ffffff;
	color: #0b2633;
	font-weight: 700;
	text-decoration: underline;
	transform: translateY(-200%);
}

.skip-link:focus {
	transform: translateY(0);
}

main p a:not(.wp-element-button),
main li a:not(.wp-element-button) {
	text-decoration: underline;
	text-decoration-thickness: 0.1em;
	text-underline-offset: 0.18em;
}

a,
button,
.wp-element-button {
	transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.fw-button-disabled {
	display: block;
	width: 100%;
	box-sizing: border-box;
	border-radius: 999px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--surface);
	cursor: not-allowed;
	font-weight: 700;
	opacity: 0.72;
	padding: 0.85rem 1.4rem;
	text-align: center;
}

.site-header {
	position: relative;
	z-index: 20;
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.site-logo {
	letter-spacing: -0.04em;
	text-decoration: none;
}

.fw-card,
.fw-topic,
.fw-field,
.fw-map,
.fw-ad {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--fw-radius-card);
	box-shadow: var(--fw-shadow-card);
}

.fw-card,
.fw-topic,
.fw-field {
	background: var(--wp--preset--color--surface);
}

.fw-card {
	height: 100%;
}

.fw-topic {
	min-height: 160px;
}

.fw-topic:hover {
	border-color: var(--wp--preset--color--accent);
	transform: translateY(-3px);
}

.fw-icon {
	display: inline-grid;
	width: 2.8rem;
	height: 2.8rem;
	place-items: center;
	border-radius: 14px;
	background: var(--wp--preset--color--accent-light);
	color: var(--wp--preset--color--petrol);
	font-size: 1.35rem;
}

.fw-label,
.fw-eyebrow {
	font-size: 0.78rem;
	font-weight: 750;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.fw-ad {
	position: relative;
	min-height: 120px;
	background: #edf2f1;
	box-shadow: none;
}

.fw-ad::before {
	content: "Anzeige";
	position: absolute;
	top: 0.65rem;
	left: 50%;
	color: var(--wp--preset--color--muted);
	font-size: 0.68rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	transform: translateX(-50%);
}

.fw-ad > * {
	margin-top: 1.25rem;
}

.fw-map {
	min-height: 430px;
	background:
		radial-gradient(circle at 52% 46%, rgba(0, 115, 95, 0.16), transparent 30%),
		linear-gradient(135deg, #e5f3f0, #f8fbfa);
	box-shadow: none;
}

.fw-status {
	display: inline-block;
	padding: 0.28rem 0.65rem;
	border-radius: 999px;
	background: #dff4e9;
	color: #12613f;
	font-size: 0.78rem;
	font-weight: 700;
}

.fw-meta {
	border-top: 1px solid var(--wp--preset--color--border);
}

.fw-section {
	padding-block: clamp(3.5rem, 7vw, 6rem);
}

.fw-section-heading {
	max-width: 720px;
}

.fw-hero {
	overflow: hidden;
	background:
		radial-gradient(circle at 85% 10%, rgba(0, 115, 95, 0.35), transparent 28%),
		var(--wp--preset--color--navy);
}

.fw-hero h1,
.fw-hero h2,
.fw-hero p {
	color: var(--wp--preset--color--surface);
}

.fw-hero > .wp-block-group > .fw-eyebrow {
	color: var(--fw-dark-surface-text) !important;
}

.fw-finder {
	margin-top: 2rem;
	padding: clamp(1rem, 3vw, 2rem);
	border-radius: var(--fw-radius-card);
	background: rgba(255, 255, 255, 0.98);
	box-shadow: var(--fw-shadow-raised);
}

.fw-finder p,
.fw-finder strong {
	color: var(--wp--preset--color--text) !important;
}

.fw-field {
	box-shadow: none;
}

.fw-card.has-navy-background-color,
.fw-card.has-navy-background-color h2,
.fw-card.has-navy-background-color h3,
.fw-card.has-navy-background-color p {
	color: var(--fw-dark-surface-text) !important;
}

.fw-footer h2,
.fw-footer p {
	color: var(--fw-dark-surface-text) !important;
}

.fw-footer a {
	color: #ddf5f0 !important;
}

.fw-footer > .wp-block-group > p,
.fw-footer > .wp-block-group > div > p {
	color: var(--fw-dark-surface-text) !important;
}

.fw-footer .fw-ad p {
	color: var(--wp--preset--color--muted) !important;
}

@media (max-width: 781px) {
	.fw-section {
		padding-block: 3.5rem;
	}

	.fw-map {
		min-height: 330px;
	}

	.site-header .wp-block-navigation {
		justify-content: flex-end;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	* {
		transition-duration: 0.01ms !important;
	}
}
