/*
Theme Name: Fit 4 Democracy
Theme URI: https://fit4democracy.eu/
Description: Custom block child theme for Fit 4 Democracy based on Twenty Twenty-Five.
Author: ILEU e.V.
Template: twentytwentyfive
Version: 3.1.7
Text Domain: fit4democracy
*/


/* ==============================================================
   DESIGN TOKENS
============================================================== */

:root {
	--fit4d-primary: #203A8A;
	--fit4d-secondary: #8A2040;
	--fit4d-accent: #FFC028;

	--fit4d-light: #BACBFF;
	--fit4d-soft: #E8EEFF;
	--fit4d-surface: #F7F6F2;

	--fit4d-text: #313131;
	--fit4d-muted: #656565;
	--fit4d-white: #FFFFFF;

	--fit4d-wide: 1400px;
	--fit4d-content: 820px;

	--fit4d-page-gutter: 24px;

	--fit4d-radius-panel: 16px;
	--fit4d-radius-card: 14px;
	--fit4d-radius-image: 10px;
	--fit4d-radius-button: 6px;

	--fit4d-section-space: 96px;
	--fit4d-section-space-compact: 64px;

	--fit4d-grid-gap: 24px;

	--fit4d-shadow-soft:
		0 14px 36px rgba(32,58,138,.10);
}


/* ==============================================================
   BASE
============================================================== */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: var(--wp--preset--font-family--body);
	color: var(--fit4d-text);
}

img {
	max-width: 100%;
}

figure {
	max-width: 100%;
}

a {
	text-underline-offset: .18em;
	text-decoration-thickness: 1px;
}

p,
li {
	line-height: 1.65;
}


/* ==============================================================
   WORDPRESS ROOT
============================================================== */

.wp-site-blocks {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

.wp-site-blocks > * {
	margin-block-start: 0;
}

.wp-block-post-content {
	margin-top: 0 !important;
}


/* ==============================================================
   GLOBAL WIDTH
============================================================== */

.fit4d-site-header,
.fit4d-site-footer,
.wp-block-post-content > .fit4d-section,
.wp-block-post-content > .fit4d-panel,
.wp-block-post-content > .fit4d-hero,
.wp-block-post-content > .fit4d-cta {
	width: calc(100% - (2 * var(--fit4d-page-gutter)));
	max-width: var(--fit4d-wide);
	margin-left: auto !important;
	margin-right: auto !important;
}

.wp-block-post-content > .alignwide {
	max-width: var(--fit4d-wide);
}

.fit4d-content-width {
	max-width: var(--fit4d-content);
}

.fit4d-wide-width {
	max-width: var(--fit4d-wide);
}


/* ==============================================================
   TYPOGRAPHY
============================================================== */

h1,
h3,
h4,
h5,
h6 {
	font-family: var(--wp--preset--font-family--primary);
}

h1 {
	font-size: clamp(2.7rem, 5vw, 4.35rem);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: -.035em;
	color: var(--fit4d-primary);
}

h2 {
	font-family: var(--wp--preset--font-family--secondary);
	font-size: clamp(2rem, 3.3vw, 3rem);
	font-weight: 400;
	line-height: 1.13;
	letter-spacing: -.015em;
	color: var(--fit4d-primary);
}

h3 {
	font-size: clamp(1.15rem, 1.8vw, 1.4rem);
	font-weight: 700;
	line-height: 1.2;
	color: var(--fit4d-primary);
}

h4 {
	font-weight: 700;
	line-height: 1.3;
	color: var(--fit4d-primary);
}

.fit4d-lead {
	font-size: var(--wp--preset--font-size--large, 1.35rem);
	line-height: 1.5;
}

.fit4d-muted {
	color: var(--fit4d-muted);
}


/* ==============================================================
   EYEBROWS
============================================================== */

.fit4d-eyebrow {
	margin-top: 0;
	margin-bottom: 14px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: .75rem !important;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.fit4d-eyebrow--blue {
	color: var(--fit4d-primary);
}

.fit4d-eyebrow--burgundy {
	color: var(--fit4d-secondary);
}

.fit4d-eyebrow--white {
	color: var(--fit4d-white) !important;
}


/* ==============================================================
   BUTTONS
============================================================== */

.wp-block-button__link,
.wp-element-button {
	font-family: var(--wp--preset--font-family--primary) !important;
	font-size: .95rem !important;
	font-weight: 700 !important;
	line-height: 1.2;

	padding: .85rem 1.3rem;

	background: var(--fit4d-primary);
	color: var(--fit4d-white) !important;

	border: 2px solid var(--fit4d-primary);
	border-radius: var(--fit4d-radius-button);

	text-decoration: none !important;

	transition:
		background-color .18s ease,
		border-color .18s ease,
		color .18s ease,
		transform .18s ease;
}

.wp-block-button__link:hover,
.wp-block-button__link:focus-visible,
.wp-element-button:hover,
.wp-element-button:focus-visible {
	background: var(--fit4d-secondary) !important;
	border-color: var(--fit4d-secondary) !important;
	color: var(--fit4d-white) !important;
	transform: translateY(-2px);
	text-decoration: none !important;
}

.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent !important;
	color: var(--fit4d-primary) !important;
	border-color: var(--fit4d-primary) !important;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-block-button.is-style-outline .wp-block-button__link:focus-visible {
	background: var(--fit4d-primary) !important;
	color: var(--fit4d-white) !important;
}

.fit4d-panel--blue .has-white-background-color.wp-block-button__link,
.fit4d-card--blue .has-white-background-color.wp-block-button__link,
.fit4d-cta--blue .has-white-background-color.wp-block-button__link,
.fit4d-hero--blue .has-white-background-color.wp-block-button__link {
	background: var(--fit4d-white) !important;
	border-color: var(--fit4d-white) !important;
	color: var(--fit4d-primary) !important;
}

.fit4d-panel--blue .has-white-background-color.wp-block-button__link:hover,
.fit4d-card--blue .has-white-background-color.wp-block-button__link:hover,
.fit4d-cta--blue .has-white-background-color.wp-block-button__link:hover,
.fit4d-hero--blue .has-white-background-color.wp-block-button__link:hover {
	background: var(--fit4d-accent) !important;
	border-color: var(--fit4d-accent) !important;
	color: var(--fit4d-primary) !important;
}


/* ==============================================================
   ACCESSIBILITY
============================================================== */

:where(
	a,
	button,
	input,
	select,
	textarea,
	.wp-element-button
):focus-visible {
	outline: 3px solid var(--fit4d-accent);
	outline-offset: 3px;
}

summary:focus {
	outline: none;
}

summary:focus-visible {
	outline: 3px solid var(--fit4d-accent);
	outline-offset: 4px;
}


/* ==============================================================
   SECTIONS
============================================================== */

.fit4d-section {
	margin-top: var(--fit4d-section-space) !important;
	margin-bottom: 0 !important;
}

.fit4d-section--compact {
	margin-top: var(--fit4d-section-space-compact) !important;
}

.fit4d-section--flush {
	margin-top: 0 !important;
}


/* ==============================================================
   SECTION INTRO
============================================================== */

.fit4d-section-intro {
	max-width: 760px;
}

.fit4d-section-intro--center {
	margin-left: auto !important;
	margin-right: auto !important;
	text-align: center;
}

.fit4d-section-intro > * {
	max-width: none !important;
}

.fit4d-section-intro > *:first-child {
	margin-top: 0;
}

.fit4d-section-intro > *:last-child {
	margin-bottom: 0;
}


/* ==============================================================
   STACK
============================================================== */

.fit4d-stack {
	display: flex !important;
	flex-direction: column;
	gap: 24px;
}

.fit4d-stack > * {
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
}

.fit4d-stack--small {
	gap: 14px;
}

.fit4d-stack--tight {
	gap: 18px;
}

.fit4d-stack--large {
	gap: 36px;
}


/* ==============================================================
   SPLIT LAYOUT
============================================================== */

.fit4d-split {
	display: flex !important;
	align-items: center !important;
	gap: clamp(36px,5vw,64px) !important;
}

.fit4d-split--top {
	align-items: flex-start !important;
}

.fit4d-split > .wp-block-column {
	min-width: 0;
}


/* ==============================================================
   EQUAL COLUMNS
============================================================== */

.fit4d-columns-equal,
.fit4d-equal-columns {
	align-items: stretch !important;
}

.fit4d-columns-equal > .wp-block-column,
.fit4d-equal-columns > .wp-block-column {
	display: flex;
	min-width: 0;
}

.fit4d-columns-equal > .wp-block-column > *,
.fit4d-equal-columns > .wp-block-column > * {
	width: 100%;
}


/* ==============================================================
   PANELS / CTA
============================================================== */

.fit4d-panel,
.fit4d-cta {
	padding: clamp(36px,5vw,64px);
	border-radius: var(--fit4d-radius-panel);
}

.fit4d-panel--blue,
.fit4d-cta--blue {
	background: var(--fit4d-primary);
	color: var(--fit4d-white);
}

.fit4d-panel--light,
.fit4d-cta--light {
	background: var(--fit4d-light);
	color: var(--fit4d-text);
}

.fit4d-panel--soft,
.fit4d-cta--soft {
	background: var(--fit4d-soft);
	color: var(--fit4d-text);
}

.fit4d-panel--surface,
.fit4d-cta--surface {
	background: var(--fit4d-surface);
	color: var(--fit4d-text);
}

.fit4d-panel--white,
.fit4d-cta--white {
	background: var(--fit4d-white);
	color: var(--fit4d-text);
}

.fit4d-panel--blue,
.fit4d-panel--blue p,
.fit4d-panel--blue li,
.fit4d-cta--blue,
.fit4d-cta--blue p,
.fit4d-cta--blue li {
	color: var(--fit4d-white) !important;
}

.fit4d-panel--blue h1,
.fit4d-panel--blue h2,
.fit4d-panel--blue h3,
.fit4d-panel--blue h4,
.fit4d-cta--blue h1,
.fit4d-cta--blue h2,
.fit4d-cta--blue h3,
.fit4d-cta--blue h4 {
	color: var(--fit4d-white) !important;
}

.fit4d-panel--blue a:not(.wp-block-button__link),
.fit4d-cta--blue a:not(.wp-block-button__link) {
	color: var(--fit4d-white);
}


/* ==============================================================
   HERO
============================================================== */

.fit4d-hero {
	padding: clamp(36px,5vw,64px);
	border-radius: var(--fit4d-radius-panel);
}

.fit4d-hero--light {
	background: var(--fit4d-light);
	color: var(--fit4d-text);
}

.fit4d-hero--soft {
	background: var(--fit4d-soft);
	color: var(--fit4d-text);
}

.fit4d-hero--surface {
	background: var(--fit4d-surface);
	color: var(--fit4d-text);
}

.fit4d-hero--blue {
	background: var(--fit4d-primary);
	color: var(--fit4d-white);
}

.fit4d-hero--blue h1,
.fit4d-hero--blue h2,
.fit4d-hero--blue h3,
.fit4d-hero--blue p {
	color: var(--fit4d-white);
}

.fit4d-hero__copy > *,
.fit4d-hero__media > * {
	max-width: none !important;
}

.fit4d-hero__copy > *:first-child,
.fit4d-hero__media > *:first-child {
	margin-top: 0;
}

.fit4d-hero__copy > *:last-child,
.fit4d-hero__media > *:last-child {
	margin-bottom: 0;
}

.fit4d-hero__media figure {
	margin: 0 !important;
}

.fit4d-hero--stacked {
	padding-top: 32px;
	padding-bottom: 52px;
}

.fit4d-hero--stacked h1 {
	max-width: 940px;
	margin-top: 22px;
	margin-bottom: 6px;
}

.fit4d-hero__subtitle,
.fit4d-hero-subtitle {
	margin-top: 0 !important;
	margin-bottom: 22px;
	color: var(--fit4d-primary);
}


/* ==============================================================
   MEDIA
   Generic media system used across all pages.
   --wide / --editorial / --square / --portrait = cropped images
   --contain = logos, screenshots and graphics shown completely
============================================================== */

.fit4d-media {
	display: block;
	width: 100%;
	max-width: none !important;
	margin: 0 !important;
	overflow: hidden;
}

.fit4d-media > a {
	display: block;
	width: 100%;
	height: 100%;
}

.fit4d-media img {
	display: block;
	width: 100% !important;
	max-width: none !important;
	height: auto;
	object-fit: cover;
}

.fit4d-media--wide img {
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.fit4d-media--editorial img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.fit4d-media--square img {
	aspect-ratio: 1;
	object-fit: cover;
}

.fit4d-media--portrait img {
	aspect-ratio: 3 / 4;
	object-fit: cover;
}

/* Logos, graphics and artwork that must remain completely visible. */
.fit4d-media--contain {
	display: grid;
	place-items: center;
	width: 100%;
	aspect-ratio: 16 / 9;
	padding: clamp(18px,3vw,30px);
	background: var(--fit4d-white);
}

.fit4d-media--contain > a {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
}

.fit4d-media--contain img {
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	max-height: 100% !important;
	aspect-ratio: auto !important;
	object-fit: contain !important;
}

.fit4d-media--rounded,
.fit4d-media--rounded > a,
.fit4d-media--rounded img {
	border-radius: var(--fit4d-radius-image);
}

.fit4d-media--top-rounded,
.fit4d-media--top-rounded > a,
.fit4d-media--top-rounded img {
	border-radius:
		var(--fit4d-radius-card)
		var(--fit4d-radius-card)
		0
		0;
}


/* ==============================================================
   CARD GRID
============================================================== */

.fit4d-card-grid {
	display: grid !important;
	gap: var(--fit4d-grid-gap) !important;
	align-items: stretch;
}

.fit4d-card-grid--2 {
	grid-template-columns:
		repeat(2,minmax(0,1fr));
}

.fit4d-card-grid--2-asymmetric {
	grid-template-columns:
		minmax(0,1.6fr)
		minmax(0,1fr);
}

.fit4d-card-grid--feature {
	grid-template-columns:
		minmax(0,1.65fr)
		minmax(0,1fr);
}

.fit4d-card-grid--3 {
	grid-template-columns:
		repeat(3,minmax(0,1fr));
}

.fit4d-card-grid--4 {
	grid-template-columns:
		repeat(4,minmax(0,1fr));
}

.fit4d-card-grid > * {
	margin: 0 !important;
}

.fit4d-card-grid--top {
	align-items: start !important;
}

.fit4d-card-grid--top > .fit4d-card {
	height: auto;
}


/* ==============================================================
   CARDS
============================================================== */

.fit4d-card {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
	overflow: hidden;
	border-radius: var(--fit4d-radius-card);
}

.fit4d-card--blue {
	background: var(--fit4d-primary);
	color: var(--fit4d-white);
}

.fit4d-card--light {
	background: var(--fit4d-light);
	color: var(--fit4d-text);
}

.fit4d-card--soft {
	background: var(--fit4d-soft);
	color: var(--fit4d-text);
}

.fit4d-card--surface {
	background: var(--fit4d-surface);
	color: var(--fit4d-text);
}

.fit4d-card--white {
	background: var(--fit4d-white);
	color: var(--fit4d-text);
	border: 1px solid rgba(32,58,138,.10);
}

.fit4d-card--blue,
.fit4d-card--blue p,
.fit4d-card--blue li {
	color: var(--fit4d-white);
}

.fit4d-card--blue h2,
.fit4d-card--blue h3,
.fit4d-card--blue h4 {
	color: var(--fit4d-white);
}

.fit4d-card--blue a:not(.wp-block-button__link) {
	color: var(--fit4d-white);
}


/* ==============================================================
   CARD CONTENT
============================================================== */

.fit4d-card-content,
.fit4d-card__content {
	display: flex !important;
	flex: 1 1 auto;
	flex-direction: column;
	align-items: stretch;
	width: 100%;
	padding: 36px 38px 40px;
}

.fit4d-card-content > *,
.fit4d-card__content > * {
	width: 100%;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.fit4d-card-content > *:first-child,
.fit4d-card__content > *:first-child {
	margin-top: 0;
}

.fit4d-card-content > *:last-child,
.fit4d-card__content > *:last-child {
	margin-bottom: 0;
}

.fit4d-card-content > .fit4d-arrow-link:last-child,
.fit4d-card__content > .fit4d-arrow-link:last-child {
	margin-top: auto !important;
	padding-top: 24px;
}


/* ==============================================================
   CHIPS
============================================================== */

.fit4d-chip-row {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 22px;
}

.fit4d-chip {
	display: inline-flex;
	align-items: center;
	width: fit-content !important;
	margin: 0 !important;
	padding: 7px 11px;
	border-radius: 999px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: .7rem !important;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.fit4d-chip--blue {
	background: var(--fit4d-primary);
	color: var(--fit4d-white);
}

.fit4d-chip--yellow {
	background: var(--fit4d-accent);
	color: var(--fit4d-primary);
}

.fit4d-chip--burgundy {
	background: var(--fit4d-secondary);
	color: var(--fit4d-white);
}

.fit4d-chip--white {
	background: rgba(255,255,255,.68);
	color: var(--fit4d-primary);
}

.fit4d-chip--outline {
	border: 1px solid rgba(255,255,255,.68);
	color: var(--fit4d-white);
}


/* ==============================================================
   META
============================================================== */

.fit4d-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 28px;
	margin-top: 28px;
	padding-top: 20px;
	border-top: 1px solid rgba(32,58,138,.18);
}

.fit4d-meta p {
	width: auto !important;
	margin: 0 !important;
}

.fit4d-meta--light {
	border-top-color: rgba(255,255,255,.28);
}


/* ==============================================================
   TEXT CTA
============================================================== */

.fit4d-arrow-link {
	margin-top: 28px;
}

.fit4d-arrow-link a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding-bottom: 3px;
	font-family: var(--wp--preset--font-family--primary);
	font-size: .92rem;
	font-weight: 700;
	color: var(--fit4d-primary);
	border-bottom: 2px solid rgba(32,58,138,.28);
	text-decoration: none !important;
	transition:
		color .18s ease,
		border-color .18s ease,
		gap .18s ease;
}

.fit4d-arrow-link a:hover,
.fit4d-arrow-link a:focus-visible {
	gap: 12px;
	color: var(--fit4d-secondary);
	border-bottom-color: var(--fit4d-secondary);
	text-decoration: none !important;
}

.fit4d-card--blue .fit4d-arrow-link a,
.fit4d-panel--blue .fit4d-arrow-link a,
.fit4d-cta--blue .fit4d-arrow-link a {
	color: var(--fit4d-white);
	border-bottom-color: rgba(255,255,255,.4);
}

.fit4d-card--blue .fit4d-arrow-link a:hover,
.fit4d-panel--blue .fit4d-arrow-link a:hover,
.fit4d-cta--blue .fit4d-arrow-link a:hover {
	color: var(--fit4d-accent);
	border-bottom-color: var(--fit4d-accent);
}


/* ==============================================================
   STAT GRID
============================================================== */

.fit4d-stat-grid {
	display: grid !important;
	gap: 12px !important;
	margin-top: 38px !important;
}

.fit4d-stat-grid--2 {
	grid-template-columns: repeat(2,minmax(0,1fr));
}

.fit4d-stat-grid--3 {
	grid-template-columns: repeat(3,minmax(0,1fr));
}

.fit4d-stat-grid--4 {
	grid-template-columns: repeat(4,minmax(0,1fr));
}

.fit4d-stat-grid > * {
	margin: 0 !important;
}

.fit4d-stat-card {
	margin: 0 !important;
	padding: 17px 18px;
	background: rgba(255,255,255,.42);
	border: 1px solid rgba(255,255,255,.55);
	border-radius: 12px;
	font-size: .9rem;
	line-height: 1.45;
}

.fit4d-stat-card strong {
	font-family: var(--wp--preset--font-family--primary);
	color: var(--fit4d-primary);
}

.fit4d-stat-card--white {
	background: var(--fit4d-white);
	border-color: rgba(32,58,138,.10);
}

.fit4d-stat-card--soft {
	background: var(--fit4d-soft);
	border-color: transparent;
}


/* ==============================================================
   STEPS
============================================================== */

.fit4d-step-grid {
	display: grid !important;
	grid-template-columns: repeat(3,minmax(0,1fr));
	gap: 20px !important;
	margin-top: 40px !important;
}

.fit4d-step-grid > * {
	margin: 0 !important;
}

.fit4d-step-card {
	height: 100%;
	margin: 0 !important;
	padding: 32px;
	background: var(--fit4d-surface);
	border-radius: var(--fit4d-radius-card);
}

.fit4d-step-card h3 {
	margin-top: 24px;
}

.fit4d-step-number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 48px;
	height: 32px;
	margin: 0 !important;
	padding: 0 12px;
	background: var(--fit4d-accent);
	color: var(--fit4d-primary);
	border-radius: 999px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: .72rem;
	font-weight: 600;
}


/* ==============================================================
   ICON GRID
============================================================== */

.fit4d-icon-grid {
	display: grid !important;
	grid-template-columns: repeat(2,minmax(0,1fr));
	grid-auto-rows: 1fr;
	gap: 16px !important;
	margin-top: 28px !important;
	margin-bottom: 28px !important;
}

.fit4d-icon-grid--3 {
	grid-template-columns: repeat(3,minmax(0,1fr));
}

.fit4d-icon-grid--4 {
	grid-template-columns: repeat(4,minmax(0,1fr));
}

.fit4d-icon-grid > * {
	margin: 0 !important;
}

.fit4d-icon-card,
.fit4d-icon-box {
	display: grid !important;
	grid-template-columns: 44px minmax(0,1fr);
	align-items: center;
	gap: 16px;
	width: 100%;
	height: 100%;
	min-height: 112px;
	margin: 0 !important;
	padding: 18px 20px;
	background: var(--fit4d-surface);
	border-radius: 12px;
}

.fit4d-icon-card > *,
.fit4d-icon-box > * {
	margin: 0 !important;
}

.fit4d-icon-bubble,
.fit4d-icon-box .fit4d-icon {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	margin: 0 !important;
	background: var(--fit4d-soft);
	color: var(--fit4d-secondary);
	border-radius: 999px;
	font-size: 1.1rem;
	font-weight: 700;
}

.fit4d-icon-card p:not(.fit4d-icon-bubble),
.fit4d-icon-box p:not(.fit4d-icon) {
	margin: 0 !important;
	font-family: var(--wp--preset--font-family--primary);
	font-size: .9rem;
	font-weight: 600;
	line-height: 1.3;
}


/* ==============================================================
   ACTION GRID
============================================================== */

.fit4d-action-grid,
.fit4d-connect-grid {
	display: grid !important;
	grid-template-columns: repeat(3,minmax(0,1fr));
	gap: 20px !important;
	margin-top: 38px !important;
}

.fit4d-action-grid--2 {
	grid-template-columns: repeat(2,minmax(0,1fr));
}

.fit4d-action-grid--4 {
	grid-template-columns: repeat(4,minmax(0,1fr));
}

.fit4d-action-grid > *,
.fit4d-connect-grid > * {
	margin: 0 !important;
}

.fit4d-action-card,
.fit4d-connect-card {
	display: flex !important;
	flex-direction: column;
	min-width: 0;
	height: 100%;
	padding: 28px;
	background: rgba(255,255,255,.34);
	border: 1px solid rgba(255,255,255,.35);
	border-radius: var(--fit4d-radius-card);
}

.fit4d-action-card > *,
.fit4d-connect-card > * {
	max-width: none !important;
}

.fit4d-action-card h3,
.fit4d-connect-card h3 {
	margin-top: 0;
	margin-bottom: 12px;
}

.fit4d-action-card .fit4d-arrow-link,
.fit4d-connect-card .fit4d-arrow-link {
	margin-top: auto;
	padding-top: 22px;
}

.fit4d-action-icon,
.fit4d-connect-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	margin: 0 0 24px !important;
	background: var(--fit4d-white);
	color: var(--fit4d-secondary);
	border-radius: 999px;
	font-size: 1.55rem;
	font-weight: 700;
	box-shadow: 0 8px 24px rgba(32,58,138,.08);
}

.fit4d-action-grid--center .fit4d-action-card,
.fit4d-action-grid--center .fit4d-connect-card {
	align-items: center;
	text-align: center;
}

.fit4d-action-grid--center .fit4d-action-icon,
.fit4d-action-grid--center .fit4d-connect-icon {
	margin-left: auto !important;
	margin-right: auto !important;
}

.fit4d-action-grid--center .fit4d-arrow-link {
	margin-left: auto !important;
	margin-right: auto !important;
}


/* ==============================================================
   LOGO GRID / CAROUSEL
============================================================== */

.fit4d-logo-track,
.fit4d-supporters-track {
	display: grid !important;
	grid-template-columns: repeat(4,minmax(0,1fr));
	gap: 20px !important;
	margin-top: 34px !important;
}

.fit4d-logo-track > *,
.fit4d-supporters-track > * {
	margin: 0 !important;
}

.fit4d-logo-card,
.fit4d-supporter-slide {
	display: flex !important;
	align-items: center;
	justify-content: center;
	min-height: 150px;
	padding: 24px;
	background: var(--fit4d-white);
	border: 1px solid rgba(32,58,138,.10);
	border-radius: var(--fit4d-radius-card);
}

.fit4d-logo-card figure,
.fit4d-supporter-slide figure {
	margin: 0 !important;
}

.fit4d-logo-card img,
.fit4d-supporter-slide img {
	display: block;
	width: auto;
	height: auto !important;
	max-width: 190px;
	max-height: 90px;
	object-fit: contain;
}


/* ==============================================================
   QUOTE
============================================================== */

.fit4d-quote-card {
	margin-top: 30px !important;
	margin-bottom: 0 !important;
	padding: 22px 26px;
	background: var(--fit4d-surface);
	border-left: 5px solid var(--fit4d-secondary);
	border-radius: 0 12px 12px 0;
}

.fit4d-quote-card p {
	margin: 0;
	font-family: var(--wp--preset--font-family--secondary);
	font-size: 1.35rem;
	line-height: 1.4;
	color: var(--fit4d-primary);
}


/* ==============================================================
   PEOPLE CTA
============================================================== */

.fit4d-people-cta {
	overflow: hidden;
}

.fit4d-people-layout,
.fit4d-people-layout > *,
.fit4d-people-copy,
.fit4d-people-copy > *,
.fit4d-people-visual,
.fit4d-people-visual > *,
.fit4d-people-cloud,
.fit4d-people-cloud > * {
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
}

.fit4d-people-layout {
	gap: 64px !important;
	align-items: center !important;
}

.fit4d-people-copy {
	display: flex !important;
	flex-direction: column;
	gap: 18px;
	width: 100%;
}

.fit4d-people-copy > * {
	width: 100%;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.fit4d-people-copy .fit4d-eyebrow {
	margin-bottom: 2px !important;
}

.fit4d-people-copy h2 {
	margin: 0 !important;
	color: var(--fit4d-white) !important;
}

.fit4d-people-copy p:not(.fit4d-eyebrow) {
	margin: 0 !important;
}

.fit4d-people-copy .wp-block-buttons {
	margin-top: 10px !important;
	justify-content: flex-start !important;
}

.fit4d-people-visual {
	display: flex !important;
	flex-direction: column;
	gap: 28px;
}

.fit4d-people-statement {
	max-width: 580px;
	margin: 0 !important;
	color: var(--fit4d-white) !important;
}


/* ==============================================================
   PEOPLE CLOUD
============================================================== */

.fit4d-people-cloud {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 14px 16px;
	max-width: 560px;
	margin: 0 auto !important;
}

.fit4d-person,
.fit4d-person:nth-child(n) {
	position: relative;
	flex: 0 0 auto;
	width: 92px;
	height: 92px;
	margin: 0 !important;
	overflow: hidden;
	border: 4px solid var(--fit4d-light);
	border-radius: 999px;
	transform: none !important;
}

.fit4d-person:nth-child(1) {
	width: 104px;
	height: 104px;
	transform: translateY(10px) !important;
}

.fit4d-person:nth-child(2) {
	width: 86px;
	height: 86px;
	transform: translateY(-7px) !important;
}

.fit4d-person:nth-child(3) {
	width: 112px;
	height: 112px;
	transform: translateY(5px) !important;
}

.fit4d-person:nth-child(4) {
	width: 88px;
	height: 88px;
	transform: translateY(-10px) !important;
}

.fit4d-person:nth-child(5) {
	width: 96px;
	height: 96px;
	transform: translateY(-5px) !important;
}

.fit4d-person:nth-child(6) {
	width: 106px;
	height: 106px;
	transform: translateY(10px) !important;
}

.fit4d-person:nth-child(7) {
	width: 84px;
	height: 84px;
	transform: translateY(-4px) !important;
}

.fit4d-person img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	border: 0 !important;
	border-radius: 999px !important;
}


/* ==============================================================
   VIDEO GRID
============================================================== */

.fit4d-video-grid {
	display: grid !important;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 24px !important;
	margin-top: 42px !important;
}

.fit4d-video-grid > * {
	margin: 0 !important;
}

.fit4d-video-card {
	margin: 0 !important;
	padding: 20px;
	background: var(--fit4d-surface);
	border-radius: var(--fit4d-radius-card);
}

.fit4d-video-card h3 {
	margin-top: 0;
	margin-bottom: 16px;
}

.fit4d-video-card .wp-block-embed {
	margin: 0 !important;
}

.fit4d-video-card .wp-block-embed__wrapper {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: var(--fit4d-radius-image);
}

.fit4d-video-card iframe {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	border: 0;
}


/* ==============================================================
   RESPONSIVE EMBEDS
============================================================== */

.fit4d-embed {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	margin: 0 !important;
	overflow: hidden;
	background: #000;
	border-radius: var(--fit4d-radius-image);
}

.fit4d-embed--4-3 {
	aspect-ratio: 4 / 3;
}

.fit4d-embed--square {
	aspect-ratio: 1;
}

.fit4d-embed > *,
.fit4d-embed .wp-block-shortcode,
.fit4d-embed .wp-block-embed__wrapper {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.fit4d-embed iframe {
	position: absolute;
	inset: 0;
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	border: 0;
}


/* ==============================================================
   ACCORDION
============================================================== */

.fit4d-accordion {
	display: flex !important;
	flex-direction: column;
	gap: 12px;
	margin-top: 42px !important;
}

.fit4d-accordion > * {
	margin: 0 !important;
}

.fit4d-accordion-item {
	overflow: hidden;
	margin: 0 !important;
	background: var(--fit4d-surface);
	border: 1px solid rgba(32,58,138,.10);
	border-radius: var(--fit4d-radius-card);
}

.fit4d-accordion-item[open] {
	border-color: rgba(32,58,138,.20);
	box-shadow: var(--fit4d-shadow-soft);
}

.fit4d-accordion-item > summary {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 72px;
	margin: 0;
	padding: 20px 64px 20px 24px;
	font-family: var(--wp--preset--font-family--primary);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--fit4d-primary);
	list-style: none;
	cursor: pointer;
	user-select: none;
}

.fit4d-accordion-item > summary:hover {
	background: var(--fit4d-soft);
}

.fit4d-accordion-item > summary::-webkit-details-marker {
	display: none;
}

.fit4d-accordion-item > summary::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 26px;
	width: 10px;
	height: 10px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform:
		translateY(-70%)
		rotate(45deg);
	transition: transform .2s ease;
}

.fit4d-accordion-item[open] > summary::after {
	transform:
		translateY(-25%)
		rotate(225deg);
}

.fit4d-accordion-content {
	padding: 24px;
	border-top: 1px solid rgba(32,58,138,.10);
}

.fit4d-accordion-content > *:first-child {
	margin-top: 0 !important;
}

.fit4d-accordion-content > *:last-child {
	margin-bottom: 0 !important;
}


/* ==============================================================
   HOME COMPATIBILITY
============================================================== */

.fit4d-home-hero {
	padding-top: 32px;
	padding-bottom: 52px;
	background: var(--fit4d-light);
	border-radius: var(--fit4d-radius-panel);
}

.fit4d-home-hero h1 {
	max-width: 940px;
	margin-top: 22px;
	margin-bottom: 6px;
}

.fit4d-feature-home {
	align-items: stretch !important;
}

.fit4d-feature-home > .wp-block-column {
	display: flex;
	min-width: 0;
}

.fit4d-feature-home > .wp-block-column > * {
	width: 100%;
}

.fit4d-why-layout {
	gap: 48px;
	align-items: center !important;
}

.fit4d-connect-section {
	padding-top: 56px;
	padding-bottom: 56px;
}


/* ==============================================================
   HEADER
============================================================== */

.fit4d-site-header {
	--fit4d-header-pad-y: 18px;
	--fit4d-header-row-height: 62px;
	--fit4d-desktop-panel-height: 184px;

	position: relative;
	z-index: 1000;

	margin-top: 20px !important;
	margin-bottom: 0 !important;

	padding:
		var(--fit4d-header-pad-y)
		28px;

	background: var(--fit4d-light) !important;

	border-radius: 16px 16px 0 0 !important;

	overflow: visible !important;

	transition: padding-bottom .2s ease;
}

.fit4d-site-header-inner {
	min-height: var(--fit4d-header-row-height);
	gap: 24px;
}


/* Brand */

.fit4d-brand-wrap {
	flex: 0 0 auto;
	margin: 0 !important;
	gap: 0 !important;
}

.fit4d-brand-wrap .wp-block-site-logo {
	margin: 0 !important;
}

.fit4d-brand-wrap .wp-block-site-logo img {
	display: block;
	width: 175px !important;
	height: auto !important;
}

.fit4d-brand-fallback {
	display: inline-flex;
	align-items: center;
	gap: .35em;
	font-family: var(--wp--preset--font-family--primary);
	font-size: 1.08rem;
	font-weight: 700;
	letter-spacing: -.025em;
	color: #111827;
	text-decoration: none !important;
	white-space: nowrap;
}

.fit4d-brand-four {
	color: var(--fit4d-secondary);
}

.fit4d-brand-wrap:has(.wp-block-site-logo img) .fit4d-brand-fallback {
	display: none;
}


/* Header actions */

.fit4d-header-actions {
	flex: 1 1 auto;
	min-width: 0;
	margin-left: auto;
	gap: 20px;
}


/* Language */

.fit4d-language-switcher {
	flex: 0 0 auto;
	margin: 0 !important;
}

.fit4d-language-switcher select {
	min-width: 165px;
	min-height: 42px;
	padding: 6px 34px 6px 10px;
	font-family: var(--wp--preset--font-family--body);
	background-color: transparent;
	border: 1px solid var(--fit4d-primary);
	border-radius: 0;
}


/* Desktop navigation */

.fit4d-desktop-nav {
	display: flex;
	align-items: center;
	gap: 22px;
	margin-left: auto;
}

.fit4d-desktop-nav details {
	margin: 0;
	padding: 0;
}

.fit4d-desktop-nav summary,
.fit4d-mobile-menu summary,
.fit4d-mobile-nav summary {
	list-style: none;
	cursor: pointer;
	user-select: none;
	-webkit-appearance: none;
	appearance: none;
}

.fit4d-desktop-nav summary::-webkit-details-marker,
.fit4d-mobile-menu summary::-webkit-details-marker,
.fit4d-mobile-nav summary::-webkit-details-marker {
	display: none;
}

.fit4d-desktop-nav > .fit4d-nav-link,
.fit4d-desktop-nav > details > summary {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 0;
	font-family: var(--wp--preset--font-family--primary);
	font-size: .9rem;
	font-weight: 600;
	line-height: 1.25;
	color: #111827 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	text-decoration: none !important;
	white-space: nowrap;
	transition: color .18s ease;
}

.fit4d-desktop-nav > .fit4d-nav-link:hover,
.fit4d-desktop-nav > details > summary:hover,
.fit4d-desktop-nav > details[open] > summary {
	color: var(--fit4d-secondary) !important;
}

.fit4d-nav-chevron {
	display: block;
	width: 7px;
	height: 7px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform:
		translateY(-2px)
		rotate(45deg);
	transition: transform .18s ease;
}

.fit4d-desktop-nav details[open] > summary .fit4d-nav-chevron {
	transform:
		translateY(2px)
		rotate(225deg);
}


/* ==============================================================
   DESKTOP SUBMENUS
============================================================== */

@media (min-width: 1025px) {

	.fit4d-site-header-inner,
	.fit4d-header-actions,
	.fit4d-desktop-nav,
	.fit4d-desktop-panel-menu {
		position: static !important;
	}

	.fit4d-site-header:has(.fit4d-desktop-panel-menu[open]) {
		padding-bottom:
			calc(
				var(--fit4d-desktop-panel-height)
				+
				var(--fit4d-header-pad-y)
			);
	}

	.fit4d-desktop-panel {
		position: absolute;
		top:
			calc(
				var(--fit4d-header-pad-y)
				+
				var(--fit4d-header-row-height)
				+
				var(--fit4d-header-pad-y)
			);
		left: 0;
		right: 0;
		z-index: 5000;
		height: var(--fit4d-desktop-panel-height);
		padding: 22px 28px;
		background: var(--fit4d-primary);
		border-radius: 0 0 16px 16px;
		box-shadow:
			0 18px 38px
			rgba(32,58,138,.14);
		overflow: hidden;
	}

	.fit4d-desktop-panel--about {
		display: grid;
		grid-template-columns:
			repeat(4,minmax(0,1fr));
		align-items: center;
		gap: 18px;
	}

	.fit4d-desktop-panel--projects {
		display: grid;
		grid-template-columns:
			repeat(5,minmax(0,1fr));
		align-content: center;
		gap: 8px 14px;
	}

	.fit4d-desktop-panel a {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 54px;
		padding: 10px 12px;
		font-family: var(--wp--preset--font-family--primary);
		font-size: .9rem;
		font-weight: 600;
		line-height: 1.3;
		color: var(--fit4d-white) !important;
		border-radius: 8px;
		text-align: center;
		text-decoration: none !important;
		transition:
			background-color .18s ease,
			color .18s ease;
	}

	.fit4d-desktop-panel a:hover,
	.fit4d-desktop-panel a:focus-visible {
		background: rgba(255,255,255,.12);
		color: var(--fit4d-white) !important;
		text-decoration: none;
	}
}


/* ==============================================================
   MOBILE MENU
============================================================== */

.fit4d-mobile-menu {
	display: none;
}

.fit4d-mobile-toggle {
	position: relative;
	z-index: 1000001;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: 50px;
	height: 50px;
	padding: 0;
	background: var(--fit4d-primary) !important;
	border: 0 !important;
	border-radius: 7px;
	cursor: pointer;
}

.fit4d-hamburger-line {
	display: block;
	width: 23px;
	height: 2px;
	background: var(--fit4d-white);
	transition:
		transform .22s ease,
		opacity .18s ease;
}

.fit4d-mobile-menu[open] > .fit4d-mobile-toggle {
	position: fixed;
	top: 24px;
	right: 24px;
	background: transparent !important;
}

.fit4d-mobile-menu[open] .fit4d-hamburger-line:nth-child(1) {
	transform:
		translateY(8px)
		rotate(45deg);
}

.fit4d-mobile-menu[open] .fit4d-hamburger-line:nth-child(2) {
	opacity: 0;
}

.fit4d-mobile-menu[open] .fit4d-hamburger-line:nth-child(3) {
	transform:
		translateY(-8px)
		rotate(-45deg);
}


/* Overlay */

.fit4d-mobile-overlay {
	position: fixed;
	inset: 0;
	z-index: 1000000;
	overflow-y: auto;
	padding:
		96px
		clamp(24px,6vw,52px)
		48px;
	background: var(--fit4d-primary);
}

.fit4d-mobile-nav {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	width: min(100%,720px);
	margin-left: auto;
}

.fit4d-mobile-main-link,
.fit4d-mobile-nav-group > summary {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 12px;
	width: 100%;
	padding: 16px 0;
	font-family: var(--wp--preset--font-family--primary);
	font-size: clamp(1.15rem,3vw,1.45rem);
	font-weight: 700;
	line-height: 1.25;
	color: var(--fit4d-white) !important;
	background: transparent !important;
	border: 0 !important;
	text-align: right;
	text-decoration: none !important;
}

.fit4d-mobile-nav-group,
.fit4d-mobile-main-link {
	width: 100%;
	border-bottom:
		1px solid
		rgba(255,255,255,.18);
}

.fit4d-mobile-chevron {
	display: block;
	width: 9px;
	height: 9px;
	border-right: 2px solid var(--fit4d-white);
	border-bottom: 2px solid var(--fit4d-white);
	transform: rotate(45deg);
	transition: transform .18s ease;
}

.fit4d-mobile-nav-group[open] .fit4d-mobile-chevron {
	transform: rotate(225deg);
}

.fit4d-mobile-submenu {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	padding:
		0
		0
		16px
		clamp(28px,10vw,90px);
}

.fit4d-mobile-submenu a {
	display: block;
	width: 100%;
	padding: 9px 0;
	font-family: var(--wp--preset--font-family--primary);
	font-size: .95rem;
	font-weight: 500;
	line-height: 1.35;
	color: rgba(255,255,255,.82) !important;
	text-align: right;
	text-decoration: none !important;
}

.fit4d-mobile-submenu a:hover,
.fit4d-mobile-submenu a:focus-visible {
	color: var(--fit4d-accent) !important;
}


/* ==============================================================
   HEADER / HERO CONNECTION
============================================================== */

.fit4d-site-header + .wp-block-post-content {
	margin-block-start: 0 !important;
}

.wp-block-post-content > *:first-child {
	margin-block-start: 0 !important;
}

.wp-block-post-content > .fit4d-home-hero:first-child,
.wp-block-post-content > .fit4d-hero:first-child,
.wp-block-post-content > .fit4d-panel--light:first-child {
	margin-top: 0 !important;
	border-top-left-radius: 0 !important;
	border-top-right-radius: 0 !important;
}

body .wp-site-blocks > .fit4d-site-header {
	margin-block-end: 0 !important;
}

body .wp-site-blocks > .fit4d-site-header + .wp-block-post-content {
	margin-block-start: 0 !important;
}


/* ==============================================================
   FOOTER
============================================================== */

.fit4d-site-footer {
	margin-top: 104px !important;
	margin-bottom: 20px !important;
	padding: 52px 48px 32px;
	background: var(--fit4d-primary) !important;
	color: var(--fit4d-white) !important;
	border-radius: var(--fit4d-radius-panel) !important;
}

.fit4d-site-footer,
.fit4d-site-footer p,
.fit4d-site-footer li,
.fit4d-site-footer h2,
.fit4d-site-footer h3,
.fit4d-site-footer h4,
.fit4d-site-footer a,
.fit4d-site-footer .wp-block-navigation-item__content {
	color: var(--fit4d-white) !important;
}

.fit4d-site-footer .wp-block-columns {
	gap: 56px;
}

.fit4d-site-footer h3 {
	max-width: 520px;
}

.fit4d-site-footer p {
	max-width: 620px;
}

.fit4d-footer-nav .wp-block-navigation__container {
	gap: 10px;
}

.fit4d-site-footer .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--primary);
	font-size: .9rem;
}

.fit4d-site-footer a {
	text-decoration: none;
}

.fit4d-site-footer a:hover,
.fit4d-site-footer a:focus-visible {
	color: var(--fit4d-accent) !important;
	text-decoration: none;
}

.fit4d-social-links {
	gap: 10px;
}

.fit4d-site-footer .fit4d-social-links .wp-social-link {
	background: var(--fit4d-white) !important;
	color: var(--fit4d-primary) !important;
	transition:
		transform .18s ease,
		background-color .18s ease;
}

.fit4d-site-footer .fit4d-social-links .wp-social-link svg {
	fill: var(--fit4d-primary) !important;
}

.fit4d-site-footer .fit4d-social-links .wp-social-link:hover {
	background: var(--fit4d-accent) !important;
	transform: translateY(-2px);
}

.fit4d-footer-separator {
	margin: 28px 0 !important;
	opacity: .35;
}

.fit4d-footer-bottom p {
	margin: 0;
}




/* ==============================================================
   SINGLE POSTS
   Central styling for all regular blog/news/lecture posts.
============================================================== */

.fit4d-post-hero,
.fit4d-post-featured-wrap,
.fit4d-post-body,
.fit4d-post-navigation {
	width: calc(100% - (2 * var(--fit4d-page-gutter)));
	max-width: var(--fit4d-wide);
	margin-left: auto !important;
	margin-right: auto !important;
}

.fit4d-site-header + main.wp-block-group {
	margin-block-start: 0 !important;
}

.fit4d-site-header + main.wp-block-group > .fit4d-post-hero:first-child {
	margin-top: 0 !important;
	border-top-left-radius: 0 !important;
	border-top-right-radius: 0 !important;
}

.fit4d-post-hero {
	margin-bottom: 0 !important;
}

.fit4d-post-hero > * {
	max-width: 1050px;
}

.fit4d-post-hero .wp-block-post-terms {
	margin: 0 !important;
	font-family: var(--wp--preset--font-family--mono);
	font-size: .75rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--fit4d-primary);
}

.fit4d-post-hero .wp-block-post-terms a {
	color: var(--fit4d-primary);
	text-decoration: none;
}

.fit4d-post-hero .wp-block-post-terms a:hover,
.fit4d-post-hero .wp-block-post-terms a:focus-visible {
	color: var(--fit4d-secondary);
}

.fit4d-post-hero .wp-block-post-title {
	max-width: 1050px;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.fit4d-post-meta {
	gap: 10px 22px !important;
	margin-top: 4px !important;
	color: var(--fit4d-muted);
	font-size: .9rem;
}

.fit4d-post-meta .wp-block-post-date {
	margin: 0 !important;
}

.fit4d-post-meta a {
	color: inherit;
	text-decoration: none;
}

.fit4d-post-featured-wrap {
	margin-top: clamp(32px,4vw,52px) !important;
	margin-bottom: 0 !important;
}

.fit4d-post-featured-wrap:not(:has(img)) {
	display: none;
}

.fit4d-post-featured {
	width: 100%;
	max-width: 1180px !important;
	margin: 0 auto !important;
}

.fit4d-post-featured img {
	display: block;
	width: 100% !important;
	height: auto !important;
	max-height: none !important;
	object-fit: contain !important;
	border-radius: var(--fit4d-radius-card);
}

.fit4d-post-body {
	margin-top: clamp(52px,6vw,80px) !important;
	margin-bottom: 0 !important;
	padding: 0 !important;
}

.fit4d-post-body > * {
	max-width: var(--fit4d-content);
}

.fit4d-post-content {
	font-size: 1.05rem;
	line-height: 1.75;
}

.fit4d-post-content > *:first-child {
	margin-top: 0 !important;
}

.fit4d-post-content > *:last-child {
	margin-bottom: 0 !important;
}

.fit4d-post-content p {
	margin-top: 0;
	margin-bottom: 1.35em;
}

.fit4d-post-content ul,
.fit4d-post-content ol {
	margin-top: 1rem;
	margin-bottom: 1.6rem;
	padding-left: 1.5rem;
}

.fit4d-post-content li + li {
	margin-top: .45rem;
}

.fit4d-post-content li > ul,
.fit4d-post-content li > ol {
	margin-top: .45rem;
	margin-bottom: .65rem;
}

.fit4d-post-content h2 {
	margin-top: 3.3rem;
	margin-bottom: 1rem;
}

.fit4d-post-content h3 {
	margin-top: 2.5rem;
	margin-bottom: .85rem;
}

.fit4d-post-content h4 {
	margin-top: 2rem;
	margin-bottom: .7rem;
}

.fit4d-post-content h2:first-child,
.fit4d-post-content h3:first-child,
.fit4d-post-content h4:first-child {
	margin-top: 0;
}

.fit4d-post-content .wp-block-image {
	margin-top: 2.35rem;
	margin-bottom: 2.35rem;
}

.fit4d-post-content .wp-block-image img {
	display: block;
	max-width: 100%;
	height: auto !important;
	border-radius: var(--fit4d-radius-image);
}

.fit4d-post-content .wp-block-image.aligncenter img {
	margin-left: auto;
	margin-right: auto;
}

.fit4d-post-content .wp-block-image.alignwide,
.fit4d-post-content .wp-block-image.alignfull {
	width: 100%;
}

.fit4d-post-content .wp-block-image.alignwide img,
.fit4d-post-content .wp-block-image.alignfull img {
	width: 100%;
}

.fit4d-post-content figcaption,
.fit4d-post-content .wp-element-caption {
	margin-top: .7rem;
	color: var(--fit4d-muted);
	font-size: .82rem;
	line-height: 1.5;
	text-align: left;
}

.fit4d-post-content .wp-block-gallery {
	margin-top: 2.4rem;
	margin-bottom: 2.4rem;
	gap: 12px !important;
}

.fit4d-post-content .wp-block-gallery img {
	border-radius: var(--fit4d-radius-image);
}

.fit4d-post-content .wp-block-quote {
	margin: 2.4rem 0;
	padding: 24px 28px;
	background: var(--fit4d-soft);
	border-left: 5px solid var(--fit4d-secondary);
	border-radius: 0 12px 12px 0;
}

.fit4d-post-content .wp-block-quote p {
	margin-bottom: .8rem;
	font-family: var(--wp--preset--font-family--secondary);
	font-size: 1.22rem;
	line-height: 1.55;
	color: var(--fit4d-primary);
}

.fit4d-post-content .wp-block-quote cite {
	color: var(--fit4d-muted);
	font-size: .85rem;
	font-style: normal;
}

.fit4d-post-content .wp-block-pullquote {
	margin: 2.8rem 0;
	padding: 34px 28px;
	border-top: 2px solid var(--fit4d-primary);
	border-bottom: 2px solid var(--fit4d-primary);
}

.fit4d-post-content .wp-block-pullquote blockquote {
	margin: 0;
}

.fit4d-post-content .wp-block-buttons {
	margin-top: 1.8rem;
	margin-bottom: 2rem;
	gap: 12px;
}

.fit4d-post-content .wp-block-separator {
	margin-top: 3rem;
	margin-bottom: 3rem;
	border-color: rgba(32,58,138,.18);
}

.fit4d-post-content .wp-block-table {
	margin-top: 2rem;
	margin-bottom: 2rem;
	overflow-x: auto;
}

.fit4d-post-content table {
	width: 100%;
	border-collapse: collapse;
}

.fit4d-post-content th,
.fit4d-post-content td {
	padding: 12px 14px;
	border: 1px solid rgba(32,58,138,.15);
	text-align: left;
	vertical-align: top;
}

.fit4d-post-content th {
	background: var(--fit4d-soft);
	color: var(--fit4d-primary);
	font-family: var(--wp--preset--font-family--primary);
	font-weight: 700;
}

.fit4d-post-content .wp-block-embed,
.fit4d-post-content .wp-block-video,
.fit4d-post-content .wp-block-shortcode {
	margin-top: 2.4rem;
	margin-bottom: 2.4rem;
}

.fit4d-post-content iframe,
.fit4d-post-content video {
	max-width: 100%;
}

.fit4d-post-content .wp-block-embed__wrapper iframe {
	width: 100%;
}

.fit4d-post-content .wp-block-file {
	margin-top: 1.8rem;
	margin-bottom: 1.8rem;
	padding: 18px 20px;
	background: var(--fit4d-surface);
	border-radius: 10px;
}

.fit4d-post-content .wp-block-details {
	margin-top: 1.4rem;
	margin-bottom: 1.4rem;
	padding: 0;
	overflow: hidden;
	background: var(--fit4d-surface);
	border: 1px solid rgba(32,58,138,.10);
	border-radius: var(--fit4d-radius-card);
}

.fit4d-post-content .wp-block-details > summary {
	padding: 18px 22px;
	font-family: var(--wp--preset--font-family--primary);
	font-weight: 700;
	color: var(--fit4d-primary);
	cursor: pointer;
}

.fit4d-post-content .wp-block-details > :not(summary) {
	margin-left: 22px;
	margin-right: 22px;
}

.fit4d-post-content .wp-block-details > :last-child {
	margin-bottom: 22px;
}

.fit4d-post-content .wp-block-columns,
.fit4d-post-content .wp-block-media-text {
	margin-top: 2.3rem;
	margin-bottom: 2.3rem;
}

.fit4d-post-content p:empty {
	display: none;
}

.fit4d-post-navigation {
	margin-top: clamp(64px,7vw,96px) !important;
	margin-bottom: 0 !important;
	padding: 0 !important;
}

.fit4d-post-navigation .wp-block-separator {
	margin: 0 0 30px !important;
	border-color: rgba(32,58,138,.18);
}

.fit4d-post-navigation .wp-block-post-navigation-link {
	max-width: min(46%,520px);
}

.fit4d-post-navigation .wp-block-post-navigation-link a {
	font-family: var(--wp--preset--font-family--primary);
	font-weight: 700;
	color: var(--fit4d-primary);
	text-decoration: none;
}

.fit4d-post-navigation .wp-block-post-navigation-link a:hover,
.fit4d-post-navigation .wp-block-post-navigation-link a:focus-visible {
	color: var(--fit4d-secondary);
}

@media (max-width: 1024px) {

	.fit4d-post-featured {
		max-width: 100% !important;
	}

	.fit4d-post-content {
		font-size: 1.02rem;
	}
}

@media (max-width: 600px) {

	.fit4d-post-featured-wrap {
		margin-top: 28px !important;
	}

	.fit4d-post-body {
		margin-top: 44px !important;
	}

	.fit4d-post-content {
		font-size: 1rem;
		line-height: 1.7;
	}

	.fit4d-post-content h2 {
		margin-top: 2.55rem;
	}

	.fit4d-post-content h3 {
		margin-top: 2rem;
	}

	.fit4d-post-content .wp-block-image,
	.fit4d-post-content .wp-block-gallery,
	.fit4d-post-content .wp-block-embed,
	.fit4d-post-content .wp-block-video,
	.fit4d-post-content .wp-block-shortcode {
		margin-top: 1.8rem;
		margin-bottom: 1.8rem;
	}

	.fit4d-post-content .wp-block-quote {
		padding: 20px;
	}

	.fit4d-post-content .wp-block-quote p {
		font-size: 1.1rem;
	}

	.fit4d-post-navigation .wp-block-group {
		align-items: flex-start !important;
		gap: 22px;
	}

	.fit4d-post-navigation .wp-block-post-navigation-link {
		width: 100%;
		max-width: none;
	}
}


/* ==============================================================
   TABLET
============================================================== */

@media (max-width: 1024px) {

	:root {
		--fit4d-section-space: 72px;
		--fit4d-section-space-compact: 52px;
	}

	.fit4d-panel,
	.fit4d-hero,
	.fit4d-cta {
		padding: 40px;
	}

	.fit4d-card-grid--3,
	.fit4d-card-grid--4,
	.fit4d-stat-grid--3,
	.fit4d-stat-grid--4,
	.fit4d-icon-grid--3,
	.fit4d-icon-grid--4,
	.fit4d-logo-track,
	.fit4d-supporters-track {
		grid-template-columns:
			repeat(2,minmax(0,1fr));
	}

	.fit4d-step-grid {
		grid-template-columns: 1fr;
	}

	.fit4d-split--stack-tablet {
		flex-wrap: wrap !important;
		gap: 38px !important;
	}

	.fit4d-split--stack-tablet > .wp-block-column {
		flex-basis: 100% !important;
	}

	.fit4d-site-header {
		--fit4d-header-pad-y: 14px;
		padding:
			var(--fit4d-header-pad-y)
			22px;
	}

	.fit4d-site-header-inner {
		min-height: 56px;
		gap: 14px;
	}

	.fit4d-brand-wrap .wp-block-site-logo img {
		width: 140px !important;
	}

	.fit4d-brand-fallback {
		font-size: .95rem;
	}

	.fit4d-desktop-nav {
		display: none;
	}

	.fit4d-mobile-menu {
		display: block;
		flex: 0 0 auto;
	}

	.fit4d-header-actions {
		justify-content: flex-end !important;
		gap: 12px;
	}
}


/* ==============================================================
   MOBILE
============================================================== */

@media (max-width: 600px) {

	:root {
		--fit4d-page-gutter: 12px;
		--fit4d-section-space: 52px;
		--fit4d-section-space-compact: 40px;
	}

	h1,
	.fit4d-home-hero h1,
	.fit4d-hero h1 {
		font-size: 2.2rem !important;
		line-height: 1.04 !important;
		letter-spacing: -.03em;
	}

	h2 {
		font-size: 1.85rem !important;
		line-height: 1.12 !important;
	}

	h3 {
		font-size: 1.12rem !important;
	}

	.fit4d-panel,
	.fit4d-hero,
	.fit4d-cta {
		padding: 28px 22px;
	}

	.fit4d-home-hero {
		padding: 24px 20px 34px;
	}

	.fit4d-home-hero h1 {
		margin-top: 18px;
	}

	.fit4d-home-hero .fit4d-media--wide img,
	.fit4d-hero .fit4d-media--wide img {
		aspect-ratio: 16 / 10;
	}

	.fit4d-split,
	.fit4d-feature-home,
	.fit4d-why-layout,
	.fit4d-people-layout {
		flex-wrap: wrap !important;
		gap: 30px !important;
	}

	.fit4d-split > .wp-block-column,
	.fit4d-feature-home > .wp-block-column,
	.fit4d-why-layout > .wp-block-column,
	.fit4d-people-layout > .wp-block-column {
		flex-basis: 100% !important;
	}

	.fit4d-columns-equal,
	.fit4d-equal-columns {
		flex-wrap: wrap !important;
	}

	.fit4d-columns-equal > .wp-block-column,
	.fit4d-equal-columns > .wp-block-column {
		flex-basis: 100% !important;
	}

	.fit4d-card-grid--2,
	.fit4d-card-grid--2-asymmetric,
	.fit4d-card-grid--feature,
	.fit4d-card-grid--3,
	.fit4d-card-grid--4,
	.fit4d-stat-grid--2,
	.fit4d-stat-grid--3,
	.fit4d-stat-grid--4,
	.fit4d-step-grid,
	.fit4d-icon-grid,
	.fit4d-icon-grid--3,
	.fit4d-icon-grid--4,
	.fit4d-action-grid,
	.fit4d-action-grid--2,
	.fit4d-action-grid--4,
	.fit4d-connect-grid,
	.fit4d-video-grid {
		grid-template-columns: 1fr !important;
	}

	.fit4d-card-content,
	.fit4d-card__content {
		padding: 26px 22px 30px;
	}

	.fit4d-logo-track,
	.fit4d-supporters-track {
		display: flex !important;
		gap: 14px !important;
		margin-left: -22px !important;
		margin-right: -22px !important;
		padding: 4px 22px 14px !important;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-padding-left: 22px;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	.fit4d-logo-track::-webkit-scrollbar,
	.fit4d-supporters-track::-webkit-scrollbar {
		display: none;
	}

	.fit4d-logo-card,
	.fit4d-supporter-slide {
		flex: 0 0 78%;
		min-height: 160px;
		scroll-snap-align: start;
	}

	.fit4d-people-layout {
		gap: 36px !important;
	}

	.fit4d-people-copy {
		gap: 16px;
	}

	.fit4d-people-copy h2 {
		font-size: 1.9rem !important;
	}

	.fit4d-people-visual {
		gap: 22px;
	}

	.fit4d-people-cloud {
		gap: 10px;
	}

	.fit4d-person:nth-child(n) {
		width: 72px;
		height: 72px;
	}

	.fit4d-person:nth-child(1) {
		width: 82px;
		height: 82px;
	}

	.fit4d-person:nth-child(3) {
		width: 88px;
		height: 88px;
	}

	.fit4d-person:nth-child(6) {
		width: 84px;
		height: 84px;
	}

	.fit4d-icon-card,
	.fit4d-icon-box {
		min-height: 82px;
		padding: 14px 16px;
	}

	.fit4d-action-card,
	.fit4d-connect-card {
		padding: 22px;
	}

	.fit4d-action-icon,
	.fit4d-connect-icon {
		width: 58px;
		height: 58px;
		margin-bottom: 18px !important;
		font-size: 1.35rem;
	}

	.fit4d-accordion {
		margin-top: 30px !important;
	}

	.fit4d-accordion-item > summary {
		min-height: 64px;
		padding: 17px 52px 17px 18px;
		font-size: .95rem;
	}

	.fit4d-accordion-item > summary::after {
		right: 20px;
	}

	.fit4d-accordion-content {
		padding: 16px;
	}

	.fit4d-site-header {
		--fit4d-header-pad-y: 12px;
		margin-top: 12px !important;
		padding:
			var(--fit4d-header-pad-y)
			16px;
		border-radius:
			12px 12px 0 0
			!important;
	}

	.fit4d-site-header-inner {
		gap: 8px;
	}

	.fit4d-brand-wrap .wp-block-site-logo img {
		width: 105px !important;
	}

	.fit4d-brand-fallback {
		font-size: .78rem;
		gap: .25em;
	}

	.fit4d-header-actions {
		gap: 8px;
	}

	.fit4d-language-switcher select {
		min-width: 125px;
		max-width: 135px;
		min-height: 44px;
	}

	.wp-block-post-content > .fit4d-home-hero:first-child,
	.wp-block-post-content > .fit4d-hero:first-child,
	.wp-block-post-content > .fit4d-panel--light:first-child {
		border-radius:
			0 0 12px 12px
			!important;
	}

	.fit4d-mobile-overlay {
		padding:
			88px
			22px
			38px;
	}

	.fit4d-mobile-nav {
		width: 100%;
	}

	.fit4d-mobile-main-link,
	.fit4d-mobile-nav-group > summary {
		padding: 15px 0;
		font-size: 1.12rem;
	}

	.fit4d-mobile-submenu {
		padding-left: 25px;
		padding-bottom: 14px;
	}

	.fit4d-mobile-submenu a {
		padding: 8px 0;
		font-size: .9rem;
	}

	.fit4d-site-footer {
		margin-top: 64px !important;
		padding: 36px 24px 28px;
		border-radius: 12px !important;
	}

	.fit4d-site-footer .wp-block-columns {
		flex-wrap: wrap !important;
		gap: 28px;
	}

	.fit4d-site-footer .wp-block-column {
		flex-basis: 100% !important;
	}

	.fit4d-footer-bottom {
		align-items: flex-start !important;
		gap: 12px;
	}
}


/* ==============================================================
   VERY SMALL MOBILE
============================================================== */

@media (max-width: 440px) {

	.fit4d-brand-wrap .wp-block-site-logo img {
		width: 88px !important;
	}

	.fit4d-brand-fallback {
		font-size: .7rem;
	}

	.fit4d-language-switcher select {
		min-width: 112px;
		max-width: 118px;
	}

	.fit4d-mobile-toggle {
		width: 46px;
		height: 46px;
	}

	.fit4d-people-cloud {
		max-width: 300px;
	}
}