/* ==========================================================================
   Sections: logos, split (image + text), services grid, why-us stacked cards,
   reviews, CTA band, cards, steps, map, contact/careers helpers.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Trusted by many (badges)
   -------------------------------------------------------------------------- */
.mm-logos { border-bottom: 1px solid var(--mm-line); }
.mm-logos > * + * { margin-top: 1.75rem !important; }
.mm-logos__head { text-align: center; }
.mm-eyebrow-heading { font-family: var(--mm-cond) !important; font-size: .875rem !important; font-weight: 700 !important; letter-spacing: .22em !important; color: var(--mm-muted) !important; line-height: 1.4 !important; }
.mm-logos__row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-left: 1px solid var(--mm-line); }
.mm-logos__row > * { display: grid !important; place-items: center; padding: clamp(18px, 3vw, 34px); border-right: 1px solid var(--mm-line); transition: background-color .4s var(--mm-ease); }
.mm-logos__row > *:hover { background: var(--mm-sand); }
.mm-logos__row img { height: clamp(44px, 5vw, 70px); width: auto; max-width: 100%; object-fit: contain; filter: grayscale(1) contrast(1.05); opacity: .78; transition: filter .45s var(--mm-ease), opacity .45s, transform .45s var(--mm-ease); }
.mm-logos__row > *:hover img { filter: none; opacity: 1; transform: scale(1.04); }
@media (max-width: 700px) { .mm-logos__row { grid-template-columns: repeat(2, 1fr); } .mm-logos__row > * { border-bottom: 1px solid var(--mm-line); } }

/* --------------------------------------------------------------------------
   Split: photo + copy. Photos sit over an angled line pattern (brand rule:
   patterns partly hidden behind photography), sharp corners, parallelogram cut.
   -------------------------------------------------------------------------- */
.mm-split-section { overflow: hidden; }
.mm-split { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
.mm-split--reverse .mm-split__media { order: 2; }
.mm-split__media { position: relative; z-index: 1; }
.mm-split__media .wp-block-image, .mm-split__media figure { position: relative; overflow: hidden; clip-path: polygon(0 0, 100% 0, 100% 100%, 7% 100%); }
.mm-split--reverse .mm-split__media figure { clip-path: polygon(0 0, 100% 0, 93% 100%, 0 100%); }
.mm-split__media img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; transition: transform 1.2s var(--mm-ease); }
.mm-split:hover .mm-split__media img { transform: scale(1.04); }
.mm-split__media::after {
	/* orange rule offset behind the photo */
	content: "";
	position: absolute;
	left: -14px;
	bottom: -14px;
	width: 42%;
	height: 4px;
	background: var(--mm-orange);
}
.mm-split__body { display: flex; flex-direction: column; gap: 1.15rem; }
.mm-split__body > * { margin: 0 !important; }
.mm-split__body .mm-h-display { margin-bottom: .5rem !important; }
.mm-split__body .wp-block-buttons { margin-top: .75rem !important; }
.mm-split > .mm-lines { left: auto; right: -9vw; top: 50%; translate: 0 calc(-50% + var(--mm-parallax, 0px)); --mm-lines-color: var(--mm-sand); }
.mm-split--reverse > .mm-lines { right: auto; left: -9vw; }
.mm-split-section:nth-of-type(even) { background: var(--mm-sand); }
.mm-split-section:nth-of-type(even) .mm-split > .mm-lines { --mm-lines-color: #fff; }
@media (max-width: 900px) {
	.mm-split { grid-template-columns: 1fr; }
	.mm-split--reverse .mm-split__media { order: 0; }
	.mm-split > .mm-lines { display: none; }
}

/* --------------------------------------------------------------------------
   Services grid (home, services index, service-areas index)
   -------------------------------------------------------------------------- */
.mm-services { overflow: hidden; }
.mm-services > .mm-lines { right: -6vw; bottom: -6%; top: auto; --mm-lines-color: var(--mm-navy-2); width: clamp(260px, 40vw, 640px); }
.mm-services .mm-head .mm-lead { color: rgb(255 255 255 / .74); }
.mm-services__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1px solid var(--mm-navy-3); border-left: 1px solid var(--mm-navy-3); }
@media (max-width: 1280px) { .mm-services__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 900px) { .mm-services__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .mm-services__grid { grid-template-columns: 1fr; } }
.mm-service-card {
	--mx: 50%; --my: 0%;
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	min-height: 320px;
	padding: clamp(24px, 2.4vw, 36px);
	border-right: 1px solid var(--mm-navy-3);
	border-bottom: 1px solid var(--mm-navy-3);
	color: rgb(255 255 255 / .74);
	transition: background-color .5s var(--mm-ease);
}
.mm-service-card > * { margin: 0 !important; }
.mm-service-card::before {
	/* pointer spotlight */
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: radial-gradient(360px circle at var(--mx) var(--my), rgb(225 75 38 / .16), transparent 60%);
	opacity: 0;
	transition: opacity .4s;
}
.mm-service-card::after {
	/* orange rule grows along the bottom */
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	height: 3px;
	width: 100%;
	background: var(--mm-orange);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .6s var(--mm-ease);
}
.mm-service-card:hover { background: var(--mm-navy-2); }
.mm-service-card:hover::before { opacity: 1; }
.mm-service-card:hover::after { transform: scaleX(1); }
.mm-service-card__badge {
	width: 108px;
	height: 92px;
	background: var(--mm-blue);
	-webkit-mask-position: left bottom; mask-position: left bottom;
	-webkit-mask-size: contain; mask-size: contain;
	-webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
	transition: background-color .45s var(--mm-ease), transform .6s var(--mm-ease);
}
.mm-service-card:hover .mm-service-card__badge { background: var(--mm-orange); transform: translateY(-4px) rotate(-3deg); }
.mm-service-card__pin { width: 34px; height: 34px; background: var(--mm-orange); -webkit-mask: var(--mm-i-pin) center / contain no-repeat; mask: var(--mm-i-pin) center / contain no-repeat; }
.mm-service-card__title { color: #fff !important; margin-top: 1.25rem !important; }
.mm-service-card__title a { color: inherit; text-decoration: none; }
.mm-service-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; } /* whole card clickable */
.mm-service-card__text { font-size: .9688rem; line-height: 1.6; }
.mm-service-card .mm-link-arrow { color: #fff; position: relative; z-index: 2; margin-top: auto !important; padding-top: .5rem; }
.mm-service-card:hover .mm-link-arrow a::after { width: 46px; }
.mm-services__cta { justify-content: center; margin-top: clamp(2rem, 4vw, 3rem) !important; }
.mm-service-card--area { min-height: 240px; }

/* --------------------------------------------------------------------------
   Why choose us: sticky stacked cards (Logiten). Each card sticks a little
   lower than the previous one; the stack reads as a deck while scrolling.
   -------------------------------------------------------------------------- */
.mm-why { overflow: clip; }
.mm-why > .mm-why__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.5rem clamp(2rem, 5vw, 5rem); align-items: end; }
.mm-why > .mm-why__head > * { margin: 0 !important; }
.mm-why__head .mm-lead { color: rgb(255 255 255 / .74); }
.mm-why__stack { display: grid; gap: 18px; }
.mm-why-card {
	position: sticky;
	top: calc(var(--wp--custom--header--compact) + 24px);
	display: grid;
	grid-template-columns: 120px minmax(0, 1fr);
	gap: clamp(20px, 4vw, 56px);
	align-items: start;
	padding: clamp(28px, 4vw, 52px);
	background: var(--mm-navy-2);
	border: 1px solid var(--mm-navy-3);
	border-top: 3px solid var(--mm-orange);
	box-shadow: 0 -24px 40px -28px rgb(0 0 0 / .55);
	transform-origin: center top;
}
.mm-why-card:nth-child(2) { top: calc(var(--wp--custom--header--compact) + 40px); }
.mm-why-card:nth-child(3) { top: calc(var(--wp--custom--header--compact) + 56px); }
.mm-why-card:nth-child(4) { top: calc(var(--wp--custom--header--compact) + 72px); }
.mm-why-card:nth-child(5) { top: calc(var(--wp--custom--header--compact) + 88px); }
.mm-why-card:nth-child(6) { top: calc(var(--wp--custom--header--compact) + 104px); }
@supports (animation-timeline: view()) {
	.mm-why-card { animation: mm-stack linear both; animation-timeline: view(); animation-range: exit-crossing 0% exit-crossing 60%; }
	@keyframes mm-stack { to { transform: scale(.94); filter: brightness(.7); } }
}
.mm-why-card > * { margin: 0 !important; }
.mm-why-card__body { display: grid; gap: .9rem; color: rgb(255 255 255 / .78); max-width: 760px; }
.mm-why-card__body > * { margin: 0 !important; }
.mm-why-card__body h3, .mm-why-card__body h4 { color: #fff; font-size: clamp(1.4rem, 2.4vw, 2rem) !important; font-family: var(--mm-display) !important; font-weight: 400 !important; letter-spacing: .01em !important; line-height: 1 !important; }
.mm-why-card__icon {
	width: 96px;
	height: 96px;
	background: var(--mm-orange);
	-webkit-mask: var(--mm-ui) center / 64px no-repeat;
	mask: var(--mm-ui) center / 64px no-repeat;
}
.mm-why > .wp-block-buttons { justify-content: center; }
@media (max-width: 781px) {
	.mm-why > .mm-why__head { grid-template-columns: 1fr; }
	.mm-why-card { grid-template-columns: 1fr; position: relative; top: auto !important; }
	.mm-why-card__icon { width: 64px; height: 64px; -webkit-mask-size: 48px; mask-size: 48px; }
}

/* UI icons (Freepik, recoloured by mask) */
.mm-ui--shield { --mm-ui: url("../../icons/shield.svg"); }
.mm-ui--truck { --mm-ui: url("../../icons/truck.svg"); }
.mm-ui--tag { --mm-ui: url("../../icons/tag.svg"); }
.mm-ui--clock { --mm-ui: url("../../icons/clock.svg"); }
.mm-ui--badge { --mm-ui: url("../../icons/badge.svg"); }
.mm-ui--star { --mm-ui: url("../../icons/star.svg"); }
.mm-ui--handshake { --mm-ui: url("../../icons/handshake.svg"); }

/* --------------------------------------------------------------------------
   Reviews (Trustindex widget restyled to the brand)
   -------------------------------------------------------------------------- */
.mm-reviews .mm-head { align-items: end; }
.mm-reviews__widget { position: relative; }
.mm-reviews__widget .ti-widget { font-family: var(--mm-body) !important; }
.mm-reviews__widget .ti-widget .ti-review-item > .ti-inner,
.mm-reviews__widget .ti-widget .ti-review-item .ti-inner {
	background: #fff !important;
	border: 1px solid var(--mm-line) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 24px !important;
	transition: transform .5s var(--mm-ease), border-color .4s, box-shadow .5s var(--mm-ease) !important;
}
.mm-reviews__widget .ti-widget .ti-review-item:hover .ti-inner { transform: translateY(-4px); border-color: var(--mm-orange) !important; box-shadow: var(--mm-shadow) !important; }
.mm-reviews__widget .ti-widget .ti-name { font-family: var(--mm-cond) !important; font-weight: 700 !important; letter-spacing: .04em !important; color: var(--mm-navy) !important; text-transform: uppercase; }
.mm-reviews__widget .ti-widget .ti-review-content, .mm-reviews__widget .ti-widget .ti-review-text-container { color: var(--mm-ink) !important; font-size: .9688rem !important; line-height: 1.6 !important; }
.mm-reviews__widget .ti-widget .ti-profile-img img { border-radius: 0 !important; }
.mm-reviews__widget .ti-widget .ti-controls .ti-next, .mm-reviews__widget .ti-widget .ti-controls .ti-prev { border-radius: 0 !important; background: var(--mm-navy) !important; }
.mm-reviews__widget .ti-widget .ti-footer, .mm-reviews__widget .ti-widget .ti-rating-text { font-family: var(--mm-cond) !important; }
.mm-reviews__widget .ti-widget .ti-footer .ti-large-logo img { filter: none; }

/* --------------------------------------------------------------------------
   CTA band (global "Ready to Make Your Move?", home "Book your free estimate")
   -------------------------------------------------------------------------- */
.mm-cta-band { position: relative; isolation: isolate; overflow: hidden; background: var(--mm-orange); color: #fff; padding: clamp(64px, 8vw, 120px) var(--mm-gutter); }
.mm-cta-band::before {
	/* tone-on-tone typographic pattern (brand: red on orange) */
	content: "MOVE WITHOUT LIMITS MOVE WITHOUT LIMITS MOVE WITHOUT LIMITS MOVE WITHOUT LIMITS" / "";
	position: absolute;
	left: -5%;
	right: -5%;
	top: 50%;
	z-index: -1;
	font-family: var(--mm-display);
	font-size: clamp(5rem, 14vw, 13rem);
	line-height: .9;
	font-style: oblique 10deg;
	white-space: nowrap;
	color: var(--mm-red);
	opacity: .22;
	top: auto;
	bottom: -.12em;
	translate: calc(var(--mm-parallax, 0px) * 3) 0;
	pointer-events: none;
}
.mm-cta-band__inner { max-width: var(--mm-wide); margin-inline: auto; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
.mm-cta-band__body { display: flex; flex-direction: column; gap: 1.25rem; align-items: flex-start; }
.mm-cta-band__body > * { margin: 0 !important; }
.mm-cta-band__title { font-family: var(--mm-display); font-size: var(--wp--preset--font-size--heading-lg); line-height: .92; text-transform: uppercase; color: #fff; }
.mm-cta-band__text { font-size: var(--wp--preset--font-size--lead); line-height: 1.55; max-width: 640px; color: #fff; }
.mm-cta-band__text--lead { font-family: var(--mm-display); font-size: clamp(1.9rem, 3.6vw, 3.1rem); line-height: 1; text-transform: uppercase; }
.mm-cta-band .wp-block-buttons { margin-top: .75rem !important; }
.mm-cta-band .is-style-mm-light .wp-block-button__link.mm-btn { --mm-btn-bg: #fff; --mm-btn-fg: var(--mm-navy); --mm-btn-sweep: var(--mm-navy); --mm-btn-sweep-fg: #fff; }
.mm-cta-band__media { margin: 0 !important; }
.mm-cta-band__media img { width: 100%; height: auto; filter: drop-shadow(0 30px 40px rgb(0 0 0 / .3)); transform: translateX(calc(var(--mm-parallax, 0px) * -1.4)); }
.mm-cta-band__mark { justify-self: end; width: clamp(140px, 18vw, 260px); aspect-ratio: 1; background: #fff; -webkit-mask: url("../../brand/logos/mountain-white.svg") center / contain no-repeat; mask: url("../../brand/logos/mountain-white.svg") center / contain no-repeat; transform: rotate(-6deg); }
@media (max-width: 781px) { .mm-cta-band__inner { grid-template-columns: 1fr; } .mm-cta-band__mark { justify-self: start; width: 120px; } }

/* --------------------------------------------------------------------------
   Cards (careers roles, lander services, blog)
   -------------------------------------------------------------------------- */
.mm-cards { display: grid; gap: clamp(16px, 2vw, 28px); }
.mm-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mm-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mm-cards--3:has(> :nth-child(4):last-child) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1200px) { .mm-cards--3:has(> :nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 1024px) { .mm-cards--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .mm-cards--2, .mm-cards--3 { grid-template-columns: 1fr; } }
.mm-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: .9rem;
	padding: clamp(24px, 2.6vw, 40px);
	background: #fff;
	border: 1px solid var(--mm-line);
	transition: transform .5s var(--mm-ease), box-shadow .5s var(--mm-ease), border-color .4s;
}
.mm-card > * { margin: 0 !important; }
.mm-card:hover { transform: translateY(-4px); box-shadow: var(--mm-shadow); border-color: transparent; }
.mm-card::before { content: ""; position: absolute; left: -1px; right: -1px; top: -1px; height: 3px; background: var(--mm-orange); transform: scaleX(0); transform-origin: left; transition: transform .55s var(--mm-ease); }
.mm-card:hover::before { transform: scaleX(1); }
.mm-role__title { font-family: var(--mm-display) !important; font-weight: 400 !important; font-size: clamp(1.8rem, 2.6vw, 2.4rem) !important; line-height: 1 !important; letter-spacing: .01em !important; }
.mm-role__sub { color: var(--mm-orange-dark) !important; font-size: 1rem !important; }

/* Steps (landers: 1 · 2 · 3) */
.mm-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--mm-line); counter-reset: s; }
.mm-step { position: relative; padding: clamp(28px, 3vw, 48px) clamp(20px, 2.6vw, 40px) clamp(28px, 3vw, 40px) 0; display: grid; gap: .85rem; }
.mm-step > * { margin: 0 !important; }
.mm-step + .mm-step { padding-left: clamp(20px, 2.6vw, 40px); border-left: 1px solid var(--mm-line); }
.mm-step__num { font-family: var(--mm-display); font-size: clamp(4rem, 8vw, 7rem); line-height: .8; color: transparent; -webkit-text-stroke: 1.5px var(--mm-orange); }
.mm-step::before { content: ""; position: absolute; top: -2px; left: 0; width: 0; height: 3px; background: var(--mm-orange); transition: width 1s var(--mm-ease); }
.mm-step.is-in::before, .mm-steps:not(.js *) .mm-step::before { width: 64px; }
@media (max-width: 781px) { .mm-steps { grid-template-columns: 1fr; } .mm-step + .mm-step { padding-left: 0; border-left: 0; border-top: 1px solid var(--mm-line); } }

/* --------------------------------------------------------------------------
   Intro (careers) and map section
   -------------------------------------------------------------------------- */
.mm-intro { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(24px, 5vw, 80px); }
@media (max-width: 781px) { .mm-intro { grid-template-columns: 1fr; } }
.mm-map-section { background: var(--mm-sand); }
.mm-map-wrap { display: grid; gap: 1rem; }
.mm-map-wrap > * { margin: 0 !important; }
.mm-map { position: relative; min-height: 420px; overflow: hidden; background: var(--mm-navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160' fill='none' stroke='%23134852' stroke-width='1.2'%3E%3Cpath d='M0 50h160M0 120h160M40 0v160M115 0v160M0 0l160 160'/%3E%3C/svg%3E"); }
.mm-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(.2); }
.mm-map__load { position: absolute; inset: 0; display: grid; place-items: center; width: 100%; border: 0; background: transparent; cursor: pointer; font: inherit; }
.mm-map__load span { background: var(--mm-orange); color: #fff; padding: 14px 22px 14px 46px; font-family: var(--mm-cond); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; position: relative; }
.mm-map__load span::before { content: ""; position: absolute; left: 18px; top: 50%; width: 16px; height: 16px; margin-top: -8px; background: #fff; -webkit-mask: var(--mm-i-pin) center / contain no-repeat; mask: var(--mm-i-pin) center / contain no-repeat; }
.mm-map.is-loaded .mm-map__load { display: none; }

/* Contact */
.mm-contact__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.mm-contact__info { display: grid; gap: 1.1rem; }
.mm-contact__info > * { margin: 0 !important; }
.mm-contact__line { position: relative; padding-left: 36px; font-size: 1.0625rem; }
.mm-contact__line::before { content: ""; position: absolute; left: 0; top: .2em; width: 20px; height: 20px; background: var(--mm-orange); -webkit-mask: var(--mm-ic, var(--mm-i-pin)) center / contain no-repeat; mask: var(--mm-ic, var(--mm-i-pin)) center / contain no-repeat; }
.mm-contact__line.is-phone { --mm-ic: var(--mm-i-phone); font-family: var(--mm-cond); font-weight: 700; font-size: 1.5rem; }
.mm-contact__line.is-mail { --mm-ic: var(--mm-i-mail); }
.mm-contact__line.is-hours { --mm-ic: var(--mm-i-clock); }
.mm-contact .mm-map { margin-top: clamp(2rem, 4vw, 3.5rem) !important; }
@media (max-width: 900px) { .mm-contact__grid { grid-template-columns: 1fr; } }

/* Careers */
.mm-careers__head { align-items: center; }
.mm-careers__titles { display: grid; gap: 1rem; }
.mm-careers__titles > * { margin: 0 !important; }
.mm-careers__media img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.mm-careers__apply { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.mm-careers__apply > * { margin: 0 !important; }
.mm-careers__apply-head { display: grid; gap: 1rem; position: sticky; top: 120px; }
.mm-careers__apply-head > * { margin: 0 !important; }
@media (max-width: 900px) { .mm-careers__apply { grid-template-columns: 1fr; } .mm-careers__apply-head { position: static; } }
