/*
Theme Name: CEBA
Theme URI: https://cebuyers.org
Author: Escape Hatch
Author URI: https://escapehatch.com
Description: Theme designed specifically for CEBA
Tags: full-site-editing
Requires at least: 6.8
Tested up to: 6.9
Requires PHP: 8.4
Version: 1.0.0
Text Domain: ceba
*/


/* Declare custom properties that rely on inline properties */
:is(body, .is-root-container) {
	--wp--custom--top--offset: calc(var(--wp-admin--admin-bar--height, 0px) + var(--eh--alert-banner--height, 0px));
	--wp--custom--root--padding-offset: calc(var(--wp--style--root--padding-left) + var(--wp--style--root--padding-left));
	--wp--custom--spacing--gutter: calc((100vw - 100%) / 2);
	--wp--custom--width--main: 100vw;

	/* Header */
	--head--background--opacity: 0;

	/* Main container */
	--main--spacing--padding--block-start: 0;
	--main--spacing--padding--block-end: var(--wp--preset--spacing--150);
}

/* Sticky header */
.editor-styles-wrapper .ceba-part-head,
.ceba-part-head.is-pinned,
.ceba-part-head:has(.ceba-nav-main .is-menu-open),
body:not(:has(.entry-content > .wp-block-group.alignfull.has-background:first-child, .wp-block-cover.alignfull)) {
	--head--background--opacity: 1;
}


/* Adjust top padding of <main> based on next sibling */
:is(body, .is-root-container):not(:has(.entry-content)),
:is(body, .is-root-container):has(.entry-content > :not(.wp-block-cover.alignfull, .wp-block-group.alignfull.has-background):first-child) {
	--main--spacing--padding--block-start: calc(var(--wp--custom--head--dimensions--height) + var(--wp--custom--spacing--section));
}

:is(body, .is-root-container):has(.entry-content > .wp-block-group.alignfull[class*='is-style-section']:first-child) {
	--main--spacing--padding--block-start: calc(var(--wp--custom--head--dimensions--height));
}



@media (width >= 1024px) {
	:is(body, .is-root-container) {
		--wp--style--root--padding-right: var(--wp--preset--spacing--60);
		--wp--style--root--padding-left: var(--wp--preset--spacing--60);
		--wp--custom--head--dimensions--height: var(--wp--custom--head--dimensions--desktop-height);
	}
}

@media (width >= 1920px) {
	:is(body, .is-root-container) {
		--wp--custom--spacing--gutter: calc((var(--wp--custom--width--full) - 100%) / 2);
		--wp--custom--width--main: var(--wp--custom--width--full);
	}
}


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

html {
	text-size-adjust: none;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--wp--custom--head--dimensions--height) + var(--wp-admin--admin-bar--height, 0px) + var(--wp--preset--spacing--60));
}

/* Prevent page from scrolling when filtered anchor is present */
html:has(#filtered) {
	scroll-behavior: unset;
}

html:not(.block-editor-iframe__html) {
	background-color: var(--wp--preset--color--base-3);
}

/* Force editor styles wrapper to have base background color when not in iframe editor mode */
.editor-styles-wrapper {
	background-color: var(--wp--preset--color--base) !important;
}

/* Prevent page from scrolling when modal is open */
html.has-modal-open,
html:has(dialog[open]),
html:has(.lightbox-image-container img[src ^='http']) {
	overflow: hidden;
}

.disable-transitions * {
	transition: none !important;
}

/* Remove all animations, transitions and smooth scroll for people that prefer not to see them */
@media (prefers-reduced-motion: reduce) {
	html:focus-within {
		scroll-behavior: auto;
	}

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

/* Phone links */
a:where([href ^='tel:']) {
	color: inherit;
	font: inherit;
	text-decoration: none;
}

/* Remove margins from :first-child, :last-child */
*:last-child:where(p, [class *='wp-block']) {
	margin-block-end: 0 !important;
}

*:first-child:where(p, [class *='wp-block']):not(.wp-block-navigation__responsive-dialog) {
	margin-block-start: 0 !important;
}


/**
 * Elements
 */

/* <body> */
body {
	position: relative;
	margin-inline: auto;
	border: 0;
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeSpeed;
	z-index: var(--wp--custom--z-index--body);
	scrollbar-gutter: stable;
}

body:not(.editor-styles-wrapper) {
	background-color: var(--wp--preset--color--contrast);
}

body:not(.admin-bar) {
	--wp-admin--admin-bar--height: 0px;
}

body::before {
	display: block;
	position: absolute;
	inset-block-start: 0;
	inset-inline-start: 0;
	block-size: 100%;
	inline-size: 100%;
	background: var(--wp--custom--overlay--color);
	content: '';
	opacity: var(--wp--custom--overlay--opacity);
	visibility: hidden;
	transition: visibility 0s ease-in-out 0.25s, opacity 0.25s ease-in-out;
	z-index: calc(var(--wp--custom--z-index--head) - 1);
}

.wp-site-blocks {
	background-color: var(--wp--preset--color--base-2);
}

/* Add translucent background to the body when modal is open */
.has-modal-open body {
	--wp--custom--overlay--opacity: var(--wp--custom--overlay--opacity-active);

	min-block-size: 100vh;
	overflow: hidden;
	z-index: 1;
}

.has-modal-open body::before {
	visibility: visible;
	transition-delay: 0s;
}

/* Headings */
:where(h1, h2, h3, h4, h5, h6) {
	text-wrap: balance;
}

:where(h1, h2, h3, h4, h5, h6).has-x-large-font-size,
h1:where(h1, h2, h3, h4, h5, h6):not([class*='font-size']) {
	font-size: var(--wp--custom--heading--x-large--font-size);
	font-weight: var(--wp--custom--heading--x-large--font-weight);
	line-height: var(--wp--custom--heading--x-large--line-height);
}

:where(h1, h2, h3, h4, h5, h6).has-large-font-size,
h2:where(h1, h2, h3, h4, h5, h6):not([class*='font-size']) {
	font-size: var(--wp--custom--heading--large--font-size);
	font-weight: var(--wp--custom--heading--large--font-weight);
	line-height: var(--wp--custom--heading--large--line-height);
}

:where(h1, h2, h3, h4, h5, h6).has-medium-font-size,
h3:where(h1, h2, h3, h4, h5, h6):not([class*='font-size']),
:where(.ceba-single__content, .post-type-post) :is(h1, h2):not([class*='font-size']) {
	font-size: var(--wp--custom--heading--medium--font-size);
	font-weight: var(--wp--custom--heading--medium--font-weight);
	line-height: var(--wp--custom--heading--medium--line-height);
}

:where(h1, h2, h3, h4, h5, h6).has-small-font-size,
h4:where(h1, h2, h3, h4, h5, h6):not([class*='font-size']),
:is(.ceba-single__content, .post-type-post) :is(h3, h4, h5, h6):not([class*='font-size']) {
	margin-block-end: var(--wp--preset--spacing--20);
	font-size: var(--wp--custom--heading--small--font-size);
	font-weight: var(--wp--custom--heading--small--font-weight);
	letter-spacing: 0;
	line-height: var(--wp--custom--heading--small--line-height);
	text-transform: none;
}

:where(h1, h2, h3, h4, h5, h6).has-x-small-font-size,
h5:where(h1, h2, h3, h4, h5, h6):not([class*='font-size']) {
	font-size: var(--wp--custom--heading--x-small--font-size);
	font-weight: var(--wp--custom--heading--x-small--font-weight);
	line-height: var(--wp--custom--heading--x-small--line-height);
}

:where(h1, h2, h3, h4, h5, h6).has-xx-small-font-size,
h6:where(h1, h2, h3, h4, h5, h6):not([class*='font-size']) {
	margin-block-end: var(--wp--preset--spacing--30);
	font-size: var(--wp--custom--heading--xx-small--font-size);
	font-weight: var(--wp--custom--heading--xx-small--font-weight);
	letter-spacing: var(--wp--custom--heading--xx-small--letter-spacing);
	line-height: var(--wp--custom--heading--xx-small--line-height);
	text-transform: var(--wp--custom--heading--xx-small--text-transform);

	&:has(+ :is(h1, h2, h3, h4, h5, h6)) {
		margin-block-end: 0;
	}

	+ :is(h1, h2, h3, h4, h5, h6) {
		margin-block-start: var(--wp--preset--spacing--30);
	}
}

:where(h1, h2, h3, h4, h5, h6).has-xxx-small-font-size {
	font-size: var(--wp--custom--heading--xxx-small--font-size);
	font-weight: var(--wp--custom--heading--xxx-small--font-weight);
	line-height: var(--wp--custom--heading--xxx-small--line-height);
}

:where(h1, h2, h3, h4, h5, h6) a.has-icon,
:where(h1, h2, h3, h4, h5, h6)[class*='has-icon-']:has(a, .wp-block-button__link) > *::after {
	--icon--color: var(--wp--preset--color--accent-2);
	--icon--width: 24px;
	--icon--height: 24px;
	--icon--spacing--block-gap: var(--wp--preset--spacing--20);
}

:where(h1, h2, h3, h4, h5, h6) a.has-icon svg {
	color: currentColor;
}

:where(h1, h2, h3, h4, h5, h6) + .wp-block-query {
	margin-block-start: var(--wp--preset--spacing--30);
}

/* X-Large and Large font size */
:is(h1, h2, h3, h4, h5, h6):where(.has-x-large-font-size, .has-large-font-size):not(.wp-block-post-title),
:is(h1, h2):not([class*='font-size'], .wp-block-post-title) {
	text-box: trim-start cap alphabetic;
}

:where(.ceba-single__content, .post-type-post) {
	:is(h1, h2, h3, h4, h5, h6):where(.has-x-large-font-size, .has-large-font-size),
	:is(h1, h2):not([class*='font-size']) {
		margin-block-start: revert;
	}
}

/* Space between heading and query */
:where(h1, h2, h3, h4, h5, h6):where(.has-x-large-font-size, .has-large-font-size) + .wp-block-query,
:where(h1, h2):not([class*='font-size']) + .wp-block-query {
	margin-block-start: var(--wp--preset--spacing--60);
}

/* Adds inline padding to highlighted <mark> text */
.wp-block-heading mark[style*='background'] {
	--padding: 0.25ch;
	--highlight-color: transparent;

	box-shadow: calc(var(--padding) * -1) 0 0 0 var(--highlight-color), var(--padding) 0 0 0 var(--highlight-color);
	line-height: 1.3;
	box-decoration-break: clone;
}

/* Accent 1 */
.wp-block-heading mark[style*='background-color:#FF5E1F'] {
	--highlight-color: #FF5E1F;
}

/* Accent 2 */
.wp-block-heading mark[style*='background-color:#FFB549'] {
	--highlight-color: #FFB549;
}

.wp-block-heading .is-small-caps {
	margin-block-end: var(--wp--preset--spacing--30);
	color: var(--wp--preset--color--accent-1);
	text-box: trim-both cap alphabetic;
}


/* <iframe> */
iframe {
	--wp--style--global--content-size: 100%;
}

/* <main> */
main {
	position: relative;
	margin-block: 0 !important;
	margin-inline: auto;
	padding-block: var(--main--spacing--padding--block-start) var(--main--spacing--padding--block-end);
	background-color: var(--wp--preset--color--base);
	z-index: var(--wp--custom--z-index--main);
	overflow-x: clip;

	/* max-inline-size: 1920px; */
}

/* Reduce top padding when first child meet criteria */
main:has(.entry-content > .has-background.alignfull:first-child, > .has-background.alignwide:first-child, .wp-block-cover:first-child) {
	--main--spacing--padding--block-start: 0;
}

/* Remove bottom padding from <main> when last child is full width */
main:has(
	.entry-content > .has-background.alignfull:last-child,
	.entry-content > .has-background.alignfull + p:empty:last-child,
	.entry-content > .has-background.alignwide:last-child,
	.entry-content > .is-style-section:last-child,
	.entry-content > .wp-block-cover:last-child,
	.entry-content > .wp-block-media-text.is-style-billboard:last-child,
	.entry-content > .wp-block-group.has-background.alignfull:last-child,
	> .has-background.alignfull +.hero-shape:last-child,
	> .has-background:last-child
) {
	--main--spacing--padding--block-end: 0;
}

@media (width >= 1024px) {
	/* When last-child is section-slim, add bottom padding to <main> */
	main:has(
		.entry-content > [class*='is-style-section-slim']:last-child,
		> [class*='is-style-section-slim']:last-child,
		.entry-content > [class*='is-style-section-slim'] + p:empty:last-child
		> [class*='is-style-section-slim'] + p:empty:last-child
	) {
		--main--spacing--padding--block-end: var(--wp--preset--spacing--30) !important;
	}
}

/* Full template parts - stretch to full-width */
.wp-block-template-part:has(> .alignfull, > .is-style-hero) {
	inline-size: calc(100% + var(--wp--custom--root--padding-offset));
	max-inline-size: none;
	margin-inline: calc(var(--wp--style--root--padding-left) * -1) auto !important;
}


/**
 * WordPress Elements
 */

/* --- Button --- */
.wp-element-button {
	--button--icon-filter: invert(1);
	--button--icon--translate-x: 0;
	--button--icon--scale: 1.5;
	--button--color--background-hover: var(--wp--preset--color--accent-3);

	display: flex;
	align-items: center;
	text-align: center;
}

/* Disable cursor for buttons that don't have a href or type="button" */
:is(.wp-element-button, .wp-block-button__link):not([href], [type='button']) {
	cursor: default;
}

/* Disable text transform for email links */
.wp-element-button[href^='mailto:'] {
	--button--typography--text-transform: none;
}

:is(.wp-element-button, .wp-block-button__link)[style*='text-transform:none'] {
	--button--typography--letter-spacing: 0;
}

/* If white, add accent-1 border */
.wp-element-button.wp-element-button.has-base-background-color {
	border-color: var(--wp--preset--color--accent-1);
}

/* If light color background, add contrast text */
.wp-element-button.wp-element-button:where(.has-accent-2-background-color, .has-base-background-color, .has-base-3-background-color) {
	--button--color--text: var(--wp--preset--color--contrast);
}

/* Button with icons */
.wp-element-button :where(svg),
.wp-block-button.has-icon .wp-block-button__link::after {
	flex-shrink: 0;
	scale: var(--button--icon--scale);
	translate: var(--button--icon--translate-x) 0.0625em;
}

.wp-element-button[class*='has-icon-'],
.wp-block-button .wp-block-button__link[class*='has-icon-'] {
	--icon--spacing--block-gap: 0.625em;
}

.wp-element-button.has-icon img:first-child:not(:only-child) {
	margin-inline-end: var(--wp--preset--spacing--10);
}

.wp-block-button[style*='--icon--color'] .wp-block-button__link {
	--icon--color: inherit;
}

.wp-block-button.wp-block-button__width-100 .wp-block-button__link {
	justify-content: space-between;
	text-align: start;
}

.wp-block-button.has-accent-1-icon-color .wp-block-button__link {
	--icon--color: var(--wp--preset--color--accent-1);
}

/* Visually hide label */
.wp-element-button[class*='has-icon-'].has-hidden-label .icon-label {
	position: absolute !important;
	block-size: 1px !important;
	inline-size: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	border: 0 !important;
	white-space: nowrap !important;
	overflow: hidden !important;
	clip-path: inset(50%) !important;
}

/* Button hover states */
.wp-element-button:is(.wp-element-button, .wp-block-button__link):hover {
	--button--color--text: var(--wp--preset--color--base);

	background-color: var(--button--color--background-hover) !important;
	border-color: var(--button--color--background-hover);
}

/* Button focus states */
.wp-element-button:focus-visible {
	outline-offset: 4px;
}

/* If button has a dark background color, invert hover color */
.has-contrast-background-color .wp-element-button:is(.wp-element-button, .wp-block-button__link):hover {
	--button--color--background-hover: var(--wp--preset--color--base);
	--button--color--text: var(--wp--preset--color--contrast);
}

.wp-block-button .wp-block-button__link.has-icon:not(.has-hidden-label):hover,
.wp-block-button.has-icon:not(.has-hidden-label) .wp-block-button__link:hover {
	--button--icon--translate-x: 0.25em;
}

/* Icon on left */
.wp-block-button .wp-block-button__link.has-icon.has-icon-start:not(.has-hidden-label):hover,
.wp-block-button.has-icon-start:not(.has-hidden-label) .wp-block-button__link:hover {
	--button--icon--translate-x: -0.25em;
}

/* Disable icon animation when the button has a hidden label */
:is(.wp-block-button.has-hidden-label .wp-block-button__link, .wp-element-button.has-hidden-label):hover {
	--button--icon--translate-x: 0;
}

/* --- Medium button size --- */
.wp-block-buttons.has-medium-font-size .wp-element-button:is(.wp-element-button, .wp-block-button__link) {
	--button--icon--scale: 1.125;
}

/* --- Small button size --- */
.wp-block-buttons.has-small-font-size .wp-element-button:is(.wp-element-button, .wp-block-button__link) {
	--button--icon--scale: 1.125;
	--button--spacing--padding-block: calc(1em - 1px);
	--button--spacing--padding-inline: var(--wp--preset--spacing--15);
	--button--typography--line-height: 0.75;
}

.wp-block-buttons.has-small-font-size .wp-element-button[href^='mailto:'] {
	--button--spacing--padding-block: calc(0.7813em - 1px);

	font-size: 14px;
}

/* Adjust icon spacing */
.wp-block-buttons.has-small-font-size .wp-element-button[class*='has-icon-'],
.wp-block-buttons.has-small-font-size .wp-block-button .wp-block-button__link[class*='has-icon-'] {
	--icon--spacing--block-gap: var(--wp--preset--spacing--10);
}

/* Disable icon hover animation */
.wp-block-buttons.has-small-font-size .wp-block-button .wp-block-button__link.has-icon.has-icon-start:hover,
.wp-block-buttons.has-small-font-size .wp-block-button.has-icon-start .wp-block-button__link:hover {
	--button--icon--translate-x: 0;
}


/**
 * Vendor styles
 */

/* --- Gravity forms --- */
.gform-theme--api, .gform-theme--foundation.gform-theme--foundation {
	--gf-ctrl-border-color: var(--wp--preset--color--base-3) !important;
	--gf-ctrl-border-color-focus: var(--wp--preset--color--base-3);
	--gf-ctrl-border-width: 4px;
	--gf-ctrl-btn-bg-color-primary: var(--wp--preset--color--contrast);
	--gf-ctrl-btn-bg-color-hover-primary: var(--wp--preset--color--accent-3);
	--gf-ctrl-btn-padding-y: var(--wp--preset--spacing--20);
	--gf-ctrl-btn-padding-x: var(--wp--preset--spacing--40);
	--gf-ctrl-btn-font-size: 1rem;
	--gf-ctrl-btn-font-weight: 800;
	--gf-ctrl-btn-icon-gap: 10px;
	--gf-ctrl-btn-letter-spacing: 0.075ch;
	--gf-ctrl-btn-line-height: 1;
	--gf-ctrl-btn-radius: 0;
	--gf-ctrl-btn-text-transform: uppercase;
	--gf-ctrl-label-color-req: var(--wp--preset--color--contrast);
	--gf-ctrl-label-font-size-primary: var(--wp--preset--font-size--normal);
	--gf-ctrl-label-font-size-tertiary: var(--wp--preset--font-size--xx-small);
	--gf-ctrl-label-font-weight-primary: 800;
	--gf-ctrl-label-letter-spacing-primary: 0.075ch;
	--gf-ctrl-label-line-height: 1;
	--gf-ctrl-outline-width: 4px;
	--gf-ctrl-outline-offset: 2px;
	--gf-ctrl-shadow: none;
	--gf-ctrl-transition: all var(--wp--custom--transition--hover);
	--gf-field-gap-x: var(--wp--preset--spacing--30);
	--gf-field-gap-y: var(--wp--preset--spacing--30);
	--gf-form-footer-margin-y-start: var(--wp--preset--spacing--30);
	--gf-form-gap-x: var(--wp--preset--spacing--30);
	--gf-form-gap-y: var(--wp--preset--spacing--30);
	--gf-form-spinner-fg-color: var(--wp--preset--color--accent-1);
	--gf-label-req-gap: 2px;

	/* Labels */
	.gform-field-label:not(.gform-field-label--type-inline) {
		display: block;
		text-transform: uppercase;

		--gf-local-line-height: 1;
	}

	/* Sublabels */
	.gfield.field_sublabel_above .gform-field-label--type-sub {
		--gf-local-font-size: 16px;
		--gf-local-font-weight: 800;
		--gf-local-letter-spacing: 0.075ch;
	}

	.gfield:not(.field_sublabel_above) {
		& .gform-field-label--type-sub {
			font-size: 14px;
			text-transform: revert;
		}
	}
}

/* Legend - Hide "required" text note */
.gform_required_legend {
	display: none;
}

/* Change "required to an asterisk */
.gfield_required {
	.gfield_required_text {
		font-size: 0;
	}

	.gfield_required_text::before {
		font-size: 16px;
		content: '*';
	}
}

/* Labels */

/* Text inputs */
.gform-theme.gform-theme--framework.gform_wrapper :is(input[type='email'], input[type='phone'], input[type='text'],
input[type='url'], input[type='tel'], input[type='number'], select, textarea) {
	--gf-local-font-size: 16px;
	--gf-local-line-height: 1.15;
	--gf-local-height: auto;
	--gf-local-padding-y: 1rem;
	--gf-local-padding-x: 1rem;
	--gf-local-radius: 0;
	--gf-local-transition: none;
}

.gform-theme.gform-theme--framework.gform_wrapper :is(input[type='email'], input[type='phone'], input[type='text'],
input[type='url'], input[type='tel'], input[type='number'], select, textarea):focus-visible {
	--gf-local-outline-color: -webkit-focus-ring-color;
	--gf-local-outline-width: 2px;
	--gf-local-transition: none;
}

/* Checkbox and radio inputs */
.gform-theme--framework :is(.gfield_radio, .gfield_checkbox) {
	.gform-field-label--type-inline {
		--gf-local-font-size: 18px;

		translate: 0 2px;
	}
}

.gform-theme--framework :is(input[type='checkbox'], input[type='radio']) {
	--gf-ctrl-choice-check-color: var(--wp--preset--color--base);
	--gf-ctrl-choice-size: 32px;
	--gf-local-transition: none;

	align-items: center;
}

.gform-theme--framework :is(input[type='checkbox'], input[type='radio']):checked {
	background-color: var(--wp--preset--color--contrast);
}


/* Inline Variant for Checkboxes and Radio Buttons */
.gform-theme--framework .gfield--type-choice--inline.gfield--type-choice :is(.gfield_radio, .gfield_checkbox) {
	--gf-field-choice-gap: var(--wp--preset--spacing--40);

	flex-direction: row;
}

/* Checkbox */
.gform-theme--framework .gfield_checkbox {
	input[type='checkbox'] {
		--gf-local-radius: 0;
	}
}

/* Radio */
.gform-theme--framework input[type='radio'] {
	--gf-ctrl-radio-check-size: calc(var(--gf-ctrl-choice-size) * 0.25);
}

/* Consent checkbox */
.gravity-theme .ginput_container.ginput_container_consent {
	display: flex;
	gap: var(--wp--preset--spacing--10);
}

.gform-theme--framework.gform-theme.gform_wrapper  button.gform_button.wp-element-button {
	padding: calc(1.25em - 1px) calc(var(--wp--preset--spacing--40) - 1px);
	font-family: var(--wp--preset--font-family--secondary);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 800;
	letter-spacing: 0.075ch;
	line-height: 1;
	text-transform: uppercase;
	transition: all var(--wp--custom--transition--hover);
}

/* Dates */
.ginput_container_date {
	position: relative;
}

.ui-datepicker-trigger {
	position: absolute;
	inset-block-start: 50%;
	inset-inline-end: var(--wp--preset--spacing--10);
	transform: translateY(-50%);
}

/* Lists */
.gfield--input-type-list {
	--gf-ctrl-label-font-size-primary: var(--wp--preset--font-size--medium);
}

.gfield--input-type-list .gfield_header_item.gform-field-label {
	--gf-ctrl-label-font-size-primary: var(--wp--preset--font-size--x-small);
	--gf-ctrl-label-font-weight-primary: 400;
}

.gfield--input-type-list .gfield_label_before_complex {
	inline-size: 100%;
	padding-block-end: var(--gf-field-section-padding-y-end);
	border-block-end: var(--gf-field-section-border-width) var(--gf-field-section-border-style) var(--gf-field-section-border-color);
}

/* Embedded OL/UL Elements in HTML */
.gfield--input-type-html {
	flex: 0 0 auto;
	translate: 0 0.4375em;
}

.gfield--input-type-html .wp-block-list {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--10);
}

.gfield--input-type-html .wp-block-list:where(ul) li::marker {
	color: currentColor;
	font-size: 12px;
	line-height: 1;
}

/* Removes extra vertical spacing between hidden gravity forms elements */
.gform-footer .wp-block-buttons:has(+ [name='gform_ajax'], +[name='gform_ajax']) {
	margin-block-end: 0 !important;
}

.has-script-tag {
	display: none;
}


/* --- Yoast SEO --- */
.yoast-breadcrumbs {
	margin-block: var(--wp--preset--spacing--60);
	font-size: var(--wp--preset--font-size--small);
}

.yoast-breadcrumbs > span {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--10);
}

.yoast-breadcrumbs a {
	color: var(--wp--preset--color--accent-1);
	font-weight: 700;
	line-height: 1.71;
}

.yoast-breadcrumbs > span > span:first-child a {
	color: currentColor;
	font-weight: 300;
	text-decoration: none;
}

.is-style-hero .yoast-breadcrumbs {
	margin-block-end: var(--wp--preset--spacing--resp-60-90);
}

/**
 * Layout
 */

/* --- Backgrounds --- */

/* Add inline padding to containers with background color */
.has-global-padding .has-global-padding.has-background {
	padding-inline: var(--wp--style--root--padding-left) var(--wp--style--root--padding-right);
}

/* Remove margin between concurrent full-width containers w/ background colors */
:where(.alignfull.has-background, .wp-block-template-part:has(> .alignfull, > [class*='is-style-hero'])) + .alignfull.has-background {
	margin-block-start: 0;
}

.wp-block-group.alignfull.has-background:has(+ .wp-block-group.alignfull.has-background) {
	margin-block-end: 0;
}

.wp-block-group.alignfull.has-background + .wp-block-group.alignfull.has-background {
	margin-block-start: 0;
}

/* Locks 2x background image to the height of the container */
.has-2x-background-image {
	background-repeat: no-repeat;
	background-size: auto 100% !important;
}


/**
 * Typography
 */

.wp-block-heading:has(+ p) {
	margin-block-end: var(--wp--preset--spacing--20);
}

.wp-block-heading + p {
	margin-block-start: 0;
}


/* Extra Extra large font size */
:is(p, li).has-xx-large-font-size,
.has-xx-large-font-size :where(p, li) {
	line-height: 1.2;
}

/* Extra large font size */
:is(p, li).has-x-large-font-size,
.has-x-large-font-size :where(p, li) {
	line-height: 1.33;
}

/* Large font size */
:is(p, li).has-large-font-size,
.has-large-font-size :where(p, li) {
	line-height: 1.55;
}

/* Medium font size */
:is(p, li).has-medium-font-size,
.has-medium-font-size :where(p, li) {
	line-height: 1.55;
}

/* Small font size */
:is(p, li).has-small-font-size,
.has-small-font-size :where(p, li) {
	line-height: 1.71;
}

/* Extra small font size */
:is(p, li).has-x-small-font-size,
.has-x-small-font-size :where(p, li) {
	line-height: 1;
}

/* Center aligned text */
p.has-text-align-center {
	margin-inline: auto;
}

/* If paragraph is empty, hide it */
main .entry-content p:empty {
	display: none;
}

/* Last child is an empty paragraph, remove bottom margin from previous element */
main .entry-content > *:nth-last-child(2):has(+ p:empty) {
	margin-block-end: 0;
}

/* Format: Small Caps */
.is-small-caps {
	display: block;
	font-size: var(--wp--custom--heading--x-small--font-size);
	font-weight: var(--wp--custom--heading--xx-small--font-weight);
	letter-spacing: var(--wp--custom--heading--xx-small--letter-spacing);
	line-height: var(--wp--custom--heading--xx-small--line-height);
	text-transform: var(--wp--custom--heading--xx-small--text-transform);
}

.wp-block-post-terms.is-style-small-caps a {
	font-size: var(--wp--preset--font-size--x-small);
}

/* Read more */
.wp-block-read-more.is-style-small-caps {
	font-size: inherit;

	&.has-icon {
		--icon--spacing--block-gap: var(--wp--preset--spacing--5);
	}
}

/* Format: Underline */
.has-underline {
	text-decoration: underline;
	text-underline-offset: 0.22em;
	text-decoration-thickness: 1px;
}

/* Text wrap */
.has-balance-text-wrap:not(.has-text-align-center) {
	max-inline-size: var(--wp--custom--width--content-narrow);
	text-wrap: balance;
}

.has-balanced-text-wrap {
	text-wrap: pretty;
}

.has-pretty-text-wrap {
	text-wrap: pretty;
}

.has-nowrap-text-wrap {
	text-wrap: nowrap;
}

.has-wrap-text-wrap {
	text-wrap: wrap;
}

/* Block icons */
[class *='has-icon-'] {
	--icon--color: currentColor;
	--icon--width: 1em;
	--icon--height: 1em;
}

[class *='has-icon-']:not(.wp-block-social-links) {
	--icon--spacing--block-gap: var(--wp--preset--spacing--10);

	display: flex;
	align-items: center;
	gap: var(--icon--spacing--block-gap);
}

[class*='has-icon-'] :where(svg) {
	block-size: var(--icon--height);
	inline-size: var(--icon--width);
	color: var(--icon--color);
	fill: currentColor;
	transition: color var(--wp--custom--transition--hover), translate var(--wp--custom--transition--hover);
}

.has-icon-start::before {
	order: -1;
}


/**
 * Block styles
 */

/** Block style: Flag **/
.is-style-flag {
	display: inline-block;
	padding: var(--wp--preset--spacing--10) var(--wp--preset--spacing--10) calc(var(--wp--preset--spacing--10) - 1px);
	background-color: var(--wp--preset--color--base-3);
	border-block-end: 4px solid transparent;
	color: var(--wp--preset--color--contrast);
	font-size: 12px !important;
	font-weight: var(--wp--custom--heading--xx-small--font-weight);
	letter-spacing: var(--wp--custom--heading--xx-small--letter-spacing);
	line-height: 1;
	text-box: trim-both cap alphabetic;
	text-transform: var(--wp--custom--heading--xx-small--text-transform);
	border-image: var(--wp--custom--gradient--momentum-bar);
	border-image-slice: 1;
}

.is-style-flag a[rel='tag'] {
	color: inherit;
	font-weight: inherit;
	line-height: inherit;
	text-decoration: none;
}

.wp-block-heading.is-style-flag {
	margin-block-end: 0;
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	border: 0;
	text-box: unset;
}

/* On dark background */
.has-contrast-background-color .is-style-flag {
	border-image: var(--wp--custom--gradient--momentum-bar-light);
	border-image-slice: 1;
}

/* On light background */
:is(.has-base-background-color, .has-base-2-background-color, .has-base-3-background-color) .is-style-flag {
	border-image: var(--wp--custom--gradient--momentum-bar);
	border-image-slice: 1;
}

/** Block style: Small Caps **/
.is-style-small-caps.is-style-small-caps {
	display: flex;
	font-size: 14px;
	font-weight: var(--wp--custom--heading--xx-small--font-weight);
	letter-spacing: var(--wp--custom--heading--xx-small--letter-spacing);
	line-height: 1;
	text-box: trim-both cap alphabetic;
	text-decoration: none;
	text-transform: uppercase;
}

.is-style-small-caps a[rel='tag'] {
	display: block;
	color: inherit;
	font-weight: inherit;
	line-height: inherit;
	text-decoration: none;
}

/* Space between small caps and next element */
.is-style-small-caps + * {
	margin-block-start: var(--wp--preset--spacing--30);
}



/* --- Ornamental --- */
.is-style-ornamental {
	--decoration--block-size: var(--wp--preset--spacing--10);
	--decoration--inline-size: var(--wp--preset--spacing--60);
}

.is-style-ornamental::before {
	display: block;
	block-size: var(--decoration--block-size);
	inline-size: var(--decoration--inline-size);
	margin-block-end: 14px;
	clear: both;
	background-color: var(--decoration--color, inherit);
	content: '';
	transition: var(--wp--custom--transition--hover-slow);
	will-change: inline-size;
}

.is-style-ornamental.has-text-align-center::before,
.has-text-align-center .is-style-ornamental::before {
	margin-inline: auto;
}



/***
 * Blocks
 */

/* --- Truncate --- */
.wp-block-eh-truncate {
	margin-block: var(--wp--preset--spacing--30);
}

.wp-block-eh-truncate__content:has(+ .wp-block-eh-truncate__button) {
	margin-block-end: var(--wp--preset--spacing--5) !important;
}

.wp-block-eh-truncate__button {
	margin-block-start: 0;
	padding: 0;
	background: none;
	border: none;
	color: var(--wp--preset--color--accent-1);
	font-family: inherit;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	line-height: 1;
	text-decoration: underline;
	appearance: none;
	cursor: pointer;
	text-underline-offset: 2px;
	transition: text-underline-offset var(--wp--custom--transition--hover);
}

.wp-block-eh-truncate__button:hover {
	text-underline-offset: 4px;
}


/**
 * Patterns
 */

/* Custom date */
.wp-block-post-date.has-background, p.ceba-date {
	margin: 0;
	padding: var(--wp--preset--spacing--10) var(--wp--preset--spacing--10) calc(var(--wp--preset--spacing--10) - 1px);
	border-block-end-style: solid;
	border-block-end-width: 4px;
	font-size: 12px;
	font-weight: var(--wp--custom--heading--xx-small--font-weight);
	letter-spacing: var(--wp--custom--heading--xx-small--letter-spacing);
	line-height: var(--wp--custom--heading--xx-small--line-height);
	text-align: center;
	text-box: trim-both cap alphabetic;
	text-decoration: none;
}

.wp-block-post-date.has-background {
	border-block-end-color: var(--wp--custom--color--background);
}

p.ceba-date {
	background-color: var(--wp--preset--color--contrast);
	border-block-end-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.membership-term-wrapper {
	.wp-block-post-terms {
		flex: 0 1 auto;
		inline-size: fit-content;
		min-inline-size: 0;

		a {
			display: block;
			padding-block-end: 0.25em;
			text-overflow: ellipsis;
			overflow-x: hidden;
			white-space: nowrap;
		}
	}
}

.membership-term-wrapper > div:has(+ div) {
	margin-inline-end: 0.25em;

	a:last-child {
		&::after {
			content: ',';
		}
	}
}

/* Meta container */
.ceba-meta {
	font-size: 12px;
	font-weight: var(--wp--custom--heading--xx-small--font-weight);
	letter-spacing: var(--wp--custom--heading--xx-small--letter-spacing);
	line-height: var(--wp--custom--heading--xx-small--line-height);
	text-align: center;
	text-box: trim-both cap alphabetic;
	text-decoration: none;
}

/* Post terms */
.ceba-post-terms {
	> p {
		flex-shrink: 0;
		line-height: 1.3 !important;
		white-space: nowrap;
	}

	> .wp-block-post-terms {
		line-height: 1.3;
	}
}


/* Inline list style for core/group */
.ceba-inline-list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--preset--spacing--10) var(--wp--preset--spacing--5);
}

.ceba-inline-list > * {
	margin: 0 !important;
}

.ceba-inline-list > *:not(:last-child) {
	display: flex;
	flex-direction: row-reverse;
	gap: var(--wp--preset--spacing--5);
}

.ceba-inline-list > *:not(:last-child)::before {
	color: var(--wp--preset--color--accent-1);
	content: '•';
}


/* --- Card --- */
:where(.ceba-card, .ceba-card-press, .ceba-card-team, .ceba-card--member) {
	block-size: 100%;
	box-shadow: var(--wp--preset--shadow--medium);
}

/* Card */
.ceba-card {
	.wp-block-post-terms.is-style-small-caps a {
		font-size: var(--wp--preset--font-size--small);
	}
}

/* Bordered card */
.ceba-card-bordered {
	display: grid !important;
	grid-row: auto / span 4;
	grid-template-rows: subgrid;
	gap: 0 !important;

	:where(h1, h2, h3, h4, h5, h6) {
		text-wrap: unset;
	}

	.wp-block-buttons:last-child .wp-block-button__link {
		--icon--color: var(--wp--preset--color--accent-1);
	}
}

/* Team member card */
.ceba-card-team {
	position: relative;
	overflow: clip;
	transition: background-color var(--wp--custom--transition--hover), color var(--wp--custom--transition--hover);

	:where(.wp-block-post-featured-image, .wp-block-image) {
		--aspect-ratio: 396 / 450;
	}

	& .wp-block-post-title {
		font-size: 1rem !important;
	}

	:where(.wp-block-read-more, .wp-block-button__link).has-icon {
		--icon--spacing--block-gap: var(--wp--preset--spacing--5);

		position: static;
		color: inherit;
		font-weight: 700;

		svg {
			--icon--width: 24px;
			--icon--height: 24px;
			--icon--color: var(--wp--preset--color--accent-1);

			translate: 0 0;
		}
	}

	:where(.wp-block-read-more, .wp-block-button__link)::before {
		position: absolute;
		inset: 0;
		letter-spacing: 0;
		content: '';
		cursor: pointer;
	}

	.ceba-card-team__content {
		border-block-start: 4px solid transparent;
		transition: padding-inline-end var(--wp--custom--transition--hover);
	}

	&:hover {
		background-color: var(--wp--preset--color--contrast);
		color: var(--wp--preset--color--base);

		.ceba-card-team__content {
			padding-inline-end: var(--wp--preset--spacing--20) !important;
			border-image: var(--wp--custom--gradient--momentum-bar);
			border-image-slice: 1;
		}
	}
}

/* Member card */
.ceba-card--member {
	--flag--offset: 14px;

	position: relative;
	justify-content: space-between;

	& > div:first-child {
		flex-grow: 1;
	}

	.wp-block-post-featured-image {
		--aspect-ratio: 303 / 152;

		display: flex;
		position: relative;
		align-items: center;
		justify-content: center;
		padding: var(--wp--preset--spacing--30);
		background-color: var(--wp--preset--color--base);

		img {
			position: initial;
			max-block-size: 100%;
			max-inline-size: 100%;
		}
	}

	.leadership-flag {
		position: absolute;
		inset-block-start: 0;
		inset-inline-start: 0;
		translate: 0 calc(var(--flag--offset) * -1);

		&:empty {
			display: none;
		}
	}

	.wp-block-post-title {
		font-size: 12px;
	}
}

/* --- Photo Card --- */
.ceba-card-photo {
	> .wp-block-image {
		aspect-ratio: 396 / 233;
		max-inline-size: 100%;
		overflow: clip;

		img {
			block-size: 100%;
			inline-size: 100%;
			object-fit: cover;
			object-position: center;
		}
	}

	> .wp-block-buttons {
		margin-block-start: auto;

		&:not(:has([href])) {
			display: none;
		}
	}
}

/* --- Press card --- */
.ceba-card-press {
	position: relative;
	overflow: clip;
	transition: background-color var(--wp--custom--transition--hover), box-shadow var(--wp--custom--transition--hover);

	.wp-block-image {
		block-size: 32px;

		img {
			block-size: 100%;
			inline-size: 100%;
			object-fit: contain;
			object-position: top left;
		}

		&.is-selected:not(:has(img)) {
			block-size: auto;
			z-index: 2;
		}
	}

	/* Button */
	.wp-block-buttons {
		z-index: 2;
	}

	.wp-block-button__link {
		position: static;
	}

	.wp-block-button__link:hover {
		--button--color--text: currentColor;
	}

	.wp-block-button__link.has-icon svg,
	.has-icon .wp-block-button__link::after {
		color: var(--wp--preset--color--accent-1);
	}

	/* Cover - Make entire card clickable */
	.wp-block-button__link::after {
		position: absolute;
		inset: 0;
		content: '';
		cursor: pointer;
	}

	/* Card hover states */
	&:hover {
		background-color: var(--wp--preset--color--base);
		box-shadow: var(--wp--preset--shadow--medium);

		& .wp-block-heading {
			color: var(--wp--preset--color--accent-3);
			text-decoration: underline;
			transition: color var(--wp--custom--transition--hover);
		}
	}
}

/* Content */
.ceba-card__content {
	padding: var(--wp--preset--spacing--30);
}

.ceba-card__content :where(p) {
	font-size: var(--wp--preset--font-size--small);
}

.ceba-card__meta {
	padding-block: var(--wp--preset--spacing--10);
	border-block-start: 1px solid var(--wp--preset--color--base-3);
	border-block-end: 1px solid var(--wp--preset--color--base-3);
}

/* Buttons - Pin to bottom */
.ceba-card__buttons {
	margin-block-start: auto !important;
}

.wp-block-post.type-program .ceba-card__buttons {
	display: none;
}

/* Set height to 100% when a grid item */
.wp-block-post > .ceba-card {
	block-size: 100%;
}


/* --- Cards with top border --- */
:where(.ceba-card-bordered, .ceba-card-cross-sell):not([style*='border-top-color']) {
	--card--border--color: var(--wp--preset--color--accent-2);

	border-block-start-color: var(--card--border--color) !important;
}

.is-layout-grid :where(.ceba-card-bordered, .ceba-card-cross-sell):nth-child(3n+2) {
	--card--border--color: var(--wp--preset--color--accent-1);
}

.is-layout-grid :where(.ceba-card-bordered, .ceba-card-cross-sell):nth-child(3n+3) {
	--card--border--color: var(--wp--preset--color--contrast);
}

/* --- Card - Cross Sell --- */
.ceba-card-cross-sell .wp-block-buttons {
	margin-block-start: auto;
}


/* --- Banner --- */
.ceba-banner.wp-block-group,
.is-reusable:has(> .ceba-banner:first-child) {
	margin-block-end: var(--wp--preset--spacing--90);

	@media (width < 768px) {
		> .wp-block-group.is-layout-flex {
			flex-direction: column;
			align-items: stretch;
			justify-content: flex-start;
			gap: var(--wp--preset--spacing--30);

			> .wp-block-group {
				flex-basis: auto;
			}
		}
	}
}


/* --- Promo --- */
.ceba-promo.wp-block-group {
	> .wp-block-group {
		max-inline-size: 848px;
	}

	&[style*='background-size:contain'] {
		background-repeat: no-repeat;
		background-size: auto 100% !important;
	}

	@media (width < 768px) {
		flex-direction: column;
		align-items: stretch;
		justify-content: flex-start;
		gap: var(--wp--preset--spacing--30);

		> .wp-block-group {
			flex-basis: auto;
		}
	}
}


/* --- Photo Testimonial --- */
.ceba-photo-testimonial__media {
	flex-shrink: 0;
}

.ceba-photo-testimonial__media img {
	inline-size: 100%;
	max-inline-size: none;
}

@media (width < 1024px) {
	.ceba-photo-testimonial {
		flex-direction: column;
		gap: var(--wp--preset--spacing--30);
	}

	.ceba-photo-testimonial .wp-block-separator {
		margin-block: var(--wp--preset--spacing--30);
	}

	.ceba-photo-testimonial__media {
		flex-basis: 100%;
		inline-size: 100%;
	}
}


/* --- Promos --- */
.ceba-hero-promo {
	--promo--content--spacing--padding: var(--wp--preset--spacing--30);
}

.ceba-hero-promo .wp-block-columns {
	display: grid !important;
	grid-template-columns: 1fr;
	background-image: url(assets/images/backgrounds/wave-white-02.webp);
	background-position: bottom left;
	background-repeat: no-repeat;
}

/* Fix for anchor positioning in editor */
.ceba-hero-promo .wp-block-columns.wp-block,
.ceba-hero-promo__content.wp-block-column.wp-block {
	position: static !important;
}

.ceba-hero-promo__content:is(.is-selected, .has-child-selected) .is-style-flag {
	translate: 0 100%;
}

.ceba-hero-promo .is-style-flag + .wp-block-heading {
	margin-block-start: 0;
}

.ceba-hero-promo__content {
	padding: var(--promo--content--spacing--padding);
}

.ceba-hero-promo__media {
	position: relative;
}

.ceba-hero-promo__media:has(.components-placeholder) {
	background-color: gray
}

.ceba-hero-promo__media .wp-block-image,
.ceba-hero-promo__media .wp-block-image :where(a, img, .components-placeholder) {
	block-size: 100%;
}

.ceba-hero-promo__media .wp-block-image .image-cropper__crop-area {
	block-size: 100% !important;
}

.ceba-hero-promo__media .wp-block-image figcaption {
	position: absolute;
	inset-block-end: 0;
	inset-inline: 0;
}

.ceba-hero-promo__media .wp-block-image figcaption a {
	color: currentColor;
	text-decoration: none;
}

.ceba-hero-promo__media .wp-block-image img {
	inset: 0;
	inline-size: 100%;
	max-inline-size: none;
	object-fit: cover;
	object-position: center;
}

@media (width >= 1024px) {
	.ceba-hero-promo {
		--promo--spacing--margin-inline: auto;
		--promo--content--spacing--padding: var(--wp--preset--spacing--90) var(--wp--preset--spacing--30) var(--wp--preset--spacing--90) var(--wp--preset--spacing--90);
	}

	.ceba-hero-promo .wp-block-columns {
		grid-template-columns: repeat(2, 1fr);
	}
}


/* --- Sidebar layout --- */
.wp-block-columns.ceba-sidebar-layout {
	--sidebar--spacing--gap: var(--wp--preset--spacing--60) var(--wp--preset--spacing--30);
	--grid--columns: 1;

	display: grid;
	flex-direction: column;
	gap: var(--sidebar--spacing--gap);
}

/* Content area */
.ceba-sidebar-layout__content .wp-block-post-template.is-layout-grid {
	grid-template-columns: repeat(var(--grid--columns), minmax(0, 1fr));
}

@media (width >= 600px) {
	/* Member archive */
	.post-type-archive-member .wp-block-columns.ceba-sidebar-layout {
		--grid--columns: 2;
	}

	.post-type-archive-member .ceba-sidebar-layout__content .wp-block-post-template.is-layout-grid {
		row-gap: var(--wp--preset--spacing--50);
	}
}

@media (width >= 768px) {
	.wp-block-columns.ceba-sidebar-layout {
		--grid--columns: 2;

		display: grid;
		flex-direction: column;
	}

	/* Member archive */
	.post-type-archive-member .wp-block-columns.ceba-sidebar-layout {
		--grid--columns: 3;
	}
}

@media (width >= 1024px) {
	.wp-block-columns.ceba-sidebar-layout {
		--layout--sidebar--inline-size: 396px;

		display: grid;
		grid-template-columns: minmax(min(285px, 100%), 1fr) 3fr;
		margin-block-start: var(--wp--preset--spacing--60);
	}

	.post-type-archive-member .wp-block-columns.ceba-sidebar-layout {
		--grid--columns: 3;
	}

	.ceba-sidebar-layout__nav {
		position: sticky;
		inset-block-start: calc(var(--wp--custom--head--dimensions--height) + var(--wp--preset--spacing--60) + var(--wp-admin--admin-bar--height, 0px));
	}
}

@media (width >= 1392px) {
	.wp-block-columns.ceba-sidebar-layout {
		--layout--sidebar--inline-size: 396px;
		--sidebar--spacing--gap: var(--wp--preset--spacing--60);
		--grid--columns: 3;
	}

	.post-type-archive-member .wp-block-columns.ceba-sidebar-layout {
		--grid--columns: 4;
	}
}



/**
 * Template Parts
 */

/* --- Footer --- */
footer:has(.ceba-part-foot) {
	margin-block-start: 0;
}

.ceba-part-foot {
	margin-block-start: 0;
	padding-block: var(--foot--padding--block, var(--wp--preset--spacing--60));
	border-block-start: var(--foot--border--block-start--width, 16px) solid transparent;
	border-image: var(--wp--custom--gradient--momentum-bar);
	border-image-slice: 1;
}

.ceba-part-foot :is(.ceba-part-foot__top, .ceba-part-foot__bottom) {
	--wp--style--global--wide-size: 600px;
}

/* Footer logo */
.ceba-part-foot__logo {
	max-inline-size: 100%;
}


nav.ceba-nav-footer {
	display: flex;
	align-items: start;
	row-gap: var(--wp--preset--spacing--40);
	inline-size: 100%;
	margin-block: var(--wp--preset--spacing--40);
}

.ceba-nav-footer.wp-block-navigation__container {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--wp--preset--spacing--10);
	inline-size: 100%;
}

.ceba-part-foot__top .wp-block-buttons {
	flex: 1;
}

.ceba-part-foot__bottom {
	row-gap: var(--wp--preset--spacing--10);
	margin-block-start: var(--wp--preset--spacing--40);
	padding-block-start: var(--wp--preset--spacing--40);
	border-block-start: 1px solid var(--wp--preset--color--accent-3);
}

.ceba-part-foot__bottom .wp-block-navigation {
	row-gap: var(--wp--preset--spacing--10);
}

@media (width >= 600px) {
	.ceba-part-foot__top .wp-block-buttons .wp-block-button {
		max-inline-size: 600px;
		margin-inline: auto;
	}
}

@media (width >= 1024px) {
	.ceba-part-foot {
		--foot--padding--block: var(--wp--preset--spacing--120) var(--wp--preset--spacing--60);
		--foot--border--block-start--width: 22px;
	}

	.ceba-part-foot p.has-text-align-center {
		margin-inline: 0;
		text-align: start;
	}

	.ceba-part-foot :is(.ceba-part-foot__top, .ceba-part-foot__bottom) {
		--wp--style--global--wide-size: revert;
	}


	.ceba-part-foot__top > .wp-block-group {
		align-items: flex-start;
	}


	/* Nav internal wrapper */
	.ceba-nav-footer .wp-block-navigation__container {
		display: contents;
	}


	nav.ceba-nav-footer.is-layout-flex {
		display: grid;
		grid-template-columns: repeat(9, 1fr);
		margin-block-start: var(--wp--preset--spacing--50);
		padding-block-start: var(--wp--preset--spacing--60);
		border-block-start: 1px solid var(--wp--preset--color--accent-3);
	}

	nav.ceba-nav-footer .is-style-list {
		grid-column: span 2;
	}

	.ceba-part-foot__top .wp-block-buttons {
		grid-column: span 3;
	}

	.ceba-part-foot__bottom {
		justify-content: flex-start;
		margin-block-start: var(--wp--preset--spacing--60);
		padding-block-start: var(--wp--preset--spacing--60);
	}
}


@media (width >= 1300px) {
	.ceba-part-foot__top {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--wp--preset--spacing--60);
	}

	nav.ceba-nav-footer.is-layout-flex {
		margin-block-start: 0;
		padding-block-start: 0;
		border-block-start: 0;
	}
}


/* --- Header / Main nav --- */
.ceba-part-head {
	--head--spacing--padding--block: var(--wp--preset--spacing--20);
	--head--spacing--padding--inline: var(--wp--style--root--padding-left);

	position: fixed;
	inset-block-start: var(--wp--custom--top--offset, 0);
	inset-inline-start: 0;
	inline-size: 100%;
	padding-inline: var(--head--spacing--padding--inline);
	z-index: var(--wp--custom--z-index--head);
}

.ceba-part-head::before {
	display: block;
	position: absolute;
	inset-block-start: 0;
	inset-inline-start: 0;
	block-size: 100%;
	inline-size: 100%;
	background: var(--wp--custom--head--color--background);
	box-shadow: 0 4px 16px 0 rgb(0 0 0 / 8%);
	content: '';
	opacity: var(--head--background--opacity);
	transition: opacity 0.3s ease-in-out;
	z-index: 0;
}

.ceba-part-head__inner {
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--10);
	block-size: var(--wp--custom--head--dimensions--height);
	padding-block: var(--head--spacing--padding--block);
}


.ceba-part-head__inner > :where(.ceba-part-head__logo, .wp-block-group) {
	z-index: 2;
}

/* Logo */
.ceba-part-head__logo,
.ceba-part-head__logo img {
	block-size: 100%;
	inline-size: auto;
}

.ceba-part-head__logo a {
	block-size: 100%;
}

/* Mobile search */
.ceba-search--mobile .wp-element-button.wp-element-button {
	--wp--custom--color--background: transparent;
	--button--spacing--padding-block: var(--wp--preset--spacing--20);
	--button--spacing--padding-inline: var(--wp--preset--spacing--15);
}

.ceba-search--mobile svg {
	--icon--width: 24px;
	--icon--height: 24px;

	scale: 1 1;
	translate: 0;
}

.ceba-search--mobile .wp-element-button.wp-element-button:hover {
	--icon--color: var(--wp--preset--color--base);
	--button--color--background-hover: transparent !important;

	color: var(--wp--preset--color--base) !important;
}


/* Hide desktop mobile buttons and logo when overlay is open */
.ceba-part-head__inner:has(.has-modal-open) {
	:is(& > .ceba-part-head__logo, & .wp-block-navigation__responsive-container-open, & > .wp-block-group > .ceba-search) {
		visibility: hidden;
		transition: visibility 0s ease 0.25s;
	}
}

.eh-scroll-bug {
	position: absolute;
	inset-block-start: var(--wp--custom--head--dimensions--height);
	inset-inline-start: 0;
	block-size: var(--wp--custom--head--dimensions--height);
	inline-size: 5px;
	z-index: 9999;
	pointer-events: none;
}



@media  (width >= 1024px) {
	.ceba-part-head {
		--head--spacing--padding--block: var(--wp--preset--spacing--30);
	}

	.ceba-part-head .ceba-search--mobile {
		display: none;
	}

	.ceba-part-head__logo {
		block-size: auto;
	}


	/* Submenu item link content */
	.ceba-nav-main .wp-block-navigation .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content {
		padding: var(--wp--preset--spacing--10) var(--wp--preset--spacing--30);
	}

	.ceba-nav-main .wp-block-navigation-submenu.wp-block-navigation__submenu-container a:where(:not(.wp-element-button)) {
		font-size: var(--wp--preset--font-size--large);
		line-height: 1.55;
		transition: background-color var(--wp--custom--transition--hover);
	}
}

/** Override WordPress mobile navigation breakpoint */
@media (width >= 600px) and (width < 1024px) {
	.ceba-nav-main .wp-block-navigation__responsive-container:not(.hidden-by-default, .is-menu-open) {
		display: none;
	}

	.ceba-nav-main .wp-block-navigation__responsive-container-open:not(.always-shown),
	.ceba-nav-main .wp-block-navigation__responsive-container.has-modal-open {
		display: flex;
	}
}


/* Override default transition */
/* stylelint-disable-next-line keyframes-name-pattern */
@keyframes overlay-menu__fade-in-animation {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

/* Search modal */
.wp-block-eh-modal.ceba-search.is-modal.block-editor-block-list__block:not(.is-selected, :has(.has-child-selected)) {
	display: none;
}


/**
 * Templates
 */

/* --- Single --- */
.single-post .ceba-single {
	--main--spacing--padding--block-start: calc(var(--wp--custom--head--dimensions--height) + var(--wp--preset--spacing--60));

	@media (width >= 1024px) {
		--main--spacing--padding--block-start: calc(var(--wp--custom--head--dimensions--height) + var(--wp--preset--spacing--60));
	}
}

.ceba-single__meta > .wp-block-group {
	border-block-start: 16px solid transparent;
	border-image: var(--wp--custom--gradient--momentum-bar);
	border-image-slice: 1;
}

.ceba-single__meta .ceba-single__sharing {
	margin-block: 0;
}

/* Hide featured image and add margin to meta if fallback image is used */
.ceba-single__featured-image:has(img[src*='fallback-news'], img[src*='blog-placeholder']) {
	display: none;

	& + .ceba-single__meta {
		max-inline-size: 100%;
		margin-block-start: 0 !important;

		> .wp-block-group {
			max-inline-size: 100%;
			border-block-start: 0;
		}

		.wp-block-post-title {
			text-wrap: wrap;
		}
	}
}

@media (width >= 1024px) {
	.ceba-single__meta {
		position: relative;
		max-inline-size: 800px;
		margin-block-start: calc(var(--wp--preset--spacing--120) * -1) !important;
		z-index: 2;
	}
}

/* --- Resource single --- */
body.single-resource .ceba-single-resource {
	--main--spacing--padding--block-start: calc(var(--wp--custom--head--dimensions--height) + var(--wp--preset--spacing--90));
	--main--spacing--padding--block-end: var(--wp--preset--spacing--120);

	@media (width >= 1024px) {
		--main--spacing--padding--block-start: calc(var(--wp--custom--head--dimensions--height) + var(--wp--preset--spacing--90));
		--main--spacing--padding--block-end: var(--wp--preset--spacing--120);
	}
}

.ceba-single-resource .wp-block-post-terms {
	flex-wrap: wrap;

	a {
		display: inline-block;
	}
}

/* --- Team single --- */
.ceba-single-team-member .is-style-hero-team-member p {
	font-size: 20px;
}

.ceba-single-team-member__meta:not(:has(.wp-block-button)) {
	display: none;
}

.ceba-single-team-member__bio-heading:empty {
	display: none;
}

.ceba-single-team-member .wp-block-columns {
	--team-member--photo--inline-size: 300px;

	display: grid;
	grid-template-columns: 1fr;
	row-gap: var(--wp--preset--spacing--30);
}

@media (width >= 768px) {
	.wp-block-columns.ceba-single-team-member__content {
		display: grid;
	}
}

@media (width >= 1024px) {
	.ceba-single-team-member .wp-block-columns {
		grid-template-columns: var(--team-member--photo--inline-size) 1fr;
	}
}

@media (width >= 1200px) {
	.ceba-single-team-member .wp-block-columns {
		--team-member--photo--inline-size: 392px;
	}
}

/* --- Narrow layouts / Program Single --- */
/* Set content size to 1272px */
.page-template-page-narrow main .is-layout-constrained:not(.wp-block-cover__inner-container),
.editor-styles-wrapper.page-template-page-narrow,
.ceba-single-program .is-layout-constrained,
.editor-styles-wrapper.post-type-program {
	--wp--style--global--content-size: 1272px;
	--wp--style--global--wide-size: 1272px;
}


/**
 * WordPress styles
 */

/* --- Admin bar --- */

/* stylelint-disable-next-line selector-max-id */
#wpadminbar {
	position: fixed;
	inset-block-start: 0;
	inset-inline-start: 0;
}

/* Prevent admin bar user menu from overflowing on tablet widths */
@media (width >= 782px) and (width <= 1024px) {
	/* stylelint-disable-next-line selector-max-id */
	:where(#wpadminbar #wp-admin-bar-customize, #wpadminbar #wp-admin-bar-edit, #wpadminbar #wp-admin-bar-my-account, #wpadminbar #wp-admin-bar-my-sites, #wpadminbar #wp-admin-bar-site-editor, #wpadminbar #wp-admin-bar-site-name) > .ab-item {
		position: relative;
		inline-size: 42px;
		padding: 0;
		color: #a7aaad;
		text-indent: 100%;
		white-space: nowrap;
		overflow: hidden;
	}

	/* stylelint-disable-next-line selector-max-id */
	#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar > a img {
		position: absolute;
		inset-block-start: 12px;
		inset-inline-end: 10px;
		block-size: 16px;
		inline-size: auto;
	}
}

/* --- Lightbox --- */
.wp-lightbox-overlay {
	--wp--preset--color--contrast: var(--wp--preset--color--base);
}

/* Lightbox backdrop */
.wp-lightbox-overlay .scrim {
	--wp--preset--color--base: rgb(0 0 0 / 90%);
}

/**
 * Animation
 */
@keyframes slide-up {
	0% {
		block-size: var(--wp--custom--head--dimensions--height);
	}

	100% {
		block-size: var(--wp--custom--head--dimensions--pinned-height);
	}
}

@keyframes slide-down {
	0% {
		block-size: var(--wp--custom--head--dimensions--pinned-height);
	}

	100% {
		block-size: var(--wp--custom--head--dimensions--height);
	}
}

/**
 * Visibility utilities.
 */

:where(.display\@wp-tablet, .display\@tablet, .display\@wp-md, .display\@desktop, .display\@nav, .display\@print, .flex\@wp-tablet, .flex\@tablet, .flex\@wp-md, .flex\@desktop, .flex\@nav, .flex\@print):not(.block-editor-block-list__block) {
	display: none !important;
}

/* WordPress tablet */
@media (width >= 601px) {
	.display\@wp-tablet {
		display: block !important;
	}

	.hide\@wp-tablet {
		display: none !important;
	}

	.flex\@wp-tablet {
		display: flex !important;
	}
}

/* WordPress meidum */
@media (width >= 782px) {
	.display\@wp-md {
		display: block !important;
	}

	.hide\@wp-md:not(.block-editor-block-list__block) {
		display: none !important;
	}

	.flex\@wp-md {
		display: flex !important;
	}
}

/* Tablet */
@media (width >= 768px) {
	.display\@tablet {
		display: block !important;
	}

	.hide\@tablet:not(.block-editor-block-list__block) {
		display: none !important;
	}

	.flex\@tablet {
		display: flex !important;
	}
}

/* Desktop */
@media (width >= 1024px) {
	.display\@desktop {
		display: block !important;
	}

	.hide\@desktop:not(.block-editor-block-list__block) {
		display: none !important;
	}

	.flex\@desktop {
		display: flex !important;
	}
}

/* Nav */
@media (width >= 1200px) {
	.display\@nav {
		display: block !important;
	}

	.hide\@nav:not(.block-editor-block-list__block) {
		display: none !important;
	}

	.flex\@nav {
		display: flex !important;
	}
}

/* Print */
@media print {
	.display\@print {
		display: block !important;
	}

	.flex\@print {
		display: flex !important;
	}

	.hide\@print {
		display: none !important
	}
}
