*:has(body.glossary) {
	--glossary-gap: 2rem;
	--glossary-letter-heading-size: 1.75rem;
	scroll-padding: 12rem !important;
}

*:has(body.glossary.admin-bar) {
	scroll-padding: calc(12rem + 32px) !important;
}

* {
	--close-icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMjAgNTEyIj48IS0tIUZvbnQgQXdlc29tZSBQcm8gNi41LjEgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UgKENvbW1lcmNpYWwgTGljZW5zZSkgQ29weXJpZ2h0IDIwMjQgRm9udGljb25zLCBJbmMuLS0+PHBhdGggZD0iTTE5My45IDI1NkwyOTYuNSAxNTMuNGwyMS4yLTIxLjJjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtMjIuNi0yMi42Yy0zLjEtMy4xLTguMi0zLjEtMTEuMyAwTDE2MCAyMjIuMSAzNi4zIDk4LjNjLTMuMS0zLjEtOC4yLTMuMS0xMS4zIDBMMi4zIDEyMWMtMy4xIDMuMS0zLjEgOC4yIDAgMTEuM0wxMjYuMSAyNTYgMi4zIDM3OS43Yy0zLjEgMy4xLTMuMSA4LjIgMCAxMS4zbDIyLjYgMjIuNmMzLjEgMy4xIDguMiAzLjEgMTEuMyAwTDE2MCAyODkuOSAyNjIuNiAzOTIuNWwyMS4yIDIxLjJjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwyMi42LTIyLjZjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM0wxOTMuOSAyNTZ6Ii8+PC9zdmc+);
	--definition-box-shadow: rgba(0, 0, 0, 0.1) 0 20px 25px -5px, rgba(0, 0, 0, 0.04) 0 10px 10px -5px;
}

.invisible {
	visibility: hidden;
}

/* Align the letter beside the first term */
.glossary-entry-flex {
	display: flex;
	gap: var(--glossary-gap);
	align-items: flex-start;
	flex-wrap: wrap;
}

.glossary-inline-letter {
	color: var(--wp--preset--color--custom-dark-pink);
	min-width: 2rem;
	font-size: var(--glossary-letter-heading-size);
	margin: 0;
	font-weight: bold;
}

.glossary-entry-group {
	margin-top: 2rem;
}

.glossary-entry {
	flex: 1;
}

.glossary-results .type-definitions {
	padding-left: calc(var(--glossary-letter-heading-size) + var(--glossary-gap) + 5px);
}

.loading-spinner {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100px;
	margin-top: 2rem;
}
.loading-spinner::after {
	content: "";
	width: 24px;
	height: 24px;
	border: 3px solid #ccc;
	border-top-color: #333;
	border-radius: 50%;
	/* animation: spin 0.3s linear infinite; */
	animation-name: spin;
	animation-duration: 0.66s;
  	animation-iteration-count: infinite;
 	animation-timing-function: ease-in-out;
}
@keyframes spin {
	to { transform: rotate(360deg); }
}
.visually-hidden {
	position: absolute;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	width: 1px;
	height: 1px;
	overflow: hidden;
	white-space: nowrap;
}


a.icon-definition.icon-definition {
	text-decoration-style: dashed;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;

	span.last-word {

		&::after {
			border: 1.5px solid currentcolor;
			border-radius: 50%;
			content: "?";
			color: currentcolor;
			display: inline-flex;
			justify-content: center;
			align-items: center;
			line-height: 1;
			font-weight: bold;
			font-style: normal;
			width: 0.85rem;
			height: 0.85rem;
			font-size: 0.66rem;
			vertical-align: middle;
			margin-left: 0.25rem;
			position: relative;
			top: -0.1rem;
		}
	}

	&:is(:hover, :focus-visible) {
		text-decoration: currentcolor underline 2px dotted;
		outline: 2px solid currentcolor;
		outline-offset: 2px;
		border-radius: 3px;
	}

}

.wp-block-heading {
	& a.icon-definition.icon-definition {
		& span.last-word {
			&::after {
				width: 1.25rem;
				height: 1.25rem;
				font-size: 1rem;
			}
		}
	}
}

	body:has(#dialog[open]) {
		overflow: hidden;
	}

	#dialog {
		background-color: var(--wp--preset--color--white);
		border: 0;
		border-radius: 1rem;
		box-shadow: var(--definition-box-shadow);
		color: var(--wp--preset--color--text-color);
		max-width: 600px;
		min-width: 150px;

		&::backdrop {
			background-color: rgba(0 0 0 / 0.5);
			backdrop-filter: blur(2px);
		}

		.dialog-content {

			h2 {
				background-color: var(--wp--preset--color--custom-dark-blue);
				border-radius: 0 0.75rem 0.75rem 0;
				color: var(--wp--preset--color--white);
				display: inline-block;
				font-size: 1.5rem;
				padding-block: 0.5rem;
				padding-inline-start: 3rem;
				padding-inline-end: 2rem;
				margin-block: 0;
				margin-inline-end: 1rem;
				position: relative;
				left: -2rem;
				outline: none;
			}

			>* {
				padding-inline: 1rem;
			}

			>*:last-child {
				padding-bottom: 0.5rem;
			}
		}

		#close-dialog {
			position: absolute;
			top: 1rem;
			right: 1rem;
			font-size: 0;
			background: top;
			border: thin solid var(--wp--preset--color--transparent);
			color: var(--wp--preset--color--text-color);
			padding-inline: 0.5rem;
			padding-top: 0.25rem;

			&::after {
				content: var(--close-icon);
				font-family: Verdana, Geneva, Tahoma, sans-serif;
				font-size: 1rem;
				display: inline-block;
				padding: 0.25rem;
				width: 1rem;
			}

			&:hover,
			&:focus-visible {
				border: thin solid var(--wp--preset--color--text-color);
				border-radius: 0.25rem;
				outline: none;
				cursor: pointer;
			}
		}
	}

	.glossary-content *:first-child {
		margin-block-start: 0;
	}

	.glossary-results :is(p, blockquote, li) {
		font-size: 1.15rem;
	}