/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.4
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* ================= 404 PAGE  ================= */

.lnk-404-page .site-main {
	margin: 0;
	padding: 0;
}

.lnk-404 {
	position: relative;
	min-height: calc(100vh - 72px);
	display: flex;
	align-items: center;
	padding: 72px 0 96px;
	overflow: hidden;
	background: var(--lnk-grad-soft, linear-gradient(120deg, #eef4ff 0%, #e8fbff 100%));
}

.lnk-404__bg {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.lnk-404__orb {
	position: absolute;
	border-radius: 50%;
	filter: blur(60px);
	opacity: 0.55;
	animation: lnk404Float 12s ease-in-out infinite;
}

.lnk-404__orb--one {
	width: 320px;
	height: 320px;
	top: -80px;
	right: -60px;
	background: rgba(44, 90, 220, 0.22);
}

.lnk-404__orb--two {
	width: 260px;
	height: 260px;
	bottom: 10%;
	left: -80px;
	background: rgba(95, 227, 248, 0.28);
	animation-delay: -4s;
}

.lnk-404__orb--three {
	width: 180px;
	height: 180px;
	top: 40%;
	left: 55%;
	background: rgba(59, 36, 206, 0.12);
	animation-delay: -8s;
}

@keyframes lnk404Float {
	0%,
	100% {
		transform: translate3d(0, 0, 0) scale(1);
	}
	50% {
		transform: translate3d(0, -18px, 0) scale(1.04);
	}
}

.lnk-404__card {
	position: relative;
	z-index: 1;
	max-width: 640px;
	margin: 0 auto;
	padding: 48px 40px 44px;
	text-align: center;
	background: rgba(255, 255, 255, 0.82);
	border: 1px solid var(--lnk-line, #e6ebf3);
	border-radius: var(--lnk-radius-lg, 24px);
	box-shadow: var(--lnk-shadow, 0 18px 50px -24px rgba(15, 40, 90, 0.25));
	backdrop-filter: blur(12px);
}

.lnk-404__visual {
	margin-bottom: 8px;
}

.lnk-404__code {
	display: inline-block;
	font-family: 'Plus Jakarta Sans', 'Inter', sans-serif;
	font-size: clamp(5rem, 16vw, 7.5rem);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.06em;
	background: var(--lnk-grad, linear-gradient(135deg, #2c5adc 0%, #5fe3f8 100%));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.lnk-404__title {
	margin: 10px 0 14px;
	font-size: clamp(1.75rem, 4vw, 2.35rem);
	font-weight: 800;
}

.lnk-404__lede {
	margin: 0 auto 28px;
}

.lnk-404__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
	margin-bottom: 32px;
}

.lnk-404__links {
	padding-top: 28px;
	border-top: 1px solid var(--lnk-line, #e6ebf3);
}

.lnk-404__links-label {
	display: block;
	margin-bottom: 14px;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--lnk-slate, #54627a);
}

.lnk-404__links-list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
	margin: 0;
	padding: 0;
	list-style: none;
}

.lnk-404__links-list a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 10px 16px;
	border-radius: 999px;
	border: 1px solid var(--lnk-line, #e6ebf3);
	background: #fff;
	font-size: 0.92rem;
	font-weight: 600;
	color: var(--lnk-ink, #0b1220);
	transition: border-color 0.18s ease, color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}

.lnk-404__links-list a:hover {
	border-color: #c9d6ec;
	color: var(--lnk-blue, #2c5adc);
	transform: translateY(-1px);
	box-shadow: var(--lnk-shadow-sm, 0 8px 24px -14px rgba(15, 40, 90, 0.22));
}

.lnk-404__links-list svg {
	opacity: 0.55;
}

@media (max-width: 640px) {
	.lnk-404 {
		padding: 48px 0 72px;
		min-height: calc(100vh - 64px);
	}

	.lnk-404__card {
		padding: 36px 22px 32px;
	}

	.lnk-404__actions {
		flex-direction: column;
		align-items: stretch;
	}

	.lnk-404__actions .lnk-btn {
		width: 100%;
	}
}

/* ================= FLOATING CONTACT  ================= */

.lnk-floating-contact {
	position: fixed;
	right: max(20px, env(safe-area-inset-right, 0px));
	bottom: max(24px, env(safe-area-inset-bottom, 0px));
	z-index: 9990;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 14px 20px 14px 16px;
	border-radius: 999px;
	background: var(--lnk-grad, linear-gradient(135deg, #2c5adc 0%, #5fe3f8 100%));
	box-shadow: 0 14px 36px -12px rgba(44, 90, 220, 0.55);
	color: #fff;
	font-family: 'Plus Jakarta Sans', 'Inter', sans-serif;
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}

.lnk-floating-contact:hover,
.lnk-floating-contact:focus-visible {
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 18px 42px -10px rgba(44, 90, 220, 0.62);
	filter: brightness(1.03);
}

.lnk-floating-contact:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

.lnk-floating-contact__icon {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.18);
}

.lnk-floating-contact__label {
	white-space: nowrap;
}

@media (max-width: 640px) {
	.lnk-floating-contact {
		right: max(16px, env(safe-area-inset-right, 0px));
		bottom: max(18px, env(safe-area-inset-bottom, 0px));
		padding: 12px 16px 12px 12px;
		font-size: 0.88rem;
	}

	.lnk-floating-contact__icon {
		width: 32px;
		height: 32px;
	}
}
