/**
 * GBG shell and interaction states. Core Navigation retains its own menu,
 * focus management, Escape handling and progressive fallback.
 */
.gbg-header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 100;
	margin-block-start: 0;
}
.site-header {
	border-bottom: 1px solid var(--gbg-border);
	padding-block: var(--wp--preset--spacing--30);
	transition: border-color var(--wp--custom--motion--micro) var(--wp--custom--motion--ease);
}
.gbg-header--dark .site-header { border-bottom-color: transparent; }
.gbg-header.is-scrolled .site-header { border-bottom-color: var(--gbg-border); }
/* Constant header dimensions prevent layout shift when the scroll state changes. */
.gbg-header .wp-block-site-title { min-width: 0; max-width: 100%; }
.gbg-header .wp-block-site-title a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	max-inline-size: 100%;
	overflow-wrap: anywhere;
}
.gbg-header .wp-block-navigation { min-width: 0; max-inline-size: 100%; margin-inline-start: auto; }
/* A distinct desktop CTA; Core Navigation retains its own mobile-overlay CTA. */
.gbg-header-actions { align-items: center; min-width: 0; }
.gbg-header .gbg-header-cta { display: none; }
.gbg-header .gbg-nav-cta { display: list-item; }
.gbg-header .gbg-header-cta .wp-block-button__link {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--surface);
	border-radius: var(--wp--custom--radius--button);
	padding-inline: 1rem;
}
.gbg-header .gbg-header-cta .wp-block-button__link:hover { background: var(--wp--preset--color--accent-hover); }
@media (min-width: 600px) {
	.gbg-header .gbg-nav-cta { display: none; }
	.gbg-header .gbg-header-cta { display: flex; margin-block: 0; }
}
.gbg-header .wp-block-navigation-item__content,
.gbg-footer .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
}
:where(.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close) {
	min-width: 44px;
	min-height: 44px;
	align-items: center;
	justify-content: center;
}
.wp-block-navigation__responsive-container.is-menu-open {
	background: var(--gbg-bg);
	color: var(--gbg-fg);
	padding: var(--gbg-gutter);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	gap: var(--wp--preset--spacing--45);
}
.site-footer {
	padding-block: var(--wp--preset--spacing--section-small);
	border-top: 1px solid var(--gbg-border);
}
.gbg-footer .wp-block-navigation { max-width: 100%; }

/* Core primary button uses theme.json defaults. */
:where(.wp-element-button, .gbg-button) {
	box-sizing: border-box;
	min-height: 50px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--wp--preset--spacing--10);
	transition: background-color var(--wp--custom--motion--micro) var(--wp--custom--motion--ease),
		border-color var(--wp--custom--motion--micro) var(--wp--custom--motion--ease);
}
.wp-block-button.is-style-outline > .wp-block-button__link,
.gbg-button--secondary {
	background: transparent;
	color: var(--gbg-heading);
	border: 1px solid var(--gbg-control-border);
	border-radius: var(--wp--custom--radius--button);
	padding: 0.8125rem 1.375rem;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover,
.gbg-button--secondary:hover {
	background: transparent;
	color: var(--gbg-heading);
	border-color: currentColor;
}
.wp-block-button.is-style-gbg-editorial > .wp-block-button__link,
.gbg-editorial-link {
	background: transparent;
	color: var(--gbg-link);
	border: 0;
	border-radius: 0;
	padding-inline: 0;
	text-decoration: underline;
	text-underline-offset: 0.25em;
}
.wp-block-button.is-style-gbg-editorial > .wp-block-button__link:hover,
.gbg-editorial-link:hover {
	background: transparent;
	color: var(--gbg-link);
	text-decoration-thickness: 2px;
}
/* Use native disabled buttons, never a merely dimmed anchor. */
:where(button, input, select, textarea):disabled {
	opacity: 0.55;
	cursor: not-allowed;
}
button.wp-element-button:disabled,
button.gbg-button:disabled {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--surface);
	border-color: transparent;
	transform: none;
	transition: none;
}
button.gbg-button--secondary:disabled {
	background: transparent;
	color: var(--gbg-heading);
	border-color: var(--gbg-control-border);
}
/* Both labels occupy the same grid cell, reserving the larger intrinsic width. */
.gbg-submit {
	display: inline-grid;
	grid-template-areas: "label";
}
.gbg-submit > span { grid-area: label; }
.gbg-submit__busy { visibility: hidden; }
.gbg-submit[aria-busy="true"] .gbg-submit__idle { visibility: hidden; }
.gbg-submit[aria-busy="true"] .gbg-submit__busy { visibility: visible; }

/* Opt-in future forms and the existing core Search; not a form implementation. */
:where(.gbg-form label, .wp-block-search__label) {
	display: block;
	font-weight: 600;
	margin-block-end: var(--wp--preset--spacing--10);
}
:where(.gbg-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
	.gbg-form select, .gbg-form textarea, .wp-block-search__input) {
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	min-height: 52px;
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	border: 1px solid var(--gbg-control-border);
	border-radius: var(--wp--custom--radius--button);
	background: var(--gbg-bg);
	color: var(--gbg-fg);
	font: inherit;
}
:where(.gbg-form textarea) { min-height: 10rem; resize: vertical; }
:where(.gbg-form [aria-invalid="true"]) {
	border-color: var(--wp--preset--color--error);
	background: var(--wp--preset--color--error-soft);
	color: var(--wp--preset--color--text);
}
:where(.gbg-field-help) { color: var(--gbg-muted); font-size: var(--wp--preset--font-size--sm); }
:where(.gbg-status) {
	padding: var(--wp--preset--spacing--30);
	border-inline-start: 3px solid currentColor;
	border-radius: var(--wp--custom--radius--small);
}
.gbg-status--success { color: var(--wp--preset--color--success); background: var(--wp--preset--color--success-soft); }
.gbg-status--error { color: var(--wp--preset--color--error); background: var(--wp--preset--color--error-soft); }
.gbg-status--warning {
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--warning-soft);
	border-color: var(--wp--preset--color--warning);
}
.wp-block-search__inside-wrapper { gap: var(--wp--preset--spacing--20); }
.wp-block-search__button { flex-shrink: 0; margin-inline-start: 0; }

@media (max-width: 479px) {
	.gbg-header-actions { max-inline-size: 100%; }
	:where(.wp-block-button, .wp-block-buttons, .wp-block-button__link, .wp-element-button) {
		min-inline-size: 0;
		max-inline-size: 100%;
	}
	:where(.wp-block-button__link, .wp-element-button) { white-space: normal; overflow-wrap: anywhere; }
}

/* A conceptual path, never a chart or a claim. Lines are neutral, active node blue. */
.gbg-signal { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--30); align-items: center; }
.gbg-signal__node {
	display: inline-flex;
	align-items: center;
	gap: var(--wp--preset--spacing--20);
}
.gbg-signal__node::before {
	content: "";
	width: 8px;
	height: 8px;
	border: 1px solid var(--gbg-control-border);
	border-radius: 50%;
}
.gbg-signal__node--active::before { background: var(--wp--preset--color--accent); border-color: var(--wp--preset--color--accent); }
.gbg-signal__path { width: 3rem; height: 1px; background: var(--gbg-border); }

@media (max-width: 639px) {
	.gbg-signal { flex-direction: column; align-items: flex-start; }
	.gbg-signal__path { width: 1px; height: 1.5rem; margin-inline-start: 4px; }
	.gbg-footer .wp-block-group.is-layout-flex { align-items: flex-start; flex-direction: column; }
	.gbg-footer .wp-block-navigation { --navigation-layout-justify: flex-start; }
	.wp-block-search__inside-wrapper { flex-wrap: wrap; }
}
/* Match the WP admin bar when it stops being fixed at narrow widths. */
@media (max-width: 600px) { .gbg-header { top: 0; } }
@media (prefers-reduced-motion: reduce) {
	.site-header, .wp-element-button, .gbg-button { transition: none; }
}
