/**
 * Site header — shape matches mockup 1:1.
 *
 * Blue bar: #3273EB
 * Left: diagonal cut (~50px inset at bottom on 1024 mockup)
 * Right: rounded bottom corner (~24–32px)
 */

:root {
	--tf-blue: #3273EB;
	--tf-header-h: 114px;
	/* Edge → blue bar: 32px @1440, 40px @1920 */
	--tf-header-inset: clamp(32px, calc(32px + (100vw - 1440px) * 8 / 480), 40px);
	--tf-header-pad-x: clamp(24px, 3vw, 48px);
	--tf-header-pad-y: 5px;
	--tf-header-radius: 20px;
	--tf-header-cut: 52px;
	--tf-header-bl: 22px; /* bottom-left round along diagonal */
	--tf-nav-gap: clamp(36px, 4.4vw, 50px);
	--tf-nav-size: 13px;
	--tf-logo-h: 52px;
	--tf-logo-pad-left: 28px;
}

/* Fixed header — stays pinned while scrolling */
.elementor-location-header {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	z-index: 10040 !important;
	background: transparent;
	pointer-events: none;
}

.elementor-location-header .tf-site-header,
.elementor-location-header .tf-header-bar,
.elementor-location-header .elementor-menu-toggle,
.elementor-location-header a,
.elementor-location-header button {
	pointer-events: auto;
}

.u-hide-svg{
	height: 0;
	left: 0;
	position: absolute;
	top: 0;
	width: 0;
}

/* In-flow spacer — keeps page layout (negative-margin heroes still work) */
.tf-header-spacer {
	display: block;
	width: 100%;
	height: var(--tf-header-h);
	pointer-events: none;
	visibility: hidden;
	display: none;
}

/* Outer wrapper — flush left, inset only on the right */
.tf-site-header.e-con,
.elementor-location-header .tf-site-header {
	--padding-top: 0 !important;
	--padding-bottom: 0 !important;
	--padding-left: 0 !important;
	--padding-right: 0 !important;
	position: relative;
	z-index: 10045;
	max-width: 100% !important;
	width: 100% !important;
	padding-left: 0 !important;
	padding-right: var(--tf-header-inset) !important;
	box-sizing: border-box;
	background: transparent !important;
	min-height: 120px;
}

/* Blue shaped bar */
.tf-header-bar.e-con,
.tf-header-bar {
	--r: var(--tf-header-radius);
	--cut: var(--tf-header-cut);
	--bl: var(--tf-header-bl);
	/*
	 * BL fillet center sits at (cut + k*bl, 100% - bl), k≈(L-cut)/h ≈ 0.70
	 * Arc spans ~70° (not 90°) — matches the diagonal/bottom turn so it isn’t “stretched”.
	 */
	--bl-cx: calc(var(--cut) + var(--bl) * 0.70);
	background-color: var(--tf-blue) !important;
	min-height: 120px;
	align-items: center !important;
	background: none !important;
	padding-left: var(--tf-header-pad-x) !important;
	padding-right: var(--tf-header-pad-x) !important;
	padding-top: var(--tf-header-pad-y) !important;
	padding-bottom: var(--tf-header-pad-y) !important;
	position: relative;
}

.tf-header-bar::before{
	content: "";
	background-color: #3273eb;
	position: absolute;
	left: 0;
	clip-path: url(#headerShapeXl);
	top: 0;
	grid-column: 1;
	height: 100%;
	width: 120px;
	z-index: -1;
	display: block;
}


.tf-header-bar::after{
	content: "";
	background-color: #3273eb;
	position: absolute;
	left: 120px;
	top: 0;
	grid-column: 1;
	height: 100%;
	width: calc(100% - 130px);
	z-index: -1;
	border-radius: 0 0 1.875rem 0;
}

/* Logo — force size (Elementor sets img { height: auto } later) */
.elementor-location-header .tf-header-logo img,
.tf-header-logo.elementor-widget-image img,
.tf-header-logo img,
.tf-header-logo svg,
.tf-header-logo .elementor-widget-container img {
	display: block !important;
	height: var(--tf-logo-h) !important;
	width: auto !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: contain !important;
}

.tf-header-logo.elementor-widget-image,
.tf-header-logo .elementor-widget-container,
.tf-header-logo a {
	display: inline-flex !important;
	align-items: center;
	line-height: 0;
	width: auto !important;
	max-width: none !important;
}

.tf-header-logo.elementor-widget-image {
	margin-left: 100px !important;
	padding-left: 0 !important;
}

.elementor-nav-menu:after{
	display: none;
}

/* Nav — white, uppercase, Garet, generous gaps (desktop) */
.tf-header-nav .elementor-nav-menu--main.elementor-nav-menu--layout-horizontal,
.tf-header-nav .elementor-nav-menu--main .elementor-nav-menu {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-end;
	gap: var(--tf-nav-gap);
	margin-right: 20px;
}

.tf-header-nav .elementor-nav-menu--main .elementor-item,
.tf-header-nav .elementor-nav-menu .elementor-item,
.tf-header-nav .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li > a {
	color: #fff !important;
	font-family: "Garet", sans-serif !important;
	font-size: var(--tf-nav-size) !important;
	font-weight: 800 !important; /* ExtraBold */
	letter-spacing: .15em;
	text-transform: uppercase !important;
	padding: 8px 0 !important;
	background: transparent !important;
	border: 0 !important;
	line-height: 1.2 !important;
}

.tf-header-nav .elementor-nav-menu--main .elementor-item:hover,
.tf-header-nav .elementor-nav-menu--main .elementor-item:focus,
.tf-header-nav .elementor-nav-menu--main .elementor-item.elementor-item-active,
.tf-header-nav .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li > a:hover,
.tf-header-nav .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li > a:focus,
.tf-header-nav .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li.current-menu-item > a,
.tf-header-nav .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li.current_page_item > a {
	color: #EB6049 !important;
	opacity: 1 !important;
}

/* Kill default Elementor menu underlines / indicators */
.tf-header-nav .elementor-item:before,
.tf-header-nav .elementor-item:after,
.tf-header-nav .elementor-nav-menu--main .elementor-item:before,
.tf-header-nav .elementor-nav-menu--main .elementor-item:after {
	display: none !important;
}

/* Mobile toggle on blue bar */
.tf-header-nav .elementor-menu-toggle {
	color: #fff !important;
	border: 0 !important;
	border-color: transparent !important;
	background: transparent !important;
	border-radius: 0 !important;
	padding: 0 !important;
	width: 44px !important;
	height: 44px !important;
	align-items: center;
	justify-content: center;
	box-shadow: none !important;
	cursor: pointer;
}

.tf-header-nav .elementor-menu-toggle svg,
.tf-header-nav .elementor-menu-toggle i,
.tf-header-nav .elementor-menu-toggle .e-font-icon-svg {
	width: 26px !important;
	height: 26px !important;
	fill: #fff !important;
	color: #fff !important;
}

/* Only one burger icon visible at a time */
.tf-header-nav .elementor-menu-toggle .elementor-menu-toggle__icon--open {
	display: block !important;
}

.tf-header-nav .elementor-menu-toggle .elementor-menu-toggle__icon--close {
	display: none !important;
}

.tf-header-nav .elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--open {
	display: none !important;
}

.tf-header-nav .elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--close {
	display: block !important;
}

.tf-header-nav .elementor-menu-toggle:hover,
.tf-header-nav .elementor-menu-toggle:focus,
.tf-header-nav .elementor-menu-toggle:focus-visible {
	background: transparent !important;
	outline: none !important;
	box-shadow: none !important;
}

/* Custom overlay — hidden until mobile open state */
.tf-mobile-menu {
	display: none;
}

@media (max-width: 1439px) {
	:root {
		--tf-header-inset: 32px;
	}
}

@media (max-width: 1024px) {
	:root {
		--tf-header-h: 72px;
		--tf-header-pad-y: 14px;
		--tf-header-pad-x: var(--tf-page-x);
		--tf-header-inset: 20px;
		--tf-logo-h: 40px;
		--tf-logo-pad-left: 0px;
		--tf-header-cut: 0px;
		--tf-header-radius: 30px;
		--tf-header-bl: 0px;
		--tf-menu-bg: #2C6DE5;
	}

	/* Mobile/tablet: rounded bottom-left + bottom-right */
	.tf-header-bar.e-con,
	.tf-header-bar {
		clip-path: none !important;
		border-radius: 0 0 30px 30px !important;
		min-height: var(--tf-header-h) !important;
		justify-content: space-between !important;
		overflow: visible !important;
		background-color: var(--tf-blue) !important;
	}

	.tf-header-logo.elementor-widget-image {
		margin-left: var(--tf-logo-pad-left) !important;
	}

	.tf-header-nav.elementor-nav-menu--dropdown-tablet .elementor-nav-menu--main {
		display: none !important;
	}

	.tf-header-nav .elementor-menu-toggle {
		display: inline-flex !important;
		visibility: visible !important;
		opacity: 1 !important;
		margin-left: auto !important;
		margin-right: 0 !important;
		position: relative;
		z-index: 10050 !important;
		color: #fff !important;
		fill: #fff !important;
	}

	.tf-header-nav .elementor-menu-toggle .e-font-icon-svg,
	.tf-header-nav .elementor-menu-toggle svg,
	.tf-header-nav .elementor-menu-toggle svg path {
		fill: #fff !important;
		color: #fff !important;
	}

	/* Open: orange X */
	.tf-header-nav .elementor-menu-toggle.elementor-active,
	html.tf-menu-open .tf-header-nav .elementor-menu-toggle {
		color: #EB6049 !important;
		fill: #EB6049 !important;
	}

	.tf-header-nav .elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--open,
	html.tf-menu-open .tf-header-nav .elementor-menu-toggle .elementor-menu-toggle__icon--open {
		display: none !important;
	}

	.tf-header-nav .elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--close,
	.tf-header-nav .elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--close path,
	html.tf-menu-open .tf-header-nav .elementor-menu-toggle .elementor-menu-toggle__icon--close,
	html.tf-menu-open .tf-header-nav .elementor-menu-toggle .elementor-menu-toggle__icon--close path {
		display: block !important;
		fill: #EB6049 !important;
		color: #EB6049 !important;
	}

	.tf-header-nav.elementor-widget-nav-menu {
		margin-left: auto !important;
		width: auto !important;
		max-width: none !important;
		flex: 0 0 auto !important;
	}

	/* Hide Elementor native dropdown — we use #tf-mobile-menu */
	.tf-header-nav .elementor-nav-menu--dropdown,
	.tf-header-nav .elementor-nav-menu__container.elementor-nav-menu--dropdown {
		display: none !important;
		visibility: hidden !important;
		opacity: 0 !important;
		pointer-events: none !important;
		height: 0 !important;
		max-height: 0 !important;
		overflow: hidden !important;
	}

	/* Header above overlay */
	.elementor-location-header,
	.tf-site-header.e-con,
	.tf-site-header {
		z-index: 10040 !important;
	}

	.tf-header-bar.e-con,
	.tf-header-bar {
		position: relative;
		z-index: 10045 !important;
		background-color: var(--tf-blue) !important;
	}

	html.tf-menu-open .tf-header-bar.e-con,
	html.tf-menu-open .tf-header-bar,
	body.tf-menu-open .tf-header-bar.e-con,
	body.tf-menu-open .tf-header-bar {
		border-radius: 0 0 var(--tf-header-radius) var(--tf-header-radius) !important;
		clip-path: none !important;
		background-color: var(--tf-blue) !important;
	}

	html.tf-menu-open,
	body.tf-menu-open {
		overflow: hidden !important;
	}

	/* ===== Custom fullscreen overlay ===== */
	.tf-mobile-menu {
		position: fixed;
		inset: 0;
		z-index: 10030;
		display: flex;
		flex-direction: column;
		box-sizing: border-box;
		padding: calc(var(--tf-header-h) + 24px) var(--tf-page-x) 48px;
		background: #2C6DE5;
		visibility: hidden;
		opacity: 0;
		pointer-events: none;
		transition: opacity 0.25s ease, visibility 0.25s ease;
	}

	.tf-mobile-menu.is-open {
		visibility: visible;
		opacity: 1;
		pointer-events: auto;
	}

	.tf-mobile-menu__inner {
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		flex: 1 1 auto;
		min-height: 0;
		width: 100%;
	}

	.tf-mobile-menu__intro {
		max-width: 12em;
		color: #fff;
	}

	.tf-mobile-menu__tagline {
		margin: 0 0 20px;
		color: #fff;
		font-family: "Garet", sans-serif;
		font-size: clamp(28px, 8.5vw, 40px);
		font-weight: 800;
		line-height: 1.12;
		letter-spacing: -0.02em;
	}

	.tf-mobile-menu__address {
		margin: 0;
		color: #fff;
		font-family: "Garet", sans-serif;
		font-size: 15px;
		font-weight: 400;
		line-height: 1.5;
	}

	.tf-mobile-menu__address a {
		color: inherit;
		text-decoration: none;
	}

	.tf-mobile-menu__nav {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 4px;
		padding-bottom: 8px;
	}

	.tf-mobile-menu__link {
		color: #fff;
		font-family: "Garet", sans-serif;
		font-size: clamp(16px, 4.6vw, 19px);
		font-weight: 800;
		letter-spacing: 0.05em;
		text-transform: uppercase;
		text-decoration: none;
		line-height: 1.25;
		padding: 10px 0;
	}

	.tf-mobile-menu__link:hover,
	.tf-mobile-menu__link:focus {
		color: #fff;
	}

	.tf-mobile-menu__link.is-active {
		color: #EB6049;
	}
}

@media (max-width: 400px) {
	.tf-site-header.e-con,
	.tf-site-header {
		--tf-header-pad-x: var(--tf-page-x);
		--tf-header-inset: 20px;
	}

	.tf-mobile-menu {
		padding-left: var(--tf-page-x);
		padding-right: var(--tf-page-x);
	}

	.tf-mobile-menu__tagline {
		font-size: 24px;
		overflow-wrap: anywhere;
	}

	.tf-mobile-menu__address {
		font-size: 14px;
	}

	.tf-mobile-menu__link {
		font-size: 22px;
	}
}

@media (max-width: 767px) {
	:root {
		--tf-header-h: 64px;
		--tf-header-pad-y: 12px;
		--tf-header-pad-x: var(--tf-page-x);
		--tf-header-inset: 20px;
		--tf-logo-h: 36px;
		--tf-logo-pad-left: 0px;
		--tf-header-radius: 30px;
	}

	.tf-header-nav .elementor-menu-toggle {
		width: 44px !important;
		height: 44px !important;
		margin-right: 0 !important;
	}

	.tf-header-nav .elementor-menu-toggle svg,
	.tf-header-nav .elementor-menu-toggle .e-font-icon-svg {
		width: 26px !important;
		height: 26px !important;
	}

	.tf-mobile-menu {
		padding: calc(var(--tf-header-h) + 18px) var(--tf-page-x) 40px;
	}

	.tf-mobile-menu__tagline {
		margin-bottom: 18px;
		font-size: clamp(26px, 8.5vw, 34px);
	}
	.tf-mobile-menu__intro {
		max-width: 20em;
		margin-top: 30px;
	}
	.tf-mobile-menu__link {
		font-size: 14px;
	}
	.tf-header-bar::after{
		border-radius: 0 0 1.875rem 15px;
	}
}

@media (max-width: 1200px) {
	.tf-header-logo.elementor-widget-image {
		margin-left: 0px !important;
	}

	.tf-header-bar::before{
		display: none;
	}

	.tf-header-bar::after{
		left: 0;
		width: 100%;
	}

}
