/* Canonical shell ownership: the shared chrome controls its own canvas and utilities. */
.fcr-canonical-shell {
	min-height: 100vh;
	background-color: var(--fc-bg);
	color: var(--fc-ink);
}

.fcr-canonical-shell .fcr-site-main {
	background-color: var(--fc-bg);
	color: var(--fc-ink);
}

html:has(.fcr-canonical-shell),
body:has(.fcr-canonical-shell) {
	background-color: var(--fc-bg);
	color: var(--fc-ink);
}

.fcr-canonical-shell .fc-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}


/* Canonical footer component: explicit token color prevents parent-theme generic anchor inheritance. */
.fcr-canonical-shell .fc-footer a {
	color: var(--fc-ink);
	text-decoration: none;
}

.fcr-canonical-shell .fc-footer a:hover,
.fcr-canonical-shell .fc-footer a:focus {
	color: var(--fc-muted);
}

/* === FCR Spacing System — single source of truth (2026-07-15) ===
   One token layer + one shared .fcr-content wrapper replace the divergent
   per-page wrappers. All spacing is an 8pt-grid multiple. */
.fcr-canonical-shell {
	--fc-col-max: 1180px;       /* content column, centered */
	--fc-text-col: 720px;       /* ~66-CPL body reading measure */
	--fc-gutter: 130px;         /* desktop edge gutter (1180 col at 1440) */
	--fc-space-1: 8px;  --fc-space-2: 16px; --fc-space-3: 24px; --fc-space-4: 32px;
	--fc-space-5: 40px; --fc-space-6: 48px; --fc-space-8: 64px; --fc-space-10: 80px; --fc-space-12: 96px;
	--fc-header-gap: 96px;     /* header -> first content block */
	--fc-footer-gap: 200px;     /* last content block -> footer (min 200px breathing room) */
	--fc-vr: clamp(24px, 3.5vw, 48px);  /* TEMPLATE TAG: standard responsive vertical rhythm between text/blocks/sections */
}

/* Shared content wrapper — used by every canonical page, case, and shop route. */
.fcr-canonical-shell .fcr-content {
	width: 100%;
	max-width: var(--fc-col-max);
	margin: 0 auto;
	padding: 0 var(--fc-gutter);
	box-sizing: border-box;
}

/* Body prose capped at the optimal reading measure; hero/display may use full column. */
.fcr-canonical-shell .fcr-content > p,
.fcr-canonical-shell .fcr-content > .fcr-prose,
.fcr-canonical-shell .fcr-content p.fcr-prose {
	max-width: var(--fc-text-col);
}

.fcr-canonical-shell .fcr-site-main {
	padding-top: var(--fc-header-gap);
	padding-bottom: var(--fc-footer-gap);
}

@media (max-width: 860px) {
	.fcr-canonical-shell { --fc-gutter: 24px; }
}
