:root {
	--cda-header-bg: rgba(26, 14, 26, 0.96);
	--cda-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--cda-duration: 850ms;
	--cda-stagger: 48ms;
}

html.cda-enabled {
	scroll-behavior: smooth;
}

/* Prevent a flash before the deferred hero entrance is prepared. */
html.cda-pending:not(.cda-editor) .elementor-element-f155b08 .elementor-widget-heading,
html.cda-pending:not(.cda-editor) .elementor-element-f155b08 .elementor-widget-text-editor,
html.cda-pending:not(.cda-editor) .elementor-element-f155b08 .elementor-widget-button {
	opacity: 0.001;
}

/* Header: transparent over hero, opaque after the Dentry-style scroll trigger. */
.cda-header {
	position: fixed !important;
	inset: 0 0 auto 0 !important;
	width: 100% !important;
	z-index: 9998 !important;
	background-color: transparent !important;
	border-bottom: 1px solid transparent;
	box-shadow: none;
	transition:
		background-color 500ms var(--cda-ease),
		border-color 500ms var(--cda-ease),
		box-shadow 500ms var(--cda-ease),
		backdrop-filter 500ms var(--cda-ease);
}

.cda-header.cda-scrolled {
	background-color: var(--cda-header-bg) !important;
	border-bottom-color: rgba(255, 255, 255, 0.1);
	box-shadow: 0 12px 36px rgba(0, 0, 0, 0.12);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
}

body.admin-bar .cda-header {
	top: 32px !important;
}

/* Dentry hero: scale 1.20 -> 1.00 across the first 50% of the hero scroll. */
.cda-hero {
	overflow: hidden !important;
	isolation: isolate;
}

.cda-hero-scroll-media {
	transform: scale(var(--cda-hero-scale, 1.2)) !important;
	transform-origin: 50% 50%;
	transition: none !important;
}

.cda-hero-scroll-active .cda-hero-scroll-media {
	will-change: transform;
}

/* Word-by-word reveal measured from the Dentry template: blur 10px + 10px Y. */
.cda-word {
	display: inline-block;
	transform-origin: 50% 100%;
}

.cda-ready:not(.cda-reduced-motion) .cda-word-group:not(.cda-in-view) .cda-word {
	opacity: 0.001;
	filter: blur(10px);
	transform: translate3d(0, 10px, 0);
}

.cda-ready:not(.cda-reduced-motion) .cda-word-group .cda-word {
	transition:
		opacity var(--cda-duration) var(--cda-ease),
		filter var(--cda-duration) var(--cda-ease),
		transform var(--cda-duration) var(--cda-ease);
	transition-delay: calc(var(--cda-delay, 0ms) + (var(--cda-word-index, 0) * var(--cda-stagger)));
}

.cda-ready:not(.cda-reduced-motion) .cda-word-group.cda-in-view .cda-word {
	opacity: 1;
	filter: blur(0);
	transform: translate3d(0, 0, 0);
}

.cda-ready:not(.cda-reduced-motion) .cda-word-group:not(.cda-done) .cda-word {
	will-change: opacity, filter, transform;
}

/* Generic scroll and hero content reveals. */
.cda-ready:not(.cda-reduced-motion) .cda-reveal,
.cda-ready:not(.cda-reduced-motion) .cda-hero-reveal {
	transition:
		opacity 780ms var(--cda-ease),
		filter 780ms var(--cda-ease),
		transform 780ms var(--cda-ease);
	transition-delay: var(--cda-delay, 0ms);
}

.cda-ready:not(.cda-reduced-motion) .cda-reveal:not(.cda-in-view),
.cda-ready:not(.cda-reduced-motion) .cda-hero-reveal:not(.cda-in-view) {
	opacity: 0;
	filter: blur(3px);
	transform: translate3d(0, 16px, 0);
}

.cda-ready:not(.cda-reduced-motion) .cda-reveal.cda-in-view,
.cda-ready:not(.cda-reduced-motion) .cda-hero-reveal.cda-in-view {
	opacity: 1;
	filter: blur(0);
	transform: translate3d(0, 0, 0);
}

.cda-ready:not(.cda-reduced-motion) .cda-reveal:not(.cda-done),
.cda-ready:not(.cda-reduced-motion) .cda-hero-reveal:not(.cda-done) {
	will-change: opacity, filter, transform;
}

/* Exact Dentry hero entrance: copy 32 px / 0.6 s, action 64 px / 0.8 s. */
.cda-ready:not(.cda-reduced-motion) .cda-hero-copy {
	transition:
		opacity 600ms var(--cda-ease),
		transform 600ms var(--cda-ease);
	transition-delay: var(--cda-delay, 400ms);
}

.cda-ready:not(.cda-reduced-motion) .cda-hero-action {
	transition:
		opacity 800ms var(--cda-ease),
		transform 800ms var(--cda-ease);
	transition-delay: var(--cda-delay, 500ms);
}

.cda-ready:not(.cda-reduced-motion) .cda-hero-copy:not(.cda-in-view) {
	opacity: 0.001;
	filter: none;
	transform: translate3d(0, 32px, 0);
}

.cda-ready:not(.cda-reduced-motion) .cda-hero-action:not(.cda-in-view) {
	opacity: 0.001;
	filter: none;
	transform: translate3d(0, 64px, 0);
}

/* Images enter at 110% scale, matching the Dentry content and carousel cards. */
.cda-image-reveal {
	overflow: hidden !important;
}

.cda-image-reveal img {
	display: block;
	transition: transform 1250ms var(--cda-ease);
}

.cda-ready:not(.cda-reduced-motion) .cda-image-reveal:not(.cda-in-view) img {
	transform: scale(1.1);
}

.cda-ready:not(.cda-reduced-motion) .cda-image-reveal.cda-in-view img {
	transform: scale(1);
}

.cda-ready:not(.cda-reduced-motion) .cda-image-reveal:not(.cda-done) img {
	will-change: transform;
}

/* Staggered cards and subtle premium hover response. */
.cda-card {
	position: relative;
	isolation: isolate;
	transition:
		opacity 800ms var(--cda-ease),
		filter 800ms var(--cda-ease),
		transform 800ms var(--cda-ease),
		border-color 500ms var(--cda-ease),
		background-color 500ms var(--cda-ease),
		box-shadow 500ms var(--cda-ease);
	transition-delay: var(--cda-delay, 0ms);
}

.cda-ready:not(.cda-reduced-motion) .cda-card:not(.cda-in-view) {
	opacity: 0;
	filter: blur(3px);
	transform: translate3d(0, 22px, 0);
}

.cda-ready:not(.cda-reduced-motion) .cda-card.cda-in-view {
	opacity: 1;
	filter: blur(0);
	transform: translate3d(0, 0, 0);
}

.cda-card img {
	transition: transform 900ms var(--cda-ease);
}

/* Dentry-like line sweep inside Elementor buttons. */
.cda-button-sweep .elementor-button-content-wrapper {
	display: inline-flex;
	align-items: center;
	gap: 14px;
}

.cda-button-sweep .elementor-button-content-wrapper::after {
	content: '';
	display: block;
	width: 28px;
	height: 1px;
	flex: 0 0 28px;
	background: currentColor;
	transform: translate3d(0, 0, 0);
}

/* Last menu item is the header CTA. It has no Elementor button wrapper. */
#menu-item-353,
.cda-menu-cta-item {
	display: flex !important;
	align-items: center;
	margin-left: 14px !important;
}

#menu-item-353 > a,
.cda-menu-cta {
	position: relative !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: flex-start !important;
	min-height: 47px;
	padding: 14px 58px 14px 20px !important;
	overflow: hidden !important;
	color: #fff !important;
	background: transparent !important;
	border: 1px solid rgba(255, 255, 255, 0.9) !important;
	transition:
		background-color 420ms var(--cda-ease),
		border-color 420ms var(--cda-ease),
		color 420ms var(--cda-ease) !important;
}

#menu-item-353 > a::after,
.cda-menu-cta::after {
	content: '' !important;
	position: absolute !important;
	top: calc(50% - 0.5px) !important;
	right: 18px !important;
	bottom: auto !important;
	left: auto !important;
	width: 28px !important;
	height: 1px !important;
	background: #fff !important;
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

@keyframes cda-line-sweep {
	0% { opacity: 1; transform: translate3d(0, 0, 0); }
	45% { opacity: 0; transform: translate3d(34px, 0, 0); }
	55% { opacity: 0; transform: translate3d(-34px, 0, 0); }
	100% { opacity: 1; transform: translate3d(0, 0, 0); }
}

/* Menu underline passes through from left to right instead of simply fading. */
.cda-nav-link {
	position: relative;
	overflow: hidden;
}

.cda-nav-link::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: 10px;
	height: 1px;
	background: #fff !important;
	transform: translate3d(-105%, 0, 0);
	transition: transform 520ms var(--cda-ease);
}

@media (hover: hover) and (pointer: fine) {
	.cda-button-sweep:hover .elementor-button-content-wrapper::after,
	.cda-button-sweep:focus-visible .elementor-button-content-wrapper::after {
		animation: cda-line-sweep 620ms var(--cda-ease);
	}

	#menu-item-353 > a:hover,
	#menu-item-353 > a:focus-visible,
	.cda-menu-cta:hover,
	.cda-menu-cta:focus-visible {
		background-color: rgba(255, 255, 255, 0.1) !important;
		border-color: #fff !important;
	}

	#menu-item-353 > a:hover::after,
	#menu-item-353 > a:focus-visible::after,
	.cda-menu-cta:hover::after,
	.cda-menu-cta:focus-visible::after {
		animation: cda-line-sweep 620ms var(--cda-ease);
	}

	.cda-nav-link:hover::after,
	.cda-nav-link:focus-visible::after,
	.current-menu-item > .cda-nav-link::after,
	.current_page_item > .cda-nav-link::after {
		transform: translate3d(0, 0, 0);
	}

	.cda-card.cda-in-view:hover {
		transform: translate3d(0, -6px, 0);
		border-color: rgba(255, 255, 255, 0.22);
		background-color: rgba(255, 255, 255, 0.025);
		box-shadow: 0 24px 55px rgba(0, 0, 0, 0.12);
		transition-delay: 0ms;
	}

	.cda-card:hover img {
		transform: scale(1.04);
	}
}

/* Dentry cursor: a 6 px dot in addition to the native cursor. */
.cda-cursor-dot {
	position: fixed;
	top: -3px;
	left: -3px;
	z-index: 10001;
	display: block;
	width: 6px;
	height: 6px;
	pointer-events: none;
	background: #fff;
	border-radius: 50%;
	opacity: 0;
	mix-blend-mode: difference;
	contain: strict;
	transform: translate3d(-20px, -20px, 0);
	will-change: transform;
	transition: opacity 180ms ease;
}

.cda-cursor-active .cda-cursor-dot {
	opacity: 0.55;
}

/* Elementor editing remains fully visible and selectable. */
.cda-editor .cda-word,
.cda-editor .cda-reveal,
.cda-editor .cda-hero-reveal,
.cda-editor .cda-card,
.cda-editor .cda-image-reveal img,
.elementor-editor-active .cda-word,
.elementor-editor-active .cda-reveal,
.elementor-editor-active .cda-hero-reveal,
.elementor-editor-active .cda-card,
.elementor-editor-active .cda-image-reveal img {
	opacity: 1 !important;
	filter: none !important;
	transform: none !important;
	transition: none !important;
}

@media (max-width: 782px) {
	body.admin-bar .cda-header {
		top: 46px !important;
	}
}

@media (max-width: 767px) {
	:root {
		--cda-duration: 680ms;
		--cda-stagger: 34ms;
	}

	.cda-header.cda-scrolled {
		-webkit-backdrop-filter: blur(10px);
		backdrop-filter: blur(10px);
	}

	.cda-ready:not(.cda-reduced-motion) .cda-reveal:not(.cda-in-view),
	.cda-ready:not(.cda-reduced-motion) .cda-hero-reveal:not(.cda-in-view),
	.cda-ready:not(.cda-reduced-motion) .cda-card:not(.cda-in-view) {
		filter: none;
	}

	.cda-button-sweep .elementor-button-content-wrapper {
		gap: 10px;
	}

	.cda-button-sweep .elementor-button-content-wrapper::after {
		width: 22px;
		flex-basis: 22px;
	}
}

@media (max-width: 1024px) {
	#menu-item-353,
	.cda-menu-cta-item {
		width: auto !important;
		margin: 12px 15px 15px !important;
	}

	#menu-item-353 > a,
	.cda-menu-cta {
		width: 100% !important;
	}
}

@media (hover: none), (pointer: coarse) {
	.cda-cursor-dot {
		display: none !important;
	}
}

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

	.cda-word,
	.cda-reveal,
	.cda-hero-reveal,
	.cda-card,
	.cda-image-reveal img,
	.cda-hero-scroll-media,
	.cda-hero .elementor-background-video-container,
	.cda-hero .elementor-background-slideshow,
	.cda-button-sweep .elementor-button-content-wrapper::after,
	#menu-item-353 > a::after,
	.cda-menu-cta::after,
	.cda-nav-link::after {
		animation: none !important;
		transition: none !important;
	}

	.cda-hero-scroll-media {
		transform: none !important;
	}

	.cda-cursor-dot {
		display: none !important;
	}
}
