/* Shared tokens and standalone native-block styles. No page-class dependency. */
:root,
.editor-styles-wrapper {
	--sm-color-blue: var(--theme-palette-color-1, #0057b5);
	--sm-color-blue-dark: var(--theme-palette-color-2, #00458f);
	--sm-color-muted: var(--theme-palette-color-3, #52616c);
	--sm-color-navy: var(--theme-palette-color-4, #071f34);
	--sm-color-line: var(--theme-palette-color-5, #dce3e7);
	--sm-color-mist: var(--theme-palette-color-6, #e8eef2);
	--sm-color-ink: var(--theme-palette-color-7, #132330);
	--sm-color-white: var(--theme-palette-color-8, #fff);
	/* Editorial roles: identical sizes on every page, including mobile. */
	--sm-color-body: var(--sm-color-muted);
	--sm-color-link: var(--sm-color-navy);
	--sm-color-link-hover: var(--sm-color-ink);
	--sm-editorial-columns: minmax(360px, .85fr) minmax(0, 1.15fr);
	--sm-editorial-gap: clamp(52px, 6vw, 84px);
	--sm-reading-width: 680px;
	--sm-text-body: 18px;
	--sm-text-lead: 24px;
	--sm-leading-body: 1.65;
	--sm-leading-lead: 1.5;
	--sm-color-gold: var(--theme-palette-color-9, #e7b23a);
	--sm-content-width: var(--theme-normal-container-max-width, 1180px);
	--sm-page-gutter: clamp(22px, 4vw, 64px);
	--sm-space-section: 120px;
	--sm-space-grid: 18px;
	--sm-space-button-link: 28px;
	--sm-radius: 0px;
	/* Light from the upper left. Negative spread keeps repeated surfaces quiet. */
	--sm-card-border: #b7c5d0;
	--sm-card-border-active: #90a6b8;
	--sm-shadow-card: 2px 3px 6px -3px rgba(7, 31, 52, .12), 7px 10px 20px -8px rgba(7, 31, 52, .15);
	--sm-shadow-card-active: 3px 4px 8px -3px rgba(7, 31, 52, .12), 10px 14px 26px -9px rgba(7, 31, 52, .18);
	--sm-shadow-raised: var(--sm-shadow-card-active);
	/* Existing offer components consume the same surface system. */
	--sm-product-border: var(--sm-card-border);
	--sm-product-border-active: var(--sm-card-border-active);
	--sm-product-shadow: var(--sm-shadow-card);
	--sm-product-shadow-active: var(--sm-shadow-card-active);
}

/* Native Blocksy navigation drawer: nearly opaque white with readable states. */
#offcanvas.ct-panel > .ct-panel-inner {
	background: rgba(255, 255, 255, .98);
	color: var(--sm-color-body);
}
#offcanvas [data-id="mobile-menu"] {
	--theme-link-initial-color: var(--sm-color-navy);
	--theme-link-hover-color: var(--sm-color-ink);
	--theme-link-active-color: var(--sm-color-ink);
}
#offcanvas .ct-toggle-close {
	--theme-icon-color: var(--sm-color-navy);
}
#offcanvas .ct-toggle-close:hover {
	--theme-icon-color: var(--sm-color-ink);
}
#offcanvas :is(.ct-menu-link, .ct-toggle-close, .ct-button):focus-visible {
	outline: 2px solid var(--sm-color-blue);
	outline-offset: 4px;
}

/* Legacy pages retain their approved component rules. The offered styles also
 * work alone on ordinary pages; they do not restyle the legacy compositions. */
:is(.is-style-sm-section):not(:where(.sm-home-v6 *, .sm-product-story *)) {
	padding: var(--sm-space-section) var(--sm-page-gutter);
}
:is(.is-style-sm-row):not(:where(.sm-home-v6 *, .sm-product-story *)) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--sm-space-grid);
}
:is(.is-style-sm-card):not(:where(.sm-home-v6 *, .sm-product-story *)) {
	padding: 28px;
	border: 1px solid var(--sm-card-border);
	border-radius: var(--sm-radius);
	background: var(--sm-color-white);
	color: var(--sm-color-body);
	box-shadow: var(--sm-shadow-card);
}
/* Shared surface only; layout, copy and interaction targets stay untouched. */
.smgr-grid .smgr-card,
.sm-pattern--story .is-style-sm-section-columns,
.sm-pattern--story-closing .sm-pattern__inner {
	border-color: var(--sm-card-border);
	box-shadow: var(--sm-shadow-card);
}
.is-style-sm-card:has(a, button):is(:hover, :focus-within),
.smgr-grid .smgr-card:focus-within {
	border-color: var(--sm-card-border-active);
	box-shadow: var(--sm-shadow-card-active);
}
/* Standalone native photos, not backgrounds, composite cards or gallery tiles.
 * Clipping containers carry their own shadow below, so no shadow is doubled. */
:is(.entry-content, .editor-styles-wrapper) .wp-block-image:not(:where(
	.wp-block-gallery *, .wp-block-cover *, .sm-pattern--hero *,
	.sm-home .hero *, .sm-home .school *, .sm-home .pilot *,
	.sm-home .pilot-photo *, .sm-home .experience-photo *,
	.location-airfield__media *, .is-style-sm-card *, .location-card *,
	.sm-product-card *, .sm-product-story *, .sm-pattern--story *,
	.wp-block-site-logo *, .sm-no-surface, .sm-no-surface *
)),
.sm-home .experience-photo,
.sm-location-page .location-airfield__media {
	outline: 1px solid rgba(7, 31, 52, .20);
	outline-offset: -1px;
	box-shadow: var(--sm-shadow-card);
}
:is(.is-style-sm-dark):not(:where(.sm-home-v6 *, .sm-product-story *)) {
	background: var(--sm-color-navy);
	color: var(--sm-color-white);
	--sm-pattern-heading: var(--sm-color-white);
	--sm-pattern-muted: var(--sm-color-white);
	--sm-pattern-outline: var(--sm-color-white);
	--sm-color-link: var(--sm-color-white);
	--sm-color-link-hover: var(--sm-color-gold);
}
:is(.is-style-sm-dark h1, .is-style-sm-dark h2, .is-style-sm-dark h3):not(:where(.sm-home-v6 *, .sm-product-story *)) {
	color: var(--sm-color-white);
}
:is(.is-style-sm-eyebrow):not(:where(.sm-home-v6 *, .sm-product-story *)) {
	margin-bottom: 14px;
	color: var(--sm-pattern-heading, var(--sm-color-blue));
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.16em;
	line-height: 1.5;
	text-transform: uppercase;
}
:is(.is-style-sm-lead):not(:where(.sm-home-v6 *, .sm-product-story *)) {
	max-width: 720px;
	color: var(--sm-pattern-muted, var(--sm-color-muted));
	font-size: var(--sm-text-lead);
	line-height: var(--sm-leading-lead);
}
/* Legacy home/airfield compositions use the same saved paragraph role. */
.sm-home-v6 p.is-style-sm-lead {
	color: var(--sm-pattern-muted, var(--sm-color-body));
	font-family: var(--sm-font-body);
	font-size: var(--sm-text-lead);
	font-weight: 400;
	line-height: var(--sm-leading-lead);
}
/* Role wins over legacy Gutenberg palette utilities (which use !important).
 * Preserve saved blocks; no page-specific override or content rewrite. */
.is-style-sm-lead.has-text-color,
.has-sm-lead-font-size.has-text-color {
	color: var(--sm-pattern-muted, var(--sm-color-body)) !important;
}
:is(.is-style-sm-meta):not(:where(.sm-home-v6 *, .sm-product-story *)) {
	color: var(--sm-pattern-muted, var(--sm-color-muted));
	font-size: 14px;
	font-weight: 600;
	line-height: 1.5;
}
:is(.is-style-sm-primary, .is-style-sm-outline, .is-style-sm-light, .is-style-sm-text-link, .is-style-sm-contact-link, .is-style-sm-index-link, .is-style-sm-card-link):not(:where(.sm-home-v6 *, .sm-product-story *)) > .wp-block-button__link {
	display: inline-flex;
	min-height: 54px;
	padding: 12px 26px;
	align-items: center;
	justify-content: center;
	gap: 18px;
	border: 1px solid transparent;
	border-radius: var(--sm-radius);
	background: var(--sm-color-blue);
	color: var(--sm-color-white);
	font-family: var(--sm-font-heading, "Barlow Condensed", sans-serif);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.055em;
	line-height: 1.3;
	text-align: center;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color .2s, color .2s, transform .2s;
}
:is(.is-style-sm-primary, .is-style-sm-outline, .is-style-sm-light):not(:where(.sm-home-v6 *, .sm-product-story *)) > .wp-block-button__link:hover {
	transform: translateY(-1px);
}
:is(.is-style-sm-primary):not(:where(.sm-home-v6 *, .sm-product-story *)) > .wp-block-button__link:hover {
	background: var(--sm-color-blue-dark);
	border-color: transparent;
}
:is(.is-style-sm-outline):not(:where(.sm-home-v6 *, .sm-product-story *)) > .wp-block-button__link {
	border-color: var(--sm-pattern-outline, var(--sm-color-blue));
	background: transparent;
	color: var(--sm-pattern-outline, var(--sm-color-blue));
}
:is(.is-style-sm-outline):not(:where(.sm-home-v6 *, .sm-product-story *)) > .wp-block-button__link:hover {
	background: var(--sm-pattern-outline, var(--sm-color-blue-dark));
	border-color: var(--sm-pattern-outline, var(--sm-color-blue-dark));
	color: var(--sm-color-white);
}
:is(.is-style-sm-dark .is-style-sm-outline) > .wp-block-button__link:hover {
	color: var(--sm-color-navy);
}
:is(.is-style-sm-light):not(:where(.sm-home-v6 *, .sm-product-story *)) > .wp-block-button__link {
	background: var(--sm-color-white);
	border-color: var(--sm-color-line);
	color: var(--sm-color-navy);
}
:is(.is-style-sm-light):not(:where(.sm-home-v6 *, .sm-product-story *)) > .wp-block-button__link:hover {
	background: var(--sm-color-mist);
}
:is(.is-style-sm-text-link, .is-style-sm-card-link):not(:where(.sm-home-v6 *, .sm-product-story *)) > .wp-block-button__link {
	min-height: 44px;
	padding: 8px 0;
	background: transparent;
	color: var(--sm-color-link);
	font-family: inherit;
	letter-spacing: 0;
	text-transform: none;
	text-decoration: underline;
	text-underline-offset: 4px;
}
:is(.is-style-sm-text-link, .is-style-sm-card-link):not(:where(.sm-home-v6 *, .sm-product-story *)) > .wp-block-button__link:hover {
	background: transparent;
	color: var(--sm-color-link-hover);
}
:is([class*="is-style-sm-"]):not(:where(.sm-home-v6 *, .sm-product-story *)) > .wp-block-button__link:focus-visible,
.sm-pattern a:focus-visible,
.sm-pattern summary:focus-visible {
	outline: 3px solid var(--sm-color-gold);
	outline-offset: 4px;
}
:is(.is-style-sm-section-columns).wp-block-columns:not(:where(.sm-home-v6 *, .sm-product-story *)) {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: center;
	gap: clamp(28px, 5vw, 68px);
}
:is(.is-style-sm-card-grid).wp-block-columns:not(:where(.sm-home-v6 *, .sm-product-story *)) {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--sm-space-grid);
}
:is(.is-style-sm-section-columns, .is-style-sm-card-grid) > .wp-block-column {
	min-width: 0;
}
:is(.is-style-sm-cover-image):not(:where(.sm-home-v6 *, .sm-product-story *)) {
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}
:is(.is-style-sm-cover-image):not(:where(.sm-home-v6 *, .sm-product-story *)) img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
:is(.is-style-sm-closing-gallery).wp-block-gallery:not(:where(.sm-home-v6 *, .sm-product-story *)) {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--sm-space-grid);
}
:is(.is-style-sm-closing-gallery).wp-block-gallery:not(:where(.sm-home-v6 *, .sm-product-story *)) > figure.wp-block-image {
	width: 100% !important;
	margin: 0;
	aspect-ratio: 4 / 3;
}

.sm-pattern,
.sm-pattern * { box-sizing: border-box; }
.sm-pattern { color: var(--sm-color-body); font-size: var(--sm-text-body); line-height: var(--sm-leading-body); }
.sm-pattern.is-style-sm-dark { color: var(--sm-color-white); }
.sm-pattern__inner { width: min(100%, var(--sm-content-width)); margin-inline: auto; }
.sm-pattern :is(h1, h2, h3, p, figure):not(:where(.sm-product-card *)),
.sm-pattern .wp-block-columns,
.sm-pattern .wp-block-buttons { margin-block: 0; }
.sm-pattern :is(h1, h2, h3):not(:where(.sm-product-card *)) { color: var(--sm-pattern-heading, var(--sm-color-navy)); }
.sm-pattern h1:not(:where(.sm-product-card *)) { font-size: var(--sm-text-title); }
.sm-pattern h2:not(:where(.sm-product-card *)) { font-size: var(--sm-text-section); }
.sm-pattern h3:not(:where(.sm-product-card *)) { font-size: var(--sm-text-card); }
.sm-pattern :is(.is-style-sm-eyebrow) { margin-bottom: 14px; }
.sm-pattern :is(h1, h2, h3) + p:not(:where(.sm-product-card *)) { margin-top: 20px; }
.sm-pattern p + p:not(:where(.sm-product-card *)) { margin-top: 18px; }
.sm-pattern .wp-block-buttons { gap: 12px; margin-top: 28px; }
/* Shared desktop spacing for mixed button/text-link groups, including legacy pages.
 * Only the horizontal gap changes; wrapped rows retain their existing rhythm. */
@media (min-width: 1000px) {
	.wp-block-buttons:has(> .wp-block-button:not(.is-style-sm-text-link)):has(> .is-style-sm-text-link) {
		column-gap: var(--sm-space-button-link);
	}
}
.sm-pattern .sm-pattern__head { max-width: 780px; margin-bottom: 40px; }
.sm-pattern--mist { background: var(--sm-color-mist); }
/* Reusable native team groups. The final odd portrait completes the row;
 * no visual reordering, implied roles, fake links or hover affordance. */
.is-style-sm-team-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 28px;
}
.is-style-sm-team-grid > .sm-team-member.is-style-sm-card {
	min-width: 0;
	margin: 0;
	padding: 0;
	overflow: hidden;
}
.sm-team-member > .wp-block-image {
	margin: 0;
	aspect-ratio: 3 / 2;
}
.sm-team-member > .wp-block-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.sm-team-member__copy { padding: clamp(24px, 3vw, 36px); }
.sm-team-member__copy .is-style-sm-eyebrow { font-size: 12px; letter-spacing: .11em; }
@media (min-width: 782px) {
	.is-style-sm-team-grid > .sm-team-member:last-child:nth-child(odd) {
		grid-column: 1 / -1;
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: center;
	}
}
@media (max-width: 781px) {
	.is-style-sm-team-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
}
.sm-pattern--hero { position: relative; display: flex; min-height: 640px; align-items: center; overflow: hidden; }
.sm-pattern--hero-compact { min-height: 360px; padding-block: 60px; }
.sm-pattern--hero > .sm-pattern__photo { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; }
.sm-pattern--hero > .sm-pattern__photo img { width: 100%; height: 100%; object-fit: cover; }
.sm-pattern--hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7,31,52,.9), rgba(7,31,52,.45)); }
.sm-pattern--hero > .sm-pattern__inner { position: relative; z-index: 1; }
.sm-pattern--hero :where(h1, h2) { max-width: 780px; }
.sm-pattern--hero .is-style-sm-lead { max-width: 650px; }
.sm-pattern--location-card { padding: 0 !important; overflow: hidden; }
.sm-pattern--location-card > .sm-pattern__copy { padding: 28px; }
.sm-pattern--location-card .wp-block-image { aspect-ratio: 4 / 3; }
.sm-pattern--location-card h3 { font-size: var(--sm-text-card); }
.sm-pattern--location-card .wp-block-button,
.sm-pattern--location-card .wp-block-button__link { width: 100%; }
.sm-pattern--location-card .is-style-sm-outline > .wp-block-button__link:hover {
	background: var(--sm-color-blue-dark);
	border-color: var(--sm-color-blue-dark);
	color: var(--sm-color-white);
}
.is-style-sm-card-grid:not(:where(.sm-home-v6 *, .sm-product-story *)) > .wp-block-column > .is-style-sm-card { height: 100%; }
.is-style-sm-card-grid .sm-pattern--location-card { display: flex; flex-direction: column; }
.is-style-sm-card-grid .sm-pattern--location-card > .sm-pattern__copy { display: flex; flex: 1; flex-direction: column; }
.is-style-sm-card-grid .sm-pattern--location-card .wp-block-buttons { margin-top: auto; padding-top: 28px; }
.sm-pattern--trust h3 { font-size: var(--sm-text-card); }
/* FAQ geometry and typography share the location-page rules in relaunch-blocks.css. */
.sm-pattern--faq .sm-faq__intro.sm-pattern__head { max-width: 400px; margin-bottom: 0; }
.sm-pattern--faq .sm-faq__intro h2 + p { margin-top: 0; }

.sm-pattern--consultation .is-style-sm-section-columns {
	grid-template-columns: var(--sm-editorial-columns);
	gap: var(--sm-editorial-gap);
}
/* Give the explanatory copy more room; light FAQ follow-ups retain the FAQ grid. */
@media (min-width: 1100px) {
	.sm-pattern--consultation.is-style-sm-dark .is-style-sm-section-columns {
		grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr);
	}
}
.sm-pattern--consultation .sm-pattern__head { margin-bottom: 0; }
.sm-consultation-contact { position: relative; padding-left: 0; border-left: 0; }
.sm-consultation-contact::before {
	content: ""; position: absolute; inset-block: 0;
	left: calc(var(--sm-editorial-gap) / -2); width: 1px;
	background: var(--sm-color-line);
}
.is-style-sm-dark .sm-consultation-contact::before { background: rgba(255,255,255,.25); }
.sm-consultation-phone a {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	min-height: 44px;
	color: var(--sm-color-link);
	font-size: clamp(24px, 2.5vw, 36px);
	font-weight: 700;
	line-height: 1.3;
	text-decoration: none;
	white-space: nowrap;
}
.sm-consultation-phone a::before {
	content: "";
	flex: 0 0 .8em;
	width: .8em;
	height: .8em;
	background: currentColor;
	mask: var(--sm-icon-phone) center / contain no-repeat;
}
.sm-consultation-phone a:hover { color: var(--sm-color-link-hover); text-decoration: none; }
.is-style-sm-dark .sm-consultation-phone a:hover { color: var(--sm-color-gold); }
.sm-pattern--trust .sm-consultation-phone a { font-size: clamp(20px, 1.7vw, 24px); }
.sm-pattern--image-band { padding: 0; }
/* One quiet image surface; captions and enlargement stay native Gutenberg. */
.sm-impressions-gallery.wp-block-gallery.has-nested-images {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	align-items: start;
	background: var(--sm-color-white, #fff);
}
.sm-impressions-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image {
	position: relative;
	display: block;
	width: 100% !important;
	margin: 0;
	align-self: start;
	overflow: hidden;
	aspect-ratio: 3 / 2;
}
.sm-impressions-gallery.wp-block-gallery.has-nested-images figure.wp-block-image img {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	transition: transform .45s ease;
}
/* Optional editorial rhythm in native source/keyboard order, without dense
 * reordering or masonry scripts. Small photographs establish the row height. */
.sm-impressions-gallery.is-style-sm-editorial-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image img {
	position: absolute;
	inset: 0;
}
@media (min-width: 1000px) {
	.sm-impressions-gallery.is-style-sm-editorial-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image:is(:nth-child(9n + 1):not(:nth-last-child(-n + 2)), :nth-child(9n + 8):not(:last-child)) {
		grid-column: span 2;
		grid-row: span 2;
		align-self: stretch;
		/* Native uncropped galleries use an auto bottom margin, which prevents stretch. */
		margin-block: 0 !important;
		aspect-ratio: auto;
		min-height: 0;
	}
}
@media (min-width: 541px) and (max-width: 999.98px) {
	.sm-impressions-gallery.is-style-sm-editorial-gallery.wp-block-gallery.has-nested-images > figure.wp-block-image:first-child {
		grid-column: 1 / -1;
	}
}
.sm-impressions-gallery.wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
	position: absolute;
	inset: auto 0 0;
	z-index: 1;
	width: 100%;
	max-height: none;
	margin: 0;
	padding: 64px 24px 22px;
	overflow: visible;
	background: linear-gradient(180deg, rgba(7,31,52,0) 0%, rgba(7,31,52,.58) 48%, rgba(7,31,52,.9) 100%);
	color: #fff;
	font-family: var(--sm-font-heading);
	font-size: clamp(23px, 2vw, 28px);
	font-weight: 600;
	line-height: 1.2;
	text-align: left;
	text-shadow: 0 1px 8px rgba(7,31,52,.25);
	text-wrap: balance;
	pointer-events: none;
}
/* Caption text remains selectable and editable in the block editor. */
.editor-styles-wrapper .sm-impressions-gallery.wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
	pointer-events: auto;
}
.sm-impressions-gallery .wp-lightbox-container .lightbox-trigger {
	top: 14px !important;
	right: 14px !important;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	min-width: 44px;
	padding: 0;
	border: 1px solid rgba(255,255,255,.6) !important;
	border-radius: 0;
	background: rgba(7,31,52,.32);
	color: #fff;
	opacity: 1;
	backdrop-filter: blur(4px);
}
.sm-impressions-gallery .lightbox-trigger svg { width: 15px; height: 15px; fill: currentColor; }
.sm-impressions-gallery .wp-lightbox-container .lightbox-trigger:hover { background: var(--sm-color-navy); }
.sm-impressions-gallery .lightbox-trigger:focus-visible {
	outline: 3px solid var(--sm-color-gold);
	outline-offset: 3px;
}
@media (hover: hover) and (pointer: fine) {
	.sm-impressions-gallery > .wp-lightbox-container:hover img { transform: scale(1.035); }
}
/* Uniform thumbnails may crop; the enlarged photograph must remain complete. */
body:has(.sm-impressions-gallery) .wp-lightbox-overlay img {
	object-fit: contain !important;
}
/* Presentation only: WordPress retains dialog, navigation, swipe and focus. */
body:has(.wp-lightbox-overlay.sm-gallery-lightbox.active) { overflow-y: hidden; }
.wp-lightbox-overlay.sm-gallery-lightbox { z-index: 1000001; }
.wp-lightbox-overlay.sm-gallery-lightbox .scrim {
	background: radial-gradient(ellipse at 50% 40%, #12344c 0%, #071f34 75%) !important;
	opacity: 1;
}
.wp-lightbox-overlay.sm-gallery-lightbox .lightbox-image-container {
	inset: 88px 96px 136px;
	width: auto;
	height: auto;
	transform: none;
	animation: none !important;
}
.wp-lightbox-overlay.sm-gallery-lightbox .lightbox-image-container img {
	width: 100%;
	height: 100%;
	min-width: 0;
	min-height: 0;
	object-fit: contain !important;
}
.wp-lightbox-overlay.sm-gallery-lightbox :is(.wp-lightbox-close-button, .wp-lightbox-navigation-button) {
	width: 44px;
	height: 44px;
	min-width: 44px;
	min-height: 44px;
	padding: 10px !important;
	border: 1px solid rgba(255,255,255,.35) !important;
	border-radius: 0 !important;
	background: rgba(7,31,52,.35) !important;
	color: #fff !important;
	fill: #fff !important;
}
.wp-lightbox-overlay.sm-gallery-lightbox :is(.wp-lightbox-close-button, .wp-lightbox-navigation-button):hover {
	border-color: #fff !important;
	background: var(--sm-color-blue) !important;
}
.wp-lightbox-overlay.sm-gallery-lightbox :is(.wp-lightbox-close-button, .wp-lightbox-navigation-button):focus-visible {
	outline: 3px solid var(--sm-color-gold);
	outline-offset: 4px;
}
.wp-lightbox-overlay.sm-gallery-lightbox .wp-lightbox-close-button { top: 24px; right: 24px; }
.wp-lightbox-overlay.sm-gallery-lightbox .wp-lightbox-navigation-button { top: 50%; bottom: auto; transform: translateY(-50%); }
.wp-lightbox-overlay.sm-gallery-lightbox .wp-lightbox-navigation-button-prev { left: 24px; }
.wp-lightbox-overlay.sm-gallery-lightbox .wp-lightbox-navigation-button-next { right: 24px; }
.sm-gallery-lightbox__heading,
.sm-gallery-lightbox__footer {
	position: absolute;
	z-index: 2000002;
	left: 96px;
	right: 96px;
	color: #fff;
	pointer-events: none;
}
.sm-gallery-lightbox__heading {
	top: 30px;
	font-family: var(--sm-font-body);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: .12em;
	text-transform: uppercase;
	opacity: .75;
}
.sm-gallery-lightbox__footer {
	bottom: max(30px, env(safe-area-inset-bottom));
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 24px;
	padding-top: 18px;
	border-top: 1px solid rgba(255,255,255,.24);
}
.sm-gallery-lightbox__caption {
	font-family: var(--sm-font-heading);
	font-size: 30px;
	font-weight: 500;
	line-height: 1.2;
	text-wrap: balance;
}
.sm-gallery-lightbox__counter {
	flex-shrink: 0;
	font-family: var(--sm-font-body);
	font-size: 14px;
	font-variant-numeric: tabular-nums;
	letter-spacing: .1em;
	opacity: .75;
}
.wp-lightbox-overlay:not(.sm-gallery-lightbox) :is(.sm-gallery-lightbox__heading, .sm-gallery-lightbox__footer) { display: none; }
@media (max-width: 959.98px) {
	.wp-lightbox-overlay.sm-gallery-lightbox .lightbox-image-container { inset: 84px 20px 190px; }
	.sm-gallery-lightbox__heading { top: 28px; left: 20px; right: 84px; font-size: 11px; }
	.sm-gallery-lightbox__footer { left: 20px; right: 20px; bottom: max(86px, calc(env(safe-area-inset-bottom) + 70px)); gap: 16px; padding-top: 16px; }
	.sm-gallery-lightbox__caption { font-size: 25px; }
	.wp-lightbox-overlay.sm-gallery-lightbox .wp-lightbox-close-button { top: 16px; right: 20px; }
	.wp-lightbox-overlay.sm-gallery-lightbox .wp-lightbox-navigation-button { top: auto; bottom: max(20px, env(safe-area-inset-bottom)); transform: none; }
	.wp-lightbox-overlay.sm-gallery-lightbox .wp-lightbox-navigation-button-prev { left: 20px; }
	.wp-lightbox-overlay.sm-gallery-lightbox .wp-lightbox-navigation-button-next { right: 20px; }
}
@media (max-height: 540px) and (min-width: 600px) {
	.wp-lightbox-overlay.sm-gallery-lightbox .lightbox-image-container { inset: 60px 80px 84px; }
	.sm-gallery-lightbox__heading { top: 20px; left: 80px; right: 80px; }
	.sm-gallery-lightbox__footer { bottom: 16px; left: 80px; right: 80px; padding-top: 10px; }
	.sm-gallery-lightbox__caption { font-size: 22px; }
	.wp-lightbox-overlay.sm-gallery-lightbox .wp-lightbox-close-button { top: 12px; right: 16px; }
	.wp-lightbox-overlay.sm-gallery-lightbox .wp-lightbox-navigation-button { top: 50%; bottom: auto; transform: translateY(-50%); }
	.wp-lightbox-overlay.sm-gallery-lightbox .wp-lightbox-navigation-button-prev { left: 16px; }
	.wp-lightbox-overlay.sm-gallery-lightbox .wp-lightbox-navigation-button-next { right: 16px; }
}
@media (prefers-reduced-motion: reduce) {
	:is(.is-style-sm-primary, .is-style-sm-outline, .is-style-sm-light) > .wp-block-button__link { transition: none; }
	:is(.is-style-sm-primary, .is-style-sm-outline, .is-style-sm-light) > .wp-block-button__link:hover { transform: none; }
	.sm-impressions-gallery.wp-block-gallery.has-nested-images figure.wp-block-image img { transition: none; transform: none; }
}
.sm-pattern--story .is-style-sm-section-columns { align-items: stretch; gap: 0; border: 1px solid var(--sm-card-border); }
.sm-pattern--story .sm-pattern__copy { padding: clamp(28px, 4vw, 60px); background: var(--sm-color-mist); }
.sm-pattern--story .wp-block-image { height: 100%; min-height: 280px; }
.sm-pattern--story-closing .sm-pattern__inner { border: 1px solid var(--sm-card-border); padding: 40px; background: var(--sm-color-mist); }

/* Finder and standalone cards are live shared components, not page fragments. */
.sm-product-finder--fixed-location .sm-product-finder__form { grid-template-columns: repeat(2, minmax(0, 1fr)) auto; }

@media (max-width: 1099.98px) {
	:root, .editor-styles-wrapper { --sm-editorial-columns: minmax(0, 1fr); --sm-editorial-gap: 36px; }
	.sm-consultation-contact { padding-top: 28px; }
	.sm-consultation-contact::before { inset: 0 0 auto; width: auto; height: 1px; }
}
@media (max-width: 999.98px) {
	:root, .editor-styles-wrapper { --sm-space-section: 96px; }
	:is(.is-style-sm-card-grid).wp-block-columns:not(:where(.sm-home-v6 *, .sm-product-story *)) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sm-impressions-gallery.wp-block-gallery.has-nested-images { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 781px) {
	:is(.is-style-sm-section-columns).wp-block-columns:not(:where(.sm-home-v6 *, .sm-product-story *)) { grid-template-columns: 1fr; }
	.sm-pattern--hero { min-height: 540px; }
	.sm-pattern--hero-compact { min-height: 340px; }
	.sm-pattern--consultation .is-style-sm-section-columns { grid-template-columns: 1fr; }
	.sm-consultation-contact { padding: 28px 0 0; border: 0; }
}
@media (max-width: 760px) {
	:root, .editor-styles-wrapper { --sm-space-section: 80px; --sm-space-grid: 22px; --sm-editorial-gap: 28px; --sm-page-gutter: 22px; }
	:is(.is-style-sm-card-grid, .is-style-sm-closing-gallery):is(.wp-block-columns, .wp-block-gallery):not(:where(.sm-home-v6 *, .sm-product-story *)),
	.sm-pattern--trust .is-style-sm-card-grid { grid-template-columns: 1fr; }
	.sm-pattern .wp-block-buttons { align-items: stretch; }
	.sm-pattern .wp-block-button { width: 100%; }
	.sm-pattern .wp-block-button__link { width: 100%; }
	.sm-pattern .is-style-sm-text-link.wp-block-button,
	.sm-pattern .is-style-sm-text-link > .wp-block-button__link { width: auto; }
	.sm-pattern .sm-pattern__head { margin-bottom: 30px; }
	.sm-product-finder--fixed-location .sm-product-finder__form { grid-template-columns: 1fr; }
}
@media (max-width: 540px) {
	.sm-impressions-gallery.wp-block-gallery.has-nested-images { grid-template-columns: 1fr; }
}

/* Shared editorial detail components: school-details-20260911. */
.sm-school-detail :is(h1,h2,h3) { hyphens: auto; }
.sm-school-detail .wp-block-list {
	margin-block: 24px 0;
	padding-inline-start: 22px;
	font-size: var(--sm-text-body);
	line-height: var(--sm-leading-body);
}
.sm-school-detail .wp-block-list li + li { margin-top: 10px; }
.sm-school-detail .wp-block-list li::marker { color: var(--sm-color-blue); }
.sm-school-detail .wp-block-list + p { margin-top: 24px; }
.sm-detail-note { margin-top: 32px !important; }
.is-style-sm-fleet-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 28px;
}
.is-style-sm-fleet-grid > .wp-block-group { margin: 0; }
.is-style-sm-fleet-grid .sm-pattern--location-card { display: flex; flex-direction: column; }
.is-style-sm-fleet-grid .sm-pattern__copy { display: flex; flex: 1; flex-direction: column; }
.is-style-sm-fleet-grid .wp-block-buttons { margin-top: auto; padding-top: 28px; }
.sm-pattern .sm-course-price {
	color: var(--sm-color-navy);
	font-family: var(--sm-font-heading);
	font-size: var(--sm-text-section);
	font-weight: 700;
	line-height: 1.1;
}
.sm-pattern .wp-block-group.is-style-sm-data-table {
	margin-block: 32px;
	max-width: 100%;
	border: 1px solid var(--sm-card-border);
	box-shadow: var(--sm-shadow-card);
	background: var(--sm-color-white);
}
.is-style-sm-data-table .tablepress {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	font-size: var(--sm-text-body);
	line-height: var(--sm-leading-body);
	color: var(--sm-color-body);
	--text-color: var(--sm-color-body);
	--head-bg-color: var(--sm-color-navy);
	--head-text-color: var(--sm-color-white);
	--odd-bg-color: var(--sm-color-white);
	--even-bg-color: #f5f7f9;
	--hover-bg-color: var(--sm-color-mist);
	--border-color: var(--sm-color-line);
}
.is-style-sm-data-table .tablepress :is(th,td) { padding: 18px 22px; vertical-align: top; }
.is-style-sm-data-table .tablepress th { font-weight: 600; }
.is-style-sm-data-table .tablepress td:last-child { white-space: nowrap; font-weight: 600; }
.is-style-sm-data-table .tablepress a { color: var(--sm-color-link); }
.is-style-sm-data-table .tablepress a:hover { color: var(--sm-color-link-hover); }
.is-style-sm-data-table .tablepress a:focus-visible { outline: 3px solid var(--sm-color-gold); outline-offset: 3px; }
.is-style-sm-data-table + p { margin-top: 24px; }
.sm-pattern .sm-table-hint { display: none; }
@media (max-width: 689.98px) {
	.is-style-sm-fleet-grid { grid-template-columns: minmax(0,1fr); }
	.is-style-sm-data-table { overflow-x: auto; }
	.is-style-sm-data-table .tablepress { min-width: 580px; }
	.is-style-sm-data-table .tablepress-id-3 { min-width: 440px; }
	.is-style-sm-data-table .tablepress :is(th,td) { padding: 16px; }
	.sm-pattern .sm-table-hint { display: block; margin-block: 20px 0; }
}

/* Shared service/document components; typography comes from the global roles. */
.sm-service-page > .sm-pattern { margin-block: 0; }
.sm-service-header { padding-block: 60px !important; }
.sm-service-heading { max-width: 1000px; }
.sm-service-page :is(h1, h2, h3, h4, a) { overflow-wrap: anywhere; hyphens: auto; }
.sm-service-copy { max-width: var(--sm-reading-width); min-width: 0; }
.sm-service-document { margin-inline: auto; }
.sm-service-page .sm-service-editorial.wp-block-columns {
    grid-template-columns: var(--sm-editorial-columns); gap: var(--sm-editorial-gap); align-items: start;
}
.sm-service-editorial > .wp-block-column { min-width: 0; margin: 0; }
@media (min-width: 1100px) {
    .sm-service-page .sm-service-editorial--wide-heading.wp-block-columns { row-gap: 32px; }
    .sm-service-editorial--wide-heading > .wp-block-column:first-child { grid-column: 1 / -1; }
    .sm-service-editorial--wide-heading .sm-service-section-heading { max-width: 100%; }
    .sm-service-editorial--wide-heading > .wp-block-column:last-child { grid-column: 2; }
}
.sm-service-section-heading { max-width: 400px; }
.sm-service-section-heading > h2 { margin-top: 0; }
.sm-service-contact-intro { max-width: 400px; }
/* One contact card: body family throughout, with only lead/body size roles. */
.sm-service-contact .sm-consultation-contact {
    padding: clamp(20px, 3vw, 36px);
    background: var(--sm-color-white);
    border: 1px solid var(--sm-card-border);
    border-radius: var(--sm-radius);
    box-shadow: var(--sm-shadow-card);
    font-family: var(--sm-font-body);
}
.sm-service-contact .sm-consultation-contact::before { content: none; }
.sm-service-contact .sm-consultation-contact > p { margin: 0; }
.sm-service-contact .sm-consultation-contact > .sm-consultation-phone { margin: 0 0 8px; }
/* Explicit link variants; old contact compositions are a compatibility alias.
 * Choosing these Gutenberg styles also works outside the service-page wrapper. */
.is-style-sm-contact-link,
.sm-service-contact .sm-consultation-contact .is-style-sm-text-link {
    --sm-link-font-size: var(--sm-text-body);
    --sm-link-weight: 400;
    --sm-link-icon-size: 20px;
    --sm-link-icon-order: -1;
    --sm-link-gap: 12px;
    --sm-link-min-height: 44px;
}
.is-style-sm-index-link {
    --sm-link-font-size: var(--sm-text-body);
    --sm-link-padding: 12px 0;
    --sm-link-min-height: 44px;
}
.sm-service-contact .sm-consultation-contact a:not(.wp-block-button__link) {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-family: var(--sm-font-body);
    font-size: var(--sm-text-body);
    font-weight: 400;
    line-height: var(--sm-leading-body);
    color: var(--sm-color-link);
    text-decoration: none;
}
.sm-service-contact .sm-consultation-contact a[href^="mailto:"]::before {
    content: "";
    background: currentColor;
    mask: var(--sm-icon-envelope) center / contain no-repeat;
}
.sm-service-contact .sm-consultation-contact .sm-consultation-phone a::before,
.sm-service-contact .sm-consultation-contact a[href^="mailto:"]::before {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
}
.sm-service-contact .sm-consultation-contact .sm-consultation-phone a {
    font-size: var(--sm-text-lead);
    font-weight: 700;
    line-height: var(--sm-leading-lead);
}
.sm-service-contact .sm-consultation-contact > .wp-block-buttons {
    margin: 24px 0 0;
    padding-top: 16px;
    border-top: 1px solid var(--sm-color-line);
}
.sm-service-contact .sm-consultation-contact .wp-block-button__link {
    min-height: 44px;
    gap: var(--sm-link-gap, 18px);
    border: 0;
    text-align: left;
}
.sm-service-contact .sm-consultation-contact a:hover { color: var(--sm-color-link-hover); }
.sm-service-contact .sm-consultation-contact a:focus-visible {
    outline: 3px solid var(--sm-color-gold);
    outline-offset: 4px;
}
.sm-service-section-heading .sm-service-office-photo { margin-top: 36px; }
.sm-service-office-photo img { width: 100%; height: auto; }
.sm-service-office-photo figcaption { font-family: var(--sm-font-body); font-size: 14px; line-height: 1.5; color: var(--sm-color-muted); }
.sm-service-copy > .sm-service-callout { margin-block: 28px; padding: 24px 28px; background: var(--sm-color-mist); border-left: 3px solid var(--sm-color-navy); }
.sm-service-callout .sm-consultation-phone { margin: 0; }
.sm-service-callout .is-style-sm-eyebrow { margin-bottom: 10px; }
.sm-service-copy > :is(h2, h3, h4, h5, h6):not(:first-child) { margin-top: 40px; }
.sm-service-copy > :is(ul, ol) { margin-block: 20px; padding-left: 1.4em; }
.sm-service-copy > :is(ul, ol) li + li { margin-top: 8px; }
.sm-service-copy > .wp-block-image { max-width: 400px; margin-top: 28px; }
.sm-service-copy > .wp-block-image img { height: auto; }
.sm-service-copy > .wp-block-buttons + p { margin-top: 18px; }
.sm-service-page .sm-consultation-phone { margin-top: 24px; }
.sm-service-reviews .smgr-grid,
.sm-service-gallery .wp-block-gallery { margin-top: 40px; }
.sm-service-page .sm-service-function :is(input, select, textarea) { max-width: 100%; }
.sm-service-page .sm-service-function h2 { margin-bottom: 24px; }
.sm-service-page .sm-service-function h3 { margin-top: 32px; margin-bottom: 16px; }
.sm-service-payment-grid,
.sm-service-function .payment_methods { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin: 0; padding: 0; list-style: none; }
.sm-service-copy.sm-service-function:has(.payment_methods) { max-width: none; }
.sm-service-payment-intro { max-width: var(--sm-reading-width); margin-block: 24px 36px; }
.sm-service-payment-grid + .sm-service-payment-intro { margin-top: 48px; }
.sm-service-payment-grid > .sm-service-payment-card,
.sm-service-function .payment_methods > li { margin: 0; padding: 28px; border: 1px solid var(--sm-card-border); box-shadow: var(--sm-shadow-card); background: var(--sm-color-white); }
.sm-service-payment-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.sm-service-payment-heading h3 { margin: 0; }
.sm-service-payment-heading .sm-service-payment-logo { margin: 0; flex: 0 0 112px; box-shadow: none; outline: none; }
.sm-service-payment-logo img { display: block; width: 100%; max-height: 36px; object-fit: contain; object-position: right center; }
.sm-service-payment-card p:last-child { margin-bottom: 0; }
.sm-service-function .payment_methods > li > label {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px;
    margin-bottom: 22px; color: var(--sm-color-navy);
    font-family: var(--sm-font-heading); font-size: var(--sm-text-card); font-weight: 700;
}
.sm-service-function .payment_methods label img { max-width: 130px; max-height: 32px; width: auto; height: auto; }
.sm-service-function .payment_methods .payment_method_invoice > label::after { content: ""; width: 32px; height: 36px; background: url("../icons/service/file-invoice-dollar.svg") right center / contain no-repeat; }
.sm-service-function .payment_box:has(> p:empty) { display: none; }
.sm-service-function .woocommerce-info {
    display: block; padding: 24px 24px 24px 56px; border-radius: var(--sm-radius);
    width: 100%; margin-inline: 0;
    font-family: var(--sm-font-body); font-size: var(--sm-text-body); line-height: var(--sm-leading-body);
    color: var(--sm-color-body); background: var(--sm-color-mist);
}
/* Retain the existing live review widget, while sharing the site's surface and text roles. */
.sm-service-reviews .ti-widget { margin-top: 40px; }
.sm-service-page .sm-service-reviews .ti-widget[data-layout-id] .ti-review-item .ti-inner {
    padding: 28px !important;
    border: 1px solid var(--sm-card-border) !important;
    border-radius: var(--sm-radius) !important;
    background: var(--sm-color-white) !important;
    box-shadow: var(--sm-shadow-card) !important;
}
.sm-service-reviews .ti-widget .ti-review-content {
    font-family: var(--sm-font-body) !important;
    font-size: var(--sm-text-body) !important;
    line-height: var(--sm-leading-body) !important;
    font-weight: 400 !important;
    color: var(--sm-color-body) !important;
    min-height: calc(var(--sm-text-body) * var(--sm-leading-body) * 4);
}
.sm-service-reviews .ti-widget :is(.ti-name, .ti-date, .ti-read-more, .ti-load-more-reviews-button) {
    font-family: var(--sm-font-body) !important;
}
.sm-service-reviews .ti-widget :is(.ti-read-more, .ti-load-more-reviews-button) {
    color: var(--sm-color-link) !important;
    border-radius: var(--sm-radius) !important;
}
.sm-service-reviews .ti-widget :is(.ti-read-more, .ti-load-more-reviews-button):hover { color: var(--sm-color-link-hover) !important; }
.sm-service-page .sm-service-reviews .ti-widget .ti-read-more .ti-read-more-active { color: inherit !important; opacity: 1 !important; }
.sm-service-reviews .ti-widget .ti-review-content[style*="unset"] { min-height: max-content; }
.sm-service-reviews .ti-widget [tabindex]:focus-visible {
    outline: 3px solid var(--sm-color-gold) !important;
    outline-offset: 4px;
}
@media (max-width: 760px) {
    .sm-service-payment-grid, .sm-service-function .payment_methods { grid-template-columns: minmax(0, 1fr); }
    .sm-service-payment-grid > .sm-service-payment-card, .sm-service-function .payment_methods > li { padding: 24px; }
    .sm-service-payment-heading { gap: 16px; flex-wrap: wrap; }
    .sm-service-payment-heading .sm-service-payment-logo { flex-basis: 100px; }
    .sm-service-callout { padding: 22px 20px; }
}
