/* FBBFK theme — styles theme.json can't express. Tokens come from theme.json presets. */

:root {
	--fbbfk-radius: var(--wp--custom--radius, 4px);
	--fbbfk-shadow: 0 1px 2px rgb(14 19 32 / 0.06), 0 8px 24px -12px rgb(14 19 32 / 0.18);
}

html {
	-webkit-text-size-adjust: 100%;
}

body {
	overflow-x: clip;
}

:where(h1, h2, h3, h4) {
	overflow-wrap: anywhere;
	hyphens: auto;
	text-wrap: balance;
}

/* Long bare URLs in post text (e.g. copied from Facebook) wrap instead of widening the page. */
:where(p, li, td) a {
	overflow-wrap: anywhere;
}

p {
	text-wrap: pretty;
}

img {
	height: auto;
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation: none !important;
		transition: none !important;
		scroll-behavior: auto !important;
	}
}

/* ---------- Motion (all of it is skipped with prefers-reduced-motion) ---------- */

@media (prefers-reduced-motion: no-preference) {
	/* Soft cross-fade between pages (Chromium browsers; others just navigate normally). */
	@view-transition {
		navigation: auto;
	}

	::view-transition-old(root),
	::view-transition-new(root) {
		animation-duration: 0.3s;
		animation-timing-function: ease;
	}

	/* Header stays put while the page underneath fades. */
	.fbbfk-header {
		view-transition-name: fbbfk-header;
	}

	@keyframes fbbfk-rise {
		from {
			opacity: 0;
			transform: translateY(22px);
		}
		to {
			opacity: 1;
			transform: none;
		}
	}

	@keyframes fbbfk-emerge {
		from {
			opacity: 0;
			transform: scale(0.94);
		}
		to {
			opacity: 1;
			transform: none;
		}
	}

	/* Above-the-fold entrances: pure CSS, so there is no flash before scripts load. */
	.fbbfk-hero .wp-block-column:not(.fbbfk-hero__art) > *,
	.fbbfk-band > * {
		animation: fbbfk-rise 0.8s cubic-bezier(0.2, 0.65, 0.25, 1) both;
	}

	.fbbfk-hero .wp-block-column:not(.fbbfk-hero__art) > :nth-child(2),
	.fbbfk-band > :nth-child(2) {
		animation-delay: 0.08s;
	}

	.fbbfk-hero .wp-block-column:not(.fbbfk-hero__art) > :nth-child(3),
	.fbbfk-band > :nth-child(3) {
		animation-delay: 0.16s;
	}

	.fbbfk-hero .wp-block-column:not(.fbbfk-hero__art) > :nth-child(4),
	.fbbfk-band > :nth-child(4) {
		animation-delay: 0.24s;
	}

	.fbbfk-hero__art .wp-block-image {
		animation: fbbfk-emerge 1.1s cubic-bezier(0.2, 0.65, 0.25, 1) 0.15s both;
	}

	/* Scroll reveal, driven by assets/js/motion.js. */
	.fbbfk-reveal {
		opacity: 0;
		transform: translateY(18px);
		transition:
			opacity 0.7s cubic-bezier(0.2, 0.65, 0.25, 1) var(--fbbfk-delay, 0ms),
			transform 0.7s cubic-bezier(0.2, 0.65, 0.25, 1) var(--fbbfk-delay, 0ms);
	}

	.fbbfk-reveal.is-in {
		opacity: 1;
		transform: none;
	}

	/* Gentle photo zoom on hover in cards and galleries. */
	.fbbfk-news-card .wp-block-post-featured-image img,
	.fbbfk-athlete-card .wp-block-post-featured-image img,
	.fbbfk-gallery .wp-block-image img {
		transition: transform 0.5s ease, filter 0.5s ease;
	}

	.fbbfk-news-card:hover .wp-block-post-featured-image img,
	.fbbfk-athlete-card:hover .wp-block-post-featured-image img,
	.fbbfk-gallery .wp-block-image:hover img {
		transform: scale(1.04);
	}

	.fbbfk-gallery .wp-block-image {
		overflow: hidden;
		border-radius: var(--fbbfk-radius);
	}

	a,
	.wp-element-button,
	.wp-block-button__link {
		transition: color var(--wp--custom--transition), background-color var(--wp--custom--transition), border-color var(--wp--custom--transition);
	}
}

@media print {
	.fbbfk-reveal {
		opacity: 1 !important;
		transform: none !important;
	}
}

/* ---------- Header ---------- */

.fbbfk-header {
	position: sticky;
	top: 0;
	z-index: 50;
	border-bottom: 3px solid var(--wp--preset--color--gold);
}

.admin-bar .fbbfk-header {
	top: var(--wp-admin--admin-bar--height, 0);
}

@media (max-width: 600px) {
	.admin-bar .fbbfk-header {
		top: 0;
	}
}

.fbbfk-header__bar {
	display: grid !important;
	grid-template-columns: 1fr auto 1fr; /* equal side columns keep the menu truly centred */
	align-items: center;
	min-height: 64px;
	gap: 1rem;
}

.fbbfk-header__bar > .fbbfk-logo,
.fbbfk-header__bar > :first-child {
	justify-self: start;
}

.fbbfk-header__bar > .fbbfk-primary-nav {
	justify-self: center;
}

.fbbfk-header__bar > .fbbfk-lang {
	justify-self: end;
}

/* Below the desktop breakpoint the menu is a burger: logo | … | burger + language. */
@media (max-width: 1099.98px) {
	.fbbfk-header__bar {
		grid-template-columns: 1fr auto auto;
		gap: 0.5rem;
	}

	.fbbfk-header__bar > .fbbfk-primary-nav {
		justify-self: end;
	}
}

.fbbfk-logo {
	display: block;
	line-height: 0;
	flex-shrink: 0;
}

.fbbfk-logo img {
	height: 42px;
	width: auto;
}

@media (min-width: 1100px) {
	.fbbfk-header__bar {
		min-height: var(--wp--custom--header-height);
	}

	.fbbfk-logo img {
		height: 50px;
	}
}

.fbbfk-header__actions {
	gap: 0.75rem;
}

/* Primary navigation: show the overlay (burger) menu up to 1099px, not only below 600px. */
.fbbfk-primary-nav .wp-block-navigation-item__content {
	padding-block: 0.5rem;
}

.fbbfk-primary-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover,
.fbbfk-primary-nav .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--gold-bright);
}

.fbbfk-primary-nav .wp-block-navigation__submenu-container {
	border: 0 !important;
	border-top: 3px solid var(--wp--preset--color--gold) !important;
	box-shadow: var(--fbbfk-shadow);
	min-width: 15rem !important;
}

.fbbfk-primary-nav .wp-block-navigation__responsive-container-open,
.fbbfk-primary-nav .wp-block-navigation__responsive-container-close {
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
}

.fbbfk-primary-nav .wp-block-navigation__responsive-container-open svg,
.fbbfk-primary-nav .wp-block-navigation__responsive-container-close svg {
	width: 30px;
	height: 30px;
}

@media (min-width: 600px) and (max-width: 1099.98px) {
	.fbbfk-primary-nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	.fbbfk-primary-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}
}

.fbbfk-primary-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 1.25rem clamp(1rem, 5vw, 2rem);
}

.fbbfk-primary-nav .is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 3.5rem;
}

.fbbfk-primary-nav .is-menu-open .wp-block-navigation__container {
	gap: 0.25rem;
	font-size: var(--wp--preset--font-size--large);
}

.fbbfk-primary-nav .is-menu-open :is(.wp-block-navigation__responsive-container-content, .wp-block-navigation__container, .wp-block-navigation-item, .wp-block-navigation__submenu-container) {
	align-items: flex-start !important;
	text-align: left;
}

.fbbfk-primary-nav .is-menu-open .wp-block-navigation__submenu-container {
	border-top: 0 !important;
	box-shadow: none;
	font-size: var(--wp--preset--font-size--medium);
	padding-left: 1rem !important;
	opacity: 0.85;
}

/* ---------- Language switcher (dropdown) ---------- */

.fbbfk-lang {
	position: relative;
}

.fbbfk-lang summary {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	min-height: 44px;
	padding: 0 0.7rem;
	border: 1px solid rgb(255 255 255 / 0.22);
	border-radius: var(--fbbfk-radius);
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--white);
	cursor: pointer;
	list-style: none;
	user-select: none;
}

.fbbfk-lang summary::-webkit-details-marker {
	display: none;
}

.fbbfk-lang summary:hover,
.fbbfk-lang[open] summary {
	border-color: var(--wp--preset--color--gold-bright);
}

.fbbfk-lang summary:focus-visible {
	outline: 2px solid var(--wp--preset--color--gold);
	outline-offset: 2px;
}

.fbbfk-lang img {
	display: block;
	width: 20px;
	height: 15px;
	object-fit: cover;
	border-radius: 2px;
	box-shadow: 0 0 0 1px rgb(255 255 255 / 0.25);
}

.fbbfk-lang__chevron {
	transition: transform var(--wp--custom--transition);
}

.fbbfk-lang[open] .fbbfk-lang__chevron {
	transform: rotate(180deg);
}

.fbbfk-lang__menu {
	position: absolute;
	top: calc(100% + 6px);
	right: 0;
	z-index: 60;
	min-width: 11rem;
	margin: 0;
	padding: 0.35rem;
	list-style: none;
	background: var(--wp--preset--color--ink-soft);
	border: 1px solid rgb(255 255 255 / 0.12);
	border-top: 3px solid var(--wp--preset--color--gold);
	border-radius: var(--fbbfk-radius);
	box-shadow: 0 16px 40px -12px rgb(0 0 0 / 0.55);
}

.fbbfk-lang__menu a {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	min-height: 44px;
	padding: 0 0.75rem;
	border-radius: 3px;
	color: rgb(255 255 255 / 0.85);
	font-size: var(--wp--preset--font-size--small);
	text-decoration: none;
}

.fbbfk-lang__menu a:hover,
.fbbfk-lang__menu a:focus-visible {
	background: rgb(255 255 255 / 0.08);
	color: var(--wp--preset--color--white);
}

.fbbfk-lang__menu a[aria-current="true"] {
	color: var(--wp--preset--color--gold-bright);
	font-weight: 600;
}

/* In the footer the menu opens upwards. */
.fbbfk-footer .fbbfk-lang__menu {
	top: auto;
	bottom: calc(100% + 6px);
}

/* ---------- Shared bits ---------- */

.fbbfk-eyebrow {
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gold-bright);
}

.fbbfk-eyebrow a {
	color: inherit;
	text-decoration: none;
}

.fbbfk-eyebrow--blue {
	color: var(--wp--preset--color--blue);
}

.fbbfk-badge {
	display: inline-block;
	align-self: flex-start;
	margin: 0;
	padding: 0.2rem 0.55rem;
	border-radius: 2px;
	background: var(--wp--preset--color--mist);
	color: var(--wp--preset--color--blue-dark);
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.fbbfk-badge:empty,
.fbbfk-meta:empty,
.fbbfk-highlight:empty {
	display: none;
}

.fbbfk-meta {
	margin: 0;
	color: var(--wp--preset--color--steel);
	font-size: var(--wp--preset--font-size--small);
}

.fbbfk-section-head {
	margin-bottom: var(--wp--preset--spacing--50);
	row-gap: 0.5rem;
}

.fbbfk-section-head h2 {
	margin: 0;
}

.fbbfk-more a,
.fbbfk-back a,
.fbbfk-linkcard h2 a {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
}

.fbbfk-more a::after,
.fbbfk-linkcard h2 a::after {
	content: " →";
}

.fbbfk-back a::before {
	content: "← ";
}

.fbbfk-more a:hover,
.fbbfk-back a:hover {
	text-decoration: underline;
}

/* Card block style */
.wp-block-group.is-style-card {
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--fbbfk-radius);
	padding: clamp(1.25rem, 3vw, 1.75rem);
	box-shadow: var(--fbbfk-shadow);
	height: 100%;
}

/* Whole card clickable through its heading link */
.fbbfk-linkcard,
.fbbfk-event-card,
.fbbfk-news-card {
	position: relative;
	transition: transform var(--wp--custom--transition), box-shadow var(--wp--custom--transition);
}

.fbbfk-linkcard h2 a::before,
.fbbfk-event-card__title a::before,
.fbbfk-news-card .wp-block-post-title a::before {
	content: "";
	position: absolute;
	inset: 0;
}

.fbbfk-linkcard:hover,
.fbbfk-event-card:hover,
.fbbfk-news-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 1px 2px rgb(14 19 32 / 0.06), 0 14px 32px -12px rgb(14 19 32 / 0.28);
}

.fbbfk-linkcard h2 {
	margin: 0;
}

.fbbfk-linkcard p {
	margin: 0;
	color: var(--wp--preset--color--steel);
}

/* ---------- Hero ---------- */

.wp-block-cover.fbbfk-hero {
	padding-left: var(--wp--style--root--padding-left);
	padding-right: var(--wp--style--root--padding-right);
}

.fbbfk-hero .fbbfk-hero__title {
	margin-block: 0.5rem 0;
	line-height: 1.02;
	max-width: 16ch;
}

.fbbfk-hero .fbbfk-hero__lead {
	max-width: 38rem;
	color: rgb(255 255 255 / 0.86);
}

.fbbfk-hero__art img {
	filter: drop-shadow(0 30px 60px rgb(0 0 0 / 0.45));
}

@media (max-width: 781px) {
	.fbbfk-hero {
		min-height: 0 !important;
	}

	.fbbfk-hero__art {
		order: -1;
	}

	.fbbfk-hero__art img {
		width: min(240px, 60vw) !important;
	}
}

.fbbfk-btn-gold .wp-block-button__link {
	background: var(--wp--preset--color--gold-bright);
	border-color: var(--wp--preset--color--gold-bright);
	color: var(--wp--preset--color--ink);
}

.fbbfk-btn-gold .wp-block-button__link:hover {
	background: var(--wp--preset--color--white);
	border-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
}

.fbbfk-btn-light.is-style-outline .wp-block-button__link {
	background: transparent;
	border-color: rgb(255 255 255 / 0.7);
	color: var(--wp--preset--color--white);
}

.fbbfk-btn-light.is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--white);
	border-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
}

/* ---------- Title band ---------- */

.fbbfk-band {
	padding-top: var(--wp--preset--spacing--70);
	padding-bottom: var(--wp--preset--spacing--60);
	background-image: radial-gradient(90% 140% at 100% 0%, rgb(36 74 165 / 0.55) 0%, transparent 60%);
	border-bottom: 3px solid var(--wp--preset--color--gold);
}

/* List pages: align the band with the wide card grid below it. */
.fbbfk-band--wide.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	max-width: var(--wp--style--global--wide-size);
}

.fbbfk-band--wide .fbbfk-band__lead {
	padding-right: max(0px, calc(100% - 44rem));
}

.fbbfk-band--tall {
	padding-top: var(--wp--preset--spacing--80);
	padding-bottom: var(--wp--preset--spacing--80);
}

.fbbfk-band h1 {
	margin-block: 0.25rem 0;
}

.fbbfk-band__lead {
	max-width: 44rem;
	color: rgb(255 255 255 / 0.82);
}

/* ---------- Event cards ---------- */

.fbbfk-event-card {
	padding: 0 !important;
	overflow: hidden;
	gap: 0 !important;
}

.fbbfk-event-card__date {
	flex: 0 0 5.5rem;
	gap: 0 !important;
	padding: 1rem 0.5rem;
	background: var(--wp--preset--color--blue);
	color: var(--wp--preset--color--white);
	text-align: center;
}

.fbbfk-event-card__day {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 2.25rem;
	font-weight: 700;
	line-height: 1;
}

.fbbfk-event-card__month {
	margin: 0.35rem 0 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.8125rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gold-bright);
}

.fbbfk-event-card__body {
	flex: 1 1 auto;
	min-width: 0;
	gap: 0.4rem !important;
	padding: 1.1rem 1.25rem 1.25rem;
}

.fbbfk-event-card__title {
	margin: 0;
	line-height: 1.15;
}

.fbbfk-event-card__title a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.fbbfk-event-card__title a:hover {
	color: var(--wp--preset--color--blue);
}

.fbbfk-meta--place::before {
	content: "";
	display: inline-block;
	width: 0.9em;
	height: 0.9em;
	margin-right: 0.35em;
	vertical-align: -0.1em;
	background: currentColor;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7Zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.fbbfk-events--past .fbbfk-event-card__date {
	background: var(--wp--preset--color--steel);
}

/* ---------- Single event details ---------- */

.fbbfk-details {
	margin-top: var(--wp--preset--spacing--50);
	gap: 1px !important;
	background: rgb(255 255 255 / 0.14);
	border: 1px solid rgb(255 255 255 / 0.14);
	border-radius: var(--fbbfk-radius);
	overflow: hidden;
}

.fbbfk-details__item {
	gap: 0.2rem !important;
	padding: 1rem 1.25rem;
	background: var(--wp--preset--color--ink);
}

.fbbfk-details__label {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gold-bright);
}

.fbbfk-details__value {
	margin: 0;
	font-weight: 600;
}

.fbbfk-details__item:has(.fbbfk-details__value:empty) {
	display: none;
}

/* ---------- Disciplines tiles ---------- */

.fbbfk-tile {
	gap: 0.5rem !important;
	padding: 1.5rem;
	border-top: 3px solid var(--wp--preset--color--gold);
	background: var(--wp--preset--color--ink-soft);
	border-radius: 0 0 var(--fbbfk-radius) var(--fbbfk-radius);
}

.fbbfk-tile h3 {
	margin: 0;
}

.fbbfk-tile p {
	margin: 0;
	color: rgb(255 255 255 / 0.78);
}

.fbbfk-tile .fbbfk-tile__num {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 600;
	letter-spacing: 0.1em;
	color: var(--wp--preset--color--gold-bright);
}

/* ---------- Facts ---------- */

.fbbfk-facts {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.fbbfk-fact {
	gap: 0.15rem !important;
	padding: 1.1rem 1.25rem;
	border-left: 4px solid var(--wp--preset--color--blue);
	background: var(--wp--preset--color--mist);
}

.fbbfk-fact__value {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 700;
	line-height: 1;
	color: var(--wp--preset--color--blue);
	text-transform: uppercase;
}

.fbbfk-fact__label {
	margin: 0;
	color: var(--wp--preset--color--steel);
}

/* ---------- CTA ---------- */

.fbbfk-cta__text {
	max-width: 40rem;
	gap: 0.5rem !important;
}

.fbbfk-cta__text h2 {
	margin: 0;
}

/* ---------- News cards ---------- */

.fbbfk-news-card {
	overflow: hidden;
}

.fbbfk-news-card .wp-block-post-featured-image {
	margin: 0;
}

.fbbfk-news-card__body {
	gap: 0.5rem !important;
	padding: 1.25rem 1.5rem 1.5rem;
}

.fbbfk-news-card .wp-block-post-title {
	margin: 0;
}

.fbbfk-news-card .wp-block-post-title a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.fbbfk-news-card .wp-block-post-excerpt {
	margin: 0;
	color: var(--wp--preset--color--steel);
}

.fbbfk-news-card .wp-block-post-excerpt__more-text {
	display: none;
}

/* ---------- Pagination (news, past events, search) ---------- */

.wp-block-query-pagination {
	gap: 0.5rem;
	margin-top: var(--wp--preset--spacing--60);
	flex-wrap: wrap;
}

.wp-block-query-pagination-numbers {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
}

.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 0.875rem;
	box-sizing: border-box;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	color: var(--wp--preset--color--ink);
	font-weight: 600;
	text-decoration: none;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.wp-block-query-pagination a:hover,
.wp-block-query-pagination a:focus-visible {
	border-color: var(--wp--preset--color--blue);
	color: var(--wp--preset--color--blue);
}

.wp-block-query-pagination .page-numbers.current {
	border-color: var(--wp--preset--color--blue);
	background: var(--wp--preset--color--blue);
	color: var(--wp--preset--color--white);
}

.wp-block-query-pagination .page-numbers.dots {
	border-color: transparent;
	min-width: auto;
	padding: 0 0.25rem;
}

/* Phones: previous/next shrink to their arrows; the label stays in the markup for screen readers. */
@media (max-width: 599.98px) {
	.wp-block-query-pagination {
		flex-wrap: nowrap;
		gap: 0.375rem;
	}

	.wp-block-query-pagination-previous,
	.wp-block-query-pagination-next {
		width: 44px;
		padding: 0 !important;
		font-size: 0;
	}

	.wp-block-query-pagination-previous-arrow,
	.wp-block-query-pagination-next-arrow {
		margin: 0 !important;
		font-size: 1rem;
	}

	.wp-block-query-pagination-numbers {
		gap: 0.375rem;
	}
}

/* ---------- Athletes ---------- */

.fbbfk-athlete-card .wp-block-post-featured-image {
	margin: 0 0 0.5rem;
	border-radius: var(--fbbfk-radius);
	overflow: hidden;
	background: var(--wp--preset--color--mist);
}

.fbbfk-athlete-card .wp-block-post-title {
	margin: 0;
}

.fbbfk-athlete-card .wp-block-post-title a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.fbbfk-highlight {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	color: var(--wp--preset--color--blue);
}

/* ---------- Prose (page content) ---------- */

.fbbfk-prose .wp-block-post-content > h2 {
	margin-top: var(--wp--preset--spacing--60);
	padding-top: var(--wp--preset--spacing--30);
	border-top: 1px solid var(--wp--preset--color--line);
}

.fbbfk-prose .wp-block-post-content > h2:first-child {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

.fbbfk-prose .wp-block-post-content > h3 {
	margin-top: var(--wp--preset--spacing--50);
	font-size: var(--wp--preset--font-size--medium);
}

.fbbfk-prose :where(ul, ol) {
	padding-left: 1.25rem;
}

.fbbfk-prose li + li {
	margin-top: 0.35rem;
}

/* Tables scroll sideways on narrow screens instead of overflowing the page. */
.wp-block-table {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.wp-block-table table {
	min-width: 32rem;
	border-collapse: collapse;
}

.wp-block-table :where(th, td) {
	padding: 0.6rem 0.75rem;
	border: 1px solid var(--wp--preset--color--line);
	text-align: left;
	vertical-align: top;
}

.wp-block-table thead {
	border-bottom: 0;
}

.wp-block-table th {
	background: var(--wp--preset--color--mist);
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.wp-block-table tbody tr:nth-child(even) {
	background: rgb(243 245 249 / 0.6);
}

.fbbfk-gallery.wp-block-gallery {
	gap: 0.5rem;
}

.fbbfk-gallery .wp-block-image img {
	border-radius: var(--fbbfk-radius);
}

/* Featured images at the top of single pages: never taller than the viewport allows. */
.fbbfk-prose > .wp-block-post-featured-image img {
	max-height: 70vh;
	object-fit: cover;
	border-radius: var(--fbbfk-radius);
}

.fbbfk-back {
	margin-top: var(--wp--preset--spacing--60);
}

/* ---------- Search ---------- */

.fbbfk-search {
	max-width: 36rem;
	margin-top: var(--wp--preset--spacing--40);
}

.fbbfk-search .wp-block-search__input {
	min-height: 48px;
	padding: 0.5rem 0.9rem;
	border: 0;
	border-radius: var(--fbbfk-radius) 0 0 var(--fbbfk-radius);
	font-size: 1rem;
}

.fbbfk-search .wp-block-search__button {
	margin-left: 0;
	border-radius: 0 var(--fbbfk-radius) var(--fbbfk-radius) 0;
}

.fbbfk-result {
	gap: 0.25rem !important;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

/* ---------- Footer ---------- */

.fbbfk-footer__grid {
	gap: var(--wp--preset--spacing--50) !important;
	padding-bottom: var(--wp--preset--spacing--50);
}

.fbbfk-footer__logo img {
	width: 150px;
	height: auto;
}

.fbbfk-footer__brand p {
	max-width: 22rem;
	color: rgb(255 255 255 / 0.72);
}

.fbbfk-footer .fbbfk-footer__heading {
	margin: 0;
	font-size: var(--wp--preset--font-size--base);
	letter-spacing: 0.12em;
	color: var(--wp--preset--color--gold-bright);
}

.fbbfk-footer__links {
	margin: 0;
	padding: 0;
	list-style: none;
}

.fbbfk-footer__links li + li {
	margin-top: 0.15rem;
}

.fbbfk-footer a,
.fbbfk-footer__contact a {
	color: rgb(255 255 255 / 0.85);
	text-decoration: none;
}

.fbbfk-footer a:hover {
	color: var(--wp--preset--color--white);
	text-decoration: underline;
}

.fbbfk-footer__links a,
.fbbfk-footer__contact a {
	display: inline-block;
	padding-block: 0.3rem;
}

.fbbfk-footer__contact {
	display: flex;
	flex-direction: column;
	font-style: normal;
	font-size: var(--wp--preset--font-size--small);
	color: rgb(255 255 255 / 0.85);
	overflow-wrap: break-word;
}

.fbbfk-footer__bottom {
	padding-top: var(--wp--preset--spacing--40);
	border-top: 1px solid rgb(255 255 255 / 0.14);
	color: rgb(255 255 255 / 0.65);
}

.fbbfk-footer__bottom p {
	margin: 0;
}

.fbbfk-social .wp-social-link {
	color: var(--wp--preset--color--white);
}

.fbbfk-social .wp-social-link a {
	padding: 0.5rem;
}

/* ---------- Contact ---------- */

.fbbfk-contact .is-style-card h2 {
	margin: 0;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--blue);
}

.fbbfk-contact .is-style-card p {
	margin: 0;
	overflow-wrap: break-word;
}

.wpcf7 :where(input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]), textarea, select) {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-height: 48px;
	padding: 0.65rem 0.85rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--fbbfk-radius);
	font: inherit;
}

.wpcf7 :where(input, textarea):focus {
	outline: 2px solid var(--wp--preset--color--blue);
	outline-offset: 1px;
}

.wpcf7 label {
	display: block;
	font-weight: 600;
}

.wpcf7 input[type="submit"] {
	min-height: 48px;
	padding: 0.8rem 1.75rem;
	border: 0;
	border-radius: var(--fbbfk-radius);
	background: var(--wp--preset--color--blue);
	color: var(--wp--preset--color--white);
	font-family: var(--wp--preset--font-family--display);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	cursor: pointer;
}

.wpcf7 .wpcf7-acceptance label {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	font-weight: 400;
	font-size: var(--wp--preset--font-size--small);
	cursor: pointer;
}

.wpcf7 .wpcf7-acceptance input[type="checkbox"] {
	flex: 0 0 auto;
	width: 1.25rem;
	height: 1.25rem;
	margin: 0.15rem 0 0;
	accent-color: var(--wp--preset--color--blue);
}

.wpcf7 .wpcf7-list-item {
	margin: 0;
}

.wpcf7 .wpcf7-not-valid-tip {
	margin-top: 0.3rem;
	font-size: var(--wp--preset--font-size--small);
	color: #B42318;
}

.wpcf7 .wpcf7-not-valid {
	border-color: #B42318 !important;
}

.wpcf7 form .wpcf7-response-output {
	margin: 1rem 0 0;
	padding: 0.85rem 1rem;
	border-radius: var(--fbbfk-radius);
}

.wpcf7 input[type="submit"]:disabled {
	opacity: 0.6;
	cursor: wait;
}

.wpcf7 input[type="submit"]:hover {
	background: var(--wp--preset--color--blue-dark);
}
