/* ==========================================================================
   NeCom blocks — shared component styles. 100% token-driven (--nc-*).
   Loads on the front end and inside the editor iframe.
   ========================================================================== */

.nc-container {
	max-width: var(--nc-layout-content-width, 1200px);
	margin-inline: auto;
	padding-inline: var(--nc-layout-gutter, 1.5rem);
}

.nc-section { padding-block: var(--nc-layout-section-py, 4rem); }
.nc-section--paper { background: var(--nc-color-neutral-50, #f7f5f2); }
.nc-section--dark {
	background: var(--nc-color-semantic-bg-dark, #1a2b47);
	color: var(--nc-color-semantic-text-on-dark, #fff);
}

/* ---- Section background palette (full-width bleed when the block is Full width) ----
   Set on any section block via its "Background" control: White / Sand / Blue / Orange. */
.nc-bg--white { background: var(--nc-color-neutral-0, #fff); }
.nc-bg--sand  { background: var(--nc-color-neutral-50, #f7f5f2); }
.nc-bg--navy  { background: var(--nc-color-brand-navy, #1a2b47); color: var(--nc-color-semantic-text-on-dark, #fff); }
.nc-bg--coral { background: var(--nc-color-brand-coral, #e8674f); color: #fff; }

/* On dark/coral backgrounds, flip the SECTION-LEVEL text (headings, intro, eyebrow)
   to remain legible. Scoped to direct container children so cards keep their own styling. */
.nc-bg--navy > .nc-container > :where(h2,h3,.nc-section__title),
.nc-bg--coral > .nc-container > :where(h2,h3,.nc-section__title) { color: #fff; }
.nc-bg--navy > .nc-container > :where([class*="intro"],[class*="__body"],p),
.nc-bg--coral > .nc-container > :where([class*="intro"],[class*="__body"],p) { color: rgba(255,255,255,0.85); }
.nc-bg--navy > .nc-container > .nc-eyebrow { color: var(--nc-color-brand-coral, #e8674f); }
.nc-bg--coral > .nc-container > .nc-eyebrow { color: #fff; opacity: 0.9; }
/* Stats/labels already handle dark; keep coral bg labels readable. */
.nc-bg--coral .nc-stats__label, .nc-bg--navy .nc-stats__label { color: rgba(255,255,255,0.85); }

.nc-eyebrow {
	/* Block-level (not inline-block) so WP's constrained-layout auto margins
	   align it to the content column, level with the heading below it. */
	display: block;
	margin: 0 0 var(--nc-space-3, 0.75rem);
	font-size: var(--nc-fs-sm, 0.875rem);
	font-weight: var(--nc-fw-semibold, 600);
	letter-spacing: var(--nc-tracking-wide, 0.08em);
	text-transform: uppercase;
	color: var(--nc-color-brand-coral, #e8674f);
}

.nc-text-accent { color: var(--nc-color-brand-coral, #e8674f); }

/* ---- Buttons (shared, always loaded) --------------------------------------
   Used by every block's CTA via RenderHelpers::button(). Kept here (not in the
   button block's own stylesheet) so CTAs are styled on ALL pages, not only ones
   that contain the standalone Button block. */
.nc-btn {
	display: inline-flex;
	align-items: center;
	gap: var(--nc-space-2, 0.5rem);
	font-family: var(--nc-font-body, inherit);
	font-weight: var(--nc-fw-semibold, 600);
	line-height: 1;
	text-decoration: none;
	border-radius: var(--nc-button-radius, 8px);
	border: var(--nc-border-width, 1px) solid transparent;
	cursor: pointer;
	transition: background var(--nc-transition-base, 220ms) var(--nc-transition-ease, ease),
		color var(--nc-transition-base, 220ms) var(--nc-transition-ease, ease),
		border-color var(--nc-transition-base, 220ms) var(--nc-transition-ease, ease);
	padding: var(--nc-button-padding-y, 0.75rem) var(--nc-button-padding-x, 1.5rem);
	min-height: 44px;
}
.nc-btn--sm { padding: var(--nc-space-2, 0.5rem) var(--nc-space-4, 1rem); font-size: var(--nc-fs-sm, 0.875rem); min-height: 38px; }
.nc-btn--lg { padding: var(--nc-space-4, 1rem) var(--nc-space-6, 2rem); font-size: var(--nc-fs-md, 1.1875rem); }
.nc-btn__icon { --nc-icon-size: 1.1em; }
.nc-btn--primary { background: var(--nc-color-brand-coral, #e8674f); color: var(--nc-color-neutral-0, #fff); }
.nc-btn--primary:hover, .nc-btn--primary:focus-visible { background: var(--nc-color-brand-coral-hover, #d9553d); color: var(--nc-color-neutral-0, #fff); }
.nc-btn--secondary { background: transparent; color: var(--nc-color-semantic-text, #111a2b); border-color: var(--nc-color-semantic-border, #ddd6cc); }
.nc-btn--secondary:hover, .nc-btn--secondary:focus-visible { border-color: var(--nc-color-semantic-text, #111a2b); }
.nc-btn--ghost { background: transparent; color: currentColor; border-color: rgba(127, 127, 127, 0.4); }
.nc-btn--ghost:hover, .nc-btn--ghost:focus-visible { border-color: currentColor; }
/* On dark section backgrounds a ghost button is white-on-dark. */
.nc-bg--navy .nc-btn--ghost, .nc-bg--coral .nc-btn--ghost, .nc-section--dark .nc-btn--ghost { color: #fff; border-color: rgba(255,255,255,0.4); }
.nc-btn--link {
	background: transparent;
	color: var(--nc-color-brand-coral, #e8674f);
	padding-left: 0;
	padding-right: 0;
	min-height: 0;
	border-radius: 0;
	font-weight: var(--nc-fw-semibold, 600);
	text-transform: uppercase;
	letter-spacing: var(--nc-tracking-wide, 0.08em);
	font-size: var(--nc-fs-sm, 0.875rem);
}
.nc-btn--link:hover .nc-btn__icon { transform: translateX(3px); }
.nc-btn--link .nc-btn__icon { transition: transform var(--nc-transition-fast, 140ms) var(--nc-transition-ease, ease); }
.nc-btn:focus-visible { outline: 3px solid var(--nc-color-semantic-focus-ring, #e8674f); outline-offset: 2px; }

/* NeCom Facts — inline dynamic figures. Un-filled figures are visibly flagged
   so placeholders are easy to spot before real numbers are entered. */
.nc-fact { font-variant-numeric: tabular-nums; }
.nc-fact--empty {
	color: var(--nc-color-brand-coral, #e8674f);
	border-bottom: 1px dashed currentColor;
	cursor: help;
	opacity: 0.85;
}
/* Standalone Fact block */
.nc-fact-block--big { display: flex; flex-direction: column; gap: 0.15rem; }
.nc-fact-block--big.nc-fact-block--center { align-items: center; text-align: center; }
.nc-fact-block--big .nc-fact-block__value { font-family: var(--nc-font-heading, inherit); font-size: var(--nc-fs-3xl, 3rem); font-weight: var(--nc-fw-bold, 700); line-height: 1; color: var(--nc-color-brand-navy, #1a2b47); letter-spacing: -0.02em; }
.nc-fact-block--big .nc-fact-block__value .nc-fact--empty { border-bottom-width: 2px; }
.nc-fact-block__label { font-size: var(--nc-fs-sm, 0.875rem); color: var(--nc-color-semantic-text-muted, #7b8494); text-transform: uppercase; letter-spacing: 0.06em; font-weight: var(--nc-fw-semibold, 600); }
.nc-fact-block--inline { font-weight: var(--nc-fw-semibold, 600); }
.nc-fact-block__label-inline { color: var(--nc-color-semantic-text-muted, #7b8494); font-weight: var(--nc-fw-medium, 500); }

/* Breadcrumbs */
.nc-breadcrumbs { padding-block: var(--nc-space-4, 1rem); font-size: var(--nc-fs-sm, 0.875rem); }
.nc-breadcrumbs__list { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.5rem; list-style: none; margin: 0; padding: 0; }
.nc-breadcrumbs__item { display: inline-flex; align-items: center; gap: 0.5rem; color: var(--nc-color-semantic-text-muted, #7b8494); }
.nc-breadcrumbs__item a { color: var(--nc-color-semantic-text-muted, #7b8494); text-decoration: none; }
.nc-breadcrumbs__item a:hover { color: var(--nc-color-brand-coral, #e8674f); }
.nc-breadcrumbs__item [aria-current="page"] { color: var(--nc-color-brand-navy, #1a2b47); font-weight: var(--nc-fw-semibold, 600); }
.nc-breadcrumbs__sep { --nc-icon-size: 0.7em; opacity: 0.5; }

.nc-section__title {
	font-family: var(--nc-font-heading, inherit);
	font-size: var(--nc-fs-2xl, 2.625rem);
	line-height: var(--nc-lh-tight, 1.08);
	letter-spacing: var(--nc-tracking-tight, -0.02em);
	margin: 0 0 var(--nc-space-7, 2.5rem);
	color: var(--nc-color-brand-navy, #1a2b47);
}

.nc-card {
	background: var(--nc-color-neutral-0, #fff);
	border: var(--nc-border-width, 1px) solid var(--nc-color-semantic-border, #ddd6cc);
	border-radius: var(--nc-radius-lg, 16px);
	overflow: hidden;
	transition: box-shadow var(--nc-transition-base, 220ms) var(--nc-transition-ease, ease),
		transform var(--nc-transition-base, 220ms) var(--nc-transition-ease, ease);
}
.nc-card:hover { box-shadow: var(--nc-shadow-lg, 0 20px 48px rgba(17,26,43,.14)); transform: translateY(-3px); }

.nc-chip {
	display: inline-flex;
	align-items: center;
	gap: var(--nc-space-1, 0.25rem);
	font-size: var(--nc-fs-xs, 0.8125rem);
	color: var(--nc-color-semantic-text-muted, #7b8494);
}

/* --- Hero ----------------------------------------------------------------- */

.nc-hero__grid {
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	gap: var(--nc-space-8, 3rem);
	align-items: center;
}
.nc-hero__title {
	font-size: var(--nc-fs-4xl, 4.75rem);
	line-height: var(--nc-lh-tight, 1.08);
	letter-spacing: var(--nc-tracking-tight, -0.02em);
	color: var(--nc-color-brand-navy, #1a2b47);
	margin: 0 0 var(--nc-space-5, 1.5rem);
}
.nc-hero__body {
	font-size: var(--nc-fs-md, 1.1875rem);
	color: var(--nc-color-semantic-text-muted, #3a4658);
	max-width: 34rem;
	margin: 0 0 var(--nc-space-6, 2rem);
}
.nc-hero__actions { display: flex; flex-wrap: wrap; gap: var(--nc-space-3, 0.75rem); margin-bottom: var(--nc-space-6, 2rem); }
.nc-hero__note {
	display: flex;
	align-items: flex-start;
	gap: var(--nc-space-2, 0.5rem);
	font-size: var(--nc-fs-sm, 0.875rem);
	color: var(--nc-color-semantic-text-muted, #7b8494);
	max-width: 30rem;
}
.nc-hero__note-icon { --nc-icon-size: 1.1rem; color: var(--nc-color-brand-coral, #e8674f); margin-top: 2px; }
.nc-hero__media img { width: 100%; height: auto; border-radius: var(--nc-radius-lg, 16px); display: block; }
.nc-hero__placeholder {
	aspect-ratio: 4 / 3;
	display: grid;
	place-items: center;
	background: var(--nc-color-neutral-100, #efeae3);
	border-radius: var(--nc-radius-lg, 16px);
	color: var(--nc-color-neutral-300, #c4bcb0);
}

/* --- Trust bar ------------------------------------------------------------ */

.nc-trust-bar { padding-block: var(--nc-space-6, 2rem); }
.nc-trust-bar__grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: var(--nc-space-6, 2rem);
}
/* Fixed column count when chosen (else auto/space-between). */
.nc-trust-bar__grid[style*="--nc-trust-cols"] { display: grid; grid-template-columns: repeat(var(--nc-trust-cols), minmax(0, 1fr)); }
.nc-trust-bar__item { display: flex; align-items: center; gap: var(--nc-space-3, 0.75rem); }
/* Icon is coral by default (reads on light or dark); white on dark backgrounds. */
.nc-trust-bar__icon { --nc-icon-size: 1.75rem; color: var(--nc-color-brand-coral, #e8674f); }
.nc-bg--navy .nc-trust-bar__icon, .nc-bg--coral .nc-trust-bar__icon { color: #fff; opacity: 0.9; }
.nc-trust-bar__text { display: flex; flex-direction: column; line-height: 1.2; }
.nc-trust-bar__title { font-weight: var(--nc-fw-semibold, 600); font-size: var(--nc-fs-sm, 0.875rem); text-transform: uppercase; letter-spacing: var(--nc-tracking-wide, 0.08em); color: inherit; }
/* Subtitle follows the section colour (muted). */
.nc-trust-bar__subtitle { font-size: var(--nc-fs-xs, 0.8125rem); color: currentColor; opacity: 0.65; text-transform: uppercase; letter-spacing: var(--nc-tracking-wide, 0.08em); }
/* Style variants */
.nc-trust-bar--compact { padding-block: var(--nc-space-4, 1rem); }
.nc-trust-bar--compact .nc-trust-bar__icon { --nc-icon-size: 1.25rem; }
.nc-trust-bar--compact .nc-trust-bar__grid { gap: var(--nc-space-3, 0.75rem) var(--nc-space-5, 1.5rem); }
.nc-trust-bar--bordered .nc-trust-bar__item:not(:last-child) { border-right: 1px solid currentColor; padding-right: var(--nc-space-6, 2rem); }
.nc-trust-bar--bordered .nc-trust-bar__item { border-color: rgba(127,127,127,0.25); }
@media (max-width: 782px) { .nc-trust-bar--bordered .nc-trust-bar__item { border-right: 0; padding-right: 0; } .nc-trust-bar__grid[style*="--nc-trust-cols"] { grid-template-columns: repeat(2, 1fr); } }

/* FAQ on dark backgrounds — keep questions/answers legible. */
.nc-bg--navy .nc-faq__q, .nc-bg--coral .nc-faq__q { color: #fff; }
.nc-bg--navy .nc-faq__a, .nc-bg--coral .nc-faq__a { color: rgba(255,255,255,0.82); }
.nc-bg--navy .nc-faq__item, .nc-bg--coral .nc-faq__item { border-color: rgba(255,255,255,0.18); }

/* --- Feature cards -------------------------------------------------------- */

.nc-feature-cards__grid {
	display: grid;
	grid-template-columns: repeat(var(--nc-cols, 4), minmax(0, 1fr));
	gap: var(--nc-space-5, 1.5rem);
}
.nc-feature-card { display: flex; flex-direction: column; }
.nc-feature-card__media { position: relative; aspect-ratio: 3 / 2; background: var(--nc-color-neutral-100, #efeae3); }
.nc-feature-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nc-feature-card__badge {
	position: absolute;
	top: var(--nc-space-3, 0.75rem);
	left: var(--nc-space-3, 0.75rem);
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: var(--nc-radius-pill, 999px);
	background: var(--nc-color-brand-navy, #1a2b47);
	color: var(--nc-color-neutral-0, #fff);
}
.nc-feature-card__badge .nc-icon { --nc-icon-size: 1.25rem; }
.nc-feature-card__body { padding: var(--nc-space-5, 1.5rem); display: flex; flex-direction: column; gap: var(--nc-space-3, 0.75rem); flex: 1; }
.nc-feature-card__title { font-size: var(--nc-fs-md, 1.1875rem); color: var(--nc-color-brand-navy, #1a2b47); margin: 0; }
.nc-feature-card__text { font-size: var(--nc-fs-sm, 0.875rem); color: var(--nc-color-semantic-text-muted, #7b8494); margin: 0; flex: 1; }

/* --- Fit checklist -------------------------------------------------------- */

.nc-fit__grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: var(--nc-space-8, 3rem); align-items: start; }
.nc-fit__heading { font-size: var(--nc-fs-xl, 1.9375rem); color: var(--nc-color-brand-navy, #1a2b47); margin: 0 0 var(--nc-space-6, 2rem); max-width: 20rem; }
.nc-fit__columns { display: grid; grid-template-columns: 1fr 1fr; gap: var(--nc-space-6, 2rem); }
.nc-fit__col-title { font-size: var(--nc-fs-xs, 0.8125rem); font-weight: var(--nc-fw-semibold, 600); text-transform: uppercase; letter-spacing: var(--nc-tracking-wide, 0.08em); color: var(--nc-color-semantic-text-muted, #7b8494); margin: 0 0 var(--nc-space-4, 1rem); }
.nc-fit__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--nc-space-3, 0.75rem); }
.nc-fit__list li { display: flex; align-items: flex-start; gap: var(--nc-space-2, 0.5rem); font-size: var(--nc-fs-sm, 0.875rem); }
.nc-fit__icon { --nc-icon-size: 1.15rem; margin-top: 2px; }
.nc-fit__icon--good { color: var(--nc-color-state-success, #3fae6a); }
.nc-fit__icon--bad { color: var(--nc-color-neutral-300, #c4bcb0); }
.nc-fit__cta { padding: var(--nc-space-7, 2.5rem); border-radius: var(--nc-radius-lg, 16px); }
.nc-fit__cta-heading { font-size: var(--nc-fs-lg, 1.5rem); margin: 0 0 var(--nc-space-3, 0.75rem); }
.nc-fit__cta-body { color: var(--nc-color-semantic-text-on-dark-muted, #c4bcb0); margin: 0 0 var(--nc-space-5, 1.5rem); font-size: var(--nc-fs-sm, 0.875rem); }
.nc-fit__cta-note { display: flex; align-items: center; gap: var(--nc-space-2, 0.5rem); font-size: var(--nc-fs-xs, 0.8125rem); color: var(--nc-color-semantic-text-on-dark-muted, #c4bcb0); margin: var(--nc-space-4, 1rem) 0 0; }
.nc-fit__cta-note-icon { --nc-icon-size: 0.95rem; }

/* --- Case studies --------------------------------------------------------- */

.nc-cases__head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--nc-space-5, 1.5rem); flex-wrap: wrap; }
.nc-cases__head .nc-section__title { margin-bottom: var(--nc-space-6, 2rem); }
.nc-cases__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--nc-space-5, 1.5rem); }
.nc-case { display: flex; flex-direction: column; }
.nc-case__media { aspect-ratio: 16 / 10; background: var(--nc-color-neutral-100, #efeae3); }
.nc-case__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nc-case__body { padding: var(--nc-space-5, 1.5rem); display: flex; flex-direction: column; gap: var(--nc-space-3, 0.75rem); }
.nc-case__category { margin: 0; }
.nc-case__title { font-size: var(--nc-fs-md, 1.1875rem); color: var(--nc-color-brand-navy, #1a2b47); margin: 0; }
.nc-case__meta { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--nc-space-4, 1rem); }
.nc-case__excerpt { font-size: var(--nc-fs-sm, 0.875rem); color: var(--nc-color-semantic-text-muted, #7b8494); margin: 0; }

/* --- CTA strip ------------------------------------------------------------ */

.nc-cta-strip__grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: var(--nc-space-8, 3rem); align-items: center; }
.nc-cta-strip__media { border-radius: var(--nc-radius-lg, 16px); overflow: hidden; aspect-ratio: 16 / 10; }
.nc-cta-strip__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nc-cta-strip__placeholder { width: 100%; height: 100%; display: grid; place-items: center; color: var(--nc-color-semantic-text-on-dark-muted, #c4bcb0); }
.nc-cta-strip__heading { font-size: var(--nc-fs-xl, 1.9375rem); color: var(--nc-color-brand-navy, #1a2b47); margin: 0 0 var(--nc-space-4, 1rem); max-width: 24rem; }
.nc-cta-strip__body { color: var(--nc-color-semantic-text-muted, #7b8494); margin: 0 0 var(--nc-space-5, 1.5rem); max-width: 32rem; }

/* --- Responsive ----------------------------------------------------------- */

@media (max-width: 1024px) {
	.nc-feature-cards__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nc-cases__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 782px) {
	.nc-hero__grid,
	.nc-fit__grid,
	.nc-cta-strip__grid { grid-template-columns: 1fr; }
	.nc-hero__title { font-size: var(--nc-fs-3xl, 3.5rem); }
	.nc-feature-cards__grid,
	.nc-cases__grid { grid-template-columns: 1fr; }
	.nc-fit__columns { grid-template-columns: 1fr; }
	.nc-trust-bar__grid { justify-content: flex-start; }
}

/* --- FAQ accordion -------------------------------------------------------- */

.nc-faq__grid { display: grid; grid-template-columns: repeat(var(--nc-cols, 2), minmax(0, 1fr)); gap: 0 var(--nc-space-8, 3rem); }
.nc-faq__item { border-bottom: var(--nc-border-width, 1px) solid var(--nc-color-semantic-border, #ddd6cc); }
.nc-faq__q { display: flex; justify-content: space-between; align-items: center; gap: var(--nc-space-4, 1rem); cursor: pointer; list-style: none; padding: var(--nc-space-4, 1rem) 0; font-weight: var(--nc-fw-semibold, 600); color: var(--nc-color-brand-navy, #1a2b47); font-size: var(--nc-fs-md, 1.1875rem); }
.nc-faq__q::-webkit-details-marker { display: none; }
.nc-faq__chevron { --nc-icon-size: 1.1rem; transform: rotate(90deg); transition: transform var(--nc-transition-base, 220ms) var(--nc-transition-ease, ease); color: var(--nc-color-brand-coral, #e8674f); }
.nc-faq__item[open] .nc-faq__chevron { transform: rotate(-90deg); }
.nc-faq__a { padding: 0 0 var(--nc-space-4, 1rem); color: var(--nc-color-semantic-text-muted, #7b8494); max-width: 62ch; }
.nc-faq__a p { margin-top: 0; }

/* --- Featured topic ------------------------------------------------------- */

.nc-featured__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--nc-space-8, 3rem); align-items: center; }
.nc-featured--img-right .nc-featured__media { order: 2; }
.nc-featured__media img { width: 100%; height: auto; border-radius: var(--nc-radius-lg, 16px); display: block; }
.nc-featured__placeholder { aspect-ratio: 4 / 3; display: grid; place-items: center; background: var(--nc-color-neutral-100, #efeae3); border-radius: var(--nc-radius-lg, 16px); color: var(--nc-color-neutral-300, #c4bcb0); }
.nc-featured__heading { font-size: var(--nc-fs-xl, 1.9375rem); color: var(--nc-color-brand-navy, #1a2b47); margin: 0 0 var(--nc-space-4, 1rem); }
.nc-featured__text { color: var(--nc-color-semantic-text-muted, #7b8494); margin: 0 0 var(--nc-space-5, 1.5rem); max-width: 44ch; }
.nc-section--dark .nc-featured__heading { color: var(--nc-color-neutral-0, #fff); }
.nc-section--dark .nc-featured__text { color: var(--nc-color-semantic-text-on-dark-muted, #c4bcb0); }

/* --- Process steps -------------------------------------------------------- */

.nc-process__title { text-align: center; max-width: 40rem; margin-inline: auto; }
.nc-process__list { list-style: none; margin: var(--nc-space-8, 3rem) 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--nc-space-5, 1.5rem); }
.nc-process__step { position: relative; text-align: center; display: flex; flex-direction: column; align-items: center; gap: var(--nc-space-2, 0.5rem); }
.nc-process__marker { width: 3.25rem; height: 3.25rem; border-radius: var(--nc-radius-pill, 999px); display: grid; place-items: center; background: var(--nc-color-neutral-0, #fff); border: var(--nc-border-width, 1px) solid var(--nc-color-semantic-border, #ddd6cc); color: var(--nc-color-brand-coral, #e8674f); position: relative; z-index: 1; }
.nc-process__marker .nc-icon { --nc-icon-size: 1.4rem; }
.nc-process__num { font-family: var(--nc-font-heading, inherit); font-weight: var(--nc-fw-bold, 700); }
.nc-process__step:not(:last-child) .nc-process__marker::after { content: ""; position: absolute; left: 100%; top: 50%; width: calc(100% + var(--nc-space-5, 1.5rem)); height: 2px; background: var(--nc-color-semantic-border, #ddd6cc); }
.nc-process__step-title { font-size: var(--nc-fs-base, 1rem); color: var(--nc-color-brand-navy, #1a2b47); margin: var(--nc-space-2, 0.5rem) 0 0; }
.nc-process__step-num { color: var(--nc-color-brand-coral, #e8674f); }
.nc-process__step-text { font-size: var(--nc-fs-sm, 0.875rem); color: var(--nc-color-semantic-text-muted, #7b8494); margin: 0; }
.nc-section--dark .nc-process__step-title { color: var(--nc-color-neutral-0, #fff); }
.nc-section--dark .nc-process__marker { background: transparent; border-color: var(--nc-color-semantic-border-dark, #3a4658); }

/* --- Stats ---------------------------------------------------------------- */

.nc-stats__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--nc-space-6, 2rem); text-align: center; }
.nc-stats__item { display: flex; flex-direction: column; gap: var(--nc-space-1, 0.25rem); }
.nc-stats__value { font-family: var(--nc-font-heading, inherit); font-size: var(--nc-fs-3xl, 3.5rem); font-weight: var(--nc-fw-bold, 700); line-height: 1; color: var(--nc-color-brand-coral, #e8674f); }
/* Number size control (S/M/L). Medium = default. */
.nc-stats--sm .nc-stats__value { font-size: var(--nc-fs-2xl, 2.25rem); }
.nc-stats--md .nc-stats__value { font-size: var(--nc-fs-3xl, 3.5rem); }
.nc-stats--lg .nc-stats__value { font-size: clamp(3.25rem, 2.5rem + 3vw, 5rem); }
.nc-stats__label { font-size: var(--nc-fs-sm, 0.875rem); color: var(--nc-color-semantic-text-muted, #7b8494); }
.nc-section--dark .nc-stats__label { color: var(--nc-color-semantic-text-on-dark-muted, #c4bcb0); }

/* --- Responsive (new modules) -------------------------------------------- */

@media (max-width: 1024px) {
	.nc-process__list { grid-template-columns: repeat(2, 1fr); }
	.nc-process__step:not(:last-child) .nc-process__marker::after { display: none; }
	.nc-stats__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 782px) {
	.nc-featured__grid { grid-template-columns: 1fr; }
	.nc-featured--img-right .nc-featured__media { order: 0; }
	.nc-faq__grid { grid-template-columns: 1fr; }
	.nc-stats__grid { grid-template-columns: 1fr 1fr; }
}

/* --- Customer logos (marquee) -------------------------------------------- */

.nc-logos { padding-block: var(--nc-space-7, 2.5rem); }
.nc-logos__eyebrow { text-align: center; display: block; margin-bottom: 0; }
.nc-logos__viewport { overflow: hidden; margin-top: var(--nc-space-5, 1.5rem); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.nc-logos__track { display: flex; align-items: center; list-style: none; margin: 0; padding: 0; width: max-content; }
.nc-logos__track--animate { animation: nc-marquee var(--nc-marquee-duration, 32s) linear infinite; }
.nc-logos:hover .nc-logos__track--animate { animation-play-state: paused; }
.nc-logos__track:not(.nc-logos__track--animate) { flex-wrap: wrap; justify-content: center; width: auto; row-gap: var(--nc-space-5, 1.5rem); }
.nc-logos__item { flex: none; display: flex; align-items: center; margin-right: clamp(2rem, 5vw, 4.5rem); }
.nc-logo { height: clamp(1.75rem, 3.2vw, 2.75rem); width: auto; max-width: 170px; object-fit: contain; display: block; opacity: 0.85; }
.nc-logo--grey { filter: grayscale(1); opacity: 0.55; transition: filter var(--nc-transition-base, 220ms) var(--nc-transition-ease, ease), opacity var(--nc-transition-base, 220ms) var(--nc-transition-ease, ease); }
.nc-logos--hover-color .nc-logo--grey:hover { filter: grayscale(0); opacity: 1; }
.nc-logo--mono { display: block; height: clamp(1.75rem, 3.2vw, 2.75rem); width: clamp(6rem, 12vw, 9.5rem); background-color: var(--nc-logo-color, #1a2b47); -webkit-mask: var(--nc-logo-img) center / contain no-repeat; mask: var(--nc-logo-img) center / contain no-repeat; opacity: 0.85; }
.nc-section--dark .nc-logo--mono { background-color: var(--nc-color-neutral-0, #fff); }
.nc-section--dark .nc-logo--grey { filter: grayscale(1) brightness(4); }
.nc-logo__link { display: flex; align-items: center; }
.nc-logo--placeholder { display: grid; place-items: center; height: clamp(1.75rem, 3.2vw, 2.75rem); width: clamp(6rem, 12vw, 9.5rem); border: 1px dashed var(--nc-color-semantic-border, #ddd6cc); border-radius: var(--nc-radius-md, 8px); color: var(--nc-color-neutral-300, #c4bcb0); font-size: var(--nc-fs-xs, 0.8125rem); font-weight: var(--nc-fw-semibold, 600); letter-spacing: 0.04em; }
.nc-section--dark .nc-logo--placeholder { border-color: var(--nc-color-semantic-border-dark, #3a4658); color: var(--nc-color-semantic-text-on-dark-muted, #c4bcb0); }

/* --- Forms (contact + wizard) -------------------------------------------- */

.nc-form { width: 100%; max-width: 640px; container-type: inline-size; }
.nc-form.nc-contact-form { max-width: none; }
.nc-form *, .nc-form *::before, .nc-form *::after { box-sizing: border-box; }
/* [hidden] must beat .nc-btn's display so wizard Back/Submit stay hidden until needed. */
.nc-form [hidden] { display: none !important; }
/* The wizard fills its block (100%); control width via the block's alignment or a column. */
.nc-wizard { max-width: none; }
.nc-form__title { font-size: var(--nc-fs-xl, 1.9375rem); color: var(--nc-color-brand-navy, #1a2b47); margin: 0 0 var(--nc-space-3, 0.75rem); }
.nc-form__intro { color: var(--nc-color-semantic-text-muted, #7b8494); margin: 0 0 var(--nc-space-6, 2rem); }
.nc-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--nc-space-4, 1rem); }
.nc-field { margin: 0 0 var(--nc-space-4, 1rem); display: flex; flex-direction: column; gap: 0.35rem; }
.nc-field--full { grid-column: 1 / -1; }
.nc-field label { font-weight: var(--nc-fw-semibold, 600); font-size: var(--nc-fs-sm, 0.875rem); color: var(--nc-color-brand-navy, #1a2b47); }
.nc-form input[type="text"], .nc-form input[type="email"], .nc-form input[type="tel"], .nc-form textarea {
	width: 100%; padding: 0.7rem 0.85rem; border: var(--nc-border-width, 1px) solid var(--nc-color-semantic-border, #ddd6cc);
	border-radius: var(--nc-radius-md, 8px); font: inherit; font-size: var(--nc-fs-base, 1rem);
	background: var(--nc-color-neutral-0, #fff); color: var(--nc-color-semantic-text, #111a2b);
}
.nc-form input:focus, .nc-form textarea:focus { outline: none; border-color: var(--nc-color-brand-coral, #e8674f); box-shadow: 0 0 0 3px rgba(232, 103, 79, 0.15); }
.nc-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.nc-form__foot { margin-top: var(--nc-space-4, 1rem); }
.nc-form__status { margin-top: var(--nc-space-4, 1rem); font-size: var(--nc-fs-sm, 0.875rem); }
.nc-form__status.is-success { color: var(--nc-color-state-success, #3fae6a); font-weight: var(--nc-fw-semibold, 600); }
.nc-form__status.is-error { color: var(--nc-color-state-danger, #d64545); font-weight: var(--nc-fw-semibold, 600); }
.nc-btn.is-busy { opacity: 0.7; pointer-events: none; }

.nc-wizard__progress { height: 4px; background: var(--nc-color-semantic-border, #ddd6cc); border-radius: 99px; overflow: hidden; margin-bottom: 0.5rem; }
.nc-wizard__progress-bar { display: block; height: 100%; width: 16.6%; background: var(--nc-color-brand-coral, #e8674f); transition: width var(--nc-transition-base, 220ms) var(--nc-transition-ease, ease); }
.nc-wizard__stepcount { font-size: var(--nc-fs-xs, 0.8125rem); color: var(--nc-color-semantic-text-muted, #7b8494); margin: 0 0 var(--nc-space-5, 1.5rem); text-align: right; }
.nc-wizard__step { display: none; }
.nc-wizard__step.is-active { display: block; animation: nc-fade 0.25s ease; }
@keyframes nc-fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.nc-wizard__field { border: 0; padding: 0; margin: 0; min-width: 0; }
.nc-wizard__legend { font-size: var(--nc-fs-lg, 1.5rem); color: var(--nc-color-brand-navy, #1a2b47); font-family: var(--nc-font-heading, inherit); margin: 0 0 var(--nc-space-5, 1.5rem); padding: 0; }
.nc-wizard__options { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--nc-space-3, 0.75rem); }
.nc-wizard__opt { position: relative; cursor: pointer; }
.nc-wizard__opt input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.nc-wizard__opt-inner { display: flex; flex-direction: column; align-items: flex-start; gap: var(--nc-space-2, 0.5rem); padding: var(--nc-space-4, 1rem); border: var(--nc-border-width, 1px) solid var(--nc-color-semantic-border, #ddd6cc); border-radius: var(--nc-radius-md, 8px); transition: 0.15s; height: 100%; }
.nc-wizard__opt input:checked + .nc-wizard__opt-inner { border-color: var(--nc-color-brand-coral, #e8674f); box-shadow: 0 0 0 2px var(--nc-color-brand-coral, #e8674f) inset; }
.nc-wizard__opt input:focus-visible + .nc-wizard__opt-inner { outline: 3px solid var(--nc-color-semantic-focus-ring, #e8674f); outline-offset: 2px; }
.nc-wizard__opt-icon { --nc-icon-size: 1.5rem; color: var(--nc-color-brand-coral, #e8674f); }
.nc-wizard__opt-label { font-weight: var(--nc-fw-semibold, 600); font-size: var(--nc-fs-sm, 0.875rem); color: var(--nc-color-brand-navy, #1a2b47); }
.nc-wizard__nav { display: flex; gap: var(--nc-space-3, 0.75rem); margin-top: var(--nc-space-6, 2rem); }
.nc-wizard__next, .nc-wizard__submit { margin-left: auto; }
.nc-wizard__review { margin-top: var(--nc-space-6, 2rem); padding-top: var(--nc-space-5, 1.5rem); border-top: 1px solid var(--nc-color-semantic-border, #ddd6cc); }
.nc-wizard__review-title { font-size: var(--nc-fs-md, 1.1875rem); color: var(--nc-color-brand-navy, #1a2b47); margin: 0 0 var(--nc-space-3, 0.75rem); }
.nc-wizard__summary { display: grid; grid-template-columns: auto 1fr; gap: 0.4rem 1rem; font-size: var(--nc-fs-sm, 0.875rem); }
.nc-wizard__summary dt { color: var(--nc-color-semantic-text-muted, #7b8494); }
.nc-wizard__summary dd { margin: 0; font-weight: var(--nc-fw-semibold, 600); }
.nc-wizard__done { padding: var(--nc-space-7, 2.5rem); text-align: center; background: var(--nc-color-neutral-50, #f7f5f2); border-radius: var(--nc-radius-lg, 16px); color: var(--nc-color-brand-navy, #1a2b47); font-size: var(--nc-fs-md, 1.1875rem); }

/* Forms adapt to their CONTAINER width (works inside 50% columns, not just the viewport). */
@container (max-width: 560px) {
	.nc-wizard__options { grid-template-columns: 1fr 1fr; }
}
@container (max-width: 420px) {
	.nc-form__grid { grid-template-columns: 1fr; }
	.nc-wizard__options { grid-template-columns: 1fr; }
	.nc-wizard__nav { flex-wrap: wrap; }
}
/* Fallback for browsers without container queries. */
@supports not (container-type: inline-size) {
	@media (max-width: 600px) {
		.nc-form__grid { grid-template-columns: 1fr; }
		.nc-wizard__options { grid-template-columns: 1fr 1fr; }
	}
}

@keyframes nc-marquee {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
	.nc-logos__track--animate { animation: none; flex-wrap: wrap; justify-content: center; width: auto; row-gap: var(--nc-space-5, 1.5rem); }
	.nc-logos__viewport { -webkit-mask-image: none; mask-image: none; }
}

/* --- Content cards (necom/cards) ----------------------------------------- */

.nc-cards__intro { color: var(--nc-color-semantic-text-muted, #7b8494); max-width: 60ch; margin: -0.5rem 0 var(--nc-space-6, 2rem); }
.nc-cards__grid { display: grid; grid-template-columns: repeat(var(--nc-cols, 3), minmax(0, 1fr)); gap: var(--nc-space-5, 1.5rem); }
.nc-content-card { display: flex; flex-direction: column; padding: var(--nc-space-6, 2rem); border-radius: var(--nc-radius-lg, 16px); text-decoration: none; color: inherit; gap: var(--nc-space-3, 0.75rem); }
.nc-cards--bordered .nc-content-card { border: var(--nc-border-width, 1px) solid var(--nc-color-semantic-border, #ddd6cc); background: var(--nc-color-neutral-0, #fff); }
.nc-cards--elevated .nc-content-card { background: var(--nc-color-neutral-0, #fff); box-shadow: var(--nc-shadow-md, 0 6px 20px rgba(17,26,43,.08)); }
.nc-cards--plain .nc-content-card { padding-inline: 0; }
.nc-content-card--link { transition: transform var(--nc-transition-base, 220ms) var(--nc-transition-ease, ease), box-shadow var(--nc-transition-base, 220ms) var(--nc-transition-ease, ease); }
.nc-content-card--link:hover { transform: translateY(-3px); }
.nc-cards--elevated .nc-content-card--link:hover { box-shadow: var(--nc-shadow-lg, 0 20px 48px rgba(17,26,43,.14)); }
.nc-content-card__media { aspect-ratio: 16 / 10; border-radius: var(--nc-radius-md, 8px); overflow: hidden; background: var(--nc-color-neutral-100, #efeae3); }
.nc-content-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nc-content-card__icon { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: var(--nc-radius-pill, 999px); background: var(--nc-color-brand-navy, #1a2b47); color: var(--nc-color-neutral-0, #fff); }
.nc-content-card__icon .nc-icon { --nc-icon-size: 1.4rem; }
.nc-content-card__badge { display: inline-block; align-self: flex-start; padding: 0.15rem 0.6rem; border-radius: 99px; background: var(--nc-color-neutral-50, #f7f5f2); color: var(--nc-color-brand-coral, #e8674f); font-size: var(--nc-fs-xs, 0.8125rem); font-weight: var(--nc-fw-semibold, 600); text-transform: uppercase; letter-spacing: 0.06em; }
.nc-content-card__title { font-size: var(--nc-fs-md, 1.1875rem); color: var(--nc-color-brand-navy, #1a2b47); margin: 0; }
.nc-content-card__text { font-size: var(--nc-fs-sm, 0.875rem); color: var(--nc-color-semantic-text-muted, #7b8494); margin: 0; }
.nc-content-card__link { display: inline-flex; align-items: center; gap: 0.4rem; color: var(--nc-color-brand-coral, #e8674f); font-weight: var(--nc-fw-semibold, 600); font-size: var(--nc-fs-sm, 0.875rem); text-transform: uppercase; letter-spacing: 0.06em; margin-top: auto; }
.nc-content-card__link-icon { --nc-icon-size: 1em; transition: transform var(--nc-transition-fast, 140ms) var(--nc-transition-ease, ease); }
.nc-content-card--link:hover .nc-content-card__link-icon { transform: translateX(3px); }

/* --- Team (necom/team) --------------------------------------------------- */

.nc-team__grid { display: grid; grid-template-columns: repeat(var(--nc-cols, 3), minmax(0, 1fr)); gap: var(--nc-space-6, 2rem); }
.nc-team__member { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 0.35rem; }
.nc-team__photo { width: 100%; aspect-ratio: 1; border-radius: var(--nc-radius-lg, 16px); overflow: hidden; background: var(--nc-color-neutral-100, #efeae3); margin-bottom: var(--nc-space-3, 0.75rem); display: grid; place-items: center; }
.nc-team__photo img { width: 100%; height: 100%; object-fit: cover; }
.nc-team__photo-fallback { color: var(--nc-color-neutral-300, #c4bcb0); }
.nc-team__name { font-size: var(--nc-fs-md, 1.1875rem); color: var(--nc-color-brand-navy, #1a2b47); margin: 0; }
.nc-team__role { font-size: var(--nc-fs-sm, 0.875rem); color: var(--nc-color-brand-coral, #e8674f); font-weight: var(--nc-fw-semibold, 600); margin: 0; }
.nc-team__bio { font-size: var(--nc-fs-sm, 0.875rem); color: var(--nc-color-semantic-text-muted, #7b8494); margin: 0.25rem 0 0; max-width: 26ch; }
.nc-team__links { display: flex; gap: 0.5rem; margin-top: 0.5rem; }
.nc-team__links a { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: var(--nc-radius-pill, 999px); border: 1px solid var(--nc-color-semantic-border, #ddd6cc); color: var(--nc-color-brand-navy, #1a2b47); }
.nc-team__links a:hover { border-color: var(--nc-color-brand-coral, #e8674f); color: var(--nc-color-brand-coral, #e8674f); }
.nc-team__links .nc-icon { --nc-icon-size: 1rem; }

/* --- Locations (necom/locations) ----------------------------------------- */

.nc-locations__map { border-radius: var(--nc-radius-lg, 16px); overflow: hidden; margin-bottom: var(--nc-space-6, 2rem); }
.nc-locations__map iframe { width: 100%; height: var(--nc-map-h, 420px); border: 0; display: block; }
.nc-locations__grid { display: grid; grid-template-columns: repeat(var(--nc-cols, 3), minmax(0, 1fr)); gap: var(--nc-space-5, 1.5rem); }
.nc-location { padding: var(--nc-space-6, 2rem); }
.nc-location__name { font-size: var(--nc-fs-md, 1.1875rem); color: var(--nc-color-brand-navy, #1a2b47); margin: 0 0 var(--nc-space-3, 0.75rem); }
.nc-location__row { display: flex; align-items: flex-start; gap: var(--nc-space-2, 0.5rem); font-size: var(--nc-fs-sm, 0.875rem); color: var(--nc-color-semantic-text-muted, #7b8494); margin: 0 0 0.5rem; }
.nc-location__row a { color: inherit; text-decoration: none; }
.nc-location__row a:hover { color: var(--nc-color-brand-coral, #e8674f); }
.nc-location__icon { --nc-icon-size: 1.05rem; color: var(--nc-color-brand-coral, #e8674f); margin-top: 2px; }

@media (max-width: 1024px) {
	.nc-cards__grid, .nc-team__grid, .nc-locations__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.nc-cards__grid, .nc-team__grid, .nc-locations__grid { grid-template-columns: 1fr; }
}

/* --- Top bar (necom/top-bar) --------------------------------------------- */

.nc-topbar { font-size: var(--nc-fs-xs, 0.8125rem); }
.nc-topbar--dark { background: var(--nc-color-brand-navy-deep, #111a2b); color: var(--nc-color-neutral-0, #fff); }
.nc-topbar--coral { background: var(--nc-color-brand-coral, #e8674f); color: var(--nc-color-neutral-0, #fff); }
.nc-topbar--light { background: var(--nc-color-neutral-50, #f7f5f2); color: var(--nc-color-brand-navy, #1a2b47); border-bottom: 1px solid var(--nc-color-semantic-border, #ddd6cc); }
/* Widen the bar to the site's wide column so items sit over the logo/CTA line,
   and let the items flex to fill it so they spread edge-to-edge (with gutters). */
.nc-topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--nc-space-5, 1.5rem); padding-block: 0.5rem; max-width: var(--nc-layout-wide-width, 1360px); }
.nc-topbar__items { display: flex; flex: 1 1 auto; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--nc-space-3, 0.75rem) var(--nc-space-6, 2rem); list-style: none; margin: 0; padding: 0; }
.nc-topbar__item { display: inline-flex; align-items: center; gap: 0.45rem; letter-spacing: 0.02em; }
.nc-topbar__icon { --nc-icon-size: 1rem; opacity: 0.9; }
.nc-topbar--light .nc-topbar__icon { color: var(--nc-color-brand-coral, #e8674f); }
.nc-topbar__right { white-space: nowrap; font-weight: var(--nc-fw-semibold, 600); }
.nc-topbar__right a { color: inherit; text-decoration: none; }
.nc-topbar__right a:hover { text-decoration: underline; }

@media (max-width: 900px) {
	.nc-topbar__right { display: none; }
}
@media (max-width: 640px) {
	.nc-topbar__items { justify-content: center; width: 100%; gap: var(--nc-space-2, 0.5rem) var(--nc-space-5, 1.5rem); }
	.nc-topbar__inner { justify-content: center; }
}

/* --- Insights (necom/insights) ------------------------------------------- */

.nc-insights__intro { color: var(--nc-color-semantic-text-muted, #7b8494); max-width: 60ch; margin: -0.5rem 0 var(--nc-space-5, 1.5rem); }
.nc-insights__filters { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: var(--nc-space-6, 2rem); }
.nc-insights__chip { padding: 0.35rem 0.9rem; border-radius: 99px; border: 1px solid var(--nc-color-semantic-border, #ddd6cc); font-size: var(--nc-fs-sm, 0.875rem); transition: border-color var(--nc-transition-fast, 140ms) var(--nc-transition-ease, ease); }
.nc-insights__chip a { color: var(--nc-color-brand-navy, #1a2b47); text-decoration: none; }
.nc-insights__chip:hover { border-color: var(--nc-color-brand-coral, #e8674f); }
.nc-insights__chip.is-active { background: var(--nc-color-brand-navy, #1a2b47); border-color: var(--nc-color-brand-navy, #1a2b47); }
.nc-insights__chip.is-active a { color: var(--nc-color-neutral-0, #fff); }
.nc-insights__grid { display: grid; grid-template-columns: repeat(var(--nc-cols, 3), minmax(0, 1fr)); gap: var(--nc-space-5, 1.5rem); }
.nc-insight-card { display: flex; flex-direction: column; }
.nc-insight-card__media { display: block; aspect-ratio: 16 / 10; background: var(--nc-color-neutral-100, #efeae3); overflow: hidden; }
.nc-insight-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s var(--nc-transition-ease, ease); }
.nc-insight-card:hover .nc-insight-card__media img { transform: scale(1.04); }
.nc-insight-card__ph { width: 100%; height: 100%; display: grid; place-items: center; color: var(--nc-color-neutral-300, #c4bcb0); }
.nc-insight-card__body { padding: var(--nc-space-5, 1.5rem); display: flex; flex-direction: column; gap: 0.5rem; flex: 1; }
.nc-insight-card__aud { margin: 0; }
.nc-insight-card__title { font-size: var(--nc-fs-md, 1.1875rem); margin: 0; color: var(--nc-color-brand-navy, #1a2b47); }
.nc-insight-card__title a { color: inherit; text-decoration: none; }
.nc-insight-card__title a:hover { color: var(--nc-color-brand-coral, #e8674f); }
.nc-insight-card__excerpt { font-size: var(--nc-fs-sm, 0.875rem); color: var(--nc-color-semantic-text-muted, #7b8494); margin: 0; }
.nc-insight-card__link { display: inline-flex; align-items: center; gap: 0.4rem; color: var(--nc-color-brand-coral, #e8674f); font-weight: var(--nc-fw-semibold, 600); font-size: var(--nc-fs-sm, 0.875rem); text-transform: uppercase; letter-spacing: 0.06em; margin-top: auto; }
.nc-insight-card__link-icon { --nc-icon-size: 1em; transition: transform var(--nc-transition-fast, 140ms) var(--nc-transition-ease, ease); }
.nc-insight-card:hover .nc-insight-card__link-icon { transform: translateX(3px); }
.nc-insights__empty { color: var(--nc-color-semantic-text-muted, #7b8494); }

@media (max-width: 1024px) { .nc-insights__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .nc-insights__grid { grid-template-columns: 1fr; } }

/* CTA strip image left/right */
.nc-cta-strip--img-right .nc-cta-strip__media { order: 2; }
@media (max-width: 782px) { .nc-cta-strip--img-right .nc-cta-strip__media { order: 0; } }

/* --- Audience picker (Insights pillar) ----------------------------------- */
.nc-audience__title { max-width: 22ch; }
.nc-audience__intro { font-size: var(--nc-fs-md, 1.0625rem); color: var(--nc-color-semantic-text-muted, #7b8494); max-width: 60ch; margin: var(--nc-space-3, 0.75rem) 0 var(--nc-space-7, 2.5rem); }
.nc-audience__grid { display: grid; grid-template-columns: repeat(var(--nc-cols, 3), minmax(0, 1fr)); gap: var(--nc-space-5, 1.5rem); }
.nc-audience-card {
	display: flex;
	flex-direction: column;
	gap: var(--nc-space-4, 1rem);
	padding: var(--nc-space-6, 2rem);
	border-radius: var(--nc-radius-lg, 16px);
	text-decoration: none;
	color: inherit;
	background: var(--nc-color-neutral-0, #fff);
	transition: transform var(--nc-transition-base, 220ms) var(--nc-transition-ease, ease), box-shadow var(--nc-transition-base, 220ms) var(--nc-transition-ease, ease), border-color var(--nc-transition-base, 220ms) var(--nc-transition-ease, ease);
}
.nc-audience--bordered .nc-audience-card { border: var(--nc-border-width, 1px) solid var(--nc-color-semantic-border, #ddd6cc); }
.nc-audience--elevated .nc-audience-card { box-shadow: var(--nc-shadow-md, 0 6px 20px rgba(17,26,43,.08)); }
.nc-audience--plain .nc-audience-card { padding-inline: 0; }
.nc-audience-card:hover { transform: translateY(-4px); }
.nc-audience--elevated .nc-audience-card:hover { box-shadow: var(--nc-shadow-lg, 0 20px 48px rgba(17,26,43,.14)); }
.nc-audience--bordered .nc-audience-card:hover { border-color: var(--nc-color-brand-coral, #e8674f); }
.nc-audience-card__icon {
	display: grid;
	place-items: center;
	width: 3.25rem;
	height: 3.25rem;
	border-radius: var(--nc-radius-md, 8px);
	background: var(--nc-color-brand-navy, #1a2b47);
	color: var(--nc-color-neutral-0, #fff);
	flex: none;
}
.nc-audience-card:hover .nc-audience-card__icon { background: var(--nc-color-brand-coral, #e8674f); }
.nc-audience-card__icon .nc-icon { --nc-icon-size: 1.5rem; }
.nc-audience-card__body { display: flex; flex-direction: column; gap: 0.4rem; flex: 1; }
.nc-audience-card__title { font-family: var(--nc-font-heading, inherit); font-size: var(--nc-fs-lg, 1.375rem); font-weight: var(--nc-fw-bold, 700); color: var(--nc-color-brand-navy, #1a2b47); letter-spacing: -0.01em; }
.nc-audience-card__text { font-size: var(--nc-fs-sm, 0.875rem); color: var(--nc-color-semantic-text-muted, #7b8494); line-height: var(--nc-lh-base, 1.5); }
.nc-audience-card__text--muted { opacity: 0.75; }
.nc-audience-card__meta { display: flex; align-items: center; justify-content: space-between; gap: var(--nc-space-3, 0.75rem); margin-top: auto; padding-top: var(--nc-space-3, 0.75rem); }
.nc-audience-card__count { font-size: var(--nc-fs-xs, 0.8125rem); font-weight: var(--nc-fw-semibold, 600); color: var(--nc-color-semantic-text-muted, #7b8494); text-transform: uppercase; letter-spacing: 0.06em; }
.nc-audience-card__link { display: inline-flex; align-items: center; gap: 0.4rem; color: var(--nc-color-brand-coral, #e8674f); font-weight: var(--nc-fw-semibold, 600); font-size: var(--nc-fs-sm, 0.875rem); text-transform: uppercase; letter-spacing: 0.06em; }
.nc-audience-card__link-icon { --nc-icon-size: 1em; transition: transform var(--nc-transition-fast, 140ms) var(--nc-transition-ease, ease); }
.nc-audience-card:hover .nc-audience-card__link-icon { transform: translateX(3px); }

@media (max-width: 1024px) { .nc-audience__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .nc-audience__grid { grid-template-columns: 1fr; } }
