/**
 * Cygnivo modernization foundation — iteration 1.
 *
 * This pass intentionally leaves Fusion Builder content intact. It establishes
 * reusable design tokens, improves navigation and keyboard accessibility, and
 * fixes the oversized LayerSlider canvas on small screens.
 */

:root {
	--cygnivo-navy-950: #062b4d;
	--cygnivo-navy-900: #003764;
	--cygnivo-blue-600: #0877be;
	--cygnivo-cyan-500: #18a6c7;
	--cygnivo-teal-600: #0b8491;
	--cygnivo-indigo-600: #5146a7;
	--cygnivo-red-600: #d62839;
	--cygnivo-ink: #17324a;
	--cygnivo-muted: #5d7285;
	--cygnivo-surface: #ffffff;
	--cygnivo-surface-soft: #f4f8fb;
	--cygnivo-border: #dbe6ee;
	--cygnivo-shadow-sm: 0 8px 30px rgb(6 43 77 / 8%);
	--cygnivo-shadow-md: 0 18px 55px rgb(6 43 77 / 13%);
	--cygnivo-radius-sm: 10px;
	--cygnivo-radius-md: 18px;
	--cygnivo-content-width: 1200px;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: 96px;
}

body.cygnivo-modern-v1 {
	color: var(--cygnivo-ink);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

body.cygnivo-modern-v1 p,
body.cygnivo-modern-v1 li {
	line-height: 1.7;
}

body.cygnivo-modern-v1 h1,
body.cygnivo-modern-v1 h2,
body.cygnivo-modern-v1 h3,
body.cygnivo-modern-v1 h4 {
	color: var(--cygnivo-navy-900);
	letter-spacing: -0.025em;
	text-wrap: balance;
}

body.cygnivo-modern-v1 .fusion-tb-header .fusion-builder-row-1 {
	border-bottom: 1px solid rgb(219 230 238 / 85%);
	box-shadow: var(--cygnivo-shadow-sm);
	backdrop-filter: blur(14px);
}

body.cygnivo-modern-v1.home .fusion-tb-header .fusion-builder-row-1 {
	background: rgb(255 255 255 / 94%);
}

body.cygnivo-modern-v1 .fusion-tb-header .awb-menu__main-a {
	color: var(--cygnivo-ink) !important;
	font-weight: 600;
	letter-spacing: -0.01em;
	transition: color 180ms ease, background-color 180ms ease;
}

body.cygnivo-modern-v1 .fusion-tb-header .awb-menu__main-a:hover,
body.cygnivo-modern-v1 .fusion-tb-header .awb-menu__main-a:focus-visible,
body.cygnivo-modern-v1:not(.home) .fusion-tb-header .current-menu-item > .awb-menu__main-a,
body.cygnivo-modern-v1:not(.home) .fusion-tb-header .current-menu-ancestor > .awb-menu__main-a {
	color: var(--cygnivo-teal-600) !important;
}

/* Avada marks every homepage hash link as current. Neutralize that false
 * active state, then reserve teal for intentional hover/focus interaction. */
body.cygnivo-modern-v1.home .fusion-tb-header .awb-menu .awb-menu__main-li.current-menu-item > .awb-menu__main-a,
body.cygnivo-modern-v1.home .fusion-tb-header .awb-menu .awb-menu__main-li.current_page_item > .awb-menu__main-a {
	color: var(--cygnivo-ink) !important;
}

body.cygnivo-modern-v1 .fusion-tb-header .awb-menu .awb-menu__main-li:hover > .awb-menu__main-a,
body.cygnivo-modern-v1 .fusion-tb-header .awb-menu .awb-menu__main-li:focus-within > .awb-menu__main-a,
body.cygnivo-modern-v1:not(.home) .fusion-tb-header .awb-menu .awb-menu__main-li.current-menu-ancestor > .awb-menu__main-a,
body.cygnivo-modern-v1:not(.home) .fusion-tb-header .awb-menu .awb-menu__main-li.current-menu-item > .awb-menu__main-a {
	color: var(--cygnivo-teal-600) !important;
}

body.cygnivo-modern-v1.home .fusion-tb-header .awb-menu__main-a_regular {
	position: relative;
}

body.cygnivo-modern-v1.home .fusion-tb-header .awb-menu__main-a_regular::after {
	position: absolute;
	right: 17px;
	bottom: 8px;
	left: 17px;
	height: 2px;
	border-radius: 3px;
	content: "";
	background: linear-gradient(90deg, var(--cygnivo-blue-600), var(--cygnivo-cyan-500));
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 180ms ease;
}

body.cygnivo-modern-v1.home .fusion-tb-header .awb-menu__main-a_regular:hover::after,
body.cygnivo-modern-v1.home .fusion-tb-header .awb-menu__main-a_regular:focus-visible::after {
	transform: scaleX(1);
	transform-origin: left;
}

body.cygnivo-modern-v1.home .fusion-tb-header .awb-menu__main-a_button {
	box-shadow: 0 10px 25px rgb(11 132 145 / 20%);
	transition: transform 180ms ease, box-shadow 180ms ease;
}

body.cygnivo-modern-v1.home .fusion-tb-header .awb-menu__main-a_button:hover,
body.cygnivo-modern-v1.home .fusion-tb-header .awb-menu__main-a_button:focus-visible {
	box-shadow: 0 13px 30px rgb(11 132 145 / 28%);
	transform: translateY(-2px);
}

body.cygnivo-modern-v1 .fusion-tb-header .awb-menu__m-toggle {
	border-radius: var(--cygnivo-radius-sm);
}

body.cygnivo-modern-v1 .fusion-button,
body.cygnivo-modern-v1 button,
body.cygnivo-modern-v1 input,
body.cygnivo-modern-v1 textarea,
body.cygnivo-modern-v1 select {
	border-radius: var(--cygnivo-radius-sm);
}

body.cygnivo-modern-v1.fusion-disable-outline :where(a, button, input, textarea, select, [tabindex]):focus-visible {
	outline: 3px solid var(--cygnivo-cyan-500) !important;
	outline-offset: 3px !important;
}

body.cygnivo-modern-v1.home #main .fusion-builder-row-3 .fusion-title h1,
body.cygnivo-modern-v1.home #main .fusion-builder-row-3 .fusion-title h2 {
	font-size: clamp(2rem, 4vw, 3.65rem) !important;
	line-height: 1.08 !important;
}

body.cygnivo-modern-v1.home #main .fusion-builder-row-6,
body.cygnivo-modern-v1.home #main .fusion-builder-row-10 {
	position: relative;
	overflow: hidden;
}

body.cygnivo-modern-v1.home #main .fusion-builder-row-6::before,
body.cygnivo-modern-v1.home #main .fusion-builder-row-10::before {
	position: absolute;
	inset: 0;
	pointer-events: none;
	content: "";
	background: radial-gradient(circle at 85% 15%, rgb(24 166 199 / 12%), transparent 36%);
}

body.cygnivo-modern-v1.home .fusion-tabs .nav-tabs li a {
	transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease;
}

/*
 * Avada constrains pages stored with its default template to the global
 * 1200px row before the child template can draw full-bleed sections. Keep the
 * section backgrounds viewport-wide while the inner .cyg-shell stays aligned
 * to the same 1200px content measure used by the homepage.
 */
body.cygnivo-products-page #main,
body.cygnivo-product-page #main,
body.cygnivo-company-page #main,
body.cygnivo-editorial-page #main,
body.cygnivo-service-page #main,
body.cygnivo-resources-page #main,
body.cygnivo-contact-page #main {
	padding: 0 !important;
}

body.cygnivo-products-page #main > .fusion-row,
body.cygnivo-product-page #main > .fusion-row,
body.cygnivo-company-page #main > .fusion-row,
body.cygnivo-editorial-page #main > .fusion-row,
body.cygnivo-service-page #main > .fusion-row,
body.cygnivo-resources-page #main > .fusion-row,
body.cygnivo-contact-page #main > .fusion-row {
	max-width: none !important;
}

@media (max-width: 800px) {
	html {
		scroll-padding-top: 84px;
	}

	body.cygnivo-modern-v1 .fusion-tb-header .fusion-builder-row-1 {
		box-shadow: 0 5px 22px rgb(6 43 77 / 10%);
	}

	/*
	 * LayerSlider retains its 1600 x 500 desktop stage on small screens and
	 * centers a short panoramic image inside it. Collapse the unused canvas
	 * while keeping the currently displayed image centered and proportional.
	 */
	body.cygnivo-modern-v1.home #main .fusion-builder-row-2,
	body.cygnivo-modern-v1.home #main .fusion-builder-row-2 > .fusion-builder-row,
	body.cygnivo-modern-v1.home #main .fusion-builder-row-2 .fusion-layout-column,
	body.cygnivo-modern-v1.home #main .fusion-builder-row-2 .fusion-column-wrapper,
	body.cygnivo-modern-v1.home #main .fusion-builder-row-2 .ls-container {
		height: clamp(124px, 40vw, 176px) !important;
		min-height: 0 !important;
	}

	body.cygnivo-modern-v1.home #main .fusion-builder-row-2 .ls-wrapper.ls-in-out {
		top: 50% !important;
		transform: translateY(-50%) !important;
	}

	body.cygnivo-modern-v1.home #main .fusion-builder-row-3 .fusion-title h1,
	body.cygnivo-modern-v1.home #main .fusion-builder-row-3 .fusion-title h2 {
		font-size: clamp(1.9rem, 8vw, 2.65rem) !important;
		line-height: 1.12 !important;
	}

	body.cygnivo-modern-v1.home #main .fusion-builder-row-3 .fusion-title > p {
		font-size: clamp(1rem, 4.6vw, 1.18rem) !important;
		line-height: 1.72 !important;
	}
}

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

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