:root {
	--ngs-color-primary: #0B3C5D;
	--ngs-color-aqua: #26C6DA;
	--ngs-color-card: #FFFFFF;
	--ngs-color-accent: #F97316;
	--ngs-color-text: #2D2D2D;
	--ngs-container: 75rem;
	--ngs-radius-sm: 0.75rem;
	--ngs-radius-md: 1.25rem;
	--ngs-radius-lg: 2rem;
	--ngs-shadow-card: 0 1rem 2.6rem rgba(11, 60, 93, 0.14);
	--ngs-shadow-card-hover: 0 1.8rem 4rem rgba(11, 60, 93, 0.24);
}

body.ngs-page-has-blocks,
body.ngs-page-has-blocks .site-main,
body.ngs-page-has-blocks .entry-content,
body.ngs-page-has-blocks .ct-container-full {
	background: var(--ngs-color-aqua);
}

body.ngs-page-has-blocks .entry-content > * {
	margin-block-start: 0;
	margin-block-end: 0;
}

[class^="wp-block-nextgen-seo-"],
[class*=" wp-block-nextgen-seo-"] {
	box-sizing: border-box;
}

[class^="wp-block-nextgen-seo-"] *,
[class*=" wp-block-nextgen-seo-"] * {
	box-sizing: border-box;
}

.ngs-section-shell {
	position: relative;
	isolation: isolate;
	margin-block: 0;
	padding: clamp(3.75rem, 7vw, 7rem) clamp(1rem, 4vw, 2rem);
	background: var(--ngs-color-aqua);
	color: var(--ngs-color-text);
}

.ngs-section-shell--dark {
	background: var(--ngs-color-primary);
	color: var(--ngs-color-card);
}

.ngs-section-container {
	width: min(100%, var(--ngs-container));
	margin-inline: auto;
}

.ngs-section-header {
	max-width: none;
	width: 100%;
	margin-bottom: clamp(2rem, 5vw, 3.5rem);
}

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

.ngs-eyebrow {
	margin: 0 0 0.75rem;
	color: var(--ngs-color-accent);
	font-size: 0.8rem;
	font-weight: 900;
	letter-spacing: 0.15em;
	line-height: 1.4;
	text-transform: uppercase;
}

.ngs-section-shell--dark .ngs-eyebrow {
	color: var(--ngs-color-aqua);
}

.ngs-section-title {
	margin: 0;
	color: var(--ngs-color-primary);
	font-size: clamp(2rem, 5vw, 3.75rem);
	font-weight: 850;
	letter-spacing: -0.035em;
	line-height: 1.06;
}

.ngs-section-shell--dark .ngs-section-title {
	color: var(--ngs-color-card);
}

.ngs-section-description {
	max-width: none;
	width: 100%;
	margin: 1rem 0 0;
	font-size: clamp(1rem, 1.8vw, 1.125rem);
	line-height: 1.75;
}

.ngs-section-header--center .ngs-section-description {
	margin-inline: auto;
}

.ngs-card-surface {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	border: 2px solid var(--ngs-color-accent);
	border-radius: var(--ngs-radius-md);
	background: var(--ngs-color-card);
	color: var(--ngs-color-text);
	box-shadow: var(--ngs-shadow-card);
	transition: transform 260ms cubic-bezier(0.2, 0.75, 0.2, 1), box-shadow 260ms ease, border-color 260ms ease;
}

.ngs-card-surface::before {
	position: absolute;
	z-index: -1;
	inset: auto -4rem -4rem auto;
	width: 9rem;
	aspect-ratio: 1;
	border: 1.2rem solid rgba(38, 198, 218, 0.22);
	border-radius: 50%;
	content: "";
	transition: transform 360ms cubic-bezier(0.2, 0.75, 0.2, 1);
}

.ngs-card-surface::after {
	position: absolute;
	z-index: -1;
	inset: 0;
	background: linear-gradient(135deg, rgba(249, 115, 22, 0.11), transparent 48%, rgba(38, 198, 218, 0.12));
	content: "";
	opacity: 0;
	transition: opacity 260ms ease;
}

.ngs-card-surface:hover,
.ngs-card-surface:focus-within {
	border-color: var(--ngs-color-primary);
	box-shadow: var(--ngs-shadow-card-hover);
	transform: translate3d(0, -0.55rem, 0) rotate(-0.25deg);
}

.ngs-card-surface:hover::before,
.ngs-card-surface:focus-within::before {
	transform: translate(-1.1rem, -1rem) rotate(24deg) scale(1.08);
}

.ngs-card-surface:hover::after,
.ngs-card-surface:focus-within::after {
	opacity: 1;
}

.ngs-action {
	position: relative;
	isolation: isolate;
	display: inline-flex;
	overflow: hidden;
	min-height: 3.125rem;
	align-items: center;
	justify-content: center;
	gap: 0.65rem;
	padding: 0.8rem 1.35rem;
	border: 2px solid var(--ngs-color-accent);
	border-radius: 0.75rem;
	background: var(--ngs-color-accent);
	color: var(--ngs-color-card);
	font-weight: 800;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	box-shadow: 0 0.8rem 1.8rem rgba(11, 60, 93, 0.18);
	transition: transform 210ms ease, border-color 210ms ease, box-shadow 210ms ease;
}

.ngs-action::before {
	position: absolute;
	z-index: -1;
	inset: 0;
	background: var(--ngs-color-primary);
	content: "";
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 260ms cubic-bezier(0.2, 0.75, 0.2, 1);
}

.ngs-action::after {
	content: "→";
	transition: transform 210ms ease;
}

.ngs-action:hover,
.ngs-action:focus-visible {
	border-color: var(--ngs-color-aqua);
	color: var(--ngs-color-card);
	box-shadow: 0 1.1rem 2.4rem rgba(11, 60, 93, 0.28);
	transform: translateY(-0.25rem);
}

.ngs-action:hover::before,
.ngs-action:focus-visible::before {
	transform: scaleX(1);
	transform-origin: left;
}

.ngs-action:hover::after,
.ngs-action:focus-visible::after {
	transform: translateX(0.3rem);
}

.ngs-action:focus-visible,
.ngs-text-link:focus-visible,
.ngs-card-surface a:focus-visible,
summary:focus-visible {
	outline: 3px solid var(--ngs-color-aqua);
	outline-offset: 4px;
}

.ngs-text-link {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	color: var(--ngs-color-primary);
	font-weight: 850;
	text-decoration-thickness: 0.12em;
	text-underline-offset: 0.25em;
}

.ngs-text-link::after {
	content: "↗";
	transition: transform 180ms ease;
}

.ngs-text-link:hover {
	color: var(--ngs-color-accent);
}

.ngs-text-link:hover::after {
	transform: translate(0.18rem, -0.18rem);
}

.ngs-pill {
	display: inline-flex;
	align-items: center;
	min-height: 2rem;
	padding: 0.35rem 0.7rem;
	border: 1px solid rgba(11, 60, 93, 0.18);
	border-radius: 999px;
	background: rgba(38, 198, 218, 0.18);
	color: var(--ngs-color-primary);
	font-size: 0.78rem;
	font-weight: 850;
	letter-spacing: 0.04em;
	line-height: 1.2;
	text-transform: uppercase;
}

.ngs-check-list {
	display: grid;
	gap: 0.65rem;
	margin: 1.25rem 0 0;
	padding: 0;
	list-style: none;
}

.ngs-check-list li {
	position: relative;
	padding-left: 1.65rem;
	line-height: 1.55;
}

.ngs-check-list li::before {
	position: absolute;
	top: 0.1rem;
	left: 0;
	display: grid;
	width: 1.1rem;
	aspect-ratio: 1;
	place-items: center;
	border-radius: 50%;
	background: var(--ngs-color-primary);
	color: var(--ngs-color-card);
	content: "✓";
	font-size: 0.68rem;
	font-weight: 900;
}

.ngs-motion-ready [data-ngs-reveal="section"],
.ngs-motion-ready [data-ngs-reveal="card"] {
	opacity: 0;
	transition: opacity 480ms ease, transform 680ms cubic-bezier(0.16, 1, 0.3, 1);
	will-change: opacity, transform;
}

.ngs-motion-ready [data-ngs-reveal="card"] {
	transition-delay: var(--ngs-reveal-delay, 0ms);
}

/*
 * Direction-aware ocean reveal:
 * scrolling down brings content up from the lower edge;
 * scrolling up brings content down from the upper edge.
 */
.ngs-motion-ready [data-ngs-reveal].ngs-enter-from-bottom {
	transform: translate3d(0, 3.4rem, 0) scale(0.95);
	transform-origin: 50% 100%;
}

.ngs-motion-ready [data-ngs-reveal].ngs-enter-from-top {
	transform: translate3d(0, -3.4rem, 0) scale(0.95);
	transform-origin: 50% 0%;
}

.ngs-motion-ready [data-ngs-reveal="card"].ngs-enter-from-bottom {
	transform: translate3d(0, 2.8rem, 0) scale(0.94);
}

.ngs-motion-ready [data-ngs-reveal="card"].ngs-enter-from-top {
	transform: translate3d(0, -2.8rem, 0) scale(0.94);
}

.ngs-motion-ready [data-ngs-reveal].ngs-is-visible {
	opacity: 1;
	transform: translate3d(0, 0, 0) scale(1);
}

@media (max-width: 767px) {
	.ngs-motion-ready [data-ngs-reveal].ngs-enter-from-bottom {
		transform: translate3d(0, 2.25rem, 0) scale(0.97);
	}

	.ngs-motion-ready [data-ngs-reveal].ngs-enter-from-top {
		transform: translate3d(0, -2.25rem, 0) scale(0.97);
	}

	.ngs-section-shell {
		padding-block: clamp(3.25rem, 12vw, 5rem);
	}

	.ngs-card-surface:hover,
	.ngs-card-surface:focus-within {
		transform: translate3d(0, -0.25rem, 0);
	}
}

@media (max-width: 479px) {
	.ngs-action {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ngs-card-surface,
	.ngs-card-surface::before,
	.ngs-card-surface::after,
	.ngs-action,
	.ngs-action::before,
	.ngs-action::after,
	.ngs-text-link::after,
	[data-ngs-reveal] {
		transition: none !important;
	}

	.ngs-card-surface:hover,
	.ngs-card-surface:focus-within,
	.ngs-action:hover,
	.ngs-action:focus-visible,
	.ngs-motion-ready [data-ngs-reveal] {
		opacity: 1;
		transform: none;
	}
}

/* NextGen SEO v4.2.6 calm ocean system. */
body.ngs-page-has-blocks {
	position: relative;
	isolation: isolate;
	background:
		radial-gradient(circle at 14% 12%, rgba(255, 255, 255, 0.12), transparent 24%),
		radial-gradient(circle at 82% 78%, rgba(11, 60, 93, 0.08), transparent 30%),
		var(--ngs-color-aqua);
}

/*
 * Two restrained fixed layers create a visible waterline without covering the
 * content. They stay behind every Blocksy and Gutenberg wrapper.
 */
body.ngs-page-has-blocks::before,
body.ngs-page-has-blocks::after {
	position: fixed;
	z-index: 0;
	left: -20vw;
	width: 140vw;
	content: "";
	pointer-events: none;
	will-change: transform;
}

body.ngs-page-has-blocks::before {
	bottom: -2.75rem;
	height: 13rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 220' preserveAspectRatio='none'%3E%3Cpath fill='%230B3C5D' fill-opacity='.10' d='M0 112c210-64 390-60 584 7 198 68 381 68 571 0 184-66 330-63 445-28v129H0Z'/%3E%3Cpath fill='none' stroke='%23FFFFFF' stroke-opacity='.22' stroke-width='4' d='M0 92c208-52 390-49 585 9 198 59 381 59 570 0 184-57 331-55 445-23'/%3E%3C/svg%3E");
	background-repeat: repeat-x;
	background-position: 0 100%;
	background-size: 1600px 13rem;
	opacity: 0.78;
	animation: ngs-ocean-drift-front 44s linear infinite;
}

body.ngs-page-has-blocks::after {
	top: 24vh;
	height: 7.5rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1800 150' preserveAspectRatio='none'%3E%3Cpath fill='%23FFFFFF' fill-opacity='.07' d='M0 78c230 45 421 39 610-8 195-49 387-48 585 0 204 50 398 46 605-13v93H0Z'/%3E%3Cpath fill='none' stroke='%230B3C5D' stroke-opacity='.08' stroke-width='3' d='M0 61c229 39 420 34 610-7 195-43 387-42 585 0 203 43 398 40 605-11'/%3E%3C/svg%3E");
	background-repeat: repeat-x;
	background-position: 0 50%;
	background-size: 1800px 7.5rem;
	opacity: 0.68;
	animation: ngs-ocean-drift-rear 58s linear infinite reverse;
}

/*
 * Keep the ocean below the page content without turning every direct body
 * child into an equal stacking context. The old body > * rule caused later
 * content wrappers to paint above Blocksy's mobile header/off-canvas menu.
 */
body.ngs-page-has-blocks .site-main,
body.ngs-page-has-blocks main,
body.ngs-page-has-blocks .site-content,
body.ngs-page-has-blocks .content-area,
body.ngs-page-has-blocks .site-footer {
	position: relative;
	z-index: 1;
}

/*
 * Blocksy Free header/off-canvas compatibility.
 * Keep navigation above NextGen SEO sections while preserving Blocksy's own
 * positioning and transitions. The off-canvas drawer must remain above the
 * fixed social rail as well.
 */
body.ngs-page-has-blocks #header,
body.ngs-page-has-blocks .ct-header,
body.ngs-page-has-blocks header[role="banner"] {
	position: relative;
	z-index: 10000;
}

body.ngs-page-has-blocks #offcanvas,
body.ngs-page-has-blocks [data-id="offcanvas"],
body.ngs-page-has-blocks .ct-drawer-canvas,
body.ngs-page-has-blocks .ct-panel {
	z-index: 100000 !important;
}

/* Blocksy Free compatibility: expose the aqua ocean through theme wrappers. */
body.ngs-page-has-blocks .site-main,
body.ngs-page-has-blocks main,
body.ngs-page-has-blocks .content-area,
body.ngs-page-has-blocks .entry-content,
body.ngs-page-has-blocks .site-content,
body.ngs-page-has-blocks .site-main .ct-container,
body.ngs-page-has-blocks .site-main .ct-container-full,
body.ngs-page-has-blocks main .ct-container,
body.ngs-page-has-blocks main .ct-container-full {
	background-color: transparent !important;
}

/* Aqua sections and card gaps reveal the ocean. Dark sections stay dark. */
body.ngs-page-has-blocks [class^="wp-block-nextgen-seo-"]:not(.ngs-hero):not(.ngs-ticker),
body.ngs-page-has-blocks [class*=" wp-block-nextgen-seo-"]:not(.ngs-hero):not(.ngs-ticker),
body.ngs-page-has-blocks .ngs-section-shell:not(.ngs-section-shell--dark),
body.ngs-page-has-blocks [class$="__grid"],
body.ngs-page-has-blocks [class*="__grid "],
body.ngs-page-has-blocks [class$="__items"],
body.ngs-page-has-blocks [class*="__items "],
body.ngs-page-has-blocks [class$="__list"],
body.ngs-page-has-blocks [class*="__list "] {
	background-color: transparent !important;
	background-image: none !important;
}

/* Preserve the approved deep-blue Hero and use one restrained tide at its base. */
body.ngs-page-has-blocks .wp-block-nextgen-seo-hero.ngs-hero,
.editor-styles-wrapper .wp-block-nextgen-seo-hero.ngs-hero {
	background-color: var(--ngs-color-primary) !important;
	background-image:
		radial-gradient(circle at 82% 12%, rgba(38, 198, 218, 0.12), transparent 29%),
		linear-gradient(145deg, rgba(255, 255, 255, 0.025), transparent 55%) !important;
	color: var(--ngs-color-card);
}

.ngs-hero::before {
	position: absolute;
	z-index: 0;
	right: -10%;
	bottom: -3.5rem;
	left: -10%;
	height: 12rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 210' preserveAspectRatio='none'%3E%3Cpath fill='%2326C6DA' fill-opacity='.18' d='M0 108c194-61 369-58 555 7 188 65 359 65 543 1 181-63 345-61 502-20v114H0Z'/%3E%3Cpath fill='none' stroke='%23FFFFFF' stroke-opacity='.20' stroke-width='4' d='M0 88c195-49 369-47 555 9 188 56 359 56 543 1 181-54 345-52 502-17'/%3E%3C/svg%3E");
	background-repeat: repeat-x;
	background-position: 0 100%;
	background-size: 1600px 12rem;
	content: "";
	pointer-events: none;
	animation: ngs-hero-wave-drift 46s linear infinite;
}

.ngs-hero::after {
	position: absolute;
	z-index: 0;
	top: -7rem;
	right: -6rem;
	width: 23rem;
	aspect-ratio: 1;
	border: 1px solid rgba(38, 198, 218, 0.16);
	border-radius: 50%;
	box-shadow: 0 0 0 5rem rgba(38, 198, 218, 0.035);
	content: "";
	pointer-events: none;
}

.ngs-hero__container {
	position: relative;
	z-index: 2;
}

.ngs-hero--no-media .ngs-hero__container {
	grid-template-columns: minmax(0, 58rem);
	justify-content: start;
}

.ngs-hero--no-media .ngs-hero__content {
	max-width: 58rem;
}

.ngs-hero__title,
.ngs-hero__description {
	color: var(--ngs-color-card);
}

.ngs-hero__eyebrow {
	border-color: rgba(38, 198, 218, 0.48);
	background: rgba(255, 255, 255, 0.08);
	color: var(--ngs-color-aqua);
}

@keyframes ngs-ocean-drift-front {
	0% { transform: translate3d(0, 0, 0); }
	50% { transform: translate3d(-5%, -4px, 0); }
	100% { transform: translate3d(-10%, 0, 0); }
}

@keyframes ngs-ocean-drift-rear {
	0% { transform: translate3d(0, 0, 0); }
	50% { transform: translate3d(-4%, 3px, 0); }
	100% { transform: translate3d(-8%, 0, 0); }
}

@keyframes ngs-hero-wave-drift {
	0% { transform: translate3d(0, 0, 0); }
	50% { transform: translate3d(-4%, -3px, 0); }
	100% { transform: translate3d(-8%, 0, 0); }
}

/* Selected high-value cards gently float without overriding reveal transforms. */
.ngs-hero__media,
.ngs-video-showcase__frame,
.ngs-services__card:nth-child(3n + 1),
.ngs-cases__card:nth-child(2n),
.ngs-portfolio__card:nth-child(3n + 1),
.ngs-testimonials__card:nth-child(odd),
.ngs-trust-bar__item:nth-child(3n + 1),
.ngs-lead-magnet__card {
	animation: ngs-card-calm-float 14s ease-in-out infinite;
}

.ngs-services__card:nth-child(3n + 1),
.ngs-cases__card:nth-child(2n),
.ngs-portfolio__card:nth-child(3n + 1),
.ngs-testimonials__card:nth-child(odd) {
	animation-delay: -5s;
}

@keyframes ngs-card-calm-float {
	0%, 100% { translate: 0 0; }
	50% { translate: 0 -4px; }
}

.ngs-hero__media:hover,
.ngs-hero__media:focus-within,
.ngs-video-showcase__frame:hover,
.ngs-video-showcase__frame:focus-within,
.ngs-services__card:hover,
.ngs-services__card:focus-within,
.ngs-cases__card:hover,
.ngs-cases__card:focus-within,
.ngs-portfolio__card:hover,
.ngs-portfolio__card:focus-within,
.ngs-testimonials__card:hover,
.ngs-testimonials__card:focus-within {
	animation-play-state: paused;
}

/* Strong conversion CTA system — global so buttons work on any page even without Hero */
.ngs-button,
.ngs-action,
.ngs-cta-button {
	position: relative;
	isolation: isolate;
	display: inline-flex;
	overflow: hidden;
	min-height: 3.1rem;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	padding: 0.75rem 1.35rem;
	border: 2px solid var(--ngs-color-accent, #F97316);
	border-radius: 0.8rem;
	background: var(--ngs-color-accent, #F97316);
	color: #FFFFFF;
	font-size: clamp(1rem, 1.4vw, 1.075rem);
	font-weight: 900;
	letter-spacing: 0.01em;
	line-height: 1.2;
	text-decoration: none;
	box-shadow: 0 0.85rem 2rem rgba(249, 115, 22, 0.28), 0 0.3rem 0 rgba(11, 60, 93, 0.14);
	transition: transform 220ms ease, background 220ms ease, border-color 220ms ease, color 220ms ease, box-shadow 220ms ease;
}

.ngs-button--primary,
.ngs-action,
.ngs-cta-button--primary {
	background: var(--ngs-color-accent, #F97316);
	border-color: var(--ngs-color-accent, #F97316);
	color: #FFFFFF;
	box-shadow: 0 0.85rem 2rem rgba(249, 115, 22, 0.28), 0 0.3rem 0 rgba(11, 60, 93, 0.14);
}

.ngs-button--secondary {
	background: #FFFFFF;
	border-color: var(--ngs-color-primary, #0B3C5D);
	color: var(--ngs-color-primary, #0B3C5D);
	box-shadow: 0 0.6rem 1.4rem rgba(11, 60, 93, 0.12);
}

.ngs-button--tertiary {
	background: transparent;
	border-color: transparent;
	color: var(--ngs-color-accent, #F97316);
	text-decoration: underline;
	text-underline-offset: 0.2em;
	box-shadow: none;
	min-height: auto;
	padding: 0.35rem 0.15rem;
}

.ngs-button:hover,
.ngs-button:focus-visible,
.ngs-action:hover,
.ngs-action:focus-visible,
.ngs-cta-button:hover,
.ngs-cta-button:focus-visible {
	transform: translateY(-0.15rem);
	border-color: var(--ngs-color-aqua, #26C6DA);
	text-decoration: none;
}

.ngs-button--primary:hover,
.ngs-button--primary:focus-visible,
.ngs-action:hover,
.ngs-action:focus-visible,
.ngs-cta-button--primary:hover,
.ngs-cta-button--primary:focus-visible {
	background: var(--ngs-color-primary, #0B3C5D);
	border-color: var(--ngs-color-primary, #0B3C5D);
	color: #FFFFFF;
}

.ngs-button--secondary:hover,
.ngs-button--secondary:focus-visible {
	background: var(--ngs-color-primary, #0B3C5D);
	border-color: var(--ngs-color-primary, #0B3C5D);
	color: #FFFFFF;
}

.ngs-button--tertiary:hover,
.ngs-button--tertiary:focus-visible {
	color: var(--ngs-color-primary, #0B3C5D);
	transform: none;
}

.ngs-button:focus-visible,
.ngs-action:focus-visible,
.ngs-cta-button:focus-visible {
	outline: 3px solid var(--ngs-color-aqua, #26C6DA);
	outline-offset: 3px;
}

.ngs-button--primary::before,
.ngs-action::before,
.ngs-cta-button--primary::before {
	background: var(--ngs-color-primary, #0B3C5D);
}

body.ngs-page-has-blocks .wp-block-nextgen-seo-ticker-banner.ngs-ticker {
	background-color: var(--ngs-color-primary) !important;
}

body.ngs-page-has-blocks .ngs-booking .ngs-section-title,
.editor-styles-wrapper .ngs-booking .ngs-section-title {
	color: #FFFFFF;
}

body.ngs-page-has-blocks .ngs-booking .ngs-section-description,
.editor-styles-wrapper .ngs-booking .ngs-section-description {
	color: rgba(255, 255, 255, 0.84);
}

body.ngs-page-has-blocks .ngs-booking .ngs-eyebrow,
.editor-styles-wrapper .ngs-booking .ngs-eyebrow {
	color: var(--ngs-color-aqua);
}

@media (max-width: 767px) {
	body.ngs-page-has-blocks::before {
		left: -50vw;
		width: 200vw;
		height: 9rem;
		opacity: 0.64;
		animation-duration: 60s;
	}

	body.ngs-page-has-blocks::after {
		display: none;
	}

	.ngs-hero::before {
		right: -45%;
		left: -45%;
		height: 8.5rem;
		animation-duration: 58s;
	}

	.ngs-hero::after {
		top: -5rem;
		right: -8rem;
		width: 17rem;
	}

	.ngs-hero__media,
	.ngs-video-showcase__frame,
	.ngs-services__card:nth-child(3n + 1),
	.ngs-cases__card:nth-child(2n),
	.ngs-portfolio__card:nth-child(3n + 1),
	.ngs-testimonials__card:nth-child(odd),
	.ngs-trust-bar__item:nth-child(3n + 1),
	.ngs-lead-magnet__card {
		animation-duration: 18s;
	}
}

@media (prefers-reduced-motion: reduce) {
	body.ngs-page-has-blocks::before,
	body.ngs-page-has-blocks::after,
	.ngs-hero::before,
	.ngs-hero__media,
	.ngs-video-showcase__frame,
	.ngs-services__card:nth-child(3n + 1),
	.ngs-cases__card:nth-child(2n),
	.ngs-portfolio__card:nth-child(3n + 1),
	.ngs-testimonials__card:nth-child(odd),
	.ngs-trust-bar__item:nth-child(3n + 1),
	.ngs-lead-magnet__card {
		animation: none !important;
		translate: none !important;
	}
}


/* NextGen SEO v4.2.6 eyebrow comfort patch. */
body.ngs-page-has-blocks .ngs-section-shell--dark .ngs-eyebrow,
body.ngs-page-has-blocks .ngs-hero .ngs-eyebrow,
body.ngs-page-has-blocks .ngs-cta .ngs-eyebrow,
body.ngs-page-has-blocks .ngs-booking .ngs-eyebrow,
.editor-styles-wrapper .ngs-section-shell--dark .ngs-eyebrow,
.editor-styles-wrapper .ngs-hero .ngs-eyebrow,
.editor-styles-wrapper .ngs-cta .ngs-eyebrow,
.editor-styles-wrapper .ngs-booking .ngs-eyebrow {
	color: var(--ngs-color-aqua);
}


/* NextGen SEO v4.2.6 responsive hardening. */
body.ngs-page-has-blocks {
	max-width: 100%;
	overflow-x: clip;
}

@supports not (overflow: clip) {
	body.ngs-page-has-blocks {
		overflow-x: hidden;
	}
}

body.ngs-page-has-blocks [class^="wp-block-nextgen-seo-"],
body.ngs-page-has-blocks [class*=" wp-block-nextgen-seo-"],
.editor-styles-wrapper [class^="wp-block-nextgen-seo-"],
.editor-styles-wrapper [class*=" wp-block-nextgen-seo-"] {
	max-width: 100%;
	min-width: 0;
}

body.ngs-page-has-blocks [class^="wp-block-nextgen-seo-"] *,
body.ngs-page-has-blocks [class*=" wp-block-nextgen-seo-"] *,
.editor-styles-wrapper [class^="wp-block-nextgen-seo-"] *,
.editor-styles-wrapper [class*=" wp-block-nextgen-seo-"] * {
	min-width: 0;
}

body.ngs-page-has-blocks [class^="wp-block-nextgen-seo-"] img,
body.ngs-page-has-blocks [class^="wp-block-nextgen-seo-"] video,
body.ngs-page-has-blocks [class^="wp-block-nextgen-seo-"] svg,
body.ngs-page-has-blocks [class*=" wp-block-nextgen-seo-"] img,
body.ngs-page-has-blocks [class*=" wp-block-nextgen-seo-"] video,
body.ngs-page-has-blocks [class*=" wp-block-nextgen-seo-"] svg,
.editor-styles-wrapper [class^="wp-block-nextgen-seo-"] img,
.editor-styles-wrapper [class^="wp-block-nextgen-seo-"] video,
.editor-styles-wrapper [class^="wp-block-nextgen-seo-"] svg,
.editor-styles-wrapper [class*=" wp-block-nextgen-seo-"] img,
.editor-styles-wrapper [class*=" wp-block-nextgen-seo-"] video,
.editor-styles-wrapper [class*=" wp-block-nextgen-seo-"] svg {
	max-width: 100%;
}

.ngs-section-title,
.ngs-hero__title,
.ngs-section-description,
.ngs-action,
.ngs-button,
.ngs-cta__button,
.ngs-skillset__group-title,
.ngs-skillset__chip,
.ngs-industries__group-title,
.ngs-industries__chip,
.ngs-ticker__item,
[class^="ngs-"][class*="__title"],
[class^="ngs-"][class*="__label"] {
	overflow-wrap: anywhere;
	word-break: normal;
}

.ngs-action,
.ngs-button,
.ngs-cta__button,
.ngs-about__button,
.ngs-contact__button {
	max-width: 100%;
	white-space: normal;
}

/* Lower-tablet layouts receive breathing room instead of cramped desktop columns. */
@media (max-width: 900px) {
	.ngs-hero__container,
	.ngs-about__container,
	.ngs-contact__container,
	.ngs-faq__container,
	.ngs-lead-magnet__container {
		grid-template-columns: minmax(0, 1fr);
	}

	.ngs-hero__media,
	.ngs-about__media,
	.ngs-video-showcase__frame {
		width: min(100%, 42rem);
		margin-inline: auto;
		transform: none;
	}

	.ngs-faq__header {
		position: static;
	}

	.ngs-cases__grid,
	.ngs-portfolio__grid,
	.ngs-knowledge__grid,
	.ngs-why-choose__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.ngs-cases__card,
	.ngs-cases__card:nth-child(n),
	.ngs-portfolio__card,
	.ngs-portfolio__card:nth-child(n),
	.ngs-knowledge__card,
	.ngs-knowledge__card:nth-child(n) {
		grid-column: auto;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.ngs-section-shell,
	.ngs-hero,
	.ngs-about,
	.ngs-contact,
	.ngs-faq,
	.ngs-process,
	.ngs-portfolio,
	.ngs-cases,
	.ngs-knowledge,
	.ngs-video-showcase,
	.ngs-social,
	.ngs-testimonials {
		padding-inline: clamp(1.25rem, 3vw, 2rem);
	}

	.ngs-section-title,
	.ngs-hero__title {
		max-width: 100%;
	}
}

@media (max-width: 479px) {
	.ngs-section-title,
	.ngs-hero__title {
		hyphens: auto;
	}

	.ngs-skillset__group-title,
	.ngs-industries__group-title {
		width: fit-content;
		max-width: 100%;
		white-space: normal;
	}

	.ngs-card-surface,
	[class^="ngs-"][class*="__card"],
	[class^="ngs-"][class*="__group"] {
		max-width: 100%;
	}
}

@media (hover: none) and (pointer: coarse) {
	.ngs-card-surface:hover,
	.ngs-skillset__group:hover,
	.ngs-skillset__chip:hover,
	.ngs-industries__chip:hover,
	.ngs-services__card:hover,
	.ngs-cases__card:hover,
	.ngs-portfolio__card:hover,
	.ngs-blog__card:hover,
	.ngs-process__step:hover,
	.ngs-stats__item:hover,
	.ngs-trust-bar__item:hover {
		transform: none;
	}
}

/* NextGen SEO v4.3.4 eyebrow and unified card-grid system. */

/*
 * Every non-Hero eyebrow uses a calm white label with the approved orange
 * border. Deep blue text preserves accessible contrast and keeps the heading
 * as the primary visual element. The Hero eyebrow remains unchanged.
 */
body.ngs-page-has-blocks .ngs-eyebrow:not(.ngs-hero__eyebrow),
body.ngs-page-has-blocks [class$="__eyebrow"]:not(.ngs-hero__eyebrow),
body.ngs-page-has-blocks [class*="__eyebrow "]:not(.ngs-hero__eyebrow),
.editor-styles-wrapper .ngs-eyebrow:not(.ngs-hero__eyebrow),
.editor-styles-wrapper [class$="__eyebrow"]:not(.ngs-hero__eyebrow),
.editor-styles-wrapper [class*="__eyebrow "]:not(.ngs-hero__eyebrow) {
	display: inline-flex;
	width: fit-content;
	max-width: 100%;
	align-items: center;
	margin: 0 0 1rem;
	padding: 0.48rem 0.85rem;
	border: 2px solid var(--ngs-color-accent) !important;
	border-radius: 999px;
	background: var(--ngs-color-card) !important;
	color: var(--ngs-color-primary) !important;
	box-shadow: 0 0.45rem 1.2rem rgba(11, 60, 93, 0.08);
	font-size: 0.76rem;
	font-weight: 900;
	letter-spacing: 0.1em;
	line-height: 1.25;
	text-transform: uppercase;
}

/*
 * Repeated card collections use a consistent 3 / 2 / 1 responsive grid.
 * Purpose-built layouts such as the Hero, FAQ accordion, contact panel,
 * horizontal testimonials, and video frame retain their specialist behavior.
 */
.ngs-audit-preview__grid,
.ngs-blog__grid,
.ngs-cases__grid,
.ngs-comparison__grid,
.ngs-credentials__grid,
.ngs-deliverables__grid,
.ngs-expertise__grid,
.ngs-industries__groups,
.ngs-knowledge__grid,
.ngs-membership__grid,
.ngs-outcomes__grid,
.ngs-portfolio__grid,
.ngs-pricing__grid,
.ngs-problems__grid,
.ngs-process__grid,
.ngs-resources__grid,
.ngs-services__grid,
.ngs-skillset__groups,
.ngs-stats__grid,
.ngs-testimonials__editor-grid,
.ngs-tools__grid,
.ngs-trust-bar__items,
.ngs-why-choose__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
}

/* Remove legacy asymmetric spans so every desktop card owns one column. */
.ngs-audit-preview__grid > .ngs-audit-preview__card,
.ngs-blog__grid > .ngs-blog__card,
.ngs-cases__grid > .ngs-cases__card,
.ngs-comparison__grid > .ngs-comparison__card,
.ngs-credentials__grid > .ngs-credentials__card,
.ngs-deliverables__grid > .ngs-deliverables__card,
.ngs-expertise__grid > .ngs-expertise__card,
.ngs-industries__groups > .ngs-industries__group,
.ngs-knowledge__grid > .ngs-knowledge__card,
.ngs-membership__grid > .ngs-membership__card,
.ngs-outcomes__grid > .ngs-outcomes__card,
.ngs-portfolio__grid > .ngs-portfolio__card,
.ngs-pricing__grid > .ngs-pricing__card,
.ngs-problems__grid > .ngs-problems__card,
.ngs-process__grid > .ngs-process__step,
.ngs-resources__grid > .ngs-resources__card,
.ngs-services__grid > .ngs-services__card,
.ngs-skillset__groups > .ngs-skillset__group,
.ngs-stats__grid > .ngs-stats__item,
.ngs-testimonials__editor-grid > .ngs-testimonials__card,
.ngs-tools__grid > .ngs-tools__card,
.ngs-trust-bar__items > .ngs-trust-bar__item,
.ngs-why-choose__grid > .ngs-why-choose__card {
	grid-column: auto;
	width: auto;
	max-width: none;
	justify-self: stretch;
}

/* Center a single orphan card in the final desktop row. */
@media (min-width: 1025px) {
	.ngs-audit-preview__grid > .ngs-audit-preview__card:last-child:nth-child(3n + 1),
	.ngs-blog__grid > .ngs-blog__card:last-child:nth-child(3n + 1),
	.ngs-cases__grid > .ngs-cases__card:last-child:nth-child(3n + 1),
	.ngs-comparison__grid > .ngs-comparison__card:last-child:nth-child(3n + 1),
	.ngs-credentials__grid > .ngs-credentials__card:last-child:nth-child(3n + 1),
	.ngs-deliverables__grid > .ngs-deliverables__card:last-child:nth-child(3n + 1),
	.ngs-expertise__grid > .ngs-expertise__card:last-child:nth-child(3n + 1),
	.ngs-industries__groups > .ngs-industries__group:last-child:nth-child(3n + 1),
	.ngs-knowledge__grid > .ngs-knowledge__card:last-child:nth-child(3n + 1),
	.ngs-membership__grid > .ngs-membership__card:last-child:nth-child(3n + 1),
	.ngs-outcomes__grid > .ngs-outcomes__card:last-child:nth-child(3n + 1),
	.ngs-portfolio__grid > .ngs-portfolio__card:last-child:nth-child(3n + 1),
	.ngs-pricing__grid > .ngs-pricing__card:last-child:nth-child(3n + 1),
	.ngs-problems__grid > .ngs-problems__card:last-child:nth-child(3n + 1),
	.ngs-process__grid > .ngs-process__step:last-child:nth-child(3n + 1),
	.ngs-resources__grid > .ngs-resources__card:last-child:nth-child(3n + 1),
	.ngs-services__grid > .ngs-services__card:last-child:nth-child(3n + 1),
	.ngs-skillset__groups > .ngs-skillset__group:last-child:nth-child(3n + 1),
	.ngs-stats__grid > .ngs-stats__item:last-child:nth-child(3n + 1),
	.ngs-testimonials__editor-grid > .ngs-testimonials__card:last-child:nth-child(3n + 1),
	.ngs-tools__grid > .ngs-tools__card:last-child:nth-child(3n + 1),
	.ngs-trust-bar__items > .ngs-trust-bar__item:last-child:nth-child(3n + 1),
	.ngs-why-choose__grid > .ngs-why-choose__card:last-child:nth-child(3n + 1) {
		grid-column: 2;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.ngs-audit-preview__grid,
	.ngs-blog__grid,
	.ngs-cases__grid,
	.ngs-comparison__grid,
	.ngs-credentials__grid,
	.ngs-deliverables__grid,
	.ngs-expertise__grid,
	.ngs-industries__groups,
	.ngs-knowledge__grid,
	.ngs-membership__grid,
	.ngs-outcomes__grid,
	.ngs-portfolio__grid,
	.ngs-pricing__grid,
	.ngs-problems__grid,
	.ngs-process__grid,
	.ngs-resources__grid,
	.ngs-services__grid,
	.ngs-skillset__groups,
	.ngs-stats__grid,
	.ngs-testimonials__editor-grid,
	.ngs-tools__grid,
	.ngs-trust-bar__items,
	.ngs-why-choose__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.ngs-audit-preview__grid,
	.ngs-blog__grid,
	.ngs-cases__grid,
	.ngs-comparison__grid,
	.ngs-credentials__grid,
	.ngs-deliverables__grid,
	.ngs-expertise__grid,
	.ngs-industries__groups,
	.ngs-knowledge__grid,
	.ngs-membership__grid,
	.ngs-outcomes__grid,
	.ngs-portfolio__grid,
	.ngs-pricing__grid,
	.ngs-problems__grid,
	.ngs-process__grid,
	.ngs-resources__grid,
	.ngs-services__grid,
	.ngs-skillset__groups,
	.ngs-stats__grid,
	.ngs-testimonials__editor-grid,
	.ngs-tools__grid,
	.ngs-trust-bar__items,
	.ngs-why-choose__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* NextGen SEO v4.3.4 outlined-eyebrow and social/ticker responsive patch. */

/*
 * Non-Hero eyebrows are typography only: transparent background, white fill,
 * and an orange outline drawn around the letterforms. No pill, box, padding,
 * or surrounding border is introduced. The Hero eyebrow remains untouched.
 */
body.ngs-page-has-blocks .ngs-eyebrow:not(.ngs-hero__eyebrow),
body.ngs-page-has-blocks [class$="__eyebrow"]:not(.ngs-hero__eyebrow),
body.ngs-page-has-blocks [class*="__eyebrow "]:not(.ngs-hero__eyebrow),
.editor-styles-wrapper .ngs-eyebrow:not(.ngs-hero__eyebrow),
.editor-styles-wrapper [class$="__eyebrow"]:not(.ngs-hero__eyebrow),
.editor-styles-wrapper [class*="__eyebrow "]:not(.ngs-hero__eyebrow) {
	display: inline-block;
	width: fit-content;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: #FFFFFF !important;
	box-shadow: none !important;
	-webkit-text-fill-color: #FFFFFF;
	-webkit-text-stroke: 0.8px var(--ngs-color-accent);
	paint-order: stroke fill;
	text-shadow:
		1px 0 0 var(--ngs-color-accent),
		-1px 0 0 var(--ngs-color-accent),
		0 1px 0 var(--ngs-color-accent),
		0 -1px 0 var(--ngs-color-accent);
}

/* Give repeated cards equal outer height so rows remain visually aligned. */
.ngs-services__card,
.ngs-problems__card,
.ngs-outcomes__card,
.ngs-deliverables__card,
.ngs-process__step,
.ngs-cases__card,
.ngs-portfolio__card,
.ngs-resources__card,
.ngs-blog__card,
.ngs-why-choose__card,
.ngs-pricing__card,
.ngs-comparison__card,
.ngs-credentials__card,
.ngs-tools__card,
.ngs-stats__item,
.ngs-trust-bar__item,
.ngs-skillset__group,
.ngs-industries__group {
	height: 100%;
}

/*
 * Skill and industry chips use a true two-column grid on desktop. This
 * prevents the irregular masonry-like wrap seen with flexbox. A single final
 * chip spans the row and is centred.
 */
.ngs-skillset__chips,
.ngs-industries__chips {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: stretch;
	gap: 0.75rem;
}

.ngs-skillset__chip,
.ngs-industries__chip {
	width: 100%;
	min-width: 0;
	justify-content: flex-start;
}

.ngs-skillset__chips > :last-child:nth-child(odd),
.ngs-industries__chips > :last-child:nth-child(odd) {
	grid-column: 1 / -1;
	width: min(100%, calc((100% - 0.75rem) / 2));
	justify-self: center;
}

/* Align Why Choose cards by number/title, description, and proof rows. */
.ngs-why-choose__card {
	display: grid !important;
	grid-template-columns: 3.25rem minmax(0, 1fr);
	grid-template-rows: auto minmax(7.5rem, 1fr) auto;
	column-gap: 1rem;
	row-gap: 0.9rem;
	min-height: 20rem;
	padding: clamp(1.35rem, 2.5vw, 1.8rem) !important;
}

.ngs-why-choose__index {
	position: static !important;
	grid-column: 1;
	grid-row: 1;
	align-self: start;
}

.ngs-why-choose__card-title {
	grid-column: 2;
	grid-row: 1;
	align-self: center;
	min-height: 3.5rem;
	margin: 0 !important;
}

.ngs-why-choose__card-description {
	grid-column: 1 / -1;
	grid-row: 2;
	margin: 0;
}

.ngs-why-choose__proof {
	grid-column: 1 / -1;
	grid-row: 3;
	align-self: end;
	margin: 0 !important;
}

@media (max-width: 1024px) {
	.ngs-skillset__chips,
	.ngs-industries__chips {
		grid-template-columns: minmax(0, 1fr);
	}

	.ngs-skillset__chips > :last-child:nth-child(odd),
	.ngs-industries__chips > :last-child:nth-child(odd) {
		grid-column: auto;
		width: 100%;
	}
}

@media (max-width: 767px) {
	.ngs-why-choose__card {
		grid-template-rows: auto auto auto;
		min-height: auto;
	}

	.ngs-why-choose__card-title {
		min-height: 0;
	}
}



/*
 * NextGen SEO v4.3.11 — Blocksy compact glass top-sheet off-canvas.
 *
 * Blocksy 2.1.x renders the mobile drawer as #offcanvas.ct-panel with
 * .ct-panel-content as the actual device-specific content surface. The outer
 * #offcanvas remains viewport-sized only for modal interaction/click-away.
 * The mobile .ct-panel-content is content-sized and owns the glass surface so
 * it ends immediately after the final off-canvas element/CTA.
 */
@media (max-width: 1024px) {
	body.ngs-page-has-blocks #offcanvas.ct-panel,
	body.ngs-page-has-blocks #offcanvas {
		position: fixed !important;
		inset: 0 !important;
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		justify-content: flex-start !important;
		width: 100% !important;
		max-width: none !important;
		height: 100dvh !important;
		min-height: 100dvh !important;
		padding: 0 clamp(0.5rem, 2vw, 1rem) max(0.75rem, env(safe-area-inset-bottom)) !important;
		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
		-webkit-backdrop-filter: none !important;
		backdrop-filter: none !important;
		overflow: hidden !important;
		isolation: isolate;
	}

	/* Blocksy desktop off-canvas content must never affect mobile sheet height. */
	body.ngs-page-has-blocks #offcanvas > .ct-panel-content[data-device="desktop"],
	body.ngs-page-has-blocks #offcanvas .ct-panel-content[data-device="desktop"] {
		display: none !important;
		height: 0 !important;
		min-height: 0 !important;
		max-height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: hidden !important;
	}

	/*
	 * This is the real visible top-sheet surface in current Blocksy.
	 * It grows only as tall as its off-canvas elements and scrolls internally
	 * only when that content is taller than the available viewport.
	 */
	body.ngs-page-has-blocks #offcanvas > .ct-panel-content[data-device="mobile"],
	body.ngs-page-has-blocks #offcanvas .ct-panel-content[data-device="mobile"] {
		position: relative !important;
		inset: auto !important;
		display: flex !important;
		flex: 0 0 auto !important;
		flex-direction: column !important;
		align-items: stretch !important;
		justify-content: flex-start !important;
		align-self: center !important;
		box-sizing: border-box !important;
		width: min(42rem, 100%) !important;
		max-width: min(42rem, calc(100vw - 1rem)) !important;
		height: auto !important;
		min-height: 0 !important;
		max-height: calc(100dvh - 0.75rem) !important;
		margin: 0 auto !important;
		padding: 0 !important;
		background: rgba(11, 60, 93, var(--ngs-mobile-menu-surface-opacity, 0.88)) !important;
		border: 1px solid rgba(255, 255, 255, 0.08) !important;
		border-radius: 0 0 1.5rem 1.5rem !important;
		box-shadow:
			0 1.25rem 3rem rgba(11, 60, 93, 0.34),
			inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;
		-webkit-backdrop-filter: blur(8px) saturate(115%) !important;
		backdrop-filter: blur(8px) saturate(115%) !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
	}

	/* Compatibility fallback if a Blocksy build inserts an inner content wrapper. */
	body.ngs-page-has-blocks #offcanvas .ct-panel-content[data-device="mobile"] .ct-panel-content-inner {
		position: relative !important;
		display: block !important;
		flex: 0 0 auto !important;
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		margin: 0 !important;
		background: transparent !important;
		overflow: visible !important;
	}

	body.ngs-page-has-blocks #offcanvas .mobile-menu,
	body.ngs-page-has-blocks #offcanvas .mobile-menu > ul {
		display: block !important;
		flex: 0 0 auto !important;
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
		margin: 0 !important;
	}

	/* White by default, aqua on hover/focus, orange for current/active trail. */
	body.ngs-page-has-blocks #offcanvas .mobile-menu a {
		color: #FFFFFF !important;
	}

	body.ngs-page-has-blocks #offcanvas .mobile-menu a:hover,
	body.ngs-page-has-blocks #offcanvas .mobile-menu a:focus-visible {
		color: #26C6DA !important;
	}

	body.ngs-page-has-blocks #offcanvas .mobile-menu .current-menu-item > a,
	body.ngs-page-has-blocks #offcanvas .mobile-menu .current-menu-ancestor > a,
	body.ngs-page-has-blocks #offcanvas .mobile-menu .current-menu-parent > a,
	body.ngs-page-has-blocks #offcanvas .mobile-menu [aria-current="page"] {
		color: #F97316 !important;
	}

	/* Keep Blocksy's close control above the content-sized surface. */
	body.ngs-page-has-blocks #offcanvas .ct-panel-actions {
		position: absolute !important;
		top: 0.8rem !important;
		right: max(0.8rem, calc((100vw - min(42rem, calc(100vw - 1rem))) / 2 + 0.8rem)) !important;
		z-index: 3 !important;
		margin: 0 !important;
	}

	body.ngs-page-has-blocks #offcanvas .ct-toggle-close {
		color: #F97316 !important;
	}

	/* The fixed social rail should never compete with an open navigation panel. */
	body.ngs-page-has-blocks:has(#offcanvas.active) .ngs-social__panel,
	body.ngs-page-has-blocks:has(#offcanvas[aria-hidden="false"]) .ngs-social__panel {
		opacity: 0 !important;
		visibility: hidden !important;
		pointer-events: none !important;
		transform: translateY(-50%) scale(0.96);
	}
}

@media (max-width: 479px) {
	body.ngs-page-has-blocks #offcanvas.ct-panel,
	body.ngs-page-has-blocks #offcanvas {
		padding-inline: 0.5rem !important;
	}

	body.ngs-page-has-blocks #offcanvas > .ct-panel-content[data-device="mobile"],
	body.ngs-page-has-blocks #offcanvas .ct-panel-content[data-device="mobile"] {
		max-width: calc(100vw - 1rem) !important;
		border-radius: 0 0 1.25rem 1.25rem !important;
	}
}


/* Equal-height cards: stretch grid items and pin bottom meta/actions */
[class^="ngs-"][class*="__grid"],
[class*=" ngs-"][class*="__grid"] {
	align-items: stretch;
}

.ngs-expertise__card,
.ngs-credentials__card,
.ngs-services__card,
.ngs-problems__card,
.ngs-deliverables__card,
.ngs-cases__card,
.ngs-portfolio__card,
.ngs-testimonials__card,
.ngs-comparison__card,
.ngs-pricing__card,
.ngs-tools__card,
.ngs-outcomes__card,
.ngs-why-choose__card,
.ngs-process__card,
.ngs-knowledge__card,
.ngs-resource-grid__card,
.ngs-roadmap__card,
.ngs-audit-preview__card,
.ngs-membership-preview__card,
.ngs-card-surface {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.ngs-expertise__proof,
.ngs-credentials__card .ngs-text-link,
.ngs-services__link,
.ngs-cases__actions,
.ngs-problems__meta,
.ngs-deliverables__format,
.ngs-portfolio__meta,
.ngs-testimonials__meta,
.ngs-comparison__meta,
.ngs-pricing__price,
.ngs-tools__meta,
.ngs-outcomes__metric,
.ngs-knowledge__meta,
.ngs-resource-grid__meta,
.ngs-roadmap__meta,
.ngs-audit-preview__meta {
	margin-top: auto;
}


/* ---------- Desktop menu glass dropdown (match mobile glass language) ---------- */
@media (min-width: 1025px) {
	body.ngs-page-has-blocks .ct-header .sub-menu,
	body.ngs-page-has-blocks header .sub-menu,
	body.ngs-page-has-blocks .header-menu-1 .sub-menu,
	body.ngs-page-has-blocks .header-menu-2 .sub-menu,
	body.ngs-page-has-blocks [data-id="menu"] .sub-menu,
	body.ngs-page-has-blocks .ct-header ul.sub-menu {
		background: rgba(11, 60, 93, var(--ngs-mobile-menu-surface-opacity, 0.90)) !important;
		-webkit-backdrop-filter: blur(14px) saturate(1.2) !important;
		backdrop-filter: blur(14px) saturate(1.2) !important;
		border: 1px solid rgba(255, 255, 255, 0.12) !important;
		border-radius: 0.85rem !important;
		box-shadow: 0 1rem 2.5rem rgba(11, 60, 93, 0.28) !important;
		padding: 0.5rem 0 !important;
		min-width: 14rem !important;
	}

	body.ngs-page-has-blocks .ct-header .sub-menu a,
	body.ngs-page-has-blocks header .sub-menu a,
	body.ngs-page-has-blocks .header-menu-1 .sub-menu a,
	body.ngs-page-has-blocks .header-menu-2 .sub-menu a,
	body.ngs-page-has-blocks [data-id="menu"] .sub-menu a,
	body.ngs-page-has-blocks .ct-header ul.sub-menu a {
		color: rgba(255, 255, 255, 0.92) !important;
		background: transparent !important;
		padding: 0.65rem 1.15rem !important;
	}

	body.ngs-page-has-blocks .ct-header .sub-menu a:hover,
	body.ngs-page-has-blocks header .sub-menu a:hover,
	body.ngs-page-has-blocks .header-menu-1 .sub-menu a:hover,
	body.ngs-page-has-blocks .header-menu-2 .sub-menu a:hover,
	body.ngs-page-has-blocks [data-id="menu"] .sub-menu a:hover,
	body.ngs-page-has-blocks .ct-header ul.sub-menu a:hover,
	body.ngs-page-has-blocks .ct-header .sub-menu .current-menu-item > a,
	body.ngs-page-has-blocks .ct-header .sub-menu .current_page_item > a {
		color: #FFFFFF !important;
		background: rgba(38, 198, 218, 0.22) !important;
	}

	body.ngs-page-has-blocks .ct-header .sub-menu .menu-item + .menu-item,
	body.ngs-page-has-blocks header .sub-menu .menu-item + .menu-item {
		border-top: 1px solid rgba(255, 255, 255, 0.08);
	}
}
