/* Snusly Custom Header — responsive (high specificity vs theme/Elementor) */

.sch-header,
.sch-header *,
.sch-header *::before,
.sch-header *::after {
	box-sizing: border-box !important;
}

/* Full-bleed: kill white gaps left/right/top from Elementor containers */
.elementor-widget-snusly_custom_header,
.elementor-widget-wp-widget-snusly_custom_header,
.sch-header-widget {
	margin: 0 !important;
	padding: 0 !important;
	width: 100% !important;
	max-width: none !important;
}

.elementor-widget-snusly_custom_header > .elementor-widget-container,
.elementor-widget-wp-widget-snusly_custom_header > .elementor-widget-container,
.sch-header-widget > .widget-wrap {
	margin: 0 !important;
	padding: 0 !important;
	max-width: none !important;
	width: 100% !important;
}

.sch-header {
	width: 100vw !important;
	max-width: 100vw !important;
	position: relative !important;
	left: auto !important;
	right: auto !important;
	transform: none !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	padding: 0 !important;
	z-index: 9999;
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
	display: block !important;
	text-align: left !important;
	overflow-x: clip !important;
}

/* ---------- Announcement bar ---------- */
.sch-header .sch-announce {
	background: var(--sch-ann-bg, #4A69BD) !important;
	border-top: 2px solid var(--sch-ann-border, #9AA8D4) !important;
	border-bottom: 2px solid var(--sch-ann-border, #9AA8D4) !important;
	color: var(--sch-ann-text, #fff) !important;
	overflow: hidden !important;
	line-height: 1.2 !important;
	width: 100% !important;
}

.sch-header .sch-announce__inner {
	padding: 8px 0 !important;
	overflow: hidden !important;
}

.sch-header .sch-announce__track {
	display: flex !important;
	align-items: center !important;
	gap: 2.5rem !important;
	white-space: nowrap !important;
	justify-content: space-evenly !important;
	padding: 0 1rem !important;
	margin: 0 !important;
}

.sch-header .sch-announce--scroll .sch-announce__track {
	display: inline-flex !important;
	width: max-content !important;
	justify-content: flex-start !important;
	animation: sch-marquee var(--sch-ann-speed, 30s) linear infinite !important;
	padding-left: 0 !important;
}

.sch-header .sch-announce--scroll:hover .sch-announce__track {
	animation-play-state: paused !important;
}

@keyframes sch-marquee {
	0% { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}

.sch-header .sch-announce__item {
	font-family: var(--sch-ann-font, Georgia, "Times New Roman", Times, serif);
	font-size: var(--sch-ann-size, 15px);
	font-weight: var(--sch-ann-weight, 400);
	color: var(--sch-ann-text, #fff) !important;
	text-decoration: none !important;
	flex-shrink: 0 !important;
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
}

.sch-header .sch-announce__icon {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	line-height: 1 !important;
}

.sch-header .sch-announce__icon i,
.sch-header .sch-announce__icon svg {
	width: 14px !important;
	height: 14px !important;
	font-size: 14px !important;
	color: inherit !important;
	fill: currentColor !important;
}

.sch-header .sch-announce__icon img,
.sch-header .sch-announce__icon .sch-icon__img {
	width: 16px !important;
	height: 16px !important;
	object-fit: contain !important;
	display: block !important;
}

.sch-header .sch-announce__text {
	display: inline !important;
}

.sch-header a.sch-announce__item:hover {
	text-decoration: underline !important;
}

/* ---------- Main header ---------- */
.sch-header .sch-main {
	background: var(--sch-header-bg, #fff) !important;
	border-bottom: 1px solid rgba(0, 0, 0, 0.06) !important;
	width: 100% !important;
}

.sch-header .sch-main__inner {
	max-width: 1400px !important;
	margin: 0 auto !important;
	padding: 14px 24px !important;
	display: grid !important;
	grid-template-columns: auto 1fr auto !important;
	align-items: center !important;
	gap: 20px !important;
	width: 100% !important;
}

/* ---------- Logo ---------- */
.sch-header .sch-logo {
	display: inline-flex !important;
	align-items: center !important;
	text-decoration: none !important;
	line-height: 1 !important;
	position: relative !important;
	z-index: 2;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	flex-shrink: 0 !important;
	max-width: 100% !important;
}

.sch-header .sch-logo__img {
	max-height: var(--sch-logo-img-h, 80px) !important;
	max-width: var(--sch-logo-img-w, 320px) !important;
	height: auto !important;
	width: auto !important;
	object-fit: var(--sch-logo-img-fit, contain) !important;
	object-position: left center !important;
	display: block !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
}

.sch-header .sch-logo__text {
	font-family: var(--sch-logo-font, "Arial Rounded MT Bold", "Nunito", "Varela Round", "Trebuchet MS", Arial, sans-serif);
	font-weight: var(--sch-logo-weight, 800);
	font-size: var(--sch-logo-size, clamp(28px, 3vw, 40px));
	letter-spacing: -0.02em;
	color: var(--sch-logo-fill, #fff) !important;
	-webkit-text-stroke: 2.5px var(--sch-logo-stroke, #3B5998);
	paint-order: stroke fill;
	text-shadow:
		-2px -2px 0 var(--sch-logo-stroke, #3B5998),
		2px -2px 0 var(--sch-logo-stroke, #3B5998),
		-2px 2px 0 var(--sch-logo-stroke, #3B5998),
		2px 2px 0 var(--sch-logo-stroke, #3B5998) !important;
	position: relative !important;
	display: inline-block !important;
	background: transparent !important;
}

.sch-header .sch-logo__text--hat::after {
	content: "" !important;
	position: absolute !important;
	right: 0.08em !important;
	top: -0.28em !important;
	width: 0.42em !important;
	height: 0.32em !important;
	background:
		radial-gradient(ellipse 55% 45% at 50% 100%, var(--sch-logo-hat, #3B5998) 0 70%, transparent 71%),
		linear-gradient(var(--sch-logo-hat, #3B5998), var(--sch-logo-hat, #3B5998)) !important;
	background-size: 100% 55%, 78% 38% !important;
	background-position: center bottom, center 35% !important;
	background-repeat: no-repeat !important;
	border-radius: 2px 2px 0 0 !important;
	pointer-events: none !important;
}

.sch-header .sch-logo__text--hat::before {
	content: "" !important;
	position: absolute !important;
	right: -0.02em !important;
	top: -0.02em !important;
	width: 0.62em !important;
	height: 0.1em !important;
	background: var(--sch-logo-hat, #3B5998) !important;
	border-radius: 999px !important;
	pointer-events: none !important;
}

/* ---------- Nav ---------- */
.sch-header .sch-nav {
	justify-self: center !important;
	display: block !important;
	width: auto !important;
	background: transparent !important;
	position: static !important;
	transform: none !important;
	height: auto !important;
	padding: 0 !important;
	box-shadow: none !important;
}

.sch-header .sch-nav__list {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	justify-content: center !important;
	column-gap: var(--sch-nav-gap, 28px);
	row-gap: 8px;
	gap: 8px var(--sch-nav-gap, 28px);
	list-style: none !important;
	list-style-type: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.sch-header .sch-nav__item {
	list-style: none !important;
	list-style-type: none !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	width: auto !important;
}

.sch-header .sch-nav__item::before,
.sch-header .sch-nav__item::marker {
	content: none !important;
	display: none !important;
}

.sch-header .sch-nav__link {
	font-family: var(--sch-nav-font, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif);
	color: var(--sch-nav-color, #1a1a1a) !important;
	text-decoration: none !important;
	font-size: var(--sch-nav-size, 15px);
	font-weight: var(--sch-nav-weight, 500);
	white-space: nowrap !important;
	transition: color 0.2s ease !important;
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
}

.sch-header .sch-nav__link:hover,
.sch-header .sch-nav__link:focus {
	color: var(--sch-nav-hover, #4A69BD) !important;
}

.sch-header .sch-nav__caret {
	display: inline-block !important;
	width: 0 !important;
	height: 0 !important;
	margin-left: 6px !important;
	border-left: 4px solid transparent !important;
	border-right: 4px solid transparent !important;
	border-top: 5px solid currentColor !important;
	vertical-align: middle !important;
}

.sch-header .sch-nav__item--has-children {
	position: relative !important;
}

.sch-header .sch-nav__sub {
	display: none !important;
	position: absolute !important;
	top: 100% !important;
	left: 50% !important;
	transform: translateX(-50%) !important;
	min-width: 200px !important;
	margin: 8px 0 0 !important;
	padding: 8px 0 !important;
	list-style: none !important;
	background: #fff !important;
	border: 1px solid rgba(0, 0, 0, 0.08) !important;
	border-radius: 8px !important;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1) !important;
	z-index: 10050 !important;
}

.sch-header .sch-nav__item--has-children:hover > .sch-nav__sub,
.sch-header .sch-nav__item--has-children:focus-within > .sch-nav__sub {
	display: block !important;
}

.sch-header .sch-nav__sub-item {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.sch-header .sch-nav__sub-link {
	display: block !important;
	padding: 10px 16px !important;
	font-family: var(--sch-nav-font, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif);
	color: var(--sch-nav-color, #1a1a1a) !important;
	text-decoration: none !important;
	font-size: var(--sch-sub-size, 14px);
	font-weight: var(--sch-sub-weight, 400);
	white-space: nowrap !important;
	background: transparent !important;
}

.sch-header .sch-nav__sub-link:hover {
	color: var(--sch-nav-hover, #4A69BD) !important;
	background: rgba(74, 105, 189, 0.08) !important;
}

/* ---------- Icons ---------- */
.sch-header .sch-icons {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	gap: 10px !important;
	justify-self: end !important;
	margin: 0 !important;
	padding: 0 !important;
}

.sch-header .sch-icon {
	width: 40px !important;
	height: 40px !important;
	border-radius: 50% !important;
	background: var(--sch-icon-bg, #3B5998) !important;
	color: var(--sch-icon-color, #fff) !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	text-decoration: none !important;
	transition: transform 0.15s ease, opacity 0.15s ease !important;
	flex-shrink: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

.sch-header .sch-icon:hover {
	transform: scale(1.06) !important;
	opacity: 0.92 !important;
}

.sch-header .sch-icon svg {
	display: block !important;
	width: 18px !important;
	height: 18px !important;
	fill: currentColor !important;
	color: inherit !important;
}

.sch-header .sch-icon i {
	font-size: 16px !important;
	line-height: 1 !important;
	color: inherit !important;
}

.sch-header .sch-icon .sch-icon__img,
.sch-header .sch-icon img {
	width: 18px !important;
	height: 18px !important;
	object-fit: contain !important;
	display: block !important;
	border: 0 !important;
	border-radius: 0 !important;
}

/* ---------- Burger button (hidden on desktop/laptop) ---------- */
.sch-header .sch-burger {
	display: none !important;
	flex-direction: column !important;
	justify-content: center !important;
	gap: 5px !important;
	width: 40px !important;
	height: 40px !important;
	padding: 8px !important;
	border: none !important;
	background: transparent !important;
	cursor: pointer !important;
	z-index: 2;
	box-shadow: none !important;
}

.sch-header .sch-burger span {
	display: block !important;
	height: 2px !important;
	width: 100% !important;
	background: var(--sch-nav-color, #1a1a1a) !important;
	border-radius: 2px !important;
	transition: transform 0.25s ease, opacity 0.25s ease !important;
	margin: 0 !important;
	padding: 0 !important;
}

.sch-header.is-open .sch-burger span:nth-child(1) {
	transform: translateY(7px) rotate(45deg) !important;
}

.sch-header.is-open .sch-burger span:nth-child(2) {
	opacity: 0 !important;
}

.sch-header.is-open .sch-burger span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg) !important;
}

.sch-header .sch-overlay {
	display: none !important;
}

/* ---------- Tablet (still horizontal menu) ---------- */
@media (max-width: 1100px) {
	.sch-header .sch-nav__list {
		column-gap: var(--sch-nav-gap, 18px);
		gap: 6px var(--sch-nav-gap, 18px);
	}

	.sch-header .sch-main__inner {
		padding: 12px 16px !important;
		gap: 12px !important;
	}
}

/* ---------- Mobile only: burger (default right) ---------- */
@media (max-width: 992px) {
	.sch-header .sch-main__inner {
		grid-template-columns: 1fr auto auto !important;
		grid-template-areas: "logo icons burger" !important;
	}

	.sch-header.sch-burger-left .sch-main__inner {
		grid-template-columns: auto 1fr auto !important;
		grid-template-areas: "burger logo icons" !important;
	}

	.sch-header .sch-burger {
		display: flex !important;
		grid-area: burger !important;
		justify-self: end !important;
	}

	.sch-header.sch-burger-left .sch-burger {
		justify-self: start !important;
	}

	.sch-header .sch-logo {
		grid-area: logo !important;
		justify-self: start !important;
	}

	.sch-header.sch-burger-left .sch-logo {
		justify-self: center !important;
	}

	.sch-header .sch-icons {
		grid-area: icons !important;
		justify-self: end !important;
	}

	.sch-header .sch-icon {
		width: 36px !important;
		height: 36px !important;
	}

	.sch-header .sch-icon svg {
		width: 16px !important;
		height: 16px !important;
	}

	.sch-header .sch-nav {
		position: fixed !important;
		top: 0 !important;
		left: auto !important;
		right: 0 !important;
		width: min(320px, 86vw) !important;
		height: 100vh !important;
		height: 100dvh !important;
		background: var(--sch-header-bg, #fff) !important;
		box-shadow: -4px 0 24px rgba(0, 0, 0, 0.12) !important;
		padding: 80px 24px 32px !important;
		transform: translateX(105%) !important;
		transition: transform 0.3s ease !important;
		z-index: 10001 !important;
		overflow-y: auto !important;
		justify-self: stretch !important;
	}

	.sch-header.sch-burger-left .sch-nav {
		left: 0 !important;
		right: auto !important;
		box-shadow: 4px 0 24px rgba(0, 0, 0, 0.12) !important;
		transform: translateX(-105%) !important;
	}

	.sch-header.is-open .sch-nav {
		transform: translateX(0) !important;
	}

	.sch-header .sch-nav__list {
		flex-direction: column !important;
		align-items: flex-start !important;
		gap: 0 !important;
	}

	.sch-header .sch-nav__item {
		width: 100% !important;
		border-bottom: 1px solid rgba(0, 0, 0, 0.06) !important;
	}

	.sch-header .sch-nav__link {
		display: block !important;
		padding: 14px 4px !important;
		font-size: 16px;
		white-space: normal !important;
	}

	.sch-header .sch-nav__sub {
		display: block !important;
		position: static !important;
		transform: none !important;
		min-width: 0 !important;
		margin: 0 0 8px !important;
		padding: 0 0 0 12px !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		background: transparent !important;
	}

	.sch-header .sch-nav__sub-link {
		padding: 10px 4px !important;
	}

	.sch-header .sch-overlay {
		display: block !important;
		position: fixed !important;
		inset: 0 !important;
		background: rgba(0, 0, 0, 0.4) !important;
		z-index: 10000 !important;
		opacity: 0 !important;
		visibility: hidden !important;
		transition: opacity 0.25s ease, visibility 0.25s ease !important;
	}

	.sch-header.is-open .sch-overlay {
		opacity: 1 !important;
		visibility: visible !important;
	}

	.sch-header.is-open .sch-overlay[hidden] {
		display: block !important;
	}

	.sch-header .sch-announce__item {
		font-size: 13px;
	}

	.sch-header .sch-logo__text {
		font-size: 28px;
		-webkit-text-stroke-width: 2px;
	}
}

@media (max-width: 480px) {
	.sch-header .sch-main__inner {
		padding: 10px 12px !important;
		gap: 8px !important;
	}

	.sch-header .sch-icons {
		gap: 6px !important;
	}

	.sch-header .sch-icon {
		width: 34px !important;
		height: 34px !important;
	}

	.sch-header .sch-logo__text {
		font-size: 24px;
	}
}

/* If Elementor section wraps only our header, remove section padding gaps */
.elementor-section:has(.sch-header),
.e-con:has(.sch-header),
.elementor-element:has(> .elementor-widget-container > .sch-header),
.elementor-element:has(.sch-header-widget),
.elementor-location-header,
.elementor-location-header .e-con,
.elementor-location-header .elementor-section,
header.site-header:has(.sch-header),
#masthead:has(.sch-header),
.site-header:has(.sch-header) {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	max-width: none !important;
	min-height: 0 !important;
}

.elementor-section:has(.sch-header) > .elementor-container,
.e-con:has(.sch-header) {
	max-width: none !important;
	width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	padding-top: 0 !important;
	margin-top: 0 !important;
}

/* Kill empty theme header strip when Snusly header is present */
body:has(.sch-header) > header.site-header:not(:has(.sch-header)),
body:has(.sch-header) #masthead:not(:has(.sch-header)),
body:has(.sch-header) .site-header:not(:has(.sch-header)):empty {
	display: none !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}

/* First page section flush to top under header */
body .elementor > .elementor-section:first-child:has(.sch-header),
body .elementor > .e-con:first-child:has(.sch-header),
body .elementor > .elementor-top-section:first-child:has(.sch-header) {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* Empty reserved gap when WP admin bar is forced hidden by theme */
body.admin-bar:has(#wpadminbar[style*="display: none"]),
body.admin-bar:has(#wpadminbar[style*="display:none"]),
body.admin-bar:not(:has(#wpadminbar)) {
	margin-top: 0 !important;
	padding-top: 0 !important;
}
