/*
Theme Name: FONP Modern
Theme URI: https://fonp.pt/
Author: Federação Ornitológica Nacional Portuguesa
Description: Tema de blocos institucional da FONP, inspirado num caderno de campo atlântico.
Requires at least: 6.9
Tested up to: 6.9
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: fonp-modern
Tags: full-site-editing, block-patterns, accessibility-ready, wide-blocks
*/

:root {
	--fonp-gutter: clamp(1rem, 4vw, 3rem);
	--fonp-frame-inset: clamp(2rem, 8vw, 6rem);
	--fonp-content-size: var(--wp--style--global--content-size, 47.5rem);
	--fonp-wide-size: var(--wp--style--global--wide-size, 78rem);
	--fonp-radius: 0.5rem;
	--fonp-control-height: 2.75rem;
	--fonp-shadow-card: 0 0.125rem 0.5rem rgba(16, 45, 42, 0.08);
	--fonp-shadow-raised: 0 0.5rem 1.5rem rgba(16, 45, 42, 0.12);
	--fonp-transition: 160ms ease;
}

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

html {
	scroll-padding-top: 8.5rem;
}

body {
	background-color: var(--wp--preset--color--paper);
	background-image: url("./assets/images/feather-wing.svg");
	background-position: calc(100% + 4rem) 10rem;
	background-repeat: no-repeat;
	background-size: clamp(13rem, 25vw, 22rem) auto;
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--body);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

body.admin-bar .fonp-header-part {
	top: 32px;
}

body.admin-bar .fonp-skip-link {
	top: 2.75rem;
}

::selection {
	background: var(--wp--preset--color--ochre-100);
	color: var(--wp--preset--color--pine-950);
}

img,
svg,
video {
	display: block;
	max-width: 100%;
}

img:not([src]),
img[src=""] {
	display: none;
}

a {
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.18em;
	transition:
		color var(--fonp-transition),
		text-decoration-color var(--fonp-transition);
}

a:hover {
	color: var(--wp--preset--color--pine-800);
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
	outline: 0.1875rem solid #fff;
	outline-offset: 0.125rem;
	box-shadow:
		0 0 0 0.3125rem var(--wp--preset--color--pine-950),
		0 0 0 0.5rem #fff;
}

button,
input,
select,
textarea {
	font: inherit;
}

button,
input[type="button"],
input[type="submit"],
input[type="reset"],
.wp-element-button {
	min-height: var(--fonp-control-height);
}

input:not([type="checkbox"], [type="radio"]),
select,
textarea {
	min-height: var(--fonp-control-height);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 0.25rem;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	padding: 0.625rem 0.75rem;
}

textarea {
	min-height: 8rem;
	resize: vertical;
}

hr {
	border-color: var(--wp--preset--color--border);
}

.fonp-skip-link {
	position: fixed;
	top: 0.75rem;
	left: 0.75rem;
	z-index: 10000;
	padding: 0.75rem 1rem;
	border-radius: 0.25rem;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--pine-950);
	font-weight: 700;
	transform: translateY(-200%);
	transition: transform var(--fonp-transition);
}

.fonp-skip-link:focus {
	transform: translateY(0);
}

.wp-site-blocks {
	min-height: 100vh;
}

.wp-site-blocks > .fonp-utility-part,
.wp-site-blocks > .fonp-header-part,
.wp-site-blocks > footer.wp-block-template-part {
	margin-block-start: 0;
}

.fonp-main {
	min-height: 55vh;
	margin-block-start: 0;
}

.fonp-section {
	padding-block: clamp(2.5rem, 7vw, 6rem);
}

.fonp-section + .fonp-section {
	border-top: 1px solid var(--wp--preset--color--mist);
}

.fonp-eyebrow {
	color: var(--wp--preset--color--ochre-700);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 750;
	letter-spacing: 0.09em;
	line-height: 1.3;
	text-transform: uppercase;
}

.fonp-prose,
.entry-content {
	overflow-wrap: anywhere;
}

.fonp-prose > :first-child,
.entry-content > :first-child {
	margin-block-start: 0;
}

.fonp-prose > :last-child,
.entry-content > :last-child {
	margin-block-end: 0;
}

/* Header */
.fonp-site-header {
	margin-block-start: 0;
}

.fonp-header-part {
	position: sticky;
	top: 0;
	z-index: 1000;
	margin-block-start: 0;
}

.fonp-utility-bar {
	min-height: 2.375rem;
	background: var(--wp--preset--color--pine-800);
	color: var(--wp--preset--color--white);
	font-size: 0.8125rem;
	letter-spacing: 0.02em;
}

.fonp-utility-inner {
	min-height: 2.375rem;
	padding-block: 0.35rem;
}

.fonp-utility-bar p {
	margin: 0;
}

.fonp-utility-bar a {
	color: var(--wp--preset--color--white);
}

.fonp-utility-navigation {
	margin-left: auto;
}

.fonp-utility-navigation .wp-block-navigation__container {
	gap: 0.125rem 0.875rem;
}

.fonp-utility-navigation .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	min-height: var(--fonp-control-height);
	padding-inline: 0.125rem;
	color: var(--wp--preset--color--white);
	font-size: 0.75rem;
	font-weight: 650;
	text-decoration: none;
}

.fonp-utility-navigation .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--ochre-100);
	text-decoration: underline;
}

.fonp-main-header {
	position: relative;
	margin-block-start: 0;
	border-bottom: 1px solid var(--wp--preset--color--border);
	background: var(--wp--preset--color--paper);
	box-shadow: 0 0.125rem 0.75rem rgba(16, 45, 42, 0.06);
}

.fonp-header-inner {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: clamp(0.75rem, 2.5vw, 2rem);
	min-height: 5.25rem;
	padding-block: 0.625rem;
}

.fonp-brand {
	min-width: 0;
}

.fonp-brand .wp-block-site-logo {
	margin: 0;
}

.fonp-brand .wp-block-site-logo img {
	width: auto;
	max-width: min(11rem, 30vw);
	max-height: 3.875rem;
	object-fit: contain;
}

.fonp-brand .wp-block-site-title {
	margin: 0;
	color: var(--wp--preset--color--pine-950);
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.1;
}

.fonp-primary-navigation {
	justify-self: end;
}

.fonp-primary-navigation .wp-block-navigation__container {
	gap: clamp(0.25rem, 1.5vw, 1.25rem);
}

.fonp-primary-navigation .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	min-height: var(--fonp-control-height);
	padding-inline: 0.25rem;
	color: var(--wp--preset--color--ink);
	font-size: 0.9375rem;
	font-weight: 650;
	text-decoration: none;
}

.fonp-primary-navigation .wp-block-navigation-submenu__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	min-height: 2.75rem;
	margin-inline-start: -0.5rem;
}

.fonp-primary-navigation .current-menu-item > .wp-block-navigation-item__content,
.fonp-primary-navigation .current-menu-ancestor > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--pine-800);
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--ochre-500);
	text-decoration-thickness: 0.16rem;
	text-underline-offset: 0.45rem;
}

.fonp-primary-navigation .wp-block-navigation__submenu-container {
	min-width: 14rem !important;
	padding: 0.5rem !important;
	border: 1px solid var(--wp--preset--color--border) !important;
	border-radius: var(--fonp-radius);
	background: var(--wp--preset--color--paper) !important;
	box-shadow: var(--fonp-shadow-raised);
}

.fonp-primary-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	width: 100%;
	padding: 0.625rem 0.75rem;
	border-radius: 0.25rem;
}

.fonp-primary-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--mist);
}

.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: var(--fonp-control-height);
	min-height: var(--fonp-control-height);
	border-radius: 0.25rem;
	color: var(--wp--preset--color--pine-950);
}

.wp-block-navigation__responsive-container.is-menu-open {
	padding: var(--fonp-gutter);
	background: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--ink);
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 4rem;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(1.25rem, 5vw, 1.75rem);
}

.fonp-creators-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--fonp-control-height);
	margin: 0;
	color: var(--wp--preset--color--atlantic-700);
	font-size: 0.875rem;
	font-weight: 750;
	white-space: nowrap;
}

.fonp-creators-link a {
	display: inline-flex;
	align-items: center;
	min-height: var(--fonp-control-height);
	color: inherit;
}

.fonp-creators-link:hover,
.fonp-creators-link a:hover {
	color: var(--wp--preset--color--pine-800);
}

/* Footer */
.fonp-site-footer {
	margin-block-start: clamp(3rem, 8vw, 7rem);
	border-top: 0.25rem solid var(--wp--preset--color--ochre-500);
	background: var(--wp--preset--color--pine-950);
	color: var(--wp--preset--color--white);
}

.fonp-site-footer a {
	color: var(--wp--preset--color--white);
}

.fonp-site-footer a:hover {
	color: var(--wp--preset--color--ochre-100);
}

.fonp-footer-inner {
	padding-block: clamp(3rem, 7vw, 5rem) 1.5rem;
}

.fonp-footer-grid {
	align-items: flex-start !important;
	gap: clamp(2rem, 5vw, 4.5rem) !important;
}

.fonp-site-footer h2,
.fonp-site-footer h3 {
	margin-block: 0 1rem;
	color: var(--wp--preset--color--ochre-100);
	font-size: 1.125rem;
}

.fonp-site-footer p {
	color: var(--wp--preset--color--pine-100);
	font-size: 0.9375rem;
}

.fonp-site-footer .wp-block-site-title {
	color: var(--wp--preset--color--white);
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.5rem;
}

.fonp-footer-nav .wp-block-navigation__container {
	align-items: flex-start;
	gap: 0.25rem;
}

.fonp-footer-nav .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	min-height: var(--fonp-control-height);
	font-size: 0.9375rem;
}

.fonp-footer-search .wp-block-search__inside-wrapper {
	border: 0;
}

.fonp-footer-search .wp-block-search__input {
	border-color: var(--wp--preset--color--pine-100);
}

.fonp-footer-search .wp-block-search__button {
	min-height: var(--fonp-control-height);
	margin-left: 0.375rem;
	border: 1px solid var(--wp--preset--color--ochre-500);
	border-radius: 0.25rem;
	background: var(--wp--preset--color--ochre-500);
	color: var(--wp--preset--color--pine-950);
	font-weight: 750;
}

.fonp-footer-bottom {
	margin-top: 2.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid rgba(217, 231, 226, 0.24);
}

.fonp-footer-bottom p {
	margin: 0;
	font-size: 0.8125rem;
}

.fonp-footer-creators {
	margin-block: 1rem 0;
}

.fonp-footer-creators a {
	display: inline-flex;
	align-items: center;
	min-height: var(--fonp-control-height);
	font-weight: 750;
}

/* Page and post framing */
.fonp-page-shell,
.fonp-archive-shell,
.fonp-search-shell,
.fonp-error-shell {
	padding-block: clamp(2.75rem, 7vw, 6rem);
}

.fonp-page-content,
.fonp-post-content {
	padding-block: clamp(2.5rem, 6vw, 5rem);
}

.fonp-page-hero,
.wp-block-fonp-page-hero {
	position: relative;
	overflow: clip;
	margin-block-start: 0;
	padding-block: clamp(2.75rem, 7vw, 5.5rem);
	border-bottom: 1px solid var(--wp--preset--color--border);
	background: var(--wp--preset--color--atlantic-100);
}

.fonp-page-hero::after,
.wp-block-fonp-page-hero::after {
	content: "";
	position: absolute;
	right: clamp(1rem, 7vw, 7rem);
	bottom: -4rem;
	width: clamp(8rem, 18vw, 14rem);
	aspect-ratio: 1;
	border: 1px solid rgba(31, 95, 120, 0.18);
	border-radius: 50%;
	pointer-events: none;
}

.fonp-page-hero > *,
.wp-block-fonp-page-hero > * {
	position: relative;
	z-index: 1;
}

.fonp-post-header {
	padding-block: clamp(2.75rem, 7vw, 6rem) clamp(2rem, 5vw, 4rem);
	border-bottom: 1px solid var(--wp--preset--color--border);
	background: var(--wp--preset--color--sand);
}

.fonp-post-header .wp-block-post-title {
	max-width: 18ch;
	margin-inline: auto;
	text-wrap: balance;
}

.fonp-post-meta {
	color: var(--wp--preset--color--slate);
	font-size: var(--wp--preset--font-size--small);
}

.fonp-post-meta a {
	color: inherit;
}

.fonp-featured-image {
	overflow: clip;
	border-radius: var(--fonp-radius);
	box-shadow: var(--fonp-shadow-card);
}

.fonp-featured-image img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.fonp-post-navigation {
	margin-top: clamp(3rem, 8vw, 6rem);
	padding-top: 2rem;
	border-top: 1px solid var(--wp--preset--color--border);
}

.fonp-post-navigation a {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
}

/* Dynamic FONP blocks and shared component contracts */
:where(
	.wp-block-fonp-home,
	.wp-block-fonp-news-grid,
	.wp-block-fonp-event-directory,
	.wp-block-fonp-event-details,
	.wp-block-fonp-club-directory,
	.wp-block-fonp-club-details
) {
	margin-block-start: 0;
}

:where(
	.wp-block-fonp-news-grid,
	.wp-block-fonp-event-directory,
	.wp-block-fonp-event-details,
	.wp-block-fonp-club-directory,
	.wp-block-fonp-club-details
) {
	padding-block: clamp(2.75rem, 7vw, 6rem);
}

:where(
	.wp-block-fonp-home,
	.wp-block-fonp-news-grid,
	.wp-block-fonp-event-directory,
	.wp-block-fonp-event-details,
	.wp-block-fonp-club-directory,
	.wp-block-fonp-club-details
) :where(a, button, input, select) {
	min-height: var(--fonp-control-height);
}

:where(.fonp-home-hero, .fonp-home__hero, .fonp-hero) {
	position: relative;
	overflow: clip;
	padding-block: clamp(3.5rem, 10vw, 8rem);
	background-color: var(--wp--preset--color--pine-950);
	background-image: url("./assets/images/feather-wing.svg");
	background-position: calc(100% - var(--fonp-gutter)) center;
	background-repeat: no-repeat;
	background-size: clamp(11rem, 24vw, 20rem) auto;
	color: var(--wp--preset--color--white);
}

:where(.fonp-home-hero, .fonp-home__hero, .fonp-hero) :where(h1, h2, h3) {
	max-width: 16ch;
	color: var(--wp--preset--color--white);
	text-wrap: balance;
}

:where(.fonp-home-hero, .fonp-home__hero, .fonp-hero) p {
	max-width: 42rem;
	color: var(--wp--preset--color--pine-100);
	font-size: var(--wp--preset--font-size--lead);
}

:where(.fonp-section-heading, .fonp-section__heading) {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: clamp(1.5rem, 4vw, 2.5rem);
}

:where(
	.fonp-card-grid,
	.fonp-grid,
	.fonp-directory-grid,
	.fonp-directory__grid,
	.fonp-home__grid,
	.fonp-news-grid,
	.fonp-event-grid,
	.fonp-club-grid
) {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1rem, 2.5vw, 1.75rem);
}

:where(
	.fonp-card,
	.fonp-card-item,
	.fonp-news-card,
	.fonp-news-grid__item,
	.fonp-event-card,
	.fonp-event-directory__item,
	.fonp-club-card,
	.fonp-club-directory__item,
	.wp-block-post-template > li
) {
	overflow: clip;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--fonp-radius);
	background: var(--wp--preset--color--white);
	box-shadow: var(--fonp-shadow-card);
	transition:
		border-color var(--fonp-transition),
		box-shadow var(--fonp-transition),
		transform var(--fonp-transition);
}

:where(
	.fonp-card,
	.fonp-card-item,
	.fonp-news-card,
	.fonp-news-grid__item,
	.fonp-event-card,
	.fonp-event-directory__item,
	.fonp-club-card,
	.fonp-club-directory__item,
	.wp-block-post-template > li
):hover {
	border-color: var(--wp--preset--color--pine-100);
	box-shadow: var(--fonp-shadow-raised);
	transform: translateY(-0.125rem);
}

:where(
	.fonp-card,
	.fonp-card-item,
	.fonp-news-card,
	.fonp-news-grid__item,
	.fonp-event-card,
	.fonp-event-directory__item,
	.fonp-club-card,
	.fonp-club-directory__item
) :where(figure, .fonp-card-media, .fonp-card__media) {
	margin: 0;
}

:where(
	.fonp-card,
	.fonp-card-item,
	.fonp-news-card,
	.fonp-news-grid__item,
	.fonp-event-card,
	.fonp-event-directory__item,
	.fonp-club-card,
	.fonp-club-directory__item
) :where(img, .fonp-card-media img, .fonp-card__media img) {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

:where(
	.fonp-card-body,
	.fonp-card-content,
	.fonp-card__body,
	.fonp-card__content,
	.fonp-news-card__content,
	.fonp-news-grid__content,
	.fonp-event-card__content,
	.fonp-event-directory__content,
	.fonp-club-card__content,
	.fonp-club-directory__content
) {
	padding: clamp(1rem, 2.5vw, 1.5rem);
}

:where(
	.fonp-card,
	.fonp-card-item,
	.fonp-news-card,
	.fonp-news-grid__item,
	.fonp-event-card,
	.fonp-event-directory__item,
	.fonp-club-card,
	.fonp-club-directory__item
) :where(h2, h3) {
	margin-block: 0.35rem 0.75rem;
	font-size: clamp(1.25rem, 2vw, 1.625rem);
}

:where(
	.fonp-card,
	.fonp-card-item,
	.fonp-news-card,
	.fonp-news-grid__item,
	.fonp-event-card,
	.fonp-event-directory__item,
	.fonp-club-card,
	.fonp-club-directory__item
) :where(h2, h3) a {
	color: var(--wp--preset--color--pine-950);
	text-decoration: none;
}

:where(
	.fonp-card,
	.fonp-card-item,
	.fonp-news-card,
	.fonp-news-grid__item,
	.fonp-event-card,
	.fonp-event-directory__item,
	.fonp-club-card,
	.fonp-club-directory__item
) :where(h2, h3) a:hover {
	color: var(--wp--preset--color--atlantic-700);
	text-decoration: underline;
}

:where(.fonp-card-meta, .fonp-card__meta, .fonp-meta, .fonp-date, .fonp-location) {
	color: var(--wp--preset--color--slate);
	font-size: var(--wp--preset--font-size--small);
}

:where(.fonp-badge, .fonp-card__kicker, .fonp-kicker, .fonp-label, .fonp-taxonomy) {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	min-height: 1.75rem;
	padding: 0.25rem 0.625rem;
	border-radius: 999px;
	background: var(--wp--preset--color--ochre-100);
	color: var(--wp--preset--color--ochre-700);
	font-size: 0.75rem;
	font-weight: 750;
	letter-spacing: 0.04em;
	line-height: 1.1;
	text-transform: uppercase;
}

:where(.fonp-filter-bar, .fonp-directory-filters, .fonp-directory__filters, .fonp-search-form) {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	gap: 0.75rem;
	margin-bottom: clamp(1.5rem, 4vw, 2.5rem);
	padding: 1rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--fonp-radius);
	background: var(--wp--preset--color--white);
}

:where(.fonp-filter-bar, .fonp-directory-filters, .fonp-directory__filters, .fonp-search-form) label {
	color: var(--wp--preset--color--pine-950);
	font-size: 0.8125rem;
	font-weight: 700;
}

:where(.fonp-document-list, .fonp-documents, .fonp-documents__list) {
	display: grid;
	gap: 0.625rem;
	padding: 0;
	list-style: none;
}

:where(.fonp-document-row, .fonp-document, .fonp-document-item, .fonp-documents__item) {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 3.5rem;
	padding: 0.75rem 1rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 0.375rem;
	background: var(--wp--preset--color--white);
}

:where(.fonp-document-row, .fonp-document, .fonp-document-item, .fonp-documents__item) a {
	color: var(--wp--preset--color--pine-950);
	font-weight: 700;
}

:where(.fonp-empty-state, .fonp-notice) {
	padding: clamp(1.5rem, 4vw, 2.5rem);
	border: 1px solid var(--wp--preset--color--border);
	border-left: 0.25rem solid var(--wp--preset--color--ochre-500);
	border-radius: var(--fonp-radius);
	background: var(--wp--preset--color--white);
}

:where(.fonp-detail-layout, .fonp-detail__layout, .fonp-details-grid) {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(16rem, 1fr);
	gap: clamp(2rem, 5vw, 4rem);
	align-items: start;
}

:where(.fonp-detail-aside, .fonp-detail__sidebar, .fonp-details-sidebar) {
	padding: 1.25rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--fonp-radius);
	background: var(--wp--preset--color--white);
	box-shadow: var(--fonp-shadow-card);
}

/* Exact contracts emitted by the server-rendered FONP blocks */
:where(
	.fonp-home,
	.fonp-news-directory,
	.fonp-event-directory,
	.fonp-event-details,
	.fonp-club-directory,
	.fonp-club-details,
	.fonp-judges-list,
	.fonp-entities-list,
	.fonp-documents-list,
	.fonp-videos-list,
	.fonp-contact-details,
	.fonp-contact-form
) {
	min-width: 0;
}

:where(
	.fonp-home,
	.fonp-news-directory,
	.fonp-event-directory,
	.fonp-event-details,
	.fonp-club-directory,
	.fonp-club-details,
	.fonp-judges-list,
	.fonp-entities-list,
	.fonp-documents-list,
	.fonp-videos-list,
	.fonp-contact-details,
	.fonp-contact-form
) :where(h1, h2, h3, p, a, dt, dd, li) {
	max-width: 100%;
	overflow-wrap: anywhere;
}

.fonp-home-hero__inner,
.fonp-page-hero__inner,
.fonp-home-promotion,
.fonp-home-section,
.fonp-home-service,
.fonp-news-directory,
.fonp-event-directory,
.fonp-club-directory {
	width: min(calc(100% - var(--fonp-frame-inset)), var(--fonp-wide-size));
	margin-inline: auto;
}

.fonp-event-details,
.fonp-club-details {
	width: min(calc(100% - var(--fonp-frame-inset)), var(--fonp-content-size));
	margin-inline: auto;
}

.fonp-judges-list,
.fonp-entities-list,
.fonp-videos-list {
	width: 100%;
	max-width: var(--fonp-wide-size);
	margin-inline: auto;
}

.fonp-documents-list,
.fonp-contact-details,
.fonp-contact-form {
	width: 100%;
	max-width: var(--fonp-content-size);
	margin-inline: auto;
}

.fonp-home-hero__inner {
	position: relative;
	z-index: 1;
}

.fonp-home-hero__eyebrow,
.fonp-page-hero__eyebrow {
	margin-block: 0 0.75rem;
	color: var(--wp--preset--color--ochre-100);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 750;
	letter-spacing: 0.09em;
	line-height: 1.35;
	text-transform: uppercase;
}

.fonp-home-hero .fonp-home-hero__title {
	max-width: 18ch;
	margin-block: 0;
	color: var(--wp--preset--color--white);
	font-size: var(--wp--preset--font-size--display);
	text-wrap: balance;
}

.fonp-home-hero .fonp-home-hero__description {
	max-width: 42rem;
	margin-block: 1.25rem 0;
	color: var(--wp--preset--color--pine-100);
	font-size: var(--wp--preset--font-size--lead);
}

.fonp-announcement {
	width: fit-content;
	max-width: 42rem;
	margin-block: 1.25rem 0;
	padding: 0.75rem 1rem;
	border: 1px solid rgba(244, 231, 201, 0.42);
	border-left: 0.25rem solid var(--wp--preset--color--ochre-500);
	border-radius: 0.25rem;
	background: rgba(255, 255, 255, 0.06);
	color: var(--wp--preset--color--white);
}

.fonp-home-hero__actions,
.fonp-detail-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: clamp(1.5rem, 4vw, 2.25rem);
}

.fonp-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	max-width: 100%;
	min-height: var(--fonp-control-height);
	padding: 0.625rem 1rem;
	border: 1px solid transparent;
	border-radius: 0.25rem;
	font-size: 0.9375rem;
	font-weight: 750;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	transition:
		background-color var(--fonp-transition),
		border-color var(--fonp-transition),
		color var(--fonp-transition),
		transform var(--fonp-transition);
}

.fonp-button--primary {
	border-color: var(--wp--preset--color--pine-800);
	background: var(--wp--preset--color--pine-800);
	color: var(--wp--preset--color--white);
}

.fonp-button--primary:hover {
	border-color: var(--wp--preset--color--pine-950);
	background: var(--wp--preset--color--pine-950);
	color: var(--wp--preset--color--white);
	transform: translateY(-0.0625rem);
}

.fonp-button--secondary {
	border-color: var(--wp--preset--color--atlantic-700);
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--atlantic-700);
}

.fonp-button--secondary:hover {
	border-color: var(--wp--preset--color--pine-800);
	background: var(--wp--preset--color--mist);
	color: var(--wp--preset--color--pine-950);
	transform: translateY(-0.0625rem);
}

.fonp-home-hero .fonp-button--primary {
	border-color: var(--wp--preset--color--ochre-500);
	background: var(--wp--preset--color--ochre-500);
	color: var(--wp--preset--color--pine-950);
}

.fonp-home-hero .fonp-button--primary:hover {
	border-color: var(--wp--preset--color--ochre-100);
	background: var(--wp--preset--color--ochre-100);
	color: var(--wp--preset--color--pine-950);
}

.fonp-home-hero .fonp-button--secondary {
	border-color: var(--wp--preset--color--pine-100);
	background: transparent;
	color: var(--wp--preset--color--white);
}

.fonp-home-hero .fonp-button--secondary:hover {
	border-color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--pine-950);
}

.fonp-page-hero__inner {
	position: relative;
	z-index: 1;
}

.fonp-page-hero .fonp-page-hero__eyebrow {
	color: var(--wp--preset--color--ochre-700);
}

.fonp-page-hero .fonp-page-hero__title {
	max-width: 22ch;
	margin-block: 0;
	color: var(--wp--preset--color--pine-950);
	text-wrap: balance;
}

.fonp-page-hero .fonp-page-hero__description {
	max-width: 50rem;
	margin-block: 1rem 0;
	color: var(--wp--preset--color--slate);
	font-size: var(--wp--preset--font-size--lead);
}

.fonp-home-promotion {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	overflow: hidden;
	margin-block: clamp(2.5rem, 7vw, 5rem);
	border: 1px solid var(--wp--preset--color--border);
	border-top: 0.25rem solid var(--wp--preset--color--ochre-500);
	border-radius: var(--fonp-radius);
	background: var(--wp--preset--color--white);
	box-shadow: var(--fonp-shadow-card);
}

.fonp-home-promotion__media {
	min-width: 0;
	margin: 0;
	background: var(--wp--preset--color--mist);
}

.fonp-home-promotion__media img {
	width: 100%;
	height: 100%;
	min-height: 18rem;
	object-fit: cover;
}

.fonp-home-promotion__body {
	align-self: center;
	min-width: 0;
	padding: clamp(1.5rem, 5vw, 3.5rem);
}

.fonp-home-promotion__body:only-child {
	grid-column: 1 / -1;
}

.fonp-home-promotion__body h2 {
	margin-block: 0 0.75rem;
}

.fonp-home-promotion__subtitle {
	margin-block: 0 1rem;
	color: var(--wp--preset--color--ochre-700);
	font-size: var(--wp--preset--font-size--lead);
	font-weight: 700;
}

.fonp-home-promotion__content > :first-child {
	margin-block-start: 0;
}

.fonp-home-promotion__content > :last-child {
	margin-block-end: 0;
}

.fonp-home-promotion__contacts,
.fonp-entity-card__contacts {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem 1rem;
	margin: 1.25rem 0 0;
	padding: 0;
	list-style: none;
}

.fonp-home-promotion__contacts a,
.fonp-entity-card__contacts a {
	display: inline-flex;
	align-items: center;
	min-height: var(--fonp-control-height);
}

.fonp-home-section {
	padding-block: clamp(2.75rem, 7vw, 5.5rem);
}

.fonp-home-promotion + .fonp-home-section {
	padding-block-start: 0;
}

.fonp-home-section + .fonp-home-section {
	border-top: 1px solid var(--wp--preset--color--mist);
}

.fonp-section-heading h2 {
	margin: 0;
}

.fonp-section-link {
	display: inline-flex;
	align-items: center;
	min-height: var(--fonp-control-height);
	color: var(--wp--preset--color--atlantic-700);
	font-weight: 750;
}

.fonp-home-service {
	margin-block: 0 clamp(2.75rem, 7vw, 5.5rem);
	padding: clamp(1.5rem, 4vw, 2.5rem);
	border: 1px solid var(--wp--preset--color--border);
	border-left: 0.25rem solid var(--wp--preset--color--atlantic-700);
	border-radius: var(--fonp-radius);
	background: var(--wp--preset--color--atlantic-100);
}

.fonp-home-service h2 {
	margin-block-start: 0;
}

.fonp-directory-heading {
	max-width: 50rem;
	margin-bottom: clamp(2rem, 5vw, 3.5rem);
}

.fonp-directory-heading h1 {
	margin-block: 0 0.75rem;
	text-wrap: balance;
}

.fonp-directory-heading p {
	margin: 0;
	color: var(--wp--preset--color--slate);
	font-size: var(--wp--preset--font-size--lead);
}

.fonp-event-group + .fonp-event-group,
.fonp-judge-group + .fonp-judge-group,
.fonp-entity-group + .fonp-entity-group,
.fonp-document-group + .fonp-document-group {
	margin-top: clamp(2.75rem, 7vw, 5rem);
	padding-top: clamp(2rem, 5vw, 3.5rem);
	border-top: 1px solid var(--wp--preset--color--border);
}

.fonp-event-group > h2,
.fonp-judge-group > h2,
.fonp-entity-group > h2,
.fonp-document-group > h2 {
	margin-block: 0 clamp(1.25rem, 3vw, 2rem);
}

:where(.fonp-filter-bar, .fonp-directory-filters, .fonp-directory__filters, .fonp-search-form) > * {
	min-width: 0;
}

:where(.fonp-filter-bar, .fonp-directory-filters, .fonp-directory__filters, .fonp-search-form) :where(input, select) {
	width: 100%;
}

.fonp-card-grid {
	width: 100%;
	min-width: 0;
}

.fonp-card-grid > * {
	min-width: 0;
}

.fonp-card {
	display: flex;
	min-width: 0;
	flex-direction: column;
}

.fonp-featured-media {
	min-width: 0;
	margin: 0;
}

.fonp-card > .fonp-featured-media {
	overflow: hidden;
	aspect-ratio: 16 / 10;
	background: var(--wp--preset--color--mist);
}

.fonp-card > .fonp-featured-media .fonp-featured-image {
	width: 100%;
	height: 100%;
	aspect-ratio: auto;
	border-radius: 0;
	box-shadow: none;
	object-fit: cover;
}

.fonp-card__body {
	display: flex;
	min-width: 0;
	flex: 1;
	flex-direction: column;
	padding: clamp(1rem, 2.5vw, 1.5rem);
}

.fonp-card__kicker {
	margin-block: 0 0.625rem;
}

.fonp-card__meta,
.fonp-club-card__acronym,
.fonp-club-card__location,
.fonp-event-card__venue,
.fonp-entity-card__role {
	margin-block: 0 0.625rem;
	color: var(--wp--preset--color--slate);
	font-size: var(--wp--preset--font-size--small);
}

.fonp-club-card__acronym,
.fonp-entity-card__role {
	color: var(--wp--preset--color--ochre-700);
	font-weight: 750;
	letter-spacing: 0.035em;
	text-transform: uppercase;
}

.fonp-card__title {
	margin-block: 0 0.75rem;
	font-size: clamp(1.2rem, 2vw, 1.5rem);
	text-wrap: balance;
}

.fonp-card__title,
.fonp-card__title a,
.fonp-card__excerpt {
	overflow-wrap: anywhere;
}

.fonp-card__title a {
	display: inline-flex;
	align-items: center;
	min-height: var(--fonp-control-height);
	color: var(--wp--preset--color--pine-950);
	text-decoration: none;
}

.fonp-card__title a:hover {
	color: var(--wp--preset--color--atlantic-700);
	text-decoration: underline;
}

.fonp-card__excerpt {
	margin-block: 0 1rem;
}

.fonp-card__link {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	min-height: var(--fonp-control-height);
	margin-top: auto;
	color: var(--wp--preset--color--atlantic-700);
	font-weight: 750;
}

.fonp-club-card .fonp-featured-image,
.fonp-entity-card .fonp-featured-image {
	padding: 0.75rem;
	object-fit: contain;
}

.fonp-detail-header {
	margin-bottom: clamp(1.75rem, 5vw, 3rem);
	padding-bottom: clamp(1.25rem, 3vw, 2rem);
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.fonp-detail-header h1 {
	margin-block: 0;
	text-wrap: balance;
}

.fonp-detail-kicker {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	min-height: 1.75rem;
	margin-block: 0 0.75rem;
	padding: 0.25rem 0.625rem;
	border-radius: 999px;
	background: var(--wp--preset--color--ochre-100);
	color: var(--wp--preset--color--ochre-700);
	font-size: 0.75rem;
	font-weight: 750;
	letter-spacing: 0.04em;
	line-height: 1.1;
	text-transform: uppercase;
}

.fonp-event-date {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.75rem;
	margin-block: 1rem 0;
	color: var(--wp--preset--color--pine-800);
	font-size: var(--wp--preset--font-size--lead);
	font-weight: 700;
}

.fonp-event-all-day {
	display: inline-flex;
	align-items: center;
	min-height: 1.75rem;
	padding: 0.2rem 0.55rem;
	border-radius: 999px;
	background: var(--wp--preset--color--pine-100);
	color: var(--wp--preset--color--pine-950);
	font-size: 0.75rem;
	font-weight: 750;
}

.fonp-event-details > .fonp-featured-media,
.fonp-club-details > .fonp-featured-media {
	overflow: hidden;
	margin-bottom: clamp(1.75rem, 5vw, 3rem);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--fonp-radius);
	background: var(--wp--preset--color--mist);
	box-shadow: var(--fonp-shadow-card);
}

.fonp-event-details > .fonp-featured-media .fonp-featured-image,
.fonp-club-details > .fonp-featured-media .fonp-featured-image {
	width: 100%;
	height: auto;
	border-radius: 0;
	box-shadow: none;
}

.fonp-detail-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0;
	margin-block: 0 clamp(2rem, 5vw, 3.5rem);
	padding: 0;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--fonp-radius);
	background: var(--wp--preset--color--white);
	box-shadow: var(--fonp-shadow-card);
}

.fonp-detail-list__item {
	min-width: 0;
	padding: 1rem 1.125rem;
}

.fonp-detail-list__item + .fonp-detail-list__item {
	border-left: 1px solid var(--wp--preset--color--border);
}

.fonp-detail-list dt {
	margin-bottom: 0.25rem;
	color: var(--wp--preset--color--ochre-700);
	font-size: 0.75rem;
	font-weight: 750;
	letter-spacing: 0.055em;
	text-transform: uppercase;
}

.fonp-detail-list dd {
	min-width: 0;
	margin: 0;
}

.fonp-detail-list a {
	display: inline-flex;
	align-items: center;
	min-height: var(--fonp-control-height);
}

.fonp-detail-content {
	margin-block: clamp(2rem, 5vw, 3.5rem);
	overflow-wrap: anywhere;
}

.fonp-detail-content > :first-child {
	margin-block-start: 0;
}

.fonp-detail-content > :last-child {
	margin-block-end: 0;
}

.fonp-associated-documents {
	margin-top: clamp(2rem, 5vw, 3.5rem);
}

.fonp-associated-documents > h2 {
	margin-bottom: 1rem;
}

.fonp-judge-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 13.5rem), 1fr));
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.fonp-judge-card {
	min-width: 0;
	padding: 1.25rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--fonp-radius);
	background: var(--wp--preset--color--white);
	box-shadow: var(--fonp-shadow-card);
}

.fonp-judge-card .fonp-featured-media {
	overflow: hidden;
	width: 5rem;
	margin-bottom: 1rem;
	border-radius: 50%;
	background: var(--wp--preset--color--mist);
}

.fonp-judge-card .fonp-featured-image {
	width: 100%;
	aspect-ratio: 1;
	border-radius: 0;
	box-shadow: none;
	object-fit: cover;
}

.fonp-judge-card__name {
	margin-block: 0 0.625rem;
	font-size: var(--wp--preset--font-size--lead);
}

.fonp-judge-card__credential,
.fonp-judge-card__club,
.fonp-judge-card__status {
	margin-block: 0.25rem 0;
	color: var(--wp--preset--color--slate);
	font-size: var(--wp--preset--font-size--small);
}

.fonp-judge-card__status {
	display: inline-flex;
	width: fit-content;
	margin-top: 0.75rem;
	padding: 0.2rem 0.55rem;
	border-radius: 999px;
	background: var(--wp--preset--color--sand);
	color: var(--wp--preset--color--russet-700);
	font-weight: 750;
}

.fonp-entity-grid,
.fonp-video-grid {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
}

.fonp-entity-card__contacts {
	display: grid;
	gap: 0.25rem;
	margin-block: 0.5rem 1rem;
}

.fonp-document-list {
	margin: 0;
}

.fonp-document-item {
	min-width: 0;
}

.fonp-document-item__body {
	min-width: 0;
	flex: 1 1 auto;
}

.fonp-document-item__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--lead);
}

.fonp-document-item__title a,
.fonp-associated-documents .fonp-document-item > a {
	display: inline-flex;
	align-items: center;
	min-height: var(--fonp-control-height);
	overflow-wrap: anywhere;
}

.fonp-document-item__body > p {
	margin-block: 0.35rem 0;
	color: var(--wp--preset--color--slate);
}

.fonp-document-meta {
	display: flex;
	flex: 0 0 auto;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 0.375rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.fonp-document-meta li,
.fonp-document-item__type {
	display: inline-flex;
	align-items: center;
	min-height: 1.75rem;
	padding: 0.2rem 0.55rem;
	border-radius: 999px;
	background: var(--wp--preset--color--mist);
	color: var(--wp--preset--color--slate);
	font-size: 0.75rem;
	font-weight: 700;
	white-space: normal;
}

.fonp-contact-details {
	margin-bottom: clamp(2rem, 5vw, 3.5rem);
	padding: clamp(1.25rem, 4vw, 2rem);
	border: 1px solid var(--wp--preset--color--border);
	border-left: 0.25rem solid var(--wp--preset--color--ochre-500);
	border-radius: var(--fonp-radius);
	background: var(--wp--preset--color--white);
}

.fonp-contact-details h2 {
	margin-block-start: 0;
}

.fonp-contact-details address {
	margin-bottom: 0.75rem;
	font-style: normal;
}

.fonp-contact-details p {
	margin-block: 0.25rem;
}

.fonp-contact-details a {
	display: inline-flex;
	align-items: center;
	min-height: var(--fonp-control-height);
}

.fonp-contact-form {
	padding: clamp(1.25rem, 4vw, 2.25rem);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--fonp-radius);
	background: var(--wp--preset--color--white);
	box-shadow: var(--fonp-shadow-card);
}

.fonp-contact-form__header {
	max-width: 42rem;
	margin-bottom: 1.5rem;
}

.fonp-contact-form__header h2 {
	margin-block: 0 0.5rem;
}

.fonp-contact-form__header p {
	margin: 0;
	color: var(--wp--preset--color--slate);
}

.fonp-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.fonp-form-field {
	display: grid;
	min-width: 0;
	gap: 0.375rem;
}

.fonp-form-field:last-of-type,
.fonp-form-privacy,
.fonp-form > .fonp-button {
	grid-column: 1 / -1;
}

.fonp-form-field label {
	color: var(--wp--preset--color--pine-950);
	font-size: 0.875rem;
	font-weight: 750;
}

.fonp-form-field :where(input, textarea) {
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.fonp-form-field--invalid :where(input, textarea) {
	border-color: var(--wp--preset--color--russet-700);
}

.fonp-form-field__error {
	color: var(--wp--preset--color--russet-700);
	font-size: 0.8125rem;
	font-weight: 700;
}

.fonp-form-privacy {
	margin-block: 0;
	color: var(--wp--preset--color--slate);
	font-size: var(--wp--preset--font-size--small);
}

.fonp-form > .fonp-button {
	justify-self: start;
}

.fonp-form-success,
.fonp-form-errors {
	padding: 1rem 1.25rem;
	border: 1px solid var(--wp--preset--color--border);
	border-left-width: 0.25rem;
	border-radius: var(--fonp-radius);
}

.fonp-form-success {
	border-left-color: var(--wp--preset--color--pine-800);
	background: var(--wp--preset--color--pine-100);
}

.fonp-form-errors {
	border-left-color: var(--wp--preset--color--russet-700);
	background: var(--wp--preset--color--sand);
}

.fonp-form-success > :first-child,
.fonp-form-errors > :first-child {
	margin-block-start: 0;
}

.fonp-form-success > :last-child,
.fonp-form-errors > :last-child {
	margin-block-end: 0;
}

.fonp-honeypot {
	position: absolute;
	left: -10000px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.fonp-pagination > .page-numbers {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.fonp-pagination :where(a, span).page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: var(--fonp-control-height);
	min-height: var(--fonp-control-height);
	padding: 0.5rem 0.75rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 0.25rem;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--pine-950);
	text-decoration: none;
}

.fonp-pagination a.page-numbers:hover {
	border-color: var(--wp--preset--color--pine-800);
	background: var(--wp--preset--color--mist);
}

.fonp-pagination .page-numbers.current {
	border-color: var(--wp--preset--color--pine-800);
	background: var(--wp--preset--color--pine-800);
	color: var(--wp--preset--color--white);
}

.fonp-empty-state,
.fonp-editor-placeholder {
	margin-block: 1rem 0;
	padding: clamp(1.25rem, 4vw, 2rem);
	border: 1px solid var(--wp--preset--color--border);
	border-left: 0.25rem solid var(--wp--preset--color--ochre-500);
	border-radius: var(--fonp-radius);
	background: var(--wp--preset--color--white);
}

/* Core query cards */
.fonp-query .wp-block-post-template {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1rem, 2.5vw, 1.75rem);
	margin: 0;
	padding: 0;
	list-style: none;
}

.fonp-query .wp-block-post-template > li {
	display: flex;
	flex-direction: column;
	margin: 0;
}

.fonp-query .wp-block-post-featured-image {
	margin: 0;
}

.fonp-query .wp-block-post-featured-image img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.fonp-query .wp-block-post-title,
.fonp-query .wp-block-post-date,
.fonp-query .wp-block-post-excerpt {
	margin-inline: 1.25rem;
}

.fonp-query .wp-block-post-title {
	margin-block: 1.25rem 0.625rem;
	font-size: clamp(1.25rem, 2vw, 1.5rem);
}

.fonp-query .wp-block-post-title a {
	color: var(--wp--preset--color--pine-950);
	text-decoration: none;
}

.fonp-query .wp-block-post-title a:hover {
	color: var(--wp--preset--color--atlantic-700);
	text-decoration: underline;
}

.fonp-query .wp-block-post-date {
	color: var(--wp--preset--color--slate);
	font-size: var(--wp--preset--font-size--small);
}

.fonp-query .wp-block-post-excerpt {
	margin-bottom: 1.25rem;
}

.fonp-query .wp-block-post-excerpt__more-link {
	display: inline-flex;
	align-items: center;
	min-height: var(--fonp-control-height);
	color: var(--wp--preset--color--atlantic-700);
	font-weight: 750;
}

.fonp-pagination,
.wp-block-query-pagination {
	margin-top: clamp(2rem, 5vw, 4rem);
}

.wp-block-query-pagination a,
.wp-block-query-pagination .current {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: var(--fonp-control-height);
	min-height: var(--fonp-control-height);
	padding: 0.5rem 0.75rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 0.25rem;
	background: var(--wp--preset--color--white);
	text-decoration: none;
}

.wp-block-query-pagination .current {
	border-color: var(--wp--preset--color--pine-800);
	background: var(--wp--preset--color--pine-800);
	color: var(--wp--preset--color--white);
}

/* Content elements */
.wp-block-button .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--fonp-control-height);
	transition:
		background-color var(--fonp-transition),
		color var(--fonp-transition),
		transform var(--fonp-transition);
}

.wp-block-button .wp-block-button__link:hover {
	background: var(--wp--preset--color--pine-950);
	color: var(--wp--preset--color--white);
	transform: translateY(-0.0625rem);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--pine-100);
	color: var(--wp--preset--color--pine-950);
}

.wp-block-quote {
	padding: 1rem 1.5rem;
	border-left: 0.25rem solid var(--wp--preset--color--ochre-500);
	background: var(--wp--preset--color--ochre-100);
}

.wp-block-pullquote {
	border-block-color: var(--wp--preset--color--ochre-500);
	color: var(--wp--preset--color--pine-950);
}

.wp-block-table {
	overflow-x: auto;
}

.wp-block-table table {
	border-collapse: collapse;
}

.wp-block-table th {
	background: var(--wp--preset--color--pine-950);
	color: var(--wp--preset--color--white);
	text-align: left;
}

.wp-block-table th,
.wp-block-table td {
	padding: 0.75rem;
	border-color: var(--wp--preset--color--border);
}

.wp-block-file {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.75rem 1rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 0.375rem;
	background: var(--wp--preset--color--white);
}

.wp-block-file__button {
	display: inline-flex;
	align-items: center;
	min-height: var(--fonp-control-height);
}

.wp-block-search__inside-wrapper {
	border-color: var(--wp--preset--color--border);
	border-radius: 0.25rem;
}

.wp-block-search__button {
	min-height: var(--fonp-control-height);
	border-radius: 0.25rem;
	background: var(--wp--preset--color--pine-800);
	color: var(--wp--preset--color--white);
	font-weight: 700;
}

.fonp-error-shell {
	min-height: 60vh;
}

.fonp-error-code {
	margin: 0;
	color: var(--wp--preset--color--ochre-700);
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(3rem, 12vw, 7rem);
	font-weight: 700;
	line-height: 0.9;
}

@media (max-width: 1099px) {
	body {
		background-position: calc(100% + 6rem) 12rem;
	}

	.fonp-primary-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none !important;
	}

	.fonp-primary-navigation .wp-block-navigation__responsive-container-open {
		display: inline-flex !important;
	}

	.fonp-header-inner {
		grid-template-columns: auto minmax(2.75rem, 1fr) auto;
	}

	.fonp-primary-navigation {
		justify-self: end;
	}

	:where(
		.fonp-card-grid,
		.fonp-grid,
		.fonp-directory-grid,
		.fonp-directory__grid,
		.fonp-home__grid,
		.fonp-news-grid,
		.fonp-event-grid,
		.fonp-club-grid
	),
	.fonp-query .wp-block-post-template {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 782px) {
	body.admin-bar .fonp-header-part {
		top: 46px;
	}

	body.admin-bar .fonp-skip-link {
		top: 3.75rem;
	}

	.fonp-footer-grid {
		flex-direction: column;
	}

	.fonp-footer-grid > .wp-block-column {
		width: 100%;
	}

	:where(.fonp-detail-layout, .fonp-detail__layout, .fonp-details-grid) {
		grid-template-columns: minmax(0, 1fr);
	}

	.fonp-home-promotion {
		grid-template-columns: minmax(0, 1fr);
	}

	.fonp-home-promotion__media img {
		min-height: 0;
		aspect-ratio: 16 / 10;
	}

	.fonp-form {
		grid-template-columns: minmax(0, 1fr);
	}

	.fonp-form-field,
	.fonp-form-field:last-of-type,
	.fonp-form-privacy,
	.fonp-form > .fonp-button {
		grid-column: 1;
	}
}

@media (max-width: 767px) {
	html {
		scroll-padding-top: 7.5rem;
	}

	body {
		background-attachment: scroll;
		background-position: calc(100% + 7rem) 9rem;
		background-size: 16rem auto;
	}

	.fonp-utility-inner {
		justify-content: center !important;
		text-align: center;
	}

	.fonp-utility-name {
		display: none;
	}

	.fonp-utility-navigation {
		width: 100%;
		margin-left: 0;
	}

	.fonp-utility-navigation .wp-block-navigation__container {
		justify-content: center;
	}

	.fonp-header-inner {
		gap: 0.625rem;
		min-height: 4.75rem;
	}

	.fonp-brand .wp-block-site-logo img {
		max-width: min(8.5rem, 31vw);
		max-height: 3.25rem;
	}

	.fonp-creators-link {
		font-size: 0.8125rem;
	}

	:where(
		.fonp-card-grid,
		.fonp-grid,
		.fonp-directory-grid,
		.fonp-directory__grid,
		.fonp-home__grid,
		.fonp-news-grid,
		.fonp-event-grid,
		.fonp-club-grid
	),
	.fonp-query .wp-block-post-template {
		grid-template-columns: minmax(0, 1fr);
	}

	:where(.fonp-filter-bar, .fonp-directory-filters, .fonp-directory__filters, .fonp-search-form) > * {
		flex: 1 1 100%;
		width: 100%;
	}

	:where(.fonp-document-row, .fonp-document, .fonp-document-item, .fonp-documents__item) {
		align-items: flex-start;
		flex-direction: column;
	}

	.fonp-detail-list {
		grid-template-columns: minmax(0, 1fr);
	}

	.fonp-detail-list__item + .fonp-detail-list__item {
		border-top: 1px solid var(--wp--preset--color--border);
		border-left: 0;
	}

	.fonp-document-meta {
		justify-content: flex-start;
	}

	.fonp-home-hero__actions .fonp-button,
	.fonp-detail-actions .fonp-button {
		flex: 1 1 12rem;
	}

	.wp-block-query-pagination {
		gap: 0.5rem;
	}

	.wp-block-query-pagination-numbers {
		display: flex;
		flex-wrap: wrap;
		gap: 0.375rem;
	}
}

@media (max-width: 359px) {
	.fonp-header-inner {
		grid-template-columns: auto 2.75rem auto;
		gap: 0.375rem;
	}

	.fonp-brand .wp-block-site-logo img {
		max-width: 5.75rem;
	}

	.fonp-creators-link {
		max-width: 6.5rem;
		white-space: normal;
	}
}

@media (min-width: 1440px) {
	.fonp-header-inner {
		min-height: 5.5rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	html:focus-within {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}

	:where(
		.fonp-card,
		.fonp-card-item,
		.fonp-news-card,
		.fonp-news-grid__item,
		.fonp-event-card,
		.fonp-event-directory__item,
		.fonp-club-card,
		.fonp-club-directory__item,
		.wp-block-post-template > li
	):hover,
	.fonp-button:hover,
	.wp-block-button .wp-block-button__link:hover {
		transform: none;
	}
}

@media print {
	.fonp-utility-bar,
	.fonp-main-header,
	.fonp-site-footer,
	.wp-block-navigation,
	.wp-block-search,
	.wp-block-query-pagination {
		display: none !important;
	}

	body {
		background: var(--wp--preset--color--white);
		color: #000;
	}

	a {
		color: #000;
		text-decoration: underline;
	}
}
