:root{--nc-navy:#07111f;--nc-navy-2:#0b1b2e;--nc-blue:#00b4ff;--nc-orange:#ff6900;--nc-white:#fff;--nc-ink:#102033;--nc-muted:#607086;--nc-line:#dce5ef;--nc-tint:#f3f8fc;--nc-radius:18px;--nc-shadow:0 18px 50px rgba(7,17,31,.12);--nc-max:1200px}
body{color:var(--nc-ink);background:#fff;font-family:Inter,"Segoe UI",system-ui,sans-serif}.nc-container{width:min(calc(100% - 40px),var(--nc-max));margin-inline:auto}.nc-container--narrow{max-width:780px}.nc-header{position:sticky;top:0;z-index:100;background:rgba(7,17,31,.96);color:#fff;border-bottom:1px solid rgba(255,255,255,.1);backdrop-filter:blur(14px)}.nc-header__inner{min-height:78px;display:flex;align-items:center;gap:28px}.nc-brand{display:inline-flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-size:1.08rem;letter-spacing:.09em}.nc-brand b{color:var(--nc-blue)}.custom-logo{max-height:48px;width:auto}.nc-nav{margin-left:auto}.nc-nav ul{display:flex;align-items:center;gap:24px;list-style:none;margin:0;padding:0}.nc-nav a{color:#dce9f6;text-decoration:none;font-size:.94rem}.nc-nav a:hover,.nc-nav .current-menu-item>a{color:var(--nc-blue)}.nc-menu-toggle{display:none;border:0;background:transparent}.nc-menu-toggle span:not(.screen-reader-text){display:block;width:25px;height:2px;background:#fff;margin:5px}.nc-btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 22px;border:1px solid transparent;border-radius:9px;font-weight:700;text-decoration:none;cursor:pointer;transition:.2s}.nc-btn--small{padding:10px 17px}.nc-btn--primary{background:var(--nc-orange);color:#fff}.nc-btn--primary:hover{background:#e85f00;transform:translateY(-2px)}.nc-btn--secondary{border-color:var(--nc-blue);color:var(--nc-navy);background:#fff}.nc-btn--ghost{border-color:rgba(255,255,255,.32);color:#fff;background:transparent}.nc-hero,.nc-page-hero{color:#fff;background:radial-gradient(circle at 75% 40%,rgba(0,180,255,.14),transparent 30%),var(--nc-navy)}.nc-hero{min-height:650px;display:grid;align-items:center;overflow:hidden}.nc-hero__grid{display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:70px;padding-block:90px}.nc-hero h1,.nc-page-hero h1{font-size:clamp(2.7rem,6vw,5.7rem);line-height:.98;letter-spacing:-.045em;margin:.25em 0}.nc-page-hero{padding:100px 0 80px}.nc-page-hero h1{font-size:clamp(2.5rem,5vw,4.6rem);max-width:900px}.nc-lead{font-size:clamp(1.08rem,2vw,1.3rem);line-height:1.7;color:#b8c9da;max-width:760px}.nc-eyebrow{text-transform:uppercase;letter-spacing:.16em;font-weight:800;font-size:.76rem;color:#007eae}.nc-hero .nc-eyebrow,.nc-page-hero .nc-eyebrow,.nc-eyebrow--light{color:var(--nc-blue)}.nc-actions,.nc-cta__actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}.nc-hero__visual{display:grid;place-items:center}.nc-orbit{width:min(390px,75vw);aspect-ratio:1;border:1px solid rgba(0,180,255,.25);border-radius:50%;display:grid;place-items:center;position:relative}.nc-orbit:before,.nc-orbit:after{content:"";position:absolute;inset:15%;border:1px solid rgba(255,105,0,.25);border-radius:50%;transform:rotate(45deg)}.nc-orbit:after{inset:30%;border-color:rgba(0,180,255,.5)}.nc-orbit img{width:110px;filter:drop-shadow(0 0 30px rgba(0,180,255,.4))}.nc-trust{background:var(--nc-blue);color:var(--nc-navy);text-align:center;font-weight:800;letter-spacing:.08em;padding:16px}.nc-section{padding:96px 0}.nc-section--tint{background:var(--nc-tint)}.nc-section-header{max-width:720px;margin-bottom:42px}.nc-section-header h2,.nc-split h2{font-size:clamp(2rem,4vw,3.3rem);line-height:1.08;letter-spacing:-.035em;margin:.3em 0}.nc-section-header>p:last-child{color:var(--nc-muted);font-size:1.1rem}.nc-grid{display:grid;gap:24px}.nc-grid--3{grid-template-columns:repeat(3,1fr)}.nc-grid--2{grid-template-columns:repeat(2,1fr)}.nc-card{background:#fff;border:1px solid var(--nc-line);border-radius:var(--nc-radius);overflow:hidden;transition:.25s}.nc-card:hover{transform:translateY(-6px);box-shadow:var(--nc-shadow);border-color:rgba(0,180,255,.45)}.nc-card__link{display:block;height:100%;color:inherit;text-decoration:none}.nc-card__media{aspect-ratio:16/9;overflow:hidden}.nc-card__media img{width:100%;height:100%;object-fit:cover}.nc-card__body{padding:28px}.nc-card__title{font-size:1.35rem;margin:.35rem 0}.nc-card__body p{color:var(--nc-muted)}.nc-card__action{font-weight:800;color:#007eae}.nc-card__meta{font-size:.86rem}.nc-center{text-align:center;margin-top:40px}.nc-split{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}.nc-process{list-style:none;padding:0;margin:0}.nc-process li{display:flex;gap:20px;padding:22px 0;border-bottom:1px solid var(--nc-line)}.nc-process li>b{color:var(--nc-orange)}.nc-process span{display:grid;gap:4px}.nc-process strong{font-size:1.18rem}.nc-cta{padding:80px 0;background:var(--nc-navy)}.nc-cta__panel{padding:clamp(35px,7vw,75px);border-radius:26px;color:#fff;background:linear-gradient(120deg,#0b2742,#082039);border:1px solid rgba(0,180,255,.25)}.nc-cta__title{font-size:clamp(2rem,4vw,3.6rem);line-height:1.04;max-width:850px;margin:.3em 0}.nc-cta__text{color:#b8c9da;max-width:720px}.nc-breadcrumbs{border-bottom:1px solid var(--nc-line)}.nc-breadcrumbs__list{display:flex;gap:8px;list-style:none;padding:14px 0;margin:0;font-size:.85rem}.nc-breadcrumbs__item:not(:last-child):after{content:"/";margin-left:8px;color:#9aa7b6}.nc-breadcrumbs a{color:#007eae;text-decoration:none}.nc-prose{font-size:1.08rem;line-height:1.8}.nc-prose h2,.nc-prose h3{color:var(--nc-navy);line-height:1.2;margin-top:1.8em}.nc-featured{border-radius:var(--nc-radius);margin-bottom:35px}.nc-contact-grid{display:grid;grid-template-columns:1.5fr .7fr;gap:60px}.nc-contact-card,.nc-value{padding:30px;background:var(--nc-tint);border-radius:var(--nc-radius)}.nc-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.nc-form label{display:block;font-weight:700;margin-bottom:7px}.nc-form input,.nc-form select,.nc-form textarea{width:100%;padding:13px;border:1px solid #bdcad8;border-radius:8px;background:#fff;font:inherit}.nc-form input:focus,.nc-form select:focus,.nc-form textarea:focus{outline:3px solid rgba(0,180,255,.2);border-color:var(--nc-blue)}.nc-honeypot{position:absolute!important;left:-9999px!important}.nc-form-notice{padding:14px;border-radius:8px;margin-bottom:20px;background:#eaf7ef;color:#135f32}.nc-form-notice--failed,.nc-form-notice--invalid{background:#fff0ed;color:#8a2918}.nc-faq__item{border-bottom:1px solid var(--nc-line);padding:20px 0}.nc-faq__question{font-weight:800;font-size:1.1rem;cursor:pointer}.nc-footer{padding:75px 0 25px;background:#040b14;color:#b8c9da}.nc-footer__grid{display:grid;grid-template-columns:1.3fr .7fr 1fr;gap:60px}.nc-footer h2{font-size:1rem;color:#fff}.nc-footer ul{list-style:none;padding:0}.nc-footer a{color:#dce9f6;text-decoration:none}.nc-footer address{font-style:normal}.nc-footer__bottom{display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.12);padding-top:22px;margin-top:50px;font-size:.85rem}.nc-footer__bottom a{margin-left:15px}.pagination{margin-top:45px}.nav-links{display:flex;gap:8px}.page-numbers{padding:8px 13px;border:1px solid var(--nc-line);border-radius:6px;text-decoration:none}.page-numbers.current{background:var(--nc-navy);color:#fff}.nc-empty{text-align:center;padding:60px 0}
@media(max-width:900px){.nc-header__cta{display:none}.nc-menu-toggle{display:block;margin-left:auto}.nc-nav{display:none;position:absolute;top:78px;left:0;right:0;background:var(--nc-navy);padding:20px}.nc-nav.is-open{display:block}.nc-nav ul{display:block}.nc-nav li{padding:10px}.nc-hero__grid,.nc-split,.nc-contact-grid{grid-template-columns:1fr}.nc-hero__visual{display:none}.nc-grid--3{grid-template-columns:repeat(2,1fr)}.nc-footer__grid{grid-template-columns:1fr 1fr}.nc-section{padding:70px 0}}
@media(max-width:600px){.nc-container{width:min(calc(100% - 28px),var(--nc-max))}.nc-grid--3,.nc-grid--2,.nc-form__grid,.nc-footer__grid{grid-template-columns:1fr}.nc-hero{min-height:auto}.nc-hero__grid{padding-block:75px}.nc-page-hero{padding:70px 0 55px}.nc-section{padding:55px 0}.nc-footer__bottom{display:block}.nc-actions .nc-btn,.nc-cta__actions .nc-btn{width:100%}}

/**
 * Netra Code - Front-end stylesheet
 *
 * Table of contents
 *  01. Design tokens
 *  02. Reset & base
 *  03. Typography
 *  04. Accessibility helpers
 *  05. Layout: container, section, grid
 *  06. Eyebrow & section headings
 *  07. Buttons
 *  08. Cards
 *  09. Header & navigation
 *  10. Mega menu
 *  11. Mobile drawer
 *  12. Hero
 *  13. Ecosystem: nodes & connections
 *  14. Workflow & funnel
 *  15. Stats, logos & marquee shells
 *  16. Forms & quote wizard
 *  17. Breadcrumbs
 *  18. Blog, archive & article
 *  19. Legal & long-form documents
 *  20. FAQ / accordion
 *  21. Footer
 *  22. Cookie banner & floating WhatsApp
 *  23. WordPress core classes
 *  24. Utilities
 *  25. Responsive: 1200 / 1024 / 768 / 480
 *  26. Reduced motion, print, forced colors
 */

/* ==========================================================================
   01. Design tokens
   ========================================================================== */

:root {
	/* Brand */
	--nc-dark: #07111f;
	--nc-dark-2: #0a1729;
	--nc-dark-3: #0f2136;
	--nc-blue: #00b4ff;
	--nc-blue-600: #0090cc;
	--nc-blue-700: #0a6f9e;
	--nc-orange: #ff6900;
	--nc-orange-600: #db5900;

	/* Neutrals */
	--nc-white: #ffffff;
	--nc-gray-50: #f7f9fc;
	--nc-gray-100: #f1f4f9;
	--nc-gray-200: #e4e9f1;
	--nc-gray-300: #cfd7e3;
	--nc-slate-400: #94a3b8;
	--nc-slate-500: #64748b;
	--nc-slate-600: #4a5b71;
	--nc-slate-700: #33475c;
	--nc-ink: #0d1b2a;

	/* Semantic - light surfaces */
	--nc-bg: var(--nc-white);
	--nc-bg-alt: var(--nc-gray-50);
	--nc-text: var(--nc-ink);
	--nc-text-muted: var(--nc-slate-500);
	--nc-border: var(--nc-gray-200);
	--nc-border-strong: var(--nc-gray-300);

	/* Semantic - dark surfaces */
	--nc-dark-text: #eaf2fb;
	--nc-dark-muted: #9db0c7;
	--nc-dark-border: rgba(255, 255, 255, 0.1);
	--nc-dark-border-strong: rgba(255, 255, 255, 0.18);
	--nc-glass: rgba(255, 255, 255, 0.04);
	--nc-glass-strong: rgba(255, 255, 255, 0.07);

	/* Status */
	--nc-success: #15b37a;
	--nc-error: #e04f43;
	--nc-warning: #e0a020;

	/* Typography */
	--nc-font-sans: "Inter", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
	--nc-font-display: var(--nc-font-sans);
	--nc-font-mono: ui-monospace, "SFMono-Regular", "Cascadia Mono", "Roboto Mono", Menlo, Consolas, monospace;

	--nc-text-xs: 0.8125rem;   /* 13px */
	--nc-text-sm: 0.9375rem;   /* 15px */
	--nc-text-base: 1.0625rem; /* 17px */
	--nc-text-lg: 1.1875rem;   /* 19px */
	--nc-text-xl: 1.375rem;    /* 22px */
	--nc-h4: 1.5rem;
	--nc-h3: 1.875rem;
	--nc-h2: 2.5rem;
	--nc-h1: 3.25rem;
	--nc-display: 4rem;

	--nc-leading-tight: 1.12;
	--nc-leading-snug: 1.3;
	--nc-leading: 1.65;

	/* Spacing scale */
	--nc-space-1: 0.25rem;
	--nc-space-2: 0.5rem;
	--nc-space-3: 0.75rem;
	--nc-space-4: 1rem;
	--nc-space-5: 1.5rem;
	--nc-space-6: 2rem;
	--nc-space-7: 2.5rem;
	--nc-space-8: 3rem;
	--nc-space-9: 4rem;
	--nc-space-10: 5rem;
	--nc-space-11: 6.5rem;
	--nc-space-12: 8rem;

	/* Structure */
	--nc-container: 1200px;
	--nc-container-narrow: 820px;
	--nc-container-wide: 1400px;
	--nc-gutter: 1.5rem;
	--nc-section-y: 6.5rem;

	--nc-radius-sm: 8px;
	--nc-radius: 14px;
	--nc-radius-lg: 20px;
	--nc-radius-xl: 28px;
	--nc-radius-pill: 999px;

	--nc-shadow-sm: 0 1px 2px rgba(13, 27, 42, 0.06);
	--nc-shadow: 0 8px 24px -12px rgba(13, 27, 42, 0.14);
	--nc-shadow-lg: 0 24px 60px -32px rgba(13, 27, 42, 0.24);

	--nc-header-h: 76px;
	--nc-tap: 44px;

	--nc-ease: cubic-bezier(0.4, 0, 0.2, 1);
	--nc-duration: 200ms;
	--nc-duration-slow: 320ms;

	--nc-z-drawer: 900;
	--nc-z-header: 950;
	--nc-z-float: 960;
	--nc-z-cookie: 980;
	--nc-z-skip: 1000;
}

/* ==========================================================================
   02. Reset & base
   ========================================================================== */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--nc-header-h) + 1.5rem);
}

body {
	margin: 0;
	background-color: var(--nc-bg);
	color: var(--nc-text);
	font-family: var(--nc-font-sans);
	font-size: var(--nc-text-base);
	line-height: var(--nc-leading);
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	/* Guarantee no horizontal scrolling on any breakpoint. */
	overflow-x: hidden;
}

body.nc-no-scroll {
	overflow: hidden;
}

img,
svg,
video,
canvas,
iframe {
	max-width: 100%;
	height: auto;
	display: block;
}

svg {
	fill: currentColor;
}

button,
input,
select,
textarea {
	font: inherit;
	color: inherit;
}

button {
	cursor: pointer;
}

a {
	color: var(--nc-blue-700);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
	transition: color var(--nc-duration) var(--nc-ease);
}

a:hover {
	color: var(--nc-orange-600);
}

hr {
	border: 0;
	border-top: 1px solid var(--nc-border);
	margin: var(--nc-space-8) 0;
}

::selection {
	background: rgba(0, 180, 255, 0.24);
	color: var(--nc-ink);
}

/* ==========================================================================
   03. Typography
   ========================================================================== */

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 var(--nc-space-4);
	font-family: var(--nc-font-display);
	font-weight: 700;
	letter-spacing: -0.022em;
	line-height: var(--nc-leading-tight);
	color: var(--nc-ink);
	text-wrap: balance;
}

h1 {
	font-size: var(--nc-h1);
}

h2 {
	font-size: var(--nc-h2);
}

h3 {
	font-size: var(--nc-h3);
	line-height: var(--nc-leading-snug);
}

h4 {
	font-size: var(--nc-h4);
	line-height: var(--nc-leading-snug);
	letter-spacing: -0.014em;
}

h5 {
	font-size: var(--nc-text-xl);
	line-height: var(--nc-leading-snug);
	letter-spacing: -0.01em;
}

h6 {
	font-size: var(--nc-text-lg);
	line-height: var(--nc-leading-snug);
	letter-spacing: 0;
}

p,
ul,
ol,
dl,
figure,
pre,
blockquote,
table {
	margin: 0 0 var(--nc-space-5);
}

p:last-child,
ul:last-child,
ol:last-child {
	margin-bottom: 0;
}

strong,
b {
	font-weight: 650;
}

small {
	font-size: var(--nc-text-sm);
}

code,
kbd,
samp {
	font-family: var(--nc-font-mono);
	font-size: 0.9em;
	background: var(--nc-gray-100);
	border: 1px solid var(--nc-border);
	border-radius: 6px;
	padding: 0.1em 0.36em;
}

pre {
	font-family: var(--nc-font-mono);
	font-size: var(--nc-text-sm);
	line-height: 1.6;
	background: var(--nc-dark);
	color: var(--nc-dark-text);
	border-radius: var(--nc-radius);
	padding: var(--nc-space-5);
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

pre code {
	background: none;
	border: 0;
	padding: 0;
	color: inherit;
}

blockquote {
	margin-inline: 0;
	padding: var(--nc-space-2) 0 var(--nc-space-2) var(--nc-space-5);
	border-left: 3px solid var(--nc-blue);
	font-size: var(--nc-text-lg);
	color: var(--nc-slate-700);
}

blockquote cite {
	display: block;
	margin-top: var(--nc-space-3);
	font-size: var(--nc-text-sm);
	font-style: normal;
	color: var(--nc-text-muted);
}

.nc-lead {
	font-size: var(--nc-text-xl);
	line-height: 1.55;
	color: var(--nc-slate-600);
	max-width: 62ch;
}

.nc-display {
	font-size: var(--nc-display);
	line-height: 1.05;
	letter-spacing: -0.03em;
}

.nc-text-gradient {
	background: linear-gradient(96deg, var(--nc-blue) 0%, #63d3ff 48%, var(--nc-orange) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

/* ==========================================================================
   04. Accessibility helpers
   ========================================================================== */

.nc-skip-link {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -120%);
	z-index: var(--nc-z-skip);
	display: inline-block;
	padding: 0.75rem 1.25rem;
	background: var(--nc-dark);
	color: var(--nc-white);
	font-size: var(--nc-text-sm);
	font-weight: 600;
	text-decoration: none;
	border-radius: 0 0 var(--nc-radius-sm) var(--nc-radius-sm);
	transition: transform var(--nc-duration) var(--nc-ease);
}

.nc-skip-link:focus {
	transform: translate(-50%, 0);
	color: var(--nc-white);
	outline: 3px solid var(--nc-blue);
	outline-offset: 2px;
}

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

.nc-sr-only-focusable:focus,
.screen-reader-text:focus {
	position: static !important;
	width: auto;
	height: auto;
	margin: 0;
	overflow: visible;
	clip: auto;
	clip-path: none;
	white-space: normal;
}

/* Visible focus for keyboard users everywhere. */
:focus-visible {
	outline: 3px solid var(--nc-blue);
	outline-offset: 2px;
	border-radius: 4px;
}

.nc-section-dark :focus-visible,
.nc-header :focus-visible,
.nc-footer :focus-visible {
	outline-color: #7fdcff;
}

/* Remove the default ring only where a custom one is provided. */
.nc-button:focus:not(:focus-visible),
.nc-nav-link:focus:not(:focus-visible) {
	outline: none;
}

/* ==========================================================================
   05. Layout: container, section, grid
   ========================================================================== */

.nc-container {
	width: 100%;
	max-width: var(--nc-container);
	margin-inline: auto;
	padding-inline: var(--nc-gutter);
}

.nc-container-narrow {
	max-width: var(--nc-container-narrow);
}

.nc-container-wide {
	max-width: var(--nc-container-wide);
}

.nc-section {
	position: relative;
	padding-block: var(--nc-section-y);
	background: var(--nc-bg);
}

.nc-section-alt {
	background: var(--nc-bg-alt);
}

.nc-section-tight {
	padding-block: calc(var(--nc-section-y) * 0.6);
}

.nc-section-flush-top {
	padding-top: 0;
}

.nc-section-flush-bottom {
	padding-bottom: 0;
}

/* Dark sections invert the semantic tokens so children need no overrides. */
.nc-section-dark {
	--nc-text: var(--nc-dark-text);
	--nc-text-muted: var(--nc-dark-muted);
	--nc-border: var(--nc-dark-border);
	--nc-border-strong: var(--nc-dark-border-strong);
	--nc-bg: var(--nc-dark);
	--nc-bg-alt: var(--nc-dark-2);
	background: var(--nc-dark);
	color: var(--nc-dark-text);
	isolation: isolate;
}

.nc-section-dark h1,
.nc-section-dark h2,
.nc-section-dark h3,
.nc-section-dark h4,
.nc-section-dark h5,
.nc-section-dark h6 {
	color: var(--nc-white);
}

.nc-section-dark .nc-lead,
.nc-section-dark p {
	color: var(--nc-dark-muted);
}

.nc-section-dark a:not(.nc-button) {
	color: #7fdcff;
}

.nc-section-dark a:not(.nc-button):hover {
	color: #ffa259;
}

.nc-section-dark code {
	background: var(--nc-glass);
	border-color: var(--nc-dark-border);
	color: var(--nc-dark-text);
}

.nc-section-dark blockquote {
	color: var(--nc-dark-text);
}

/* Subtle gradient wash used on dark hero/CTA bands. */
.nc-section-gradient {
	background:
		radial-gradient(120% 90% at 12% -10%, rgba(0, 180, 255, 0.16) 0%, rgba(0, 180, 255, 0) 58%),
		radial-gradient(90% 80% at 92% 8%, rgba(255, 105, 0, 0.12) 0%, rgba(255, 105, 0, 0) 60%),
		var(--nc-dark);
}

.nc-section-glow-top::before {
	content: "";
	position: absolute;
	inset-inline: 0;
	top: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(0, 180, 255, 0.5), transparent);
	pointer-events: none;
}

.nc-section-header {
	max-width: 720px;
	margin-bottom: var(--nc-space-9);
}

.nc-section-header-center {
	margin-inline: auto;
	text-align: center;
}

.nc-section-header > *:last-child {
	margin-bottom: 0;
}

.nc-section-title {
	margin-bottom: var(--nc-space-4);
}

/* Grid */
.nc-grid {
	display: grid;
	gap: var(--nc-space-6);
}

.nc-grid-2,
.nc-grid--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nc-grid-3,
.nc-grid--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.nc-grid-4,
.nc-grid--4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.nc-grid--5 {
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.nc-grid-auto {
	grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
}

.nc-grid-gap-lg {
	gap: var(--nc-space-8);
}

.nc-grid-gap-sm {
	gap: var(--nc-space-4);
}

.nc-col-4 { grid-column: span 4; }
.nc-col-5 { grid-column: span 5; }
.nc-col-6 { grid-column: span 6; }
.nc-col-7 { grid-column: span 7; }
.nc-col-8 { grid-column: span 8; }
.nc-col-12 { grid-column: span 12; }

/* Two column split used for feature/media rows. */
.nc-split {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: var(--nc-space-9);
	align-items: center;
}

.nc-split-narrow-media {
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
}

.nc-split-reverse > *:first-child {
	order: 2;
}

.nc-stack {
	display: flex;
	flex-direction: column;
	gap: var(--nc-space-4);
}

.nc-cluster {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nc-space-3);
	align-items: center;
}

/* ==========================================================================
   06. Eyebrow & section headings
   ========================================================================== */

.nc-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	margin-bottom: var(--nc-space-4);
	font-size: var(--nc-text-xs);
	font-weight: 650;
	line-height: 1.2;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--nc-blue-700);
}

.nc-eyebrow::before {
	content: "";
	width: 22px;
	height: 2px;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--nc-blue), var(--nc-orange));
	flex: none;
}

.nc-eyebrow-plain::before {
	display: none;
}

.nc-section-dark .nc-eyebrow {
	color: #7fdcff;
}

.nc-eyebrow-pill {
	padding: 0.4rem 0.85rem;
	border: 1px solid var(--nc-border);
	border-radius: var(--nc-radius-pill);
	background: var(--nc-bg-alt);
}

.nc-section-dark .nc-eyebrow-pill {
	background: var(--nc-glass);
	border-color: var(--nc-dark-border);
}

/* Small label/badge used on cards and pricing. */
.nc-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.25rem 0.6rem;
	border-radius: var(--nc-radius-pill);
	background: rgba(0, 180, 255, 0.1);
	border: 1px solid rgba(0, 180, 255, 0.28);
	color: var(--nc-blue-700);
	font-size: var(--nc-text-xs);
	font-weight: 650;
	letter-spacing: 0.02em;
	line-height: 1.3;
}

.nc-badge-orange {
	background: rgba(255, 105, 0, 0.1);
	border-color: rgba(255, 105, 0, 0.3);
	color: var(--nc-orange-600);
}

.nc-badge-neutral {
	background: var(--nc-gray-100);
	border-color: var(--nc-border);
	color: var(--nc-slate-600);
}

.nc-section-dark .nc-badge {
	color: #7fdcff;
}

.nc-section-dark .nc-badge-neutral {
	background: var(--nc-glass);
	border-color: var(--nc-dark-border);
	color: var(--nc-dark-muted);
}

/* ==========================================================================
   07. Buttons
   ========================================================================== */

.nc-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	min-height: var(--nc-tap);
	padding: 0.8rem 1.6rem;
	border: 1px solid transparent;
	border-radius: var(--nc-radius-pill);
	background: none;
	color: var(--nc-ink);
	font-size: var(--nc-text-sm);
	font-weight: 650;
	line-height: 1.25;
	letter-spacing: 0.005em;
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
	transition:
		background-color var(--nc-duration) var(--nc-ease),
		border-color var(--nc-duration) var(--nc-ease),
		color var(--nc-duration) var(--nc-ease),
		transform var(--nc-duration) var(--nc-ease),
		box-shadow var(--nc-duration) var(--nc-ease);
}

.nc-button:hover {
	transform: translateY(-1px);
}

.nc-button:active {
	transform: translateY(0);
}

.nc-button svg {
	width: 1.05em;
	height: 1.05em;
	flex: none;
}

.nc-button[disabled],
.nc-button[aria-disabled="true"],
.nc-button.is-disabled {
	opacity: 0.55;
	pointer-events: none;
	transform: none;
}

.nc-button-primary {
	background: var(--nc-blue);
	border-color: var(--nc-blue);
	color: #04121d;
	box-shadow: 0 10px 26px -16px rgba(0, 180, 255, 0.85);
}

.nc-button-primary:hover {
	background: #2ac1ff;
	border-color: #2ac1ff;
	color: #04121d;
}

.nc-button-secondary {
	background: transparent;
	border-color: var(--nc-border-strong);
	color: var(--nc-text);
}

.nc-button-secondary:hover {
	border-color: var(--nc-blue);
	background: rgba(0, 180, 255, 0.07);
	color: var(--nc-text);
}

.nc-section-dark .nc-button-secondary,
.nc-header .nc-button-secondary,
.nc-footer .nc-button-secondary {
	border-color: var(--nc-dark-border-strong);
	color: var(--nc-white);
}

.nc-section-dark .nc-button-secondary:hover,
.nc-header .nc-button-secondary:hover,
.nc-footer .nc-button-secondary:hover {
	background: var(--nc-glass-strong);
	border-color: rgba(127, 220, 255, 0.6);
	color: var(--nc-white);
}

.nc-button-accent {
	background: var(--nc-orange);
	border-color: var(--nc-orange);
	color: #1a0800;
	box-shadow: 0 10px 26px -16px rgba(255, 105, 0, 0.85);
}

.nc-button-accent:hover {
	background: #ff7f26;
	border-color: #ff7f26;
	color: #1a0800;
}

.nc-button-ghost {
	background: transparent;
	border-color: transparent;
	color: var(--nc-text);
	padding-inline: 0.9rem;
}

.nc-button-ghost:hover {
	background: var(--nc-gray-100);
	color: var(--nc-text);
}

.nc-section-dark .nc-button-ghost:hover,
.nc-header .nc-button-ghost:hover {
	background: var(--nc-glass-strong);
	color: var(--nc-white);
}

.nc-button-link {
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 4px;
	color: var(--nc-blue-700);
	font-weight: 650;
	white-space: normal;
}

.nc-button-link:hover {
	color: var(--nc-orange-600);
	transform: none;
	text-decoration: underline;
}

.nc-button-sm {
	min-height: 38px;
	padding: 0.5rem 1.05rem;
	font-size: var(--nc-text-xs);
}

.nc-button-lg {
	min-height: 54px;
	padding: 1rem 2rem;
	font-size: var(--nc-text-base);
}

.nc-button-block {
	width: 100%;
}

.nc-button-group {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nc-space-3);
	align-items: center;
}

/* Simple arrow affordance for text links. */
.nc-arrow-link {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	font-weight: 650;
	font-size: var(--nc-text-sm);
	text-decoration: none;
}

.nc-arrow-link::after {
	content: "\2192";
	transition: transform var(--nc-duration) var(--nc-ease);
}

.nc-arrow-link:hover::after {
	transform: translateX(3px);
}

/* ==========================================================================
   08. Cards
   ========================================================================== */

.nc-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--nc-space-3);
	padding: var(--nc-space-6);
	background: var(--nc-bg);
	border: 1px solid var(--nc-border);
	border-radius: var(--nc-radius-lg);
	box-shadow: var(--nc-shadow-sm);
	transition:
		border-color var(--nc-duration) var(--nc-ease),
		box-shadow var(--nc-duration-slow) var(--nc-ease),
		transform var(--nc-duration-slow) var(--nc-ease);
}

.nc-card > *:last-child {
	margin-bottom: 0;
}

.nc-card-title {
	font-size: var(--nc-h4);
	margin-bottom: 0;
}

.nc-card-text {
	color: var(--nc-text-muted);
	font-size: var(--nc-text-sm);
	line-height: 1.62;
}

.nc-card-meta {
	font-size: var(--nc-text-xs);
	color: var(--nc-text-muted);
	letter-spacing: 0.03em;
}

.nc-card-footer {
	margin-top: auto;
	padding-top: var(--nc-space-4);
	display: flex;
	flex-wrap: wrap;
	gap: var(--nc-space-3);
	align-items: center;
	justify-content: space-between;
}

.nc-card-hover:hover,
.nc-card-link:hover {
	border-color: var(--nc-border-strong);
	box-shadow: var(--nc-shadow);
	transform: translateY(-2px);
}

/* Whole-card link overlay keeps a single accessible anchor. */
.nc-card-link {
	text-decoration: none;
	color: inherit;
}

.nc-card-overlay-link::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

.nc-card-elevated {
	box-shadow: var(--nc-shadow);
}

.nc-card-flat {
	box-shadow: none;
}

.nc-card-muted {
	background: var(--nc-bg-alt);
	box-shadow: none;
}

.nc-card-accent-top::before {
	content: "";
	position: absolute;
	inset-inline: var(--nc-space-6);
	top: 0;
	height: 2px;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--nc-blue), var(--nc-orange));
}

.nc-card-featured {
	border-color: rgba(0, 180, 255, 0.4);
	box-shadow: 0 20px 50px -34px rgba(0, 140, 200, 0.5);
}

/* Glass card on dark sections. */
.nc-card-glass {
	background: var(--nc-glass);
	border-color: var(--nc-dark-border);
	box-shadow: none;
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}

.nc-card-glass:hover {
	background: var(--nc-glass-strong);
	border-color: var(--nc-dark-border-strong);
}

.nc-card-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	margin-bottom: var(--nc-space-2);
	border-radius: var(--nc-radius);
	background: rgba(0, 180, 255, 0.1);
	border: 1px solid rgba(0, 180, 255, 0.24);
	color: var(--nc-blue-700);
}

.nc-card-icon svg {
	width: 22px;
	height: 22px;
}

.nc-card-icon-orange {
	background: rgba(255, 105, 0, 0.1);
	border-color: rgba(255, 105, 0, 0.26);
	color: var(--nc-orange-600);
}

.nc-section-dark .nc-card-icon {
	background: rgba(0, 180, 255, 0.14);
	border-color: rgba(0, 180, 255, 0.3);
	color: #7fdcff;
}

.nc-section-dark .nc-card-icon-orange {
	background: rgba(255, 105, 0, 0.16);
	border-color: rgba(255, 105, 0, 0.32);
	color: #ffa259;
}

.nc-card-media {
	margin: calc(var(--nc-space-6) * -1) calc(var(--nc-space-6) * -1) 0;
	border-radius: var(--nc-radius-lg) var(--nc-radius-lg) 0 0;
	overflow: hidden;
	background: var(--nc-gray-100);
	aspect-ratio: 16 / 9;
}

.nc-card-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nc-card-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--nc-space-2);
	font-size: var(--nc-text-sm);
	color: var(--nc-text-muted);
}

.nc-card-list li {
	position: relative;
	padding-left: 1.4rem;
}

.nc-card-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.62em;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--nc-blue);
}

/* Checklist variant. */
.nc-check-list {
	list-style: none;
	margin: 0 0 var(--nc-space-5);
	padding: 0;
	display: grid;
	gap: var(--nc-space-3);
}

.nc-check-list li {
	position: relative;
	padding-left: 1.9rem;
	font-size: var(--nc-text-sm);
	color: var(--nc-text-muted);
}

.nc-check-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.28em;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: rgba(0, 180, 255, 0.12);
	border: 1px solid rgba(0, 180, 255, 0.3);
}

.nc-check-list li::after {
	content: "";
	position: absolute;
	left: 6px;
	top: 0.6em;
	width: 8px;
	height: 4px;
	border-left: 2px solid var(--nc-blue-700);
	border-bottom: 2px solid var(--nc-blue-700);
	transform: rotate(-45deg);
}

.nc-section-dark .nc-check-list li::after {
	border-color: #7fdcff;
}

/* ==========================================================================
   09. Header & navigation
   ========================================================================== */

.nc-header {
	position: sticky;
	top: 0;
	z-index: var(--nc-z-header);
	background: rgba(7, 17, 31, 0.86);
	-webkit-backdrop-filter: blur(14px) saturate(140%);
	backdrop-filter: blur(14px) saturate(140%);
	border-bottom: 1px solid var(--nc-dark-border);
	color: var(--nc-dark-text);
	transition: background-color var(--nc-duration-slow) var(--nc-ease), border-color var(--nc-duration-slow) var(--nc-ease);
}

.nc-header.is-scrolled {
	background: rgba(7, 17, 31, 0.96);
	border-bottom-color: var(--nc-dark-border-strong);
}

/* Optional light header variant. */
.nc-header-light {
	background: rgba(255, 255, 255, 0.9);
	border-bottom-color: var(--nc-border);
	color: var(--nc-ink);
}

.nc-header-light.is-scrolled {
	background: rgba(255, 255, 255, 0.98);
}

.nc-header-inner {
	display: flex;
	align-items: center;
	gap: var(--nc-space-5);
	min-height: var(--nc-header-h);
}

.nc-header-utility {
	display: none;
	border-bottom: 1px solid var(--nc-dark-border);
	background: rgba(0, 0, 0, 0.2);
	font-size: var(--nc-text-xs);
}

.nc-header-utility-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--nc-space-4);
	min-height: 38px;
	color: var(--nc-dark-muted);
}

.nc-header-utility a {
	color: inherit;
	text-decoration: none;
}

.nc-header-utility a:hover {
	color: #7fdcff;
}

/* Branding */
.nc-branding {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	flex: none;
	text-decoration: none;
	color: inherit;
	min-height: var(--nc-tap);
}

.nc-branding:hover {
	color: inherit;
}

.nc-branding img,
.nc-branding svg,
.nc-logo-mark {
	width: 36px;
	height: 36px;
	flex: none;
}

.nc-branding .custom-logo {
	width: auto;
	max-height: 40px;
}

.nc-site-title {
	font-family: var(--nc-font-display);
	font-size: 1.2rem;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.1;
	margin: 0;
	color: currentColor;
	white-space: nowrap;
}

.nc-site-title a {
	color: inherit;
	text-decoration: none;
}

.nc-site-tagline {
	display: block;
	margin: 0;
	font-size: 0.7rem;
	font-weight: 500;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--nc-slate-400);
}

/* Primary navigation */
.nc-nav {
	margin-left: auto;
}

.nc-nav-list,
.nc-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.nc-nav-list {
	display: flex;
	align-items: center;
	gap: 0.15rem;
}

.nc-nav-item {
	position: relative;
}

.nc-nav-link,
.nc-nav-list a {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	min-height: var(--nc-tap);
	padding: 0.55rem 0.85rem;
	border-radius: var(--nc-radius-sm);
	color: inherit;
	font-size: var(--nc-text-sm);
	font-weight: 550;
	text-decoration: none;
	white-space: nowrap;
	transition: color var(--nc-duration) var(--nc-ease), background-color var(--nc-duration) var(--nc-ease);
}

.nc-nav-link:hover,
.nc-nav-list a:hover {
	background: var(--nc-glass-strong);
	color: var(--nc-white);
}

.nc-header-light .nc-nav-link:hover,
.nc-header-light .nc-nav-list a:hover {
	background: var(--nc-gray-100);
	color: var(--nc-ink);
}

.nc-nav-item.current-menu-item > .nc-nav-link,
.nc-nav-item.current-menu-item > a,
.nc-nav-item.current-menu-ancestor > a,
.nc-nav-item.current_page_item > a {
	color: #7fdcff;
}

.nc-header-light .nc-nav-item.current-menu-item > a {
	color: var(--nc-blue-700);
}

/* Caret for items with children. */
.nc-nav-toggle-sub,
.nc-nav-caret {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1em;
	height: 1em;
	border: 0;
	background: none;
	color: inherit;
	padding: 0;
}

.nc-nav-caret::after {
	content: "";
	width: 0.42em;
	height: 0.42em;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-0.12em) rotate(45deg);
	transition: transform var(--nc-duration) var(--nc-ease);
}

.nc-nav-item[aria-expanded="true"] .nc-nav-caret::after,
.nc-nav-item.is-open .nc-nav-caret::after,
.nc-nav-link[aria-expanded="true"] .nc-nav-caret::after {
	transform: translateY(0.1em) rotate(225deg);
}

.nc-header-actions {
	display: flex;
	align-items: center;
	gap: var(--nc-space-3);
	flex: none;
}

.nc-header-phone {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	min-height: var(--nc-tap);
	padding-inline: 0.4rem;
	font-size: var(--nc-text-sm);
	font-weight: 650;
	text-decoration: none;
	color: inherit;
	white-space: nowrap;
}

.nc-header-phone:hover {
	color: #7fdcff;
}

.nc-header-light .nc-header-phone:hover {
	color: var(--nc-blue-700);
}

/* Standard dropdown (non-mega) */
.nc-sub-menu,
.nc-nav-list .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 10;
	min-width: 240px;
	margin: 0;
	padding: var(--nc-space-2);
	list-style: none;
	background: var(--nc-dark-2);
	border: 1px solid var(--nc-dark-border);
	border-radius: var(--nc-radius);
	box-shadow: 0 26px 60px -30px rgba(0, 0, 0, 0.85);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition:
		opacity var(--nc-duration) var(--nc-ease),
		transform var(--nc-duration) var(--nc-ease),
		visibility var(--nc-duration) var(--nc-ease);
}

.nc-nav-item:hover > .nc-sub-menu,
.nc-nav-item:focus-within > .nc-sub-menu,
.nc-nav-item.is-open > .nc-sub-menu,
.nc-nav-item:hover > .sub-menu,
.nc-nav-item:focus-within > .sub-menu,
.nc-nav-item.is-open > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.nc-sub-menu a,
.nc-nav-list .sub-menu a {
	display: flex;
	align-items: center;
	width: 100%;
	min-height: var(--nc-tap);
	padding: 0.6rem 0.8rem;
	border-radius: var(--nc-radius-sm);
	font-size: var(--nc-text-sm);
	font-weight: 500;
	white-space: normal;
}

/* ==========================================================================
   10. Mega menu
   ========================================================================== */

.nc-mega-menu {
	position: absolute;
	top: calc(100% + 1px);
	left: 50%;
	z-index: 10;
	width: min(var(--nc-container-wide), calc(100vw - 3rem));
	transform: translate(-50%, 8px);
	padding: var(--nc-space-7);
	background: linear-gradient(180deg, rgba(15, 33, 54, 0.99) 0%, rgba(10, 23, 41, 0.99) 100%);
	border: 1px solid var(--nc-dark-border-strong);
	border-radius: var(--nc-radius-xl);
	box-shadow: 0 40px 90px -44px rgba(0, 0, 0, 0.9);
	-webkit-backdrop-filter: blur(18px);
	backdrop-filter: blur(18px);
	color: var(--nc-dark-text);
	opacity: 0;
	visibility: hidden;
	transition:
		opacity var(--nc-duration-slow) var(--nc-ease),
		transform var(--nc-duration-slow) var(--nc-ease),
		visibility var(--nc-duration-slow) var(--nc-ease);
}

.nc-nav-item:hover > .nc-mega-menu,
.nc-nav-item:focus-within > .nc-mega-menu,
.nc-nav-item.is-open > .nc-mega-menu,
.nc-mega-menu.is-open {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, 0);
}

.nc-mega-menu-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--nc-space-6);
}

.nc-mega-menu-grid-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.nc-mega-menu-col {
	min-width: 0;
}

.nc-mega-menu-heading {
	margin: 0 0 var(--nc-space-3);
	font-size: var(--nc-text-xs);
	font-weight: 650;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--nc-slate-400);
}

.nc-mega-menu-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.nc-mega-menu-link {
	display: block;
	padding: 0.6rem 0.7rem;
	border-radius: var(--nc-radius-sm);
	color: var(--nc-dark-text);
	font-size: var(--nc-text-sm);
	font-weight: 550;
	line-height: 1.35;
	text-decoration: none;
	transition: background-color var(--nc-duration) var(--nc-ease), color var(--nc-duration) var(--nc-ease);
}

.nc-mega-menu-link:hover,
.nc-mega-menu-link:focus-visible {
	background: var(--nc-glass-strong);
	color: var(--nc-white);
}

.nc-mega-menu-link span {
	display: block;
	margin-top: 2px;
	font-size: var(--nc-text-xs);
	font-weight: 400;
	color: var(--nc-slate-400);
}

/* Promotional panel inside the mega menu. */
.nc-mega-menu-feature {
	padding: var(--nc-space-5);
	border: 1px solid var(--nc-dark-border);
	border-radius: var(--nc-radius-lg);
	background:
		radial-gradient(120% 120% at 100% 0%, rgba(0, 180, 255, 0.14), transparent 62%),
		var(--nc-glass);
}

.nc-mega-menu-feature h4 {
	font-size: var(--nc-text-lg);
	margin-bottom: var(--nc-space-2);
}

.nc-mega-menu-feature p {
	font-size: var(--nc-text-sm);
	color: var(--nc-dark-muted);
	margin-bottom: var(--nc-space-4);
}

.nc-mega-menu-footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--nc-space-4);
	margin-top: var(--nc-space-6);
	padding-top: var(--nc-space-5);
	border-top: 1px solid var(--nc-dark-border);
	font-size: var(--nc-text-sm);
	color: var(--nc-dark-muted);
}

/* ==========================================================================
   11. Mobile drawer
   ========================================================================== */

.nc-menu-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	width: var(--nc-tap);
	height: var(--nc-tap);
	margin-left: auto;
	padding: 0;
	border: 1px solid var(--nc-dark-border-strong);
	border-radius: var(--nc-radius-sm);
	background: var(--nc-glass);
	color: inherit;
	flex: none;
}

.nc-header-light .nc-menu-toggle {
	border-color: var(--nc-border-strong);
	background: var(--nc-white);
}

.nc-menu-toggle-bars {
	position: relative;
	display: block;
	width: 20px;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	transition: background-color var(--nc-duration) var(--nc-ease), transform var(--nc-duration) var(--nc-ease);
}

.nc-menu-toggle-bars::before,
.nc-menu-toggle-bars::after {
	content: "";
	position: absolute;
	left: 0;
	width: 20px;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	transition: transform var(--nc-duration) var(--nc-ease), top var(--nc-duration) var(--nc-ease);
}

.nc-menu-toggle-bars::before {
	top: -6px;
}

.nc-menu-toggle-bars::after {
	top: 6px;
}

.nc-menu-toggle[aria-expanded="true"] .nc-menu-toggle-bars {
	background: transparent;
}

.nc-menu-toggle[aria-expanded="true"] .nc-menu-toggle-bars::before {
	top: 0;
	transform: rotate(45deg);
}

.nc-menu-toggle[aria-expanded="true"] .nc-menu-toggle-bars::after {
	top: 0;
	transform: rotate(-45deg);
}

.nc-drawer-overlay {
	position: fixed;
	inset: 0;
	z-index: var(--nc-z-drawer);
	background: rgba(4, 10, 18, 0.6);
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--nc-duration-slow) var(--nc-ease), visibility var(--nc-duration-slow) var(--nc-ease);
}

.nc-drawer-overlay.is-open {
	opacity: 1;
	visibility: visible;
}

.nc-mobile-drawer {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: calc(var(--nc-z-drawer) + 5);
	width: min(400px, 88vw);
	display: flex;
	flex-direction: column;
	background: var(--nc-dark);
	border-left: 1px solid var(--nc-dark-border);
	color: var(--nc-dark-text);
	transform: translateX(100%);
	visibility: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	transition: transform var(--nc-duration-slow) var(--nc-ease), visibility var(--nc-duration-slow) var(--nc-ease);
}

.nc-mobile-drawer.is-open {
	transform: translateX(0);
	visibility: visible;
}

.nc-mobile-drawer-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--nc-space-4);
	padding: var(--nc-space-4) var(--nc-space-5);
	border-bottom: 1px solid var(--nc-dark-border);
	position: sticky;
	top: 0;
	background: var(--nc-dark);
	z-index: 1;
}

.nc-drawer-close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--nc-tap);
	height: var(--nc-tap);
	border: 1px solid var(--nc-dark-border-strong);
	border-radius: var(--nc-radius-sm);
	background: var(--nc-glass);
	color: inherit;
	font-size: 1.25rem;
	line-height: 1;
	flex: none;
}

.nc-drawer-close:hover {
	background: var(--nc-glass-strong);
}

.nc-mobile-drawer-body {
	padding: var(--nc-space-5);
	flex: 1 1 auto;
}

.nc-mobile-drawer-footer {
	padding: var(--nc-space-5);
	border-top: 1px solid var(--nc-dark-border);
	display: grid;
	gap: var(--nc-space-3);
}

.nc-mobile-nav,
.nc-mobile-nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.nc-mobile-nav > li {
	border-bottom: 1px solid var(--nc-dark-border);
}

.nc-mobile-nav a {
	display: flex;
	align-items: center;
	min-height: var(--nc-tap);
	padding: 0.85rem 0.25rem;
	color: var(--nc-dark-text);
	font-size: var(--nc-text-lg);
	font-weight: 600;
	text-decoration: none;
}

.nc-mobile-nav a:hover {
	color: #7fdcff;
}

.nc-mobile-nav .nc-submenu-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--nc-tap);
	height: var(--nc-tap);
	margin-left: auto;
	border: 1px solid var(--nc-dark-border);
	border-radius: var(--nc-radius-sm);
	background: var(--nc-glass);
	color: inherit;
	flex: none;
}

.nc-mobile-nav-row {
	display: flex;
	align-items: center;
	gap: var(--nc-space-2);
}

.nc-mobile-nav-row > a {
	flex: 1 1 auto;
	min-width: 0;
}

.nc-mobile-nav .sub-menu,
.nc-mobile-nav .nc-sub-menu {
	position: static;
	display: none;
	opacity: 1;
	visibility: visible;
	transform: none;
	background: none;
	border: 0;
	box-shadow: none;
	padding: 0 0 var(--nc-space-3) var(--nc-space-4);
	margin: 0;
	border-left: 1px solid var(--nc-dark-border);
}

.nc-mobile-nav li.is-open > .sub-menu,
.nc-mobile-nav li.is-open > .nc-sub-menu {
	display: block;
}

.nc-mobile-nav .sub-menu a {
	font-size: var(--nc-text-base);
	font-weight: 500;
	color: var(--nc-dark-muted);
	padding-block: 0.6rem;
}

.nc-mobile-contact {
	margin-top: var(--nc-space-6);
	display: grid;
	gap: var(--nc-space-2);
	font-size: var(--nc-text-sm);
	color: var(--nc-dark-muted);
}

.nc-mobile-contact a {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: var(--nc-tap);
	color: var(--nc-dark-text);
	text-decoration: none;
}

/* ==========================================================================
   12. Hero
   ========================================================================== */

.nc-hero {
	position: relative;
	overflow: hidden;
	padding-block: clamp(4rem, 9vw, 8rem);
	background:
		radial-gradient(110% 85% at 8% -8%, rgba(0, 180, 255, 0.2) 0%, rgba(0, 180, 255, 0) 55%),
		radial-gradient(90% 75% at 96% 4%, rgba(255, 105, 0, 0.14) 0%, rgba(255, 105, 0, 0) 58%),
		linear-gradient(180deg, var(--nc-dark) 0%, var(--nc-dark-2) 100%);
	color: var(--nc-dark-text);
	isolation: isolate;
}

.nc-hero::after {
	/* Fine grid texture, deliberately faint. */
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image:
		linear-gradient(to right, rgba(255, 255, 255, 0.035) 1px, transparent 1px),
		linear-gradient(to bottom, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
	background-size: 72px 72px;
	-webkit-mask-image: radial-gradient(80% 65% at 50% 30%, #000 0%, transparent 100%);
	mask-image: radial-gradient(80% 65% at 50% 30%, #000 0%, transparent 100%);
	pointer-events: none;
}

.nc-hero h1,
.nc-hero h2 {
	color: var(--nc-white);
}

.nc-hero-inner {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: var(--nc-space-9);
	align-items: center;
}

.nc-hero-centered .nc-hero-inner {
	grid-template-columns: minmax(0, 1fr);
	max-width: 860px;
	margin-inline: auto;
	text-align: center;
}

.nc-hero-centered .nc-hero-lead,
.nc-hero-centered .nc-hero-actions {
	margin-inline: auto;
	justify-content: center;
}

.nc-hero-title {
	font-size: clamp(2.25rem, 5vw, var(--nc-display));
	line-height: 1.06;
	letter-spacing: -0.03em;
	margin-bottom: var(--nc-space-5);
}

.nc-hero-lead {
	font-size: clamp(1.0625rem, 1.5vw, var(--nc-text-xl));
	line-height: 1.6;
	color: var(--nc-dark-muted);
	max-width: 58ch;
	margin-bottom: var(--nc-space-7);
}

.nc-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nc-space-3);
	margin-bottom: var(--nc-space-7);
}

.nc-hero-meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nc-space-5);
	padding-top: var(--nc-space-5);
	border-top: 1px solid var(--nc-dark-border);
	font-size: var(--nc-text-sm);
	color: var(--nc-dark-muted);
}

.nc-hero-meta-item {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.nc-hero-media {
	position: relative;
	min-width: 0;
}

.nc-hero-visual {
	position: relative;
	border: 1px solid var(--nc-dark-border-strong);
	border-radius: var(--nc-radius-xl);
	background: var(--nc-glass);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	padding: var(--nc-space-6);
	overflow: hidden;
}

/* Compact page hero for interior pages. */
.nc-page-hero {
	position: relative;
	overflow: hidden;
	padding-block: clamp(3rem, 6vw, 5.5rem);
	background:
		radial-gradient(100% 100% at 0% 0%, rgba(0, 180, 255, 0.16), transparent 60%),
		linear-gradient(180deg, var(--nc-dark) 0%, var(--nc-dark-2) 100%);
	color: var(--nc-dark-text);
}

.nc-page-hero h1 {
	color: var(--nc-white);
	font-size: clamp(2rem, 4vw, 3.25rem);
	margin-bottom: var(--nc-space-4);
}

.nc-page-hero-lead {
	color: var(--nc-dark-muted);
	font-size: var(--nc-text-lg);
	max-width: 68ch;
	margin-bottom: 0;
}

/* ==========================================================================
   13. Ecosystem: nodes & connections
   ========================================================================== */

.nc-ecosystem {
	position: relative;
	overflow: hidden;
}

.nc-ecosystem-stage {
	position: relative;
	width: 100%;
	aspect-ratio: 1 / 1;
	max-width: 620px;
	margin-inline: auto;
}

.nc-ecosystem-connections {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	overflow: visible;
}

.nc-connection,
.nc-ecosystem-connections path,
.nc-ecosystem-connections line {
	fill: none;
	stroke: rgba(0, 180, 255, 0.35);
	stroke-width: 1;
	stroke-linecap: round;
}

.nc-connection-accent {
	stroke: rgba(255, 105, 0, 0.4);
}

.nc-connection-dashed {
	stroke-dasharray: 4 8;
}

.nc-node {
	position: absolute;
	display: flex;
	align-items: center;
	gap: 0.55rem;
	transform: translate(-50%, -50%);
	padding: 0.6rem 0.95rem;
	border: 1px solid var(--nc-dark-border-strong);
	border-radius: var(--nc-radius-pill);
	background: rgba(10, 23, 41, 0.92);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	color: var(--nc-dark-text);
	font-size: var(--nc-text-xs);
	font-weight: 600;
	white-space: nowrap;
	box-shadow: 0 14px 32px -22px rgba(0, 0, 0, 0.9);
	transition: border-color var(--nc-duration) var(--nc-ease), transform var(--nc-duration) var(--nc-ease);
}

.nc-node:hover,
.nc-node:focus-visible {
	border-color: rgba(0, 180, 255, 0.6);
	transform: translate(-50%, calc(-50% - 2px));
}

.nc-node-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--nc-blue);
	flex: none;
}

.nc-node-dot-orange {
	background: var(--nc-orange);
}

.nc-node-core {
	padding: 1rem 1.4rem;
	font-size: var(--nc-text-base);
	font-weight: 700;
	border-color: rgba(0, 180, 255, 0.45);
	background:
		radial-gradient(120% 120% at 50% 0%, rgba(0, 180, 255, 0.22), transparent 68%),
		rgba(10, 23, 41, 0.95);
}

/* Positional helpers so markup only needs class names. */
.nc-node-center { top: 50%; left: 50%; }
.nc-node-n  { top: 8%;  left: 50%; }
.nc-node-ne { top: 22%; left: 84%; }
.nc-node-e  { top: 50%; left: 92%; }
.nc-node-se { top: 78%; left: 84%; }
.nc-node-s  { top: 92%; left: 50%; }
.nc-node-sw { top: 78%; left: 16%; }
.nc-node-w  { top: 50%; left: 8%; }
.nc-node-nw { top: 22%; left: 16%; }

/* Static list fallback for the ecosystem on small screens. */
.nc-ecosystem-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--nc-space-3);
}

.nc-ecosystem-list li {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.85rem 1rem;
	border: 1px solid var(--nc-border);
	border-radius: var(--nc-radius);
	background: var(--nc-bg-alt);
	font-size: var(--nc-text-sm);
	font-weight: 600;
}

/* ==========================================================================
   14. Workflow & funnel
   ========================================================================== */

.nc-workflow {
	position: relative;
	counter-reset: nc-step;
}

.nc-workflow-steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
	gap: var(--nc-space-6);
}

.nc-workflow-step {
	position: relative;
	counter-increment: nc-step;
	padding: var(--nc-space-6);
	padding-top: var(--nc-space-7);
	border: 1px solid var(--nc-border);
	border-radius: var(--nc-radius-lg);
	background: var(--nc-bg);
}

.nc-workflow-step::before {
	content: counter(nc-step, decimal-leading-zero);
	position: absolute;
	top: var(--nc-space-5);
	left: var(--nc-space-6);
	font-family: var(--nc-font-mono);
	font-size: var(--nc-text-xs);
	font-weight: 700;
	letter-spacing: 0.1em;
	color: var(--nc-blue-700);
}

.nc-workflow-step-title {
	margin-top: var(--nc-space-5);
	margin-bottom: var(--nc-space-2);
	font-size: var(--nc-text-xl);
}

.nc-workflow-step-text {
	margin: 0;
	font-size: var(--nc-text-sm);
	color: var(--nc-text-muted);
}

/* Horizontal connector line between steps on wide screens. */
.nc-workflow-step:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 50%;
	right: calc(var(--nc-space-6) * -1);
	width: var(--nc-space-6);
	height: 1px;
	background: linear-gradient(90deg, var(--nc-border-strong), transparent);
}

.nc-section-dark .nc-workflow-step {
	background: var(--nc-glass);
	border-color: var(--nc-dark-border);
}

.nc-section-dark .nc-workflow-step::before {
	color: #7fdcff;
}

/* Vertical timeline variant. */
.nc-workflow-timeline {
	list-style: none;
	margin: 0;
	padding: 0 0 0 var(--nc-space-7);
	position: relative;
	counter-reset: nc-step;
}

.nc-workflow-timeline::before {
	content: "";
	position: absolute;
	left: 15px;
	top: 8px;
	bottom: 8px;
	width: 1px;
	background: linear-gradient(180deg, var(--nc-blue), rgba(255, 105, 0, 0.5));
}

.nc-workflow-timeline > li {
	position: relative;
	counter-increment: nc-step;
	padding-bottom: var(--nc-space-7);
}

.nc-workflow-timeline > li:last-child {
	padding-bottom: 0;
}

.nc-workflow-timeline > li::before {
	content: counter(nc-step);
	position: absolute;
	left: calc(var(--nc-space-7) * -1);
	top: 0;
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--nc-bg);
	border: 1px solid var(--nc-blue);
	color: var(--nc-blue-700);
	font-size: var(--nc-text-xs);
	font-weight: 700;
}

/* Funnel */
.nc-funnel {
	display: grid;
	gap: var(--nc-space-3);
	max-width: 780px;
	margin-inline: auto;
	counter-reset: nc-funnel;
}

.nc-funnel-stage {
	position: relative;
	counter-increment: nc-funnel;
	display: flex;
	align-items: center;
	gap: var(--nc-space-4);
	padding: var(--nc-space-5) var(--nc-space-6);
	border: 1px solid var(--nc-border);
	border-radius: var(--nc-radius-lg);
	background: var(--nc-bg);
	box-shadow: var(--nc-shadow-sm);
}

.nc-funnel-stage-1 { width: 100%; }
.nc-funnel-stage-2 { width: 92%; margin-inline: auto; }
.nc-funnel-stage-3 { width: 84%; margin-inline: auto; }
.nc-funnel-stage-4 { width: 76%; margin-inline: auto; }
.nc-funnel-stage-5 { width: 68%; margin-inline: auto; }

.nc-funnel-stage::before {
	content: counter(nc-funnel);
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	flex: none;
	border-radius: 50%;
	background: rgba(0, 180, 255, 0.12);
	border: 1px solid rgba(0, 180, 255, 0.3);
	color: var(--nc-blue-700);
	font-size: var(--nc-text-xs);
	font-weight: 700;
}

.nc-funnel-stage-label {
	font-weight: 650;
	font-size: var(--nc-text-base);
	margin: 0;
}

.nc-funnel-stage-text {
	margin: 0;
	font-size: var(--nc-text-sm);
	color: var(--nc-text-muted);
}

.nc-section-dark .nc-funnel-stage {
	background: var(--nc-glass);
	border-color: var(--nc-dark-border);
	box-shadow: none;
}

.nc-section-dark .nc-funnel-stage::before,
.nc-section-dark .nc-workflow-timeline > li::before {
	color: #7fdcff;
	background: rgba(0, 180, 255, 0.14);
	border-color: rgba(0, 180, 255, 0.34);
}

/* ==========================================================================
   15. Stats, logos & marquee shells
   ========================================================================== */

.nc-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr));
	gap: var(--nc-space-6);
}

.nc-stat {
	padding: var(--nc-space-5) 0;
	border-top: 1px solid var(--nc-border);
}

.nc-stat-value {
	display: block;
	font-family: var(--nc-font-display);
	font-size: clamp(2rem, 3.4vw, 2.75rem);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.05;
	color: var(--nc-text);
}

.nc-stat-label {
	display: block;
	margin-top: var(--nc-space-2);
	font-size: var(--nc-text-sm);
	color: var(--nc-text-muted);
}

.nc-logo-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--nc-space-6) var(--nc-space-8);
}

.nc-logo-row img,
.nc-logo-row svg {
	max-height: 30px;
	width: auto;
	opacity: 0.65;
	filter: grayscale(1);
	transition: opacity var(--nc-duration) var(--nc-ease), filter var(--nc-duration) var(--nc-ease);
}

.nc-logo-row img:hover,
.nc-logo-row svg:hover {
	opacity: 1;
	filter: grayscale(0);
}

/* Optional CTA band. */
.nc-cta-band {
	position: relative;
	overflow: hidden;
	padding: clamp(2.5rem, 5vw, 4rem);
	border-radius: var(--nc-radius-xl);
	border: 1px solid var(--nc-dark-border-strong);
	background:
		radial-gradient(110% 120% at 0% 0%, rgba(0, 180, 255, 0.2), transparent 58%),
		radial-gradient(90% 110% at 100% 100%, rgba(255, 105, 0, 0.16), transparent 60%),
		var(--nc-dark);
	color: var(--nc-dark-text);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--nc-space-6);
}

.nc-cta-band h2,
.nc-cta-band h3 {
	color: var(--nc-white);
	margin-bottom: var(--nc-space-3);
}

.nc-cta-band p {
	color: var(--nc-dark-muted);
	margin: 0;
	max-width: 56ch;
}

.nc-cta-band-content {
	min-width: 0;
	flex: 1 1 380px;
}

/* ==========================================================================
   16. Forms & quote wizard
   ========================================================================== */

.nc-form {
	display: grid;
	gap: var(--nc-space-5);
}

.nc-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--nc-space-5);
}

.nc-form-row-full {
	grid-column: 1 / -1;
}

.nc-field {
	display: grid;
	gap: 0.45rem;
	min-width: 0;
}

.nc-label,
.nc-field > label {
	font-size: var(--nc-text-sm);
	font-weight: 600;
	color: var(--nc-text);
	line-height: 1.35;
}

.nc-required {
	color: var(--nc-orange-600);
	margin-left: 0.15em;
}

.nc-hint {
	font-size: var(--nc-text-xs);
	color: var(--nc-text-muted);
	line-height: 1.45;
}

.nc-input,
.nc-textarea,
.nc-select,
.nc-form input[type="text"],
.nc-form input[type="email"],
.nc-form input[type="tel"],
.nc-form input[type="url"],
.nc-form input[type="number"],
.nc-form input[type="search"],
.nc-form input[type="date"],
.nc-form textarea,
.nc-form select {
	width: 100%;
	min-height: var(--nc-tap);
	padding: 0.7rem 0.95rem;
	background: var(--nc-white);
	border: 1px solid var(--nc-border-strong);
	border-radius: var(--nc-radius-sm);
	color: var(--nc-ink);
	font-size: var(--nc-text-base);
	line-height: 1.4;
	transition: border-color var(--nc-duration) var(--nc-ease), box-shadow var(--nc-duration) var(--nc-ease);
	-webkit-appearance: none;
	appearance: none;
}

.nc-textarea,
.nc-form textarea {
	min-height: 140px;
	resize: vertical;
}

.nc-select,
.nc-form select {
	background-image: linear-gradient(45deg, transparent 50%, var(--nc-slate-500) 50%),
		linear-gradient(135deg, var(--nc-slate-500) 50%, transparent 50%);
	background-position: calc(100% - 20px) calc(50% + 2px), calc(100% - 14px) calc(50% + 2px);
	background-size: 6px 6px, 6px 6px;
	background-repeat: no-repeat;
	padding-right: 2.75rem;
}

.nc-input:focus,
.nc-textarea:focus,
.nc-select:focus,
.nc-form input:focus,
.nc-form textarea:focus,
.nc-form select:focus {
	outline: none;
	border-color: var(--nc-blue);
	box-shadow: 0 0 0 3px rgba(0, 180, 255, 0.18);
}

.nc-input:focus-visible,
.nc-textarea:focus-visible,
.nc-select:focus-visible {
	outline: 2px solid var(--nc-blue);
	outline-offset: 1px;
}

.nc-input::placeholder,
.nc-textarea::placeholder {
	color: var(--nc-slate-400);
}

/* Validation states driven by quote-form.js and native validity. */
.nc-field.has-error .nc-input,
.nc-field.has-error .nc-textarea,
.nc-field.has-error .nc-select,
.nc-input.has-error,
[aria-invalid="true"] {
	border-color: var(--nc-error);
	box-shadow: 0 0 0 3px rgba(224, 79, 67, 0.14);
}

.nc-field-error,
.nc-error-message {
	display: none;
	font-size: var(--nc-text-xs);
	font-weight: 600;
	color: var(--nc-error);
	line-height: 1.4;
}

.nc-field.has-error .nc-field-error,
.nc-field-error.is-visible,
.nc-error-message.is-visible {
	display: block;
}

.nc-form-notice {
	padding: var(--nc-space-4) var(--nc-space-5);
	border: 1px solid var(--nc-border);
	border-left-width: 3px;
	border-radius: var(--nc-radius-sm);
	font-size: var(--nc-text-sm);
	background: var(--nc-gray-50);
}

.nc-form-notice-success {
	border-left-color: var(--nc-success);
	background: rgba(21, 179, 122, 0.08);
	color: #0d7350;
}

.nc-form-notice-error {
	border-left-color: var(--nc-error);
	background: rgba(224, 79, 67, 0.08);
	color: #9c2f26;
}

.nc-form-notice-info {
	border-left-color: var(--nc-blue);
	background: rgba(0, 180, 255, 0.08);
	color: var(--nc-blue-700);
}

/* Checkbox / radio */
.nc-choice {
	display: flex;
	align-items: flex-start;
	gap: 0.7rem;
	min-height: var(--nc-tap);
	padding: 0.55rem 0;
	font-size: var(--nc-text-sm);
	line-height: 1.5;
	cursor: pointer;
}

.nc-choice input[type="checkbox"],
.nc-choice input[type="radio"] {
	width: 20px;
	height: 20px;
	margin: 0.15rem 0 0;
	flex: none;
	accent-color: var(--nc-blue);
	cursor: pointer;
}

/* Card-style selectable option used by the quote wizard. */
.nc-option-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
	gap: var(--nc-space-3);
}

.nc-option {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	min-height: var(--nc-tap);
	padding: var(--nc-space-4) var(--nc-space-5);
	border: 1px solid var(--nc-border-strong);
	border-radius: var(--nc-radius);
	background: var(--nc-white);
	cursor: pointer;
	transition: border-color var(--nc-duration) var(--nc-ease), background-color var(--nc-duration) var(--nc-ease);
}

.nc-option:hover {
	border-color: var(--nc-blue);
}

.nc-option input {
	margin-top: 0.2rem;
	flex: none;
	accent-color: var(--nc-blue);
	width: 20px;
	height: 20px;
}

.nc-option-title {
	display: block;
	font-size: var(--nc-text-sm);
	font-weight: 650;
}

.nc-option-desc {
	display: block;
	margin-top: 0.15rem;
	font-size: var(--nc-text-xs);
	color: var(--nc-text-muted);
	line-height: 1.45;
}

.nc-option:has(input:checked),
.nc-option.is-selected {
	border-color: var(--nc-blue);
	background: rgba(0, 180, 255, 0.06);
}

.nc-option:has(input:focus-visible) {
	outline: 3px solid var(--nc-blue);
	outline-offset: 2px;
}

/* Form shell / panel */
.nc-form-panel {
	padding: clamp(1.5rem, 3vw, var(--nc-space-8));
	background: var(--nc-white);
	border: 1px solid var(--nc-border);
	border-radius: var(--nc-radius-xl);
	box-shadow: var(--nc-shadow);
}

.nc-section-dark .nc-form-panel {
	background: var(--nc-glass);
	border-color: var(--nc-dark-border);
	box-shadow: none;
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}

.nc-section-dark .nc-label,
.nc-section-dark .nc-field > label {
	color: var(--nc-dark-text);
}

.nc-section-dark .nc-option {
	background: rgba(255, 255, 255, 0.03);
	border-color: var(--nc-dark-border-strong);
	color: var(--nc-dark-text);
}

.nc-section-dark .nc-option-desc,
.nc-section-dark .nc-hint {
	color: var(--nc-slate-400);
}

/* --- Quote wizard --- */

.nc-quote {
	position: relative;
}

.nc-quote-progress {
	margin-bottom: var(--nc-space-7);
}

.nc-quote-progress-bar {
	position: relative;
	height: 6px;
	border-radius: var(--nc-radius-pill);
	background: var(--nc-gray-200);
	overflow: hidden;
}

.nc-section-dark .nc-quote-progress-bar {
	background: rgba(255, 255, 255, 0.12);
}

.nc-quote-progress-fill {
	position: absolute;
	inset-block: 0;
	left: 0;
	width: 0;
	border-radius: inherit;
	background: linear-gradient(90deg, var(--nc-blue), var(--nc-orange));
	transition: width var(--nc-duration-slow) var(--nc-ease);
}

.nc-quote-progress-meta {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--nc-space-4);
	margin-bottom: var(--nc-space-3);
	font-size: var(--nc-text-xs);
	font-weight: 650;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--nc-text-muted);
}

/* Step indicator list */
.nc-quote-steps {
	list-style: none;
	margin: 0 0 var(--nc-space-7);
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--nc-space-2) var(--nc-space-5);
}

.nc-quote-step-indicator {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	font-size: var(--nc-text-xs);
	font-weight: 650;
	color: var(--nc-text-muted);
}

.nc-quote-step-indicator .nc-quote-step-num {
	display: grid;
	place-items: center;
	width: 28px;
	height: 28px;
	flex: none;
	border-radius: 50%;
	border: 1px solid var(--nc-border-strong);
	background: var(--nc-bg);
	font-size: var(--nc-text-xs);
	line-height: 1;
}

.nc-quote-step-indicator.is-active {
	color: var(--nc-text);
}

.nc-quote-step-indicator.is-active .nc-quote-step-num {
	border-color: var(--nc-blue);
	background: rgba(0, 180, 255, 0.12);
	color: var(--nc-blue-700);
}

.nc-quote-step-indicator.is-complete .nc-quote-step-num {
	border-color: var(--nc-success);
	background: rgba(21, 179, 122, 0.14);
	color: #0d7350;
}

/* Steps */
.nc-quote-step {
	display: none;
}

.nc-quote-step.is-active {
	display: block;
	animation: nc-fade-in var(--nc-duration-slow) var(--nc-ease) both;
}

/* Without JS every step is visible and the form still submits. */
.nc-quote:not(.is-enhanced) .nc-quote-step {
	display: block;
	margin-bottom: var(--nc-space-8);
}

.nc-quote:not(.is-enhanced) .nc-quote-nav-prev,
.nc-quote:not(.is-enhanced) .nc-quote-nav-next,
.nc-quote:not(.is-enhanced) .nc-quote-progress,
.nc-quote:not(.is-enhanced) .nc-quote-steps {
	display: none;
}

.nc-quote-step-header {
	margin-bottom: var(--nc-space-6);
}

.nc-quote-step-title {
	font-size: var(--nc-h3);
	margin-bottom: var(--nc-space-2);
}

.nc-quote-step-text {
	color: var(--nc-text-muted);
	font-size: var(--nc-text-sm);
	margin: 0;
}

.nc-quote-nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--nc-space-3);
	margin-top: var(--nc-space-7);
	padding-top: var(--nc-space-5);
	border-top: 1px solid var(--nc-border);
}

.nc-quote-nav-next,
.nc-quote-nav-submit {
	margin-left: auto;
}

.nc-quote-nav-prev[hidden],
.nc-quote-nav-next[hidden],
.nc-quote-nav-submit[hidden] {
	display: none;
}

.nc-quote-review {
	display: grid;
	gap: var(--nc-space-3);
	margin-bottom: var(--nc-space-6);
	padding: var(--nc-space-5);
	border: 1px solid var(--nc-border);
	border-radius: var(--nc-radius);
	background: var(--nc-bg-alt);
	font-size: var(--nc-text-sm);
}

.nc-quote-review-row {
	display: grid;
	grid-template-columns: minmax(0, 12rem) minmax(0, 1fr);
	gap: var(--nc-space-3);
	padding-bottom: var(--nc-space-3);
	border-bottom: 1px solid var(--nc-border);
}

.nc-quote-review-row:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

.nc-quote-review-label {
	font-weight: 650;
	color: var(--nc-text-muted);
}

.nc-quote-review-value {
	min-width: 0;
	overflow-wrap: anywhere;
}

.nc-quote-status {
	margin-top: var(--nc-space-5);
}

.nc-quote-status:empty {
	margin-top: 0;
}

.nc-is-submitting {
	pointer-events: none;
	opacity: 0.7;
}

@keyframes nc-fade-in {
	from {
		opacity: 0;
		transform: translateY(6px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

/* Search form */
.nc-search-form {
	display: flex;
	gap: var(--nc-space-2);
}

.nc-search-form .nc-input,
.nc-search-form input[type="search"] {
	flex: 1 1 auto;
	min-width: 0;
}

/* ==========================================================================
   17. Breadcrumbs
   ========================================================================== */

.nc-breadcrumbs {
	font-size: var(--nc-text-xs);
	color: var(--nc-text-muted);
}

.nc-breadcrumbs ol,
.nc-breadcrumbs-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem;
}

.nc-breadcrumbs li {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	min-width: 0;
}

.nc-breadcrumbs li:not(:last-child)::after {
	content: "/";
	color: var(--nc-slate-400);
}

.nc-breadcrumbs a {
	color: inherit;
	text-decoration: none;
}

.nc-breadcrumbs a:hover {
	color: var(--nc-blue-700);
	text-decoration: underline;
}

.nc-breadcrumbs [aria-current="page"] {
	color: var(--nc-text);
	font-weight: 600;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 24ch;
}

.nc-page-hero .nc-breadcrumbs {
	margin-bottom: var(--nc-space-5);
	color: var(--nc-slate-400);
}

.nc-page-hero .nc-breadcrumbs a:hover {
	color: #7fdcff;
}

.nc-page-hero .nc-breadcrumbs [aria-current="page"] {
	color: var(--nc-dark-text);
}

/* ==========================================================================
   18. Blog, archive & article
   ========================================================================== */

.nc-archive-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: var(--nc-space-9);
	align-items: start;
}

.nc-archive-layout-full {
	grid-template-columns: minmax(0, 1fr);
}

.nc-archive-header {
	margin-bottom: var(--nc-space-8);
}

.nc-archive-count {
	font-size: var(--nc-text-sm);
	color: var(--nc-text-muted);
}

.nc-archive-filters {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nc-space-2);
	margin-bottom: var(--nc-space-7);
	padding-bottom: var(--nc-space-5);
	border-bottom: 1px solid var(--nc-border);
}

.nc-filter-chip {
	display: inline-flex;
	align-items: center;
	min-height: 38px;
	padding: 0.4rem 0.95rem;
	border: 1px solid var(--nc-border-strong);
	border-radius: var(--nc-radius-pill);
	background: var(--nc-bg);
	color: var(--nc-text-muted);
	font-size: var(--nc-text-xs);
	font-weight: 650;
	text-decoration: none;
	transition: border-color var(--nc-duration) var(--nc-ease), color var(--nc-duration) var(--nc-ease);
}

.nc-filter-chip:hover {
	border-color: var(--nc-blue);
	color: var(--nc-blue-700);
}

.nc-filter-chip.is-active,
.nc-filter-chip[aria-current="page"] {
	background: var(--nc-ink);
	border-color: var(--nc-ink);
	color: var(--nc-white);
}

.nc-post-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr));
	gap: var(--nc-space-6);
}

.nc-post-card {
	display: flex;
	flex-direction: column;
	gap: var(--nc-space-3);
	overflow: hidden;
	background: var(--nc-bg);
	border: 1px solid var(--nc-border);
	border-radius: var(--nc-radius-lg);
	transition: border-color var(--nc-duration) var(--nc-ease), box-shadow var(--nc-duration-slow) var(--nc-ease), transform var(--nc-duration-slow) var(--nc-ease);
}

.nc-post-card:hover {
	border-color: var(--nc-border-strong);
	box-shadow: var(--nc-shadow);
	transform: translateY(-2px);
}

.nc-post-card-thumb {
	display: block;
	aspect-ratio: 16 / 9;
	background: var(--nc-gray-100);
	overflow: hidden;
}

.nc-post-card-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--nc-duration-slow) var(--nc-ease);
}

.nc-post-card:hover .nc-post-card-thumb img {
	transform: scale(1.03);
}

.nc-post-card-body {
	display: flex;
	flex-direction: column;
	gap: var(--nc-space-3);
	padding: var(--nc-space-5) var(--nc-space-6) var(--nc-space-6);
	flex: 1 1 auto;
}

.nc-post-card-title {
	font-size: var(--nc-text-xl);
	margin: 0;
	line-height: 1.3;
}

.nc-post-card-title a {
	color: inherit;
	text-decoration: none;
}

.nc-post-card-title a:hover {
	color: var(--nc-blue-700);
}

.nc-post-card-excerpt {
	margin: 0;
	font-size: var(--nc-text-sm);
	color: var(--nc-text-muted);
}

.nc-post-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem 0.85rem;
	font-size: var(--nc-text-xs);
	color: var(--nc-text-muted);
	letter-spacing: 0.02em;
}

.nc-post-meta a {
	color: inherit;
	text-decoration: none;
}

.nc-post-meta a:hover {
	color: var(--nc-blue-700);
}

.nc-post-meta-sep::before {
	content: "\2022";
	color: var(--nc-slate-400);
}

/* Single article */
.nc-article {
	max-width: 760px;
}

.nc-article-header {
	margin-bottom: var(--nc-space-7);
}

.nc-article-title {
	font-size: clamp(2rem, 4vw, 3rem);
	margin-bottom: var(--nc-space-4);
}

.nc-article-featured {
	margin-bottom: var(--nc-space-8);
	border-radius: var(--nc-radius-lg);
	overflow: hidden;
	background: var(--nc-gray-100);
}

.nc-article-content > * + * {
	margin-top: var(--nc-space-5);
}

.nc-article-content h2 {
	margin-top: var(--nc-space-8);
	font-size: 1.9rem;
}

.nc-article-content h3 {
	margin-top: var(--nc-space-7);
	font-size: 1.4rem;
}

.nc-article-content h4 {
	margin-top: var(--nc-space-6);
	font-size: var(--nc-text-xl);
}

.nc-article-content ul,
.nc-article-content ol {
	padding-left: 1.35rem;
}

.nc-article-content li + li {
	margin-top: 0.5rem;
}

.nc-article-content img,
.nc-article-content figure {
	border-radius: var(--nc-radius);
	overflow: hidden;
}

.nc-article-content figcaption {
	margin-top: var(--nc-space-3);
	font-size: var(--nc-text-xs);
	color: var(--nc-text-muted);
	text-align: center;
}

.nc-article-content table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--nc-text-sm);
	display: block;
	overflow-x: auto;
}

.nc-article-footer {
	margin-top: var(--nc-space-8);
	padding-top: var(--nc-space-6);
	border-top: 1px solid var(--nc-border);
	display: grid;
	gap: var(--nc-space-5);
}

.nc-tag-list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nc-space-2);
	list-style: none;
	margin: 0;
	padding: 0;
}

.nc-tag-list a {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	padding: 0.25rem 0.75rem;
	border: 1px solid var(--nc-border);
	border-radius: var(--nc-radius-pill);
	background: var(--nc-bg-alt);
	color: var(--nc-text-muted);
	font-size: var(--nc-text-xs);
	font-weight: 600;
	text-decoration: none;
}

.nc-tag-list a:hover {
	border-color: var(--nc-blue);
	color: var(--nc-blue-700);
}

.nc-share-list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nc-space-2);
	list-style: none;
	margin: 0;
	padding: 0;
}

.nc-share-list a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--nc-tap);
	height: var(--nc-tap);
	border: 1px solid var(--nc-border);
	border-radius: 50%;
	color: var(--nc-text-muted);
}

.nc-share-list a:hover {
	border-color: var(--nc-blue);
	color: var(--nc-blue-700);
}

/* Table of contents */
.nc-toc {
	padding: var(--nc-space-5);
	border: 1px solid var(--nc-border);
	border-radius: var(--nc-radius);
	background: var(--nc-bg-alt);
	font-size: var(--nc-text-sm);
}

.nc-toc-title {
	margin: 0 0 var(--nc-space-3);
	font-size: var(--nc-text-xs);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--nc-text-muted);
}

.nc-toc ol,
.nc-toc ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.4rem;
}

.nc-toc a {
	color: var(--nc-text);
	text-decoration: none;
}

.nc-toc a:hover {
	color: var(--nc-blue-700);
	text-decoration: underline;
}

/* Sidebar / widgets */
.nc-sidebar {
	display: grid;
	gap: var(--nc-space-6);
	position: sticky;
	top: calc(var(--nc-header-h) + var(--nc-space-5));
	min-width: 0;
}

.nc-widget {
	padding: var(--nc-space-5);
	border: 1px solid var(--nc-border);
	border-radius: var(--nc-radius-lg);
	background: var(--nc-bg);
}

.nc-widget-title,
.nc-widget .widget-title {
	margin: 0 0 var(--nc-space-4);
	font-size: var(--nc-text-base);
	font-weight: 700;
	letter-spacing: -0.01em;
}

.nc-widget ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.35rem;
	font-size: var(--nc-text-sm);
}

.nc-widget li a {
	display: block;
	padding: 0.35rem 0;
	color: var(--nc-text);
	text-decoration: none;
}

.nc-widget li a:hover {
	color: var(--nc-blue-700);
}

/* Pagination */
.nc-pagination {
	margin-top: var(--nc-space-9);
	padding-top: var(--nc-space-6);
	border-top: 1px solid var(--nc-border);
}

.nc-pagination .nav-links,
.nc-pagination-list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--nc-space-2);
	list-style: none;
	margin: 0;
	padding: 0;
}

.nc-pagination a,
.nc-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: var(--nc-tap);
	min-height: var(--nc-tap);
	padding: 0 0.85rem;
	border: 1px solid var(--nc-border);
	border-radius: var(--nc-radius-sm);
	color: var(--nc-text);
	font-size: var(--nc-text-sm);
	font-weight: 650;
	text-decoration: none;
}

.nc-pagination a:hover {
	border-color: var(--nc-blue);
	color: var(--nc-blue-700);
}

.nc-pagination .page-numbers.current {
	background: var(--nc-ink);
	border-color: var(--nc-ink);
	color: var(--nc-white);
}

.nc-pagination .page-numbers.dots {
	border-color: transparent;
}

/* Post navigation (prev/next single) */
.nc-post-nav {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--nc-space-4);
	margin-top: var(--nc-space-9);
}

.nc-post-nav a {
	display: grid;
	gap: 0.3rem;
	padding: var(--nc-space-5);
	border: 1px solid var(--nc-border);
	border-radius: var(--nc-radius);
	text-decoration: none;
	color: var(--nc-text);
}

.nc-post-nav a:hover {
	border-color: var(--nc-blue);
}

.nc-post-nav-label {
	font-size: var(--nc-text-xs);
	font-weight: 650;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--nc-text-muted);
}

.nc-post-nav-next {
	text-align: right;
}

/* Comments */
.nc-comments {
	margin-top: var(--nc-space-10);
	padding-top: var(--nc-space-8);
	border-top: 1px solid var(--nc-border);
	max-width: 760px;
}

.nc-comment-list,
.nc-comments ol.comment-list {
	list-style: none;
	margin: 0 0 var(--nc-space-8);
	padding: 0;
	display: grid;
	gap: var(--nc-space-5);
}

.nc-comments .children {
	list-style: none;
	margin: var(--nc-space-5) 0 0;
	padding-left: var(--nc-space-6);
	border-left: 1px solid var(--nc-border);
	display: grid;
	gap: var(--nc-space-5);
}

.nc-comments article,
.nc-comment-body {
	padding: var(--nc-space-5);
	border: 1px solid var(--nc-border);
	border-radius: var(--nc-radius);
	background: var(--nc-bg-alt);
}

.nc-comments .avatar {
	border-radius: 50%;
}

/* ==========================================================================
   19. Legal & long-form documents
   ========================================================================== */

.nc-legal {
	max-width: var(--nc-container-narrow);
}

.nc-legal-meta {
	margin-bottom: var(--nc-space-7);
	padding-bottom: var(--nc-space-5);
	border-bottom: 1px solid var(--nc-border);
	font-size: var(--nc-text-sm);
	color: var(--nc-text-muted);
}

.nc-legal-content {
	counter-reset: nc-legal;
}

.nc-legal-content h2 {
	margin-top: var(--nc-space-8);
	font-size: 1.65rem;
	padding-top: var(--nc-space-5);
	border-top: 1px solid var(--nc-border);
}

.nc-legal-content h2:first-of-type {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

.nc-legal-content h3 {
	margin-top: var(--nc-space-6);
	font-size: var(--nc-text-xl);
}

.nc-legal-content p,
.nc-legal-content li {
	color: var(--nc-slate-600);
}

.nc-legal-content ul,
.nc-legal-content ol {
	padding-left: 1.35rem;
}

.nc-legal-content li + li {
	margin-top: 0.4rem;
}

.nc-legal-content a {
	overflow-wrap: anywhere;
}

.nc-legal-toc {
	margin-bottom: var(--nc-space-8);
}

/* ==========================================================================
   20. FAQ / accordion
   ========================================================================== */

.nc-faq {
	display: grid;
	gap: var(--nc-space-3);
	max-width: 880px;
}

.nc-faq-center {
	margin-inline: auto;
}

.nc-faq-item {
	border: 1px solid var(--nc-border);
	border-radius: var(--nc-radius);
	background: var(--nc-bg);
	overflow: hidden;
	transition: border-color var(--nc-duration) var(--nc-ease);
}

.nc-faq-item[open],
.nc-faq-item.is-open {
	border-color: var(--nc-border-strong);
}

.nc-faq-question,
.nc-faq-item > summary {
	display: flex;
	align-items: center;
	gap: var(--nc-space-4);
	width: 100%;
	min-height: var(--nc-tap);
	padding: var(--nc-space-5) var(--nc-space-6);
	margin: 0;
	border: 0;
	background: none;
	color: var(--nc-text);
	font-family: var(--nc-font-display);
	font-size: var(--nc-text-lg);
	font-weight: 650;
	line-height: 1.4;
	text-align: left;
	cursor: pointer;
	list-style: none;
}

.nc-faq-item > summary::-webkit-details-marker {
	display: none;
}

.nc-faq-question:hover,
.nc-faq-item > summary:hover {
	color: var(--nc-blue-700);
}

.nc-faq-icon {
	position: relative;
	width: 20px;
	height: 20px;
	margin-left: auto;
	flex: none;
}

.nc-faq-icon::before,
.nc-faq-icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 14px;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	transform: translate(-50%, -50%);
	transition: transform var(--nc-duration) var(--nc-ease), opacity var(--nc-duration) var(--nc-ease);
}

.nc-faq-icon::after {
	transform: translate(-50%, -50%) rotate(90deg);
}

.nc-faq-question[aria-expanded="true"] .nc-faq-icon::after,
.nc-faq-item[open] .nc-faq-icon::after {
	opacity: 0;
	transform: translate(-50%, -50%) rotate(0deg);
}

.nc-faq-answer {
	padding: 0 var(--nc-space-6) var(--nc-space-6);
	font-size: var(--nc-text-sm);
	color: var(--nc-text-muted);
	line-height: 1.65;
}

.nc-faq-answer > *:last-child {
	margin-bottom: 0;
}

.nc-faq-answer[hidden] {
	display: none;
}

.nc-section-dark .nc-faq-item {
	background: var(--nc-glass);
	border-color: var(--nc-dark-border);
}

.nc-section-dark .nc-faq-question,
.nc-section-dark .nc-faq-item > summary {
	color: var(--nc-white);
}

/* ==========================================================================
   21. Footer
   ========================================================================== */

.nc-footer {
	background: var(--nc-dark);
	color: var(--nc-dark-muted);
	border-top: 1px solid var(--nc-dark-border);
	font-size: var(--nc-text-sm);
}

.nc-footer-main {
	padding-block: var(--nc-space-10) var(--nc-space-8);
}

.nc-footer-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr));
	gap: var(--nc-space-8) var(--nc-space-6);
}

.nc-footer-brand {
	max-width: 34ch;
}

.nc-footer-brand .nc-branding {
	margin-bottom: var(--nc-space-4);
	color: var(--nc-white);
}

.nc-footer-brand p {
	color: var(--nc-dark-muted);
	font-size: var(--nc-text-sm);
	margin-bottom: var(--nc-space-5);
}

.nc-footer-heading {
	margin: 0 0 var(--nc-space-4);
	color: var(--nc-white);
	font-size: var(--nc-text-xs);
	font-weight: 700;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.nc-footer-list,
.nc-footer ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.15rem;
}

.nc-footer a {
	color: var(--nc-dark-muted);
	text-decoration: none;
}

.nc-footer a:hover {
	color: #7fdcff;
}

.nc-footer-list a {
	display: inline-flex;
	align-items: center;
	min-height: 38px;
	padding-block: 0.2rem;
}

.nc-footer-contact {
	display: grid;
	gap: var(--nc-space-3);
	margin-bottom: var(--nc-space-5);
}

.nc-footer-contact a,
.nc-footer-contact span {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	min-height: 38px;
}

.nc-footer-contact svg {
	width: 18px;
	height: 18px;
	flex: none;
	margin-top: 0.15rem;
	color: var(--nc-blue);
}

.nc-social-list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nc-space-2);
	list-style: none;
	margin: 0;
	padding: 0;
}

.nc-social-list a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--nc-tap);
	height: var(--nc-tap);
	border: 1px solid var(--nc-dark-border-strong);
	border-radius: 50%;
	color: var(--nc-dark-text);
	transition: border-color var(--nc-duration) var(--nc-ease), background-color var(--nc-duration) var(--nc-ease);
}

.nc-social-list a:hover {
	border-color: var(--nc-blue);
	background: var(--nc-glass-strong);
	color: var(--nc-white);
}

.nc-social-list svg {
	width: 18px;
	height: 18px;
}

.nc-footer-bottom {
	padding-block: var(--nc-space-5);
	border-top: 1px solid var(--nc-dark-border);
}

.nc-footer-bottom-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--nc-space-4);
	font-size: var(--nc-text-xs);
	color: var(--nc-slate-400);
}

.nc-footer-legal-links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nc-space-2) var(--nc-space-5);
	list-style: none;
	margin: 0;
	padding: 0;
}

.nc-footer-legal-links a {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
}

/* ==========================================================================
   22. Cookie banner & floating WhatsApp
   ========================================================================== */

.nc-cookie-banner {
	position: fixed;
	left: 50%;
	bottom: var(--nc-space-5);
	z-index: var(--nc-z-cookie);
	width: min(760px, calc(100vw - 2rem));
	transform: translate(-50%, calc(100% + var(--nc-space-8)));
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--nc-space-5);
	padding: var(--nc-space-5) var(--nc-space-6);
	background: rgba(10, 23, 41, 0.97);
	border: 1px solid var(--nc-dark-border-strong);
	border-radius: var(--nc-radius-lg);
	box-shadow: 0 30px 70px -34px rgba(0, 0, 0, 0.9);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	color: var(--nc-dark-text);
	font-size: var(--nc-text-sm);
	visibility: hidden;
	transition: transform var(--nc-duration-slow) var(--nc-ease), visibility var(--nc-duration-slow) var(--nc-ease);
}

.nc-cookie-banner.is-visible {
	transform: translate(-50%, 0);
	visibility: visible;
}

.nc-cookie-banner[hidden] {
	display: none;
}

.nc-cookie-text {
	flex: 1 1 320px;
	min-width: 0;
	margin: 0;
	color: var(--nc-dark-muted);
	line-height: 1.55;
}

.nc-cookie-text a {
	color: #7fdcff;
}

.nc-cookie-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nc-space-2);
	flex: none;
}

/* Floating WhatsApp button */
.nc-whatsapp-float {
	position: fixed;
	right: var(--nc-space-5);
	bottom: var(--nc-space-5);
	z-index: var(--nc-z-float);
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	min-height: 52px;
	padding: 0.75rem 1.1rem;
	border-radius: var(--nc-radius-pill);
	background: #1faf54;
	border: 1px solid rgba(255, 255, 255, 0.2);
	color: var(--nc-white);
	font-size: var(--nc-text-sm);
	font-weight: 650;
	text-decoration: none;
	box-shadow: 0 16px 36px -18px rgba(0, 0, 0, 0.55);
	transition: transform var(--nc-duration) var(--nc-ease), background-color var(--nc-duration) var(--nc-ease);
}

.nc-whatsapp-float:hover {
	background: #189646;
	color: var(--nc-white);
	transform: translateY(-2px);
}

.nc-whatsapp-float svg {
	width: 22px;
	height: 22px;
	flex: none;
}

.nc-whatsapp-float-label {
	white-space: nowrap;
}

/* Lift the floating button while the cookie banner is on screen. */
body.nc-cookie-visible .nc-whatsapp-float {
	bottom: calc(var(--nc-space-5) + 96px);
}

/* Back to top */
.nc-back-to-top {
	position: fixed;
	left: var(--nc-space-5);
	bottom: var(--nc-space-5);
	z-index: var(--nc-z-float);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--nc-tap);
	height: var(--nc-tap);
	border: 1px solid var(--nc-border-strong);
	border-radius: 50%;
	background: var(--nc-white);
	color: var(--nc-ink);
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--nc-duration) var(--nc-ease), visibility var(--nc-duration) var(--nc-ease);
}

.nc-back-to-top.is-visible {
	opacity: 1;
	visibility: visible;
}

/* ==========================================================================
   23. WordPress core classes
   ========================================================================== */

.alignleft {
	float: left;
	margin: 0.35rem var(--nc-space-5) var(--nc-space-4) 0;
}

.alignright {
	float: right;
	margin: 0.35rem 0 var(--nc-space-4) var(--nc-space-5);
}

.aligncenter {
	display: block;
	margin-inline: auto;
}

.alignwide {
	width: min(100vw - 3rem, 1140px);
	margin-inline: auto;
}

.alignfull {
	width: 100%;
	max-width: none;
}

.wp-caption {
	max-width: 100%;
}

.wp-caption-text,
.wp-element-caption {
	margin-top: var(--nc-space-3);
	font-size: var(--nc-text-xs);
	color: var(--nc-text-muted);
	text-align: center;
}

.sticky .nc-post-card-title::after {
	content: " \2605";
	color: var(--nc-orange);
}

.bypostauthor > article {
	border-color: var(--nc-blue);
}

.gallery {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr));
	gap: var(--nc-space-4);
	margin-bottom: var(--nc-space-5);
}

.gallery-item {
	margin: 0;
}

.gallery-item img {
	border-radius: var(--nc-radius-sm);
	width: 100%;
}

.wp-block-image img {
	border-radius: var(--nc-radius);
}

.wp-block-button__link {
	border-radius: var(--nc-radius-pill);
}

.post-password-form {
	display: grid;
	gap: var(--nc-space-3);
	max-width: 420px;
}

.post-password-form input[type="password"] {
	min-height: var(--nc-tap);
	padding: 0.7rem 0.95rem;
	border: 1px solid var(--nc-border-strong);
	border-radius: var(--nc-radius-sm);
	width: 100%;
}

/* WordPress admin bar offset for the sticky header. */
body.admin-bar .nc-header {
	top: 32px;
}

/* ==========================================================================
   24. Utilities
   ========================================================================== */

.nc-text-center { text-align: center; }
.nc-text-left { text-align: left; }
.nc-text-right { text-align: right; }
.nc-text-muted { color: var(--nc-text-muted); }
.nc-text-sm { font-size: var(--nc-text-sm); }
.nc-text-xs { font-size: var(--nc-text-xs); }
.nc-text-lg { font-size: var(--nc-text-lg); }
.nc-text-balance { text-wrap: balance; }
.nc-text-blue { color: var(--nc-blue-700); }
.nc-text-orange { color: var(--nc-orange-600); }
.nc-text-white { color: var(--nc-white); }
.nc-uppercase { text-transform: uppercase; letter-spacing: 0.1em; }
.nc-nowrap { white-space: nowrap; }
.nc-break-word { overflow-wrap: anywhere; }

.nc-mx-auto { margin-inline: auto; }
.nc-mt-0 { margin-top: 0; }
.nc-mt-3 { margin-top: var(--nc-space-4); }
.nc-mt-5 { margin-top: var(--nc-space-6); }
.nc-mt-7 { margin-top: var(--nc-space-8); }
.nc-mb-0 { margin-bottom: 0; }
.nc-mb-3 { margin-bottom: var(--nc-space-4); }
.nc-mb-5 { margin-bottom: var(--nc-space-6); }
.nc-mb-7 { margin-bottom: var(--nc-space-8); }

.nc-full-width { width: 100%; }
.nc-max-w-prose { max-width: 68ch; }
.nc-relative { position: relative; }
.nc-overflow-hidden { overflow: hidden; }
.nc-hidden { display: none !important; }
.nc-flex { display: flex; }
.nc-items-center { align-items: center; }
.nc-justify-between { justify-content: space-between; }
.nc-gap-3 { gap: var(--nc-space-4); }

.nc-divider {
	height: 1px;
	border: 0;
	margin: var(--nc-space-8) 0;
	background: var(--nc-border);
}

.nc-rounded { border-radius: var(--nc-radius); }
.nc-rounded-lg { border-radius: var(--nc-radius-lg); }
.nc-border { border: 1px solid var(--nc-border); }

.nc-glass-panel {
	background: var(--nc-glass);
	border: 1px solid var(--nc-dark-border);
	border-radius: var(--nc-radius-lg);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}

.nc-aspect-video {
	aspect-ratio: 16 / 9;
	overflow: hidden;
}

.nc-aspect-square {
	aspect-ratio: 1 / 1;
	overflow: hidden;
}

.nc-hide-desktop { display: none; }

/* Table wrapper for long data tables. */
.nc-table-scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border: 1px solid var(--nc-border);
	border-radius: var(--nc-radius);
}

.nc-table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--nc-text-sm);
	margin: 0;
}

.nc-table th,
.nc-table td {
	padding: 0.85rem 1rem;
	text-align: left;
	border-bottom: 1px solid var(--nc-border);
	vertical-align: top;
}

.nc-table th {
	font-weight: 650;
	font-size: var(--nc-text-xs);
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--nc-text-muted);
	background: var(--nc-bg-alt);
	white-space: nowrap;
}

.nc-table tr:last-child td {
	border-bottom: 0;
}

/* Content wrapper for the whole site. */
.nc-site {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.nc-main {
	flex: 1 1 auto;
}

/* 404 / empty states */
.nc-empty-state {
	max-width: 560px;
	margin-inline: auto;
	text-align: center;
	padding-block: var(--nc-space-9);
}

.nc-empty-state-code {
	display: block;
	font-family: var(--nc-font-display);
	font-size: clamp(4rem, 12vw, 8rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.04em;
	margin-bottom: var(--nc-space-5);
	background: linear-gradient(120deg, var(--nc-blue), var(--nc-orange));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

/* ==========================================================================
   25. Responsive: 1200 / 1024 / 768 / 480
   ========================================================================== */

@media (max-width: 1200px) {
	:root {
		--nc-h1: 2.875rem;
		--nc-h2: 2.25rem;
		--nc-display: 3.5rem;
		--nc-section-y: 5.5rem;
		--nc-gutter: 1.5rem;
	}

	.nc-mega-menu {
		width: calc(100vw - 3rem);
		padding: var(--nc-space-6);
	}

	.nc-mega-menu-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: var(--nc-space-5);
	}

	.nc-footer-grid {
		grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
	}

	.nc-archive-layout {
		grid-template-columns: minmax(0, 1fr) 290px;
		gap: var(--nc-space-7);
	}

	.nc-split {
		gap: var(--nc-space-7);
	}
}

@media (max-width: 1024px) {
	:root {
		--nc-h1: 2.5rem;
		--nc-h2: 2rem;
		--nc-h3: 1.625rem;
		--nc-display: 3rem;
		--nc-section-y: 4.5rem;
	}

	/* Swap desktop nav for the drawer. */
	.nc-nav,
	.nc-header-actions .nc-header-phone,
	.nc-header-utility {
		display: none;
	}

	.nc-menu-toggle {
		display: inline-flex;
	}

	.nc-header-actions {
		margin-left: auto;
	}

	.nc-header-actions .nc-button {
		display: none;
	}

	.nc-header-actions .nc-button-primary {
		display: inline-flex;
	}

	.nc-hide-desktop {
		display: revert;
	}

	.nc-hero-inner {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--nc-space-8);
	}

	.nc-hero-media {
		max-width: 560px;
	}

	.nc-split,
	.nc-split-narrow-media {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--nc-space-7);
	}

	.nc-split-reverse > *:first-child {
		order: 0;
	}

	.nc-grid-4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.nc-grid-3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.nc-col-4,
	.nc-col-5,
	.nc-col-6,
	.nc-col-7,
	.nc-col-8 {
		grid-column: span 12;
	}

	.nc-archive-layout {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--nc-space-8);
	}

	.nc-sidebar {
		position: static;
		top: auto;
		grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
	}

	.nc-workflow-step:not(:last-child)::after {
		display: none;
	}

	.nc-funnel-stage-2,
	.nc-funnel-stage-3,
	.nc-funnel-stage-4,
	.nc-funnel-stage-5 {
		width: 100%;
	}

	.nc-ecosystem-stage {
		max-width: 520px;
	}
}

@media (max-width: 768px) {
	:root {
		--nc-h1: 2.125rem;
		--nc-h2: 1.75rem;
		--nc-h3: 1.5rem;
		--nc-h4: 1.3rem;
		--nc-display: 2.5rem;
		--nc-text-xl: 1.25rem;
		--nc-section-y: 3.75rem;
		--nc-gutter: 1.25rem;
		--nc-header-h: 66px;
	}

	.nc-grid-2,
	.nc-grid-3,
	.nc-grid-4 {
		grid-template-columns: minmax(0, 1fr);
	}

	.nc-grid {
		gap: var(--nc-space-5);
	}

	.nc-section-header {
		margin-bottom: var(--nc-space-7);
	}

	.nc-card {
		padding: var(--nc-space-5);
	}

	.nc-card-media {
		margin: calc(var(--nc-space-5) * -1) calc(var(--nc-space-5) * -1) 0;
	}

	.nc-card-accent-top::before {
		inset-inline: var(--nc-space-5);
	}

	.nc-form-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--nc-space-4);
	}

	.nc-quote-review-row {
		grid-template-columns: minmax(0, 1fr);
		gap: 0.2rem;
	}

	.nc-quote-steps {
		gap: var(--nc-space-2) var(--nc-space-4);
	}

	/* Keep only the active + neighbouring indicators readable on phones. */
	.nc-quote-step-indicator .nc-quote-step-label {
		display: none;
	}

	.nc-quote-step-indicator.is-active .nc-quote-step-label {
		display: inline;
	}

	.nc-footer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--nc-space-7) var(--nc-space-5);
	}

	.nc-footer-brand {
		grid-column: 1 / -1;
		max-width: none;
	}

	.nc-footer-main {
		padding-block: var(--nc-space-8) var(--nc-space-7);
	}

	.nc-post-nav {
		grid-template-columns: minmax(0, 1fr);
	}

	.nc-post-nav-next {
		text-align: left;
	}

	.nc-comments .children {
		padding-left: var(--nc-space-4);
	}

	.nc-cta-band {
		flex-direction: column;
		align-items: flex-start;
		text-align: left;
	}

	/* Ecosystem diagram becomes a simple stacked list. */
	.nc-ecosystem-stage {
		aspect-ratio: auto;
		max-width: none;
		min-height: 0;
	}

	.nc-ecosystem-connections {
		display: none;
	}

	.nc-node {
		position: static;
		transform: none;
		display: flex;
		width: 100%;
		justify-content: flex-start;
		border-radius: var(--nc-radius);
		margin-bottom: var(--nc-space-2);
		white-space: normal;
	}

	.nc-node:hover,
	.nc-node:focus-visible {
		transform: none;
	}

	.nc-workflow-timeline {
		padding-left: var(--nc-space-6);
	}

	.nc-cookie-banner {
		left: var(--nc-space-3);
		right: var(--nc-space-3);
		bottom: var(--nc-space-3);
		width: auto;
		transform: translateY(calc(100% + var(--nc-space-8)));
		padding: var(--nc-space-5);
		gap: var(--nc-space-4);
	}

	.nc-cookie-banner.is-visible {
		transform: translateY(0);
	}

	.nc-cookie-actions .nc-button {
		flex: 1 1 auto;
	}

	.nc-whatsapp-float {
		right: var(--nc-space-4);
		bottom: var(--nc-space-4);
	}

	.nc-whatsapp-float-label {
		display: none;
	}

	.nc-whatsapp-float {
		width: 52px;
		padding: 0;
		justify-content: center;
	}

	body.nc-cookie-visible .nc-whatsapp-float {
		bottom: calc(var(--nc-space-4) + 128px);
	}

	.nc-back-to-top {
		display: none;
	}

	.alignleft,
	.alignright {
		float: none;
		margin: 0 0 var(--nc-space-4);
	}

	.alignwide {
		width: 100%;
	}
}

@media (max-width: 480px) {
	:root {
		--nc-h1: 1.9rem;
		--nc-h2: 1.55rem;
		--nc-h3: 1.35rem;
		--nc-display: 2.1rem;
		--nc-text-base: 1rem;
		--nc-text-lg: 1.0625rem;
		--nc-section-y: 3rem;
		--nc-gutter: 1rem;
		--nc-radius-lg: 16px;
		--nc-radius-xl: 20px;
	}

	.nc-site-tagline {
		display: none;
	}

	.nc-branding img,
	.nc-branding svg,
	.nc-logo-mark {
		width: 32px;
		height: 32px;
	}

	.nc-hero-actions,
	.nc-button-group {
		flex-direction: column;
		align-items: stretch;
	}

	.nc-hero-actions .nc-button,
	.nc-button-group > .nc-button {
		width: 100%;
	}

	.nc-hero-meta {
		flex-direction: column;
		gap: var(--nc-space-3);
	}

	.nc-header-actions .nc-button-primary {
		display: none;
	}

	.nc-mobile-drawer {
		width: 100%;
		border-left: 0;
	}

	.nc-quote-nav {
		flex-direction: column-reverse;
		align-items: stretch;
	}

	.nc-quote-nav .nc-button {
		width: 100%;
		margin-left: 0;
	}

	.nc-form-panel {
		padding: var(--nc-space-5) var(--nc-space-4);
		border-radius: var(--nc-radius-lg);
	}

	.nc-footer-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.nc-footer-bottom-inner {
		flex-direction: column;
		align-items: flex-start;
	}

	.nc-option-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.nc-faq-question,
	.nc-faq-item > summary {
		padding: var(--nc-space-4);
		font-size: var(--nc-text-base);
	}

	.nc-faq-answer {
		padding: 0 var(--nc-space-4) var(--nc-space-5);
	}

	.nc-stats {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--nc-space-4);
	}

	.nc-cta-band {
		padding: var(--nc-space-6) var(--nc-space-5);
	}

	.nc-breadcrumbs [aria-current="page"] {
		max-width: 14ch;
	}

	pre {
		padding: var(--nc-space-4);
	}
}

/* Larger screens get a little more air. */
@media (min-width: 1440px) {
	:root {
		--nc-gutter: 2rem;
		--nc-section-y: 7.5rem;
	}
}

/* ==========================================================================
   26. Reduced motion, print, forced colors
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	.nc-button:hover,
	.nc-card-hover:hover,
	.nc-post-card:hover,
	.nc-whatsapp-float:hover,
	.nc-node:hover {
		transform: none;
	}

	.nc-post-card:hover .nc-post-card-thumb img {
		transform: none;
	}

	.nc-quote-step.is-active {
		animation: none;
	}
}

@media (forced-colors: active) {
	.nc-button,
	.nc-card,
	.nc-option,
	.nc-input,
	.nc-select,
	.nc-textarea {
		border: 1px solid ButtonBorder;
	}

	.nc-quote-progress-fill {
		background: Highlight;
	}

	:focus-visible {
		outline: 3px solid Highlight;
	}
}

@media print {
	.nc-header,
	.nc-footer,
	.nc-mobile-drawer,
	.nc-drawer-overlay,
	.nc-cookie-banner,
	.nc-whatsapp-float,
	.nc-back-to-top,
	.nc-skip-link,
	.nc-quote-nav,
	.nc-archive-filters,
	.nc-pagination {
		display: none !important;
	}

	body {
		background: #fff;
		color: #000;
		font-size: 12pt;
	}

	.nc-section,
	.nc-section-dark,
	.nc-hero,
	.nc-page-hero {
		background: #fff !important;
		color: #000 !important;
		padding-block: 1rem;
	}

	.nc-section-dark h1,
	.nc-section-dark h2,
	.nc-section-dark h3,
	.nc-hero h1 {
		color: #000 !important;
	}

	.nc-card,
	.nc-quote-step {
		break-inside: avoid;
		box-shadow: none;
	}

	a {
		color: #000;
		text-decoration: underline;
	}
}

/* Flagship capabilities (software-house highlight row) */
.nc-flagship {
	border-block: 1px solid var(--nc-border, #e4e9f1);
	background: #fff;
}
.nc-flagship-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 1.5rem;
	border: 1px solid var(--nc-border, #e4e9f1);
	border-radius: 1rem;
	background: var(--nc-bg-alt, #f7f9fc);
	text-decoration: none;
	color: inherit;
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, background .25s ease;
}
.nc-flagship-card:hover {
	transform: translateY(-4px);
	border-color: rgba(0, 180, 255, .35);
	background: #fff;
	box-shadow: 0 16px 40px rgba(7, 17, 31, .1);
}
.nc-flagship-card__title {
	margin: 0;
	font-size: 1.15rem;
	color: var(--nc-dark, #07111f);
}
.nc-flagship-card__subtitle {
	margin: .35rem 0 0;
	font-weight: 700;
	font-size: .92rem;
}
.nc-flagship-card--blue .nc-flagship-card__subtitle { color: var(--nc-blue, #00b4ff); }
.nc-flagship-card--orange .nc-flagship-card__subtitle { color: var(--nc-orange, #ff6900); }
.nc-flagship-card__text {
	margin: .85rem 0 0;
	flex: 1;
	color: var(--nc-text-muted, #64748b);
	font-size: .95rem;
	line-height: 1.55;
}
.nc-flagship-card__action {
	margin-top: 1.15rem;
	font-weight: 700;
	font-size: .9rem;
	color: var(--nc-dark, #07111f);
}
.nc-flagship-card:hover .nc-flagship-card__action { color: var(--nc-blue, #00b4ff); }
@media (max-width: 1024px) {
	.nc-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.nc-grid--4 { grid-template-columns: 1fr; }
}

/* Hero ecosystem: markup uses the __svg / __label element names */
.nc-ecosystem {
	position: relative;
	width: 100%;
	max-width: 560px;
	margin-inline: auto;
	aspect-ratio: 1 / 1;
	overflow: visible;
}
.nc-ecosystem::before {
	content: "";
	position: absolute;
	inset: 8%;
	border: 1px solid rgba(0, 180, 255, 0.12);
	border-radius: 50%;
}
.nc-ecosystem::after {
	content: "";
	position: absolute;
	inset: 22%;
	border: 1px dashed rgba(0, 180, 255, 0.16);
	border-radius: 50%;
}
.nc-ecosystem__svg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: visible;
}
.nc-ecosystem__label {
	position: absolute;
	transform: translate(-50%, -50%);
	padding: 0.2rem 0.5rem;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 0.4rem;
	background: rgba(7, 17, 31, 0.82);
	color: rgba(255, 255, 255, 0.86);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	white-space: nowrap;
	line-height: 1.2;
}
@media (max-width: 640px) {
	.nc-ecosystem { max-width: 340px; }
	.nc-ecosystem__label { font-size: 0.58rem; padding: 0.15rem 0.35rem; }
}
