/* ==========================================================================
	Reset
	========================================================================== */

/* Global box sizing. */

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

/* Remove default margin from body and make fonts render better. */

body {
	margin: 0;
	-webkit-font-smoothing: antialiased;
}

/* Reset default spacing on text elements. */

h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
blockquote {
	padding: 0;
	margin: var(--wp--preset--spacing--x-small) 0 0 0;
}

/* Remove the italic styling from citations. */

cite {
	font-style: normal;
}

/* If a bottom border is being used for styling links in theme.json,
ensure that this isn't applied to links that contain images. */

a:has(img) {
	border: none;
}

/* Remove 1em bottom margin from figure elements. */

figure {
	margin-bottom: 0;
}

/* Prevent images from overflowing their container and distorting. */

img {
	max-width: 100%;
	height: auto;
}

/* Remove the default outline from focus states globally,
and instead apply it to :focus-visible to prevent ugly styles
for non-keyboard users. */

a {

	&:focus {
		outline: none;
	}

	&:focus-visible {
		outline: 2px solid;
		outline-offset: 5px;
	}
}

/* In the details element, add a more appropriate cursor to
summary elements and prevent block level direct descendants,
e.g. headings, from breaking onto a new line. */

details {

	summary {
		cursor: pointer;

		> * {
			display: inline;
		}
	}
}

/* Remove all animations and transitions for people who
prefer not to see them. */

@media (prefers-reduced-motion: reduce) {

	html:focus-within {
		scroll-behavior: auto;
	}

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

/* ==========================================================================
	Site
	========================================================================== */

/**
 * Styles for top level global components.
 *
 * Contents
 *
 * 1. Body
 * 2. Skip to main content
 * 3. Site logo
 * 4. Site header
 * 5. Site footer
 */

/* 1. Body
	========================================================================== */

body {
	padding-top: 81px;
	max-width: 100vw;
	overflow-x: hidden;
}

/* Match shorter mobile header height (70px + 1px border) */

@media (max-width: 768px) {
    body { padding-top: 71px; }
}

html:has(.logged-in) {

	body {
		padding-top: 51px;
	}
}

body.mobile-menu-open {
	overflow: hidden;
}

/* 2. Skip to main content
	========================================================================== */

.skip-main {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;

	&:focus-visible,
	&:active {
		color: var(--wp--preset--color--base);
		background-color: var(--wp--preset--color--contrast);
		left: 50%;
		-webkit-transform: translateX(-50%);
		        transform: translateX(-50%);
		top: 0;
		display: inline-block;
		margin: auto;
		height: auto;
		width: auto;
		clip: auto;
		overflow: auto;
		padding: 15px;
		border-radius: 0 0 15px 15px;
		text-align: center;
		font-size: var(--wp--preset--font-size--medium);
		text-decoration: underline;
		outline: none;
		border: none;
		-webkit-transition: none;
		transition: none;
	}
}

/* 3. Site logo
	========================================================================== */

.site-logo {}

/* 4. Site header
	========================================================================== */

.site-head {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1000;
	background-color: var(--wp--preset--color--white);
	border-bottom: 1px solid var(--wp--preset--color--neutral-40);
	-webkit-transition: -webkit-transform 0.3s ease-in-out;
	transition: -webkit-transform 0.3s ease-in-out;
	transition: transform 0.3s ease-in-out;
	transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;

	&.site-head--hidden {
		-webkit-transform: translateY(-100%);
		        transform: translateY(-100%);
	}

	.site-head__inner {
		max-width: var(--wp--style--global--wide-size);
		margin: 0 auto;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
		-webkit-box-pack: justify;
		    -ms-flex-pack: justify;
		        justify-content: space-between;
		min-height: 80px;

		@media (max-width: 768px) {
			min-height: 70px;
		}
	}

	.site-head__logo {
		-ms-flex-negative: 0;
		    flex-shrink: 0;

		img {
			width: 155px;
			height: auto;
			display: block;

			@media (max-width: 768px) {
				width: 109px;
			}
		}
	}

	.site-head__menu {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
		-webkit-box-pack: end;
		    -ms-flex-pack: end;
		        justify-content: flex-end;
		gap: var(--wp--preset--spacing--small);
		position: relative;
		padding: var(--wp--preset--spacing--x-small) 0;
	}

	.site-head__actions {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
		gap: var(--wp--preset--spacing--small);
	}

	.site-head__search,
	.site-head__mobile-toggle {
		background: none;
		border: none;
		cursor: pointer;
		color: var(--wp--preset--color--neutral-10);
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
		-webkit-box-pack: center;
		    -ms-flex-pack: center;
		        justify-content: center;
		border-radius: var(--wp--custom--border-radius--small);

		svg {
			width: 24px;
			height: 24px;
		}
	}

	.site-head__linkedin {
		background: rgba(0, 126, 187, 1);
		border: none;
		color: var(--wp--preset--color--white);
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
		-webkit-box-pack: center;
		    -ms-flex-pack: center;
		        justify-content: center;
		width: 24px;
		height: 24px;
		border-radius: var(--wp--custom--border-radius--x-small);

		svg {
			width: 16px;
			height: 16px;
			fill: var(--wp--preset--color--white);
			stroke-width: 0;
		}
	}

	.site-head__search {
		@media (max-width: 768px) {
			display: none;
		}
	}

	.site-head__mobile-toggle {
		display: none;

		@media (max-width: 768px) {
			display: -webkit-box;
			display: -ms-flexbox;
			display: flex;
		}
	}
}

/* 5. Site footer
	========================================================================== */

.site-foot {
	background: var(--wp--preset--color--neutral-10);
	color: var(--wp--preset--color--white);
	padding: var(--wp--preset--spacing--large) 0;
}

.site-foot__container {
	max-width: var(--wp--style--global--wide-size);
	margin: 0 auto;
}

.site-foot__content {
	display: -ms-grid;
	display: grid;
	-ms-grid-columns: 2fr 1fr 1fr 1fr;
	grid-template-columns: 2fr 1fr 1fr 1fr;
	gap: var(--wp--preset--spacing--large);
	margin-bottom: var(--wp--preset--spacing--medium);
}

.site-foot__column--menu {
	min-width: 0;
}

@media (max-width: 1240px) {
	.site-foot__container {
		padding-left: var(--wp--style--root--padding-left);
		padding-right: var(--wp--style--root--padding-right);
	}
}

@media (max-width: 768px) {
	.site-foot__content {
		-ms-grid-columns: 1fr;
		grid-template-columns: 1fr;
		gap: var(--wp--preset--spacing--small);
	}
}

.site-foot__column--logo .site-foot__logo {
	margin-bottom: var(--wp--preset--spacing--small);
}

.site-foot__column--logo .site-foot__logo img {
	height: auto;
	display: block;
}

.site-foot__column--logo .site-foot__charity-info {
	font-size: var(--wp--preset--font-size--body-small);
	line-height: 1.5;
	margin-top: var(--wp--preset--spacing--x-small);
	margin-bottom: var(--wp--preset--spacing--medium);
}

.site-foot__column--logo .site-foot__addresses .site-foot__address {
	font-size: var(--wp--preset--font-size--body-small);
	line-height: 1.5;
	margin-bottom: var(--wp--preset--spacing--small);
}

.site-foot__column--logo .site-foot__addresses .site-foot__address strong {
	font-weight: 600;
}

.site-foot__column--logo .site-foot__logo {
	margin-top: 0;
}

.site-foot__column--menu h6 {
	margin-top: 0;
	margin-bottom: var(--wp--preset--spacing--small);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--body-regular);
	font-weight: 600;
}

.site-foot__menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-foot__menu li {
	margin-bottom: var(--wp--preset--spacing--x-small);
}

.site-foot__menu a {
	color: var(--wp--preset--color--white);
	text-decoration: none;
	font-size: var(--wp--preset--font-size--body-small);
	line-height: 1.5;
}

.site-foot__bottom {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	    -ms-flex-pack: justify;
	        justify-content: space-between;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	padding-top: var(--wp--preset--spacing--medium);
	font-size: var(--wp--preset--font-size--body-small);
}

@media (max-width: 768px) {
	.site-foot__bottom {
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		    -ms-flex-direction: column;
		        flex-direction: column;
		gap: var(--wp--preset--spacing--small);
		text-align: center;
	}
}

.site-foot__link {
	color: var(--wp--preset--color--white);
}

.site-foot__link:hover {
	text-decoration: none;
}

.site-foot__linkedin {
	color: var(--wp--preset--color--white);
	text-decoration: none;
	margin-left: var(--wp--preset--spacing--x-small);
}

.site-foot__linkedin:hover {
	opacity: 0.8;
}

.site-foot__linkedin svg {
	width: 24px;
	height: 24px;
	vertical-align: middle;
}

/* Override CHS chat widget styles that affect our navigation */

.site-head nav,
.main-menu,
.pagination {
	-webkit-box-shadow: none !important;
	        box-shadow: none !important;
}

/* Hide CHS webchat container but keep it functional */

.CHS_Webchat_Container {
	display: none !important;
}

/* Default bottom spacing at end of pages (except homepage) */

body:not(.home) .site-main {
	padding-bottom: var(--wp--preset--spacing--x-large);
}

/* Utility: allow a last block to sit flush with the footer by negating
   the default core/post-content bottom padding (2rem set in theme.json). */

.is-style-flush-footer {
	-webkit-margin-after: 0 !important;
	        margin-block-end: 0 !important;
}

/* Floating Support Widget */

.lc-support-widget {
	position: fixed;
	right: 20px;
	bottom: 24px;
	z-index: 1100;
	pointer-events: none; /* allow inner controls only */
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	    -ms-flex-direction: column;
	        flex-direction: column;
	-webkit-box-align: end;
	    -ms-flex-align: end;
	        align-items: flex-end;
}

.lc-support-widget__toggle {
	pointer-events: auto;
	display: -webkit-inline-box;
	display: -ms-inline-flexbox;
	display: inline-flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	gap: 10px;
	background: var(--wp--preset--color--tertiary-10); /* burgundy */
	color: var(--wp--preset--color--white);
	border: none;
	border-radius: 40px;
	padding: 10px 20px; /* vertical 8, horizontal 30 */
	border: 1px solid rgba(255,255,255,.25);
	-webkit-box-shadow: 0 4px 4px rgba(0,0,0,.25);
	        box-shadow: 0 4px 4px rgba(0,0,0,.25);
	cursor: pointer;
	font-size: var(--wp--preset--font-size--body-small);
}

.lc-support-widget__icon { display: none; }

.lc-support-widget__toggle[aria-expanded="false"] .lc-support-widget__icon--left { display: inline; }

.lc-support-widget__toggle[aria-expanded="true"] .lc-support-widget__icon--right { display: inline; }

.lc-support-widget__panel {
	pointer-events: auto;
	margin-top: 12px;
	background: var(--wp--preset--color--tertiary-10); /* burgundy */
	border-radius: 40px;
	border: 1px solid rgba(255,255,255,.25);
	-webkit-box-shadow: 0 4px 4px rgba(0,0,0,.25);
	        box-shadow: 0 4px 4px rgba(0,0,0,.25);
	padding: 8px 30px; /* same as collapsed */
	display: -webkit-inline-box;
	display: -ms-inline-flexbox;
	display: inline-flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	gap: 10px;
}

.lc-support-widget__panel[hidden] {
	display: none !important;
}

/* When expanded, hide the small toggle button */

.lc-support-widget__toggle[aria-expanded="true"] { display: none; }

.lc-support-widget__pill {
	display: -webkit-inline-box;
	display: -ms-inline-flexbox;
	display: inline-flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
	gap: 10px;
}

.lc-support-widget__text-group {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	gap: var(--wp--preset--spacing--x-small);
}

@media (max-width: 768px) {
	.lc-support-widget {
		right: 10px;
	}

	.lc-support-widget__panel {
		padding: 10px 20px;
	}

	.lc-support-widget__pill {
		-ms-flex-wrap: wrap;
		    flex-wrap: wrap;
		gap: var(--wp--preset--spacing--x-small);
		-webkit-box-pack: center;
		    -ms-flex-pack: center;
		        justify-content: center;
		max-width: 300px;
	}
	
	.lc-support-widget__text-group {
		-ms-flex-preferred-size: 100%;
		    flex-basis: 100%;
		-webkit-box-pack: center;
		    -ms-flex-pack: center;
		        justify-content: center;
	}

	/* Center the collapse button vertically within the pill on mobile */
	.lc-support-widget__collapse {
		-ms-flex-item-align: center;
		    -ms-grid-row-align: center;
		    align-self: center;
	}
}

.lc-support-widget__lead {
	color: var(--wp--preset--color--white);
	font-size: var(--wp--preset--font-size--body-small);
	font-weight: 500;
	white-space: nowrap;
}

.lc-support-widget__action {
	width: 40px;
	height: 40px;
	border-radius: 999px;
	background: var(--wp--preset--color--tertiary-30); /* circular buttons */
	color: var(--wp--preset--color--tertiary-10); /* icon uses text color (not white) */
	display: -webkit-inline-box;
	display: -ms-inline-flexbox;
	display: inline-flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
	border: none; /* no border on buttons */
	-webkit-box-shadow: none;
	        box-shadow: none; /* no shadow on buttons */
	cursor: pointer;
}

/* Info and collapse icons are plain (no circular background) */

.lc-support-widget__info,
.lc-support-widget__collapse {
	background: none;
	border: 0;
	color: var(--wp--preset--color--white);
	padding: 0;
	width: auto;
	height: auto;
	display: -webkit-inline-box;
	display: -ms-inline-flexbox;
	display: inline-flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
	cursor: pointer;
}

.lc-support-widget__phone {
	display: -webkit-inline-box;
	display: -ms-inline-flexbox;
	display: inline-flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	gap: 8px;
	color: var(--wp--preset--color--white);
	text-decoration: none;
	padding: 0; /* text only, no pill */
	border-radius: 0;
	background: none;
	border: 0;
}

.lc-support-widget__number {
	font-size: var(--wp--preset--font-size--body);
	white-space: nowrap;
	font-weight: 700;
	letter-spacing: 1px;
}

/* ==========================================================================
	Menu
	========================================================================== */

/**
 * Styles for main navigation menu and desktop submenus.
 *
 * Contents
 *
 * 1. Main menu
 * 2. Sub Menu (Base styles for all submenus)
 */

/* 1. Main menu
	========================================================================== */

.main-menu {
	-webkit-box-flex: 1;
	    -ms-flex: 1;
	        flex: 1;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;

	@media (max-width: 768px) {
		display: none;
	}

	.main-menu__list {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		list-style: none;
		margin: 0;
		padding: 0;
		gap: var(--wp--preset--spacing--medium);
	}

	.main-menu__item {
		position: relative;

		&.main-menu__item--has-submenu {

			&.main-menu__item--submenu-is-help {
				position: static;
			}
		}
	}

	/* Submenu interactions will be handled by JavaScript */

	.main-menu__link {
		background: none;
		border: none;
		font-family: var(--wp--preset--font-family--inter);
		font-size: var(--wp--preset--font-size--body-small);
		font-weight: 400;
		color: var(--wp--preset--color--neutral-10);
		cursor: pointer;
		padding: var(--wp--preset--spacing--x-small) 0;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
		gap: var(--wp--preset--spacing--xx-small);
		text-decoration: none;
		-webkit-transition: color 0.2s ease;
		transition: color 0.2s ease;
		white-space: nowrap;
	}

	.main-menu__link:hover {
		color: var(--wp--preset--color--primary-20);
	}

	.main-menu__link[aria-expanded="true"] .main-menu__icon {
		-webkit-transform: rotate(180deg);
		        transform: rotate(180deg);
	}

	.main-menu__link[aria-expanded="true"]+.main-menu__submenu,
	.main-menu__link[aria-expanded="true"]+.sub-menu {
		opacity: 1;
		visibility: visible;
	}

	/* Wide submenu doesn't need transform when shown */
	.main-menu__link[aria-expanded="true"]+.sub-menu--is-wide {
		-webkit-transform: none;
		        transform: none;
	}

	.main-menu__icon {
		width: 16px;
		height: 16px;
		-webkit-transition: -webkit-transform 0.2s ease;
		transition: -webkit-transform 0.2s ease;
		transition: transform 0.2s ease;
		transition: transform 0.2s ease, -webkit-transform 0.2s ease;
	}
}

/* 2. Sub Menu (Base styles for all submenus)
	========================================================================== */

.sub-menu {
	position: absolute;
	top: calc(100% + 30px);
	left: 0;
	margin: 0;
	background-color: var(--wp--preset--color--white);
	border-radius: var(--wp--custom--border-radius--large);
	-webkit-box-shadow: 0 4px 32px 0 rgba(19, 53, 98, 0.2);
	        box-shadow: 0 4px 32px 0 rgba(19, 53, 98, 0.2);
	list-style: none;
	min-width: 363px;
	opacity: 0;
	visibility: hidden;
	-webkit-transition: opacity 0.2s ease, visibility 0.2s ease, -webkit-transform 0.2s ease;
	transition: opacity 0.2s ease, visibility 0.2s ease, -webkit-transform 0.2s ease;
	transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
	transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease, -webkit-transform 0.2s ease;
	z-index: 100;
	padding: var(--wp--preset--spacing--x-small) 0;

	@media (max-width: 768px) {
		display: none;
	}

	&.sub-menu--is-wide {
		position: fixed;
		top: 92px;
		left: 0;
		right: 0;
		width: calc(100% - (var(--wp--custom--site-padding) * 2));
		max-width: var(--wp--style--global--wide-size);
		-webkit-transform: none;
		        transform: none;
		-webkit-box-shadow: 0 4px 32px 0 rgba(19, 53, 98, 0.2);
		        box-shadow: 0 4px 32px 0 rgba(19, 53, 98, 0.2);
		margin: 0 auto;
		border-left: none;
		border-right: none;
		min-width: auto;

		@media (max-width: 768px) {
			top: 70px;
			/* Smaller header height on mobile */
		}
	}

	.sub-menu__container {
		display: -ms-grid;
		display: grid;
		-ms-grid-columns: 1fr 1fr 1fr;
		grid-template-columns: 1fr 1fr 1fr;
		gap: 0;
		min-height: 400px;
		padding: var(--wp--preset--spacing--small);
	}

	.sub-menu__section {
		padding: var(--wp--preset--spacing--medium);
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		    -ms-flex-direction: column;
		        flex-direction: column;

		&.sub-menu__section--primary {
			background-color: var(--wp--preset--color--primary-40);
			border-radius: var(--wp--custom--border-radius--large);
		}

		&.sub-menu__section--secondary {
			border-right: 1px solid var(--wp--preset--color--neutral-40);
		}

		.sub-menu__section--tertiary {
			background-color: var(--wp--preset--color--white);
		}
	}

	.sub-menu__title {
		font-family: var(--wp--preset--font-family--inter);
		font-size: var(--wp--preset--font-size--heading-5);
		font-weight: 600;
		color: var(--wp--preset--color--neutral-10);
		margin: 0 0 var(--wp--preset--spacing--x-small) 0;
		line-height: 1.3;
	}

	.sub-menu__description {
		font-family: var(--wp--preset--font-family--inter);
		font-size: var(--wp--preset--font-size--body);
		color: var(--wp--preset--color--neutral-10);
		margin: 0 0 var(--wp--preset--spacing--medium) 0;
		line-height: 1.5;

		p {
			font-size: var(--wp--preset--font-size--body-small);
		}
	}

	.sub-menu__actions {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		    -ms-flex-direction: column;
		        flex-direction: column;
		gap: var(--wp--preset--spacing--x-small);
		margin-bottom: var(--wp--preset--spacing--medium);

		.wp-element-button {
			font-size: var(--wp--preset--font-size--body-small);
		}
	}

	.sub-menu__action {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
		gap: var(--wp--preset--spacing--x-small);
		padding: var(--wp--preset--spacing--x-small) var(--wp--preset--spacing--small);
		background-color: var(--wp--preset--color--primary-10);
		color: var(--wp--preset--color--white);
		text-decoration: none;
		border-radius: var(--wp--custom--border-radius--small);
		font-family: var(--wp--preset--font-family--inter);
		font-size: var(--wp--preset--font-size--body-small);
		-webkit-transition: background-color 0.2s ease, -webkit-transform 0.2s ease;
		transition: background-color 0.2s ease, -webkit-transform 0.2s ease;
		transition: background-color 0.2s ease, transform 0.2s ease;
		transition: background-color 0.2s ease, transform 0.2s ease, -webkit-transform 0.2s ease;
		-webkit-box-pack: justify;
		    -ms-flex-pack: justify;
		        justify-content: space-between;

		:hover {
			background-color: var(--wp--preset--color--primary-30);
			-webkit-transform: translateY(-1px);
			        transform: translateY(-1px);
		}

		.sub-menu__action--phone {
			background-color: var(--wp--preset--color--primary-10);
		}

		i {
			width: 16px;
			height: 16px;
			-ms-flex-negative: 0;
			    flex-shrink: 0;
		}
	}

	.sub-menu__action-arrow {
		margin-left: auto;
	}

	.sub-menu__section-title {
		font-family: var(--wp--preset--font-family--inter);
		font-size: var(--wp--preset--font-size--body-large);
		font-weight: 600;
		color: var(--wp--preset--color--neutral-10);
		margin: 0 0 var(--wp--preset--spacing--small) 0;
	}

	.sub-menu__topics {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-ms-flex-wrap: wrap;
		    flex-wrap: wrap;
		gap: var(--wp--preset--spacing--xx-small);
		margin-bottom: var(--wp--preset--spacing--x-small);
	}

	.sub-menu__topic {
		padding: var(--wp--preset--spacing--xx-small) var(--wp--preset--spacing--x-small);
		background-color: var(--wp--preset--color--secondary-40);
		color: var(--wp--preset--color--neutral-10);
		text-decoration: none;
		border-radius: var(--wp--custom--border-radius--fully-rounded);
		font-family: var(--wp--preset--font-family--inter);
		font-size: var(--wp--preset--font-size--body-small);
		-webkit-transition: background-color 0.2s ease, -webkit-transform 0.2s ease;
		transition: background-color 0.2s ease, -webkit-transform 0.2s ease;
		transition: background-color 0.2s ease, transform 0.2s ease;
		transition: background-color 0.2s ease, transform 0.2s ease, -webkit-transform 0.2s ease;
		white-space: nowrap;
		border: none;

		:hover {
			background-color: var(--wp--preset--color--secondary-30);
			-webkit-transform: translateY(-1px);
			        transform: translateY(-1px);
		}
	}

	.sub-menu__more {
		font-family: var(--wp--preset--font-family--inter);
		font-size: var(--wp--preset--font-size--body-small);
		color: var(--wp--preset--color--neutral-10);
		text-decoration: none;
		margin-bottom: var(--wp--preset--spacing--medium);
		background-color: var(--wp--preset--color--secondary-50);
		border: none;
		padding: var(--wp--preset--spacing--xx-small) var(--wp--preset--spacing--x-small);
		border-radius: var(--wp--custom--border-radius--fully-rounded);
		-ms-flex-item-align: start;
		    align-self: flex-start;

		:hover {
			color: var(--wp--preset--color--primary-20);
		}
	}

	.sub-menu__services {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		    -ms-flex-direction: column;
		        flex-direction: column;
		gap: var(--wp--preset--spacing--x-small);
	}

	.sub-menu__service {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: start;
		    -ms-flex-align: start;
		        align-items: flex-start;
		gap: var(--wp--preset--spacing--x-small);
		padding: var(--wp--preset--spacing--x-small);
		text-decoration: none;
		border-radius: var(--wp--custom--border-radius--small);
		-webkit-transition: background-color 0.2s ease;
		transition: background-color 0.2s ease;
		border: none;
	}

	.sub-menu__service-icon {
		width: 20px;
		height: 20px;
		color: var(--wp--preset--color--secondary-30);
		-ms-flex-negative: 0;
		    flex-shrink: 0;
		margin-top: 2px;
	}

	.sub-menu__service-content {
		-webkit-box-flex: 1;
		    -ms-flex: 1;
		        flex: 1;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		    -ms-flex-direction: column;
		        flex-direction: column;
		gap: var(--wp--preset--spacing--tiny);
	}

	.sub-menu__service-title {
		font-family: var(--wp--preset--font-family--inter);
		font-size: var(--wp--preset--font-size--body);
		font-weight: 600;
		color: var(--wp--preset--color--neutral-10);
		line-height: 1.4;
	}

	.sub-menu__service-description {
		font-family: var(--wp--preset--font-family--inter);
		font-size: var(--wp--preset--font-size--body-small);
		color: var(--wp--preset--color--neutral-20);
		line-height: 1.4;
	}

	.sub-menu__service-arrow {
		width: 20px;
		height: 20px;
		color: var(--wp--preset--color--neutral-20);
		-ms-flex-negative: 0;
		    flex-shrink: 0;
		margin-top: 3px;
		stroke-width: 2px;
	}

	/* Simple submenu styles (for regular dropdowns like improve menu) */
	.sub-menu__item {
		margin: 0;
	}

	.sub-menu__link {
		display: block;
		padding: var(--wp--preset--spacing--x-small) var(--wp--preset--spacing--small);
		color: var(--wp--preset--color--neutral-10);
		text-decoration: none;
		font-family: var(--wp--preset--font-family--inter);
		font-size: var(--wp--preset--font-size--body-small);
		border: none;
	}

	.sub-menu__content {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		    -ms-flex-direction: column;
		        flex-direction: column;
		gap: var(--wp--preset--spacing--tiny);
	}

	.sub-menu__heading {
		font-size: var(--wp--preset--font-size--body-regular);
		font-weight: 600;
		color: inherit;
		line-height: 1.4;
	}

	.sub-menu__intro {
		font-size: var(--wp--preset--font-size--body-small);
		color: var(--wp--preset--color--neutral-20);
		line-height: 1.4;
		margin-top: var(--wp--preset--spacing--tiny);
	}

	/* Parent item with children */
	.sub-menu__item--has-children .sub-menu__link {
		padding-bottom: var(--wp--preset--spacing--xx-small);
	}

	.sub-menu__icon {
		width: 12px;
		height: 12px;
		color: var(--wp--preset--color--neutral-20);
		-ms-flex-negative: 0;
		    flex-shrink: 0;
	}

	/* Child menu items */
	.sub-menu__children {
		list-style: none;
		margin: 0;
		padding: 0;
		gap: var(--wp--preset--spacing--x-small);
	}

	.sub-menu__child-item {
		margin: 0;
	}

	.sub-menu__child-link {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
		gap: var(--wp--preset--spacing--xx-small);
		padding: var(--wp--preset--spacing--xx-small) var(--wp--preset--spacing--small);
		color: var(--wp--preset--color--neutral-10);
		text-decoration: none;
		font-family: var(--wp--preset--font-family--inter);
		font-size: var(--wp--preset--font-size--body-small);
		-webkit-transition: background-color 0.2s ease, color 0.2s ease;
		transition: background-color 0.2s ease, color 0.2s ease;
		border: none;

		svg {
			width: 12px;
			height: 12px;
			-ms-flex-negative: 0;
			    flex-shrink: 0;
			fill: var(--wp--preset--color--neutral-10);
			-webkit-transform: rotate(90deg);
			        transform: rotate(90deg);
		}

		.sub-menu__heading {
			font-size: var(--wp--preset--font-size--body-regular);
			font-weight: 400;
			color: inherit;
			line-height: 1.4;
		}
	}
}

/* ==========================================================================
	Mobile Menu
	========================================================================== */

/* Mobile menu overlay */

.mobile-menu {
	position: fixed;
	top: 0;
	left: 100%;
	right: 0;
	bottom: 0;
	background-color: var(--wp--preset--color--white);
	z-index: 999;
	opacity: 0;
	visibility: hidden;
	-webkit-transition: opacity 0.3s ease, visibility 0.3s ease, left 0.5s ease;
	transition: opacity 0.3s ease, visibility 0.3s ease, left 0.5s ease;
	overflow-y: auto;
	overflow-x: hidden; /* prevent horizontal reveal when panning */
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	    -ms-flex-direction: column;
	        flex-direction: column;
	width: 100%;
	-ms-touch-action: pan-y;
	    touch-action: pan-y;
	-ms-scroll-chaining: none;
	    overscroll-behavior: contain;
	-webkit-margin-before: 0;
	        margin-block-start: 0;

	@media (min-width: 769px) {
		display: none;
	}

	&[aria-hidden="false"] {
		opacity: 1;
		visibility: visible;
		left: 0;
	}

	/* Mobile menu header with close button */
	.mobile-menu__header {
		padding: var(--wp--preset--spacing--x-small) var(--wp--custom--site-padding);
		border-bottom: 1px solid var(--wp--preset--color--neutral-40);
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-pack: end;
		    -ms-flex-pack: end;
		        justify-content: flex-end;
	}

	.mobile-menu__close {
		background: none;
		border: none;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
		gap: var(--wp--preset--spacing--x-small);
		color: var(--wp--preset--color--neutral-10);
		font-weight: 600;
		cursor: pointer;
		padding: var(--wp--preset--spacing--x-small);

		i {
			width: 20px;
			height: 20px;
		}
	}

	/* Main menu container */
	.mobile-menu__main {
		-webkit-box-flex: 1;
		    -ms-flex: 1;
		        flex: 1;
		padding: var(--wp--preset--spacing--medium) var(--wp--custom--site-padding);
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		    -ms-flex-direction: column;
		        flex-direction: column;
		gap: var(--wp--preset--spacing--small);
	}

	/* Search form in mobile menu */
	.mobile-menu__search {
		margin-bottom: var(--wp--preset--spacing--small);

		.mobile-menu__search-form {
			position: relative;
			display: -webkit-box;
			display: -ms-flexbox;
			display: flex;
			-webkit-box-align: center;
			    -ms-flex-align: center;
			        align-items: center;
			background-color: var(--wp--preset--color--neutral-50);
			border-radius: var(--wp--custom--border-radius--fully-rounded);
			padding: var(--wp--preset--spacing--x-small);
		}

		.mobile-menu__search-icon {
			width: 20px;
			height: 20px;
			color: var(--wp--preset--color--neutral-20);
			margin-right: var(--wp--preset--spacing--x-small);
		}

		.mobile-menu__search-input {
			-webkit-box-flex: 1;
			    -ms-flex: 1;
			        flex: 1;
			border: none;
			background: none;
			outline: none;
			color: var(--wp--preset--color--neutral-10);
			min-height: 36px;

			&::-webkit-input-placeholder {
				color: var(--wp--preset--color--neutral-20);
			}

			&::-moz-placeholder {
				color: var(--wp--preset--color--neutral-20);
			}

			&:-ms-input-placeholder {
				color: var(--wp--preset--color--neutral-20);
			}

			&::-ms-input-placeholder {
				color: var(--wp--preset--color--neutral-20);
			}

			&::placeholder {
				color: var(--wp--preset--color--neutral-20);
			}
		}
	}

	/* Phone contact in mobile menu */
	.mobile-menu__contact {
		margin-bottom: var(--wp--preset--spacing--small);

		.mobile-menu__phone {
			display: -webkit-box;
			display: -ms-flexbox;
			display: flex;
			-webkit-box-align: center;
			    -ms-flex-align: center;
			        align-items: center;
			gap: var(--wp--preset--spacing--x-small);
			padding: var(--wp--preset--spacing--small);
			background-color: var(--wp--preset--color--primary-40);
			color: var(--wp--preset--color--white);
			text-decoration: none;
			border-radius: var(--wp--custom--border-radius--small);

			i {
				width: 20px;
				height: 20px;
			}

			strong {
				font-weight: 600;
			}
		}
	}

	.mobile-menu__list {
		list-style: none;
		margin: 0;
		padding: 0;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		    -ms-flex-direction: column;
		        flex-direction: column;
		border-top: 1px solid var(--wp--preset--color--neutral-40);

		.mobile-menu__item {
			border-bottom: 1px solid var(--wp--preset--color--neutral-40);

			.mobile-menu__link {
				width: 100%;
				background: none;
				border: none;
				padding: var(--wp--preset--spacing--small) 0;
				font-size: var(--wp--preset--font-size--body-large);
				color: var(--wp--preset--color--neutral-10);
				text-align: left;
				cursor: pointer;
				display: -webkit-box;
				display: -ms-flexbox;
				display: flex;
				-webkit-box-align: center;
				    -ms-flex-align: center;
				        align-items: center;
				-webkit-box-pack: justify;
				    -ms-flex-pack: justify;
				        justify-content: space-between;
			}
		}
	}

	.mobile-menu__icon {
		width: 20px;
		height: 20px;
		color: var(--wp--preset--color--neutral-20);
	}

	.mobile-menu__cta {
		padding-top: var(--wp--preset--spacing--small);
	}

	/* Social link in mobile menu */
	.mobile-menu__social {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
		gap: var(--wp--preset--spacing--xx-small);

		.mobile-menu__social-link {
			display: -webkit-box;
			display: -ms-flexbox;
			display: flex;
			-webkit-box-align: center;
			    -ms-flex-align: center;
			        align-items: center;
			gap: var(--wp--preset--spacing--x-small);
			color: var(--wp--preset--color--secondary-10);
			text-decoration: none;
			padding: var(--wp--preset--spacing--x-small) 0;
			border: none;

			svg {
				width: 24px;
				height: 24px;

				&:first-of-type {
					background: var(--wp--preset--color--secondary-10);
					stroke-width: 0;
					fill: var(--wp--preset--color--white);
					padding: 5px;
					border-radius: var(--wp--custom--border-radius--small);
				}
			}

			span {
				border-bottom: 1px solid var(--wp--preset--color--secondary-10);
			}
		}
	}

	.mobile-menu__external-icon {
		margin-left: auto;
		width: 16px;
		height: 16px;
	}
}

/* Prevent body scroll when mobile menu is open */

.mobile-menu-open {
	overflow: hidden;
}

/* Mobile submenu overlay */

.mobile-menu__submenu {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	background-color: var(--wp--preset--color--white);
	z-index: 1000;
	-webkit-transform: translateX(100%);
	        transform: translateX(100%);
	-webkit-transition: -webkit-transform 0.3s ease;
	transition: -webkit-transform 0.3s ease;
	transition: transform 0.3s ease;
	transition: transform 0.3s ease, -webkit-transform 0.3s ease;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	    -ms-flex-direction: column;
	        flex-direction: column;
	overflow-y: auto;
	overflow-x: hidden; /* ensure hidden pane doesn't bleed in */

	&[aria-hidden="false"] {
		-webkit-transform: translateX(0);
		        transform: translateX(0);
	}

	.mobile-menu__submenu-header {
		padding: var(--wp--preset--spacing--x-small) var(--wp--custom--site-padding);
		border-bottom: 1px solid var(--wp--preset--color--neutral-40);
		background: var(--wp--preset--color--secondary-50);
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;

		.mobile-menu__back {
			background: none;
			border: none;
			display: -webkit-box;
			display: -ms-flexbox;
			display: flex;
			-webkit-box-align: center;
			    -ms-flex-align: center;
			        align-items: center;
			gap: var(--wp--preset--spacing--x-small);
			color: var(--wp--preset--color--neutral-10);
			font-size: var(--wp--preset--font-size--body-large);
			font-weight: 600;
			cursor: pointer;
			padding: var(--wp--preset--spacing--x-small);

			i {
				width: 20px;
				height: 20px;
			}
		}
	}

	.mobile-menu__submenu-content {
		-webkit-box-flex: 1;
		    -ms-flex: 1;
		        flex: 1;
		padding: var(--wp--preset--spacing--medium) var(--wp--custom--site-padding);
	}
}

/* Mobile submenu styles for help & support (complex layout) */

.mobile-submenu__section {
	margin-bottom: var(--wp--preset--spacing--medium);

	&:last-child {
		margin-bottom: 0;
	}

	.mobile-submenu__title {
		font-size: var(--wp--preset--font-size--heading-5);
		font-weight: 600;
		color: var(--wp--preset--color--neutral-10);
		margin: 0 0 var(--wp--preset--spacing--x-small) 0;
		line-height: 1.3;
	}

	.mobile-submenu__description {
		font-size: var(--wp--preset--font-size--body);
		color: var(--wp--preset--color--neutral-10);
		margin: 0 0 var(--wp--preset--spacing--medium) 0;
		line-height: 1.5;
	}

	.mobile-submenu__actions {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		    -ms-flex-direction: column;
		        flex-direction: column;
		gap: var(--wp--preset--spacing--x-small);
		margin-bottom: var(--wp--preset--spacing--medium);

		.wp-element-button {
			-webkit-box-pack: start;
			    -ms-flex-pack: start;
			        justify-content: flex-start;
			gap: var(--wp--preset--spacing--x-small);

			i {
				width: 16px;
				height: 16px;
			}
		}
	}

	.mobile-submenu__section-title {
		font-size: var(--wp--preset--font-size--body-large);
		font-weight: 600;
		color: var(--wp--preset--color--neutral-10);
		margin: 0 0 var(--wp--preset--spacing--small) 0;
	}

	.mobile-submenu__topics {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-ms-flex-wrap: wrap;
		    flex-wrap: wrap;
		gap: var(--wp--preset--spacing--xx-small);
		margin-bottom: var(--wp--preset--spacing--x-small);

		.mobile-submenu__topic {
			padding: var(--wp--preset--spacing--xx-small) var(--wp--preset--spacing--x-small);
			background-color: var(--wp--preset--color--secondary-40);
			color: var(--wp--preset--color--neutral-10);
			text-decoration: none;
			border-radius: var(--wp--custom--border-radius--fully-rounded);
			font-size: var(--wp--preset--font-size--body-small);
			white-space: nowrap;
			border: none;
		}
	}

	.mobile-submenu__more {
		font-size: var(--wp--preset--font-size--body-small);
		color: var(--wp--preset--color--neutral-10);
		text-decoration: none;
		margin-bottom: var(--wp--preset--spacing--medium);
		background-color: var(--wp--preset--color--secondary-50);
		border: none;
		padding: var(--wp--preset--spacing--xx-small) var(--wp--preset--spacing--x-small);
		border-radius: var(--wp--custom--border-radius--fully-rounded);
		display: inline-block;
	}

	.mobile-submenu__services {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		    -ms-flex-direction: column;
		        flex-direction: column;
		gap: var(--wp--preset--spacing--x-small);
		border-top: 1px solid var(--wp--preset--color--neutral-40);

		.mobile-submenu__service {
			display: -webkit-box;
			display: -ms-flexbox;
			display: flex;
			-webkit-box-align: start;
			    -ms-flex-align: start;
			        align-items: flex-start;
			gap: var(--wp--preset--spacing--x-small);
			padding: var(--wp--preset--spacing--x-small) 0;
			text-decoration: none;
			border-bottom: 1px solid var(--wp--preset--color--neutral-40);

			.mobile-submenu__service-icon {
				width: 20px;
				height: 20px;
				color: var(--wp--preset--color--secondary-30);
				-ms-flex-negative: 0;
				    flex-shrink: 0;
				margin-top: 2px;
			}

			.mobile-submenu__service-content {
				-webkit-box-flex: 1;
				    -ms-flex: 1;
				        flex: 1;
				display: -webkit-box;
				display: -ms-flexbox;
				display: flex;
				-webkit-box-orient: vertical;
				-webkit-box-direction: normal;
				    -ms-flex-direction: column;
				        flex-direction: column;
				gap: var(--wp--preset--spacing--tiny);

				.mobile-submenu__service-title {
					font-size: var(--wp--preset--font-size--body);
					font-weight: 600;
					color: var(--wp--preset--color--neutral-10);
					line-height: 1.4;
				}

				.mobile-submenu__service-description {
					font-size: var(--wp--preset--font-size--body-small);
					color: var(--wp--preset--color--neutral-20);
					line-height: 1.4;
				}
			}

			.mobile-submenu__service-arrow {
				width: 20px;
				height: 20px;
				color: var(--wp--preset--color--neutral-20);
				-ms-flex-negative: 0;
				    flex-shrink: 0;
				margin-top: 3px;
			}
		}
	}
}

/* Mobile submenu styles for simple lists (about, improve, involved) */

.mobile-submenu__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	    -ms-flex-direction: column;
	        flex-direction: column;
	border-top: 1px solid var(--wp--preset--color--neutral-40);

	.mobile-submenu__link {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
		-webkit-box-pack: justify;
		    -ms-flex-pack: justify;
		        justify-content: space-between;
		padding: var(--wp--preset--spacing--small) 0;
		color: var(--wp--preset--color--neutral-10);
		text-decoration: none;
		border-bottom: 1px solid var(--wp--preset--color--neutral-40);

		.mobile-submenu__content {
			-webkit-box-flex: 1;
			    -ms-flex: 1;
			        flex: 1;
			display: -webkit-box;
			display: -ms-flexbox;
			display: flex;
			-webkit-box-orient: vertical;
			-webkit-box-direction: normal;
			    -ms-flex-direction: column;
			        flex-direction: column;
			gap: var(--wp--preset--spacing--tiny);

			.mobile-submenu__heading {
				font-size: var(--wp--preset--font-size--body);
				font-weight: 600;
				color: inherit;
				line-height: 1.4;
			}

			.mobile-submenu__intro {
				font-size: var(--wp--preset--font-size--body-small);
				color: var(--wp--preset--color--neutral-20);
				line-height: 1.4;
			}
		}

		.mobile-submenu__arrow {
			width: 16px;
			height: 16px;
			color: var(--wp--preset--color--neutral-20);
			-ms-flex-negative: 0;
			    flex-shrink: 0;
		}
	}

	/* Child menu items */
	.mobile-submenu__children {
		list-style: none;
		margin: 0;
		padding: 0;
		padding-bottom: var(--wp--preset--spacing--small);
		display: none;

		.mobile-submenu__child-item {
			border-bottom: 1px solid var(--wp--preset--color--neutral-40);

			&:last-child {
				border-bottom: none;
			}

			.mobile-submenu__child-link {
				display: -webkit-box;
				display: -ms-flexbox;
				display: flex;
				-webkit-box-align: center;
				    -ms-flex-align: center;
				        align-items: center;
				-webkit-box-pack: justify;
				    -ms-flex-pack: justify;
				        justify-content: space-between;
				padding: var(--wp--preset--spacing--x-small) 0;
				color: var(--wp--preset--color--neutral-10);
				text-decoration: none;
				border: none;

				.mobile-submenu__heading {
					font-weight: 400;
				}

				.mobile-submenu__arrow {
					width: 14px;
					height: 14px;
				}
			}
		}
	}

	.mobile-submenu__item--has-children {
		border-bottom: 1px solid var(--wp--preset--color--neutral-40);

		.mobile-submenu__children {
			display: block;
		}

		a {
			border: none;
		}
	}
}

/* ==========================================================================
	Search
	========================================================================== */

/**
 * Search form functionality and styling
 *
 * Contents
 *
 * 1. Search form container
 * 2. Search form
 * 3. Search interactions
 */

/* 1. Search form container
	========================================================================== */

.search-form-container {
	position: absolute;
	top: 0;
	right: 220px;
	height: 100%;
	width: 0;
	-webkit-transition: width 0.5s ease;
	transition: width 0.5s ease;
	z-index: 200;
	padding: var(--wp--preset--spacing--xx-small) 0;

	&[aria-hidden="false"] {
		width: calc(100% - 120px);

		@media (max-width: 768px) {
			display: none;
		}
	}
}

/* 2. Search form
	========================================================================== */

.search-form {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	height: 100%;
	background-color: var(--wp--preset--color--white);
	overflow: hidden;

	.search-form__input {
		-webkit-box-flex: 1;
		    -ms-flex: 1;
		        flex: 1;
		height: 100%;
		border-radius: var(--wp--custom--border-radius--small);
		border: 1px solid var(--wp--preset--color--neutral-40);
		padding: var(--wp--preset--spacing--x-small) var(--wp--preset--spacing--small);
		font-family: var(--wp--preset--font-family--inter);
		font-size: var(--wp--preset--font-size--body-regular);
		color: var(--wp--preset--color--neutral-10);
		outline: none;
		-webkit-box-ordinal-group: 3;
		    -ms-flex-order: 2;
		        order: 2;

		&::-webkit-input-placeholder {
			color: var(--wp--preset--color--neutral-20);
		}

		&::-moz-placeholder {
			color: var(--wp--preset--color--neutral-20);
		}

		&:-ms-input-placeholder {
			color: var(--wp--preset--color--neutral-20);
		}

		&::-ms-input-placeholder {
			color: var(--wp--preset--color--neutral-20);
		}

		&::placeholder {
			color: var(--wp--preset--color--neutral-20);
		}

		&:focus {
			outline: none;
		}
	}

	.search-form__close {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
		-webkit-box-pack: center;
		    -ms-flex-pack: center;
		        justify-content: center;
		width: 40px;
		height: 100%;
		background: none;
		border: none;
		cursor: pointer;
		color: var(--wp--preset--color--neutral-20);
		-webkit-transition: color 0.2s ease, background-color 0.2s ease;
		transition: color 0.2s ease, background-color 0.2s ease;
		-webkit-box-ordinal-group: 2;
		    -ms-flex-order: 1;
		        order: 1;

		&:hover {
			color: var(--wp--preset--color--neutral-10);
			background-color: var(--wp--preset--color--neutral-60);
		}

		&:focus {
			outline: 2px solid var(--wp--preset--color--primary-40);
			outline-offset: -2px;
		}

		i {
			width: 20px;
			height: 20px;
		}
	}
}

/* 3. Search interactions
	========================================================================== */

/* When search is active, the search button becomes a submit button */

.site-head__search {
	background: none;
	border: none;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
	width: 40px;
	height: 40px;
	cursor: pointer;
	color: var(--wp--preset--color--neutral-10);
	-webkit-transition: color 0.2s ease, background-color 0.2s ease;
	transition: color 0.2s ease, background-color 0.2s ease;
	border-radius: var(--wp--custom--border-radius--small);

	&:hover {
		color: var(--wp--preset--color--primary-20);
		background-color: var(--wp--preset--color--neutral-60);
	}

	&:focus {
		outline: 2px solid var(--wp--preset--color--primary-40);
		outline-offset: 2px;
	}

	i {
		width: 20px;
		height: 20px;
	}
}

/* When search form is visible, update button styling to indicate submit action */

.search-form-container[aria-hidden="false"]~.site-head__actions .site-head__search {
	background-color: var(--wp--preset--color--primary-40);
	color: var(--wp--preset--color--neutral-10);

	&:hover {
		background-color: var(--wp--preset--color--primary-30);
		color: var(--wp--preset--color--white);
	}

	&:focus {
		outline: 2px solid var(--wp--preset--color--primary-40);
		outline-offset: 2px;
	}
}

/* Screen reader only class for hidden label */

.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ==========================================================================
   Blocks
   ========================================================================== */

/**
 * Project-specific core block styles.
 *
 * Contents
 *
 * 1. Buttons
 * 2. Headings
 * 3. Lists
 */

/* 1. Buttons
   ========================================================================== */

/* Core WordPress button container styles */

.wp-block-buttons {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	    flex-wrap: wrap;
	gap: var(--wp--preset--spacing--small);
}

.wp-block-buttons .wp-block-button {
	margin: 0;
}

/* Chat button - just JavaScript functionality, uses standard button styling */

.wp-block-button.is-style-chat-button .wp-element-button {
	/* Inherits all default button styles - no custom styling needed */
}

/* Core WordPress button styles */

.wp-element-button {
	display: -webkit-inline-box;
	display: -ms-inline-flexbox;
	display: inline-flex;
	gap: 10px;
	background: var(--wp--preset--color--primary-10);
	color: var(--wp--preset--color--white);
	padding: var(--wp--preset--spacing--x-small) 55px var(--wp--preset--spacing--x-small) var(--wp--preset--spacing--small);
	border-radius: var(--wp--custom--border-radius--fully-rounded);
	text-decoration: none;
	font-weight: 600;
	font-size: var(--wp--preset--font-size--body-regular);
	font-family: var(--wp--preset--font-family--inter);
	border: none;
	cursor: pointer;
	-webkit-transition: all 0.3s ease;
	transition: all 0.3s ease;
	position: relative;

	&::after {
		content: '';
		position: absolute;
		top: 5px;
		right: 5px;
		aspect-ratio: 1/1;
		height: calc(100% - 10px);
		aspect-ratio: 1/1;
		background-color: var(--wp--preset--color--primary-40);
		border-radius: var(--wp--custom--border-radius--fully-rounded);
		background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWFycm93LXJpZ2h0LWljb24gbHVjaWRlLWFycm93LXJpZ2h0Ij48cGF0aCBkPSJNNSAxMmgxNCIvPjxwYXRoIGQ9Im0xMiA1IDcgNy03IDciLz48L3N2Zz4=');
		background-repeat: no-repeat;
		background-position: center;
		background-size: 16px 16px;
	}

}

.wp-block-button.is-style-text-button {

	.wp-element-button {
		background: transparent;
		color: var(--wp--preset--color--neutral-10);
		padding: var(--wp--preset--spacing--x-small) 45px var(--wp--preset--spacing--x-small) 0;
		border-radius: 0;
		font-weight: 600;
		border-bottom: none !important;

		&::after {
			content: '';
			position: absolute;
			top: 50%;
			right: 0;
			-webkit-transform: translateY(-50%);
			        transform: translateY(-50%);
			width: 32px;
			height: 32px;
			background-color: var(--wp--preset--color--primary-40);
			border-radius: var(--wp--custom--border-radius--fully-rounded);
			background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWFycm93LXJpZ2h0LWljb24gbHVjaWRlLWFycm93LXJpZ2h0Ij48cGF0aCBkPSJNNSAxMmgxNCIvPjxwYXRoIGQ9Im0xMiA1IDcgNy03IDciLz48L3N2Zz4=');
			background-repeat: no-repeat;
			background-position: center;
			background-size: 14px 14px;
		}
	}
}

.wp-block-button.is-style-white-arrow {

	.wp-element-button {
		&::after {
			background-color: var(--wp--preset--color--white);
		}
	}
}

.wp-block-button.is-style-no-arrow {

	.wp-element-button {
		padding-right: var(--wp--preset--spacing--small);

		&::after {
			content: none;
		}
	}
}

/* 2. Headings
   ========================================================================== */

/* Heading spacing - add top margin unless it's the first child of .wp-site-blocks */

.wp-block-heading:not(.wp-site-blocks > :first-child) {

	/* H2 and H3 get x-large spacing */
	&.wp-block-heading h2,
	&.wp-block-heading h3,
	&:is(h2, h3) {
		-webkit-margin-before: var(--wp--preset--spacing--x-large);
		        margin-block-start: var(--wp--preset--spacing--x-large);
	}

	/* H4 gets large spacing */
	&.wp-block-heading h4,
	&:is(h4) {
		-webkit-margin-before: var(--wp--preset--spacing--large);
		        margin-block-start: var(--wp--preset--spacing--large);
	}

	/* H5 and H6 get medium spacing */
	&.wp-block-heading h5,
	&.wp-block-heading h6,
	&:is(h5, h6) {
		-webkit-margin-before: var(--wp--preset--spacing--medium);
		        margin-block-start: var(--wp--preset--spacing--medium);
	}
}

/* 3. Lists
   ========================================================================== */

.wp-block-list {
	padding-left: 0;
	list-style: none;

	li {
		position: relative;
		padding-left: var(--wp--preset--spacing--medium);
		margin-bottom: var(--wp--preset--spacing--x-small);

		&::before {
			content: '';
			position: absolute;
			left: 0;
			top: 0.6em;
			width: 0;
			height: 0;
			border-bottom: 9px solid var(--wp--preset--color--secondary-20);
			border-left: 5.5px solid transparent;
			border-right: 5.5px solid transparent;
			-webkit-transform: translateY(-50%);
			        transform: translateY(-50%);
		}

		&:last-child {
			margin-bottom: 0;
		}
	}
}

/* Ordered lists - use numbers instead of triangles */

.wp-block-list[style*="list-style-type:decimal"],
.wp-block-list ol,
ol.wp-block-list {
	counter-reset: list-counter;

	li {
		counter-increment: list-counter;

		&::before {
			content: counter(list-counter) ".";
			border: none;
			color: var(--wp--preset--color--secondary-20);
			font-weight: 600;
			font-size: inherit;
			line-height: inherit;
			top: 0;
			-webkit-transform: none;
			        transform: none;
			width: auto;
			height: auto;
		}
	}
}

/* 4. Details (Accordion)
   ========================================================================== */

.wp-block-details {
	border: none;
	background: transparent;
	margin: var(--wp--preset--spacing--small) 0 0 0;
	padding: 0;
	border-top: 1px solid var(--wp--preset--color--neutral-40);

	/* Remove top margin when details immediately follows another details */
	.wp-block-details+& {
		margin-top: 0;
	}

	summary {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
		-webkit-box-pack: justify;
		    -ms-flex-pack: justify;
		        justify-content: space-between;
		padding: var(--wp--preset--spacing--x-small) 0;
		cursor: pointer;
		list-style: none;
		font-size: var(--wp--preset--font-size--body-large);
		font-weight: 600;
		color: var(--wp--preset--color--neutral-10);
		position: relative;
		-webkit-transition: color 0.3s ease;
		transition: color 0.3s ease;

		&::-webkit-details-marker {
			display: none;
		}

		&::marker {
			display: none;
		}

		&::after {
			content: '';
			width: 48px;
			height: 48px;
			border-radius: var(--wp--custom--border-radius--fully-rounded);
			background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiMwQTJENjUiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0ibHVjaWRlIGx1Y2lkZS1wbHVzLWljb24gbHVjaWRlLXBsdXMiPjxwYXRoIGQ9Ik01IDEyaDE0Ii8+PHBhdGggZD0iTTEyIDV2MTQiLz48L3N2Zz4=');
			background-repeat: no-repeat;
			background-position: center;
			background-size: 24px 24px;
			-webkit-transition: all 0.3s ease;
			transition: all 0.3s ease;
		}

		&:hover {
			color: var(--wp--preset--color--primary-10);

			&:after {
				background-color: var(--wp--preset--color--secondary-50);
			}
		}
	}

	&[open] summary::after {
		background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiMwQTJENjUiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0ibHVjaWRlIGx1Y2lkZS1taW51cy1pY29uIGx1Y2lkZS1taW51cyI+PHBhdGggZD0iTTUgMTJoMTQiLz48L3N2Zz4=');
	}

	/* First item gets special styling with blue circle background */
	&:first-child summary::after {
		width: 32px;
		height: 32px;
		background-color: var(--wp--preset--color--secondary-50);
		border: 1px solid var(--wp--preset--color--secondary-20);
		border-radius: var(--wp--custom--border-radius--fully-rounded);
		background-size: 16px 16px;
	}

	&:first-child[open] summary::after {
		background-color: var(--wp--preset--color--secondary-50);
		border: 1px solid var(--wp--preset--color--secondary-20);
	}

	/* Content area */
	>*:not(summary) {
		padding: 0;
		margin: 0;
		font-family: var(--wp--preset--font-family--inter);
		font-size: var(--wp--preset--font-size--body-regular);
		line-height: 1.6;
		color: var(--wp--preset--color--neutral-10);
		opacity: 0;
		-webkit-transform: translateY(-10px);
		        transform: translateY(-10px);
		-webkit-transition: all 0.3s ease;
		transition: all 0.3s ease;

		&:last-child {
			margin-bottom: var(--wp--preset--spacing--small);
		}
	}

	/* Animate content when details is open */
	&[open]>*:not(summary) {
		opacity: 1;
		-webkit-transform: translateY(0);
		        transform: translateY(0);
	}

	/* Add bottom border to last item */
	&:last-child summary {
		border-bottom: 1px solid var(--wp--preset--color--neutral-40);
	}
}

/* 5. Quote
   ========================================================================== */

.wp-block-quote {
	background-color: var(--wp--preset--color--secondary-50);
	border-radius: var(--wp--custom--border-radius--medium);
	padding: var(--wp--preset--spacing--large);
	border-left: none;

	@media (max-width: 768px) {
		padding: var(--wp--preset--spacing--medium);
		margin: var(--wp--preset--spacing--x-large) 0;
	}

	p {
		font-family: var(--wp--preset--font-family--ivypresto-display);
		font-size: var(--wp--preset--font-size--heading-4);
		font-weight: 400;
		line-height: 1.4;
		color: var(--wp--preset--color--neutral-10);
		margin-bottom: var(--wp--preset--spacing--small);
		font-style: normal;

		&:last-of-type {
			margin-bottom: 0;
		}

		&::before {
			content: '"';
		}

		&::after {
			content: '"';
		}
	}

	cite {
		display: block;
		margin-top: var(--wp--preset--spacing--medium);
		font-family: var(--wp--preset--font-family--inter);
		font-size: var(--wp--preset--font-size--body-regular);
		font-weight: 400;
		font-style: normal;
		color: var(--wp--preset--color--neutral-20);

		&::before {
			content: '— ';
		}
	}

	/* Handle when citation comes before paragraph (alternate layout) */
	&:has(cite:first-child) {
		cite {
			margin-top: 0;
			margin-bottom: var(--wp--preset--spacing--medium);

			&::before {
				content: '';
			}
		}
	}
}

/* ==========================================================================
   Components
   ========================================================================== */

/* External link icon */

.external-link-icon {
	opacity: 0.7;
	vertical-align: -0.15em;
	width: 20px;
	height: 20px;
	font-size: 0.75em;
}

/* Archive, Search, and Category Page Styles */

.archive-page,
.search-page,
.category-page {
	-webkit-margin-before: 0 !important;
	        margin-block-start: 0 !important;
	-webkit-margin-after: var(--wp--preset--spacing--xx-large) !important;
	        margin-block-end: var(--wp--preset--spacing--xx-large) !important;

	&__container {
		max-width: var(--wp--style--global--wide-size);
		margin: 0 auto;
	}

	&__header {
		margin-bottom: var(--wp--preset--spacing--x-large);
		text-align: center;
		border-bottom: 1px solid var(--wp--preset--color--neutral-40);
		padding-bottom: var(--wp--preset--spacing--large);

		@media (max-width: 768px) {
			margin-bottom: var(--wp--preset--spacing--large);
			padding-bottom: var(--wp--preset--spacing--medium);
		}
	}

	&__title {
		margin: 0 0 var(--wp--preset--spacing--medium) 0;
		font-family: var(--wp--preset--font-family--ivypresto-display);
		font-size: var(--wp--preset--font-size--heading-1);
		line-height: 1.3;
		letter-spacing: 1px;
		color: var(--wp--preset--color--neutral-10);

		@media (max-width: 1024px) {
			font-size: var(--wp--preset--font-size--heading-2);
		}

		@media (max-width: 768px) {
			font-size: var(--wp--preset--font-size--heading-3);
		}
	}

	&__description {
		margin-bottom: var(--wp--preset--spacing--medium);
		font-size: var(--wp--preset--font-size--body-large);
		color: var(--wp--preset--color--neutral-20);
		max-width: 600px;
		margin-left: auto;
		margin-right: auto;

		p {
			margin: 0 0 var(--wp--preset--spacing--small) 0;

			&:last-child {
				margin-bottom: 0;
			}
		}
	}

	&__grid {
		display: -ms-grid;
		display: grid;
		-ms-grid-columns: (1fr)[4];
		grid-template-columns: repeat(4, 1fr);
		gap: var(--wp--preset--spacing--medium);
		margin-bottom: var(--wp--preset--spacing--large);
	}
}

@media (max-width: 1200px) {

	.archive-page__grid,
	.search-page__grid,
	.category-page__grid {
		-ms-grid-columns: (1fr)[3];
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 768px) {

	.archive-page__grid,
	.search-page__grid,
	.category-page__grid {
		-ms-grid-columns: (1fr)[2];
		grid-template-columns: repeat(2, 1fr);
		gap: var(--wp--preset--spacing--small);
	}
}

@media (max-width: 480px) {

	.archive-page__grid,
	.search-page__grid,
	.category-page__grid {
		-ms-grid-columns: 1fr;
		grid-template-columns: 1fr;
	}
}

/* Archive page title styles */

.archive-page__title,
.search-page__title,
.category-page__title {
	margin: 0 0 var(--wp--preset--spacing--medium) 0;
	font-weight: 300;
	line-height: 1.2;
	letter-spacing: 1px;
	color: var(--wp--preset--color--neutral-10);
	padding-top: var(--wp--preset--spacing--medium);
}

/* Archive pagination styles */

.archive-page__pagination,
.search-page__pagination,
.category-page__pagination {
    margin-top: var(--wp--preset--spacing--x-large);
    text-align: center;

    .pagination { display: inline-block; }

    .pagination__list {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        list-style: none;
        margin: 0;
        padding: 0;
        gap: var(--wp--preset--spacing--x-small);
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    }

    .pagination__item { margin: 0; }

    .pagination__item a,
    .pagination__item span {
        display: -webkit-inline-box;
        display: -ms-inline-flexbox;
        display: inline-flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        width: 56px;
        height: 56px;
        border-radius: 999px;
        text-decoration: none;
        border: 0;
        color: var(--wp--preset--color--neutral-10);
        font-size: var(--wp--preset--font-size--body-large);
        line-height: 1;
        -webkit-transition: color .2s ease, background-color .2s ease;
        transition: color .2s ease, background-color .2s ease;
    }

    .pagination__item a:hover { 
        color: var(--wp--preset--color--primary-10);
    }

    .pagination__item .current {
        background-color: var(--wp--preset--color--primary-40);
        color: var(--wp--preset--color--neutral-10);
        cursor: default;
    }

    /* Previous/Next arrows - hide text, show only Lucide icons */
    .pagination__item .prev,
    .pagination__item .next {
        font-size: 0;
        position: relative;
    }

    .pagination__item .prev i,
    .pagination__item .next i {
        font-size: var(--wp--preset--font-size--body-large);
        color: var(--wp--preset--color--neutral-30);
    }

    .pagination__item .next i {
        color: var(--wp--preset--color--neutral-10);
    }

    .pagination__item .prev:hover i {
        color: var(--wp--preset--color--primary-10);
    }

    .pagination__item .next:hover i {
        color: var(--wp--preset--color--primary-10);
    }

    /* Dots */
    .pagination__item .dots {
        width: auto;
        height: auto;
        padding: 0 8px;
        color: var(--wp--preset--color--neutral-30);
    }

    @media (max-width: 768px) {
        margin-top: var(--wp--preset--spacing--large);

        .pagination__item a,
        .pagination__item span {
            width: 44px;
            height: 44px;
            font-size: var(--wp--preset--font-size--body);
        }
    }
}

/* Archive empty state styles */

.archive-page__empty,
.search-page__empty,
.category-page__empty {
	text-align: center;
	padding: var(--wp--preset--spacing--x-large) 0;

	h2 {
		margin: 0 0 var(--wp--preset--spacing--medium) 0;
		font-size: var(--wp--preset--font-size--heading-3);
		color: var(--wp--preset--color--neutral-10);
	}

	p {
		margin: 0 0 var(--wp--preset--spacing--medium) 0;
		font-size: var(--wp--preset--font-size--body-large);
		color: var(--wp--preset--color--neutral-10);
	}
}

/* Search Form Styles */

.search-form {
	margin-bottom: var(--wp--preset--spacing--large);

	&__group {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		max-width: 500px;
		margin: 0 auto;
		border: 1px solid var(--wp--preset--color--neutral-40);
		border-radius: 6px;
		overflow: hidden;
		background: white;
	}

	&__label {
		position: absolute;
		left: -9999px;
		opacity: 0;
	}

	&__field {
		-webkit-box-flex: 1;
		    -ms-flex: 1;
		        flex: 1;
		padding: var(--wp--preset--spacing--small) var(--wp--preset--spacing--medium);
		border: none;
		font-size: var(--wp--preset--font-size--body-regular);
		background: transparent;

		&:focus {
			outline: none;
			-webkit-box-shadow: inset 0 0 0 2px var(--wp--preset--color--primary-10);
			        box-shadow: inset 0 0 0 2px var(--wp--preset--color--primary-10);
		}

		&::-webkit-input-placeholder {
			color: var(--wp--preset--color--neutral-30);
		}

		&::-moz-placeholder {
			color: var(--wp--preset--color--neutral-30);
		}

		&:-ms-input-placeholder {
			color: var(--wp--preset--color--neutral-30);
		}

		&::-ms-input-placeholder {
			color: var(--wp--preset--color--neutral-30);
		}

		&::placeholder {
			color: var(--wp--preset--color--neutral-30);
		}
	}

	&__submit {
		padding: var(--wp--preset--spacing--small) var(--wp--preset--spacing--medium);
		border: none;
		background: var(--wp--preset--color--primary-10);
		color: white;
		cursor: pointer;
		-webkit-transition: background-color 0.2s ease;
		transition: background-color 0.2s ease;

		&:hover {
			background: var(--wp--preset--color--primary-20);
		}

		&:focus {
			outline: 2px solid var(--wp--preset--color--primary-10);
			outline-offset: 2px;
		}

		i {
			font-size: 1.1em;
		}
	}
}

/* Filter Styles */

.archive-filters,
.search-filters,
.category-nav {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
	gap: var(--wp--preset--spacing--small);
	/* margin-bottom: var(--wp--preset--spacing--medium); */

	&__label {
		font-size: var(--wp--preset--font-size--body-small);
		color: var(--wp--preset--color--neutral-20);
		white-space: nowrap;
	}

	&__select {
		padding: var(--wp--preset--spacing--x-small) var(--wp--preset--spacing--small);
		border: 1px solid var(--wp--preset--color--neutral-40);
		border-radius: 4px;
		font-size: var(--wp--preset--font-size--body-small);
		background: white;
		cursor: pointer;

		&:focus {
			outline: 2px solid var(--wp--preset--color--primary-10);
			outline-offset: 2px;
		}
	}

	@media (max-width: 768px) {
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		    -ms-flex-direction: column;
		        flex-direction: column;
		gap: var(--wp--preset--spacing--x-small);

		&__label {
			text-align: center;
		}

		&__select {
			width: 100%;
			max-width: 250px;
		}
	}
}

/* Category Page Specific Styles */

.category-page {
	&__title-wrapper {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
		-webkit-box-pack: center;
		    -ms-flex-pack: center;
		        justify-content: center;
		gap: var(--wp--preset--spacing--medium);
		margin-bottom: var(--wp--preset--spacing--medium);

		@media (max-width: 768px) {
			-webkit-box-orient: vertical;
			-webkit-box-direction: normal;
			    -ms-flex-direction: column;
			        flex-direction: column;
			gap: var(--wp--preset--spacing--small);
		}
	}

	&__icon {
		background: var(--wp--preset--color--primary-10);
		color: white;
		width: 60px;
		height: 60px;
		border-radius: 50%;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
		-webkit-box-pack: center;
		    -ms-flex-pack: center;
		        justify-content: center;
		font-size: 1.5em;

		@media (max-width: 768px) {
			width: 50px;
			height: 50px;
			font-size: 1.2em;
		}
	}

	&__title-content {
		text-align: left;

		@media (max-width: 768px) {
			text-align: center;
		}
	}

	&__count,
	&__meta {
		margin: var(--wp--preset--spacing--x-small) 0 0 0;
		font-size: var(--wp--preset--font-size--body-small);
		color: var(--wp--preset--color--neutral-30);
	}

	&__related {
		margin-top: var(--wp--preset--spacing--medium);

		&-title {
			font-size: var(--wp--preset--font-size--body-regular);
			font-weight: 600;
			margin: 0 0 var(--wp--preset--spacing--small) 0;
			color: var(--wp--preset--color--neutral-20);
		}
	}
}

/* Category Tags */

.category-tags {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	    flex-wrap: wrap;
	gap: var(--wp--preset--spacing--x-small);
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;

	@media (max-width: 768px) {
		gap: var(--wp--preset--spacing--xx-small);
	}
}

.category-tag {
	display: -webkit-inline-box;
	display: -ms-inline-flexbox;
	display: inline-flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	gap: var(--wp--preset--spacing--xx-small);
	padding: var(--wp--preset--spacing--xx-small) var(--wp--preset--spacing--x-small);
	background: var(--wp--preset--color--neutral-50);
	border: 1px solid var(--wp--preset--color--neutral-40);
	border-radius: 20px;
	text-decoration: none;
	font-size: var(--wp--preset--font-size--body-x-small);
	color: var(--wp--preset--color--neutral-20);
	-webkit-transition: all 0.2s ease;
	transition: all 0.2s ease;

	&:hover {
		background: var(--wp--preset--color--primary-10);
		border-color: var(--wp--preset--color--primary-10);
		color: white;
	}

	i {
		font-size: 0.9em;
	}

	small {
		opacity: 0.7;
	}
}

/* Search Page Specific Styles */

.search-page {
	&__meta {
		margin-bottom: var(--wp--preset--spacing--medium);
	}

	&__count {
		margin: 0;
		font-size: var(--wp--preset--font-size--body-regular);
		color: var(--wp--preset--color--neutral-30);
	}

	.search-form {
		background: transparent;
		margin: 0 !important;
		padding: 0;
	}

	&__suggestions {
		background: var(--wp--preset--color--neutral-50);
		padding: var(--wp--preset--spacing--medium);
		border-radius: 8px;
		margin: var(--wp--preset--spacing--medium) 0;
		text-align: left;
		max-width: 400px;
		margin-left: auto;
		margin-right: auto;

		h3 {
			margin: 0 0 var(--wp--preset--spacing--small) 0;
			font-size: var(--wp--preset--font-size--body-large);
			color: var(--wp--preset--color--neutral-10);
		}

		ul {
			margin: 0 !important;
			padding: 0 !important;
			list-style: none !important;
			list-style-type: none !important;
		}

		li {
			margin: 0 0 var(--wp--preset--spacing--x-small) 0 !important;
			padding: 0 !important;
			font-size: var(--wp--preset--font-size--body-small);
			color: var(--wp--preset--color--neutral-10);
			list-style: none !important;
			list-style-type: none !important;

			&:before {
				content: none !important;
			}

			&:after {
				content: none !important;
			}
		}
	}
}

/* Additional specific override for search suggestions */

.search-page .search-page__suggestions ul {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	list-style-type: none !important;
}

.search-page .search-page__suggestions li {
	margin: 0 0 var(--wp--preset--spacing--x-small) 0 !important;
	padding: 0 !important;
	list-style: none !important;
	list-style-type: none !important;

	&:before {
		content: none !important;
	}

	&:after {
		content: none !important;
	}

	&__retry {
		margin-top: var(--wp--preset--spacing--medium);

		p {
			color: var(--wp--preset--color--neutral-10);
		}
	}

	&__initial {
		text-align: center;
		padding: var(--wp--preset--spacing--x-large) 0;

		h2 {
			margin: 0 0 var(--wp--preset--spacing--medium) 0;
			color: var(--wp--preset--color--neutral-20);
		}

		p {
			margin: 0;
			color: var(--wp--preset--color--neutral-30);
		}
	}
}

/* Resource Card Enhancements for Archive Pages */

.resource-card {
	&__post-type {
		background: var(--wp--preset--color--primary-10);
		color: white;
		padding: 2px 6px;
		border-radius: 3px;
		font-size: var(--wp--preset--font-size--body-x-small);
		text-transform: uppercase;
		font-weight: 600;
		margin-right: var(--wp--preset--spacing--x-small);
	}

	&__comments {
		margin-left: var(--wp--preset--spacing--x-small);
		color: var(--wp--preset--color--neutral-30);
		font-size: var(--wp--preset--font-size--body-x-small);
	}
}

/* Ensure archive/search/category grids render in columns */

.archive-page__grid,
.search-page__grid,
.category-page__grid {
	display: -ms-grid;
	display: grid;
	-ms-grid-columns: (1fr)[3];
	grid-template-columns: repeat(3, 1fr);
	gap: var(--wp--preset--spacing--medium);
}

@media (max-width: 768px) {

	.archive-page__grid,
	.search-page__grid,
	.category-page__grid {
		-ms-grid-columns: (1fr)[2];
		grid-template-columns: repeat(2, 1fr);
		gap: var(--wp--preset--spacing--small);
	}
}

@media (max-width: 480px) {

	.archive-page__grid,
	.search-page__grid,
	.category-page__grid {
		-ms-grid-columns: 1fr;
		grid-template-columns: 1fr;
	}
}

/* Tighten search form spacing on archive/search */

.archive-page .search-form,
.search-page .search-form,
.category-page .search-form {
	max-width: 860px;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 0;
}

/* Search controls row */

.search-page__controls,
.archive-page__controls,
.category-page__controls {
	display: -ms-grid;
	display: grid;
	-ms-grid-columns: 1fr 1fr;
	grid-template-columns: 1fr 1fr;
	/* 50/50 split */
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	gap: var(--wp--preset--spacing--medium);
	width: 100%;
	margin: var(--wp--preset--spacing--small) 0 var(--wp--preset--spacing--large);
}

/* Ensure search column stretches properly */

.search-page__search .search-form,
.archive-page__search .search-form,
.category-page__search .search-form {
	width: 100%;
}

.search-page__search .search-form__group,
.archive-page__search .search-form__group,
.category-page__search .search-form__group {
	width: 100%;
	min-height: 48px;
}

.search-page__search .search-form__field,
.archive-page__search .search-form__field,
.category-page__search .search-form__field {
	width: 100%;
	height: 48px;
}

@media (max-width: 768px) {

	.search-page__controls,
	.archive-page__controls,
	.category-page__controls {
		-ms-grid-columns: 1fr;
		grid-template-columns: 1fr;
		/* stack on mobile */
	}
}

/* Align the filter area to the right and keep label/select inline */

.search-page__filters,
.archive-page__filters,
.category-page__filters {
	-ms-grid-column-align: end;
	    justify-self: end;
	width: 100%;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: end;
	    -ms-flex-pack: end;
	        justify-content: flex-end;
}

.search-filters,
.archive-filters,
.category-filters {
	display: -webkit-inline-box;
	display: -ms-inline-flexbox;
	display: inline-flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	gap: var(--wp--preset--spacing--x-small);
}

.search-filters__label,
.archive-filters__label,
.category-filters__label {
	margin: 0;
	white-space: nowrap;
	line-height: 1;
}

/* Search page: remove white block background; make icon button inline on the right */

.search-page .search-page__search,
.search-page .search-form__group,
.archive-page .archive-page__search,
.archive-page .search-form__group,
.category-page .category-page__search,
.category-page .search-form__group {
	background: transparent;
	border: none;
	overflow: visible;
	position: relative;
	-webkit-box-shadow: none;
	        box-shadow: none;
}

.search-page .search-form__field,
.archive-page .search-form__field,
.category-page .search-form__field {
	border: 1px solid var(--wp--preset--color--neutral-40);
	border-radius: 8px;
	padding-right: 44px;
	/* room for icon button */
}

.search-page .search-form__submit,
.archive-page .search-form__submit,
.category-page .search-form__submit {
	background: transparent;
	border: none;
	position: absolute;
	right: 10px;
	top: 50%;
	-webkit-transform: translateY(-50%);
	        transform: translateY(-50%);
	padding: 0;
	width: 24px;
	height: 24px;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
}

.search-page .search-form__submit i,
.archive-page .search-form__submit i,
.category-page .search-form__submit i {
	color: var(--wp--preset--color--neutral-20);
	font-size: 24px;
	width: 24px;
	height: 24px;
}

.archive-page__container,
.search-page__container,
.category-page__container {
	max-width: var(--wp--style--global--wide-size);
}

/**
 * Project-specific non-block component styles.
 *
 * Contents
 *
 * 1. Resource Card
 * 2. Page Card
 * 3. Story Card
 */

/* 1. Resource Card
   ========================================================================== */

.resource-card {
	display: block;
	text-decoration: none;
	color: inherit;
	height: 100%;

	.resource-card__image {
		position: relative;
		aspect-ratio: 16/9;
		overflow: hidden;
	}

	.resource-card__type-label {
		position: absolute;
		top: 0;
		left: 0;
		background: var(--wp--preset--color--neutral-40);
		color: var(--wp--preset--color--neutral-10);
		padding: 8px var(--wp--preset--spacing--x-small);
		border-radius: var(--wp--custom--border-radius--small);
		border-top-right-radius: 0;
		border-bottom-left-radius: 0;
		font-size: var(--wp--preset--font-size--body-small);
		font-weight: 600;
		z-index: 2;
	}

	.resource-card__thumbnail {
		width: 100%;
		height: 100%;
		-o-object-fit: cover;
		   object-fit: cover;
		-webkit-transition: -webkit-transform 0.3s ease;
		transition: -webkit-transform 0.3s ease;
		transition: transform 0.3s ease;
		transition: transform 0.3s ease, -webkit-transform 0.3s ease;
		border-radius: var(--wp--custom--border-radius--small);
	}

	.resource-card__content {
		margin-top: var(--wp--preset--spacing--small);
	}

	.resource-card__category {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
		gap: var(--wp--preset--spacing--tiny);
		margin-bottom: var(--wp--preset--spacing--x-small);

		svg {
			width: 16px;
			height: 16px;
			-ms-flex-negative: 0;
			    flex-shrink: 0;
		}
	}

	.resource-card__category-name {
		font-size: var(--wp--preset--font-size--body-small);
		font-weight: 600;
		text-decoration: none;
		color: inherit;
		-webkit-transition: color 0.2s ease;
		transition: color 0.2s ease;
	}

	.resource-card__category-name[data-category-url] {
		cursor: pointer;
	}

	.resource-card__category-name[data-category-url]:hover {
		color: var(--wp--preset--color--primary-10);
		text-decoration: none;
	}

	.resource-card__title {
		margin: 0 0 var(--wp--preset--spacing--x-small) 0;
		font-family: var(--wp--preset--font-family--inter);
		font-size: var(--wp--preset--font-size--heading-6);
		font-weight: 600;
		letter-spacing: 0;

		@media (max-width: 1024px) {
			font-size: var(--wp--preset--font-size--heading-6);
			margin-bottom: var(--wp--preset--spacing--x-small);
		}

		@media (max-width: 768px) {
			font-size: var(--wp--preset--font-size--heading-6);
			margin-bottom: var(--wp--preset--spacing--x-small);
		}
	}

	.resource-card__excerpt {
		color: var(--wp--preset--color--neutral-20);
		margin-top: var(--wp--preset--spacing--x-small);
	}
}

/* Resource Card Variants */

.resource-card--resource {
	.resource-card__type-label {
		background: var(--wp--preset--color--primary-20);
		color: var(--wp--preset--color--white);
	}

	.resource-card__category {
		color: var(--wp--preset--color--neutral-20);
	}
}

.resource-card--event {
	.resource-card__type-label {
		background: var(--wp--preset--color--primary-40);
	}

	.resource-card__category {
		color: var(--wp--preset--color--primary-20);
	}
}

.resource-card--post {
	.resource-card__type-label {
		background: var(--wp--preset--color--secondary-20);
	}

	.resource-card__category {
		color: var(--wp--preset--color--secondary-10);
	}
}

.resource-card--featured {

	.resource-card__image img {
		border: 2px solid var(--wp--preset--color--primary-20);
		border-radius: var(--wp--custom--border-radius--small);
	}
}

/* 2. Page Card
   ========================================================================== */

.page-card {
	grid-column: 1 / -1;
	display: -ms-grid;
	display: grid;
	-ms-grid-columns: 1fr 2fr;
	grid-template-columns: 1fr 2fr;
	gap: var(--wp--preset--spacing--medium);
	padding: var(--wp--preset--spacing--small);
	background: var(--wp--preset--color--secondary-50);
	border-radius: var(--wp--custom--border-radius--small);
	text-decoration: none;
	color: inherit;

	.page-card__image {
		aspect-ratio: 16/9;
		position: relative;
		overflow: hidden;

		@media (max-width: 768px) {
			width: 100%;
		}
	}

	.page-card__thumbnail {
		width: 100%;
		height: 100%;
		-o-object-fit: cover;
		   object-fit: cover;
		-webkit-transition: -webkit-transform 0.3s ease;
		transition: -webkit-transform 0.3s ease;
		transition: transform 0.3s ease;
		transition: transform 0.3s ease, -webkit-transform 0.3s ease;
		border-radius: var(--wp--custom--border-radius--small);
	}

	.page-card__content {
		-webkit-box-flex: 1;
		    -ms-flex-positive: 1;
		        flex-grow: 1;
		margin-top: 0;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		    -ms-flex-direction: column;
		        flex-direction: column;
		-webkit-box-pack: center;
		    -ms-flex-pack: center;
		        justify-content: center;
		padding: var(--wp--preset--spacing--small) 0;
		gap: var(--wp--preset--spacing--small);

		p {
			font-size: var(--wp--preset--font-size--body-large);
			font-weight: 600;

			&:first-child {
				-webkit-margin-before: 0;
				        margin-block-start: 0;
			}
		}
	}

	.wp-element-button {
		color: var(--wp--preset--color--primary-10) !important;
	}
}

@media (max-width: 768px) {
	.page-card {
		-ms-grid-columns: 1fr;
		grid-template-columns: 1fr;
		gap: var(--wp--preset--spacing--x-small);
	}
}

/* 3. Story Card
   ========================================================================== */

.story-card {

	a {
		display: -ms-grid;
		display: grid;
		-ms-grid-columns: 1fr 3fr;
		grid-template-columns: 1fr 3fr;
		gap: var(--wp--preset--spacing--medium);
		text-decoration: none;
		color: inherit;
		height: 100%;
		padding: var(--wp--preset--spacing--x-small);
		background: var(--wp--preset--color--white);
		border-radius: var(--wp--custom--border-radius--medium);
		border: 1px solid var(--wp--preset--color--neutral-40);
	}

	.story-card__image {
		-ms-flex-item-align: start;
		    align-self: flex-start;

		img {
			width: 100%;
			height: 100%;
			-o-object-fit: cover;
			   object-fit: cover;
			aspect-ratio: 1;
			border-radius: var(--wp--custom--border-radius--medium);
		}
	}

	.story-card__title {
		font-size: var(--wp--preset--font-size--heading-4);
		-webkit-margin-before: var(--wp--preset--spacing--x-small);
		        margin-block-start: var(--wp--preset--spacing--x-small);
		position: relative;
	}

	.story-card__excerpt {

		p {
			color: var(--wp--preset--color--neutral-20);
		}

	}
}

/* ==========================================================================
   Forms - Gravity Forms
   ========================================================================== */

/**
 * Styles for Gravity Forms and other form elements.
 *
 * Contents
 *
 * 1. Gravity Forms wrapper and structure
 * 2. Fieldsets, labels and legends
 * 3. Input fields
 * 4. Selects
 * 5. Custom radio buttons
 * 6. Custom checkboxes
 * 7. Validation and error states
 * 8. Success states
 * 9. Descriptions and help text
 * 10. Submit buttons
 */

/* 1. Gravity Forms wrapper and structure
   ========================================================================== */

.gform_wrapper {
	margin: 0;

	.gform_required_legend {
		display: none;
	}

	.gform_body {
		.gfield {
			margin-bottom: var(--wp--preset--spacing--small);

			&:last-child {
				margin-bottom: 0;
			}
		}
	}

	.gform_footer {
		margin-top: var(--wp--preset--spacing--medium);
	}
}

/* 2. Fieldsets, labels and legends
   ========================================================================== */

:where(body:not(.wp-admin)) fieldset {
	padding: 0;
	border: none;
}

:where(body:not(.wp-admin)) label,
:where(body:not(.wp-admin)) legend,
.gfield_label {
	font-size: var(--wp--preset--font-size--body-regular);
	font-weight: 600;
	display: inline-block;
	margin-bottom: var(--wp--preset--spacing--x-small);
	color: var(--wp--preset--color--neutral-10);
}

.gfield_label,
.gform-field-label {

	.gfield_required,
	.gform_required_asterisk {
		display: none;
	}
}

/* 3. Input fields
   ========================================================================== */

:where(body:not(.wp-admin)) {

	input[type='text'],
	input[type='password'],
	input[type='email'],
	input[type='url'],
	input[type='date'],
	input[type='month'],
	input[type='time'],
	input[type='datetime'],
	input[type='datetime-local'],
	input[type='week'],
	input[type='number'],
	input[type='search'],
	input[type='tel'],
	textarea,
	select {
		width: 100%;
		font-size: var(--wp--preset--font-size--body-regular);
		font-family: var(--wp--preset--font-family--inter);
		padding: var(--wp--preset--spacing--x-small) var(--wp--preset--spacing--small);
		border: 1px solid var(--wp--preset--color--neutral-40);
		border-radius: var(--wp--custom--border-radius--medium);
		-webkit-box-sizing: border-box;
		        box-sizing: border-box;
		line-height: 1.6;
		min-height: 48px;
		background: var(--wp--preset--color--white);
		-webkit-transition: border-color 0.3s ease, -webkit-box-shadow 0.3s ease;
		transition: border-color 0.3s ease, -webkit-box-shadow 0.3s ease;
		transition: border-color 0.3s ease, box-shadow 0.3s ease;
		transition: border-color 0.3s ease, box-shadow 0.3s ease, -webkit-box-shadow 0.3s ease;

		&:focus {
			outline: none;
			border-color: var(--wp--preset--color--primary-20);
			-webkit-box-shadow: 0 0 0 2px var(--wp--preset--color--primary-50);
			        box-shadow: 0 0 0 2px var(--wp--preset--color--primary-50);
		}

		&::-webkit-input-placeholder {
			color: var(--wp--preset--color--neutral-20);
			opacity: 1;
		}

		&::-moz-placeholder {
			color: var(--wp--preset--color--neutral-20);
			opacity: 1;
		}

		&:-ms-input-placeholder {
			color: var(--wp--preset--color--neutral-20);
			opacity: 1;
		}

		&::-ms-input-placeholder {
			color: var(--wp--preset--color--neutral-20);
			opacity: 1;
		}

		&::placeholder {
			color: var(--wp--preset--color--neutral-20);
			opacity: 1;
		}
	}

	textarea {
		min-height: 120px;
		resize: vertical;
	}
}

.ginput_container {

	input,
	textarea {
		width: 100%;
		font-size: var(--wp--preset--font-size--body-regular);
		font-family: var(--wp--preset--font-family--inter);
		padding: var(--wp--preset--spacing--x-small) var(--wp--preset--spacing--small);
		border: 1px solid var(--wp--preset--color--neutral-40);
		border-radius: var(--wp--custom--border-radius--medium);
		-webkit-box-sizing: border-box;
		        box-sizing: border-box;
		line-height: 1.6;
		min-height: 48px;
		background: var(--wp--preset--color--white);
		-webkit-transition: border-color 0.3s ease, -webkit-box-shadow 0.3s ease;
		transition: border-color 0.3s ease, -webkit-box-shadow 0.3s ease;
		transition: border-color 0.3s ease, box-shadow 0.3s ease;
		transition: border-color 0.3s ease, box-shadow 0.3s ease, -webkit-box-shadow 0.3s ease;

		&:focus {
			outline: none;
			border-color: var(--wp--preset--color--primary-20);
			-webkit-box-shadow: 0 0 0 2px var(--wp--preset--color--primary-50);
			        box-shadow: 0 0 0 2px var(--wp--preset--color--primary-50);
		}

		&::-webkit-input-placeholder {
			color: var(--wp--preset--color--neutral-20);
			opacity: 1;
		}

		&::-moz-placeholder {
			color: var(--wp--preset--color--neutral-20);
			opacity: 1;
		}

		&:-ms-input-placeholder {
			color: var(--wp--preset--color--neutral-20);
			opacity: 1;
		}

		&::-ms-input-placeholder {
			color: var(--wp--preset--color--neutral-20);
			opacity: 1;
		}

		&::placeholder {
			color: var(--wp--preset--color--neutral-20);
			opacity: 1;
		}
	}

	textarea {
		min-height: 120px;
		resize: vertical;
	}
}

/* 4. Selects
   ========================================================================== */

:where(body:not(.wp-admin)) select,
.ginput_container select {
	max-width: 100%;
	-webkit-appearance: none;
	   -moz-appearance: none;
	        appearance: none;
	cursor: pointer;

	&:not([multiple]) {
		background: var(--wp--preset--color--white) url('data:image/svg+xml;charset=US-ASCII,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 4 5"><path fill="%234D5A7A" d="M2 0L0 2h4zm0 5L0 3h4z"/></svg>') no-repeat right var(--wp--preset--spacing--small) center / 12px 12px;
		padding-right: calc(var(--wp--preset--spacing--small) + 20px);
	}

	&:is([multiple]) {
		padding: var(--wp--preset--spacing--x-small) 0;

		option {
			padding: var(--wp--preset--spacing--x-small) var(--wp--preset--spacing--small);

			&:checked {
				background: var(--wp--preset--color--secondary-50);
				color: var(--wp--preset--color--neutral-10);
			}
		}
	}
}

/* 5. Radio buttons
   ========================================================================== */

:where(body:not(.wp-admin)) [type='radio'],
.gfield_radio input[type='radio'] {

	/* Remove the default radio button. */
	position: absolute;
	opacity: 0;

	&~label {
		font-weight: 400;
		position: relative;
		cursor: pointer;
		padding: 0;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
		margin-bottom: 0;
	}

	/* The radio button itself. */

	&~label::before {
		content: '';
		margin-right: var(--wp--preset--spacing--x-small);
		display: inline-block;
		vertical-align: text-top;
		width: 20px;
		height: 20px;
		background: var(--wp--preset--color--white);
		border: 2px solid var(--wp--preset--color--neutral-40);
		border-radius: 50%;
		-webkit-transition: border-color 0.3s ease;
		transition: border-color 0.3s ease;
	}

	/* Radio button hover state. */

	&:hover~label::before {
		border-color: var(--wp--preset--color--primary-20);
	}

	/* Radio button focus state. */

	&:focus~label::before {
		outline: 2px solid var(--wp--preset--color--primary-50);
		outline-offset: 2px;
	}

	/* Checked radio button style. */

	&:checked~label::before {
		border-color: var(--wp--preset--color--primary-20);
	}

	&~label::after {
		content: '';
		width: 12px;
		height: 12px;
		position: absolute;
		top: 6px;
		left: 6px;
		-webkit-transform: scale(0);
		        transform: scale(0);
		background: var(--wp--preset--color--primary-20);
		border-radius: 50%;
		-webkit-transition: -webkit-transform 0.2s ease;
		transition: -webkit-transform 0.2s ease;
		transition: transform 0.2s ease;
		transition: transform 0.2s ease, -webkit-transform 0.2s ease;
	}

	/* Show the checked state. */

	&:checked~label::after {
		-webkit-transform: scale(1);
		        transform: scale(1);
	}
}

/* Gravity Forms radio button groups */

.gfield_radio {
	.gchoice {
		margin-bottom: var(--wp--preset--spacing--x-small);

		&:last-child {
			margin-bottom: 0;
		}
	}
}

/* 6. Checkboxes
   ========================================================================== */

:where(body:not(.wp-admin)) [type='checkbox'],
.gfield_checkbox input[type='checkbox'] {

	/* Remove the default checkbox */
	position: absolute;
	opacity: 0;

	&~label {
		font-weight: 400;
		position: relative;
		cursor: pointer;
		padding: 0;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
		margin-bottom: 0;
	}

	/* The checkbox itself. */

	&~label::before {
		content: '';
		margin-right: var(--wp--preset--spacing--x-small);
		display: inline-block;
		vertical-align: text-top;
		width: 20px;
		height: 20px;
		background: var(--wp--preset--color--white);
		border: 2px solid var(--wp--preset--color--neutral-40);
		border-radius: var(--wp--custom--border-radius--x-small);
		-webkit-transition: border-color 0.3s ease, background-color 0.3s ease;
		transition: border-color 0.3s ease, background-color 0.3s ease;
	}

	/* Checkbox hover state. */

	&:hover~label::before {
		border-color: var(--wp--preset--color--primary-20);
	}

	/* Checkbox focus state. */

	&:focus~label::before {
		outline: 2px solid var(--wp--preset--color--primary-50);
		outline-offset: 2px;
	}

	/* Checked background. */

	&:checked~label::before {
		background: var(--wp--preset--color--primary-20);
		border-color: var(--wp--preset--color--primary-20);
	}

	/* The checkmark. */

	&~label::after {
		content: '✓';
		width: 12px;
		height: 12px;
		position: absolute;
		top: 4px;
		left: 4px;
		-webkit-transform: scale(0);
		        transform: scale(0);
		color: var(--wp--preset--color--white);
		font-size: 10px;
		font-weight: 600;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
		-webkit-box-pack: center;
		    -ms-flex-pack: center;
		        justify-content: center;
		-webkit-transition: -webkit-transform 0.2s ease;
		transition: -webkit-transform 0.2s ease;
		transition: transform 0.2s ease;
		transition: transform 0.2s ease, -webkit-transform 0.2s ease;
	}

	/* Show the checkmark. */

	&:checked~label::after {
		-webkit-transform: scale(1);
		        transform: scale(1);
	}
}

/* Gravity Forms checkbox groups */

.gfield_checkbox {
	.gchoice {
		margin-bottom: var(--wp--preset--spacing--x-small);

		&:last-child {
			margin-bottom: 0;
		}
	}
}

/* 7. Validation and error states
   ========================================================================== */

.gfield_error {

	input[type='text'],
	input[type='password'],
	input[type='email'],
	input[type='url'],
	input[type='date'],
	input[type='month'],
	input[type='time'],
	input[type='datetime'],
	input[type='datetime-local'],
	input[type='week'],
	input[type='number'],
	input[type='search'],
	input[type='tel'],
	textarea,
	select {
		border-color: var(--wp--preset--color--tertiary-10);
		background-color: var(--wp--preset--color--tertiary-30);

		&:focus {
			border-color: var(--wp--preset--color--tertiary-10);
			-webkit-box-shadow: 0 0 0 2px var(--wp--preset--color--tertiary-30);
			        box-shadow: 0 0 0 2px var(--wp--preset--color--tertiary-30);
		}
	}
}

.gfield_validation_message {
	color: var(--wp--preset--color--tertiary-10);
	font-size: var(--wp--preset--font-size--body-small);
	font-weight: 600;
	font-family: var(--wp--preset--font-family--inter);
	margin-top: var(--wp--preset--spacing--x-small);
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	gap: var(--wp--preset--spacing--x-small);
	line-height: 1.4;

	&::before {
		content: '⚠';
		font-size: 14px;
		font-weight: 700;
	}
}

.gform_validation_errors {
	background: var(--wp--preset--color--tertiary-30);
	border: 1px solid var(--wp--preset--color--tertiary-10);
	border-radius: var(--wp--custom--border-radius--medium);
	padding: var(--wp--preset--spacing--small);
	margin-bottom: var(--wp--preset--spacing--medium);

	h2 {
		color: var(--wp--preset--color--tertiary-10);
		font-size: var(--wp--preset--font-size--body-regular);
		font-weight: 600;
		font-family: var(--wp--preset--font-family--inter);
		margin: 0 0 var(--wp--preset--spacing--x-small) 0;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
		gap: var(--wp--preset--spacing--x-small);

		.gform-icon {
			font-size: 18px;
		}
	}

	.gform_validation_error {
		color: var(--wp--preset--color--tertiary-10);
		font-size: var(--wp--preset--font-size--body-small);
		font-family: var(--wp--preset--font-family--inter);
		margin: 0;
	}
}

/* Gravity Forms submission error styling */

.gform_submission_error {
	color: var(--wp--preset--color--tertiary-10);
	font-size: var(--wp--preset--font-size--body-regular);
	font-weight: 600;
	font-family: var(--wp--preset--font-family--inter);
	margin: 0;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	gap: var(--wp--preset--spacing--x-small);

	.gform-icon {
		font-size: 18px;
	}
}

/* 8. Success states
   ========================================================================== */

.gform_confirmation_message {
	background: var(--wp--preset--color--primary-50);
	border: 1px solid var(--wp--preset--color--primary-20);
	border-radius: var(--wp--custom--border-radius--medium);
	padding: var(--wp--preset--spacing--small);
	margin-bottom: var(--wp--preset--spacing--medium);
	color: var(--wp--preset--color--primary-10);
	font-size: var(--wp--preset--font-size--body-regular);
	font-weight: 600;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	gap: var(--wp--preset--spacing--x-small);

	&::before {
		content: '✓';
		font-size: 16px;
		font-weight: 700;
	}
}

.gform_wrapper.gform_validation_error {
	.gform_confirmation_message {
		display: none;
	}
}

/* 9. Descriptions and help text
   ========================================================================== */

.gfield_description {
	font-size: var(--wp--preset--font-size--body-small);
	color: var(--wp--preset--color--neutral-20);
	margin-top: var(--wp--preset--spacing--x-small);
	line-height: 1.5;
}

.gfield_required {
	color: var(--wp--preset--color--tertiary-10);
	margin-left: 2px;
}

/* Help text for specific field types */

.ginput_container {
	&.ginput_container_fileupload {
		.gfield_description {
			margin-top: var(--wp--preset--spacing--x-small);
		}
	}
}

/* 10. Honeypot field
   ========================================================================== */

/* Hide honeypot field from visual display while maintaining functionality */

.gform_wrapper .gform_validation_container {
	position: absolute !important;
	left: -9999px !important;
	top: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	border: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.gform_wrapper .gform_validation_container input {
	position: absolute !important;
	left: -9999px !important;
	top: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	border: none !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
}

/* 11. Submit buttons
   ========================================================================== */

.gform_button,
.gform_wrapper .gform_button {

	/* Loading state */
	&.gform_button_loading {
		position: relative;
		color: transparent;

		&::after {
			content: '';
			position: absolute;
			top: 50%;
			left: 50%;
			-webkit-transform: translate(-50%, -50%);
			        transform: translate(-50%, -50%);
			width: 16px;
			height: 16px;
			border: 2px solid var(--wp--preset--color--white);
			border-top: 2px solid transparent;
			border-radius: 50%;
			-webkit-animation: spin 1s linear infinite;
			        animation: spin 1s linear infinite;
		}
	}
}

@-webkit-keyframes spin {
	0% {
		-webkit-transform: translate(-50%, -50%) rotate(0deg);
		        transform: translate(-50%, -50%) rotate(0deg);
	}

	100% {
		-webkit-transform: translate(-50%, -50%) rotate(360deg);
		        transform: translate(-50%, -50%) rotate(360deg);
	}
}

@keyframes spin {
	0% {
		-webkit-transform: translate(-50%, -50%) rotate(0deg);
		        transform: translate(-50%, -50%) rotate(0deg);
	}

	100% {
		-webkit-transform: translate(-50%, -50%) rotate(360deg);
		        transform: translate(-50%, -50%) rotate(360deg);
	}
}

/* Button with arrow icon */

.gform_button::after {
	content: '→';
	font-size: 14px;
	color: var(--wp--preset--color--primary-40);
	-webkit-transition: -webkit-transform 0.2s ease;
	transition: -webkit-transform 0.2s ease;
	transition: transform 0.2s ease;
	transition: transform 0.2s ease, -webkit-transform 0.2s ease;
}

.gform_button:hover::after {
	-webkit-transform: translateX(2px);
	        transform: translateX(2px);
}

/* Disabled state */

.gform_button:disabled {
	background: var(--wp--preset--color--neutral-40);
	color: var(--wp--preset--color--neutral-20);
	cursor: not-allowed;
	-webkit-transform: none;
	        transform: none;

	&:hover {
		background: var(--wp--preset--color--neutral-40);
		-webkit-transform: none;
		        transform: none;
	}

	&::after {
		display: none;
	}
}

/* ==========================================================================
   Facets
   ========================================================================== */

/**
 * FacetWP overrides
 *
 * Contents
 *
 * 1. Base facets
 * 2. Fselect facets
 * 3. Sort facets
 * 4. Pager facets
 *
 */

/* 1. Base facets
   ========================================================================== */

.facetwp-facet {
	margin-bottom: 0 !important;
}

/* Hide duplicate "Sort by" label for sort_resources facet */

.facetwp-facet-sort_resources .facetwp-facet-label {
	display: none;
}

/* 2. Fselect facets
   ========================================================================== */

.fs-wrap {

	.fs-label-wrap {
		min-width: 180px;
		padding: var(--wp--preset--spacing--x-small);
		border-radius: var(--wp--custom--border-radius--small);
		border: 1px solid var(--wp--preset--color--neutral-10);
		background-color: var(--wp--preset--color--secondary-50);
		font-size: var(--wp--preset--font-size--body-regular);
		font-weight: 600;
		color: var(--wp--preset--color--neutral-10);
	}

	.fs-arrow {
		border: none;
		background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWNoZXZyb24tZG93bi1pY29uIGx1Y2lkZS1jaGV2cm9uLWRvd24iPjxwYXRoIGQ9Im02IDkgNiA2IDYtNiIvPjwvc3ZnPg==") no-repeat right center / contain;
		width: 20px;
		height: 20px;
	}

	&.fs-open {

		.fs-label-wrap {
			background-color: var(--wp--preset--color--secondary-40);
		}

	}
}

.fs-dropdown {
	width: auto !important;
	top: calc(100% + var(--wp--preset--spacing--x-small));
	padding: 0 0 0 var(--wp--preset--spacing--x-small);
	border-radius: var(--wp--custom--border-radius--small);
	border: 1px solid var(--wp--preset--color--neutral-10) !important;
	background-color: var(--wp--preset--color--white);
	-webkit-box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
	        box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);

	.fs-option {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
		gap: var(--wp--preset--spacing--xx-small);
		padding-left: 0 !important;
		padding-right: var(--wp--preset--spacing--x-small) !important;

		&:first-child {
			padding-top: var(--wp--preset--spacing--x-small);
		}

		&:last-child {
			padding-bottom: var(--wp--preset--spacing--x-small);
		}

		.fs-checkbox {
			position: relative !important;

			i {
				display: inline-block;
				width: 18px !important;
				height: 18px !important;
				border-radius: var(--wp--custom--border-radius--small);
				border: 1px solid var(--wp--preset--color--neutral-10) !important;
				background-color: var(--wp--preset--color--white);
				padding: 2px;
			}
		}

		&.selected {

			.fs-checkbox {

				i {
					color: var(--wp--preset--color--white) !important;
					border: 1px solid var(--wp--preset--color--secondary-20) !important;
					background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0ibHVjaWRlIGx1Y2lkZS1jaGVjay1pY29uIGx1Y2lkZS1jaGVjayI+PHBhdGggZD0iTTIwIDYgOSAxN2wtNS01Ii8+PC9zdmc+") no-repeat center center / contain var(--wp--preset--color--secondary-20) !important;
				}
			}
		}
	}
}

.fs-wrap {
	width: 100% !important;
}

/* 3. Sort facets
   ========================================================================== */

.facetwp-type-sort {

	select {
		font-size: var(--wp--preset--font-size--body);
		padding: 0;
		border: none !important;
	}
}

/* 4. Pager facets
   ========================================================================== */

.facetwp-pager {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	gap: var(--wp--preset--spacing--x-small);
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
}

/* 5. Selections (active filters)
   ========================================================================== */

.facetwp-selections {

	ul {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-ms-flex-wrap: wrap;
		    flex-wrap: wrap;
		gap: var(--wp--preset--spacing--x-small);
		padding-bottom: var(--wp--preset--spacing--small);
	}

	li {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-ms-flex-wrap: wrap;
		    flex-wrap: wrap;
		gap: var(--wp--preset--spacing--x-small);

		.facetwp-selection-value {
			border-radius: var(--wp--custom--border-radius--fully-rounded);
			background-color: var(--wp--preset--color--secondary-40);
			display: -webkit-inline-box;
			display: -ms-inline-flexbox;
			display: inline-flex;
			-webkit-box-align: center;
			    -ms-flex-align: center;
			        align-items: center;
			gap: var(--wp--preset--spacing--small);
			padding: 15px 40px 15px 20px;
			font-size: var(--wp--preset--font-size--body-regular);
			font-weight: 600;
			color: var(--wp--preset--color--primary-90);
			text-decoration: none;
			-webkit-transition: all 0.2s ease;
			transition: all 0.2s ease;
			background-position: right 15px center;

			&:hover {
				background-color: var(--wp--preset--color--secondary-30);
			}
		}

	}

	.facetwp-selection-label {
		display: none;
	}
}

.facetwp-facet-reset {
	padding-bottom: var(--wp--preset--spacing--small);
	margin-top: var(--wp--preset--spacing--x-small);

	a {
		border-radius: var(--wp--custom--border-radius--fully-rounded);
		background: var(--wp--preset--color--neutral-10);
		color: var(--wp--preset--color--white);
		padding: 15px 20px;
		font-size: var(--wp--preset--font-size--body-regular);
		text-decoration: none;
		-webkit-transition: all 0.2s ease;
		transition: all 0.2s ease;
		display: inline-block;
		line-height: 1;
		border: none;

		&:hover {
			background: var(--wp--preset--color--neutral-20);
		}
	}
}

.facetwp-pager .facetwp-page {
	display: -webkit-inline-box !important;
	display: -ms-inline-flexbox !important;
	display: inline-flex !important;
	-webkit-box-align: center !important;
	    -ms-flex-align: center !important;
	        align-items: center !important;
	-webkit-box-pack: center !important;
	    -ms-flex-pack: center !important;
	        justify-content: center !important;
	width: 56px !important;
	height: 56px !important;
	border-radius: 999px !important;
	text-decoration: none !important;
	border: 0 !important;
	color: var(--wp--preset--color--neutral-10) !important;
	font-size: var(--wp--preset--font-size--body-large) !important;
	line-height: 1 !important;
	-webkit-transition: color .2s ease, background-color .2s ease !important;
	transition: color .2s ease, background-color .2s ease !important;
	text-align: center !important;
	vertical-align: middle !important;
	padding: 0 !important;
	margin: 0 !important;

	&:hover {
		color: var(--wp--preset--color--primary-10) !important;
	}

	&.active {
		background-color: var(--wp--preset--color--primary-40) !important;
		color: var(--wp--preset--color--neutral-10) !important;
		cursor: default !important;
		font-weight: normal !important;
	}

	/* Style Lucide icons */
	& i[data-lucide="chevron-left"],
	& i[data-lucide="chevron-right"] {
		font-size: var(--wp--preset--font-size--body-large) !important;
		color: var(--wp--preset--color--neutral-30) !important;
	}

	&.next i[data-lucide="chevron-right"] {
		color: var(--wp--preset--color--neutral-10) !important;
	}

	&:hover i[data-lucide="chevron-left"],
	&:hover i[data-lucide="chevron-right"] {
		color: var(--wp--preset--color--primary-10) !important;
	}

	/* Dots */
	&.dots {
		width: auto !important;
		height: auto !important;
		padding: 0 8px !important;
		color: var(--wp--preset--color--neutral-30) !important;
	}

	@media (max-width: 768px) {
		width: 44px !important;
		height: 44px !important;
		font-size: var(--wp--preset--font-size--body) !important;
	}
}
