/* gms_icons.css + fonts.css are linked directly in <head> (layout.php) to avoid a
   render-blocking @import waterfall - do NOT re-add @import here. */

:root {
	/* ============================================================
	   GMS BRAND PALETTE - single source of truth (logo + site)
	   ============================================================ */
	/* logo greens - mane gradient (top = brightest brand green) */
	--gms-body: #c8e1c3;
	--gms-mane-top: #0c8642;
	--gms-mane-1: #0f733a;
	--gms-mane-2: #125f31;
	--gms-mane-3: #144c24;
	--gms-mane-4: #10371a;
	--gms-mane-shadow: #0b130b;
	/* site brand greens */
	--gms-green-dark: #00370d;
	--gms-green: #008521;
	--gms-green-vivid: #00aa33;
	/* site sage + mint greens */
	--gms-sage-1: #aed2a7;
	--gms-sage-2: #c7e0c2;
	--gms-sage-3: #c9e4c8;
	--gms-sage-4: #c8dfc2;
	--gms-sage-5: #9dc49f;
	--gms-mint-1: #e3f0df;
	--gms-mint-2: #e4f1e3;
	/* neutrals */
	--gms-white: #ffffff;
	--gms-black: #000000;
	--gms-green-gray: #4d6453;
	--gms-border: #b8cdbb;
	/* utility accents (pop) */
	--gms-gold: #ffd801;
	--gms-teal: #0099aa;
	--gms-error: #bb0000;
	--gms-error-dark: #990000;
	--gms-error-bg: #ffdddd;
	/* rgb triplets for rgba() shadows + overlays */
	--gms-shadow-rgb: 0, 55, 13;
	--gms-white-rgb: 255, 255, 255;
	--gms-black-rgb: 0, 0, 0;
	--gms-body-rgb: 200, 225, 195;
	--gms-mane-top-rgb: 12, 134, 66;
	--gms-gold-rgb: 255, 216, 1;
	--theme-color-bg: var(--gms-body);
	--theme-color-surface: var(--gms-white);
	--theme-color-text: var(--gms-mane-4);
	--theme-color-muted: var(--gms-green-gray);
	--theme-color-accent: var(--gms-green-dark);
	--theme-color-border: var(--gms-border);
	--theme-page-section-bg: var(--gms-white);
	--theme-page-section-text: var(--gms-mane-4);
	--theme-page-section-border: var(--gms-border);
	--theme-page-section-radius: 0px;
	--theme-page-section-padding: 1.25rem 1.4rem;
	--theme-page-section-shadow: none;
	--theme-content-card-bg: var(--gms-white);
	--theme-content-card-text: var(--gms-mane-4);
	--theme-content-card-border: var(--gms-border);
	--theme-content-card-radius: 18px;
	--theme-content-card-padding: 1rem 1.05rem 1.1rem;
	--theme-content-card-shadow: 0 14px 28px rgba(var(--gms-shadow-rgb), 0.08);
	--theme-content-card-hover-bg: var(--gms-white);
	--theme-content-card-hover-text: var(--gms-mane-4);
	--theme-content-card-hover-border: var(--gms-border);
	--theme-content-card-hover-radius: 18px;
	--theme-content-card-hover-padding: 1rem 1.05rem 1.1rem;
	--theme-content-card-hover-shadow: 0 18px 34px rgba(var(--gms-shadow-rgb), 0.12);
	--theme-content-card-hover-margin: 0 0 1rem 0;
	--theme-content-card-hover-text-align: left;
	--theme-section-title-color: var(--gms-mane-4);
	--theme-section-title-size: 1.2rem;
	--theme-section-title-margin-bottom: 0.75rem;
	--theme-body-copy-color: var(--gms-mane-4);
	--theme-body-copy-size: 1rem;
	--theme-body-copy-line-height: 1.7;
	--theme-meta-pill-bg: var(--gms-sage-3);
	--theme-meta-pill-text: var(--gms-green-dark);
	--theme-meta-pill-border: var(--gms-border);
	--theme-meta-pill-radius: 999px;
	--theme-meta-pill-padding-y: 0.35rem;
	--theme-meta-pill-padding-x: 0.8rem;
	--theme-action-button-bg: var(--gms-green-dark);
	--theme-action-button-text: var(--gms-mint-2);
	--theme-action-button-border: var(--gms-green-dark);
	--theme-action-button-radius: 999px;
	--theme-action-button-padding-y: 20px;
	--theme-action-button-padding-x: 20px;
	--theme-action-button-shadow: none;
	--theme-action-button-hover-bg: var(--gms-green-dark);
	--theme-action-button-hover-text: var(--gms-mint-2);
	--theme-action-button-hover-border: var(--gms-green-dark);
	--theme-action-button-hover-radius: 999px;
	--theme-action-button-hover-padding-y: 0.6rem;
	--theme-action-button-hover-padding-x: 1rem;
	--theme-action-button-hover-shadow: 0 0.5rem 1.1rem rgba(var(--gms-shadow-rgb), 0.14);
	--theme-action-button-hover-margin: 0;
	--theme-action-button-hover-text-align: left;
	--theme-action-button-secondary-bg: var(--gms-white);
	--theme-action-button-secondary-text: var(--gms-mane-4);
	--theme-action-button-secondary-border: var(--gms-border);
	--theme-action-button-secondary-radius: 999px;
	--theme-action-button-secondary-padding-y: 0.6rem;
	--theme-action-button-secondary-padding-x: 1rem;
	--theme-action-button-secondary-shadow: none;
	--theme-action-button-secondary-margin: 0;
	--theme-action-button-secondary-text-align: left;
	--theme-action-button-secondary-hover-bg: var(--gms-mint-1);
	--theme-action-button-secondary-hover-text: var(--gms-mane-4);
	--theme-action-button-secondary-hover-border: var(--gms-border);
	--theme-action-button-secondary-hover-radius: 999px;
	--theme-action-button-secondary-hover-padding-y: 0.6rem;
	--theme-action-button-secondary-hover-padding-x: 1rem;
	--theme-action-button-secondary-hover-shadow: 0 0.5rem 1.1rem rgba(var(--gms-shadow-rgb), 0.07);
	--theme-action-button-secondary-hover-margin: 0;
	--theme-action-button-secondary-hover-text-align: left;
	--theme-action-button-tertiary-bg: transparent;
	--theme-action-button-tertiary-text: var(--gms-green-dark);
	--theme-action-button-tertiary-border: transparent;
	--theme-action-button-tertiary-radius: 999px;
	--theme-action-button-tertiary-padding-y: 0.6rem;
	--theme-action-button-tertiary-padding-x: 1rem;
	--theme-action-button-tertiary-shadow: none;
	--theme-action-button-tertiary-margin: 0;
	--theme-action-button-tertiary-text-align: left;
	--theme-action-button-tertiary-hover-bg: var(--gms-sage-3);
	--theme-action-button-tertiary-hover-text: var(--gms-green-dark);
	--theme-action-button-tertiary-hover-border: transparent;
	--theme-action-button-tertiary-hover-radius: 999px;
	--theme-action-button-tertiary-hover-padding-y: 0.6rem;
	--theme-action-button-tertiary-hover-padding-x: 1rem;
	--theme-action-button-tertiary-hover-shadow: none;
	--theme-action-button-tertiary-hover-margin: 0;
	--theme-action-button-tertiary-hover-text-align: left;
}

body {
	margin: 0;
	font-family: var(--theme-body-font-family, 'Poppins', Arial, sans-serif);
	font-size: var(--theme-body-font-size, 16px);
	line-height: var(--theme-body-line-height, 1.7);
	background: var(--theme-body-bg, var(--theme-color-bg));
	color: var(--theme-body-text, var(--theme-color-text));
	text-align: var(--theme-body-text-align, left);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: 'Bodoni 16', Georgia, serif;
	font-weight: 400;
}

html.is-loading-overlay {
	overflow: hidden;
}

a {
	color: var(--theme-link-text, var(--theme-color-link, var(--theme-color-accent)));
	font-family: var(--theme-link-font-family, inherit);
	font-size: var(--theme-link-font-size, inherit);
	font-weight: var(--theme-link-font-weight, inherit);
	font-style: var(--theme-link-font-style, normal);
	line-height: var(--theme-link-line-height, inherit);
	letter-spacing: var(--theme-link-letter-spacing, inherit);
	text-transform: var(--theme-link-text-transform, none);
	text-decoration: var(--theme-link-text-decoration, underline);
	background: var(--theme-link-bg, transparent);
	border: var(--theme-link-border-width, 1px) var(--theme-link-border-style, solid) var(--theme-link-border, transparent);
	border-radius: var(--theme-link-radius, 0);
	padding: var(--theme-link-padding-y, 0) var(--theme-link-padding-x, 0);
	box-shadow: var(--theme-link-shadow, none);
	margin: var(--theme-link-margin, 0);
	text-align: var(--theme-link-text-align, left);
}

a:hover,
a:focus-visible {
	color: var(--theme-link-hover-text, var(--theme-link-text, var(--theme-color-link, var(--theme-color-accent))));
	text-decoration: var(--theme-link-hover-text-decoration, none);
	background: var(--theme-link-hover-bg, transparent);
	border-color: var(--theme-link-hover-border, transparent);
	border-width: var(--theme-link-hover-border-width, var(--theme-link-border-width, 1px));
	border-style: var(--theme-link-hover-border-style, var(--theme-link-border-style, solid));
	border-radius: var(--theme-link-hover-radius, var(--theme-link-radius, 0));
	padding: var(--theme-link-hover-padding-y, var(--theme-link-padding-y, 0)) var(--theme-link-hover-padding-x, var(--theme-link-padding-x, 0));
	box-shadow: var(--theme-link-hover-shadow, none);
	font-family: var(--theme-link-hover-font-family, var(--theme-link-font-family, inherit));
	font-size: var(--theme-link-hover-font-size, var(--theme-link-font-size, inherit));
	font-weight: var(--theme-link-hover-font-weight, var(--theme-link-font-weight, inherit));
	font-style: var(--theme-link-hover-font-style, var(--theme-link-font-style, normal));
	line-height: var(--theme-link-hover-line-height, var(--theme-link-line-height, inherit));
	letter-spacing: var(--theme-link-hover-letter-spacing, var(--theme-link-letter-spacing, inherit));
	text-transform: var(--theme-link-hover-text-transform, var(--theme-link-text-transform, none));
	margin: var(--theme-link-hover-margin, var(--theme-link-margin, 0));
	text-align: var(--theme-link-hover-text-align, var(--theme-link-text-align, left));
}

blockquote {
	padding: 0 30px 0 0;
}

blockquote:before {
	content: url('/images/quote.png');
	position: absolute;
	left: -25px;
	padding: 0 25px 0 0;
}

blockquote:after {
	content: url('/images/quote2.png');
  position: absolute;
  right: 0;
}

input:not([type=checkbox]), textarea {
  width: 100%;
  padding: 15px 20px;
  font-size: 16px;
  box-sizing: border-box;
}

/*
input[type="checkbox"] {
  width: 30px;
}
*/
.loading-fixed {
	position: fixed;
	top: 50px;
	left: calc(50% - 44px);
	width: 88px;
	max-width: 88px;
	z-index: 2147483647;
}

.loading-bg-fixed {
	position: fixed;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	height: 100%;
	filter: alpha(opacity=75);
	opacity: 0.75;
	background: var(--white);
	z-index: 2147483646;
}

.shell {
	margin: 0;
	padding: 0;
	/*
	max-width: 1100px;
	margin: 0 auto;
	padding: 2rem 1.25rem 4rem;
	*/
}

.shell-admin {
	max-width: none;
	padding: 0 1.25rem 3rem;
}

/* .shell-blog deliberately has NO max-width - do not put one back.
   It used to be `max-width: 1600px` with no `margin: 0 auto`, a leftover from the
   old blog. Because the header and footer both live INSIDE .shell, that capped and
   left-pinned the entire blog chrome on any viewport wider than 1600px while every
   other page ran edge to edge - 320px of dead space at 1920px, 960px at 2560px.
   Invisible at 1440px and below, which is why it survived so long.
   .shell itself has had its max-width/margin commented out since the clean pass, so
   full-width IS the site-wide baseline and the blog was the only page opting out.
   The class stays on the blog templates as a hook; it just carries no geometry. */

.loading-bg-fixed {
	position: fixed;
	inset: 0;
	background: rgba(var(--gms-body-rgb), 0.72);
	z-index: 1600;
}

.loading-fixed {
	position: fixed;
	top: 2rem;
	left: calc(50% - 32px);
	width: 64px;
	max-width: 64px;
	height: 64px;
	z-index: 1601;
	display: flex;
	align-items: center;
	justify-content: center;
}

.loading-fixed::before {
	content: '';
	width: 42px;
	height: 42px;
	border-radius: 999px;
	border: 4px solid rgba(var(--gms-shadow-rgb), 0.15);
	border-top-color: var(--gms-mane-top);
	animation: gms_loading_spin 0.9s linear infinite;
}

@keyframes gms_loading_spin {
	from {
		transform: rotate(0deg);
	}

	to {
		transform: rotate(360deg);
	}
}

.site-header {
	position: relative;
	display: block;
	align-items: flex-start;
	gap: 1rem;
	background: var(--theme-header-bg, transparent);
	color: var(--theme-header-text, inherit);
	border: 1px solid var(--theme-header-border, transparent);
	border-radius: var(--theme-header-radius, 0);
	padding: var(--theme-header-padding, 0 0 1rem 0);
	box-shadow: var(--theme-header-shadow, none);
	margin: var(--theme-header-margin, 0 0 2rem 0);
	width: 100%;
	min-width: 0;
	max-width: none;
	height: var(--theme-header-height, auto);
	min-height: var(--theme-header-min-height, 0);
	max-height: var(--theme-header-max-height, none);
	text-align: var(--theme-header-text-align, left);
	box-sizing: border-box;
}

.site-header-blocks {
	display: grid;
	grid-template-columns: 1fr;
	align-items: start;
	gap: var(--header-blocks-gap, 1rem);
	margin: var(--header-blocks-margin, 0);
	padding: var(--header-blocks-padding, 0 3.25rem 0 0);
}

.site-header-blocks.site-header-blocks-count-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.site-header-blocks.site-header-blocks-count-2 {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
}

.site-header-blocks.site-header-blocks-count-2 .site-header-block {
	flex: 0 1 auto;
}

.site-header-blocks.site-header-blocks-count-2 .site-header-block-kind-branding .theme-block-canvas {
	max-width: 420px;
}

.site-header-blocks.site-header-blocks-count-2 .site-header-block-kind-contact_compact .theme-block-canvas {
	max-width: 340px;
}

.site-header-blocks.site-header-blocks-count-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.site-header-blocks.site-header-blocks-count-4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.site-header-blocks.site-header-blocks-count-5 {
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.site-header-block {
	min-width: 0;
	text-align: var(--theme-header-text-align, left);
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-self: flex-start;
}

.site-header-blocks.site-header-blocks-count-1 .site-header-block {
	justify-self: start;
}

.site-header-blocks.site-header-blocks-count-2 .site-header-block:first-child,
.site-header-blocks.site-header-blocks-count-3 .site-header-block:first-child,
.site-header-blocks.site-header-blocks-count-4 .site-header-block:first-child,
.site-header-blocks.site-header-blocks-count-5 .site-header-block:first-child {
	justify-self: start;
}

.site-header-blocks.site-header-blocks-count-2 .site-header-block:last-child,
.site-header-blocks.site-header-blocks-count-3 .site-header-block:last-child,
.site-header-blocks.site-header-blocks-count-4 .site-header-block:last-child,
.site-header-blocks.site-header-blocks-count-5 .site-header-block:last-child {
	justify-self: end;
}

.site-header-blocks.site-header-blocks-count-3 .site-header-block:nth-child(2),
.site-header-blocks.site-header-blocks-count-5 .site-header-block:nth-child(3) {
	justify-self: center;
}

.site-header-blocks.site-header-blocks-count-4 .site-header-block:nth-child(2) {
	justify-self: start;
}

.site-header-blocks.site-header-blocks-count-4 .site-header-block:nth-child(3) {
	justify-self: end;
}

.site-header-blocks.site-header-blocks-count-5 .site-header-block:nth-child(2) {
	justify-self: start;
}

.site-header-blocks.site-header-blocks-count-5 .site-header-block:nth-child(4) {
	justify-self: end;
}

.site-header-block .theme-block-canvas {
	margin-left: 0;
	margin-right: auto;
}

.site-header h1 {
	margin: 0;
	color: var(--theme-header-heading-color, var(--theme-header-text, inherit));
	background: var(--theme-header-heading-bg, transparent);
	border: 1px solid var(--theme-header-heading-border, transparent);
	font-family: var(--theme-header-heading-font-family, inherit);
	font-size: var(--theme-header-heading-font-size, clamp(2rem, 4vw, 3.5rem));
	font-weight: var(--theme-header-heading-font-weight, 400);
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	line-height: var(--theme-header-heading-line-height, 1);
	letter-spacing: var(--theme-header-heading-letter-spacing, 0);
	width: var(--theme-header-heading-width, auto);
	min-width: var(--theme-header-heading-min-width, 0);
	max-width: var(--theme-header-heading-max-width, none);
	height: var(--theme-header-heading-height, auto);
	min-height: var(--theme-header-heading-min-height, 0);
	max-height: var(--theme-header-heading-max-height, none);
	text-align: var(--theme-header-heading-text-align, var(--theme-header-text-align, left));
}

.site-logo {
	display: block;
	width: auto;
	max-height: 1em;
}

.site-tagline {
	margin: var(--theme-header-paragraph-margin, 0.35rem 0 0);
	color: var(--theme-header-paragraph-color, var(--theme-color-muted));
	background: var(--theme-header-paragraph-bg, transparent);
	border: 1px solid var(--theme-header-paragraph-border, transparent);
	font-family: var(--theme-header-paragraph-font-family, var(--theme-body-font-family));
	font-size: var(--theme-header-paragraph-font-size, 0.95rem);
	font-weight: var(--theme-header-paragraph-font-weight, 400);
	line-height: var(--theme-header-paragraph-line-height, 1.55);
	letter-spacing: var(--theme-header-paragraph-letter-spacing, 0);
	width: var(--theme-header-paragraph-width, auto);
	min-width: var(--theme-header-paragraph-min-width, 0);
	max-width: var(--theme-header-paragraph-max-width, none);
	height: var(--theme-header-paragraph-height, auto);
	min-height: var(--theme-header-paragraph-min-height, 0);
	max-height: var(--theme-header-paragraph-max-height, none);
	text-align: var(--theme-header-paragraph-text-align, var(--theme-header-text-align, left));
}

.nav-toggle {
	border: 0;
	background: transparent;
	color: var(--theme-color-text);
	cursor: pointer;
	padding: 0;
	margin: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.nav-toggle .gms {
	font-size: 1.6rem;
}

.theme-switch-button {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--theme-body-text);
	box-shadow: none;
	cursor: pointer;
	font-size: 20px;
	line-height: 1;
}

.theme-switch-button .gms {
	font-size: 20px;
	line-height: 1;
}

.contact-line {
	margin: 0 0 0.35rem;
}

.contact-line:last-child {
	margin-bottom: 0;
}

.cache-clear-link {
	display: inline-flex;
	align-items: center;
	margin-left: 0.4rem;
	color: var(--gms-mane-top);
	text-decoration: none;
}

.cache-clear-link .gms {
	font-size: 0.9rem;
}

.content-grid {
	display: grid;
	gap: 0.75rem;
}

.page-children {
	/*margin: 1.75rem 0 2rem;*/
	margin: 0;
}

.page-child-list {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.page-child-card {
	display: block;
	padding: 1rem 1.1rem;
	margin: var(--theme-content-card-margin, 0 0 1rem 0);
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.18);
	border-radius: 18px;
	background: linear-gradient(180deg, rgba(var(--gms-body-rgb), 0.92), rgba(var(--gms-white-rgb), 0.98));
	color: inherit;
	text-decoration: none;
	box-shadow: 0 14px 28px rgba(var(--gms-shadow-rgb), 0.08);
}

.page-child-card.content-nav-card:hover,
.page-child-card.content-nav-card:focus-visible {
	padding: var(--theme-content-card-hover-padding, var(--theme-content-card-padding, 1rem 1.1rem));
	margin: var(--theme-content-card-hover-margin, var(--theme-content-card-margin, 0 0 1rem 0));
	border: 1px solid var(--theme-content-card-hover-border, rgba(var(--gms-shadow-rgb), 0.24));
	border-radius: var(--theme-content-card-hover-radius, 18px);
	background: var(--theme-content-card-hover-bg, linear-gradient(180deg, rgba(var(--gms-body-rgb), 0.96), rgba(var(--gms-white-rgb), 1)));
	color: var(--theme-content-card-hover-text, inherit);
	text-decoration: none;
	box-shadow: var(--theme-content-card-hover-shadow, 0 18px 34px rgba(var(--gms-shadow-rgb), 0.12));
}

.page-child-card strong {
	display: block;
	margin-bottom: 0.4rem;
}

.page-child-card span {
	/*display: block;
	color: rgba(var(--gms-shadow-rgb), 0.78);*/
	font-size: 0.95rem;
	line-height: 1.5;
}

.page-theme-blocks {
	display: grid;
	grid-template-columns: 1fr;
	align-items: start;
	gap: var(--page-theme-blocks-gap, 1.5rem 2rem);
	margin: 0;
	padding: 0;
}

.page-theme-blocks.page-theme-blocks-count-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.page-theme-blocks.page-theme-blocks-count-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.page-theme-blocks.page-theme-blocks-count-4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.page-theme-blocks.page-theme-blocks-count-5 {
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.page-theme-block {
	background: transparent;
	padding: 0;
	width: 100%;
	max-width: 360px;
	margin: 0;
	justify-self: stretch;
	text-align: left;
}

.page-theme-blocks.page-theme-blocks-count-1 .page-theme-block {
	justify-self: center;
}

.page-theme-blocks.page-theme-blocks-count-2 .page-theme-block:first-child,
.page-theme-blocks.page-theme-blocks-count-3 .page-theme-block:first-child,
.page-theme-blocks.page-theme-blocks-count-4 .page-theme-block:first-child,
.page-theme-blocks.page-theme-blocks-count-5 .page-theme-block:first-child {
	justify-self: start;
}

.page-theme-blocks.page-theme-blocks-count-2 .page-theme-block:last-child,
.page-theme-blocks.page-theme-blocks-count-3 .page-theme-block:last-child,
.page-theme-blocks.page-theme-blocks-count-4 .page-theme-block:last-child,
.page-theme-blocks.page-theme-blocks-count-5 .page-theme-block:last-child {
	justify-self: end;
}

.page-theme-blocks.page-theme-blocks-count-3 .page-theme-block:nth-child(2),
.page-theme-blocks.page-theme-blocks-count-5 .page-theme-block:nth-child(3) {
	justify-self: center;
}

.page-theme-blocks.page-theme-blocks-count-4 .page-theme-block:nth-child(2) {
	justify-self: start;
}

.page-theme-blocks.page-theme-blocks-count-4 .page-theme-block:nth-child(3) {
	justify-self: end;
}

.page-theme-blocks.page-theme-blocks-count-5 .page-theme-block:nth-child(2) {
	justify-self: start;
}

.page-theme-blocks.page-theme-blocks-count-5 .page-theme-block:nth-child(4) {
	justify-self: end;
}

.page-theme-block .theme-block-canvas {
	margin-left: 0;
	margin-right: auto;
}

.page-theme-block-section {
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 0;
	box-shadow: none;
}

.page-theme-block-section .content-section-title {
	margin: 0 0 0.75rem;
}

.theme-default-block-canvas-page {
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.gms-list {
	margin: 0.75rem 0 1rem 1.25rem;
	padding: 0;
}

.gms-list li + li {
	margin-top: 0.45rem;
}

.gms-table {
	width: 100%;
	border-collapse: collapse;
	margin: 1rem 0 1.4rem;
}

.gms-table th,
.gms-table td {
	padding: 0.65rem 0.75rem;
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.14);
	text-align: left;
	vertical-align: top;
}

.gms-table th {
	background: rgba(var(--gms-body-rgb), 0.28);
}

.resource-table-row {
	display: grid;
	grid-template-columns: minmax(0, 1.8fr) minmax(120px, 0.9fr) minmax(80px, 0.6fr);
	gap: 0.75rem;
	align-items: center;
	padding: 0.55rem 0.75rem;
}

.resource-table-row.is-odd {
	background: rgba(var(--gms-body-rgb), 0.14);
}

.resource-table-row.is-even {
	background: rgba(var(--gms-white-rgb), 0.82);
}

.resource-table-row.is-unicode {
	background: rgba(var(--gms-white-rgb), 0.82);
}

.cell-left,
.cell-middle,
.cell-right {
	min-width: 0;
}

.cell-middle {
	font-family: "Courier New", Courier, monospace;
	font-size: 0.95rem;
}

.cell-right {
	font-size: 1.05rem;
}

.cInput {
	width: min(240px, 100%);
	margin: 0 0.5rem 0.75rem 0;
	padding: 0.6rem 0.7rem;
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.22);
	border-radius: 10px;
	background: rgba(var(--gms-white-rgb), 0.92);
}

.pwow-header {
	margin-top: 1.5rem;
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.poems-note {
	margin: 0 0 1.25rem;
	color: rgba(var(--gms-shadow-rgb), 0.72);
	font-size: 0.95rem;
}

.poem-card-grid {
	display: grid;
	gap: 1rem;
	/*grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));*/
	margin: 0 0 1.5rem;
}

.poem-card,
.wisdom-card {
	padding: 1.05rem 1.1rem 1.15rem;
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.14);
	border-radius: 20px;
	background: linear-gradient(180deg, rgba(var(--gms-body-rgb), 0.9), rgba(var(--gms-white-rgb), 0.98));
	box-shadow: 0 14px 28px rgba(var(--gms-shadow-rgb), 0.08);
}

.poem-card h2,
.wisdom-card h2 {
	margin: 0 0 0.7rem;
	font-size: 1.15rem;
}

.poem-card p,
.wisdom-list li {
	line-height: 1.7;
}

.poem-card-credit {
	margin-top: 0.85rem;
	color: rgba(var(--gms-shadow-rgb), 0.64);
	font-style: italic;
}

.wisdom-card {
	margin-top: 1.2rem;
}

.wisdom-list {
	margin: 0;
	padding-left: 1.25rem;
	list-style: disclosure-closed;
}

.wisdom-list li + li {
	margin-top: 0.8rem;
}

.wisdom-list span {
	display: block;
	margin-top: 0.2rem;
	color: rgba(var(--gms-shadow-rgb), 0.64);
	font-style: italic;
}

.resource-table-row .cell-left {
	font-family: inherit;
	font-size: 1rem;
}

.resource-table-row.is-unicode .cell-left,
.resource-table-row.is-unicode .cell-middle,
.resource-table-row.is-unicode .cell-right {
	font-family: "Courier New", Courier, monospace;
}

.site-nav-panel {
	display: none;
	position: absolute;
	top: 0;
	right: 1.25rem;
	width: min(320px, calc(100vw - 2.5rem));
	min-width: var(--site-nav-min-width, 0);
	max-height: calc(100vh - 35px);
	background: rgba(var(--gms-white-rgb), 0.98);
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.75);
	padding: 1rem 1.1rem;
	overflow-y: auto;
	z-index: 20;
	font-family: var(--site-nav-font-family, inherit);
	font-weight: var(--site-nav-font-weight, inherit);
}

.site-nav-panel.is-open {
	display: block;
}

.theme-block-canvas {
	position: relative;
	max-width: 100%;
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.75);
	border-radius: 1rem;
	box-sizing: border-box;
	overflow: hidden;
}

.theme-block-canvas [data-block-node] {
	position: absolute;
	box-sizing: border-box;
	overflow: auto;
}

.theme-site-branding-block {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	width: 100%;
	height: 100%;
	overflow: visible !important;
}

.theme-site-branding-block h1 {
	color: var(--theme-header-heading-color, var(--theme-header-text, inherit));
	background: var(--theme-header-heading-bg, transparent);
	border: 1px solid var(--theme-header-heading-border, transparent);
	font-family: var(--theme-header-heading-font-family, inherit);
	font-size: var(--theme-header-heading-font-size, clamp(2rem, 4vw, 3.5rem));
	font-weight: var(--theme-header-heading-font-weight, 400);
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 0.65rem;
	line-height: var(--theme-header-heading-line-height, 1);
	letter-spacing: var(--theme-header-heading-letter-spacing, 0);
	max-width: 100%;
	margin: 0;
	text-align: var(--theme-header-heading-text-align, var(--theme-header-text-align, left));
}

.theme-site-branding-block h1 > span {
	display: flex;
	align-items: center;
	line-height: inherit;
	transform: translateY(-0.05em);
}

.theme-site-branding-block .site-tagline {
	margin: 0.08rem 0 0;
	color: var(--theme-header-paragraph-color, var(--theme-color-muted));
	background: var(--theme-header-paragraph-bg, transparent);
	border: 1px solid var(--theme-header-paragraph-border, transparent);
	font-family: var(--theme-header-paragraph-font-family, var(--theme-body-font-family));
	font-size: var(--theme-header-paragraph-font-size, 0.95rem);
	font-weight: var(--theme-header-paragraph-font-weight, 400);
	line-height: var(--theme-header-paragraph-line-height, 1.55);
	letter-spacing: var(--theme-header-paragraph-letter-spacing, 0);
	text-align: var(--theme-header-paragraph-text-align, var(--theme-header-text-align, left));
	transform: translateY(-0.08rem);
}

.theme-site-branding-block .site-logo,
.theme-block-canvas .site-logo {
	display: block;
	flex: 0 0 auto;
	width: auto !important;
	height: auto !important;
	max-width: 100%;
	max-height: calc(var(--theme-header-heading-font-size, clamp(2rem, 4vw, 3.5rem)) * 1.35);
	object-fit: contain;
}

.site-nav-list,
.site-subnav-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-nav-item + .site-nav-item {
	margin-top: 0.75rem;
}

.site-nav-entry {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.45rem;
}

.site-nav-entry[data-site-nav-tree-entry] {
	cursor: pointer;
}

.site-nav-entry[data-site-nav-tree-entry] > a {
	pointer-events: none;
}

.site-nav-item > a,
.site-subnav-item > a,
.site-nav-entry > a {
	text-decoration: none;
	color: var(--site-nav-color, var(--gms-mane-4));
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	font-size: var(--site-nav-font-size, 1rem);
	font-weight: var(--site-nav-font-weight, inherit);
	text-transform: var(--site-nav-text-transform, none);
}

.site-nav-heading,
.site-subnav-heading {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	color: var(--site-nav-sub-color, var(--gms-green-gray));
	text-transform: var(--site-nav-text-transform, uppercase);
	letter-spacing: 0.08em;
	font-size: calc(var(--site-nav-font-size, 1rem) * 0.78);
	font-weight: var(--site-nav-font-weight, inherit);
}

.site-nav-panel-list-flat .site-subnav-item > a {
	color: var(--site-nav-flat-sub-color, var(--site-nav-sub-color, var(--gms-green-gray)));
	font-size: calc(var(--site-nav-font-size, 1rem) * 0.88);
	text-transform: var(--site-nav-flat-sub-text-transform, none);
}

.site-nav-panel-list-flat .site-subnav-heading {
	color: var(--site-nav-flat-sub-color, var(--site-nav-sub-color, var(--gms-green-gray)));
	font-size: calc(var(--site-nav-font-size, 1rem) * 0.88);
	text-transform: var(--site-nav-flat-sub-text-transform, var(--site-nav-text-transform, uppercase));
}

.site-nav-panel-list-tree .site-nav-heading,
.site-nav-panel-list-tree .site-subnav-heading,
.site-nav-panel-accordion .site-nav-heading,
.site-nav-panel-accordion .site-subnav-heading,
.site-nav-panel-slider .site-nav-heading,
.site-nav-panel-slider .site-subnav-heading {
	color: var(--site-nav-color, var(--gms-mane-4));
	text-transform: var(--site-nav-text-transform, none);
	letter-spacing: 0;
	font-size: var(--site-nav-font-size, 1rem);
}

.site-nav-icon {
	flex: 0 0 auto;
	width: 1em;
	height: 1em;
	object-fit: contain;
}

.site-nav-icon-svg svg {
	display: block;
	width: 1em;
	height: 1em;
}

.site-subnav-list {
	margin-top: 0.45rem;
	padding-left: 1rem;
}

.site-subnav-list-nested {
	margin-top: 0.3rem;
	padding-left: 0.9rem;
}

.site-subnav-item + .site-subnav-item {
	margin-top: 0.35rem;
}

.site-nav-tree-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 1.75rem;
	height: 1.75rem;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--site-nav-color, var(--gms-green-gray));
	font-weight: var(--site-nav-font-weight, inherit);
	text-transform: var(--site-nav-text-transform, none);
	cursor: pointer;
}

.site-nav-tree-toggle .gms,
.site-nav-slider-forward > .gms,
.site-nav-slider-back > .gms {
	font-size: var(--site-nav-glyph-font-size, 1em);
	transform: translateY(var(--site-nav-glyph-vertical-offset, 0));
}

.site-nav-panel-list-tree .site-subnav-list,
.site-nav-panel-accordion .site-subnav-list {
	display: none;
}

.site-nav-panel-list-tree .site-nav-item.is-open > .site-subnav-list,
.site-nav-panel-list-tree .site-subnav-item.is-open > .site-subnav-list,
.site-nav-panel-accordion .site-nav-item.is-open > .site-subnav-list,
.site-nav-panel-accordion .site-subnav-item.is-open > .site-subnav-list {
	display: grid;
}

.site-nav-slider {
	position: relative;
	overflow: hidden;
}

.site-nav-slider-panel {
	display: none;
	gap: 0.55rem;
}

.site-nav-slider-panel.is-active {
	display: grid;
}

.site-nav-slider-forward,
.site-nav-slider-back {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 0.55rem;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--site-nav-color, var(--gms-mane-4));
	font-size: var(--site-nav-font-size, 1rem);
	font-weight: var(--site-nav-font-weight, inherit);
	text-transform: var(--site-nav-text-transform, none);
	text-align: left;
	cursor: pointer;
}

.site-nav-slider-forward {
	justify-content: space-between;
}

.site-nav-slider-back {
	justify-content: flex-start;
	color: var(--site-nav-sub-color, var(--gms-green-gray));
	font-weight: var(--site-nav-font-weight, 650);
}

.site-nav-slider-label {
	min-width: 0;
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
}

.site-nav-slider-forward > .gms {
	flex: 0 0 auto;
	margin-left: auto;
}

.site-nav-slider-back-row {
	padding-bottom: 0.45rem;
	border-bottom: 1px solid rgba(var(--gms-shadow-rgb), 0.1);
}

.content-panel,
.content-block {
	background: var(--theme-page-section-bg);
	color: var(--theme-page-section-text);
	border: 1px solid var(--theme-page-section-border);
	border-radius: var(--theme-page-section-radius);
	padding: var(--theme-page-section-padding);
	box-shadow: var(--theme-page-section-shadow);
	margin: var(--theme-page-section-margin, 0 0 1.4rem 0);
	width: var(--theme-page-section-width, auto);
	min-width: var(--theme-page-section-min-width, 0);
	max-width: var(--theme-page-section-max-width, none);
	height: var(--theme-page-section-height, auto);
	min-height: var(--theme-page-section-min-height, 0);
	max-height: var(--theme-page-section-max-height, none);
	text-align: var(--theme-page-section-text-align, left);
}

.content-card {
	background: var(--theme-content-card-bg);
	color: var(--theme-content-card-text);
	border: 1px solid var(--theme-content-card-border);
	border-radius: var(--theme-content-card-radius);
	padding: var(--theme-content-card-padding);
	box-shadow: var(--theme-content-card-shadow);
	margin: var(--theme-content-card-margin, 0 0 1rem 0);
	width: var(--theme-content-card-width, auto);
	min-width: var(--theme-content-card-min-width, 0);
	max-width: var(--theme-content-card-max-width, none);
	height: var(--theme-content-card-height, auto);
	min-height: var(--theme-content-card-min-height, 0);
	max-height: var(--theme-content-card-max-height, none);
	text-align: var(--theme-content-card-text-align, left);
}

.content-card.content-nav-card:hover,
.content-card.content-nav-card:focus-within {
	background: var(--theme-content-card-hover-bg, var(--theme-content-card-bg));
	color: var(--theme-content-card-hover-text, var(--theme-content-card-text));
	border: 1px solid var(--theme-content-card-hover-border, var(--theme-content-card-border));
	border-radius: var(--theme-content-card-hover-radius, var(--theme-content-card-radius));
	padding: var(--theme-content-card-hover-padding, var(--theme-content-card-padding));
	box-shadow: var(--theme-content-card-hover-shadow, var(--theme-content-card-shadow));
	margin: var(--theme-content-card-hover-margin, var(--theme-content-card-margin, 0 0 1rem 0));
	text-align: var(--theme-content-card-hover-text-align, var(--theme-content-card-text-align, left));
}

.content-form-card {
	width: 100%;
	box-sizing: border-box;
}

.content-form label {
	display: block;
	margin: 0 0 0.85rem;
}

.content-form .is-visually-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;
}

.content-form-header {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
}

.content-form-title,
.content-form-subtext {
	margin: 0;
}

.content-form-field-label {
	display: block;
	font-weight: 600;
}

.content-form-choice {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	margin: 0;
}

.theme-default-form-canvas.content-form {
	display: grid;
	gap: 0.85rem;
	align-content: start;
	border-radius: 0;
	box-shadow: none;
}

.theme-default-form-canvas.content-form [data-form-node] {
	position: relative;
	left: auto;
	top: auto;
	min-width: 0;
	overflow: visible;
}

.theme-default-form-canvas.content-form [data-form-node] > * {
	max-width: 100%;
}

.theme-editor-form-flow-preview .theme-block-button {
	width: 100%;
	height: 100%;
	box-sizing: border-box;
}

.content-form input[type='text'],
.content-form input[type='date'],
.content-form input[type='datetime-local'],
.content-form input[type='email'],
.content-form input[type='month'],
.content-form input[type='tel'],
.content-form input[type='time'],
.content-form input[type='url'],
.content-form input[type='week'],
.content-form input[type='number'],
.content-form input[type='search'],
.content-form input[type='password'],
.content-form input[type='color'],
.content-form input[type='range'],
.content-form select,
.content-form textarea {
	width: 100%;
	max-width: 100%;
	padding: 0.75rem 0.9rem;
	border: 1px solid var(--theme-content-card-border, var(--gms-border));
	border-radius: 12px;
	background: rgba(var(--gms-white-rgb), 0.96);
	color: inherit;
	box-sizing: border-box;
	font: inherit;
}

.content-form textarea {
	min-height: 7rem;
	resize: vertical;
}

.content-form input[type='checkbox'],
.content-form input[type='radio'] {
	width: auto;
	margin-right: 0.45rem;
}

.content-form-actions {
	margin: 1rem 0 0;
}

.content-form-message {
	margin-top: 1rem;
}

.content-title,
.content-card-title,
.content-section-title,
.content-block h2 {
	margin: 0 0 0.75rem;
}

.content-title {
	font-size: clamp(2rem, 4vw, 3.4rem);
}

.content-rich h1,
.content-title {
	color: var(--theme-h1-color);
	background: var(--theme-h1-bg, transparent);
	border: 1px solid var(--theme-h1-border, transparent);
	font-family: var(--theme-h1-font-family);
	font-size: var(--theme-h1-font-size);
	font-weight: var(--theme-h1-font-weight);
	line-height: var(--theme-h1-line-height);
	letter-spacing: var(--theme-h1-letter-spacing);
	margin: var(--theme-h1-margin);
	width: var(--theme-h1-width, auto);
	min-width: var(--theme-h1-min-width, 0);
	max-width: var(--theme-h1-max-width, none);
	height: var(--theme-h1-height, auto);
	min-height: var(--theme-h1-min-height, 0);
	max-height: var(--theme-h1-max-height, none);
	text-align: var(--theme-h1-text-align, left);
}

.content-card-title,
.content-section-title,
.content-block h2 {
	font-size: var(--theme-h2-font-size);
	color: var(--theme-h2-color);
	background: var(--theme-h2-bg, transparent);
	border: 1px solid var(--theme-h2-border, transparent);
	font-family: var(--theme-h2-font-family);
	font-weight: var(--theme-h2-font-weight);
	line-height: var(--theme-h2-line-height);
	letter-spacing: var(--theme-h2-letter-spacing);
	margin: var(--theme-h2-margin);
	width: var(--theme-h2-width, auto);
	min-width: var(--theme-h2-min-width, 0);
	max-width: var(--theme-h2-max-width, none);
	height: var(--theme-h2-height, auto);
	min-height: var(--theme-h2-min-height, 0);
	max-height: var(--theme-h2-max-height, none);
	text-align: var(--theme-h2-text-align, left);
}

.content-rich h2 {
	color: var(--theme-h2-color);
	background: var(--theme-h2-bg, transparent);
	border: 1px solid var(--theme-h2-border, transparent);
	font-family: var(--theme-h2-font-family);
	font-size: var(--theme-h2-font-size);
	font-weight: var(--theme-h2-font-weight);
	line-height: var(--theme-h2-line-height);
	letter-spacing: var(--theme-h2-letter-spacing);
	margin: var(--theme-h2-margin);
	width: var(--theme-h2-width, auto);
	min-width: var(--theme-h2-min-width, 0);
	max-width: var(--theme-h2-max-width, none);
	height: var(--theme-h2-height, auto);
	min-height: var(--theme-h2-min-height, 0);
	max-height: var(--theme-h2-max-height, none);
	text-align: var(--theme-h2-text-align, left);
}

.content-rich h3 {
	color: var(--theme-h3-color);
	background: var(--theme-h3-bg, transparent);
	border: 1px solid var(--theme-h3-border, transparent);
	font-family: var(--theme-h3-font-family);
	font-size: var(--theme-h3-font-size);
	font-weight: var(--theme-h3-font-weight);
	line-height: var(--theme-h3-line-height);
	letter-spacing: var(--theme-h3-letter-spacing);
	margin: var(--theme-h3-margin);
	width: var(--theme-h3-width, auto);
	min-width: var(--theme-h3-min-width, 0);
	max-width: var(--theme-h3-max-width, none);
	height: var(--theme-h3-height, auto);
	min-height: var(--theme-h3-min-height, 0);
	max-height: var(--theme-h3-max-height, none);
	text-align: var(--theme-h3-text-align, left);
}

.content-kicker {
	margin: 0 0 0.35rem;
	color: var(--gms-green-gray);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-size: 0.8rem;
}

.content-copy,
.content-summary,
.content-meta,
.content-rich,
.content-block p {
	margin: var(--theme-paragraph-margin, 0 0 0.85rem 0);
	line-height: var(--theme-paragraph-line-height, var(--theme-body-line-height));
	font-size: var(--theme-paragraph-font-size, var(--theme-body-font-size));
	font-family: var(--theme-paragraph-font-family, var(--theme-body-font-family));
	font-weight: var(--theme-paragraph-font-weight, 400);
	letter-spacing: var(--theme-paragraph-letter-spacing, 0);
	color: var(--theme-paragraph-color, var(--theme-body-text));
	background: var(--theme-paragraph-bg, transparent);
	border: 1px solid var(--theme-paragraph-border, transparent);
	width: var(--theme-paragraph-width, auto);
	min-width: var(--theme-paragraph-min-width, 0);
	max-width: var(--theme-paragraph-max-width, none);
	height: var(--theme-paragraph-height, auto);
	min-height: var(--theme-paragraph-min-height, 0);
	max-height: var(--theme-paragraph-max-height, none);
	text-align: var(--theme-paragraph-text-align, left);
}

.content-summary:last-child,
.content-copy:last-child,
.content-meta:last-child,
.content-rich > *:last-child,
.content-block p:last-child {
	margin-bottom: 0;
}

.content-card-list,
.content-section-list {
	display: grid;
	gap: 0;
}

.content-meta-pills,
.content-chip-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
}

.content-meta-pills {
	margin: 0.9rem 0 1rem;
}

.content-pill,
.content-chip {
	display: inline-flex;
	align-items: center;
	border-radius: 999px;
	text-decoration: none;
}

.content-pill {
	background: var(--theme-meta-pill-bg);
	border: 1px solid var(--theme-meta-pill-border);
	color: var(--theme-meta-pill-text);
	font-size: 0.85rem;
	padding: var(--theme-meta-pill-padding-y) var(--theme-meta-pill-padding-x);
	text-align: var(--theme-meta-pill-text-align, left);
}

.content-chip {
	padding: calc(var(--theme-meta-pill-padding-y) + 0.1rem) calc(var(--theme-meta-pill-padding-x) + 0.1rem);
	font-size: 0.92rem;
	background: var(--theme-meta-pill-bg);
	color: var(--theme-meta-pill-text);
	border: 1px solid var(--theme-meta-pill-border);
	border-radius: var(--theme-meta-pill-radius);
	text-align: var(--theme-meta-pill-text-align, left);
}

.content-rich {
	overflow-wrap: anywhere;
	word-break: break-word;
	min-width: 0;
}

.content-rich > *:first-child {
	margin-top: 0;
}

.content-rich p,
.content-rich ul,
.content-rich ol {
	margin: var(--theme-paragraph-margin, 0 0 0.85rem 0);
}

.content-rich ul,
.content-rich ol {
	padding-left: var(--theme-list-padding-left, 1.15rem);
	margin: var(--theme-list-margin, 0 0 0.85rem 0);
	font-family: var(--theme-list-font-family, var(--theme-body-font-family));
	font-size: var(--theme-list-font-size, var(--theme-body-font-size));
	font-weight: var(--theme-list-font-weight, 400);
	line-height: var(--theme-list-line-height, var(--theme-body-line-height));
	letter-spacing: var(--theme-list-letter-spacing, 0);
	color: var(--theme-list-color, var(--theme-body-text));
	background: var(--theme-list-bg, transparent);
	border: 1px solid var(--theme-list-border, transparent);
	width: var(--theme-list-width, auto);
	min-width: var(--theme-list-min-width, 0);
	max-width: var(--theme-list-max-width, none);
	height: var(--theme-list-height, auto);
	min-height: var(--theme-list-min-height, 0);
	max-height: var(--theme-list-max-height, none);
	text-align: var(--theme-list-text-align, left);
}

.content-rich ul,
.theme-editor-preview-list-block ul {
	list-style: none;
	padding-left: var(--theme-list-padding-left, 1.15rem);
}

.content-rich ul li,
.theme-editor-preview-list-block ul li {
	position: relative;
	padding-left: calc(var(--theme-list-marker-column-width, 1.1rem) + var(--theme-list-text-indent, 0.45rem));
}

.content-rich ul li + li,
.theme-editor-preview-list-block ul li + li {
	margin-top: var(--theme-list-item-gap, 0.45rem);
}

.content-rich ul li::before,
.theme-editor-preview-list-block ul li::before {
	content: var(--theme-list-marker-content, "•");
	position: absolute;
	left: var(--theme-list-marker-indent, 0);
	top: var(--theme-list-marker-offset-y, 0.05em);
	width: var(--theme-list-marker-column-width, 1.1rem);
	height: var(--theme-list-marker-column-width, 1.1rem);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--theme-list-marker-color, var(--theme-color-accent));
	font-family: var(--theme-list-marker-font-family, inherit);
	font-size: var(--theme-list-marker-size, 1em);
	line-height: 1;
	background-image: var(--theme-list-marker-image, none);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}

.content-rich img,
.content-rich video,
.content-rich audio,
.content-rich iframe {
	max-width: 100%;
	box-sizing: border-box;
	position: relative;
	z-index: 0;
}

.content-rich > *:not(img):not(video):not(audio):not(iframe) {
	position: relative;
	z-index: 1;
}

.content-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	align-items: center;
}

.content-actions a {
	text-decoration: none;
}

.content-media-figure {
	display: block;
	margin: 0 0 1rem;
}

.content-media-figure img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 1rem;
}

.content-shell {
	display: grid;
	gap: 1rem;
}

.content-shell-spacious {
	gap: 1.75rem;
}

.error-shell {
	display: grid;
	place-items: center;
	min-height: 55vh;
}

.error-card {
	max-width: 760px;
	width: 100%;
	background: linear-gradient(180deg, rgba(var(--gms-white-rgb), 0.88), rgba(var(--gms-white-rgb), 0.94));
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.75);
	padding: 2rem;
	box-shadow: 0 20px 50px rgba(var(--gms-shadow-rgb), 0.08);
}

.error-code {
	margin: 0 0 0.35rem;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	font-size: 0.82rem;
	color: var(--gms-mane-top);
}

.error-copy {
	max-width: 42rem;
	line-height: 1.7;
}

.content-panel,
.content-card {
	min-width: 0;
}

.content-title,
.content-card-title {
	margin: 0 0 0.65rem;
	line-height: 1.1;
	letter-spacing: .1rem;
}

.content-card-title a,
.content-title a {
	text-decoration: none;
}

.content-copy,
.content-summary,
.content-rich,
.content-lead {
	line-height: 1.7;
	overflow-wrap: anywhere;
	word-break: break-word;
	min-width: 0;
}

.content-rich {
	overflow: hidden;
	position: relative;
	isolation: isolate;
}

.content-card-list {
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr;
	align-items: start;
}

.content-card-compact {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	padding: 1rem 1.05rem 1.1rem;
}

.content-card-compact > * {
	margin-top: 0;
	margin-bottom: 0;
}

.content-empty-card {
	grid-column: 1 / -1;
}

.content-chip-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin-top: 1rem;
}

.content-chip-row-tight {
	gap: 0.5rem;
	margin-top: 0.9rem;
}

.content-chip {
	display: inline-flex;
	align-items: center;
	padding: 0.45rem 0.8rem;
	border-radius: 999px;
	text-decoration: none;
}

.content-chip-primary {
	background: var(--theme-meta-pill-bg);
	color: var(--theme-meta-pill-text);
}

.content-chip-primary.is-active {
	background: var(--gms-mane-2);
	color: var(--gms-white);
}

.content-chip-accent {
	padding: var(--theme-meta-pill-padding-y) var(--theme-meta-pill-padding-x);
	background: var(--theme-meta-pill-bg);
	color: var(--theme-meta-pill-text);
	font-size: 0.92rem;
}

.content-actions a,
.theme-preview-button,
.theme-editor-preview-button,
.content-button-primary,
.content-button-secondary,
.content-button-tertiary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	text-transform: uppercase;
}

.content-actions a,
.theme-preview-button,
.theme-editor-preview-button,
.content-button-primary {
	padding: var(--theme-action-button-padding-y) var(--theme-action-button-padding-x);
	border-radius: var(--theme-action-button-radius);
	border: 1px solid var(--theme-action-button-border);
	background: var(--theme-action-button-bg);
	color: var(--theme-action-button-text);
	box-shadow: var(--theme-action-button-shadow);
	text-decoration: none;
	margin: var(--theme-action-button-margin, 0);
	width: var(--theme-action-button-width, auto);
	min-width: var(--theme-action-button-min-width, 0);
	max-width: var(--theme-action-button-max-width, none);
	height: var(--theme-action-button-height, auto);
	min-height: var(--theme-action-button-min-height, 0);
	max-height: var(--theme-action-button-max-height, none);
	text-align: var(--theme-action-button-text-align, left);
}

.content-actions a:hover,
.content-actions a:focus-visible,
.theme-preview-button.is-hover-preview,
.theme-editor-preview-button.is-hover-preview,
.content-button-primary:hover,
.content-button-primary:focus-visible {
	padding: var(--theme-action-button-hover-padding-y, var(--theme-action-button-padding-y)) var(--theme-action-button-hover-padding-x, var(--theme-action-button-padding-x));
	border-radius: var(--theme-action-button-hover-radius, var(--theme-action-button-radius));
	border: 1px solid var(--theme-action-button-hover-border, var(--theme-action-button-border));
	background: var(--theme-action-button-hover-bg, var(--theme-action-button-bg));
	color: var(--theme-action-button-hover-text, var(--theme-action-button-text));
	box-shadow: var(--theme-action-button-hover-shadow, var(--theme-action-button-shadow));
	margin: var(--theme-action-button-hover-margin, var(--theme-action-button-margin, 0));
	width: var(--theme-action-button-hover-width, var(--theme-action-button-width, auto));
	min-width: var(--theme-action-button-hover-min-width, var(--theme-action-button-min-width, 0));
	max-width: var(--theme-action-button-hover-max-width, var(--theme-action-button-max-width, none));
	height: var(--theme-action-button-hover-height, var(--theme-action-button-height, auto));
	min-height: var(--theme-action-button-hover-min-height, var(--theme-action-button-min-height, 0));
	max-height: var(--theme-action-button-hover-max-height, var(--theme-action-button-max-height, none));
	text-align: var(--theme-action-button-hover-text-align, var(--theme-action-button-text-align, left));
	text-decoration: none;
}

.content-chip-accent.is-active {
	background: var(--gms-mane-top);
	color: var(--gms-white);
}

.content-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin: 0 0 0.75rem;
	color: var(--gms-green-gray);
	font-size: 0.92rem;
}

.content-media-figure,
.content-cover {
	display: block;
	margin: 0 0 1rem;
}

.content-media-link {
	display: block;
	margin-bottom: 0.2rem;
}

.content-media-figure img,
.content-media-image,
.cover-image {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 1rem;
}

.content-lead {
	font-size: 1.05rem;
	color: var(--gms-green-gray);
}

.content-rich > *:first-child {
	margin-top: 0;
}

.content-rich img,
.content-rich video,
.content-rich audio,
.content-rich iframe {
	box-sizing: border-box;
	position: relative;
	z-index: 0;
}

.content-rich > *:not(img):not(video):not(audio):not(iframe) {
	position: relative;
	z-index: 1;
}

.gms-modal-close .gms,
.admin-editor-modal-close .gms {
	font-size: 0.95rem;
}

.admin-editor-code-toggle.is-active {
	background: var(--gms-green-dark);
	border-color: var(--gms-green);
	color: var(--gms-white);
}

.admin-editor-image-align-button.is-active {
	background: var(--gms-mane-top);
}

.cover-preview-stage .content-cover {
	margin: 0;
}

.site-footer {
	background: var(--theme-footer-bg, transparent);
	color: var(--theme-footer-text, inherit);
	border: 1px solid var(--theme-footer-border, transparent);
	border-radius: var(--theme-footer-radius, 0);
	padding: var(--theme-footer-padding, 1.5rem 0 0);
	box-shadow: var(--theme-footer-shadow, none);
	margin: var(--theme-footer-margin, 2.5rem 0 0);
	width: 100%;
	min-width: 0;
	max-width: none;
	height: var(--theme-footer-height, auto);
	min-height: var(--theme-footer-min-height, 0);
	max-height: var(--theme-footer-max-height, none);
	text-align: var(--theme-footer-text-align, left);
	box-sizing: border-box;
}

.footer-links {
	margin: var(--footer-menu-margin, 0 0 20px);
	padding: var(--footer-menu-padding, 0);
	text-align: center;
}

.footer-links-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.45rem 0.9rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-links-item {
	position: relative;
}

.footer-links-item:not(:last-child)::after {
	content: '|';
	margin-left: 0.9rem;
	color: rgba(var(--gms-shadow-rgb), 0.45);
}

.footer-links a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	font-size: var(--footer-menu-font-size, inherit);
	font-weight: var(--footer-menu-font-weight, inherit);
}

.footer-links a .gms {
	font-size: inherit;
	font-weight: inherit;
	line-height: 1;
}

.footer-copyright {
	text-align: center;
}

.footer-copyright p {
	margin: 0;
	font-size: var(--footer-menu-font-size, 0.9rem);
	font-weight: var(--footer-menu-font-weight, 400);
}

.footer-social-links {
	margin-top: 0;
}

.footer-social-links .footer-links-list {
	gap: 0.6rem 1rem;
}

.footer-social-links .footer-links-item:not(:last-child)::after {
	content: none;
}

.footer-grid {
	display: grid;
	grid-template-columns: 1fr;
	align-items: start;
	gap: var(--footer-blocks-gap, 1.5rem 2rem);
	margin: var(--footer-blocks-margin, 0);
	padding: var(--footer-blocks-padding, 0);
}

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

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

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

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

.footer-block {
	background: transparent;
	padding: 0;
	width: 100%;
	max-width: 360px;
	margin: 0;
	justify-self: stretch;
	text-align: left;
}

.footer-grid.footer-grid-count-1 .footer-block {
	justify-self: center;
}

.footer-grid.footer-grid-count-2 .footer-block:first-child,
.footer-grid.footer-grid-count-3 .footer-block:first-child,
.footer-grid.footer-grid-count-4 .footer-block:first-child,
.footer-grid.footer-grid-count-5 .footer-block:first-child {
	justify-self: start;
}

.footer-grid.footer-grid-count-2 .footer-block:last-child,
.footer-grid.footer-grid-count-3 .footer-block:last-child,
.footer-grid.footer-grid-count-4 .footer-block:last-child,
.footer-grid.footer-grid-count-5 .footer-block:last-child {
	justify-self: end;
}

.footer-grid.footer-grid-count-3 .footer-block:nth-child(2),
.footer-grid.footer-grid-count-5 .footer-block:nth-child(3) {
	justify-self: center;
}

.footer-grid.footer-grid-count-4 .footer-block:nth-child(2) {
	justify-self: start;
}

.footer-grid.footer-grid-count-4 .footer-block:nth-child(3) {
	justify-self: end;
}

.footer-grid.footer-grid-count-5 .footer-block:nth-child(2) {
	justify-self: start;
}

.footer-grid.footer-grid-count-5 .footer-block:nth-child(4) {
	justify-self: end;
}

.footer-block-left {
	justify-self: start;
	text-align: left;
}

.footer-block-center {
	justify-self: center;
	text-align: center;
}

.footer-block-right {
	justify-self: end;
	text-align: right;
}

.footer-block h2 {
	margin: var(--theme-footer-heading-margin, 0 0 0.75rem);
	color: var(--theme-footer-heading-color, var(--theme-footer-text, inherit));
	background: var(--theme-footer-heading-bg, transparent);
	border: 1px solid var(--theme-footer-heading-border, transparent);
	font-family: var(--theme-footer-heading-font-family, inherit);
	font-size: var(--theme-footer-heading-font-size, 1rem);
	font-weight: var(--theme-footer-heading-font-weight, 400);
	line-height: var(--theme-footer-heading-line-height, 1.12);
	letter-spacing: var(--theme-footer-heading-letter-spacing, 0);
	width: var(--theme-footer-heading-width, auto);
	min-width: var(--theme-footer-heading-min-width, 0);
	max-width: var(--theme-footer-heading-max-width, none);
	height: var(--theme-footer-heading-height, auto);
	min-height: var(--theme-footer-heading-min-height, 0);
	max-height: var(--theme-footer-heading-max-height, none);
	text-align: var(--theme-footer-heading-text-align, var(--theme-footer-text-align, left));
}

.footer-block p {
	margin: var(--theme-footer-paragraph-margin, 0 0 0.55rem);
	color: var(--theme-footer-paragraph-color, var(--theme-footer-text, inherit));
	background: var(--theme-footer-paragraph-bg, transparent);
	border: 1px solid var(--theme-footer-paragraph-border, transparent);
	font-family: var(--theme-footer-paragraph-font-family, var(--theme-body-font-family));
	font-size: var(--theme-footer-paragraph-font-size, 0.95rem);
	font-weight: var(--theme-footer-paragraph-font-weight, 400);
	line-height: var(--theme-footer-paragraph-line-height, 1.55);
	letter-spacing: var(--theme-footer-paragraph-letter-spacing, 0);
	width: var(--theme-footer-paragraph-width, auto);
	min-width: var(--theme-footer-paragraph-min-width, 0);
	max-width: var(--theme-footer-paragraph-max-width, none);
	height: var(--theme-footer-paragraph-height, auto);
	min-height: var(--theme-footer-paragraph-min-height, 0);
	max-height: var(--theme-footer-paragraph-max-height, none);
	text-align: var(--theme-footer-paragraph-text-align, var(--theme-footer-text-align, left));
}

.footer-block p:last-child {
	margin-bottom: 0;
}

.site-footer .theme-block-canvas {
	width: 100% !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	overflow: visible;
}

.site-footer .theme-block-canvas [data-block-node] {
	max-width: 100%;
}

.footer-block .theme-block-canvas {
	margin-left: 0;
	margin-right: auto;
}

.social-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.social-list li {
	margin: 0 0 0.45rem;
}

.social-list li:last-child {
	margin-bottom: 0;
}

.social-list a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
}

.social-list a .gms {
	font-size: 1.15rem;
	line-height: 1;
}

.footer-map iframe {
	width: 100%;
	min-height: 240px;
	border: 0;
}

.site-footer .theme-block-canvas iframe {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 0;
	max-width: 100%;
	border: 0;
}

.admin-sidebar-link .gms {
	font-size: 0.95rem;
}

.admin-sidebar-link.is-active:hover,
.admin-sidebar-link.is-active:focus-visible {
	background: rgba(var(--gms-shadow-rgb), 0.16);
	border-color: rgba(var(--gms-shadow-rgb), 0.22);
	color: var(--gms-mane-3);
}

.admin-sidebar-link.is-active {
	background: rgba(var(--gms-shadow-rgb), 0.12);
	border-color: rgba(var(--gms-shadow-rgb), 0.18);
	color: var(--gms-mane-3);
	font-weight: 600;
}

.admin-sidebar-sublink.is-active {
	color: var(--gms-mane-3);
	font-weight: 600;
	background: rgba(var(--gms-shadow-rgb), 0.06);
	border-color: rgba(var(--gms-shadow-rgb), 0.18);
}

.admin-sidebar-sublink.is-active:hover,
.admin-sidebar-sublink.is-active:focus-visible {
	color: var(--gms-mane-3);
	background: rgba(var(--gms-shadow-rgb), 0.06);
	border-color: rgba(var(--gms-shadow-rgb), 0.18);
}

.admin-panel,
.admin-list-panel,
.admin-editor-panel {
	background: rgba(var(--gms-white-rgb), 0.82);
	padding: 1.5rem;
}

.admin-panel-header,
.admin-list-header,
.admin-editor-header {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	align-items: flex-start;
	margin-bottom: 1.25rem;
}

.admin-list-header > .admin-actions.admin-actions-stack,
.admin-editor-header > .admin-actions.admin-actions-stack {
	display: none;
}

.admin-kicker {
	margin: 0 0 0.35rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-size: 0.8rem;
	color: var(--gms-green-gray);
}

.admin-panel-header h2 {
	margin: 0 0 0.5rem;
}

.admin-copy {
	margin: 0;
	max-width: 60ch;
}

.admin-actions a {
	display: inline-block;
	padding: 0.65rem 0.9rem;
	text-decoration: none;
	background: var(--gms-mane-4);
	color: var(--gms-mint-2);
}

.admin-actions form {
	margin: 0;
}

.admin-actions button {
	display: inline-block;
	padding: 0.65rem 0.9rem;
	text-decoration: none;
	background: var(--gms-mane-4);
	color: var(--gms-mint-2);
	border: 0;
	cursor: pointer;
	font: inherit;
}

.admin-actions .gms-modal-close,
.admin-actions .admin-editor-modal-close {
	width: 2.2rem;
	height: 2.2rem;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.admin-actions-inline {
	margin-top: 0.6rem;
}

.admin-alert {
	margin-bottom: 1rem;
	padding: 0.85rem 1rem;
	background: rgba(var(--gms-shadow-rgb), 0.16);
	color: var(--gms-mane-3);
}

.admin-alert-error {
	background: rgba(var(--gms-mane-top-rgb), 0.12);
	color: var(--gms-mane-1);
}

.content-hero-tight {
	padding-bottom: 0;
}

.content-card-grid {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.content-card {
	background: var(--theme-content-card-bg);
	color: var(--theme-content-card-text);
	border: 1px solid var(--theme-content-card-border);
	border-radius: var(--theme-content-card-radius);
	box-shadow: var(--theme-content-card-shadow);
	padding: var(--theme-content-card-padding);
}

.content-card-head {
	display: grid;
	gap: 0.45rem;
}

.content-card-title {
	margin: 0;
}

.content-meta-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	margin: 0.9rem 0 1rem;
}

.content-pill {
	background: var(--theme-meta-pill-bg);
	border: 1px solid var(--theme-meta-pill-border);
	border-radius: var(--theme-meta-pill-radius);
	color: var(--theme-meta-pill-text);
	font-size: 0.85rem;
	padding: var(--theme-meta-pill-padding-y) var(--theme-meta-pill-padding-x);
}

.content-summary {
	font-size: 1rem;
	line-height: 1.65;
	margin: 0 0 1rem;
}

.content-rich {
	display: grid;
	gap: 0.8rem;
}

.content-rich p,
.content-rich ul,
.content-rich ol {
	margin: 0;
}

.content-rich ul,
.content-rich ol {
	padding-left: 1.15rem;
}

.content-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	margin-top: 1.15rem;
}

.button-link {
	background: var(--gms-mane-3);
	border: 1px solid var(--gms-mane-3);
	border-radius: 999px;
	color: var(--gms-white);
	display: inline-flex;
	font-size: 0.92rem;
	font-weight: 700;
	padding: 0.72rem 1.15rem;
	text-decoration: none;
}

.button-link:hover,
.button-link:focus-visible {
	background: var(--gms-mane-2);
	border-color: var(--gms-mane-2);
	color: var(--gms-white);
}

.content-split-layout {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}

.content-card-sticky {
	align-self: start;
}

@media (max-width: 900px) {
.content-split-layout,
	.jobs-application-detail {
		grid-template-columns: 1fr;
	}
}

.settings-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 1rem;
}

.settings-field {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	margin-bottom: 0.9rem;
}

.settings-field span {
	/*font-weight: bold;*/
}

.settings-field textarea {
	width: 100%;
}

.settings-field input,
.settings-field textarea {
	box-sizing: border-box;
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.18);
	padding: 0.7rem 0.8rem;
	font: inherit;
	background: var(--gms-white);
	color: var(--gms-mane-4);
}

.settings-field small {
	color: var(--gms-green-gray);
	overflow-wrap: anywhere;
}

.settings-field .field-error {
	color: var(--gms-mane-top);
	font-weight: bold;
}

.settings-field select {
	box-sizing: border-box;
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.18);
	padding: 0.7rem 0.8rem;
	font: inherit;
	background: var(--gms-white);
	color: var(--gms-mane-4);
	width: auto;
}

.settings-field-wide {
	grid-column: 1 / -1;
}

.admin-sidebar-right .settings-grid-compact .settings-field {
	margin: 0;
}

.admin-sidebar-right .settings-field textarea {
	min-height: 9rem;
}

.settings-field-checkbox {
	flex-direction: row;
	align-items: center;
	justify-content: flex-start;
	gap: 0.55rem;
}

.settings-field-checkbox input[type="checkbox"] {
	order: 0;
	flex: 0 0 auto;
	width: auto;
	margin: 0;
	padding: 0;
}

.settings-field-checkbox span {
	order: 1;
}

.settings-submit {
	margin-top: 1.25rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.settings-submit button {
	border: 0;
	background: var(--gms-mane-top);
	color: var(--gms-white);
	padding: 0.8rem 1.15rem;
	font: inherit;
	cursor: pointer;
}

.button,
.button-secondary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.72rem 0.95rem;
	border-radius: 0.95rem;
	font: inherit;
	font-size: 0.92rem;
	cursor: pointer;
	text-decoration: none;
	line-height: 1;
	box-shadow: 0 0.4rem 0.9rem rgba(var(--gms-shadow-rgb), 0.05);
}

.button {
	border: 1px solid var(--gms-mane-3) !important;
	background: var(--gms-mane-3) !important;
	color: var(--gms-white) !important;
	font-weight: 600;
}

.button:hover,
.button:focus-visible {
	background: var(--gms-mane-2) !important;
	border: 1px solid var(--gms-mane-2) !important;
	color: var(--gms-white) !important;
	padding: 0.72rem 0.95rem !important;
	border-radius: 0.95rem !important;
	font-weight: 600 !important;
	font-size: 0.92rem !important;
	line-height: 1 !important;
	box-shadow: 0 0.5rem 1.1rem rgba(var(--gms-shadow-rgb), 0.14) !important;
	font-family: inherit !important;
	font-style: inherit !important;
	letter-spacing: inherit !important;
	text-transform: none !important;
	text-decoration: none !important;
}

.button:disabled {
	opacity: 0.55;
	cursor: default;
}

.button-secondary {
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.18) !important;
	background: var(--gms-white) !important;
	color: var(--gms-mane-4) !important;
}

.button-secondary:hover,
.button-secondary:focus-visible {
	background: rgba(var(--gms-shadow-rgb), 0.05) !important;
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.35) !important;
	color: var(--gms-mane-4) !important;
	padding: 0.72rem 0.95rem !important;
	border-radius: 0.95rem !important;
	font-weight: inherit !important;
	font-size: 0.92rem !important;
	line-height: 1 !important;
	box-shadow: 0 0.5rem 1.1rem rgba(var(--gms-shadow-rgb), 0.07) !important;
	font-family: inherit !important;
	font-style: inherit !important;
	letter-spacing: inherit !important;
	text-transform: none !important;
	text-decoration: none !important;
}

.button-secondary:disabled {
	opacity: 0.55;
	cursor: default;
}

.admin-list-row-title .gms {
	color: var(--gms-green-gray);
	padding-top: 0.1rem;
	cursor: grab;
	touch-action: none;
	user-select: none;
}

.theme-editor-target-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.theme-editor-target-card {
	display: grid;
	gap: 0.85rem;
	padding: 1rem;
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.75);
	border-radius: 1rem;
	background: rgba(var(--gms-white-rgb), 0.88);
	cursor: pointer;
	text-align: left;
}

.theme-editor-target-card:hover,
.theme-editor-target-card:focus-visible {
	border-color: rgba(var(--gms-shadow-rgb), 0.24);
	box-shadow: 0 0 0 3px rgba(var(--gms-shadow-rgb), 0.08);
}

.theme-editor-target-card h3 {
	margin: 0;
	font-size: 1.05rem;
}

.theme-editor-target-card p {
	margin: 0;
	color: var(--gms-green-gray);
	font-size: 0.92rem;
	line-height: 1.55;
}

.theme-editor-swatches {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.55rem;
}

.theme-editor-swatch {
	display: grid;
	gap: 0.4rem;
}

.theme-editor-swatch-chip {
	height: 2.35rem;
	border-radius: 0.8rem;
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.75);
}

.theme-editor-sidebar-tab.is-active {
	background: var(--gms-mane-3);
	border-color: var(--gms-mane-3);
	color: var(--gms-white);
}

.theme-editor-css-hint:hover,
.theme-editor-css-hint:focus-visible,
.theme-editor-css-hint.is-active {
	background: rgba(var(--gms-mane-top-rgb), 0.08);
	color: var(--gms-mane-top);
}

.theme-editor-shell .admin-editor-header .button,
.theme-editor-shell .admin-editor-header .button-secondary,
.theme-editor-shell .admin-editor-header .theme-editor-preview-actions > button {
	transform: none;
	transition: none;
	font-size: 0.92rem !important;
	line-height: 1 !important;
	font-family: 'Poppins', Arial, sans-serif !important;
	font-style: normal !important;
	font-weight: 400 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	text-decoration: none !important;
}

.theme-editor-shell .admin-editor-header .button,
.theme-editor-shell .admin-editor-header .theme-editor-preview-actions > button.button {
	font-weight: 600 !important;
}

.theme-editor-shell .admin-editor-header .button:hover,
.theme-editor-shell .admin-editor-header .button:focus-visible,
.theme-editor-shell .admin-editor-header .theme-editor-preview-actions > button.button:hover,
.theme-editor-shell .admin-editor-header .theme-editor-preview-actions > button.button:focus-visible {
	background: var(--gms-mane-3) !important;
	border: 1px solid var(--gms-mane-3) !important;
	color: var(--gms-white) !important;
	padding: 0.72rem 0.95rem !important;
	border-radius: 0.95rem !important;
	font-weight: 600 !important;
	font-size: 0.92rem !important;
	font-family: 'Poppins', Arial, sans-serif !important;
	font-style: normal !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	text-decoration: none !important;
	line-height: 1 !important;
	box-shadow: 0 0.4rem 0.9rem rgba(var(--gms-shadow-rgb), 0.05) !important;
	transform: none !important;
}

.theme-editor-shell .admin-editor-header .button-secondary:hover,
.theme-editor-shell .admin-editor-header .button-secondary:focus-visible,
.theme-editor-shell .admin-editor-header .theme-editor-preview-actions > button:not(.button):not(.button-secondary):hover,
.theme-editor-shell .admin-editor-header .theme-editor-preview-actions > button:not(.button):not(.button-secondary):focus-visible {
	background: var(--gms-white) !important;
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.18) !important;
	color: var(--gms-mane-4) !important;
	padding: 0.72rem 0.95rem !important;
	border-radius: 0.95rem !important;
	font-weight: 400 !important;
	font-size: 0.92rem !important;
	font-family: 'Poppins', Arial, sans-serif !important;
	font-style: normal !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	text-decoration: none !important;
	line-height: 1 !important;
	box-shadow: 0 0.4rem 0.9rem rgba(var(--gms-shadow-rgb), 0.05) !important;
	transform: none !important;
}

.theme-editor-preview-actions button,
.theme-editor-toolbar .settings-field select,
.theme-editor-mode-toggle button {
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.16);
	background: var(--gms-white);
	color: var(--gms-mane-4);
	padding: 0.72rem 0.95rem;
	border-radius: 0.95rem;
	font: inherit;
	box-shadow: 0 0.4rem 0.9rem rgba(var(--gms-shadow-rgb), 0.04);
	cursor: pointer;
}

.theme-editor-preview-actions button:hover,
.theme-editor-preview-actions button:focus-visible,
.theme-editor-toolbar .settings-field select:hover,
.theme-editor-toolbar .settings-field select:focus-visible {
	border-color: rgba(var(--gms-shadow-rgb), 0.24);
}

.theme-editor-mode-toggle button .gms {
	font-size: 15px;
}

.theme-editor-mode-toggle button.is-active {
	background: var(--gms-mane-3);
	color: var(--gms-white);
	box-shadow: 0 0.45rem 0.9rem rgba(var(--gms-shadow-rgb), 0.18);
}

.theme-editor-mode-toggle button:not(.is-active) {
	opacity: 0.82;
}

.theme-editor-block-list-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.theme-editor-block-list-actions button {
	flex: 0 0 auto;
}

.theme-editor-footer-menu-toggle .gms {
	font-size: 1.7rem;
	line-height: 1;
}

.theme-editor-token-option.is-active,
.theme-editor-token-option:hover,
.theme-editor-token-option:focus-visible {
	background: rgba(var(--gms-mane-top-rgb), 0.08);
	color: var(--gms-mane-top);
}

.theme-editor-preview-managed-block-slot {
	width: 100%;
}

.theme-editor-preview-managed-block-node {
	position: absolute;
	display: block;
	border: 1px solid transparent;
	box-sizing: border-box;
	cursor: pointer;
}

.theme-editor-preview-nav-toggle {
	cursor: default;
}

.theme-block-canvas {
	overflow: hidden;
}

.theme-editor-block-node-meta {
	display: grid;
	gap: 0.15rem;
}

.theme-editor-block-node-kicker {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--gms-mane-top);
}

.theme-editor-block-node-preview img:not(.site-logo),
.theme-editor-preview-managed-block-node img:not(.site-logo) {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.theme-editor-block-node-preview .site-logo,
.theme-editor-preview-managed-block-node .site-logo {
	display: block;
	flex: 0 0 auto;
	width: auto !important;
	height: auto !important;
	max-width: 100%;
	max-height: calc(var(--theme-header-heading-font-size, clamp(2rem, 4vw, 3.5rem)) * 1.35);
	object-fit: contain;
}

.theme-editor-block-node-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

/* Each arc sits outside the node corners, extending ~15px beyond the boundary */
[data-rotate="nw"] { top: -15px; left: -15px; border-bottom: none; border-right: none; border-radius: 100% 0 0 0; }

[data-rotate="ne"] { top: -15px; left: calc(100% + 1px); border-bottom: none; border-left: none; border-radius: 0 100% 0 0; }

[data-rotate="sw"] { top: calc(100% + 1px); left: -15px; border-top: none; border-right: none; border-radius: 0 0 0 100%; }

[data-rotate="se"] { top: calc(100% + 1px); left: calc(100% + 1px); border-top: none; border-left: none; border-radius: 0 0 100% 0; }

.theme-editor-form-field-preview .is-visually-hidden,
.theme-editor-faux-choice .is-visually-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;
}

.theme-editor-block-controls {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 0.75rem;
	margin-bottom: 0.9rem;
	align-items: center;
}

.theme-editor-block-controls input,
.theme-editor-block-controls select,
.theme-editor-block-card textarea {
	width: 100%;
}

.theme-editor-block-toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	font-size: 0.92rem;
}

.theme-editor-block-preview {
	border-top: 1px solid rgba(var(--gms-shadow-rgb), 0.08);
	padding-top: 0.9rem;
}

.theme-block-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: var(--theme-action-button-padding-y, 0.7rem) var(--theme-action-button-padding-x, 1.15rem);
	border: 1px solid var(--theme-action-button-border, var(--theme-color-accent));
	border-radius: var(--theme-action-button-radius, 999px);
	background: var(--theme-action-button-bg, var(--theme-color-accent));
	color: var(--theme-action-button-text, var(--gms-white));
	box-shadow: var(--theme-action-button-shadow, none);
}

#themeEditorFooterLinksCard {
	margin: 20px 0 0 0;
}

.theme-editor-preview-header-shell {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
}

.theme-editor-preview-branding,
.theme-editor-preview-contact {
	min-width: 0;
}

.theme-editor-preview-contact {
	text-align: right;
	margin-left: auto;
}

.theme-editor-preview-footer-links,
.theme-editor-preview-footer-grid {
	width: 100%;
}

.theme-editor-preview-footer .footer-links {
	margin: 0;
}

.theme-editor-preview-footer .footer-block {
	background: rgba(var(--gms-white-rgb), 0.55);
	padding: 1rem 1.25rem;
}

.theme-editor-preview-header-heading h1 {
	margin: var(--theme-header-heading-margin, 0);
	color: var(--theme-header-heading-color, var(--theme-header-text, inherit));
	background: var(--theme-header-heading-bg, transparent);
	border: 1px solid var(--theme-header-heading-border, transparent);
	font-family: var(--theme-header-heading-font-family, 'Bodoni 16', Georgia, serif);
	font-size: var(--theme-header-heading-font-size, clamp(2rem, 3.5vw, 3.5rem));
	font-weight: var(--theme-header-heading-font-weight, 400);
	line-height: var(--theme-header-heading-line-height, 1);
	letter-spacing: var(--theme-header-heading-letter-spacing, 0);
	width: var(--theme-header-heading-width, auto);
	min-width: var(--theme-header-heading-min-width, 0);
	max-width: var(--theme-header-heading-max-width, none);
	height: var(--theme-header-heading-height, auto);
	min-height: var(--theme-header-heading-min-height, 0);
	max-height: var(--theme-header-heading-max-height, none);
	text-align: var(--theme-header-heading-text-align, var(--theme-header-text-align, left));
}

.theme-editor-preview-header-copy p {
	margin: var(--theme-header-paragraph-margin, 0);
	color: var(--theme-header-paragraph-color, var(--theme-color-muted));
	background: var(--theme-header-paragraph-bg, transparent);
	border: 1px solid var(--theme-header-paragraph-border, transparent);
	font-family: var(--theme-header-paragraph-font-family, var(--theme-body-font-family));
	font-size: var(--theme-header-paragraph-font-size, 0.95rem);
	font-weight: var(--theme-header-paragraph-font-weight, 400);
	line-height: var(--theme-header-paragraph-line-height, 1.55);
	letter-spacing: var(--theme-header-paragraph-letter-spacing, 0);
	width: var(--theme-header-paragraph-width, auto);
	min-width: var(--theme-header-paragraph-min-width, 0);
	max-width: var(--theme-header-paragraph-max-width, none);
	height: var(--theme-header-paragraph-height, auto);
	min-height: var(--theme-header-paragraph-min-height, 0);
	max-height: var(--theme-header-paragraph-max-height, none);
	text-align: var(--theme-header-paragraph-text-align, var(--theme-header-text-align, left));
}

.theme-editor-preview-footer-copy p {
	margin: var(--theme-footer-paragraph-margin, 0 0 0.55rem 0);
	color: var(--theme-footer-paragraph-color, var(--theme-footer-text, inherit));
	background: var(--theme-footer-paragraph-bg, transparent);
	border: 1px solid var(--theme-footer-paragraph-border, transparent);
	font-family: var(--theme-footer-paragraph-font-family, var(--theme-body-font-family));
	font-size: var(--theme-footer-paragraph-font-size, 0.95rem);
	font-weight: var(--theme-footer-paragraph-font-weight, 400);
	line-height: var(--theme-footer-paragraph-line-height, 1.55);
	letter-spacing: var(--theme-footer-paragraph-letter-spacing, 0);
	width: var(--theme-footer-paragraph-width, auto);
	min-width: var(--theme-footer-paragraph-min-width, 0);
	max-width: var(--theme-footer-paragraph-max-width, none);
	height: var(--theme-footer-paragraph-height, auto);
	min-height: var(--theme-footer-paragraph-min-height, 0);
	max-height: var(--theme-footer-paragraph-max-height, none);
	text-align: var(--theme-footer-paragraph-text-align, var(--theme-footer-text-align, left));
}

.theme-editor-preview-header-link {
	background: var(--theme-header-link-bg, transparent);
	color: var(--theme-header-link-text, var(--theme-link-text, var(--theme-color-link)));
	border-color: var(--theme-header-link-border, transparent);
	border-radius: var(--theme-header-link-radius, 0);
	padding: var(--theme-header-link-padding-y, 0) var(--theme-header-link-padding-x, 0);
	box-shadow: var(--theme-header-link-shadow, none);
	font-family: var(--theme-header-link-font-family, inherit);
	font-size: var(--theme-header-link-font-size, inherit);
	font-weight: var(--theme-header-link-font-weight, inherit);
	line-height: var(--theme-header-link-line-height, inherit);
	letter-spacing: var(--theme-header-link-letter-spacing, inherit);
	text-decoration: var(--theme-header-link-text-decoration, none);
	margin: var(--theme-header-link-margin, 0);
	text-align: var(--theme-header-link-text-align, left);
}

.theme-editor-preview-footer-link {
	background: var(--theme-footer-link-bg, transparent);
	color: var(--theme-footer-link-text, var(--theme-link-text, var(--theme-color-link)));
	border-color: var(--theme-footer-link-border, transparent);
	border-radius: var(--theme-footer-link-radius, 0);
	padding: var(--theme-footer-link-padding-y, 0) var(--theme-footer-link-padding-x, 0);
	box-shadow: var(--theme-footer-link-shadow, none);
	font-family: var(--theme-footer-link-font-family, inherit);
	font-size: var(--theme-footer-link-font-size, inherit);
	font-weight: var(--theme-footer-link-font-weight, inherit);
	line-height: var(--theme-footer-link-line-height, inherit);
	letter-spacing: var(--theme-footer-link-letter-spacing, inherit);
	text-decoration: var(--theme-footer-link-text-decoration, none);
	margin: var(--theme-footer-link-margin, 0);
	text-align: var(--theme-footer-link-text-align, left);
}

.theme-editor-preview-footer-heading h3 {
	margin: var(--theme-footer-heading-margin, 0 0 0.75rem 0);
	color: var(--theme-footer-heading-color, var(--theme-footer-text, inherit));
	background: var(--theme-footer-heading-bg, transparent);
	border: 1px solid var(--theme-footer-heading-border, transparent);
	font-family: var(--theme-footer-heading-font-family, 'Bodoni 16', Georgia, serif);
	font-size: var(--theme-footer-heading-font-size, 1rem);
	font-weight: var(--theme-footer-heading-font-weight, 400);
	line-height: var(--theme-footer-heading-line-height, 1.2);
	letter-spacing: var(--theme-footer-heading-letter-spacing, 0);
	width: var(--theme-footer-heading-width, auto);
	min-width: var(--theme-footer-heading-min-width, 0);
	max-width: var(--theme-footer-heading-max-width, none);
	height: var(--theme-footer-heading-height, auto);
	min-height: var(--theme-footer-heading-min-height, 0);
	max-height: var(--theme-footer-heading-max-height, none);
	text-align: var(--theme-footer-heading-text-align, var(--theme-footer-text-align, left));
}

.theme-editor-color-editor-controls .settings-field {
	width: auto;
	min-width: 0;
	flex: 0 0 auto;
	display: inline-flex;
	flex-direction: column;
}

.theme-editor-color-editor-controls .settings-field-wide {
	grid-column: auto;
}

.theme-editor-color-editor-row .settings-field {
	margin-bottom: 0;
	align-self: start;
}

.theme-editor-color-editor-row .settings-field span {
	font-size: 0.8rem;
	color: var(--gms-green-gray);
	line-height: 1.1;
}

.theme-editor-color-editor-row .settings-field input[type='text'] {
	padding-top: 0.55rem;
	padding-bottom: 0.55rem;
}

.theme-editor-color-editor-row .button-secondary {
	margin-top: 1.4rem;
}

.theme-editor-glyph-preview-card {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	padding: 0.9rem;
	border-radius: 1rem;
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.10);
	background: rgba(var(--gms-white-rgb), 0.82);
}

.admin-table-actions .gms,
.admin-icon-button .gms {
	font-size: calc(0.95rem + 2pt);
	line-height: 1;
}

.admin-table-actions-bare .gms {
	font-size: calc(0.95rem + 5pt);
	line-height: 1;
}

.block-editor-grid .settings-field-checkbox {
	flex-direction: row;
	align-items: center;
	justify-content: flex-start;
	gap: 0.55rem;
}

.block-editor-grid .settings-field-checkbox span {
	order: 1;
}

.block-editor-grid .settings-field-checkbox input[type="checkbox"] {
	order: 0;
	margin-top: 0;
}

.page-block-rich-field.is-active .page-block-rich-preview {
	display: none;
	border-color: rgba(var(--gms-mane-top-rgb), 0.35);
	box-shadow: 0 0 0 3px rgba(var(--gms-mane-top-rgb), 0.08);
}

.page-block-rich-field.is-active .page-block-rich-host {
	display: block;
}

.auth-shell {
	max-width: 42rem;
	margin: 0 auto;
	padding: 3rem 1.5rem 4rem;
}

.auth-panel {
  margin: 0 auto;
	padding: 1.5rem;
	background: rgba(var(--gms-white-rgb), 0.96);
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.75);

  width: calc(100vw - 30px);
	max-width: 700px;
  border-radius: 10px;
  box-sizing: border-box;
}

.auth-copy {
	margin: 0 0 1.25rem;
	max-width: 52ch;
}

.auth-form {
	display: grid;
	gap: 1rem;
}

.password-toggle-field {
	position: relative;
}

.password-toggle-field input {
	padding-right: 3rem;
}

.password-toggle-button {
	position: absolute;
	top: 50%;
	right: 0.45rem;
	transform: translateY(-50%);
	border: 0;
	background: transparent;
	color: var(--gms-green-gray);
	width: 2rem;
	height: 2rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}

.password-toggle-button .gms {
	font-size: 1rem;
}

@media (max-width: 700px) {
.site-header {
		display: block;
	}

.site-header-blocks {
		display: grid;
		grid-template-columns: 1fr;
		padding-right: 3.25rem;
	}

.footer-grid {
		grid-template-columns: 1fr;
		justify-items: stretch;
	}

.footer-block {
		max-width: none;
	}

.page-theme-blocks {
		grid-template-columns: 1fr;
		justify-items: stretch;
	}

.page-theme-block {
		max-width: none;
	}

.nav-toggle {
		margin: 0;
	}

.admin-panel-header {
		flex-direction: column;
	}
}

@media (min-width: 700px) {
.content-card-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 980px) {
.content-card-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 1500px) {
.content-card-grid {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}
}

.shell > main:not(.admin-shell):not(.admin-layout-main),
.site-main,
.content-main {
	background: var(--theme-main-bg, transparent);
	color: var(--theme-main-text, inherit);
	border: 1px solid var(--theme-main-border, transparent);
	border-radius: var(--theme-main-radius, 0);
	padding: var(--theme-main-padding, 0);
	box-shadow: var(--theme-main-shadow, none);
	margin: var(--theme-main-margin, 0);
	width: var(--theme-main-width, auto);
	min-width: var(--theme-main-min-width, 0);
	max-width: var(--theme-main-max-width, none);
	height: var(--theme-main-height, auto);
	min-height: var(--theme-main-min-height, 0);
	max-height: var(--theme-main-max-height, none);
	text-align: var(--theme-main-text-align, left);
}

main article,
.site-article,
.content-article {
	background: var(--theme-article-bg, transparent);
	color: var(--theme-article-text, inherit);
	border: 1px solid var(--theme-article-border, transparent);
	border-radius: var(--theme-article-radius, 0);
	padding: var(--theme-article-padding, 0);
	box-shadow: var(--theme-article-shadow, none);
	margin: var(--theme-article-margin, 0);
	width: var(--theme-article-width, auto);
	min-width: var(--theme-article-min-width, 0);
	max-width: var(--theme-article-max-width, none);
	height: var(--theme-article-height, auto);
	min-height: var(--theme-article-min-height, 0);
	max-height: var(--theme-article-max-height, none);
	text-align: var(--theme-article-text-align, left);
}

/* =============================================
   Public site launch refinement
   ============================================= */
.route-public .site-header {
	border-width: 0 0 1px;
}

.route-public .site-header-blocks {
	width: min(1180px, calc(100% - 2.5rem));
	margin-left: auto;
	margin-right: auto;
}

.route-public .shell > main {
	padding-left: 1.25rem;
	padding-right: 1.25rem;
	box-sizing: border-box;
}

.route-public .content-header {
	margin-bottom: clamp(1.75rem, 4vw, 3rem);
	padding-bottom: clamp(1rem, 2vw, 1.5rem);
	border-bottom: 1px solid var(--theme-color-border);
}

.route-public .content-title {
	width: 100%;
	max-width: 100%;
	font-size: clamp(2.35rem, 4vw, 3.85rem);
}

.route-public .content-section-list {
	gap: 0;
}

.route-public .content-block {
	border-width: 0 0 1px;
}

.route-public .content-block:last-child {
	border-bottom: 0;
}

.route-public .content-rich p,
.route-public .content-rich ul,
.route-public .content-rich ol {
	max-width: 74ch;
}

.route-public .content-rich li + li {
	margin-top: 0.55rem;
}

.route-public blockquote {
	position: relative;
	max-width: 52rem;
	margin: 0 0 1.75rem;
	padding: 0.2rem 0 0.2rem 1.5rem;
	border-left: 3px solid var(--theme-color-accent);
	font-family: 'Bodoni 16', Georgia, serif;
	font-size: clamp(1.25rem, 2vw, 1.65rem);
	line-height: 1.45;
}

.route-public blockquote::before,
.route-public blockquote::after {
	content: none;
}

.route-public .content-eyebrow {
	margin: 0 0 0.65rem;
	color: var(--theme-color-muted);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	line-height: 1.4;
	text-transform: uppercase;
}

.route-public .content-button-primary,
.route-public .content-button-secondary,
.route-public .content-button-tertiary {
	transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.route-public .content-button-primary:hover,
.route-public .content-button-secondary:hover,
.route-public .content-button-tertiary:hover {
	transform: translateY(-1px);
}

.route-public .page-child-card,
.route-public .content-card {
	transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.route-public .page-child-card.content-nav-card:hover,
.route-public .page-child-card.content-nav-card:focus-visible,
.route-public .content-card.content-nav-card:hover,
.route-public .content-card.content-nav-card:focus-within {
	transform: translateY(-2px);
}

.route-public .site-footer {
	border-width: 1px 0 0;
}

.route-public .footer-grid,
.route-public .footer-links,
.route-public .footer-copyright {
	width: min(1180px, calc(100% - 2.5rem));
	max-width: 1180px;
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}

.route-public.page-slug-contact .content-form-section {
	width: min(600px, 100%) !important;
	max-width: 100% !important;
}

@media (max-width: 700px) {
.route-public .site-header-blocks {
		width: calc(100% - 2rem);
	}

.route-public .shell > main {
		padding-left: 1rem;
		padding-right: 1rem;
	}

.route-public .content-header {
		margin-bottom: 1.5rem;
	}

.route-public .content-title {
		max-width: none;
	}

.route-public .footer-grid,
	.route-public .footer-links,
	.route-public .footer-copyright {
		width: calc(100% - 2rem);
	}

.route-public .content-rich img[style*='float'] {
		float: none !important;
		display: block;
		margin: 0 auto 1.25rem !important;
	}
}

/* =============================================
   Public module normalization
   ============================================= */
.route-public .public-page-shell {
	width: 100%;
	max-width: 1120px;
	margin: 0 auto;
	padding: 0 1.25rem;
	box-sizing: border-box;
}

.route-public .public-page-frame {
	width: 100%;
	max-width: 1120px;
	margin: 0 auto;
	padding: clamp(1.35rem, 4vw, 3.5rem);
	background: var(--theme-article-bg, var(--theme-color-surface));
	color: var(--theme-article-text, var(--theme-color-text));
	border: 1px solid var(--theme-article-border, var(--theme-color-border));
	border-radius: var(--theme-article-radius, 4px);
	box-shadow: var(--theme-article-shadow, 0 18px 50px rgba(var(--gms-shadow-rgb), 0.08));
	box-sizing: border-box;
}

.route-public .public-page-header,
.route-public .content-header {
	margin: 0 0 clamp(1.75rem, 4vw, 3rem);
	padding: 0 0 clamp(1rem, 2vw, 1.5rem);
	border-bottom: 1px solid var(--theme-color-border);
}

.route-public .public-page-header .content-copy,
.route-public .content-header .content-copy,
.route-public .content-header .auth-copy {
	max-width: 70ch;
	margin-bottom: 0;
}

.route-public .content-kicker,
.route-public .page-kicker,
.route-public .admin-kicker {
	margin: 0 0 0.65rem;
	color: var(--theme-color-muted);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	line-height: 1.4;
	text-transform: uppercase;
}

.route-public .content-title {
	letter-spacing: var(--theme-h1-letter-spacing, -0.015em);
}

.route-public .content-card-title {
	letter-spacing: var(--theme-h2-letter-spacing, -0.01em);
}

.route-public .public-card-grid {
	gap: clamp(1rem, 2.5vw, 1.5rem);
}

.route-public .content-card {
	margin: 0;
	border-radius: var(--theme-content-card-radius, 3px);
}

.route-public .content-card-compact {
	gap: 0.85rem;
	padding: var(--theme-content-card-padding);
}

/* A link inside a heading must wear the HEADING's type, not the link type. The bare
   `a` rule near the top of this file applies --theme-link-font-size /
   -font-family / -font-weight to every link on the site, and those tokens carry
   real values from the theme payload - so a linked heading silently rendered at
   body size in the body font. Most visible on blog cards, where the post title sat
   at 16px next to a 34px heading style that never got to apply. font: inherit is
   deliberate here; do not narrow it to color alone. */
.route-public .content-card-title a,
.route-public .content-title a,
.route-public .content-section-title a {
	color: inherit;
	text-decoration: none;
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	font-style: inherit;
	line-height: inherit;
	letter-spacing: inherit;
}

.route-public .content-card-title a:hover,
.route-public .content-card-title a:focus-visible {
	color: var(--theme-link-hover-text, var(--theme-color-link_hover));
	text-decoration: underline;
}

.route-public .content-meta {
	gap: 0.45rem 0.9rem;
	margin: 0 0 1rem;
	color: var(--theme-color-muted);
	font-size: 0.88rem;
	line-height: 1.5;
}

.route-public .content-meta span + span::before {
	content: '/';
	margin-right: 0.9rem;
	color: var(--theme-color-border);
}

.route-public .content-chip-row {
	gap: 0.5rem;
	margin-top: 1rem;
}

.route-public .content-chip,
.route-public .content-pill {
	border-radius: var(--theme-meta-pill-radius, 3px);
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0.035em;
}

.route-public a.content-chip {
	display: inline-flex;
	align-items: center;
	box-sizing: border-box;
	padding: 0.45rem 0.8rem;
	margin: 0;
	border: 1px solid transparent;
	border-radius: var(--theme-meta-pill-radius, 3px);
	font-family: inherit;
	font-size: 0.82rem;
	font-weight: 600;
	font-style: normal;
	line-height: 1.4;
	letter-spacing: 0.035em;
	text-align: left;
	text-decoration: none;
	text-transform: none;
}

.route-public a.content-chip:hover,
.route-public a.content-chip:focus-visible {
	display: inline-flex;
	align-items: center;
	box-sizing: border-box;
	padding: 0.45rem 0.8rem;
	margin: 0;
	background: var(--theme-color-surface-alt, var(--theme-color-surface_alt));
	color: var(--theme-color-link-hover, var(--theme-color-link_hover));
	border: 1px solid var(--theme-color-accent);
	border-radius: var(--theme-meta-pill-radius, 3px);
	box-shadow: none;
	font-family: inherit;
	font-size: 0.82rem;
	font-weight: 600;
	font-style: normal;
	line-height: 1.4;
	letter-spacing: 0.035em;
	text-align: left;
	text-decoration: none;
	text-transform: none;
}

.route-public .content-chip-primary.is-active,
.route-public .content-chip-accent.is-active {
	background: var(--theme-color-accent);
	border-color: var(--theme-color-accent);
	color: var(--theme-color-button_text);
}

.route-public .content-media-figure,
.route-public .content-cover {
	margin: 0 0 clamp(1.5rem, 3vw, 2.5rem);
}

.route-public .content-media-figure img,
.route-public .content-media-image,
.route-public .cover-image {
	border-radius: 3px;
}

.route-blog .content-card .content-media-image {
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.route-blog .public-card-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.route-blog .public-card-grid .content-card {
	min-width: 0;
}

.route-blog .blog-post-frame > .content-rich {
	max-width: 76ch;
}

.route-blog .blog-post-frame .content-cover {
	max-width: 900px;
}

.route-public .content-lead {
	max-width: 70ch;
	color: var(--theme-color-text);
	font-size: clamp(1.05rem, 1.5vw, 1.18rem);
	line-height: 1.75;
}

.route-public .content-split-layout {
	gap: clamp(1rem, 3vw, 2rem);
}

.route-public .content-card-sticky {
	position: sticky;
	top: 1.25rem;
}

.route-public .admin-panel,
.route-public .auth-panel {
	background: var(--theme-content-card-bg, var(--theme-color-surface));
	color: var(--theme-content-card-text, var(--theme-color-text));
	border: 1px solid var(--theme-content-card-border, var(--theme-color-border));
	border-radius: var(--theme-content-card-radius, 3px);
	box-shadow: none;
}

.route-public .auth-shell {
	max-width: 760px;
	padding-top: 0;
	padding-bottom: 0;
}

.route-public .auth-panel {
	width: 100%;
	max-width: 760px;
	padding: clamp(1.35rem, 4vw, 3rem);
}

.route-account .auth-shell {
	max-width: 1120px;
}

.route-account .auth-panel {
	max-width: 1120px;
}

.route-public .settings-grid,
.route-public .account-password {
	min-height: 0;
	background: var(--theme-color-background);
	border: 1px solid var(--theme-color-border);
	border-radius: 3px;
	cursor: default;
}

.route-public .settings-field input,
.route-public .settings-field select,
.route-public .settings-field textarea,
.route-public .admin-form input,
.route-public .admin-form select,
.route-public .admin-form textarea {
	border: 1px solid var(--theme-color-border);
	border-radius: 3px;
	background: var(--theme-color-surface);
	color: var(--theme-color-text);
	box-shadow: none;
}

.route-public .settings-field input:focus,
.route-public .settings-field select:focus,
.route-public .settings-field textarea:focus,
.route-public .admin-form input:focus,
.route-public .admin-form select:focus,
.route-public .admin-form textarea:focus {
	outline: 2px solid var(--theme-color-accent-soft);
	outline-offset: 1px;
	border-color: var(--theme-color-accent);
}

.route-public .settings-submit button,
.route-public .admin-actions button,
.route-public .button-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: var(--theme-action-button-padding-y) var(--theme-action-button-padding-x);
	background: var(--theme-action-button-bg);
	color: var(--theme-action-button-text);
	border: 1px solid var(--theme-action-button-border);
	border-radius: var(--theme-action-button-radius, 3px);
	box-shadow: var(--theme-action-button-shadow);
	font: inherit;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
}

.route-public .settings-submit button:hover,
.route-public .settings-submit button:focus-visible,
.route-public .admin-actions button:hover,
.route-public .admin-actions button:focus-visible {
	background: var(--theme-action-button-hover-bg);
	color: var(--theme-action-button-hover-text);
	border-color: var(--theme-action-button-hover-border);
	box-shadow: var(--theme-action-button-hover-shadow);
}

.route-public .auth-secondary-button {
	padding: var(--theme-action-button-secondary-padding-y) var(--theme-action-button-secondary-padding-x);
	background: var(--theme-action-button-secondary-bg);
	color: var(--theme-action-button-secondary-text);
	border: 1px solid var(--theme-action-button-secondary-border);
	border-radius: var(--theme-action-button-secondary-radius, 3px);
	box-shadow: var(--theme-action-button-secondary-shadow);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.route-public .auth-secondary-button:hover,
.route-public .auth-secondary-button:focus-visible {
	background: var(--theme-action-button-secondary-hover-bg);
	color: var(--theme-action-button-secondary-hover-text);
	border-color: var(--theme-action-button-secondary-hover-border);
	box-shadow: var(--theme-action-button-secondary-hover-shadow);
}

.route-public .button-link {
	background: var(--theme-action-button-bg);
	border-color: var(--theme-action-button-border);
	color: var(--theme-action-button-text);
}

.route-public .button-link:hover,
.route-public .button-link:focus-visible {
	background: var(--theme-action-button-hover-bg);
	border-color: var(--theme-action-button-hover-border);
	color: var(--theme-action-button-hover-text);
}

.route-public .admin-alert {
	border: 1px solid var(--theme-color-border);
	border-radius: 3px;
	background: var(--theme-color-accent-soft);
	color: var(--theme-color-text);
}

.route-public .admin-alert-error {
	border-color: rgba(var(--gms-mane-top-rgb), 0.35);
	background: rgba(var(--gms-mane-top-rgb), 0.1);
	color: inherit;
}

.route-public .error-shell {
	min-height: 45vh;
	place-items: stretch;
}

.route-public .error-card {
	max-width: 860px;
}

.route-public .error-code {
	color: var(--theme-color-muted);
}

@media (max-width: 900px) {
.route-public .content-card-sticky {
		position: static;
	}

.route-blog .public-card-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
.route-public .public-page-shell {
		padding-left: 1rem;
		padding-right: 1rem;
	}

.route-public .public-page-frame,
	.route-public .auth-panel {
		padding: 1.25rem;
	}

.route-public .content-meta span + span::before {
		content: none;
	}

.route-public .content-meta span {
		width: 100%;
	}

.route-blog .public-card-grid {
		grid-template-columns: 1fr;
	}
}

.admin-filter-bar .settings-grid {
	grid-template-columns: repeat(4, 1fr);
	gap: 0.6rem;
}

.admin-filter-bar .settings-field {
	flex-direction: row;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 0;
}

.admin-filter-bar .settings-field span {
	white-space: nowrap;
	font-size: 0.82rem;
	color: var(--gms-green-gray);
	flex-shrink: 0;
}

.admin-filter-bar .settings-field input,
.admin-filter-bar .settings-field select {
	flex: 1;
	min-width: 0;
}

.admin-layout-main-leads .admin-panel,
.admin-layout-main-leads .admin-list-panel,
.admin-layout-main-leads .admin-editor-panel {
	padding: 1.25rem;
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.08);
	border-radius: 8px;
	box-sizing: border-box;
}

.admin-layout-main-leads .admin-panel-header,
.admin-layout-main-leads .admin-list-header,
.admin-layout-main-leads .admin-editor-header {
	align-items: center;
	padding-bottom: 0.9rem;
	border-bottom: 1px solid rgba(var(--gms-shadow-rgb), 0.08);
}

.admin-layout-main-leads .admin-copy {
	max-width: 82ch;
}

.admin-layout-main-leads .settings-grid {
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 0.7rem;
}

.admin-layout-main-leads .settings-field {
	min-width: 0;
	margin-bottom: 0;
}

.admin-layout-main-leads .settings-field-checkbox {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: flex-start;
	gap: 0.55rem;
	min-height: 2.4rem;
	padding: 0.45rem 0;
}

.admin-layout-main-leads .settings-field-checkbox input[type="checkbox"] {
	order: 0;
	flex: 0 0 auto;
	width: 1rem;
	min-width: 1rem;
	height: 1rem;
	margin: 0;
}

.admin-layout-main-leads .settings-field-checkbox span {
	order: 1;
	min-width: 0;
	line-height: 1.25;
	overflow-wrap: anywhere;
}

.admin-layout-main-leads .settings-field input,
.admin-layout-main-leads .settings-field select,
.admin-layout-main-leads .settings-field textarea {
	width: 100%;
	min-width: 0;
	max-width: 100%;
	overflow-wrap: anywhere;
}

.admin-layout-main-leads .settings-field textarea {
	resize: vertical;
}

.admin-layout-main-leads .button,
.admin-layout-main-leads .button-secondary {
	min-height: 2.4rem;
	white-space: normal;
	text-align: center;
}

.admin-layout-main-leads .admin-filter-bar .settings-grid {
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.admin-layout-main-leads .admin-filter-bar .settings-field {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
}

@container (max-width: 860px) {
	.admin-layout-main-leads .admin-two-col,
	.admin-layout-main-leads .admin-three-col {
		grid-template-columns: 1fr;
	}

	.admin-layout-main-leads .admin-panel-header,
	.admin-layout-main-leads .admin-list-header,
	.admin-layout-main-leads .admin-editor-header {
		align-items: stretch;
	}
}

@container (max-width: 620px) {
	.admin-layout-main-leads .admin-panel-actions,
	.admin-layout-main-leads .admin-filter-actions,
	.admin-layout-main-leads .leads-row-actions {
		display: grid;
		grid-template-columns: 1fr;
		justify-content: stretch;
	}

	.admin-layout-main-leads .admin-filter-bar .settings-field {
		grid-template-columns: 1fr;
	}
}

/* =============================================
   Homepage concept 02 refinement
   ============================================= */
.route-public.page-slug-index .shell > main {
	position: relative;
	padding: clamp(1rem, 2vw, 1.5rem) 0 clamp(3rem, 7vw, 5.5rem);
	background:
		linear-gradient(90deg, rgba(var(--gms-shadow-rgb), 0.045) 1px, transparent 1px),
		linear-gradient(180deg, rgba(var(--gms-shadow-rgb), 0.04) 1px, transparent 1px),
		linear-gradient(180deg, var(--gms-mint-1) 0%, var(--gms-mint-2) 56%, var(--gms-mint-2) 100%);
	background-size: 56px 56px, 56px 56px, auto;
}

.route-public.page-slug-index .content-article-home {
	width: min(1340px, 100%);
	max-width: 1340px;
	margin: 0 auto;
	padding: 0 clamp(1.25rem, 5vw, 4.5rem);
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	box-sizing: border-box;
}

.route-public.page-slug-index .content-header-home {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

.route-public.page-slug-index .content-header-home::after {
	content: none;
}

.route-public.page-slug-index .content-section-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1rem, 2.4vw, 1.65rem);
}

.route-public.page-slug-index .content-section-list > .content-block {
	position: relative;
	z-index: 1;
	margin: 0;
	box-sizing: border-box;
}

.route-public.page-slug-index .homepage-hero-section {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: minmax(0, 0.86fr) minmax(320px, 1.14fr);
	align-items: stretch;
	min-height: clamp(30rem, 55vw, 41rem);
	padding: 0;
	overflow: hidden;
	background: rgba(var(--gms-white-rgb), 0.9);
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.14);
	border-radius: 2px;
	box-shadow: 0 22px 55px rgba(var(--gms-shadow-rgb), 0.08);
}

.route-public.page-slug-index .homepage-hero-section::before,
.route-public.page-slug-index .homepage-hero-section::after {
	content: "";
	position: absolute;
	z-index: 3;
	width: 18px;
	height: 18px;
	pointer-events: none;
}

.route-public.page-slug-index .homepage-hero-section::before {
	top: 16px;
	left: 16px;
	border-top: 1.5px solid rgba(var(--gms-shadow-rgb), 0.4);
	border-left: 1.5px solid rgba(var(--gms-shadow-rgb), 0.4);
}

.route-public.page-slug-index .homepage-hero-section::after {
	right: 16px;
	bottom: 16px;
	border-right: 1.5px solid rgba(var(--gms-shadow-rgb), 0.4);
	border-bottom: 1.5px solid rgba(var(--gms-shadow-rgb), 0.4);
}

.route-public.page-slug-index .homepage-hero-copy {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: center;
	max-width: none;
	margin: 0;
	padding: clamp(2.2rem, 5vw, 4.4rem) clamp(1.5rem, 4vw, 3.75rem);
	background:
		linear-gradient(90deg, rgba(var(--gms-body-rgb), 0.98) 0%, rgba(var(--gms-body-rgb), 0.92) 74%, rgba(var(--gms-body-rgb), 0) 100%),
		linear-gradient(180deg, rgba(var(--gms-shadow-rgb), 0.05) 1px, transparent 1px);
	background-size: auto, 100% 44px;
}

.route-public.page-slug-index .homepage-hero-copy::after {
	content: "";
	display: block;
	width: min(190px, 42%);
	height: 1px;
	margin-top: clamp(1.35rem, 3vw, 2.2rem);
	background: var(--gms-gold);
	box-shadow: 28px 0 0 rgba(var(--gms-gold-rgb), 0.38);
}

.route-public.page-slug-index .homepage-hero-copy .content-eyebrow {
	margin-bottom: clamp(0.85rem, 2vw, 1.35rem);
	color: var(--gms-green-gray);
	font-size: 0.74rem;
	font-weight: 600;
	letter-spacing: 0.18em;
}

.route-public.page-slug-index .homepage-hero-copy h2 {
	max-width: 12.5ch;
	margin: 0;
	color: var(--gms-mane-3);
	font-family: 'Bodoni 16', Georgia, serif;
	font-size: clamp(3rem, 7.6vw, 6.7rem);
	font-weight: 400;
	line-height: 0.92;
	letter-spacing: 0;
}

.route-public.page-slug-index .homepage-hero-copy p:not(.content-eyebrow) {
	max-width: 34rem;
	margin-top: clamp(1rem, 2vw, 1.45rem);
	color: var(--gms-mane-2);
	font-size: clamp(1rem, 1.45vw, 1.18rem);
	line-height: 1.72;
}

.route-public.page-slug-index .homepage-hero-visual {
	position: relative;
	min-width: 0;
	min-height: 100%;
	margin: 0;
	overflow: hidden;
	background: var(--gms-sage-2);
}

.route-public.page-slug-index .homepage-hero-visual::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(var(--gms-body-rgb), 0.34) 0%, rgba(var(--gms-body-rgb), 0) 28%),
		linear-gradient(180deg, rgba(var(--gms-shadow-rgb), 0.08), rgba(var(--gms-shadow-rgb), 0));
	pointer-events: none;
}

.route-public.page-slug-index .homepage-hero-visual::after {
	content: "";
	position: absolute;
	right: clamp(1.15rem, 2.5vw, 2.3rem);
	bottom: clamp(1.1rem, 2.5vw, 2rem);
	z-index: 2;
	width: 46px;
	height: 5px;
	background: var(--gms-gold);
	box-shadow: 10px -12px 0 -1px var(--gms-gold), 20px 0 0 rgba(var(--gms-gold-rgb), 0.45);
	pointer-events: none;
}

.route-public.page-slug-index .homepage-hero-visual picture,
.route-public.page-slug-index .homepage-hero-visual img {
	display: block;
	width: 100%;
	height: 100%;
}

.route-public.page-slug-index .homepage-hero-visual img {
	object-fit: cover;
	object-position: 70% 50%;
}

.route-public.page-slug-index .content-block-key-services_overview,
.route-public.page-slug-index .content-block-key-seo_strategy {
	min-height: 100%;
	padding: clamp(1.45rem, 3vw, 2.45rem);
	background: rgba(var(--gms-white-rgb), 0.86);
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.14);
	border-radius: 2px;
	box-shadow: 0 16px 36px rgba(var(--gms-shadow-rgb), 0.06);
}

.route-public.page-slug-index .content-block-key-services_overview::before,
.route-public.page-slug-index .content-block-key-seo_strategy::before {
	content: "";
	position: absolute;
	top: 12px;
	right: 12px;
	width: 13px;
	height: 13px;
	border-top: 1.5px solid rgba(var(--gms-shadow-rgb), 0.3);
	border-right: 1.5px solid rgba(var(--gms-shadow-rgb), 0.3);
}

.route-public.page-slug-index .content-block-key-services_overview .content-section-title,
.route-public.page-slug-index .content-block-key-seo_strategy .content-section-title {
	max-width: 15ch;
	margin-bottom: 1rem;
	color: var(--gms-mane-3);
	font-size: clamp(1.8rem, 3vw, 2.45rem);
	line-height: 1.05;
}

.route-public.page-slug-index .content-block-key-services_overview .content-rich,
.route-public.page-slug-index .content-block-key-seo_strategy .content-rich {
	margin: 0;
}

.route-public.page-slug-index .content-block-key-services_overview .content-rich p,
.route-public.page-slug-index .content-block-key-seo_strategy .content-rich p {
	color: var(--gms-green-gray);
	font-size: 0.98rem;
	line-height: 1.62;
}

.route-public.page-slug-index .content-block-key-services_overview ul {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
	margin: 1.25rem 0 0;
	padding: 0;
	list-style: none;
}

.route-public.page-slug-index .content-block-key-services_overview li {
	position: relative;
	margin: 0;
	padding: 0.85rem 0.9rem 0.85rem 1rem;
	background: rgba(var(--gms-body-rgb), 0.54);
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.13);
	border-radius: 2px;
	color: var(--gms-mane-2);
}

.route-public.page-slug-index .content-block-key-services_overview li::before {
	content: "";
	position: absolute;
	top: 0.9rem;
	right: 0.85rem;
	width: 6px;
	height: 6px;
	background: var(--gms-gold);
	transform: rotate(45deg);
}

.route-public.page-slug-index .content-block-key-services_overview .b,
.route-public.page-slug-index .content-block-key-seo_strategy .b {
	color: var(--gms-mane-3);
	font-weight: 700;
}

.route-public.page-slug-index .content-block-key-cta_contact {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr);
	gap: clamp(1.25rem, 4vw, 3rem);
	align-items: center;
	padding: clamp(1.4rem, 3vw, 2.35rem) clamp(1.45rem, 4vw, 3.4rem);
	background:
		linear-gradient(90deg, rgba(var(--gms-shadow-rgb), 0.08) 1px, transparent 1px),
		linear-gradient(180deg, rgba(var(--gms-shadow-rgb), 0.055) 1px, transparent 1px),
		var(--gms-sage-4);
	background-size: 40px 40px, 40px 40px, auto;
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.16);
	border-left: 5px solid var(--gms-gold);
	border-radius: 2px;
	box-shadow: 0 18px 45px rgba(var(--gms-shadow-rgb), 0.07);
}

.route-public.page-slug-index .content-block-key-cta_contact .content-section-title {
	margin: 0;
	color: var(--gms-mane-3);
	font-size: clamp(1.9rem, 3.4vw, 2.7rem);
	line-height: 1.05;
}

.route-public.page-slug-index .content-block-key-cta_contact .content-rich {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: clamp(1rem, 3vw, 2rem);
	align-items: center;
	margin: 0;
}

.route-public.page-slug-index .content-block-key-cta_contact .content-rich p {
	margin: 0;
	color: var(--gms-mane-2);
	line-height: 1.62;
}

.route-public.page-slug-index .content-block-key-cta_contact .content-button-primary {
	background: var(--gms-mane-3);
	color: var(--gms-mint-2);
	border-color: var(--gms-mane-3);
	border-radius: 2px;
	box-shadow: none;
}

.route-public.page-slug-index .content-block-key-cta_contact .content-button-primary:hover,
.route-public.page-slug-index .content-block-key-cta_contact .content-button-primary:focus-visible {
	background: var(--gms-gold);
	border-color: var(--gms-gold);
	color: var(--gms-mane-3);
}

@media (max-width: 960px) {
.route-public.page-slug-index .content-section-list {
		grid-template-columns: 1fr;
	}

.route-public.page-slug-index .homepage-hero-section,
	.route-public.page-slug-index .content-block-key-cta_contact {
		grid-template-columns: 1fr;
	}

.route-public.page-slug-index .homepage-hero-visual {
		min-height: clamp(18rem, 58vw, 30rem);
	}

.route-public.page-slug-index .homepage-hero-copy {
		background: rgba(var(--gms-body-rgb), 0.96);
	}

.route-public.page-slug-index .content-block-key-cta_contact .content-rich {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 700px) {
.route-public.page-slug-index .shell > main {
		padding-top: 0.75rem;
	}

.route-public.page-slug-index .content-article-home {
		padding: 0 1rem;
	}

.route-public.page-slug-index .homepage-hero-section {
		min-height: 0;
	}

.route-public.page-slug-index .homepage-hero-copy {
		padding: clamp(2rem, 8vw, 3.2rem) 1.25rem;
	}

.route-public.page-slug-index .homepage-hero-copy h2 {
		font-size: clamp(2.75rem, 13vw, 4.45rem);
	}

.route-public.page-slug-index .homepage-hero-copy p:not(.content-eyebrow) {
		font-size: 1rem;
	}

.route-public.page-slug-index .homepage-hero-visual {
		min-height: clamp(19rem, 82vw, 29rem);
	}

.route-public.page-slug-index .homepage-hero-visual img {
		object-position: 50% 42%;
	}

.route-public.page-slug-index .content-block-key-services_overview,
	.route-public.page-slug-index .content-block-key-seo_strategy,
	.route-public.page-slug-index .content-block-key-cta_contact {
		padding: 1.25rem;
	}

.route-public.page-slug-index .content-block-key-services_overview ul {
		grid-template-columns: 1fr;
	}
}

/* =============================================
   Homepage concept 02 sample alignment
   ============================================= */
.route-public.page-slug-index .shell > main {
	padding: clamp(0.9rem, 2vw, 1.5rem) 0 0;
	background:
		linear-gradient(rgba(var(--gms-shadow-rgb), 0.05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(var(--gms-shadow-rgb), 0.05) 1px, transparent 1px),
		var(--gms-mint-1);
	background-size: 56px 56px, 56px 56px, auto;
}

.route-public.page-slug-index .content-article-home {
	width: min(1340px, 100%);
	max-width: 1340px;
	padding: 0 clamp(1.25rem, 5vw, 4.5rem);
}

.route-public.page-slug-index .content-section-list {
	gap: 0;
}

.route-public.page-slug-index .homepage-hero-section {
	position: relative;
	display: block;
	min-height: clamp(460px, 54vw, 620px);
	margin: 0;
	padding: 0;
	overflow: hidden;
	background: var(--gms-sage-4);
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.12);
	border-radius: 2px;
	box-shadow: none;
}

.route-public.page-slug-index .homepage-hero-copy {
	position: absolute;
	inset: 0 auto 0 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: min(720px, 62%);
	max-width: 720px;
	padding: 0 clamp(1.6rem, 4.2vw, 3.75rem) clamp(1.6rem, 4.2vw, 3.75rem);
	background: transparent;
}

.route-public.page-slug-index .homepage-hero-copy::before {
	content: "";
	position: absolute;
	inset: 0 -18vw 0 0;
	z-index: -1;
	background: linear-gradient(95deg, rgba(var(--gms-body-rgb), 0.98) 0%, rgba(var(--gms-body-rgb), 0.9) 35%, rgba(var(--gms-body-rgb), 0.48) 60%, rgba(var(--gms-body-rgb), 0) 100%);
}

.route-public.page-slug-index .homepage-hero-copy::after {
	width: clamp(70px, 15vw, 190px);
	margin-top: clamp(1.4rem, 3vw, 2.25rem);
	background: var(--gms-gold);
	box-shadow: -22px 0 0 -18px var(--gms-gold), 14px 0 0 rgba(var(--gms-gold-rgb), 0.42);
}

.route-public.page-slug-index .homepage-hero-copy .content-eyebrow {
	margin: 0 0 clamp(0.85rem, 2vw, 1.25rem);
	color: var(--gms-green-gray);
	font-family: 'Poppins', Arial, sans-serif;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.route-public.page-slug-index .homepage-hero-copy h2 {
	max-width: 8.8ch;
	color: var(--gms-mane-3);
	font-size: clamp(3.45rem, 7.1vw, 6.85rem);
	font-weight: 400;
	line-height: 0.92;
	letter-spacing: 0;
}

.route-public.page-slug-index .homepage-hero-copy p:not(.content-eyebrow) {
	max-width: 28rem;
	margin-top: clamp(1rem, 2vw, 1.45rem);
	color: var(--gms-mane-3);
	font-family: 'Poppins', Arial, sans-serif;
	font-size: clamp(0.98rem, 1.3vw, 1.08rem);
	line-height: 1.7;
}

.route-public.page-slug-index .homepage-hero-copy h2 + p + p {
	display: none;
}

.route-public.page-slug-index .homepage-hero-visual {
	position: absolute;
	inset: 0;
	min-height: 0;
	background: var(--gms-sage-4);
}

.route-public.page-slug-index .homepage-hero-visual::before {
	background: linear-gradient(180deg, rgba(var(--gms-shadow-rgb), 0.08), rgba(var(--gms-shadow-rgb), 0));
}

.route-public.page-slug-index .homepage-hero-visual img {
	object-fit: cover;
	object-position: 72% 50%;
}

.route-public.page-slug-index .homepage-hero-section::before,
.route-public.page-slug-index .homepage-hero-section::after {
	width: 18px;
	height: 18px;
}

.route-public.page-slug-index .content-block-key-services_overview {
	grid-column: 1 / -1;
	margin: clamp(0.65rem, 1.5vw, 1.1rem) 0 0;
	padding: clamp(1.25rem, 2.6vw, 1.9rem) clamp(1.5rem, 3.4vw, 3.25rem);
	background: var(--gms-sage-4);
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.14);
	border-radius: 2px;
	box-shadow: none;
}

.route-public.page-slug-index .content-block-key-services_overview::before {
	content: none;
}

.route-public.page-slug-index .content-block-key-services_overview .content-section-title {
	margin: 0 0 0.85rem;
	max-width: none;
	font-family: 'Poppins', Arial, sans-serif;
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	line-height: 1.35;
	text-transform: uppercase;
	color: var(--gms-green-gray);
}

.route-public.page-slug-index .content-block-key-services_overview .content-rich > p {
	max-width: 68ch;
	margin: 0 0 1.25rem;
	color: var(--gms-mane-3);
}

.route-public.page-slug-index .content-block-key-services_overview ul {
	counter-reset: homepage-feature;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(1.1rem, 2.4vw, 2.2rem);
	margin: 0;
}

.route-public.page-slug-index .content-block-key-services_overview li {
	counter-increment: homepage-feature;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 0.85rem;
	align-items: start;
	padding: 0;
	background: transparent;
	border: 0;
	color: var(--gms-mane-3);
}

.route-public.page-slug-index .content-block-key-services_overview li::before {
	content: counter(homepage-feature, decimal-leading-zero);
	position: static;
	width: auto;
	height: auto;
	padding: 0.45rem 0.55rem;
	background: transparent;
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.32);
	transform: none;
	font-family: 'Poppins', Arial, sans-serif;
	font-size: 0.78rem;
	font-weight: 600;
	line-height: 1;
}

.route-public.page-slug-index .content-block-key-services_overview li .b {
	display: block;
	font-family: 'Bodoni 16', Georgia, serif;
	font-size: clamp(1.05rem, 1.7vw, 1.28rem);
	font-weight: 400;
	line-height: 1.18;
}

.route-public.page-slug-index .content-block-key-services_overview li br {
	display: none;
}

.route-public.page-slug-index .content-block-key-services_overview li {
	font-family: 'Poppins', Arial, sans-serif;
	font-size: 0.78rem;
	line-height: 1.45;
	color: var(--gms-green-gray);
}

.route-public.page-slug-index .content-block-key-seo_strategy {
	grid-column: 1 / -1;
	margin: clamp(1.75rem, 4vw, 3.4rem) 0 0;
	padding: clamp(1.75rem, 3vw, 2.5rem);
	background: var(--gms-mint-2);
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.14);
	border-radius: 2px;
	box-shadow: none;
}

.route-public.page-slug-index .content-block-key-seo_strategy::before,
.route-public.page-slug-index .content-block-key-seo_strategy::after {
	content: "";
	position: absolute;
	width: 13px;
	height: 13px;
	pointer-events: none;
}

.route-public.page-slug-index .content-block-key-seo_strategy::before {
	top: 12px;
	right: 12px;
	border-top: 1.5px solid rgba(var(--gms-shadow-rgb), 0.3);
	border-right: 1.5px solid rgba(var(--gms-shadow-rgb), 0.3);
}

.route-public.page-slug-index .content-block-key-seo_strategy::after {
	left: 12px;
	bottom: 12px;
	border-left: 1.5px solid rgba(var(--gms-shadow-rgb), 0.3);
	border-bottom: 1.5px solid rgba(var(--gms-shadow-rgb), 0.3);
}

.route-public.page-slug-index .content-block-key-seo_strategy .content-section-title {
	max-width: none;
	font-size: clamp(2rem, 3vw, 2.7rem);
}

.route-public.page-slug-index .content-block-key-seo_strategy .content-rich {
	columns: 2 22rem;
	column-gap: clamp(1.5rem, 4vw, 3rem);
}

.route-public.page-slug-index .content-block-key-seo_strategy .content-rich p {
	break-inside: avoid;
}

.route-public.page-slug-index .content-block-key-cta_contact {
	margin: clamp(1.75rem, 4vw, 3.5rem) 0 0;
	padding: clamp(1.35rem, 3vw, 2.15rem) 0 0;
	background: transparent;
	border: 0;
	border-top: 1px solid rgba(var(--gms-shadow-rgb), 0.18);
	box-shadow: none;
}

.route-public.page-slug-index .content-block-key-cta_contact .content-section-title {
	font-size: clamp(1.85rem, 3vw, 2.45rem);
}

.route-public.page-slug-index .content-block-key-cta_contact .content-button-primary {
	padding: 0.85rem 1.4rem;
	background: transparent;
	color: var(--gms-mane-3);
	border: 1px solid var(--gms-gold);
	border-radius: 2px;
	font-family: 'Poppins', Arial, sans-serif;
	font-size: 0.74rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.route-public.page-slug-index .content-block-key-cta_contact .content-button-primary:hover,
.route-public.page-slug-index .content-block-key-cta_contact .content-button-primary:focus-visible {
	background: var(--gms-mane-3);
	border-color: var(--gms-mane-3);
	color: var(--gms-mint-1);
}

.route-public .site-footer {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0 clamp(1rem, 3vw, 2rem);
	width: min(1340px, 100%);
	max-width: 1340px;
	margin: clamp(1.4rem, 3vw, 2.15rem) auto 0;
	padding: 0 clamp(1.25rem, 5vw, 4.5rem) clamp(2.65rem, 6vw, 4.5rem);
	background: transparent;
	border: 0;
	box-shadow: none;
}

.route-public .footer-social-links {
	grid-column: 1 / -1;
	margin: 0;
	padding: 0;
}

.route-public .footer-social-links::after {
	content: "";
	display: block;
	height: 1px;
	margin: clamp(1.25rem, 3vw, 1.9rem) 0;
	background: rgba(var(--gms-shadow-rgb), 0.16);
}

.route-public .footer-social-links .footer-links-list {
	gap: 0.75rem;
}

.route-public .footer-social-links a {
	width: 38px;
	height: 38px;
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.22);
	border-radius: 50%;
	color: var(--gms-mane-3);
	font-size: 1rem;
	text-decoration: none;
	transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

.route-public .footer-social-links a:hover,
.route-public .footer-social-links a:focus-visible {
	background: var(--gms-mane-3);
	border-color: var(--gms-mane-3);
	color: var(--gms-mint-1);
}

.route-public .site-footer > .footer-links:not(.footer-social-links):not(.footer-copyright) {
	grid-column: 1;
	justify-self: start;
	margin: 0;
	padding: 0;
}

.route-public .site-footer > .footer-links:not(.footer-social-links):not(.footer-copyright) .footer-links-list {
	justify-content: flex-start;
	gap: clamp(1rem, 2.2vw, 1.9rem);
}

.route-public .site-footer > .footer-links:not(.footer-social-links):not(.footer-copyright) .footer-links-item::after {
	content: none;
}

.route-public .site-footer > .footer-links:not(.footer-social-links):not(.footer-copyright) a {
	color: var(--gms-green-gray);
	font-family: 'Poppins', Arial, sans-serif;
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.13em;
	line-height: 1.4;
	text-decoration: none;
	text-transform: uppercase;
}

.route-public .footer-copyright {
	grid-column: 2;
	justify-self: end;
	margin: 0;
	padding: 0;
	text-align: right;
}

.route-public .footer-copyright p {
	color: var(--gms-green-gray);
	font-family: 'Poppins', Arial, sans-serif;
	font-size: 0.68rem;
	letter-spacing: 0.08em;
	line-height: 1.4;
}

@media (max-width: 960px) {
.route-public.page-slug-index .homepage-hero-copy {
		width: min(680px, 72%);
	}

.route-public.page-slug-index .content-block-key-services_overview ul {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
.route-public.page-slug-index .shell > main {
		padding-top: 0.75rem;
	}

.route-public.page-slug-index .content-article-home {
		padding: 0 1rem;
	}

.route-public.page-slug-index .homepage-hero-section {
		min-height: 76vh;
	}

.route-public.page-slug-index .homepage-hero-copy {
		inset: 0 0 auto;
		width: 100%;
		max-width: none;
		padding: clamp(2rem, 8vw, 3.5rem) 1.35rem;
		justify-content: flex-start;
	}

.route-public.page-slug-index .homepage-hero-copy::before {
		inset: 0 0 -12vh 0;
		background: linear-gradient(180deg, rgba(var(--gms-body-rgb), 0.98) 0%, rgba(var(--gms-body-rgb), 0.84) 42%, rgba(var(--gms-body-rgb), 0) 100%);
	}

.route-public.page-slug-index .homepage-hero-copy h2 {
		max-width: 8.8ch;
		font-size: clamp(2.65rem, 12vw, 4.15rem);
	}

.route-public.page-slug-index .homepage-hero-copy p:not(.content-eyebrow) {
		max-width: 27rem;
	}

.route-public.page-slug-index .homepage-hero-visual img {
		object-position: 50% 42%;
	}

.route-public.page-slug-index .content-block-key-services_overview,
	.route-public.page-slug-index .content-block-key-seo_strategy {
		padding: 1.25rem;
	}

.route-public.page-slug-index .content-block-key-services_overview ul,
	.route-public.page-slug-index .content-block-key-seo_strategy .content-rich,
	.route-public.page-slug-index .content-block-key-cta_contact,
	.route-public.page-slug-index .content-block-key-cta_contact .content-rich,
	.route-public .site-footer {
		grid-template-columns: 1fr;
	}

.route-public.page-slug-index .content-block-key-seo_strategy .content-rich {
		columns: auto;
	}

.route-public.page-slug-index .content-block-key-cta_contact .content-rich p:last-child {
		text-align: left;
	}

.route-public .site-footer > .footer-links:not(.footer-social-links):not(.footer-copyright),
	.route-public .footer-copyright {
		grid-column: 1;
		justify-self: center;
		text-align: center;
	}

.route-public .site-footer > .footer-links:not(.footer-social-links):not(.footer-copyright) .footer-links-list {
		justify-content: center;
	}

.route-public .footer-copyright {
		margin-top: 1rem;
	}
}

/* =============================================
   Homepage concept 02 header correction
   ============================================= */
.route-public.page-slug-index .shell {
	background: var(--gms-mint-1);
}

.route-public.page-slug-index .site-header {
	position: relative;
	z-index: 10;
	width: min(1340px, 100%);
	max-width: 1340px;
	margin: 0 auto;
	padding: clamp(0.95rem, 2.4vw, 1.5rem) clamp(1.25rem, 5vw, 4.5rem);
	background: transparent;
	border: 0;
	border-bottom: 1px solid rgba(var(--gms-shadow-rgb), 0.14);
	box-shadow: none;
	box-sizing: border-box;
}

.route-public.page-slug-index .site-header-blocks {
	width: auto;
	min-height: 54px;
	margin: 0;
	padding: 0 !important;
}

.route-public.page-slug-index .site-header-block-kind-branding {
	width: auto;
	min-width: 0;
}

.route-public.page-slug-index .site-header-block-kind-branding .theme-block-canvas {
	position: relative;
	width: auto !important;
	min-width: 0;
	min-height: 54px !important;
	height: 54px !important;
	padding-left: 67px;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	overflow: visible;
}

.route-public.page-slug-index .site-header-block-kind-branding [data-block-node="heading"],
.route-public.page-slug-index .site-header-block-kind-branding [data-block-node="text"] {
	display: none !important;
}

.route-public.page-slug-index .site-header-block-kind-branding [data-block-node="image"] {
	left: 0 !important;
	top: 0 !important;
	width: 54px !important;
	height: 54px !important;
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.25);
	border-radius: 50%;
	background: var(--gms-mint-1);
	overflow: hidden !important;
}

.route-public.page-slug-index .site-header-block-kind-branding [data-block-node="image"] img {
	width: 118% !important;
	height: 118% !important;
	max-width: none !important;
	margin: -9% !important;
	object-fit: cover !important;
}

.route-public.page-slug-index .site-header-block-kind-branding .theme-block-canvas::after {
	content: "green mane studio";
	display: flex;
	align-items: center;
	height: 54px;
	color: var(--gms-mane-3);
	font-family: 'Poppins', Arial, sans-serif;
	font-size: 0.74rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	line-height: 1.3;
	text-transform: lowercase;
	white-space: nowrap;
}

@media (max-width: 700px) {
.route-public.page-slug-index .site-header {
		padding: 0.85rem 1rem;
	}

.route-public.page-slug-index .site-header-block-kind-branding .theme-block-canvas {
		padding-left: 56px;
	}

.route-public.page-slug-index .site-header-block-kind-branding [data-block-node="image"] {
		width: 44px !important;
		height: 44px !important;
	}

.route-public.page-slug-index .site-header-block-kind-branding .theme-block-canvas::after {
		height: 44px;
		max-width: 45vw;
		font-size: 0.68rem;
		overflow: hidden;
		text-overflow: ellipsis;
	}
}

/* =============================================
   Homepage concept 02 png-only correction
   ============================================= */
.route-public.page-slug-index .shell,
.route-public.page-slug-index .shell > main {
	background: linear-gradient(var(--gms-template-shell-bg), var(--gms-template-shell-bg)) var(--gms-white) !important;
}

.route-public.page-slug-index .homepage-hero-copy {
	background: transparent;
}

.route-public.page-slug-index .homepage-hero-section,
.route-public.page-slug-index .content-block-key-services_overview,
.route-public.page-slug-index .content-block-key-seo_strategy,
.route-public.page-slug-index .content-block-key-cta_contact,
.route-public.page-slug-index .site-footer {
	background-image: none !important;
}

.route-public.page-slug-index .homepage-hero-section {
	background: var(--gms-white);
	box-shadow: 0 18px 44px rgba(var(--gms-shadow-rgb), 0.055);
}

.route-public.page-slug-index .homepage-hero-copy::before {
	background: linear-gradient(95deg, rgba(var(--gms-white-rgb), 0.98) 0%, rgba(var(--gms-white-rgb), 0.9) 38%, rgba(var(--gms-white-rgb), 0.48) 61%, rgba(var(--gms-white-rgb), 0) 100%);
}

.route-public.page-slug-index .content-block-key-services_overview {
	background: var(--gms-white);
	box-shadow: 0 12px 30px rgba(var(--gms-shadow-rgb), 0.045);
}

.route-public.page-slug-index .content-block-key-seo_strategy {
	background: var(--gms-white);
	box-shadow: 0 12px 30px rgba(var(--gms-shadow-rgb), 0.045);
}

.route-public.page-slug-index .content-block-key-cta_contact {
	background: transparent;
}

@media (max-width: 700px) {
.route-public.page-slug-index .homepage-hero-copy::before {
		background: linear-gradient(180deg, rgba(var(--gms-white-rgb), 0.98) 0%, rgba(var(--gms-white-rgb), 0.84) 42%, rgba(var(--gms-white-rgb), 0) 100%);
	}
}

/* =============================================
   Homepage concept 02 width and readability correction
   ============================================= */
.route-public.page-slug-index .shell > main {
	padding: 1rem 0 0;
}

.route-public.page-slug-index .content-article-home {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0 2vw;
}

.route-public.page-slug-index .content-section-list {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(1.15rem, 3vw, 2.25rem);
	width: 100%;
	max-width: none;
}

.route-public.page-slug-index .content-section-list > .content-block {
	grid-column: 1 / -1;
	width: 100%;
	min-width: 0;
	max-width: none;
	margin-left: 0;
	margin-right: 0;
	box-sizing: border-box;
}

.route-public.page-slug-index .homepage-hero-section {
	width: 100%;
	min-height: clamp(470px, 58vw, 720px);
	margin: 0;
}

.route-public.page-slug-index .homepage-hero-visual,
.route-public.page-slug-index .homepage-hero-visual picture,
.route-public.page-slug-index .homepage-hero-visual img {
	width: 100%;
	height: 100%;
}

.route-public.page-slug-index .homepage-hero-visual img {
	object-fit: cover;
	object-position: center center;
}

.route-public.page-slug-index .homepage-hero-copy {
	width: min(760px, 58vw);
	max-width: 760px;
	min-width: min(92vw, 360px);
}

.route-public.page-slug-index .homepage-hero-copy h2 {
	max-width: 11ch;
	font-size: clamp(3.1rem, 7.4vw, 7.1rem);
}

.route-public.page-slug-index .homepage-hero-copy p:not(.content-eyebrow) {
	max-width: 36rem;
}

.route-public.page-slug-index .content-block-key-services_overview,
.route-public.page-slug-index .content-block-key-seo_strategy,
.route-public.page-slug-index .content-block-key-cta_contact {
	width: 100%;
	max-width: none;
	padding: clamp(1.4rem, 3vw, 2.5rem);
}

.route-public.page-slug-index .content-block-key-services_overview .content-rich,
.route-public.page-slug-index .content-block-key-seo_strategy .content-rich,
.route-public.page-slug-index .content-block-key-cta_contact .content-rich {
	display: block;
	width: 100%;
	min-width: 0;
	max-width: none;
	columns: auto;
}

.route-public.page-slug-index .content-block-key-services_overview .content-rich p,
.route-public.page-slug-index .content-block-key-seo_strategy .content-rich p,
.route-public.page-slug-index .content-block-key-cta_contact .content-rich p {
	width: auto;
	min-width: 0;
	max-width: 74ch;
	white-space: normal;
	word-break: normal;
	overflow-wrap: normal;
}

.route-public.page-slug-index .content-block-key-services_overview ul {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: clamp(1rem, 2vw, 1.75rem);
	width: 100%;
	min-width: 0;
}

.route-public.page-slug-index .content-block-key-services_overview li {
	min-width: 0;
	white-space: normal;
	word-break: normal;
	overflow-wrap: normal;
}

.route-public.page-slug-index .content-block-key-cta_contact {
	display: grid;
	grid-template-columns: minmax(220px, 0.55fr) minmax(320px, 1fr);
	gap: clamp(1rem, 3vw, 2.5rem);
	align-items: center;
}

.route-public.page-slug-index .content-block-key-cta_contact .content-rich {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: clamp(1rem, 3vw, 2rem);
	align-items: center;
}

@media (max-width: 900px) {
.route-public.page-slug-index .homepage-hero-copy {
		width: min(680px, 72vw);
	}

.route-public.page-slug-index .content-block-key-cta_contact,
	.route-public.page-slug-index .content-block-key-cta_contact .content-rich {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 700px) {
.route-public.page-slug-index .content-article-home {
		padding: 0 1rem;
	}

.route-public.page-slug-index .homepage-hero-section {
		min-height: clamp(560px, 92vh, 740px);
	}

.route-public.page-slug-index .homepage-hero-copy {
		width: 100%;
		min-width: 0;
	}

.route-public.page-slug-index .homepage-hero-copy h2 {
		font-size: clamp(2.55rem, 11vw, 4.25rem);
	}

.route-public.page-slug-index .homepage-hero-visual img {
		object-position: center center;
	}
}

.route-public.page-slug-index {
	background: var(--gms-sage-4);
}

.route-public.page-slug-index ::-webkit-scrollbar {
	width: 8px;
	height: 8px;
}

.route-public.page-slug-index ::-webkit-scrollbar-thumb {
	background: rgba(var(--gms-shadow-rgb), 0.22);
	border-radius: 8px;
}

.route-public.page-slug-index .shell {
	position: relative;
	min-height: 100vh;
	overflow-x: hidden;
	background: var(--gms-mint-1);
	color: var(--gms-mane-3);
	font-family: 'GMS Clean Spectral', serif;
}

.route-public.page-slug-index .shell::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	opacity: 0.45;
	background-image: linear-gradient(rgba(var(--gms-shadow-rgb), 0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(var(--gms-shadow-rgb), 0.05) 1px, transparent 1px);
	background-size: 56px 56px;
}

.route-public.page-slug-index .site-header,
.route-public.page-slug-index .gms-clean-home,
.route-public.page-slug-index .site-footer,
.route-public.page-slug-index .site-nav-panel {
	position: relative;
	z-index: 1;
}

.route-public.page-slug-index .site-header {
	z-index: 10;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: clamp(15px, 2.4vw, 24px) clamp(20px, 5vw, 72px);
	background: transparent;
	border: 0;
	border-bottom: 1px solid rgba(var(--gms-shadow-rgb), 0.14);
	border-radius: 0;
	box-shadow: none;
	box-sizing: border-box;
}

.route-public.page-slug-index .site-header-blocks {
	max-width: 1340px;
	min-height: 52px;
	margin: 0 auto;
	padding: 0 58px 0 0 !important;
	align-items: center;
}

.route-public.page-slug-index .site-header-block-kind-branding .theme-block-canvas {
	min-height: 52px !important;
	height: 52px !important;
	padding-left: 64px;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	overflow: visible;
}

.route-public.page-slug-index .site-header-block-kind-branding [data-block-node="heading"],
.route-public.page-slug-index .site-header-block-kind-branding [data-block-node="text"] {
	display: none !important;
}

.route-public.page-slug-index .site-header-block-kind-branding [data-block-node="image"] {
	left: 0 !important;
	top: 0 !important;
	width: 52px !important;
	height: 52px !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	overflow: visible !important;
}

.route-public.page-slug-index .site-header-block-kind-branding [data-block-node="image"] img {
	width: auto !important;
	height: 52px !important;
	max-width: none !important;
	margin: 0 !important;
	object-fit: contain !important;
}

.route-public.page-slug-index .site-header-block-kind-branding .theme-block-canvas::after {
	content: "green mane studio";
	display: flex;
	align-items: center;
	height: 52px;
	color: var(--gms-mane-3);
	font-family: 'GMS Clean Cormorant', serif;
	font-size: clamp(20px, 2vw, 26px);
	font-weight: 600;
	letter-spacing: 0.005em;
	line-height: 1;
	text-transform: lowercase;
}

.route-public.page-slug-index .nav-toggle,
.route-public.page-slug-index.shell:not(.shell-admin) .nav-toggle,
.route-public.page-slug-index .shell:not(.shell-admin) .nav-toggle {
	width: 48px;
	height: 38px;
	margin: 0;
	padding: 0;
	/* Bare glyph - keep in sync with the general public rule further down
	   (`.route-public .shell .nav-toggle`). This homepage copy is NOT redundant: its
	   third selector scores (0,5,0) against the general rule's (0,3,0), so it wins on
	   the homepage no matter what order they appear in. Changing only the general one
	   leaves the homepage hamburger on the old bordered styling - which is exactly
	   what happened when this was first fixed. Change BOTH. */
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--gms-mane-3);
}

/* The homepage cluster only differs in ink colour - position is shared with the general
   rule above, so it is deliberately NOT repeated here. */
.route-public.page-slug-index .site-header-tools .store-cart-button,
.route-public.page-slug-index .site-header-tools .theme-switch-button {
	color: var(--gms-mane-3);
}

#menu-icon {
	background: rgb(var(--gms-sage-4), .5);
	backdrop-filter: blur(3px);
}

.route-public.page-slug-index .nav-toggle .gms {
	font-size: 20px;
	line-height: 1;
}

.route-public.page-slug-index .site-nav-panel {
	position: fixed;
	top: 64px;
	right: clamp(20px, 5vw, 72px);
	width: min(320px, calc(100vw - 40px));
	max-height: calc(100vh - 82px);
	padding: 18px clamp(18px, 4vw, 26px);
	background: var(--gms-mint-1);
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.18);
	box-shadow: 0 16px 30px -22px rgba(var(--gms-shadow-rgb), 0.4);
	font-family: 'GMS Clean Archivo', sans-serif;
}

.route-public.page-slug-index .site-nav-item > a,
.route-public.page-slug-index .site-subnav-item > a,
.route-public.page-slug-index .site-nav-heading,
.route-public.page-slug-index .site-subnav-heading,
.route-public.page-slug-index .site-nav-slider-forward,
.route-public.page-slug-index .site-nav-slider-back {
	color: var(--gms-mane-3);
	font-family: 'GMS Clean Archivo', sans-serif;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
}

.route-public.page-slug-index .gms-clean-home {
	width: min(1340px, 100%);
	margin: 0 auto;
	padding: 0 clamp(20px, 5vw, 72px) clamp(28px, 4vw, 56px);
	box-sizing: border-box;
}

.route-public.page-slug-index .gms-clean-hero {
	position: relative;
	min-height: clamp(460px, 54vw, 620px);
	overflow: hidden;
}

.route-public.page-slug-index .gms-clean-hero picture,
.route-public.page-slug-index .gms-clean-hero img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
}

.route-public.page-slug-index .gms-clean-hero img {
	object-fit: cover;
	object-position: 72% 50%;
}

.route-public.page-slug-index .gms-clean-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(95deg, rgba(var(--gms-body-rgb), 0.77) 0%, #fff 13%, rgba(var(--gms-body-rgb), 0.52) 43%, rgba(var(--gms-body-rgb), 0) 62%);
}

.route-public.page-slug-index .gms-clean-hero-content {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 0 clamp(26px, 4.2vw, 60px) clamp(26px, 4.2vw, 60px);
	box-sizing: border-box;
}

.route-public.page-slug-index .gms-clean-hero-copy {
	max-width: 720px;
}

.route-public.page-slug-index .gms-clean-hero h1 {
	margin: 0;
	color: var(--gms-mane-3);
	font-family: 'GMS Clean Cormorant', serif;
	font-size: clamp(46px, 8.6vw, 110px);
	font-weight: 600;
	line-height: 0.92;
	letter-spacing: -0.012em;
}

.route-public.page-slug-index .gms-clean-hero p {
	max-width: 24ch;
	margin: clamp(16px, 2vw, 26px) 0 0;
	color: var(--gms-mane-3);
	font-size: clamp(17px, 2.2vw, 26px);
	line-height: 1.42;
}

.route-public.page-slug-index .gms-clean-ornament {
	display: flex;
	align-items: center;
	gap: 13px;
	margin-top: clamp(22px, 3vw, 36px);
}

.route-public.page-slug-index .gms-clean-diamond,
.route-public.page-slug-index .gms-clean-divider i {
	width: 9px;
	height: 9px;
	border: 1px solid var(--gms-mane-2);
	transform: rotate(45deg);
	flex: none;
}

.route-public.page-slug-index .gms-clean-rule,
.route-public.page-slug-index .gms-clean-divider span {
	height: 1px;
	background: var(--gms-mane-2);
	opacity: 0.75;
}

.route-public.page-slug-index .gms-clean-rule {
	width: clamp(70px, 15vw, 190px);
}

.route-public.page-slug-index .gms-clean-bars {
	display: flex;
	align-items: flex-end;
	gap: 3px;
}

.route-public.page-slug-index .gms-clean-bars span {
	width: 2px;
	background: var(--gms-mane-2);
}

.route-public.page-slug-index .gms-clean-bars span:nth-child(1),
.route-public.page-slug-index .gms-clean-bars span:nth-child(3) { height: 12px; }

.route-public.page-slug-index .gms-clean-bars span:nth-child(2) { height: 20px; }

.route-public.page-slug-index .gms-clean-bars span:nth-child(4) { height: 8px; }

.route-public.page-slug-index .gms-clean-corner {
	position: absolute;
	z-index: 3;
	width: 34px;
	height: 34px;
	border-color: rgba(var(--gms-shadow-rgb), 0.55);
	pointer-events: none;
}

.route-public.page-slug-index .gms-clean-corner-top {
	top: clamp(16px, 3vw, 34px);
	left: clamp(16px, 3vw, 34px);
	border-top: 1px solid;
	border-left: 1px solid;
}

.route-public.page-slug-index .gms-clean-corner-bottom {
	right: clamp(16px, 3vw, 34px);
	bottom: clamp(16px, 3vw, 34px);
	border-right: 1px solid;
	border-bottom: 1px solid;
}

.route-public.page-slug-index .gms-clean-process {
	margin-top: clamp(10px, 1.6vw, 18px);
	background: var(--gms-sage-4);
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.14);
	border-radius: 2px;
	padding: clamp(20px, 2.6vw, 30px) clamp(28px, 3.4vw, 52px);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(195px, 1fr));
	gap: clamp(20px, 2.6vw, 34px);
}

.route-public.page-slug-index .gms-clean-process article {
	display: flex;
	gap: 14px;
}

.route-public.page-slug-index .gms-clean-process article > span {
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.32);
	padding: 7px 9px;
	font-family: 'GMS Clean Archivo', sans-serif;
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
	align-self: flex-start;
}

.route-public.page-slug-index .gms-clean-process h2 {
	margin: 0;
	font-size: 15.5px;
	font-weight: 500;
	line-height: 1.25;
}

.route-public.page-slug-index .gms-clean-process p,
.route-public.page-slug-index .gms-clean-work-verbiage p,
.route-public.page-slug-index .gms-clean-work-header span {
	margin: 5px 0 0;
	color: var(--gms-green-gray);
	font-family: 'GMS Clean Archivo', sans-serif;
	font-size: 10.5px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.route-public.page-slug-index .gms-clean-services {
	margin-top: clamp(28px, 4vw, 54px);
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(16px, 2vw, 24px);
}

.route-public.page-slug-index .gms-clean-services article {
	position: relative;
	min-height: 304px;
	background: var(--gms-mint-2);
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.15);
	border-radius: 2px;
	padding: clamp(22px, 2.7vw, 34px);
	display: flex;
	flex-direction: column;
}

.route-public.page-slug-index .gms-clean-service-icon {
	width: 68px;
	height: 68px;
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.28);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--gms-mane-3);
}

.route-public.page-slug-index .gms-clean-code-icon {
	font-family: 'GMS Clean Archivo', sans-serif;
	font-size: 19px;
	font-weight: 600;
	letter-spacing: 0.01em;
}

.route-public.page-slug-index .gms-clean-services h2,
.route-public.page-slug-index .gms-clean-work-verbiage h3 {
	margin: clamp(20px, 2vw, 26px) 0 0;
	color: var(--gms-mane-3);
	font-family: 'GMS Clean Cormorant', serif;
	font-size: clamp(25px, 2.4vw, 31px);
	font-weight: 600;
	line-height: 1.04;
}

.route-public.page-slug-index .gms-clean-services p {
	margin: 11px 0 0;
	color: var(--gms-green-gray);
	font-size: 15px;
	line-height: 1.55;
}

.route-public.page-slug-index .gms-clean-card-rule {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: auto;
	padding-top: 20px;
}

.route-public.page-slug-index .gms-clean-card-rule span:first-child {
	color: var(--gms-mane-2);
	font-family: 'GMS Clean Archivo', sans-serif;
	font-size: 18px;
	line-height: 1;
}

.route-public.page-slug-index .gms-clean-card-rule span:last-child {
	flex: 1;
	height: 1px;
	background: rgba(var(--gms-shadow-rgb), 0.45);
}

.route-public.page-slug-index .gms-clean-work {
	margin-top: clamp(30px, 5vw, 70px);
}

.route-public.page-slug-index .gms-clean-work-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(16px, 2vw, 24px);
}

.route-public.page-slug-index .gms-clean-work-grid article {
	position: relative;
	aspect-ratio: 1.12 / 1;
	overflow: hidden;
	background: var(--gms-sage-4);
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.12);
}

.route-public.page-slug-index .gms-clean-work-grid img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}

.route-public.page-slug-index .gms-clean-work-verbiage {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(16px, 2vw, 24px);
	margin-top: 13px;
}

.route-public.page-slug-index .gms-clean-work-verbiage h3 {
	margin: 0;
	font-size: 23px;
}

.route-public.page-slug-index .gms-clean-work-verbiage p {
	letter-spacing: 0.12em;
}

.route-public.page-slug-index .gms-clean-work-header {
	display: flex;
	align-items: center;
	margin-top: clamp(22px, 3vw, 36px);
}

.route-public.page-slug-index .gms-clean-work-header span {
	margin: 0;
	font-size: 11px;
	letter-spacing: 0.2em;
}

.route-public.page-slug-index .gms-clean-divider {
	margin-top: clamp(38px, 5vw, 66px);
	display: flex;
	align-items: center;
	gap: 18px;
}

.route-public.page-slug-index .gms-clean-divider span {
	flex: 1;
	background: rgba(var(--gms-shadow-rgb), 0.18);
}

.route-public.page-slug-index .site-footer {
	position: relative;
	z-index: 1;
	width: min(1340px, 100%);
	max-width: 1340px;
	margin: clamp(22px, 3vw, 34px) auto 0;
	padding: 0 clamp(20px, 5vw, 72px) clamp(42px, 6vw, 72px);
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	box-sizing: border-box;
}

.route-public.page-slug-index .site-footer .footer-links {
	margin: 0;
	padding: 0;
}

.route-public.page-slug-index .footer-social-links .footer-links-list {
	display: flex;
	justify-content: center;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.route-public.page-slug-index .footer-social-links .footer-links-item {
	margin: 0;
}

.route-public.page-slug-index .footer-social-links a {
	width: 38px;
	height: 38px;
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.22);
	border-radius: 50%;
	display: grid;
	place-items: center;
	color: var(--gms-mane-3);
	font-size: 20px;
	line-height: 1;
	text-decoration: none;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.route-public.page-slug-index .footer-social-links a:hover,
.route-public.page-slug-index .footer-social-links a:focus-visible {
	border-color: var(--gms-mane-3);
	background: var(--gms-mane-3);
	color: var(--gms-mint-1);
}

/*
.route-public.page-slug-index .site-footer > .footer-links:not(.footer-social-links):not(.footer-copyright) {
	border-top: 1px solid rgba(var(--gms-shadow-rgb), 0.16);
	margin-top: clamp(20px, 3vw, 30px);
	padding-top: clamp(20px, 3vw, 30px);
}
*/
.route-public.page-slug-index .site-footer > .footer-links:not(.footer-social-links):not(.footer-copyright) .footer-links-list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: clamp(16px, 2.2vw, 30px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.route-public.page-slug-index .site-footer > .footer-links:not(.footer-social-links):not(.footer-copyright) a,
.route-public.page-slug-index .footer-copyright {
	color: var(--gms-green-gray);
	font-family: 'GMS Clean Archivo', sans-serif;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.13em;
	line-height: 1.3;
	text-decoration: none;
	text-transform: uppercase;
	transition: color 0.2s;
}

.route-public.page-slug-index .site-footer > .footer-links:not(.footer-social-links):not(.footer-copyright) a:hover,
.route-public.page-slug-index .site-footer > .footer-links:not(.footer-social-links):not(.footer-copyright) a:focus-visible {
	color: var(--gms-mane-3);
}

.route-public.page-slug-index .footer-copyright {
	margin-top: 16px;
	color: var(--gms-green-gray);
	font-weight: 400;
	letter-spacing: 0.08em;
	text-transform: none;
}

@media (max-width: 900px) {
.route-public.page-slug-index .gms-clean-services,
	.route-public.page-slug-index .gms-clean-work-grid,
	.route-public.page-slug-index .gms-clean-work-verbiage {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 719px) {
.route-public.page-slug-index .site-header {
		padding: 16px 20px;
	}

.route-public.page-slug-index .site-header-blocks {
		padding-right: 58px !important;
	}

.route-public.page-slug-index .site-header-block-kind-branding .theme-block-canvas {
		padding-left: 52px;
	}

.route-public.page-slug-index .site-header-block-kind-branding [data-block-node="image"],
	.route-public.page-slug-index .site-header-block-kind-branding [data-block-node="image"] img {
		height: 40px !important;
	}

.route-public.page-slug-index .site-header-block-kind-branding .theme-block-canvas::after {
		height: 40px;
		font-size: 20px;
	}

.route-public.page-slug-index .site-header-tools {
		top: 16px;
		right: 20px;
	}

.route-public.page-slug-index .site-nav-panel {
		top: 66px;
		right: 20px;
	}

.route-public.page-slug-index .gms-clean-home {
		padding: 0 20px clamp(26px, 6vw, 40px);
	}

.route-public.page-slug-index .gms-clean-hero {
		min-height: 76vh;
	}

.route-public.page-slug-index .gms-clean-hero img {
		object-position: 50% 42%;
	}

.route-public.page-slug-index .gms-clean-hero::after {
		background: linear-gradient(178deg, rgba(var(--gms-body-rgb), 0.97) 0%, rgba(var(--gms-body-rgb), 0.86) 26%, rgba(var(--gms-body-rgb), 0.28) 47%, rgba(var(--gms-body-rgb), 0) 64%);
	}

.route-public.page-slug-index .gms-clean-hero-content {
		justify-content: flex-start;
		padding-top: clamp(28px, 8vw, 56px);
	}

.route-public.page-slug-index .gms-clean-process,
	.route-public.page-slug-index .gms-clean-services article {
		padding: 22px;
	}
}

/* =============================================
   GMS clean global public theme - 2026-06-30
   Uses ..samples/example_template/index_clean.html as the visual source.
   ============================================= */
body.route-public {
	--gms-template-bg: var(--gms-mint-1);
	/* mint-1 at 25% - painted over a white base in the .shell rule */
	--gms-template-shell-bg: rgba(227, 240, 223, 0.25);
	--gms-template-outer-bg: var(--gms-sage-4);
	--gms-template-panel: var(--gms-mint-2);
	--gms-template-panel-alt: var(--gms-sage-4);
	--gms-template-ink: var(--gms-mane-3);
	--gms-template-body: var(--gms-green-gray);
	--gms-template-muted: var(--gms-green-gray);
	--gms-template-accent: var(--gms-mane-2);
	--gms-template-line: rgba(var(--gms-shadow-rgb), 0.16);
	background: var(--gms-template-outer-bg) !important;
	color: var(--gms-template-ink);
	font-family: 'GMS Clean Spectral', serif;
}

/* Dark mode for the public clean theme.
   data-theme-mode lives on <html>; the public palette lives on body.route-public
   and is built from the fixed light --gms-* palette, so it never flipped when the
   theme switcher toggled dark. Re-map the --gms-template-* surfaces (plus the
   shadow rgb triplet used for borders/dividers) to dark values here. Mirrors the
   selector pattern ThemeLibrary uses for the --theme-* tokens. */
html[data-theme-mode="dark"] body.route-public {
	--gms-template-outer-bg: #0a1410;
	--gms-template-bg: #0e1b13;
	--gms-template-shell-bg: #0e1b13;
	--gms-template-panel: #15281c;
	--gms-template-panel-alt: #1a3323;
	--gms-template-ink: #e7f2e6;
	--gms-template-body: #bcd4c0;
	--gms-template-muted: #93b199;
	--gms-template-accent: #37c46b;
	--gms-template-line: rgba(231, 242, 230, 0.14);
	--gms-shadow-rgb: 205, 230, 210;
}

@media (prefers-color-scheme: dark) {
html:not([data-theme-mode="light"]) body.route-public {
		--gms-template-outer-bg: #0a1410;
		--gms-template-bg: #0e1b13;
		--gms-template-shell-bg: #0e1b13;
		--gms-template-panel: #15281c;
		--gms-template-panel-alt: #1a3323;
		--gms-template-ink: #e7f2e6;
		--gms-template-body: #bcd4c0;
		--gms-template-muted: #93b199;
		--gms-template-accent: #37c46b;
		--gms-template-line: rgba(231, 242, 230, 0.14);
		--gms-shadow-rgb: 205, 230, 210;
	}
}

/* The homepage hero sits on a light photo with a light left gradient in BOTH
   modes, so its heading must stay dark even in dark mode (the sub-lede already
   uses --gms-mane-3 and stays dark). */
html[data-theme-mode="dark"] body.route-public .hero h1 {
	color: var(--gms-mane-3);
}

@media (prefers-color-scheme: dark) {
html:not([data-theme-mode="light"]) body.route-public .hero h1 {
		color: var(--gms-mane-3);
	}
}

/* Dark mode: public form fields default to a near-white bg + inherited (now light)
   text -> light-on-light. Theme them dark so typed text/placeholder stay readable. */
html[data-theme-mode="dark"] body.route-public .content-form input:not([type="checkbox"]):not([type="radio"]),
html[data-theme-mode="dark"] body.route-public .content-form select,
html[data-theme-mode="dark"] body.route-public .content-form textarea {
	background: rgba(255, 255, 255, 0.06);
	color: var(--gms-template-ink);
	border-color: rgba(231, 242, 230, 0.22);
}

html[data-theme-mode="dark"] body.route-public .content-form ::placeholder {
	color: rgba(231, 242, 230, 0.5);
}

@media (prefers-color-scheme: dark) {
html:not([data-theme-mode="light"]) body.route-public .content-form input:not([type="checkbox"]):not([type="radio"]),
	html:not([data-theme-mode="light"]) body.route-public .content-form select,
	html:not([data-theme-mode="light"]) body.route-public .content-form textarea {
		background: rgba(255, 255, 255, 0.06);
		color: var(--gms-template-ink);
		border-color: rgba(231, 242, 230, 0.22);
	}

html:not([data-theme-mode="light"]) body.route-public .content-form ::placeholder {
		color: rgba(231, 242, 230, 0.5);
	}
}

body.route-public ::selection {
	background: var(--gms-template-ink);
	color: var(--gms-template-bg);
}

body.route-public ::-webkit-scrollbar {
	width: 8px;
	height: 8px;
}

body.route-public ::-webkit-scrollbar-thumb {
	background: rgba(var(--gms-shadow-rgb), 0.22);
	border-radius: 8px;
}

.route-public .shell {
	position: relative;
	min-height: 100vh;
	overflow-x: hidden;
	background: linear-gradient(var(--gms-template-shell-bg), var(--gms-template-shell-bg)) var(--gms-white) !important;
	color: var(--gms-template-ink);
	font-family: 'GMS Clean Spectral', serif;
}

.route-public .shell::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	opacity: 0.45;
	background-image: linear-gradient(rgba(var(--gms-shadow-rgb), 0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(var(--gms-shadow-rgb), 0.05) 1px, transparent 1px);
	background-size: 56px 56px;
}

.route-public .shell > .site-header,
.route-public .shell > main,
.route-public .shell > .site-footer,
.route-public .shell > .site-nav-panel,
.route-public .auth-modal-backdrop {
	position: relative;
	z-index: 1;
}

.route-public .shell .site-header {
	z-index: 10;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: clamp(15px, 2.4vw, 24px) clamp(20px, 5vw, 72px);
	background: transparent !important;
	border: 0;
	border-bottom: 1px solid rgba(var(--gms-shadow-rgb), 0.14);
	border-radius: 0;
	box-shadow: none;
	box-sizing: border-box;
}

.route-public .shell .site-header-blocks {
	width: 100%;
	max-width: 1340px;
	min-height: 52px;
	margin: 0 auto;
	padding: 0 58px 0 0 !important;
	align-items: center;
}

.route-public .shell .site-header-block-kind-branding .theme-block-canvas {
	min-height: 52px !important;
	height: 52px !important;
	padding-left: 64px;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	overflow: visible;
}

.route-public .shell .site-header-block-kind-branding [data-block-node="heading"],
.route-public .shell .site-header-block-kind-branding [data-block-node="text"] {
	display: none !important;
}

.route-public .shell .site-header-block-kind-branding [data-block-node="image"] {
	left: 0 !important;
	top: 0 !important;
	width: 52px !important;
	height: 52px !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	overflow: visible !important;
}

.route-public .shell .site-header-block-kind-branding [data-block-node="image"] img {
	width: auto !important;
	height: 52px !important;
	max-width: none !important;
	margin: 0 !important;
	object-fit: contain !important;
}

.route-public .shell .site-header-block-kind-branding .theme-block-canvas::after {
	content: "green mane studio";
	display: flex;
	align-items: center;
	height: 52px;
	color: var(--gms-template-ink);
	font-family: 'GMS Clean Cormorant', serif;
	font-size: clamp(20px, 2vw, 26px);
	font-weight: 600;
	letter-spacing: 0.005em;
	line-height: 1;
	text-transform: lowercase;
}

.route-public .shell .nav-toggle,
.route-public .shell:not(.shell-admin) .nav-toggle {
	width: 48px;
	height: 38px;
	margin: 0;
	padding: 0;
	/* Bare glyph, to match the theme switch beside it - no border, no chip. The
	   width/height stay: they are an invisible 48x38 tap target (the glyph itself is
	   only 20px), which is what keeps this usable on a phone. Do not collapse them
	   to shrink-wrap the glyph. NOTE the chip this overrides is NOT in this file - it
	   is `.shell:not(.shell-admin) .nav-toggle` in the inline <style> block of
	   templates/layout.php (~line 1814), which paints a white surface, 1px border,
	   10px radius, 6px/9px padding and a drop shadow. That is why the resets below
	   must stay explicit rather than being deleted as "already 0". */
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--gms-template-ink);
}

.route-public .shell .site-header-tools {
	position: fixed;
	top: 16px;
	right: clamp(20px, 5vw, 72px);
	z-index: 1401;
}

.route-public .shell .site-header-tools .store-cart-button,
.route-public .shell .site-header-tools .theme-switch-button {
	color: var(--gms-template-ink);
}

.route-public .shell .nav-toggle .gms {
	font-size: 20px;
	line-height: 1;
}

.route-public .shell .site-nav-panel {
	position: fixed;
	top: 64px;
	right: clamp(20px, 5vw, 72px);
	width: min(320px, calc(100vw - 40px));
	max-height: calc(100vh - 82px);
	padding: 18px clamp(18px, 4vw, 26px);
	background: var(--gms-template-bg);
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.18);
	box-shadow: 0 16px 30px -22px rgba(var(--gms-shadow-rgb), 0.4);
	font-family: 'GMS Clean Archivo', sans-serif;
	z-index: 1399;
}

.route-public .shell .site-nav-item > a,
.route-public .shell .site-subnav-item > a,
.route-public .shell .site-nav-heading,
.route-public .shell .site-subnav-heading,
.route-public .shell .site-nav-slider-forward,
.route-public .shell .site-nav-slider-back {
	color: var(--gms-template-ink);
	font-family: 'GMS Clean Archivo', sans-serif;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
}

.route-public #themeSwitchCont {
	z-index: 2000;
}

.route-public #themeSwitchCont.theme-switch-button {
	color: var(--gms-template-ink);
}

.route-public .shell > main.clean-index-main,
.route-public .hero-section,
.route-public .feature-section,
.route-public .cards-section,
.route-public .portfolio-section,
.route-public .divider,
.route-public .shell > .site-footer {
	max-width: 1340px;
	margin-left: auto;
	margin-right: auto;
	padding-left: clamp(20px, 5vw, 72px);
	padding-right: clamp(20px, 5vw, 72px);
	box-sizing: border-box;
}

.route-public .shell > main.clean-index-main {
	width: 100%;
	padding-top: 0;
	padding-bottom: clamp(28px, 4vw, 56px);
}

.route-public .hero-section {
	padding-top: clamp(14px, 2vw, 24px);
}

.route-public .hero {
	position: relative;
	min-height: clamp(460px, 54vw, 620px);
	overflow: hidden;
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.12);
	border-radius: 2px;
}

.route-public .hero picture,
.route-public .hero img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
}

.route-public .hero img {
	object-fit: cover;
	object-position: 72% 50%;
}

.route-public .hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(95deg, rgba(var(--gms-body-rgb), 0.77) 0%, #fff 13%, rgba(var(--gms-body-rgb), 0.52) 43%, rgba(var(--gms-body-rgb), 0) 62%);
}

.route-public .hero-content {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 0 clamp(26px, 4.2vw, 60px) clamp(26px, 4.2vw, 60px);
	box-sizing: border-box;
}

.route-public .hero-copy {
	max-width: 720px;
}

.route-public .hero h1 {
	margin: 0;
	color: var(--gms-template-ink);
	font-family: 'GMS Clean Cormorant', serif;
	font-size: clamp(46px, 8.6vw, 110px);
	font-weight: 600;
	line-height: 0.92;
	letter-spacing: 0;
}

.route-public .lede {
	max-width: 24ch;
	margin: clamp(16px, 2vw, 26px) 0 0;
	color: var(--gms-mane-3);
	font-size: clamp(17px, 2.2vw, 26px);
	line-height: 1.42;
}

.route-public .ornament,
.route-public .divider-inner {
	display: flex;
	align-items: center;
	gap: 13px;
}

.route-public .ornament {
	margin-top: clamp(22px, 3vw, 36px);
}

.route-public .diamond,
.route-public .divider .diamond {
	width: 9px;
	height: 9px;
	border: 1px solid var(--gms-template-accent);
	transform: rotate(45deg);
	flex: none;
}

.route-public .ornament .rule,
.route-public .divider .rule {
	height: 1px;
	background: var(--gms-template-accent);
	opacity: 0.75;
}

.route-public .ornament .rule {
	width: clamp(70px, 15vw, 190px);
}

.route-public .bars,
.route-public .hero-mini-bars {
	display: flex;
	align-items: flex-end;
	gap: 3px;
}

.route-public .bars span,
.route-public .hero-mini-bars span {
	width: 2px;
	background: var(--gms-template-accent);
}

.route-public .bars span:nth-child(1),
.route-public .bars span:nth-child(3) { height: 9px; }

.route-public .bars span:nth-child(2) { height: 13px; }

.route-public .bars span:nth-child(4) { height: 15px; }

.route-public .blueprint-corner {
	position: absolute;
	z-index: 3;
	width: 18px;
	height: 18px;
	pointer-events: none;
}

.route-public .hero-corner-top {
	top: 16px;
	left: 16px;
	border-top: 1.5px solid rgba(var(--gms-shadow-rgb), 0.4);
	border-left: 1.5px solid rgba(var(--gms-shadow-rgb), 0.4);
}

.route-public .hero-corner-bottom {
	right: 16px;
	bottom: 16px;
	border-right: 1.5px solid rgba(var(--gms-shadow-rgb), 0.4);
	border-bottom: 1.5px solid rgba(var(--gms-shadow-rgb), 0.4);
}

.route-public .hero-mini-bars {
	position: absolute;
	right: 46px;
	bottom: 18px;
	z-index: 3;
}

.route-public .hero-mini-bars span {
	width: 3px;
}

.route-public .hero-mini-bars span:nth-child(1),
.route-public .hero-mini-bars span:nth-child(3) { height: 10px; }

.route-public .hero-mini-bars span:nth-child(2) { height: 16px; }

.route-public .feature-section {
	margin-top: clamp(10px, 1.6vw, 18px);
}

.route-public .feature-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(195px, 1fr));
	gap: clamp(20px, 2.6vw, 34px);
	padding: clamp(20px, 2.6vw, 30px) clamp(28px, 3.4vw, 52px);
	background: var(--gms-template-panel-alt);
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.14);
	border-radius: 2px;
}

.route-public .feature {
	display: flex;
	gap: 14px;
}

.route-public .feature-num {
	align-self: flex-start;
	padding: 7px 9px;
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.32);
	font-family: 'GMS Clean Archivo', sans-serif;
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
}

.route-public .feature-title {
	margin: 0;
	font-size: 15.5px;
	font-weight: 500;
	line-height: 1.25;
}

.route-public .feature-sub,
.route-public .section-kicker,
.route-public .portfolio-cat {
	margin: 5px 0 0;
	color: var(--gms-template-muted);
	font-family: 'GMS Clean Archivo', sans-serif;
	font-size: 10.5px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.route-public .cards-section {
	margin-top: clamp(28px, 4vw, 54px);
}

.route-public .cards,
.route-public .portfolio-scroller {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(16px, 2vw, 24px);
}

.route-public .service-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 304px;
	padding: clamp(22px, 2.7vw, 34px);
	background: var(--gms-template-panel);
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.15);
	border-radius: 2px;
	box-shadow: none;
}

.route-public .service-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 68px;
	height: 68px;
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.28);
	border-radius: 50%;
	color: var(--gms-template-ink);
}

.route-public .code-icon {
	font-family: 'GMS Clean Archivo', sans-serif;
	font-size: 19px;
	font-weight: 600;
}

.route-public .service-card h3,
.route-public .portfolio-title {
	margin: clamp(20px, 2vw, 26px) 0 0;
	color: var(--gms-template-ink);
	font-family: 'GMS Clean Cormorant', serif;
	font-size: clamp(25px, 2.4vw, 31px);
	font-weight: 600;
	line-height: 1.04;
}

.route-public .service-card p {
	margin: 11px 0 0;
	color: var(--gms-template-body);
	font-size: 15px;
	line-height: 1.55;
}

.route-public .card-spacer {
	flex: 1;
}

.route-public .card-rule {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: auto;
	padding-top: 20px;
}

.route-public .card-rule span:first-child {
	color: var(--gms-template-accent);
	font-family: 'GMS Clean Archivo', sans-serif;
	font-size: 18px;
	line-height: 1;
}

.route-public .card-rule span:last-child {
	flex: 1;
	height: 1px;
	background: rgba(var(--gms-shadow-rgb), 0.45);
}

.route-public .portfolio-section {
	margin-top: clamp(30px, 5vw, 70px);
}

.route-public .section-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 16px;
}

.route-public .portfolio-item {
	min-width: 0;
}

.route-public .portfolio-image {
	position: relative;
	aspect-ratio: 1.12 / 1;
	overflow: hidden;
	background: var(--gms-template-panel-alt);
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.12);
}

.route-public .portfolio-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.route-public .portfolio-title {
	margin-top: 13px;
	font-size: 23px;
}

.route-public .portfolio-cat {
	display: block;
	letter-spacing: 0.12em;
}

.route-public .divider {
	margin-top: clamp(38px, 5vw, 66px);
}

.route-public .divider .rule {
	flex: 1;
	background: rgba(var(--gms-shadow-rgb), 0.18);
}

.route-public .shell > main:not(.clean-index-main) {
	width: min(1340px, 100%);
	margin: 0 auto;
	padding: clamp(30px, 5vw, 64px) clamp(20px, 5vw, 72px) clamp(42px, 6vw, 72px);
	box-sizing: border-box;
}

.route-public .content-panel,
.route-public .public-page-shell {
	max-width: none;
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
}

.route-public .content-header {
	margin: 0 0 clamp(24px, 4vw, 42px);
	padding: 0 0 clamp(18px, 3vw, 30px);
	border-bottom: 1px solid rgba(var(--gms-shadow-rgb), 0.16);
}

.route-public .content-title {
	margin: 0;
	color: var(--gms-template-ink);
	font-family: 'GMS Clean Cormorant', serif;
	font-size: clamp(42px, 7vw, 86px);
	font-weight: 600;
	line-height: 0.95;
	letter-spacing: 0;
}

.route-public .content-section-list {
	display: grid;
	/* Explicit constrained column: the implicit auto column sizes to content, so one
	   wide child (e.g. an auto-fill grid that cannot wrap in an indefinite track)
	   would silently stretch EVERY sibling section past the viewport on mobile. */
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(18px, 3vw, 30px);
}

.route-public .content-block,
.route-public .page-child-card,
.route-public .content-card,
.route-public .content-form-section {
	background: var(--gms-template-panel);
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.15);
	border-radius: 2px;
	box-shadow: none;
}

.route-public .content-block,
.route-public .content-form-section {
	padding: clamp(22px, 3vw, 38px);
}

/* Blocks can carry an admin-set inline width (width:600px;max-width:100%). Without
   border-box the section padding is ADDED to the capped 100%, overflowing phones. */
@media (max-width: 640px) {
.route-public .content-block,
	.route-public .content-form-section {
		box-sizing: border-box;
	}
}

.route-public .content-section-title,
.route-public .content-card-title {
	margin: 0 0 12px;
	color: var(--gms-template-ink);
	font-family: 'GMS Clean Cormorant', serif;
	font-size: clamp(25px, 2.7vw, 34px);
	font-weight: 600;
	line-height: 1.04;
}

.route-public .content-rich,
.route-public .content-card-copy {
	color: var(--gms-template-body);
	font-family: 'GMS Clean Spectral', serif;
	font-size: 16px;
	line-height: 1.65;
}

.route-public .content-rich p,
.route-public .content-rich ul,
.route-public .content-rich ol {
	max-width: 74ch;
}

/* Theme/contact forms render a .content-form-card inside a .content-form-section.
   Both were styled as panels, giving a box-inside-a-box. Keep the outer section as
   the single panel and neutralize the inner card so it matches the other pages. */
.route-public .content-form-card {
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	padding: 0;
	margin: 0;
}

/* Portfolio blurb - lead paragraph under the page title on gallery pages. */
.route-public .content-lead {
	max-width: 70ch;
	margin: 0 0 clamp(24px, 4vw, 42px);
	color: var(--gms-template-body);
	font-family: 'GMS Clean Spectral', serif;
	font-size: clamp(17px, 1.6vw, 20px);
	line-height: 1.6;
}

/* Portfolio/image blocks (full-sites, product-photo, model-photo, catalogs, etc.)
   output one or more thumbnails per <p>. Flow them into a uniform responsive tile
   grid: equal-width tiles, top-aligned, cropped from the top so each piece keeps its
   most important edge. Frames + hover zoom echo the homepage cards. The <p> wrappers
   are collapsed with display:contents so the images/links become grid cells.

   EXCLUDES .route-blog ON PURPOSE - do not drop the :not(). `:has(p img)` only asks
   "does this body contain a paragraph with an image", which is also true of an
   ordinary prose article that happens to embed one photo. Without the guard a blog
   post got shredded into a 3-column tile grid: every <p> collapsed to
   display:contents, body text reflowed into ~190px columns, and the inline photo
   cropped to 4/3. Portfolio pages are the only intended target. If a third route
   ever needs prose + inline images, exclude it here too rather than fighting this
   block with overrides. */
.route-public:not(.route-blog) .content-rich:has(p img) {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: clamp(12px, 1.4vw, 18px);
	align-items: start;
	max-width: none;
}

.route-public:not(.route-blog) .content-rich:has(p img) p {
	display: contents;
	margin: 0;
	max-width: none;
}

.route-public:not(.route-blog) .content-rich:has(p img) p > a,
.route-public:not(.route-blog) .content-rich:has(p img) p > img {
	display: block;
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.16);
	border-radius: 2px;
	background: var(--gms-template-panel);
	cursor: pointer;
}

.route-public:not(.route-blog) .content-rich:has(p img) p > a > img,
.route-public:not(.route-blog) .content-rich:has(p img) p > img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
	transition: transform 320ms ease;
}

.route-public:not(.route-blog) .content-rich:has(p img) p > a:hover > img,
.route-public:not(.route-blog) .content-rich:has(p img) p > a:focus-visible > img,
.route-public:not(.route-blog) .content-rich:has(p img) p > img:hover,
.route-public:not(.route-blog) .content-rich:has(p img) p > img:focus-visible {
	transform: scale(1.05);
}

/* Portfolio / Gallery block (block_type=gallery) - image-picked sections.
   Fit mode: contain = scale-down + top (whole image, no crop); cover = fill + top crop.
   content-gallery-plain drops the section panel border/padding. */
.route-public .content-gallery .gallery-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: clamp(12px, 1.4vw, 18px);
	align-items: start;
	margin-top: 0.6rem;
}

.route-public .content-gallery.gallery-cols-2 .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.route-public .content-gallery.gallery-cols-3 .gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.route-public .content-gallery.gallery-cols-4 .gallery-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.route-public .gallery-cell {
	margin: 0;
}

.route-public .gallery-tile {
	display: block;
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border: 0;
	background: transparent;
	cursor: pointer;
}

.route-public .gallery-caption {
	margin: 0.45rem 0 0;
	color: var(--gms-template-muted);
	font-family: 'GMS Clean Archivo', sans-serif;
	font-size: 12px;
	line-height: 1.4;
}

/* Portrait orientation: taller tiles + narrower columns so more fit per row. */
.route-public .content-gallery.gallery-orient-portrait .gallery-tile { aspect-ratio: 3 / 4; }

.route-public .content-gallery.gallery-orient-portrait.gallery-cols-auto .gallery-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }

/* Square orientation: 1:1 tiles. */
.route-public .content-gallery.gallery-orient-square .gallery-tile { aspect-ratio: 1 / 1; }

.route-public .content-gallery.gallery-orient-square.gallery-cols-auto .gallery-grid { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }

.route-public .gallery-tile img {
	width: 100%;
	height: 100%;
	object-position: var(--gallery-crop, center top);
	transition: transform 320ms ease;
}

.route-public .gallery-fit-contain .gallery-tile img { object-fit: scale-down; }

.route-public .gallery-fit-cover .gallery-tile img { object-fit: cover; }

.route-public .gallery-tile:hover img,
.route-public .gallery-tile:focus-visible img { transform: scale(1.05); }

.route-public .content-gallery-plain {
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0;
}

@media (max-width: 700px) {
.route-public .content-gallery.gallery-cols-3 .gallery-grid,
	.route-public .content-gallery.gallery-cols-4 .gallery-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 460px) {
.route-public .content-gallery .gallery-grid {
		grid-template-columns: 1fr;
	}
}

/* =============================================
   Before / after comparison block - 2026-07-09
   Public slider styles + admin pair picker.
   Markup rendered by the before_after arm in page.php;
   the range input drives --gms-ba-pos on the frame.
   ============================================= */
.gms-ba-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	width: 100%;
	max-width: 860px;
	margin: 18px auto 0;
}

.gms-ba-row-single {
	grid-template-columns: 1fr;
	max-width: 520px;
}

@media (max-width: 640px) {
.gms-ba-row {
		grid-template-columns: 1fr;
	}
}

.gms-ba {
	margin: 0;
	min-width: 0;
}

.gms-ba-frame {
	--gms-ba-pos: 50%;
	position: relative;
	overflow: hidden;
	aspect-ratio: 1 / 1;
	border-radius: 12px;
	border: 1px solid var(--gms-template-line, rgba(0, 55, 13, 0.16));
	background: var(--gms-template-panel, #e4f1e3);
}

.gms-ba-frame:has(.gms-ba-range:focus-visible) {
	outline: 2px solid var(--gms-gold, #ffd801);
	outline-offset: 2px;
}

.gms-ba-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.gms-ba-clip {
	position: absolute;
	inset: 0;
	clip-path: inset(0 calc(100% - var(--gms-ba-pos)) 0 0);
}

.gms-ba-tag {
	position: absolute;
	top: 10px;
	z-index: 2;
	padding: 2px 10px;
	border-radius: 999px;
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	background: rgba(0, 0, 0, 0.55);
	color: #ffffff;
	pointer-events: none;
}

.gms-ba-tag-before {
	left: 10px;
}

.gms-ba-tag-after {
	right: 10px;
}

.gms-ba-divider {
	position: absolute;
	top: 0;
	bottom: 0;
	left: var(--gms-ba-pos);
	width: 2px;
	margin-left: -1px;
	background: var(--gms-gold, #ffd801);
	z-index: 2;
	pointer-events: none;
}

.gms-ba-grip {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 34px;
	height: 34px;
	margin: -17px 0 0 -17px;
	border-radius: 50%;
	background: var(--gms-gold, #ffd801);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}

.gms-ba-grip::before,
.gms-ba-grip::after {
	content: "";
	position: absolute;
	top: 50%;
	margin-top: -5px;
	border: 5px solid transparent;
}

.gms-ba-grip::before {
	left: 7px;
	border-right-color: #00370d;
	border-left-width: 0;
}

.gms-ba-grip::after {
	right: 7px;
	border-left-color: #00370d;
	border-right-width: 0;
}

.gms-ba-range {
	position: absolute;
	inset: 0;
	z-index: 3;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: ew-resize;
	-webkit-appearance: none;
	appearance: none;
	background: transparent;
}

.gms-ba-caption {
	text-align: center;
	margin-top: 8px;
	color: var(--gms-template-muted, #4d6453);
	font-size: 0.95em;
}

/* Zoom pill on inline sliders: opens the same zoom overlay as thumbnails mode.
   Sits above the invisible range input so it stays clickable without stealing the drag. */
.gms-ba-zoom-open {
	position: absolute;
	right: 10px;
	bottom: 10px;
	z-index: 4;
	padding: 3px 12px;
	border: 0;
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.55);
	color: #ffffff;
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	line-height: 1.5;
	cursor: zoom-in;
}

.gms-ba-zoom-open:hover {
	background: rgba(0, 0, 0, 0.75);
}

.gms-ba-zoom-open:focus-visible {
	outline: 2px solid var(--gms-gold, #ffd801);
	outline-offset: 2px;
}

/* Thumbnails display mode: after-image tiles that open the zoom slider */
.gms-ba-thumbs {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
	gap: 18px;
	width: 100%;
	max-width: 860px;
	margin: 18px auto 0;
}

.gms-ba-thumb-cell {
	margin: 0;
	min-width: 0;
}

.gms-ba-thumb {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	padding: 0;
	border: 1px solid var(--gms-template-line, rgba(0, 55, 13, 0.16));
	border-radius: 10px;
	overflow: hidden;
	background: var(--gms-template-panel, #e4f1e3);
	cursor: zoom-in;
}

.gms-ba-thumb img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.25s ease;
}

.gms-ba-thumb:hover img,
.gms-ba-thumb:focus-visible img {
	transform: scale(1.04);
}

.gms-ba-thumb:focus-visible {
	outline: 2px solid var(--gms-gold, #ffd801);
	outline-offset: 2px;
}

.gms-ba-thumb-badge {
	position: absolute;
	left: 50%;
	bottom: 8px;
	transform: translateX(-50%);
	z-index: 2;
	padding: 2px 10px;
	border-radius: 999px;
	font-size: 10px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	background: rgba(0, 0, 0, 0.55);
	color: #ffffff;
	pointer-events: none;
	white-space: nowrap;
}

/* Zoom overlay: reuses the gms-lightbox chrome; the slider frame sizes itself
   to the after image's natural aspect ratio (set as --gms-ba-zoom-ratio by JS) */
.gms-ba-zoom .gms-ba-zoom-stage {
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 100%;
}

.gms-ba-zoom .gms-ba-frame {
	--gms-ba-zoom-ratio: 1;
	aspect-ratio: var(--gms-ba-zoom-ratio);
	width: min(90vw, calc(74vh * var(--gms-ba-zoom-ratio)));
	max-width: 90vw;
	background: #0e1b13;
	border-color: rgba(255, 255, 255, 0.16);
}

/* Portfolio lightbox */
.gms-lightbox {
	position: fixed;
	inset: 0;
	z-index: 2000;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	padding: clamp(16px, 4vw, 48px);
	background: rgba(10, 20, 16, 0.9);
}

.gms-lightbox[hidden] {
	display: none;
}

.gms-lightbox-figure {
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 100%;
	max-height: 78vh;
}

.gms-lightbox-figure img {
	max-width: 90vw;
	max-height: 78vh;
	width: auto;
	height: auto;
	border: 1px solid rgba(255, 255, 255, 0.16);
	background: #0e1b13;
}

.gms-lightbox-caption {
	max-width: 70ch;
	color: #e7f2e6;
	font-family: 'GMS Clean Spectral', serif;
	font-size: 15px;
	line-height: 1.5;
	text-align: center;
}

.gms-lightbox-caption a {
	color: var(--gms-gold, #ffd801);
	text-decoration: none;
	white-space: nowrap;
}

.gms-lightbox-caption a:hover,
.gms-lightbox-caption a:focus {
	text-decoration: underline;
}

.gms-lightbox-count {
	color: rgba(231, 242, 230, 0.6);
	font-family: 'GMS Clean Archivo', sans-serif;
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.gms-lightbox-btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.35);
	color: #e7f2e6;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}

.gms-lightbox-btn:hover,
.gms-lightbox-btn:focus {
	background: rgba(0, 0, 0, 0.6);
	border-color: rgba(255, 255, 255, 0.5);
}

.gms-lightbox-prev { left: clamp(10px, 3vw, 32px); }

.gms-lightbox-next { right: clamp(10px, 3vw, 32px); }

.gms-lightbox-close {
	position: absolute;
	top: calc(clamp(10px, 3vw, 28px) + env(safe-area-inset-top, 0px));
	right: clamp(10px, 3vw, 32px);
	transform: none;
	width: 44px;
	height: 44px;
	font-size: 20px;
}

@media (max-width: 640px) {
.gms-lightbox-btn {
		width: 40px;
		height: 40px;
		font-size: 18px;
	}
}

.route-public .content-button-primary,
.route-public .content-button-secondary,
.route-public .content-button-tertiary,
.route-public .contact-link {
	border-radius: 2px;
	font-family: 'GMS Clean Archivo', sans-serif;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.route-public .shell > .site-footer {
	width: min(1340px, 100%);
	max-width: 1340px;
	margin-top: clamp(22px, 3vw, 34px);
	padding-top: 0;
	padding-bottom: clamp(42px, 6vw, 72px);
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}

.route-public .shell > .site-footer .footer-links,
.route-public .shell > .site-footer .footer-copyright {
	width: 100%;
	max-width: none;
	margin-left: 0;
	margin-right: 0;
	padding-left: 0;
	padding-right: 0;
}

.route-public .footer-social-links .footer-links-list {
	display: flex;
	justify-content: center;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.route-public .footer-social-links .footer-links-item {
	margin: 0;
}

.route-public .footer-social-links a {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.22);
	border-radius: 50%;
	color: var(--gms-template-ink);
	font-size: 20px;
	line-height: 1;
	text-decoration: none;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.route-public .footer-social-links a:hover,
.route-public .footer-social-links a:focus-visible {
	border-color: var(--gms-template-ink);
	background: var(--gms-template-ink);
	color: var(--gms-template-bg);
}

/*
.route-public .shell > .site-footer > .footer-links:not(.footer-social-links):not(.footer-copyright) {
	margin-top: clamp(20px, 3vw, 30px);
	padding-top: clamp(20px, 3vw, 30px);
	border-top: 1px solid rgba(var(--gms-shadow-rgb), 0.16);
}

.route-public .shell > .site-footer > .footer-links:not(.footer-social-links):not(.footer-copyright) .footer-links-list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: clamp(16px, 2.2vw, 30px);
	margin: 0;
	padding: 0;
	list-style: none;
}
*/
.route-public .shell > .site-footer > .footer-links:not(.footer-social-links):not(.footer-copyright) a,
.route-public .footer-copyright {
	color: var(--gms-green-gray);
	font-family: 'GMS Clean Archivo', sans-serif;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.13em;
	line-height: 1.3;
	text-decoration: none;
	text-transform: uppercase;
	transition: color 0.2s;
}

.route-public .shell > .site-footer > .footer-links:not(.footer-social-links):not(.footer-copyright) a:hover,
.route-public .shell > .site-footer > .footer-links:not(.footer-social-links):not(.footer-copyright) a:focus-visible {
	color: var(--gms-template-ink);
}

.route-public .footer-copyright {
	margin-top: 16px;
	color: var(--gms-template-muted);
	font-weight: 400;
	letter-spacing: 0.08em;
	text-transform: none;
}

.route-public .footer-copyright p {
	margin: 0;
}

@media (max-width: 900px) {
.route-public .cards,
	.route-public .portfolio-scroller {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 719px) {
.route-public .shell .site-header {
		padding: 16px 20px;
	}

.route-public .shell .site-header-blocks {
		padding-right: 58px !important;
	}

.route-public .shell .site-header-block-kind-branding .theme-block-canvas {
		padding-left: 52px;
	}

.route-public .shell .site-header-block-kind-branding [data-block-node="image"],
	.route-public .shell .site-header-block-kind-branding [data-block-node="image"] img {
		height: 40px !important;
	}

.route-public .shell .site-header-block-kind-branding .theme-block-canvas::after {
		height: 40px;
		font-size: 20px;
	}

.route-public .shell .site-header-tools {
		top: 16px;
		right: 20px;
	}

.route-public .shell .site-nav-panel {
		top: 66px;
		right: 20px;
	}

.route-public .shell > main.clean-index-main,
	.route-public .hero-section,
	.route-public .feature-section,
	.route-public .cards-section,
	.route-public .portfolio-section,
	.route-public .divider,
	.route-public .shell > .site-footer {
		padding-left: 20px;
		padding-right: 20px;
	}

.route-public .hero {
		min-height: 76vh;
	}

.route-public .hero img {
		object-position: 50% 42%;
	}

.route-public .hero::after {
		background: linear-gradient(178deg, rgba(var(--gms-body-rgb), 0.97) 0%, rgba(var(--gms-body-rgb), 0.86) 26%, rgba(var(--gms-body-rgb), 0.28) 47%, rgba(var(--gms-body-rgb), 0) 64%);
	}

.route-public .hero-content {
		justify-content: flex-start;
		padding-top: clamp(28px, 8vw, 56px);
	}

.route-public .feature-grid,
	.route-public .service-card,
	.route-public .content-block,
	.route-public .content-form-section {
		padding: 22px;
	}

.route-public .shell > main:not(.clean-index-main) {
		padding: 30px 20px 44px;
	}
}

/* Clean index parity fixes: keep the sample's main surface and process strip. */
.route-public.page-slug-index .shell > main.clean-index-main {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0 0 clamp(28px, 4vw, 56px) !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}

.route-public.page-slug-index .shell > main.clean-index-main .hero-section,
.route-public.page-slug-index .shell > main.clean-index-main .feature-section,
.route-public.page-slug-index .shell > main.clean-index-main .cards-section,
.route-public.page-slug-index .shell > main.clean-index-main .portfolio-section,
.route-public.page-slug-index .shell > main.clean-index-main .divider {
	max-width: 1340px;
	margin-left: auto;
	margin-right: auto;
	padding-left: clamp(20px, 5vw, 72px);
	padding-right: clamp(20px, 5vw, 72px);
	box-sizing: border-box;
}

.route-public.page-slug-index .shell > main.clean-index-main .feature-section .feature {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	min-height: 0;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

.route-public.page-slug-index .shell > main.clean-index-main .feature-section .feature > div {
	min-width: 0;
}

.route-public.page-slug-index .shell > main.clean-index-main .feature-section .feature-num {
	flex: none;
}

@media (max-width: 719px) {
.route-public.page-slug-index .shell > main.clean-index-main {
		padding-bottom: 40px !important;
	}

.route-public.page-slug-index .shell > main.clean-index-main .hero-section,
	.route-public.page-slug-index .shell > main.clean-index-main .feature-section,
	.route-public.page-slug-index .shell > main.clean-index-main .cards-section,
	.route-public.page-slug-index .shell > main.clean-index-main .portfolio-section,
	.route-public.page-slug-index .shell > main.clean-index-main .divider {
		padding-left: 20px;
		padding-right: 20px;
	}
}

.route-public.page-slug-index .shell > main.clean-index-main .feature-section .feature {
	justify-self: start;
	line-height: normal;
}

.route-public.page-slug-index .shell > main.clean-index-main .feature-section .feature-title {
	font-family: 'GMS Clean Spectral', serif;
	line-height: 1.25;
}

.route-public.page-slug-index .shell > main.clean-index-main .feature-section .feature-sub {
	line-height: normal;
}

.route-public.page-slug-index .shell > main.clean-index-main .feature-section .feature-grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 980px) {
.route-public.page-slug-index .shell > main.clean-index-main .feature-section .feature-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
.route-public.page-slug-index .shell > main.clean-index-main .feature-section .feature-grid {
		grid-template-columns: 1fr;
	}
}

.route-public.page-slug-index .shell > main.clean-index-main .feature-section .feature {
	justify-self: stretch;
	width: auto;
}

.route-public.page-slug-index .shell > main.clean-index-main .feature-section .feature {
	width: 100% !important;
}

/* Live-site homepage text sections replacing Selected Work. */
.route-public.page-slug-index .shell > main.clean-index-main .live-home-sections {
	max-width: 1340px;
	margin: clamp(30px, 5vw, 70px) auto 0;
	padding-left: clamp(20px, 5vw, 72px);
	padding-right: clamp(20px, 5vw, 72px);
	box-sizing: border-box;
}

.route-public.page-slug-index .shell > main.clean-index-main .live-home-heading {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(260px, 1.2fr);
	gap: clamp(18px, 3vw, 42px);
	align-items: end;
	margin: 0 0 clamp(16px, 2.4vw, 28px);
	padding-bottom: clamp(16px, 2.2vw, 24px);
	border-bottom: 1px solid rgba(var(--gms-shadow-rgb), 0.16);
}

.route-public.page-slug-index .shell > main.clean-index-main .live-home-heading h2 {
	margin: 0;
	color: var(--gms-template-ink);
	font-family: 'GMS Clean Cormorant', serif;
	font-size: clamp(29px, 4vw, 54px);
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0;
}

.route-public.page-slug-index .shell > main.clean-index-main .live-home-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(16px, 2vw, 24px);
}

.route-public.page-slug-index .shell > main.clean-index-main .live-home-section {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 16px;
	align-items: start;
	min-height: 210px;
	padding: clamp(22px, 2.8vw, 34px);
	background: var(--gms-template-panel);
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.15);
	border-radius: 2px;
	box-shadow: none;
}

.route-public.page-slug-index .shell > main.clean-index-main .live-home-section-wide {
	grid-column: 1 / -1;
	min-height: 0;
	background: var(--gms-template-panel-alt);
}

.route-public.page-slug-index .shell > main.clean-index-main .live-home-num {
	padding: 7px 9px;
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.32);
	color: var(--gms-template-ink);
	font-family: 'GMS Clean Archivo', sans-serif;
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
}

.route-public.page-slug-index .shell > main.clean-index-main .live-home-section h3 {
	margin: 0;
	color: var(--gms-template-ink);
	font-family: 'GMS Clean Cormorant', serif;
	font-size: clamp(25px, 2.6vw, 34px);
	font-weight: 600;
	line-height: 1.04;
	letter-spacing: 0;
}

.route-public.page-slug-index .shell > main.clean-index-main .live-home-section p {
	/*max-width: 68ch;*/
	margin: 12px 0 0;
	color: var(--gms-template-body);
	font-family: 'GMS Clean Spectral', serif;
	font-size: 16px;
	line-height: 1.6;
}

@media (max-width: 900px) {
.route-public.page-slug-index .shell > main.clean-index-main .live-home-heading,
	.route-public.page-slug-index .shell > main.clean-index-main .live-home-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 719px) {
.route-public.page-slug-index .shell > main.clean-index-main .live-home-sections {
		padding-left: 20px;
		padding-right: 20px;
	}

.route-public.page-slug-index .shell > main.clean-index-main .live-home-section {
		grid-template-columns: 1fr;
		min-height: 0;
		padding: 22px;
	}

.route-public.page-slug-index .shell > main.clean-index-main .live-home-num {
		width: max-content;
	}
}

.route-public.page-slug-index .shell > main.clean-index-main .live-home-section {
	width: 100% !important;
	max-width: none !important;
	justify-self: stretch;
}

.route-public.page-slug-index .shell > main.clean-index-main .live-home-section {
	box-sizing: border-box;
}

/* Expanded live homepage sections: no visible numbering. */
.route-public.page-slug-index .shell > main.clean-index-main .live-home-section {
	display: block;
	min-height: 0;
}

.route-public.page-slug-index .shell > main.clean-index-main .live-home-section p + p {
	margin-top: 12px;
}

.route-public.page-slug-index .shell > main.clean-index-main .live-home-num {
	display: none !important;
}

/* Only the opening AI-assisted section spans full width; later sections pair evenly. */
.route-public.page-slug-index .shell > main.clean-index-main .live-home-section-wide {
	grid-column: auto;
	background: var(--gms-template-panel);
}

.route-public.page-slug-index .shell > main.clean-index-main .live-home-grid > .live-home-section:first-child {
	grid-column: 1 / -1;
	background: var(--gms-template-panel-alt);
}

/* Closing CTA band: spans full width like the opener, centered invitation. */
.route-public.page-slug-index .shell > main.clean-index-main .live-home-grid > .live-home-section-cta {
	grid-column: 1 / -1;
	background: var(--gms-template-panel-alt);
	text-align: center;
}

.route-public.page-slug-index .shell > main.clean-index-main .live-home-section-cta p {
	max-width: 62ch;
	margin-left: auto;
	margin-right: auto;
	text-align: left;
}

.route-public.page-slug-index .shell > main.clean-index-main .live-home-section-cta .live-home-cta-actions {
	text-align: center;
}

.route-public.page-slug-index .shell > main.clean-index-main .live-home-section-cta .content-button-primary {
	margin-top: 8px;
}

/* Start-a-project inquiry page */
.route-public .inquiry-page .inquiry-form-section .content-form-card {
	background: none;
	border: 0;
	padding: 0;
	box-shadow: none;
}

.route-public .inquiry-form p {
	margin: 0;
}

.route-public .inquiry-two {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.85rem;
}

.route-public .inquiry-topics {
	margin: 0.35rem 0;
	padding: 1rem 1.1rem 1.1rem;
	border: 1px solid rgba(var(--gms-shadow-rgb), 0.15);
	border-radius: 12px;
}

.route-public .inquiry-topics legend {
	padding: 0 0.4rem;
	font-weight: 600;
}

.route-public .inquiry-topics-hint {
	font-weight: 400;
	opacity: 0.75;
}

.route-public .inquiry-checkgroup {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.55rem 1.2rem;
}

.route-public .inquiry-checkgroup .content-form-choice {
	align-items: baseline;
}

.route-public .inquiry-error {
	display: block;
	margin-top: 0.3rem;
	color: #8c2f2f;
	font-size: 0.9em;
}

.route-public .inquiry-error-top {
	margin-bottom: 0.85rem;
}

@media (prefers-color-scheme: dark) {
.route-public .inquiry-error {
		color: #d98a8a;
	}
}

html[data-theme-mode="dark"] .route-public .inquiry-error {
	color: #d98a8a;
}

@media (max-width: 719px) {
.route-public .inquiry-two,
	.route-public .inquiry-checkgroup {
		grid-template-columns: 1fr;
	}
}

/* ================================================================
   THEME2 CLASSIC GREEN - 2026-07-17
   Port of .design_option 'Classic web design with green palette'.
   Everything below intentionally overrides the inherited default
   theme rules above (source order wins). Palette + component
   language: parchment #f6f8f2 / mint #eef3e8 panels, forest
   #00370d structural bands, engraved 1px rgba(0,55,13,.25) rules,
   EB Garamond display + Lora body + Press Start 2P pixel accents.
   The streamline session may fold this into the sections above.
   ================================================================ */

body.route-public {
	--gms-template-bg: #f6f8f2;
	--gms-template-shell-bg: #f6f8f2;
	--gms-template-outer-bg: #eef3e8;
	--gms-template-panel: #eef3e8;
	--gms-template-panel-alt: #e3f0df;
	--gms-template-ink: #062106;
	--gms-template-body: #2a3a25;
	--gms-template-muted: #4a5a45;
	--gms-template-accent: #008521;
	--gms-template-line: rgba(0, 55, 13, 0.25);
	font-family: 'Lora', Georgia, serif;
}

html[data-theme-mode="dark"] body.route-public {
	--gms-template-outer-bg: #02130a;
	--gms-template-bg: #041708;
	--gms-template-shell-bg: #041708;
	--gms-template-panel: #00370d;
	--gms-template-panel-alt: #062106;
	--gms-template-ink: #dfeeda;
	--gms-template-body: #c7e0c2;
	--gms-template-muted: #9dc49f;
	--gms-template-accent: #aed2a7;
	--gms-template-line: rgba(174, 210, 167, 0.28);
	--gms-shadow-rgb: 199, 224, 194;
}

@media (prefers-color-scheme: dark) {
html:not([data-theme-mode="light"]) body.route-public {
		--gms-template-outer-bg: #02130a;
		--gms-template-bg: #041708;
		--gms-template-shell-bg: #041708;
		--gms-template-panel: #00370d;
		--gms-template-panel-alt: #062106;
		--gms-template-ink: #dfeeda;
		--gms-template-body: #c7e0c2;
		--gms-template-muted: #9dc49f;
		--gms-template-accent: #aed2a7;
		--gms-template-line: rgba(174, 210, 167, 0.28);
		--gms-shadow-rgb: 199, 224, 194;
	}
}

body.route-public ::selection {
	background: #008521;
	color: #aed2a7;
}

/* Display type: EB Garamond everywhere a heading lives. */
body.route-public h1,
body.route-public h2,
body.route-public h3,
body.route-public h4,
body.route-public h5,
body.route-public h6,
body.route-public .hero h1,
body.route-public .feature-title,
body.route-public .service-card h3,
body.route-public .live-home-section h3 {
	font-family: 'EB Garamond', Georgia, serif;
	font-weight: 600;
	letter-spacing: 0;
}

body.route-public .hero .lede,
body.route-public .feature-sub {
	font-family: 'EB Garamond', Georgia, serif;
	font-style: italic;
}

/* Header: mint bar over the parchment shell with an engraved rule. */
.route-public .site-header {
	background: var(--gms-template-panel);
	border-bottom: 1px solid var(--gms-template-line);
	box-shadow: none;
}

/* Pixel accents: process strip numbers go Press Start 2P green. */
.route-public .feature-num {
	font-family: 'Press Start 2P', monospace;
	font-size: 0.7rem;
	color: var(--gms-template-accent);
	background: transparent;
	border: 1px solid var(--gms-template-line);
	border-radius: 0;
	padding: 0.45rem 0.4rem 0.35rem;
	line-height: 1;
}

.route-public .feature-sub {
	text-transform: none;
	letter-spacing: 0;
	font-size: 0.95rem;
	color: var(--gms-template-muted);
}

/* Engraved cartouche cards: square corners, double-frame effect. */
.route-public .service-card,
.route-public .live-home-section {
	background: var(--gms-template-bg);
	border: 1px solid var(--gms-template-line);
	border-radius: 0;
	box-shadow: 0 0 0 1px var(--gms-template-bg), 0 0 0 2px var(--gms-template-line);
	outline: none;
}

.route-public .service-card {
	background: var(--gms-template-panel);
	box-shadow: 0 0 0 1px var(--gms-template-panel), 0 0 0 2px var(--gms-template-line);
}

/* The clean-pass corner brackets + plus-rules read blueprint, not
   engraving - retire them on theme2. */
.route-public .service-card .card-corner-top,
.route-public .service-card .card-corner-bottom,
.route-public .service-card .card-rule,
.route-public .hero .blueprint-corner,
.route-public .hero .hero-mini-bars {
	display: none;
}

/* Hero: keep the mountain art but frame it like the crest plate. */
.route-public .hero {
	border: 1px solid var(--gms-template-line);
	border-radius: 0;
	box-shadow: 0 0 0 5px var(--gms-template-bg), 0 0 0 6px var(--gms-template-line);
	overflow: hidden;
}

/* Homepage band sections: mint panels with engraved rules. */
.route-public .feature-section .feature-grid {
	background: var(--gms-template-panel);
	border: 1px solid var(--gms-template-line);
	border-radius: 0;
}

/* CTA card: the forest band with light copy + green button. */
.route-public .live-home-section-cta {
	background: #00370d;
	border-color: #062106;
	box-shadow: 0 0 0 1px #00370d, 0 0 0 2px #062106;
	text-align: center;
}

.route-public .live-home-section-cta h3 {
	color: #ffffff;
}

.route-public .live-home-section-cta p {
	color: #c7e0c2;
}

.route-public .live-home-section-cta .content-button-primary {
	background: #008521;
	color: #ffffff;
	border: 1px solid #aed2a7;
	border-radius: 0;
}

/* Footer: the forest band. Beats the clean-pass grid skin above. */
.route-public .site-footer {
	background: #00370d;
	color: #c7e0c2;
	border-top: 3px double #062106;
	border-bottom: 0;
	border-left: 0;
	border-right: 0;
	border-radius: 0;
	width: 100%;
	max-width: none;
	padding: 2.2rem clamp(1.25rem, 4vw, 3rem) 1.6rem;
}

.route-public .site-footer > .footer-links:not(.footer-social-links):not(.footer-copyright) a {
	color: #aed2a7;
	font-family: 'EB Garamond', Georgia, serif;
	font-size: 1.02rem;
	font-weight: 400;
	letter-spacing: 0.04em;
	text-transform: none;
}

.route-public .site-footer > .footer-links:not(.footer-social-links):not(.footer-copyright) a:hover,
.route-public .site-footer > .footer-links:not(.footer-social-links):not(.footer-copyright) a:focus-visible {
	color: #ffffff;
	text-decoration: underline;
}

.route-public .footer-social-links a {
	color: #aed2a7;
	border-color: rgba(174, 210, 167, 0.4);
	background: transparent;
}

.route-public .footer-social-links a:hover,
.route-public .footer-social-links a:focus-visible {
	color: #ffffff;
	border-color: #aed2a7;
	background: rgba(174, 210, 167, 0.12);
}

.route-public .footer-copyright,
.route-public .footer-copyright p,
.route-public .footer-copyright a {
	color: #9dc49f;
	font-family: 'EB Garamond', Georgia, serif;
}

.route-public .footer-copyright a:hover,
.route-public .footer-copyright a:focus-visible {
	color: #ffffff;
}

/* ---- THEME2 CLASSIC GREEN part 2: matched-specificity overrides ----
   The clean-pass homepage + footer rules above carry very high
   specificity (and some !important), so these repeat their exact
   selectors; source order makes ours win. */

/* Footer: full-width forest band. The clean-pass rules force the footer
   transparent + narrow via `.route-public .shell > .site-footer` (0,3,0)
   and `.page-slug-index .site-footer` - so we match the child-combinator
   structure and add the `body` type (0,3,1) to win on EVERY route. */
body.route-public .shell > .site-footer,
body.route-public.page-slug-index .shell > .site-footer {
	background: #00370d !important;
	border-top: 3px double #062106 !important;
	border-right: 0 !important;
	border-bottom: 0 !important;
	border-left: 0 !important;
	width: 100% !important;
	max-width: none !important;
	margin: clamp(2rem, 5vw, 4rem) 0 0 !important;
	padding: 2.2rem clamp(1.25rem, 4vw, 3rem) 1.6rem !important;
	box-shadow: none !important;
	font-family: 'EB Garamond', Georgia, serif !important;
}

/* Footer nav links: match the clean-pass `.shell > .site-footer > .footer-links`
   (0,6,1) structure + `body` prefix so the sage-on-forest treatment wins on
   every route, not just the homepage. */
body.route-public .shell > .site-footer > .footer-links:not(.footer-social-links):not(.footer-copyright) a {
	color: #aed2a7;
	font-family: 'EB Garamond', Georgia, serif;
	font-size: 1.05rem;
	font-weight: 400;
	letter-spacing: 0.04em;
	text-transform: none;
}

body.route-public .shell > .site-footer > .footer-links:not(.footer-social-links):not(.footer-copyright) a:hover,
body.route-public .shell > .site-footer > .footer-links:not(.footer-social-links):not(.footer-copyright) a:focus-visible {
	color: #ffffff;
}

body.route-public .shell > .site-footer .footer-social-links .footer-links-list a {
	color: #aed2a7;
	border-color: rgba(174, 210, 167, 0.4);
	background: transparent;
}

body.route-public .shell > .site-footer .footer-social-links .footer-links-list a:hover,
body.route-public .shell > .site-footer .footer-social-links .footer-links-list a:focus-visible {
	color: #00370d;
	border-color: #aed2a7;
	background: #aed2a7;
}

body.route-public .shell > .site-footer > .footer-copyright,
body.route-public .shell > .site-footer > .footer-copyright p,
body.route-public .shell > .site-footer > .footer-copyright a {
	color: #9dc49f;
	font-family: 'EB Garamond', Georgia, serif;
	text-transform: none;
	letter-spacing: 0.03em;
	font-size: 0.95rem;
}

/* Homepage type: EB Garamond replaces the clean-pass Cormorant/Spectral. */
.route-public.page-slug-index .shell > main.clean-index-main .hero h1 {
	font-family: 'EB Garamond', Georgia, serif;
	font-weight: 600;
}

.route-public.page-slug-index .shell > main.clean-index-main .hero .lede {
	font-family: 'EB Garamond', Georgia, serif;
	font-style: italic;
}

.route-public.page-slug-index .shell > main.clean-index-main .feature-section .feature-title,
.route-public.page-slug-index .shell > main.clean-index-main .live-home-heading h2,
.route-public.page-slug-index .shell > main.clean-index-main .live-home-section h3,
.route-public .service-card h3 {
	font-family: 'EB Garamond', Georgia, serif;
	font-weight: 600;
}

.route-public.page-slug-index .shell > main.clean-index-main .live-home-section p,
.route-public .service-card p {
	font-family: 'EB Garamond', Georgia, serif;
	font-size: 17px;
	line-height: 1.6;
}

/* Live-home cards: engraved parchment cartouches; opener stays a mint band. */
.route-public.page-slug-index .shell > main.clean-index-main .live-home-section {
	background: var(--gms-template-bg);
	border: 1px solid var(--gms-template-line);
	border-radius: 0;
}

.route-public.page-slug-index .shell > main.clean-index-main .live-home-grid > .live-home-section:first-child,
.route-public.page-slug-index .shell > main.clean-index-main .live-home-section-wide {
	background: var(--gms-template-panel);
}

/* Closing CTA: the forest invitation band. */
.route-public.page-slug-index .shell > main.clean-index-main .live-home-grid > .live-home-section-cta {
	background: #00370d;
	border-color: #062106;
}

.route-public.page-slug-index .shell > main.clean-index-main .live-home-grid > .live-home-section-cta h3 {
	color: #ffffff;
}

.route-public.page-slug-index .shell > main.clean-index-main .live-home-section-cta p {
	color: #c7e0c2;
}

.route-public.page-slug-index .shell > main.clean-index-main .live-home-section-cta .content-button-primary {
	background: #008521;
	color: #ffffff;
	border: 1px solid #aed2a7;
	border-radius: 0;
}

.route-public.page-slug-index .shell > main.clean-index-main .live-home-section-cta .content-button-primary:hover,
.route-public.page-slug-index .shell > main.clean-index-main .live-home-section-cta .content-button-primary:focus-visible {
	background: #00aa33;
	color: #ffffff;
	border-color: #ffffff;
}

/* =============================================
   FAQ accordion - 2026-08-11
   Native <details>/<summary> progressive disclosure used by the FAQ page
   html blocks (.faq-list > .faq-item > summary + .faq-answer). No JS, so
   keyboard focus, screen readers, and browser find-in-page all keep working.
   Colors ride the --gms-template-* tokens, so light mode, dark mode, and
   theme2 all follow automatically with no per-theme overrides.
   ============================================= */
.route-public .faq-list {
	margin: 0;
	border-top: 1px solid var(--gms-template-line);
}

.route-public .faq-item {
	border-bottom: 1px solid var(--gms-template-line);
}

.route-public .faq-item > summary {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 18px;
	margin: 0;
	padding: 15px 2px;
	color: var(--gms-template-ink);
	font-weight: 600;
	line-height: 1.45;
	cursor: pointer;
	list-style: none;
	transition: color 140ms ease;
}

/* Kill the default disclosure triangle in every engine */
.route-public .faq-item > summary::-webkit-details-marker {
	display: none;
}

.route-public .faq-item > summary::marker {
	content: '';
}

.route-public .faq-item > summary:hover,
.route-public .faq-item[open] > summary {
	color: var(--gms-template-accent);
}

.route-public .faq-item > summary:focus-visible {
	outline: 2px solid var(--gms-template-accent);
	outline-offset: 3px;
	border-radius: 3px;
}

/* Chevron drawn in CSS - no icon-font dependency, and it rotates on open */
.route-public .faq-item > summary::after {
	content: '';
	flex: 0 0 auto;
	width: 9px;
	height: 9px;
	margin-top: 4px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	opacity: 0.65;
	transform: rotate(45deg);
	transform-origin: 60% 60%;
	transition: transform 180ms ease, opacity 140ms ease;
}

.route-public .faq-item[open] > summary::after {
	opacity: 1;
	transform: rotate(-135deg);
}

.route-public .faq-answer {
	max-width: 68ch;
	padding: 0 2px 18px;
	color: var(--gms-template-body);
}

.route-public .faq-answer > :first-child {
	margin-top: 0;
}

.route-public .faq-answer > :last-child {
	margin-bottom: 0;
}

@media (prefers-reduced-motion: reduce) {
	.route-public .faq-item > summary,
	.route-public .faq-item > summary::after {
		transition: none;
	}
}

/* FAQ closing CTA - the two actions sit inline with real breathing room and
   stack cleanly on narrow screens. Scoped here so the global
   .content-button-* styles are left alone. */
.route-public .faq-cta-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px 26px;
}

/* =============================================
   Legal pages (TOS / privacy policy) - 2026-08-11
   Small support styles for the long-form legal blocks: the effective-date
   line, the emphasized callout paragraphs, and the privacy policy contents
   list. Token-driven, so light/dark/theme2 follow automatically.
   ============================================= */
.route-public .legal-effective {
	margin: 0 0 1.2rem;
	color: var(--gms-template-muted);
	font-size: 0.85em;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.route-public .legal-callout {
	margin: 1.1rem 0;
	padding: 14px 18px;
	border-left: 3px solid var(--gms-template-accent);
	background: rgba(var(--gms-shadow-rgb), 0.05);
	border-radius: 0 4px 4px 0;
}

.route-public .legal-toc {
	margin: 1.6rem 0 0;
	padding: 18px 20px;
	border: 1px solid var(--gms-template-line);
	border-radius: 4px;
}

.route-public .legal-toc-heading {
	margin: 0 0 0.7rem;
	color: var(--gms-template-ink);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	font-size: 0.85em;
}

.route-public .legal-toc ol {
	margin: 0;
	padding-left: 1.4em;
	columns: 2;
	column-gap: 32px;
}

.route-public .legal-toc li {
	margin: 0 0 0.35rem;
	break-inside: avoid;
}

@media (max-width: 720px) {
	.route-public .legal-toc ol {
		columns: 1;
	}
}

/* Long legal pages are all headings and prose - give each section room to
   breathe and let deep links land below the sticky header. */
.route-public .content-rich h2[id^="pp-"] {
	scroll-margin-top: 90px;
}

/* ===========================================================================
   STORE - 2026-08-14 (round 1: catalog + product page)

   Everything here is scoped under .route-store, which layout.php derives from the
   first path segment, so /store and /store/<slug> both get it and nothing else on
   the site can be touched by these rules.

   Colours ride the --gms-template-* tokens rather than literal values, so light,
   dark and theme2 all follow with no per-theme overrides. This block is IDENTICAL
   in themes/default/assets/theme.css and themes/theme2/assets/theme.css - if you
   change one, change the other.

   No .shell-store hook is defined on purpose. The blog carried a .shell-blog rule
   with a max-width and no auto margin, which pinned the whole header and footer
   left on any viewport over 1600px and went unnoticed for weeks because it is
   invisible at 1440px. The store uses the default full-width shell.
   =========================================================================== */

.route-store .store-shell {
	display: block;
}

/* --- top banner ---------------------------------------------------------- */

.route-store .store-banner {
	margin: 0 0 1.6rem;
	padding: 0;
	overflow: hidden;
	border-radius: 6px;
	background: var(--gms-template-panel, rgba(0, 0, 0, 0.04));
}

.route-store .store-banner-link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.route-store .store-banner-media {
	display: block;
	line-height: 0;
}

/* HEIGHT IS CAPPED ON PURPOSE. Without a cap the banner is whatever aspect the
   uploaded image happens to be - a square 2000x2000 asset rendered 1250px tall at
   1440px wide, which is 139%% of a laptop viewport, so the product itself was more
   than a full screen below the fold. object-fit crops from the centre once the cap
   bites, so keep anything important away from the top and bottom edges. */
.route-store .store-banner-image {
	display: block;
	width: 100%;
	height: auto;
	max-height: 500px;
	object-fit: cover;
}

/* Phones get a viewport-relative cap rather than a fixed pixel one, because a mobile
   banner is deliberately PORTRAIT. The Willowgrove mobile artwork is 1003x1568 (0.64:1),
   which renders ~610px tall on a 390px-wide phone - a flat 320px cap would have thrown
   away half of purpose-made art. min() keeps both ends honest: 75vh means a short screen
   never loses its whole viewport to the banner, and the 660px ceiling stops a portrait
   image from towering on a 719px-wide tablet, where the same 0.64:1 art would otherwise
   want 1124px. */
@media (max-width: 599px) {
	.route-store .store-banner-image {
		max-height: min(75vh, 660px);
	}
}

.route-store .store-banner-text {
	margin: 0;
	padding: 0.9rem 1.1rem;
	text-align: center;
	font-size: 1.02rem;
}

/* Banner text accepts HTML, so tame the block elements it can now contain. Without this
   a <p> or <ul> brings its own margins and the band gains uneven dead space top and
   bottom. The list is centred with the rest of the banner rather than indented. */
.route-store .store-banner-text > :first-child {
	margin-top: 0;
}

.route-store .store-banner-text > :last-child {
	margin-bottom: 0;
}

.route-store .store-banner-text p {
	margin: 0 0 0.4rem;
}

.route-store .store-banner-text ul,
.route-store .store-banner-text ol {
	display: inline-block;
	margin: 0;
	padding: 0;
	text-align: left;
	list-style: none;
}

.route-store .store-banner-text li {
	margin: 0;
	padding: 0;
}

.route-store .store-banner-text li::before {
	content: none;
}

/* --- product layout ------------------------------------------------------ */

.route-store .store-product-main {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 2.2rem;
	align-items: start;
}

.route-store .store-gallery {
	display: grid;
	grid-template-columns: 88px minmax(0, 1fr);
	gap: 0.9rem;
	align-items: start;
}

/* A product with a single image has no thumbnail rail, so the hero takes the
   whole column instead of leaving an 88px gutter. */
.route-store .store-gallery:not(:has(.store-thumbs)) {
	grid-template-columns: minmax(0, 1fr);
}

.route-store .store-thumbs {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	max-height: 640px;
	overflow-y: auto;
}

.route-store .store-thumb {
	position: relative;
	display: block;
	width: 80px;
	padding: 0;
	border: 1px solid transparent;
	border-radius: 4px;
	background: none;
	cursor: pointer;
	line-height: 0;
	overflow: hidden;
}

.route-store .store-thumb.is-active {
	border-color: var(--gms-template-accent, #00370d);
}

.route-store .store-thumb-image {
	display: block;
	width: 100%;
	height: auto;
}

.route-store .store-thumb-play {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	background: rgba(0, 0, 0, 0.35);
	font-size: 1.1rem;
	line-height: 1;
}

.route-store .store-hero {
	line-height: 0;
}

.route-store .store-hero-image {
	display: block;
	width: 100%;
	max-width: 800px;
	height: auto;
	border-radius: 4px;
}

/* Keeps the column from collapsing on a product with no images at all. */
.route-store .store-hero-empty {
	aspect-ratio: 1 / 1;
	width: 100%;
	max-width: 800px;
	background: var(--gms-template-panel, rgba(0, 0, 0, 0.05));
	border-radius: 4px;
}

/* --- product info -------------------------------------------------------- */

.route-store .store-product-title {
	margin: 0.2rem 0 0.5rem;
}

.route-store .store-sku {
	margin: 0 0 0.6rem;
	font-size: 0.86rem;
	opacity: 0.7;
}

.route-store .store-price {
	margin: 0 0 0.35rem;
	display: flex;
	align-items: baseline;
	gap: 0.6rem;
}

.route-store .store-price-now {
	font-size: 1.5rem;
	font-weight: 600;
}

.route-store .store-price-was {
	opacity: 0.6;
}

.route-store .store-stock {
	margin: 0 0 1rem;
	font-size: 0.9rem;
}

.route-store .store-stock.is-out-of-stock {
	opacity: 0.75;
}

.route-store .store-short-description {
	margin: 0 0 1.2rem;
}

.route-store .store-attributes {
	margin: 0 0 1.4rem;
	padding: 0;
	display: grid;
	gap: 0.35rem;
}

.route-store .store-attribute {
	display: grid;
	grid-template-columns: minmax(96px, 34%) minmax(0, 1fr);
	gap: 0.7rem;
}

.route-store .store-attribute dt {
	margin: 0;
	font-weight: 600;
	opacity: 0.8;
}

.route-store .store-attribute dd {
	margin: 0;
}

/* Detail VALUES accept HTML, so a value can be a <br> stack or a short <ul>. Reset the
   list so it sits flush in the definition column instead of inheriting the global
   content-list indent and glyph marker, which are sized for body prose. */
.route-store .store-attribute dd ul,
.route-store .store-attribute dd ol {
	margin: 0;
	padding: 0;
	list-style: none;
}

.route-store .store-attribute dd li {
	margin: 0;
	padding: 0;
}

.route-store .store-attribute dd li::before {
	content: none;
}

.route-store .store-attribute dd p {
	margin: 0 0 0.3rem;
}

.route-store .store-attribute dd p:last-child {
	margin-bottom: 0;
}

/* --- save / like --------------------------------------------------------- */

.route-store .store-actions {
	margin: 0 0 1.3rem;
}

.route-store .store-like-form {
	display: inline-block;
	margin: 0;
}

/* Bare by request - no border, no padding, no chip. The saved state is carried by
   COLOUR rather than a filled block, which is also the only option that still reads
   correctly now there is no padding for a background to sit in. There is no
   filled/outline heart pair in GMSFontRegular (gms_heart is the only one), so the glyph
   itself cannot signal the state. */
.route-store .store-like-button {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	color: inherit;
	font: inherit;
	cursor: pointer;
}

.route-store .store-like-button:hover,
.route-store .store-like-button.is-liked {
	color: var(--gms-template-accent, #00370d);
}

/* With the border gone the UA focus ring is the only affordance left, so make it
   deliberate rather than relying on whatever the browser defaults to. */
.route-store .store-like-button:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.route-store .store-like-button[disabled] {
	opacity: 0.6;
	cursor: progress;
}

.route-store .store-like-status {
	margin: 0.5rem 0 0;
	min-height: 1.2em;
	font-size: 0.88rem;
	opacity: 0.8;
}

/* --- share --------------------------------------------------------------- */

.route-store .store-share {
	display: flex;
	align-items: center;
	gap: 0.8rem;
	flex-wrap: wrap;
}

.route-store .store-share-label {
	font-size: 0.86rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	opacity: 0.7;
}

.route-store .store-share-list {
	display: flex;
	gap: 0.45rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* No ::before marker on these - the global glyph list marker would double up
   with the share icons. */
.route-store .store-share-list li::before {
	content: none;
}

.route-store .store-share-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.2rem;
	height: 2.2rem;
	/* currentColor, NOT a fixed rgba. --gms-template-rule turns out not to be defined
	   at :root in either theme, so the rgba(0,0,0,.25) fallback was what actually
	   rendered - and 25%-black on the dark-mode background (rgb(2,19,10)) is invisible.
	   Deriving the border from the inherited text colour keeps the circle visible in
	   both modes with no per-mode override. The plain currentColor line is the fallback
	   for anything without color-mix. */
	border: 1px solid currentColor;
	border-color: color-mix(in srgb, currentColor 38%, transparent);
	border-radius: 50%;
	color: inherit;
	text-decoration: none;
}

.route-store .store-share-link:hover,
.route-store .store-share-link:focus-visible {
	border-color: currentColor;
}

/* Icon-only buttons, but the name stays in the DOM for screen readers. */
.route-store .store-share-name {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* --- description sections ------------------------------------------------ */

.route-store .store-descriptions {
	margin-top: 2.4rem;
}

.route-store .store-description + .store-description {
	margin-top: 1.8rem;
}

.route-store .store-description-title {
	margin-bottom: 0.6rem;
}

/* --- related rails ------------------------------------------------------- */

.route-store .store-related {
	margin-top: 2.6rem;
}

.route-store .store-card-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 1.2rem;
	margin-top: 1rem;
}

.route-store .store-card-grid-listing {
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

.route-store .store-card {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	color: inherit;
	text-decoration: none;
}

.route-store .store-card-media {
	line-height: 0;
	background: var(--gms-template-panel, rgba(0, 0, 0, 0.04));
	border-radius: 4px;
	overflow: hidden;
}

.route-store .store-card-image {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.route-store .store-card-body {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	/* Fills the rest of the card so the price can be pushed to the bottom. Grid rows
	   stretch by default, so every card in a row is already the same height. */
	flex: 1 1 auto;
}

/* Prices line up across a row regardless of how many lines the name takes. Without
   this, a two-line product name drops its price ~24px below its neighbours and the
   row reads as ragged. */
.route-store .store-card-price {
	margin-top: auto;
	padding-top: 0.25rem;
}

/* Two lines maximum, so one very long name cannot push a whole row taller. */
.route-store .store-card-name {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.route-store .store-card-name {
	font-weight: 600;
}

.route-store .store-card-blurb {
	font-size: 0.88rem;
	opacity: 0.78;
	/* Two lines keeps every card in a row the same height without a fixed height
	   that would clip a longer product name above it. */
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.route-store .store-card-compare {
	opacity: 0.6;
	font-size: 0.9em;
}

/* Overlaid on the card image, not stacked under the price - see the note in
   store/index.php. As a text node below the price it added a line to out-of-stock
   cards only, knocking their price off the row baseline. */
.route-store .store-card-media {
	position: relative;
}

.route-store .store-card-flag {
	position: absolute;
	top: 0.5rem;
	left: 0.5rem;
	padding: 0.2rem 0.5rem;
	border-radius: 3px;
	background: rgba(0, 0, 0, 0.72);
	color: #fff;
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	line-height: 1.4;
}

/* --- responsive ---------------------------------------------------------- */

@media (max-width: 899px) {
	.route-store .store-product-main {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.4rem;
	}
}

@media (max-width: 599px) {
	/* The thumbnail rail becomes a horizontal strip under the hero - a vertical
	   column of 80px thumbnails eats most of a phone's width. */
	.route-store .store-gallery {
		grid-template-columns: minmax(0, 1fr);
	}
	.route-store .store-thumbs {
		order: 2;
		flex-direction: row;
		max-height: none;
		overflow-x: auto;
		overflow-y: hidden;
		padding-bottom: 0.3rem;
	}
	.route-store .store-thumb {
		flex: 0 0 auto;
	}
	.route-store .store-card-grid,
	.route-store .store-card-grid-listing {
		grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
		gap: 0.9rem;
	}
}
/* Video in the hero slot - keeps a 16:9 embed inside the same box the still hero uses. */
.route-store .store-hero-video {
	position: relative;
	width: 100%;
	max-width: 800px;
	aspect-ratio: 16 / 9;
	border-radius: 4px;
	overflow: hidden;
	background: #000;
}

.route-store .store-hero-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* ===========================================================================
   STORE ROUND 2 - cart, checkout, order confirmation (2026-08-14)

   SCOPED ON .store-shell, NOT .route-store, AND THAT IS DELIBERATE.
   Round 1 only had /store routes, so `.route-store` (derived by layout.php from the
   first path segment) was the right hook. Round 2 spans FOUR different route roots -
   /store, /cart, /checkout and /order - so a route-based scope would mean repeating a
   four-selector list on every rule. Every store template sets `store-shell` on its
   <main>, so that is the one hook all four share.

   This block is IDENTICAL in themes/default/assets/theme.css and
   themes/theme2/assets/theme.css - change one, change the other.

   Colours ride the --gms-template-* tokens so light, dark and theme2 all follow.
   Note --gms-template-rule is NOT defined at :root, so anything needing a hairline
   derives it from currentColor rather than trusting that token (see the round 1 note
   on the share icons, which were invisible in dark mode for exactly that reason).
   =========================================================================== */

.store-shell .store-visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* --- add to cart, on the product page ------------------------------------ */

.store-shell .store-add-form {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin: 0 0 0.6rem;
}

.store-shell .store-add-qty input {
	width: 4.2rem;
	padding: 0.5rem 0.55rem;
	border: 1px solid color-mix(in srgb, currentColor 30%, transparent);
	border-radius: 3px;
	background: transparent;
	color: inherit;
	font: inherit;
}

.store-shell .store-add-button {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.62rem 1.15rem;
	border: 0;
	border-radius: 4px;
	background: var(--gms-template-accent, #00370d);
	color: var(--gms-template-accent-contrast, #fff);
	font: inherit;
	cursor: pointer;
}

/* Disabled rather than hidden when out of stock - a missing button reads as a broken
   page, a disabled one explains itself. */
.store-shell .store-add-button[disabled] {
	opacity: 0.45;
	cursor: not-allowed;
}

.store-shell .store-add-status {
	margin: 0 0 1rem;
	min-height: 1.2em;
	font-size: 0.88rem;
	opacity: 0.8;
}

/* --- cart ----------------------------------------------------------------- */

.store-shell .store-cart-flash {
	margin: 0 0 1.2rem;
	padding: 0.7rem 0.9rem;
	border-left: 3px solid var(--gms-template-accent, #00370d);
	background: var(--gms-template-panel, rgba(0, 0, 0, 0.04));
}

.store-shell .store-cart-flash.is-error {
	border-left-color: #8c2f2f;
}

.store-shell .store-cart-list {
	margin: 0 0 1.6rem;
	padding: 0;
	list-style: none;
}

/* Marker suppression: the global glyph list marker is meant for prose, and would sit
   beside every cart line. */
.store-shell .store-cart-list > li::before,
.store-shell .store-summary-list > li::before {
	content: none;
}

.store-shell .store-cart-row {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr) auto auto auto;
	align-items: center;
	gap: 0.9rem;
	padding: 0.9rem 0;
	border-bottom: 1px solid color-mix(in srgb, currentColor 14%, transparent);
}

.store-shell .store-cart-media {
	display: block;
	line-height: 0;
	border-radius: 4px;
	overflow: hidden;
	background: var(--gms-template-panel, rgba(0, 0, 0, 0.04));
}

.store-shell .store-cart-thumb {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.store-shell .store-cart-detail {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	min-width: 0;
}

.store-shell .store-cart-name {
	font-weight: 600;
	color: inherit;
	text-decoration: none;
}

.store-shell .store-cart-sku,
.store-shell .store-cart-unit {
	font-size: 0.84rem;
	opacity: 0.72;
}

.store-shell .store-cart-note {
	font-size: 0.84rem;
	color: #8c2f2f;
}

.store-shell .store-cart-qty {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0;
}

.store-shell .store-cart-qty input {
	width: 4rem;
	padding: 0.45rem 0.5rem;
	border: 1px solid color-mix(in srgb, currentColor 30%, transparent);
	border-radius: 3px;
	background: transparent;
	color: inherit;
	font: inherit;
}

.store-shell .store-cart-update {
	padding: 0.4rem 0.7rem;
	border: 1px solid color-mix(in srgb, currentColor 30%, transparent);
	border-radius: 3px;
	background: transparent;
	color: inherit;
	font: inherit;
	font-size: 0.85rem;
	cursor: pointer;
}

.store-shell .store-cart-line-total {
	font-weight: 600;
	white-space: nowrap;
}

.store-shell .store-cart-remove {
	margin: 0;
}

/* Bare glyph, matching the row actions elsewhere on the site. */
.store-shell .store-cart-remove button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.1rem;
	height: 2.1rem;
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	cursor: pointer;
	opacity: 0.7;
}

.store-shell .store-cart-remove button:hover,
.store-shell .store-cart-remove button:focus-visible {
	opacity: 1;
	color: #8c2f2f;
}

.store-shell .store-cart-actions {
	display: flex;
	align-items: center;
	gap: 1.2rem;
	flex-wrap: wrap;
	margin-top: 1.4rem;
}

.store-shell .store-cart-continue {
	color: inherit;
}

/* --- totals, shared by cart / checkout / confirmation --------------------- */

.store-shell .store-totals {
	margin-left: auto;
	max-width: 22rem;
	display: grid;
	gap: 0.35rem;
}

.store-shell .store-totals-row {
	display: flex;
	justify-content: space-between;
	gap: 1.2rem;
}

.store-shell .store-totals-grand {
	margin-top: 0.35rem;
	padding-top: 0.5rem;
	border-top: 1px solid color-mix(in srgb, currentColor 22%, transparent);
	font-size: 1.12rem;
	font-weight: 600;
}

.store-shell .store-totals-note {
	margin: 0.4rem 0 0;
	font-size: 0.86rem;
	opacity: 0.78;
}

/* --- checkout ------------------------------------------------------------- */

.store-shell .store-checkout-demo {
	margin: 0 0 1.5rem;
	padding: 0.75rem 0.95rem;
	border: 1px dashed color-mix(in srgb, currentColor 32%, transparent);
	border-radius: 4px;
	font-size: 0.92rem;
}

.store-shell .store-checkout-alert {
	margin: 0 0 1.4rem;
	padding: 0.85rem 1rem;
	border-left: 3px solid #8c2f2f;
	background: var(--gms-template-panel, rgba(0, 0, 0, 0.04));
}

.store-shell .store-checkout-alert p {
	margin: 0 0 0.4rem;
}

.store-shell .store-checkout-alert p:last-child {
	margin-bottom: 0;
}

.store-shell .store-checkout-unavailable {
	margin: 0 0 0.5rem;
	padding-left: 1.1rem;
}

.store-shell .store-checkout-unavailable li::before {
	content: none;
}

.store-shell .store-checkout-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	gap: 2.2rem;
	align-items: start;
}

.store-shell .store-field-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 0.9rem;
	margin-bottom: 1.4rem;
}

.store-shell .store-field {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	min-width: 0;
}

.store-shell .store-field-wide {
	grid-column: 1 / -1;
}

.store-shell .store-field-label {
	font-size: 0.88rem;
	font-weight: 600;
}

.store-shell .store-field-label em {
	font-style: normal;
	opacity: 0.6;
}

.store-shell .store-field input,
.store-shell .store-field select,
.store-shell .store-field textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 0.62rem 0.7rem;
	border: 1px solid color-mix(in srgb, currentColor 30%, transparent);
	border-radius: 3px;
	background: transparent;
	color: inherit;
	font: inherit;
}

.store-shell .store-field.has-error input,
.store-shell .store-field.has-error select,
.store-shell .store-field.has-error textarea {
	border-color: #8c2f2f;
}

.store-shell .store-field-error {
	color: #8c2f2f;
	font-size: 0.84rem;
}

.store-shell .store-field-hint {
	font-size: 0.84rem;
	opacity: 0.72;
}

.store-shell .store-checkout-summary {
	padding: 1.2rem 1.3rem;
	border: 1px solid color-mix(in srgb, currentColor 16%, transparent);
	border-radius: 5px;
	background: var(--gms-template-panel, rgba(0, 0, 0, 0.03));
	/* Sticks alongside a long address form on desktop; the media query below releases it
	   once the layout stacks, where a sticky summary would just cover the fields. */
	position: sticky;
	top: 1.5rem;
}

.store-shell .store-summary-list {
	margin: 0 0 1rem;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.45rem;
}

.store-shell .store-summary-list li {
	display: flex;
	justify-content: space-between;
	gap: 0.9rem;
}

.store-shell .store-summary-list-lined li {
	padding-bottom: 0.45rem;
	border-bottom: 1px solid color-mix(in srgb, currentColor 12%, transparent);
}

.store-shell .store-summary-qty {
	opacity: 0.7;
}

.store-shell .store-summary-amount {
	white-space: nowrap;
}

/*
 * A SET IN A SUMMARY LIST is ONE row with its pieces listed underneath it (round 5).
 *
 * The parent `li` is `display: flex; justify-content: space-between`, so the nested list
 * must claim a full row of its own - without `flex-basis: 100%` it is laid out as a THIRD
 * flex item, wedged between the set's name and its price.
 *
 * The members deliberately show NO money. Their apportioned figures are real and stored,
 * but "why is the mug $22.10 when its page says $26?" has no good answer on a receipt. The
 * saving belongs to the set, so the price is shown on the set.
 */
.store-shell .store-summary-group {
	flex-wrap: wrap;
}

.store-shell .store-summary-members {
	flex-basis: 100%;
	margin: 0.4rem 0 0;
	padding-left: 1.1rem;
	list-style: none;
	font-size: 0.92em;
	opacity: 0.75;
}

/* The lined-list border and space-between both reach these nested rows through the
   descendant selectors above, and neither is wanted on a piece inside a set. */
.store-shell .store-summary-list-lined .store-summary-members li {
	border-bottom: 0;
	padding-bottom: 0;
}

.store-shell .store-summary-members li {
	justify-content: flex-start;
	gap: 0.4rem;
	padding: 0.1rem 0;
}

.store-shell .store-checkout-submit {
	margin-top: 1.2rem;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.7rem;
}

/* --- order confirmation --------------------------------------------------- */

.store-shell .store-order-columns {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 2rem;
	align-items: start;
	margin-top: 1.4rem;
}

/* The totals block is right-aligned everywhere else; on the confirmation it sits in a
   two-column layout, so it starts at the column edge instead. */
.store-shell .store-order-columns .store-totals {
	margin-left: 0;
}

.store-shell .store-order-address {
	font-style: normal;
	line-height: 1.7;
}

.store-shell .store-order-signup {
	margin-top: 1.6rem;
	padding: 0.8rem 1rem;
	border-radius: 4px;
	background: var(--gms-template-panel, rgba(0, 0, 0, 0.04));
}

.store-shell .store-order-keep {
	margin-top: 0.8rem;
	font-size: 0.86rem;
	opacity: 0.72;
}

/* --- responsive ----------------------------------------------------------- */

@media (max-width: 899px) {
	.store-shell .store-checkout-grid,
	.store-shell .store-order-columns {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.4rem;
	}
	.store-shell .store-checkout-summary {
		position: static;
	}
	.store-shell .store-totals {
		max-width: none;
	}
}

@media (max-width: 599px) {
	/* The five-column cart row cannot survive a phone. Image and details on the first
	   line, then quantity / total / remove beneath them. */
	.store-shell .store-cart-row {
		grid-template-columns: 64px minmax(0, 1fr) auto;
		row-gap: 0.6rem;
	}
	.store-shell .store-cart-qty {
		grid-column: 2 / 3;
	}
	.store-shell .store-cart-line-total {
		grid-column: 3 / 4;
		text-align: right;
	}
	.store-shell .store-cart-remove {
		grid-column: 3 / 4;
		grid-row: 1 / 2;
		justify-self: end;
	}
	.store-shell .store-add-form {
		flex-wrap: wrap;
	}
}

/* ---------------------------------------------------------------------------
   Store groupings - collection chip row, set/bundle cards, grouping detail
   (round 4, 2026-08-18)

   Scoped on `.route-store` like the rest of the store front, NOT on `.store-shell`:
   `.store-card-flag` above already uses `.route-store`, and the flag variant below has
   to sit in the same specificity band or it loses to it. The route root is the FIRST
   path segment, so /store/set/x and /store/collection/x are `.route-store` too.
   --------------------------------------------------------------------------- */

/* ---------------------------------------------------------------------------
   SET / BUNDLE: choosing optional pieces, and adding the whole thing at once
   --------------------------------------------------------------------------- */

/* The member card used to BE the grid item; it is now wrapped so an optional piece can
   carry a tick box underneath it. A checkbox cannot go inside the card itself - the card
   is an <a>, and interactive content inside an anchor is invalid and unusable with a
   keyboard. The shell is the grid item now, so it takes the column stretch and the card
   grows inside it, keeping every card's body aligned whether or not it has a tick box. */
.route-store .store-card-shell {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.route-store .store-card-shell > .store-card {
	flex: 1 1 auto;
}

/* No border or plate. The tick box is already a control and reads as one; boxing the label
   as well made a card in a grid of cards look like it had a second card stuck to it. The
   horizontal padding is zero so the label lines up with the card's own text above it.
   Keyboard focus is covered by the checkbox's native ring, so the hover shift here is
   affordance rather than the only signal. */
.route-store .store-card-choose {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.1rem 0;
	/* Fixed so a real label and the reserved blank below are exactly the same height - a
	   checkbox and a line of text do not measure the same on their own. */
	min-height: 1.4rem;
	font-size: 0.82rem;
	line-height: 1.3;
	cursor: pointer;
	opacity: 0.85;
	transition: opacity 0.15s ease;
}

/* Held open, not drawn. Every card in a grid that has ANY tick box reserves this row, so the
   cards stay equal height and their prices keep the baseline they share - the price sits at
   the bottom of the card, so one short card lifts its price above the whole row. */
.route-store .store-card-choose-spacer {
	visibility: hidden;
	cursor: default;
}

.route-store .store-card-choose:hover,
.route-store .store-card-choose:focus-within {
	opacity: 1;
}

/* An unticked piece is not being bought, and the card above it should read that way
   without the label having to spell it out again. */
.route-store .store-card-shell-choosable:has(input:not(:checked)) > .store-card {
	opacity: 0.5;
}

.route-store .store-card-choose input {
	flex: 0 0 auto;
	margin: 0;
}

/* The whole-set button sits under the price summary, where the decision is being made. */
.route-store .store-group-add {
	margin-top: 1rem;
}

/* A way IN to the grid, not site navigation - it sits inside the panel under the intro.
   Renders only when there are 2+ filters of ANY kind - Sets, Bundles or a collection; the
   template decides, not this file. */
.route-store .store-collection-bar {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 0.6rem;
	margin: 0 0 1.6rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid color-mix(in srgb, currentColor 12%, transparent);
}

.route-store .store-collection-chip {
	display: inline-block;
	padding: 0.32rem 0.85rem;
	border: 1px solid color-mix(in srgb, currentColor 22%, transparent);
	border-radius: 999px;
	font-size: 0.86rem;
	line-height: 1.5;
	text-decoration: none;
	white-space: nowrap;
	opacity: 0.82;
	transition: opacity 0.15s ease, border-color 0.15s ease;
}

.route-store .store-collection-chip:hover,
.route-store .store-collection-chip:focus-visible {
	opacity: 1;
	border-color: color-mix(in srgb, currentColor 45%, transparent);
	text-decoration: none;
}

/* Sets and Bundles filter by KIND of thing; the rest filter by which collection. Same row
   and same shape, because they do the same job - but a faint tint groups the two coarse
   cuts at the head of the row, so the eye reads "kinds, then collections" instead of one
   undifferentiated list. Deliberately subtle: any stronger and it reads as "selected",
   which is what .is-active means. That rule carries three classes to this one's two, so it
   still wins wherever both apply. */
.route-store .store-collection-chip-type {
	background: color-mix(in srgb, currentColor 5%, transparent);
	border-color: color-mix(in srgb, currentColor 30%, transparent);
}

/* The current filter reads as filled rather than merely darker, so it is distinguishable
   without relying on colour alone. */
.route-store .store-collection-chip.is-active {
	opacity: 1;
	border-color: currentColor;
	background: color-mix(in srgb, currentColor 10%, transparent);
	font-weight: 600;
}

/* The back-to-the-shop kicker - see modules/store/templates/store/_kicker.php.

   This is now the PRIMARY way back from a product, set, bundle or collection page, so the
   shop's name has to read as a link at a glance rather than only on hover. The underline
   is always present and merely held back, which is also why it does not rely on colour:
   the kicker is uppercase 0.8rem muted text, where a colour shift alone is easy to miss. */
.route-store .store-kicker {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.45rem;
}

.route-store .store-kicker-home {
	/* The anchor has to be told to stay in the kicker's typography. A global link rule sets
	   its own font-size, letter-spacing and text-transform, so without these the shop's name
	   renders 16px mixed-case beside a 12px uppercase label and the two halves of one line
	   stop matching. The old product-page kicker had the same bug and got away with it -
	   its link was the single word "Store", which looks the same either way. */
	font: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
	color: inherit;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.25em;
	text-decoration-color: color-mix(in srgb, currentColor 35%, transparent);
	transition: text-decoration-color 0.15s ease;
}

.route-store .store-kicker-home:hover,
.route-store .store-kicker-home:focus-visible {
	color: inherit;
	text-decoration-color: currentColor;
}

/* The separator and the page you are already on are context, not the action - held back so
   the eye lands on the link. Opacity rather than a second colour, so it survives whatever
   the palette does to the kicker. */
.route-store .store-kicker-separator,
.route-store .store-kicker-current {
	opacity: 0.6;
}

/* Sits in the SAME slot as "Out of stock" and never alongside it - a sold-out set needs
   to say so more than it needs to say it is a set. Lighter than the stock badge so it
   reads as a label rather than a warning. */
.route-store .store-card-flag-group {
	/* An INVERTED plate - light ground, dark text - so it is instantly distinguishable
	   from the black "Out of stock" badge that shares this slot.

	   Both values are explicit on purpose. `currentColor` is a trap here: the base
	   .store-card-flag rule has ALREADY set `color: #fff`, so `background: currentColor`
	   resolved to white and, with light text on top, rendered a blank white box. And a
	   color-mix against `transparent` (the try before that) let pale photographs show
	   through and washed the label out. A badge over arbitrary photography has to be
	   opaque and self-contained. */
	background: rgba(255, 255, 255, 0.94);
	color: #1b1b1b;
	font-weight: 700;
}

.route-store .store-group-summary {
	max-width: 26rem;
	margin: 0 0 2rem;
}

.route-store .store-group-note {
	margin: 0.6rem 0 0;
	font-size: 0.92rem;
	opacity: 0.85;
}
