.tdv-site-header {
	position: fixed;
	top: 0; left: 0; right: 0;
	z-index: 1000;
	background-color: transparent;
	border-bottom: 1px solid transparent;
	transition: background-color .25s ease, border-color .25s ease, box-shadow .25s ease;
}
body.tdv-has-dark-hero .tdv-site-header:not(.tdv-scrolled) {
	background-color: transparent;
}
body:not(.tdv-has-dark-hero-page) .tdv-site-header:not(.tdv-scrolled),
.tdv-site-header.tdv-scrolled {
	background-color: rgba(247,243,236,0.97);
	border-bottom-color: var(--border);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	box-shadow: 0 1px 24px rgba(0,0,0,0.06);
}
body { padding-top: var(--header-height); }
body.tdv-has-dark-hero-page { padding-top: 0; }
.tdv-header-inner { display: flex; align-items: center; justify-content: space-between; gap: var(--space-md); padding-block: 0.85rem; max-width: var(--max-width); margin-inline: auto; padding-inline: var(--space-md); }
.tdv-site-logo { display: inline-flex; align-items: center; gap: 0.5rem; font-family: var(--font-heading); font-weight: 700; font-size: 1.3125rem; letter-spacing: -0.01em; color: var(--text-main); text-decoration: none; transition: color .25s ease; }
body.tdv-has-dark-hero-page .tdv-site-header:not(.tdv-scrolled) .tdv-site-logo { color: #FFFFFF; }
.tdv-logo-icon svg { width: 28px; height: 28px; display: block; }

.tdv-main-nav .menu { display: flex; align-items: center; gap: 2.25rem; list-style: none; margin: 0; padding: 0; }
.tdv-main-nav .menu > li { position: relative; }
.tdv-main-nav .menu > li > a {
	display: inline-flex; align-items: center; gap: 0.3rem;
	color: var(--text-muted); text-decoration: none;
	font-weight: 500; font-size: 0.8125rem; letter-spacing: 0.05em; text-transform: uppercase;
	transition: color .25s ease; position: relative; padding-block: 0.4rem;
}
.tdv-main-nav .menu > li > a::after {
	content: ''; position: absolute; bottom: -1px; left: 0; width: 0; height: 1px;
	background-color: var(--accent); transition: width .25s ease;
}
.tdv-main-nav .menu > li > a:hover::after,
.tdv-main-nav .menu > li.current-menu-item > a::after { width: 100%; }
.tdv-main-nav .menu > li > a:hover { color: var(--accent); }
body.tdv-has-dark-hero-page .tdv-site-header:not(.tdv-scrolled) .tdv-main-nav .menu > li > a { color: rgba(255,255,255,0.85); }
body.tdv-has-dark-hero-page .tdv-site-header:not(.tdv-scrolled) .tdv-main-nav .menu > li > a:hover { color: #FFFFFF; }
.tdv-nav-chevron { width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); display: inline-block; }

.tdv-header-cta { white-space: nowrap; }

/* Mega menu panel */
.tdv-mega-panel { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); width: 640px; background: var(--bg-white); border: 1px solid var(--border); border-radius: var(--radius-md); box-shadow: 0 18px 40px rgba(17,17,17,.12); opacity: 0; visibility: hidden; transition: opacity .18s ease; z-index: 50; }
.tdv-mega-trigger:hover .tdv-mega-panel,
.tdv-mega-trigger:focus-within .tdv-mega-panel { opacity: 1; visibility: visible; }
.tdv-mega-panel-inner { display: grid; grid-template-columns: 220px 1fr; gap: var(--space-md); padding: var(--space-md); }
.tdv-mega-feature h4 { font-size: 1.1rem; margin: .4rem 0; }
.tdv-mega-feature p { font-size: .85rem; color: var(--text-muted); }
.tdv-mega-label { font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: var(--accent); }
.tdv-mega-list { display: flex; flex-direction: column; gap: .25rem; }
.tdv-mega-item { display: flex; flex-direction: column; gap: .15rem; padding: .6rem .75rem; border-radius: var(--radius-sm); text-decoration: none; color: var(--text-main); }
.tdv-mega-item:hover { background: var(--accent-soft); }
.tdv-mega-item span { font-size: .8rem; color: var(--text-muted); }

/* Mobile nav (markup/JS contract reused from Hello Elementor's hello-frontend.js) */
.tdv-toggle-holder { display: none; }
.tdv-mobile-nav .menu { list-style: none; margin: 0; padding: 0; }
.tdv-mobile-nav .menu li a { display: block; padding: .9rem var(--space-md); border-bottom: 1px solid var(--border); color: var(--text-main); text-decoration: none; }
.tdv-mobile-nav .menu .menu-item-has-children > a::after { content: '▾'; float: right; }

@media (max-width: 880px) {
	.tdv-main-nav, .tdv-header-cta { display: none; }
	.tdv-toggle-holder { display: flex; }
}

/* Footer */
.tdv-site-footer { background: var(--dark); color: #cfcac0; padding-top: var(--space-2xl); }
.tdv-footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: var(--space-lg); padding-bottom: var(--space-xl); }
.tdv-footer-brand .tdv-site-logo { color: #fff; }
.tdv-footer-brand p { font-size: .85rem; color: #a8a39a; margin-top: .75rem; }
.tdv-footer-socials { display: flex; gap: .6rem; margin-top: var(--space-sm); }
.tdv-footer-social-link { width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: rgba(255,255,255,.08); color: #fff; }
.tdv-footer-col h5 { color: #fff; font-size: .85rem; letter-spacing: .05em; text-transform: uppercase; margin-bottom: .9rem; }
.tdv-footer-col ul, .tdv-footer-col .menu { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .5rem; }
.tdv-footer-col a { color: #cfcac0; text-decoration: none; font-size: .9rem; }
.tdv-footer-col a:hover { color: var(--accent-light); }
.tdv-footer-bottom { border-top: 1px solid rgba(255,255,255,.1); padding-block: var(--space-md); font-size: .8rem; color: #a8a39a; }
.tdv-footer-bottom a { color: #a8a39a; }

@media (max-width: 880px) {
	.tdv-footer-grid { grid-template-columns: 1fr 1fr; }
}

.tdv-main-nav .menu li.menu-item-has-children:after { content: none !important; }
.tdv-mobile-nav .menu li.menu-item-has-children:after { color: rgba(255,255,255,0.6); }

/* Ticker marquee — pure CSS animation, no JS visibility toggling, safe & reliable */
.tdv-ticker-track { display: flex; overflow: hidden; }
.tdv-ticker-track .elementor-icon-list-items { display: flex; flex-wrap: nowrap; animation: tdv-marquee 28s linear infinite; white-space: nowrap; }
.tdv-ticker-track:hover .elementor-icon-list-items { animation-play-state: paused; }
@keyframes tdv-marquee {
	0% { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}