/* ---------- Hero stage ---------- */
.ry-hero { position: relative; isolation: isolate; }
.ry-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background-image:
		radial-gradient(600px circle at 85% 0%, rgba(197, 238, 58, 0.18), transparent 60%),
		linear-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.06) 1px, transparent 1px);
	background-size: auto, 56px 56px, 56px 56px;
	-webkit-mask-image: linear-gradient(180deg, #000 0%, #000 45%, transparent 70%);
	mask-image: linear-gradient(180deg, #000 0%, #000 45%, transparent 70%);
}

/* Spotlight that follows the cursor across the card */
.ry-hero-card { position: relative; isolation: isolate; }
.ry-hero-card::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	pointer-events: none;
	z-index: 0;
	background: radial-gradient(480px circle at var(--mx, 70%) var(--my, 30%), rgba(255, 255, 255, 0.14), transparent 60%);
	opacity: 0;
	transition: opacity 0.4s ease;
}
.ry-hero-card:hover::after { opacity: 1; }
.ry-hero-card > * { position: relative; z-index: 1; }

.ry-hero-media {
	transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
	will-change: transform;
	box-shadow: 0 30px 60px -25px rgba(3, 10, 30, 0.7);
}
.ry-hero-media img { transition: transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1); }
.ry-hero-card:hover .ry-hero-media img { transform: scale(1.05); }

.ry-magnetic { transition: transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1), background-color 0.25s, color 0.25s !important; will-change: transform; }

/* ---------- Header: frosted glass after scrolling ---------- */
[data-elementor-type="header"] > .e-con { transition: background-color 0.35s ease, box-shadow 0.35s ease, backdrop-filter 0.35s ease; }
body.ry-scrolled [data-elementor-type="header"] > .e-con:not(.elementor-sticky__spacer) {
	background-color: rgba(18, 53, 43, 0.92) !important;
	-webkit-backdrop-filter: blur(14px) saturate(140%);
	backdrop-filter: blur(14px) saturate(140%);
	box-shadow: 0 10px 30px -12px rgba(0, 0, 0, 0.45);
}

/* Underline that grows under top-level menu links */
[data-elementor-type="header"] .elementor-nav-menu--main > .elementor-nav-menu > li > a.elementor-item::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 6px;
	width: 0;
	height: 1.5px;
	background: currentColor;
	transition: width 0.3s ease, left 0.3s ease;
	opacity: 1 !important;
}
[data-elementor-type="header"] .elementor-nav-menu--main > .elementor-nav-menu > li:hover > a.elementor-item::after {
	width: 60%;
	left: 20%;
}

/* ---------- Dropdown: deep green panel, lime highlights ---------- */
[data-elementor-type="header"] .elementor-nav-menu--main .sub-menu {
	padding: 8px !important;
	min-width: 250px !important;
	border-radius: 16px !important;
	background: #12352b !important;
	border: 1px solid rgba(255, 255, 255, 0.1) !important;
	box-shadow: 0 28px 56px -18px rgba(9, 32, 25, 0.6) !important;
	overflow: hidden;
	animation: ryDropIn 0.38s cubic-bezier(0.2, 0.8, 0.2, 1) both;
	transform-origin: top center;
}
[data-elementor-type="header"] .elementor-nav-menu--main .sub-menu > li { animation: ryItemIn 0.4s cubic-bezier(0.2, 0.8, 0.2, 1) both; }
[data-elementor-type="header"] .elementor-nav-menu--main .sub-menu > li:nth-child(1) { animation-delay: 0.03s; }
[data-elementor-type="header"] .elementor-nav-menu--main .sub-menu > li:nth-child(2) { animation-delay: 0.06s; }
[data-elementor-type="header"] .elementor-nav-menu--main .sub-menu > li:nth-child(3) { animation-delay: 0.09s; }
[data-elementor-type="header"] .elementor-nav-menu--main .sub-menu > li:nth-child(4) { animation-delay: 0.12s; }
[data-elementor-type="header"] .elementor-nav-menu--main .sub-menu > li:nth-child(5) { animation-delay: 0.15s; }
[data-elementor-type="header"] .elementor-nav-menu--main .sub-menu > li:nth-child(6) { animation-delay: 0.18s; }
[data-elementor-type="header"] .elementor-nav-menu--main .sub-menu > li:nth-child(n+7) { animation-delay: 0.21s; }

[data-elementor-type="header"] .elementor-nav-menu--main .sub-menu a {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	border-radius: 10px;
	color: rgba(255, 255, 255, 0.85) !important;
	background: transparent !important;
	border-left: 0 !important;
	transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1), color 0.2s;
}
/* Spotlight + arrow that follow the cursor inside each item */
[data-elementor-type="header"] .elementor-nav-menu--main .sub-menu a::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	border-radius: inherit;
	background:
		radial-gradient(160px circle at var(--mx, 50%) var(--my, 50%), rgba(197, 238, 58, 0.22), transparent 70%),
		linear-gradient(90deg, rgba(197, 238, 58, 0.1), rgba(197, 238, 58, 0.03));
	opacity: 0;
	transition: opacity 0.25s ease;
}
[data-elementor-type="header"] .elementor-nav-menu--main .sub-menu a::after {
	content: "\2192";
	position: absolute;
	right: 14px;
	top: 50%;
	transform: translate(-8px, -50%);
	opacity: 0;
	transition: transform 0.3s ease, opacity 0.3s ease;
}
[data-elementor-type="header"] .elementor-nav-menu--main .sub-menu a:hover,
[data-elementor-type="header"] .elementor-nav-menu--main .sub-menu a:focus-visible {
	transform: translateX(4px);
	color: #c5ee3a !important;
}
[data-elementor-type="header"] .elementor-nav-menu--main .sub-menu a:hover::before,
[data-elementor-type="header"] .elementor-nav-menu--main .sub-menu a:focus-visible::before { opacity: 1; }
[data-elementor-type="header"] .elementor-nav-menu--main .sub-menu a:hover::after,
[data-elementor-type="header"] .elementor-nav-menu--main .sub-menu a:focus-visible::after { opacity: 1; transform: translate(0, -50%); }

@keyframes ryDropIn {
	from { opacity: 0; transform: translateY(10px) scale(0.97); }
	to { opacity: 1; transform: none; }
}
@keyframes ryItemIn {
	from { opacity: 0; transform: translateY(6px); }
	to { opacity: 1; transform: none; }
}

/* ---------- Custom cursor ---------- */
.ry-cursor-dot,
.ry-cursor-ring {
	position: fixed;
	left: 0;
	top: 0;
	pointer-events: none;
	z-index: 2147483646;
	mix-blend-mode: difference;
	opacity: 0;
	transition: opacity 0.25s ease;
}
.ry-cursor-on .ry-cursor-dot,
.ry-cursor-on .ry-cursor-ring { opacity: 1; }
.ry-cursor-dot::before,
.ry-cursor-ring::before {
	content: "";
	position: absolute;
	border-radius: 50%;
}
.ry-cursor-dot::before { width: 6px; height: 6px; margin: -3px 0 0 -3px; background: #fff; }
.ry-cursor-ring::before {
	width: 38px;
	height: 38px;
	margin: -19px 0 0 -19px;
	border: 1.5px solid #fff;
	transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1), background-color 0.3s ease, border-width 0.3s ease;
}
.ry-cursor-ring.is-link::before { transform: scale(1.6); border-width: 1px; background-color: rgba(255, 255, 255, 0.1); }
.ry-cursor-ring.is-down::before { transform: scale(0.75); }
.ry-cursor-on .ry-hero,
.ry-cursor-on .ry-hero *,
.ry-cursor-on [data-elementor-type="header"],
.ry-cursor-on [data-elementor-type="header"] * { cursor: none !important; }

@media (prefers-reduced-motion: reduce) {
	.ry-hero-media,
	.ry-hero-media img,
	[data-elementor-type="header"] .elementor-nav-menu--main .sub-menu,
	[data-elementor-type="header"] .elementor-nav-menu--main .sub-menu > li { animation: none !important; transition: none !important; }
}
