/*
 * Inner Glass: components.
 * Order: header, nav, tools, buttons, hero, sections, cards, grid/split/steps, price, forms,
 * prose and blocks, entries, pagination, comments, widgets, search, footer.
 * Motion rule: interactions use transitions on transform/opacity (colour only for hover tints), never "all".
 */

/* =========================================================================
 * Header: floating glass capsule. The glass lives on pseudo-elements so the header itself
 * is not a backdrop root; that keeps the full-screen mobile menu (position: fixed) and its own blur working.
 * ====================================================================== */
@media (max-width: 600px) {
	:root {
		--ig-adminbar: 0px; /* WP admin bar is not fixed on small screens */
	}
}
.ig-header {
	position: sticky;
	top: calc(var(--ig-adminbar) + 0.625rem);
	z-index: 50;
	width: min(100% - 1.25rem, var(--ig-container));
	margin: 0.625rem auto 0;
}
.ig-header[data-ig-sticky="0"] {
	position: relative;
	top: auto;
}
.ig-header.ig-glass {
	--ig-glass-radius: var(--ig-radius-l);
	background: none;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
	box-shadow: none;
}
.ig-header::before,
.ig-header::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	border-radius: var(--ig-radius-l);
	pointer-events: none;
}
.ig-header::before {
	background-color: var(--ig-glass-fill);
	background-image: var(--ig-glass-sheen);
	-webkit-backdrop-filter: var(--ig-glass-filter);
	backdrop-filter: var(--ig-glass-filter);
	box-shadow: var(--ig-glass-shadow);
}
/* Scrolled: a second layer fades in (opacity only) with a firmer fill and a longer shadow. */
.ig-header::after {
	background-color: color-mix(in srgb, var(--ig-surface) 26%, transparent);
	box-shadow: 0 18px 40px -18px rgb(var(--ig-shade) / 0.34);
	opacity: 0;
	transition: opacity var(--ig-dur) var(--ig-ease-out);
}
.ig-header.is-scrolled::after {
	opacity: 1;
}
.ig-header--solid::before,
.ig-header[data-ig-glass="solid"]::before {
	background-color: var(--ig-glass-solid);
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}
.ig-header .ig-header__inner {
	display: flex;
	align-items: center;
	gap: var(--ig-space-2) var(--ig-space-4);
	max-width: none;
	min-height: var(--ig-header-h);
	margin: 0;
	padding-block: 0.5rem;
	padding-inline: clamp(1rem, 0.5rem + 1.6vw, 1.75rem);
}
.ig-brand,
.ig-nav-toggle,
.ig-header__tools {
	position: relative;
	z-index: 2;
}

/* Brand */
.ig-brand {
	flex: 0 1 auto;
	display: inline-grid;
	grid-template-columns: auto minmax(0, auto);
	align-items: center;
	column-gap: clamp(0.5rem, 0.3rem + 1vw, 0.75rem);
	min-width: 0;
	color: var(--ig-text);
	line-height: 1.2;
	text-decoration: none;
}
.ig-brand:hover {
	color: var(--ig-text);
}
.ig-brand__mark {
	grid-row: 1 / 3;
	width: clamp(2.125rem, 1.8rem + 1.2vw, 2.5rem);
	aspect-ratio: 1;
	border-radius: 50%;
	/* A small glass bead: pastel body, specular spot, rim. */
	background:
		radial-gradient(circle at 30% 26%, rgb(255 255 255 / 0.95) 0 11%, transparent 34%),
		radial-gradient(circle at 72% 78%, rgb(var(--ig-blob-3) / 0.9), transparent 62%),
		radial-gradient(circle at 24% 80%, rgb(var(--ig-blob-2) / 0.8), transparent 58%),
		linear-gradient(145deg, color-mix(in srgb, var(--ig-accent) 78%, #fff), var(--ig-accent));
	box-shadow:
		inset 0 0 0 1px rgb(255 255 255 / 0.45),
		inset 0 -4px 8px -3px rgb(var(--ig-shade) / 0.22),
		0 4px 10px -4px rgb(var(--ig-shade) / 0.3);
}
.ig-brand__text {
	display: grid;
	min-width: 0;
}
.ig-brand__name {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-size: 1.0625rem;
	font-weight: 650;
	letter-spacing: -0.01em;
}
.ig-brand__tag {
	color: var(--ig-muted);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.ig-brand .custom-logo,
.ig-brand img {
	display: block;
	width: auto;
	max-height: 2.5rem;
}

/* =========================================================================
 * Navigation (desktop first, mobile overrides below)
 * ====================================================================== */
.ig-nav {
	margin-left: auto;
}
.ig-nav__list {
	display: flex;
	flex-wrap: wrap; /* a long menu drops to a second row inside the capsule instead of squeezing the brand */
	align-items: center;
	justify-content: flex-end;
	gap: 0.125rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ig-nav__item {
	position: relative;
}
.ig-nav__link {
	display: inline-flex;
	align-items: center;
	white-space: nowrap;
	min-height: 2.5rem;
	padding: 0.5rem 0.875rem;
	border-radius: var(--ig-radius-pill);
	color: var(--ig-text);
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.2;
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
	transition:
		background-color var(--ig-dur-fast) var(--ig-ease-out),
		color var(--ig-dur-fast) var(--ig-ease-out),
		transform var(--ig-dur-fast) var(--ig-ease-out);
}
.ig-nav__link:active {
	transform: scale(0.97);
	transition-duration: var(--ig-dur-press);
}
@media (hover: hover) {
	.ig-nav__link:hover {
		background: var(--ig-tint);
		color: var(--ig-text);
	}
}
:is(.current-menu-item, .current-menu-ancestor, .current_page_item, .current-page-ancestor) > .ig-nav__link,
.ig-nav__link[aria-current="page"] {
	background: var(--ig-accent-soft);
	color: var(--ig-accent-strong);
	font-weight: 600;
}
.ig-nav__item--cta > .ig-nav__link {
	margin-left: var(--ig-space-2);
	padding-inline: 1.25rem;
	background: var(--ig-btn-bg);
	color: var(--ig-accent-ink);
	font-weight: 600;
	box-shadow:
		inset 0 1px 0 rgb(255 255 255 / 0.18),
		0 1px 2px rgb(var(--ig-shade) / 0.18),
		0 8px 18px -10px var(--ig-btn-bg);
}
@media (hover: hover) {
	.ig-nav__item--cta > .ig-nav__link:hover {
		background: var(--ig-btn-hover);
		color: var(--ig-accent-ink);
	}
}
.ig-nav__item--cta.current-menu-item > .ig-nav__link,
.ig-nav__item--cta > .ig-nav__link[aria-current="page"] {
	background: var(--ig-btn-hover);
	color: var(--ig-accent-ink);
}

/* Sub-menus: glass dropdown on desktop. */
.ig-nav .sub-menu {
	position: absolute;
	top: calc(100% + 0.5rem);
	left: 0;
	min-width: 13rem;
	margin: 0;
	padding: 0.375rem;
	border-radius: var(--ig-radius-m);
	background-color: var(--ig-glass-fill-strong);
	background-image: var(--ig-glass-sheen);
	-webkit-backdrop-filter: var(--ig-glass-filter);
	backdrop-filter: var(--ig-glass-filter);
	box-shadow: var(--ig-glass-shadow);
	list-style: none;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-4px);
	transition:
		opacity var(--ig-dur-fast) var(--ig-ease-out),
		transform var(--ig-dur-fast) var(--ig-ease-out),
		visibility 0s linear var(--ig-dur-fast);
}
.ig-nav .sub-menu::before {
	content: "";
	position: absolute;
	inset: -0.5rem 0 auto; /* bridges the gap to the link so the pointer never leaves the item while crossing it */
	height: 0.5rem;
}
.ig-nav .sub-menu .ig-nav__link {
	display: flex;
	width: 100%;
	border-radius: var(--ig-radius-s);
}
.ig-nav :is(.menu-item-has-children:hover, .menu-item-has-children:focus-within) > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition-delay: 0s;
}

.ig-nav-toggle {
	display: none;
}

/* Tools */
.ig-header__tools {
	display: flex;
	align-items: center;
	gap: var(--ig-space-2);
	margin-left: var(--ig-space-2);
}
/* The nav's CTA item already does the job; do not show two. */
.ig-header:has(.ig-nav__item--cta) .ig-header__cta {
	display: none;
}

.ig-lang__list {
	display: flex;
	align-items: center;
	gap: 2px;
	margin: 0;
	padding: 3px;
	border-radius: var(--ig-radius-pill);
	background: var(--ig-tint);
	list-style: none;
}
.ig-lang__link {
	position: relative;
	display: inline-grid;
	place-items: center;
	min-width: 2.25rem;
	min-height: 1.875rem;
	padding: 0 0.5rem;
	border-radius: var(--ig-radius-pill);
	color: var(--ig-muted);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	line-height: 1;
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
	transition:
		color var(--ig-dur-fast) var(--ig-ease-out),
		background-color var(--ig-dur-fast) var(--ig-ease-out),
		transform var(--ig-dur-fast) var(--ig-ease-out);
}
.ig-lang__link:active {
	transform: scale(0.97);
	transition-duration: var(--ig-dur-press);
}
@media (hover: hover) {
	.ig-lang__link:hover {
		color: var(--ig-text);
	}
}
.ig-lang__item.is-current .ig-lang__link,
.ig-lang__link[aria-current] {
	background: var(--ig-glass-solid);
	color: var(--ig-text);
	box-shadow:
		0 1px 2px rgb(var(--ig-shade) / 0.16),
		0 0 0 0.5px rgb(var(--ig-shade) / 0.08);
}
/* 44px touch target: widen the pill, extend the height with ::after. */
@media (pointer: coarse) {
	.ig-lang__link {
		min-width: 2.75rem;
	}
	.ig-lang__link::after {
		content: "";
		position: absolute;
		inset: -7px -1px;
	}
}

.ig-theme-toggle {
	position: relative;
	display: inline-grid;
	place-items: center;
	flex: none;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 0;
	border-radius: var(--ig-radius-pill);
	background: transparent;
	color: var(--ig-muted);
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	transition:
		color var(--ig-dur-fast) var(--ig-ease-out),
		background-color var(--ig-dur-fast) var(--ig-ease-out),
		transform var(--ig-dur-fast) var(--ig-ease-out);
}
@media (hover: hover) {
	.ig-theme-toggle:hover {
		background: var(--ig-tint);
		color: var(--ig-text);
	}
}
.ig-theme-toggle:active {
	transform: scale(0.94);
	transition-duration: var(--ig-dur-press);
}
.ig-theme-toggle svg {
	width: 1.25rem;
	height: 1.25rem;
}
/* The button does nothing without theme.js. */
html:not(.js) .ig-theme-toggle {
	display: none;
}
/* If the toggle prints separate sun and moon icons, show the one you would switch to. */
.ig-theme-toggle__icon--sun {
	display: none;
}
.ig-theme-toggle[aria-pressed="true"] .ig-theme-toggle__icon--sun {
	display: block;
}
.ig-theme-toggle[aria-pressed="true"] .ig-theme-toggle__icon--moon {
	display: none;
}

/* Phones: smaller bar. */
@media (max-width: 35.999rem) {
	.ig-brand__tag {
		display: none;
	}
	.ig-header .ig-header__inner {
		gap: var(--ig-space-1) var(--ig-space-2);
	}
	.ig-lang__link {
		min-width: 2.5rem;
		padding-inline: 0.375rem;
	}
}

/* Very narrow phones: shrink the bar; touch targets stay 44px through ::after. */
@media (max-width: 23.999rem) {
	.ig-header .ig-header__inner {
		gap: var(--ig-space-1);
		padding-inline: 0.625rem;
	}
	.ig-brand__mark {
		width: 2rem;
	}
	.ig-brand__name {
		font-size: 1rem;
	}
	.ig-lang__link {
		min-width: 1.75rem;
		padding-inline: 0.25rem;
	}
	.ig-lang__link::after {
		inset: -7px -5px;
	}
	.ig-header .ig-header__inner {
		flex-wrap: nowrap;
	}
	.ig-theme-toggle,
	.js .ig-nav-toggle {
		width: 2.5rem;
		height: 2.5rem;
	}
	.ig-theme-toggle::after,
	.js .ig-nav-toggle::after {
		content: "";
		position: absolute;
		inset: -2px;
	}
}

/* Mobile: hamburger + full-screen glass menu below 70rem (brand, long Estonian and English labels and the CTA do not fit one row before that). Without JS the menu simply stays open in flow. */
@media (max-width: 69.999rem) {
	.ig-header .ig-header__inner {
		flex-wrap: wrap;
	}
	.ig-header__tools {
		order: 2;
		margin-left: auto;
	}
	.ig-header__cta {
		display: none;
	}
	.js .ig-nav-toggle {
		position: relative;
		order: 3;
		display: inline-grid;
		place-items: center;
		flex: none;
		width: 2.75rem;
		height: 2.75rem;
		padding: 0;
		border: 0;
		border-radius: var(--ig-radius-pill);
		background: var(--ig-tint);
		color: var(--ig-text);
		cursor: pointer;
		-webkit-tap-highlight-color: transparent;
		transition:
			background-color var(--ig-dur-fast) var(--ig-ease-out),
			transform var(--ig-dur-fast) var(--ig-ease-out);
	}
	.js .ig-nav-toggle:active {
		transform: scale(0.94);
		transition-duration: var(--ig-dur-press);
	}
	.ig-nav-toggle__bar {
		grid-area: 1 / 1;
		width: 1.125rem;
		height: 2px;
		border-radius: 2px;
		background: currentColor;
		transition:
			transform var(--ig-dur) var(--ig-ease-out),
			opacity var(--ig-dur-fast) var(--ig-ease-out);
	}
	/* The three bars are children 1 to 3; the screen-reader label comes last in the markup. */
	.ig-nav-toggle__bar:nth-child(1) {
		transform: translateY(-0.3125rem);
	}
	.ig-nav-toggle__bar:nth-child(2) {
		transform: translateX(-0.1875rem) scaleX(0.65);
	}
	.ig-nav-toggle__bar:nth-child(3) {
		transform: translateY(0.3125rem);
	}
	.ig-nav-toggle[aria-expanded="true"] .ig-nav-toggle__bar:nth-child(1) {
		transform: rotate(45deg);
	}
	.ig-nav-toggle[aria-expanded="true"] .ig-nav-toggle__bar:nth-child(2) {
		opacity: 0;
		transform: scaleX(0.2);
	}
	.ig-nav-toggle[aria-expanded="true"] .ig-nav-toggle__bar:nth-child(3) {
		transform: rotate(-45deg);
	}

	.ig-nav {
		margin-left: 0;
		flex-basis: 100%;
	}
	.js .ig-nav {
		position: fixed;
		inset: 0;
		z-index: 1;
		display: flex;
		flex-direction: column;
		flex-basis: auto;
		padding: calc(var(--ig-adminbar) + 0.625rem + var(--ig-header-h) + 1.25rem) var(--ig-gutter) var(--ig-space-6);
		overflow-y: auto;
		overscroll-behavior: contain;
		background-color: var(--ig-glass-fill-strong);
		background-image: var(--ig-glass-sheen);
		-webkit-backdrop-filter: blur(calc(14px + 16px * var(--ig-glass))) saturate(1.7);
		backdrop-filter: blur(calc(14px + 16px * var(--ig-glass))) saturate(1.7);
		opacity: 0;
		visibility: hidden;
		transform: translateY(-0.5rem) scale(0.985);
		transform-origin: 50% 0;
		/* Exit is quicker than enter; both can be interrupted mid-flight. */
		transition:
			opacity var(--ig-dur-fast) var(--ig-ease-out),
			transform var(--ig-dur-fast) var(--ig-ease-out),
			visibility 0s linear var(--ig-dur-fast);
	}
	.js .ig-nav-toggle[aria-expanded="true"] ~ .ig-nav {
		opacity: 1;
		visibility: visible;
		transform: none;
		transition:
			opacity var(--ig-dur) var(--ig-ease-out),
			transform var(--ig-dur-slow) var(--ig-ease-spring),
			visibility 0s;
	}
	.ig-nav__list {
		flex-direction: column;
		align-items: stretch;
		gap: 0.25rem;
		width: 100%;
		max-width: 32rem;
		margin-inline: auto;
	}
	.ig-nav__link {
		display: flex;
		width: 100%;
		min-height: 3.5rem;
		padding: 0.5rem 1.125rem;
		border-radius: var(--ig-radius-m);
		font-size: 1.375rem;
		font-weight: 560;
		letter-spacing: -0.01em;
	}
	.ig-nav__item--cta > .ig-nav__link {
		justify-content: center;
		margin: var(--ig-space-4) 0 0;
		border-radius: var(--ig-radius-pill);
		font-size: 1.0625rem;
	}
	/* Sub-menus open in flow. */
	.ig-nav .sub-menu {
		position: static;
		min-width: 0;
		margin-left: 1rem;
		padding: 0;
		border-radius: 0;
		background: none;
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
	}
	.ig-nav .sub-menu::before {
		display: none;
	}
	.ig-nav .sub-menu .ig-nav__link {
		min-height: 2.75rem;
		font-size: 1.0625rem;
		font-weight: 500;
	}
	/* Items rise in with a short stagger (opacity + transform). */
	.js .ig-nav__item {
		opacity: 0;
		transform: translateY(8px);
		transition:
			opacity var(--ig-dur-fast) var(--ig-ease-out),
			transform var(--ig-dur-fast) var(--ig-ease-out);
	}
	.js .ig-nav-toggle[aria-expanded="true"] ~ .ig-nav .ig-nav__item {
		opacity: 1;
		transform: none;
		transition-duration: var(--ig-dur), var(--ig-dur-slow);
		transition-delay: calc(var(--ig-i, 0) * 40ms + 60ms);
	}
	.ig-nav__item:nth-child(2) {
		--ig-i: 1;
	}
	.ig-nav__item:nth-child(3) {
		--ig-i: 2;
	}
	.ig-nav__item:nth-child(4) {
		--ig-i: 3;
	}
	.ig-nav__item:nth-child(5) {
		--ig-i: 4;
	}
	.ig-nav__item:nth-child(n + 6) {
		--ig-i: 5;
	}
	html.ig-menu-open {
		overflow: hidden;
	}
}

/* =========================================================================
 * Buttons
 * ====================================================================== */
.ig-btn,
.wp-block-button__link,
.wp-element-button,
.comment-form .submit,
.post-password-form input[type="submit"] {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--ig-space-2);
	max-width: 100%; /* an input's label cannot wrap, so cap the box itself */
	min-height: 2.875rem;
	padding: 0.625rem 1.5rem;
	border: 1px solid transparent;
	border-radius: var(--ig-radius-pill);
	background: transparent;
	color: var(--ig-text);
	font-family: inherit;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.005em;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	touch-action: manipulation;
	transition:
		background-color var(--ig-dur-fast) var(--ig-ease-out),
		border-color var(--ig-dur-fast) var(--ig-ease-out),
		color var(--ig-dur-fast) var(--ig-ease-out),
		opacity var(--ig-dur-fast) var(--ig-ease-out),
		transform var(--ig-dur-fast) var(--ig-ease-out);
}
.ig-btn:active,
.wp-block-button__link:active,
.wp-element-button:active,
.comment-form .submit:active {
	transform: scale(0.97);
	transition-duration: var(--ig-dur-press);
}
.ig-btn:disabled,
.ig-btn[aria-disabled="true"] {
	opacity: 0.6;
	cursor: progress;
}
.ig-btn svg {
	width: 1.125em;
	height: 1.125em;
}

.ig-btn--primary:not(.wp-block-button),
.wp-block-button:not(.is-style-outline) > .wp-block-button__link:not(.has-background),
.wp-element-button:not(.has-background),
.comment-form .submit,
.post-password-form input[type="submit"] {
	background: var(--ig-btn-bg);
	color: var(--ig-accent-ink);
	box-shadow:
		inset 0 1px 0 rgb(255 255 255 / 0.2),
		0 1px 2px rgb(var(--ig-shade) / 0.18),
		0 10px 20px -12px var(--ig-btn-bg);
}
.ig-btn--ghost:not(.wp-block-button),
.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-background) {
	border-color: color-mix(in srgb, var(--ig-text) 22%, transparent);
	background: transparent;
	color: var(--ig-text);
}
.ig-btn--glass:not(.wp-block-button) {
	border-color: transparent;
	background-color: var(--ig-glass-fill);
	background-image: var(--ig-glass-sheen);
	-webkit-backdrop-filter: var(--ig-glass-filter);
	backdrop-filter: var(--ig-glass-filter);
	box-shadow: var(--ig-glass-shadow);
	color: var(--ig-text);
}
@media (hover: hover) {
	.ig-btn--primary:not(.wp-block-button):hover,
	.wp-block-button:not(.is-style-outline) > .wp-block-button__link:not(.has-background):hover,
	.wp-element-button:not(.has-background):hover,
	.comment-form .submit:hover {
		background: var(--ig-btn-hover);
		color: var(--ig-accent-ink);
	}
	.ig-btn--ghost:not(.wp-block-button):hover,
	.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-background):hover {
		border-color: color-mix(in srgb, var(--ig-text) 45%, transparent);
		background: var(--ig-tint);
		color: var(--ig-text);
	}
	.ig-btn--glass:not(.wp-block-button):hover {
		background-color: var(--ig-glass-fill-strong);
		color: var(--ig-text);
	}
}
/* The block editor puts a variant class on the .wp-block-button wrapper, so the link inside takes the look. */
.wp-block-button.ig-btn--ghost > .wp-block-button__link:not(.has-background) {
	border-color: color-mix(in srgb, var(--ig-text) 22%, transparent);
	background: transparent;
	box-shadow: none;
	color: var(--ig-text);
}
.wp-block-button.ig-btn--glass > .wp-block-button__link:not(.has-background) {
	border-color: transparent;
	background-color: var(--ig-glass-fill);
	background-image: var(--ig-glass-sheen);
	-webkit-backdrop-filter: var(--ig-glass-filter);
	backdrop-filter: var(--ig-glass-filter);
	box-shadow: var(--ig-glass-shadow);
	color: var(--ig-text);
}
@media (hover: hover) {
	.wp-block-button.ig-btn--ghost > .wp-block-button__link:not(.has-background):hover {
		border-color: color-mix(in srgb, var(--ig-text) 45%, transparent);
		background: var(--ig-tint);
	}
	.wp-block-button.ig-btn--glass > .wp-block-button__link:not(.has-background):hover {
		background-color: var(--ig-glass-fill-strong);
	}
}
.ig-btn--sm {
	min-height: 2.25rem;
	padding: 0.375rem 1rem;
	font-size: 0.8125rem;
}
@media (pointer: coarse) {
	.ig-btn--sm {
		min-height: 2.75rem;
	}
}
.ig-btn-row,
.wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--ig-space-3);
}

.ig-chip {
	display: inline-flex;
	align-items: center;
	min-height: 1.875rem;
	padding: 0.25rem 0.875rem;
	border-radius: var(--ig-radius-pill);
	background: var(--ig-accent-soft);
	color: var(--ig-accent-strong);
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color var(--ig-dur-fast) var(--ig-ease-out);
}
@media (hover: hover) {
	a.ig-chip:hover {
		background: color-mix(in srgb, var(--ig-accent) 28%, transparent);
		color: var(--ig-accent-strong);
	}
}

/* =========================================================================
 * Hero
 * ====================================================================== */
.ig-hero {
	position: relative;
	isolation: isolate;
	overflow: clip;
	padding-block: clamp(2.5rem, 1rem + 7vw, 7rem) clamp(3rem, 1rem + 6vw, 6.5rem);
}
/* Tuck the hero under the floating header so its blobs show through the glass. */
.ig-main > .ig-hero:first-child,
.ig-main > :first-child > .ig-hero:first-child,
.ig-main > :first-child > :first-child > .ig-hero:first-child {
	margin-top: calc(-1 * (var(--ig-header-h) + 0.625rem));
	padding-top: calc(var(--ig-header-h) + 0.625rem + clamp(2.5rem, 1rem + 7vw, 7rem));
}
.ig-hero__bg {
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	-webkit-mask-image: linear-gradient(#000 62%, transparent);
	mask-image: linear-gradient(#000 62%, transparent);
}
.ig-hero__bg::before,
.ig-hero__bg::after {
	content: "";
	position: absolute;
	will-change: transform;
	opacity: var(--ig-blob);
}
.ig-hero__bg::before {
	inset: -25% -15%;
	background:
		radial-gradient(34% 44% at 26% 36%, rgb(var(--ig-blob-1) / calc(0.95 * var(--ig-blob-alpha))), transparent 70%),
		radial-gradient(28% 38% at 76% 30%, rgb(var(--ig-blob-2) / calc(0.9 * var(--ig-blob-alpha))), transparent 70%),
		radial-gradient(32% 40% at 62% 74%, rgb(var(--ig-blob-3) / calc(0.95 * var(--ig-blob-alpha))), transparent 70%),
		radial-gradient(24% 32% at 36% 76%, rgb(var(--ig-blob-4) / calc(0.85 * var(--ig-blob-alpha))), transparent 70%);
	animation: ig-drift 48s ease-in-out infinite alternate;
}
.ig-hero__bg::after {
	inset: -10%;
	background:
		radial-gradient(22% 30% at 84% 58%, rgb(var(--ig-blob-3) / calc(0.55 * var(--ig-blob-alpha))), transparent 70%),
		radial-gradient(20% 28% at 14% 22%, rgb(var(--ig-blob-2) / calc(0.5 * var(--ig-blob-alpha))), transparent 70%);
	animation: ig-drift 64s ease-in-out infinite alternate-reverse;
}
@keyframes ig-drift {
	0% {
		transform: translate3d(0, 0, 0) rotate(0) scale(1);
	}
	50% {
		transform: translate3d(3%, -3%, 0) rotate(5deg) scale(1.06);
	}
	100% {
		transform: translate3d(-3%, 2%, 0) rotate(-4deg) scale(1.02);
	}
}
@media (prefers-reduced-motion: reduce) {
	.ig-hero__bg::before,
	.ig-hero__bg::after {
		animation: none;
	}
}
.ig-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--ig-space-6);
	justify-items: start;
	align-items: center;
}
.ig-hero__panel {
	--ig-glass-radius: clamp(1.5rem, 1.1rem + 1.5vw, 2.25rem);
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	justify-items: start;
	gap: var(--ig-space-4);
	width: 100%;
	max-width: 46rem;
	padding: clamp(1.5rem, 0.9rem + 3vw, 3.5rem);
}
.ig-hero__title {
	font-size: clamp(2.25rem, 1.4rem + 3.4vw, 4rem);
	font-weight: 520;
	line-height: 1.04;
	letter-spacing: -0.035em;
}
.ig-hero__lead {
	max-width: 48ch;
	color: var(--ig-text);
	font-size: clamp(1.0625rem, 1rem + 0.45vw, 1.3125rem);
	line-height: 1.6;
	opacity: 0.82;
}
.ig-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ig-space-3);
	margin-top: var(--ig-space-3);
}
.ig-hero__media {
	width: 100%;
	max-width: 28rem;
	overflow: hidden;
	border-radius: var(--ig-radius-l);
	box-shadow: var(--ig-glass-shadow);
}
.ig-hero__media img {
	display: block;
	width: 100%;
	height: auto;
}
@media (min-width: 60rem) {
	.ig-hero__inner:has(.ig-hero__media) {
		grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.7fr);
	}
	.ig-hero__media {
		justify-self: end;
	}
}
@media (max-width: 29.999rem) {
	.ig-hero__actions > .ig-btn {
		flex: 1 1 100%;
	}
}

/* =========================================================================
 * Sections, split, steps
 * ====================================================================== */
.ig-split,
.ig-section--split > .ig-container {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(2rem, 1rem + 4vw, 4.5rem);
	align-items: center;
}
@media (min-width: 56rem) {
	.ig-split,
	.ig-section--split > .ig-container {
		grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	}
	.ig-split--reverse > :first-child {
		order: 2;
	}
}
.ig-split__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-content: center;
	gap: var(--ig-space-4);
	min-width: 0;
}
.ig-split__media,
.ig-split > figure,
.ig-split > .wp-block-image {
	overflow: hidden;
	border-radius: var(--ig-radius-l);
	box-shadow: var(--ig-glass-shadow);
}
.ig-split__media img,
.ig-split > figure img {
	display: block;
	width: 100%;
	height: auto;
}
/* Stacked on a tablet, a portrait would otherwise fill the whole viewport. */
@media (max-width: 55.999rem) {
	.ig-split__media,
	.ig-split > figure,
	.ig-split > .wp-block-image {
		max-width: 26rem;
	}
}

.ig-steps {
	display: grid;
	gap: var(--ig-space-5);
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: ig-step;
}
@media (min-width: 48rem) {
	.ig-steps {
		grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
		gap: var(--ig-space-6);
	}
}
.ig-step {
	counter-increment: ig-step;
	display: grid;
	align-content: start;
	gap: var(--ig-space-2);
	padding-top: var(--ig-space-4);
	border-top: 1px solid var(--ig-line);
}
.ig-step::before {
	content: counter(ig-step, decimal-leading-zero);
	color: var(--ig-accent-strong);
	font-size: 0.8125rem;
	font-weight: 650;
	letter-spacing: 0.14em;
	font-variant-numeric: tabular-nums;
}
.ig-step > * {
	margin: 0;
}
.ig-step__title {
	font-size: 1.125rem;
	font-weight: 600;
}

/* =========================================================================
 * Cards and grid
 * ====================================================================== */
.ig-grid {
	display: grid;
	gap: clamp(1rem, 0.6rem + 1.5vw, 1.5rem);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
}
.ig-grid--2 {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
}
.ig-grid--3 {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
}

.ig-card {
	--ig-glass-radius: var(--ig-radius-m);
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	min-width: 0;
	color: var(--ig-text);
	transition: transform var(--ig-dur) var(--ig-ease-out);
}
.ig-card:not(:has(> .ig-card__body)) {
	gap: var(--ig-space-3);
	padding: clamp(1.25rem, 1rem + 1vw, 1.75rem);
}
.ig-card__media {
	display: block;
	overflow: hidden;
	border-radius: calc(var(--ig-radius-m) - 1px) calc(var(--ig-radius-m) - 1px) 0 0;
}
.ig-card__media img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	transition: transform var(--ig-dur-slow) var(--ig-ease-out);
}
.ig-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: var(--ig-space-3);
	padding: clamp(1.25rem, 1rem + 1vw, 1.75rem);
}
.ig-card__title {
	font-size: clamp(1.125rem, 1.07rem + 0.25vw, 1.25rem);
	transition: color var(--ig-dur-fast) var(--ig-ease-out);
}
.ig-card__title a {
	color: inherit;
	text-decoration: none;
}
/* The whole card is the link's hit area. */
.ig-card__title a::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}
.ig-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.25rem 0.75rem;
	margin: 0;
	color: var(--ig-muted);
	font-size: 0.8125rem;
}
.ig-card__body > p {
	margin: 0;
	color: var(--ig-muted);
}
/* Soft hover shadow on its own layer: fades in with opacity only. */
.ig-card:has(.ig-card__title a)::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	box-shadow: 0 28px 50px -22px rgb(var(--ig-shade) / 0.38);
	opacity: 0;
	pointer-events: none;
	transition: opacity var(--ig-dur) var(--ig-ease-out);
}
.ig-card:has(.ig-card__title a):active {
	transform: scale(0.985);
	transition-duration: var(--ig-dur-press);
}
@media (hover: hover) and (pointer: fine) {
	.ig-card:has(.ig-card__title a):hover::after {
		opacity: 1;
	}
	.ig-card:has(.ig-card__title a):hover .ig-card__title {
		color: var(--ig-accent-strong);
	}
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
	.ig-card:has(.ig-card__title a):hover {
		transform: translateY(-3px);
	}
	/* More specific than the hover lift, so a mouse press still shrinks the card. */
	.ig-card:has(.ig-card__title a):hover:active {
		transform: translateY(-3px) scale(0.985);
	}
	.ig-card:has(.ig-card__title a):hover .ig-card__media img {
		transform: scale(1.03);
	}
}

/* =========================================================================
 * Price table
 * ====================================================================== */
.ig-price {
	--ig-glass-radius: var(--ig-radius-l);
	margin: 0;
	padding: clamp(0.5rem, 0.25rem + 1vw, 1rem) clamp(1.25rem, 0.75rem + 2.5vw, 2.5rem);
}
.ig-price__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	align-items: baseline;
	gap: var(--ig-space-1) var(--ig-space-5);
	padding-block: var(--ig-space-5);
}
.ig-price__row + .ig-price__row {
	border-top: 1px solid var(--ig-line);
}
.ig-price__name {
	margin: 0;
	font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.25rem);
	font-weight: 600;
	letter-spacing: -0.01em;
}
.ig-price__time {
	color: var(--ig-muted);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
.ig-price__amount {
	min-width: 5ch;
	font-size: clamp(1.375rem, 1.2rem + 0.8vw, 1.75rem);
	font-weight: 650;
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
	text-align: right;
	white-space: nowrap;
}
@media (max-width: 35.999rem) {
	.ig-price__row {
		grid-template-columns: minmax(0, 1fr) auto;
	}
	.ig-price__name {
		grid-column: 1 / -1;
	}
}

/* =========================================================================
 * Forms
 * ====================================================================== */
:where(input:not([type="checkbox"], [type="radio"], [type="hidden"], [type="file"], [type="range"], [type="color"], [type="submit"], [type="button"], [type="reset"], [type="image"]), select, textarea) {
	width: 100%;
	max-width: 100%;
	min-height: 3rem;
	padding: 0.6875rem 1rem;
	border: 1px solid color-mix(in srgb, var(--ig-text) 56%, transparent); /* 3:1 against the glass in both schemes (WCAG 1.4.11) */
	border-radius: var(--ig-radius-s);
	background-color: color-mix(in srgb, var(--ig-surface) 62%, transparent);
	box-shadow: inset 0 1px 2px rgb(var(--ig-shade) / 0.06);
	color: var(--ig-text);
	font-family: inherit;
	font-size: 1rem;
	line-height: 1.4;
	transition:
		border-color var(--ig-dur-fast) var(--ig-ease-out),
		background-color var(--ig-dur-fast) var(--ig-ease-out);
}
:where(textarea) {
	min-height: 8rem;
	resize: vertical;
	field-sizing: content;
}
:where(select:not([multiple], [size])) {
	padding-right: 2.75rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%2356635d' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-position: right 0.875rem center;
	background-size: 1rem;
	background-repeat: no-repeat;
	-webkit-appearance: none;
	appearance: none;
}
:where(input, select, textarea):hover {
	border-color: color-mix(in srgb, var(--ig-text) 72%, transparent);
}
:where(input, select, textarea):focus-visible {
	outline-offset: 1px;
	border-color: var(--ig-focus);
	background-color: color-mix(in srgb, var(--ig-surface) 82%, transparent);
}
:where(input, textarea)::placeholder {
	color: var(--ig-muted);
	opacity: 0.85;
}
:where(input, select, textarea):disabled {
	opacity: 0.6;
	cursor: not-allowed;
}
:where(input[type="checkbox"], input[type="radio"]) {
	accent-color: var(--ig-btn-bg);
}
:where(input, textarea):user-invalid,
:where(input, select, textarea)[aria-invalid="true"] {
	border-color: var(--ig-err);
	background-color: var(--ig-err-soft);
}

.ig-form {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--ig-space-5);
}
.ig-form--narrow {
	max-width: 34rem;
}
.ig-form__row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
	gap: var(--ig-space-5) var(--ig-space-4);
	align-items: start;
}
.ig-field {
	display: grid;
	align-content: start;
	gap: 0.375rem;
	min-width: 0;
}
.ig-label {
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.01em;
}
.ig-label .required,
.ig-label .ig-required,
.ig-label abbr {
	color: var(--ig-err);
	text-decoration: none;
}
.ig-field--check {
	grid-template-columns: auto 1fr;
	align-items: start;
	column-gap: 0.75rem;
}
.ig-field--check input {
	width: 1.25rem;
	min-height: 0;
	height: 1.25rem;
	margin: 0.15rem 0 0;
	cursor: pointer;
}
.ig-field--check .ig-label {
	font-size: 0.9375rem;
	font-weight: 400;
	cursor: pointer;
}
.ig-form__note {
	margin: 0;
	color: var(--ig-muted);
	font-size: 0.8125rem;
}
.ig-form__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--ig-space-3);
}

/* Status: server redirect (--success/--error) and the AJAX path (.is-success/.is-error) look the same. */
.ig-form__status {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.55;
}
.ig-form__status:not(:empty) {
	padding: 0.875rem 1.125rem;
	border: 1px solid var(--ig-line);
	border-radius: var(--ig-radius-s);
	background: var(--ig-glass-fill-strong);
}
.ig-form__status.is-success,
.ig-form__status--success {
	border-color: color-mix(in srgb, var(--ig-ok) 30%, transparent);
	background: var(--ig-ok-soft);
	color: var(--ig-ok);
}
.ig-form__status.is-error,
.ig-form__status--error {
	border-color: color-mix(in srgb, var(--ig-err) 30%, transparent);
	background: var(--ig-err-soft);
	color: var(--ig-err);
}
.ig-form[aria-busy="true"] .ig-btn {
	opacity: 0.6;
	pointer-events: none;
}
.ig-form-card {
	padding: clamp(1.5rem, 1rem + 2.5vw, 2.75rem);
}

/* =========================================================================
 * Prose and core blocks
 * ====================================================================== */
.ig-prose {
	max-width: 65ch;
}
/* Page and post body: a centred reading column. */
.ig-entry > .ig-prose {
	width: 100%;
	max-width: var(--ig-narrow);
	margin-inline: auto;
	padding-inline: var(--ig-gutter);
}
/* Full-width templates: the prose wrapper only carries sections, so it neither narrows nor spaces them. */
.ig-prose.ig-prose--wide,
.ig-main--full > .ig-prose,
.ig-main--full > .ig-entry > .ig-prose {
	max-width: none;
	padding-inline: 0;
}
.ig-main--full > .ig-prose > *,
.ig-main--full > .ig-entry > .ig-prose > * {
	margin-block: 0;
}
.ig-prose > * + * {
	margin-top: 1.1em;
}
.ig-prose > :is(h2, h3, h4) {
	margin-top: 1.8em;
}
.ig-prose > :is(h2, h3, h4) + * {
	margin-top: 0.6em;
}
.ig-prose :where(ul, ol) {
	padding-left: 1.4rem;
}
.ig-prose li {
	padding-left: 0.25rem;
}
.ig-prose li + li {
	margin-top: 0.4em;
}
.ig-prose li::marker {
	color: var(--ig-accent-strong);
}
.ig-prose :is(ul ul, ol ol, ul ol, ol ul) {
	margin-top: 0.4em;
}
.ig-prose img {
	border-radius: var(--ig-radius-m);
}
.ig-prose a {
	text-decoration-color: color-mix(in srgb, currentColor 55%, transparent);
}
.ig-lead {
	max-width: 60ch;
	color: var(--ig-muted);
	font-size: clamp(1.0625rem, 1rem + 0.45vw, 1.3125rem);
	line-height: 1.6;
}
.ig-cta {
	margin-top: var(--ig-space-5);
}
.ig-prose figcaption,
.wp-element-caption {
	margin-top: 0.625rem;
	color: var(--ig-muted);
	font-size: 0.8125rem;
	text-align: center;
}
.ig-prose :is(code, kbd) {
	padding: 0.1em 0.4em;
	border-radius: 6px;
	background: var(--ig-tint);
}
.ig-prose mark {
	padding: 0.05em 0.25em;
	border-radius: 4px;
	background: color-mix(in srgb, var(--ig-accent-2) 40%, transparent);
	color: inherit;
}

.wp-block-quote,
.ig-prose blockquote {
	position: relative;
	padding: 0.25rem 0 0.25rem 1.5rem;
	border-left: 3px solid var(--ig-accent);
	color: var(--ig-text);
	font-size: 1.125rem;
	font-weight: 500;
	line-height: 1.6;
}
.wp-block-quote cite,
.wp-block-quote footer,
.ig-prose blockquote cite {
	display: block;
	margin-top: 0.75rem;
	color: var(--ig-muted);
	font-size: 0.875rem;
	font-style: normal;
	font-weight: 500;
}
.wp-block-pullquote {
	padding: var(--ig-space-6) 0;
	border-block: 1px solid var(--ig-line);
	text-align: center;
}
.wp-block-pullquote blockquote {
	padding: 0;
	border: 0;
}
.wp-block-list {
	padding-left: 1.4rem;
}
.wp-block-table {
	overflow-x: auto;
}
.wp-block-table table,
.ig-prose table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
	font-variant-numeric: tabular-nums;
}
:is(.wp-block-table, .ig-prose) :is(th, td) {
	padding: 0.75rem 1rem;
	border-bottom: 1px solid var(--ig-line);
	text-align: left;
}
:is(.wp-block-table, .ig-prose) thead th {
	border-bottom-width: 2px;
	color: var(--ig-muted);
	font-size: 0.75rem;
	font-weight: 650;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
	background: var(--ig-tint);
}
.wp-block-image img,
.wp-block-gallery img {
	border-radius: var(--ig-radius-m);
}
.wp-block-image.is-style-rounded img {
	border-radius: var(--ig-radius-pill);
}
.wp-block-cover,
.wp-block-media-text {
	overflow: hidden;
	border-radius: var(--ig-radius-l);
}
.wp-block-cover {
	min-height: clamp(16rem, 12rem + 20vw, 28rem);
}
.wp-block-columns {
	gap: clamp(1.5rem, 1rem + 2vw, 3rem);
}
.wp-block-separator {
	height: 1px;
	border: 0;
	background: var(--ig-line);
	color: var(--ig-line);
	opacity: 1;
}
.wp-block-separator.is-style-dots {
	height: auto;
	background: none;
	color: var(--ig-muted);
}
.wp-block-code,
.ig-prose pre {
	padding: 1.125rem 1.25rem;
	overflow-x: auto;
	border: 1px solid var(--ig-line);
	border-radius: var(--ig-radius-s);
	background: color-mix(in srgb, var(--ig-surface) 70%, transparent);
	font-size: 0.875rem;
	line-height: 1.6;
}
.wp-block-code code,
.ig-prose pre code {
	padding: 0;
	background: none;
}
.wp-block-details {
	padding: 0.875rem 1.125rem;
	border: 1px solid var(--ig-line);
	border-radius: var(--ig-radius-s);
}
.wp-block-details summary {
	font-weight: 600;
	cursor: pointer;
}
.wp-block-group.has-background {
	padding: var(--ig-space-5);
	border-radius: var(--ig-radius-m);
}
.alignleft {
	float: left;
	margin: 0.25rem var(--ig-space-5) var(--ig-space-4) 0;
}
.alignright {
	float: right;
	margin: 0.25rem 0 var(--ig-space-4) var(--ig-space-5);
}
.aligncenter {
	display: block;
	margin-inline: auto;
}

/* =========================================================================
 * Entries (single, page, archive)
 * ====================================================================== */
.ig-page-header,
.ig-archive-header,
.ig-entry__header {
	padding-block: clamp(2.5rem, 1.5rem + 5vw, 5rem) var(--ig-space-5);
}
.ig-page-title,
.ig-archive-title,
.ig-entry__title {
	max-width: 22ch;
}
.ig-archive-head {
	padding-bottom: var(--ig-space-6);
}
.ig-archive-head > * + * {
	margin-top: var(--ig-space-4);
}
.ig-archive-head__desc,
.ig-archive-description,
.ig-entry__lead {
	max-width: 56ch;
	margin-top: var(--ig-space-4);
	color: var(--ig-muted);
	font-size: clamp(1.0625rem, 1rem + 0.45vw, 1.25rem);
}
.ig-entry__meta,
.ig-posted-on {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.25rem 0.75rem;
	margin: var(--ig-space-3) 0 0;
	color: var(--ig-muted);
	font-size: 0.875rem;
}
.ig-entry__dot {
	opacity: 0.6;
}
.ig-entry__terms {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ig-space-2);
	margin: 0 0 var(--ig-space-4);
}
.ig-entry__media {
	margin-block: 0 var(--ig-space-6);
}
.ig-entry__media img {
	display: block;
	width: 100%;
	border-radius: var(--ig-radius-l);
	box-shadow: var(--ig-glass-shadow);
}
.ig-entry__content {
	padding-bottom: var(--ig-space-8);
}
.ig-entry__footer {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ig-space-2);
	margin-top: var(--ig-space-6);
}
.ig-none,
.no-results {
	text-align: center;
}
.ig-none .ig-search {
	margin-inline: auto;
	margin-top: var(--ig-space-5);
	text-align: left;
}
.ig-none > * + * {
	margin-top: var(--ig-space-3);
}

/* Pagination and post navigation */
.ig-pagination {
	margin-block: var(--ig-space-7);
}
.ig-pagination :is(.nav-links, ul) {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--ig-space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}
.ig-pagination .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding: 0 0.875rem;
	border-radius: var(--ig-radius-pill);
	color: var(--ig-text);
	font-size: 0.9375rem;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
	transition:
		background-color var(--ig-dur-fast) var(--ig-ease-out),
		transform var(--ig-dur-fast) var(--ig-ease-out);
}
.ig-pagination a.page-numbers:active {
	transform: scale(0.97);
	transition-duration: var(--ig-dur-press);
}
@media (hover: hover) {
	.ig-pagination a.page-numbers:hover {
		background: var(--ig-tint-2);
		color: var(--ig-text);
	}
}
.ig-pagination .page-numbers.current {
	background: var(--ig-btn-bg);
	color: var(--ig-accent-ink);
}
.ig-pagination .page-numbers.dots {
	min-width: 0;
	color: var(--ig-muted);
}

.ig-post-nav {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
	gap: var(--ig-space-4);
	margin-block: var(--ig-space-7);
}
.ig-post-nav__link {
	--ig-glass-radius: var(--ig-radius-m);
	display: grid;
	align-content: start;
	gap: 0.25rem;
	padding: var(--ig-space-4) var(--ig-space-5);
	color: var(--ig-text);
	text-decoration: none;
	transition: transform var(--ig-dur-fast) var(--ig-ease-out);
}
.ig-post-nav__link:active {
	transform: scale(0.985);
	transition-duration: var(--ig-dur-press);
}
.ig-post-nav__link--next {
	text-align: right;
}
.ig-post-nav__label {
	color: var(--ig-muted);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.ig-post-nav__title {
	font-weight: 600;
	line-height: 1.35;
}

/* =========================================================================
 * Comments
 * ====================================================================== */
.ig-comments {
	--ig-glass-radius: var(--ig-radius-l);
	margin-block: var(--ig-space-7) var(--ig-space-8);
	padding: clamp(1.25rem, 1rem + 2vw, 2.25rem);
}
.ig-comments__title {
	margin-bottom: var(--ig-space-5);
	font-size: clamp(1.375rem, 1.2rem + 0.8vw, 1.75rem);
}
.ig-comments :is(.ig-comments__list, .children) {
	margin: 0;
	padding: 0;
	list-style: none;
}
.ig-comments__closed {
	margin-top: var(--ig-space-4);
	color: var(--ig-muted);
}
.ig-comments .children {
	margin-top: var(--ig-space-4);
	padding-left: clamp(1rem, 0.5rem + 3vw, 2.5rem);
}
.ig-comments .comment + .comment,
.ig-comments .children > .comment {
	margin-top: var(--ig-space-4);
}
.ig-comments .comment-body {
	padding: var(--ig-space-4) var(--ig-space-5);
	border: 1px solid var(--ig-line);
	border-radius: var(--ig-radius-m);
	background: var(--ig-tint);
}
.ig-comments .comment-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.25rem var(--ig-space-3);
	margin-bottom: var(--ig-space-2);
	font-size: 0.8125rem;
}
.ig-comments .comment-author {
	display: flex;
	align-items: center;
	gap: var(--ig-space-3);
	font-weight: 600;
}
.ig-comments .avatar {
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
}
.ig-comments .comment-metadata a {
	color: var(--ig-muted);
}
.ig-comments .comment-content > * + * {
	margin-top: 0.75em;
}
.ig-comments .reply a {
	display: inline-flex;
	align-items: center;
	min-height: 2.25rem;
	margin-top: var(--ig-space-2);
	padding: 0 0.875rem;
	border-radius: var(--ig-radius-pill);
	background: var(--ig-accent-soft);
	font-size: 0.8125rem;
	font-weight: 600;
	text-decoration: none;
}
.ig-comments .comment-respond {
	margin-top: var(--ig-space-6);
}
.ig-comments .comment-respond:first-child {
	margin-top: 0;
}
.ig-comments .comment-form > p {
	margin: 0;
}
.ig-comments :is(.comment-notes, .logged-in-as, .no-comments, .comment-awaiting-moderation) {
	color: var(--ig-muted);
	font-size: 0.875rem;
}

/* =========================================================================
 * Widgets and search
 * ====================================================================== */
.ig-widget {
	min-width: 0;
}
.ig-widget + .ig-widget {
	margin-top: var(--ig-space-5);
}
.ig-widget__title,
.ig-widget :is(.wp-block-heading, .wp-block-search__label) {
	margin-block: 0 var(--ig-space-3);
	color: var(--ig-muted);
	font-size: 0.75rem;
	font-weight: 650;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.ig-widget :is(ul, ol):not(.ig-social, .ig-contact-list) {
	display: grid;
	gap: 0.375rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ig-widget li ul {
	margin-top: 0.375rem;
	padding-left: 1rem;
}
.ig-widget a {
	text-decoration: none;
}
.ig-widget a:hover {
	text-decoration: underline;
}
.ig-widget .tagcloud {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem;
}
.ig-widget .tagcloud a {
	padding: 0.25rem 0.75rem;
	border-radius: var(--ig-radius-pill);
	background: var(--ig-tint);
	font-size: 0.8125rem !important; /* core tag cloud sets inline font sizes */
}
.ig-widget table {
	width: 100%;
	font-size: 0.875rem;
	text-align: center;
}

.ig-search,
.search-form {
	display: flex;
	align-items: flex-end;
	gap: var(--ig-space-2);
	width: 100%;
	max-width: 32rem;
}
.ig-search .ig-field,
.search-form label {
	flex: 1;
	min-width: 0;
}
.ig-search .ig-btn,
.search-form .search-submit {
	min-height: 3rem;
}
.ig-search input[type="search"],
.search-form .search-field {
	padding-inline: 1.25rem;
	border-radius: var(--ig-radius-pill);
}

/* Blog sidebar: a column of glass cards under the post, as wide as the article. */
.ig-sidebar {
	display: grid;
	gap: var(--ig-space-4);
	max-width: 46rem;
	padding-block: var(--ig-space-6) var(--ig-space-8);
}
.ig-sidebar .ig-widget {
	padding: var(--ig-space-5);
}
.ig-sidebar .ig-widget + .ig-widget {
	margin-top: 0;
}
.ig-widget :is(.wp-block-latest-posts, .wp-block-latest-comments, .wp-block-archives, .wp-block-categories) {
	padding: 0;
	list-style: none;
}
.ig-widget :is(.wp-block-latest-comments__comment, .wp-block-latest-posts li) {
	margin: 0;
}

/* =========================================================================
 * Footer: glass slab, mirrors the header capsule.
 * ====================================================================== */
.ig-footer {
	--ig-glass-radius: var(--ig-radius-l);
	width: min(100% - 1.25rem, var(--ig-container));
	margin: var(--ig-space-7) auto 0.625rem;
	flex-shrink: 0;
	font-size: 0.9375rem;
}
.ig-footer__inner {
	padding-block: clamp(2rem, 1.25rem + 3vw, 3.5rem) var(--ig-space-5);
}
/* Footer columns: each .ig-footer__col is its own widget area. 1 column on phones, 2 on tablets, then the chosen count
   (3 columns from 48rem, 4 from 64rem, so a cell never gets narrower than about 13rem). */
.ig-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--ig-space-6) var(--ig-space-5);
}
.ig-footer__col {
	display: grid;
	align-content: start;
	gap: var(--ig-space-5);
	min-width: 0;
}
.ig-footer__col > .ig-widget {
	margin: 0;
}
.ig-footer__hint {
	margin: 0;
	color: var(--ig-muted);
	font-size: 0.8125rem;
	font-style: italic;
}
@media (min-width: 34rem) {
	:is(.ig-footer__grid--cols-2, .ig-footer__grid--cols-3, .ig-footer__grid--cols-4) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.ig-footer__grid--cols-2.ig-footer__grid--wide-first {
		grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
	}
	.ig-footer__grid--cols-2.ig-footer__grid--wide-last {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr);
	}
	/* Three columns on two tracks: the wide one takes a whole row. */
	.ig-footer__grid--cols-3.ig-footer__grid--wide-first > .ig-footer__col:first-child,
	.ig-footer__grid--cols-3.ig-footer__grid--wide-last > .ig-footer__col:last-child {
		grid-column: 1 / -1;
	}
}
@media (min-width: 48rem) {
	.ig-footer__grid--cols-3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.ig-footer__grid--cols-3.ig-footer__grid--wide-first {
		grid-template-columns: minmax(0, 1.6fr) repeat(2, minmax(0, 1fr));
	}
	.ig-footer__grid--cols-3.ig-footer__grid--wide-last {
		grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(0, 1.6fr);
	}
	.ig-footer__grid--cols-3 > .ig-footer__col:is(:first-child, :last-child) {
		grid-column: auto;
	}
}
@media (min-width: 64rem) {
	.ig-footer__grid--cols-4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
	.ig-footer__grid--cols-4.ig-footer__grid--wide-first {
		grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr));
	}
	.ig-footer__grid--cols-4.ig-footer__grid--wide-last {
		grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 1.6fr);
	}
}
.ig-footer__brand {
	display: grid;
	align-content: start;
	gap: 0.25rem;
}
.ig-footer__name {
	margin: 0;
	font-size: 1.1875rem;
	font-weight: 650;
	letter-spacing: -0.01em;
}
.ig-footer__tagline {
	max-width: 30ch;
	margin: 0;
	color: var(--ig-muted);
}
.ig-footer a:not(.ig-btn) {
	color: inherit;
	text-decoration-color: color-mix(in srgb, currentColor 35%, transparent);
	transition: color var(--ig-dur-fast) var(--ig-ease-out);
}
@media (hover: hover) {
	.ig-footer a:not(.ig-btn):hover {
		color: var(--ig-accent-strong);
		text-decoration-color: currentColor;
	}
}
.ig-footer__logo {
	display: inline-block;
}
.ig-footer__logo img {
	display: block;
	width: auto;
	max-width: min(100%, 14rem);
	max-height: 3rem;
}
.ig-contact-list {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--ig-space-3);
	margin: 0;
	padding: 0;
	list-style: none;
}
.ig-contact-list > li {
	margin: 0;
	padding: 0;
}
/* Icon and text on one line, the icon centred on the first text line. */
.ig-contact-list > li:has(> svg) {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 0 0.5rem;
	align-items: start;
}
.ig-contact-list > li > svg {
	margin-top: 0.1875rem;
}
.ig-contact-list a[href^="tel:"] {
	white-space: nowrap;
}
.ig-contact-list a[href^="mailto:"] {
	overflow-wrap: anywhere;
}
.ig-social {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ig-space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}
.ig-social a {
	display: inline-grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	background: var(--ig-tint);
	color: var(--ig-text);
	-webkit-tap-highlight-color: transparent;
	transition:
		background-color var(--ig-dur-fast) var(--ig-ease-out),
		transform var(--ig-dur-fast) var(--ig-ease-out);
}
.ig-social a:active {
	transform: scale(0.94);
	transition-duration: var(--ig-dur-press);
}
@media (hover: hover) {
	.ig-social a:hover {
		background: var(--ig-accent-soft);
		color: var(--ig-accent-strong);
	}
}
.ig-social svg {
	width: 1.25rem;
	height: 1.25rem;
}
.ig-footer__menu {
	display: grid;
	gap: 0.125rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ig-footer__menu a {
	display: inline-block;
	padding-block: 0.4375rem;
	text-decoration: none;
}
.ig-footer__menu :is(.current-menu-item, .current_page_item) > a,
.ig-footer__menu a[aria-current="page"] {
	color: var(--ig-accent-strong);
	font-weight: 600;
}
.ig-footer__legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--ig-space-2) var(--ig-space-5);
	color: var(--ig-muted);
	font-size: 0.8125rem;
}
.ig-footer__grid + .ig-footer__legal {
	margin-top: clamp(2rem, 1.5rem + 2vw, 3rem);
	padding-top: var(--ig-space-5);
	border-top: 1px solid var(--ig-line);
}
/* Bottom bar widgets sit in one flowing row. */
.ig-footer__legal > .ig-widget {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--ig-space-2) var(--ig-space-4);
	margin: 0;
}
.ig-footer__legal .ig-widget__title {
	margin: 0;
}
.ig-footer__legal .ig-widget :is(p, ul) {
	margin: 0;
}
.ig-footer__legal .ig-widget ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem var(--ig-space-4);
}
.ig-footer__copy {
	margin: 0;
}
.ig-footer__legal-nav ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem var(--ig-space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Core and theme widgets inside a footer column. Text stays in the page ink (muted only for dates and hints, both >= 4.5:1). */
.ig-footer .ig-widget {
	font-size: 0.9375rem;
	line-height: 1.55;
}
.ig-footer .ig-widget :is(p, figure, .textwidget > *) {
	margin-block: 0 0.75em;
}
.ig-footer .ig-widget :is(p, figure, .textwidget > *):last-child {
	margin-bottom: 0;
}
.ig-footer .ig-widget :is(h3, h4, h5, h6):not(.wp-block-heading) {
	margin-block: 0 var(--ig-space-2);
	font-size: 1rem;
	font-weight: 650;
}
.ig-footer .ig-widget img {
	max-width: 100%;
	height: auto;
	border-radius: var(--ig-radius-s);
}
.ig-footer .ig-widget :is(.post-date, .wp-block-latest-posts__post-date, .comment-author-link, .rss-date) {
	display: block;
	margin-block: -0.1875rem 0.375rem;
	color: var(--ig-muted);
	font-size: 0.8125rem;
}
/* Link lists (Navigation Menu, Pages, Categories, Archives, Recent posts): roomy rows that stay easy to tap. */
.ig-footer .ig-widget :is(ul, ol):not(.ig-contact-list, .ig-social) {
	gap: 0;
}
.ig-footer .ig-widget :is(ul, ol):not(.ig-contact-list, .ig-social) > li > a {
	display: inline-block;
	padding-block: 0.4375rem;
	text-decoration: none;
	transform-origin: left center;
	transition:
		color var(--ig-dur-fast) var(--ig-ease-out),
		transform var(--ig-dur-fast) var(--ig-ease-out);
}
.ig-footer .ig-widget :is(ul, ol):not(.ig-contact-list, .ig-social) > li > a:active {
	transform: scale(0.98);
	transition-duration: var(--ig-dur-press);
}
.ig-footer .ig-widget :is(.current-menu-item, .current_page_item) > a,
.ig-footer .ig-widget :is(ul, ol) > li > a[aria-current="page"] {
	color: var(--ig-accent-strong);
	font-weight: 600;
}
.ig-footer .ig-widget .sub-menu {
	padding-left: 1rem;
}
/* Forms: stacked, so the field and its button both get the full column. */
.ig-footer .ig-widget :is(.ig-search, .search-form, .wp-block-search__inside-wrapper) {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--ig-space-2);
	max-width: none;
}
/* The widget title already names the form; keep its label for screen readers only. */
.ig-footer .ig-widget .ig-search .ig-label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}
.ig-footer .ig-widget :is(.ig-search .ig-btn, .search-submit, .wp-block-search__button) {
	align-self: flex-start;
	margin: 0;
	min-height: 2.75rem;
	border-radius: var(--ig-radius-pill);
}
.ig-footer .ig-widget :is(input:not([type="checkbox"], [type="radio"], [type="submit"]), select, textarea) {
	width: 100%;
	max-width: 100%;
}
.ig-footer .ig-widget .wp-block-search__input {
	min-width: 0;
}
.ig-footer .ig-widget__action {
	margin: 0;
}
.ig-footer .ig-widget__action .ig-btn {
	max-width: 100%;
}
.ig-footer .ig-widget :is(iframe, video, embed) {
	max-width: 100%;
}
.ig-footer .ig-widget table {
	font-size: 0.8125rem;
}
@media (prefers-reduced-motion: reduce) {
	.ig-footer .ig-widget :is(ul, ol):not(.ig-contact-list, .ig-social) > li > a:active {
		transform: none;
	}
}
