:root {
	--custom--distance--small: clamp(0.9375rem, 2.75vw, 2.5rem);
	--custom--distance--medium: clamp(1.625rem, 4.25vw, 4.6875rem);
	--custom--distance--large: clamp(1.875rem, 5vw, 5.625rem);
	--custom--distance--xlarge: clamp(2.5rem, 7vw, 7.375rem);
	--theme-ease: var(--wp--custom--transition--ease);
	--theme-speed: var(--wp--custom--transition--speed);
}

html {
	scroll-behavior: smooth;
}

body {
	display: flex;
	flex-direction: column;
}
body.has-footer-color {
	background-color: var(--footer-color) !important;
}
.wp-site-blocks {
	background-color: inherit;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	overflow-x: hidden;
}

.wp-site-blocks > footer {
	margin-block-start: auto;
}

.wp-block-post-content [id] {
	scroll-margin-block-start: var(--header-height);
	scroll-padding-block-start: var(--header-height);
}

/* Utility */

.text--keep-words {
	word-break: keep-all;
	word-wrap: normal;
}

/* Header */

header,
#header {
	background-color: inherit;
	transition: all var(--theme-speed) var(--theme-ease);
	transition-property: background-color;
}

header {
	--curve: var(--custom--distance--small);

	border-radius: var(--curve);
	border-top-left-radius: 0;
	border-top-right-radius: 0;
}

#header {
	border-radius: inherit;
	left: 0;
	position: fixed;
	top: 0;
	width: 100%;
	z-index: 100;
}

#header-left {
	display: none !important;
}

#header-button-contact {
	display: none !important;
}

.wp-block-menu--overlay[data-location='header'] .header-link--before,
.wp-block-menu--overlay[data-location='header'] .header-link--after,
.wp-block-menu--overlay[data-location='header'] .header-link-separator--before,
.wp-block-menu--overlay[data-location='header'] .header-link-separator--after {
	display: revert;
}

.page--header-transparent #header .custom-logo {
	transition: filter var(--theme-speed) var(--theme-ease);
}

@media screen and (min-width: 599px) {
	#header-button-contact {
		display: revert !important;
	}

	.wp-block-menu--overlay[data-location='header'] .header-link--after,
	.wp-block-menu--overlay[data-location='header'] .header-link-separator--after {
		display: none;
	}
}

@media screen and (min-width: 844px) {
	#header .wp-block-site-logo {
		text-align: center;
	}

	#header-left {
		display: revert !important;
	}

	.wp-block-menu--overlay[data-location='header'] .header-link--before,
	.wp-block-menu--overlay[data-location='header'] .header-link-separator--before {
		display: none;
	}

	.page--header-transparent header {
		background-color: transparent;
	}

	.page--header-transparent[data-has-scrolled='true'] header {
		background-color: inherit;
	}

	.page--header-transparent[data-has-scrolled='false'] #header .custom-logo,
	.page--header-transparent:not([data-has-scrolled]) #header .custom-logo {
		filter: brightness(0) invert(1);
	}

	.page--header-transparent #header-button-contact > .wp-element-button {
		outline: 2px solid transparent;
		transition-property: background-color, outline-color;
	}

	.page--header-transparent[data-has-scrolled='false'] #header-button-contact > .wp-element-button,
	.page--header-transparent:not([data-has-scrolled]) #header-button-contact > .wp-element-button {
		background-color: transparent;
		outline-color: currentColor;
	}

	.page--header-transparent[data-has-scrolled='false'] #header-button-contact > .wp-element-button > .wp-block-button-icon,
	.page--header-transparent:not([data-has-scrolled]) #header-button-contact > .wp-element-button > .wp-block-button-icon {
		background-color: var(--wp--preset--color--base);
		color: var(--wp--preset--color--contrast);
	}
}
@media screen and (max-width: 843px) {
	header > #header {
		padding-top: var(--wp--preset--spacing--40) !important;
		padding-bottom: var(--wp--preset--spacing--40) !important;
	}
}
@media screen and (max-width: 599px) {
	header > #header {
		padding-top: var(--wp--preset--spacing--30) !important;
		padding-bottom: var(--wp--preset--spacing--30) !important;
	}
}

/* Buttons */

.wp-block-buttons.is-style-tabs {
	display: inline-flex;
}

.wp-block-buttons.is-style-tabs .wp-block-button__link.has-background:not([aria-pressed]),
.wp-block-buttons.is-style-tabs .wp-block-button__link.has-background[aria-pressed=false] {
	background-color: transparent !important;
}

@media screen and (max-width: 781px) {
	.wp-block-buttons.is-style-tabs {
		background-color: transparent !important;
		padding: 0;
	}

	.wp-block-buttons.is-style-tabs .wp-element-button[aria-controls] {
		background-color: transparent;
		border: 0.125em solid currentColor;
		color: var(--wp--preset--color--contrast);
	}

	.wp-block-buttons.is-style-tabs .wp-element-button[aria-pressed=true] {
		background-color: var(--wp--preset--color--contrast) !important;
		border-color: var(--wp--preset--color--contrast);
		color: var(--active-color, var(--wp--preset--color--tertiary)) !important;
	}
}

/* Button */

.wp-element-button {
	transition: all var(--theme-speed) var(--theme-ease);
	transition-property: transform;
}

.wp-element-button:focus,
.wp-element-button:hover {
	transform: scale(1.025);
}

.wp-element-button:focus {
	outline-offset: 0.25em;
	outline-width: 0.25em;
}

.wp-element-button:active {
	outline: none;
	transform: scale(1);
	transition-duration: 0.025s;
}

.wp-element-button[aria-controls] {
	transform: scale(1) !important;
}

.wp-element-button[aria-controls] {
	transition-property: background-color, color;
}

.wp-element-button[aria-controls]:hover {
	color: var(--active-color, var(--wp--preset--color--tertiary)) !important;
}

.wp-element-button[aria-controls]:focus {
	outline: 2px solid var(--active-color, var(--wp--preset--color--tertiary));
	outline-offset: 0.125em;
}

.wp-element-button[aria-pressed=true] {
	background-color: var(--active-color, var(--wp--preset--color--tertiary)) !important;
	color: var(--wp--preset--color--contrast) !important;
	pointer-events: none;
}

:where(.wp-block-button.is-style-outline > .wp-element-button:focus) {
	outline-color: currentcolor;
}

:where(.has-neutral-light-background-color.wp-element-button:focus) {
	outline-color: var(--wp--preset--color--neutral-light);
}

:where(.has-base-background-color.wp-element-button:focus) {
	outline-color: var(--wp--preset--color--base);
}

:where(.has-accent-background-color.wp-element-button:focus) {
	outline-color: var(--wp--preset--color--accent);
}

:where(.has-primary-background-color.wp-element-button:focus) {
	outline-color: var(--wp--preset--color--primary);
}

:where(.has-secondary-background-color.wp-element-button:focus) {
	outline-color: var(--wp--preset--color--secondary);
}

:where(.has-tertiary-background-color.wp-element-button:focus) {
	outline-color: var(--wp--preset--color--tertiary);
}

:where(.has-yellow-light-background-color.wp-element-button:focus) {
	outline-color: var(--wp--preset--color--yellow-light);
}

:where(.has-yellow-background-color.wp-element-button:focus) {
	outline-color: var(--wp--preset--color--yellow);
}

:where(.has-green-background-color.wp-element-button:focus) {
	outline-color: var(--wp--preset--color--green);
}

/* Button Icons */

.wp-block-button-label {
	position: relative;
	z-index: 1;
}

.wp-element-button--with-icon {
	align-items: center;
	padding-inline-start: 2.75em;
	position: relative;
}

.wp-block-button-icon {
	box-sizing: border-box;
	height: calc(100% - 0.5em);
	left: 0.25em;
	padding: 0.37em;
	position: absolute;
	top: 0.25em;
	transition: all var(--theme-speed) var(--theme-ease);
	transition-property: width;
}

.wp-block-button-icon > svg {
	aspect-ratio: 1 / 1;
	height: 100%;
}

/* Button Icon interactions */

.wp-element-button--with-icon[data-button-icon="arrow"] > .wp-block-button-icon,
.wp-element-button--with-icon[data-button-icon="arrow-down"] > .wp-block-button-icon {
	transition: all var(--theme-speed) var(--theme-ease);
	transition-property: transform;
}

.wp-element-button--with-icon[data-button-icon="arrow"]:hover > .wp-block-button-icon {
	transform: rotate(-45deg);
}

.wp-element-button--with-icon[data-button-icon="arrow-down"]:hover > .wp-block-button-icon {
	transform: rotate(-45deg);
}

.wp-element-button--with-icon[data-button-icon="home"] > .wp-block-button-icon > svg,
.wp-element-button--with-icon[data-button-icon="school"] > .wp-block-button-icon > svg {
	transition: all var(--theme-speed) var(--theme-ease);
	transition-property: transform;
}

.wp-element-button--with-icon[data-button-icon="home"]:hover > .wp-block-button-icon > svg,
.wp-element-button--with-icon[data-button-icon="school"]:hover > .wp-block-button-icon > svg {
	transform: scale(1.125);
}

/* Post Link  with Button Icon interactions */

.wp-block-post-link:has(a:hover) .wp-element-button--with-icon > .wp-block-button-icon,
.wp-block-post-link:has( > .wp-block-post-link__link:hover) .wp-element-button--with-icon > .wp-block-button-icon,
.wp-block-post-link:has( > .wp-block-post-link__link:focus) .wp-element-button--with-icon > .wp-block-button-icon  {
	transform: rotate(-45deg);
}

/* Dialog Menu */

.wp-block-menu-dialog {
	animation: menu-reveal var(--theme-speed) var(--theme-ease) forwards;
	background-color: inherit;
	border-radius: var(--wp--preset--spacing--40);
	color: inherit;
	font-size: var(--wp--preset--font-size--medium-large);
	left: unset;
	right: 0;
	max-height: 75vh;
	max-width: calc(100vw - 4rem);
	min-height: 12.5em;
	overflow-y: auto;
	scrollbar-color: var(--wp--preset--color--tertiary) transparent;
	top: 0;
	width: 24rem;
}

.wp-block-menu-dialog hr {
	border: 1px solid var(--wp--preset--color--tertiary);
	margin: 0.75em 0;
}

.wp-block-menu-dialog > .wp-block-menu-dialog-content > .wp-block-menu-dialog-inner > .menu {
	margin-block-start: 0;
}

.wp-block-menu-dialog .menu-item > a {
	text-decoration-color: transparent;
	transition: all var(--theme-speed) var(--theme-ease);
	transition-property: text-decoration-color;
	width: 100%;
}

.wp-block-menu-dialog-inner {
	padding-block-start: var(--wp--preset--spacing--40);
}

.wp-block-menu--submenu-toggle .wp-block-menu-dialog .current-menu-item > a {
	pointer-events: none;
	text-decoration-color: currentColor;
	text-decoration-line: underline;
}

.wp-block-menu--submenu-toggle .wp-block-menu-dialog .menu-item-has-children {
	flex-wrap: wrap;
	width: 100%;
}

.wp-block-menu--submenu-toggle .wp-block-menu-dialog .menu-item-has-children > a {
	max-width: calc(100% - 2em);
}
.wp-block-menu--submenu-toggle .wp-block-menu-dialog .menu-item-has-children > .submenu-toggle {
	font-size: inherit;
}
.wp-block-menu--submenu-toggle .wp-block-menu-dialog .menu-item-has-children > .submenu-toggle .submenu-toggle-icon {
	line-height: 0;
	transition: transform 0.25s ease;
}
.wp-block-menu--submenu-toggle .wp-block-menu-dialog .menu-item-has-children > .submenu-toggle svg {
	width: 1em;
	height: 1em;
}
.wp-block-menu--submenu-toggle .wp-block-menu-dialog .menu-item-has-children > .sub-menu {
	--submenu-bottom: 0.25em;
	--submenu-gap: 0.5em;
	--submenu-top: 0.25em;
	padding-inline-start: 1em;
	width: 100%;
}

.wp-block-menu--submenu-toggle .wp-block-menu-dialog .menu-item-has-children > .sub-menu .sub-menu {
	--submenu-top: 0;
}

.wp-block-menu-dialog .wp-block-menu-close {
	right: 0;
	top: 0;
}

.wp-block-menu--submenu-toggle .menu-item-has-children .submenu-toggle[aria-expanded=true] + .sub-menu {
	display: flex;
}

@keyframes menu-reveal {
	from {
		opacity: 0;
		transform: translateY(-0.25rem);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Header Menu */

.page--header-transparent[data-has-scrolled='false'] .wp-block-menu[data-location='header'],
.page--header-transparent:not([data-has-scrolled]) .wp-block-menu[data-location='header'] {
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
}

.wp-block-menu[data-location='header'] {
	background-color: var(--wp--preset--color--contrast);
	border-radius: 50%;
	color: var(--wp--preset--color--base);
	position: relative;
	transition: all var(--theme-speed) var(--theme-ease);
	transition-property: background-color, color;
}

.wp-block-menu[data-location='header'] .menu-item > .submenu-toggle,
.wp-block-menu[data-location='header'] .menu-item > a {
	transition: color 0.25s ease-out;
}

.wp-block-menu[data-location='header'] .menu-item > .submenu-toggle:hover,
.wp-block-menu[data-location='header'] .menu-item > a:hover {
	color: var(--wp--preset--color--tertiary);
}

.wp-block-menu[data-location='header'] .wp-block-menu-dialog-content {
	padding: 0;
	padding-inline: var(--wp--preset--spacing--40);
}

.wp-block-menu[data-location='header'] .wp-block-menu-dialog-content .menu .sub-menu > .menu-item {
	line-height: 1.2;
	position: relative;
}

.wp-block-menu[data-location='header'] .wp-block-menu-dialog-content .menu .sub-menu > .menu-item::before {
	content: '○';
	color: inherit;
	opacity: 0.5;
	padding-inline: 0.5em;
	position: absolute;
	right: 100%;
	top: 0;
}

@media screen and (max-width: 781px) {
	#header::after {
		background-color: inherit;
		border-radius: inherit;
		content: '';
		height: 100%;
		left: 0;
		position: absolute;
		right: 0;
		top: 0;
		width: 100%;
		z-index: -1;
	}

	.wp-block-menu[data-location='header'] {
		position: static;
	}

	.wp-block-menu[data-location='header'] > .wp-block-menu-dialog {
		border-top-left-radius: 0;
		border-top-right-radius: 0;
		left: 0;
		margin-block-start: -1rem;
		max-width: 100%;
		right: 0;
		top: var(--header-height);
		width: 100%;
		z-index: -1;
	}

	.wp-block-menu[data-location='header'] > .wp-block-menu-dialog .wp-block-menu-close {
		display: none;
	}
}

/* Footer Menu */

.wp-block-menu[data-location='footer-1'],
.wp-block-menu[data-location='footer-2'] {
	--menu-gap: 1em;
}

.wp-block-menu[data-location='footer-1'] > .menu,
.wp-block-menu[data-location='footer-2'] > .menu {
	align-items: flex-start;
	flex-direction: column;
}

.wp-block-menu[data-location='footer-1'] .menu-item > a,
.wp-block-menu[data-location='footer-2'] .menu-item > a {
	text-decoration-color: transparent;
	transition: all var(--theme-speed) var(--theme-ease);
	transition-property: text-decoration-color;
}

.wp-block-menu[data-location='footer-1'] .menu-item > a:hover,
.wp-block-menu[data-location='footer-2'] .menu-item > a:hover {
	text-decoration-color: currentcolor;
}

.wp-block-menu[data-location='footer-1'] .menu-item.current-menu-item > a,
.wp-block-menu[data-location='footer-2'] .menu-item.current-menu-item > a {
	pointer-events: none;
	text-decoration-color: var(--wp--preset--color--accent);
}

/* Footer */

@media screen and (max-width: 780px) {
	footer.wp-block-template-part .footer-email {
		flex-basis: 100%;
	}
}

/* Details block */

.wp-block-details {
	--pad-size: var(--wp--preset--spacing--40);

	transition: all var(--theme-speed) var(--theme-ease);
	transition-property: background-color;
}

.wp-block-details[open] {
	background-color: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--contrast) !important;
}

.wp-block-details > summary {
	--icon-size: 2.5em;

	align-items: center;
	cursor: default;
	display: flex;
	font-weight: bold;
	justify-content: space-between;
	list-style: none;
	padding: var(--pad-size);
	position: relative;
	transition: all var(--theme-speed) var(--theme-ease);
	transition-property: color;
}

.wp-block-details[open] > summary {
	color: var(--wp--preset--color--primary);
}

.wp-block-details[open] > summary ~ * {
	padding-inline: var(--pad-size);
}

.wp-block-details[open] > summary ~ *:first-of-type {
	margin-block-start: 0;
}

.wp-block-details[open] > summary ~ *:last-of-type {
	padding-block-end: var(--pad-size);
}

.wp-block-details > summary::after {
	align-items: center;
	aspect-ratio: 1;
	background-color: var(--wp--preset--color--base);
	background-image: url(../icon/details-plus.svg);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	border-radius: 50%;
	content: '';
	display: flex;
	float: right;
	height: var(--icon-size);
	justify-content: center;
	margin-inline-start: var(--wp--preset--spacing--40);
	transition: all var(--theme-speed) var(--theme-ease);
	transition-property: background-color, transform;
	width: var(--icon-size);
}

.wp-block-details > summary:hover::after {
	background-color: var(--wp--preset--color--accent);
}

.wp-block-details[open] > summary::after {
	background-color: var(--wp--preset--color--accent);
	transform: rotate(45deg);
}

.wp-block-details[open] > summary:hover::after {
	background-color: var(--wp--preset--color--secondary);
	color: var(--wp--preset--color--base);
}

.wp-block-details.wp-block-details > summary:active::after {
	background-color: var(--wp--preset--color--tertiary);
	color: var(--wp--preset--color--base);
	transition-duration: 0.1s;
}

@media screen and (max-width: 599px) {
	.wp-block-details {
		font-size: var(--wp--preset--font-size--small);
	}

	.wp-block-details > summary {
		--icon-size: 2em;
	}
}

/* Featured Image block */

.wp-block-post-featured-image {
	height: 100%;
	width: 100%;
}

/* Media & Text block */

.wp-block-media-text:not(.has-media-on-the-right) > .wp-block-media-text__content {
	padding-inline-end: 0;
}

.wp-block-media-text.has-media-on-the-right > .wp-block-media-text__content {
	padding-inline-start: 0;
}

@media screen and (max-width: 781px) {
	.wp-block-media-text.is-stacked-on-mobile {
		grid-template-columns: 100% !important;
	}
	.wp-block-media-text.is-stacked-on-mobile>.wp-block-media-text__media {
		grid-column: 1;
		grid-row: 1;
	}
	.wp-block-media-text.is-stacked-on-mobile>.wp-block-media-text__content {
		grid-column: 1;
		grid-row: 2;
		padding: 0;
	}
}

/* Post Link block */

.wp-block-post-link {
	--rotation: 7.5deg;

	overflow: visible;
	transition: all var(--theme-speed) var(--theme-ease);
	transition-property: background-color, transform;
}

.wp-block-post-link:has(a:hover),
.wp-block-post-link:has( > .wp-block-post-link__link:hover) {
	background-color: var(--wp--preset--color--tertiary-light) !important;
	transform: rotate(var(--rotation));
	z-index: 5 !important;
}
.wp-block-post-link__link:focus {
	outline: none;
}
.wp-block-post-link__link::before {
	border-radius: inherit;
	content: '';
	display: block;
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	transition: all var(--theme-speed) var(--theme-ease);
	transition-property: transform;
	width: 100%;
	z-index: 0;
}

.wp-block-post-link:has(a:hover) > .wp-block-post-link__link::before,
.wp-block-post-link__link:hover::before {
	transform: rotate(calc(var(--rotation) * -1));
}

.wp-block-post-link a:not([href]) {
	pointer-events: none !important;
}

/* Post Terms block */

.wp-block-post-terms.is-style-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--30);
}

.wp-block-post-terms.is-style-buttons > a {
	display: inline-flex;
	flex-wrap: nowrap;
}

.wp-block-post-terms.is-style-buttons > .wp-block-post-terms__separator {
	display: none;
}

/* Quote block */

.wp-block-quote--has-quote-icon {
	display: flex;
	flex-direction: column;
}

.wp-block-quote--has-quote-icon > .wp-block-quote__icon {
	margin-block-end: var(--wp--preset--spacing--40);
	width: 2.875em;
}

.wp-block-quote--has-quote-icon > *:last-child {
	margin-block-start: auto;
}

/* Page template: Narrow */

.page-template-page-narrow .wp-site-blocks > .entry-content {
	--wp--style--global--content-size: 78rem;
}

/* Custom HTML classes */

.filter-blend-mode-lighten {
	mix-blend-mode: lighten;
}

/* Scroller block */

.wp-block-scroller > .wp-block-scroller-navigation {
	padding-block-start: var(--wp--preset--spacing--30);
}

/* Scroller block: Testimonials style */

.wp-block-scroller.is-style-testimonials > .wp-block-scroller-navigation {
	padding-block-start: var(--wp--preset--spacing--40);
}

.wp-block-scroller.is-style-testimonials > .wp-block-scroller-track {
	padding-inline-end: var(--wp--style--root--padding-right);
}

@media screen and (max-width: 781px) {
	.wp-block-scroller.is-style-testimonials > .wp-block-scroller-navigation,
	.wp-block-scroller.is-style-testimonials > .wp-block-scroller-track {
		padding-inline-start: var(--wp--style--root--padding-left);
	}

	.wp-block-scroller.is-style-testimonials > .wp-block-scroller-track > * {
		scroll-snap-align: center;
	}
}
