/* ==========================================================================
   Globe Theme — base layer
   Built entirely on NeCom Core design tokens (--nc-*). No hard-coded values.
   ========================================================================== */

/* --- Accessibility utilities --------------------------------------------- */

.nc-sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.nc-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: var(--nc-z-modal, 300);
	padding: var(--nc-space-3, 0.75rem) var(--nc-space-5, 1.5rem);
	background: var(--nc-color-brand-coral, #e8674f);
	color: var(--nc-color-neutral-0, #fff);
	border-radius: 0 0 var(--nc-radius-md, 8px) 0;
	font-weight: var(--nc-fw-semibold, 600);
	text-decoration: none;
}

.nc-skip-link:focus {
	left: 0;
}

/* Visible focus for keyboard users everywhere. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--nc-color-semantic-focus-ring, #e8674f);
	outline-offset: 2px;
	border-radius: var(--nc-radius-sm, 4px);
}

/* Minimum target size (WCAG 2.2). */
.wp-block-button__link,
.wp-block-navigation-item a {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
}

/* --- Motion preferences --------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
}

/* --- Base rhythm ---------------------------------------------------------- */

body {
	font-family: var(--nc-font-body, "Inter", system-ui, sans-serif);
	color: var(--nc-color-semantic-text, #111a2b);
	background: var(--nc-color-semantic-bg, #fff);
	line-height: var(--nc-lh-base, 1.5);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--nc-font-heading, "Inter", system-ui, sans-serif);
	line-height: var(--nc-lh-tight, 1.08);
	letter-spacing: var(--nc-tracking-tight, -0.02em);
}

/* --- Section helper classes (used by patterns/blocks in later phases) ----- */

.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);
}

.nc-icon {
	width: 1.5rem;
	height: 1.5rem;
	flex: none;
}

/* Sticky site header — flush against the body (no divider line, no gap). */
.nc-site-header {
	position: sticky;
	top: 0;
	z-index: var(--nc-z-header, 100);
}
/* Kill the block-gap that WordPress inserts between the header and <main>,
   so the hero sits directly under the header with no white strip. */
.wp-site-blocks > .nc-main { margin-block-start: 0; }
.nc-main > :first-child { margin-block-start: 0; }

/* When a custom logo is set, hide the text-title fallback. */
.wp-custom-logo .nc-site-title-fallback { display: none; }

/* Logo / site title */
.nc-site-header .wp-block-site-logo img { display: block; height: auto; }
.nc-site-header .wp-block-site-title a {
	color: var(--nc-color-brand-navy, #1a2b47);
	font-family: var(--nc-font-heading, inherit);
	font-weight: var(--nc-fw-bold, 700);
	text-decoration: none;
	letter-spacing: -0.01em;
}

/* Header layout — brand left, nav + CTA right, all on one centred line. */
.nc-site-header .wp-block-group.alignwide { align-items: center; }
.nc-site-header__right { gap: var(--nc-space-6, 2rem); align-items: center; }
.nc-site-header__brand { gap: var(--nc-space-3, 0.75rem); align-items: center; }
.nc-site-header .wp-block-navigation,
.nc-site-header .wp-block-navigation .wp-block-navigation__container,
.nc-site-header .wp-block-buttons { align-items: center; }

/* Navigation */
.nc-site-header .wp-block-navigation {
	font-size: var(--nc-fs-sm, 0.9375rem);
	font-weight: var(--nc-fw-medium, 500);
	letter-spacing: 0.005em;
}
.nc-site-header .wp-block-navigation .wp-block-navigation__container {
	gap: clamp(0.35rem, 1.1vw, 1.05rem);
	align-items: center;
	flex-wrap: nowrap;
}
/* The submenu toggle is a <button> — strip native button chrome so it looks
   identical to the link items (no grey box / border). */
.nc-site-header .wp-block-navigation button.wp-block-navigation-item__content {
	background: transparent;
	border: 0;
	margin: 0;
	font: inherit;
	color: inherit;
	cursor: pointer;
	appearance: none;
}
/* The clickable label (link OR submenu toggle): one line, label + chevron
   inline, 44px tall for touch, text vertically centred. */
.nc-site-header .wp-block-navigation .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	gap: 0.28rem;
	white-space: nowrap;
	min-height: 44px;
	padding: 0.25rem 0.2rem;
	color: var(--nc-color-brand-navy, #1a2b47);
	text-decoration: none;
	line-height: 1;
	transition: color var(--nc-transition-fast, 140ms) var(--nc-transition-ease, ease);
}
.nc-site-header .wp-block-navigation .wp-block-navigation-item__content:hover { color: var(--nc-color-brand-coral, #e8674f); }

/* Submenu chevron — small, inline, never drops to its own line, flips when open. */
.nc-site-header .wp-block-navigation .wp-block-navigation__submenu-icon {
	margin: 0;
	padding: 0;
	display: inline-flex;
	align-items: center;
}
.nc-site-header .wp-block-navigation .wp-block-navigation__submenu-icon svg {
	width: 0.66em;
	height: 0.66em;
	transition: transform var(--nc-transition-fast, 140ms) var(--nc-transition-ease, ease);
}
.nc-site-header .wp-block-navigation-item:hover > .wp-block-navigation-item__content .wp-block-navigation__submenu-icon svg,
.nc-site-header .wp-block-navigation-item:focus-within > .wp-block-navigation-item__content .wp-block-navigation__submenu-icon svg {
	transform: rotate(180deg);
}

/* Coral underline — sits just under the label text; top-level items only. */
.nc-site-header .wp-block-navigation .wp-block-navigation-item { position: relative; }
.nc-site-header .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0.2rem;
	right: 0.2rem;
	top: calc(50% + 0.62em);
	height: 2px;
	background: var(--nc-color-brand-coral, #e8674f);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform var(--nc-transition-fast, 140ms) var(--nc-transition-ease, ease);
}
.nc-site-header .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after,
.nc-site-header .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content::after {
	transform: scaleX(1);
}

/* Submenu dropdown — desktop only (scoped away from the open mobile drawer,
   where the white card + shadow looked broken against the navy panel). */
.nc-site-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container {
	background: var(--nc-color-neutral-0, #fff);
	border: 1px solid var(--nc-color-semantic-border, #ddd6cc);
	border-radius: var(--nc-radius-md, 8px);
	box-shadow: var(--nc-shadow-lg, 0 20px 48px rgba(17,26,43,.14));
	padding: var(--nc-space-2, 0.5rem);
	min-width: 240px;
}
.nc-site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	min-height: 0;
	padding: 0.5rem 0.7rem;
	border-radius: var(--nc-radius-sm, 4px);
	width: 100%;
}
.nc-site-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: var(--nc-color-neutral-50, #f7f5f2);
	color: var(--nc-color-brand-coral, #e8674f);
}
/* Inside the open drawer: the submenu is a clean sub-list under its parent —
   left-aligned, marked by a thin guide line, comfortable tap rows. */
.nc-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	background: transparent;
	border: 0;
	box-shadow: none;
	min-width: 0;
	width: 100%;
	position: static;
	padding: 0 0 0.4rem 0.75rem;
	margin: 0 0 0 0.1rem;
	border-left: 2px solid rgba(26, 43, 71, 0.16);
	display: flex;
	flex-direction: column;
	align-items: stretch;
}
.nc-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: flex;
	width: 100%;
	justify-content: flex-start;
	min-height: 36px;
	padding: 0.3rem 0.4rem;
	border-radius: var(--nc-radius-sm, 4px);
	color: rgba(26, 43, 71, 0.78);
	font-size: 0.92rem;
	font-weight: var(--nc-fw-regular, 400);
	white-space: normal;
}
.nc-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.nc-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content {
	background: rgba(26, 43, 71, 0.07);
	color: var(--nc-color-brand-coral, #e8674f);
}
/* Close button: fixed to the drawer's top-right, generous tap target. */
.nc-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
	position: static;
}
.nc-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	position: absolute;
	top: 0.75rem;
	right: 0.9rem;
	padding: 0.55rem;
	color: var(--nc-color-brand-navy, #1a2b47);
}
/* Dropdown items must never show the top-level underline. */
.nc-site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content::after { content: none; }

/* Header CTA buttons — compact, distinct from body buttons */
.nc-site-header .wp-block-button__link {
	padding: 0.5rem 1.05rem;
	font-size: var(--nc-fs-sm, 0.875rem);
	font-weight: var(--nc-fw-semibold, 600);
	border-radius: var(--nc-button-radius, 8px);
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	line-height: 1;
}
.nc-site-header .wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background: var(--nc-color-brand-coral, #e8674f);
	color: var(--nc-color-neutral-0, #fff);
	border: 1px solid transparent;
}
.nc-site-header .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	background: var(--nc-color-brand-coral-hover, #d9553d);
}
.nc-site-header .is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--nc-color-brand-navy, #1a2b47);
	border: 1px solid var(--nc-color-semantic-border, #ddd6cc);
	box-shadow: none;
}
.nc-site-header .is-style-outline .wp-block-button__link:hover {
	border-color: var(--nc-color-brand-navy, #1a2b47);
	background: transparent;
}

/* Mobile hamburger + overlay menu treatment.
   NOTE on specificity: core ships
   `.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) { background-color:#fff }`
   (five class-level selectors) which beat our old three-class rule — the
   overlay rendered white with white links ("blank menu" bug). The doubled
   selectors below out-rank it. */
.nc-site-header .wp-block-navigation__responsive-container-open,
.nc-site-header .wp-block-navigation__responsive-container-close {
	color: var(--nc-color-brand-navy, #1a2b47);
}
/* Standard 3-bar hamburger (core's default icon is only 2 bars). */
.nc-site-header .wp-block-navigation__responsive-container-open svg {
	display: none;
}
.nc-site-header .wp-block-navigation__responsive-container-open::before {
	content: "";
	display: block;
	width: 24px;
	height: 24px;
	background: currentColor;
	-webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 5.5h16V7H4zM4 11.25h16v1.5H4zM4 17h16v1.5H4z"/></svg>') center / 24px 24px no-repeat;
	mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 5.5h16V7H4zM4 11.25h16v1.5H4zM4 17h16v1.5H4z"/></svg>') center / 24px 24px no-repeat;
}
.nc-site-header .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay),
.nc-site-header .wp-block-navigation__responsive-container.is-menu-open {
	/* Drawer, not takeover: translucent sand panel flies in from the right,
	   the page stays visible behind it and behind a soft scrim. */
	background-color: rgba(247, 245, 240, 0.88);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	left: auto;
	right: 0;
	width: min(78vw, 300px);
	padding: 3rem 1.15rem 1.25rem;
	overflow-y: auto;
	box-shadow: 0 0 0 100vmax rgba(26, 43, 71, 0.30), -14px 0 40px rgba(26, 43, 71, 0.25);
	animation: nc-drawer-in 0.22s ease-out;
}

/* --- Drawer interior: single left-aligned list built for thumbs. --- */
.nc-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.nc-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	justify-content: flex-start;
	gap: 0;
	width: 100%;
	text-align: left;
}
.nc-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	display: block;
	width: 100%;
	margin: 0;
}
/* Top-level rows: full-width tap targets with hairline separators. */
.nc-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
	border-bottom: 1px solid rgba(26, 43, 71, 0.10);
}
.nc-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:last-child {
	border-bottom: 0;
}
.nc-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	display: flex;
	width: 100%;
	justify-content: flex-start;
	min-height: 46px;
	padding: 0.55rem 0.15rem;
	font-size: 1rem;
	font-weight: var(--nc-fw-semibold, 600);
	color: var(--nc-color-brand-navy, #1a2b47);
	white-space: normal;
}
/* No hover-underline gimmick inside the drawer. */
.nc-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after { content: none !important; }
/* Chevron: submenu is always expanded in the drawer, hide the toggle icon. */
.nc-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon { display: none; }
@keyframes nc-drawer-in {
	from { transform: translateX(28px); opacity: 0.5; }
	to { transform: none; opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
	.nc-site-header .wp-block-navigation__responsive-container.is-menu-open { animation: none; }
}
.nc-site-header .wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) {
	color: var(--nc-color-brand-navy, #1a2b47);
}
.nc-site-header .wp-block-navigation__responsive-container.is-menu-open a,
.nc-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
.nc-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	/* Hard-coded: this text sits on brand-navy, which is never remapped —
	   tokens here caused invisible navy-on-navy in dark mode. */
	color: #fff;
}
.nc-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item > .wp-block-navigation-item__content::after { display: none; }

@media (max-width: 900px) {
	/* Keep the primary CTA and hamburger; drop the secondary outline button. */
	.nc-site-header__cta .is-style-outline { display: none; }
}
@media (max-width: 600px) {
	.nc-site-header__cta { display: none; }
}

/* Coral accent used under section eyebrows in the mockups.
   Block-level so it aligns to the content column (not the full-width edge)
   inside constrained core groups. */
.nc-eyebrow {
	display: block;
	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);
}

/* ------------------------------------------------------------------
 * Font-size preset aliases.
 * WordPress kebab-cases preset slugs when generating CSS, so the slug
 * "3xl" produces the class `.has-3-xl-font-size` — while hand-authored
 * markup across patterns/content uses `has-3xl-font-size`. Without
 * these aliases those headings silently fall back to the h1 element
 * default (4xl), which made hero H1s oversized. Both spellings now
 * resolve to the same token. (!important mirrors core preset CSS.)
 * ------------------------------------------------------------------ */
.has-2xl-font-size { font-size: var(--nc-fs-2xl, 2.625rem) !important; }
.has-3xl-font-size { font-size: var(--nc-fs-3xl, 3.5rem) !important; }
.has-4xl-font-size { font-size: var(--nc-fs-4xl, 4.75rem) !important; }

/* Brand Experience logo wall: calm the grid — smaller marks, breathing room,
 * greyscale at rest with color on hover (mirrors the customer-logos marquee). */
.nc-logo-gallery figure.wp-block-image {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 96px;
}
.nc-logo-gallery img {
	max-width: 104px;
	width: 100%;
	height: auto;
	transition: transform 0.2s ease;
}
.nc-logo-gallery figure.wp-block-image:hover img {
	transform: scale(1.06);
}

/* Kill the root block gap between header / main / footer template parts —
 * it rendered as a white sliver between full-bleed sections and the footer
 * CTA on every page. Sections manage their own vertical rhythm. */
.wp-site-blocks > * + * { margin-block-start: 0; }

/* Form blocks (wizard, contact form): align with the system container
 * (R3 — one width). They have no inner .nc-container, so give the wrapper
 * the same geometry: 1200px, centered, gutter padding. !important outranks
 * the constrained-layout alignfull rules WordPress generates per container. */
.nc-form.alignfull {
	max-width: var(--nc-layout-content-width, 1200px) !important;
	margin-inline: auto !important;
	padding-inline: var(--nc-layout-gutter, 1.5rem);
}

/* CTA strip: primary button + secondary FAQ link on one row. */
.nc-cta-strip__actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--nc-space-5, 1.25rem);
	margin-top: var(--nc-space-5, 1.25rem);
}
.nc-cta-strip__secondary {
	font-weight: var(--nc-fw-semibold, 600);
	text-decoration: underline;
	text-underline-offset: 0.25em;
	color: inherit;
}
.nc-cta-strip__secondary:hover { color: var(--nc-color-brand-coral, #e8674f); }

/* Anchored FAQ sections: clear the sticky header when jumped to via #faq. */
.nc-faq { scroll-margin-top: 96px; }

/* Showcase gallery hover-swap: second image crossfades in on hover/focus.
   Layout/transition are inline in the content markup; this rule only flips it. */
.nc-swap:hover .nc-swap__alt,
.nc-swap:focus-within .nc-swap__alt { opacity: 1 !important; }

/* Showcase lightbox (assets/lightbox.js). */
.nc-showcase-grid figure { cursor: zoom-in; }
.nc-lightbox {
	position: fixed; inset: 0; z-index: 9999;
	align-items: center; justify-content: center;
	background: rgba(15, 23, 42, 0.92);
	opacity: 0; transition: opacity .2s ease;
}
.nc-lightbox.is-open { opacity: 1; }
.nc-lightbox-open { overflow: hidden; }
.nc-lightbox__stage { margin: 0; display: flex; flex-direction: column; align-items: center; gap: .75rem; }
.nc-lightbox__stage img {
	max-width: min(90vw, 1100px); max-height: 78vh;
	object-fit: contain; background: #fff; border-radius: 10px; padding: 1rem; box-sizing: border-box;
}
.nc-lightbox__caption { color: #e2e8f0; font-size: .9rem; text-align: center; max-width: 70ch; padding-inline: 1rem; }
.nc-lightbox__close, .nc-lightbox__nav {
	position: fixed; border: 0; background: transparent; color: #fff;
	font-size: 2.5rem; line-height: 1; cursor: pointer; padding: .5rem .75rem; opacity: .8;
}
.nc-lightbox__close:hover, .nc-lightbox__nav:hover { opacity: 1; }
.nc-lightbox__close { top: 1rem; right: 1.25rem; font-size: 2.75rem; }
.nc-lightbox__prev { left: 1rem; top: 50%; transform: translateY(-50%); }
.nc-lightbox__next { right: 1rem; top: 50%; transform: translateY(-50%); }
@media (max-width: 600px) {
	.nc-lightbox__stage img { max-width: 96vw; max-height: 70vh; padding: .5rem; }
}

/* Compact hero: solution/category pages step down from the front page. */
.nc-hero--compact.nc-section {
	padding-top: var(--nc-space-7, 2.5rem);
	padding-bottom: var(--nc-space-7, 2.5rem);
}
.nc-hero--compact .nc-hero__title { font-size: var(--nc-fs-2xl, 2.4rem); }
.nc-hero--compact .nc-hero__body { max-width: 58ch; }
.nc-hero--compact .nc-hero__actions { margin-bottom: var(--nc-space-4, 1rem); }
.nc-hero--compact .nc-hero__media img {
	width: auto;
	max-width: 100%;
	max-height: 340px;
	margin-inline: auto;
}

/* Front-page hero (non-compact): editorial layout — the image runs full
   height and bleeds to the right viewport edge, fading in from the left so
   the text column sits on clean band. */
.nc-hero:not(.nc-hero--compact).nc-section {
	position: relative;
	overflow: hidden;
	padding-top: var(--nc-space-7, 2.75rem);
	padding-bottom: var(--nc-space-7, 2.75rem);
	min-height: 520px;
	display: flex;
	align-items: center;
}
.nc-hero:not(.nc-hero--compact) .nc-hero__grid {
	display: block;
	width: 100%;
}
.nc-hero:not(.nc-hero--compact) .nc-hero__content {
	position: relative;
	z-index: 2;
	max-width: 44%;
}
.nc-hero:not(.nc-hero--compact) .nc-hero__title {
	font-size: var(--nc-fs-2xl, 2.4rem);
}
.nc-hero:not(.nc-hero--compact) .nc-hero__media {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 56%;
	margin: 0;
	z-index: 1;
}
.nc-hero:not(.nc-hero--compact) .nc-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 60% center;
	border-radius: 0;
	box-shadow: none;
	max-width: none;
	-webkit-mask-image: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, #000 32%);
	mask-image: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, #000 32%);
}
@media (max-width: 900px) {
	.nc-hero:not(.nc-hero--compact).nc-section { min-height: 0; display: block; }
	.nc-hero:not(.nc-hero--compact) .nc-hero__content { max-width: none; }
	.nc-hero:not(.nc-hero--compact) .nc-hero__media {
		position: static;
		width: 100%;
		height: 280px;
		margin-top: var(--nc-space-5, 1.5rem);
	}
	.nc-hero:not(.nc-hero--compact) .nc-hero__media img {
		-webkit-mask-image: none;
		mask-image: none;
		border-radius: var(--nc-radius-lg, 16px);
	}
}

/* Section continuity: full-width sections stack flush — no blockGap slivers
   between hero, bands and sections; each section's own padding is the rhythm. */
.wp-block-post-content > .alignfull,
.nc-main > .alignfull,
.nc-main .wp-block-post-content > .alignfull {
	margin-block-start: 0;
	margin-block-end: 0;
}

/* Plain cards (nc-cards--plain): strip all card chrome — no border, fill,
   shadow, padding or hover-lift. Used e.g. by "Why corporate gifts matter". */
.nc-cards--plain .nc-content-card {
	border: 0;
	background: transparent;
	box-shadow: none;
	padding: 0;
}
.nc-cards--plain .nc-card:hover {
	box-shadow: none;
	transform: none;
}

/* Contact form: center the 640px form block inside its section */
.nc-contact-form {
	margin-inline: auto;
}

/* Zoomable card images sitewide (non-link cards): signal clickability. */
.nc-content-card:not(.nc-content-card--link) .nc-content-card__media,
div.nc-feature-card .nc-feature-card__media {
	cursor: zoom-in;
}


/* Mobile: hide the top trust bar — it stacked five rows and pushed the
   header (and hero) far down the viewport. */
@media (max-width: 781px) {
	.nc-topbar {
		display: none;
	}
}
