/**
 * Citizens Gold Reserve presentation layer.
 *
 * Mobile-first, dependency-free styles layered over theme.json and the
 * Twenty Twenty-Five parent. Content remains editable with native blocks.
 */

/* --------------------------------------------------------------------------
   Foundations
   -------------------------------------------------------------------------- */

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

html {
	color-scheme: dark;
	overflow-x: clip;
	text-size-adjust: 100%;
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-wrap: break-word;
}

html.has-modal-open,
body.has-modal-open {
	overflow: hidden;
}

img,
svg,
video {
	display: block;
	max-width: 100%;
}

img {
	height: auto;
}

button,
input,
select,
textarea {
	font: inherit;
}

:where(a) {
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.18em;
}

:where(a:hover) {
	color: var(--wp--preset--color--bright-highlight-gold);
	text-decoration-thickness: 0.12em;
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: var(--wp--custom--focus--width, 3px) solid var(--wp--preset--color--pale-reflection);
	outline-offset: var(--wp--custom--focus--offset, 3px);
}

.is-style-cgr-light-section :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible,
.cgr-light-section :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline-color: var(--wp--preset--color--deep-gold);
}

::selection {
	background: var(--wp--preset--color--warm-highlight-gold);
	color: var(--wp--preset--color--cgr-black);
}

.wp-site-blocks {
	min-height: 100vh;
}

.wp-site-blocks > main {
	min-width: 0;
}

.wp-site-blocks > * {
	margin-block-start: 0;
}

.wp-block-post-content :where(p, li) {
	text-wrap: pretty;
}

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

.wp-block-post-content :where(ul, ol):not([class]) {
	padding-inline-start: 1.35em;
}

.wp-block-post-content :where(li + li) {
	margin-block-start: 0.5em;
}

.wp-block-separator {
	border-block-start-width: 1px;
	opacity: 0.65;
}

.wp-block-image figcaption,
.wp-element-caption {
	margin-block-start: var(--wp--preset--spacing--xs);
}

.wp-block-image.is-style-rounded img {
	border-radius: var(--wp--custom--radius--large, 16px);
}

/* Keep the native WordPress skip link visible above the sticky header. */
.skip-link.screen-reader-text:focus,
.wp-site-blocks > .skip-link:focus {
	clip: auto !important;
	clip-path: none;
	background: var(--wp--preset--color--soft-white);
	color: var(--wp--preset--color--dark-text);
	display: block;
	font-weight: 700;
	height: auto;
	left: var(--wp--preset--spacing--md);
	padding: 0.75rem 1rem;
	top: var(--wp--preset--spacing--md);
	width: auto;
	z-index: 10000;
}

/* --------------------------------------------------------------------------
   Section surfaces and layout helpers
   -------------------------------------------------------------------------- */

.cgr-section,
.is-style-cgr-dark-section,
.is-style-cgr-light-section {
	padding-block: var(--wp--preset--spacing--2-xl);
}

.cgr-section-compact {
	padding-block: var(--wp--preset--spacing--xl);
}

.is-style-cgr-dark-section,
.cgr-dark-section {
	background-color: var(--wp--preset--color--near-black);
	background-image:
		radial-gradient(circle at 85% 5%, rgb(192 136 40 / 0.08), transparent 32rem),
		linear-gradient(180deg, var(--wp--preset--color--charcoal), var(--wp--preset--color--near-black));
	color: var(--wp--preset--color--primary-light-text);
}

.is-style-cgr-dark-section :where(h1, h2, h3, h4, h5, h6),
.cgr-dark-section :where(h1, h2, h3, h4, h5, h6) {
	color: var(--wp--preset--color--primary-light-text);
}

.is-style-cgr-light-section,
.cgr-light-section {
	background: var(--wp--preset--color--warm-ivory);
	color: var(--wp--preset--color--dark-text);
}

.is-style-cgr-light-section :where(h1, h2, h3, h4, h5, h6),
.cgr-light-section :where(h1, h2, h3, h4, h5, h6) {
	color: var(--wp--preset--color--dark-text);
}

.is-style-cgr-light-section :where(a:not(.wp-element-button)),
.cgr-light-section :where(a:not(.wp-element-button)) {
	color: var(--wp--preset--color--deep-gold);
}

.is-style-cgr-light-section :where(a:not(.wp-element-button):hover),
.cgr-light-section :where(a:not(.wp-element-button):hover) {
	color: var(--wp--preset--color--deep-gold);
	text-decoration-thickness: 0.12em;
}

.is-style-cgr-light-section .wp-block-post-title a,
.cgr-light-section .wp-block-post-title a {
	color: var(--wp--preset--color--dark-text);
}

.is-style-cgr-light-section :where(figcaption, .wp-element-caption),
.cgr-light-section :where(figcaption, .wp-element-caption) {
	color: var(--wp--preset--color--muted-dark);
}

.cgr-eyebrow {
	color: var(--wp--preset--color--warm-highlight-gold);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	letter-spacing: 0.14em;
	line-height: 1.4;
	margin-block-end: var(--wp--preset--spacing--sm);
	text-transform: uppercase;
}

.is-style-cgr-light-section .cgr-eyebrow,
.cgr-light-section .cgr-eyebrow {
	color: var(--wp--preset--color--deep-gold);
}

.cgr-section-heading {
	max-width: 18ch;
}

.cgr-section-intro {
	max-width: 64ch;
}

.cgr-muted,
.has-muted-light-text-color {
	color: var(--wp--preset--color--muted-light-text);
}

.cgr-light-section .cgr-muted,
.is-style-cgr-light-section .cgr-muted {
	color: var(--wp--preset--color--muted-dark);
}

.cgr-review-required {
	background: rgb(192 136 40 / 0.08);
	border-inline-start: 3px solid var(--wp--preset--color--core-gold);
	color: var(--wp--preset--color--pale-reflection);
	font-size: var(--wp--preset--font-size--sm);
	padding: var(--wp--preset--spacing--sm) var(--wp--preset--spacing--md);
}

.is-style-cgr-light-section .cgr-review-required,
.cgr-light-section .cgr-review-required {
	background: rgb(122 79 27 / 0.08);
	color: var(--wp--preset--color--dark-text);
}

/* --------------------------------------------------------------------------
   Header, navigation and utilities
   -------------------------------------------------------------------------- */

.cgr-site-header {
	background: rgb(11 11 12 / 0.96);
	border-block-end: 1px solid rgb(192 136 40 / 0.28);
	box-shadow: 0 4px 20px rgb(5 5 5 / 0.2);
	padding-block: 0;
	position: sticky;
	top: 0;
	z-index: 100;
}

@supports (backdrop-filter: blur(10px)) {
	.cgr-site-header {
		backdrop-filter: blur(10px);
	}
}

.admin-bar .cgr-site-header {
	top: 46px;
}

.cgr-header-inner {
	align-items: center;
	display: flex;
	flex-wrap: nowrap;
	gap: var(--wp--preset--spacing--sm) var(--wp--preset--spacing--md);
	justify-content: space-between;
	min-height: 4.5rem;
	min-width: 0;
	padding-block: var(--wp--preset--spacing--sm);
	position: relative;
	width: 100%;
}

.cgr-header-inner > * {
	min-width: 0;
}

.cgr-header-brand {
	align-items: center;
	display: flex;
	flex: 0 1 auto;
	gap: var(--wp--preset--spacing--xs);
	max-width: 100%;
	min-width: 0;
	position: relative;
}

.cgr-header-brand .wp-block-image {
	flex: 0 0 auto;
	margin: 0;
}

.cgr-header-brand .wp-block-image img {
	height: auto;
	max-height: 3.75rem;
	object-fit: contain;
	width: auto;
}

.cgr-header-brand .wp-block-site-title {
	display: block;
}

.cgr-header-title {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.125rem, 4.8vw, 1.25rem);
	font-weight: 600;
	letter-spacing: -0.015em;
	line-height: 1;
	margin: 0;
	white-space: nowrap;
}

.cgr-header-title a {
	align-items: flex-start;
	color: var(--wp--preset--color--primary-light-text);
	display: flex;
	flex-direction: column;
	line-height: inherit;
	text-decoration: none;
}

.cgr-header-title a::before {
	border-radius: var(--wp--custom--radius--small, 4px);
	content: "";
	inset: 0;
	position: absolute;
	z-index: 1;
}

.cgr-header-title a:focus-visible::before {
	outline: var(--wp--custom--focus--width, 3px) solid var(--wp--preset--color--pale-reflection);
	outline-offset: var(--wp--custom--focus--offset, 3px);
}

.cgr-header-title a span {
	display: block;
}

.cgr-header-title a:hover {
	color: var(--wp--preset--color--warm-highlight-gold);
}

.cgr-site-header .wp-block-site-logo {
	flex: 0 0 auto;
}

.cgr-site-header .wp-block-site-logo img {
	height: auto;
	max-height: 3.75rem;
	object-fit: contain;
	width: auto;
}

.cgr-header-utilities {
	align-items: center;
	display: flex;
	flex: 0 0 auto;
	flex-wrap: nowrap;
	gap: var(--wp--preset--spacing--xs);
	justify-content: flex-end;
	margin-inline-start: auto;
	max-width: 100%;
	min-width: 0;
}

/* Keep the compact header to the linked brand lockup, cart, and menu control. */
.cgr-header-utilities .wp-block-search,
.cgr-header-utilities .cgr-account-link {
	display: none;
}

.cgr-header-utilities .wc-block-mini-cart {
	margin: 0;
}

.cgr-header-utilities :where(a, button) {
	align-items: center;
	display: inline-flex;
	justify-content: center;
	min-height: 44px;
	min-width: 44px;
}

.cgr-site-header .wp-block-navigation__responsive-container-open,
.cgr-site-header .wp-block-navigation__responsive-container-close {
	align-items: center;
	background: transparent;
	border: 1px solid transparent;
	border-radius: var(--wp--custom--radius--medium, 8px);
	color: var(--wp--preset--color--warm-ivory);
	justify-content: center;
	min-height: 44px;
	min-width: 44px;
}

.cgr-site-header .wp-block-navigation__responsive-container-open:hover,
.cgr-site-header .wp-block-navigation__responsive-container-open:focus-visible {
	border-color: var(--wp--preset--color--warm-highlight-gold);
	color: var(--wp--preset--color--warm-highlight-gold);
}

.cgr-site-header .wp-block-navigation__responsive-container-open svg,
.cgr-site-header .wp-block-navigation__responsive-container-close svg {
	fill: currentColor;
	stroke: currentColor;
}

.cgr-site-header .wp-block-navigation {
	flex: 0 0 auto;
	font-size: var(--wp--preset--font-size--sm);
	max-width: 100%;
	min-width: 0;
}

.cgr-site-header .wp-block-navigation-item__content {
	align-items: center;
	display: flex;
	min-height: 44px;
	padding-block: 0.55rem;
	text-decoration: none;
}

.cgr-site-header .wp-block-navigation-item__content:hover,
.cgr-site-header .current-menu-item > .wp-block-navigation-item__content,
.cgr-site-header .current-menu-ancestor > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--warm-highlight-gold);
}

.cgr-primary-navigation .cgr-mobile-nav-only {
	display: none;
}

.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) {
	display: none !important;
}

.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container-open {
	display: inline-flex !important;
}

.cgr-site-header .wp-block-navigation__submenu-container {
	background: var(--wp--preset--color--charcoal) !important;
	border: 1px solid rgb(192 136 40 / 0.36) !important;
	border-radius: var(--wp--custom--radius--medium, 8px);
	box-shadow: var(--wp--preset--shadow--cgr-elevated);
	color: var(--wp--preset--color--primary-light-text) !important;
	min-width: 15rem !important;
	padding: var(--wp--preset--spacing--xs) !important;
}

.cgr-site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	border-radius: var(--wp--custom--radius--small, 4px);
	padding: 0.65rem 0.75rem;
}

.cgr-site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--elevated-charcoal);
}

.cgr-site-header .cgr-shop-metal-group > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--warm-highlight-gold);
	font-weight: 750;
}

.cgr-site-header .cgr-header-review {
	margin-block: 0;
}

.cgr-header-utilities .wp-block-search__inside-wrapper {
	border-color: var(--wp--preset--color--elevated-charcoal);
	border-radius: var(--wp--custom--radius--medium, 8px);
	min-height: 44px;
}

.cgr-header-utilities .wp-block-search__input {
	min-width: 0;
	width: min(11rem, 35vw);
}

@media (max-width: 1439px) {
	.cgr-site-header {
		-webkit-backdrop-filter: none;
		background: var(--wp--preset--color--near-black);
		backdrop-filter: none;
	}

	.cgr-header-utilities .wc-block-mini-cart__amount {
		display: none !important;
	}

	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open {
		animation: none !important;
		background-color: var(--wp--preset--color--elevated-charcoal) !important;
		background-image: linear-gradient(180deg, var(--wp--preset--color--elevated-charcoal), var(--wp--preset--color--cgr-black));
		box-sizing: border-box;
		color: var(--wp--preset--color--warm-ivory) !important;
		display: flex !important;
		height: 100dvh;
		inset: 0 !important;
		max-height: 100dvh;
		max-width: 100vw;
		min-height: 100dvh;
		min-width: 0;
		overscroll-behavior: contain;
		overflow-x: hidden;
		overflow-y: auto;
		padding: 0;
		position: fixed !important;
		touch-action: pan-y;
		transform: none !important;
		width: 100vw;
		z-index: 1000;
	}

	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open :where(.wp-block-navigation__responsive-close, .wp-block-navigation__responsive-dialog, .wp-block-navigation__responsive-container-content) {
		height: 100%;
		max-width: none;
		min-height: 100%;
		min-width: 0;
		width: 100%;
	}

	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		align-items: stretch;
		box-sizing: border-box;
		padding:
			calc(env(safe-area-inset-top, 0px) + 4.75rem)
			calc(env(safe-area-inset-right, 0px) + var(--wp--preset--spacing--md))
			calc(env(safe-area-inset-bottom, 0px) + var(--wp--preset--spacing--lg))
			calc(env(safe-area-inset-left, 0px) + var(--wp--preset--spacing--md));
	}

	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		align-items: stretch;
		flex-direction: column;
		flex-wrap: nowrap;
		gap: var(--wp--preset--spacing--xs);
		margin-inline: auto;
		max-width: 42rem;
		min-width: 0;
		padding: 0 !important;
		width: 100%;
	}

	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
		align-items: stretch;
		background: transparent !important;
		border: 0 !important;
		box-shadow: none;
		display: flex !important;
		flex-direction: column;
		gap: var(--wp--preset--spacing--2-xs);
		left: auto !important;
		max-width: 100%;
		min-width: 0 !important;
		opacity: 1 !important;
		padding: 0 0 0 var(--wp--preset--spacing--md) !important;
		position: static !important;
		top: auto !important;
		visibility: visible !important;
		width: 100% !important;
	}

	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,
	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		max-width: 100%;
		min-width: 0;
		width: 100%;
	}

	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		background: transparent;
		border: 0;
		border-radius: var(--wp--custom--radius--small, 4px);
		box-shadow: none;
		color: var(--wp--preset--color--warm-ivory);
		font-size: var(--wp--preset--font-size--md);
		hyphens: none;
		min-height: 44px;
		overflow-wrap: normal;
		padding: 0.55rem 0.65rem;
		white-space: normal;
		word-break: normal;
	}

	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		font-size: var(--wp--preset--font-size--sm);
		padding-block: 0.45rem;
	}

	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .cgr-shop-mega-menu > .wp-block-navigation__submenu-container {
		gap: var(--wp--preset--spacing--sm);
		padding-inline-start: 0 !important;
	}

	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .cgr-shop-metal-group {
		border-block-start: 1px solid rgb(192 136 40 / 0.28);
		padding-block-start: var(--wp--preset--spacing--xs);
	}

	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .cgr-shop-metal-group > .wp-block-navigation-item__content {
		font-size: var(--wp--preset--font-size--md);
		font-weight: 750;
	}

	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .cgr-shop-metal-group > .wp-block-navigation__submenu-icon {
		align-items: center;
		background: transparent;
		border: 1px solid transparent;
		border-radius: var(--wp--custom--radius--small, 4px);
		color: var(--wp--preset--color--warm-highlight-gold);
		display: inline-flex;
		justify-content: center;
		min-height: 44px;
		min-width: 44px;
	}

	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .cgr-shop-metal-group > .wp-block-navigation__submenu-container {
		padding-inline-start: var(--wp--preset--spacing--sm) !important;
	}

	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .cgr-shop-accordion-ready .cgr-shop-metal-group > .wp-block-navigation-item__content {
		display: none;
	}

	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .cgr-shop-accordion-ready .cgr-shop-metal-group > .wp-block-navigation__submenu-icon {
		border-color: rgb(192 136 40 / 0.36);
		font-size: var(--wp--preset--font-size--md);
		font-weight: 750;
		justify-content: space-between;
		padding: 0.55rem 0.65rem;
		width: 100%;
	}

	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .cgr-shop-accordion-ready .cgr-shop-metal-group > .wp-block-navigation__submenu-icon[aria-expanded="true"] {
		background: var(--wp--preset--color--cgr-black);
		border-color: var(--wp--preset--color--core-gold);
	}

	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .cgr-shop-accordion-ready .cgr-shop-metal-group > .wp-block-navigation__submenu-icon[aria-expanded="true"] svg {
		transform: rotate(180deg);
	}

	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .cgr-shop-accordion-ready .cgr-shop-metal-group > .wp-block-navigation__submenu-container[hidden] {
		display: none !important;
	}

	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .cgr-shop-view-all > .wp-block-navigation-item__content {
		color: var(--wp--preset--color--muted-light-text);
		font-size: var(--wp--preset--font-size--xs);
		font-weight: 700;
		text-decoration: underline;
		text-underline-offset: 0.2em;
	}

	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover,
	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus-visible {
		background: var(--wp--preset--color--cgr-black);
		color: var(--wp--preset--color--warm-highlight-gold);
	}

	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
		background: var(--wp--preset--color--cgr-black);
		border-color: var(--wp--preset--color--core-gold);
		color: var(--wp--preset--color--warm-ivory);
		display: inline-flex !important;
		height: 44px;
		margin: 0;
		min-height: 44px;
		min-width: 44px;
		opacity: 1;
		pointer-events: auto;
		position: fixed !important;
		right: calc(env(safe-area-inset-right, 0px) + var(--wp--preset--spacing--md));
		top: calc(env(safe-area-inset-top, 0px) + var(--wp--preset--spacing--md));
		visibility: visible;
		width: 44px;
		z-index: 1002;
	}

	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close:hover,
	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close:focus-visible {
		background: var(--wp--preset--color--core-gold);
		color: var(--wp--preset--color--cgr-black);
	}

	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close:focus-visible {
		outline: var(--wp--custom--focus--width, 3px) solid var(--wp--preset--color--pale-reflection);
		outline-offset: var(--wp--custom--focus--offset, 3px);
	}

	.admin-bar .cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		padding-block-start: calc(env(safe-area-inset-top, 0px) + 46px + 4.75rem);
	}

	.admin-bar .cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
		top: calc(env(safe-area-inset-top, 0px) + 46px + var(--wp--preset--spacing--md));
	}

	.cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .cgr-mobile-nav-only {
		display: flex;
	}
}

@media (min-width: 783px) {
	.admin-bar .cgr-site-header {
		top: 32px;
	}
}

@media (min-width: 783px) and (max-width: 1439px) {
	.admin-bar .cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		padding-block-start: calc(env(safe-area-inset-top, 0px) + 32px + 4.75rem);
	}

	.admin-bar .cgr-site-header .cgr-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
		top: calc(env(safe-area-inset-top, 0px) + 32px + var(--wp--preset--spacing--md));
	}
}


/* The inline desktop header is independent from the native compact Navigation. */
.cgr-desktop-header {
	display: none;
}

@media (min-width: 1440px) {
	.cgr-compact-header {
		display: none !important;
	}

	.cgr-desktop-header {
		align-items: center;
		display: grid;
		gap: clamp(0.4rem, 0.65vw, 0.875rem);
		grid-template-columns: auto minmax(0, 1fr) auto;
		margin-inline: auto;
		max-width: 112rem;
		min-height: 5rem;
		padding-block: var(--wp--preset--spacing--sm);
		position: relative;
		width: calc(100% - 1.5rem);
	}

	.cgr-desktop-header > * {
		min-width: 0;
	}

	.cgr-desktop-brand {
		align-items: center;
		color: var(--wp--preset--color--primary-light-text);
		display: inline-flex;
		gap: 0.5rem;
		line-height: 1;
		text-decoration: none;
		white-space: nowrap;
	}

	.cgr-desktop-brand:hover,
	.cgr-desktop-brand:focus-visible {
		color: var(--wp--preset--color--warm-highlight-gold);
	}

	.cgr-desktop-brand img {
		height: clamp(3.25rem, 3.5vw, 3.75rem);
		object-fit: contain;
		width: auto;
	}

	.cgr-desktop-brand-name {
		display: flex;
		flex-direction: column;
		font-family: var(--wp--preset--font-family--display);
		font-size: clamp(1.0625rem, 1.2vw, 1.25rem);
		font-weight: 600;
		letter-spacing: -0.015em;
	}

	.cgr-desktop-nav {
		align-items: center;
		display: flex;
		justify-content: center;
		min-width: 0;
	}

	.cgr-desktop-nav :where(ul, li) {
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.cgr-desktop-nav-list {
		align-items: center;
		display: flex;
		flex-wrap: nowrap;
		gap: clamp(0rem, 0.18vw, 0.25rem);
		justify-content: center;
		min-width: 0;
		white-space: nowrap;
	}

	.cgr-desktop-nav-list > li {
		flex: 0 0 auto;
	}

	.cgr-desktop-nav a,
	.cgr-desktop-menu-toggle {
		align-items: center;
		border-radius: var(--wp--custom--radius--small, 4px);
		color: var(--wp--preset--color--primary-light-text);
		display: inline-flex;
		font-family: var(--wp--preset--font-family--body);
		font-size: clamp(0.75rem, 0.62vw, 0.8125rem);
		font-weight: 650;
		min-height: 44px;
		text-decoration: none;
	}

	.cgr-desktop-nav-list > li > a,
	.cgr-desktop-menu-trigger > a {
		padding: 0.55rem clamp(0.125rem, 0.18vw, 0.25rem);
	}

	.cgr-desktop-nav a:hover,
	.cgr-desktop-nav a:focus-visible,
	.cgr-desktop-menu-toggle:hover,
	.cgr-desktop-menu-toggle:focus-visible,
	.cgr-desktop-menu[data-cgr-open="true"] > .cgr-desktop-menu-trigger > a {
		background: var(--wp--preset--color--elevated-charcoal);
		color: var(--wp--preset--color--warm-highlight-gold);
	}

	.cgr-desktop-menu-trigger {
		align-items: center;
		display: inline-flex;
	}

	.cgr-desktop-menu-toggle {
		background: transparent;
		border: 1px solid transparent;
		cursor: pointer;
		justify-content: center;
		min-width: 44px;
		padding: 0;
	}

	.cgr-desktop-menu-toggle span {
		border-block-end: 1.5px solid currentcolor;
		border-inline-end: 1.5px solid currentcolor;
		height: 0.42rem;
		transform: rotate(45deg) translateY(-0.12rem);
		width: 0.42rem;
	}

	.cgr-desktop-menu-toggle[aria-expanded="true"] span {
		transform: rotate(225deg) translate(-0.08rem, -0.08rem);
	}

	.cgr-desktop-menu-panel {
		background: var(--wp--preset--color--charcoal);
		border: 1px solid rgb(192 136 40 / 0.52);
		border-radius: var(--wp--custom--radius--medium, 8px);
		box-shadow: var(--wp--preset--shadow--cgr-elevated);
		color: var(--wp--preset--color--primary-light-text);
		position: absolute;
		top: 100%;
		z-index: 1001;
	}

	.cgr-desktop-menu-panel[hidden] {
		display: none !important;
	}

	.cgr-desktop-shop-menu {
		position: static;
	}

	.cgr-desktop-shop-panel {
		display: grid;
		gap: var(--wp--preset--spacing--lg);
		grid-template-columns: repeat(4, minmax(0, 1fr));
		inset-inline: 1rem;
		margin-inline: auto;
		max-width: 64rem;
		padding: var(--wp--preset--spacing--lg);
		width: calc(100% - 2rem);
	}

	.cgr-desktop-shop-column {
		min-width: 0;
	}

	.cgr-desktop-shop-column ul {
		display: grid;
		gap: var(--wp--preset--spacing--2-xs);
		margin-block-start: var(--wp--preset--spacing--xs);
	}

	.cgr-desktop-shop-heading {
		color: var(--wp--preset--color--warm-highlight-gold) !important;
		font-size: var(--wp--preset--font-size--md) !important;
		font-weight: 750 !important;
		padding-inline: 0.65rem;
	}

	.cgr-desktop-shop-column li a {
		color: var(--wp--preset--color--warm-ivory);
		min-height: 40px;
		padding: 0.5rem 0.65rem;
		white-space: normal;
	}

	.cgr-desktop-resources-menu {
		position: relative;
	}

	.cgr-desktop-resources-panel {
		display: grid;
		gap: var(--wp--preset--spacing--2-xs);
		left: 0;
		min-width: 20rem;
		padding: var(--wp--preset--spacing--xs);
	}

	.cgr-desktop-resources-panel a {
		padding: 0.55rem 0.7rem;
		white-space: normal;
		width: 100%;
	}

	.cgr-header-actions {
		align-items: center;
		display: flex;
		flex-wrap: nowrap;
		gap: clamp(0.35rem, 0.45vw, 0.6rem);
		justify-content: flex-end;
		min-width: 0;
		white-space: nowrap;
	}

	.cgr-header-actions .wp-block-search {
		align-self: center;
		flex: 0 1 clamp(11rem, 15vw, 15rem);
		margin: 0;
		max-width: 100%;
		min-width: 0;
		width: clamp(11rem, 15vw, 15rem);
	}

	.cgr-header-actions .wp-block-search__inside-wrapper {
		align-items: center;
		border-color: var(--wp--preset--color--elevated-charcoal);
		border-radius: var(--wp--custom--radius--medium, 8px);
		display: flex;
		height: 46px;
		min-height: 46px;
		width: 100%;
	}

	.cgr-header-actions .wp-block-search__input {
		flex: 1 1 0;
		font-size: var(--wp--preset--font-size--sm);
		height: 44px;
		line-height: 1.25;
		min-height: 44px;
		min-width: 0;
		padding: 0.5rem 0.75rem;
		width: auto;
	}

	.cgr-header-actions .wp-block-search__button {
		align-self: center;
		flex: 0 0 44px;
		height: 44px;
		margin: 0;
		min-height: 44px;
		min-width: 44px;
		padding: 0.5rem;
		width: 44px;
	}

	.cgr-header-actions .wp-block-search__button:hover {
		transform: none;
	}

	.cgr-header-actions .cgr-account-link {
		margin: 0;
	}

	.cgr-header-actions :where(.cgr-account-link a, .wc-block-mini-cart__button) {
		font-size: clamp(0.75rem, 0.62vw, 0.8125rem);
	}

	.cgr-header-actions :where(a, button) {
		min-height: 44px;
	}
}

/* --------------------------------------------------------------------------
   Buttons and linked controls
   -------------------------------------------------------------------------- */

:where(.wp-element-button, .wp-block-button__link, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .wc-block-components-button, .wp-block-search__button, input[type="submit"]) {
	align-items: center;
	border-color: var(--wp--preset--color--core-gold);
	cursor: pointer;
	display: inline-flex;
	justify-content: center;
	min-height: 46px;
	text-align: center;
	text-decoration: none;
	transition:
		background-color var(--wp--custom--motion--duration-fast, 160ms) var(--wp--custom--motion--easing, ease),
		border-color var(--wp--custom--motion--duration-fast, 160ms) var(--wp--custom--motion--easing, ease),
		color var(--wp--custom--motion--duration-fast, 160ms) var(--wp--custom--motion--easing, ease),
		transform var(--wp--custom--motion--duration-fast, 160ms) var(--wp--custom--motion--easing, ease);
}

:where(.wp-element-button, .wp-block-button__link, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .wc-block-components-button, .wp-block-search__button, input[type="submit"]):hover {
	background: var(--wp--preset--color--warm-highlight-gold);
	border-color: var(--wp--preset--color--warm-highlight-gold);
	color: var(--wp--preset--color--cgr-black);
	transform: translateY(-2px);
}

:where(.wp-element-button, .wp-block-button__link, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .wc-block-components-button, .wp-block-search__button, input[type="submit"]):active {
	transform: translateY(0);
}

.wp-block-button.is-style-cgr-outline .wp-block-button__link {
	background: transparent;
	border-color: var(--wp--preset--color--core-gold);
	color: var(--wp--preset--color--primary-light-text);
}

.wp-block-button.is-style-cgr-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--core-gold);
	color: var(--wp--preset--color--near-black);
}

.cgr-light-section .wp-block-button.is-style-cgr-outline .wp-block-button__link,
.is-style-cgr-light-section .wp-block-button.is-style-cgr-outline .wp-block-button__link {
	color: var(--wp--preset--color--dark-text);
}

.wp-block-button.is-style-cgr-light .wp-block-button__link {
	background: var(--wp--preset--color--warm-ivory);
	border-color: var(--wp--preset--color--warm-ivory);
	color: var(--wp--preset--color--dark-text);
}

.wp-block-button.is-style-cgr-light .wp-block-button__link:hover {
	background: var(--wp--preset--color--soft-white);
	border-color: var(--wp--preset--color--pale-reflection);
}

.wp-block-button.is-style-cgr-text .wp-block-button__link {
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--warm-highlight-gold);
	min-height: 44px;
	padding-inline: 0;
	text-decoration: underline;
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.2em;
}

.wp-block-button.is-style-cgr-text .wp-block-button__link:hover {
	background: transparent;
	color: var(--wp--preset--color--bright-highlight-gold);
}

.wp-block-buttons {
	row-gap: var(--wp--preset--spacing--sm);
}

@media (max-width: 599px) {
	.cgr-hero .wp-block-buttons,
	.cgr-final-cta .wp-block-buttons,
	.cgr-guide-layout .wp-block-buttons {
		align-items: stretch;
		width: 100%;
	}

	.cgr-hero .wp-block-button,
	.cgr-final-cta .wp-block-button,
	.cgr-guide-layout .wp-block-button,
	.cgr-hero .wp-block-button__link,
	.cgr-final-cta .wp-block-button__link,
	.cgr-guide-layout .wp-block-button__link {
		width: 100%;
	}
}

/* --------------------------------------------------------------------------
   Cards, image wells and grids
   -------------------------------------------------------------------------- */

.is-style-cgr-card,
.cgr-card {
	background: var(--wp--preset--color--charcoal);
	border: 1px solid rgb(192 136 40 / 0.32);
	border-radius: var(--wp--custom--radius--large, 16px);
	box-shadow: var(--wp--preset--shadow--cgr-subtle);
	color: var(--wp--preset--color--primary-light-text);
	height: 100%;
	overflow: clip;
	padding: var(--wp--preset--spacing--lg);
	transition:
		border-color var(--wp--custom--motion--duration-standard, 240ms) var(--wp--custom--motion--easing, ease),
		box-shadow var(--wp--custom--motion--duration-standard, 240ms) var(--wp--custom--motion--easing, ease),
		transform var(--wp--custom--motion--duration-standard, 240ms) var(--wp--custom--motion--easing, ease);
}

.is-style-cgr-card:hover,
.cgr-card:hover,
.is-style-cgr-card:focus-within,
.cgr-card:focus-within {
	border-color: rgb(224 176 72 / 0.62);
	box-shadow: var(--wp--preset--shadow--cgr-gold-edge);
	transform: translateY(-2px);
}

.is-style-cgr-light-section .is-style-cgr-card,
.cgr-light-section .cgr-card {
	background: var(--wp--preset--color--soft-white);
	border-color: rgb(122 79 27 / 0.24);
	color: var(--wp--preset--color--dark-text);
}

.is-style-cgr-light-section .is-style-cgr-card :where(h2, h3, h4, h5, h6),
.cgr-light-section .cgr-card :where(h2, h3, h4, h5, h6) {
	color: var(--wp--preset--color--dark-text);
}

.cgr-category-grid :where(.is-style-cgr-card, .cgr-card) :where(h2, h3, h4, h5, h6, a),
.cgr-steps :where(.is-style-cgr-card, .cgr-card) :where(h2, h3, h4, h5, h6, a),
.cgr-card-grid.cgr-four-card-grid :where(.is-style-cgr-card, .cgr-card) :where(h2, h3, h4, h5, h6, a),
.cgr-learning-grid :where(.is-style-cgr-card, .cgr-card) :where(h2, h3, h4, h5, h6, a),
.cgr-program-grid :where(.is-style-cgr-card, .cgr-card) :where(h2, h3, h4, h5, h6, a),
.cgr-product-grid :where(.is-style-cgr-card, .cgr-card) :where(h2, h3, h4, h5, h6, a) {
	hyphens: none;
	overflow-wrap: normal;
	word-break: normal;
}

.cgr-metal-category-card {
	align-items: center;
	display: flex;
	flex-direction: column;
	text-align: center;
}

.cgr-metal-category-title {
	margin-block-end: var(--wp--preset--spacing--sm);
	text-align: center;
}

.cgr-metal-category-title a {
	color: var(--wp--preset--color--primary-light-text);
	text-decoration-color: rgb(224 176 72 / 0.55);
	text-decoration-thickness: 0.06em;
	text-underline-offset: 0.16em;
}

.cgr-metal-category-title a:hover,
.cgr-metal-category-title a:focus-visible {
	color: var(--wp--preset--color--bright-highlight-gold);
	text-decoration-color: currentcolor;
}

.cgr-metal-category-links {
	display: grid;
	gap: var(--wp--preset--spacing--2-xs);
	justify-items: center;
	list-style: none;
	margin: 0;
	padding: 0;
	width: 100%;
}

.cgr-metal-category-links li {
	margin: 0;
}

.cgr-metal-category-links a {
	align-items: center;
	border-radius: var(--wp--custom--radius--small, 4px);
	color: var(--wp--preset--color--pale-reflection);
	display: inline-flex;
	justify-content: center;
	min-height: 44px;
	padding: 0.45rem 0.6rem;
	text-align: center;
	text-decoration: none;
}

.cgr-metal-category-links a::after {
	content: none;
}

.cgr-metal-category-links a:hover,
.cgr-metal-category-links a:focus-visible {
	background: var(--wp--preset--color--elevated-charcoal);
	color: var(--wp--preset--color--warm-highlight-gold);
}

.cgr-category-accordion-panel {
	margin-block-start: 0;
	width: 100%;
}

.cgr-category-accordion-trigger,
.cgr-category-view-all {
	display: none;
}

@media (max-width: 599px) {
	.cgr-metal-category-grid {
		gap: var(--wp--preset--spacing--sm);
	}

	.cgr-metal-category-card {
		align-items: stretch;
		padding: var(--wp--preset--spacing--sm);
		text-align: start;
	}

	.cgr-metal-category-title {
		display: none;
	}

	.cgr-category-accordion-trigger {
		align-items: center;
		background: transparent;
		border: 1px solid rgb(192 136 40 / 0.36);
		border-radius: var(--wp--custom--radius--medium, 8px);
		color: var(--wp--preset--color--warm-highlight-gold);
		display: flex;
		font-family: var(--wp--preset--font-family--display);
		font-size: var(--wp--preset--font-size--xl);
		font-weight: 650;
		justify-content: space-between;
		min-height: 44px;
		padding: 0.55rem 0.75rem;
		text-align: start;
		width: 100%;
	}

	.cgr-category-accordion-trigger:hover,
	.cgr-category-accordion-trigger:focus-visible,
	.cgr-category-accordion-trigger[aria-expanded="true"] {
		background: var(--wp--preset--color--elevated-charcoal);
		border-color: var(--wp--preset--color--core-gold);
		color: var(--wp--preset--color--bright-highlight-gold);
	}

	.cgr-accordion-chevron {
		border-block-end: 2px solid currentcolor;
		border-inline-end: 2px solid currentcolor;
		height: 0.55rem;
		margin-inline-start: var(--wp--preset--spacing--sm);
		transform: rotate(45deg);
		width: 0.55rem;
	}

	.cgr-category-accordion-trigger[aria-expanded="true"] .cgr-accordion-chevron {
		transform: rotate(225deg);
	}

	.cgr-category-accordion-ready .cgr-category-accordion-panel[hidden] {
		display: none !important;
	}

	.cgr-category-accordion-panel {
		padding: var(--wp--preset--spacing--xs) var(--wp--preset--spacing--xs) 0;
	}

	.cgr-category-view-all {
		display: block;
		font-size: var(--wp--preset--font-size--xs);
		font-weight: 700;
		margin-block: var(--wp--preset--spacing--xs) 0;
		text-align: center;
	}

	.cgr-category-view-all a {
		color: var(--wp--preset--color--muted-light-text);
		min-height: 44px;
		padding: 0.6rem;
	}
}

.is-style-cgr-image-well,
.cgr-image-well,
.wc-block-components-product-image,
.woocommerce div.product div.images,
.woocommerce ul.products li.product a img,
.wc-block-product-template .wc-block-components-product-image img {
	background: var(--wp--preset--color--soft-white);
	border: 1px solid rgb(23 23 23 / 0.1);
	border-radius: var(--wp--custom--radius--medium, 8px);
}

.is-style-cgr-image-well,
.cgr-image-well {
	align-items: center;
	display: flex;
	justify-content: center;
	min-height: 12rem;
	padding: var(--wp--preset--spacing--lg);
}

.is-style-cgr-image-well img,
.cgr-image-well img {
	max-height: 22rem;
	object-fit: contain;
}

.is-style-cgr-image-well.wc-block-components-product-image img {
	background: transparent;
	border: 0;
	padding: 0;
}

.cgr-card-grid,
.cgr-category-grid,
.cgr-learning-grid,
.cgr-program-grid,
.cgr-steps,
.cgr-footer-grid {
	display: grid;
	gap: var(--wp--preset--spacing--md);
}

.cgr-card-grid,
.cgr-category-grid,
.cgr-learning-grid,
.cgr-program-grid,
.cgr-steps,
.cgr-product-grid {
	margin-inline: auto;
	max-width: var(--wp--style--global--wide-size, 1280px);
	width: 100%;
}

.cgr-assurance-grid > .wp-block-columns {
	display: grid;
	gap: 0;
	grid-template-columns: minmax(0, 1fr);
	margin-block: 0;
}

.cgr-card-grid,
.cgr-category-grid,
.cgr-learning-grid,
.cgr-program-grid,
.cgr-steps,
.cgr-footer-grid {
	grid-template-columns: minmax(0, 1fr);
}

.cgr-assurance-grid > .wp-block-columns > *,
.cgr-card-grid > *,
.cgr-category-grid > *,
.cgr-learning-grid > *,
.cgr-program-grid > *,
.cgr-steps > *,
.cgr-footer-grid > * {
	min-width: 0;
}

.cgr-assurance-grid.is-style-cgr-dark-section {
	background-image: none;
	border-block: 1px solid rgb(192 136 40 / 0.22);
	padding-block: var(--wp--preset--spacing--md);
}

.cgr-assurance-grid > .wp-block-columns > * {
	align-items: center;
	box-sizing: border-box;
	display: flex;
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
	justify-content: center;
	letter-spacing: 0.01em;
	line-height: 1.5;
	min-height: 4.25rem;
	padding: var(--wp--preset--spacing--sm) var(--wp--preset--spacing--md);
	position: relative;
	text-align: center;
}

.cgr-assurance-grid > .wp-block-columns > * + * {
	border-block-start: 1px solid rgb(192 136 40 / 0.42);
}

.cgr-assurance-grid > .wp-block-columns > * > p {
	margin-block: 0;
	text-align: center;
	width: 100%;
}

@media (min-width: 600px) {
	.cgr-assurance-grid > .wp-block-columns {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.cgr-assurance-grid > .wp-block-columns > * + * {
		border-block-start: 0;
	}

	.cgr-assurance-grid > .wp-block-columns > :nth-child(n + 3) {
		border-block-start: 1px solid rgb(192 136 40 / 0.42);
	}

	.cgr-assurance-grid > .wp-block-columns > :nth-child(even) {
		border-inline-start: 1px solid rgb(192 136 40 / 0.42);
	}

	.cgr-card-grid,
	.cgr-category-grid,
	.cgr-learning-grid {
		grid-template-columns: repeat(auto-fit, minmax(min(100%, max(16rem, 40%)), 1fr));
	}

	.cgr-program-grid {
		grid-template-columns: repeat(auto-fit, minmax(min(100%, max(18rem, 40%)), 1fr));
	}

	.cgr-footer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 782px) {
	.cgr-steps {
		grid-template-columns: repeat(auto-fit, minmax(min(100%, max(16rem, 40%)), 1fr));
	}
}

@media (min-width: 960px) {
	.cgr-assurance-grid > .wp-block-columns {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.cgr-assurance-grid > .wp-block-columns > :nth-child(n) {
		border-block-start: 0;
		border-inline-start: 0;
	}

	.cgr-assurance-grid > .wp-block-columns > :not(:first-child)::before {
		background: rgb(192 136 40 / 0.42);
		bottom: 20%;
		content: "";
		inline-size: 1px;
		inset-inline-start: 0;
		position: absolute;
		top: 20%;
	}

	.cgr-steps {
		grid-template-columns: repeat(auto-fit, minmax(min(100%, max(16rem, 30%)), 1fr));
	}

	.cgr-footer-grid {
		grid-template-columns: minmax(14rem, 1.4fr) repeat(3, minmax(9rem, 1fr));
	}
}

@media (min-width: 1200px) {
	.cgr-category-grid,
	.cgr-card-grid.cgr-four-card-grid {
		grid-template-columns: repeat(auto-fit, minmax(min(100%, max(16rem, 22%)), 1fr));
	}

	.cgr-learning-grid {
		grid-template-columns: repeat(auto-fit, minmax(min(100%, max(18rem, 30%)), 1fr));
	}
}

/* --------------------------------------------------------------------------
   Homepage and editorial modules
   -------------------------------------------------------------------------- */

.cgr-hero {
	background-color: var(--wp--preset--color--cgr-black);
	background-image:
		radial-gradient(circle at 78% 38%, rgb(192 136 40 / 0.14), transparent 30rem),
		linear-gradient(125deg, var(--wp--preset--color--cgr-black), var(--wp--preset--color--charcoal));
	overflow: clip;
	padding-block: var(--wp--preset--spacing--2-xl);
}

.cgr-hero :where(.wp-block-columns) {
	align-items: center;
}

.cgr-hero :where(.wp-block-column) {
	min-width: 0;
}

.cgr-hero :where(p:not(.cgr-eyebrow)) {
	max-width: 62ch;
}

.cgr-hero .wp-block-image img {
	filter: drop-shadow(0 24px 48px rgb(0 0 0 / 0.45));
	margin-inline: auto;
}

.cgr-hero-emblem img,
.cgr-guide-emblem img {
	object-fit: contain;
}

.cgr-steps {
	counter-reset: cgr-step;
}

.cgr-step {
	border-block-start: 1px solid rgb(192 136 40 / 0.4);
	counter-increment: cgr-step;
	padding-block-start: var(--wp--preset--spacing--lg);
	position: relative;
}

.cgr-step::before {
	align-items: center;
	background: var(--wp--preset--color--core-gold);
	border-radius: 50%;
	color: var(--wp--preset--color--near-black);
	content: counter(cgr-step, decimal-leading-zero);
	display: inline-flex;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 800;
	height: 2.5rem;
	justify-content: center;
	margin-block-end: var(--wp--preset--spacing--md);
	width: 2.5rem;
}

.cgr-step-number {
	align-items: center;
	background: var(--wp--preset--color--core-gold);
	border-radius: 50%;
	color: var(--wp--preset--color--near-black);
	display: inline-flex;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 800;
	height: 2.5rem;
	justify-content: center;
	line-height: 1;
	margin: 0;
	width: 2.5rem;
}

@media (max-width: 781px) {
	.cgr-steps > .wp-block-column,
	.cgr-steps > .wp-block-column > .is-style-cgr-card {
		height: auto;
	}
}

@media (min-width: 782px) {
	.wp-block-columns.cgr-steps {
		align-items: stretch !important;
	}

	.cgr-steps > .wp-block-column {
		align-self: stretch;
		display: flex;
		height: auto;
	}

	.cgr-steps > .wp-block-column > .is-style-cgr-card {
		box-sizing: border-box;
		flex: 1 1 auto;
		height: auto;
		width: 100%;
	}
}

.cgr-guide-layout {
	align-items: center;
	display: grid;
	gap: var(--wp--preset--spacing--xl);
	grid-template-columns: minmax(0, 1fr);
}

.cgr-guide-layout .wp-block-image {
	margin-inline: auto;
	max-width: 30rem;
}

.cgr-guide-layout .wp-block-image img {
	border: 1px solid rgb(224 176 72 / 0.55);
	box-shadow: var(--wp--preset--shadow--cgr-elevated);
}

.cgr-faq {
	display: grid;
	gap: var(--wp--preset--spacing--sm);
}

.cgr-faq .wp-block-details,
.cgr-faq details {
	background: var(--wp--preset--color--charcoal);
	border: 1px solid var(--wp--preset--color--elevated-charcoal);
	border-radius: var(--wp--custom--radius--medium, 8px);
	margin: 0;
	padding: 0;
}

.is-style-cgr-light-section .cgr-faq .wp-block-details,
.is-style-cgr-light-section .cgr-faq details,
.cgr-light-section .cgr-faq .wp-block-details,
.cgr-light-section .cgr-faq details {
	background: var(--wp--preset--color--soft-white);
	border-color: rgb(122 79 27 / 0.24);
	color: var(--wp--preset--color--dark-text);
}

.is-style-cgr-light-section .cgr-faq details[open] summary,
.cgr-light-section .cgr-faq details[open] summary {
	color: var(--wp--preset--color--deep-gold);
}

.cgr-faq summary {
	cursor: pointer;
	font-family: var(--wp--preset--font-family--body);
	font-weight: 700;
	list-style-position: inside;
	min-height: 48px;
	padding: var(--wp--preset--spacing--md);
}

.cgr-faq details[open] {
	border-color: rgb(192 136 40 / 0.55);
}

.cgr-faq details[open] summary {
	color: var(--wp--preset--color--warm-highlight-gold);
}

.cgr-faq details > :not(summary) {
	margin-inline: var(--wp--preset--spacing--md);
}

.cgr-faq details > :last-child {
	margin-block-end: var(--wp--preset--spacing--md);
}

.cgr-final-cta {
	background:
		linear-gradient(var(--wp--preset--color--near-black), var(--wp--preset--color--near-black)) padding-box,
		var(--wp--preset--gradient--metallic-gold) border-box;
	border: 1px solid transparent;
	border-radius: var(--wp--custom--radius--large, 16px);
	box-shadow: 0 24px 60px rgb(5 5 5 / 0.32);
	padding: var(--wp--preset--spacing--xl);
}

@media (min-width: 782px) {
	.cgr-guide-layout {
		grid-template-columns: minmax(16rem, 0.8fr) minmax(0, 1.2fr);
	}
}

@media (min-width: 1440px) {
	.cgr-hero {
		min-height: 0;
		padding-block-end: clamp(2.5rem, 3vw, 3rem);
		padding-block-start: clamp(3rem, 4vw, 4rem);
	}

	.cgr-hero .wp-block-columns.are-vertically-aligned-center {
		align-items: flex-start;
		margin-block: 0;
	}

	.cgr-hero .wp-block-column.is-vertically-aligned-center {
		align-self: flex-start;
	}

	.cgr-hero-emblem img {
		max-height: 32rem;
		width: auto;
	}

	.cgr-steps {
		grid-template-columns: repeat(auto-fit, minmax(min(100%, max(14rem, 18%)), 1fr));
	}

	.cgr-steps :where(.is-style-cgr-card, .cgr-card) h3 {
		font-size: var(--wp--preset--font-size--xl);
		line-height: 1.3;
	}
}

/* --------------------------------------------------------------------------
   Forms, search and inputs
   -------------------------------------------------------------------------- */

:where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]), select, textarea),
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input {
	background: var(--wp--preset--color--charcoal);
	border: 1px solid #4a4844;
	border-radius: var(--wp--custom--radius--medium, 8px);
	color: var(--wp--preset--color--primary-light-text);
	min-height: 48px;
	padding: 0.75rem 0.875rem;
	width: 100%;
}

:where(textarea) {
	min-height: 9rem;
	resize: vertical;
}

:where(input, select, textarea)::placeholder {
	color: var(--wp--preset--color--muted-light-text);
	opacity: 0.82;
}

:where(input, select, textarea):focus,
.wc-block-components-text-input input:focus,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input:focus {
	border-color: var(--wp--preset--color--warm-highlight-gold);
	box-shadow: 0 0 0 1px var(--wp--preset--color--warm-highlight-gold);
}

:where(label),
.wc-block-components-text-input label,
.wc-block-components-checkbox__label {
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 650;
}

:where(input[type="checkbox"], input[type="radio"]) {
	accent-color: var(--wp--preset--color--core-gold);
	block-size: 1.2rem;
	inline-size: 1.2rem;
}

:where(input, select, textarea, button):disabled,
[aria-disabled="true"] {
	cursor: not-allowed;
	opacity: 0.62;
}

.is-style-cgr-light-section :where(input:not([type="submit"]), select, textarea),
.cgr-light-section :where(input:not([type="submit"]), select, textarea) {
	background: var(--wp--preset--color--soft-white);
	border-color: #aaa69d;
	color: var(--wp--preset--color--dark-text);
}

.is-style-cgr-light-section :where(input, select, textarea)::placeholder,
.cgr-light-section :where(input, select, textarea)::placeholder {
	color: var(--wp--preset--color--muted-dark);
}

.wp-block-search__inside-wrapper {
	background: var(--wp--preset--color--charcoal);
	border: 1px solid #4a4844;
	border-radius: var(--wp--custom--radius--medium, 8px);
	overflow: hidden;
}

.wp-block-search__inside-wrapper .wp-block-search__input {
	border: 0;
	border-radius: 0;
}

.wp-block-search__button {
	border-radius: var(--wp--custom--radius--small, 4px);
	margin: 3px;
}

/* --------------------------------------------------------------------------
   WooCommerce base compatibility
   -------------------------------------------------------------------------- */

.woocommerce,
.wc-block-components-main,
.wc-block-components-sidebar {
	color: var(--wp--preset--color--primary-light-text);
}

.is-style-cgr-light-section :where(.woocommerce, .wc-block-components-main, .wc-block-components-sidebar),
.cgr-light-section :where(.woocommerce, .wc-block-components-main, .wc-block-components-sidebar) {
	color: var(--wp--preset--color--dark-text);
}

.woocommerce .products,
.wc-block-product-template {
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce ul.products,
.wc-block-product-template {
	display: grid;
	gap: var(--wp--preset--spacing--md);
	grid-template-columns: minmax(0, 1fr);
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none;
}

.woocommerce ul.products li.product,
.wc-block-product-template .wc-block-product {
	background: var(--wp--preset--color--charcoal);
	border: 1px solid rgb(192 136 40 / 0.24);
	border-radius: var(--wp--custom--radius--large, 16px);
	box-shadow: var(--wp--preset--shadow--cgr-subtle);
	display: flex;
	flex-direction: column;
	float: none;
	margin: 0;
	min-width: 0;
	overflow: hidden;
	padding: var(--wp--preset--spacing--md);
	width: auto;
}

/* The featured-product pattern provides an editable inner Group card. */
.cgr-product-grid .wc-block-product-template .wc-block-product {
	background: transparent;
	border: 0;
	box-shadow: none;
	overflow: visible;
	padding: 0;
}

.woocommerce ul.products li.product a img,
.wc-block-product-template .wc-block-components-product-image img {
	aspect-ratio: 1;
	margin: 0 0 var(--wp--preset--spacing--md);
	object-fit: contain;
	padding: var(--wp--preset--spacing--md);
	width: 100%;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.wc-block-product-template .wp-block-post-title {
	color: var(--wp--preset--color--primary-light-text);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--lg);
	font-weight: 700;
	line-height: 1.35;
	padding: 0;
}

.is-style-cgr-light-section .wc-block-product-template .wp-block-post-title a,
.cgr-light-section .wc-block-product-template .wp-block-post-title a {
	color: var(--wp--preset--color--dark-text);
}

.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price,
.wc-block-components-product-price {
	color: var(--wp--preset--color--warm-highlight-gold);
	font-weight: 700;
}

.is-style-cgr-light-section .wc-block-components-product-price,
.cgr-light-section .wc-block-components-product-price,
.is-style-cgr-light-section .woocommerce ul.products li.product .price,
.is-style-cgr-light-section .woocommerce div.product p.price,
.is-style-cgr-light-section .woocommerce div.product span.price,
.cgr-light-section .woocommerce ul.products li.product .price,
.cgr-light-section .woocommerce div.product p.price,
.cgr-light-section .woocommerce div.product span.price {
	color: var(--wp--preset--color--deep-gold);
}

.is-style-cgr-light-section .wc-block-components-product-metadata,
.is-style-cgr-light-section .wc-block-components-product-stock-indicator,
.cgr-light-section .wc-block-components-product-metadata,
.cgr-light-section .wc-block-components-product-stock-indicator {
	color: var(--wp--preset--color--muted-dark);
}

.woocommerce ul.products li.product .button,
.wc-block-product-template .wp-block-button,
.wc-block-product-template .wp-block-button__link {
	margin-block-start: auto;
	width: 100%;
}

.woocommerce span.onsale,
.wc-block-components-product-sale-badge {
	background: var(--wp--preset--color--core-gold);
	border: 0;
	border-radius: var(--wp--custom--radius--small, 4px);
	color: var(--wp--preset--color--near-black);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 800;
	letter-spacing: 0.05em;
	line-height: 1;
	min-height: auto;
	padding: 0.5rem 0.625rem;
	text-transform: uppercase;
}

.woocommerce div.product div.images {
	padding: var(--wp--preset--spacing--md);
}

.woocommerce div.product div.images img {
	object-fit: contain;
}

.woocommerce div.product .product_title {
	font-size: var(--wp--preset--font-size--3-xl);
}

.woocommerce div.product form.cart {
	align-items: stretch;
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--sm);
}

.woocommerce .quantity .qty {
	min-height: 46px;
	min-width: 5rem;
}

.woocommerce table.shop_table,
.wc-block-cart-items,
.wc-block-components-totals-wrapper,
.wc-block-components-order-summary {
	border-color: var(--wp--preset--color--elevated-charcoal);
	border-radius: var(--wp--custom--radius--medium, 8px);
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td,
.wc-block-cart-items th,
.wc-block-cart-items td {
	border-color: var(--wp--preset--color--elevated-charcoal);
}

.woocommerce-info,
.woocommerce-message,
.woocommerce-error,
.wc-block-components-notice-banner {
	background: var(--wp--preset--color--charcoal);
	border: 1px solid var(--wp--preset--color--core-gold);
	border-radius: var(--wp--custom--radius--medium, 8px);
	color: var(--wp--preset--color--primary-light-text);
	padding: var(--wp--preset--spacing--md);
}

.woocommerce-error,
.wc-block-components-notice-banner.is-error {
	border-color: #d88f82;
}

.woocommerce-message {
	border-color: #9db88d;
}

.woocommerce-breadcrumb,
.woocommerce-result-count,
.woocommerce-product-details__short-description,
.stock,
.wc-block-components-product-metadata {
	color: var(--wp--preset--color--muted-light-text);
}

.is-style-cgr-light-section :where(.woocommerce-breadcrumb, .woocommerce-result-count, .woocommerce-product-details__short-description, .stock, .wc-block-components-product-metadata),
.cgr-light-section :where(.woocommerce-breadcrumb, .woocommerce-result-count, .woocommerce-product-details__short-description, .stock, .wc-block-components-product-metadata) {
	color: var(--wp--preset--color--muted-dark);
}

.woocommerce-tabs ul.tabs,
.woocommerce div.product .woocommerce-tabs ul.tabs {
	border-color: var(--wp--preset--color--elevated-charcoal);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: var(--wp--preset--color--charcoal);
	border-color: var(--wp--preset--color--elevated-charcoal);
	color: var(--wp--preset--color--primary-light-text);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	background: var(--wp--preset--color--elevated-charcoal);
	color: var(--wp--preset--color--warm-highlight-gold);
}

.wc-block-components-sidebar-layout {
	gap: var(--wp--preset--spacing--xl);
}

.wc-block-components-checkout-step {
	background: var(--wp--preset--color--charcoal);
	border: 1px solid var(--wp--preset--color--elevated-charcoal);
	border-radius: var(--wp--custom--radius--medium, 8px);
	margin-block-end: var(--wp--preset--spacing--md);
	padding: var(--wp--preset--spacing--md);
}

.wc-block-components-order-summary,
.wc-block-components-totals-wrapper {
	background: var(--wp--preset--color--charcoal);
}

.wc-block-components-checkout-step,
.wc-block-components-order-summary,
.wc-block-components-totals-wrapper {
	color: var(--wp--preset--color--primary-light-text);
}

:is(.wc-block-components-checkout-step, .wc-block-components-order-summary, .wc-block-components-totals-wrapper) :where(h1, h2, h3, h4, h5, h6, legend, label, .wc-block-components-title, .wc-block-components-checkout-step__description, .wc-block-components-order-summary-item__description, .wc-block-components-product-name, .wc-block-components-totals-item__label, .wc-block-components-totals-item__value) {
	color: var(--wp--preset--color--primary-light-text);
}

:is(.wc-block-components-checkout-step, .wc-block-components-order-summary, .wc-block-components-totals-wrapper) a:not(.wc-block-components-button) {
	color: var(--wp--preset--color--warm-highlight-gold);
}

:is(.wc-block-components-checkout-step, .wc-block-components-order-summary, .wc-block-components-totals-wrapper) a:not(.wc-block-components-button):hover {
	color: var(--wp--preset--color--bright-highlight-gold);
}

.wc-block-components-button:not(.is-link) {
	background: var(--wp--preset--color--core-gold);
	color: var(--wp--preset--color--near-black);
}

.wc-block-components-button.is-link {
	color: var(--wp--preset--color--warm-highlight-gold);
}

.wc-block-mini-cart__button {
	align-items: center;
	color: var(--wp--preset--color--primary-light-text);
	display: inline-flex;
	justify-content: center;
	min-height: 44px;
	min-width: 44px;
}

.wc-block-mini-cart__badge {
	background: var(--wp--preset--color--core-gold);
	color: var(--wp--preset--color--near-black);
}

@media (min-width: 600px) {
	.woocommerce ul.products,
	.wc-block-product-template {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	/* auto-fill, not auto-fit: empty tracks are kept, so a category with one or two products
	   keeps normal card widths instead of one card stretched across the page (measured on
	   2026-09-30: a 1,280px card for the single Platinum coin). */
	.cgr-product-grid.wp-block-woocommerce-product-collection .wc-block-product-template {
		grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
	}
}

@media (min-width: 1040px) {
	.woocommerce ul.products,
	.wc-block-product-template {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.cgr-site-footer {
	background: var(--wp--preset--color--cgr-black);
	border-block-start: 1px solid rgb(192 136 40 / 0.32);
	color: var(--wp--preset--color--muted-light-text);
	padding-block: var(--wp--preset--spacing--2-xl);
}

.cgr-site-footer .wp-block-site-logo img {
	height: auto;
	max-height: 5rem;
	object-fit: contain;
	width: auto;
}

.cgr-site-footer :where(h2, h3, h4, h5, h6) {
	color: var(--wp--preset--color--primary-light-text);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.cgr-site-footer :where(ul) {
	list-style: none;
	margin: 0;
	padding: 0;
}

.cgr-site-footer :where(li + li) {
	margin-block-start: var(--wp--preset--spacing--xs);
}

.cgr-site-footer :where(a) {
	color: var(--wp--preset--color--muted-light-text);
}

.cgr-site-footer :where(a:hover) {
	color: var(--wp--preset--color--warm-highlight-gold);
}

.cgr-footer-policies {
	align-items: start;
	border-block-start: 1px solid var(--wp--preset--color--elevated-charcoal);
	display: grid;
	font-size: var(--wp--preset--font-size--xs);
	gap: var(--wp--preset--spacing--xs) var(--wp--preset--spacing--md);
	grid-template-columns: minmax(0, 1fr);
	justify-items: stretch;
	margin-block-start: var(--wp--preset--spacing--xl);
	margin-inline: auto;
	max-width: var(--wp--style--global--wide-size, 1280px);
	min-width: 0;
	padding-block-start: var(--wp--preset--spacing--lg);
	text-align: start;
	width: 100%;
}

.cgr-footer-policies > * {
	grid-column: 1 / -1;
	margin-block: 0;
	margin-inline: 0;
	max-width: none;
	min-width: 0;
	width: 100%;
}

.cgr-policy-links {
	display: grid;
	gap: var(--wp--preset--spacing--xs) var(--wp--preset--spacing--md);
	grid-template-columns: minmax(0, 1fr);
	justify-items: stretch;
	list-style: none;
	margin: 0;
	max-width: none;
	min-width: 0;
	padding: 0;
	text-align: start;
	width: 100%;
}

.cgr-policy-links > li {
	margin-block-start: 0;
	min-width: 0;
	text-align: start;
	width: 100%;
}

.cgr-policy-links :where(a) {
	hyphens: none;
	overflow-wrap: normal;
	word-break: normal;
}

@media (min-width: 782px) {
	.cgr-policy-links {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Footer disclosures (owner, 2026-10-02): the risk sentence and the spot-price sentence sit
   directly under the policy links, on the links' own left edge, at the links' size; the copyright
   line follows. The spot sentence is written by CGR Commerce Core from the same response that
   fills the bar, and stays hidden when there are no fresh prices - it never shows a stale time. */
.cgr-site-footer .cgr-footer-legal {
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1.6;
	margin-block-start: var(--wp--preset--spacing--md);
	text-align: start;
}

.cgr-site-footer .cgr-footer-legal > * {
	margin-block: 0;
	margin-inline: 0;
	max-width: none;
}

.cgr-site-footer .cgr-footer-legal > .cgr-footer-disclosure + .cgr-footer-disclosure {
	margin-block-start: 0.25rem;
}

.cgr-site-footer .cgr-footer-legal > .cgr-spot-disclosure[hidden] {
	display: none;
}

.cgr-site-footer .cgr-footer-legal > .cgr-footer-copyright {
	margin-block-start: var(--wp--preset--spacing--md);
}

/* --------------------------------------------------------------------------
   Accessibility preferences
   -------------------------------------------------------------------------- */

@media (prefers-contrast: more) {
	.is-style-cgr-card,
	.cgr-card,
	.woocommerce ul.products li.product,
	.wc-block-product-template .wc-block-product,
	.cgr-faq details {
		border-color: var(--wp--preset--color--warm-highlight-gold);
	}

	:where(input, select, textarea) {
		border-width: 2px;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-delay: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}

	:where(.wp-element-button, .wp-block-button__link, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .wc-block-components-button, .wp-block-search__button, input[type="submit"]):hover,
	.is-style-cgr-card:hover,
	.cgr-card:hover,
	.is-style-cgr-card:focus-within,
	.cgr-card:focus-within {
		transform: none;
	}
}

@media (forced-colors: active) {
	:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
		outline: 3px solid CanvasText;
	}

	.is-style-cgr-card,
	.cgr-card,
	.cgr-site-header,
	.cgr-site-footer,
	.cgr-faq details {
		border: 1px solid CanvasText;
	}
}

@media print {
	.cgr-site-header {
		position: static;
	}

	.cgr-site-header .wp-block-navigation,
	.cgr-desktop-nav,
	.cgr-header-actions,
	.cgr-header-utilities,
	.cgr-site-footer .wp-block-navigation,
	.woocommerce a.button,
	.woocommerce button.button,
	.wp-block-buttons {
		display: none !important;
	}
}

/* --------------------------------------------------------------------------
	Catalog: quote/inquiry state, specifications, photography disclosure
	(markup from CGR Commerce Core, includes/class-catalog.php)
	-------------------------------------------------------------------------- */
/* One line, one treatment: "Price and availability on request". It takes the price colour of
   the section it sits in (deep gold on light surfaces, highlight gold on dark ones). */
.cgr-quote-price {
	color: inherit;
	font-size: var(--wp--preset--font-size--md);
	font-weight: 600;
	letter-spacing: 0.01em;
}

.cgr-inquiry-cta {
	margin-block: var(--wp--preset--spacing--md);
}

.cgr-inquiry-cta__note {
	color: var(--wp--preset--color--dark-text);
	font-size: var(--wp--preset--font-size--sm);
	margin-block: 0 var(--wp--preset--spacing--sm);
}

.cgr-inquiry-cta .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
}

.cgr-product-specs {
	margin-block: var(--wp--preset--spacing--lg);
}

.cgr-spec-table {
	border-collapse: collapse;
	color: var(--wp--preset--color--dark-text);
	font-size: var(--wp--preset--font-size--sm);
	inline-size: 100%;
	max-inline-size: 44rem;
}

.cgr-spec-table th,
.cgr-spec-table td {
	border-block-end: 1px solid rgb(122 79 27 / 0.22);
	padding: var(--wp--preset--spacing--xs) var(--wp--preset--spacing--sm);
	text-align: start;
	vertical-align: top;
}

.cgr-spec-table th {
	color: var(--wp--preset--color--muted-dark);
	font-weight: 600;
	inline-size: 40%;
}

.cgr-product-disclosure p {
	font-size: var(--wp--preset--font-size--sm);
}

.cgr-image-caption {
	color: var(--wp--preset--color--deep-gold);
	font-weight: 600;
}

@media (max-width: 781px) {
	.cgr-inquiry-cta .wp-block-button,
	.cgr-inquiry-cta .wp-block-button__link {
		inline-size: 100%;
	}
}

/* Product page: long official titles need a calmer heading scale */
/* Measured 2026-09-18: the global H1 scale set product titles at 84px (desktop) and
   47px (mobile), five lines each. Titles are long by policy (full official name and
   full grade wording), so the product page uses its own scale. */
.cgr-product-summary .wp-block-post-title {
	font-size: clamp(1.625rem, 1.1rem + 1.9vw, 2.625rem);
	line-height: 1.16;
	margin-block: 0 var(--wp--preset--spacing--sm);
	text-wrap: balance;
}

.cgr-product-details h2,
.cgr-product-specs h2 {
	font-size: clamp(1.375rem, 1.1rem + 0.9vw, 1.875rem);
	line-height: 1.2;
}

.cgr-related-products > h2 {
	font-size: clamp(1.5rem, 1.2rem + 1vw, 2.125rem);
}

/* The classic gallery draws its own frame inside the image well: keep one frame. */
.cgr-product-summary .is-style-cgr-image-well .woocommerce-product-gallery {
	background: transparent;
	border: 0;
	box-shadow: none;
	float: none;
	inline-size: 100%;
	margin: 0;
	padding: 0;
}

.cgr-product-summary .woocommerce-product-gallery__image img {
	block-size: auto;
	inline-size: 100%;
	max-block-size: 34rem;
	object-fit: contain;
}

/* 36px measured (twice: the first rule lost to WooCommerce's
   `.woocommerce div.product div.images …` selector). Match its specificity, and move the
   magnifier glyph, which WooCommerce positions with fixed offsets for a 36px box. */
.woocommerce div.product div.images .woocommerce-product-gallery__trigger,
.cgr-product-summary .woocommerce-product-gallery .woocommerce-product-gallery__trigger {
	block-size: 44px;
	inline-size: 44px;
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger::before {
	inset-block-start: 13px;
	inset-inline-start: 13px;
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger::after {
	inset-block-start: 23px;
	inset-inline-start: 26px;
}

/* --------------------------------------------------------------------------
	Inquiry form and notices (markup from CGR Commerce Core, class-inquiry.php)
	-------------------------------------------------------------------------- */
.cgr-inquiry {
	margin-block: var(--wp--preset--spacing--lg);
	max-inline-size: 40rem;
	scroll-margin-block-start: 7rem;
}

.cgr-form .cgr-field {
	margin-block: 0 var(--wp--preset--spacing--md);
}

.cgr-form label {
	color: var(--wp--preset--color--dark-text);
	display: block;
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
	margin-block-end: var(--wp--preset--spacing--2-xs);
}

.cgr-form input[type="text"],
.cgr-form input[type="email"],
.cgr-form input[type="tel"],
.cgr-form select,
.cgr-form textarea {
	background: var(--wp--preset--color--soft-white);
	border: 1px solid rgb(122 79 27 / 0.45);
	border-radius: 4px;
	box-sizing: border-box;
	color: var(--wp--preset--color--dark-text);
	font: inherit;
	/* 16px minimum stops iOS zooming the page when a field takes focus. */
	font-size: max(1rem, 16px);
	inline-size: 100%;
	min-block-size: 48px;
	padding: 0.75rem 0.875rem;
}

.cgr-form textarea {
	min-block-size: 9rem;
	resize: vertical;
}

.cgr-form :is(input, select, textarea):focus-visible {
	outline: 3px solid var(--wp--preset--color--core-gold);
	outline-offset: 2px;
}

.cgr-form [aria-invalid="true"] {
	border-color: #9b1c1c;
	border-width: 2px;
}

.cgr-field__error {
	color: #9b1c1c;
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
	margin-block: var(--wp--preset--spacing--2-xs) 0;
}

.cgr-field--check {
	align-items: flex-start;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.cgr-field--check input[type="checkbox"] {
	accent-color: var(--wp--preset--color--deep-gold);
	block-size: 24px;
	flex: 0 0 24px;
	inline-size: 24px;
	margin: 0.125rem 0 0;
}

.cgr-field--check label {
	flex: 1 1 14rem;
	font-weight: 400;
	margin: 0;
}

.cgr-field--check .cgr-field__error {
	flex-basis: 100%;
}

/* Honeypot: present for robots, removed from layout and from assistive technology. */
.cgr-field--hp {
	block-size: 1px;
	inset-inline-start: -9999px;
	overflow: hidden;
	position: absolute;
}

.cgr-field__hint,
.cgr-inquiry__sku {
	color: var(--wp--preset--color--muted-dark);
	font-size: var(--wp--preset--font-size--sm);
}

.cgr-inquiry__product {
	background: rgb(192 136 40 / 0.1);
	border-inline-start: 3px solid var(--wp--preset--color--core-gold);
	color: var(--wp--preset--color--dark-text);
	padding: var(--wp--preset--spacing--sm) var(--wp--preset--spacing--md);
}

.cgr-form .wp-block-button__link {
	cursor: pointer;
	min-block-size: 48px;
}

.cgr-notice {
	border-inline-start: 4px solid;
	margin-block-end: var(--wp--preset--spacing--md);
	padding: var(--wp--preset--spacing--sm) var(--wp--preset--spacing--md);
}

.cgr-notice > :first-child { margin-block-start: 0; }
.cgr-notice > :last-child { margin-block-end: 0; }

.cgr-notice--success {
	background: rgb(30 110 60 / 0.08);
	border-color: #1e6e3c;
	color: var(--wp--preset--color--dark-text);
}

.cgr-notice--success h2 {
	font-size: var(--wp--preset--font-size--lg);
}

.cgr-notice--error {
	background: rgb(155 28 28 / 0.07);
	border-color: #9b1c1c;
	color: var(--wp--preset--color--dark-text);
}

@media (max-width: 781px) {
	.cgr-form .wp-block-button,
	.cgr-form .wp-block-button__link {
		inline-size: 100%;
	}
}

/* --------------------------------------------------------------------------
	Touch targets measured under 40px on 2026-09-18 (tools/tests/render-audit.mjs)
	-------------------------------------------------------------------------- */
/* Shop pagination numbers measured 8x20. */
.wp-block-query-pagination .page-numbers,
.wp-block-query-pagination-next,
.wp-block-query-pagination-previous {
	align-items: center;
	display: inline-flex;
	justify-content: center;
	min-block-size: 44px;
	min-inline-size: 44px;
}

.wp-block-query-pagination-numbers {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
	justify-content: center;
}

/* Accordion rows measured 24px tall. */
.wp-block-details > summary {
	cursor: pointer;
	min-block-size: 48px;
	padding-block: 0.75rem;
}

.wp-block-details > summary:focus-visible {
	outline: 3px solid var(--wp--preset--color--core-gold);
	outline-offset: 2px;
}

.wp-block-post-content .wp-block-details {
	border-block-end: 1px solid rgb(122 79 27 / 0.22);
}

.wp-block-post-content .wp-block-details > summary {
	font-weight: 600;
}

/* The root declares color-scheme: dark for the branded surfaces. Light sections must opt
   back in to the light scheme, or native controls (an unchecked checkbox, select arrows,
   date pickers) are drawn for a dark page on an ivory background. */
.is-style-cgr-light-section,
.cgr-light-section {
	color-scheme: light;
}

.cgr-hero-contact a {
	align-items: center;
	color: var(--wp--preset--color--warm-highlight-gold);
	display: inline-flex;
	font-weight: 600;
	min-block-size: 44px;
}

/* Cart / checkout tax-and-wire note: informative, not an alert. */
.cgr-order-note {
	border-inline-start: 3px solid var(--wp--preset--color--core-gold);
	color: var(--wp--preset--color--dark-text);
	margin-block: var(--wp--preset--spacing--md);
	padding: var(--wp--preset--spacing--xs) var(--wp--preset--spacing--md);
}


/* --------------------------------------------------------------------------
	Checkout legibility (measured defect, 2026-09-18)
	WooCommerce 11.1 ships `.wc-block-components-form .wc-block-components-checkout-step
	{ background: none; … }`, which out-ranks the single-class card rule above. The dark
	card, its border and its padding disappeared while the light text colour stayed, so
	the step titles, field labels, shipping option and the "Bank Wire" payment label were
	ivory on ivory — contrast 1.03:1. Restore the approved dark card at matching
	specificity, and colour the labels for the surface each one actually sits on.
	-------------------------------------------------------------------------- */
.wc-block-components-form .wc-block-components-checkout-step {
	background: var(--wp--preset--color--charcoal);
	border: 1px solid var(--wp--preset--color--elevated-charcoal);
	border-radius: var(--wp--custom--radius--medium, 8px);
	color: var(--wp--preset--color--primary-light-text);
	margin-block-end: var(--wp--preset--spacing--md);
	padding: var(--wp--preset--spacing--md);
}

/* The card draws its own frame: drop WooCommerce's step connector line and offsets. */
.wc-block-components-form .wc-block-components-checkout-step::after {
	content: none;
}

.wc-block-components-form .wc-block-components-checkout-step__container,
.wc-block-components-form .wc-block-components-checkout-step__heading {
	padding-inline: 0;
}

/* Fields are white; their floating labels and values sit INSIDE the field. */
.wc-block-components-form :is(.wc-block-components-text-input, .wc-block-components-textarea) :is(input, textarea),
.wc-block-components-form .wc-blocks-components-select__select {
	background: #fff;
	color: var(--wp--preset--color--dark-text);
	color-scheme: light;
}

.wc-block-components-form .wc-block-components-text-input label,
.wc-block-components-form .wc-blocks-components-select__label,
.wc-block-components-form .wc-block-components-combobox label {
	color: var(--wp--preset--color--muted-dark);
}

.wc-block-components-form .wc-block-components-validation-error {
	color: #ffb4a8;
}

/* Shipping and payment choices sit on the card. Scoped to INSIDE a step card: the terms
   line below the steps also uses the checkbox-label class but sits on the ivory page, and
   an unscoped rule turned it ivory-on-ivory (caught by re-measuring after the first fix). */
.wc-block-components-form .wc-block-components-checkout-step :is(
	.wc-block-components-radio-control__option,
	.wc-block-components-radio-control__label,
	.wc-block-components-radio-control__secondary-label,
	.wc-block-components-radio-control__description,
	.wc-block-components-checkbox__label,
	.wc-block-components-address-card,
	.wc-block-components-radio-control-accordion-content
) {
	color: var(--wp--preset--color--primary-light-text);
}

.wc-block-components-form > :not(.wc-block-components-checkout-step) .wc-block-components-checkbox__label,
.wc-block-checkout__terms,
.wc-block-checkout__terms .wc-block-components-checkbox__label {
	color: var(--wp--preset--color--dark-text);
}

/* Prices inside the dark order summary: the light-section rule gave deep gold on
   charcoal, measured 2.57:1. */
:is(.wc-block-components-order-summary, .wc-block-components-totals-wrapper, .wp-block-woocommerce-checkout-order-summary-block, .wp-block-woocommerce-cart-order-summary-block) :is(.wc-block-components-product-price, .wc-block-components-product-price__value, .wc-block-formatted-money-amount) {
	color: var(--wp--preset--color--warm-highlight-gold);
}

.wc-block-components-form .wc-block-components-radio-control--highlight-checked,
.wc-block-components-form .wc-block-components-radio-control-accordion-option,
.wc-block-components-form .wc-block-components-address-card {
	background: transparent;
	border-color: var(--wp--preset--color--elevated-charcoal);
}

.wc-block-components-form .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-components-form .wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted {
	box-shadow: inset 0 0 0 1.5px var(--wp--preset--color--core-gold);
}

/* More touch targets measured under 40px (2026-09-18): the My Account sign-in form's
   "Show password" button (22px) and remember-me row (31px), and search-result links (24px). */
.woocommerce form .show-password-input,
.woocommerce-page form .show-password-input {
	align-items: center;
	block-size: 44px;
	display: inline-flex;
	inline-size: 44px;
	inset-block-start: 50%;
	inset-inline-end: 2px;
	justify-content: center;
	transform: translateY(-50%);
}

.woocommerce form .woocommerce-form__label-for-checkbox,
.woocommerce form .woocommerce-form-login__rememberme {
	align-items: center;
	display: inline-flex;
	gap: 0.5rem;
	min-block-size: 44px;
}

.wp-block-post-excerpt__more-link,
.wp-block-read-more {
	align-items: center;
	display: inline-flex;
	min-block-size: 44px;
}

/* --------------------------------------------------------------------------
	Insights: archive grid, article, related list
	-------------------------------------------------------------------------- */
.cgr-insights-intro {
	margin-block-end: var(--wp--preset--spacing--lg);
}

.cgr-insights-topics {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	list-style: none;
	margin-block: var(--wp--preset--spacing--md);
	padding: 0;
}

.cgr-insights-topics li a {
	align-items: center;
	border: 1px solid rgb(122 79 27 / 0.4);
	border-radius: 999px;
	color: var(--wp--preset--color--dark-text);
	display: inline-flex;
	font-size: var(--wp--preset--font-size--sm);
	min-block-size: 44px;
	padding: 0 1rem;
	text-decoration: none;
}

.cgr-insights-topics li a:hover,
.cgr-insights-topics li a:focus-visible {
	border-color: var(--wp--preset--color--deep-gold);
	color: var(--wp--preset--color--deep-gold);
}

.cgr-insights .wp-block-post-template.is-layout-grid,
.cgr-related-posts__list {
	display: grid;
	gap: var(--wp--preset--spacing--md);
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr));
	list-style: none;
	padding: 0;
}

.cgr-insight-card .wp-block-post-title,
.cgr-insight-card h3 {
	font-size: clamp(1.25rem, 1.05rem + 0.7vw, 1.5rem);
	line-height: 1.25;
	margin-block: 0.5rem;
}

.cgr-insight-card .wp-block-post-title a,
.cgr-insight-card h3 a {
	color: var(--wp--preset--color--dark-text);
	text-decoration: none;
}

.cgr-insight-card .wp-block-post-title a:hover,
.cgr-insight-card h3 a:hover {
	color: var(--wp--preset--color--deep-gold);
	text-decoration: underline;
}

.cgr-insight-card .wp-block-post-featured-image img {
	object-fit: contain;
}

.cgr-article .wp-block-post-title {
	font-size: clamp(2rem, 1.3rem + 2.6vw, 3.25rem);
	line-height: 1.12;
	text-wrap: balance;
}

.cgr-article .wp-block-post-featured-image {
	max-inline-size: 44rem;
}

.cgr-article-back a {
	align-items: center;
	display: inline-flex;
	min-block-size: 44px;
}

.cgr-article-disclosure {
	border-block-start: 1px solid rgb(122 79 27 / 0.22);
	margin-block-start: var(--wp--preset--spacing--lg);
	padding-block-start: var(--wp--preset--spacing--md);
}

.cgr-insights-cta,
.cgr-related-posts {
	margin-block-start: var(--wp--preset--spacing--xl);
}


/* Insights touch targets measured under 40px: card title links (21px) and the category
   label link (16px). */
.cgr-insight-card .wp-block-post-title a,
.cgr-insight-card h3 a {
	display: inline-block;
	padding-block: 0.6rem;
}

.cgr-insights .wp-block-post-terms a,
.cgr-article .wp-block-post-terms a,
.cgr-post-meta .wp-block-post-terms a {
	align-items: center;
	display: inline-flex;
	min-block-size: 44px;
	min-inline-size: 44px;
}

/* --------------------------------------------------------------------------
	Spot-price bar (CGR Commerce Core, class-spot-prices.php). Hidden, and absent from the
	page entirely, until a price provider is attached. Slim, static, no ticker motion.
	Prices only (owner, 2026-10-02): the sentence that describes them is in the footer.
	-------------------------------------------------------------------------- */
.cgr-spot {
	background: var(--wp--preset--color--cgr-black);
	border-block-end: 1px solid var(--wp--preset--color--elevated-charcoal);
	color: var(--wp--preset--color--primary-light-text);
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1.5;
	padding: 0.3125rem var(--wp--preset--spacing--md);
}

.cgr-spot[hidden] {
	display: none;
}

.cgr-spot__list {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 1.25rem;
	justify-content: center;
	list-style: none;
	margin: 0;
	padding: 0;
}

.cgr-spot__list li {
	color: var(--wp--preset--color--warm-highlight-gold);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

@media (max-width: 600px) {
	.cgr-spot__list {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		justify-items: center;
	}
}

/* --------------------------------------------------------------------------
	WooCommerce notices (measured defect, 2026-09-18)
	Notice banners have light tinted backgrounds (green success, red error, blue info) but
	inherited the theme's light text: "added to your cart" measured 1.08:1. The same banner
	carries CHECKOUT ERRORS, so a customer could not read why an order was refused.
	-------------------------------------------------------------------------- */
.wc-block-components-notice-banner,
.wc-block-components-notice-banner__content,
.wc-block-components-notice-banner__content :where(p, li, span, strong),
.woocommerce-message,
.woocommerce-error,
.woocommerce-error li,
.woocommerce-info,
.woocommerce-notice {
	color: var(--wp--preset--color--dark-text);
}

.wc-block-components-notice-banner a:not(.wc-block-components-button),
.woocommerce-message a:not(.button),
.woocommerce-error a:not(.button),
.woocommerce-info a:not(.button) {
	color: var(--wp--preset--color--dark-text);
	text-decoration: underline;
}

/* Cart touch targets measured on a 390px screen: quantity buttons 30px wide, remove link 24px. */
.wc-block-components-quantity-selector {
	inline-size: auto;
	min-inline-size: 8.75rem;
}

.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
	min-block-size: 44px;
	min-inline-size: 44px;
}

.wc-block-cart-item__remove-link {
	align-items: center;
	display: inline-flex;
	min-block-size: 44px;
	min-inline-size: 44px;
}

/* Checkbox rows (billing same as shipping, order note, terms): 20px tall as shipped. */
.wc-block-components-checkbox label {
	align-items: center;
	min-block-size: 44px;
}


/* The checkout's standalone "Log in" prompt measured 35x18. */
.wc-block-checkout__login-prompt {
	align-items: center;
	display: inline-flex;
	justify-content: flex-end;
	min-block-size: 44px;
	min-inline-size: 44px;
}

/* --------------------------------------------------------------------------
	Catalog cards: image-led and compact (owner review, 2026-09-30)

	Measured before (tools/tests/catalog-card-audit.mjs): at 390px the product image
	box was 87px in a 171px card — 8% of the card's area — because the card, the image
	well and the image each added their own padding and the well had a 12rem minimum
	height. Now the well is a square the full width of the card and the image fills it.

	Every approved product image is a square canvas with the product centred and at
	most 90% of the canvas in either direction (88% by the asset pipeline's rule), so
	drawing the image at 108% only trims transparent margin: the product is never
	cropped. `object-fit: contain` is forced because the block prints `cover` inline.
	-------------------------------------------------------------------------- */
.cgr-product-grid .wc-block-product-template .wc-block-product > .is-style-cgr-card {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: var(--wp--preset--spacing--xs);
	padding: var(--wp--preset--spacing--xs) var(--wp--preset--spacing--xs) var(--wp--preset--spacing--sm);
}

/* The constrained layout centres children with auto margins, which would stop a flex child
   stretching, and spaces them by the global block gap. */
.cgr-product-grid .wc-block-product-template .wc-block-product > .is-style-cgr-card > * {
	margin-block: 0;
	margin-inline: 0 !important;
	max-width: none;
}

.cgr-product-grid .wc-block-product-template .wc-block-components-product-image {
	aspect-ratio: 1;
	display: block;
	min-height: 0;
	overflow: hidden;
	padding: 0;
	width: 100%;
}

.cgr-product-grid .wc-block-product-template .wc-block-components-product-image a {
	display: block;
}

.cgr-product-grid .wc-block-product-template .wc-block-components-product-image img {
	aspect-ratio: 1;
	display: block;
	height: auto;
	margin: -4%;
	max-height: none;
	max-width: none;
	object-fit: contain !important;
	padding: 0;
	width: 108%;
}

.cgr-product-grid .wc-block-product-template .wp-block-post-title {
	font-size: clamp(0.9375rem, 0.86rem + 0.3vw, 1.125rem);
	line-height: 1.35;
	padding-inline: var(--wp--preset--spacing--2-xs);
}

/* On touch widths the name is a tap target: a one- or two-line name measured 39px. */
@media (max-width: 1039px) {
	.cgr-product-grid .wc-block-product-template .wp-block-post-title a {
		display: block;
		min-block-size: 2.5rem;
	}
}

.cgr-product-grid .wc-block-product-template .wc-block-components-product-price,
.cgr-product-grid .wc-block-product-template .wc-block-components-product-stock-indicator {
	line-height: 1.35;
	padding-inline: var(--wp--preset--spacing--2-xs);
}

.cgr-product-grid .wc-block-product-template .cgr-quote-price {
	display: block;
	font-size: var(--wp--preset--font-size--sm);
	text-wrap: balance;
}

/* The CTA sits on the bottom edge of the card, so CTAs line up across a row whatever the
   length of the product names above them. */
.cgr-product-grid .wc-block-product-template .wc-block-components-product-button {
	margin-block-start: auto !important;
	padding-block-start: var(--wp--preset--spacing--2-xs);
}

.cgr-product-grid .wc-block-product-template .wc-block-components-product-button .wp-block-button__link {
	min-height: 44px;
}

@media (max-width: 599px) {
	.cgr-product-grid .wc-block-product-template .cgr-quote-price {
		font-size: 0.8125rem;
	}

	.cgr-product-grid .wc-block-product-template .wc-block-components-product-button .wp-block-button__link {
		justify-content: center;
		width: 100%;
	}
}

@media (min-width: 600px) {
	.cgr-product-grid .wc-block-product-template .wc-block-product > .is-style-cgr-card {
		gap: var(--wp--preset--spacing--sm);
		padding: var(--wp--preset--spacing--sm) var(--wp--preset--spacing--sm) var(--wp--preset--spacing--md);
	}
}

/* Shop, category and product-search grids (the `cgr-catalog-grid` class on their collection):
   two columns on phones (WooCommerce's responsive rule), two from 600px, three from 768px and
   four from 1040px. Thirty products a page fill whole rows at two and three columns. */
@media (min-width: 768px) {
	.cgr-product-grid.cgr-catalog-grid.wp-block-woocommerce-product-collection .wc-block-product-template {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 1040px) {
	.cgr-product-grid.cgr-catalog-grid.wp-block-woocommerce-product-collection .wc-block-product-template {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* The product page keeps the larger quote line beside its title. */
.cgr-product-summary .cgr-quote-price {
	font-size: var(--wp--preset--font-size--md);
}
