/* V3 is a separate page family. Existing v2026 selectors are reused through
   compatibility body classes; this file contains only V3 visual deltas. */

body.nmu-v32026-page .nmu-v2026-button:not(.nmu-v2026-card-link):not(.nmu-v2026-card-cta-action) .elementor-button {
	background: var(--nmu-v2026-orange) !important;
}

/* Shared header "Contact" button (elementor-element-bc0501d, the same widget
   on every V3 page): widened to the approved pill proportions and given the
   missing right-facing arrow. Scoped to this one widget only - every other
   ".elementor-button-link" on the site is untouched. Only visible at
   desktop widths already (Elementor hides this widget below 1024px via its
   own "elementor-hidden-tablet/-mobile" classes), so no mobile/tablet rule
   is needed. */
body.nmu-v32026-page .elementor-location-header .elementor-element-bc0501d .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	min-width: 146px;
	padding: 12px 22px 12px 24px;
}

body.nmu-v32026-page .elementor-location-header .elementor-element-bc0501d .elementor-button::after {
	content: "";
	display: inline-block;
	flex-shrink: 0;
	width: 17px;
	height: 11px;
	margin-left: 14px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='12' viewBox='0 0 20 12' fill='none'%3E%3Cpath d='M0.5 6H19M19 6L14 1M19 6L14 11' stroke='white' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center;
	background-size: contain;
}

/* The hero's right column ("That gap is costing you growth...") sits inside
   a flex/justify arrangement that renders it 35px lower than the left title,
   even with align-items set to flex-start - the two columns' differing
   internal wrapper heights absorb the correction. Pulled up by measured
   amount so both columns start at the same line, matching Home.png.
   Desktop-only (min-width:1025px, matching the site's existing breakpoint):
   below that the two columns stack into one, and the same offset would pull
   the right column up into the left one instead. */
@media (min-width: 1025px) {
	body.nmu-v32026-home-v32026 .elementor-element-2ad9748d {
		margin-top: -70px !important;
	}
}

/* The Huna Totem example's plain 50/50 split is ~95px too narrow for "When a
   client trusts us with" (line 1 of the heading) at its correct size,
   wrapping after "us" instead of after "with" like The Method.png. Widened
   for this one composition only. */
body.nmu-v32026-the-method-v32026 .elementor-element-598b34b > .e-con-inner {
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr) !important;
}

/* Industries' "The Orange Plus" (Franchise/Travel & Hospitality/Food &
   Beverage) is brought to the same weight as Blog's canonical "The Orange
   Plus." treatment. */
body:is(
	.nmu-v32026-industries-franchise-v32026,
	.nmu-v32026-industries-travel-hospitality-v32026,
	.nmu-v32026-industries-food-beverage-v32026
) .elementor-element-b371cc3 .elementor-heading-title {
	font-weight: 500 !important;
}

/* Reduces the blank space between the last numbered service row and the
   case-study cards on all three industry pages (the paired intro-copy
   column is naturally taller than the numbered list, so the section's own
   bottom padding compounds with that leftover height into a large gap). */
body:is(
	.nmu-v32026-industries-franchise-v32026,
	.nmu-v32026-industries-travel-hospitality-v32026,
	.nmu-v32026-industries-food-beverage-v32026
) .nmu-v2026-industry-detail {
	padding-bottom: 40px !important;
}

/* The GAP-label-to-title space inside each gap card is reduced consistently
   across all three industry pages. */
body:is(
	.nmu-v32026-industries-franchise-v32026,
	.nmu-v32026-industries-travel-hospitality-v32026,
	.nmu-v32026-industries-food-beverage-v32026
) .nmu-v2026-gap-card .nmu-v2026-label {
	margin-bottom: 16px !important;
}

/* Canonical "standard large section heading" tier, established from the
   correctly-matching instance on Services/The Method/Who We Serve/Franchise
   (.nmu-v2026-cta-title: 41px/500/43.05px/-1.845px/ink). Applied here to
   three equivalent headings that never received it: Home's own CTA heading
   uses a page-specific class instead of the shared one (still 42px/400,
   Elementor's unstyled default); The Method's and Services' "centered-copy"
   intro headings share a separate, larger local tier (54px/500/58.32px)
   that leaves them visibly heavier than every other instance of this same
   role; Who We Serve's "Wider Pattern" heading uses its own 60px/500/63px
   local size. All four render noticeably larger than their mockups show
   next to the same-tier heading elsewhere on their own page. */
body.nmu-v32026-home-v32026 .nmu-v2026-home-cta-heading .elementor-heading-title,
body.nmu-v32026-the-method-v32026 .elementor-element-5ef3745 .elementor-heading-title,
body.nmu-v32026-services-v32026 .elementor-element-7964100 .elementor-heading-title,
body.nmu-v32026-who-we-serve-v32026 .elementor-element-b2f5b9e .elementor-heading-title {
	font-size: clamp(25px, 2.8vw, 41px) !important;
	font-weight: 500 !important;
	line-height: 1.05 !important;
	letter-spacing: -0.045em !important;
	color: var(--nmu-v2026-ink) !important;
}

/* The Method's CTA heading (the shared ".nmu-v2026-cta-title" tier, already
   correctly sized) carries a local Elementor orange color instead of dark -
   every other page's instance of this exact heading is ink-colored. */
body.nmu-v32026-the-method-v32026 .nmu-v2026-cta-title .elementor-heading-title {
	color: var(--nmu-v2026-ink) !important;
}

/* Blog's reused "Orange Plus" card block carries its own internal "The
   Orange Plus" heading (elementor-element-b371cc3) - needed as the primary
   heading on Home/Franchise/Travel/Food, but redundant on Blog, which
   already has its own distinct page-intro title serving that role. Left
   visible, it renders as an unwanted second heading between the intro and
   the card carousel, roughly tripling the intro-to-cards gap versus
   Blog.png. Hidden on Blog only. */
body.nmu-v32026-blog-v32026 .elementor-element-b371cc3 {
	display: none !important;
}

/* The Home hero title has its own dedicated typography (distinct from the
   shared page-title/cta-title tiers already recalibrated for the 1140px
   system) and was missed in that pass: at 60px/74px it no longer fits "You're
   better than your market thinks" on one line within the hero's half-width
   column, wrapping the hero into 3 lines instead of Home.png's 2. */
body.nmu-v32026-home-v32026 .elementor-element-2d95241e .elementor-heading-title {
	font-size: 48px !important;
	line-height: 59px !important;
}

/* About's "Boutique agency" heading (54px/58.32px) and "Our Leadership Team"
   (42px/400/left) are local Elementor overrides instead of the shared
   ".nmu-v2026-centered-title" tier every other centered About section heading
   uses (44px/500/-0.035em/1.1, centered) - the same normalization already
   applied to the "What we believe" heading below. About.png shows all of
   these at the same scale and centered. */
body.nmu-v32026-about-v32026 .elementor-element-2565ad2 .elementor-heading-title,
body.nmu-v32026-about-v32026 .elementor-element-1c3fe0d .elementor-heading-title {
	font-size: clamp(30px, 3vw, 44px) !important;
	font-weight: 500 !important;
	letter-spacing: -0.035em !important;
	line-height: 1.1 !important;
	text-align: center !important;
}

/* The reused Leadership block's team-photo grid (elementor-element-bdd9d0a)
   carries the same stray Elementor #F8F6F4 background as its sibling grid
   fixed earlier - this is the root/self background rather than a nested
   motion-effects layer, so it needs its own rule. About.png is plain white. */
body.nmu-v32026-about-v32026 .nmu-v2026-about-leadership .elementor-element-bdd9d0a {
	background: transparent !important;
}

/* At the correctly-calibrated 44px page-title size, the plain 50/50 split
   this section shares with every other ".nmu-v2026-split" instance is ~42px
   too narrow for "Navigant Marketing + You." (line 2 of the <br>-broken
   title), wrapping it onto an extra sub-line. Rebalanced for this one
   composition only, matching About.png's single-line-per-sentence result;
   the shared 50/50 split used elsewhere is untouched. */
body.nmu-v32026-about-v32026 .elementor-element-5c6473c > .e-con-inner {
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr) !important;
}

/* Inherited from the V2 template, this title column carries a lopsided 48px
   right / 10px left padding (meant for a wider V2 layout) that leaves just
   enough less room than "of credibility." needs, orphaning "of" onto its
   own line. Home.png groups it with "credibility." instead. */
body.nmu-v32026-home-v32026 .nmu-v2026-home-track-record-intro {
	padding-right: 16px;
}

/* Home's "First Conversation" CTA is built as one flat 2-column Elementor
   grid (6 widgets placed directly by grid-row/grid-column) rather than the
   two independent ".nmu-v2026-col" flex columns every other CTA section on
   the site uses. Because the label (left, row 1) and the long right-column
   paragraph (also row 1) share the same grid row, CSS Grid sizes that row to
   the paragraph's full height, pushing the heading below it (row 2) far
   down from the label - the large empty gap Home.png does not show. Shifting
   the whole right column down by one row lets row 1 size to the short label
   alone, matching the mockup's compact label-to-heading spacing. */
body.nmu-v32026-home-v32026 .nmu-v2026-home-cta .elementor-element-e26c3bb {
	grid-row: 2 !important;
}

body.nmu-v32026-home-v32026 .nmu-v2026-home-cta .elementor-element-181755fa {
	grid-row: 3 !important;
}

body.nmu-v32026-home-v32026 .nmu-v2026-home-cta .elementor-element-1e5334ff {
	grid-row: 4 !important;
}

body.nmu-v32026-home-v32026 .nmu-v2026-home-cta .elementor-element-79e5a68f {
	grid-row: 5 !important;
}

/* Both the shared ".nmu-v2026-page-title" tier (the Services/Method/Who We
   Serve hero titles and the About intro title) and the ".nmu-v2026-cta-title"
   tier (the recurring "First Conversation" heading) were sized for the wider
   1620px-derived split columns from an earlier pass. Restoring the 1140px
   standard content width leaves noticeably less room per column, so both
   tiers are scaled down by the same ratio as the width restoration
   (1140/1620 ~ 0.7) to keep each mockup's original text-to-column
   proportions instead of rewrapping their <br>-separated lines onto extra
   sub-lines. */
body.nmu-v32026-page .nmu-v2026-page-title .elementor-heading-title {
	font-size: clamp(30px, 3vw, 44px) !important;
}

body.nmu-v32026-page .nmu-v2026-cta-title .elementor-heading-title {
	font-size: clamp(25px, 2.8vw, 41px) !important;
}

/* The reused "Orange Plus" blog-card component is shared with Blog/Industries
   pages (each with its own heading alignment per its mockup) - only Home's own
   copy is widened to the V3 standard and centered, matching the Home mockup. */
body.nmu-v32026-home-v32026 .nmu-v2026-orange-plus-reference .nmu-v2026-orange-plus-reused > .e-con-inner {
	width: min(calc(100vw - 48px), 1140px) !important;
	max-width: 1140px !important;
}

/* Scoped to the single "The Orange Plus" title widget (elementor-element-b371cc3,
   the same reused widget ID on every page that includes this component) - the
   previous ".elementor-heading-title" wildcard also matched each card's own
   title further down the grid and force-centered those too, when the mockup
   shows card titles left-aligned within their cards on every page. */
body.nmu-v32026-home-v32026 .nmu-v2026-orange-plus-reference .elementor-element-b371cc3.elementor-widget-heading,
body.nmu-v32026-home-v32026 .nmu-v2026-orange-plus-reference .elementor-element-b371cc3 .elementor-heading-title {
	text-align: center;
}

/* Industry detail pages (Franchise/Travel & Hospitality/Food & Beverage) show
   this same reused heading centered above its card row too, at the 1140px V3
   standard width - currently still left-aligned at the legacy 1092px native
   width because only Home's instance had been corrected. */
body:is(
	.nmu-v32026-industries-franchise-v32026,
	.nmu-v32026-industries-travel-hospitality-v32026,
	.nmu-v32026-industries-food-beverage-v32026
) .nmu-v2026-orange-plus-reference .nmu-v2026-orange-plus-reused > .e-con-inner {
	width: min(calc(100vw - 48px), 1140px) !important;
	max-width: 1140px !important;
}

body:is(
	.nmu-v32026-industries-franchise-v32026,
	.nmu-v32026-industries-travel-hospitality-v32026,
	.nmu-v32026-industries-food-beverage-v32026
) .nmu-v2026-orange-plus-reference .elementor-element-b371cc3.elementor-widget-heading,
body:is(
	.nmu-v32026-industries-franchise-v32026,
	.nmu-v32026-industries-travel-hospitality-v32026,
	.nmu-v32026-industries-food-beverage-v32026
) .nmu-v2026-orange-plus-reference .elementor-element-b371cc3 .elementor-heading-title {
	text-align: center;
}

/* 1140px is the V3 standard content width. The timeline is one of the
   mockup's deliberate full-bleed exceptions, so it is excluded here rather
   than re-capped further down. */
body.nmu-v32026-page .nmu-v2026-section:not(.nmu-v2026-timeline-section),
body.nmu-v32026-page .nmu-v2026-method {
	width: min(100%, 1140px);
}

/* Blog's ".nmu-v2026-thinking-intro" and Who We Serve's ".nmu-v2026-cta" each
   carry their own full-bleed background color directly on this same section
   element (rather than on a separate outer ".nmu-v2026-band" wrapper, the
   pattern every other colored band on the site uses). Elementor's own
   "e-con-boxed" native styling caps that same element at 1140px regardless
   of the rule above, so the background was clipped to a boxed panel,
   leaving white side strips instead of the mockups' edge-to-edge band. Freed
   back to full width; each section's own ".e-con-inner" keeps the correct
   1140px content width independently via its own native boxed cap. */
body.nmu-v32026-blog-v32026 .nmu-v2026-thinking-intro,
body.nmu-v32026-who-we-serve-v32026 .nmu-v2026-cta {
	width: 100% !important;
	max-width: none !important;
}

/* The outer timeline section is already full-bleed, but Elementor's own
   container gives its immediate .e-con-inner a native boxed content-width
   (1140px) independent of our section-width rule above. That inner wrapper
   has to be freed too, or the scrollable track stays capped at 1140px. */
body.nmu-v32026-page .nmu-v2026-timeline-section > .e-con-inner {
	max-width: none !important;
	width: 100%;
}

body.nmu-v32026-page .elementor-location-header .nmu-v2026-header-root > .e-con-inner {
	width: min(100%, 1140px);
	max-width: 1140px;
	padding-inline: 24px;
}

/* The same standard content width as every other V3 page, not the legacy
   1092px inherited from the V2 build. */
body.nmu-v32026-home-v32026 :is(
	.nmu-v2026-home-hero-title,
	.nmu-v2026-home-hero-copy,
	.nmu-v2026-home-hero-media,
	.nmu-v2026-home-proof,
	.nmu-v2026-home-industries-title,
	.nmu-v2026-home-industries-grid,
	.nmu-v2026-home-stats-title,
	.nmu-v2026-home-stats,
	.nmu-v2026-home-cta
) > .e-con-inner,
body.nmu-v32026-home-v32026 .nmu-v2026-home-industries-action > .e-con-inner,
body.nmu-v32026-home-v32026 .nmu-v2026-home-track-record > .e-con-inner {
	max-width: 1140px !important;
}

body.nmu-v32026-page .elementor-location-header .nmu-v2026-submenu-toggle i {
	display: block;
	width: 16px;
	height: 16px;
	font-size: 16px !important;
	line-height: 16px !important;
}

body.nmu-v32026-page .elementor-location-header .nmu-v2026-submenu-toggle,
body.nmu-v32026-page .elementor-location-header .menu-item-has-children:is(:hover, :focus-within, .nmu-v2026-submenu-open) > .nmu-v2026-submenu-toggle,
body.nmu-v32026-page .elementor-location-header .nmu-v2026-submenu-toggle:is(:hover, :focus-visible),
body.nmu-v32026-page .elementor-location-header .nmu-v2026-submenu-toggle[aria-expanded="true"],
body.nmu-v32026-page .elementor-location-header .nmu-v2026-submenu-toggle .elementor-icon-box-icon,
body.nmu-v32026-page .elementor-location-header .nmu-v2026-submenu-toggle i {
	color: var(--nmu-v2026-orange) !important;
}

/* Several V3 templates carry page-level Custom CSS (copied from their V2 source)
   that unscopes ".elementor-icon-box-icon:hover" instead of wrapping it to its own
   button, so it paints a filled orange circle behind ANY icon-box-icon on that page
   - including the shared header's "+". Force the header's icon back to a plain
   glyph in every state, on every page, regardless of what a page's own CSS does. */
body.nmu-v32026-page .elementor-location-header .nmu-v2026-submenu-toggle .elementor-icon-box-icon,
body.nmu-v32026-page .elementor-location-header .nmu-v2026-submenu-toggle:is(:hover, :focus-visible, [aria-expanded="true"]) .elementor-icon-box-icon {
	background: transparent !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	border: 0 !important;
}

/* V3 card media owns its geometry so placeholders and replacement images are interchangeable. */
body.nmu-v32026-page .nmu-v2026-card-media,
body.nmu-v32026-page .nmu-v2026-card .nmu-v2026-placeholder {
	min-height: 0;
	aspect-ratio: 16 / 10;
	overflow: hidden;
}

body.nmu-v32026-page .nmu-v2026-service-card .nmu-v2026-card-media {
	aspect-ratio: 4 / 3;
}

body.nmu-v32026-page .nmu-v2026-card-media > .e-con-inner,
body.nmu-v32026-page .nmu-v2026-card .nmu-v2026-placeholder > .e-con-inner,
body.nmu-v32026-page .nmu-v2026-card-media :is(.elementor-widget-image, .elementor-widget-container, picture) {
	width: 100%;
	height: 100%;
}

body.nmu-v32026-page .nmu-v2026-card-media img,
body.nmu-v32026-page .nmu-v2026-thinking-grid .e-loop-item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

body.nmu-v32026-home-v32026 :is(
	.nmu-v2026-home-proof,
	.nmu-v2026-home-industries-grid
) .elementor-widget-image {
	width: 100%;
	min-height: 0;
	aspect-ratio: 16 / 10;
	overflow: hidden;
}

body.nmu-v32026-home-v32026 :is(
	.nmu-v2026-home-proof,
	.nmu-v2026-home-industries-grid
) .elementor-widget-image :is(.elementor-widget-container, picture, img) {
	display: block;
	width: 100%;
	height: 100%;
}

body.nmu-v32026-home-v32026 :is(
	.nmu-v2026-home-proof,
	.nmu-v2026-home-industries-grid
) .elementor-widget-image img {
	object-fit: cover;
}

@media (min-width: 1025px) {
	body.nmu-v32026-page .elementor-location-header .elementor-nav-menu--main a {
		font-size: clamp(14px, 0.95vw, 18px) !important;
	}

	body.nmu-v32026-page .elementor-location-header .elementor-nav-menu--main > ul > li > a {
		padding-inline: 12px !important;
	}

	body.nmu-v32026-page .elementor-location-header .nmu-v2026-submenu-toggle {
		width: 24px;
		height: 24px;
		margin-left: -10px;
	}

	body.nmu-v32026-home-v32026 .full-logos {
		padding-bottom: 140px;
		gap: 52px;
	}

	body.nmu-v32026-home-v32026 .full-logos > .elementor-widget-heading {
		margin-bottom: 40px;
	}
}

body.nmu-v32026-page .nmu-v2026-button:not(.nmu-v2026-card-link):not(.nmu-v2026-card-cta-action) .elementor-button:hover,
body.nmu-v32026-page .nmu-v2026-button:not(.nmu-v2026-card-link):not(.nmu-v2026-card-cta-action) .elementor-button:focus-visible {
	background: var(--nmu-v2026-ink) !important;
}

body.nmu-v32026-page .nmu-v2026-method-band {
	background: var(--nmu-v2026-soft);
	color: var(--nmu-v2026-ink);
}

body.nmu-v32026-page .nmu-v2026-method .nmu-v2026-centered-title .elementor-heading-title,
body.nmu-v32026-page .nmu-v2026-method-card .elementor-heading-title,
body.nmu-v32026-page .nmu-v2026-method-card .elementor-widget-text-editor,
body.nmu-v32026-page .nmu-v2026-method-card .elementor-widget-text-editor p,
body.nmu-v32026-page .nmu-v2026-method-card .elementor-widget-text-editor strong {
	color: var(--nmu-v2026-ink);
}

body.nmu-v32026-page .nmu-v2026-method-card,
body.nmu-v32026-page .nmu-v2026-method-card.is-active {
	border-color: #e9e7e3;
	background: #fff;
	color: var(--nmu-v2026-ink);
	transform: none;
	transition: border-color 220ms ease, box-shadow 220ms ease, color 220ms ease;
}

body.nmu-v32026-page .nmu-v2026-method-card:is(:hover, :focus-within) {
	border-color: #dedbd6;
	box-shadow: 0 16px 40px rgb(0 0 0 / 12%);
}

body.nmu-v32026-page .nmu-v2026-method-number .elementor-heading-title,
body.nmu-v32026-page .nmu-v2026-method-card.is-active .nmu-v2026-method-number .elementor-heading-title {
	color: var(--nmu-v2026-orange);
}

body.nmu-v32026-page .nmu-v2026-method-card + .nmu-v2026-method-card {
	margin-left: 0;
}

body.nmu-v32026-page .nmu-v2026-method-grid > .e-con-inner {
	gap: 12px;
}

body:is(
	.nmu-v32026-industries-franchise-v32026,
	.nmu-v32026-industries-travel-hospitality-v32026,
	.nmu-v32026-industries-food-beverage-v32026
) .nmu-v2026-industry-detail {
	min-height: 0;
}

body.nmu-v32026-industries-food-beverage-v32026 .nmu-v2026-cta {
	min-height: 620px;
}

body.nmu-v32026-industries-food-beverage-v32026 .nmu-v2026-case-card .nmu-v2026-card-body > .e-con-inner {
	display: flex !important;
	height: 100%;
	flex-direction: column !important;
}

body.nmu-v32026-industries-food-beverage-v32026 .nmu-v2026-case-card .nmu-v2026-card-cta-action {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0;
	margin-top: auto;
}

body.nmu-v32026-industries-food-beverage-v32026 .nmu-v2026-industry-detail :is(
	.nmu-v2026-number .elementor-heading-title,
	.nmu-v2026-number-title .elementor-heading-title,
	.nmu-v2026-number-subtitle
) {
	color: var(--nmu-v2026-ink) !important;
}

body.nmu-v32026-industries-food-beverage-v32026 .nmu-v2026-industry-detail .nmu-v2026-number-row {
	border-color: var(--nmu-v2026-line);
	background: transparent;
}

body.nmu-v32026-home-v32026 .full-logos {
	margin-block: 0;
	padding-block: 64px;
}

body.nmu-v32026-home-v32026 .full-logos > .elementor-widget-heading {
	width: min(calc(100% - 48px), 1092px);
	margin-inline: auto;
}

body.nmu-v32026-home-v32026 .nmu-v32026-section-label .elementor-heading-title {
	color: var(--nmu-v2026-orange) !important;
	font-size: 13px !important;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none !important;
}

body.nmu-v32026-home-v32026 .full-logos > .elementor-widget-heading .elementor-heading-title {
	width: min(100%, 330px);
	margin-inline: auto;
	color: var(--nmu-v2026-orange);
	font-size: 20px;
	font-weight: 500;
	line-height: 1.25;
	letter-spacing: 0;
	text-align: center;
	text-transform: none;
}

body.nmu-v32026-home-v32026 .full-logos :is(.e-n-carousel, .swiper, .nmu-v32026-marquee-viewport) {
	overflow: hidden;
	direction: ltr;
	text-align: left;
}

/* The Elementor carousel ships this track reversed and right-aligned. Both are pinned
   here, so the travel always starts with the track's left edge on the viewport edge. */
body.nmu-v32026-home-v32026 .full-logos :is(.swiper-wrapper, .nmu-v32026-marquee-track) {
	display: flex;
	width: max-content;
	margin-right: auto !important;
	margin-left: 0 !important;
	flex-direction: row !important;
	direction: ltr;
	gap: 0 !important;
	align-items: center;
}

/* The track repeats one group `--nmu-v32026-marquee-copies` times and travels exactly
   one group width per iteration, so the seam lands on identical artwork. */
body.nmu-v32026-home-v32026 .full-logos .nmu-v32026-marquee-track {
	animation: nmu-v32026-marquee var(--nmu-v32026-marquee-duration, 28s) linear infinite;
}

body.nmu-v32026-home-v32026 .full-logos .nmu-v32026-marquee-track.nmu-v32026-marquee-reverse {
	animation-direction: reverse;
}

@keyframes nmu-v32026-marquee {
	from {
		transform: translate3d(0, 0, 0);
	}
	to {
		transform: translate3d(var(--nmu-v32026-marquee-shift, -50%), 0, 0);
	}
}

@media (prefers-reduced-motion: reduce) {
	body.nmu-v32026-home-v32026 .full-logos .nmu-v32026-marquee-track {
		animation: none;
	}
}

body.nmu-v32026-home-v32026 .full-logos :is(.swiper-slide, .nmu-v32026-marquee-item) {
	display: flex;
	width: 176px !important;
	height: 110px !important;
	margin-inline: 0 !important;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	overflow: visible;
}

body.nmu-v32026-home-v32026 .full-logos .elementor-widget-image {
	display: flex;
	width: 100%;
	height: 110px;
	align-items: center;
	justify-content: center;
}

body.nmu-v32026-home-v32026 .full-logos .elementor-widget-image :is(.elementor-widget-container, picture) {
	display: flex;
	width: 100%;
	height: 100%;
	align-items: center;
	justify-content: center;
}

body.nmu-v32026-home-v32026 .full-logos .elementor-widget-image img {
	display: block;
	width: auto !important;
	height: auto !important;
	max-width: 150px !important;
	max-height: 84px !important;
	object-fit: contain;
	transform: none !important;
}

body.nmu-v32026-home-v32026 .nmu-v2026-home-proof {
	background: var(--nmu-v2026-white) !important;
	box-shadow: none;
}

body.nmu-v32026-home-v32026 .nmu-v2026-home-proof > .e-con-inner {
	display: flex !important;
	padding: 0 !important;
	flex-direction: column;
	gap: 0;
	justify-content: flex-start !important;
}

body.nmu-v32026-home-v32026 .nmu-v2026-home-proof > .e-con-inner > :nth-child(2) {
	margin-top: 16px;
}

body.nmu-v32026-home-v32026 .nmu-v2026-home-proof > .e-con-inner > :nth-child(3) {
	height: auto;
	margin-top: 32px;
}

body.nmu-v32026-home-v32026 .nmu-v2026-home-proof > .e-con-inner > :nth-child(3) > .e-con-inner {
	display: grid !important;
	width: 100%;
	max-width: none !important;
	padding: 0 !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	align-items: stretch;
}

body.nmu-v32026-home-v32026 .nmu-v2026-home-proof > .e-con-inner > :nth-child(3) > .e-con-inner > .e-con,
body.nmu-v32026-home-v32026 .nmu-v2026-home-industries-grid > .e-con-inner > .e-con {
	display: flex;
	width: auto !important;
	max-width: none !important;
	height: auto;
	min-height: 0;
	padding: 0;
	flex-direction: column;
	gap: 0;
}

/* Cards are equalised by the grid stretch, never by a fixed height, so longer copy
   grows the whole row instead of being clipped. */
body.nmu-v32026-home-v32026 .nmu-v2026-home-proof > .e-con-inner > :nth-child(3) > .e-con-inner > .e-con {
	height: auto;
	min-height: 0;
	overflow: visible;
	background: var(--nmu-v2026-soft);
}

/* Elementor gives these widgets a fixed custom width that no longer matches the card,
   so the card owns the width and the widgets fill whatever is left inside the padding. */
body.nmu-v32026-home-v32026 :is(
	.nmu-v2026-home-proof > .e-con-inner > :nth-child(3) > .e-con-inner > .e-con,
	.nmu-v2026-home-industries-grid > .e-con-inner > .e-con
) > .elementor-widget {
	width: auto !important;
	max-width: none !important;
	min-width: 0;
	align-self: stretch;
}

body.nmu-v32026-home-v32026 :is(
	.nmu-v2026-home-proof,
	.nmu-v2026-home-industries-grid
) .elementor-widget-image {
	flex: 0 0 auto;
}

body.nmu-v32026-home-v32026 .nmu-v2026-home-proof .elementor-widget-image {
	aspect-ratio: 7 / 5;
}

body.nmu-v32026-home-v32026 .nmu-v2026-home-proof > .e-con-inner > :nth-child(3) > .e-con-inner > .e-con > .elementor-widget-heading,
body.nmu-v32026-home-v32026 .nmu-v2026-home-industries-grid > .e-con-inner > .e-con > .elementor-widget-heading {
	margin: 28px 28px 0;
}

body.nmu-v32026-home-v32026 .nmu-v2026-home-proof > .e-con-inner > :nth-child(3) > .e-con-inner > .e-con > .elementor-widget-text-editor,
body.nmu-v32026-home-v32026 .nmu-v2026-home-industries-grid > .e-con-inner > .e-con > .elementor-widget-text-editor {
	margin: 12px 28px 0;
}

body.nmu-v32026-home-v32026 :is(
	.nmu-v2026-home-proof > .e-con-inner > :nth-child(3) > .e-con-inner > .e-con,
	.nmu-v2026-home-industries-grid > .e-con-inner > .e-con
) > .elementor-widget-heading .elementor-heading-title {
	font-size: 22px;
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: -0.02em;
}

body.nmu-v32026-home-v32026 :is(
	.nmu-v2026-home-proof > .e-con-inner > :nth-child(3) > .e-con-inner > .e-con,
	.nmu-v2026-home-industries-grid > .e-con-inner > .e-con
) > .elementor-widget-text-editor,
body.nmu-v32026-home-v32026 :is(
	.nmu-v2026-home-proof > .e-con-inner > :nth-child(3) > .e-con-inner > .e-con,
	.nmu-v2026-home-industries-grid > .e-con-inner > .e-con
) > .elementor-widget-text-editor p {
	font-size: 14px;
	line-height: 1.45;
}

body.nmu-v32026-home-v32026 .nmu-v2026-home-proof > .e-con-inner > :nth-child(3) > .e-con-inner > .e-con > .nmu-v2026-card-cta-action,
body.nmu-v32026-home-v32026 .nmu-v2026-home-industries-grid > .e-con-inner > .e-con > .nmu-v2026-card-cta-action {
	width: auto !important;
	margin: auto 28px 24px;
}

body.nmu-v32026-home-v32026 .nmu-v2026-home-proof > .e-con-inner > :nth-child(4) {
	margin-top: 40px;
}

body.nmu-v32026-home-v32026 .nmu-v2026-home-industries-grid > .e-con-inner {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px !important;
}

body.nmu-v32026-home-v32026 .nmu-v2026-home-industries-grid > .e-con-inner > .e-con {
	min-height: 620px;
	background: var(--nmu-v2026-white);
}

body.nmu-v32026-home-v32026 .nmu-v2026-home-industries-grid .elementor-widget-image {
	aspect-ratio: 4 / 3;
}

body.nmu-v32026-blog-v32026 .nmu-v2026-thinking-intro,
body.nmu-v32026-blog-v32026 .nmu-v2026-thinking-intro + .nmu-v32026-orange-plus-reference {
	background: var(--nmu-v2026-soft);
}

body.nmu-v32026-blog-v32026 .nmu-v2026-band.nmu-v2026-soft > .e-con-inner > .nmu-v2026-section > .e-con-inner > .nmu-v2026-label {
	margin-inline: auto;
	text-align: center;
}

body.nmu-v32026-blog-v32026 .nmu-v2026-band.nmu-v2026-soft > .e-con-inner > .nmu-v2026-section > .e-con-inner > .nmu-v2026-centered-title {
	max-width: 1092px;
	margin: 16px auto 48px;
}

body.nmu-v32026-who-we-serve-v32026 .nmu-v2026-cta {
	background: var(--nmu-v2026-soft);
}

/* This heading widget carries its own local Elementor typography (42px/600)
   instead of the shared "centered section title" component every other V3
   section heading uses (44px/500, -0.035em). Normalized to match. */
body.nmu-v32026-about-v32026 .elementor-element-f2e7cd0 .elementor-heading-title {
	font-size: clamp(30px, 3vw, 44px) !important;
	font-weight: 500 !important;
	letter-spacing: -0.035em !important;
	line-height: 1.1 !important;
}

/* "The 8+ year relationship..." carries its own local Elementor typography
   (42px/600, line-height 1.0, no tracking) instead of the shared
   ".nmu-v2026-cta-title" section-heading tier (clamp(25px,2.8vw,41px)/500/
   -0.045em/1.05) that the paired "Find out exactly..." heading uses further
   down the same page. About.png shows both at the same typographic scale. */
body.nmu-v32026-about-v32026 .elementor-element-2392f13 .elementor-heading-title {
	font-size: clamp(25px, 2.8vw, 41px) !important;
	font-weight: 500 !important;
	letter-spacing: -0.045em !important;
	line-height: 1.05 !important;
}

/* The reused Leadership block carries an Elementor #F8F6F4 background on two
   separate, sibling containers copied from the source page (a lazy
   motion-effects layer on the block's own root, and the team photo grid
   itself) - "nmu-v2026-leadership-reused" only tags the first of the two, so
   this is scoped to the stable outer page wrapper instead. The V3 mockup
   shows plain white throughout. */
body.nmu-v32026-about-v32026 .nmu-v2026-about-leadership .elementor-motion-effects-layer,
body.nmu-v32026-about-v32026 .nmu-v2026-about-leadership .e-grid {
	background: transparent !important;
}

body.nmu-v32026-the-method-v32026 .nmu-v2026-centered-copy .elementor-heading-title {
	color: var(--nmu-v2026-ink) !important;
}

body.nmu-v32026-the-method-v32026 .nmu-v32026-retainer-label {
	margin: 0 auto 24px;
	color: var(--nmu-v2026-orange);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.25;
	text-align: center;
}

/* This one-example heading carries a local Elementor orange color; The
   Method.png shows it dark like every other section heading, with orange
   reserved for the eyebrow label above it. */
body.nmu-v32026-the-method-v32026 .elementor-element-7f41496 .elementor-heading-title {
	color: var(--nmu-v2026-ink) !important;
}

body.nmu-v32026-page .nmu-v2026-newsletter-form .elementor-button :is(.elementor-button-content-wrapper, .elementor-button-text) {
	display: flex;
	width: 100%;
	align-items: center;
	justify-content: space-between;
}

body.nmu-v32026-page .nmu-v2026-newsletter-form .nmu-v2026-button-icon {
	display: inline-flex;
	padding-left: 0;
}

body.nmu-v32026-services-v32026 .nmu-v2026-service-card .nmu-v2026-card-body {
	min-height: 430px;
}

body.nmu-v32026-services-v32026 .nmu-v2026-service-card ul {
	margin: 18px 0 0;
	padding-left: 20px;
}

body.nmu-v32026-services-v32026 .nmu-v2026-service-card li {
	margin: 4px 0;
}

body.nmu-v32026-services-v32026 .nmu-v2026-service-card li::marker {
	color: var(--nmu-v2026-orange);
}

body.nmu-v32026-home-v32026 .nmu-v2026-home-industries-grid > .e-con-inner > :nth-child(3) :is(.elementor-widget-image, .elementor-widget-image img) {
	background: var(--nmu-v2026-placeholder) !important;
}

body.nmu-v32026-home-v32026 .nmu-v2026-home-industries-grid > .e-con-inner > :nth-child(3) .elementor-widget-image img {
	opacity: 0;
}

@media (max-width: 1024px) {
	body.nmu-v32026-page .elementor-location-header .nmu-v2026-header-root > .e-con-inner {
		width: calc(100% - 40px);
		padding-inline: 0;
	}

	body.nmu-v32026-page .elementor-location-header .elementor-nav-menu--dropdown.elementor-nav-menu__container {
		padding-inline: 20px;
	}

	body.nmu-v32026-page .nmu-v2026-method-card + .nmu-v2026-method-card {
		margin-left: 0;
	}

	body.nmu-v32026-industries-food-beverage-v32026 .nmu-v2026-industry-detail {
		min-height: 0;
	}

	body.nmu-v32026-industries-food-beverage-v32026 .nmu-v2026-industry-detail > .e-con-inner {
		grid-template-columns: minmax(0, 1fr) !important;
	}
}

@media (max-width: 767px) {
	/* About's intro is the only split section that still renders as a
	   two-column grid at mobile widths (the shared ".nmu-v2026-split"
	   mobile collapse doesn't reach this section's specific column
	   override), squeezing the title into a ~166px column and wrapping it
	   onto 7 lines. Collapsed to one column, full width, like every other
	   split section already does on mobile. */
	body.nmu-v32026-about-v32026 .elementor-element-5c6473c > .e-con-inner {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	body.nmu-v32026-home-v32026 .full-logos {
		padding-block: 48px;
	}

	body.nmu-v32026-home-v32026 .full-logos > .elementor-widget-heading {
		width: calc(100% - 40px);
	}

	body.nmu-v32026-home-v32026 .full-logos > .elementor-widget-heading .elementor-heading-title {
		font-size: 18px;
	}

	body.nmu-v32026-home-v32026 .full-logos :is(.swiper-slide, .nmu-v32026-marquee-item),
	body.nmu-v32026-home-v32026 .full-logos .elementor-widget-image {
		width: 138px !important;
		height: 84px !important;
	}

	body.nmu-v32026-home-v32026 .full-logos .elementor-widget-image img {
		width: auto !important;
		height: auto !important;
		max-width: 116px !important;
		max-height: 64px !important;
	}

	body.nmu-v32026-home-v32026 .nmu-v2026-home-proof > .e-con-inner > :nth-child(3) > .e-con-inner {
		grid-template-columns: minmax(0, 1fr);
	}

	body.nmu-v32026-home-v32026 .nmu-v2026-home-industries-grid > .e-con-inner {
		grid-template-columns: minmax(0, 1fr);
	}

	body.nmu-v32026-home-v32026 .nmu-v2026-home-proof > .e-con-inner > :nth-child(3) > .e-con-inner > .e-con,
	body.nmu-v32026-home-v32026 .nmu-v2026-home-industries-grid > .e-con-inner > .e-con {
		height: auto !important;
		min-height: 0;
	}

	body.nmu-v32026-blog-v32026 .nmu-v2026-band.nmu-v2026-soft > .e-con-inner > .nmu-v2026-section > .e-con-inner > .nmu-v2026-centered-title {
		margin-bottom: 34px;
	}

	body.nmu-v32026-page .nmu-v2026-method-grid > .e-con-inner {
		gap: 12px;
	}
}

@media (hover: none) {
	body.nmu-v32026-page .nmu-v2026-method-card,
	body.nmu-v32026-page .nmu-v2026-method-card:not(.is-active),
	body.nmu-v32026-page .nmu-v2026-method-card.is-active {
		border-color: #e9e7e3;
		background: #fff;
		color: var(--nmu-v2026-ink);
	}

	body.nmu-v32026-page .nmu-v2026-method-card {
		box-shadow: none;
	}
}
