:root {
	--k7-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
	--k7-ease-soft: cubic-bezier(0.16, 1, 0.3, 1);
	--k7-motion-time: 1250ms;
}

/* Sticky header - desktop only. Keeping backdrop-filter away from the
   ElementsKit mobile wrapper prevents its fixed off-canvas menu from being
   positioned inside the header instead of against the viewport. */
@media (min-width: 1025px) {
	.k7-site-header {
		position: sticky;
		top: 0;
		z-index: 9999;
		background: rgba(255, 255, 255, 0.92);
		-webkit-backdrop-filter: blur(18px);
		backdrop-filter: blur(18px);
		transition: box-shadow 500ms ease, background-color 500ms ease;
	}

	.k7-site-header.k7-header-scrolled {
		background: rgba(255, 255, 255, 0.86);
		box-shadow: 0 12px 34px rgba(0, 0, 0, 0.07);
	}

	body.admin-bar .k7-site-header {
		top: 32px;
	}

	.k7-site-header .elementor-widget-image img {
		transition: transform 500ms var(--k7-ease-out);
	}

	.k7-site-header.k7-header-scrolled .elementor-widget-image img {
		transform: scale(0.88);
	}
}

@media (max-width: 1024px) {
	.k7-site-header,
	.k7-site-header.k7-header-scrolled {
		position: static !important;
		top: auto !important;
		z-index: auto !important;
		background: transparent !important;
		-webkit-backdrop-filter: none !important;
		backdrop-filter: none !important;
		filter: none !important;
		box-shadow: none !important;
		transform: none !important;
		transition: none !important;
	}
}

/* Menu underline and contact arrow */
@media (min-width: 1025px) {
	.k7-site-header .ekit-menu-nav-link {
		position: relative;
	}

	.k7-site-header .ekit-menu-nav-link::after {
		content: "";
		position: absolute;
		left: 14px;
		right: 14px;
		bottom: 24px;
		height: 1px;
		background: currentColor;
		transform: scaleX(0);
		transform-origin: right center;
		transition: transform 550ms var(--k7-ease-out);
	}

	.k7-site-header .ekit-menu-nav-link:hover::after,
	.k7-site-header .ekit-menu-nav-link:focus-visible::after,
	.k7-site-header .ekit-menu-nav-link.active::after {
		transform: scaleX(1);
		transform-origin: left center;
	}
}

.k7-site-header .elementor-button-icon,
.k7-site-header .elementor-button-text {
	transition: transform 480ms var(--k7-ease-out);
}

.k7-site-header .elementor-button:hover .elementor-button-icon,
.k7-site-header .elementor-button:focus-visible .elementor-button-icon {
	transform: translateX(6px);
}

/* Home hero entrance */
.k7-motion-active .k7-home-hero .k7-intro-item {
	opacity: 0;
	filter: blur(8px);
	transform: translate3d(0, 28px, 0);
	transition:
		opacity 1150ms var(--k7-ease-soft) var(--k7-intro-delay, 0ms),
		filter 1150ms var(--k7-ease-soft) var(--k7-intro-delay, 0ms),
		transform 1150ms var(--k7-ease-soft) var(--k7-intro-delay, 0ms);
}

.k7-motion-active.k7-motion-loaded .k7-home-hero .k7-intro-item {
	opacity: 1;
	filter: blur(0);
	transform: translate3d(0, 0, 0);
}

.k7-motion-active .k7-home-hero .k7-hero-media {
	overflow: hidden;
	clip-path: inset(0 0 0 100%);
	transform: scale(1.025);
	background-position: center calc(50% + var(--k7-hero-parallax, 0px)) !important;
	transition:
		clip-path 1650ms var(--k7-ease-soft) 200ms,
		transform 1900ms var(--k7-ease-soft) 200ms;
}

.k7-motion-active.k7-motion-loaded .k7-home-hero .k7-hero-media {
	clip-path: inset(0 0 0 0);
	transform: scale(1);
}

/* Inner-page title entrance */
.k7-motion-active .k7-page-title {
	opacity: 0;
	filter: blur(7px);
	clip-path: inset(0 0 100% 0);
	transform: translate3d(0, 24px, 0);
	transition:
		opacity 1200ms var(--k7-ease-soft) 120ms,
		filter 1200ms var(--k7-ease-soft) 120ms,
		clip-path 1350ms var(--k7-ease-soft) 120ms,
		transform 1200ms var(--k7-ease-soft) 120ms;
}

.k7-motion-active.k7-motion-loaded .k7-page-title {
	opacity: 1;
	filter: blur(0);
	clip-path: inset(0 0 0 0);
	transform: translate3d(0, 0, 0);
}

/* Scroll reveals */
.k7-motion-active .k7-reveal {
	--k7-reveal-x: 0px;
	--k7-reveal-y: 38px;
	opacity: 0;
	filter: blur(7px);
	transform: translate3d(var(--k7-reveal-x), var(--k7-reveal-y), 0);
	transition:
		opacity var(--k7-motion-time) var(--k7-ease-out) var(--k7-delay, 0ms),
		filter var(--k7-motion-time) var(--k7-ease-out) var(--k7-delay, 0ms),
		transform var(--k7-motion-time) var(--k7-ease-out) var(--k7-delay, 0ms);
	will-change: opacity, filter, transform;
}

.k7-motion-active .k7-reveal.k7-from-left {
	--k7-reveal-x: -46px;
	--k7-reveal-y: 0px;
}

.k7-motion-active .k7-reveal.k7-from-right {
	--k7-reveal-x: 46px;
	--k7-reveal-y: 0px;
}

.k7-motion-active .k7-reveal.k7-in-view {
	opacity: 1;
	filter: blur(0);
	transform: translate3d(0, 0, 0);
	will-change: auto;
}

/* Subtle image reveal */
.k7-image-motion .elementor-widget-container {
	overflow: hidden;
}

.k7-motion-active .k7-image-motion img {
	transform: scale(1.075);
	transition: transform 1900ms var(--k7-ease-soft);
}

.k7-motion-active .k7-image-motion.k7-image-in-view img {
	transform: scale(1);
}

/* Offer tiles */
.box-offert {
	box-shadow: 0 0 0 rgba(0, 0, 0, 0);
	transition:
		box-shadow 650ms var(--k7-ease-out),
		transform 650ms var(--k7-ease-out) !important;
}

.box-offert::before {
	transition: transform 1100ms var(--k7-ease-out), filter 750ms ease !important;
}

.box-offert::after {
	content: "↗";
	position: absolute;
	top: 18px;
	right: 18px;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	background: #fff;
	color: #000;
	font-size: 22px;
	line-height: 1;
	opacity: 0;
	transform: translate3d(0, 14px, 0) rotate(-8deg);
	transition: opacity 450ms ease, transform 650ms var(--k7-ease-out);
}

.box-offert .elementor-widget-heading {
	transition: transform 650ms var(--k7-ease-out);
}

.box-offert:hover,
.box-offert:focus-visible {
	box-shadow: 0 22px 46px rgba(0, 0, 0, 0.14);
	transform: translate3d(0, -7px, 0);
}

.k7-motion-active .box-offert.k7-in-view:hover,
.k7-motion-active .box-offert.k7-in-view:focus-visible {
	transform: translate3d(0, -7px, 0);
}

.box-offert:hover::before,
.box-offert:focus-visible::before {
	filter: saturate(1.06) contrast(1.03);
	transform: scale(1.085) !important;
}

.box-offert:hover::after,
.box-offert:focus-visible::after {
	opacity: 1;
	transform: translate3d(0, 0, 0) rotate(0);
}

.box-offert:hover .elementor-widget-heading,
.box-offert:focus-visible .elementor-widget-heading {
	transform: translate3d(8px, -8px, 0);
}

.box-offert:focus-visible {
	outline: 2px solid #000;
	outline-offset: 5px;
}

/* Lists rise after their column becomes visible */
.k7-motion-active .k7-in-view li {
	animation: k7-list-rise 850ms var(--k7-ease-out) both;
}

.k7-motion-active .k7-in-view li:nth-child(2) { animation-delay: 110ms; }
.k7-motion-active .k7-in-view li:nth-child(3) { animation-delay: 220ms; }
.k7-motion-active .k7-in-view li:nth-child(4) { animation-delay: 330ms; }
.k7-motion-active .k7-in-view li:nth-child(5) { animation-delay: 440ms; }
.k7-motion-active .k7-in-view li:nth-child(6) { animation-delay: 550ms; }
.k7-motion-active .k7-in-view li:nth-child(n+7) { animation-delay: 660ms; }

@keyframes k7-list-rise {
	from {
		opacity: 0;
		transform: translate3d(0, 12px, 0);
	}
	to {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}

/* Contact form micro-interactions */
.kontakt-form input:not([type="submit"]),
.kontakt-form textarea {
	transition: border-color 400ms ease, box-shadow 400ms ease !important;
}

.kontakt-form input:not([type="submit"]):focus,
.kontakt-form textarea:focus {
	border-color: #111 !important;
	box-shadow: 0 1px 0 #111 !important;
}

.kontakt-form input[type="submit"] {
	transition: transform 500ms var(--k7-ease-out), box-shadow 500ms ease, background-color 400ms ease !important;
}

.kontakt-form input[type="submit"]:hover,
.kontakt-form input[type="submit"]:focus-visible {
	transform: translateY(-3px);
	box-shadow: 0 12px 26px rgba(0, 0, 0, 0.13);
}

/* Existing rotating side decorations */
.rotate-side-right img,
.rotate-side-left img {
	animation-duration: 28s !important;
}

/* Elementor editing must always stay fully visible */
.elementor-editor-active .k7-reveal,
.elementor-editor-active .k7-intro-item,
.elementor-editor-active .k7-page-title,
.elementor-html .k7-reveal,
.elementor-html .k7-intro-item,
.elementor-html .k7-page-title {
	opacity: 1 !important;
	filter: none !important;
	clip-path: none !important;
	transform: none !important;
	animation: none !important;
	transition: none !important;
}

@media (max-width: 767px) {
	.k7-motion-active .k7-reveal,
	.k7-motion-active .k7-reveal.k7-from-left,
	.k7-motion-active .k7-reveal.k7-from-right {
		--k7-reveal-x: 0px;
		--k7-reveal-y: 26px;
	}

	.box-offert::after {
		top: 12px;
		right: 12px;
		width: 38px;
		height: 38px;
		font-size: 19px;
	}

	.box-offert:hover,
	.box-offert:focus-visible,
	.k7-motion-active .box-offert.k7-in-view:hover,
	.k7-motion-active .box-offert.k7-in-view:focus-visible {
		transform: translate3d(0, -4px, 0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.k7-site-header,
	.k7-site-header *,
	.k7-reveal,
	.k7-intro-item,
	.k7-hero-media,
	.k7-page-title,
	.k7-image-motion img,
	.box-offert,
	.box-offert::before,
	.box-offert::after,
	.box-offert .elementor-widget-heading,
	.kontakt-form * {
		animation: none !important;
		transition: none !important;
	}

	.k7-reveal,
	.k7-intro-item,
	.k7-page-title {
		opacity: 1 !important;
		filter: none !important;
		clip-path: none !important;
		transform: none !important;
	}

	.k7-hero-media {
		clip-path: none !important;
		transform: none !important;
		background-position: center !important;
	}

	.rotate-side-right img,
	.rotate-side-left img {
		animation-play-state: paused !important;
	}

	.box-offert:hover,
	.box-offert:focus-visible,
	.box-offert:hover .elementor-widget-heading,
	.box-offert:focus-visible .elementor-widget-heading {
		transform: none !important;
	}
}
