/*
 * WordPress-specific additions on top of the ported design system.
 * Replicates the framer-motion behaviors (Reveal / RevealStagger) with
 * CSS states driven by assets/js/main.js.
 */

/* Reveal: hidden start state only when JS is available. */
html.js [data-reveal],
html.js [data-reveal-item] {
	opacity: 0;
	transform: translateY(var(--reveal-y, 24px));
	transition:
		opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
		transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
	transition-delay: var(--reveal-delay, 0s);
}

html.js [data-reveal].is-revealed,
html.js [data-reveal-item].is-revealed {
	opacity: 1;
	transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
	html.js [data-reveal],
	html.js [data-reveal-item] {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}

/* Keep the fixed navbar below the WP admin bar while that bar is visible. */
body {
	--gwds-admin-offset: 0px;
}

html {
	scroll-behavior: smooth;
}

body.admin-bar #gwds-nav {
	top: var(--gwds-admin-offset, 32px);
}

@media screen and (max-width: 782px) {
	body.admin-bar {
		--gwds-admin-offset: 46px;
	}
}

/* Blog cover images (the Next.js build used next/image with fill). */
.gwds-cover {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Stable catalog media keeps product cards aligned while responsive images load. */
.gwds-product-card {
	overflow: hidden;
}

.gwds-product-media {
	position: relative;
	margin: -1.75rem -1.75rem 1.5rem;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	border-bottom: 1px solid #e2e8ee;
	background: #edf2f2;
}

.gwds-product-media__image {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 600ms cubic-bezier(0.16, 1, 0.3, 1);
}

.gwds-product-card:hover .gwds-product-media__image {
	transform: scale(1.025);
}

/* Courses: compact catalog cards with progressive curriculum disclosure. */
.gwds-course-hero-facts {
	display: flex;
	max-width: 42rem;
	margin: 1.75rem 0 0;
	padding: 0;
	border-top: 1px solid #d9e2ec;
	gap: 0;
}

.gwds-course-hero-facts > div {
	flex: 1;
	min-width: 0;
	padding: 1rem 1.5rem 0 0;
}

.gwds-course-hero-facts > div + div {
	padding-left: 1.5rem;
	border-left: 1px solid #d9e2ec;
}

.gwds-course-hero-facts dt {
	color: #102a43;
	font-family: var(--font-display);
	font-size: 1.35rem;
	font-weight: 600;
	line-height: 1;
}

.gwds-course-hero-facts dd {
	margin: 0.3rem 0 0;
	color: #526d82;
	font-size: 0.75rem;
	line-height: 1.4;
}

.gwds-course-media {
	aspect-ratio: 16 / 8.5;
}

.gwds-course-card-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.gwds-course-index {
	color: #829ab1;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.gwds-course-outline {
	margin-top: 1rem;
	border-top: 1px solid #e2e8ee;
}

.gwds-course-outline summary {
	display: flex;
	min-height: 2.75rem;
	align-items: center;
	justify-content: space-between;
	color: #087f5b;
	cursor: pointer;
	font-size: 0.8125rem;
	font-weight: 700;
	list-style: none;
}

.gwds-course-outline summary::-webkit-details-marker {
	display: none;
}

.gwds-course-outline summary span {
	position: relative;
	display: block;
	width: 1rem;
	height: 1rem;
	transition: transform 180ms ease;
}

.gwds-course-outline summary span::before,
.gwds-course-outline summary span::after {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 0.7rem;
	height: 1px;
	background: currentColor;
	content: "";
	transform: translate(-50%, -50%);
}

.gwds-course-outline summary span::after {
	transform: translate(-50%, -50%) rotate(90deg);
}

.gwds-course-outline[open] summary span {
	transform: rotate(45deg);
}

.gwds-course-outline ul {
	margin: 0;
	padding: 0 0 0.55rem;
	list-style: none;
}

.gwds-course-outline li {
	position: relative;
	padding: 0.42rem 0 0.42rem 1.2rem;
	color: #526d82;
	font-size: 0.8125rem;
	line-height: 1.45;
}

.gwds-course-outline li::before {
	position: absolute;
	top: 0.95rem;
	left: 0;
	width: 0.5rem;
	height: 2px;
	background: #159473;
	content: "";
}

@media (min-width: 48rem) {
	.gwds-course-outline summary {
		min-height: 2.5rem;
		padding-top: 0.2rem;
		color: #526d82;
		cursor: default;
		font-size: 0;
		letter-spacing: 0.08em;
		pointer-events: none;
		text-transform: uppercase;
	}

	.gwds-course-outline summary::before {
		content: "Curriculum";
		font-size: 0.6875rem;
		font-weight: 750;
	}

	.gwds-course-outline summary > span {
		display: none;
	}

	.gwds-course-outline > ul {
		display: block !important;
		padding-bottom: 0.85rem;
	}
}

.gwds-course-footer {
	display: grid;
	align-items: stretch;
	gap: 0.8rem;
}

.gwds-course-status {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	color: #526d82;
	font-size: 0.75rem;
	line-height: 1.4;
}

.gwds-course-status > span {
	width: 0.5rem;
	height: 0.5rem;
	flex: 0 0 auto;
	border-radius: 50%;
	background: #49b99a;
}

.gwds-course-price {
	color: #102a43;
	font-family: var(--font-display);
	font-size: 1.1rem;
	font-weight: 600;
}

.gwds-course-cta {
	display: flex;
	width: 100%;
	min-height: 2.75rem;
	align-items: center;
	justify-content: center;
	padding: 0.65rem 1rem;
	border: 1px solid #bcccdc;
	border-radius: 999px;
	color: #102a43;
	font-size: 0.8125rem;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	transition: border-color 180ms ease, background-color 180ms ease, color 180ms ease;
}

.gwds-course-cta:hover,
.gwds-course-cta:focus-visible {
	border-color: #087f5b;
	background: #eaf8f3;
	color: #087f5b;
}

.gwds-course-interest-note {
	margin: 0 0 0.75rem;
	padding: 0.75rem 1rem;
	border-left: 3px solid #159473;
	background: #eaf8f3;
	color: #087f5b;
	font-size: 0.8125rem;
	font-weight: 650;
}

.gwds-courses-newsletter {
	scroll-margin-top: calc(5.5rem + var(--gwds-admin-offset));
}

.gwds-courses-newsletter form[data-newsletter] input[type="email"],
.gwds-courses-newsletter form[data-newsletter] button[type="submit"] {
	height: 3rem;
	min-height: 3rem;
}

.gwds-courses-newsletter form[data-newsletter] input[type="email"] {
	padding: 0 1.25rem;
	font-size: 0.9375rem;
	line-height: 1.25rem;
}

/* Shop: marketplace-style discovery without disconnecting WooCommerce data. */
.gwds-shop-eyebrow,
.gwds-shop-results-eyebrow {
	margin: 0 0 0.75rem;
	color: #087f5b;
	font-size: 0.6875rem;
	font-weight: 750;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.gwds-shop-hero-meta {
	display: flex;
	align-items: center;
	margin-top: 1.75rem;
	color: #526d82;
	font-size: 0.8125rem;
	gap: 0;
}

.gwds-shop-hero-meta span {
	padding: 0 1rem;
	line-height: 1;
}

.gwds-shop-hero-meta span:first-child {
	padding-left: 0;
}

.gwds-shop-hero-meta span + span {
	border-left: 1px solid #bcccdc;
}

.gwds-shop-hero-meta strong {
	color: #102a43;
	font-weight: 750;
}

.gwds-shop-discovery {
	position: relative;
}

.gwds-shop-search-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.gwds-shop-search {
	display: flex;
	width: min(100%, 34rem);
	height: 3.25rem;
	align-items: center;
	padding: 0 1rem;
	border: 1px solid #bcccdc;
	border-radius: 8px;
	background: #fff;
	color: #526d82;
	gap: 0.75rem;
	transition: border-color 180ms ease, box-shadow 180ms ease;
}

.gwds-shop-search:focus-within {
	border-color: #087f5b;
	box-shadow: 0 0 0 3px rgba(8, 127, 91, 0.1);
}

.gwds-shop-search > span:first-child {
	display: flex;
	flex: 0 0 auto;
}

.gwds-shop-search input[type="search"] {
	width: 100%;
	height: 100%;
	min-width: 0;
	padding: 0;
	border: 0;
	outline: 0;
	background: transparent;
	color: #102a43;
	font-size: 0.9375rem;
	line-height: 1.25rem;
}

.gwds-shop-search input[type="search"]::placeholder {
	color: #829ab1;
}

.gwds-shop-search input[type="search"]::-webkit-search-cancel-button {
	cursor: pointer;
}

.gwds-shop-filter-rail {
	display: flex;
	flex-wrap: wrap;
	margin-top: 1rem;
	gap: 0.625rem;
}

.gwds-shop-filter-rail button {
	min-height: 2.5rem;
	padding: 0.55rem 1rem;
	border: 1px solid #bcccdc;
	border-radius: 999px;
	background: #fff;
	color: #334e68;
	font-size: 0.8125rem;
	font-weight: 650;
	line-height: 1.2;
	transition: border-color 180ms ease, background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.gwds-shop-filter-rail button:hover,
.gwds-shop-filter-rail button:focus-visible {
	border-color: #087f5b;
	color: #087f5b;
}

.gwds-shop-filter-rail button.is-active {
	border-color: #102a43;
	background: #102a43;
	color: #fff;
}

.gwds-shop-results-heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	margin: 3rem 0 1.25rem;
	gap: 1rem;
}

.gwds-shop-results-heading .gwds-shop-results-eyebrow {
	margin-bottom: 0.35rem;
}

.gwds-shop-results-heading h2 {
	color: #102a43;
	font-family: var(--font-display);
	font-size: 1.75rem;
	font-weight: 600;
	line-height: 1.15;
}

.gwds-shop-results-heading > p {
	margin-bottom: 0.2rem;
	color: #627d98;
	font-size: 0.8125rem;
}

.gwds-shop-results-heading > p strong {
	color: #102a43;
}

.gwds-shop-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.25rem;
}

.gwds-shop-card-link {
	display: block;
	height: 100%;
	border-radius: 12px;
	color: inherit;
	text-decoration: none;
}

.gwds-shop-card-link:visited {
	color: inherit;
}

.gwds-shop-card-link:focus-visible {
	outline: 3px solid rgba(8, 127, 91, 0.28);
	outline-offset: 3px;
}

.gwds-shop-card {
	overflow: hidden;
	padding: 0;
	border-radius: 12px;
	transition: border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

.gwds-shop-card-link:hover .gwds-shop-card {
	border-color: #bcccdc;
	box-shadow: 0 16px 38px rgba(16, 42, 67, 0.09);
	transform: translateY(-3px);
}

.gwds-shop-card-media {
	margin: 0;
	aspect-ratio: 4 / 3;
	border-bottom: 1px solid #e2e8ee;
}

.gwds-shop-preview-badge {
	position: absolute;
	top: 0.75rem;
	left: 0.75rem;
	z-index: 1;
	padding: 0.35rem 0.6rem;
	border: 1px solid rgba(255, 255, 255, 0.75);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.9);
	color: #087f5b;
	font-size: 0.625rem;
	font-weight: 750;
	line-height: 1;
	text-transform: uppercase;
	backdrop-filter: blur(8px);
}

.gwds-shop-card-body {
	display: flex;
	height: 100%;
	flex: 1;
	flex-direction: column;
	padding: 1.15rem;
}

.gwds-shop-card-category {
	margin: 0 0 0.5rem;
	color: #087f5b;
	font-size: 0.625rem;
	font-weight: 750;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-transform: uppercase;
}

.gwds-shop-card h3 {
	margin: 0;
	font-size: 1.05rem;
}

.gwds-shop-card-description {
	display: -webkit-box;
	margin: 0.65rem 0 0;
	overflow: hidden;
	color: #526d82;
	font-size: 0.8125rem;
	line-height: 1.5;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.gwds-shop-card-footer {
	display: grid;
	align-items: stretch;
	margin-top: auto;
	padding-top: 1rem;
	border-top: 1px solid #e2e8ee;
	gap: 0.65rem;
}

.gwds-shop-card-price {
	color: #102a43;
	font-family: var(--font-display);
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.2;
}

.gwds-shop-empty {
	padding: 4rem 1rem;
	border-top: 1px solid #d9e2ec;
	text-align: center;
}

.gwds-shop-empty h2 {
	color: #102a43;
	font-family: var(--font-display);
	font-size: 1.5rem;
	font-weight: 600;
}

.gwds-shop-empty p {
	margin-top: 0.5rem;
	color: #627d98;
}

.gwds-shop-notice {
	display: flex;
	align-items: flex-start;
	margin-top: 2rem;
	padding: 1rem 1.1rem;
	border: 1px solid #d9e2ec;
	border-radius: 8px;
	background: #f6f8f7;
	color: #526d82;
	font-size: 0.8125rem;
	line-height: 1.55;
	gap: 0.75rem;
}

.gwds-shop-notice > span {
	display: flex;
	width: 1.25rem;
	height: 1.25rem;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	margin-top: 0.05rem;
	border: 1px solid #9fb3c8;
	border-radius: 50%;
	color: #334e68;
	font-family: var(--font-display);
	font-size: 0.75rem;
	font-weight: 700;
}

.gwds-shop-notice p {
	margin: 0;
}

/* Product detail: focused marketplace purchase flow. */
.gwds-product-page {
	padding: 8.75rem 0 5.5rem;
	background: #faf9f6;
}

.gwds-product-breadcrumb {
	display: flex;
	align-items: center;
	margin-bottom: 1.75rem;
	color: #627d98;
	font-size: 0.8125rem;
	gap: 0.6rem;
}

.gwds-product-breadcrumb a {
	color: #087f5b;
	font-weight: 650;
}

.gwds-product-breadcrumb a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.gwds-product-notices {
	margin-bottom: 1.5rem;
}

.gwds-product-notices:empty {
	display: none;
}

.gwds-product-notices .woocommerce-message,
.gwds-product-notices .woocommerce-error {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	margin: 0;
	padding: 1rem 1.1rem;
	border: 1px solid #b7dfd2;
	border-radius: 8px;
	background: #eaf8f3;
	color: #087f5b;
	font-size: 0.875rem;
	line-height: 1.55;
	gap: 0.85rem;
	list-style: none;
}

.gwds-product-notices .woocommerce-message::before,
.gwds-product-notices .woocommerce-error::before {
	display: none !important;
	content: none !important;
}

.gwds-product-notices .woocommerce-message .button.wc-forward,
.gwds-product-notices .woocommerce-error .button.wc-forward {
	display: inline-flex;
	min-height: 2.5rem;
	align-items: center;
	justify-content: center;
	float: none !important;
	margin: 0 !important;
	padding: 0.55rem 0.9rem;
	border: 1px solid #b7dfd2 !important;
	border-radius: 999px;
	background: #fff !important;
	box-shadow: none !important;
	color: #087f5b !important;
	font-size: 0.75rem;
	font-weight: 750;
	line-height: 1;
	white-space: nowrap;
}

.gwds-product-hero {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(22rem, 0.92fr);
	align-items: start;
	gap: 5rem;
}

.gwds-product-visual {
	position: sticky;
	top: calc(6rem + var(--gwds-admin-offset));
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border: 1px solid #d9e2ec;
	border-radius: 10px;
	background: #edf2f2;
}

.gwds-product-visual-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gwds-product-visual-placeholder {
	display: flex;
	height: 100%;
	align-items: center;
	justify-content: center;
	color: #829ab1;
}

.gwds-product-summary {
	padding: 1rem 0;
}

.gwds-product-category,
.gwds-product-section-heading > p,
.gwds-product-related-heading > div > p {
	margin: 0 0 0.75rem;
	color: #087f5b;
	font-size: 0.6875rem;
	font-weight: 750;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.gwds-product-summary h1 {
	max-width: 14ch;
	color: #102a43;
	font-family: var(--font-display);
	font-size: 3.25rem;
	font-weight: 600;
	line-height: 1.03;
	text-wrap: balance;
}

.gwds-product-price {
	margin-top: 1.5rem;
	color: #102a43;
	font-family: var(--font-display);
	font-size: 2rem;
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	line-height: 1;
}

.gwds-product-short-description {
	max-width: 34rem;
	margin-top: 1.25rem;
	color: #486581;
	font-size: 1rem;
	line-height: 1.7;
}

.gwds-product-purchase {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid #d9e2ec;
}

.gwds-product-quantity {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.gwds-product-quantity-label {
	color: #334e68;
	font-size: 0.8125rem;
	font-weight: 650;
}

.gwds-product-quantity > div {
	display: grid;
	grid-template-columns: 2.5rem 2.75rem 2.5rem;
	height: 2.75rem;
	overflow: hidden;
	border: 1px solid #bcccdc;
	border-radius: 8px;
	background: #fff;
}

.gwds-product-quantity button,
.gwds-product-quantity input {
	display: flex;
	width: 100%;
	height: 100%;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 0;
	background: transparent;
	color: #102a43;
	font-size: 1rem;
	font-weight: 650;
	line-height: 1;
	text-align: center;
}

.gwds-product-quantity button {
	cursor: pointer;
	transition: background-color 160ms ease, color 160ms ease;
}

.gwds-product-quantity button:hover,
.gwds-product-quantity button:focus-visible {
	background: #eaf8f3;
	color: #087f5b;
}

.gwds-product-quantity input {
	border-right: 1px solid #e2e8ee;
	border-left: 1px solid #e2e8ee;
	-moz-appearance: textfield;
}

.gwds-product-quantity input::-webkit-inner-spin-button,
.gwds-product-quantity input::-webkit-outer-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

.gwds-product-actions {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-top: 1rem;
	gap: 0.75rem;
}

.gwds-product-actions button,
.gwds-product-mobile-bar button {
	display: flex;
	min-height: 3rem;
	align-items: center;
	justify-content: center;
	padding: 0.75rem 1rem;
	border: 1px solid #087f5b;
	border-radius: 999px;
	cursor: pointer;
	font-size: 0.875rem;
	font-weight: 750;
	line-height: 1.2;
	transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.gwds-product-add-cart {
	background: transparent;
	color: #087f5b;
}

.gwds-product-buy-now,
.gwds-product-mobile-bar button {
	background: #087f5b;
	color: #fff;
}

.gwds-product-actions button:hover,
.gwds-product-actions button:focus-visible,
.gwds-product-mobile-bar button:hover,
.gwds-product-mobile-bar button:focus-visible {
	background: #066c4d;
	color: #fff;
}

.gwds-product-actions button:active,
.gwds-product-mobile-bar button:active {
	transform: scale(0.98);
}

.gwds-product-assurances {
	display: grid;
	margin: 1.5rem 0 0;
	padding: 1.25rem 0 0;
	border-top: 1px solid #d9e2ec;
	color: #526d82;
	font-size: 0.8125rem;
	gap: 0.7rem;
	list-style: none;
}

.gwds-product-assurances li {
	display: flex;
	align-items: center;
	gap: 0.65rem;
}

.gwds-product-assurances svg {
	flex: 0 0 auto;
	color: #159473;
}

.gwds-product-unavailable {
	margin-top: 1.75rem;
	padding: 1rem;
	border-left: 3px solid #b3892c;
	background: #fbf5e8;
	color: #526d82;
}

.gwds-product-included {
	padding: 5.5rem 0 6rem;
	border-top: 1px solid #e2e8ee;
	background: #f4f6f4;
}

.gwds-product-section-heading {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(18rem, 0.55fr);
	align-items: end;
	gap: 1rem 4rem;
}

.gwds-product-section-heading > p {
	grid-column: 1 / -1;
	margin-bottom: 0;
}

.gwds-product-section-heading h2,
.gwds-product-related-heading h2 {
	color: #102a43;
	font-family: var(--font-display);
	font-size: 2.5rem;
	font-weight: 600;
	line-height: 1.08;
}

.gwds-product-section-heading > span {
	max-width: 34rem;
	color: #526d82;
	font-size: 0.9375rem;
	line-height: 1.65;
}

.gwds-product-included-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 3rem 0 0;
	border-top: 1px solid #bcccdc;
	list-style: none;
}

.gwds-product-included-grid li {
	display: grid;
	grid-template-columns: 2.5rem 1fr;
	align-items: start;
	min-height: 5.5rem;
	padding: 1.5rem 1.5rem 1.5rem 0;
	border-bottom: 1px solid #d9e2ec;
	color: #243b53;
	font-size: 0.9375rem;
	font-weight: 650;
	line-height: 1.45;
	gap: 1rem;
}

.gwds-product-included-grid li:nth-child(even) {
	padding-left: 1.5rem;
	border-left: 1px solid #d9e2ec;
}

.gwds-product-included-grid li > span {
	color: #087f5b;
	font-family: var(--font-display);
	font-size: 1.1rem;
	font-variant-numeric: tabular-nums;
}

.gwds-product-related {
	padding: 5.5rem 0 6.5rem;
	background: #faf9f6;
}

.gwds-product-related-heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 1rem;
}

.gwds-product-related-heading > div > p {
	margin-bottom: 0.45rem;
}

.gwds-product-related-heading > a {
	color: #087f5b;
	font-size: 0.8125rem;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.gwds-product-related-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 2rem;
	gap: 1.25rem;
}

.gwds-product-related-card {
	display: block;
	min-width: 0;
	padding-bottom: 1rem;
	border-bottom: 1px solid #d9e2ec;
	color: inherit;
	text-decoration: none;
}

.gwds-product-related-card > div {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: 8px;
	background: #edf2f2;
}

.gwds-product-related-card img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 450ms cubic-bezier(0.16, 1, 0.3, 1);
}

.gwds-product-related-card:hover img {
	transform: scale(1.035);
}

.gwds-product-related-card > span {
	display: block;
	margin-top: 1rem;
	color: #087f5b;
	font-size: 0.625rem;
	font-weight: 750;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.gwds-product-related-card h3 {
	margin-top: 0.45rem;
	color: #102a43;
	font-family: var(--font-display);
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.2;
}

.gwds-product-related-card > strong {
	display: block;
	margin-top: 0.7rem;
	color: #102a43;
	font-family: var(--font-display);
	font-size: 1rem;
	font-variant-numeric: tabular-nums;
}

.gwds-product-mobile-bar {
	display: none;
}

/* Publications explorer: preserve an editorial list while clarifying filters. */
.gwds-publication-explorer-heading {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
}

.gwds-publication-hero-actions {
	margin-top: 1.75rem;
}

.gwds-publication-filter-group {
	margin-top: 1.5rem;
}

.gwds-publication-filter-label {
	margin: 0 0 0.65rem;
	color: #526d82;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.gwds-publication-item {
	transition: background-color 180ms ease;
}

.gwds-publication-item:hover {
	background: rgba(237, 242, 242, 0.45);
}

.gwds-publication-more-wrap {
	display: flex;
	margin-top: 1.75rem;
	justify-content: center;
}

/* Programs directory: quick navigation, compact metadata, and mobile disclosure. */
.gwds-program-jump {
	border-top: 1px solid #e2e8ee;
	border-bottom: 1px solid #e2e8ee;
	background: rgba(255, 255, 255, 0.72);
}

.gwds-program-jump-track {
	display: flex;
	gap: 1.5rem;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	scrollbar-width: none;
}

.gwds-program-jump-track::-webkit-scrollbar {
	display: none;
}

.gwds-program-jump-track a {
	padding: 1rem 0;
	flex: 0 0 auto;
	border-bottom: 2px solid transparent;
	color: #526d82;
	font-size: 0.875rem;
	font-weight: 600;
	white-space: nowrap;
	transition: border-color 180ms ease, color 180ms ease;
}

.gwds-program-jump-track a:hover,
.gwds-program-jump-track a:focus-visible {
	border-bottom-color: #087f5b;
	color: #087f5b;
}

.gwds-programs-list {
	padding-top: clamp(2rem, 3vw, 2.75rem);
}

.gwds-program-card {
	scroll-margin-top: calc(5rem + var(--gwds-admin-offset));
}

.gwds-program-card:target {
	border-color: #49b99a;
	box-shadow: 0 0 0 3px rgba(73, 185, 154, 0.12);
}

.gwds-program-meta {
	display: grid;
	margin-top: 1.25rem;
	gap: 0.55rem;
}

.gwds-program-meta > div {
	display: grid;
	grid-template-columns: 4rem minmax(0, 1fr);
	gap: 0.75rem;
}

.gwds-program-meta dt {
	color: #829ab1;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.gwds-program-meta dd {
	margin: 0;
	color: #526d82;
	font-size: 0.875rem;
	line-height: 1.5;
}

.gwds-program-outcomes-toggle {
	display: none;
}

/* Service conversion pages: dedicated mentoring, tutoring, speaking, and program inquiries. */
.gwds-service-hero,
.gwds-context-hero {
	border-bottom: 1px solid #e2e8ee;
}

.gwds-service-back {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	margin-bottom: 1.75rem;
	color: #526d82;
	font-size: 0.8125rem;
	font-weight: 650;
	text-decoration: none;
	transition: color 180ms ease;
}

.gwds-service-back::before {
	content: "\2190";
	font-size: 1rem;
	line-height: 1;
	transition: transform 180ms ease;
}

.gwds-service-back:hover,
.gwds-service-back:focus-visible {
	color: #087f5b;
}

.gwds-service-back:hover::before,
.gwds-service-back:focus-visible::before {
	transform: translateX(-3px);
}

.gwds-service-hero-layout,
.gwds-context-hero-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(17rem, 0.65fr);
	align-items: end;
	gap: clamp(3rem, 7vw, 7rem);
}

.gwds-service-eyebrow {
	margin: 0 0 0.75rem;
	color: #087f5b;
	font-size: 0.6875rem;
	font-weight: 750;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.gwds-service-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
	margin-top: 1.75rem;
}

.gwds-service-facts {
	margin: 0;
	border-top: 1px solid #bcccdc;
}

.gwds-service-facts > div {
	display: grid;
	grid-template-columns: 5.25rem minmax(0, 1fr);
	gap: 1rem;
	padding: 1rem 0;
	border-bottom: 1px solid #d9e2ec;
}

.gwds-service-facts dt {
	color: #829ab1;
	font-size: 0.6875rem;
	font-weight: 750;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.gwds-service-facts dd {
	margin: 0;
	color: #334e68;
	font-size: 0.875rem;
	line-height: 1.5;
}

.gwds-service-nav {
	position: sticky;
	top: calc(4.5rem + var(--gwds-admin-offset));
	z-index: 30;
	border-bottom: 1px solid #e2e8ee;
	background: rgba(255, 255, 255, 0.92);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}

.gwds-service-nav > div {
	display: flex;
	max-width: 80rem;
	margin: 0 auto;
	padding: 0 2rem;
	gap: 1.5rem;
	overflow-x: auto;
	scrollbar-width: none;
}

.gwds-service-nav > div::-webkit-scrollbar {
	display: none;
}

.gwds-service-nav a {
	flex: 0 0 auto;
	padding: 0.9rem 0;
	border-bottom: 2px solid transparent;
	color: #526d82;
	font-size: 0.8125rem;
	font-weight: 650;
	white-space: nowrap;
	transition: border-color 180ms ease, color 180ms ease;
}

.gwds-service-nav a:hover,
.gwds-service-nav a:focus-visible {
	border-color: #087f5b;
	color: #087f5b;
}

.gwds-service-overview {
	padding-top: clamp(3.5rem, 7vw, 6rem);
}

.gwds-service-overview,
.gwds-service-process,
.gwds-service-apply,
#included,
#subjects,
#formats,
#topics {
	scroll-margin-top: calc(8rem + var(--gwds-admin-offset));
}

.gwds-service-checklist {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 1.25rem 0 0;
	padding: 0;
	column-gap: 2rem;
	list-style: none;
}

.gwds-service-checklist li,
.gwds-service-subjects li {
	display: grid;
	grid-template-columns: 0.85rem minmax(0, 1fr);
	align-items: start;
	gap: 0.75rem;
	padding: 0.9rem 0;
	border-bottom: 1px solid #e2e8ee;
	color: #334e68;
	font-size: 0.9375rem;
	line-height: 1.5;
}

.gwds-service-checklist li > span,
.gwds-service-subjects li > span {
	width: 0.75rem;
	height: 0.25rem;
	margin-top: 0.58rem;
	background: #159473;
}

.gwds-service-subjects {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-bottom: 0;
	padding: 0;
	column-gap: 2rem;
	list-style: none;
}

.gwds-service-step-number {
	display: block;
	margin-bottom: 0.8rem;
	color: #829ab1;
	font-size: 0.6875rem;
	font-weight: 750;
	letter-spacing: 0.08em;
}

.gwds-conversion-assurances {
	display: grid;
	margin: 1.75rem 0 0;
	padding: 0;
	gap: 0.7rem;
	list-style: none;
}

.gwds-conversion-assurances li {
	position: relative;
	padding-left: 1.65rem;
	color: #526d82;
	font-size: 0.875rem;
	line-height: 1.5;
}

.gwds-conversion-assurances li::before {
	content: "";
	position: absolute;
	top: 0.32rem;
	left: 0;
	width: 0.9rem;
	height: 0.9rem;
	border-radius: 50%;
	background: #9ee9d2;
	box-shadow: inset 0 0 0 0.25rem #eaf8f3;
}

.gwds-inquiry-panel {
	border: 1px solid #d9e2ec;
	border-radius: 1rem;
	background: #ffffff;
	padding: clamp(1.5rem, 4vw, 2.5rem);
	box-shadow: 0 18px 50px rgba(16, 42, 67, 0.06);
}

.gwds-inquiry-panel > h2,
.gwds-inquiry-panel > h3 {
	margin: 0;
	color: #102a43;
	font-family: var(--font-display), Georgia, serif;
	font-size: clamp(1.65rem, 3vw, 2.1rem);
	font-weight: 600;
	line-height: 1.15;
}

.gwds-inquiry-panel > .gwds-inquiry-form {
	margin-top: 1.5rem;
}

.gwds-inquiry-consent {
	display: grid;
	grid-template-columns: 1.125rem minmax(0, 1fr);
	align-items: start;
	padding: 1rem 1.125rem;
	gap: 0.875rem;
	cursor: pointer;
}

.gwds-inquiry-consent__control {
	width: 1rem;
	height: 1rem;
	margin: 0.2rem 0 0;
	justify-self: start;
}

.gwds-inquiry-consent__copy {
	min-width: 0;
}

.gwds-context-path {
	display: grid;
	grid-template-columns: 3rem minmax(0, 1fr);
	align-items: center;
	gap: 0.8rem 1rem;
	padding: 1.25rem 0;
	border-top: 1px solid #bcccdc;
	border-bottom: 1px solid #bcccdc;
}

.gwds-context-icon {
	display: flex;
	width: 3rem;
	height: 3rem;
	align-items: center;
	justify-content: center;
	border-radius: 0.75rem;
	background: #eaf8f3;
}

.gwds-context-path div span {
	display: block;
	color: #829ab1;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.gwds-context-path div strong {
	display: block;
	margin-top: 0.2rem;
	color: #102a43;
	font-size: 0.9375rem;
}

.gwds-context-path > p {
	grid-column: 1 / -1;
	margin: 0;
	color: #526d82;
	font-size: 0.75rem;
	line-height: 1.5;
}

.gwds-context-conversion-grid {
	display: grid;
	grid-template-columns: minmax(17rem, 0.72fr) minmax(0, 1.28fr);
	align-items: start;
	gap: clamp(3rem, 7vw, 7rem);
}

.gwds-context-aside {
	padding-top: 1.75rem;
}

.gwds-context-aside h2 {
	margin: 0;
	color: #102a43;
	font-family: var(--font-display), Georgia, serif;
	font-size: clamp(1.75rem, 3vw, 2.25rem);
	font-weight: 600;
	line-height: 1.15;
}

.gwds-context-aside > a {
	display: inline-block;
	margin-top: 2rem;
	color: #087f5b;
	font-size: 0.8125rem;
	font-weight: 650;
	text-decoration: underline;
	text-underline-offset: 0.2rem;
}

/* Consultation and homepage welcome dialog. */
body.gwds-modal-open {
	overflow: hidden;
}

.gwds-consultation-dialog {
	width: min(1120px, calc(100vw - 3rem));
	height: min(680px, calc(100dvh - 3rem));
	max-width: none;
	max-height: calc(100vh - 3rem);
	max-height: calc(100dvh - 3rem);
	margin: auto;
	padding: 0;
	overflow: visible;
	border: 0;
	background: transparent;
	color: #102a43;
}

.gwds-consultation-dialog:focus {
	outline: none;
}

.gwds-consultation-dialog::backdrop {
	background: rgba(7, 24, 39, 0.76);
	backdrop-filter: blur(7px);
	-webkit-backdrop-filter: blur(7px);
	animation: gwds-backdrop-in 220ms ease-out both;
}

.gwds-consultation-shell {
	position: relative;
	display: grid;
	grid-template-columns: minmax(285px, 0.72fr) minmax(0, 1.28fr);
	height: 100%;
	max-height: none;
	overflow: hidden;
	border: 0;
	border-radius: 16px;
	background: #ffffff;
	box-shadow: 0 32px 90px rgba(7, 24, 39, 0.32);
	animation: gwds-dialog-in 280ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.gwds-consultation-close {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	z-index: 2;
	display: grid;
	width: 2.25rem;
	height: 2.25rem;
	place-items: center;
	border: 1px solid #d7e0e7;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.94);
	color: #102a43;
	box-shadow: 0 4px 16px rgba(16, 42, 67, 0.08);
	cursor: pointer;
	transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.gwds-consultation-close:hover {
	border-color: #829ab1;
	background: #f6f8f8;
	transform: rotate(3deg);
}

.gwds-consultation-intro {
	display: flex;
	min-width: 0;
	padding: clamp(1.875rem, 3vw, 2.25rem);
	flex-direction: column;
	justify-content: space-between;
	gap: 1.5rem;
	background: #102a43;
	color: #f8faf9;
}

.gwds-consultation-eyebrow,
.gwds-consultation-form-eyebrow {
	margin: 0;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.gwds-consultation-eyebrow {
	color: #8fe3cd;
}

.gwds-consultation-title {
	max-width: 12ch;
	margin: 0.7rem 0 0;
	font-family: var(--font-garamond), Georgia, serif;
	font-size: clamp(2rem, 3.2vw, 2.65rem);
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0;
	color: #ffffff;
}

.gwds-consultation-lead {
	max-width: 35rem;
	margin: 0.9rem 0 0;
	font-size: 0.875rem;
	line-height: 1.58;
	color: #cbd8e2;
}

.gwds-consultation-points {
	display: grid;
	margin: 0;
	padding: 0;
	gap: 0.6rem;
	list-style: none;
}

.gwds-consultation-points li {
	display: flex;
	align-items: flex-start;
	gap: 0.55rem;
	font-size: 0.8rem;
	line-height: 1.4;
	color: #e2e8ee;
}

.gwds-consultation-points svg {
	margin-top: 0.1rem;
	flex: 0 0 auto;
	color: #8fe3cd;
}

.gwds-consultation-explore {
	margin: 0;
	font-size: 0.75rem;
	color: #9fb3c4;
}

.gwds-consultation-explore a {
	font-weight: 600;
	color: #ffffff;
	text-decoration: underline;
	text-decoration-color: #49b99a;
	text-underline-offset: 0.25rem;
}

/* ---- Two-step welcome / booking flow ---- */
.gwds-consultation-actions {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.gwds-consultation-next {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 0.55rem;
	min-height: 3rem;
	padding: 0 1.6rem;
	border: 0;
	border-radius: 999px;
	background: #149a72;
	color: #ffffff;
	font: inherit;
	font-size: 0.9rem;
	font-weight: 700;
	letter-spacing: 0.01em;
	cursor: pointer;
	box-shadow: 0 12px 30px rgba(17, 124, 91, 0.32);
	transition: background-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}

.gwds-consultation-next:hover {
	background: #12b083;
	transform: translateY(-1px);
	box-shadow: 0 16px 36px rgba(17, 124, 91, 0.4);
}

.gwds-consultation-next:active {
	transform: translateY(0) scale(0.99);
}

.gwds-consultation-next:focus-visible {
	outline: 2px solid #8fe3cd;
	outline-offset: 3px;
}

.gwds-consultation-next svg {
	flex: 0 0 auto;
	transition: transform 0.18s ease;
}

.gwds-consultation-next:hover svg {
	transform: translateX(3px);
}

/* Welcome step: split card — welcome copy on the left, portrait on the right. */
.gwds-consultation-dialog[data-step="welcome"] .gwds-consultation-shell {
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
}

.gwds-consultation-dialog[data-step="welcome"] .gwds-consultation-intro {
	justify-content: center;
	gap: 1.6rem;
}

.gwds-consultation-dialog[data-step="welcome"] .gwds-consultation-booking-pane {
	display: none;
}

/* Booking step: hide the portrait and the Next CTA. */
.gwds-consultation-dialog[data-step="booking"] .gwds-consultation-portrait {
	display: none;
}

.gwds-consultation-dialog[data-step="booking"] .gwds-consultation-next {
	display: none;
}

.gwds-consultation-portrait {
	position: relative;
	min-width: 0;
	overflow: hidden;
	background: linear-gradient(165deg, #dff5ee 0%, #a9ddcc 55%, #79c7ad 100%);
}

.gwds-consultation-portrait img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 18%;
}

.gwds-consultation-form-pane {
	min-width: 0;
	padding: 2rem 2.25rem;
	overflow-y: auto;
	overscroll-behavior: contain;
	background: #ffffff;
}

.gwds-consultation-booking-pane {
	min-width: 0;
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-color: #aabcc5 transparent;
	scrollbar-width: thin;
	background: #ffffff;
}

.gwds-consultation-booking-pane::-webkit-scrollbar {
	width: 0.5rem;
}

.gwds-consultation-booking-pane::-webkit-scrollbar-thumb {
	border: 2px solid #ffffff;
	border-radius: 999px;
	background: #aabcc5;
}

.gwds-consultation-booking-pane::-webkit-scrollbar-track {
	background: transparent;
}

.gwds-consultation-form-eyebrow {
	color: #087f5b;
}

.gwds-consultation-form-pane > h3 {
	max-width: 18ch;
	margin: 0.45rem 0 0;
	font-family: var(--font-garamond), Georgia, serif;
	font-size: clamp(1.65rem, 2.5vw, 1.95rem);
	font-weight: 600;
	line-height: 1.08;
	letter-spacing: 0;
	color: #102a43;
}

.gwds-consultation-form-lead {
	max-width: 38rem;
	margin: 0.55rem 0 1rem;
	font-size: 0.8rem;
	line-height: 1.5;
	color: #526d82;
}

.gwds-consultation-form {
	gap: 0.75rem;
}

.gwds-consultation-form > .grid {
	gap: 0.75rem;
}

.gwds-consultation-form .grid.gap-2 {
	gap: 0.3rem;
}

.gwds-consultation-form label,
.gwds-consultation-form p {
	font-size: 0.75rem;
}

.gwds-consultation-form input:not([type="checkbox"]),
.gwds-consultation-form select {
	height: 2.625rem;
	padding-right: 0.85rem;
	padding-left: 0.85rem;
	font-size: 0.875rem;
}

.gwds-consultation-form textarea {
	min-height: 5.25rem;
	padding: 0.7rem 0.85rem;
	font-size: 0.875rem;
	line-height: 1.45;
	resize: vertical;
}

.gwds-consultation-form > label {
	padding: 0.65rem 0.75rem;
	line-height: 1.45;
}

.gwds-consultation-form button[type="submit"] {
	height: 2.625rem;
	padding-right: 1.5rem;
	padding-left: 1.5rem;
	font-size: 0.8125rem;
}

.gwds-consultation-fallback {
	display: inline-flex;
	min-height: 3rem;
	margin-top: 1.5rem;
	padding: 0 1.5rem;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	background: #087f5b;
	font-weight: 600;
	color: #ffffff;
}

@keyframes gwds-dialog-in {
	from {
		opacity: 0;
		transform: translateY(14px) scale(0.985);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

@keyframes gwds-backdrop-in {
	from { opacity: 0; }
	to { opacity: 1; }
}

/* Floating page shortcuts: WhatsApp stays available, back-to-top appears on scroll. */
.gwds-floating-actions {
	position: fixed;
	right: max(1.5rem, env(safe-area-inset-right));
	bottom: max(1.5rem, env(safe-area-inset-bottom));
	z-index: 40;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.7rem;
	transition: opacity 180ms ease, transform 180ms ease;
}

.gwds-floating-action {
	position: relative;
	display: inline-flex;
	width: 3.25rem;
	height: 3.25rem;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	border: 1px solid transparent;
	border-radius: 50%;
	box-shadow: 0 12px 30px rgba(16, 42, 67, 0.16);
	cursor: pointer;
	transition: opacity 180ms ease, visibility 180ms ease, background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.gwds-floating-action::after {
	position: absolute;
	right: calc(100% + 0.7rem);
	top: 50%;
	padding: 0.4rem 0.6rem;
	border-radius: 5px;
	background: #102a43;
	box-shadow: 0 8px 20px rgba(16, 42, 67, 0.15);
	color: #fff;
	content: attr(data-label);
	font-size: 0.7rem;
	font-weight: 650;
	opacity: 0;
	pointer-events: none;
	transform: translate(0.3rem, -50%);
	transition: opacity 160ms ease, transform 160ms ease;
	white-space: nowrap;
}

.gwds-floating-action:hover::after,
.gwds-floating-action:focus-visible::after {
	opacity: 1;
	transform: translate(0, -50%);
}

.gwds-floating-action:hover {
	box-shadow: 0 16px 36px rgba(16, 42, 67, 0.22);
	transform: translateY(-2px);
}

.gwds-floating-action:active {
	transform: translateY(0) scale(0.96);
}

.gwds-floating-action:focus-visible {
	outline: 3px solid rgba(8, 127, 91, 0.22);
	outline-offset: 3px;
}

.gwds-back-to-top {
	border-color: #d9e2ec;
	background: rgba(255, 255, 255, 0.94);
	color: #102a43;
	opacity: 0;
	pointer-events: none;
	transform: translateY(0.65rem) scale(0.92);
	visibility: hidden;
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}

.gwds-back-to-top.is-visible {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0) scale(1);
	visibility: visible;
}

.gwds-back-to-top:hover,
.gwds-back-to-top:focus-visible {
	border-color: #9fb3c8;
	background: #fff;
	color: #087f5b;
}

.gwds-whatsapp-button {
	background: #168c68;
	color: #fff;
}

.gwds-whatsapp-button:hover,
.gwds-whatsapp-button:focus-visible {
	background: #0f7556;
	color: #fff;
}

body.gwds-menu-open .gwds-floating-actions {
	opacity: 0;
	pointer-events: none;
	transform: translateY(0.75rem);
}

.gwds-home-hero {
	background: #f7f6f1;
}

.gwds-home-portrait {
	display: flex;
	min-height: clamp(31rem, 66vh, 41rem);
	align-items: flex-end;
	justify-content: center;
	isolation: isolate;
}

.gwds-home-portrait-figure {
	display: flex;
	width: 100%;
	min-height: clamp(31rem, 66vh, 41rem);
	align-items: flex-end;
	justify-content: center;
}

.gwds-home-portrait-cutout {
	display: block;
	width: auto;
	max-width: 100%;
	height: clamp(31rem, 66vh, 41rem);
	object-fit: contain;
	object-position: center bottom;
	filter: drop-shadow(0 22px 24px rgba(16, 42, 67, 0.14));
	-webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 75%, transparent 100%);
	mask-image: linear-gradient(to bottom, #000 0%, #000 75%, transparent 100%);
}

.gwds-home-portrait-caption {
	position: absolute;
	z-index: 2;
	bottom: 1.8rem;
	left: -0.5rem;
	max-width: min(19rem, 80%);
	padding: 0.7rem 1rem 0.75rem;
	border-left: 3px solid #c7a347;
	background: rgba(247, 246, 241, 0.92);
}

.gwds-home-portrait-fallback {
	display: flex;
	min-height: 24rem;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

@media (min-width: 64rem) {
	.gwds-home-portrait-cutout {
		transform: translateY(-0.75rem) scale(1.15);
		transform-origin: center center;
	}

	.gwds-home-programs-grid > .gwds-home-program-card--wide {
		grid-column: 1 / -1;
	}

	.gwds-home-program-card--wide > a {
		display: grid;
		grid-template-areas:
			"meta copy cta"
			"title copy cta";
		grid-template-columns: minmax(15rem, 0.72fr) minmax(0, 1.28fr) auto;
		grid-template-rows: auto auto;
		min-height: 12rem;
		gap: 0.7rem clamp(2rem, 4vw, 4.5rem);
		align-items: center;
		padding: 2rem 2.25rem;
	}

	.gwds-home-program-card--wide > a > div:first-child {
		grid-area: meta;
		align-self: end;
	}

	.gwds-home-program-card--wide > a > h3 {
		grid-area: title;
		align-self: start;
		margin-top: 0;
		font-size: 1.6rem;
	}

	.gwds-home-program-card--wide > a > p {
		grid-area: copy;
		max-width: 42rem;
		margin-top: 0;
		font-size: 1rem;
	}

	.gwds-home-program-card--wide > a > span:last-child {
		grid-area: cta;
		align-self: center;
		padding-top: 0;
		white-space: nowrap;
	}
}

@media (max-width: 767px) {
	.gwds-consultation-dialog {
		width: calc(100vw - 1rem);
		height: calc(100dvh - 1rem);
		max-width: calc(100vw - 1rem);
		max-height: calc(100vh - 1rem);
		max-height: calc(100dvh - 1rem);
		overflow: hidden;
	}

	.gwds-consultation-shell {
		display: flex;
		width: 100%;
		height: 100%;
		max-width: 100%;
		min-width: 0;
		max-height: none;
		flex-direction: column;
		overflow-x: hidden;
		overflow-y: hidden;
		border-radius: 12px;
	}

	.gwds-consultation-intro {
		flex: 0 0 auto;
		padding: 1.5rem 1.35rem;
		gap: 0.8rem;
	}

	.gwds-consultation-title {
		max-width: 15ch;
		padding-right: 1.5rem;
		font-size: 1.9rem;
	}

	.gwds-consultation-lead,
	.gwds-consultation-points {
		display: none;
	}

	.gwds-consultation-explore {
		display: none;
	}

	.gwds-consultation-form-pane {
		padding: 1.65rem 1.35rem 1.9rem;
		overflow: visible;
	}

	.gwds-consultation-booking-pane {
		width: 100%;
		max-width: 100%;
		min-width: 0;
		min-height: 0;
		flex: 1 1 auto;
		overflow-x: hidden;
		overflow-y: auto;
	}

	.gwds-consultation-form-pane > h3 {
		font-size: 1.75rem;
	}

	/* Welcome step on mobile: text-only full-height card (portrait hidden). */
	.gwds-consultation-portrait {
		display: none;
	}

	.gwds-consultation-dialog[data-step="welcome"] .gwds-consultation-intro {
		flex: 1 1 auto;
		justify-content: center;
	}

	.gwds-consultation-dialog[data-step="welcome"] .gwds-consultation-lead {
		display: block;
	}

	.gwds-consultation-next {
		align-self: stretch;
		justify-content: center;
	}
}

@media (max-width: 420px) {
	.gwds-product-card__footer {
		align-items: flex-start;
		flex-direction: column;
		gap: 0.75rem;
	}
}

/* Mobile experience: tighter rhythm, touch-first navigation, and compact content flows. */
@media (max-width: 47.999rem) {
	html {
		scroll-padding-top: 4rem;
	}

	body {
		overflow-x: clip;
	}

	body.gwds-menu-open {
		overflow: hidden;
		touch-action: none;
	}

	.gwds-site-header {
		transition: background-color 220ms ease, box-shadow 220ms ease, backdrop-filter 220ms ease;
	}

	body.gwds-menu-open .gwds-site-header {
		background: transparent !important;
		box-shadow: none;
		backdrop-filter: none;
	}

	.gwds-site-header.is-scrolled {
		box-shadow: 0 1px 0 rgba(16, 42, 67, 0.09), 0 8px 24px rgba(16, 42, 67, 0.04);
	}

	.gwds-nav-inner {
		position: relative;
		z-index: 3;
		height: 4rem;
		padding-right: 1rem;
		padding-left: 1rem;
	}

	.gwds-site-brand {
		max-width: calc(100vw - 7.25rem);
		transform-origin: left center;
		transition: transform 220ms cubic-bezier(0.16, 1, 0.3, 1);
	}

	.gwds-site-brand a {
		max-width: 100%;
	}

	.gwds-site-brand a > svg {
		width: 2.2rem;
		height: 2.2rem;
		flex: 0 0 auto;
	}

	.gwds-site-brand a > span {
		font-size: 1rem;
		white-space: nowrap;
	}

	body.gwds-menu-open .gwds-site-brand {
		max-width: calc(100vw - 2.5rem);
		transform: none;
	}

	body.gwds-menu-open .gwds-site-brand a > svg {
		width: 3.2rem;
		height: 3.2rem;
	}

	body.gwds-menu-open .gwds-site-brand a > span {
		font-size: 1.5rem;
	}

	body.gwds-menu-open .gwds-nav-inner {
		height: 7.35rem;
		align-items: flex-end;
		padding-bottom: 0.75rem;
	}

	body.gwds-menu-open .gwds-mobile-header-actions {
		position: absolute;
		top: 0.6rem;
		right: 1rem;
	}

	.gwds-mobile-header-actions {
		display: flex;
		align-items: center;
		gap: 0.25rem;
	}

	.gwds-mobile-cart-button,
	.gwds-menu-toggle {
		display: grid;
		width: 2.65rem;
		height: 2.65rem;
		place-items: center;
		border: 1px solid transparent;
		border-radius: 8px;
		color: var(--color-ink-900);
		transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
	}

	.gwds-mobile-cart-button {
		position: relative;
	}

	body.gwds-menu-open .gwds-mobile-cart-button {
		display: none;
	}

	.gwds-mobile-cart-button:hover,
	.gwds-menu-toggle:hover,
	.gwds-menu-toggle[aria-expanded="true"] {
		border-color: #d7e0e7;
		background: rgba(255, 255, 255, 0.82);
	}

	.gwds-mobile-cart-count {
		position: absolute;
		top: 0.1rem;
		right: 0.05rem;
		display: grid;
		min-width: 1.05rem;
		height: 1.05rem;
		place-items: center;
		border: 2px solid var(--color-paper);
		border-radius: 999px;
		background: var(--color-brand-600);
		color: #ffffff;
		font-size: 0.6rem;
		font-weight: 800;
		line-height: 1;
	}

	.gwds-mobile-cart-count.is-empty {
		display: none;
	}

	.gwds-menu-toggle {
		padding: 0;
	}

	.gwds-menu-toggle:active {
		transform: scale(0.96);
	}

	.gwds-mobile-nav {
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 2;
		height: 100dvh;
		max-height: none;
		padding: 0;
		overflow-y: auto;
		border: 0;
		background: var(--color-paper);
		overscroll-behavior: contain;
	}

	.gwds-mobile-nav.is-open {
		animation: gwds-mobile-menu-in 320ms cubic-bezier(0.16, 1, 0.3, 1) both;
	}

	.gwds-mobile-nav-inner {
		display: flex;
		width: min(100%, 34rem);
		min-height: 100%;
		margin: 0 auto;
		padding: calc(8.15rem + var(--gwds-admin-offset)) 1.25rem max(1.05rem, env(safe-area-inset-bottom));
		flex-direction: column;
	}

	.gwds-mobile-nav-intro {
		padding-bottom: 0.65rem;
		border-bottom: 1px solid var(--color-ink-100);
	}

	.gwds-mobile-nav-intro span {
		display: block;
		max-width: 20rem;
		color: var(--color-ink-500);
		font-size: 0.78rem;
		line-height: 1.45;
		text-align: left;
	}

	.gwds-mobile-nav-list {
		margin-top: 0.35rem;
	}

	.gwds-mobile-nav-list a {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 1.5rem;
		gap: 0.7rem;
		align-items: center;
		min-height: 3.125rem;
		padding: 0.4rem 0.7rem;
		border-bottom: 1px solid var(--color-ink-100);
		border-radius: 0;
		color: var(--color-ink-950);
		transition: background-color 180ms ease, color 180ms ease, padding 180ms ease;
	}

	.gwds-mobile-nav-list a.is-active {
		margin: 0.2rem 0;
		padding-right: 0.8rem;
		padding-left: 0.8rem;
		border-bottom-color: transparent;
		border-radius: 8px;
		background: #e8f2ee;
		color: var(--color-brand-700);
	}

	.gwds-mobile-nav-index {
		color: var(--color-ink-400);
		font-size: 0.65rem;
		font-weight: 700;
		font-variant-numeric: tabular-nums;
	}

	.gwds-mobile-nav-list strong {
		font-family: var(--font-display);
		font-size: 1.45rem;
		font-weight: 600;
		line-height: 1;
	}

	.gwds-mobile-nav-arrow {
		color: var(--color-brand-700);
		font-size: 1.1rem;
		text-align: right;
		transition: transform 180ms ease;
	}

	.gwds-mobile-nav-list a:hover .gwds-mobile-nav-arrow {
		transform: translateX(3px);
	}

	.gwds-mobile-nav-tools {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.65rem;
		margin-top: 0.75rem;
	}

	.gwds-mobile-nav-tools > a {
		position: relative;
		display: flex;
		align-items: center;
		gap: 0.65rem;
		min-width: 0;
		min-height: 3.35rem;
		padding: 0.7rem 0.8rem;
		border: 1px solid var(--color-ink-100);
		border-radius: 8px;
		background: var(--color-surface);
		color: var(--color-ink-800);
	}

	.gwds-mobile-nav-tools svg {
		flex: 0 0 auto;
		color: var(--color-brand-700);
	}

	.gwds-mobile-nav-tools span:not(.gwds-mobile-cart-count) {
		display: grid;
		min-width: 0;
	}

	.gwds-mobile-nav-tools small {
		color: var(--color-ink-500);
		font-size: 0.625rem;
		line-height: 1.2;
	}

	.gwds-mobile-nav-tools strong {
		overflow: hidden;
		font-size: 0.78rem;
		line-height: 1.35;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.gwds-mobile-nav-tools .gwds-mobile-cart-count {
		position: static;
		flex: 0 0 auto;
		margin-left: auto;
		border-color: var(--color-surface);
	}

	.gwds-mobile-nav-footer {
		margin-top: auto;
		padding-top: 0.85rem;
	}

	.gwds-mobile-nav-cta {
		margin: 0;
	}

	.gwds-mobile-nav-cta > a {
		width: 100%;
		min-height: 3rem;
	}

	.gwds-mobile-nav-social {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 1rem;
		margin-top: 0.85rem;
		padding-top: 0.85rem;
		border-top: 1px solid var(--color-ink-100);
	}

	.gwds-mobile-nav-social > p {
		color: var(--color-ink-600);
		font-size: 0.72rem;
		font-weight: 700;
	}

	.gwds-mobile-nav-social > div {
		display: flex;
		gap: 0.45rem;
	}

	.gwds-mobile-nav-social a {
		display: grid;
		width: 2.35rem;
		height: 2.35rem;
		place-items: center;
		border: 1px solid var(--color-ink-200);
		border-radius: 50%;
		background: var(--color-surface);
		color: var(--color-brand-700);
		transition: border-color 180ms ease, background-color 180ms ease, color 180ms ease, transform 180ms ease;
	}

	.gwds-mobile-nav-social a:hover {
		border-color: var(--color-brand-600);
		background: var(--color-brand-600);
		color: #ffffff;
		transform: translateY(-2px);
	}

	.gwds-mobile-nav.is-open .gwds-mobile-nav-intro,
	.gwds-mobile-nav.is-open li,
	.gwds-mobile-nav.is-open .gwds-mobile-nav-tools,
	.gwds-mobile-nav.is-open .gwds-mobile-nav-cta,
	.gwds-mobile-nav.is-open .gwds-mobile-nav-social {
		animation: gwds-mobile-item-in 360ms cubic-bezier(0.16, 1, 0.3, 1) both;
	}

	.gwds-mobile-nav.is-open li:nth-child(2) { animation-delay: 25ms; }
	.gwds-mobile-nav.is-open li:nth-child(3) { animation-delay: 50ms; }
	.gwds-mobile-nav.is-open li:nth-child(4) { animation-delay: 75ms; }
	.gwds-mobile-nav.is-open li:nth-child(5) { animation-delay: 100ms; }
	.gwds-mobile-nav.is-open li:nth-child(6) { animation-delay: 125ms; }
	.gwds-mobile-nav.is-open .gwds-mobile-nav-tools { animation-delay: 150ms; }
	.gwds-mobile-nav.is-open .gwds-mobile-nav-cta { animation-delay: 175ms; }
	.gwds-mobile-nav.is-open .gwds-mobile-nav-social { animation-delay: 200ms; }

	html.js [data-reveal],
	html.js [data-reveal-item] {
		transform: translateY(var(--reveal-y, 18px));
		transition-duration: 0.52s;
	}

	.gwds-home-hero-grid {
		min-height: 0;
		padding-top: 6.25rem;
		padding-bottom: 3rem;
		gap: 2.25rem;
	}

	.gwds-home-hero h1 {
		font-size: 2.35rem;
		line-height: 1.03;
		text-wrap: balance;
	}

	.gwds-home-hero h1 br {
		display: none;
	}

	.gwds-home-hero-copy > div:first-child p {
		margin-bottom: 0.7rem;
		font-size: 0.6875rem;
	}

	.gwds-home-hero-copy > div:nth-child(2) p {
		margin-top: 1.15rem;
		font-size: 1rem;
		line-height: 1.62;
	}

	.gwds-home-hero-actions {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		margin-top: 1.5rem;
		gap: 0.65rem;
	}

	.gwds-home-hero-actions a {
		width: 100%;
		min-height: 2.875rem;
		padding-right: 0.65rem;
		padding-left: 0.65rem;
		font-size: 0.8125rem;
		white-space: nowrap;
	}

	.gwds-home-portrait {
		min-height: clamp(20.5rem, 92vw, 24rem);
		max-width: 100%;
	}

	.gwds-home-portrait-figure {
		min-height: clamp(20.5rem, 92vw, 24rem);
	}

	.gwds-home-portrait-cutout {
		height: clamp(20.5rem, 92vw, 24rem);
		filter: drop-shadow(0 16px 18px rgba(16, 42, 67, 0.13));
	}

	.gwds-home-portrait-caption {
		bottom: 0.85rem;
		left: 0.25rem;
		max-width: calc(100% - 0.5rem);
		padding: 0.6rem 0.75rem 0.65rem 0.85rem;
		border-left-width: 2px;
	}

	.gwds-home-portrait-caption p:first-child {
		font-size: 1rem;
	}

	.gwds-home-portrait-caption p:last-child {
		font-size: 0.75rem;
	}

	.gwds-home-credentials {
		padding-top: 0.9rem;
		padding-bottom: 0.9rem;
	}

	.gwds-home-credentials > div {
		-webkit-mask-image: linear-gradient(to right, transparent 0, #000 9%, #000 91%, transparent 100%);
		mask-image: linear-gradient(to right, transparent 0, #000 9%, #000 91%, transparent 100%);
	}

	.gwds-home-credentials .marquee-track {
		gap: 1.75rem;
		padding-right: 1.75rem;
	}

	.gwds-home-credentials span {
		gap: 1.75rem;
		font-size: 0.8125rem;
	}

	.gwds-home-metrics {
		padding-top: 2.5rem;
		padding-bottom: 2.5rem;
	}

	.gwds-home-metrics-grid {
		gap: 2rem 0;
	}

	.gwds-home-metrics-grid > div {
		padding-left: 1rem;
	}

	.gwds-home-metrics-grid .text-5xl {
		font-size: 2.5rem;
		line-height: 1;
	}

	.gwds-home-metrics-grid p:last-child {
		margin-top: 0.45rem;
		font-size: 0.8125rem;
	}

	.gwds-home-programs {
		padding-top: 3.75rem;
		padding-bottom: 3.5rem;
	}

	.gwds-home-section-header {
		display: block;
	}

	.gwds-home-section-header h2,
	.gwds-home-research h2,
	.gwds-home-closing h2 {
		font-size: 2rem;
		line-height: 1.08;
		text-wrap: balance;
	}

	.gwds-home-section-header .text-lg,
	.gwds-home-research .text-lg,
	.gwds-home-closing .text-lg {
		font-size: 1rem;
		line-height: 1.6;
	}

	.gwds-home-section-header > div:last-child {
		margin-top: 0.85rem;
	}

	.gwds-home-programs-grid {
		display: grid;
		grid-template-columns: none;
		grid-auto-columns: min(84vw, 320px);
		grid-auto-flow: column;
		margin: 2rem -1rem 0;
		padding: 0 1rem 0.75rem;
		gap: 1rem;
		overflow-x: auto;
		overscroll-behavior-inline: contain;
		scroll-padding-inline: 1rem;
		scroll-snap-type: inline mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	.gwds-home-programs-grid::-webkit-scrollbar,
	.gwds-home-research-chips::-webkit-scrollbar,
	.gwds-home-writing-list::-webkit-scrollbar {
		display: none;
	}

	.gwds-home-programs-grid > div {
		min-width: 0;
		scroll-snap-align: start;
	}

	.gwds-home-programs-grid > div > a {
		min-height: 100%;
		padding: 1.35rem;
		border-radius: 12px;
	}

	.gwds-home-programs-grid > div:first-child h3 {
		margin-top: 1rem;
		font-size: 1.55rem;
	}

	.gwds-home-programs-grid > div:not(:first-child) h3 {
		font-size: 1.3rem;
	}

	.gwds-home-programs-grid p {
		font-size: 0.875rem;
		line-height: 1.55;
	}

	.gwds-home-programs-grid ul {
		margin-top: 1.1rem;
		font-size: 0.8125rem;
	}

	.gwds-home-programs-grid li:nth-child(n + 5) {
		display: none;
	}

	.gwds-home-programs-grid a > span:last-child {
		padding-top: 1.35rem;
		font-size: 0.8125rem;
	}

	.gwds-home-mission {
		padding-top: 4rem;
		padding-bottom: 4.25rem;
	}

	.gwds-home-mission > div > p:first-child {
		font-size: 1.65rem;
		line-height: 1.28;
	}

	.gwds-home-mission > div > p:nth-child(2) {
		margin-top: 1rem;
		font-size: 0.875rem;
	}

	.gwds-home-mission > div > div:last-child {
		margin-top: 1.5rem;
	}

	.gwds-home-research {
		padding-top: 3.5rem;
		padding-bottom: 3.25rem;
	}

	.gwds-home-research .grid {
		gap: 2rem;
	}

	.gwds-home-research-chips {
		flex-wrap: nowrap;
		margin-right: -1rem;
		margin-left: -1rem;
		padding: 0 1rem 0.5rem;
		gap: 0.65rem;
		overflow-x: auto;
		overscroll-behavior-inline: contain;
		scroll-snap-type: inline proximity;
		scrollbar-width: none;
	}

	.gwds-home-research-chips > div {
		flex: 0 0 auto;
		scroll-snap-align: start;
	}

	.gwds-home-research-chips a {
		padding: 0.65rem 0.9rem;
		font-size: 0.8125rem;
	}

	.gwds-home-writing {
		padding-top: 3.75rem;
		padding-bottom: 4rem;
	}

	.gwds-home-writing-grid {
		margin-top: 2rem;
		gap: 2.25rem;
	}

	.gwds-home-writing-grid > div:first-child .aspect-\[16\/9\] {
		border-radius: 12px;
	}

	.gwds-home-writing-grid > div:first-child h3 {
		font-size: 1.55rem;
		line-height: 1.25;
	}

	.gwds-home-writing-grid > div:first-child p:last-child {
		font-size: 0.9375rem;
		line-height: 1.6;
	}

	.gwds-home-writing-list {
		display: grid;
		grid-template-columns: none;
		grid-auto-columns: min(82vw, 310px);
		grid-auto-flow: column;
		margin-right: -1rem;
		margin-left: -1rem;
		padding: 0 1rem 0.5rem;
		gap: 0.8rem;
		overflow-x: auto;
		overscroll-behavior-inline: contain;
		scroll-snap-type: inline mandatory;
		scrollbar-width: none;
	}

	.gwds-home-writing-list > div {
		scroll-snap-align: start;
	}

	.gwds-home-writing-list a {
		height: 100%;
		padding: 1rem;
		border: 1px solid #e2e8ee;
		border-radius: 10px;
		background: #ffffff;
	}

	.gwds-home-writing-list h3 {
		font-size: 1.2rem;
	}

	.gwds-home-writing-list p:last-child {
		font-size: 0.85rem;
	}

	.gwds-home-closing {
		padding-top: 4rem;
		padding-bottom: 4rem;
	}

	.gwds-home-closing-grid {
		gap: 2.25rem;
	}

	.gwds-home-closing .mt-8 {
		margin-top: 1.5rem;
	}

	.gwds-home-newsletter {
		padding: 1.25rem;
		border-radius: 12px;
	}

	.gwds-home-newsletter p {
		margin-bottom: 1rem;
	}

	.gwds-home-newsletter input[type="email"],
	.gwds-home-newsletter button {
		height: 2.875rem;
		font-size: 0.875rem;
	}

	.gwds-page-hero > .relative.mx-auto,
	#main-content > section:first-child > .relative.mx-auto {
		padding-top: 6.75rem;
		padding-bottom: 2.5rem;
	}

	.gwds-page-hero h1,
	#main-content > section:first-child h1 {
		font-size: 2.25rem;
		line-height: 1.08;
		text-wrap: balance;
	}

	.gwds-page-hero h1 + p,
	#main-content > section:first-child h1 + p {
		margin-top: 1rem;
		font-size: 1rem;
		line-height: 1.6;
	}

	.gwds-programs-list {
		padding-top: 1.25rem;
		padding-bottom: 4rem;
	}

	.gwds-program-jump-track {
		margin-right: -1rem;
		margin-left: -1rem;
		padding: 0 1rem;
		gap: 1.1rem;
		scroll-padding-inline: 1rem;
		scroll-snap-type: inline proximity;
		-webkit-overflow-scrolling: touch;
	}

	.gwds-program-jump-track a {
		padding-top: 0.85rem;
		padding-bottom: 0.75rem;
		font-size: 0.8125rem;
		scroll-snap-align: start;
	}

	.gwds-programs-list .space-y-6 > * + * {
		margin-top: 1rem;
	}

	.gwds-program-card {
		padding: 1.25rem;
		gap: 1.5rem;
		border-radius: 12px;
	}

	.gwds-programs-list .space-y-6 > div:first-child .gwds-program-card {
		border-color: #b8e6d9;
		background: rgba(237, 248, 245, 0.55);
	}

	.gwds-program-card-heading {
		display: grid;
		grid-template-columns: 2.75rem minmax(0, 1fr) auto;
		align-items: start;
		gap: 0.75rem;
	}

	.gwds-program-card-heading > span:first-child {
		width: 2.75rem;
		height: 2.75rem;
		border-radius: 9px;
	}

	.gwds-program-card h2 {
		font-size: 1.4rem;
		line-height: 1.15;
	}

	.gwds-program-card h2 + span {
		padding: 0.25rem 0.55rem;
		font-size: 0.6875rem;
	}

	.gwds-program-card > div:first-child > p:first-of-type {
		margin-top: 1rem;
		font-size: 0.9375rem;
		line-height: 1.6;
	}

	.gwds-program-meta {
		margin-top: 1rem;
		padding: 0.75rem;
		gap: 0.5rem;
		border-radius: 8px;
		background: #f5f7f6;
	}

	.gwds-program-meta > div {
		grid-template-columns: 3.4rem minmax(0, 1fr);
		gap: 0.55rem;
	}

	.gwds-program-meta dt {
		font-size: 0.625rem;
	}

	.gwds-program-meta dd {
		font-size: 0.8125rem;
		line-height: 1.45;
	}

	.gwds-program-cta {
		margin-top: 1rem;
	}

	.gwds-program-cta a {
		min-height: 2.75rem;
		font-size: 0.8125rem;
	}

	.gwds-program-outcomes > ul {
		padding-top: 1.1rem;
		font-size: 0.8125rem;
		line-height: 1.5;
	}

	html.js .gwds-program-outcomes:not(.is-expanded) li:nth-child(n + 4) {
		display: none;
	}

	.gwds-program-outcomes-toggle {
		display: flex;
		width: 100%;
		min-height: 2.625rem;
		margin-top: 0.75rem;
		padding: 0.55rem 0;
		align-items: center;
		justify-content: space-between;
		border: 0;
		border-top: 1px solid #e2e8ee;
		background: transparent;
		color: #087f5b;
		font-size: 0.75rem;
		font-weight: 700;
		cursor: pointer;
	}

	.gwds-program-outcomes-toggle::after {
		width: 0.5rem;
		height: 0.5rem;
		border-right: 1.5px solid currentColor;
		border-bottom: 1.5px solid currentColor;
		content: "";
		transform: rotate(45deg) translateY(-2px);
		transition: transform 180ms ease;
	}

	.gwds-program-outcomes.is-expanded .gwds-program-outcomes-toggle::after {
		transform: rotate(225deg) translate(-2px, -2px);
	}

	.gwds-service-hero > .relative.mx-auto,
	.gwds-context-hero > .relative.mx-auto {
		padding-top: 6.5rem;
		padding-bottom: 2.5rem;
	}

	.gwds-service-back {
		margin-bottom: 1.25rem;
	}

	.gwds-service-hero-layout,
	.gwds-context-hero-layout {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.75rem;
	}

	.gwds-service-eyebrow {
		margin-bottom: 0.6rem;
		font-size: 0.625rem;
	}

	.gwds-service-hero h1,
	.gwds-context-hero h1 {
		font-size: 2.2rem;
		line-height: 1.08;
		text-wrap: balance;
	}

	.gwds-service-hero h1 + p,
	.gwds-context-hero h1 + p {
		margin-top: 1rem;
		font-size: 0.9375rem;
		line-height: 1.62;
	}

	.gwds-service-actions {
		margin-top: 1.4rem;
		gap: 0.6rem;
	}

	.gwds-service-actions a {
		min-height: 2.75rem;
		padding-right: 1rem;
		padding-left: 1rem;
		font-size: 0.8125rem;
	}

	.gwds-service-facts {
		margin-top: 0.25rem;
	}

	.gwds-service-facts > div {
		grid-template-columns: 4.2rem minmax(0, 1fr);
		padding: 0.75rem 0;
		gap: 0.65rem;
	}

	.gwds-service-facts dt {
		font-size: 0.6rem;
	}

	.gwds-service-facts dd {
		font-size: 0.8rem;
	}

	.gwds-service-nav {
		top: calc(4rem + var(--gwds-admin-offset));
	}

	.gwds-service-nav > div {
		padding: 0 1rem;
		gap: 1.1rem;
	}

	.gwds-service-nav a {
		padding: 0.75rem 0;
		font-size: 0.75rem;
	}

	.gwds-service-overview {
		padding-top: 3rem;
		padding-bottom: 3.5rem;
	}

	.gwds-service-overview > .grid {
		gap: 2.5rem;
	}

	.gwds-service-overview h2,
	.gwds-service-process h2,
	.gwds-service-apply h2 {
		font-size: 1.7rem;
		line-height: 1.15;
	}

	.gwds-service-overview h2 + p,
	.gwds-service-process h2 + p,
	.gwds-service-apply h2 + p {
		margin-top: 0.85rem;
		font-size: 0.9375rem;
		line-height: 1.65;
	}

	.gwds-service-overview .rounded-2xl {
		margin-top: 1.5rem;
		padding: 1.25rem;
		border-radius: 12px;
	}

	.gwds-service-checklist,
	.gwds-service-checklist--two-column {
		grid-template-columns: minmax(0, 1fr);
		margin-top: 0.85rem;
	}

	.gwds-service-checklist li,
	.gwds-service-subjects li {
		padding: 0.7rem 0;
		font-size: 0.8125rem;
	}

	.gwds-service-subjects {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		margin-top: 1.5rem;
		column-gap: 1rem;
	}

	.gwds-service-process {
		padding-top: 3.5rem;
		padding-bottom: 3.5rem;
	}

	.gwds-service-steps {
		margin-top: 2rem;
		gap: 1.75rem;
	}

	.gwds-service-steps > div > div {
		padding-top: 1.1rem;
	}

	.gwds-service-steps h3 {
		font-size: 1.35rem;
	}

	.gwds-service-steps p {
		margin-top: 0.6rem;
		font-size: 0.875rem;
		line-height: 1.6;
	}

	.gwds-service-step-number {
		margin-bottom: 0.55rem;
	}

	.gwds-service-apply {
		padding-top: 3.5rem;
		padding-bottom: 4rem;
	}

	.gwds-service-apply > .grid {
		gap: 2rem;
	}

	.gwds-conversion-assurances {
		margin-top: 1.25rem;
		gap: 0.55rem;
	}

	.gwds-conversion-assurances li {
		font-size: 0.8125rem;
	}

	.gwds-inquiry-panel {
		padding: 1.25rem;
		border-radius: 12px;
		box-shadow: 0 12px 32px rgba(16, 42, 67, 0.05);
	}

	.gwds-inquiry-panel > h2,
	.gwds-inquiry-panel > h3 {
		font-size: 1.55rem;
	}

	.gwds-inquiry-panel > .gwds-inquiry-form {
		margin-top: 1.25rem;
	}

	.gwds-inquiry-form--compact,
	.gwds-inquiry-form--compact .grid.gap-5 {
		gap: 1rem;
	}

	.gwds-inquiry-form--compact label {
		font-size: 0.8125rem;
	}

	.gwds-inquiry-form--compact textarea {
		min-height: 7.5rem;
	}

	.gwds-inquiry-form--compact .gwds-inquiry-consent {
		padding: 0.85rem 1rem;
		gap: 0.75rem;
		font-size: 0.75rem;
	}

	.gwds-context-path {
		padding: 1rem 0;
	}

	.gwds-context-conversion {
		padding-top: 1.25rem;
		padding-bottom: 4rem;
	}

	.gwds-context-conversion-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 2rem;
	}

	.gwds-context-form {
		order: -1;
	}

	.gwds-context-aside {
		padding: 0 0.25rem;
	}

	.gwds-context-aside h2 {
		font-size: 1.55rem;
	}

	.gwds-context-aside > a {
		margin-top: 1.4rem;
		overflow-wrap: anywhere;
	}

	.gwds-product-card {
		padding: 1.25rem;
		border-radius: 12px;
	}

	.gwds-product-media {
		margin: -1.25rem -1.25rem 1.1rem;
		aspect-ratio: 16 / 10;
	}

	.gwds-product-card h2,
	.gwds-product-card h3 {
		margin-top: 1rem;
		font-size: 1.2rem;
	}

	.gwds-product-card p {
		margin-top: 0.65rem;
		font-size: 0.875rem;
		line-height: 1.55;
	}

	.gwds-product-card__footer {
		align-items: center;
		flex-direction: row;
		margin-top: 1rem;
		padding-top: 0.9rem;
		gap: 0.75rem;
	}

	.gwds-product-card__footer > span {
		font-size: 1rem;
	}

	.gwds-product-card__footer a {
		font-size: 0.8125rem;
		text-align: right;
	}

	.gwds-courses-hero > .relative.mx-auto {
		padding-bottom: 2.25rem;
	}

	.gwds-course-hero-facts {
		margin-top: 1.35rem;
	}

	.gwds-course-hero-facts > div {
		padding: 0.8rem 0.65rem 0 0;
	}

	.gwds-course-hero-facts > div + div {
		padding-left: 0.65rem;
	}

	.gwds-course-hero-facts dt {
		font-size: 1.05rem;
	}

	.gwds-course-hero-facts dd {
		font-size: 0.625rem;
	}

	.gwds-courses-catalog {
		padding-bottom: 4rem;
	}

	.gwds-courses-grid {
		gap: 1rem;
	}

	.gwds-course-media {
		margin-bottom: 1rem;
		aspect-ratio: 16 / 7;
	}

	.gwds-course-card h2 {
		margin-top: 0.85rem;
	}

	.gwds-course-card > p {
		margin-top: 0.55rem;
	}

	.gwds-course-outline {
		margin-top: 0.85rem;
	}

	.gwds-course-footer {
		display: grid;
		margin-top: 0.75rem;
		padding-top: 0.85rem;
		gap: 0.7rem;
	}

	.gwds-course-footer .gwds-course-status {
		font-size: 0.75rem;
		text-align: left;
	}

	.gwds-course-footer .gwds-course-cta {
		min-height: 2.75rem;
		font-size: 0.8125rem;
		text-align: center;
	}

	.gwds-courses-newsletter {
		margin-top: 2.5rem;
	}

	.gwds-courses-newsletter > div {
		padding: 1.25rem;
		border-radius: 12px;
	}

	.gwds-courses-newsletter h2 {
		font-size: 1.5rem;
	}

	.gwds-shop-hero > .relative.mx-auto {
		padding-bottom: 2.25rem;
	}

	.gwds-shop-eyebrow {
		margin-bottom: 0.55rem;
	}

	.gwds-shop-hero h1 {
		font-size: 2rem;
		line-height: 1.08;
	}

	.gwds-shop-hero h1 + p {
		margin-top: 0.85rem;
		font-size: 0.875rem;
		line-height: 1.6;
	}

	.gwds-shop-hero-meta {
		margin-top: 1.25rem;
		font-size: 0.6875rem;
	}

	.gwds-shop-hero-meta span {
		padding: 0 0.65rem;
	}

	.gwds-shop-catalog {
		padding-bottom: 4rem;
	}

	.gwds-shop-search {
		width: 100%;
		height: 2.875rem;
		border-radius: 8px;
	}

	.gwds-shop-search input[type="search"] {
		font-size: 1rem;
	}

	.gwds-shop-filter-rail {
		position: sticky;
		top: calc(4rem + var(--gwds-admin-offset));
		z-index: 20;
		flex-wrap: nowrap;
		margin: 0.75rem -1rem 0;
		padding: 0.65rem 1rem;
		gap: 0.5rem;
		overflow-x: auto;
		overscroll-behavior-inline: contain;
		scrollbar-width: none;
		background: rgba(250, 249, 246, 0.96);
		box-shadow: 0 1px 0 rgba(16, 42, 67, 0.07);
		backdrop-filter: blur(10px);
	}

	.gwds-shop-filter-rail::-webkit-scrollbar {
		display: none;
	}

	.gwds-shop-filter-rail button {
		min-height: 2.5rem;
		flex: 0 0 auto;
		padding: 0.5rem 0.85rem;
		font-size: 0.75rem;
	}

	.gwds-shop-results-heading {
		margin: 1.8rem 0 1rem;
	}

	.gwds-shop-results-heading h2 {
		font-size: 1.45rem;
	}

	.gwds-shop-results-heading > p {
		font-size: 0.75rem;
	}

	.gwds-shop-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.75rem;
	}

	.gwds-shop-card {
		padding: 0;
		border-radius: 10px;
	}

	.gwds-shop-card:active {
		transform: scale(0.985);
	}

	.gwds-shop-card-media {
		margin: 0;
		aspect-ratio: 6 / 5;
	}

	.gwds-shop-preview-badge {
		top: 0.5rem;
		left: 0.5rem;
		padding: 0.3rem 0.5rem;
		font-size: 0.5625rem;
	}

	.gwds-shop-card-body {
		padding: 0.8rem;
	}

	.gwds-shop-card .gwds-shop-card-category {
		margin: 0 0 0.4rem;
		font-size: 0.5625rem;
		line-height: 1.2;
	}

	.gwds-shop-card h3 {
		display: -webkit-box;
		min-height: 2.65em;
		margin: 0;
		overflow: hidden;
		font-size: 0.9rem;
		line-height: 1.32;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
	}

	.gwds-shop-card .gwds-shop-card-description {
		display: -webkit-box;
		min-height: 2.9em;
		margin: 0.45rem 0 0;
		overflow: hidden;
		font-size: 0.6875rem;
		line-height: 1.45;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
	}

	.gwds-shop-card .gwds-shop-card-footer {
		display: grid;
		align-items: stretch;
		margin-top: 0.7rem;
		padding-top: 0.65rem;
		gap: 0.5rem;
	}

	.gwds-shop-card-footer .gwds-shop-card-price {
		font-size: 0.95rem;
	}

	.gwds-shop-notice {
		margin-top: 1.5rem;
		padding: 0.9rem;
		font-size: 0.75rem;
	}

	.gwds-shop-empty {
		padding: 3rem 1rem;
	}

	body.single-product {
		padding-bottom: 4.75rem;
	}

	.single-product .gwds-floating-actions {
		bottom: 5.75rem;
	}

	.gwds-product-page {
		padding: 6rem 0 3.5rem;
	}

	.gwds-product-breadcrumb {
		margin-bottom: 1rem;
		font-size: 0.75rem;
	}

	.gwds-product-hero {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.75rem;
	}

	.gwds-product-visual {
		position: relative;
		top: auto;
		aspect-ratio: 4 / 3;
		border-radius: 8px;
	}

	.gwds-product-summary {
		padding: 0;
	}

	.gwds-product-category {
		margin-bottom: 0.55rem;
		font-size: 0.625rem;
	}

	.gwds-product-summary h1 {
		max-width: none;
		font-size: 2rem;
		line-height: 1.08;
	}

	.gwds-product-price {
		margin-top: 1rem;
		font-size: 1.55rem;
	}

	.gwds-product-short-description {
		margin-top: 0.9rem;
		font-size: 0.875rem;
		line-height: 1.6;
	}

	.gwds-product-purchase {
		margin-top: 1.4rem;
		padding-top: 1.1rem;
	}

	.gwds-product-quantity > div {
		grid-template-columns: 2.75rem 2.75rem 2.75rem;
	}

	.gwds-product-actions {
		gap: 0.6rem;
	}

	.gwds-product-actions button {
		min-height: 3rem;
		padding-right: 0.65rem;
		padding-left: 0.65rem;
		font-size: 0.8125rem;
	}

	.gwds-product-assurances {
		margin-top: 1.25rem;
		padding-top: 1rem;
		font-size: 0.75rem;
		gap: 0.6rem;
	}

	.gwds-product-included {
		padding: 3.5rem 0 4rem;
	}

	.gwds-product-section-heading {
		grid-template-columns: minmax(0, 1fr);
		gap: 0.7rem;
	}

	.gwds-product-section-heading > p {
		grid-column: auto;
	}

	.gwds-product-section-heading h2,
	.gwds-product-related-heading h2 {
		font-size: 1.85rem;
	}

	.gwds-product-section-heading > span {
		font-size: 0.8125rem;
		line-height: 1.6;
	}

	.gwds-product-included-grid {
		grid-template-columns: minmax(0, 1fr);
		margin-top: 2rem;
	}

	.gwds-product-included-grid li,
	.gwds-product-included-grid li:nth-child(even) {
		grid-template-columns: 2rem 1fr;
		min-height: 0;
		padding: 1.1rem 0;
		border-left: 0;
		font-size: 0.8125rem;
		gap: 0.75rem;
	}

	.gwds-product-included-grid li > span {
		font-size: 0.95rem;
	}

	.gwds-product-related {
		padding: 3.5rem 0 4rem;
	}

	.gwds-product-related-heading {
		align-items: end;
	}

	.gwds-product-related-heading > a {
		max-width: 5rem;
		font-size: 0.6875rem;
		line-height: 1.35;
		text-align: right;
	}

	.gwds-product-related-grid {
		grid-template-columns: none;
		grid-auto-columns: minmax(15rem, 78vw);
		grid-auto-flow: column;
		margin: 1.5rem -1rem 0;
		padding: 0 1rem 0.5rem;
		gap: 0.85rem;
		overflow-x: auto;
		overscroll-behavior-inline: contain;
		scroll-snap-type: inline mandatory;
		scrollbar-width: none;
	}

	.gwds-product-related-grid::-webkit-scrollbar {
		display: none;
	}

	.gwds-product-related-card {
		scroll-snap-align: start;
	}

	.gwds-product-related-card > span {
		margin-top: 0.8rem;
	}

	.gwds-product-related-card h3 {
		font-size: 1.05rem;
	}

	.gwds-product-mobile-bar {
		position: fixed;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 35;
		display: flex;
		min-height: 4.75rem;
		align-items: center;
		justify-content: space-between;
		padding: 0.65rem 1rem max(0.65rem, env(safe-area-inset-bottom));
		border-top: 1px solid #d9e2ec;
		background: rgba(255, 255, 255, 0.96);
		box-shadow: 0 -10px 30px rgba(16, 42, 67, 0.08);
		backdrop-filter: blur(12px);
	}

	.gwds-product-mobile-bar > div {
		display: grid;
		gap: 0.15rem;
	}

	.gwds-product-mobile-bar > div > span {
		color: #627d98;
		font-size: 0.625rem;
		font-weight: 650;
		text-transform: uppercase;
	}

	.gwds-product-mobile-bar > div > strong {
		color: #102a43;
		font-family: var(--font-display);
		font-size: 1.2rem;
		font-variant-numeric: tabular-nums;
	}

	.gwds-product-mobile-bar button {
		min-width: 8.5rem;
		min-height: 2.75rem;
		font-size: 0.8125rem;
	}

	.gwds-publication-summary-section {
		padding-bottom: 2.75rem;
	}

	.gwds-publication-hero-actions {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		margin-top: 1.5rem;
		gap: 0.65rem;
	}

	.gwds-publication-hero-actions a {
		width: 100%;
		min-height: 2.75rem;
		padding-right: 0.65rem;
		padding-left: 0.65rem;
		font-size: 0.8125rem;
		white-space: nowrap;
	}

	.gwds-publication-summary {
		border-radius: 12px;
	}

	.gwds-publication-summary > div {
		padding: 1.15rem;
	}

	.gwds-publication-summary strong {
		font-size: 1.85rem;
	}

	.gwds-publication-summary span {
		font-size: 0.75rem;
	}

	.gwds-publication-areas {
		padding-bottom: 3rem;
	}

	.gwds-publication-areas h2,
	.gwds-publication-explorer-heading h2 {
		font-size: 1.6rem;
		line-height: 1.15;
	}

	.gwds-publication-area-list {
		flex-wrap: nowrap;
		margin: 1.25rem -1rem 0;
		padding: 0 1rem 0.45rem;
		gap: 0.65rem;
		overflow-x: auto;
		overscroll-behavior-inline: contain;
		scroll-padding-inline: 1rem;
		scroll-snap-type: inline proximity;
		scrollbar-width: none;
	}

	.gwds-publication-area-list::-webkit-scrollbar,
	.gwds-publication-filter-row::-webkit-scrollbar {
		display: none;
	}

	.gwds-publication-area-list > div {
		flex: 0 0 auto;
		scroll-snap-align: start;
	}

	.gwds-publication-area-list span {
		padding: 0.65rem 0.9rem;
		font-size: 0.8125rem;
	}

	.gwds-publication-explorer-section {
		padding-bottom: 4rem;
	}

	.gwds-publication-explorer-heading {
		align-items: center;
	}

	.gwds-publication-explorer-heading p {
		flex: 0 0 auto;
		font-size: 0.75rem;
	}

	.gwds-publication-filter-group {
		margin-top: 1.25rem;
	}

	.gwds-publication-filter-label {
		margin-bottom: 0.55rem;
	}

	.gwds-publication-filter-row {
		flex-wrap: nowrap;
		margin-right: -1rem;
		margin-left: -1rem;
		padding: 0 1rem 0.45rem;
		gap: 0.55rem;
		overflow-x: auto;
		overscroll-behavior-inline: contain;
		scroll-padding-inline: 1rem;
		scroll-snap-type: inline proximity;
		scrollbar-width: none;
	}

	.gwds-publication-filter-row button {
		min-height: 2.5rem;
		padding: 0.55rem 0.9rem;
		flex: 0 0 auto;
		font-size: 0.8125rem;
		scroll-snap-align: start;
		white-space: nowrap;
	}

	.gwds-publication-list {
		margin-top: 1.75rem;
	}

	.gwds-publication-item {
		grid-template-columns: 2.6rem minmax(0, 1fr) auto;
		padding-top: 1.2rem;
		padding-bottom: 1.2rem;
		align-items: start;
		gap: 0.7rem;
		scroll-margin-top: calc(4.75rem + var(--gwds-admin-offset));
	}

	.gwds-publication-year {
		padding-top: 0.15rem;
		font-family: var(--font-sans);
		font-size: 0.75rem;
		font-style: normal;
		font-weight: 700;
		letter-spacing: 0.04em;
		line-height: 1.3;
	}

	.gwds-publication-content {
		min-width: 0;
	}

	.gwds-publication-content h3 {
		font-size: 0.9375rem;
		line-height: 1.4;
	}

	.gwds-publication-meta {
		font-size: 0.75rem;
		line-height: 1.5;
	}

	.gwds-publication-impact {
		font-size: 0.8125rem;
		line-height: 1.55;
	}

	.gwds-publication-link {
		width: 2.25rem;
		height: 2.25rem;
	}

	.gwds-publication-more-wrap {
		margin-top: 1.35rem;
	}

	.gwds-publication-more-wrap button {
		min-height: 2.75rem;
		width: 100%;
		font-size: 0.8125rem;
	}

	#main-content .p-12 {
		padding: 1.5rem;
	}

	#main-content input:not([type="checkbox"]):not([type="radio"]),
	#main-content select,
	#main-content textarea {
		max-width: 100%;
		font-size: 1rem;
	}

	.prose-article {
		font-size: 1rem;
		line-height: 1.72;
	}

	.prose-article h2 {
		font-size: 1.6rem;
	}

	.prose-article h3 {
		font-size: 1.25rem;
	}

	.prose-article .article-block {
		margin-block: 1.5rem;
		padding: 1.1rem;
		border-radius: 10px;
	}

	.gwds-site-footer > div {
		padding-top: 3.25rem;
		padding-bottom: 2.25rem;
	}

	.gwds-footer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2.25rem 1.5rem;
	}

	.gwds-footer-brand {
		grid-column: 1 / -1;
	}

	.gwds-footer-brand > p {
		margin-top: 1rem;
		font-size: 0.875rem;
	}

	.gwds-footer-brand > div {
		margin-top: 1.25rem;
	}

	.gwds-footer-column h3 {
		font-size: 0.6875rem;
	}

	.gwds-footer-column ul {
		margin-top: 0.85rem;
	}

	.gwds-footer-column li + li {
		margin-top: 0.55rem;
	}

	.gwds-footer-column a {
		font-size: 0.8125rem;
		line-height: 1.4;
	}

	.gwds-site-footer .mt-14 {
		margin-top: 2.5rem;
	}

	.gwds-consultation-form input:not([type="checkbox"]),
	.gwds-consultation-form select,
	.gwds-consultation-form textarea {
		font-size: 1rem;
	}

	.gwds-floating-actions {
		right: max(1rem, env(safe-area-inset-right));
		bottom: max(1rem, env(safe-area-inset-bottom));
		gap: 0.55rem;
	}

	.gwds-floating-action {
		width: 3rem;
		height: 3rem;
	}

	.gwds-floating-action::after {
		display: none;
	}

	a:active,
	button:active {
		transform: scale(0.985);
	}
}

/* Desktop utilities and the branded account area. */
.gwds-standard-page {
	padding-top: calc(9rem + var(--gwds-admin-offset));
}

.gwds-desktop-nav-tools {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	margin-left: 0.15rem;
	padding-left: 1rem;
	border-left: 1px solid rgba(16, 42, 67, 0.14);
}

.gwds-desktop-nav-tool {
	position: relative;
	display: inline-flex;
	width: 2.5rem;
	height: 2.5rem;
	align-items: center;
	justify-content: center;
	border: 1px solid transparent;
	border-radius: 50%;
	color: #334e68;
	transition: border-color 180ms ease, background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.gwds-desktop-nav-tool:hover,
.gwds-desktop-nav-tool:focus-visible,
.gwds-desktop-nav-tool.is-active {
	border-color: #c8d6df;
	background: rgba(255, 255, 255, 0.78);
	color: #087f5b;
}

.gwds-desktop-nav-tool:active {
	transform: translateY(1px) scale(0.97);
}

.gwds-desktop-nav-tool .gwds-mobile-cart-count {
	position: absolute;
	top: -0.15rem;
	right: -0.2rem;
	display: flex;
	min-width: 1.05rem;
	height: 1.05rem;
	align-items: center;
	justify-content: center;
	padding: 0 0.22rem;
	border: 2px solid #f9f7f2;
	border-radius: 999px;
	background: #087f5b;
	color: #fff;
	font-size: 0.6rem;
	font-variant-numeric: tabular-nums;
	font-weight: 750;
	line-height: 1;
}

.gwds-desktop-nav-tool .gwds-mobile-cart-count.is-empty {
	display: none;
}

.gwds-account-page {
	min-height: 44rem;
	background: #faf9f6;
}

.gwds-account-layout {
	display: grid;
	grid-template-columns: minmax(0, 0.82fr) minmax(32rem, 1.18fr);
	gap: clamp(4rem, 8vw, 8rem);
	align-items: start;
	padding-top: calc(10rem + var(--gwds-admin-offset));
	padding-bottom: 8rem;
}

.gwds-account-intro {
	padding-top: 1.25rem;
}

.gwds-account-eyebrow {
	margin: 0 0 1rem;
	color: #087f5b;
	font-size: 0.72rem;
	font-weight: 750;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.gwds-account-intro h1 {
	max-width: 10ch;
	margin: 0;
	color: #102a43;
	font-family: var(--font-display);
	font-size: clamp(3rem, 4.2vw, 4.5rem);
	font-weight: 600;
	letter-spacing: 0;
	line-height: 0.98;
	text-wrap: balance;
}

.gwds-account-lead {
	max-width: 33rem;
	margin: 1.5rem 0 0;
	color: #486581;
	font-size: 1.05rem;
	line-height: 1.75;
	text-wrap: pretty;
}

.gwds-account-benefits {
	display: grid;
	gap: 0.85rem;
	margin: 2.25rem 0 0;
	padding: 0;
	color: #334e68;
	font-size: 0.9rem;
	line-height: 1.5;
	list-style: none;
}

.gwds-account-benefits li {
	display: grid;
	grid-template-columns: 1rem minmax(0, 1fr);
	gap: 0.7rem;
	align-items: start;
}

.gwds-account-benefits li > span {
	position: relative;
	width: 0.9rem;
	height: 0.9rem;
	margin-top: 0.2rem;
	border-radius: 50%;
	background: #dff3eb;
}

.gwds-account-benefits li > span::after {
	position: absolute;
	top: 0.19rem;
	left: 0.31rem;
	width: 0.24rem;
	height: 0.42rem;
	border-right: 1.5px solid #087f5b;
	border-bottom: 1.5px solid #087f5b;
	content: "";
	transform: rotate(45deg);
}

.gwds-account-panel {
	padding: clamp(2rem, 3.5vw, 3rem);
	border: 1px solid #d9e2ec;
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.9);
	box-shadow: 0 24px 60px rgba(16, 42, 67, 0.07);
}

.gwds-account-panel .woocommerce h2 {
	margin: 0 0 1.75rem;
	color: #102a43;
	font-family: var(--font-display);
	font-size: 2rem;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.1;
}

.gwds-account-panel .woocommerce-form-login {
	margin: 0;
	padding: 0 !important;
	border: 0 !important;
}

.gwds-account-panel .form-row {
	margin: 0 0 1.15rem;
	padding: 0;
}

.gwds-account-panel .form-row label {
	display: block;
	margin-bottom: 0.45rem;
	color: #334e68;
	font-size: 0.82rem;
	font-weight: 700;
}

.gwds-account-panel input[type="text"],
.gwds-account-panel input[type="email"],
.gwds-account-panel input[type="password"] {
	width: 100%;
	min-height: 3.25rem;
	padding: 0.75rem 0.9rem;
	border: 1px solid #bcccdc;
	border-radius: 7px;
	background: #fff;
	box-shadow: none;
	color: #102a43;
	font-family: var(--font-sans);
	font-size: 0.95rem;
}

.gwds-account-panel input:focus {
	border-color: #087f5b;
	box-shadow: 0 0 0 3px rgba(8, 127, 91, 0.12);
	outline: 0;
}

.gwds-account-panel .woocommerce-button {
	display: inline-flex;
	min-height: 3rem;
	align-items: center;
	justify-content: center;
	padding: 0.75rem 1.4rem !important;
	border: 1px solid #087f5b !important;
	border-radius: 999px !important;
	background: #087f5b !important;
	color: #fff !important;
	font-size: 0.875rem !important;
	font-weight: 750 !important;
	transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.gwds-account-panel .woocommerce-button:hover,
.gwds-account-panel .woocommerce-button:focus-visible {
	border-color: #066c4d !important;
	background: #066c4d !important;
}

.gwds-account-panel .woocommerce-form-login__rememberme {
	display: inline-flex;
	align-items: center;
	margin: 0 0 0 0.8rem;
	color: #526d82;
	font-size: 0.85rem;
}

.gwds-account-panel .woocommerce-LostPassword {
	margin: 0.9rem 0 0;
	font-size: 0.85rem;
}

.gwds-account-panel a {
	color: #087f5b;
	text-decoration-color: rgba(8, 127, 91, 0.38);
	text-underline-offset: 3px;
}

.gwds-account-panel .woocommerce-MyAccount-navigation ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.gwds-account-panel .woocommerce-MyAccount-navigation a {
	display: block;
	padding: 0.8rem 0;
	border-bottom: 1px solid #e2e8ee;
	color: #334e68;
	font-weight: 650;
	text-decoration: none;
}

.gwds-account-panel .woocommerce-MyAccount-navigation .is-active a {
	color: #087f5b;
}

@media (min-width: 48rem) {
	.gwds-account-panel .woocommerce:has(.woocommerce-MyAccount-navigation) {
		display: grid;
		grid-template-columns: 12rem minmax(0, 1fr);
		gap: 2.5rem;
	}

	.gwds-account-panel .woocommerce-MyAccount-navigation,
	.gwds-account-panel .woocommerce-MyAccount-content {
		float: none;
		width: auto;
	}

	.woocommerce-cart .wc-block-cart__sidebar,
	.woocommerce-checkout .wc-block-checkout__sidebar {
		position: sticky;
		top: calc(6rem + var(--gwds-admin-offset));
	}
}

@media (max-width: 73.75rem) {
	.gwds-desktop-nav-tools {
		display: none;
	}

	.gwds-nav-inner > nav {
		gap: 1.2rem;
	}
}

@media (max-width: 47.999rem) {
	.gwds-standard-page {
		padding-top: calc(6.5rem + var(--gwds-admin-offset));
	}

	.gwds-account-page {
		min-height: 0;
	}

	.gwds-account-layout {
		display: block;
		padding-top: calc(6.75rem + var(--gwds-admin-offset));
		padding-bottom: 5rem;
	}

	.gwds-account-intro {
		padding-top: 0;
	}

	.gwds-account-intro h1 {
		max-width: 11ch;
		font-size: 2.65rem;
		line-height: 1.02;
	}

	.gwds-account-lead {
		margin-top: 1rem;
		font-size: 0.95rem;
		line-height: 1.65;
	}

	.gwds-account-benefits {
		margin-top: 1.5rem;
	}

	.gwds-account-panel {
		margin-top: 2.25rem;
		padding: 1.35rem;
	}

	.gwds-account-panel .woocommerce h2 {
		font-size: 1.65rem;
	}
}

/* Member workspace: compact orientation, task-based navigation, and readable endpoints. */
.gwds-account-page {
	min-height: 42rem;
	background: #f7f7f3;
}

.gwds-account-layout {
	display: block;
	padding-top: calc(8rem + var(--gwds-admin-offset));
	padding-bottom: 6rem;
}

.gwds-account-page.is-authenticated .gwds-account-intro {
	display: grid;
	grid-template-columns: minmax(18rem, 0.8fr) minmax(24rem, 1.2fr);
	gap: 0.75rem clamp(3rem, 8vw, 8rem);
	align-items: end;
	padding: 0;
}

.gwds-account-page.is-authenticated .gwds-account-eyebrow {
	grid-column: 1 / -1;
	margin-bottom: 0.2rem;
}

.gwds-account-page.is-authenticated .gwds-account-intro h1 {
	max-width: 13ch;
	font-size: clamp(2.7rem, 4vw, 3.8rem);
	line-height: 1.02;
}

.gwds-account-page.is-authenticated .gwds-account-lead {
	max-width: 39rem;
	margin: 0 0 0.2rem;
	font-size: 1rem;
	line-height: 1.7;
}

.gwds-account-page.is-authenticated .gwds-account-panel {
	position: relative;
	margin-top: 2.75rem;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}

.gwds-account-page.is-authenticated .gwds-account-panel.is-account-loading {
	cursor: progress;
}

.gwds-account-page.is-authenticated .gwds-account-panel.is-account-loading::before {
	position: absolute;
	z-index: 5;
	top: 0;
	right: 0;
	left: 15rem;
	height: 3px;
	background: #087f5b;
	content: "";
	transform: scaleX(0.2);
	transform-origin: left center;
	animation: gwds-account-loading 850ms ease-in-out infinite;
}

.gwds-account-panel .woocommerce-MyAccount-content {
	transition: opacity 160ms ease, transform 160ms ease;
}

.gwds-account-panel.is-account-loading .woocommerce-MyAccount-content {
	opacity: 0.5;
	pointer-events: none;
	transform: translateY(2px);
}

.gwds-account-panel .woocommerce-MyAccount-content [tabindex="-1"]:focus {
	outline: 0;
}

@keyframes gwds-account-loading {
	0%,
	100% {
		opacity: 0.45;
		transform: scaleX(0.14);
	}

	50% {
		opacity: 1;
		transform: scaleX(1);
	}
}

@supports (view-transition-name: none) {
	.gwds-account-panel .woocommerce-MyAccount-content {
		view-transition-name: gwds-account-content;
	}

	::view-transition-old(root),
	::view-transition-new(root) {
		animation: none;
	}

	::view-transition-old(gwds-account-content) {
		animation: gwds-account-content-out 120ms ease both;
	}

	::view-transition-new(gwds-account-content) {
		animation: gwds-account-content-in 210ms ease both;
	}
}

@keyframes gwds-account-content-out {
	to {
		opacity: 0;
		transform: translateY(-4px);
	}
}

@keyframes gwds-account-content-in {
	from {
		opacity: 0;
		transform: translateY(6px);
	}
}

.gwds-account-page.is-guest .gwds-account-layout {
	display: grid;
	grid-template-columns: minmax(0, 0.86fr) minmax(28rem, 1.14fr);
	gap: clamp(3rem, 7vw, 7rem);
	align-items: start;
}

.gwds-account-page.is-guest .gwds-account-intro {
	padding-top: 1rem;
}

.gwds-account-page.is-guest .gwds-account-intro h1 {
	font-size: clamp(3rem, 4.2vw, 4.2rem);
}

.gwds-account-page.is-guest .gwds-account-panel {
	padding: clamp(2rem, 3.5vw, 3rem);
	border: 1px solid #d9e2ec;
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 20px 50px rgba(16, 42, 67, 0.06);
}

.gwds-account-page.is-authenticated .gwds-account-panel > .woocommerce {
	display: grid;
	grid-template-columns: 15rem minmax(0, 1fr);
	min-height: 34rem;
	overflow: hidden;
	border: 1px solid #d8e2e8;
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 18px 45px rgba(16, 42, 67, 0.055);
}

.gwds-account-page.is-authenticated .gwds-account-panel > .woocommerce::before,
.gwds-account-page.is-authenticated .gwds-account-panel > .woocommerce::after {
	display: none;
}

.gwds-account-page.is-authenticated .gwds-account-panel > .woocommerce > .woocommerce-notices-wrapper:not(:has(*)) {
	display: none;
}

.gwds-account-page.is-authenticated .gwds-account-panel > .woocommerce > .woocommerce-notices-wrapper:has(*) {
	grid-column: 1 / -1;
	padding: 1rem 1rem 0;
}

.gwds-account-page.is-authenticated .gwds-account-panel > .woocommerce > .woocommerce-MyAccount-navigation {
	grid-column: 1;
}

.gwds-account-page.is-authenticated .gwds-account-panel > .woocommerce > .woocommerce-MyAccount-content {
	grid-column: 2;
}

.gwds-account-panel .woocommerce-MyAccount-navigation,
.gwds-account-panel .woocommerce-MyAccount-content {
	float: none;
	width: auto;
}

.gwds-account-panel .woocommerce-MyAccount-navigation {
	padding: 1.5rem 1rem;
	border-right: 1px solid #dce6e2;
	background: #f1f6f3;
}

.gwds-account-nav-label {
	margin: 0 0 0.85rem;
	padding: 0 0.75rem;
	color: #6b8294;
	font-size: 0.67rem;
	font-weight: 750;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.gwds-account-panel .woocommerce-MyAccount-navigation ul {
	display: grid;
	gap: 0.25rem;
}

.gwds-account-panel .woocommerce-MyAccount-navigation li {
	margin: 0;
}

.gwds-account-panel .woocommerce-MyAccount-navigation li:last-child {
	margin-top: 0.7rem;
	padding-top: 0.7rem;
	border-top: 1px solid #d5e1dc;
}

.gwds-account-panel .woocommerce-MyAccount-navigation a {
	position: relative;
	display: flex;
	min-height: 2.85rem;
	gap: 0.7rem;
	align-items: center;
	padding: 0.65rem 0.75rem;
	border: 0;
	border-radius: 6px;
	color: #3f5c70;
	font-size: 0.86rem;
	font-weight: 650;
	text-decoration: none;
	transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.gwds-account-panel .woocommerce-MyAccount-navigation a:hover,
.gwds-account-panel .woocommerce-MyAccount-navigation a:focus-visible {
	background: rgba(255, 255, 255, 0.78);
	color: #087f5b;
}

.gwds-account-panel .woocommerce-MyAccount-navigation a:focus-visible {
	outline: 2px solid rgba(8, 127, 91, 0.3);
	outline-offset: 1px;
}

.gwds-account-panel .woocommerce-MyAccount-navigation .is-active a {
	background: #fff;
	box-shadow: 0 1px 4px rgba(16, 42, 67, 0.06);
	color: #087f5b;
}

.gwds-account-panel .woocommerce-MyAccount-navigation .is-active a::before {
	position: absolute;
	top: 0.65rem;
	bottom: 0.65rem;
	left: -1rem;
	width: 3px;
	border-radius: 0 3px 3px 0;
	background: #087f5b;
	content: "";
}

.gwds-account-nav-icon {
	display: inline-flex;
	width: 1.25rem;
	height: 1.25rem;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	color: #78909f;
}

.gwds-account-nav-icon svg {
	display: block;
	width: 1.15rem;
	height: 1.15rem;
}

.gwds-account-panel .woocommerce-MyAccount-navigation .is-active .gwds-account-nav-icon,
.gwds-account-panel .woocommerce-MyAccount-navigation a:hover .gwds-account-nav-icon {
	color: #087f5b;
}

.gwds-account-panel .woocommerce-MyAccount-content {
	min-width: 0;
	padding: clamp(1.75rem, 3.2vw, 2.75rem);
	color: #334e68;
	font-size: 0.94rem;
	line-height: 1.65;
}

.gwds-account-content-header {
	margin: 0 0 2rem;
	padding-bottom: 1.5rem;
	border-bottom: 1px solid #e2e9ed;
}

.gwds-account-content-kicker {
	margin: 0 0 0.35rem;
	color: #087f5b;
	font-size: 0.68rem;
	font-weight: 780;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.gwds-account-panel .woocommerce .gwds-account-content-header h2,
.gwds-account-panel .woocommerce .gwds-member-dashboard__welcome h2 {
	margin: 0;
	font-size: clamp(1.65rem, 2.8vw, 2.15rem);
	line-height: 1.15;
}

.gwds-account-content-header > p:last-child,
.gwds-member-dashboard__welcome p:last-child {
	max-width: 44rem;
	margin: 0.65rem 0 0;
	color: #5c7488;
	line-height: 1.6;
}

.gwds-member-dashboard__welcome {
	display: grid;
	grid-template-columns: 3.25rem minmax(0, 1fr);
	gap: 1rem;
	align-items: center;
}

.gwds-member-avatar {
	display: inline-flex;
	width: 3.25rem;
	height: 3.25rem;
	align-items: center;
	justify-content: center;
	border: 1px solid #cde4db;
	border-radius: 50%;
	background: #e9f5f0;
	color: #087f5b;
	font-family: var(--font-display);
	font-size: 1.4rem;
	font-weight: 650;
}

.gwds-member-summary {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: 2rem;
	border-top: 1px solid #dce6ea;
	border-bottom: 1px solid #dce6ea;
}

.gwds-member-summary > a {
	display: grid;
	min-width: 0;
	padding: 1.35rem 1.5rem;
	color: #102a43;
	text-decoration: none;
}

.gwds-member-summary > a + a {
	border-left: 1px solid #dce6ea;
}

.gwds-member-summary > a:hover,
.gwds-member-summary > a:focus-visible {
	background: #f7faf8;
}

.gwds-member-summary > a:focus-visible {
	outline: 2px solid rgba(8, 127, 91, 0.3);
	outline-offset: -2px;
}

.gwds-member-summary span {
	color: #526d82;
	font-size: 0.72rem;
	font-weight: 700;
}

.gwds-member-summary strong {
	margin-top: 0.45rem;
	font-family: var(--font-display);
	font-size: 2rem;
	font-variant-numeric: tabular-nums;
	font-weight: 650;
	line-height: 1;
}

.gwds-member-summary strong.gwds-member-summary__status {
	font-family: var(--font-sans);
	font-size: 1.25rem;
}

.gwds-member-summary small {
	margin-top: 0.35rem;
	color: #8295a5;
	font-size: 0.72rem;
}

.gwds-member-actions {
	margin-top: 2.25rem;
}

.gwds-member-actions__heading {
	display: flex;
	gap: 1rem;
	align-items: end;
	justify-content: space-between;
	margin-bottom: 0.8rem;
}

.gwds-member-actions__heading h3 {
	margin: 0;
	color: #102a43;
	font-size: 1.08rem;
	font-weight: 720;
}

.gwds-member-actions__heading > a {
	font-size: 0.8rem;
	font-weight: 700;
}

.gwds-member-action-list {
	border-top: 1px solid #e2e9ed;
}

.gwds-member-action-list > a {
	display: grid;
	grid-template-columns: 2.5rem minmax(0, 1fr) auto;
	gap: 0.9rem;
	align-items: center;
	padding: 1rem 0;
	border-bottom: 1px solid #e2e9ed;
	color: #102a43;
	text-decoration: none;
	transition: color 160ms ease, padding 160ms ease;
}

.gwds-member-action-list > a:hover,
.gwds-member-action-list > a:focus-visible {
	padding-right: 0.35rem;
	color: #087f5b;
}

.gwds-member-action-list__icon {
	display: inline-flex;
	width: 2.5rem;
	height: 2.5rem;
	align-items: center;
	justify-content: center;
	border-radius: 6px;
	background: #eaf5f0;
	color: #087f5b;
}

.gwds-member-action-list strong,
.gwds-member-action-list small {
	display: block;
}

.gwds-member-action-list strong {
	font-size: 0.88rem;
	font-weight: 720;
}

.gwds-member-action-list small {
	margin-top: 0.15rem;
	color: #667f92;
	font-size: 0.76rem;
	line-height: 1.45;
}

.gwds-member-collection__toolbar {
	display: flex;
	gap: 1rem;
	align-items: center;
	justify-content: space-between;
	margin: -0.35rem 0 1.1rem;
}

.gwds-member-collection__toolbar p {
	display: flex;
	gap: 0.45rem;
	align-items: baseline;
	margin: 0;
	color: #667f92;
	font-size: 0.76rem;
}

.gwds-member-collection__toolbar strong {
	color: #102a43;
	font-family: var(--font-display);
	font-size: 1.35rem;
	font-variant-numeric: tabular-nums;
	font-weight: 650;
}

.gwds-member-collection__toolbar > a {
	font-size: 0.8rem;
	font-weight: 720;
}

.gwds-member-empty {
	display: grid;
	justify-items: start;
	max-width: 39rem;
	padding: clamp(2rem, 5vw, 3.5rem) 0;
}

.gwds-member-empty__icon {
	display: inline-flex;
	width: 3.25rem;
	height: 3.25rem;
	align-items: center;
	justify-content: center;
	border: 1px solid #cfe2da;
	border-radius: 50%;
	background: #eef7f3;
	color: #087f5b;
}

.gwds-member-empty h3 {
	margin: 1.2rem 0 0;
	color: #102a43;
	font-family: var(--font-display);
	font-size: 1.65rem;
	font-weight: 650;
	line-height: 1.2;
}

.gwds-member-empty p {
	margin: 0.7rem 0 0;
	color: #5f778a;
	line-height: 1.65;
}

.gwds-member-primary-link {
	display: inline-flex;
	min-height: 2.75rem;
	align-items: center;
	justify-content: center;
	margin-top: 1.35rem;
	padding: 0.65rem 1.15rem;
	border: 1px solid #087f5b;
	border-radius: 999px;
	background: #087f5b;
	color: #fff !important;
	font-size: 0.8rem;
	font-weight: 750;
	text-decoration: none !important;
}

.gwds-member-primary-link:hover,
.gwds-member-primary-link:focus-visible {
	border-color: #066c4d;
	background: #066c4d;
}

.gwds-member-record-list {
	border-top: 1px solid #dfe7eb;
}

.gwds-member-record {
	display: grid;
	grid-template-columns: 6.25rem minmax(0, 1fr);
	gap: 1.25rem;
	padding: 1.35rem 0;
	border-bottom: 1px solid #dfe7eb;
}

.gwds-member-program-record {
	grid-template-columns: 3.25rem minmax(0, 1fr);
}

.gwds-member-record__media {
	display: flex;
	width: 6.25rem;
	height: 5rem;
	overflow: hidden;
	align-items: center;
	justify-content: center;
	border-radius: 6px;
	background: #f0f4f2;
	color: #087f5b;
}

.gwds-member-record__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gwds-member-record__media--icon {
	width: 3.25rem;
	height: 3.25rem;
	border: 1px solid #d4e5de;
	background: #edf7f2;
}

.gwds-member-record__body {
	min-width: 0;
}

.gwds-member-record__heading {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	justify-content: space-between;
}

.gwds-member-record__heading h3 {
	margin: 0;
	color: #102a43;
	font-size: 1rem;
	font-weight: 740;
	line-height: 1.35;
}

.gwds-member-status {
	display: inline-flex;
	min-height: 1.65rem;
	flex: 0 0 auto;
	align-items: center;
	padding: 0.25rem 0.55rem;
	border: 1px solid #d4e0e6;
	border-radius: 999px;
	background: #f4f7f8;
	color: #526d82;
	font-size: 0.66rem;
	font-weight: 760;
}

.gwds-member-status.is-received {
	border-color: #ead9ae;
	background: #fff8e8;
	color: #8a5a00;
}

.gwds-member-status.is-contacted {
	border-color: #cbdfea;
	background: #f0f7fb;
	color: #245b78;
}

.gwds-member-status.is-qualified {
	border-color: #c8e3d8;
	background: #edf8f3;
	color: #087f5b;
}

.gwds-member-status.is-closed {
	border-color: #dce3e7;
	background: #f5f6f6;
	color: #6b7f8d;
}

.gwds-member-record__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3rem 1rem;
	margin: 0.45rem 0 0;
	color: #78909f;
	font-size: 0.7rem;
}

.gwds-member-record__meta span + span {
	position: relative;
}

.gwds-member-record__meta span + span::before {
	position: absolute;
	top: 50%;
	left: -0.58rem;
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: #9fb3c0;
	content: "";
	transform: translateY(-50%);
}

.gwds-member-record__description {
	max-width: 45rem;
	margin: 0.65rem 0 0;
	color: #526d82;
	font-size: 0.8rem;
	line-height: 1.55;
}

.gwds-member-record__action {
	display: inline-flex;
	gap: 0.45rem;
	align-items: center;
	margin-top: 0.8rem;
	font-size: 0.76rem;
	font-weight: 750;
	text-decoration: none !important;
}

.gwds-member-record__action span {
	transition: transform 160ms ease;
}

.gwds-member-record__action:hover span,
.gwds-member-record__action:focus-visible span {
	transform: translateX(0.2rem);
}

.gwds-course-modules {
	margin: 1.25rem 0 1rem;
	border-top: 1px solid rgba(16, 43, 69, 0.14);
	padding-top: 1rem;
}

.gwds-course-modules h4 {
	margin: 0 0 0.7rem;
	font-size: 0.78rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--gwds-green, #117c5b);
}

.gwds-course-module {
	border: 1px solid rgba(16, 43, 69, 0.13);
	background: #fff;
}

.gwds-course-module + .gwds-course-module {
	border-top: 0;
}

.gwds-course-module summary {
	display: grid;
	grid-template-columns: 2.2rem minmax(0, 1fr) auto;
	gap: 0.75rem;
	align-items: center;
	cursor: pointer;
	padding: 0.85rem 1rem;
	list-style: none;
}

.gwds-course-module summary::-webkit-details-marker {
	display: none;
}

.gwds-course-module summary > span {
	font-weight: 800;
	color: var(--gwds-green, #117c5b);
}

.gwds-course-module summary small {
	color: #607383;
}

.gwds-course-module__content {
	padding: 0 1rem 1rem 3.95rem;
	color: #526679;
}

.gwds-course-module__content p {
	margin: 0 0 0.7rem;
}

.gwds-course-module__content a {
	display: inline-block;
	margin: 0.2rem 1rem 0 0;
	font-weight: 700;
	color: var(--gwds-green, #117c5b);
}

/* Account endpoint tables, notices, addresses, and forms. */
.gwds-account-panel .woocommerce table.shop_table {
	width: 100%;
	margin: 0;
	border: 1px solid #dce5ea;
	border-collapse: separate;
	border-spacing: 0;
	border-radius: 6px;
	font-size: 0.84rem;
	overflow: hidden;
}

.gwds-account-panel .woocommerce table.shop_table th,
.gwds-account-panel .woocommerce table.shop_table td {
	padding: 0.85rem 0.9rem;
	border: 0;
	border-bottom: 1px solid #e4eaee;
	text-align: left;
}

.gwds-account-panel .woocommerce table.shop_table thead th {
	background: #f4f7f6;
	color: #486581;
	font-size: 0.69rem;
	font-weight: 780;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.gwds-account-panel .woocommerce table.shop_table tbody tr:last-child > * {
	border-bottom: 0;
}

.gwds-account-panel .woocommerce table.shop_table tbody tr:hover {
	background: #fbfcfb;
}

.gwds-account-panel .woocommerce .woocommerce-orders-table__cell-order-status {
	font-weight: 700;
}

.gwds-account-panel .woocommerce-message,
.gwds-account-panel .woocommerce-info,
.gwds-account-panel .woocommerce-error {
	margin: 0 0 1.5rem;
	padding: 1rem 1rem 1rem 1.15rem;
	border: 1px solid #d8e5df;
	border-top: 1px solid #d8e5df;
	border-left: 3px solid #087f5b;
	border-radius: 6px;
	background: #f4faf7;
	color: #334e68;
	font-size: 0.84rem;
	line-height: 1.5;
}

.gwds-account-panel .woocommerce-error {
	border-color: #efd9d7;
	border-left-color: #b42318;
	background: #fff7f6;
}

.gwds-account-panel .woocommerce-message::before,
.gwds-account-panel .woocommerce-info::before,
.gwds-account-panel .woocommerce-error::before {
	display: none;
}

.gwds-account-panel .woocommerce-Addresses {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.gwds-account-panel .woocommerce-Address {
	float: none;
	width: auto;
	min-height: 12rem;
	padding: 1.25rem;
	border: 1px solid #dce5ea;
	border-radius: 6px;
	background: #fbfcfb;
}

.gwds-account-panel .woocommerce-Address-title {
	display: flex;
	gap: 1rem;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1rem;
}

.gwds-account-panel .woocommerce .woocommerce-Address-title h2 {
	margin: 0;
	font-family: var(--font-sans);
	font-size: 1rem;
	font-weight: 720;
}

.gwds-account-panel .woocommerce-Address-title .edit {
	font-size: 0.76rem;
	font-weight: 700;
}

.gwds-account-panel .woocommerce-Address address {
	color: #526d82;
	font-style: normal;
	line-height: 1.7;
}

.gwds-account-panel .form-row {
	margin: 0 0 1.1rem;
}

.gwds-account-panel .form-row label {
	margin-bottom: 0.4rem;
	color: #334e68;
	font-size: 0.78rem;
	font-weight: 700;
}

.gwds-account-panel input[type="text"],
.gwds-account-panel input[type="email"],
.gwds-account-panel input[type="password"],
.gwds-account-panel input[type="tel"],
.gwds-account-panel select,
.gwds-account-panel textarea {
	width: 100%;
	min-height: 3rem;
	padding: 0.7rem 0.85rem;
	border: 1px solid #bcccdc;
	border-radius: 6px;
	background: #fff;
	box-shadow: none;
	color: #102a43;
	font-family: var(--font-sans);
	font-size: 0.9rem;
}

.gwds-account-panel .edit-account fieldset {
	margin: 2rem 0 1.5rem;
	padding: 1.4rem;
	border: 1px solid #dce5ea;
	border-radius: 6px;
	background: #fbfcfb;
}

.gwds-account-panel .edit-account legend {
	padding: 0 0.5rem;
	color: #102a43;
	font-size: 0.88rem;
	font-weight: 750;
}

.gwds-account-panel #account_display_name_description {
	display: block;
	margin-top: 0.35rem;
	color: #78909f;
	font-size: 0.72rem;
	line-height: 1.45;
}

.gwds-account-panel .woocommerce-pagination {
	display: flex;
	gap: 0.65rem;
	justify-content: flex-end;
	margin-top: 1.25rem;
}

@media (max-width: 62rem) {
	.gwds-account-page.is-authenticated .gwds-account-intro {
		grid-template-columns: minmax(16rem, 0.85fr) minmax(20rem, 1.15fr);
		gap: 0.75rem 3rem;
	}

	.gwds-account-page.is-authenticated .gwds-account-panel > .woocommerce {
		grid-template-columns: 13rem minmax(0, 1fr);
	}

	.gwds-account-page.is-authenticated .gwds-account-panel.is-account-loading::before {
		left: 13rem;
	}

	.gwds-account-panel .woocommerce-MyAccount-navigation {
		padding-inline: 0.75rem;
	}

	.gwds-account-panel .woocommerce-MyAccount-navigation .is-active a::before {
		left: -0.75rem;
	}
}

@media (max-width: 47.999rem) {
	.gwds-account-layout,
	.gwds-account-page.is-guest .gwds-account-layout {
		display: block;
		padding-top: calc(6.4rem + var(--gwds-admin-offset));
		padding-bottom: 4rem;
	}

	.gwds-account-page.is-authenticated .gwds-account-intro {
		display: block;
	}

	.gwds-account-page.is-authenticated .gwds-account-eyebrow {
		margin-bottom: 0.7rem;
	}

	.gwds-account-page.is-authenticated .gwds-account-intro h1,
	.gwds-account-page.is-guest .gwds-account-intro h1 {
		max-width: 13ch;
		font-size: 2.35rem;
		line-height: 1.04;
	}

	.gwds-account-page.is-authenticated .gwds-account-lead,
	.gwds-account-lead {
		margin-top: 0.85rem;
		font-size: 0.9rem;
		line-height: 1.6;
	}

	.gwds-account-page.is-authenticated .gwds-account-panel,
	.gwds-account-page.is-guest .gwds-account-panel {
		margin-top: 1.75rem;
		padding: 0;
		border: 0;
		background: transparent;
		box-shadow: none;
	}

	.gwds-account-page.is-authenticated .gwds-account-panel > .woocommerce {
		display: block;
		min-height: 0;
		overflow: visible;
		border-radius: 7px;
	}

	.gwds-account-page.is-authenticated .gwds-account-panel.is-account-loading::before {
		left: 0;
	}

	.gwds-account-page.is-authenticated .gwds-account-panel > .woocommerce > .woocommerce-notices-wrapper:has(*) {
		padding: 0.75rem 0.75rem 0;
	}

	.gwds-account-panel .woocommerce-MyAccount-navigation {
		overflow: hidden;
		padding: 0.65rem;
		border-right: 0;
		border-bottom: 1px solid #dce6e2;
		border-radius: 7px 7px 0 0;
	}

	.gwds-account-nav-label {
		display: none;
	}

	.gwds-account-panel .woocommerce-MyAccount-navigation ul {
		display: flex;
		gap: 0.35rem;
		overflow-x: auto;
		padding-bottom: 0.15rem;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}

	.gwds-account-panel .woocommerce-MyAccount-navigation ul::-webkit-scrollbar {
		display: none;
	}

	.gwds-account-panel .woocommerce-MyAccount-navigation li,
	.gwds-account-panel .woocommerce-MyAccount-navigation li:last-child {
		flex: 0 0 auto;
		margin: 0;
		padding: 0;
		border: 0;
	}

	.gwds-account-panel .woocommerce-MyAccount-navigation a {
		min-height: 2.55rem;
		padding: 0.55rem 0.75rem;
		white-space: nowrap;
	}

	.gwds-account-panel .woocommerce-MyAccount-navigation .is-active a::before {
		display: none;
	}

	.gwds-account-panel .woocommerce-MyAccount-content {
		padding: 1.25rem;
		font-size: 0.88rem;
	}

	.gwds-account-content-header {
		margin-bottom: 1.4rem;
		padding-bottom: 1.1rem;
	}

	.gwds-account-panel .woocommerce .gwds-account-content-header h2,
	.gwds-account-panel .woocommerce .gwds-member-dashboard__welcome h2 {
		font-size: 1.5rem;
	}

	.gwds-member-dashboard__welcome {
		grid-template-columns: 2.75rem minmax(0, 1fr);
		gap: 0.8rem;
	}

	.gwds-member-avatar {
		width: 2.75rem;
		height: 2.75rem;
		font-size: 1.15rem;
	}

	.gwds-member-summary {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		overflow: visible;
		margin-top: 1.5rem;
	}

	.gwds-member-summary > a {
		padding: 1rem 0.7rem;
	}

	.gwds-member-summary > a:nth-child(odd) {
		border-left: 0;
	}

	.gwds-member-summary > a:nth-child(n + 3) {
		border-top: 1px solid #dce6ea;
	}

	.gwds-member-summary strong {
		font-size: 1.65rem;
	}

	.gwds-member-summary strong.gwds-member-summary__status {
		font-size: 1.05rem;
	}

	.gwds-member-actions {
		margin-top: 1.75rem;
	}

	.gwds-member-actions__heading {
		align-items: start;
	}

	.gwds-member-actions__heading > a {
		white-space: nowrap;
	}

	.gwds-member-action-list > a {
		grid-template-columns: 2.25rem minmax(0, 1fr) auto;
		gap: 0.7rem;
		padding: 0.9rem 0;
	}

	.gwds-member-action-list__icon {
		width: 2.25rem;
		height: 2.25rem;
	}

	.gwds-member-collection__toolbar {
		align-items: baseline;
	}

	.gwds-member-empty {
		padding: 1.75rem 0 2rem;
	}

	.gwds-member-empty h3 {
		font-size: 1.45rem;
	}

	.gwds-member-record,
	.gwds-member-program-record {
		grid-template-columns: 3rem minmax(0, 1fr);
		gap: 0.85rem;
		padding: 1.1rem 0;
	}

	.gwds-member-course-record {
		grid-template-columns: 4.25rem minmax(0, 1fr);
	}

	.gwds-member-record__media,
	.gwds-member-record__media--icon {
		width: 3rem;
		height: 3rem;
	}

	.gwds-member-course-record .gwds-member-record__media {
		width: 4.25rem;
		height: 4.25rem;
	}

	.gwds-member-record__heading {
		display: grid;
		gap: 0.45rem;
		justify-items: start;
	}

	.gwds-member-record__heading h3 {
		font-size: 0.92rem;
	}

	.gwds-member-record__meta {
		gap: 0.25rem 0.85rem;
	}

	.gwds-account-panel .woocommerce-Addresses {
		grid-template-columns: 1fr;
	}

	.gwds-account-panel .woocommerce-Address {
		min-height: 0;
	}

	.gwds-account-panel .woocommerce .form-row-first,
	.gwds-account-panel .woocommerce .form-row-last {
		float: none !important;
		width: 100% !important;
	}

	.gwds-account-panel .woocommerce table.shop_table_responsive,
	.gwds-account-panel .woocommerce table.shop_table_responsive tbody,
	.gwds-account-panel .woocommerce table.shop_table_responsive tr,
	.gwds-account-panel .woocommerce table.shop_table_responsive td,
	.gwds-account-panel .woocommerce table.shop_table_responsive th {
		display: block;
		width: 100%;
	}

	.gwds-account-panel .woocommerce table.shop_table_responsive thead {
		display: none;
	}

	.gwds-account-panel .woocommerce table.shop_table_responsive tr {
		padding: 0.55rem 0;
		border-bottom: 1px solid #dce5ea;
	}

	.gwds-account-panel .woocommerce table.shop_table_responsive tr:last-child {
		border-bottom: 0;
	}

	.gwds-account-panel .woocommerce table.shop_table_responsive td,
	.gwds-account-panel .woocommerce table.shop_table_responsive th {
		display: flex;
		gap: 1rem;
		align-items: baseline;
		justify-content: space-between;
		padding: 0.5rem 0.85rem;
		border: 0;
		text-align: right !important;
	}

	.gwds-account-panel .woocommerce table.shop_table_responsive td::before,
	.gwds-account-panel .woocommerce table.shop_table_responsive th::before {
		flex: 0 0 auto;
		color: #78909f;
		content: attr(data-title);
		font-size: 0.68rem;
		font-weight: 750;
		letter-spacing: 0.04em;
		text-transform: uppercase;
	}

	.gwds-account-panel .woocommerce table.shop_table_responsive .woocommerce-orders-table__cell-order-actions {
		justify-content: flex-end;
	}

	.gwds-account-panel .edit-account fieldset {
		padding: 1rem;
	}
}

/* Commerce flow: a calm, branded shell around WooCommerce Cart and Checkout blocks. */
.woocommerce-cart #main-content,
.woocommerce-checkout #main-content {
	background: #faf9f6;
}

.woocommerce-cart #main-content > article,
.woocommerce-checkout #main-content > article {
	width: 100%;
	max-width: 80rem;
	margin: 0 auto;
	padding: calc(8.5rem + var(--gwds-admin-offset)) 2rem 6rem;
}

.woocommerce-cart #main-content > article > h1,
.woocommerce-checkout #main-content > article > h1 {
	margin: 0;
	color: #102a43;
	font-family: var(--font-display);
	font-size: clamp(2.5rem, 5vw, 4rem);
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.05;
}

.woocommerce-cart #main-content .prose-article,
.woocommerce-checkout #main-content .prose-article {
	max-width: none;
	margin-top: 2.5rem;
	color: #102a43;
	font-size: 1rem;
	line-height: 1.6;
}

.woocommerce-cart .wp-block-woocommerce-cart,
.woocommerce-checkout .wp-block-woocommerce-checkout {
	max-width: none;
	margin: 0;
}

.woocommerce-cart .wc-block-components-sidebar-layout,
.woocommerce-checkout .wc-block-components-sidebar-layout {
	flex-wrap: nowrap;
	gap: 2.25rem;
}

.woocommerce-cart .wc-block-cart__main,
.woocommerce-checkout .wc-block-checkout__main {
	width: calc(65% - 1.125rem);
	padding-right: 0 !important;
}

.woocommerce-cart .wc-block-cart__sidebar,
.woocommerce-checkout .wc-block-checkout__sidebar {
	width: calc(35% - 1.125rem);
	margin-left: 0 !important;
}

.woocommerce-cart .wc-block-cart-items {
	border-collapse: collapse;
	border-spacing: 0;
}

.woocommerce-cart .wc-block-cart-items__header {
	color: #627d98;
	font-size: 0.6875rem;
	font-weight: 750;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.woocommerce-cart .wc-block-cart-items__row {
	border-bottom: 1px solid #d9e2ec;
}

.woocommerce-cart .wc-block-cart-item__image img {
	aspect-ratio: 1;
	border: 1px solid #e2e8ee;
	border-radius: 8px;
	object-fit: cover;
}

.woocommerce-cart .wc-block-components-product-name {
	color: #102a43;
	font-family: var(--font-sans);
	font-size: 1rem;
	font-weight: 750;
	line-height: 1.35;
	text-decoration: none;
}

.woocommerce-cart .wc-block-components-product-name:hover {
	color: #087f5b;
}

.woocommerce-cart .wc-block-components-product-metadata,
.woocommerce-cart .wc-block-components-product-metadata__description {
	color: #627d98;
	font-size: 0.75rem;
	line-height: 1.55;
}

.woocommerce-cart .wc-block-components-product-price,
.woocommerce-cart .wc-block-cart-item__total {
	color: #102a43;
	font-variant-numeric: tabular-nums;
	font-weight: 750;
}

.woocommerce-cart .wc-block-components-quantity-selector {
	height: 2.5rem;
	border: 1px solid #bcccdc;
	border-radius: 8px;
	background: #fff;
}

.woocommerce-cart .wc-block-components-quantity-selector input,
.woocommerce-cart .wc-block-components-quantity-selector button {
	min-height: 2.375rem;
	color: #102a43;
	font-size: 0.8125rem;
	font-weight: 700;
}

.woocommerce-cart .wc-block-cart-item__remove-link {
	color: #9b2c2c;
	font-size: 0.75rem;
	font-weight: 650;
	text-decoration: none;
	text-underline-offset: 3px;
}

.woocommerce-cart .wc-block-cart__sidebar,
.woocommerce-checkout .wc-block-checkout__sidebar {
	align-self: start;
	padding: 1.5rem !important;
	border: 1px solid #d9e2ec;
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 10px 30px rgba(16, 42, 67, 0.05);
}

.woocommerce-cart .wc-block-cart__totals-title,
.woocommerce-checkout .wc-block-components-checkout-order-summary__title {
	color: #102a43;
	font-family: var(--font-display);
	font-size: 1.35rem;
	font-weight: 600;
	letter-spacing: 0;
}

.woocommerce-cart .wc-block-components-totals-wrapper {
	padding: 1rem 0;
	border-color: #e2e8ee;
}

.woocommerce-cart .wc-block-components-totals-footer-item {
	padding-top: 1rem;
	border-top: 1px solid #d9e2ec;
	color: #102a43;
	font-size: 1rem;
	font-weight: 750;
}

.woocommerce-cart .wc-block-cart__submit-button,
.woocommerce-checkout .wc-block-components-checkout-place-order-button {
	display: inline-flex;
	min-height: 3.25rem;
	align-items: center;
	justify-content: center;
	border: 1px solid #087f5b !important;
	border-radius: 999px !important;
	background: #087f5b !important;
	box-shadow: none !important;
	color: #fff !important;
	font-size: 0.875rem !important;
	font-weight: 750 !important;
	line-height: 1.2;
	text-decoration: none !important;
	transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.woocommerce-cart .wc-block-cart__submit-button:hover,
.woocommerce-cart .wc-block-cart__submit-button:focus-visible,
.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover,
.woocommerce-checkout .wc-block-components-checkout-place-order-button:focus-visible {
	border-color: #066c4d !important;
	background: #066c4d !important;
}

.woocommerce-checkout .wc-block-checkout__main {
	color: #334e68;
}

.woocommerce-checkout .wc-block-components-checkout-step {
	margin: 0;
	padding: 1.75rem 0;
	border-bottom: 1px solid #d9e2ec;
}

.woocommerce-checkout .wc-block-components-checkout-step:first-child {
	padding-top: 0;
}

.woocommerce-checkout .wc-block-components-checkout-step__heading-container {
	margin-bottom: 1rem;
}

.woocommerce-checkout .wc-block-components-checkout-step__title {
	color: #102a43;
	font-family: var(--font-display);
	font-size: 1.4rem;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.2;
}

.woocommerce-checkout .wc-block-components-checkout-step__description,
.woocommerce-checkout .wc-block-components-checkout-step__container > p,
.woocommerce-checkout #wc-guest-checkout-notice {
	color: #627d98;
	font-size: 0.75rem;
	line-height: 1.55;
}

.woocommerce-checkout .wc-block-components-text-input,
.woocommerce-checkout .wc-block-components-combobox,
.woocommerce-checkout .wc-block-components-country-input,
.woocommerce-checkout .wc-block-components-state-input {
	margin-top: 0.75rem;
}

.woocommerce-checkout .wc-block-components-text-input input,
.woocommerce-checkout .wc-block-components-combobox .components-combobox-control__input,
.woocommerce-checkout .wc-block-components-address-form select {
	min-height: 3.25rem !important;
	border: 1px solid #bcccdc !important;
	border-radius: 8px !important;
	background: #fff !important;
	box-shadow: none !important;
	color: #102a43 !important;
	font-family: var(--font-sans);
	font-size: 0.9375rem !important;
}

.woocommerce-checkout .wc-block-components-text-input input:focus,
.woocommerce-checkout .wc-block-components-combobox .components-combobox-control__input:focus,
.woocommerce-checkout .wc-block-components-address-form select:focus {
	border-color: #087f5b !important;
	box-shadow: 0 0 0 3px rgba(8, 127, 91, 0.12) !important;
}

.woocommerce-checkout .wc-block-components-text-input label,
.woocommerce-checkout .wc-block-components-combobox label {
	color: #526d82;
	font-size: 0.75rem;
}

.woocommerce-checkout .wc-block-components-checkbox__label,
.woocommerce-checkout .wc-block-components-radio-control__label {
	color: #334e68;
	font-size: 0.8125rem;
	line-height: 1.5;
}

.woocommerce-checkout .wc-block-components-order-summary-item {
	padding: 1rem 0;
}

.woocommerce-checkout .wc-block-components-order-summary-item__image img {
	border-radius: 6px;
}

.woocommerce-checkout .wc-block-checkout__actions_row {
	margin-top: 1.5rem;
}

@media (max-width: 47.999rem) {
	.woocommerce-cart #main-content > article,
	.woocommerce-checkout #main-content > article {
		max-width: none;
		padding: calc(6.75rem + var(--gwds-admin-offset)) 1rem calc(8rem + env(safe-area-inset-bottom));
	}

	.woocommerce-cart .gwds-site-footer,
	.woocommerce-checkout .gwds-site-footer,
	.woocommerce-cart .gwds-floating-actions,
	.woocommerce-checkout .gwds-floating-actions {
		display: none !important;
	}

	.woocommerce-cart #main-content > article > h1,
	.woocommerce-checkout #main-content > article > h1 {
		font-size: 2.25rem;
		line-height: 1.05;
	}

	.woocommerce-cart #main-content .prose-article,
	.woocommerce-checkout #main-content .prose-article {
		margin-top: 1.5rem;
	}

	.gwds-product-notices {
		margin-bottom: 1rem;
	}

	.gwds-product-notices .woocommerce-message,
	.gwds-product-notices .woocommerce-error {
		padding: 0.8rem;
		font-size: 0.75rem;
		line-height: 1.45;
		gap: 0.65rem;
	}

	.gwds-product-notices .woocommerce-message .button.wc-forward,
	.gwds-product-notices .woocommerce-error .button.wc-forward {
		min-height: 2.25rem;
		padding: 0.5rem 0.7rem;
		font-size: 0.6875rem;
	}

	.woocommerce-cart .wc-block-components-sidebar-layout,
	.woocommerce-checkout .wc-block-components-sidebar-layout {
		flex-direction: column;
		gap: 1.25rem;
	}

	.woocommerce-cart .wc-block-cart__main,
	.woocommerce-checkout .wc-block-checkout__main {
		width: 100%;
	}

	.woocommerce-cart .wc-block-cart-items__header {
		display: none;
	}

	.woocommerce-cart .wc-block-cart-items__row {
		grid-template-columns: 4.75rem minmax(0, 1fr) !important;
		padding: 1rem 0 !important;
		border-top: 1px solid #d9e2ec;
		border-bottom: 0;
		gap: 0;
	}

	.woocommerce-cart .wc-block-cart-item__image {
		grid-column: 1 !important;
		grid-row: 1 !important;
		width: 4.75rem !important;
		padding: 0 0.75rem 0 0 !important;
	}

	.woocommerce-cart .wc-block-cart-item__image img {
		display: block;
		width: 4rem !important;
		height: 4rem !important;
	}

	.woocommerce-cart .wc-block-cart-item__product {
		grid-column: 2 !important;
		grid-row: 1 !important;
		min-width: 0;
		padding: 0 !important;
	}

	.woocommerce-cart .wc-block-cart-item__total {
		display: none !important;
	}

	.woocommerce-cart .wc-block-components-product-name {
		display: block;
		margin: 0 0 0.25rem;
		font-size: 0.875rem;
		line-height: 1.35;
	}

	.woocommerce-cart .wc-block-components-product-metadata__description {
		display: -webkit-box;
		overflow: hidden;
		margin: 0.25rem 0 0.6rem;
		font-size: 0.6875rem;
		line-height: 1.45;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
	}

	.woocommerce-cart .wc-block-components-product-price {
		font-size: 0.8125rem;
	}

	.woocommerce-cart .wc-block-components-quantity-selector {
		width: 6.75rem;
		height: 2.25rem;
		margin-top: 0.65rem;
	}

	.woocommerce-cart .wc-block-components-quantity-selector input,
	.woocommerce-cart .wc-block-components-quantity-selector button {
		min-height: 2.125rem;
	}

	.woocommerce-cart .wc-block-cart-item__remove-link {
		min-height: 2.25rem;
		margin-top: 0.5rem;
		font-size: 0.6875rem;
	}

	.woocommerce-cart .wc-block-cart__sidebar,
	.woocommerce-checkout .wc-block-checkout__sidebar {
		width: 100%;
		padding: 1rem !important;
		border-radius: 8px;
		box-shadow: none;
	}

	.woocommerce-cart .wc-block-cart__totals-title,
	.woocommerce-checkout .wc-block-components-checkout-order-summary__title {
		font-size: 1.15rem;
	}

	.woocommerce-cart .wc-block-components-totals-wrapper {
		padding: 0.85rem 0;
	}

	.woocommerce-cart .wc-block-components-totals-footer-item {
		font-size: 0.9375rem;
	}

	.woocommerce-cart .wc-block-cart__submit-button,
	.woocommerce-checkout .wc-block-components-checkout-place-order-button {
		width: 100%;
		min-height: 3.125rem;
		font-size: 0.8125rem !important;
	}

	.woocommerce-cart .wc-block-cart__submit-container,
	.woocommerce-checkout .wc-block-checkout__actions_row {
		position: fixed !important;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 45;
		width: auto !important;
		margin: 0 !important;
		padding: 0.75rem 1rem max(0.75rem, env(safe-area-inset-bottom));
		border-top: 1px solid rgba(188, 204, 220, 0.8);
		background: rgba(250, 249, 246, 0.96);
		box-shadow: 0 -10px 30px rgba(16, 42, 67, 0.1);
		backdrop-filter: blur(14px);
	}

	.woocommerce-cart .wc-block-cart__submit-button,
	.woocommerce-checkout .wc-block-components-checkout-place-order-button {
		max-width: 32rem;
		margin-right: auto !important;
		margin-left: auto !important;
	}

	.woocommerce-checkout .wc-block-checkout__actions_row {
		display: flex;
		width: 100%;
		margin-top: 0 !important;
	}

	.woocommerce-checkout .wc-block-components-checkout-place-order-button:disabled {
		border-color: #829b92 !important;
		background: #829b92 !important;
		color: #fff !important;
		cursor: not-allowed;
		opacity: 1;
	}

	.woocommerce-checkout .wc-block-checkout__sidebar {
		margin: 0 0 0.5rem !important;
	}

	.woocommerce-checkout .wc-block-checkout__main {
		width: 100%;
		padding: 0 !important;
	}

	.woocommerce-checkout .wc-block-components-checkout-step {
		padding: 1.25rem 0 !important;
	}

	.woocommerce-checkout .wc-block-components-checkout-step:first-child {
		padding-top: 0 !important;
	}

	.woocommerce-checkout .wc-block-components-checkout-step__heading-container {
		margin-bottom: 0.75rem;
	}

	.woocommerce-checkout .wc-block-components-checkout-step__title {
		font-size: 1.2rem;
	}

	.woocommerce-checkout .wc-block-components-text-input,
	.woocommerce-checkout .wc-block-components-combobox,
	.woocommerce-checkout .wc-block-components-country-input,
	.woocommerce-checkout .wc-block-components-state-input {
		margin-top: 0.65rem;
	}

	.woocommerce-checkout .wc-block-components-text-input input,
	.woocommerce-checkout .wc-block-components-combobox .components-combobox-control__input,
	.woocommerce-checkout .wc-block-components-address-form select {
		min-height: 3.125rem !important;
		font-size: 0.875rem !important;
	}

	.woocommerce-checkout .wc-block-components-order-summary-item {
		padding: 0.85rem 0;
	}

}

@media (max-width: 22.5rem) {
	.woocommerce-cart #main-content > article,
	.woocommerce-checkout #main-content > article {
		padding-right: 0.75rem;
		padding-left: 0.75rem;
	}

	.gwds-product-notices .woocommerce-message,
	.gwds-product-notices .woocommerce-error {
		grid-template-columns: 1fr;
	}

	.gwds-product-notices .woocommerce-message .button.wc-forward,
	.gwds-product-notices .woocommerce-error .button.wc-forward {
		width: 100%;
	}
}


@keyframes gwds-mobile-menu-in {
	from {
		opacity: 0;
		transform: translateY(-10px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes gwds-mobile-item-in {
	from {
		opacity: 0;
		transform: translateY(-6px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

:where(a, button, input, select, textarea):focus-visible {
	outline: 3px solid #b7791f;
	outline-offset: 3px;
}

input[type="checkbox"]:focus-visible {
	outline-offset: 2px;
}

.gwds-skip-link {
	position: fixed;
	top: 12px;
	left: 12px;
	z-index: 100000;
	transform: translateY(-160%);
	border-radius: 4px;
	background: #102a43;
	color: #ffffff;
	padding: 11px 16px;
	font-weight: 700;
	text-decoration: none;
	transition: transform 160ms ease;
}

.gwds-skip-link:focus {
	transform: translateY(0);
	color: #ffffff;
}

#main-content:focus {
	outline: none;
}

/* Blog index and single article */
.gwds-blog-eyebrow,
.gwds-blog-card-label,
.gwds-article-author-label {
	margin-bottom: 0.75rem;
	color: var(--color-brand-700);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.2;
	text-transform: uppercase;
}

.gwds-blog-count {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	margin-top: 1.5rem;
	color: var(--color-ink-500);
	font-size: 0.875rem;
	font-weight: 600;
}

.gwds-blog-count::before {
	width: 0.45rem;
	height: 0.45rem;
	border-radius: 50%;
	background: var(--color-brand-600);
	content: "";
}

.gwds-blog-category {
	min-height: 2.75rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.gwds-blog-featured {
	transition: border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

.gwds-blog-featured:hover {
	border-color: var(--color-ink-200);
	box-shadow: 0 18px 48px rgba(16, 42, 67, 0.08);
	transform: translateY(-2px);
}

.gwds-blog-card-label {
	margin-bottom: 0.6rem;
}

.gwds-blog-card-meta,
.gwds-article-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem 0.7rem;
	color: var(--color-ink-500);
	font-size: 0.8125rem;
	line-height: 1.4;
}

.gwds-blog-card-meta > span + span::before,
.gwds-article-meta > span + span::before {
	display: inline-block;
	width: 3px;
	height: 3px;
	margin-right: 0.7rem;
	border-radius: 50%;
	background: var(--color-gold-500);
	vertical-align: middle;
	content: "";
}

.gwds-blog-list-card {
	display: grid;
	grid-template-columns: 7rem minmax(0, 1fr) 2.25rem;
	gap: 1rem;
	align-items: center;
	min-height: 10rem;
}

.gwds-blog-list-media {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: 8px;
	background: var(--color-mist);
}

.gwds-blog-list-media img {
	transition: transform 500ms cubic-bezier(0.16, 1, 0.3, 1);
}

.gwds-blog-list-card:hover .gwds-blog-list-media img {
	transform: scale(1.04);
}

.gwds-blog-list-arrow {
	display: grid;
	width: 2.25rem;
	height: 2.25rem;
	place-items: center;
	border: 1px solid var(--color-ink-200);
	border-radius: 50%;
	color: var(--color-brand-700);
	transition: background 180ms ease, color 180ms ease, transform 180ms ease;
}

.gwds-blog-list-card:hover .gwds-blog-list-arrow {
	background: var(--color-brand-600);
	color: #ffffff;
	transform: translateX(2px);
}

.gwds-reading-progress {
	position: fixed;
	top: calc(4.5rem + var(--gwds-admin-offset));
	right: 0;
	left: 0;
	z-index: 39;
	height: 3px;
	background: rgba(16, 42, 67, 0.08);
	pointer-events: none;
}

.gwds-reading-progress span {
	display: block;
	width: 100%;
	height: 100%;
	transform: scaleX(0);
	transform-origin: left center;
	background: var(--color-brand-600);
	will-change: transform;
}

.gwds-article-meta {
	margin-top: 1.25rem;
}

.gwds-article-category {
	color: var(--color-brand-700);
	font-weight: 700;
}

.gwds-article-share {
	display: flex;
	gap: 1.5rem;
	align-items: center;
	justify-content: space-between;
	margin-top: 2.75rem;
	padding: 1.4rem 0;
	border-top: 1px solid var(--color-ink-100);
	border-bottom: 1px solid var(--color-ink-100);
}

.gwds-article-share-copy p {
	margin-bottom: 0.3rem;
	color: var(--color-brand-700);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.2;
	text-transform: uppercase;
}

.gwds-article-share-copy h2 {
	color: var(--color-ink-950);
	font-family: var(--font-display);
	font-size: 1.35rem;
	font-weight: 600;
	line-height: 1.2;
}

.gwds-article-share-actions {
	display: flex;
	flex: 0 0 auto;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	justify-content: flex-end;
}

.gwds-share-button {
	display: inline-flex;
	width: 2.75rem;
	height: 2.75rem;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--color-ink-200);
	border-radius: 50%;
	background: var(--color-surface);
	color: var(--color-ink-700);
	transition: border-color 180ms ease, background 180ms ease, color 180ms ease, transform 180ms ease;
}

.gwds-share-button:hover {
	border-color: var(--color-brand-600);
	background: var(--color-brand-600);
	color: #ffffff;
	transform: translateY(-2px);
}

.gwds-share-button:focus-visible {
	outline: 3px solid rgba(15, 135, 101, 0.24);
	outline-offset: 2px;
}

.gwds-share-button--copy {
	width: auto;
	padding: 0 1rem;
	border-radius: 999px;
	gap: 0.45rem;
	font-family: inherit;
	font-size: 0.8rem;
	font-weight: 700;
	cursor: pointer;
}

.gwds-share-button--copy.is-copied {
	border-color: var(--color-brand-600);
	background: var(--color-brand-50);
	color: var(--color-brand-700);
}

.gwds-article-author {
	display: grid;
	grid-template-columns: 6rem minmax(0, 1fr);
	gap: 1.5rem;
	align-items: center;
	margin-top: 3.5rem;
	padding: 1.5rem;
	border: 1px solid var(--color-ink-100);
	border-radius: 12px;
	background: var(--color-surface);
}

.gwds-article-author img {
	width: 6rem;
	height: 6rem;
	border-radius: 50%;
	object-fit: cover;
}

.gwds-article-author-label {
	margin-bottom: 0.35rem;
}

.gwds-article-author h2 {
	color: var(--color-ink-950);
	font-family: var(--font-display);
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1.15;
}

.gwds-article-author p:not(.gwds-article-author-label) {
	margin-top: 0.45rem;
	color: var(--color-ink-600);
	font-size: 0.9rem;
	line-height: 1.55;
}

.gwds-article-author a {
	display: inline-flex;
	margin-top: 0.7rem;
	color: var(--color-brand-700);
	font-size: 0.875rem;
	font-weight: 700;
}

.gwds-article-next {
	margin-top: 1.25rem;
}

.gwds-article-next a {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.35rem 1.25rem;
	align-items: center;
	padding: 1.35rem 1.5rem;
	border: 1px solid var(--color-ink-100);
	border-radius: 12px;
	background: var(--color-mist);
}

.gwds-article-next span {
	color: var(--color-brand-700);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.gwds-article-next strong {
	grid-column: 1;
	color: var(--color-ink-950);
	font-family: var(--font-display);
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.25;
}

.gwds-article-next em {
	grid-row: 1 / 3;
	grid-column: 2;
	color: var(--color-brand-700);
	font-size: 1.5rem;
	font-style: normal;
	transition: transform 180ms ease;
}

.gwds-article-next a:hover em {
	transform: translateX(4px);
}

@media (max-width: 47.999rem) {
	.gwds-reading-progress {
		top: calc(4rem + var(--gwds-admin-offset));
	}

	.gwds-blog-hero > div:last-child {
		padding-top: calc(6.35rem + var(--gwds-admin-offset));
		padding-bottom: 2.25rem;
	}

	.gwds-blog-hero h1 {
		max-width: 21rem;
		font-size: 2.45rem;
		line-height: 1.04;
	}

	.gwds-blog-hero h1 + p {
		margin-top: 1rem;
		font-size: 1rem;
		line-height: 1.65;
	}

	.gwds-blog-count {
		margin-top: 1rem;
		font-size: 0.8125rem;
	}

	.gwds-blog-category-wrap {
		margin: 0 -1rem 1.5rem;
	}

	.gwds-blog-category-rail {
		flex-wrap: nowrap;
		gap: 0.6rem;
		overflow-x: auto;
		padding: 0.15rem 1rem 0.75rem;
		overscroll-behavior-inline: contain;
		scroll-padding-inline: 1rem;
		scroll-snap-type: inline proximity;
		scrollbar-width: none;
	}

	.gwds-blog-category-rail::-webkit-scrollbar {
		display: none;
	}

	.gwds-blog-category {
		flex: 0 0 auto;
		min-height: 2.6rem;
		padding: 0.65rem 1rem;
		font-size: 0.8125rem;
		scroll-snap-align: start;
	}

	.gwds-blog-featured {
		display: block;
		overflow: hidden;
		padding: 0;
		border-radius: 12px;
	}

	.gwds-blog-featured-media {
		aspect-ratio: 16 / 9;
		border-radius: 0;
	}

	.gwds-blog-featured-content {
		padding: 1.25rem;
	}

	.gwds-blog-featured-content h2 {
		margin-top: 0.65rem;
		font-size: 1.75rem;
		line-height: 1.12;
	}

	.gwds-blog-featured-content > p.mt-3 {
		display: -webkit-box;
		overflow: hidden;
		font-size: 0.9375rem;
		line-height: 1.6;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 3;
	}

	.gwds-blog-featured-content > span {
		margin-top: 1rem;
		font-size: 0.875rem;
	}

	.gwds-blog-list {
		margin-top: 1.5rem;
		grid-template-columns: minmax(0, 1fr);
		gap: 0;
	}

	.gwds-blog-list-card {
		grid-template-columns: 5.75rem minmax(0, 1fr);
		gap: 0.9rem;
		min-height: 0;
		padding: 1.1rem 0;
	}

	.gwds-blog-list-card h3 {
		font-size: 1.125rem;
		line-height: 1.2;
	}

	.gwds-blog-list-excerpt {
		display: -webkit-box;
		overflow: hidden;
		font-size: 0.8125rem;
		line-height: 1.5;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
	}

	.gwds-blog-list-arrow {
		display: none;
	}

	.gwds-blog-index > .mt-16 {
		margin-top: 2.5rem;
	}

	.gwds-article {
		padding-top: calc(6.45rem + var(--gwds-admin-offset));
		padding-bottom: 4.5rem;
	}

	.gwds-article-back {
		display: inline-flex;
		align-items: center;
		min-height: 2.25rem;
	}

	.gwds-article-header h1 {
		margin-top: 0.85rem;
		font-size: 2.15rem;
		line-height: 1.05;
	}

	.gwds-article-meta {
		gap: 0.45rem 0.6rem;
		margin-top: 1rem;
		font-size: 0.75rem;
	}

	.gwds-article-meta > span + span::before {
		margin-right: 0.6rem;
	}

	.gwds-article-meta > span:last-child {
		flex-basis: 100%;
	}

	.gwds-article-meta > span:last-child::before {
		display: none;
	}

	.gwds-article > [data-reveal]:nth-child(2) > div {
		margin-top: 1.75rem;
		aspect-ratio: 16 / 10;
		border-radius: 10px;
	}

	.gwds-article-content {
		margin-top: 2.25rem;
		font-size: 1.025rem;
		line-height: 1.78;
	}

	.gwds-article-content h2 {
		margin-top: 1.8em;
		font-size: 1.55rem;
		line-height: 1.18;
	}

	.gwds-article-content h3 {
		font-size: 1.2rem;
	}

	.gwds-article-content blockquote {
		padding: 0.9rem 0 0.9rem 1rem;
	}

	.gwds-article-tags {
		margin-top: 2.5rem;
		padding-top: 1.25rem;
	}

	.gwds-article-share {
		align-items: flex-start;
		flex-direction: column;
		gap: 1rem;
		margin-top: 2rem;
		padding: 1.25rem 0;
	}

	.gwds-article-share-copy h2 {
		font-size: 1.25rem;
	}

	.gwds-article-share-actions {
		justify-content: flex-start;
		width: 100%;
	}

	.gwds-article-author {
		grid-template-columns: 4.25rem minmax(0, 1fr);
		gap: 1rem;
		margin-top: 2rem;
		padding: 1.15rem;
	}

	.gwds-article-author img {
		width: 4.25rem;
		height: 4.25rem;
	}

	.gwds-article-author h2 {
		font-size: 1.25rem;
	}

	.gwds-article-author p:not(.gwds-article-author-label) {
		font-size: 0.8125rem;
	}

	.gwds-article-next a {
		padding: 1.1rem;
	}

	.gwds-article-next strong {
		font-size: 1.1rem;
	}

	.gwds-article-cta {
		margin-top: 2rem;
		padding: 1.5rem;
		border-radius: 12px;
	}

	.gwds-article-cta h2 {
		font-size: 1.5rem;
		line-height: 1.2;
	}
}

@media (max-width: 22.5rem) {
	.gwds-blog-hero h1,
	.gwds-article-header h1 {
		font-size: 2rem;
	}

	.gwds-blog-list-card {
		grid-template-columns: 5rem minmax(0, 1fr);
		gap: 0.75rem;
	}

	.gwds-article-content {
		font-size: 1rem;
	}
}

/* About page */
.gwds-section-kicker {
	margin: 0 0 0.8rem;
	color: var(--color-brand-700);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	line-height: 1.2;
	text-transform: uppercase;
}

.gwds-about-hero {
	overflow: hidden;
	border-bottom: 1px solid var(--color-ink-100);
	background: var(--color-paper);
}

.gwds-about-hero-inner,
.gwds-about-story-layout,
.gwds-about-section-inner,
.gwds-about-closing-inner {
	width: min(100% - 4rem, 76rem);
	margin-inline: auto;
}

.gwds-about-hero-inner {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(25rem, 0.72fr);
	gap: 4rem;
	align-items: center;
	min-height: 40rem;
	padding-top: calc(5.5rem + var(--gwds-admin-offset));
}

.gwds-about-hero-copy {
	position: relative;
	z-index: 2;
	padding-block: 3rem 3.5rem;
}

.gwds-about-hero-copy h1 {
	max-width: 13ch;
	margin: 0;
	color: var(--color-ink-950);
	font-family: var(--font-display);
	font-size: 3.75rem;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.02;
	text-wrap: balance;
}

.gwds-about-title-accent {
	display: block;
	color: var(--color-brand-600);
	font-style: italic;
	font-weight: 400;
}

.gwds-about-hero-lead {
	max-width: 41rem;
	margin-top: 1.5rem;
	color: var(--color-ink-700);
	font-size: 1.08rem;
	line-height: 1.75;
	text-wrap: pretty;
}

.gwds-about-proof {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	max-width: 40rem;
	margin-top: 2.25rem;
	border-top: 1px solid var(--color-ink-100);
	border-bottom: 1px solid var(--color-ink-100);
}

.gwds-about-proof > div {
	display: grid;
	align-content: center;
	min-height: 6.25rem;
	padding: 1rem 1.2rem;
	border-left: 1px solid var(--color-ink-100);
}

.gwds-about-proof > div:first-child {
	padding-left: 0;
	border-left: 0;
}

.gwds-about-proof strong {
	color: var(--color-ink-950);
	font-family: var(--font-display);
	font-size: 2rem;
	font-variant-numeric: tabular-nums;
	font-weight: 600;
	line-height: 1;
}

.gwds-about-proof span {
	margin-top: 0.45rem;
	color: var(--color-ink-600);
	font-size: 0.78rem;
	line-height: 1.35;
}

.gwds-about-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.8rem;
	margin-top: 2rem;
}

.gwds-about-hero-visual {
	align-self: end;
}

.gwds-about-portrait-stage {
	position: relative;
	height: 36.5rem;
}

.gwds-about-portrait-stage::before {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 20%;
	height: 1px;
	background: var(--color-gold-400);
	content: "";
}

.gwds-about-portrait-image {
	position: absolute;
	right: 0;
	bottom: -0.15rem;
	width: auto;
	height: 100%;
	max-width: none;
	object-fit: contain;
	object-position: bottom center;
	filter: drop-shadow(0 24px 30px rgba(16, 42, 67, 0.12));
	-webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 91%, transparent 100%);
	mask-image: linear-gradient(to bottom, #000 0%, #000 91%, transparent 100%);
}

.gwds-about-portrait-caption {
	position: absolute;
	bottom: 3.8rem;
	left: 0;
	z-index: 2;
	display: grid;
	gap: 0.28rem;
	max-width: 18rem;
	padding: 0.9rem 1rem 0.9rem 1.2rem;
	border-left: 3px solid var(--color-gold-500);
	background: rgba(247, 246, 241, 0.88);
	backdrop-filter: blur(8px);
}

.gwds-about-portrait-caption strong {
	color: var(--color-ink-950);
	font-family: var(--font-display);
	font-size: 1.08rem;
	font-weight: 600;
	line-height: 1.15;
}

.gwds-about-portrait-caption span {
	color: var(--color-ink-600);
	font-size: 0.78rem;
	line-height: 1.35;
}

.gwds-about-portrait-fallback {
	display: grid;
	height: 100%;
	place-items: center;
	color: var(--color-ink-200);
	font-family: var(--font-display);
	font-size: 7rem;
}

.gwds-about-story {
	padding-block: 7rem 8rem;
	background: var(--color-surface);
}

.gwds-about-story-layout {
	display: grid;
	grid-template-columns: minmax(17rem, 0.72fr) minmax(0, 1.28fr);
	gap: 7rem;
	align-items: start;
}

.gwds-about-story-intro {
	position: sticky;
	top: calc(7rem + var(--gwds-admin-offset));
}

.gwds-about-story-intro h2,
.gwds-about-section-heading h2,
.gwds-about-closing h2 {
	margin: 0;
	color: var(--color-ink-950);
	font-family: var(--font-display);
	font-size: 2.75rem;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.08;
	text-wrap: balance;
}

.gwds-about-story-intro > p:last-child,
.gwds-about-section-heading > p:last-child {
	max-width: 38rem;
	margin-top: 1.25rem;
	color: var(--color-ink-600);
	font-size: 1rem;
	line-height: 1.7;
	text-wrap: pretty;
}

.gwds-about-story-copy.prose-article {
	max-width: 43rem;
	color: var(--color-ink-800);
	font-size: 1.08rem;
	line-height: 1.9;
}

.gwds-about-story-copy.prose-article > p:first-of-type::first-letter {
	float: left;
	margin: 0.08em 0.12em 0 0;
	color: var(--color-brand-700);
	font-family: var(--font-display);
	font-size: 4.3rem;
	font-weight: 600;
	line-height: 0.8;
}

.gwds-about-timeline-section {
	padding-block: 7rem 7.5rem;
	border-block: 1px solid var(--color-ink-100);
	background: var(--color-mist);
}

.gwds-about-section-heading {
	max-width: 46rem;
}

.gwds-about-timeline {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 4.5rem;
	border-top: 1px solid var(--color-ink-200);
	border-left: 1px solid var(--color-ink-200);
}

.gwds-about-timeline-item {
	position: relative;
	min-height: 15rem;
	padding: 2rem 2rem 2.4rem;
	border-right: 1px solid var(--color-ink-200);
	border-bottom: 1px solid var(--color-ink-200);
	transition: background 220ms ease;
}

.gwds-about-timeline-item:hover {
	background: rgba(255, 255, 255, 0.64);
}

.gwds-about-timeline-marker {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 2rem;
}

.gwds-about-timeline-marker span {
	color: var(--color-brand-700);
	font-size: 0.72rem;
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.gwds-about-timeline-marker::after {
	width: 2.5rem;
	height: 2px;
	background: var(--color-gold-500);
	content: "";
	transform: scaleX(0.45);
	transform-origin: right;
	transition: transform 260ms ease;
}

.gwds-about-timeline-item:hover .gwds-about-timeline-marker::after {
	transform: scaleX(1);
}

.gwds-about-timeline-period {
	color: var(--color-brand-700);
	font-size: 0.82rem;
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	line-height: 1.3;
}

.gwds-about-timeline-item h3 {
	margin-top: 0.6rem;
	color: var(--color-ink-950);
	font-family: var(--font-display);
	font-size: 1.35rem;
	font-weight: 600;
	line-height: 1.2;
	text-wrap: balance;
}

.gwds-about-timeline-text {
	margin-top: 0.75rem;
	color: var(--color-ink-600);
	font-size: 0.9rem;
	line-height: 1.6;
}

.gwds-about-evidence {
	padding-block: 7rem 8rem;
	background: var(--color-paper);
}

.gwds-about-evidence-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: 7rem;
}

.gwds-about-section-heading--compact h2 {
	font-size: 2.35rem;
}

.gwds-about-metrics {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-top: 2.5rem;
	border-top: 1px solid var(--color-ink-200);
	border-left: 1px solid var(--color-ink-200);
}

.gwds-about-metric {
	display: grid;
	align-content: center;
	min-height: 10rem;
	padding: 1.5rem;
	border-right: 1px solid var(--color-ink-200);
	border-bottom: 1px solid var(--color-ink-200);
}

.gwds-about-metric strong {
	color: var(--color-ink-950);
	font-family: var(--font-display);
	font-size: 3.4rem;
	font-variant-numeric: tabular-nums;
	font-weight: 600;
	line-height: 1;
}

.gwds-about-metric span {
	max-width: 11rem;
	margin-top: 0.75rem;
	color: var(--color-ink-600);
	font-size: 0.88rem;
	line-height: 1.45;
}

.gwds-about-roles ul {
	margin: 2.5rem 0 0;
	padding: 0;
	border-top: 1px solid var(--color-ink-200);
	list-style: none;
}

.gwds-about-roles li {
	display: grid;
	grid-template-columns: 2rem minmax(0, 1fr);
	gap: 1.25rem;
	align-items: start;
	padding: 1.1rem 0;
	border-bottom: 1px solid var(--color-ink-100);
}

.gwds-about-roles li > span {
	padding-top: 0.12rem;
	color: var(--color-brand-700);
	font-size: 0.7rem;
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.gwds-about-roles li p {
	margin: 0;
	color: var(--color-ink-800);
	font-size: 0.96rem;
	line-height: 1.55;
}

.gwds-about-closing {
	background: var(--color-ink-950);
}

.gwds-about-closing-inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 4rem;
	align-items: center;
	padding-block: 4.5rem;
}

.gwds-about-closing .gwds-section-kicker {
	color: var(--color-gold-300);
}

.gwds-about-closing h2 {
	color: var(--color-paper);
	font-size: 2.4rem;
}

.gwds-about-closing h2 + p {
	max-width: 36rem;
	margin-top: 0.8rem;
	color: var(--color-ink-300);
	line-height: 1.65;
}

.gwds-about-closing-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: center;
	justify-content: flex-end;
}

.gwds-about-closing-actions > a:not(.rounded-full) {
	display: inline-flex;
	min-height: 2.75rem;
	align-items: center;
	padding-inline: 1rem;
	border: 1px solid var(--color-ink-700);
	border-radius: 999px;
	color: var(--color-paper);
	font-size: 0.88rem;
	font-weight: 600;
	transition: border-color 180ms ease, background 180ms ease;
}

.gwds-about-closing-actions > a:not(.rounded-full):hover {
	border-color: var(--color-ink-400);
	background: rgba(255, 255, 255, 0.06);
}

@media (min-width: 80rem) {
	.gwds-about-hero-copy h1 {
		font-size: 4.15rem;
	}

	.gwds-about-portrait-stage {
		height: 38rem;
	}
}

@media (max-width: 63.999rem) {
	.gwds-about-hero-inner {
		grid-template-columns: minmax(0, 1fr) minmax(20rem, 0.72fr);
		gap: 1.5rem;
	}

	.gwds-about-hero-copy h1 {
		font-size: 3.5rem;
	}

	.gwds-about-portrait-stage {
		height: 34rem;
	}

	.gwds-about-story-layout,
	.gwds-about-evidence-grid {
		gap: 4rem;
	}

	.gwds-about-timeline-item {
		padding: 1.5rem;
	}

	.gwds-about-closing-inner {
		grid-template-columns: minmax(0, 1fr);
		gap: 2rem;
	}

	.gwds-about-closing-actions {
		justify-content: flex-start;
	}
}

@media (max-width: 47.999rem) {
	.gwds-contact-grid,
	.gwds-about-story-grid {
		display: flex;
		flex-direction: column;
		gap: 2rem;
	}

	.gwds-contact-form-wrap,
	.gwds-about-portrait {
		order: -1;
	}

	.gwds-contact-aside {
		margin-top: 0.5rem;
	}

	.gwds-about-portrait {
		width: min(100%, 20rem);
		margin-right: auto;
		margin-left: auto;
	}

	.gwds-about-hero-inner,
	.gwds-about-story-layout,
	.gwds-about-section-inner,
	.gwds-about-closing-inner {
		width: min(100% - 2rem, 42rem);
	}

	.gwds-about-hero-inner {
		position: relative;
		display: block;
		min-height: 0;
		padding-top: calc(7rem + var(--gwds-admin-offset));
	}

	.gwds-about-hero-copy {
		padding-block: 1.75rem 0;
	}

	.gwds-about-hero-copy h1 {
		max-width: 7ch;
		font-size: 2.55rem;
		line-height: 1.04;
	}

	.gwds-about-hero-lead {
		margin-top: 5.25rem;
		font-size: 0.96rem;
		line-height: 1.7;
	}

	.gwds-about-proof {
		margin-top: 1.5rem;
	}

	.gwds-about-proof > div {
		min-height: 5.2rem;
		padding: 0.8rem;
	}

	.gwds-about-proof > div:first-child {
		padding-left: 0;
	}

	.gwds-about-proof strong {
		font-size: 1.65rem;
	}

	.gwds-about-proof span {
		font-size: 0.68rem;
	}

	.gwds-about-hero-actions {
		gap: 0.65rem;
		margin-top: 1.5rem;
	}

	.gwds-about-hero-actions a {
		min-height: 2.8rem;
		padding-inline: 1.15rem;
		font-size: 0.84rem;
	}

	.gwds-about-hero-visual {
		position: absolute;
		top: calc(7.4rem + var(--gwds-admin-offset));
		right: 0;
		width: 55%;
		margin: 0;
	}

	.gwds-about-portrait-stage {
		height: 15.5rem;
	}

	.gwds-about-portrait-stage::before {
		right: 0;
		left: 8%;
	}

	.gwds-about-portrait-image {
		right: 0;
		height: 100%;
		transform: none;
	}

	.gwds-about-portrait-caption {
		display: none;
	}

	.gwds-about-story {
		padding-block: 4rem 4.75rem;
	}

	.gwds-about-story-layout,
	.gwds-about-evidence-grid {
		display: block;
	}

	.gwds-about-story-intro {
		position: static;
	}

	.gwds-about-story-intro h2,
	.gwds-about-section-heading h2,
	.gwds-about-closing h2 {
		font-size: 2rem;
		line-height: 1.12;
	}

	.gwds-about-story-intro > p:last-child,
	.gwds-about-section-heading > p:last-child {
		margin-top: 0.9rem;
		font-size: 0.9rem;
		line-height: 1.65;
	}

	.gwds-about-story-copy.prose-article {
		margin-top: 2.25rem;
		font-size: 1rem;
		line-height: 1.8;
	}

	.gwds-about-story-copy.prose-article > p:first-of-type::first-letter {
		font-size: 3.6rem;
	}

	.gwds-about-timeline-section {
		padding-block: 4rem 4.5rem;
	}

	.gwds-about-timeline {
		display: block;
		margin-top: 2.5rem;
		border-top: 1px solid var(--color-ink-200);
		border-left: 0;
	}

	.gwds-about-timeline-item {
		min-height: 0;
		padding: 1.5rem 0 1.7rem 3.25rem;
		border-right: 0;
		border-bottom: 1px solid var(--color-ink-200);
	}

	.gwds-about-timeline-item::before {
		position: absolute;
		top: 1.5rem;
		bottom: 1.5rem;
		left: 1.1rem;
		width: 1px;
		background: var(--color-ink-200);
		content: "";
	}

	.gwds-about-timeline-marker {
		position: absolute;
		top: 1.35rem;
		left: 0;
		display: grid;
		width: 2.25rem;
		height: 2.25rem;
		margin: 0;
		place-items: center;
		border: 1px solid var(--color-ink-200);
		border-radius: 50%;
		background: var(--color-mist);
	}

	.gwds-about-timeline-marker::after {
		display: none;
	}

	.gwds-about-timeline-item h3 {
		font-size: 1.22rem;
	}

	.gwds-about-evidence {
		padding-block: 4rem 4.75rem;
	}

	.gwds-about-section-heading--compact h2 {
		font-size: 1.9rem;
	}

	.gwds-about-metrics {
		margin-top: 2rem;
	}

	.gwds-about-metric {
		min-height: 8rem;
		padding: 1.1rem;
	}

	.gwds-about-metric strong {
		font-size: 2.65rem;
	}

	.gwds-about-roles {
		margin-top: 4rem;
	}

	.gwds-about-roles ul {
		margin-top: 2rem;
	}

	.gwds-about-roles li {
		gap: 0.75rem;
		padding: 0.95rem 0;
	}

	.gwds-about-closing-inner {
		padding-block: 3.5rem;
	}

	.gwds-about-closing-actions {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		width: 100%;
	}

	.gwds-about-closing-actions > a {
		justify-content: center;
		padding-inline: 0.75rem;
		text-align: center;
	}
}

@media (max-width: 22.5rem) {
	.gwds-about-hero-copy h1 {
		font-size: 2.25rem;
	}

	.gwds-about-hero-lead {
		margin-top: 4.5rem;
	}

	.gwds-about-proof {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.gwds-about-proof > div:nth-child(3) {
		grid-column: 1 / -1;
		border-top: 1px solid var(--color-ink-100);
		border-left: 0;
	}

	.gwds-about-portrait-stage {
		height: 14rem;
	}

	.gwds-about-closing-actions {
		grid-template-columns: minmax(0, 1fr);
	}
}

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

	.gwds-product-media__image {
		transform: none !important;
	}

	.gwds-consultation-shell,
	.gwds-consultation-dialog::backdrop {
		animation: none !important;
	}
}

/* About hero: cinematic engineering line-art stage.
   A thin-line gear-and-flow illustration sits behind the copy; gears are
   scrubbed by scroll (--gwds-hero-spin) so they run forward on scroll down
   and backward on scroll up. Phones keep the static stacked layout. */
.gwds-about-hero--cinematic {
	--gwds-about-scroll-progress: 0;
	--gwds-hero-mx: 0;
	--gwds-hero-my: 0;
	--gwds-hero-spin: 0;
	position: relative;
	isolation: isolate;
	overflow: hidden;
	min-height: 0;
	border-bottom: 1px solid var(--color-ink-100);
	background: var(--color-paper);
}

.gwds-about-hero-art {
	display: none;
}

.gwds-about-hero--cinematic .gwds-about-hero-inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas:
		'copy'
		'portrait'
		'lower';
	width: 100%;
	min-height: 0;
	margin: 0;
	padding: calc(5.75rem + var(--gwds-admin-offset)) 0 0;
}

.gwds-about-hero--cinematic .gwds-about-hero-copy {
	grid-area: copy;
	width: min(100% - 2rem, 28rem);
	margin: 0 auto;
	padding: 0;
	text-align: center;
}

.gwds-about-hero--cinematic .gwds-section-kicker {
	display: inline-flex;
	gap: 0.85rem;
	align-items: center;
}

.gwds-about-hero--cinematic .gwds-section-kicker::before {
	width: 2.4rem;
	height: 1px;
	background: var(--color-gold-500);
	content: "";
}

.gwds-about-hero--cinematic .gwds-about-hero-copy h1 {
	max-width: 10ch;
	margin-inline: auto;
	font-size: clamp(2.8rem, 12.5vw, 3.8rem);
	line-height: 1;
}

.gwds-about-hero--cinematic .gwds-about-hero-lead {
	max-width: 22rem;
	margin: 1rem auto 0;
	font-size: 0.92rem;
}

/* Headline words rise out of an overflow mask with a stagger. */
.gwds-hero-word {
	display: inline-block;
	margin-bottom: -0.14em;
	padding-bottom: 0.14em;
	overflow: hidden;
	vertical-align: top;
}

.gwds-hero-word-inner {
	display: inline-block;
	will-change: transform;
}

html.js .gwds-about-hero--cinematic .gwds-hero-word-inner {
	transform: translateY(120%);
	transition: transform 0.95s cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: calc(0.25s + var(--gwds-word-i, 0) * 0.07s);
}

html.js .gwds-about-hero--cinematic .gwds-about-hero-copy.is-revealed .gwds-hero-word-inner {
	transform: translateY(0);
}

html.js .gwds-about-hero--cinematic .gwds-section-kicker::before {
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.15s;
}

html.js .gwds-about-hero--cinematic .gwds-about-hero-copy.is-revealed .gwds-section-kicker::before {
	transform: scaleX(1);
}

html.js .gwds-about-hero--cinematic .gwds-about-hero-lead {
	opacity: 0;
	transform: translateY(16px);
	transition:
		opacity 0.8s ease,
		transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: 0.7s;
}

html.js .gwds-about-hero--cinematic .gwds-about-hero-copy.is-revealed .gwds-about-hero-lead {
	opacity: 1;
	transform: translateY(0);
}

.gwds-about-hero--cinematic .gwds-about-hero-visual {
	position: relative;
	grid-area: portrait;
	width: min(100% - 2rem, 26rem);
	margin: 1.25rem auto 0;
}

.gwds-about-portrait-glow {
	display: none;
}

.gwds-about-hero--cinematic .gwds-about-portrait-stage {
	position: relative;
	z-index: 1;
	overflow: hidden;
	height: 31rem;
}

.gwds-about-hero--cinematic .gwds-about-portrait-stage::before {
	right: 8%;
	bottom: 0;
	left: 8%;
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--color-gold-500), transparent);
}

/* Zoomed and shifted so the frame reads as a half-body portrait: the 32%
   self-relative translate pushes the waist line down to the stage's
   bottom edge, cropping the legs while keeping full headroom above. */
.gwds-about-hero--cinematic .gwds-about-portrait-image {
	right: auto;
	bottom: 0;
	left: 50%;
	height: 143%;
	max-width: none;
	transform: translateX(-50%) translateY(27%);
	transform-origin: center bottom;
	filter: grayscale(0.72) saturate(0.82) contrast(1.05) drop-shadow(0 20px 26px rgba(6, 20, 34, 0.18));
}

.gwds-about-hero--cinematic .gwds-about-portrait-caption {
	display: none;
}

.gwds-about-hero--cinematic .gwds-about-hero-lower {
	grid-area: lower;
	width: 100%;
	margin: 1.5rem 0 0;
	padding: 1.7rem 1rem 2rem;
	background: var(--color-ink-950);
}

.gwds-about-hero--cinematic .gwds-about-proof {
	max-width: 22rem;
	margin: 0 auto;
	border-color: rgba(247, 246, 241, 0.22);
	text-align: left;
}

.gwds-about-hero--cinematic .gwds-about-proof > div {
	border-left-color: rgba(247, 246, 241, 0.18);
}

.gwds-about-hero--cinematic .gwds-about-proof strong {
	color: var(--color-paper);
}

.gwds-about-hero--cinematic .gwds-about-proof span {
	color: var(--color-ink-300);
}

.gwds-about-hero--cinematic .gwds-about-hero-actions {
	justify-content: center;
	margin-top: 1.4rem;
}

.gwds-about-hero--cinematic .gwds-about-hero-actions .rounded-full.border {
	border-color: rgba(247, 246, 241, 0.72);
	color: var(--color-paper);
}

.gwds-about-scroll-cue {
	display: none;
}

@media (min-width: 48rem) {
	/* Layer 0: the engineering drawing. */
	.gwds-about-hero-art {
		position: absolute;
		inset: 0;
		z-index: 0;
		display: block;
		transform: translate3d(calc(var(--gwds-hero-mx) * -0.6rem), calc((var(--gwds-hero-my) * -0.4rem) + (var(--gwds-about-scroll-progress) * 3.5rem)), 0);
		will-change: transform;
		pointer-events: none;
	}

	.gwds-about-hero-art svg {
		display: block;
		width: 100%;
		height: 100%;
	}

	html.js .gwds-about-hero-art {
		opacity: 0;
		transition: opacity 1.2s ease 0.2s;
	}

	html.js .gwds-about-hero--cinematic.is-art-live .gwds-about-hero-art {
		opacity: 1;
	}

	.gwds-art-line-a {
		stroke: #b9c8d6;
		stroke-width: 1.6;
	}

	.gwds-art-line-b {
		stroke: #d3dde6;
		stroke-width: 1.2;
	}

	.gwds-art-line-g {
		stroke: var(--color-gold-300);
		stroke-width: 1.4;
	}

	/* Scroll scrubbing: rotation follows --gwds-hero-spin in both directions. */
	.gwds-hero-gear {
		transform-box: fill-box;
		transform-origin: center;
		will-change: transform;
	}

	.gwds-hero-gear--g1 {
		transform: rotate(calc(var(--gwds-hero-spin) * 1deg));
	}

	.gwds-hero-gear--g2 {
		transform: rotate(calc(var(--gwds-hero-spin) * -1.8deg));
	}

	.gwds-hero-gear--g3 {
		transform: rotate(calc(var(--gwds-hero-spin) * 2.4deg));
	}

	.gwds-about-hero--cinematic .gwds-about-hero-inner {
		grid-template-columns: minmax(0, 1.04fr) minmax(24rem, 0.96fr);
		grid-template-areas:
			'copy portrait'
			'lower lower';
		column-gap: 3.5rem;
		align-items: center;
		width: min(100%, 80rem);
		min-height: calc(100svh - var(--gwds-admin-offset));
		margin-inline: auto;
		padding: calc(6.25rem + var(--gwds-admin-offset)) 2rem 0;
	}

	.gwds-about-hero--cinematic .gwds-about-hero-copy {
		align-self: center;
		width: 100%;
		max-width: 44rem;
		margin: 0;
		padding-block: 2rem 3rem;
		text-align: left;
	}

	/* The copy block eases up and dims as the visitor scrolls away. */
	html.js .gwds-about-hero--cinematic .gwds-about-hero-copy {
		opacity: calc(1 - (var(--gwds-about-scroll-progress) * 0.7));
		transform: translateY(calc(var(--gwds-about-scroll-progress) * -3.5rem));
		transition: none;
	}

	.gwds-about-hero--cinematic .gwds-about-hero-copy h1 {
		max-width: 13ch;
		margin-inline: 0;
		font-size: clamp(3.6rem, 5.4vw, 6rem);
		line-height: 0.97;
	}

	.gwds-about-hero--cinematic .gwds-about-hero-lead {
		max-width: 36rem;
		margin: 1.6rem 0 0;
		font-size: 1.05rem;
		line-height: 1.75;
	}

	.gwds-about-hero--cinematic .gwds-about-hero-visual {
		align-self: end;
		width: 100%;
		margin: 0;
	}

	.gwds-about-portrait-glow {
		position: absolute;
		bottom: -4rem;
		left: 50%;
		z-index: 0;
		display: block;
		width: 32rem;
		height: 30rem;
		background: radial-gradient(closest-side, rgba(214, 181, 102, 0.28), rgba(214, 181, 102, 0.1) 55%, transparent 78%);
		filter: blur(26px);
		transform:
			translateX(-50%)
			translate(calc(var(--gwds-hero-mx) * 1.4rem), calc(var(--gwds-hero-my) * 0.9rem));
		pointer-events: none;
	}

	.gwds-about-hero--cinematic .gwds-about-portrait-stage {
		height: min(50rem, 70svh);
	}

	.gwds-about-hero--cinematic .gwds-about-portrait-image {
		height: 140%;
		transform:
			translateX(-50%)
			translateY(27%)
			translate(calc(var(--gwds-hero-mx) * -0.9rem), calc(var(--gwds-hero-my) * -0.5rem))
			translateY(calc(var(--gwds-about-scroll-progress) * -2.5rem))
			scale(calc(1.02 - (var(--gwds-about-scroll-progress) * 0.03)));
		will-change: transform;
	}

	.gwds-about-hero--cinematic .gwds-about-portrait-caption {
		display: grid;
		bottom: 2.2rem;
	}

	html.js .gwds-about-hero--cinematic .gwds-about-portrait-caption {
		opacity: 0;
		transform: translateY(10px);
		transition:
			opacity 0.7s ease,
			transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
		transition-delay: 1.05s;
	}

	html.js .gwds-about-hero--cinematic .gwds-about-hero-visual.is-revealed .gwds-about-portrait-caption {
		opacity: 1;
		transform: translateY(0);
	}

	.gwds-about-hero--cinematic .gwds-about-hero-lower {
		display: flex;
		flex-wrap: wrap;
		gap: 1.5rem 3rem;
		align-items: center;
		justify-content: space-between;
		margin: 0;
		padding: 1.6rem 0 2rem;
		border-top: 1px solid var(--color-ink-100);
		background: transparent;
	}

	.gwds-about-hero--cinematic .gwds-about-proof {
		display: flex;
		max-width: none;
		margin: 0;
		border: 0;
	}

	.gwds-about-hero--cinematic .gwds-about-proof > div {
		min-height: 0;
		padding: 0.2rem 2.2rem;
		border-left: 1px solid var(--color-ink-100);
	}

	.gwds-about-hero--cinematic .gwds-about-proof > div:first-child {
		padding-left: 0;
		border-left: 0;
	}

	.gwds-about-hero--cinematic .gwds-about-proof strong {
		color: var(--color-ink-950);
		font-size: 2.1rem;
	}

	.gwds-about-hero--cinematic .gwds-about-proof span {
		color: var(--color-ink-600);
	}

	.gwds-about-hero--cinematic .gwds-about-hero-actions {
		justify-content: flex-end;
		margin: 0;
	}

	.gwds-about-hero--cinematic .gwds-about-hero-actions .rounded-full.border {
		border-color: var(--color-ink-300);
		color: var(--color-ink-800);
	}

	.gwds-about-scroll-cue {
		position: absolute;
		top: 44%;
		right: 1.1rem;
		z-index: 2;
		display: inline-flex;
		gap: 0.55rem;
		align-items: center;
		margin: 0;
		color: var(--color-ink-400);
		font-size: 0.68rem;
		font-weight: 700;
		letter-spacing: 0.14em;
		line-height: 1;
		text-transform: uppercase;
		writing-mode: vertical-rl;
	}

	.gwds-about-scroll-cue span {
		display: block;
		width: 1px;
		height: 1.9rem;
		background: currentColor;
		animation: gwds-about-scroll-cue 1.8s ease-in-out infinite;
	}
}

@keyframes gwds-about-scroll-cue {
	0%, 100% {
		transform: scaleY(0.45);
		transform-origin: top;
	}

	50% {
		transform: scaleY(1);
		transform-origin: top;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gwds-about-scroll-cue span {
		animation: none;
	}

	html.js .gwds-about-hero-art,
	html.js .gwds-about-hero--cinematic .gwds-about-hero-copy,
	html.js .gwds-about-hero--cinematic .gwds-hero-word-inner,
	html.js .gwds-about-hero--cinematic .gwds-about-hero-lead,
	html.js .gwds-about-hero--cinematic .gwds-about-portrait-caption,
	html.js .gwds-about-hero--cinematic .gwds-section-kicker::before {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}

	.gwds-hero-gear {
		transform: none !important;
	}

	.gwds-about-hero--cinematic .gwds-about-portrait-image {
		transform: translateX(-50%) translateY(27%);
	}
}

/* Home hero: scroll-scrubbed exit choreography. Each element's transform
   is a pure function of scroll position (no animation state, no
   transition), so scrolling down plays the exit forward and scrolling
   back up rewinds it exactly. Staggered rates create depth: the headline
   leaves fastest, the portrait lingers longest. Applied to inner elements
   so it composes with (rather than fights) the existing one-time
   [data-reveal] entrance on the outer wrappers. */
.gwds-home-hero {
	--gwds-home-scroll-progress: 0;
	position: relative;
}

.gwds-home-hero-grid {
	position: relative;
	z-index: 1;
}

html.js .gwds-home-hero-copy > div:first-child > p,
html.js .gwds-home-hero-copy > div:first-child > h1 {
	transform: translateY(calc(var(--gwds-home-scroll-progress) * -4rem));
	opacity: calc(1 - (var(--gwds-home-scroll-progress) * 0.85));
	will-change: transform, opacity;
}

html.js .gwds-home-hero-copy > div:nth-child(2) > p {
	transform: translateY(calc(var(--gwds-home-scroll-progress) * -2.75rem));
	opacity: calc(1 - (var(--gwds-home-scroll-progress) * 0.75));
	will-change: transform, opacity;
}

html.js .gwds-home-hero-actions {
	transform: translateY(calc(var(--gwds-home-scroll-progress) * -1.75rem));
	opacity: calc(1 - (var(--gwds-home-scroll-progress) * 0.65));
	will-change: transform, opacity;
}

html.js .gwds-home-portrait-figure {
	transform:
		translateY(calc(var(--gwds-home-scroll-progress) * -2.25rem))
		scale(calc(1 + (var(--gwds-home-scroll-progress) * 0.055)));
	transform-origin: center bottom;
	opacity: calc(1 - (var(--gwds-home-scroll-progress) * 0.45));
	will-change: transform, opacity;
}

html.js .gwds-home-portrait-caption {
	transform: translateY(calc(var(--gwds-home-scroll-progress) * -1.5rem));
	opacity: calc(1 - (var(--gwds-home-scroll-progress) * 0.9));
	will-change: transform, opacity;
}

@media (prefers-reduced-motion: reduce) {
	html.js .gwds-home-hero-copy > div:first-child > p,
	html.js .gwds-home-hero-copy > div:first-child > h1,
	html.js .gwds-home-hero-copy > div:nth-child(2) > p,
	html.js .gwds-home-hero-actions,
	html.js .gwds-home-portrait-figure,
	html.js .gwds-home-portrait-caption {
		transform: none !important;
		opacity: 1 !important;
	}
}

/* Student tools: landing, steam/psychrometrics, and material library. */
.gwds-tools-shell {
	width: min(100% - 2rem, 68rem);
	margin-inline: auto;
}

.gwds-tools-hero {
	padding: calc(7.5rem + var(--gwds-admin-offset)) 0 3.5rem;
	border-bottom: 1px solid var(--color-ink-100);
	background: var(--color-paper);
}

.gwds-tools-hero--compact {
	padding-bottom: 2.75rem;
}

.gwds-tools-hero h1 {
	max-width: 22ch;
	margin: 0;
	color: var(--color-ink-950);
	font-family: var(--font-display);
	font-size: clamp(2.4rem, 5vw, 3.6rem);
	font-weight: 600;
	line-height: 1.05;
	text-wrap: balance;
}

.gwds-tools-hero-accent {
	color: var(--color-brand-600);
	font-style: italic;
}

.gwds-tools-hero-lead {
	max-width: 44rem;
	margin-top: 1.1rem;
	color: var(--color-ink-700);
	font-size: 1.02rem;
	line-height: 1.7;
	text-wrap: pretty;
}

.gwds-tools-back {
	color: inherit;
	text-decoration: none;
}

.gwds-tools-back:hover {
	color: var(--color-brand-600);
}

.gwds-tools-grid-section {
	padding: 3.5rem 0 5rem;
	background: var(--color-surface);
}

.gwds-tools-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr));
	gap: 1.5rem;
}

.gwds-tool-card {
	display: flex;
	flex-direction: column;
	padding: 1.8rem 1.8rem 1.6rem;
	border: 1px solid var(--color-ink-100);
	background: var(--color-paper);
	color: inherit;
	text-decoration: none;
	transition: border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

.gwds-tool-card:hover {
	border-color: var(--color-brand-500);
	box-shadow: 0 18px 40px rgba(16, 42, 67, 0.09);
	transform: translateY(-3px);
}

.gwds-tool-card-tag {
	margin: 0 0 0.7rem;
	color: var(--color-gold-500);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.gwds-tool-card h2 {
	margin: 0;
	color: var(--color-ink-950);
	font-family: var(--font-display);
	font-size: 1.55rem;
	font-weight: 600;
	line-height: 1.15;
}

.gwds-tool-card-text {
	margin: 0.8rem 0 1rem;
	color: var(--color-ink-700);
	font-size: 0.94rem;
	line-height: 1.65;
}

.gwds-tool-card ul {
	display: grid;
	gap: 0.35rem;
	margin: 0 0 1.4rem;
	padding: 0;
	list-style: none;
}

.gwds-tool-card li {
	position: relative;
	padding-left: 1.1rem;
	color: var(--color-ink-600);
	font-size: 0.86rem;
}

.gwds-tool-card li::before {
	position: absolute;
	top: 0.42em;
	left: 0;
	width: 0.4rem;
	height: 0.4rem;
	background: var(--color-brand-500);
	content: "";
}

.gwds-tool-card-cta {
	margin-top: auto;
	color: var(--color-brand-600);
	font-size: 0.9rem;
	font-weight: 600;
}

.gwds-tools-disclaimer {
	max-width: 52rem;
	margin: 2.6rem 0 0;
	padding-top: 1.2rem;
	border-top: 1px solid var(--color-ink-100);
	color: var(--color-ink-400);
	font-size: 0.8rem;
	line-height: 1.6;
}

/* Workspace shared pieces. */
.gwds-tool-workspace {
	padding: 2.8rem 0 5rem;
	background: var(--color-surface);
}

.gwds-tool-tabs {
	display: inline-flex;
	margin-bottom: 1.8rem;
	border: 1px solid var(--color-ink-200);
	background: var(--color-paper);
}

.gwds-tool-tabs button {
	padding: 0.65rem 1.4rem;
	border: 0;
	background: transparent;
	color: var(--color-ink-600);
	font-size: 0.9rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}

.gwds-tool-tabs button.is-active {
	background: var(--color-ink-950);
	color: var(--color-paper);
}

.gwds-tool-panel {
	display: none;
}

.gwds-tool-panel.is-active {
	display: block;
}

.gwds-tool-form {
	padding: 1.6rem;
	border: 1px solid var(--color-ink-100);
	background: var(--color-paper);
}

.gwds-tool-modes {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.4rem;
	margin: 0 0 1.3rem;
	padding: 0;
	border: 0;
}

.gwds-tool-modes legend {
	margin-bottom: 0.55rem;
	color: var(--color-ink-950);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.gwds-tool-modes label,
.gwds-tool-field--choice label {
	display: inline-flex;
	gap: 0.45rem;
	align-items: center;
	color: var(--color-ink-700);
	font-size: 0.9rem;
	cursor: pointer;
}

.gwds-tool-fields {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
	gap: 1.1rem 1.4rem;
}

.gwds-tool-field {
	display: grid;
	gap: 0.35rem;
	margin: 0;
}

.gwds-tool-field label,
.gwds-tool-field-label {
	color: var(--color-ink-950);
	font-size: 0.85rem;
	font-weight: 600;
}

.gwds-tool-field input,
.gwds-tool-field select {
	padding: 0.55rem 0.7rem;
	border: 1px solid var(--color-ink-200);
	background: var(--color-surface);
	color: var(--color-ink-950);
	font-size: 0.95rem;
	font-variant-numeric: tabular-nums;
}

.gwds-tool-field input:focus,
.gwds-tool-field select:focus {
	outline: 2px solid var(--color-brand-500);
	outline-offset: 1px;
}

.gwds-tool-field small {
	color: var(--color-ink-400);
	font-size: 0.75rem;
}

.gwds-tool-field--choice {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 1.1rem;
	align-items: center;
}

.gwds-tool-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	align-items: center;
	margin-top: 1.4rem;
}

.gwds-tool-submit {
	padding: 0.62rem 1.5rem;
	border: 0;
	background: var(--color-brand-600);
	color: #fff;
	font-size: 0.9rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s ease, transform 0.15s ease;
}

.gwds-tool-submit:hover {
	background: var(--color-brand-700);
}

.gwds-tool-submit:active {
	transform: scale(0.98);
}

.gwds-tool-status {
	color: var(--color-ink-600);
	font-size: 0.85rem;
}

.gwds-tool-results {
	margin-top: 1.6rem;
	overflow-x: auto;
}

.gwds-tool-results-head {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.6rem;
	align-items: center;
	margin-bottom: 0.9rem;
	color: var(--color-ink-700);
	font-size: 0.92rem;
}

.gwds-tool-badge {
	padding: 0.22rem 0.7rem;
	background: var(--color-brand-50);
	color: var(--color-brand-700);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.gwds-tool-results table {
	width: 100%;
	border: 1px solid var(--color-ink-100);
	background: var(--color-paper);
	border-collapse: collapse;
}

.gwds-tool-results th,
.gwds-tool-results td {
	padding: 0.6rem 0.9rem;
	border-bottom: 1px solid var(--color-ink-100);
	font-size: 0.9rem;
	text-align: left;
}

.gwds-tool-results th {
	background: var(--color-mist);
	color: var(--color-ink-950);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.gwds-tool-results td {
	color: var(--color-ink-800);
	font-variant-numeric: tabular-nums;
}

.gwds-tool-results td small {
	color: var(--color-ink-400);
}

.gwds-psychro-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(12.5rem, 1fr));
	gap: 0.8rem;
	margin-top: 1.6rem;
}

.gwds-psychro-cell {
	display: grid;
	gap: 0.2rem;
	padding: 0.9rem 1rem;
	border: 1px solid var(--color-ink-100);
	background: var(--color-paper);
}

.gwds-psychro-cell span {
	color: var(--color-ink-600);
	font-size: 0.78rem;
}

.gwds-psychro-cell strong {
	color: var(--color-ink-950);
	font-family: var(--font-display);
	font-size: 1.35rem;
	font-variant-numeric: tabular-nums;
	font-weight: 600;
	line-height: 1.1;
}

.gwds-psychro-cell small {
	color: var(--color-ink-400);
	font-size: 0.72rem;
}

/* Material library. */
.gwds-mat-controls {
	display: flex;
	flex-wrap: wrap;
	gap: 0.9rem;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1.4rem;
}

.gwds-mat-filters {
	display: inline-flex;
	flex-wrap: wrap;
	border: 1px solid var(--color-ink-200);
	background: var(--color-paper);
}

.gwds-mat-filters button {
	padding: 0.5rem 1.05rem;
	border: 0;
	background: transparent;
	color: var(--color-ink-600);
	font-size: 0.85rem;
	font-weight: 600;
	cursor: pointer;
}

.gwds-mat-filters button.is-active {
	background: var(--color-ink-950);
	color: var(--color-paper);
}

.gwds-mat-search {
	flex: 1 1 14rem;
	max-width: 20rem;
	margin: 0;
}

.gwds-mat-search input {
	width: 100%;
	padding: 0.55rem 0.8rem;
	border: 1px solid var(--color-ink-200);
	background: var(--color-paper);
	font-size: 0.9rem;
}

.gwds-mat-layout {
	display: grid;
	grid-template-columns: minmax(15rem, 22rem) minmax(0, 1fr);
	gap: 1.4rem;
	align-items: start;
}

.gwds-mat-list {
	display: grid;
	gap: 0.55rem;
	max-height: 34rem;
	padding-right: 0.3rem;
	overflow-y: auto;
}

.gwds-mat-card {
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	border: 1px solid var(--color-ink-100);
	background: var(--color-paper);
	transition: border-color 0.2s ease;
}

.gwds-mat-card:hover {
	border-color: var(--color-ink-300);
}

.gwds-mat-card.is-selected {
	border-color: var(--color-brand-600);
	box-shadow: inset 3px 0 0 var(--color-brand-600);
}

.gwds-mat-card-open {
	display: grid;
	flex: 1;
	gap: 0.15rem;
	padding: 0.75rem 0.9rem;
	border: 0;
	background: transparent;
	cursor: pointer;
	text-align: left;
}

.gwds-mat-card-open strong {
	color: var(--color-ink-950);
	font-size: 0.92rem;
	font-weight: 600;
}

.gwds-mat-card-open span {
	color: var(--color-ink-400);
	font-size: 0.75rem;
}

.gwds-mat-card-pick {
	display: inline-flex;
	gap: 0.35rem;
	align-items: center;
	padding: 0 0.85rem;
	border-left: 1px solid var(--color-ink-100);
	color: var(--color-ink-500, #5c7c99);
	font-size: 0.72rem;
	cursor: pointer;
}

.gwds-mat-detail {
	min-height: 18rem;
	padding: 1.6rem;
	border: 1px solid var(--color-ink-100);
	background: var(--color-paper);
}

.gwds-mat-detail-empty {
	display: grid;
	min-height: 14rem;
	place-items: center;
	color: var(--color-ink-400);
	font-size: 0.92rem;
	text-align: center;
}

.gwds-mat-detail-head h2 {
	margin: 0 0 1rem;
	color: var(--color-ink-950);
	font-family: var(--font-display);
	font-size: 1.6rem;
	font-weight: 600;
}

.gwds-mat-constants {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
	gap: 0.7rem;
	margin-bottom: 1.3rem;
}

.gwds-mat-constants > div {
	display: grid;
	gap: 0.1rem;
	padding: 0.7rem 0.85rem;
	background: var(--color-mist);
}

.gwds-mat-constants span {
	color: var(--color-ink-600);
	font-size: 0.72rem;
}

.gwds-mat-constants strong {
	color: var(--color-ink-950);
	font-size: 1.15rem;
	font-variant-numeric: tabular-nums;
}

.gwds-mat-constants small {
	color: var(--color-ink-400);
	font-size: 0.7rem;
}

.gwds-mat-interp {
	display: flex;
	flex-wrap: wrap;
	gap: 0.7rem;
	align-items: center;
	margin-bottom: 0.4rem;
	font-size: 0.9rem;
}

.gwds-mat-interp input {
	width: 6.5rem;
	padding: 0.45rem 0.6rem;
	border: 1px solid var(--color-ink-200);
	font-variant-numeric: tabular-nums;
}

.gwds-mat-interp .gwds-tool-submit {
	padding: 0.5rem 1.1rem;
}

.gwds-mat-interp-row td {
	background: var(--color-brand-50);
	color: var(--color-brand-700);
	font-weight: 700;
}

.gwds-mat-derived {
	margin-top: 0.7rem;
	color: var(--color-ink-600);
	font-size: 0.85rem;
}

.gwds-mat-compare {
	margin-top: 1.6rem;
}

.gwds-mat-compare-bar {
	display: flex;
	flex-wrap: wrap;
	gap: 0.8rem 1.2rem;
	align-items: center;
	padding: 0.9rem 1.2rem;
	border: 1px solid var(--color-ink-100);
	background: var(--color-paper);
	font-size: 0.9rem;
}

.gwds-mat-compare-bar input {
	width: 6rem;
	padding: 0.4rem 0.55rem;
	border: 1px solid var(--color-ink-200);
	font-variant-numeric: tabular-nums;
}

.gwds-mat-compare-clear {
	padding: 0.5rem 1rem;
	border: 1px solid var(--color-ink-300);
	background: transparent;
	color: var(--color-ink-700);
	font-size: 0.82rem;
	cursor: pointer;
}

@media (max-width: 47.999rem) {
	.gwds-mat-layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.gwds-mat-list {
		max-height: 19rem;
	}

	.gwds-tool-tabs {
		display: flex;
		width: 100%;
	}

	.gwds-tool-tabs button {
		flex: 1;
	}
}

/* Header navigation: grouped dropdowns (desktop) and accordion groups
   (mobile) so the menu covers every section without crowding the bar. */
.gwds-nav-group {
	position: relative;
}

.gwds-nav-group-toggle {
	display: inline-flex;
	gap: 0.3rem;
	align-items: center;
}

.gwds-nav-caret {
	width: 0.7rem;
	height: 0.7rem;
	margin-top: 1px;
	transition: transform 0.2s ease;
}

.gwds-nav-group:hover .gwds-nav-caret,
.gwds-nav-group:focus-within .gwds-nav-caret {
	transform: rotate(180deg);
}

.gwds-nav-dropdown {
	position: absolute;
	top: 100%;
	left: 50%;
	z-index: 50;
	display: grid;
	min-width: 14rem;
	padding: 0.55rem;
	border: 1px solid var(--color-ink-100);
	background: var(--color-surface);
	box-shadow: 0 20px 44px rgba(16, 42, 67, 0.13);
	opacity: 0;
	pointer-events: none;
	transform: translateX(-50%) translateY(8px);
	transition: opacity 0.18s ease, transform 0.18s ease;
}

/* Hover bridge so the pointer can travel from the link to the panel. */
.gwds-nav-dropdown::before {
	position: absolute;
	top: -0.8rem;
	right: 0;
	left: 0;
	height: 0.8rem;
	content: "";
}

.gwds-nav-group:hover .gwds-nav-dropdown,
.gwds-nav-group:focus-within .gwds-nav-dropdown {
	opacity: 1;
	pointer-events: auto;
	transform: translateX(-50%) translateY(4px);
}

.gwds-nav-dropdown a {
	padding: 0.55rem 0.75rem;
	border-radius: 6px;
	color: var(--color-ink-800);
	font-size: 0.9rem;
	font-weight: 500;
	text-decoration: none;
	transition: background 0.15s ease, color 0.15s ease;
}

.gwds-nav-dropdown a:hover {
	background: var(--color-mist);
	color: var(--color-ink-950);
}

.gwds-nav-dropdown a.is-active {
	background: #e8f2ee;
	color: var(--color-brand-700);
}

/* Mobile accordion groups reuse the flat-list row styling. */
.gwds-mobile-nav-group summary {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 1.5rem;
	gap: 0.7rem;
	align-items: center;
	min-height: 3.125rem;
	padding: 0.4rem 0.7rem;
	border-bottom: 1px solid var(--color-ink-100);
	color: var(--color-ink-950);
	cursor: pointer;
	list-style: none;
}

.gwds-mobile-nav-group summary::-webkit-details-marker {
	display: none;
}

.gwds-mobile-nav-group summary strong {
	font-family: var(--font-display);
	font-size: 1.45rem;
	font-weight: 600;
	line-height: 1;
}

.gwds-mobile-nav-caret {
	transition: transform 180ms ease;
}

.gwds-mobile-nav-group[open] > summary .gwds-mobile-nav-caret {
	transform: rotate(45deg);
}

.gwds-mobile-nav-sublist {
	margin: 0;
	padding: 0.25rem 0 0.5rem 0.7rem;
	border-bottom: 1px solid var(--color-ink-100);
	list-style: none;
}

.gwds-mobile-nav-list .gwds-mobile-nav-sublist a {
	display: block;
	min-height: 0;
	padding: 0.55rem 0.5rem;
	border-bottom: 0;
	font-size: 1rem;
}

.gwds-mobile-nav-list .gwds-mobile-nav-sublist a.is-active {
	margin: 0;
	border-radius: 8px;
	background: #e8f2ee;
	color: var(--color-brand-700);
}

/* Uncertainty tool: dynamic variable rows and contribution bars. */
.gwds-uncert-expr-row .gwds-tool-field input {
	font-family: var(--font-mono, ui-monospace, monospace);
}

.gwds-uncert-vars {
	margin-top: 1.2rem;
}

.gwds-uncert-vars-head,
.gwds-uncert-row {
	display: grid;
	grid-template-columns: minmax(6rem, 1fr) minmax(6rem, 1.2fr) minmax(6rem, 1.2fr) 2.2rem;
	gap: 0.55rem;
	align-items: center;
}

.gwds-uncert-vars-head {
	margin-bottom: 0.45rem;
	color: var(--color-ink-950);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.gwds-uncert-row {
	margin-bottom: 0.45rem;
}

.gwds-uncert-row input {
	padding: 0.5rem 0.65rem;
	border: 1px solid var(--color-ink-200);
	background: var(--color-surface);
	font-size: 0.92rem;
	font-variant-numeric: tabular-nums;
}

.gwds-uncert-row .gwds-uncert-name {
	font-family: var(--font-mono, ui-monospace, monospace);
}

.gwds-uncert-remove {
	display: grid;
	width: 2rem;
	height: 2rem;
	place-items: center;
	border: 1px solid var(--color-ink-200);
	background: transparent;
	color: var(--color-ink-600);
	font-size: 1rem;
	cursor: pointer;
}

.gwds-uncert-remove:hover {
	border-color: #b3423a;
	color: #b3423a;
}

.gwds-uncert-add {
	margin-top: 0.3rem;
	padding: 0.45rem 0.9rem;
	border: 1px dashed var(--color-ink-300);
	background: transparent;
	color: var(--color-ink-700);
	font-size: 0.84rem;
	cursor: pointer;
}

.gwds-uncert-add:hover {
	border-color: var(--color-brand-600);
	color: var(--color-brand-700);
}

.gwds-uncert-bar {
	display: inline-block;
	width: 6rem;
	height: 0.5rem;
	overflow: hidden;
	vertical-align: middle;
	background: var(--color-mist);
}

.gwds-uncert-bar span {
	display: block;
	height: 100%;
	background: var(--color-brand-500);
}

/* One accessible select treatment across public forms and WooCommerce surfaces. */
.gwds-ui-select {
	--gwds-select-border: #c9d5da;
	--gwds-select-border-hover: #9eb8ae;
	--gwds-select-accent: var(--color-brand-600, #117c5b);
	--gwds-select-ink: var(--color-ink-950, #102a43);
	position: relative;
	display: block;
	width: 100%;
	max-width: 100%;
	color: var(--gwds-select-ink);
	font: inherit;
}

select.gwds-ui-select__native {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	border: 0 !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

.gwds-ui-select__trigger {
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
	min-height: 3.1rem;
	padding: 0.72rem 2.85rem 0.72rem 0.95rem;
	border: 1px solid var(--gwds-select-border);
	border-radius: 0.75rem;
	background: #fbfcfb;
	color: var(--gwds-select-ink);
	font: inherit;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.35;
	text-align: left;
	cursor: pointer;
	transition: border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

.gwds-ui-select__trigger::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 1.05rem;
	width: 0.45rem;
	height: 0.45rem;
	border-right: 1.5px solid #385466;
	border-bottom: 1.5px solid #385466;
	pointer-events: none;
	transform: translateY(-65%) rotate(45deg);
	transform-origin: center;
	transition: transform 180ms ease, border-color 180ms ease;
}

.gwds-ui-select__trigger:hover {
	border-color: var(--gwds-select-border-hover);
	background: #fff;
}

.gwds-ui-select__trigger:focus-visible,
.gwds-ui-select.is-open .gwds-ui-select__trigger {
	border-color: var(--gwds-select-accent);
	background: #fff;
	box-shadow: 0 0 0 3px rgb(17 124 91 / 12%);
	outline: none;
}

.gwds-ui-select.is-open .gwds-ui-select__trigger::after {
	border-color: #0d674c;
	transform: translateY(-25%) rotate(225deg);
}

.gwds-ui-select__trigger:disabled {
	border-color: #dbe3e6;
	background: #f1f4f3;
	color: #8293a0;
	cursor: not-allowed;
}

.gwds-ui-select.is-invalid .gwds-ui-select__trigger {
	border-color: #b3423a;
	box-shadow: 0 0 0 3px rgb(179 66 58 / 10%);
}

.gwds-ui-select__value {
	display: block;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.gwds-ui-select__menu {
	position: absolute;
	top: calc(100% + 0.5rem);
	right: 0;
	left: 0;
	z-index: 20;
	max-height: min(18rem, 46vh);
	padding: 0.4rem;
	overflow-x: hidden;
	overflow-y: auto;
	border: 1px solid #d5e0dc;
	border-radius: 0.85rem;
	background: #fff;
	box-shadow: 0 18px 46px rgb(16 42 67 / 16%), 0 3px 10px rgb(16 42 67 / 8%);
	scrollbar-color: #b5c8c1 transparent;
	scrollbar-width: thin;
}

.gwds-ui-select.opens-up .gwds-ui-select__menu {
	top: auto;
	bottom: calc(100% + 0.5rem);
}

.gwds-ui-select__menu[hidden] {
	display: none;
}

.gwds-ui-select__group {
	display: block;
}

.gwds-ui-select__group + .gwds-ui-select__group {
	margin-top: 0.3rem;
	padding-top: 0.3rem;
	border-top: 1px solid #edf1ef;
}

.gwds-ui-select__group-label {
	display: block;
	padding: 0.55rem 0.75rem 0.3rem;
	color: #667d8e;
	font-size: 0.72rem;
	font-weight: 750;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.gwds-ui-select__option {
	position: relative;
	display: block;
	width: 100%;
	min-height: 2.7rem;
	padding: 0.65rem 2.35rem 0.65rem 0.75rem;
	border: 0;
	border-radius: 0.58rem;
	background: transparent;
	color: #243f53;
	font: inherit;
	font-size: 0.95rem;
	font-weight: 500;
	line-height: 1.35;
	text-align: left;
	cursor: pointer;
}

.gwds-ui-select__option:hover,
.gwds-ui-select__option:focus-visible {
	background: #edf7f3;
	color: #0d674c;
	outline: none;
}

.gwds-ui-select__option.is-selected {
	background: #e1f2eb;
	color: #0d674c;
	font-weight: 700;
}

.gwds-ui-select__option.is-selected::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0.95rem;
	width: 0.42rem;
	height: 0.72rem;
	border-right: 1.75px solid currentColor;
	border-bottom: 1.75px solid currentColor;
	transform: translateY(-60%) rotate(45deg);
}

.gwds-ui-select__option:disabled {
	color: #a2afb7;
	cursor: not-allowed;
}

.gwds-ui-select__option:disabled:hover {
	background: transparent;
}

.gwds-booking__select-control.has-gwds-ui-select::after {
	display: none;
}

@media (max-width: 767px) {
	.gwds-ui-select__trigger {
		font-size: 1rem;
	}

	.gwds-ui-select__menu {
		max-height: min(16rem, 42vh);
	}

	.gwds-ui-select__option {
		min-height: 2.85rem;
		font-size: 1rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gwds-ui-select__trigger,
	.gwds-ui-select__trigger::after {
		transition: none;
	}
}

/* Cross-page rhythm for the service pages, engineering tools, and resource hub. */
.gwds-service-nav {
	margin-top: clamp(1.25rem, 2.5vw, 2.25rem);
	border-top: 0;
}

.gwds-service-hero {
	border-bottom: 0;
}

.gwds-service-nav > div {
	width: 100%;
	max-width: 80rem;
	padding-right: 2rem;
	padding-left: 2rem;
	box-sizing: border-box;
}

.gwds-tools-shell {
	width: min(100% - 2rem, 80rem);
}

.gwds-service-steps > div > div {
	height: 100%;
	padding: clamp(1.35rem, 2.4vw, 1.8rem);
	border: 1px solid #d9e2ec;
	border-top: 3px solid #159473;
	border-radius: 1rem;
	background: #ffffff;
	box-shadow: 0 12px 30px rgb(16 42 67 / 4%);
}

.gwds-service-steps > div > div:hover {
	border-color: #9eb8ae;
	border-top-color: #087f5b;
}

.gwds-tools-hero {
	padding-top: calc(8rem + var(--gwds-admin-offset));
	padding-bottom: clamp(3.75rem, 7vw, 5.75rem);
}

.gwds-tools-grid-section {
	padding: clamp(3rem, 6vw, 5.25rem) 0 clamp(4.5rem, 7vw, 6.5rem);
}

.gwds-tools-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1rem, 2.4vw, 1.5rem);
}

.gwds-tool-card {
	min-height: 100%;
	padding: clamp(1.35rem, 2.8vw, 2rem);
	border-radius: 1rem;
	box-shadow: 0 8px 24px rgb(16 42 67 / 3%);
}

.gwds-tool-card li::before {
	height: 0.18rem;
	border-radius: 999px;
}

.gwds-tool-card-cta {
	margin-top: 1.5rem;
}

.gwds-tool-tabs,
.gwds-mat-filters,
.gwds-tool-form,
.gwds-psychro-cell,
.gwds-mat-card,
.gwds-tool-results table {
	border-radius: 0.85rem;
}

.gwds-tool-tabs,
.gwds-mat-filters,
.gwds-tool-results table {
	overflow: hidden;
}

.gwds-tool-form,
.gwds-psychro-cell,
.gwds-mat-card {
	box-shadow: 0 8px 22px rgb(16 42 67 / 3%);
}

.gwds-tool-submit {
	border-radius: 999px;
}

.gwds-resource-hub-hero > div,
.gwds-resource-hub-content,
.gwds-resource-download > div {
	width: min(100% - 2rem, 80rem);
	padding-right: 0;
	padding-left: 0;
}

.gwds-resource-hub-hero > div {
	gap: clamp(2.5rem, 6vw, 5.5rem);
}

.gwds-resource-content-grid {
	gap: 1rem;
	border: 0;
}

.gwds-resource-content-card {
	min-height: 100%;
	padding: clamp(1.2rem, 2.5vw, 1.7rem);
	border: 1px solid #d9e2ec;
	border-radius: 1rem;
	background: #ffffff;
	box-shadow: 0 10px 28px rgb(16 42 67 / 3%);
}

.gwds-resource-content-card:hover {
	border-color: #9eb8ae;
}

.gwds-resource-newsletter-panel {
	border-radius: 1rem;
	box-shadow: 0 14px 34px rgb(16 42 67 / 5%);
}

.gwds-resource-index-hero {
	padding: calc(8.5rem + var(--gwds-admin-offset)) 0 clamp(4rem, 7vw, 6.25rem);
	background:
		radial-gradient(70% 90% at 88% 8%, rgb(226 232 238 / 72%), transparent 58%),
		#f7f6f1;
}

.gwds-resource-index-shell {
	width: 100%;
	max-width: 80rem;
	margin-right: auto;
	margin-left: auto;
	padding-right: 2rem;
	padding-left: 2rem;
	box-sizing: border-box;
}

.gwds-resource-index-hero h1 {
	max-width: 14ch;
	margin: 0;
	color: #102a43;
	font-family: var(--font-display), Georgia, serif;
	font-size: clamp(2.75rem, 5.4vw, 5rem);
	font-weight: 600;
	letter-spacing: -0.035em;
	line-height: 1.02;
	text-wrap: balance;
}

.gwds-resource-index-hero h1 + p {
	max-width: 42rem;
	margin: 1.5rem 0 0;
	color: #526d82;
	font-size: 1.125rem;
	line-height: 1.7;
}

.gwds-resource-index {
	padding: clamp(3.5rem, 7vw, 6.5rem) 0 clamp(5rem, 8vw, 7.5rem);
}

.gwds-resource-index-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25rem;
}

.gwds-resource-index-card {
	display: flex;
	min-height: 19rem;
	flex-direction: column;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	border: 1px solid #d9e2ec;
	border-radius: 1rem;
	background: #ffffff;
	color: inherit;
	text-decoration: none;
	box-shadow: 0 12px 30px rgb(16 42 67 / 4%);
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.gwds-resource-index-card:hover,
.gwds-resource-index-card:focus-visible {
	border-color: #87b7a6;
	box-shadow: 0 18px 38px rgb(16 42 67 / 8%);
	transform: translateY(-2px);
	outline: none;
}

.gwds-resource-index-kicker {
	margin: 0 0 1rem;
	color: #087f5b;
	font-size: 0.6875rem;
	font-weight: 750;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.gwds-resource-index-card h2 {
	margin: 0;
	color: #102a43;
	font-family: var(--font-display), Georgia, serif;
	font-size: clamp(1.75rem, 3vw, 2.4rem);
	font-weight: 600;
	line-height: 1.12;
}

.gwds-resource-index-card h2 + p {
	max-width: 34rem;
	margin: 1rem 0 0;
	color: #526d82;
	line-height: 1.7;
}

.gwds-resource-index-card > span {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	margin-top: auto;
	padding-top: 2rem;
	color: #087f5b;
	font-size: 0.9375rem;
	font-weight: 700;
}

@media (min-width: 1024px) and (max-width: 1150px) {
	.gwds-site-brand a > span {
		display: none;
	}

	#gwds-nav nav[aria-label="Main"] {
		gap: 1rem;
	}

	#gwds-nav nav[aria-label="Main"] > a,
	#gwds-nav .gwds-nav-group-toggle {
		font-size: 0.875rem;
	}
}

@media (max-width: 767px) {
	.gwds-service-nav {
		margin-top: 1rem;
	}

	.gwds-service-nav > div {
		width: 100%;
		padding-right: 1rem;
		padding-left: 1rem;
	}

	.gwds-tools-shell,
	.gwds-resource-hub-hero > div,
	.gwds-resource-hub-content,
	.gwds-resource-download > div {
		width: min(100% - 2rem, 80rem);
	}

	.gwds-service-steps > div > div {
		padding: 1.25rem;
		border-radius: 0.85rem;
	}

	.gwds-service-overview > .grid,
	.gwds-service-apply > .grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.gwds-service-overview > .grid > *,
	.gwds-service-apply > .grid > * {
		min-width: 0;
	}

	.gwds-inquiry-form > .grid {
		width: 100%;
		max-width: 100%;
		grid-template-columns: minmax(0, 1fr);
	}

	.gwds-inquiry-form > .grid > .grid,
	.gwds-inquiry-form input,
	.gwds-inquiry-form textarea,
	.gwds-inquiry-form .gwds-ui-select {
		width: 100%;
		max-width: 100%;
		min-width: 0;
		box-sizing: border-box;
	}

	.gwds-tools-hero {
		padding-top: calc(6.25rem + var(--gwds-admin-offset));
		padding-bottom: 3rem;
	}

	.gwds-tools-hero h1 {
		font-size: clamp(2.25rem, 11vw, 3rem);
	}

	.gwds-tools-hero-lead {
		font-size: 0.96rem;
		line-height: 1.65;
	}

	.gwds-tools-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.gwds-tool-card {
		padding: 1.35rem;
		border-radius: 0.85rem;
	}

	.gwds-resource-hub-hero > div,
	.gwds-resource-hub-content > div,
	.gwds-resource-download > div > div {
		gap: 2.5rem;
	}

	.gwds-resource-content-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 0.75rem;
	}

	.gwds-resource-content-card {
		padding: 1.2rem;
		border-radius: 0.85rem;
	}

	.gwds-resource-closing {
		padding-top: 3.5rem;
		padding-bottom: 3.5rem;
	}

	.gwds-resource-index-hero {
		padding-top: calc(6.75rem + var(--gwds-admin-offset));
		padding-bottom: 3.5rem;
	}

	.gwds-resource-index-shell {
		padding-right: 1rem;
		padding-left: 1rem;
	}

	.gwds-resource-index-hero h1 {
		max-width: 11ch;
		font-size: clamp(2.45rem, 12vw, 3.4rem);
		line-height: 1.04;
	}

	.gwds-resource-index-hero h1 + p {
		margin-top: 1.1rem;
		font-size: 1rem;
		line-height: 1.65;
	}

	.gwds-resource-index {
		padding-top: 2.75rem;
		padding-bottom: 4.5rem;
	}

	.gwds-resource-index-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 0.85rem;
	}

	.gwds-resource-index-card {
		min-height: 15.5rem;
		padding: 1.35rem;
		border-radius: 0.85rem;
	}
}
