/*
 * Moorespeed — rules theme.json cannot express (handoff README "Custom CSS").
 * Breakpoints: nav collapses below 1100px; grids stack below 900px.
 */

/* ---------- Base ---------- */
a {
	transition: color .15s ease;
}

@media (max-width: 899px) {
	.ms-hide-mobile { display: none !important; }
}
@media (min-width: 900px) {
	.ms-show-mobile { display: none !important; }
}
@media (max-width: 1099px) {
	.ms-hide-collapsed { display: none !important; }
}
@media (min-width: 1100px) {
	.ms-show-collapsed { display: none !important; }
}

/* ---------- Eyebrow: red 44×3 bar, 14px gap, red uppercase condensed text ---------- */
.ms-eyebrow {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0;
	color: var(--wp--preset--color--red);
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--eyebrow);
	font-weight: 600;
	letter-spacing: .14em;
	line-height: 1;
	text-transform: uppercase;
}
.ms-eyebrow::before {
	content: "";
	flex: none;
	width: 44px;
	height: 3px;
	background: var(--wp--preset--color--red);
}
@media (max-width: 899px) {
	.ms-eyebrow::before { width: 28px; }
}

/* ---------- Text link: uppercase condensed, 2px red underline ---------- */
.is-style-ms-text-link a,
a.is-style-ms-text-link,
.wp-block-button.is-style-ms-text-link .wp-block-button__link {
	display: inline-block;
	padding: 0 0 4px;
	border: 0;
	border-bottom: 2px solid var(--wp--preset--color--red);
	border-radius: 0;
	background: none;
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--display);
	font-size: 17px;
	font-weight: 600;
	letter-spacing: .12em;
	line-height: 1;
	text-decoration: none;
	text-transform: uppercase;
}
.is-style-ms-text-link a:hover,
a.is-style-ms-text-link:hover,
.wp-block-button.is-style-ms-text-link .wp-block-button__link:hover {
	background: none;
	color: var(--wp--preset--color--red);
}
@media (max-width: 899px) {
	.is-style-ms-text-link a,
	a.is-style-ms-text-link,
	.wp-block-button.is-style-ms-text-link .wp-block-button__link { font-size: 16px; }
}

/* ---------- Rule grid: 2px rule-coloured gutters, children on graphite ---------- */
.ms-rule-grid {
	gap: 2px !important;
	background: var(--wp--preset--color--rule);
}
.ms-rule-grid > * {
	margin: 0 !important;
	background: var(--wp--preset--color--graphite);
}

/* ---------- Card: image zoom inside overflow hidden ---------- */
.ms-card {
	position: relative;
	overflow: hidden;
}

/* ---------- Hiring bar ---------- */
.ms-hiring-bar {
	padding: 11px 20px;
	background: var(--wp--preset--color--red);
	color: var(--wp--preset--color--white);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .08em;
	line-height: 1.4;
	text-align: center;
	text-transform: uppercase;
}
.ms-hiring-bar p { margin: 0; }
.ms-hiring-bar a { color: inherit; text-decoration: underline; }
.ms-hiring-bar a:hover { color: inherit; opacity: .85; }
.ms-hiring-bar__pipe { margin: 0 14px; opacity: .7; }
@media (max-width: 899px) {
	.ms-hiring-bar { font-size: 12px; }
}

/* ---------- Header ---------- */
.ms-header {
	gap: 24px;
	padding: 26px 64px;
	border-bottom: 1px solid var(--wp--preset--color--rule);
}
.ms-header__logo { flex: 0 1 auto; min-width: 0; margin: 0; }
.ms-header__logo img { display: block; width: auto; height: 30px; }
.ms-header__actions { gap: 8px; }
.ms-header__actions > p { margin: 0; }

.ms-call {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	background: var(--wp--preset--color--red);
	color: var(--wp--preset--color--white);
	font-family: var(--wp--preset--font-family--display);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .06em;
	text-decoration: none;
	text-transform: uppercase;
}
.ms-call:hover { background: #c81f24; color: var(--wp--preset--color--white); }

.ms-nav-primary {
	color: var(--wp--preset--color--nav);
	font-family: var(--wp--preset--font-family--display);
	font-size: 18px;
	font-weight: 600;
	letter-spacing: .08em;
	line-height: 1;
	text-transform: uppercase;
}
.ms-nav-primary .wp-block-navigation__container { gap: 30px; }
.ms-nav-primary .wp-block-navigation-item__content { padding: 6px 0; color: inherit; }
.ms-nav-primary .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--red); }
.ms-nav-primary .current-menu-item > .wp-block-navigation-item__content,
.ms-nav-primary .current-menu-ancestor > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--ink);
	box-shadow: inset 0 -3px 0 var(--wp--preset--color--red);
}
.ms-nav-primary .ms-nav-cta > .wp-block-navigation-item__content {
	padding: 12px 22px;
	background: var(--wp--preset--color--red);
	color: var(--wp--preset--color--white);
	box-shadow: none;
}
.ms-nav-primary .ms-nav-cta > .wp-block-navigation-item__content:hover { background: #c81f24; color: var(--wp--preset--color--white); }
.ms-nav-primary .wp-block-navigation-item__content:focus-visible,
.ms-call:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink);
	outline-offset: 2px;
}

/* Desktop dropdowns: pit panel, 1px rule border, 18px items, red hover, 150ms fade. */
@media (min-width: 1100px) {
	.ms-nav-primary .wp-block-navigation__submenu-icon { display: none; }
	.ms-nav-primary .has-child .wp-block-navigation__submenu-container {
		min-width: 280px;
		padding: 10px 0;
		border: 1px solid var(--wp--preset--color--rule);
		background: var(--wp--preset--color--pit);
		color: var(--wp--preset--color--nav);
		transition: opacity .15s ease, visibility .15s ease;
	}
	.ms-nav-primary .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		padding: 10px 22px;
		font-size: 18px;
		white-space: nowrap;
	}
	/* Keyboard: open on focus-within too (core disables this while the toggle icon exists). */
	.ms-nav-primary .has-child:focus-within > .wp-block-navigation__submenu-container {
		visibility: visible;
		overflow: visible;
		opacity: 1;
		width: auto;
		height: auto;
		min-width: 280px;
	}
}

/* Below 1100px: core's overlay ("mobile") menu takes over — move its 600px breakpoint up. */
@media (min-width: 600px) and (max-width: 1099px) {
	.ms-nav-primary .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.ms-nav-primary .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
@media (max-width: 1099px) {
	.ms-nav-primary .wp-block-navigation__responsive-container-open {
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		border: 1px solid var(--wp--preset--color--rule-strong);
		color: var(--wp--preset--color--ink);
	}
	.ms-nav-primary .wp-block-navigation__responsive-container-open svg { display: none; }
	.ms-nav-primary .wp-block-navigation__responsive-container-open::before {
		content: "";
		width: 20px;
		height: 2px;
		background: currentColor;
		box-shadow: 0 -8px 0 currentColor, 0 8px 0 currentColor;
	}

	/* Full-screen graphite drawer with accordion sub-menus. */
	.ms-nav-primary .wp-block-navigation__responsive-container.is-menu-open {
		padding: 16px 20px 40px;
		background: var(--wp--preset--color--graphite);
	}
	.ms-nav-primary .is-menu-open .wp-block-navigation__responsive-container-content {
		align-items: flex-start;
		padding-top: 64px;
		text-align: left;
	}
	.ms-nav-primary .is-menu-open .wp-block-navigation__submenu-container { align-items: flex-start !important; }
	.ms-nav-primary .is-menu-open .wp-block-navigation__container {
		gap: 0;
		width: 100%;
		font-size: 24px;
	}
	.ms-nav-primary .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
		flex-wrap: wrap;
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		border-bottom: 1px solid var(--wp--preset--color--rule);
	}
	.ms-nav-primary .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { padding: 16px 0; }
	.ms-nav-primary .is-menu-open .ms-nav-cta { border-bottom: 0 !important; margin-top: 24px; }
	.ms-nav-primary .is-menu-open .ms-nav-cta > .wp-block-navigation-item__content { padding: 14px 22px; }
	.ms-nav-primary .is-menu-open .wp-block-navigation__submenu-icon {
		display: flex !important;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		margin: 0;
		color: var(--wp--preset--color--ink);
	}
	.ms-nav-primary .is-menu-open .wp-block-navigation__submenu-icon svg { width: 14px; height: 14px; transition: transform .15s ease; }
	.ms-nav-primary .is-menu-open .has-child.ms-acc-open > .wp-block-navigation-submenu__toggle svg { transform: rotate(180deg); }
	.ms-nav-primary .is-menu-open .has-child > .wp-block-navigation__submenu-container {
		width: 100%;
		padding: 0 0 12px 16px !important;
		font-size: 18px;
		color: var(--wp--preset--color--muted);
	}
	.ms-nav-primary .is-menu-open .has-child:not(.ms-acc-open) > .wp-block-navigation__submenu-container { display: none !important; }
	.ms-nav-primary .is-menu-open .has-child > .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 8px 0; }
}

@media (max-width: 899px) {
	.ms-header { padding: 16px 20px; }
	.ms-header__logo img { width: 100%; max-width: 220px; height: auto; }
}

/* ---------- Page hero (handoff §2.1) ---------- */
.ms-page-hero.wp-block-cover {
	align-items: flex-end;
	margin: 0;
	padding: 0 64px 56px;
}
.ms-page-hero .wp-block-cover__inner-container { width: 100%; max-width: none; }
.ms-page-hero__title {
	margin: 0;
	color: var(--wp--preset--color--ink);
	line-height: .86;
	letter-spacing: -.01em;
}

/* Breadcrumbs */
.ms-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	margin: 0 0 18px;
	padding: 0;
	list-style: none;
	color: var(--wp--preset--color--muted);
	font-family: var(--wp--preset--font-family--display);
	font-size: 17px;
	font-weight: 600;
	letter-spacing: .14em;
	line-height: 1;
	text-transform: uppercase;
}
.ms-breadcrumbs a { color: inherit; text-decoration: none; }
.ms-breadcrumbs a:hover { color: var(--wp--preset--color--red); }
.ms-breadcrumbs__sep { padding: 0 .5em; color: var(--wp--preset--color--red); white-space: pre; }
.ms-breadcrumbs [aria-current="page"] { color: var(--wp--preset--color--ink); }

@media (max-width: 899px) {
	.ms-page-hero.wp-block-cover {
		display: block;
		min-height: 0 !important;
		padding: 240px 0 0;
	}
	.ms-page-hero > .wp-block-cover__image-background,
	.ms-page-hero > .wp-block-cover__background {
		height: 240px;
		bottom: auto;
	}
	.ms-page-hero .wp-block-cover__inner-container { padding: 28px 20px 32px; }
	.ms-breadcrumbs ol { margin-bottom: 14px; font-size: 14px; }
}

/* ---------- About sub-nav (handoff §2.2) ---------- */
.ms-subnav {
	margin: 0;
	padding: 0 64px;
	border-bottom: 1px solid var(--wp--preset--color--rule);
}
.ms-nav-about { width: 100%; }
.ms-nav-about .wp-block-navigation__container {
	flex-wrap: nowrap;
	gap: 40px;
	color: var(--wp--preset--color--muted);
	font-family: var(--wp--preset--font-family--display);
	font-size: 18px;
	font-weight: 600;
	letter-spacing: .1em;
	line-height: 1;
	text-transform: uppercase;
}
.ms-nav-about .wp-block-navigation-item__content { padding: 22px 0; color: inherit; white-space: nowrap; }
.ms-nav-about .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--red); }
.ms-nav-about .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--ink);
	box-shadow: inset 0 -3px 0 var(--wp--preset--color--red);
}
@media (max-width: 899px) {
	.ms-subnav { padding: 0 20px; }
	.ms-nav-about .wp-block-navigation__container {
		overflow-x: auto;
		gap: 24px;
		font-size: 16px;
		scrollbar-width: none;
	}
	.ms-nav-about .wp-block-navigation-item__content { padding: 16px 0; }
}

/* ---------- Main content area ---------- */
.ms-main {
	padding-top: var(--wp--preset--spacing--section);
	padding-bottom: var(--wp--preset--spacing--section);
}

/* ---------- Listings: archive, search, 404 ---------- */
.ms-title-band {
	padding: var(--wp--preset--spacing--block) 64px 40px;
	border-bottom: 1px solid var(--wp--preset--color--rule);
}
.ms-title-band h1 { margin: 0; }
.ms-post-query { padding: 0 0 var(--wp--preset--spacing--section); }
.ms-post-grid { margin: 0; border-top: 2px solid var(--wp--preset--color--rule); }
.ms-card .wp-block-post-featured-image { margin: 0; overflow: hidden; }
.ms-card .wp-block-post-featured-image img { transition: transform .4s ease-out; }
.ms-card:hover .wp-block-post-featured-image img { transform: scale(1.03); }
.ms-card__body { padding: 36px 40px 44px; }
.ms-card__body .wp-block-post-title { margin: 12px 0 16px; }
.ms-card__body .wp-block-post-title a { text-decoration: none; }
.ms-card__meta,
.ms-card__body .wp-block-post-excerpt { color: var(--wp--preset--color--muted); font-size: 17px; }
.ms-card__meta { font-family: var(--wp--preset--font-family--display); letter-spacing: .1em; text-transform: uppercase; }
.ms-pagination { padding: 40px 64px 0; font-family: var(--wp--preset--font-family--display); letter-spacing: .1em; text-transform: uppercase; }
@media (max-width: 899px) {
	.ms-title-band { padding: 40px 20px 28px; }
	.ms-post-grid { grid-template-columns: 1fr !important; }
	.ms-card__body { padding: 24px 20px 32px; }
	.ms-pagination { padding: 28px 20px 0; }
}

/* ---------- Contact band ---------- */
.ms-contact-band {
	gap: 60px;
	margin: 0;
	padding: 72px 64px;
	background: var(--wp--preset--color--red);
	color: var(--wp--preset--color--white);
}
.ms-contact-band__title {
	max-width: 820px;
	margin: 0;
	color: inherit;
	font-size: 56px;
	line-height: .95;
}
.ms-contact-band__details { flex: none; gap: 6px; align-items: flex-end; font-size: 18px; text-align: right; }
.ms-contact-band__details p { margin: 0; }
.ms-contact-band__phone a {
	color: inherit;
	font-family: var(--wp--preset--font-family--display);
	font-size: 44px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
}
.ms-contact-band a:hover { color: inherit; opacity: .85; }
@media (max-width: 899px) {
	.ms-contact-band { flex-direction: column; align-items: flex-start !important; gap: 20px; padding: 44px 20px; }
	.ms-contact-band__title { font-size: 36px; }
	.ms-contact-band__details { align-items: flex-start; text-align: left; }
	.ms-contact-band__phone a { font-size: 34px; }
}

/* ---------- Footer ---------- */
.ms-footer {
	margin: 0;
	padding: 72px 64px 40px;
	background: var(--wp--preset--color--pit);
	color: var(--wp--preset--color--muted);
	font-size: 16px;
	line-height: 1.6;
}
.ms-footer a { color: inherit; text-decoration: none; }
.ms-footer a:hover { color: var(--wp--preset--color--red); }
.ms-footer ul { margin: 0; padding: 0; list-style: none; }
.ms-footer p { margin: 0; }
.ms-footer__cols {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
	gap: 48px;
	padding-bottom: 56px;
	border-bottom: 1px solid var(--wp--preset--color--rule);
}
.ms-footer__brand { display: flex; flex-direction: column; gap: 18px; }
.ms-footer__logo { display: block; width: auto; max-width: 100%; height: auto; max-height: 26px; }
.ms-footer__phone a {
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--display);
	font-size: 26px;
	font-weight: 700;
}
.ms-footer__heading {
	margin-bottom: 16px !important;
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--display);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .16em;
	line-height: 1;
	text-transform: uppercase;
}
.ms-footer__links { display: flex; flex-direction: column; gap: 10px; }
.ms-footer__links li { line-height: 1.4; }
.ms-footer__mobile { display: none; }
.ms-footer__bottom {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	padding-top: 28px;
	color: var(--wp--preset--color--faint);
	font-size: 14px;
}
.ms-footer__social {
	display: flex;
	gap: 24px;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
}
@media (max-width: 899px) {
	.ms-footer { padding: 40px 20px 32px; }
	.ms-footer__cols { display: none; }
	.ms-footer__mobile { display: flex; flex-direction: column; gap: 24px; padding-bottom: 24px; }
	.ms-footer__mobile-nav {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px 20px;
		color: var(--wp--preset--color--ink);
		font-family: var(--wp--preset--font-family--display);
		font-size: 17px;
		font-weight: 600;
		letter-spacing: .08em;
		text-transform: uppercase;
	}
	.ms-footer__bottom { flex-direction: column-reverse; gap: 24px; padding-top: 0; }
	.ms-footer__legal { padding-top: 20px; border-top: 1px solid var(--wp--preset--color--rule); }
}

/* Template sections (hiring bar, header, hero, main, contact band, footer) stack flush. */
.wp-site-blocks > * { margin-block-start: 0; }

/* ---------- Landing templates (front page): sections are full-bleed ---------- */
.ms-landing > .wp-block-post-content > * { margin-block-start: 0; }

/* ---------- Home hero (handoff §1.1) ---------- */
.ms-home-hero.wp-block-cover {
	align-items: flex-end;
	margin: 0;
	padding: 0 64px 64px;
}
.ms-home-hero .wp-block-cover__inner-container { width: 100%; max-width: none; }
.ms-home-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 60px;
	align-items: end;
}
.ms-home-hero__copy > * { margin: 0; }
.ms-home-hero .ms-eyebrow { margin-bottom: 18px; font-size: 20px; }
.ms-home-hero h1 { line-height: .88; letter-spacing: -.01em; }
.ms-lead {
	max-width: 640px;
	margin-top: 26px !important;
	color: var(--wp--preset--color--ink-2);
	font-size: 21px;
	line-height: 1.5;
}
.ms-stat-stack { display: flex; flex-direction: column; gap: 2px; }
.ms-stat-stack > p { margin: 0; }
.ms-stat {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	margin: 0;
	padding: 16px 20px;
	background: rgba(18, 19, 21, .85);
	font-family: var(--wp--preset--font-family--display);
	line-height: 1;
	text-transform: uppercase;
}
.ms-stat__label { color: var(--wp--preset--color--muted); font-size: 16px; letter-spacing: .1em; }
.ms-stat__value { color: var(--wp--preset--color--ink); font-size: 34px; font-weight: 700; }
a.ms-stat--call { background: var(--wp--preset--color--red); color: var(--wp--preset--color--white); text-decoration: none; }
a.ms-stat--call:hover { background: #c81f24; color: var(--wp--preset--color--white); }
a.ms-stat--call .ms-stat__label,
a.ms-stat--call .ms-stat__value { color: inherit; }
a.ms-stat--call .ms-stat__value { font-size: 30px; }

@media (max-width: 899px) {
	.ms-home-hero.wp-block-cover { display: block; min-height: 0 !important; padding: 300px 0 0; }
	.ms-home-hero > .wp-block-cover__image-background,
	.ms-home-hero > .wp-block-cover__background { height: 300px; bottom: auto; }
	.ms-home-hero .wp-block-cover__inner-container { padding: 28px 20px 36px; }
	.ms-home-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 26px; }
	.ms-home-hero .ms-eyebrow { margin-bottom: 14px; font-size: 15px; }
	.ms-home-hero h1 { font-size: 52px !important; line-height: .9; }
	.ms-lead { margin-top: 18px !important; font-size: 17px; }
	.ms-stat-stack { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ms-stat-stack > .ms-stat-call { grid-column: 1 / -1; order: -1; }
	.ms-stat-stack > .ms-stat { flex-direction: column; gap: 4px; padding: 12px 16px; background: var(--wp--preset--color--surface); }
	.ms-stat-stack .ms-stat__label { font-size: 13px; }
	.ms-stat-stack .ms-stat__value { font-size: 24px; }
	a.ms-stat--call { align-items: center; padding: 16px 18px; }
	a.ms-stat--call .ms-stat__label { font-size: 15px; }
	a.ms-stat--call .ms-stat__value { font-size: 26px; }
}

/* ---------- Marque strip (handoff §1.2) ---------- */
.ms-marque {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 0;
	padding: 30px 64px;
	border-bottom: 1px solid var(--wp--preset--color--rule);
	color: var(--wp--preset--color--slash);
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(26px, 2.5vw, 36px);
	font-weight: 700;
	letter-spacing: .02em;
	line-height: 1;
	text-transform: uppercase;
}
.ms-marque__name { color: var(--wp--preset--color--ink); white-space: nowrap; }
@media (max-width: 899px) {
	.ms-marque {
		flex-wrap: wrap;
		justify-content: flex-start;
		gap: 4px 12px;
		padding: 22px 20px;
		border-top: 1px solid var(--wp--preset--color--rule);
		font-size: 22px;
	}
}

/* ---------- Intro split (handoff §1.3) ---------- */
.ms-intro-split.wp-block-columns {
	gap: 80px;
	margin: 0;
	padding: var(--wp--preset--spacing--section) 64px;
}
.ms-intro-split h2 { margin: 0; line-height: .95; text-wrap: pretty; }
.ms-intro-split__body { display: flex; flex-direction: column; gap: 28px; color: var(--wp--preset--color--body); line-height: 1.65; }
.ms-intro-split__body > * { margin: 0; }
@media (max-width: 899px) {
	.ms-intro-split.wp-block-columns { flex-wrap: wrap !important; gap: 20px; padding: 56px 20px; }
	.ms-intro-split.wp-block-columns > .wp-block-column { flex-basis: 100% !important; }
	.ms-intro-split h2 { font-size: 40px !important; }
	.ms-intro-split__body { gap: 20px; }
}

/* ---------- Service cards (handoff §1.4) ---------- */
.ms-service-cards { margin: 0; border-top: 2px solid var(--wp--preset--color--rule); }
.ms-card__image { margin: 0; overflow: hidden; }
.ms-card__image img {
	display: block;
	width: 100%;
	height: 300px;
	object-fit: cover;
	transition: transform .4s ease-out;
}
.ms-card:hover .ms-card__image img { transform: scale(1.03); }
.ms-card__body > * { margin: 0; }
.ms-card__num {
	margin-bottom: 6px !important;
	color: var(--wp--preset--color--red);
	font-family: var(--wp--preset--font-family--display);
	font-size: 18px;
	font-weight: 700;
	line-height: 1;
}
.ms-card__body h3 { margin-bottom: 14px !important; line-height: 1; }
.ms-card__copy { margin-bottom: 24px !important; color: var(--wp--preset--color--muted); font-size: 17px; line-height: 1.6; }
/* Whole card clickable: stretch the "Read more" link over the card. */
.ms-card__link a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
@media (max-width: 899px) {
	.ms-service-cards { grid-template-columns: minmax(0, 1fr) !important; }
	.ms-card__image img { height: 210px; }
}

/* ---------- Storage feature (handoff §1.5) ---------- */
.ms-storage {
	gap: 0 !important;
	margin: 0;
	border-top: 2px solid var(--wp--preset--color--rule);
}
.ms-storage__image { position: relative; min-height: 640px; margin: 0; }
.ms-storage__image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ms-storage__panel {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 28px;
	margin: 0;
	padding: 80px 64px;
	background: var(--wp--preset--color--pit);
}
.ms-storage__panel > * { margin: 0; }
.ms-storage__panel h2 { line-height: .95; text-wrap: pretty; }
@media (max-width: 899px) {
	.ms-storage { grid-template-columns: minmax(0, 1fr) !important; }
	.ms-storage__image { min-height: 0; height: 280px; }
	.ms-storage__panel { padding: 40px 20px 48px; }
	.ms-storage__panel h2 { font-size: 34px !important; }
	.ms-storage__panel .wp-block-buttons,
	.ms-storage__panel .wp-block-button { width: 100%; }
	.ms-storage__panel .wp-block-button__link { display: block; width: 100%; text-align: center; }
}

/* ---------- Statement split (handoff §2.3) ---------- */
.ms-statement-split {
	display: grid;
	grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
	gap: 80px;
	align-items: end;
	margin: 0;
	padding: var(--wp--preset--spacing--section) 64px;
}
.ms-statement-split > * { margin: 0; }
.ms-statement {
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	line-height: .95;
	text-transform: uppercase;
	text-wrap: pretty;
}
.ms-statement-split > :last-child { color: var(--wp--preset--color--body); line-height: 1.65; }
@media (max-width: 899px) {
	.ms-statement-split { grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 56px 20px; }
	.ms-statement { font-size: 36px !important; }
}

/* ---------- Image and text split (handoff §2.4) ---------- */
.ms-image-text-split {
	margin: 0;
	border-top: 2px solid var(--wp--preset--color--rule);
	border-bottom: 2px solid var(--wp--preset--color--rule);
}
.ms-image-text-split__image { position: relative; min-height: 620px; margin: 0; }
.ms-image-text-split__image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.is-style-ms-image-right > .ms-image-text-split__image { order: 2; }
.ms-image-text-split__panel {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 24px;
	padding: 80px 64px;
}
.ms-image-text-split__panel > * { margin: 0; }
.ms-image-text-split__panel .ms-eyebrow { font-size: 17px; }
.ms-image-text-split__panel h2 { line-height: .95; }
.ms-image-text-split__copy { display: flex; flex-direction: column; gap: 18px; color: var(--wp--preset--color--body); font-size: 17px; line-height: 1.65; }
.ms-image-text-split__copy p { margin: 0; }
@media (max-width: 899px) {
	.ms-image-text-split { grid-template-columns: minmax(0, 1fr) !important; }
	.ms-image-text-split__image { min-height: 0; height: 280px; }
	.is-style-ms-image-right > .ms-image-text-split__image { order: 0; }
	.ms-image-text-split__panel { padding: 40px 20px 48px; }
	.ms-image-text-split__panel h2 { font-size: 34px !important; }
}

/* ---------- Heading, text and mosaic gallery (handoff §2.5) ---------- */
.ms-heading-text-gallery { margin: 0; padding: var(--wp--preset--spacing--section) 64px; }
.ms-heading-text-gallery__intro.wp-block-columns { gap: 80px; margin: 0 0 56px; }
.ms-heading-text-gallery h2 { margin: 0; line-height: .9; }
.ms-heading-text-gallery__copy { display: flex; flex-direction: column; gap: 18px; color: var(--wp--preset--color--body); line-height: 1.65; }
.ms-heading-text-gallery__copy > * { margin: 0; }

.wp-block-gallery.is-style-ms-mosaic {
	display: grid !important;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr);
	grid-template-rows: 260px 260px;
	gap: 20px !important;
	margin: 0;
}
.wp-block-gallery.is-style-ms-mosaic.has-nested-images figure.wp-block-image:not(#individual-image) {
	width: auto !important;
	height: 100%;
	margin: 0 !important;
}
.wp-block-gallery.is-style-ms-mosaic.has-nested-images figure.wp-block-image:first-child { grid-row: span 2; }
.wp-block-gallery.is-style-ms-mosaic.has-nested-images figure.wp-block-image img {
	width: 100%;
	height: 100% !important;
	object-fit: cover;
}
@media (max-width: 899px) {
	.ms-heading-text-gallery { padding: 56px 20px; }
	.ms-heading-text-gallery__intro.wp-block-columns { flex-wrap: wrap !important; gap: 20px; margin-bottom: 32px; }
	.ms-heading-text-gallery__intro.wp-block-columns > .wp-block-column { flex-basis: 100% !important; }
	.ms-heading-text-gallery h2 { font-size: 48px !important; }
	.wp-block-gallery.is-style-ms-mosaic {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: 220px;
		grid-auto-rows: 150px;
		gap: 8px !important;
	}
	.wp-block-gallery.is-style-ms-mosaic.has-nested-images figure.wp-block-image:first-child { grid-column: 1 / -1; grid-row: auto; }
}

/* ---------- Experience grid (handoff §2.6) ---------- */
.ms-experience { margin: 0; padding: 0 64px var(--wp--preset--spacing--section); }
.ms-experience__head {
	gap: 60px;
	margin: 0 0 40px;
	padding-top: 56px;
	border-top: 1px solid var(--wp--preset--color--rule);
}
.ms-experience__head > * { margin: 0; }
.ms-experience__head h2 { line-height: .95; }
.ms-experience__intro { max-width: 420px; color: var(--wp--preset--color--muted); font-size: 17px; line-height: 1.6; }
.ms-exp-grid { margin: 0; border: 2px solid var(--wp--preset--color--rule); }
.ms-exp-cell { display: flex; flex-direction: column; gap: 8px; padding: 28px 28px 32px; }
.ms-exp-cell--wide { grid-column: span 2; }
.ms-exp-cell__label {
	margin: 0 0 6px;
	color: var(--wp--preset--color--red);
	font-size: 24px;
	line-height: 1;
}
.ms-exp-cell__models {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
	color: var(--wp--preset--color--ink-2);
	font-size: 17px;
	line-height: 1.4;
}
@media (max-width: 899px) {
	.ms-experience { padding: 0 20px 56px; }
	.ms-experience__head { flex-direction: column; align-items: flex-start !important; gap: 14px; padding-top: 40px; }
	.ms-experience__head h2 { font-size: 34px !important; }
	.ms-exp-grid { display: block; border: 0; background: none; }
	.ms-exp-cell {
		display: grid;
		grid-template-columns: 96px minmax(0, 1fr);
		gap: 12px;
		padding: 14px 0;
		border-bottom: 1px solid var(--wp--preset--color--rule);
		background: none;
	}
	.ms-exp-cell__label { margin: 0; font-size: 18px; }
	.ms-exp-cell__models { display: block; font-size: 15px; }
	.ms-exp-cell__models li { display: inline; }
	.ms-exp-cell__models li:not(:last-child)::after { content: ", "; }
}

/* Block-built pages: full-bleed sections bring their own padding. */
.ms-main:has(> .wp-block-post-content > .alignfull:first-child) { padding-top: 0; }
.ms-main:has(> .wp-block-post-content > .alignfull:last-child) { padding-bottom: 0; }
.wp-block-post-content > .alignfull { margin-block-start: 0; }
.ms-marque-wrap { margin: 0; }

/* Desktop header between the nav breakpoint (1100px) and the 1440px design: scale the
   logo, nav type, gaps and padding together so the full nav fits without squashing. */
@media (min-width: 1100px) {
	.ms-header { padding-right: clamp(32px, 4.445vw, 64px); padding-left: clamp(32px, 4.445vw, 64px); }
	.ms-header__logo { flex: none; }
	.ms-header__logo img { width: auto !important; max-width: none; height: clamp(20px, 2.084vw, 30px) !important; }
	.ms-nav-primary { font-size: clamp(15px, 1.25vw, 18px); letter-spacing: clamp(.05em, .0055vw + .0025em, .08em); }
	.ms-nav-primary .wp-block-navigation__container { gap: clamp(14px, 2.084vw, 30px); }
	.ms-nav-primary .ms-nav-cta > .wp-block-navigation-item__content { padding: 12px clamp(14px, 1.53vw, 22px); }
}
