/*
Theme Name: Trailhead
Description: Custom Peak Outdoors theme for camps, RV service, and editorial content.
Version: 1.1.0
Requires at least: 6.5
Requires PHP: 7.4
Text Domain: trailhead
Update URI: false
*/

:root {
	/* Brand and semantic colors. */
	--color-off-black: #141414;
	--color-black: #000000;
	--color-white: #ffffff;
	--color-brand-accent: #d90100;
	--color-brand-accent-hover: #bd0100;
	--color-brand-accent-active: #a50100;
	--color-brand-accent-on-dark: #fe0100;
	--color-background-page: var(--color-white);
	--color-background-section: #f9f9f9;
	--color-background-section-muted: #f2f2f2;
	--color-border: #707070;
	--color-border-subtle: #d9d9d9;
	--color-muted: #5c5c5c;
	--color-link-hover: var(--color-muted);
	--color-link-hover-on-dark: #bdbdbd;
	--color-focus: var(--color-off-black);
	--color-focus-halo: rgb(20 20 20 / 18%);
	--color-error: #b42318;
	--color-control-background: var(--color-white);
	--color-control-background-soft: #eeeeee;
	--color-control-background-pressed: #dddddd;
	--color-brand-accent-alpha-38: rgb(217 1 0 / 38%);
	--color-brand-accent-alpha-24: rgb(217 1 0 / 24%);
	--color-off-black-alpha-10: rgb(20 20 20 / 10%);
	--color-off-black-alpha-13: rgb(20 20 20 / 13%);
	--color-off-black-alpha-14: rgb(20 20 20 / 14%);
	--color-off-black-alpha-16: rgb(20 20 20 / 16%);
	--color-off-black-alpha-18: rgb(20 20 20 / 18%);
	--color-black-alpha-12: rgb(0 0 0 / 12%);
	--color-black-alpha-16: rgb(0 0 0 / 16%);
	--color-black-alpha-24: rgb(0 0 0 / 24%);
	--color-black-alpha-32: rgb(0 0 0 / 32%);
	--color-black-alpha-48: rgb(0 0 0 / 48%);
	--color-black-alpha-55: rgb(0 0 0 / 55%);
	--color-black-alpha-58: rgb(0 0 0 / 58%);
	--color-black-alpha-72: rgb(0 0 0 / 72%);
	--color-black-alpha-78: rgb(0 0 0 / 78%);
	--color-black-alpha-82: rgb(0 0 0 / 82%);
	--color-black-alpha-84: rgb(0 0 0 / 84%);
	--color-black-alpha-88: rgb(0 0 0 / 88%);
	--color-white-alpha-08: rgb(255 255 255 / 8%);
	--color-white-alpha-10: rgb(255 255 255 / 10%);
	--color-white-alpha-16: rgb(255 255 255 / 16%);
	--color-white-alpha-18: rgb(255 255 255 / 18%);
	--color-white-alpha-20: rgb(255 255 255 / 20%);
	--color-white-alpha-24: rgb(255 255 255 / 24%);
	--color-white-alpha-30: rgb(255 255 255 / 30%);
	--color-white-alpha-35: rgb(255 255 255 / 35%);
	--color-white-alpha-45: rgb(255 255 255 / 45%);
	--color-white-alpha-55: rgb(255 255 255 / 55%);
	--color-white-alpha-70: rgb(255 255 255 / 70%);
	--color-white-alpha-72: rgb(255 255 255 / 72%);
	--color-white-alpha-76: rgb(255 255 255 / 76%);

	/* Typography scale. */
	--font-family-heading: "Oswald", sans-serif;
	--font-family-body: "Roboto", sans-serif;
	--font-weight-regular: 400;
	--font-weight-medium: 500;
	--font-weight-semibold: 600;
	--font-weight-bold: 700;
	--font-size-body-xs: clamp(0.6875rem, 0.66rem + 0.1vw, 0.75rem);
	--font-size-body-sm: clamp(0.8125rem, 0.78rem + 0.15vw, 0.875rem);
	--font-size-body: clamp(1rem, 0.96rem + 0.2vw, 1.125rem);
	--font-size-body-lg: clamp(1.25rem, 1.14rem + 0.45vw, 1.5rem);
	--font-size-body-xl: clamp(1.5rem, 1.3rem + 0.8vw, 2rem);
	--font-size-eyebrow: clamp(0.875rem, 0.84rem + 0.16vw, 1rem);
	--font-size-heading-6: clamp(1.1875rem, 1.05rem + 0.25vw, 1.25rem);
	--font-size-heading-5: clamp(1.375rem, 1.15rem + 0.4vw, 1.5rem);
	--font-size-heading-4: clamp(1.625rem, 1.35rem + 0.65vw, 1.875rem);
	--font-size-heading-3: clamp(1.875rem, 1.5rem + 1vw, 2.375rem);
	--font-size-heading-2: clamp(2.375rem, 1.7rem + 1.7vw, 3.25rem);
	--font-size-heading-1: clamp(3rem, 2.1rem + 2.6vw, 4.5rem);
	--font-size-display-2: clamp(4rem, 2.4rem + 4.4vw, 6.5rem);
	--font-size-display-1: clamp(5.25rem, 9vw, 9rem);
	--font-size-title-display: var(--font-size-display-1);
	--font-size-title-page: var(--font-size-heading-1);
	--font-size-title-section: var(--font-size-heading-2);
	--font-size-title-card: var(--font-size-heading-4);
	--font-size-title-compact: var(--font-size-heading-6);
	--line-height-heading: 1.05;
	--line-height-display: 1;
	--line-height-tight: 1.2;
	--line-height-snug: 1.35;
	--line-height-copy-lg: 1.45;
	--line-height-body: 1.6;
	--letter-spacing-tight: -0.025em;
	--letter-spacing-subtle: 0.03em;
	--letter-spacing-label: 0.08em;
	--letter-spacing-label-wide: 0.12em;
	--letter-spacing-eyebrow: 0.16em;

	/* Spacing, layout, radius, motion, and elevation scales. */
	--space-0: 0;
	--space-1: 0.25rem;
	--space-2: 0.5rem;
	--space-3: 0.75rem;
	--space-4: 1rem;
	--space-label-to-heading: var(--space-3);
	--space-5: clamp(1.25rem, 1.15rem + 0.4vw, 1.5rem);
	--space-6: clamp(1.5rem, 1.3rem + 0.8vw, 2rem);
	--space-7: clamp(2rem, 1.6rem + 1.6vw, 3rem);
	--space-8: clamp(3rem, 2.2rem + 3.2vw, 5rem);
	--space-layout-sm: clamp(1.25rem, 2.5vw, 2rem);
	--space-layout-md: clamp(1.5rem, 3vw, 2.5rem);
	--space-layout-lg: clamp(2rem, 6vw, 6rem);
	--space-layout-xl: clamp(3rem, 8vw, 7rem);
	--space-layout-2xl: clamp(4rem, 10vw, 8rem);
	--space-layout-feature: clamp(3rem, 7vw, 8rem);
	--space-inset-card: clamp(1.25rem, 3vw, 2rem);
	--space-inset-panel: clamp(2rem, 5vw, 4rem);
	--space-section-header: clamp(3rem, 8vw, 6rem);
	--container-max-width-sm: 48rem;
	--container-max-width-md: 75rem;
	--container-max-width-lg: 100rem;
	--container-gutter: clamp(1rem, 4vw, 3rem);
	--content-max-width-xs: 34rem;
	--content-max-width-sm: 42rem;
	--content-max-width-md: 48rem;
	--content-max-width-lg: 52rem;
	--content-max-width-wide: 68rem;
	--radius-sm: 0.25rem;
	--radius-md: 0.625rem;
	--radius-lg: 1.25rem;
	--radius-pill: 999px;
	--radius-circle: 50%;
	--control-min-height: 3rem;
	--control-border-radius: var(--radius-md);
	--control-border-radius-lg: var(--radius-lg);
	--control-textarea-min-height: 8rem;
	--control-textarea-min-height-lg: 11rem;
	--form-field-gap: var(--space-2);
	--form-column-gap: var(--space-4);
	--duration-fast: 160ms;
	--duration-medium: 220ms;
	--duration-slow: 300ms;
	--ease-standard: ease;
	--ease-emphasized: cubic-bezier(0.2, 0.8, 0.2, 1);
	--transition-fast: var(--duration-fast) var(--ease-standard);
	--transition-medium: var(--duration-medium) var(--ease-emphasized);
	--transition-slow: var(--duration-slow) var(--ease-standard);
	--shadow-soft: 0 1.5rem 4rem var(--color-off-black-alpha-10);
	--shadow-raised: 0 1.5rem 4rem var(--color-off-black-alpha-16);
	--shadow-popover: 0 0.75rem 2rem var(--color-off-black-alpha-16);
	--shadow-card: 0 0.75rem 2rem var(--color-off-black-alpha-10);
	--shadow-card-hover: 0 1.25rem 3rem var(--color-off-black-alpha-18);
	--shadow-text: 0 0.125rem 1.5rem var(--color-black-alpha-32);
	--surface-accent-size: 0.25rem;
	--surface-lift: translateY(-0.25rem);

	/* Shared control state aliases. */
	--button-color: var(--color-white);
	--button-background: var(--color-black);
	--button-border-color: var(--color-black);
	--button-hover-color: var(--color-black);
	--button-hover-background: var(--color-white);
	--button-hover-border-color: var(--color-black);
	--button-active-color: var(--color-black);
	--button-active-background: var(--color-white);
	--button-active-border-color: var(--color-black);
	--focus-ring-width: 0.125rem;
	--focus-ring-offset: 0.1875rem;
	--focus-halo-width: 0.3125rem;
	--logo-filter-on-dark: brightness(0) invert(1);
	--site-header-logo-max-width: 10.625rem;
	--site-header-height: 5rem;
}

/* Basic CSS reset. */
html {
	box-sizing: border-box;
	scroll-padding-top: calc(var(--site-header-height) + var(--space-3));
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

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

body {
	margin: 0;
}

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

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

button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	-webkit-appearance: button;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

[hidden] {
	display: none !important;
}

body {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	min-height: 100dvh;
	background-color: var(--color-background-page);
	color: var(--color-off-black);
	font-family: var(--font-family-body);
	font-size: var(--font-size-body);
	line-height: var(--line-height-body);
}

:where(.site-main section, .site-main .wp-block-group) {
	background-color: var(--color-background-section);
}

a,
a:visited {
	color: inherit;
	text-decoration: none;
	transition: color var(--transition-fast);
}

html.has-hover-input a:hover,
a:focus-visible {
	color: var(--color-link-hover);
}

h1,
h2,
h3,
h4,
h5,
h6,
.site-title,
.entry-title,
.wp-block-site-title,
.txt-h1,
.txt-h2,
.txt-h3,
.txt-h4,
.txt-h5,
.txt-h6,
.txt-display-1,
.txt-display-2 {
	font-family: var(--font-family-heading);
	hyphens: none;
	line-height: var(--line-height-heading);
	overflow-wrap: normal;
	text-wrap: balance;
	text-transform: uppercase;
	word-break: normal;
}

h1,
.site-title,
.entry-title,
.wp-block-site-title,
.txt-h1 {
	font-size: var(--font-size-heading-1);
}

h2,
.txt-h2 {
	font-size: var(--font-size-heading-2);
}

h3,
.txt-h3 {
	font-size: var(--font-size-heading-3);
}

h4,
.txt-h4 {
	font-size: var(--font-size-heading-4);
}

h5,
.txt-h5 {
	font-size: var(--font-size-heading-5);
}

h6,
.txt-h6 {
	font-size: var(--font-size-heading-6);
}

.txt-display-1 {
	font-size: var(--font-size-display-1);
}

.txt-display-2 {
	font-size: var(--font-size-display-2);
}

/* Semantic title roles keep visual hierarchy consistent across components. */
.heading-display {
	font-size: var(--font-size-title-display);
}

.heading-page {
	font-size: var(--font-size-title-page);
}

.heading-section {
	font-size: var(--font-size-title-section);
}

.heading-card {
	font-size: var(--font-size-title-card);
}

.heading-card--clamped {
	display: -webkit-box;
	overflow: hidden;
	font-size: var(--font-size-heading-5);
	text-overflow: ellipsis;
	text-wrap: wrap;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.heading-compact {
	font-size: var(--font-size-title-compact);
}

/* Shared header and title treatment for top-level interior pages and archives. */
.page-header {
	position: relative;
	padding-block: var(--space-section-header);
	color: var(--color-off-black);
	background-color: var(--color-background-section);
	border-bottom: 1px solid var(--color-border-subtle);
}

.page-header > .container {
	position: relative;

	/* A short brand rule connects utility headers to the site's editorial sections. */
	padding-block-start: var(--space-5);
}

.page-header > .container::before {
	position: absolute;
	top: 0;
	left: 0;
	width: clamp(4rem, 8vw, 7rem);
	height: var(--surface-accent-size);
	background-color: var(--color-brand-accent);
	content: "";
}

.page-header--archive > .container {
	padding-block-start: 0;
}

.page-header--archive > .container::before {
	content: none;
}

.page-title {
	width: 100%;
	max-width: 20ch;
	margin: 0;
	font-size: var(--font-size-title-page);
	letter-spacing: var(--letter-spacing-tight);
	text-transform: uppercase;
}

.page-description {
	width: 100%;
	margin: var(--space-6) 0 0;
	color: var(--color-muted);
	font-size: var(--font-size-body-lg);
	line-height: var(--line-height-body);
}

.page-header__title-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-6);
}

.page-header__title-stack {
	min-width: 0;
	flex: 1 1 auto;
}

.page-header__title-row .page-title {
	min-width: 0;
}

.page-header + .page-section--after-header {
	/* Keep archive results visually connected to the intro without touching its accent rule. */
	padding-block-start: var(--space-6);
}

.txt-xs,
.txt-sm,
.txt-md,
.txt-lg,
.txt-xl {
	font-family: var(--font-family-body);
	line-height: var(--line-height-body);
}

.txt-xs {
	font-size: var(--font-size-body-xs);
}

.txt-sm {
	font-size: var(--font-size-body-sm);
}

.txt-md {
	font-size: var(--font-size-body);
}

.txt-lg {
	font-size: var(--font-size-body-lg);
}

.txt-xl {
	font-size: var(--font-size-body-xl);
}

.eyebrow {
	margin: 0 0 var(--space-label-to-heading);
	color: var(--color-brand-accent);
	font-family: var(--font-family-heading);
	font-size: var(--font-size-eyebrow);
	font-weight: var(--font-weight-semibold);
	letter-spacing: var(--letter-spacing-eyebrow);
	text-transform: uppercase;
}

.breadcrumbs {
	margin: 0 0 var(--space-label-to-heading);
	color: var(--color-brand-accent);
	font-family: var(--font-family-heading);
	font-size: var(--font-size-eyebrow);
	font-weight: var(--font-weight-semibold);
	letter-spacing: var(--letter-spacing-eyebrow);
	text-transform: uppercase;
}

.eyebrow + :where(h1, h2, h3, h4, h5, h6),
.breadcrumbs + :where(h1, h2, h3, h4, h5, h6) {
	margin-block-start: 0;
}

.status-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: var(--space-1) var(--space-2);
	color: var(--color-brand-accent);
	font-family: var(--font-family-body);
	font-size: var(--font-size-body-xs);
	font-weight: var(--font-weight-bold);
	letter-spacing: var(--letter-spacing-label);
	line-height: 1;
	text-transform: uppercase;
	white-space: nowrap;
	border: 1px solid currentcolor;
	border-radius: var(--radius-pill);
}

.breadcrumbs__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-1) var(--space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.breadcrumbs__item {
	display: inline-flex;
	align-items: center;
	min-width: 0;
}

.breadcrumbs__item + .breadcrumbs__item::before {
	margin-inline-end: var(--space-2);
	color: currentcolor;
	content: "/";
	opacity: 0.55;
}

.breadcrumbs a {
	color: inherit;
	text-decoration: none;
}

html.has-hover-input .breadcrumbs a:hover,
.breadcrumbs a:focus-visible {
	color: var(--color-black);
}

.page-header .breadcrumbs a:focus-visible,
html.has-hover-input .page-header .breadcrumbs a:hover {
	color: var(--color-black);
}

.page-header :is(.eyebrow, .breadcrumbs) {
	color: var(--color-brand-accent);
}

.breadcrumbs a:focus-visible {
	outline: var(--focus-ring-width) solid var(--color-focus);
	outline-offset: var(--focus-ring-offset);
}

/* Shared raised surfaces make cards and forms read as one component family. */
.surface-card,
.surface-panel {
	background-color: var(--color-white);
	border: 1px solid var(--color-border-subtle);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-card);
}

.surface-card {
	position: relative;
	overflow: hidden;
}

.surface-card--interactive {
	transition: border-color var(--transition-medium), box-shadow var(--transition-medium), transform var(--transition-medium);
}

.surface-panel {
	padding: var(--space-inset-panel);
}

@media (any-hover: hover) and (any-pointer: fine) {
	html.has-hover-input .surface-card--interactive:hover {
		border-color: var(--color-border);
		box-shadow: var(--shadow-card-hover);
		transform: var(--surface-lift);
	}
}

label,
legend {
	font-weight: var(--font-weight-bold);
}

fieldset {
	min-width: 0;
	padding: var(--space-5);
	border: 1px solid var(--color-border);
	border-radius: var(--control-border-radius);
}

legend {
	padding-inline: var(--space-2);
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="tel"],
input[type="search"],
input[type="password"],
input[type="number"],
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"],
input[type="week"],
select,
textarea {
	box-sizing: border-box;
	width: 100%;
	min-height: var(--control-min-height);
	padding: var(--space-3) var(--space-4);
	color: var(--color-black);
	background-color: var(--color-control-background);
	border: 1px solid var(--color-border);
	border-radius: var(--control-border-radius);
}

textarea {
	min-height: var(--control-textarea-min-height);
	resize: vertical;
}

input::placeholder,
textarea::placeholder {
	color: var(--color-muted);
	opacity: 1;
}

input[type="checkbox"],
input[type="radio"],
input[type="range"],
progress {
	accent-color: var(--color-black);
}

input[type="checkbox"],
input[type="radio"] {
	width: 1.25rem;
	height: 1.25rem;
	margin: 0;
	vertical-align: middle;
}

button,
input[type="button"],
input[type="submit"],
input[type="reset"],
.btn,
.wp-element-button,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--control-min-height);
	padding: var(--space-3) var(--space-5);
	color: var(--button-color);
	font-weight: var(--font-weight-bold);
	line-height: var(--line-height-tight);
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	background-color: var(--button-background);
	border: 2px solid var(--button-border-color);
	border-radius: var(--control-border-radius);
	transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
}

/* Keep anchor-based buttons on their component color after a link is visited. */
a.btn,
a.wp-element-button,
a.wp-block-button__link {
	color: var(--button-color);
}

html.has-hover-input button:hover,
html.has-hover-input input[type="button"]:hover,
html.has-hover-input input[type="submit"]:hover,
html.has-hover-input input[type="reset"]:hover,
html.has-hover-input .btn:hover,
html.has-hover-input .wp-element-button:hover,
html.has-hover-input .wp-block-button__link:hover {
	color: var(--button-hover-color);
	background-color: var(--button-hover-background);
	border-color: var(--button-hover-border-color);
	transform: translateY(-0.125rem);
}

button:active,
input[type="button"]:active,
input[type="submit"]:active,
input[type="reset"]:active,
.btn:active,
.wp-element-button:active,
.wp-block-button__link:active {
	background-color: var(--button-active-background);
	border-color: var(--button-active-border-color);
	color: var(--button-active-color);
}

input:focus-visible,
select:focus-visible,
textarea:focus-visible,
button:focus-visible,
.btn:focus-visible,
.wp-element-button:focus-visible,
.wp-block-button__link:focus-visible {
	outline: var(--focus-ring-width) solid var(--color-focus);
	outline-offset: var(--focus-ring-offset);
	box-shadow: 0 0 0 var(--focus-halo-width) var(--color-focus-halo);
}

input:user-invalid,
select:user-invalid,
textarea:user-invalid,
input[aria-invalid="true"],
select[aria-invalid="true"],
textarea[aria-invalid="true"] {
	border-color: var(--color-error);
}

button:disabled,
input:disabled,
select:disabled,
textarea:disabled,
.btn[aria-disabled="true"],
.wp-element-button[aria-disabled="true"],
.wp-block-button__link[aria-disabled="true"] {
	cursor: not-allowed;
	opacity: 0.55;
}

/* Button component variants. Sizing is defined by the base .btn component. */
.btn-primary {
	--button-color: var(--color-white);
	--button-background: var(--color-brand-accent);
	--button-border-color: var(--color-brand-accent);
	--button-hover-color: var(--color-white);
	--button-hover-background: var(--color-brand-accent-hover);
	--button-hover-border-color: var(--color-brand-accent-hover);
	--button-active-color: var(--color-white);
	--button-active-background: var(--color-brand-accent-active);
	--button-active-border-color: var(--color-brand-accent-active);

	box-shadow: none;
}

.btn-secondary {
	--button-color: var(--color-white);
	--button-background: var(--color-black);
	--button-border-color: var(--color-black);
	--button-hover-color: var(--color-black);
	--button-hover-background: var(--color-white);
	--button-hover-border-color: var(--color-black);
	--button-active-color: var(--color-white);
	--button-active-background: var(--color-off-black);
	--button-active-border-color: var(--color-off-black);
}

.btn-tertiary {
	--button-color: var(--color-black);
	--button-background: transparent;
	--button-border-color: var(--color-black);
	--button-hover-color: var(--color-white);
	--button-hover-background: var(--color-black);
	--button-hover-border-color: var(--color-black);
	--button-active-color: var(--color-white);
	--button-active-background: var(--color-off-black);
	--button-active-border-color: var(--color-off-black);
}

input[type="file"] {
	max-width: 100%;
}

input[type="file"]::file-selector-button {
	min-height: var(--control-min-height);
	margin-inline-end: 0.75rem;
	padding: 0.625rem 1rem;
	color: var(--color-white);
	font-weight: var(--font-weight-bold);
	cursor: pointer;
	background-color: var(--color-black);
	border: 0;
	border-radius: var(--control-border-radius);
}

/* Reusable form layout and control variants. */
.form-layout {
	display: grid;
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	gap: var(--space-layout-md);
}

.form-layout--two-column {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.form-column {
	display: grid;
	align-content: start;
	gap: var(--form-column-gap);
}

.form-field {
	display: grid;
	gap: var(--form-field-gap);
}

.form-label {
	font-size: var(--font-size-body-sm);
}

.form-required {
	color: var(--color-error);
}

.form-control.form-control--soft {
	background-color: var(--color-control-background-soft);
	border-color: transparent;
}

.form-control.form-control--pill {
	border-radius: var(--control-border-radius);
}

.form-control.form-control--message {
	min-height: var(--control-textarea-min-height-lg);
	border-radius: var(--control-border-radius);
}

.form-actions {
	display: flex;
	grid-column: 1 / -1;
	margin-top: var(--space-6);
}

.form-actions--center {
	justify-content: center;
}

@media (max-width: 48rem) {
	.form-layout--two-column {
		grid-template-columns: 1fr;
	}

	.form-actions {
		grid-column: 1;
	}
}

@media (max-width: 36rem) {
	.form-actions--full-mobile > button,
	.form-actions--full-mobile > .btn {
		width: 100%;
	}
}

.container {
	--container-width: var(--container-max-width-md);

	box-sizing: border-box;
	width: calc(100% - var(--container-gutter) - var(--container-gutter));
	max-width: var(--container-width);
	margin-inline: auto;
}

.container-sm {
	--container-width: var(--container-max-width-sm);
}

.container-md {
	--container-width: var(--container-max-width-md);
}

.container-lg {
	--container-width: var(--container-max-width-lg);
}

@media (min-width: 62.01rem) and (max-width: 100rem) {
	:root {
		--container-gutter: clamp(4rem, 7vw, 6rem);
	}
}

@media (min-width: 48.01rem) and (max-width: 90rem) {
	.container-lg {
		--container-width: var(--container-max-width-md);
	}
}

@media (min-width: 90.01rem) {
	.container:not(.container-sm) {
		--container-width: var(--container-max-width-lg);
	}
}

.site-main {
	flex: 1 1 auto;
}

.site-header {
	--color-link-hover: var(--color-link-hover-on-dark);

	position: sticky;
	top: 0;
	z-index: 1000;
	min-height: var(--site-header-height);
	background-color: var(--color-black);
}

body.admin-bar .site-header {
	top: var(--site-header-admin-offset, var(--wp-admin--admin-bar--height, 32px));
}

.site-header__inner {
	display: flex;
	align-items: center;
	gap: var(--space-6);
	min-height: inherit;
}

.site-header__logo {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
}

.site-header__logo-image {
	display: block;
	width: min(var(--site-header-logo-max-width), 40vw);
	height: auto;
}

.site-header__logo-placeholder {
	display: block;
	width: 8rem;
	height: 2.5rem;
	border: 1px dashed var(--color-white-alpha-70);
}

.site-header__logo-placeholder:focus-visible {
	outline: 2px solid var(--color-white);
	outline-offset: 4px;
}

.site-header__menu-toggle {
	display: none;
}

.site-header__navigation {
	align-self: stretch;
	min-width: 0;
	margin-inline-start: auto;
}

.site-header__menu,
.site-header__menu .sub-menu {
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-header__menu {
	display: flex;
	align-items: stretch;
	gap: var(--space-6);
	height: 100%;
}

.site-header__menu > li {
	position: relative;
	display: flex;
	align-items: center;
}

.site-header__menu a {
	display: block;
	padding-block: var(--space-3);
	color: var(--color-white);
	font-family: var(--font-family-heading);
	font-size: var(--font-size-body-lg);
	font-weight: var(--font-weight-medium);
	text-decoration: none;
}

html.has-hover-input .site-header__menu a:hover,
.site-header__menu a:focus-visible,
.site-header__menu .current-menu-item > a,
.site-header__menu .current-menu-ancestor > a {
	color: var(--color-link-hover);
}

.site-header__menu .sub-menu {
	position: absolute;
	top: calc(100% + var(--space-2));
	left: 50%;
	z-index: 10;
	display: block;
	width: max-content;
	min-width: 14rem;
	padding: var(--space-2);
	pointer-events: none;
	opacity: 0;
	visibility: hidden;
	background-color: var(--color-off-black);
	border: 1px solid var(--color-white-alpha-16);
	border-radius: var(--control-border-radius);
	box-shadow: var(--shadow-popover);
	transform: translate(-50%, var(--space-2));
	transition: opacity var(--transition-fast), transform var(--transition-medium), visibility 0s linear var(--duration-medium);
}

.site-header__menu .sub-menu::before {
	position: absolute;
	right: 0;
	bottom: 100%;
	left: 0;
	height: var(--space-2);
	content: "";
}

@media (min-width: 48.01rem) {
	html.has-hover-input .site-header__menu li:hover > .sub-menu,
	.site-header__menu li.is-menu-aim-active > .sub-menu,
	.site-header__menu li:focus-within > .sub-menu {
		pointer-events: auto;
		opacity: 1;
		visibility: visible;
		transform: translate(-50%, 0);
		transition-delay: 0s;
	}
}

.site-header__submenu-toggle {
	display: none;
}

.site-header__menu .menu-item--section-link > a {
	display: flex;
	align-items: center;
	min-height: 2.75rem;
	padding: var(--space-2) var(--space-3);
	color: var(--color-white-alpha-76);
	font-family: var(--font-family-body);
	font-size: var(--font-size-body);
	font-weight: var(--font-weight-medium);
	white-space: nowrap;
	border-radius: var(--radius-sm);
	transition: color var(--transition-fast), background-color var(--transition-fast);
}

html.has-hover-input .site-header__menu .menu-item--section-link > a:hover,
.site-header__menu .menu-item--section-link > a:focus-visible {
	color: var(--color-white);
	background-color: var(--color-brand-accent);
}

.site-header__menu .menu-item--section-link > a:focus-visible {
	outline-offset: -2px;
}

.site-header__menu > .menu-item--mobile-only {
	display: none;
}

.site-header__logo:focus-visible,
.site-header__menu a:focus-visible {
	outline: 2px solid var(--color-white);
	outline-offset: 4px;
}

.site-header__cta {
	flex: 0 0 auto;
	height: var(--control-min-height);
	min-height: var(--control-min-height);
	padding-block: 0;
	white-space: nowrap;
}

.site-header__logo + .site-header__cta,
.site-header__logo-placeholder + .site-header__cta {
	margin-inline-start: auto;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.skip-link {
	position: fixed;
	top: var(--space-3);
	left: var(--space-3);
	z-index: 1000;
	width: 1px;
	height: 1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.skip-link:focus {
	width: auto;
	height: auto;
	padding: var(--space-3) var(--space-4);
	overflow: visible;
	clip: auto;
	clip-path: none;
	color: var(--color-white);
	font-weight: var(--font-weight-bold);
	background-color: var(--color-off-black);
	border: 2px solid var(--color-white);
	border-radius: var(--control-border-radius);
	box-shadow: var(--shadow-popover);
	outline: var(--focus-ring-width) solid var(--color-brand-accent);
	outline-offset: var(--focus-ring-offset);
}

.form-validation-summary {
	grid-column: 1 / -1;
	margin: 0 0 var(--space-4);
	padding: var(--space-3) var(--space-4);
	color: var(--color-error);
	font-weight: var(--font-weight-semibold);
	background-color: var(--color-background-section-muted);
	border-inline-start: var(--surface-accent-size) solid var(--color-error);
}

.form-validation-error {
	display: block;
	margin-top: var(--space-2);
	color: var(--color-error);
	font-size: var(--font-size-body-sm);
	font-weight: var(--font-weight-medium);
}

.site-footer {
	--color-link-hover: var(--color-link-hover-on-dark);

	flex-shrink: 0;
	color: var(--color-white);
}

.site-footer__main {
	padding-block: var(--space-7);
	background-color: var(--color-off-black);
}

.site-footer__columns {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr));
	gap: var(--space-8);
}

.site-footer__column {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-5);
}

.site-footer__heading {
	margin: var(--space-0);
	text-transform: uppercase;
}

.site-footer__logo-placeholder {
	display: block;
	width: 9rem;
	height: 3rem;
	border: 1px dashed var(--color-white-alpha-55);
}

.site-footer__logo-placeholder:focus-visible,
.site-footer__logo:focus-visible,
.site-footer__social-link:focus-visible,
.site-footer__menu a:focus-visible,
.site-footer__contact a:focus-visible,
.site-footer__legal-link:focus-visible {
	outline: 2px solid var(--color-white);
	outline-offset: var(--focus-ring-offset);
}

.site-footer__logo,
.site-footer__logo-image {
	display: block;
}

.site-footer__logo-image {
	width: min(16rem, 100%);
	max-height: 5rem;
	height: auto;
}

.logo-on-dark {
	filter: var(--logo-filter-on-dark);
}

.site-footer__bio {
	width: 100%;
	margin: var(--space-0);
	line-height: var(--line-height-body);
	text-wrap: pretty;
}

.site-footer__placeholder-lines {
	display: grid;
	gap: var(--space-2);
	width: min(100%, 22rem);
}

.site-footer__placeholder-line {
	display: block;
	width: 100%;
	height: 0.65rem;
	background-color: var(--color-white-alpha-18);
	border-radius: var(--radius-pill);
}

.site-footer__placeholder-line:nth-child(2) {
	width: 88%;
}

.site-footer__placeholder-line:nth-child(3) {
	width: 64%;
}

.site-footer__social-placeholders {
	display: flex;
	gap: var(--space-3);
}

.site-footer__social-links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	margin: var(--space-0);
	padding: var(--space-0);
	list-style: none;
}

.site-footer__social-link {
	display: grid;
	width: 2.5rem;
	height: 2.5rem;
	place-items: center;
	color: inherit;
	border: 1px solid var(--color-white-alpha-45);
	border-radius: var(--radius-circle);
	transition: background-color var(--transition-fast), color var(--transition-fast);
}

html.has-hover-input .site-footer__social-link:hover,
.site-footer__social-link:focus-visible {
	color: var(--color-off-black);
	background-color: var(--color-white);
}

.site-footer__tabler-icon {
	width: 1.25rem;
	height: 1.25rem;
}

.site-footer__social-placeholder {
	width: 2rem;
	height: 2rem;
	border: 1px dashed var(--color-white-alpha-55);
	border-radius: var(--radius-circle);
}

.site-footer__link-placeholders,
.site-footer__contact-placeholders {
	display: grid;
	gap: var(--space-4);
	width: min(100%, 15rem);
}

.site-footer__link-placeholder,
.site-footer__contact-placeholder {
	display: block;
	height: 0.75rem;
	background-color: var(--color-white-alpha-18);
	border-radius: var(--radius-pill);
}

.site-footer__link-placeholder:nth-child(even),
.site-footer__contact-placeholder:nth-child(even) {
	width: 72%;
}

.site-footer__menu {
	display: grid;
	gap: var(--space-3);
	margin: var(--space-0);
	padding: var(--space-0);
	list-style: none;
}

.site-footer__menu a,
.site-footer__contact a {
	color: inherit;
	text-underline-offset: 0.2em;
}

.site-footer__contact {
	display: grid;
	gap: var(--space-4);
	width: 100%;
	margin: var(--space-0);
	font-style: normal;
	line-height: var(--line-height-body);
}

.site-footer__contact-item {
	display: grid;
	grid-template-columns: 1.75rem minmax(0, 1fr);
	gap: var(--space-1) var(--space-2);
	align-items: start;
	width: 100%;
	color: inherit;
}

.site-footer__contact-item > :not(.site-footer__contact-icon) {
	grid-column: 2;
}

.site-footer__contact-icon {
	display: block;
	grid-row: 1 / span 2;
	grid-column: 1;
	width: 1.5rem;
	height: 1.5rem;
	margin-top: var(--space-1);
	color: var(--color-white);
}

.site-footer__contact-icon .site-footer__tabler-icon {
	width: 1.5rem;
	height: 1.5rem;
}

.site-footer__contact-label {
	color: var(--color-white);
	font-weight: var(--font-weight-bold);
	letter-spacing: var(--letter-spacing-label);
	text-transform: uppercase;
}

.site-footer__contact-value {
	overflow-wrap: anywhere;
}

.site-footer__bottom {
	padding-block: var(--space-4);
	background-color: var(--color-black);
}

.site-footer__bottom-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4) var(--space-6);
}

.site-footer__copyright {
	margin: var(--space-0);
}

.site-footer__legal-links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3) var(--space-5);
	margin: var(--space-0);
	padding: var(--space-0);
	list-style: none;
}

.site-footer__legal-link {
	color: inherit;
	text-underline-offset: 0.2em;
}

html.has-hover-input .site-footer__menu a:hover,
.site-footer__menu a:focus-visible,
html.has-hover-input .site-footer__contact a:hover,
.site-footer__contact a:focus-visible,
html.has-hover-input .site-footer__legal-link:hover,
.site-footer__legal-link:focus-visible {
	color: var(--color-link-hover-on-dark);
}

@media (min-width: 48.01rem) and (max-width: 62rem) {
	.site-footer__columns {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--space-7) var(--space-8);
	}

	.site-footer__column--brand {
		grid-column: 1 / -1;
	}

	.site-footer__column--contact .site-footer__contact {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--space-5);
	}
}

@media (max-width: 48rem) {
	html:has(.site-header__navigation.is-open) {
		overflow: hidden;
	}

	.site-header:has(.site-header__navigation.is-open) {
		position: fixed;
		inset: 0 0 auto;
		background-color: var(--color-black);
	}

	.site-header__inner {
		flex-wrap: wrap;
		gap: var(--space-0) var(--space-4);
		padding-block: var(--space-3);
	}

	.site-header__logo,
	.site-header__menu-toggle {
		position: relative;
		z-index: 2;
	}

	.site-header--menu-enabled .site-header__menu-toggle {
		display: grid;
		flex: 0 0 auto;
		width: 3rem;
		height: 3rem;
		min-height: 3rem;
		margin-inline-start: auto;
		padding: 0.625rem;
		place-items: center;
		color: var(--color-white);
		background-color: var(--color-off-black);
		border: 2px solid transparent;
		border-radius: var(--control-border-radius);
	}

	html.has-hover-input .site-header .site-header__menu-toggle:hover {
		color: var(--color-white);
		background-color: var(--color-brand-accent-hover);
		border-color: transparent;
	}

	.site-header .site-header__menu-toggle:focus-visible {
		color: var(--color-white);
		background-color: var(--color-off-black);
		border-color: transparent;
		outline: 2px solid var(--color-white);
		outline-offset: 3px;
		box-shadow: none;
	}

	.site-header__menu-toggle-icon,
	.site-header__menu-toggle-icon::before,
	.site-header__menu-toggle-icon::after {
		display: block;
		width: 1.5rem;
		height: 0.125rem;
		background-color: currentcolor;
		transition: transform var(--transition-fast), opacity var(--transition-fast);
	}

	.site-header__menu-toggle-icon {
		position: relative;
	}

	.site-header__menu-toggle-icon::before,
	.site-header__menu-toggle-icon::after {
		position: absolute;
		left: 0;
		content: "";
	}

	.site-header__menu-toggle-icon::before {
		transform: translateY(-0.4375rem);
	}

	.site-header__menu-toggle-icon::after {
		transform: translateY(0.4375rem);
	}

	.site-header__menu-toggle[aria-expanded="true"] .site-header__menu-toggle-icon {
		background-color: transparent;
	}

	.site-header__menu-toggle[aria-expanded="true"] .site-header__menu-toggle-icon::before {
		transform: rotate(45deg);
	}

	.site-header__menu-toggle[aria-expanded="true"] .site-header__menu-toggle-icon::after {
		transform: rotate(-45deg);
	}

	.site-header__menu-toggle-label-close {
		display: none;
	}

	.site-header__menu-toggle[aria-expanded="true"] .site-header__menu-toggle-label-open {
		display: none;
	}

	.site-header__menu-toggle[aria-expanded="true"] .site-header__menu-toggle-label-close {
		display: block;
	}

	.site-header__navigation {
		order: 3;
		width: 100%;
		margin-inline-start: 0;
	}

	.site-header--menu-enabled .site-header__navigation {
		position: fixed;
		inset: 0;
		z-index: 1;
		display: block;
		width: 100%;
		height: 100vh;
		height: 100dvh;
		pointer-events: none;
		opacity: 0;
		visibility: hidden;
		background-color: var(--color-black);
		transform: translateY(calc(-1 * var(--space-3)));
		transition:
			opacity var(--transition-fast),
			transform var(--transition-medium),
			visibility 0s linear var(--duration-medium);
	}

	.site-header--menu-enabled .site-header__navigation.is-open {
		pointer-events: auto;
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
		transition-delay: 0s;
	}

	.site-header__menu {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		height: auto;
		width: 100%;
		max-width: var(--container-max-width-md);
		margin-inline: auto;
		padding:
			calc(var(--site-header-height) + var(--space-5))
			var(--container-gutter)
			var(--space-6);
	}

	.site-header__navigation.is-open .site-header__menu {
		max-height: 100vh;
		max-height: 100dvh;
		overflow-y: auto;
	}

	.site-header__menu > li {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
		border-bottom: 1px solid var(--color-white-alpha-16);
	}

	.site-header__menu > li:first-child {
		border-top: 1px solid var(--color-white-alpha-16);
	}

	.site-header__menu > li > a {
		display: flex;
		align-items: center;
		min-height: 4rem;
		padding-block: var(--space-4);
		font-size: var(--font-size-heading-5);
		line-height: var(--line-height-snug);
	}

	.site-header__menu > .menu-item--mobile-sections {
		display: grid;
	}

	.site-header__submenu-toggle {
		display: grid;
		width: var(--control-min-height);
		height: var(--control-min-height);
		min-height: var(--control-min-height);
		padding: 0;
		place-items: center;
		color: var(--color-white);
		background: transparent;
		border: 0;
		border-radius: var(--control-border-radius);
	}

	.site-header__submenu-toggle::before {
		display: block;
		width: 0.625rem;
		height: 0.625rem;
		border-right: 0.125rem solid currentcolor;
		border-bottom: 0.125rem solid currentcolor;
		content: "";
		transform: rotate(45deg) translate(-0.125rem, -0.125rem);
		transition: transform var(--transition-fast);
	}

	.site-header__submenu-toggle[aria-expanded="true"]::before {
		transform: rotate(225deg) translate(-0.125rem, -0.125rem);
	}

	html.has-hover-input .site-header__submenu-toggle:hover,
	.site-header__submenu-toggle:focus-visible {
		color: var(--color-white);
		background-color: var(--color-white-alpha-10);
	}

	.site-header__submenu-toggle:focus-visible {
		outline: 2px solid var(--color-white);
		outline-offset: 2px;
	}

	.site-header__menu .menu-item--mobile-sections > .sub-menu {
		position: static;
		top: auto;
		left: auto;
		display: block;
		grid-column: 1 / -1;
		width: auto;
		min-width: 0;
		padding: var(--space-0) var(--space-0) var(--space-3) var(--space-4);
		pointer-events: auto;
		opacity: 1;
		visibility: visible;
		background-color: transparent;
		border: 0;
		border-radius: 0;
		box-shadow: none;
		transform: none;
		transition: none;
	}

	.site-header__menu .menu-item--mobile-sections > .sub-menu::before {
		content: none;
	}

	.site-header__menu .menu-item--mobile-sections > .sub-menu[hidden] {
		display: none;
	}

	.site-header__menu > .menu-item--mobile-only {
		display: block;
	}

	.site-header__menu .menu-item--desktop-only {
		display: none;
	}

	main :where(h1, h2, h3)[id] {
		scroll-margin-top: calc(var(--site-header-height) + var(--space-4));
	}

	.site-header__cta {
		display: none;
	}

	.site-footer__columns {
		grid-template-columns: 1fr;
	}

	.site-footer__bottom-inner {
		flex-direction: column;
		align-items: flex-start;
	}
}

@media (min-width: 36.01rem) and (max-width: 48rem) {
	.site-footer__columns {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--space-7) var(--space-8);
	}

	.site-footer__column--brand {
		grid-column: 1 / -1;
	}
}

@media (prefers-reduced-motion: reduce) {
	.surface-card--interactive,
	button,
	input[type="button"],
	input[type="submit"],
	input[type="reset"],
	.btn,
	.wp-element-button,
	.wp-block-button__link {
		transition: none !important;
	}

	html.has-hover-input .surface-card--interactive:hover,
	html.has-hover-input button:hover,
	html.has-hover-input input[type="button"]:hover,
	html.has-hover-input input[type="submit"]:hover,
	html.has-hover-input input[type="reset"]:hover,
	html.has-hover-input .btn:hover,
	html.has-hover-input .wp-element-button:hover,
	html.has-hover-input .wp-block-button__link:hover {
		transform: none;
	}

	.site-header__navigation,
	.site-header__menu-toggle-icon,
	.site-header__menu-toggle-icon::before,
	.site-header__menu-toggle-icon::after {
		transition: none !important;
	}
}
/* Shared section heading system. */
.section-heading {
	width: 100%;
	margin-bottom: var(--space-7);
}

.section-heading__heading,
.section-heading__intro {
	min-width: 0;
}

.section-heading__intro-mobile,
.page-title-component__intro-mobile {
	display: none;
}

.section-heading__heading {
	width: 100%;
}

.section-heading__eyebrow {
	margin: 0 0 var(--space-label-to-heading);
	color: var(--section-heading-eyebrow-color, var(--color-brand-accent));
}

.section-heading__meta {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--space-5);
	margin-bottom: var(--space-label-to-heading);
}

.section-heading__meta .section-heading__eyebrow,
.section-heading__meta-value {
	margin: 0;
}

.section-heading__meta-value {
	color: color-mix(in srgb, currentColor 72%, transparent);
	font-size: var(--font-size-body-sm);
	font-weight: var(--font-weight-medium);
	text-align: right;
	white-space: nowrap;
}

.section-heading__title,
.section-heading__intro {
	margin-block: 0;
}

.section-heading__title {
	letter-spacing: var(--letter-spacing-tight);
}

.section-heading__intro {
	width: 100%;
	max-width: var(--content-max-width-wide);
	color: color-mix(in srgb, currentColor 72%, transparent);
	font-size: var(--font-size-body-lg);
	line-height: var(--line-height-copy-lg);
}

.section-heading__title-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-6);
}

.section-heading__cta {
	flex: 0 0 auto;
	white-space: nowrap;
}

.section-mobile-cta {
	display: none;
}

.section-heading__cta-icon,
.page-title-component__cta-icon {
	display: none;
	line-height: 0;
}

.section-heading--aside {
	max-width: var(--content-max-width-sm);
}

.section-heading--aside .section-heading__intro,
.section-heading--editorial .section-heading__intro,
.section-heading--editorial-cta .section-heading__intro,
.section-heading--intro .section-heading__intro {
	margin-top: var(--space-4);
}

.section-heading--aside .section-heading__intro {
	max-width: var(--content-max-width-sm);
}

.section-heading--aside .section-heading__cta {
	margin-top: var(--space-6);
}

.section-heading.section-heading--split {
	display: grid;
	grid-template-columns: minmax(16rem, 0.75fr) minmax(0, 1.25fr);
	align-items: start;
	gap: var(--space-layout-lg);
}

.section-heading.section-heading--split-editorial-cta {
	grid-template-columns: minmax(16rem, 0.75fr) minmax(0, 1.25fr) auto;
	align-items: center;
	gap: var(--space-layout-md);
}

.section-heading--split .section-heading__intro {
	margin-top: 0;
}

.section-heading.section-heading--split-editorial-cta > .section-heading__cta {
	align-self: center;
	justify-self: end;
}

.section-heading.section-heading--balanced {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.section-heading.section-heading--narrow-copy {
	grid-template-columns: minmax(0, 1.2fr) minmax(16rem, 0.8fr);
}

.section-heading.section-heading--full-width {
	grid-template-columns: minmax(0, 1fr);
	gap: var(--space-4);
}

@media (max-width: 62rem) {
	.section-heading.section-heading--split {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--space-4);
	}

	.section-heading.section-heading--split-editorial-cta > .section-heading__cta {
		justify-self: start;
	}
}

@media (max-width: 48rem) {
	.section-cta--desktop-only {
		display: none;
	}

	.section-mobile-cta {
		display: flex;
		justify-content: center;
		margin-top: var(--space-7);
	}

	.section-heading__cta:has(.section-heading__cta-icon) .section-heading__cta-label,
	.page-title-component__cta:has(.page-title-component__cta-icon) .page-title-component__cta-label {
		display: none;
	}

	.section-heading__cta-icon,
	.page-title-component__cta-icon {
		display: block;
	}

	.section-heading__cta-icon .tabler-icon,
	.page-title-component__cta-icon .tabler-icon {
		display: block;
		width: 1.5rem;
		height: 1.5rem;
	}

	.section-heading__intro-full,
	.page-title-component__intro-full {
		display: none;
	}

	.section-heading__intro-mobile,
	.page-title-component__intro-mobile {
		display: inline;
	}

	.section-heading--aside,
	.section-heading--aside .section-heading__intro {
		max-width: none;
	}
}

@media (max-width: 36rem) {
	.section-heading__title-row {
		align-items: flex-start;
		flex-direction: column;
		gap: var(--space-5);
	}

	.section-heading--editorial-cta {
		display: grid;
		grid-template-areas:
			"eyebrow"
			"title"
			"intro"
			"cta";
		grid-template-columns: minmax(0, 1fr);
	}

	.section-heading--editorial-cta .section-heading__heading,
	.section-heading--editorial-cta .section-heading__title-row {
		display: contents;
	}

	.section-heading--editorial-cta .section-heading__eyebrow {
		grid-area: eyebrow;
	}

	.section-heading--editorial-cta .section-heading__title {
		grid-area: title;
	}

	.section-heading--editorial-cta .section-heading__intro {
		grid-area: intro;
	}

	.section-heading.section-heading--editorial-cta .section-heading__cta {
		grid-area: cta;
		margin-top: var(--space-6);
	}
}

/* Shared page-title system mirrors section headings at the H1 type role. */
.page-title-component {
	width: 100%;
	margin-bottom: var(--space-7);
}

.page-title-component__heading,
.page-title-component__intro {
	min-width: 0;
}

.page-title-component__heading {
	width: 100%;
}

.page-title-component__eyebrow {
	margin: 0 0 var(--space-label-to-heading);
}

.page-title-component__heading > .breadcrumbs {
	margin-bottom: var(--space-label-to-heading);
}

.page-title-component__meta {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--space-5);
	margin-bottom: var(--space-label-to-heading);
}

.page-title-component__meta :is(.page-title-component__eyebrow, .breadcrumbs),
.page-title-component__meta-value {
	margin: 0;
}

.page-title-component__title,
.page-title-component__intro {
	margin-block: 0;
}

.page-title-component__title {
	letter-spacing: var(--letter-spacing-tight);
}

.page-title-component__intro {
	width: 100%;
	max-width: var(--content-max-width-wide);
	color: var(--color-muted);
	font-size: var(--font-size-body-lg);
	line-height: var(--line-height-copy-lg);
}

.page-title-component__title-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-6);
}

.page-title-component__cta {
	flex: 0 0 auto;
	white-space: nowrap;
}

.page-title-component--aside {
	max-width: var(--content-max-width-sm);
}

.page-title-component--aside .page-title-component__intro,
.page-title-component--editorial .page-title-component__intro,
.page-title-component--editorial-cta .page-title-component__intro,
.page-title-component--intro .page-title-component__intro {
	margin-top: var(--space-4);
}

.page-title-component--aside .page-title-component__intro {
	max-width: var(--content-max-width-sm);
}

.page-title-component--aside .page-title-component__cta {
	margin-top: var(--space-6);
}

.page-title-component.page-title-component--split {
	display: grid;
	grid-template-columns: minmax(16rem, 0.75fr) minmax(0, 1.25fr);
	align-items: start;
	gap: var(--space-layout-lg);
}

.page-title-component--split .page-title-component__intro {
	margin-top: 0;
}

.page-header .page-title-component__title {
	color: var(--color-off-black);
}

.page-header .page-title-component__intro {
	color: var(--color-muted);
	max-width: var(--content-max-width-sm);
	text-wrap: balance;
}

.page-header .page-title-component {
	margin-bottom: 0;
}

@media (max-width: 62rem) {
	.page-title-component.page-title-component--split {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--space-4);
	}
}

@media (max-width: 48rem) {
	.page-title-component--aside,
	.page-title-component--aside .page-title-component__intro {
		max-width: none;
	}
}

@media (max-width: 36rem) {
	.page-title-component__title-row {
		align-items: flex-start;
		flex-direction: column;
		gap: var(--space-5);
	}

	.page-title-component--editorial-cta {
		display: grid;
		grid-template-areas:
			"label"
			"title"
			"intro"
			"cta";
		grid-template-columns: minmax(0, 1fr);
	}

	.page-title-component--editorial-cta .page-title-component__heading,
	.page-title-component--editorial-cta .page-title-component__title-row {
		display: contents;
	}

	.page-title-component--editorial-cta :is(.page-title-component__eyebrow, .breadcrumbs) {
		grid-area: label;
	}

	.page-title-component--editorial-cta .page-title-component__title {
		grid-area: title;
	}

	.page-title-component--editorial-cta .page-title-component__intro {
		grid-area: intro;
	}

	.page-title-component.page-title-component--editorial-cta .page-title-component__cta {
		grid-area: cta;
		margin-top: var(--space-6);
	}
}
