.hcos-orbit {
	--hcos-orbit-size: 800px;
	--hcos-main-circle-size: 760px;
	--hcos-center-size: 500px;
	--hcos-node-size: 62px;
	--hcos-radius-factor: 45;
	--hcos-ring-gap: 20px;
	--hcos-ring-1: #071b35;
	--hcos-ring-2: #0a2a50;
	--hcos-ring-3: #0f4177;
	--hcos-ring-4: #1767a5;
	--hcos-ring-5: #56b9ff;
	--hcos-accent: #56b9ff;
	--hcos-gradient-start: #edf9ff;
	--hcos-gradient-end: #B9FF00;
	--hcos-main-circle-bg: #B9FF00;
	--hcos-center-bg: #B9FF00;
	--hcos-track-color: #192D38;
	--hcos-player-color: #FFFFFF;
	--hcos-text-color: #fff;
	--hcos-content-gap: 8px;
	--hcos-section-gap: 12px;
	--hcos-top-gap: 1px;
	--hcos-mobile-content-icon-size: 42px;
	--hcos-label-distance: 12px;
	--hcos-label-max-width: 170px;
	--hcos-content-orbit-gap: 10px;
	--hcos-center-auto-size: 590px;
	--hcos-center-border: rgba(255,255,255,.18);
	--hcos-node-fill: var(--hcos-main-circle-bg);
	--hcos-node-border: transparent;
	--hcos-active-icon-color: #0D2B4A;
	--hcos-node-radius: 150px;
	--hcos-orbit-shell-size: 660px;
	--hcos-outer-shell-size: 0px;
	--hcos-orbit-shell-bg: transparent;
	--hcos-outer-shell-bg: transparent;
	--hcos-wheel-rotation: 0deg;
	--hcos-wheel-counter-rotation: 0deg;
	--hcos-node-scale: 1;
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	place-items: center;
	width: 100%;
	min-height: 0;
	overflow: hidden;
	isolation: isolate;
	background: transparent;
	color: #fff;
	box-sizing: border-box;
	contain: layout paint;
	border-radius: 0;
}


/* Smart responsive content defaults live in a zero-specificity block. This lets
 * the later compact breakpoints replace them, while Elementor's generated
 * wrapper selectors still override every value selected by the user. */
:where(.hcos-orbit) {
	--hcos-mobile-center-ratio: 79;
	--hcos-mobile-content-width: 88%;
	--hcos-mobile-content-height: 92%;
	--hcos-mobile-content-justify: space-evenly;
	--hcos-mobile-content-offset-y: 0px;
	--hcos-mobile-min-fit-scale: 88;
	--hcos-mobile-panel-pad-top: 4px;
	--hcos-mobile-panel-pad-right: 6px;
	--hcos-mobile-panel-pad-bottom: 4px;
	--hcos-mobile-panel-pad-left: 6px;
	--hcos-mobile-eyebrow-size: 11px;
	--hcos-mobile-eyebrow-line-height: 1.14;
	--hcos-mobile-subtitle-size: 11.5px;
	--hcos-mobile-subtitle-line-height: 1.2;
	--hcos-mobile-title-size: 16px;
	--hcos-mobile-title-line-height: 1.08;
	--hcos-mobile-description-size: 11.4px;
	--hcos-mobile-description-line-height: 1.3;
	--hcos-mobile-node-icon-size: 21px;
	--hcos-mobile-node-label-size: 8.5px;
	--hcos-mobile-node-scale: .74;
}

/* Reference-site typography and color isolation. Custom fonts are used only when
   the host site already defines them; otherwise the widget inherits the site's font. */
.hcos-orbit {
	--hcos-font-display: var(--font-primary-regular, inherit);
	--hcos-font-body: var(--font-secondary-regular, inherit);
}

:where(.hcos-orbit) .hcos-panel__eyebrow,
:where(.hcos-orbit) .hcos-panel__subtitle,
:where(.hcos-orbit) .hcos-panel__description,
:where(.hcos-orbit) .hcos-node__label,
:where(.hcos-orbit) .hcos-panel__button {
	font-family: var(--hcos-font-body);
}

:where(.hcos-orbit) .hcos-panel__title {
	font-family: var(--hcos-font-display);
}

/* Prevent broad theme rules such as `.bg-primary-3 *` from recoloring the widget.
   :where() keeps defaults weak enough for Elementor Style controls to win. */
:where(.hcos-orbit) .hcos-panel,
:where(.hcos-orbit) .hcos-panel__eyebrow,
:where(.hcos-orbit) .hcos-panel__title,
:where(.hcos-orbit) .hcos-panel__subtitle,
:where(.hcos-orbit) .hcos-panel__description,
:where(.hcos-orbit) .hcos-node__label,
:where(.hcos-orbit) .hcos-node__button,
:where(.hcos-orbit) .hcos-linear-nav__button {
	color: var(--hcos-item-text, var(--hcos-text-color));
}


.hcos-stage-square {
	width: min(100%, var(--hcos-orbit-size));
	aspect-ratio: 1;
	margin-inline: auto;
}

.hcos-stage-full {
	width: 100%;
	min-height: min(96vw, var(--hcos-orbit-size));
}

/*
 * Intrinsic layout guard.
 *
 * Most of the visual parts inside the canvas are absolutely positioned. The
 * canvas normally reserves its own square height through `aspect-ratio`, but a
 * fixed-height/absolute Elementor wrapper or an aggressive theme rule can
 * collapse that space on tablet and mobile. This extra grid item is enabled on
 * responsive viewports and gives the widget a reliable in-flow footprint.
 */
.hcos-orbit__layout-spacer {
	display: none;
	grid-area: 1 / 1;
	min-width: 0;
	width: min(100%, var(--hcos-orbit-size));
	max-width: 100%;
	aspect-ratio: 1 / 1;
	visibility: hidden;
	pointer-events: none;
}

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

.hcos-orbit:focus-visible {
	outline: 2px solid var(--hcos-accent);
	outline-offset: 4px;
}

.hcos-orbit__canvas {
	position: relative;
	grid-area: 1 / 1;
	min-width: 0;
	width: min(100%, var(--hcos-orbit-size));
	aspect-ratio: 1;
	margin-inline: auto;
	isolation: isolate;
}

.hcos-orbit__canvas::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: var(--hcos-main-circle-size);
	height: var(--hcos-main-circle-size);
	border-radius: 50%;
	transform: translate(-50%, -50%);
	background: var(--hcos-main-circle-bg);
	pointer-events: none;
	z-index: 0;
}

.hcos-orbit__canvas::after {
	display: none;
	content: none;
}

.hcos-rings,
.hcos-connectors,
.hcos-nodes,
.hcos-center {
	position: absolute;
	inset: 50% auto auto 50%;
	transform: translate(-50%, -50%);
}

.hcos-connectors,
.hcos-nodes {
	transform: translate(-50%, -50%) rotate(var(--hcos-wheel-rotation));
	transform-origin: 50% 50%;
	transition: transform .9s cubic-bezier(.22,.76,.24,1);
}

.hcos-no-wheel-transition .hcos-connectors,
.hcos-no-wheel-transition .hcos-nodes {
	transition: none !important;
}

.hcos-no-wheel-transition .hcos-node__button,
.hcos-no-wheel-transition .hcos-node__label {
	transition: none !important;
}

.hcos-rings {
	z-index: 0;
	width: 100%;
	height: 100%;
	display: none;
	opacity: 0 !important;
	pointer-events: none;
	transition: opacity .45s ease;
}

.hcos-ring {
	position: absolute;
	inset: 50% auto auto 50%;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	transition: background .75s cubic-bezier(.2,.8,.2,1), filter .75s ease;
}

.hcos-ring--1 { width: 100%; height: 100%; background: var(--hcos-ring-1); }
.hcos-ring--2 { width: calc(100% - var(--hcos-ring-gap) * 2); height: calc(100% - var(--hcos-ring-gap) * 2); background: var(--hcos-ring-2); }
.hcos-ring--3 { width: calc(100% - var(--hcos-ring-gap) * 4); height: calc(100% - var(--hcos-ring-gap) * 4); background: var(--hcos-ring-3); }
.hcos-ring--4 { width: calc(100% - var(--hcos-ring-gap) * 6); height: calc(100% - var(--hcos-ring-gap) * 6); background: var(--hcos-ring-4); }
.hcos-ring--5 { width: calc(100% - var(--hcos-ring-gap) * 8); height: calc(100% - var(--hcos-ring-gap) * 8); background: var(--hcos-ring-5); }

.hcos-connectors {
	z-index: 3;
	width: var(--hcos-orbit-shell-size);
	height: var(--hcos-orbit-shell-size);
	overflow: visible;
	pointer-events: none;
}

.hcos-svg-line {
	fill: none;
	stroke: var(--hcos-track-color);
	stroke-width: 1;
	vector-effect: non-scaling-stroke;
	stroke-linecap: round;
	transition: opacity .35s ease, stroke .35s ease, stroke-width .35s ease, filter .35s ease;
	opacity: .7;
}

.hcos-svg-line--track {
	opacity: 1;
}

.hcos-svg-line--spoke {
	opacity: .32;
}

.hcos-svg-line--active-segment {
	display: none;
}


.hcos-svg-line--active-player {
	opacity: 0;
	stroke: var(--hcos-player-color);
	stroke-width: 2.5;
	stroke-linecap: round;
	filter: none;
}

.hcos-orbit.is-autoplaying .hcos-svg-line--active-player {
	opacity: 1;
}

.hcos-svg-line--active-player.is-running {
	animation: hcos-segment-progress var(--hcos-segment-duration, 6000ms) linear forwards;
}

.hcos-svg-line.is-active {
	opacity: 1;
	stroke: var(--hcos-player-color);
	stroke-width: 2.5;
}

.hcos-orbit.has-line-animation .hcos-svg-line--spoke.is-active { animation: hcos-line-flow 1.3s linear infinite; }
.hcos-orbit.has-line-glow .hcos-svg-line--active-player,
.hcos-orbit.has-line-glow .hcos-svg-line--spoke.is-active { filter: none; }

@keyframes hcos-line-flow { to { stroke-dashoffset: -48; } }
@keyframes hcos-segment-progress { to { stroke-dashoffset: 0; } }

.hcos-center {
	z-index: 2;
	display: grid;
	place-items: center;
	width: var(--hcos-center-size);
	height: var(--hcos-center-size);
	max-width: 100%;
	max-height: 100%;
	border-radius: 50%;
	border: 0 solid transparent;
	background: var(--hcos-center-bg);
	transition: background .65s cubic-bezier(.2,.8,.2,1), box-shadow .65s ease, border-color .35s ease;
	box-shadow: none;
	overflow: hidden;
}

.hcos-center-autofit .hcos-center {
	width: min(calc(var(--hcos-orbit-size) - 20px), var(--hcos-center-auto-size));
	height: min(calc(var(--hcos-orbit-size) - 20px), var(--hcos-center-auto-size));
}

.hcos-orbit[data-gradient-type="linear"] .hcos-center,
.hcos-orbit[data-gradient-type="solid"] .hcos-center {
	background: var(--hcos-center-bg);
}

.hcos-panels {
	position: relative;
	width: 100%;
	height: 100%;
	display: grid;
	place-items: center;
}

.hcos-panel {
	--hcos-enter-y: 0;
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	padding: 42px;
	color: var(--hcos-item-text, var(--hcos-text-color));
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(var(--hcos-enter-y));
	transition: opacity .38s ease, transform .38s ease, filter .38s ease, visibility 0s linear .38s;
}

.hcos-has-linear-nav .hcos-panel__content {
	padding-bottom: 34px;
}

.hcos-panel__content {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 100%;
	gap: var(--hcos-section-gap);
}

.hcos-panel__top,
.hcos-panel__bottom {
	display: flex;
	flex-direction: column;
	align-items: inherit;
	width: 100%;
	max-width: 100%;
}

.hcos-panel__top { gap: var(--hcos-top-gap); }
.hcos-panel__bottom { gap: var(--hcos-content-gap); }

.hcos-panel__mobile-icon { display: none !important; }


.hcos-panel.is-active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0) scale(1);
	filter: none;
	transition-delay: .08s;
}

.hcos-animation-fade-up .hcos-panel { --hcos-enter-y: 18px; }
.hcos-animation-zoom .hcos-panel { transform: scale(.93); }
.hcos-animation-blur .hcos-panel { filter: blur(12px); transform: scale(.98); }
.hcos-animation-slide-x .hcos-panel { transform: translateX(24px); }


.hcos-align-start .hcos-panel__content { align-items: flex-start; }
.hcos-align-center .hcos-panel__content { align-items: center; }
.hcos-align-end .hcos-panel__content { align-items: flex-end; }

.hcos-panel__eyebrow,
.hcos-panel__title,
.hcos-panel__subtitle,
.hcos-panel__description {
	margin: 0 !important;
	padding: 0;
	max-width: 100%;
}

.hcos-panel__eyebrow {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .11em;
	text-transform: uppercase;
	line-height: 1.5;
	color: var(--hcos-item-text, rgba(255,255,255,.86));
}

.hcos-panel__title {
	font-size: clamp(24px, 3vw, 38px);
	font-weight: 500;
	line-height: 1.05;
	letter-spacing: -.035em;
	color: var(--hcos-item-text, #fff);
}

.hcos-panel__subtitle {
	font-size: clamp(13px, 1.5vw, 18px);
	font-weight: 600;
	line-height: 1.45;
	color: var(--hcos-item-text, rgba(255,255,255,.92));
}

.hcos-panel__description {
	font-size: clamp(12px, 1.15vw, 15px);
	line-height: 1.8;
	color: var(--hcos-item-text, rgba(255,255,255,.82));
	max-width: 46ch;
}

.hcos-panel__description > :first-child { margin-top: 0; }
.hcos-panel__description > :last-child { margin-bottom: 0; }

.hcos-panel__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: 2px;
	padding: 11px 22px;
	border: 0;
	border-radius: 999px;
	background: #fff;
	color: #0b2742;
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	transition: transform .25s ease, background .25s ease, color .25s ease, box-shadow .25s ease;
}

.hcos-panel__button:hover,
.hcos-panel__button:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 10px 28px rgba(0,0,0,.22);
	text-decoration: none;
}

.hcos-panel__button svg { width: 17px; height: 17px; transform: scaleX(var(--hcos-arrow-dir, 1)); }
[dir="rtl"] .hcos-panel__button svg { --hcos-arrow-dir: -1; }

.hcos-linear-nav {
	position: absolute;
	left: 50%;
	bottom: 8%;
	z-index: 6;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	width: 180px;
	max-width: 58%;
	transform: translateX(-50%);
}

.hcos-linear-nav__button {
	position: relative;
	flex: 1 1 0;
	height: 5px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: rgba(255,255,255,.28);
	overflow: hidden;
	cursor: pointer;
}

.hcos-linear-nav__button:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

.hcos-linear-nav__fill {
	position: absolute;
	inset: 0;
	display: block;
	background: #fff;
	transform: scaleX(0);
	transform-origin: left center;
}

[dir="rtl"] .hcos-linear-nav__fill {
	transform-origin: right center;
}

.hcos-linear-nav__button.is-complete .hcos-linear-nav__fill {
	transform: scaleX(1);
}

.hcos-linear-nav__button.is-active .hcos-linear-nav__fill {
	transform: scaleX(0);
}

.hcos-linear-nav__button.is-active .hcos-linear-nav__fill.is-running {
	animation: hcos-linear-progress var(--hcos-duration, 6000ms) linear forwards;
}

@keyframes hcos-linear-progress {
	to { transform: scaleX(1); }
}

.hcos-no-linear-nav .hcos-linear-nav { display: none; }

.hcos-nodes {
	z-index: 4;
	width: var(--hcos-orbit-shell-size);
	height: var(--hcos-orbit-shell-size);
	pointer-events: none;
}

.hcos-node {
	position: absolute;
	left: 50%;
	top: 50%;
	display: flex;
	align-items: center;
	gap: 12px;
	transform: translate(-50%, -50%);
	pointer-events: auto;
	transition: left .45s cubic-bezier(.2,.8,.2,1), top .45s cubic-bezier(.2,.8,.2,1);
}

.hcos-node__button {
	--hcos-node-scale: 1;
	position: relative;
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	width: var(--hcos-node-size);
	height: var(--hcos-node-size);
	padding: 0;
	border: 0 solid transparent;
	border-radius: var(--hcos-node-radius);
	background: transparent;
	color: #fff;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	transform: rotate(var(--hcos-wheel-counter-rotation)) scale(var(--hcos-node-scale));
	transition: transform .9s cubic-bezier(.22,.76,.24,1), background .35s ease, color .35s ease, border-color .35s ease, box-shadow .35s ease;
}

.hcos-node__button::before {
	display: none;
	content: none;
}

.hcos-node__button:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 4px;
}

.hcos-node.is-active .hcos-node__button {
	color: inherit;
}


.hcos-node-has-bg .hcos-node__button {
	background: var(--hcos-node-fill, var(--hcos-gradient-end));
	border-width: 0;
	border-color: transparent;
	border-radius: var(--hcos-node-radius);
	backdrop-filter: none;
	box-shadow: none;
}

.hcos-node-has-bg .hcos-node.is-active .hcos-node__button {
	background: var(--hcos-node-fill, var(--hcos-gradient-end));
	color: inherit;
	border-color: var(--hcos-node-border, transparent);
	box-shadow: none;
}

.hcos-node-no-bg .hcos-node__button,
.hcos-node-no-bg .hcos-node.is-active .hcos-node__button {
	background: transparent !important;
	border-color: transparent !important;
	box-shadow: none !important;
	backdrop-filter: none;
}

@supports not (color: color-mix(in srgb, red, blue)) {
	.hcos-node.is-active .hcos-node__button { box-shadow: 0 0 0 5px rgba(255,255,255,.18), 0 0 28px rgba(255,255,255,.32); }
}

.hcos-node-no-bg .hcos-node.is-active .hcos-node__button {
	box-shadow: none !important;
}

.hcos-node.is-active .hcos-node__button::before {
	border-color: var(--hcos-node-border, color-mix(in srgb, var(--hcos-item-accent) 70%, #fff));
	transform: scale(1.03);
}

.hcos-node-no-bg .hcos-node__button::before,
.hcos-node-no-bg .hcos-node__pulse {
	display: none;
}

.hcos-node-no-bg .hcos-node.is-active .hcos-node__icon {
	color: var(--hcos-active-icon-color) !important;
	filter: drop-shadow(0 0 6px color-mix(in srgb, var(--hcos-active-icon-color) 72%, transparent));
}

.hcos-node__pulse { display:none; }


.hcos-node__icon {
	display: grid;
	place-items: center;
	font-size: 30px;
	line-height: 1;
	transition: transform .3s ease, color .3s ease, filter .3s ease;
}
.hcos-node__icon svg { display: block; width: 1em; height: 1em; fill: currentColor; }
.hcos-node.is-active .hcos-node__icon {
	color: var(--hcos-active-icon-color) !important;
	transform: scale(1.06);
}

.hcos-node__label {
	position: absolute;
	width: max-content;
	max-width: var(--hcos-label-max-width);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.35;
	color: #fff;
	text-shadow: 0 2px 10px rgba(0,0,0,.35);
	white-space: normal;
	transform: rotate(var(--hcos-wheel-counter-rotation));
	transition: transform .9s cubic-bezier(.22,.76,.24,1), opacity .25s ease;
}

.hcos-label-hidden .hcos-node__label { display: none; }
.hcos-label-below .hcos-node__label { top: calc(100% + var(--hcos-label-distance)); left: 50%; transform: translateX(-50%) rotate(var(--hcos-wheel-counter-rotation)); text-align: center; }
.hcos-label-auto .hcos-node[data-label-side="right"] .hcos-node__label { left: calc(100% + var(--hcos-label-distance)); text-align: start; }
.hcos-label-auto .hcos-node[data-label-side="left"] .hcos-node__label { right: calc(100% + var(--hcos-label-distance)); text-align: end; }
.hcos-label-auto .hcos-node[data-label-side="top"] .hcos-node__label { bottom: calc(100% + var(--hcos-label-distance)); left: 50%; transform: translateX(-50%) rotate(var(--hcos-wheel-counter-rotation)); text-align: center; }
.hcos-label-auto .hcos-node[data-label-side="bottom"] .hcos-node__label { top: calc(100% + var(--hcos-label-distance)); left: 50%; transform: translateX(-50%) rotate(var(--hcos-wheel-counter-rotation)); text-align: center; }

.hcos-preset-digital-blue {
	background: radial-gradient(circle at 50% 50%, #0c3158 0%, #06182e 58%, #03101f 100%);
}
.hcos-preset-digital-blue::before,
.hcos-preset-violet::before,
.hcos-preset-neon-green::before,
.hcos-preset-luxury-gold::before {
	content: "";
	position: absolute;
	inset: -30%;
	z-index: -1;
	background: radial-gradient(circle at 60% 30%, color-mix(in srgb, var(--hcos-accent) 28%, transparent), transparent 35%);
	pointer-events: none;
	transition: background .7s ease;
}



.hcos-preset-reference-lime::before,
.hcos-preset-reference-lime::after {
	display: none !important;
	content: none !important;
}
:where(.hcos-preset-reference-lime) {
	--hcos-reference-dark: #192D38;
	--hcos-reference-lime: #B9FF00;
	--hcos-reference-green: #05E560;
	--hcos-reference-light: #BEDAE5;
	--hcos-text-color: #192D38;
	--hcos-accent: #192D38;
	--hcos-gradient-start: #B9FF00;
	--hcos-gradient-end: #B9FF00;
	--hcos-ring-1: #365B24;
	--hcos-ring-2: #547D20;
	--hcos-ring-3: #75A918;
	--hcos-ring-4: #94D20B;
	--hcos-ring-5: #B9FF00;
	--hcos-main-circle-bg: #B9FF00;
	--hcos-center-bg: #B9FF00;
	--hcos-node-fill: var(--hcos-main-circle-bg);
	--hcos-node-border: transparent;
	--hcos-center-border: transparent;
	--hcos-orbit-shell-bg: transparent;
	--hcos-outer-shell-bg: #547D20;
	background: transparent;
}

:where(.hcos-preset-reference-lime) .hcos-center {
	background: var(--hcos-center-bg);
	border-color: transparent;
	box-shadow: none;
}

:where(.hcos-preset-reference-lime) .hcos-panel {
	--hcos-item-text: #192D38 !important;
}

:where(.hcos-preset-reference-lime) .hcos-panel__eyebrow {
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.35;
	text-transform: none;
}

:where(.hcos-preset-reference-lime) .hcos-panel__subtitle {
	font-size: 14px;
	font-weight: 400;
	line-height: 1.45;
}

:where(.hcos-preset-reference-lime) .hcos-panel__title {
	font-size: clamp(36px, 4.3vw, 42px);
	font-weight: 700;
	line-height: 1.14;
	letter-spacing: 0;
}

:where(.hcos-preset-reference-lime) .hcos-panel__description {
	font-size: 14px;
	line-height: 1.55;
	max-width: 32ch;
}

:where(.hcos-preset-reference-lime) .hcos-svg-line,
:where(.hcos-preset-reference-lime) .hcos-svg-line--track,
:where(.hcos-preset-reference-lime) .hcos-svg-line--spoke {
	stroke: var(--hcos-track-color);
	opacity: 1;
}

:where(.hcos-preset-reference-lime) .hcos-svg-line--active-segment {
	display: none;
}

:where(.hcos-preset-reference-lime) .hcos-svg-line--active-player {
	stroke: var(--hcos-player-color);
	filter: none;
	opacity: 1;
}

:where(.hcos-preset-reference-lime) .hcos-node__button,
:where(.hcos-preset-reference-lime) .hcos-node.is-active .hcos-node__button,
:where(.hcos-preset-reference-lime) .hcos-node__icon,
:where(.hcos-preset-reference-lime) .hcos-node__label {
	color: #192D38;
	text-shadow: none;
}
:where(.hcos-preset-reference-lime) .hcos-node-has-bg .hcos-node__button,
:where(.hcos-preset-reference-lime) .hcos-node-has-bg .hcos-node.is-active .hcos-node__button {
	background: var(--hcos-node-fill);
	border-color: transparent;
	box-shadow: none;
	border-radius: var(--hcos-node-radius);
}


:where(.hcos-preset-reference-lime) .hcos-linear-nav__button {
	background: rgba(25,45,56,.26);
}

:where(.hcos-preset-reference-lime) .hcos-linear-nav__fill {
	background: #192D38;
}

:where(.hcos-preset-reference-lime) .hcos-panel__button {
	background: #192D38;
	color: #B9FF00;
}

.hcos-preset-neon-green {
	background: radial-gradient(circle, #314526 0%, #182617 57%, #0c150d 100%);
	--hcos-ring-1: #172515;
	--hcos-ring-2: #29411f;
	--hcos-ring-3: #486c2f;
	--hcos-ring-4: #86bd3d;
	--hcos-ring-5: #dfff63;
}

.hcos-preset-violet {
	background: radial-gradient(circle, #2e2050 0%, #171027 58%, #090611 100%);
	--hcos-ring-1: #160d2a;
	--hcos-ring-2: #29154c;
	--hcos-ring-3: #47257d;
	--hcos-ring-4: #7043b0;
	--hcos-ring-5: #b082ff;
}

.hcos-preset-luxury-gold {
	background: radial-gradient(circle, #332b17 0%, #17130b 58%, #080704 100%);
	--hcos-ring-1: #161309;
	--hcos-ring-2: #2b2411;
	--hcos-ring-3: #51431d;
	--hcos-ring-4: #8d732c;
	--hcos-ring-5: #e0bc54;
}


@media (max-width: 767px) {
	.hcos-orbit {
		--hcos-section-gap: 0px;
		--hcos-top-gap: 0px;
		--hcos-content-gap: 0px;
	}
}

@media (max-width: 1024px) {
	.hcos-orbit {
		/* Keep paint isolation, but do not let layout containment interfere with
		   Elementor's responsive height calculation. */
		contain: paint;
	}

	.hcos-stage-square {
		height: auto !important;
		aspect-ratio: auto;
	}

	.hcos-orbit__layout-spacer {
		display: block;
		width: 100%;
		max-width: var(--hcos-orbit-size);
		min-height: var(--hcos-runtime-stage-height, 0px);
	}

	.hcos-orbit__canvas {
		align-self: center;
		justify-self: center;
		width: 100%;
		max-width: var(--hcos-orbit-size);
		height: var(--hcos-runtime-canvas-size, auto);
		min-height: var(--hcos-runtime-canvas-size, 0px);
	}

	.hcos-orbit.hcos-responsive-height-guard {
		height: auto !important;
		min-height: var(--hcos-runtime-root-height, 0px) !important;
		aspect-ratio: auto !important;
	}

	/* The class is added only while the responsive JavaScript height guard is
	   active, so desktop and intentionally custom desktop heights stay intact. */
	.hcos-widget-height-guard,
	.hcos-widget-height-guard > .elementor-widget-container {
		height: auto !important;
		min-height: var(--hcos-widget-reserved-height, auto) !important;
	}

	.hcos-node__label { font-size: 12px; }
	.hcos-panel__description { max-width: 38ch; }
}


@media (max-width: 767px) {
	.hcos-preset-reference-lime:not(.hcos-mobile-auto-layout) .hcos-panel__eyebrow { font-size: 12px; }
	.hcos-preset-reference-lime:not(.hcos-mobile-auto-layout) .hcos-panel__subtitle { font-size: 13px; }
	.hcos-preset-reference-lime:not(.hcos-mobile-auto-layout) .hcos-panel__title { font-size: clamp(23px, 7vw, 28px); }
	.hcos-preset-reference-lime:not(.hcos-mobile-auto-layout) .hcos-panel__description { font-size: 13px; line-height: 1.5; }
}

@media (max-width: 767px) {
	.hcos-orbit { contain: paint; }
	.hcos-stage-square { width: min(100%, var(--hcos-orbit-size)); }
	.hcos-linear-nav { bottom: 6%; max-width: 46%; }

	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout) .hcos-orbit__canvas,
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-orbit__canvas {
		width: min(100%, var(--hcos-orbit-size));
		max-width: 100%;
	}
	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout),
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) {
		--hcos-main-circle-size: min(calc(100% - 16px), 86vw, 350px);
		--hcos-center-size: min(calc(100% - 76px), 66vw, 274px);
		--hcos-node-size: 40px;
		--hcos-radius-factor: 43;
		--hcos-orbit-shell-size: min(calc(100% - 46px), 78vw, 314px);
		--hcos-outer-shell-size: 0px;
		--hcos-content-orbit-gap: 5px;
	}
	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout) .hcos-panel,
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-panel { padding: 16px 16px 18px; }
	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout) .hcos-panel__content,
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-panel__content { gap: 3px; }
	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout) .hcos-panel__title,
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-panel__title { font-size: clamp(17px, 5.1vw, 23px); line-height: 1.05; letter-spacing: -.02em; }
	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout) .hcos-panel__description,
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-panel__description { font-size: 10px; line-height: 1.36; max-width: 28ch; }
	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout) .hcos-panel__eyebrow,
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-panel__eyebrow { font-size: 6.5px; line-height: 1.2; }
	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout) .hcos-panel__subtitle,
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-panel__subtitle { font-size: 8.5px; line-height: 1.22; }
	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout) .hcos-node__label,
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-node__label { font-size: 7.5px; line-height: 1.1; max-width: 62px; }
	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout) .hcos-node__button,
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-node__button { --hcos-node-scale: .78; }
	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout) .hcos-progress,
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-progress { inset-inline: 17%; bottom: 5%; }
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-node__label { display: none; }
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-node__button { --hcos-node-scale: .74; }

	.hcos-mobile-carousel {
		min-height: auto;
		padding: 28px 14px;
		overflow: hidden;
	}
	.hcos-mobile-carousel .hcos-orbit__canvas {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		justify-self: stretch;
		gap: 24px;
		width: 100%;
		min-width: 0;
		max-width: 100%;
		aspect-ratio: auto;
	}
	.hcos-mobile-carousel .hcos-rings,
	.hcos-mobile-carousel .hcos-connectors { display: none; }
	.hcos-mobile-carousel .hcos-center,
	.hcos-mobile-carousel .hcos-nodes {
		position: relative;
		inset: auto;
		transform: none;
	}
	.hcos-mobile-carousel .hcos-center {
		order: 1;
		width: 100%;
		max-width: var(--hcos-center-size);
		height: auto;
		min-height: 380px;
		max-height: none;
		margin-inline: auto;
		border-radius: 32px;
		aspect-ratio: auto;
	}
	.hcos-mobile-carousel .hcos-nodes {
		order: 2;
		display: flex;
		align-items: flex-start;
		gap: 12px;
		width: 100%;
		min-width: 0;
		height: auto;
		overflow-x: auto;
		overflow-y: visible;
		padding: 8px 4px 14px;
		scroll-snap-type: x mandatory;
		scrollbar-width: thin;
		pointer-events: auto;
	}
	.hcos-mobile-carousel .hcos-node {
		position: relative;
		inset: auto !important;
		left: auto !important;
		top: auto !important;
		transform: none !important;
		flex: 0 0 auto;
		flex-direction: column;
		gap: 8px;
		scroll-snap-align: center;
	}
	.hcos-mobile-carousel .hcos-node__label {
		position: static;
		display: block;
		width: calc(var(--hcos-node-size) + 28px);
		max-width: none;
		font-size: 11px;
		text-align: center !important;
		transform: none !important;
	}
	.hcos-mobile-carousel .hcos-progress { inset-inline: 19%; bottom: 7%; }
}

@media (max-width: 480px) {
	.hcos-panel { padding: 22px 24px 54px; }
	.hcos-has-linear-nav .hcos-panel__content { padding-bottom: 20px; }
	.hcos-linear-nav { bottom: 6%; max-width: 44%; }
	.hcos-panel__title { font-size: clamp(21px, 6.5vw, 28px); line-height: 1.08; }
	.hcos-panel__description { font-size: 11px; line-height: 1.48; max-width: 34ch; }
	.hcos-panel__eyebrow { font-size: 8px; line-height: 1.35; }
	.hcos-panel__subtitle { font-size: 10.5px; line-height: 1.35; }

	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout),
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) {
		--hcos-main-circle-size: min(calc(100% - 22px), 82vw, 312px);
		--hcos-center-size: min(calc(100% - 78px), 62vw, 246px);
		--hcos-node-size: 36px;
		--hcos-radius-factor: 44;
		--hcos-orbit-shell-size: min(calc(100% - 54px), 74vw, 274px);
	}
	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout) .hcos-panel,
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-panel { padding: 12px 14px 14px; }
	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout) .hcos-panel__content,
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-panel__content { gap: 1px; }
	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout) .hcos-panel__title,
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-panel__title { font-size: clamp(14px, 4.6vw, 19px); line-height: 1.04; }
	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout) .hcos-panel__description,
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-panel__description { font-size: 8.8px; line-height: 1.28; max-width: 26ch; }
	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout) .hcos-panel__eyebrow,
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-panel__eyebrow { font-size: 5.8px; line-height: 1.15; }
	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout) .hcos-panel__subtitle,
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-panel__subtitle { font-size: 7.8px; line-height: 1.16; }
	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout) .hcos-node__label,
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-node__label { font-size: 6.8px; max-width: 52px; }
	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout) .hcos-node__button,
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-node__button { --hcos-node-scale: .7; }
	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout) .hcos-progress,
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-progress { inset-inline: 19%; bottom: 4%; }
}

@media (max-width: 390px) {
	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout),
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) {
		--hcos-main-circle-size: min(calc(100% - 24px), 80vw, 294px);
		--hcos-center-size: min(calc(100% - 86px), 58vw, 226px);
		--hcos-node-size: 34px;
		--hcos-radius-factor: 44;
		--hcos-orbit-shell-size: min(calc(100% - 62px), 70vw, 252px);
	}
	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout) .hcos-panel,
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-panel { padding: 10px 12px 12px; }
	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout) .hcos-panel__title,
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-panel__title { font-size: clamp(13px, 4.2vw, 17px); line-height: 1.04; }
	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout) .hcos-panel__description,
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-panel__description { font-size: 8.2px; line-height: 1.24; max-width: 24ch; }
	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout) .hcos-panel__subtitle,
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-panel__subtitle { font-size: 7px; line-height: 1.12; }
	.hcos-mobile-orbit:not(.hcos-mobile-auto-layout) .hcos-node__label,
	.hcos-mobile-compact:not(.hcos-mobile-auto-layout) .hcos-node__label { font-size: 6.4px; max-width: 46px; }
}

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

/*
 * Smart responsive content layout (v3.4)
 *
 * The JavaScript class is applied at the breakpoint selected in Elementor.
 * Low-specificity :where() defaults intentionally let Elementor's generated
 * desktop/tablet/mobile Typography controls win. The dedicated responsive
 * Typography section uses stronger generated selectors whenever the user sets a value.
 */
:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-center {
	z-index: 3;
	overflow: visible;
}

:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-connectors { z-index: 2; }
:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-nodes { z-index: 4; }

:where(.hcos-orbit.hcos-mobile-auto-layout.hcos-align-start) .hcos-panel { text-align: start; }
:where(.hcos-orbit.hcos-mobile-auto-layout.hcos-align-center) .hcos-panel { text-align: center; }
:where(.hcos-orbit.hcos-mobile-auto-layout.hcos-align-end) .hcos-panel { text-align: end; }

:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-panel {
	padding:
		var(--hcos-mobile-panel-pad-top)
		var(--hcos-mobile-panel-pad-right)
		var(--hcos-mobile-panel-pad-bottom)
		var(--hcos-mobile-panel-pad-left);
}

:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-panel__content {
	width: min(100%, var(--hcos-mobile-content-width));
	max-width: min(100%, var(--hcos-mobile-content-width));
	min-height: min(100%, var(--hcos-mobile-content-height));
	gap: var(--hcos-section-gap);
	justify-content: var(--hcos-mobile-content-justify);
	padding-bottom: 0;
	margin-inline: auto;
	transform: translate3d(0, var(--hcos-mobile-content-offset-y), 0) scale(var(--hcos-panel-fit-scale, 1));
	transform-origin: 50% 50%;
	will-change: transform;
}

:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-panel__top,
:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-panel__bottom {
	width: 100%;
	max-width: none;
	align-items: center;
}

:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-panel__top {
	gap: var(--hcos-top-gap);
}

:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-panel__bottom {
	gap: var(--hcos-content-gap);
}

:where(.hcos-orbit.hcos-mobile-auto-layout.hcos-align-start) .hcos-panel__top,
:where(.hcos-orbit.hcos-mobile-auto-layout.hcos-align-start) .hcos-panel__bottom { align-items: flex-start; }

:where(.hcos-orbit.hcos-mobile-auto-layout.hcos-align-end) .hcos-panel__top,
:where(.hcos-orbit.hcos-mobile-auto-layout.hcos-align-end) .hcos-panel__bottom { align-items: flex-end; }

:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-panel__eyebrow,
:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-panel__title,
:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-panel__subtitle,
:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-panel__description {
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
	overflow-wrap: break-word;
	word-break: normal;
}

:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-panel__eyebrow {
	font-size: var(--hcos-mobile-eyebrow-size);
	line-height: var(--hcos-mobile-eyebrow-line-height);
	letter-spacing: 0;
	text-wrap: balance;
}

:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-panel__subtitle {
	font-size: var(--hcos-mobile-subtitle-size);
	line-height: var(--hcos-mobile-subtitle-line-height);
	text-wrap: balance;
}

:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-panel__title {
	font-size: var(--hcos-mobile-title-size);
	line-height: var(--hcos-mobile-title-line-height);
	letter-spacing: -0.01em;
	text-wrap: balance;
}

:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-panel__description {
	font-size: var(--hcos-mobile-description-size);
	line-height: var(--hcos-mobile-description-line-height);
	text-wrap: pretty;
}

/* Rich-text child tags inherit the Typography selected on the Description
 * wrapper. Only inheritance is important; the wrapper itself stays fully
 * controllable from Elementor on every device. */
:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-panel__description p,
:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-panel__description li,
:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-panel__description span,
:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-panel__description strong,
:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-panel__description em {
	font-family: inherit !important;
	font-size: inherit !important;
	font-style: inherit !important;
	font-weight: inherit !important;
	letter-spacing: inherit !important;
	line-height: inherit !important;
	text-transform: inherit !important;
}

:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-panel__description p,
:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-panel__description ul,
:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-panel__description ol {
	margin: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

/* Orbital nodes already provide navigation in responsive auto-layout mode. */
:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-linear-nav { display: none !important; }

:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-node__button {
	--hcos-node-scale: var(--hcos-mobile-node-scale);
}

/* The normal responsive Icon Size and Label Typography controls now override
 * these fallbacks because no forced !important font size remains. */
:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-node__icon {
	font-size: var(--hcos-mobile-node-icon-size);
}

:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-node__icon svg {
	width: 1em;
	height: 1em;
}

:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-node__label {
	font-size: var(--hcos-mobile-node-label-size);
	line-height: 1.1;
	max-width: var(--hcos-label-max-width, 58px);
}

:where(.hcos-orbit.hcos-mobile-auto-layout.hcos-mobile-compact) .hcos-node__label { display: none; }

:where(.hcos-orbit.hcos-mobile-auto-layout) .hcos-panel-needs-fit .hcos-panel__content {
	backface-visibility: hidden;
	-webkit-font-smoothing: antialiased;
}

/* Small-screen defaults have zero specificity, so values generated by any
 * Elementor responsive control still win even when stylesheet order changes. */
@media (max-width: 480px) {
	:where(.hcos-orbit.hcos-mobile-auto-layout) {
		--hcos-mobile-center-ratio: 82;
		--hcos-mobile-content-width: 84%;
		--hcos-mobile-content-height: 94%;
		--hcos-mobile-panel-pad-top: 3px;
		--hcos-mobile-panel-pad-right: 5px;
		--hcos-mobile-panel-pad-bottom: 3px;
		--hcos-mobile-panel-pad-left: 5px;
		--hcos-mobile-eyebrow-size: 11px;
		--hcos-mobile-eyebrow-line-height: 1.12;
		--hcos-mobile-subtitle-size: 11.3px;
		--hcos-mobile-subtitle-line-height: 1.16;
		--hcos-mobile-title-size: 16px;
		--hcos-mobile-title-line-height: 1.07;
		--hcos-mobile-description-size: 11.5px;
		--hcos-mobile-description-line-height: 1.28;
		--hcos-mobile-node-icon-size: 18px;
		--hcos-mobile-node-scale: .7;
	}
}

@media (max-width: 360px) {
	:where(.hcos-orbit.hcos-mobile-auto-layout) {
		--hcos-mobile-content-width: 82%;
		--hcos-mobile-panel-pad-right: 4px;
		--hcos-mobile-panel-pad-left: 4px;
	}
}

@media (max-width: 320px) {
	:where(.hcos-orbit.hcos-mobile-auto-layout) {
		--hcos-mobile-eyebrow-size: 10.5px;
		--hcos-mobile-subtitle-size: 10.6px;
		--hcos-mobile-title-size: 15px;
		--hcos-mobile-description-size: 10.8px;
		--hcos-mobile-description-line-height: 1.24;
	}
}

