/*
==============================================================================
NILE CODES — STRUCTURE (page architecture: header/footer/grids/surfaces)
P4 layer. SEMANTIC TOKENS ONLY (no --nc-f-*, no hex). RTL-first logical props.
Breakpoints: 40em / 64em / 90em only (P3 contract).
==============================================================================
*/

/* ---------------- header ---------------- */
.site-header {
	position: sticky;
	inset-block-start: 0;
	z-index: var(--nc-z-sticky);
	background: var(--nc-color-surface);
	border-block-end: var(--nc-border-width) solid var(--nc-color-border);
}
.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--nc-gap-inline);
	min-block-size: var(--nc-control-height-lg);
}
.site-branding__link { display: inline-flex; }
.site-logo { display: block; }

.nc-nav-toggle {
	display: none;
	gap: var(--nc-gap-inline-sm);
	block-size: var(--nc-touch-target);
	inline-size: var(--nc-touch-target);
	border: var(--nc-border-width) solid var(--nc-color-border-strong);
	border-radius: var(--nc-radius-control);
	background: var(--nc-color-surface);
	color: var(--nc-color-text);
	align-items: center;
	justify-content: center;
	flex-direction: column;
	--nc-bar-w: 1.125rem; /* structural glyph width */
}
.nc-js .nc-nav-toggle { display: inline-flex; }
.nc-nav-toggle__bar { display: block; inline-size: var(--nc-bar-w); block-size: var(--nc-border-width-strong); background: currentColor; }

/* mobile-first: collapsed nav (openable via toggle / no-JS shows everything) */
.primary-navigation {
	display: none;
	position: absolute;
	inset-inline: 0;
	inset-block-start: 100%;
	background: var(--nc-color-surface);
	border-block-end: var(--nc-border-width) solid var(--nc-color-border);
	padding: var(--nc-gap-inline) var(--nc-gutter-page);
	box-shadow: var(--nc-elevation-2);
}
.primary-navigation.is-open { display: block; }
body:not(.nc-js) .primary-navigation { display: block; position: static; box-shadow: var(--nc-elevation-0); border: 0; padding-inline: 0; }
.primary-navigation ul.nc-nav { display: flex; flex-direction: column; gap: var(--nc-gap-inline-sm); align-items: stretch; margin: 0; padding: 0; list-style: none; }
.nc-nav__cta { margin-block-start: var(--nc-gap-inline); }

@media (min-width: 64em) {
	.nc-nav-toggle { display: none !important; }
	.primary-navigation { display: flex; position: static; border-block-end: 0; box-shadow: var(--nc-elevation-0); padding: 0; align-items: center; gap: var(--nc-gap-inline); }
	.primary-navigation ul.nc-nav { flex-direction: row; align-items: center; }
	.nc-nav__cta { margin-block-start: 0; margin-inline-start: var(--nc-gap-inline-sm); }
}
/* ---------------- footer ---------------- */
.site-footer {
	background: var(--nc-color-surface-sunken);
	border-block-start: var(--nc-border-width) solid var(--nc-color-border);
}
.site-footer__grid {
	display: grid;
	gap: var(--nc-gap-stack);
	padding-block: var(--nc-space-section) var(--nc-gap-stack);
}
.site-footer__col ul { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--nc-gap-inline-sm); }
.site-footer__col a { color: inherit; }
.site-footer__col a:hover { color: var(--nc-color-link); text-decoration: underline; }
.site-footer__col--brand { display: grid; gap: var(--nc-gap-inline-sm); align-content: start; }
.site-logo--footer { opacity: 1; }
.site-footer__subhead { margin-block-start: var(--nc-gap-inline); }
.site-footer__bottom { border-block-start: var(--nc-border-width) solid var(--nc-color-border); padding-block: var(--nc-gap-inline); }
@media (min-width: 64em) {
	.site-footer__grid { grid-template-columns: 1.4fr 1.2fr 1fr 1fr; }
}

/* ---------------- shared surfaces ---------------- */
.nc-section--sunken { background: var(--nc-color-surface-sunken); }
.archive-banner { padding-block-end: var(--nc-gap-stack); }
.measure-reading { max-inline-size: var(--nc-measure-reading); }
.page-hero { background: var(--nc-color-surface-sunken); border-block-end: var(--nc-border-width) solid var(--nc-color-border); padding-block: var(--nc-space-block); }

.nc-grid {
	display: grid;
	gap: var(--nc-gap-stack);
}
.nc-grid--3 { gap: var(--nc-gap-inline); }
@media (min-width: 40em) { .nc-grid:not(.nc-grid--3):not(.nc-grid--services) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 64em) {
	.nc-grid:not(.nc-grid--3):not(.nc-grid--services) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.nc-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.nc-grid--services { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 90em) { .nc-grid--services { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.card-service__foot { display: flex; align-items: center; justify-content: space-between; }

/* homepage strips */
/* P14.1.4 — premium hero: invest band + Nile-current seam + constrained copy */
.nc-hero {
	position: relative;
	overflow: hidden;
	background: var(--nc-color-invest-bg);
	color: var(--nc-color-invest-text);
	padding-block: var(--nc-space-section);
}
.nc-hero::after {
	content: "";
	position: absolute;
	inset-inline: 0;
	inset-block-end: 0;
	block-size: var(--nc-border-width-accent);
	background: var(--nc-gradient-nile);
	pointer-events: none;
}
.nc-hero__inner { position: relative; }
.nc-hero__copy { max-inline-size: var(--nc-container-width-narrow); }
.nc-hero__title { color: var(--nc-color-invest-text); }
.nc-hero__title .nc-hero__accent { color: var(--nc-color-invest-accent); }
.nc-hero__lead { color: var(--nc-color-invest-text-muted); }
.nc-hero__trust { display: flex; flex-wrap: wrap; gap: var(--nc-gap-inline-sm); margin: var(--nc-gap-stack) 0 0; padding: 0; list-style: none; }
.nc-hero__note { color: var(--nc-color-invest-text-muted); margin: var(--nc-gap-inline-sm) 0 0; }

/* P14.1.4 — tier seam: azure current at the top of selected sections */
.nc-tier { position: relative; }
.nc-tier::before {
	content: "";
	position: absolute;
	inset-inline: 0;
	inset-block-start: 0;
	block-size: var(--nc-border-width-accent);
	background: var(--nc-gradient-nile);
	pointer-events: none;
}

.services-home { background: var(--nc-color-surface); }
.nc-grid--services { counter-reset: svc; }
.nc-grid--services .nc-card--link { counter-increment: svc; }
.nc-card__index {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	block-size: var(--nc-control-height-sm);
	min-inline-size: var(--nc-control-height-sm);
	padding-inline: var(--nc-gap-inline-sm);
	border: var(--nc-border-width) solid var(--nc-color-border-strong);
	border-radius: var(--nc-radius-pill);
	font-size: var(--nc-text-body-sm);
	font-weight: var(--nc-weight-heading);
	color: var(--nc-color-accent);
	background: var(--nc-color-surface);
}
.nc-card__index::before { content: counter(svc, arabic-indic); }
.nc-card__footnote { color: var(--nc-color-accent); font-weight: var(--nc-weight-strong); }

.nc-pillars ul { display: flex; flex-wrap: wrap; gap: var(--nc-gap-inline-sm); padding: 0; margin: 0 var(--nc-gap-inline); list-style: none; }

/* P14.1.4 — process: numbered editorial stepper cards */
.nc-steps { counter-reset: step; margin: var(--nc-gap-stack-lg) 0 0; padding: 0; list-style: none; display: grid; gap: var(--nc-gap-inline); }
.nc-steps > li {
	counter-increment: step;
	position: relative;
	border: var(--nc-border-width) solid var(--nc-color-border);
	border-radius: var(--nc-radius-card);
	background: var(--nc-color-surface);
	padding: var(--nc-pad-card);
}
.nc-steps > li::before {
	content: counter(step, arabic-indic);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	block-size: var(--nc-control-height-sm);
	min-inline-size: var(--nc-control-height-sm);
	padding-inline: var(--nc-gap-inline-sm);
	margin-block-end: var(--nc-gap-inline);
	border-radius: var(--nc-radius-pill);
	background: var(--nc-color-accent-soft);
	color: var(--nc-color-accent);
	font-size: var(--nc-text-body-sm);
	font-weight: var(--nc-weight-heading);
}
.nc-steps h3 { margin: 0 0 var(--nc-gap-inline-sm); font-size: var(--nc-text-h4); }
.nc-steps p { margin: 0; color: var(--nc-color-text-secondary); }
@media (min-width: 64em) {
	.nc-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: var(--nc-gap-stack-lg); }
}

/* P14.1.4 — CTA band inverts to invest; seam on top */
.cta-band {
	position: relative;
	background: var(--nc-color-invest-bg);
	color: var(--nc-color-invest-text);
	margin-block-start: var(--nc-gap-stack-lg);
	padding-block: var(--nc-space-block);
	text-align: center;
}
.cta-band::before {
	content: "";
	position: absolute;
	inset-inline: 0;
	inset-block-start: 0;
	block-size: var(--nc-border-width-accent);
	background: var(--nc-gradient-nile);
	pointer-events: none;
}
.cta-band h2 { color: var(--nc-color-invest-text); }
.cta-band .nc-lead { color: var(--nc-color-invest-text-muted); }
.cta-band__inner > * { margin-inline: auto; }
.cta-band__inner p { margin: 0; }

/* honest empty state */
.nc-empty {
	display: grid;
	gap: var(--nc-gap-inline);
	justify-items: start;
	border: var(--nc-border-width) dashed var(--nc-color-border-strong);
	border-radius: var(--nc-radius-card);
	background: var(--nc-color-surface-sunken);
	padding: var(--nc-pad-card);
}
.nc-empty p { margin: 0; color: var(--nc-color-text-secondary); }

/* case study */
.case-meta { display: flex; flex-wrap: wrap; gap: var(--nc-gap-inline); margin: 0; }
.case-meta div { border: var(--nc-border-width) solid var(--nc-color-border); border-radius: var(--nc-radius-card); padding: var(--nc-gap-inline); margin: 0; min-inline-size: 10rem; }
.case-meta dt { font-size: var(--nc-text-caption); color: var(--nc-color-text-muted); margin: 0; }
.case-meta dd { margin: var(--nc-gap-inline-sm) 0 0; font-weight: var(--nc-weight-strong); }
.case-section { margin-block: var(--nc-gap-stack); }
.case-tags .nc-badge { margin-inline-end: var(--nc-gap-inline-sm); }

/* services single */
.entry-content h2:first-child { margin-block-start: 0; }
.service-highlights ul, .post-tags-like { padding-inline-start: 1.125rem; }

/* blog */
.blog-index .page-from-home { margin: 0; }
.entry-content { overflow-wrap: break-word; }
.entry-content img { border-radius: var(--nc-radius-card); }
.post-footer .tag-list { display: flex; flex-wrap: wrap; gap: var(--nc-gap-inline-sm); list-style: none; padding: 0; }
.post-navigation { margin-block-start: var(--nc-gap-stack); }

/* pagination */
.nc-pagination ul { display: flex; flex-wrap: wrap; gap: var(--nc-gap-inline-sm); list-style: none; padding: 0; margin-block: var(--nc-gap-stack) 0; }
.nc-pagination a, .nc-pagination span.current { display: inline-flex; min-inline-size: var(--nc-control-height-sm); min-block-size: var(--nc-control-height-sm); align-items: center; justify-content: center; border: var(--nc-border-width) solid var(--nc-color-border); border-radius: var(--nc-radius-control); padding-inline: var(--nc-gap-inline-sm); text-decoration: none; color: var(--nc-color-text); }
.nc-pagination a:hover { border-color: var(--nc-color-accent); color: var(--nc-color-accent); }
.nc-pagination span.current { background: var(--nc-color-accent); border-color: var(--nc-color-accent); color: var(--nc-color-text-on-invested); }

/* forms (structure-level bits; component tokens in components.css) */
.nc-search { display: grid; gap: var(--nc-gap-inline-sm); max-inline-size: var(--nc-container-width-narrow); }
.nc-hp { position: absolute; inline-size: 0; block-size: 0; overflow: hidden; }

/* legal + account shells */
.legal-docs { display: grid; gap: var(--nc-gap-inline-sm); list-style: none; padding: 0; }
.legal-doc { display: flex; justify-content: space-between; align-items: center; gap: var(--nc-gap-inline); border: var(--nc-border-width) solid var(--nc-color-border); border-radius: var(--nc-radius-control); padding: var(--nc-gap-inline); background: var(--nc-color-surface); }
.account-shell__grid { display: grid; gap: var(--nc-gap-stack); }
.account-nav__list { display: grid; }
.account-nav__pending { color: var(--nc-color-disabled-text); }
.site-footer .nc-label, .account-nav h1 { display: block; }
.post-card__foot, .card-service__footnote { display: block; }


/* P6 — product surfaces (semantic tokens only; breakpoints 40em/64em/90em) */
.product-price {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--nc-gap-inline);
	margin-block: var(--nc-gap-inline-sm) var(--nc-gap-inline);
}
.product-price__amount { font-size: var(--nc-text-h4); color: var(--nc-color-text); font-weight: var(--nc-weight-strong); }
.product-price--quote { margin-block-end: 0; }
.product-layout { display: grid; gap: var(--nc-gap-stack-lg); }
.product-layout__side { background: var(--nc-color-surface-sunken); border: var(--nc-border-width) solid var(--nc-color-border); border-radius: var(--nc-radius-card); padding: var(--nc-pad-card); align-self: start; }
.product-cta { margin: 0; }
.product-cta__note { margin: var(--nc-gap-inline-sm) 0 0; }
.product-onetime-notice { border-inline-start: var(--nc-border-width-accent) solid var(--nc-color-accent); padding-inline-start: var(--nc-gap-inline); margin-block: var(--nc-gap-stack-lg) 0; }
.product-back { display: inline-block; margin-block-start: var(--nc-gap-inline); }
@media (min-width: 64em) {
	.product-layout { grid-template-columns: 1.6fr 0.9fr; column-gap: var(--nc-gap-stack-lg); }
}

/* P14.1.5 — premium product surfaces (semantic tokens only; 40em/64em/90em contract) */
/* breadcrumb inside invest hero reads in light-on-ink */
.nc-hero .nc-breadcrumb { color: var(--nc-color-invest-text-muted); }
.nc-hero .nc-breadcrumb a { color: inherit; text-decoration: underline; }
.nc-hero .nc-breadcrumb a:hover { color: var(--nc-color-invest-accent); }
.nc-hero .nc-breadcrumb [aria-current="page"] { color: var(--nc-color-invest-text); }

/* product card: index chip + type/featured badges row */
.nc-card__tags { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nc-gap-inline-sm); }
.nc-grid--products { counter-reset: prod; }
.nc-grid--products .product-card { counter-increment: prod; }
.nc-grid--products .nc-card__index::before { content: counter(prod, arabic-indic); }

/* single: raised price panel = the decision surface (invest band, one primary CTA) */
/* single: raised price panel = the decision surface (invest band, one primary CTA) */
.product-panel {
	overflow: hidden;
	background: var(--nc-color-invest-bg);
	border-color: var(--nc-color-invest-raise);
	color: var(--nc-color-invest-text);
}
.nc-panel-title {
	margin: 0;
	font-size: var(--nc-text-label);
	font-weight: var(--nc-weight-heading);
	line-height: var(--nc-leading-compact);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--nc-color-invest-accent);
}
.product-panel .nc-caption { color: var(--nc-color-invest-text-muted); }
.product-panel .product-back { color: var(--nc-color-invest-accent); }
.product-panel .product-back:hover { color: var(--nc-color-invest-text); }
.product-price--on-panel { margin-block-end: var(--nc-gap-inline); }
.product-price--on-panel .nc-label { color: var(--nc-color-invest-text-muted); }
.product-price--on-panel .product-price__amount { color: var(--nc-color-invest-accent); }
.product-price--on-panel .nc-badge { background-color: var(--nc-color-invest-raise); color: var(--nc-color-invest-text-muted); }
.product-price--on-panel .nc-badge::before { color: var(--nc-color-invest-accent); }

/* P14.1.6 — licensing UI (semantic tokens only; 40em/64em/90em contract) */
.license-model__cells { display: grid; gap: var(--nc-gap-inline); }
.license-model__cell { border: var(--nc-border-width) solid var(--nc-color-border); border-radius: var(--nc-radius-card); padding: var(--nc-pad-card); background: var(--nc-color-surface); }
.license-model__caption { margin: 0; font-size: var(--nc-text-caption); color: var(--nc-color-text-muted); }
.license-model__value { margin: var(--nc-gap-inline-sm) 0 0; font-weight: var(--nc-weight-strong); }
.license-model__note { margin-block-start: var(--nc-gap-inline); }
.license-records { margin-block-start: var(--nc-gap-stack-lg); }
.license-list { display: grid; gap: var(--nc-gap-stack); }
.license-row { border: var(--nc-border-width) solid var(--nc-color-border); border-radius: var(--nc-radius-card); padding: var(--nc-pad-card); background: var(--nc-color-surface); display: grid; gap: var(--nc-gap-inline); }
.license-row__head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nc-gap-inline-sm); }
.license-row__product { font-size: var(--nc-text-caption); color: var(--nc-color-text-muted); }
.license-meta { display: grid; gap: var(--nc-gap-inline-sm); margin: 0; }
.license-meta div { display: grid; gap: var(--nc-gap-inline-sm); }
.license-meta dt { font-size: var(--nc-text-caption); color: var(--nc-color-text-muted); }
.license-meta dd { margin: 0; }
.license-key { display: inline-block; padding: var(--nc-gap-inline-sm) var(--nc-gap-inline); background-color: var(--nc-color-surface-inset); border-radius: var(--nc-radius-control); direction: ltr; word-break: break-all; user-select: all; font-size: var(--nc-text-body-sm); }
.license-row__caption { margin: 0; }
.license-row__cta { margin: 0; }
.license-loading { border: var(--nc-border-width) dashed var(--nc-color-border); border-radius: var(--nc-radius-card); padding: var(--nc-pad-card); }
@media (min-width: 40em) {
	.license-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 64em) {
	.license-model__cells { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 90em) {
	.license-model__cells { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* P14.1.7 — customer portal UI (semantic tokens only; 40em/64em/90em contract) */
.portal-loading { border: var(--nc-border-width) dashed var(--nc-color-border); border-radius: var(--nc-radius-card); padding: var(--nc-pad-card); }
.portal-profile { margin-block-end: var(--nc-gap-stack); border: var(--nc-border-width) solid var(--nc-color-border); border-radius: var(--nc-radius-card); padding: var(--nc-pad-card); background: var(--nc-color-surface); display: grid; gap: var(--nc-gap-inline-sm); }
.portal-profile div { display: grid; gap: var(--nc-gap-inline-sm); }
.portal-profile dt { font-size: var(--nc-text-caption); color: var(--nc-color-text-muted); }
.portal-profile dd { margin: 0; }
.portal-email { direction: ltr; word-break: break-all; }
.portal-summary { display: flex; flex-wrap: wrap; gap: var(--nc-gap-inline); list-style: none; padding: 0; margin-block: 0 var(--nc-gap-stack-lg); }
.portal-summary__item { display: grid; gap: var(--nc-gap-inline-sm); border: var(--nc-border-width) solid var(--nc-color-border); border-radius: var(--nc-radius-control); padding: var(--nc-gap-inline); background: var(--nc-color-surface-sunken); min-inline-size: 9rem; }
.portal-summary__value { font-size: var(--nc-text-h4); font-weight: var(--nc-weight-strong); }
.portal-summary__label { font-size: var(--nc-text-caption); color: var(--nc-color-text-muted); }
.portal-licenses, .portal-downloads { margin-block-start: var(--nc-gap-stack-lg); }
.portal-activations { border-inline-start: var(--nc-border-width-accent) solid var(--nc-color-accent); padding-inline-start: var(--nc-gap-inline); display: grid; gap: var(--nc-gap-inline-sm); }
.portal-activations__title { margin: 0; }
.portal-activation { display: grid; gap: var(--nc-gap-inline-sm); border-block-end: var(--nc-border-width) solid var(--nc-color-border); padding-block-end: var(--nc-gap-inline-sm); }
.portal-activation:last-child { border-block-end: 0; padding-block-end: 0; }
.portal-activation__domain { direction: ltr; word-break: break-all; margin: 0; font-weight: var(--nc-weight-strong); }
.portal-activation__head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nc-gap-inline-sm); }
.portal-activation__meta { margin: 0; font-size: var(--nc-text-caption); color: var(--nc-color-text-muted); }
.portal-activation__note { margin: 0; font-size: var(--nc-text-caption); color: var(--nc-color-text-muted); }
.portal-download { border: var(--nc-border-width) solid var(--nc-color-border); border-radius: var(--nc-radius-card); padding: var(--nc-pad-card); background: var(--nc-color-surface); display: grid; gap: var(--nc-gap-inline); }
.portal-download__head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nc-gap-inline-sm); }
.portal-download__note { margin: 0; }
@media (min-width: 40em) {
	.portal-profile { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 64em) {
	.portal-activations { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.portal-download { grid-template-columns: 1fr 0.8fr; }
}

/* ---------------- services (professional phase) ---------------- */
.nc-arch-filter { display: flex; flex-wrap: wrap; gap: var(--nc-gap-inline-sm); margin-block: var(--nc-gap-inline) var(--nc-gap-stack); }
.nc-chip {
	display: inline-flex; align-items: center; text-decoration: none;
	color: var(--nc-color-text-secondary); background: var(--nc-color-surface-sunken);
	border: var(--nc-border-width) solid var(--nc-color-border);
	border-radius: var(--nc-radius-pill); padding: var(--nc-gap-inline-sm) var(--nc-gap-inline);
	font-size: var(--nc-text-body-sm); transition: color var(--nc-motion-fast) var(--nc-ease-standard), border-color var(--nc-motion-fast) var(--nc-ease-standard), background-color var(--nc-motion-fast) var(--nc-ease-standard);
}
.nc-chip:hover { color: var(--nc-color-accent); border-color: var(--nc-color-accent); }
.nc-chip:focus-visible { outline: var(--nc-border-width-focus) solid var(--nc-color-focus); outline-offset: 2px; }
.nc-chip--on { color: var(--nc-color-text-on-invested); background: var(--nc-color-invest-accent); border-color: var(--nc-color-invest-accent); }
.nc-pill { display: inline-flex; font-size: var(--nc-text-caption); font-weight: var(--nc-weight-strong); border-radius: var(--nc-radius-pill); padding: 0 var(--nc-gap-inline); }
.nc-pill--featured { color: var(--nc-color-invest-accent); background: var(--nc-color-invest-accent-soft); border: var(--nc-border-width) solid var(--nc-color-accent-soft-border); }
.nc-svc-card { position: relative; overflow: hidden; }
.nc-svc-card--featured { border-color: var(--nc-color-invest-accent-soft-border); }
.nc-svc-card__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--nc-gap-inline-sm); padding: var(--nc-gap-inline) var(--nc-pad-card) 0; }
.nc-svc-card__icon {
	display: inline-flex; align-items: center; min-inline-size: var(--nc-size-icon, 2.5rem);
	background: var(--nc-color-invest-raise); color: var(--nc-color-accent);
	border-radius: var(--nc-radius-pill); padding: var(--nc-gap-inline-sm) var(--nc-gap-inline);
	font-size: var(--nc-text-caption); font-weight: var(--nc-weight-strong);
}
.nc-svc-card__hl { list-style: none; padding: 0; margin: var(--nc-gap-inline-sm) 0 0; display: grid; gap: var(--nc-gap-inline-sm); }
.nc-svc-card__hl li { position: relative; padding-inline-start: var(--nc-gap-inline); font-size: var(--nc-text-body-sm); color: var(--nc-color-text-secondary); }
.nc-svc-card__hl li::before { content: ""; position: absolute; inset-inline-start: 0; inset-block-start: 0.5em; inline-size: 0.5em; block-size: 0.5em; border-radius: var(--nc-radius-pill); background: var(--nc-color-accent); }
.nc-svc-hero__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nc-gap-inline-sm); }
.nc-svc-hero__icon { display: inline-flex; background: var(--nc-color-invest-raise); color: var(--nc-color-accent); border-radius: var(--nc-radius-pill); padding: var(--nc-gap-inline-sm) var(--nc-gap-inline); font-size: var(--nc-text-body-sm); font-weight: var(--nc-weight-strong); }
.nc-svc-hero__terms { display: flex; flex-wrap: wrap; gap: var(--nc-gap-inline-sm); margin-block: 0; }
.service-highlights { margin-block-start: var(--nc-gap-stack-lg); }
.nc-svc-hl { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--nc-gap-inline-sm); border-inline-start: var(--nc-border-width-accent) solid var(--nc-color-accent); padding-inline-start: var(--nc-gap-inline); }
.nc-svc-hl li { font-size: var(--nc-text-body-lg); }
.service-related { margin-block-start: var(--nc-gap-stack-lg); border-radius: var(--nc-radius-card); }
@media (min-width: 64em) {
	.nc-svc-card__hl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------------- services wow (conversion-first dressing) ---------------- */
.nc-icon svg { inline-size: 100%; block-size: 100%; }
.nc-svc-card, .nc-svc-single { --nc-svc-hue: var(--nc-color-accent); --nc-svc-soft: var(--nc-color-accent-soft); }
.nc-svc--accent { --nc-svc-hue: var(--nc-color-accent); --nc-svc-soft: var(--nc-color-accent-soft); }
.nc-svc--invest { --nc-svc-hue: var(--nc-color-invest-accent); --nc-svc-soft: var(--nc-color-invest-accent-soft); }
.nc-svc--success { --nc-svc-hue: var(--nc-color-success); --nc-svc-soft: var(--nc-color-success-bg); }
.nc-svc--warning { --nc-svc-hue: var(--nc-color-warning); --nc-svc-soft: var(--nc-color-warning-bg); }
.nc-svc--error { --nc-svc-hue: var(--nc-color-error); --nc-svc-soft: var(--nc-color-error-bg); }
.nc-svc--information { --nc-svc-hue: var(--nc-color-information); --nc-svc-soft: var(--nc-color-information-bg); }
.nc-svc-card__glyph {
	display: inline-flex; align-items: center; justify-content: center;
	inline-size: 3rem; block-size: 3rem; border-radius: var(--nc-radius-card);
	border: var(--nc-border-width) solid var(--nc-color-border);
	background: var(--nc-svc-soft); color: var(--nc-svc-hue);
}
.nc-svc-card__star { border: var(--nc-border-width) solid var(--nc-color-border-strong); }
.nc-svc-card:hover .nc-svc-card__more { color: var(--nc-color-link-hover); }
.nc-svc-card__hl li::before { background: var(--nc-svc-hue); }
.nc-svc-hl { border-color: var(--nc-svc-hue); }
.nc-svc-hero, .nc-svc-archive-hero { position: relative; overflow: hidden; }
.nc-svc-hero__art { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.nc-svc-orb { position: absolute; border-radius: var(--nc-radius-circle); filter: blur(60px); opacity: 0.5; }
.nc-svc-orb--a { inline-size: 22rem; block-size: 22rem; inset-block-start: -8rem; inset-inline-end: -6rem; background: var(--nc-color-invest-raise); }
.nc-svc-orb--b { inline-size: 16rem; block-size: 16rem; inset-block-end: -6rem; inset-inline-start: -4rem; background: var(--nc-svc-soft); }
.nc-svc-hero__inner { position: relative; display: grid; gap: var(--nc-gap-stack); padding-block: var(--nc-space-section); }
.nc-svc-hero__glyph { inline-size: 3.5rem; block-size: 3.5rem; }
.nc-svc-hero__glyph svg { inline-size: 100%; block-size: 100%; }
.nc-svc-hero__watermark { position: absolute; inset-block-start: 50%; inset-inline-end: 1rem; transform: translateY(-50%); inline-size: 12rem; block-size: 12rem; opacity: 0.08; color: var(--nc-svc-hue); }
.nc-svc-hero__watermark svg { inline-size: 100%; block-size: 100%; }
.nc-svc-hero__media { margin: 0; border-radius: var(--nc-radius-card); overflow: hidden; box-shadow: var(--nc-elevation-2); }
.nc-svc-terms { display: flex; flex-wrap: wrap; gap: var(--nc-gap-inline-sm); }
.nc-svc-count { color: var(--nc-color-text-muted); font-size: var(--nc-text-caption); }
.nc-svc-archive__cta { margin-block-start: var(--nc-gap-stack); }
.nc-svc-sticky { position: sticky; inset-block-end: 0; z-index: var(--nc-z-sticky); background: var(--nc-color-surface); border-block-start: var(--nc-border-width) solid var(--nc-color-border); box-shadow: var(--nc-elevation-2); }
.nc-svc-sticky__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--nc-gap-inline); padding-block: var(--nc-gap-inline); }
.nc-svc-sticky__title { margin: 0; font-weight: var(--nc-weight-strong); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@keyframes nc-reveal-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.nc-reveal { animation: nc-reveal-in var(--nc-motion-base) var(--nc-ease-out) both; }
.nc-reveal--1 { animation: nc-reveal-in var(--nc-motion-base) var(--nc-ease-out) 0.12s both; }
.nc-reveal--2 { animation: nc-reveal-in var(--nc-motion-base) var(--nc-ease-out) 0.24s both; }
@media (prefers-reduced-motion: reduce) {
	.nc-reveal, .nc-reveal--1, .nc-reveal--2 { animation: none; }
}
@media (min-width: 64em) {
	.nc-svc-hero--media .nc-svc-hero__inner { grid-template-columns: 1fr 1fr; align-items: center; }
	.nc-svc-sticky { display: none; }
}

/* ---------------- service addons (packages/specs/steps/faq) ---------------- */
.nc-packages { display: grid; gap: var(--nc-gap-inline); }
.nc-package { border: var(--nc-border-width) solid var(--nc-color-border); border-radius: var(--nc-radius-card); padding: var(--nc-pad-card); background: var(--nc-color-surface); display: flex; flex-direction: column; gap: var(--nc-gap-inline-sm); }
.nc-package--featured { border-color: var(--nc-svc-hue); box-shadow: var(--nc-elevation-2); }
.nc-package h3 { margin: 0; font-size: var(--nc-text-h3); }
.nc-package__price { margin: 0; font-size: var(--nc-text-h4); font-weight: var(--nc-weight-strong); color: var(--nc-svc-hue); }
.nc-package__features { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--nc-gap-inline-sm); }
.nc-package__features li { position: relative; padding-inline-start: var(--nc-gap-inline); }
.nc-package__features li::before { content: ""; position: absolute; inset-inline-start: 0; inset-block-start: 0.5em; inline-size: 0.5em; block-size: 0.5em; border-radius: var(--nc-radius-pill); background: var(--nc-svc-hue); }
.nc-specs { inline-size: 100%; border-collapse: collapse; }
.nc-specs th, .nc-specs td { border-block-end: var(--nc-border-width) solid var(--nc-color-border); padding-block: var(--nc-gap-inline-sm); padding-inline: var(--nc-gap-inline); text-align: start; }
.nc-specs th { color: var(--nc-color-text-secondary); font-weight: var(--nc-weight-strong); inline-size: 35%; }
.nc-steps { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--nc-gap-inline); counter-reset: nc-step; }
.nc-steps li { position: relative; padding-inline-start: 3rem; }
.nc-steps li::before { counter-increment: nc-step; content: counter(nc-step); position: absolute; inset-inline-start: 0; inset-block-start: 0; inline-size: 2.25rem; block-size: 2.25rem; border-radius: var(--nc-radius-circle); background: var(--nc-svc-soft); color: var(--nc-svc-hue); display: flex; align-items: center; justify-content: center; font-weight: var(--nc-weight-strong); }
.nc-steps h3 { margin: 0 0 var(--nc-gap-inline-sm); font-size: var(--nc-text-h4); }
.nc-faq { border: var(--nc-border-width) solid var(--nc-color-border); border-radius: var(--nc-radius-card); padding: var(--nc-gap-inline) var(--nc-pad-card); background: var(--nc-color-surface); }
.nc-faq summary { cursor: pointer; font-weight: var(--nc-weight-strong); }
.nc-faq summary:focus-visible { outline: var(--nc-border-width-focus) solid var(--nc-color-focus); outline-offset: 2px; }
@media (min-width: 64em) {
	.nc-packages { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
