/* ==========================================================================
   FSC Knittlingen – theme styles
   Tokens live in theme.json; this file only adds component styling.
   ========================================================================== */

:root {
	--fsc-radius: 18px;
	--fsc-radius-sm: 10px;
	--fsc-shadow: 0 1px 2px rgb(18 20 23 / 0.06), 0 8px 24px -12px rgb(18 20 23 / 0.18);
	--fsc-shadow-lg: 0 2px 4px rgb(18 20 23 / 0.06), 0 24px 48px -24px rgb(18 20 23 / 0.35);
	--fsc-header-h: 76px;
	--fsc-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
}

html {
	scroll-behavior: smooth;
	/* --fsc-sticky-top: real bottom edge of the sticky header (incl. admin bar), set by motion.js. */
	scroll-padding-top: calc(var(--fsc-sticky-top, var(--fsc-header-h)) + 2rem);
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; animation: none !important; }
	.fsc-reveal { opacity: 1 !important; transform: none !important; }
}

body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

::selection {
	background: var(--wp--preset--color--red);
	color: #fff;
}

:where(a, button, summary, input):focus-visible {
	outline: 2px solid var(--wp--preset--color--sky);
	outline-offset: 3px;
	border-radius: 4px;
}

.wp-site-blocks {
	padding-top: 0;
}

.wp-site-blocks > * + * {
	margin-block-start: 0;
}

/* Eyebrow / kicker ------------------------------------------------------- */

.fsc-eyebrow {
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--red);
	margin-bottom: 0.5rem !important;
}

/* Header ------------------------------------------------------------------ */

/*
 * Sticky header. WordPress wraps the header part in <header class="wp-block-template-part">,
 * which is exactly as tall as the header – so the wrapper is what has to stick (a sticky
 * element can only move within its parent).
 */
.wp-site-blocks > .wp-block-template-part:has(> .fsc-header) {
	position: sticky;
	top: 0;
	z-index: 50;
}

.fsc-header {
	position: relative;
	border-bottom: 1px solid var(--wp--preset--color--line);
	padding-block: 0.6rem;
	transition: padding 0.3s var(--fsc-ease), box-shadow 0.3s var(--fsc-ease);
}

/* Once the page is scrolled: a little slimmer, with a soft shadow. */
.fsc-scrolled .fsc-header {
	padding-block: 0.25rem;
	border-bottom-color: transparent;
	box-shadow: 0 6px 24px -12px rgb(18 20 23 / 0.35);
}

.fsc-header .wp-block-site-logo img {
	transition: width 0.3s var(--fsc-ease), height 0.3s var(--fsc-ease);
}

.fsc-scrolled .fsc-header .wp-block-site-logo img {
	width: 42px !important;
	height: 42px !important;
}

/*
 * The frosted background lives on a pseudo-element: backdrop-filter on the header itself
 * would become the containing block of the fixed mobile menu overlay and trap it.
 */
.fsc-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgb(255 255 255 / 0.88);
	backdrop-filter: saturate(1.6) blur(14px);
	-webkit-backdrop-filter: saturate(1.6) blur(14px);
}

.admin-bar .wp-site-blocks > .wp-block-template-part:has(> .fsc-header) {
	top: var(--wp-admin--admin-bar--height, 32px);
}

@media (max-width: 600px) {
	.admin-bar .wp-site-blocks > .wp-block-template-part:has(> .fsc-header) { top: 0; }
}

.fsc-header__inner {
	min-height: calc(var(--fsc-header-h) - 1.2rem);
	gap: 1.5rem;
}

.fsc-brand {
	gap: 0.85rem !important;
	align-items: center;
}

.fsc-brand .wp-block-site-logo img {
	border-radius: 50%;
	box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--wp--preset--color--line);
}

.fsc-brand__text {
	gap: 0.15rem !important;
}

.fsc-brand__text .wp-block-site-title {
	margin: 0;
	letter-spacing: 0.01em;
	text-transform: uppercase;
}

.fsc-brand__tagline {
	margin: 0;
	font-size: 0.8rem;
	color: var(--wp--preset--color--muted);
	letter-spacing: 0.02em;
}

@media (max-width: 480px) {
	.fsc-brand__tagline { display: none; }
}

/* Navigation */
.fsc-nav .wp-block-navigation__container {
	gap: 0.25rem;
}

.fsc-nav .wp-block-navigation-item__content {
	padding: 0.55rem 0.85rem !important;
	border-radius: 999px;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	transition: background-color 0.2s var(--fsc-ease), color 0.2s var(--fsc-ease);
}

.fsc-nav .wp-block-navigation-item__content:hover,
.fsc-nav .wp-block-navigation-item__content:focus-visible {
	background: var(--wp--preset--color--sky-light);
	color: var(--wp--preset--color--sky);
}

.fsc-nav .current-menu-item > .wp-block-navigation-item__content,
.fsc-nav .current-menu-ancestor > .wp-block-navigation-item__content,
.fsc-nav [aria-current="page"] {
	color: var(--wp--preset--color--red);
}

.fsc-nav .wp-block-navigation-submenu__toggle {
	margin-left: -0.6rem;
	margin-right: 0.3rem;
}

.fsc-nav .wp-block-navigation__submenu-container {
	border: 1px solid var(--wp--preset--color--line) !important;
	border-radius: 14px;
	padding: 0.4rem !important;
	box-shadow: var(--fsc-shadow-lg);
	min-width: 220px !important;
	background: #fff;
}

.fsc-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	border-radius: 10px;
	padding: 0.55rem 0.8rem !important;
}

.fsc-nav .fsc-nav-cta > .wp-block-navigation-item__content {
	background: var(--wp--preset--color--red);
	color: #fff !important;
	margin-left: 0.5rem;
}

.fsc-nav .fsc-nav-cta > .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--red-dark);
}

/* Mobile overlay */
.fsc-nav .wp-block-navigation__responsive-container-open {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	align-items: center;
	justify-content: center;
	background: var(--wp--preset--color--ink);
	color: #fff;
}

.fsc-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--ink) !important;
	color: #fff !important;
	padding: 1.25rem clamp(1rem, 6vw, 2.5rem) !important;
}

.fsc-nav .is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 4rem !important;
	align-items: stretch !important;
}

.fsc-nav .is-menu-open .wp-block-navigation__container {
	gap: 0.15rem !important;
	align-items: stretch !important;
	width: 100%;
}

.fsc-nav .is-menu-open .wp-block-navigation-item {
	width: 100%;
	align-items: stretch !important;
}

.fsc-nav .is-menu-open .wp-block-navigation-item__content {
	color: #fff !important;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.85rem;
	font-weight: 700;
	padding: 0.35rem 0 !important;
	background: none !important;
}

.fsc-nav .is-menu-open .wp-block-navigation__submenu-container {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none;
	padding: 0 0 0.75rem 0.25rem !important;
}

.fsc-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--body);
	font-size: 1.1rem;
	font-weight: 500;
	opacity: 0.8;
}

.fsc-nav .is-menu-open .fsc-nav-cta > .wp-block-navigation-item__content {
	margin: 1rem 0 0;
	background: var(--wp--preset--color--red) !important;
	border-radius: 999px;
	text-align: center;
	justify-content: center;
	padding: 0.75rem 1rem !important;
	font-size: 1.25rem;
}

.fsc-nav .wp-block-navigation__responsive-container-close {
	color: #fff;
	top: 1.25rem;
	right: 1.25rem;
}

/* Main ---------------------------------------------------------------------- */

.fsc-main {
	padding-bottom: var(--wp--preset--spacing--60);
}

.fsc-main--home {
	padding-bottom: 0;
}

.fsc-main > .wp-block-post-content > * + *,
.fsc-content > * + * {
	margin-block-start: 1.25rem;
}

/*
 * Inner pages: one grid across the full wide width (aligned with header and title) –
 * the text column plus a sidebar, so both edges are filled and nothing sits off-centre.
 */
.fsc-page-body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 19rem;
	gap: clamp(2.5rem, 5vw, 4.5rem);
	align-items: start;
}

.fsc-page-body__main,
.fsc-page-body__main .wp-block-post-content {
	min-width: 0;
}

.fsc-page-body__main > * + *,
.fsc-page-body__main .wp-block-post-content > * + * {
	margin-block-start: 1.25rem;
}

.fsc-page-body__main > :first-child,
.fsc-page-body__main .wp-block-post-content > :first-child {
	margin-top: 0 !important;
}

@media (max-width: 960px) {
	.fsc-page-body {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Sidebar */
.fsc-sidebar {
	display: grid;
	gap: 1.25rem;
	margin: 0 !important;
}

.fsc-sidebar > * {
	margin: 0 !important;
}

.fsc-sidebar__sticky {
	position: sticky;
	top: calc(var(--fsc-sticky-top, var(--fsc-header-h)) + 2.5rem);
	transition: top 0.3s var(--fsc-ease);
}

.fsc-sidebar .fsc-eyebrow {
	margin: 0 0 0.6rem !important;
}

.fsc-sidebox {
	padding: 1.25rem 1.4rem !important;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--fsc-radius);
	background: #fff;
}

/*
 * Quiet sidebar: small rows on a thin rail, grey labels – supports the text, never
 * competes with it (same language as the gallery's "Auf dieser Seite").
 */
.fsc-sidebar--quiet {
	gap: 2rem;
	padding-left: 1.5rem !important;
	border-left: 2px solid var(--wp--preset--color--line);
}

.fsc-sidebar--quiet .fsc-eyebrow {
	margin-bottom: 0.65rem !important;
	color: var(--wp--preset--color--muted);
}

.fsc-aside-block > * {
	margin: 0;
}

.fsc-aside-list {
	display: grid;
	gap: 0.8rem;
}

.fsc-aside-list > * {
	margin: 0 !important;
}

.fsc-aside-row {
	display: grid;
	grid-template-columns: 3.5rem 1fr;
	gap: 0.85rem;
	align-items: center;
}

.fsc-aside-row > * {
	margin: 0 !important;
}

.fsc-aside-row:not(:has(> :nth-child(2))) {
	grid-template-columns: 1fr;
}

.fsc-aside-row__thumb img {
	width: 3.5rem;
	height: 3.5rem;
	object-fit: cover;
	border-radius: var(--fsc-radius-sm);
}

.fsc-aside-row__date {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	height: 3.5rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--fsc-radius-sm);
	background: #fff;
	color: var(--wp--preset--color--muted);
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--fsc-text-label) !important;
	font-weight: 700;
	line-height: 1.1 !important;
	text-transform: uppercase;
}

.fsc-aside-row__date span {
	color: var(--wp--preset--color--ink);
	font-size: 1.35rem;
}

.fsc-sidebar--quiet .fsc-aside-row__text {
	font-size: var(--fsc-text-small) !important;
	line-height: 1.45 !important;
}

.fsc-sidebar--quiet a {
	color: var(--wp--preset--color--ink);
	font-weight: 600;
	text-decoration: none;
	transition: color 0.2s;
}

.fsc-sidebar--quiet a:hover {
	color: var(--wp--preset--color--red);
}

.fsc-sidebar--quiet small {
	display: block;
	color: var(--wp--preset--color--muted);
	font-size: inherit;
	font-weight: 400;
}

@media (max-width: 960px) {
	.fsc-sidebar__sticky {
		position: static;
	}

	.fsc-sidebar--quiet {
		padding: 1.5rem 0 0 !important;
		border-left: 0;
		border-top: 2px solid var(--wp--preset--color--line);
	}
}

/* Next date teaser */
.fsc-nextdate {
	display: grid;
	grid-template-columns: 3.5rem 1fr;
	gap: 0.9rem;
	align-items: center;
}

.fsc-nextdate > * {
	margin: 0 !important;
}

.fsc-nextdate .fsc-termin__date {
	padding: 0.45rem 0 0.4rem;
}

.fsc-nextdate .fsc-termin__day {
	font-size: 1.6rem;
}

.fsc-nextdate .fsc-termin__month {
	font-size: 0.8rem;
}

.fsc-nextdate a {
	color: var(--wp--preset--color--ink);
	font-weight: 700;
	text-decoration: none;
	line-height: 1.25;
}

.fsc-nextdate a:hover {
	color: var(--wp--preset--color--red);
}

.fsc-nextdate small {
	display: block;
	margin-top: 0.2rem;
	color: var(--wp--preset--color--muted);
	font-weight: 500;
}

/*
 * Gallery year: the table of contents lives in the sidebar as a quiet scroll guide –
 * small grey links on a thin rail; the section being read is marked (see motion.js).
 */
.fsc-sidebar .fsc-toc {
	padding: 0 !important;
	border-radius: 0;
	background: none;
}

.fsc-sidebar .fsc-toc .fsc-eyebrow {
	color: var(--wp--preset--color--muted);
}

.fsc-sidebar .fsc-toc ul {
	display: block;
	padding-left: 0;
	list-style: none;
	border-left: 2px solid var(--wp--preset--color--line);
}

.fsc-sidebar .fsc-toc li {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: var(--fsc-text-small) !important;
	line-height: 1.4 !important;
}

.fsc-sidebar .fsc-toc a {
	display: block;
	margin-left: -2px;
	padding: 0.4rem 0 0.4rem 1rem;
	border-left: 2px solid transparent;
	color: var(--wp--preset--color--muted);
	font-weight: 500;
	text-decoration: none;
	transition: color 0.2s, border-color 0.2s;
}

.fsc-sidebar .fsc-toc a:hover {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.fsc-sidebar .fsc-toc a small {
	display: block;
	margin-top: 0.1rem;
	color: var(--wp--preset--color--muted);
	font-size: var(--fsc-text-label);
	font-weight: 400;
}

.fsc-sidebar .fsc-toc a.is-active {
	border-left-color: var(--wp--preset--color--red);
	color: var(--wp--preset--color--ink);
	font-weight: 600;
}

/* Below the two-column breakpoint the guide would just repeat the content – hide it. */
@media (max-width: 960px) {
	.fsc-sidebar:has(> .fsc-toc) {
		display: none;
	}
}

.fsc-event .fsc-event__date {
	margin-bottom: 0 !important;
}

/* Date and heading belong together: no extra gap, no accent bar between them. */
.fsc-event .fsc-event__date + h2.wp-block-heading {
	margin-top: 0.35rem !important;
	padding-top: 0;
}

.fsc-event .fsc-event__date + h2.wp-block-heading::before {
	display: none;
}

.fsc-page-body__main .fsc-event:first-child {
	padding-top: 0;
}

/* Page hero (all inner pages) */
.fsc-page-hero {
	position: relative;
	overflow: hidden;
	margin-bottom: var(--wp--preset--spacing--60);
	padding-block: clamp(2.5rem, 7vw, 5.5rem) clamp(2rem, 5vw, 3.5rem);
	background:
		radial-gradient(1200px 380px at 85% -40%, rgb(29 102 173 / 0.18), transparent 60%),
		linear-gradient(180deg, var(--wp--preset--color--sky-light) 0%, var(--wp--preset--color--paper) 100%);
	border-bottom: 1px solid var(--wp--preset--color--line);
}

/* Contrail: a thin dashed flight path with a small plane, purely decorative. */
.fsc-page-hero::after {
	content: "";
	position: absolute;
	right: -40px;
	top: 18%;
	width: min(560px, 60vw);
	aspect-ratio: 560 / 160;
	opacity: 0.5;
	pointer-events: none;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 560 160' fill='none'%3E%3Cpath d='M0 150 C 160 140, 320 90, 470 40' stroke='%231d66ad' stroke-width='2' stroke-dasharray='2 10' stroke-linecap='round'/%3E%3Cg transform='translate(486 32) rotate(-20)' fill='%23d4261c'%3E%3Cpath d='M-22 0 L18 -2 L24 0 L18 2 Z'/%3E%3Cpath d='M-2 -1 L-10 -18 L-4 -18 L8 -1 Z'/%3E%3Cpath d='M-2 1 L-10 18 L-4 18 L8 1 Z'/%3E%3Cpath d='M-20 -1 L-24 -8 L-20 -8 L-14 -1 Z'/%3E%3Cpath d='M-20 1 L-24 8 L-20 8 L-14 1 Z'/%3E%3C/g%3E%3C/svg%3E") no-repeat center / contain;
}

@media (max-width: 700px) {
	.fsc-page-hero::after { opacity: 0.25; top: 8%; }
}

.fsc-page-hero .wp-block-post-title {
	margin-top: 0.25rem;
	font-size: clamp(2.6rem, 7vw, 4.75rem);
	text-transform: uppercase;
	letter-spacing: 0.01em;
}

.fsc-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--wp--preset--color--muted);
}

.fsc-breadcrumb a {
	color: inherit;
	text-decoration: none;
}

.fsc-breadcrumb a:hover {
	color: var(--wp--preset--color--red);
}

/* Content typography ------------------------------------------------------- */

.fsc-content h2.wp-block-heading {
	position: relative;
	padding-top: 1.1rem;
	font-size: clamp(1.9rem, 4vw, 2.6rem);
}

.fsc-content h2.wp-block-heading::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 44px;
	height: 4px;
	border-radius: 4px;
	background: var(--wp--preset--color--red);
}

.fsc-section-title {
	font-size: clamp(2rem, 4.5vw, 3rem);
	text-transform: uppercase;
}

.fsc-content h3.wp-block-heading {
	font-size: clamp(1.45rem, 3vw, 1.8rem);
}

.fsc-lead {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.55;
	color: var(--wp--preset--color--ink-soft);
}

.wp-block-image img,
.wp-block-gallery .wp-block-image img {
	border-radius: var(--fsc-radius-sm);
}

.wp-block-image figcaption,
.wp-element-caption {
	margin-top: 0.6rem;
}

/* Galleries: rounded tiles, captions as overlay chips */
/*
 * Galleries as a uniform grid: core's flex rows stretch an orphaned last image across the
 * whole row. Column count follows the block's "columns" setting.
 */
.wp-block-gallery.has-nested-images {
	--fsc-cols: 3;
	display: grid !important;
	grid-template-columns: repeat(var(--fsc-cols), minmax(0, 1fr));
	gap: 0.75rem !important;
}

.wp-block-gallery.has-nested-images.columns-1 { --fsc-cols: 1; }
.wp-block-gallery.has-nested-images.columns-2 { --fsc-cols: 2; }
.wp-block-gallery.has-nested-images.columns-4 { --fsc-cols: 4; }

@media (max-width: 781px) {
	.wp-block-gallery.has-nested-images { --fsc-cols: 2 !important; }
}

.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) {
	width: 100% !important;
	margin: 0 !important;
}

.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image img {
	aspect-ratio: 4 / 3;
	height: 100%;
	object-fit: cover;
}

/* Portrait-heavy galleries (4 columns) get portrait tiles */
.wp-block-gallery.has-nested-images.columns-4.is-cropped figure.wp-block-image img {
	aspect-ratio: 3 / 4;
}

.wp-block-gallery.has-nested-images figure.wp-block-image {
	border-radius: var(--fsc-radius-sm);
	overflow: hidden;
}

.wp-block-gallery.has-nested-images figure.wp-block-image img {
	transition: transform 0.6s var(--fsc-ease);
}

.wp-block-gallery.has-nested-images figure.wp-block-image:hover img {
	transform: scale(1.04);
}

.wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
	background: linear-gradient(0deg, rgb(18 20 23 / 0.78) 0%, rgb(18 20 23 / 0) 100%);
	font-size: 0.875rem;
	font-weight: 500;
	padding: 2rem 0.85rem 0.7rem;
	text-align: left;
	margin: 0;
}

/* Notice ("Aktuelles") ---------------------------------------------------- */

.is-style-notice {
	position: relative;
	background: #fff;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--fsc-radius);
	padding: clamp(1.25rem, 3vw, 2rem) clamp(1.25rem, 3vw, 2.25rem) clamp(1.25rem, 3vw, 2rem) calc(clamp(1.25rem, 3vw, 2.25rem) + 6px);
	box-shadow: var(--fsc-shadow);
	overflow: hidden;
}

/* Accent bar – drawn inside the clipped box so it follows the rounded corners cleanly */
.is-style-notice::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 6px;
	background: var(--wp--preset--color--red);
}

.is-style-notice > * + * {
	margin-block-start: 0.75rem;
}

.is-style-notice .fsc-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

.is-style-notice .fsc-eyebrow::before {
	content: "";
	width: 0.6rem;
	height: 0.6rem;
	border-radius: 50%;
	background: var(--wp--preset--color--red);
	box-shadow: 0 0 0 4px rgb(212 38 28 / 0.18);
	animation: fsc-pulse 2.4s ease-in-out infinite;
}

@keyframes fsc-pulse {
	50% { box-shadow: 0 0 0 8px rgb(212 38 28 / 0); }
}

.fsc-contact-chips {
	font-weight: 600;
	line-height: 1.9;
}

.fsc-contact-chips a {
	white-space: nowrap;
	margin-inline: 0.15rem;
}

/* Card --------------------------------------------------------------------- */

.is-style-card {
	background: #fff;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--fsc-radius);
	padding: clamp(1.25rem, 3vw, 1.75rem);
	box-shadow: var(--fsc-shadow);
}

.is-style-card > * + * {
	margin-block-start: 0.75rem;
}

/* Home: hero ---------------------------------------------------------------- */

.fsc-hero {
	position: relative;
	isolation: isolate;
	min-height: min(86vh, 820px);
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding-block: clamp(6rem, 18vh, 10rem) clamp(2.5rem, 7vh, 5rem) !important;
	padding-inline: var(--wp--style--root--padding-left) var(--wp--style--root--padding-right) !important;
	color: #fff;
	background-color: var(--wp--preset--color--ink);
	margin-top: 0 !important;
}

/*
 * Ken Burns: the hero photo (set as background on the block, so editors can swap it)
 * is repainted on a pseudo-element via "inherit" and slowly zoomed/panned.
 */
.fsc-hero {
	overflow: hidden;
}

/*
 * Framing is tuned for the airfield photo: zoomed a little and anchored so the club hut
 * (the subject) sits right of centre, clear of the headline, with less empty sky.
 * Override the custom properties if the hero photo is replaced.
 */
.fsc-hero {
	--fsc-hero-size: 130% auto;
	--fsc-hero-pos: 0% 90%;
	--fsc-hero-focus: 62% 76%;
}

/*
 * Portrait screens: the photo fills by height, which pins the hut near the bottom edge.
 * Move the copy to the top instead so the hut stays visible underneath it.
 */
@media (max-aspect-ratio: 1/1) {
	.fsc-hero {
		--fsc-hero-size: cover;
		--fsc-hero-pos: 47% 100%;
		--fsc-hero-focus: 50% 82%;
		justify-content: flex-start;
		min-height: min(88svh, 760px);
		padding-block: clamp(2.5rem, 9vh, 4.5rem) 2rem !important;
	}

	.fsc-hero::before {
		background: linear-gradient(180deg, rgb(10 14 20 / 0.78) 0%, rgb(10 14 20 / 0.45) 50%, rgb(10 14 20 / 0) 72%);
	}
}

.fsc-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -2;
	background-image: inherit;
	background-size: var(--fsc-hero-size);
	background-position: var(--fsc-hero-pos);
	background-repeat: no-repeat;
	transform-origin: var(--fsc-hero-focus);
	animation: fsc-kenburns 28s ease-in-out infinite alternate;
	will-change: transform;
}

/* Slow push-in toward the hut and back */
@keyframes fsc-kenburns {
	from { transform: scale(1); }
	to { transform: scale(1.12); }
}

/* Hero copy rises in on load */
.fsc-hero > * {
	animation: fsc-rise 0.9s var(--fsc-ease) both;
}

.fsc-hero > :nth-child(2) { animation-delay: 0.08s; }
.fsc-hero > :nth-child(3) { animation-delay: 0.18s; }
.fsc-hero > :nth-child(4) { animation-delay: 0.28s; }

@keyframes fsc-rise {
	from { opacity: 0; transform: translateY(24px); }
	to { opacity: 1; transform: none; }
}

/* Scroll reveal (classes added by assets/js/motion.js) */
.fsc-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition:
		opacity 0.7s var(--fsc-ease) var(--fsc-delay, 0ms),
		transform 0.7s var(--fsc-ease) var(--fsc-delay, 0ms);
}

.fsc-reveal.is-visible {
	opacity: 1;
	transform: none;
}

.fsc-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(90deg, rgb(10 14 20 / 0.72) 0%, rgb(10 14 20 / 0.35) 45%, rgb(10 14 20 / 0) 75%),
		linear-gradient(0deg, rgb(10 14 20 / 0.65) 0%, rgb(10 14 20 / 0) 45%);
}

.fsc-hero h1 {
	color: #fff;
	text-transform: uppercase;
	font-size: clamp(2.75rem, 7vw, 5.25rem);
	line-height: 0.95;
	max-width: 14ch;
	text-shadow: 0 2px 30px rgb(0 0 0 / 0.25);
}

.fsc-hero .fsc-eyebrow {
	color: #fff;
	opacity: 0.9;
}

.fsc-hero > * {
	margin-left: max(0px, calc((100% - 1240px) / 2)) !important;
}

.fsc-hero .fsc-hero__lead {
	max-width: 36ch;
	font-size: clamp(1.2rem, 2.2vw, 1.5rem);
	line-height: 1.45;
	font-weight: 500;
}

.fsc-hero .wp-block-buttons {
	margin-top: 1.75rem;
}

.fsc-hero .is-style-outline .wp-block-button__link,
.fsc-visit .is-style-outline .wp-block-button__link,
.fsc-footer .is-style-outline .wp-block-button__link {
	color: #fff;
	border: 2px solid rgb(255 255 255 / 0.7);
	background: rgb(255 255 255 / 0.06);
	backdrop-filter: blur(6px);
}

.fsc-hero .is-style-outline .wp-block-button__link:hover,
.fsc-visit .is-style-outline .wp-block-button__link:hover,
.fsc-footer .is-style-outline .wp-block-button__link:hover {
	background: #fff;
	color: var(--wp--preset--color--ink);
	border-color: #fff;
}

.is-style-outline .wp-block-button__link {
	border: 2px solid currentColor;
	background: transparent;
	color: var(--wp--preset--color--ink);
	padding: calc(0.8rem - 2px) calc(1.5rem - 2px);
}

.is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--ink);
	color: #fff;
}

/* News strip: short form of the current announcement (synced pattern) */
.fsc-newsbar {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 0.5rem 1.25rem;
	padding: 0.9rem 1rem 0.9rem 1.1rem;
	border-radius: 14px;
	background: #fff;
	border: 1px solid var(--wp--preset--color--line);
}

.fsc-newsbar > * {
	margin: 0 !important;
}

.fsc-newsbar__label {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.3rem 0.75rem 0.3rem 0.6rem;
	border-radius: 999px;
	background: rgb(212 38 28 / 0.1);
	color: var(--wp--preset--color--red);
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	font-size: 0.85rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	white-space: nowrap;
}

.fsc-newsbar__label::before {
	content: "";
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background: currentColor;
	animation: fsc-pulse 2.4s ease-in-out infinite;
}

.fsc-newsbar__text {
	font-size: 1rem;
	line-height: 1.5;
	color: var(--wp--preset--color--ink-soft);
}

.fsc-newsbar__link a {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.55rem 1rem;
	border-radius: 999px;
	background: var(--wp--preset--color--ink);
	color: #fff;
	font-weight: 600;
	font-size: 0.95rem;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 0.2s;
}

.fsc-newsbar__link a::after {
	content: "→";
	transition: transform 0.2s var(--fsc-ease);
}

.fsc-newsbar__link a:hover {
	background: var(--wp--preset--color--red);
	color: #fff;
}

.fsc-newsbar__link a:hover::after {
	transform: translateX(3px);
}

@media (max-width: 781px) {
	.fsc-newsbar {
		grid-template-columns: 1fr;
		justify-items: start;
		padding: 1rem;
	}
}

/* On the home page the strip is a band right below the hero */
.fsc-newsband {
	background: #fff;
	border-bottom: 1px solid var(--wp--preset--color--line);
	padding-block: 0.9rem;
	margin-top: 0 !important;
}

.fsc-newsband .fsc-newsbar {
	border: 0;
	padding-inline: 0;
	background: none;
}

/* Home: facts strip – dark panel, any number of entries (configured under "Startseite"). */
.fsc-facts-band {
	margin-top: 0 !important;
	padding-top: var(--wp--preset--spacing--50);
}

.fsc-facts {
	--fsc-facts-cols: 4;
	position: relative;
	display: flex;
	flex-wrap: wrap; /* the last row stretches, so odd counts leave no empty cell */
	gap: 1px;
	margin-top: 0 !important;
	border-radius: var(--fsc-radius);
	overflow: hidden;
	background: var(--wp--preset--color--ink-soft); /* shows through the 1px gaps as hairline dividers */
	box-shadow: var(--fsc-shadow-lg);
	isolation: isolate;
}

.fsc-facts--1 { --fsc-facts-cols: 1; }
.fsc-facts--2 { --fsc-facts-cols: 2; }
.fsc-facts--3,
.fsc-facts--5,
.fsc-facts--6 { --fsc-facts-cols: 3; }

/* Dashed "runway" centre line along the bottom edge. */
.fsc-facts::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: 3px;
	background: repeating-linear-gradient(90deg, var(--wp--preset--color--red) 0 28px, transparent 28px 48px);
	opacity: 0.85;
	pointer-events: none;
}

.fsc-fact {
	position: relative;
	flex: 1 1 max(13rem, calc(100% / var(--fsc-facts-cols) - 1px));
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-rows: auto auto;
	align-content: center;
	column-gap: 1rem;
	margin: 0 !important;
	padding: clamp(1.25rem, 2.5vw, 1.75rem) clamp(1.25rem, 2.2vw, 1.6rem);
	background:
		radial-gradient(120% 140% at 0% 0%, rgb(29 102 173 / 0.28) 0%, transparent 55%),
		var(--wp--preset--color--ink);
	color: #fff;
	transition: background-color 0.3s;
}

.fsc-fact > * {
	margin: 0 !important;
}

.fsc-fact__icon {
	grid-row: span 2;
	align-self: center;
	display: grid;
	place-items: center;
	width: 3.25rem;
	height: 3.25rem;
	border-radius: 14px;
	background: linear-gradient(145deg, var(--wp--preset--color--red) 0%, var(--wp--preset--color--red-dark) 100%);
	box-shadow: 0 10px 22px -10px rgb(212 38 28 / 0.9), inset 0 1px 0 rgb(255 255 255 / 0.25);
	transition: transform 0.4s var(--fsc-ease);
}

.fsc-fact__icon svg {
	width: 1.6rem;
	height: 1.6rem;
}

.fsc-fact__title {
	align-self: end;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.2rem, 1.6vw, 1.4rem);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: 0.01em;
	text-transform: uppercase;
}

.fsc-fact__text {
	align-self: start;
	margin-top: 0.3rem !important;
	color: rgb(255 255 255 / 0.66);
	font-size: 0.9375rem;
	line-height: 1.4;
}

.fsc-fact:not(:has(.fsc-fact__text)) .fsc-fact__title {
	grid-row: span 2;
	align-self: center;
}

.fsc-fact:hover .fsc-fact__icon {
	transform: translateY(-3px) rotate(-6deg);
}

/* Home: sections */
.fsc-section {
	padding-block: var(--wp--preset--spacing--70);
	margin-top: 0 !important;
}

.fsc-section--white {
	background: #fff;
	border-block: 1px solid var(--wp--preset--color--line);
}

.fsc-section-head {
	max-width: 760px;
	margin-bottom: var(--wp--preset--spacing--50) !important;
}

.fsc-section-head.has-text-align-center,
.fsc-section-head .has-text-align-center {
	margin-inline: auto;
}

/* Feature cards (Segelflug / Motorflug / Mitglied werden) */
.fsc-feature {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--fsc-radius);
	overflow: hidden;
	box-shadow: var(--fsc-shadow);
	transition: transform 0.35s var(--fsc-ease), box-shadow 0.35s var(--fsc-ease);
}

.fsc-feature:hover {
	transform: translateY(-4px);
	box-shadow: var(--fsc-shadow-lg);
}

.fsc-feature > .wp-block-image {
	margin: 0 !important;
}

.fsc-feature > .wp-block-image img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 0;
}

.fsc-feature > :not(.wp-block-image) {
	margin-inline: clamp(1.25rem, 2.5vw, 1.6rem);
}

.fsc-feature > .wp-block-heading {
	margin-top: 1.4rem;
	font-size: 1.9rem;
	text-transform: uppercase;
}

.fsc-feature > p:last-child,
.fsc-feature > .wp-block-buttons:last-child {
	margin-bottom: 1.6rem;
}

.fsc-feature--accent {
	background: var(--wp--preset--color--ink);
	color: #fff;
	border-color: var(--wp--preset--color--ink);
}

.fsc-feature--accent .wp-block-heading {
	color: #fff;
}

.fsc-feature .wp-block-buttons {
	margin-top: auto !important;
	padding-top: 1rem;
}

/* Split section (Über uns) */
.fsc-split {
	gap: clamp(1.5rem, 5vw, 4.5rem) !important;
}

.fsc-split .wp-block-image img {
	width: 100%;
	aspect-ratio: 5 / 4;
	object-fit: cover;
	border-radius: var(--fsc-radius);
	box-shadow: var(--fsc-shadow-lg);
}

.fsc-stack {
	position: relative;
}

.fsc-stack .fsc-stack__badge {
	position: absolute;
	right: -12px;
	bottom: -18px;
	width: 120px;
	margin: 0 !important;
}

.fsc-stack .fsc-stack__badge img {
	aspect-ratio: 1;
	border-radius: 50%;
	border: 6px solid #fff;
	box-shadow: var(--fsc-shadow-lg);
}

@media (max-width: 781px) {
	.fsc-stack .fsc-stack__badge { width: 88px; right: 8px; }
}

.fsc-contact-list {
	list-style: none;
	padding: 0;
	margin: 1.25rem 0 0;
	display: grid;
	gap: 0.6rem;
}

.fsc-contact-list li {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	font-weight: 600;
	line-height: 1.45;
}

.fsc-contact-list li::before {
	content: "";
	flex: 0 0 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--wp--preset--color--sky-light) var(--fsc-icon) no-repeat center / 18px;
}

.fsc-contact-list .is-mail { --fsc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d66ad' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E"); }
.fsc-contact-list .is-phone { --fsc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d66ad' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='7' y='2' width='10' height='20' rx='2'/%3E%3Cpath d='M11 18h2'/%3E%3C/svg%3E"); }
.fsc-contact-list .is-landline { --fsc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d66ad' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E"); }
.fsc-contact-list .is-pin { --fsc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d66ad' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s7-6.3 7-12a7 7 0 1 0-14 0c0 5.7 7 12 7 12z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E"); }

.fsc-contact-list a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.fsc-contact-list a:hover {
	color: var(--wp--preset--color--red);
}

/* Teasers (Aus dem Vereinsleben) */
.fsc-teaser {
	position: relative;
	margin: 0 !important;
	border-radius: var(--fsc-radius);
	overflow: hidden;
	background: var(--wp--preset--color--ink);
	box-shadow: var(--fsc-shadow);
}

.fsc-teaser > .wp-block-image {
	margin: 0 !important;
}

.fsc-teaser > .wp-block-image img {
	width: 100%;
	aspect-ratio: 4 / 3.4;
	object-fit: cover;
	border-radius: 0;
	opacity: 0.88;
	transition: transform 0.6s var(--fsc-ease), opacity 0.3s;
}

.fsc-teaser:hover > .wp-block-image img {
	transform: scale(1.05);
	opacity: 0.7;
}

.fsc-teaser__body {
	position: absolute;
	inset: auto 0 0 0;
	padding: 3.5rem 1.4rem 1.3rem !important;
	background: linear-gradient(0deg, rgb(10 14 20 / 0.92) 0%, rgb(10 14 20 / 0) 100%);
	color: #fff;
	margin: 0 !important;
}

.fsc-teaser__body > * {
	margin: 0 !important;
}

.fsc-teaser__body .fsc-eyebrow {
	color: #ffb4ad;
	margin-bottom: 0.3rem !important;
}

.fsc-teaser__body h3 {
	color: #fff;
	font-size: 1.6rem;
	line-height: 1.1;
}

.fsc-teaser__body h3 a {
	color: inherit;
	text-decoration: none;
}

/* The text area is clickable via the heading link, the image via its own link */
.fsc-teaser__body h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
}

/* Visit band ---------------------------------------------------------------- */

.fsc-visit {
	position: relative;
	overflow: hidden;
	background: var(--wp--preset--color--ink);
	color: #fff;
	padding-block: var(--wp--preset--spacing--70);
	margin-top: 0 !important;
}

/* Runway centre-line stripes */
.fsc-visit::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 2.25rem;
	height: 6px;
	opacity: 0.12;
	background: repeating-linear-gradient(90deg, #fff 0 56px, transparent 56px 104px);
}

.fsc-visit h2 {
	color: #fff;
	text-transform: uppercase;
	font-size: clamp(2.4rem, 6vw, 4rem);
}

.fsc-visit .fsc-eyebrow {
	color: #ff8a80;
}

.fsc-visit p.has-large-font-size {
	max-width: 46ch;
	color: rgb(255 255 255 / 0.86);
}

.fsc-visit__buttons {
	align-items: stretch !important;
}

.fsc-visit__buttons .wp-block-button {
	width: 100%;
}

.fsc-visit__buttons .wp-block-button__link {
	width: 100%;
	text-align: center;
	font-size: 1.1rem;
	padding-block: 1rem;
}

@media (min-width: 782px) {
	.fsc-visit__buttons { margin-left: auto; max-width: 320px; }
}

/* Footer -------------------------------------------------------------------- */

.fsc-footer {
	background: #0b0c0e;
	color: rgb(255 255 255 / 0.72);
	padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40);
	font-size: 0.975rem;
	margin-top: 0 !important;
}

.fsc-footer a {
	color: #fff;
	text-decoration: none;
}

.fsc-footer a:hover {
	color: #ff8a80;
	text-decoration: underline;
}

.fsc-footer__cols {
	gap: clamp(1.5rem, 4vw, 3rem) !important;
}

.fsc-footer__name {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	font-size: 1.35rem;
	line-height: 1.05;
	color: #fff;
	text-transform: uppercase;
	margin: 0;
}

.fsc-footer .fsc-brand .wp-block-site-logo img {
	border-radius: 50%;
}

.fsc-footer__title {
	font-family: var(--wp--preset--font-family--display);
	color: #fff;
	font-size: 0.95rem !important;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 0 !important;
}

.fsc-footer__title::before {
	display: none;
}

.fsc-footer__links {
	list-style: none;
	padding: 0;
	display: grid;
	gap: 0.4rem;
}

/* Contact lines with small icons; long addresses may break instead of overflowing. */
.fsc-footer__contact {
	margin-top: 1rem;
	gap: 0.75rem;
}

.fsc-footer__contact li {
	align-items: flex-start;
	gap: 0.7rem;
	font-weight: 400;
	min-width: 0;
}

.fsc-footer__contact li::before {
	flex-basis: 30px;
	height: 30px;
	background-color: rgb(255 255 255 / 0.08);
	background-size: 15px;
	filter: brightness(1.8) saturate(0.6);
}

.fsc-footer__contact li > span {
	min-width: 0;
	padding-top: 0.2rem;
	overflow-wrap: anywhere;
}

.fsc-footer__contact a {
	color: #fff;
}

/* Phones: brand on top, "Verein" and "Flugplatz" side by side, contact full width. */
@media (max-width: 781px) {
	.fsc-footer__cols {
		display: grid !important;
		grid-template-columns: 1fr 1fr;
		grid-template-areas: "brand brand" "verein platz" "kontakt kontakt";
		gap: 2rem 1.25rem !important;
	}

	.fsc-footer__cols > .wp-block-column { margin: 0 !important; min-width: 0; }
	.fsc-footer__cols > .wp-block-column:nth-child(1) { grid-area: brand; }
	.fsc-footer__cols > .wp-block-column:nth-child(2) { grid-area: verein; }
	.fsc-footer__cols > .wp-block-column:nth-child(3) { grid-area: kontakt; }
	.fsc-footer__cols > .wp-block-column:nth-child(4) { grid-area: platz; }

	.fsc-footer__links { gap: 0.15rem; }
	.fsc-footer__links li { margin: 0; }

	.fsc-footer__bottom {
		flex-direction: column;
		align-items: flex-start !important;
		gap: 0.35rem !important;
	}
}

.fsc-footer .is-style-outline .wp-block-button__link {
	padding: 0.55rem 1.2rem;
	font-size: 0.95rem;
}

.fsc-footer__bottom {
	margin-top: var(--wp--preset--spacing--50) !important;
	padding-top: 1.25rem;
	border-top: 1px solid rgb(255 255 255 / 0.12);
	font-size: 0.875rem;
	row-gap: 0.25rem !important;
}

.fsc-footer__bottom p {
	margin: 0;
}

/* Gallery year navigation ---------------------------------------------------- */

.fsc-years {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 1.5rem !important;
	position: relative;
	z-index: 1;
}

.fsc-years a {
	padding: 0.5rem 1.15rem;
	border-radius: 999px;
	border: 1px solid var(--wp--preset--color--line);
	background: #fff;
	color: var(--wp--preset--color--ink);
	font-weight: 600;
	text-decoration: none;
	transition: all 0.2s var(--fsc-ease);
}

.fsc-years a:hover {
	border-color: var(--wp--preset--color--ink);
}

.fsc-years a[aria-current="page"] {
	background: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--ink);
	color: #fff;
}

/* Table of contents on long pages */
.fsc-toc {
	padding: 1.1rem 1.4rem !important;
	border-radius: var(--fsc-radius);
	background: var(--wp--preset--color--sky-light);
}

.fsc-toc .fsc-eyebrow {
	color: var(--wp--preset--color--sky);
}

.fsc-toc ul {
	margin: 0;
	padding-left: 1.1rem;
	display: grid;
	gap: 0.3rem;
}

.fsc-toc a {
	font-weight: 600;
	text-decoration: none;
}

.fsc-toc a:hover {
	text-decoration: underline;
}

/* Event entries on the year pages */
.fsc-event {
	padding-top: var(--wp--preset--spacing--50);
	margin-top: var(--wp--preset--spacing--50) !important;
	border-top: 1px solid var(--wp--preset--color--line);
}

.fsc-event:first-of-type {
	border-top: 0;
	margin-top: var(--wp--preset--spacing--40) !important;
	padding-top: 0;
}

.fsc-event > * + * {
	margin-block-start: 1rem;
}

.fsc-event .wp-block-gallery {
	margin-top: 1.75rem !important;
}

/* People (Vorstand) -------------------------------------------------------- */

/*
 * Board cards: photo → office (small label) → name (headline) → contact details,
 * separated by a hairline and pinned to the card bottom so a row lines up.
 */
.fsc-person {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin: 0 !important;
	padding: 1.75rem 1.5rem 1.5rem !important;
	text-align: center;
}

.fsc-person > * {
	margin: 0 !important;
}

.fsc-person .wp-block-image img,
.fsc-person.no-photo::before {
	width: 104px;
	height: 104px;
	border-radius: 50%;
	border: 4px solid #fff;
	box-shadow: 0 0 0 1px var(--wp--preset--color--line), var(--fsc-shadow);
}

.fsc-person .wp-block-image img {
	object-fit: cover;
}

.fsc-person.no-photo::before {
	content: "";
	background: var(--wp--preset--color--sky-light) url("../img/logo.jpg") no-repeat center / 86%;
	filter: grayscale(1);
	opacity: 0.7;
}

.fsc-content .fsc-person .fsc-person__role {
	margin-top: 1.1rem !important;
	color: var(--wp--preset--color--red);
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--fsc-text-label) !important;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.3;
	text-transform: uppercase;
}

.fsc-content .fsc-person h3.fsc-person__name {
	margin-top: 0.3rem !important;
	padding: 0;
	color: var(--wp--preset--color--ink);
}

.fsc-person .fsc-person__tag {
	margin-top: 0.5rem !important;
}

.fsc-person__details {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.4rem;
	width: 100%;
	margin-top: auto !important;
	padding-top: 1.1rem;
}

/* The hairline sits above the details; the auto margin keeps rows of cards aligned. */
.fsc-person__details::before {
	content: "";
	align-self: stretch;
	height: 1px;
	margin: 0.25rem 0 0.6rem;
	background: var(--wp--preset--color--line);
}

.fsc-person__details > * {
	margin: 0 !important;
}

.fsc-content .fsc-person__line {
	margin-top: 0.35rem !important;
	color: var(--wp--preset--color--ink-soft);
	font-size: var(--fsc-text-small) !important;
	line-height: 1.45;
}

.fsc-person__name + .fsc-person__line,
.fsc-person__tag + .fsc-person__line {
	margin-top: 0.75rem !important;
}

.fsc-person__line svg {
	display: inline-block;
	width: 0.95em;
	height: 0.95em;
	margin-right: 0.35rem;
	vertical-align: -0.1em;
	color: var(--wp--preset--color--muted);
}

.fsc-person__line a {
	color: inherit;
	text-decoration: none;
}

.fsc-person__line a:hover {
	color: var(--wp--preset--color--red);
}

/* Mail button: quiet outline, full width at the bottom of the card. */
.fsc-person__details .fsc-person__mail {
	align-self: stretch;
	margin-top: 0.5rem !important;
}

.fsc-person__mail .wp-block-button {
	width: 100%;
}

.fsc-person__mail .wp-block-button__link {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.45rem;
	width: 100%;
	padding: 0.55rem 1rem;
	border: 1px solid var(--wp--preset--color--line);
	background: transparent;
	color: var(--wp--preset--color--ink-soft);
	font-size: 0.875rem;
	font-weight: 600;
	transition: border-color 0.2s, color 0.2s;
}

.fsc-person__mail .wp-block-button__link::before {
	content: "";
	width: 1em;
	height: 1em;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.fsc-person__mail .wp-block-button__link:hover,
.fsc-person__mail .wp-block-button__link:focus-visible {
	border-color: var(--wp--preset--color--red);
	background: transparent;
	color: var(--wp--preset--color--red);
}

/* Kontakt page card (dark): same button, light outline. */
.fsc-contact-card .fsc-person__mail {
	margin-top: 1.25rem !important;
}

.fsc-contact-card .fsc-person__mail .wp-block-button {
	width: auto;
}

.fsc-contact-card .fsc-person__mail .wp-block-button__link {
	display: inline-flex;
	width: auto;
	border-color: rgb(255 255 255 / 0.28);
	color: #fff;
	font-size: 0.9375rem;
	padding: 0.55rem 1.1rem;
}

.fsc-contact-card .fsc-person__mail .wp-block-button__link:hover,
.fsc-contact-card .fsc-person__mail .wp-block-button__link:focus-visible {
	border-color: var(--wp--preset--color--red);
	background: var(--wp--preset--color--red);
	color: #fff;
}

/* "kommissarisch" tag below the name. */
.fsc-person .fsc-person__tag {
	padding: 0.15rem 0.6rem;
	border-radius: 999px;
	background: var(--wp--preset--color--sky-light);
	color: var(--wp--preset--color--sky);
	font-weight: 600;
	letter-spacing: 0.04em;
}

/* Links page --------------------------------------------------------------- */

.fsc-links-section {
	margin-top: var(--wp--preset--spacing--60) !important;
}

.fsc-links-section > .fsc-eyebrow {
	margin-bottom: 0.25rem !important;
}

.fsc-content h2.fsc-links-title {
	padding-top: 0;
	margin: 0 0 1.25rem !important;
	font-size: clamp(1.6rem, 3vw, 2.1rem);
}

.fsc-content h2.fsc-links-title::before {
	display: none;
}

.fsc-linkcard {
	--tone: var(--wp--preset--color--sky);
	--tone-bg: var(--wp--preset--color--sky-light);
	position: relative;
	display: flex;
	gap: 1.1rem;
	align-items: flex-start;
	margin: 0 !important;
	padding: 1.35rem 1.4rem;
	background: #fff;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--fsc-radius);
	box-shadow: var(--fsc-shadow);
	transition: transform 0.3s var(--fsc-ease), box-shadow 0.3s var(--fsc-ease), border-color 0.3s;
}

.fsc-linkcard--red { --tone: var(--wp--preset--color--red); --tone-bg: #fdecea; }
.fsc-linkcard--ink { --tone: var(--wp--preset--color--ink); --tone-bg: #eceae6; }
.fsc-linkcard--green { --tone: #2f7d4f; --tone-bg: #e7f3ec; }

.fsc-linkcard:hover {
	transform: translateY(-3px);
	box-shadow: var(--fsc-shadow-lg);
	border-color: var(--tone);
}

/* Three-up rows: stack the tile above the text */
.fsc-linkgrid--3 .fsc-linkcard {
	flex-direction: column;
	gap: 0.9rem;
}

.fsc-linkgrid--3 .fsc-linkcard__tile {
	flex-basis: auto;
	width: 52px;
	height: 52px;
	font-size: 1rem;
}

@media (max-width: 781px) {
	.fsc-linkgrid--3 .fsc-linkcard {
		flex-direction: row;
	}
}

.fsc-linkcard__tile {
	flex: 0 0 60px;
	height: 60px;
	margin: 0 !important;
	display: grid;
	place-items: center;
	border-radius: 16px;
	background: var(--tone-bg);
	color: var(--tone);
	font-family: var(--wp--preset--font-family--display);
	font-weight: 800;
	font-size: 1.15rem;
	letter-spacing: 0.04em;
	transition: background-color 0.3s, color 0.3s;
}

.fsc-linkcard:hover .fsc-linkcard__tile {
	background: var(--tone);
	color: #fff;
}

/* Card children sit side by side; drop the flow layout's block gap */
.fsc-linkcard > * {
	margin: 0 !important;
}

.fsc-linkcard__body {
	flex: 1;
	min-width: 0;
	padding-top: 0.15rem;
}

.fsc-linkcard__body > * {
	margin: 0 !important;
}

.fsc-content h3.fsc-linkcard__name {
	font-size: 1.45rem;
	line-height: 1.15;
	padding-right: 1.75rem;
}

.fsc-linkcard__name a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

/* Whole card is the link target */
.fsc-linkcard__name a::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

/* External-link arrow, top right */
.fsc-linkcard::after {
	content: "↗";
	position: absolute;
	top: 1.1rem;
	right: 1.25rem;
	font-weight: 700;
	color: var(--tone);
	transition: transform 0.3s var(--fsc-ease);
}

.fsc-linkcard:hover::after {
	transform: translate(3px, -3px);
}

.fsc-linkcard__desc {
	margin-top: 0.4rem !important;
	font-size: 1rem;
	line-height: 1.55;
	color: var(--wp--preset--color--ink-soft);
}

.fsc-linkcard__domain {
	margin-top: 0.75rem !important;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--tone);
}

.fsc-links-note {
	margin-top: var(--wp--preset--spacing--60) !important;
	padding-top: 1.25rem;
	border-top: 1px solid var(--wp--preset--color--line);
}

.fsc-muted {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

/* Legal (Impressum) -------------------------------------------------------- */


.fsc-legal {
	margin-top: var(--wp--preset--spacing--60) !important;
}

.fsc-legal-grid > .is-style-card h2.wp-block-heading {
	hyphens: auto;
	overflow-wrap: anywhere;
	font-size: 0.95rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding-top: 0;
	color: var(--wp--preset--color--red);
}

.fsc-legal-grid > .is-style-card h2.wp-block-heading::before {
	display: none;
}

.fsc-legal h3.wp-block-heading {
	font-size: 1.35rem;
	margin-top: 2rem;
}

.fsc-legal p {
	color: var(--wp--preset--color--ink-soft);
}

/* Kontakt ------------------------------------------------------------------ */

.fsc-contact-card {
	background: var(--wp--preset--color--ink) !important;
	color: #fff;
	border-color: var(--wp--preset--color--ink) !important;
}

.fsc-contact-card .fsc-contact-list a,
.fsc-contact-card .fsc-contact-list li {
	color: #fff;
}

.fsc-contact-card .fsc-contact-list li::before {
	background-color: rgb(255 255 255 / 0.1);
	filter: brightness(1.8) saturate(0.6);
}

.fsc-contact-card .fsc-eyebrow {
	color: #ff8a80;
}

.fsc-contact-card .fsc-person__name {
	font-family: var(--wp--preset--font-family--display);
	font-size: 2rem;
	font-weight: 700;
	line-height: 1;
	color: #fff;
}

.fsc-single img {
	max-height: 560px;
	width: auto;
	max-width: 100%;
}

h1, h2, h3, h4 {
	text-wrap: balance;
}

/* Utilities ---------------------------------------------------------------- */

.fsc-quote-card {
	background: #fff;
	border-radius: var(--fsc-radius);
	border: 1px solid var(--wp--preset--color--line);
	padding: 1.25rem 1.5rem !important;
	display: grid;
	gap: 0.25rem;
}

.fsc-quote-card > * {
	margin: 0 !important;
}

.fsc-quote-card .fsc-quote-card__q {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	font-size: 1.5rem;
}

.fsc-feature-image img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: var(--fsc-radius);
}

.fsc-feature-image figcaption {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	font-size: 1.6rem;
	color: var(--wp--preset--color--ink);
	text-align: center;
}

/* Editor tweaks: keep the sticky header from covering canvas content */
.editor-styles-wrapper .fsc-header {
	position: relative;
	top: 0;
}

/* Termine ------------------------------------------------------------------- */

.fsc-termine {
	display: grid;
	gap: 1rem;
}

.fsc-termin {
	display: grid;
	grid-template-columns: 4.75rem 1fr;
	gap: clamp(1rem, 3vw, 1.5rem);
	align-items: start;
	margin: 0 !important;
}

.fsc-termin > * + * {
	margin-block-start: 0 !important;
}

.fsc-termin__date {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 0.6rem 0 0.5rem;
	border-radius: var(--fsc-radius-sm);
	background: var(--wp--preset--color--red);
	color: #fff;
	font-family: var(--wp--preset--font-family--display);
	line-height: 1;
	text-transform: uppercase;
}

.fsc-termin__day {
	font-size: 2.1rem;
	font-weight: 800;
}

.fsc-termin__month {
	margin-top: 0.2rem;
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.06em;
}

.fsc-termin__body > * {
	margin: 0;
}

.fsc-termin__body > * + * {
	margin-block-start: 0.5rem;
}

.fsc-content .fsc-termin h3.wp-block-heading {
	margin: 0;
}

.fsc-termin__meta {
	color: var(--wp--preset--color--muted);
	font-weight: 600;
}

/* Gallery teaser without a picture (home) ----------------------------------- */

.fsc-teaser--noimg {
	aspect-ratio: 4 / 3.4;
	background: linear-gradient(150deg, var(--wp--preset--color--sky) 0%, var(--wp--preset--color--ink) 100%);
}

/* Without an image the text area fills the card, so the whole card stays clickable. */
.fsc-teaser--noimg .fsc-teaser__body {
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}

/* ==========================================================================
   Type scale for inner pages – the single source of truth for text sizes in
   page content, cards and sidebar. Five steps, all from theme.json presets:

     label   0.8125rem  eyebrows / tags (uppercase, spaced)
     small   preset small    secondary text: captions, meta, notes
     body    preset medium   all running text, lists, contact rows
     lead    preset large    the intro paragraph(s) at the top of a page
     h3      preset large    titles of cards, entries and sub-sections
     h2      preset x-large  section headings

   Emphasis inside running text is weight, never size, so a text reads evenly.
   (!important beats WordPress' own has-*-font-size utility classes.)
   ========================================================================== */

:root {
	--fsc-text-label: 0.8125rem;
	--fsc-text-small: var(--wp--preset--font-size--small);
	--fsc-text-body: var(--wp--preset--font-size--medium);
	--fsc-text-lead: var(--wp--preset--font-size--large);
	--fsc-text-h3: var(--wp--preset--font-size--large);
	--fsc-text-h2: var(--wp--preset--font-size--x-large);
}

/* Body: every paragraph and list item in the content and sidebar. */
:is(.fsc-content, .fsc-sidebar) :is(p, li) {
	font-size: var(--fsc-text-body) !important;
	line-height: 1.65;
}

/* Lead: only intro paragraphs at the very top of a page (the first ones in a row). */
:is(.fsc-page-body__main, .fsc-content .wp-block-post-content, .fsc-content .wp-block-column) > :is(.fsc-lead:first-child, .fsc-lead:first-child + .fsc-lead) {
	font-size: var(--fsc-text-lead) !important;
	line-height: 1.5;
	color: var(--wp--preset--color--ink-soft);
}

/* Former "big" paragraphs and leads further down: emphasis by weight, same size. */
.fsc-content :is(p.has-large-font-size, p.fsc-lead) {
	font-weight: 600;
	color: var(--wp--preset--color--ink);
}

:is(.fsc-page-body__main, .fsc-content .wp-block-post-content, .fsc-content .wp-block-column) > :is(.fsc-lead:first-child, .fsc-lead:first-child + .fsc-lead) {
	font-weight: 400;
}

/* Headings. */
.fsc-content h2.wp-block-heading,
.fsc-content h2.fsc-links-title {
	font-size: var(--fsc-text-h2) !important;
	line-height: 1.1;
}

.fsc-content h3.wp-block-heading,
.fsc-content h3.fsc-linkcard__name,
.fsc-person .fsc-person__name,
.fsc-contact-card .fsc-person__name,
.fsc-sidebar .fsc-contact-card .fsc-person__name {
	font-size: var(--fsc-text-h3) !important;
	line-height: 1.15;
}

/* Secondary text. */
:is(.fsc-content, .fsc-sidebar) :is(
	.fsc-muted,
	.fsc-person__meta,
	.fsc-person__contact,
	.fsc-linkcard__desc,
	.fsc-termin__meta,
	.fsc-nextdate small,
	figcaption,
	.wp-element-caption
) {
	font-size: var(--fsc-text-small) !important;
	line-height: 1.5;
}

/* Labels. */
:is(.fsc-content, .fsc-sidebar, .fsc-page-hero) :is(.fsc-eyebrow, .fsc-newsbar__label, .fsc-person__tag, .fsc-linkcard__domain) {
	font-size: var(--fsc-text-label) !important;
	line-height: 1.4;
}

/* Small UI rows keep body size but a tighter line height. */
:is(.fsc-content, .fsc-sidebar) :is(.fsc-contact-list li, .fsc-toc li, .fsc-newsbar__text, .fsc-newsbar__link) {
	line-height: 1.4;
}

/* The single overlay caption of the gallery's feature photo stays a display line. */
.fsc-content .fsc-feature-image figcaption {
	font-size: var(--fsc-text-h3) !important;
	line-height: 1.2;
}
