/* Formaestro CSE header — isolated component styles */
html { scroll-padding-top: 140px; }
.formaestro-header {
	--fm-ink: #10152f;
	--fm-muted: #62677d;
	--fm-pink: #ec2f94;
	--fm-violet: #6839e8;
	--fm-line: #e8e7f1;
	position: sticky;
	top: 0;
	z-index: 80;
	width: 100%;
	background: #fff;
	color: var(--fm-ink);
	font-family: "Manrope", sans-serif;
}

.admin-bar .formaestro-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .formaestro-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .formaestro-header { top: 0; } }

.formaestro-header *,
.formaestro-header *::before,
.formaestro-header *::after {
	box-sizing: border-box;
}

.fm-header-container {
	width: min(100% - 48px, 1380px);
	margin-inline: auto;
}

.fm-offerbar {
	position: relative;
	overflow: hidden;
	color: #fff;
	background:
		radial-gradient(circle at 18% 140%, rgba(236, 47, 148, .48), transparent 32%),
		linear-gradient(105deg, #17143f 0%, #4c287b 52%, #cf2f8e 100%);
}

.fm-offerbar::before,
.fm-offerbar::after {
	content: "";
	position: absolute;
	width: 54px;
	height: 47px;
	border: 1px solid rgba(255,255,255,.18);
	border-radius: 14px;
	transform: rotate(60deg) skewY(-30deg);
}

.fm-offerbar::before { left: 4%; top: -30px; }
.fm-offerbar::after { right: 7%; bottom: -34px; }

.fm-offerbar__inner {
	position: relative;
	z-index: 1;
	min-height: 36px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	font-size: 12.5px;
	letter-spacing: .01em;
}

.fm-offerbar__offer {
	display: flex;
	align-items: center;
	gap: 9px;
	margin: 0;
}

.fm-offerbar__offer svg,
.fm-offerbar__phone svg {
	flex: 0 0 auto;
	width: 15px;
	height: 15px;
	fill: currentColor;
}

.fm-offerbar__offer strong {
	font-weight: 800;
}

.fm-offerbar__cta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	flex: 0 0 auto;
	padding: 4px 10px;
	border: 1px solid rgba(255,255,255,.9);
	border-radius: 999px;
	background: rgba(255,255,255,.94);
	color: #39224f;
	font-size: 10.5px;
	font-weight: 800;
	line-height: 1.2;
	white-space: nowrap;
	box-shadow: 0 3px 10px rgba(18,11,39,.16);
}

.fm-offerbar__cta > span {
	font-size: 13px;
	line-height: 1;
}

.fm-offerbar__phone {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: #fff;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}

.fm-offerbar__phone:hover,
.fm-offerbar__phone:focus-visible {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.fm-nav-shell {
	position: relative;
	background: rgba(255,255,255,.98);
	box-shadow: 0 12px 32px rgba(24, 20, 63, .045);
}

.fm-nav-shell::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: 2px;
	background: linear-gradient(90deg, #ec2f94 0%, #c830bd 38%, #7043e6 68%, #e7e2f0 100%);
}

.fm-nav-inner {
	min-height: 92px;
	display: flex;
	align-items: center;
	gap: 42px;
}

.fm-brand {
	display: inline-flex;
	align-items: center;
	flex: 0 0 230px;
	color: inherit;
	text-decoration: none;
}

.fm-brand__mark {
	display: block;
	width: 230px;
	height: auto;
	overflow: visible;
}

.fm-menu-wrap {
	min-width: 0;
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: clamp(28px, 3vw, 44px);
}

.fm-primary-nav {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: clamp(22px, 2.1vw, 34px);
}

.fm-primary-nav a {
	position: relative;
	padding: 36px 0 33px;
	color: var(--fm-ink);
	font-size: 14px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: .005em;
	text-decoration: none;
	white-space: nowrap;
}

.fm-primary-nav a::after {
	content: "";
	position: absolute;
	left: 50%;
	right: auto;
	width: 28px;
	transform: translateX(-50%) scaleX(0);
	bottom: 19px;
	height: 2px;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--fm-pink), var(--fm-violet));
	transition: transform .2s ease;
}

.fm-primary-nav a:hover,
.fm-primary-nav a:focus-visible {
	color: #5b32cc;
}

.fm-primary-nav a:hover::after,
.fm-primary-nav a:focus-visible::after {
	transform: translateX(-50%) scaleX(1);
}

.fm-quote-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 26px;
	border: 1px solid rgba(255,255,255,.32);
	border-radius: 8px;
	color: #fff;
	background: linear-gradient(135deg, #ec2f94 0%, #b42fca 52%, #5b3bea 100%);
	box-shadow: 0 9px 20px rgba(112, 48, 205, .2);
	font-size: 14px;
	font-weight: 800;
	text-decoration: none;
	white-space: nowrap;
	transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}

.fm-quote-button:hover,
.fm-quote-button:focus-visible {
	color: #fff;
	transform: translateY(-2px);
	filter: saturate(1.08);
	box-shadow: 0 13px 24px rgba(112, 48, 205, .28);
}

.fm-menu-toggle {
	display: none;
	width: 44px;
	height: 42px;
	margin-left: auto;
	padding: 0;
	border: 1px solid var(--fm-line);
	border-radius: 10px;
	background: #fff;
	color: var(--fm-ink);
	align-items: center;
	justify-content: center;
	cursor: pointer;
}

.fm-menu-toggle__label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.fm-menu-toggle__icon {
	display: grid;
	gap: 4px;
	width: 19px;
}

.fm-menu-toggle__icon i {
	display: block;
	width: 100%;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	transition: transform .2s ease, opacity .2s ease;
}

.fm-menu-toggle[aria-expanded="true"] .fm-menu-toggle__icon i:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.fm-menu-toggle[aria-expanded="true"] .fm-menu-toggle__icon i:nth-child(2) { opacity: 0; }
.fm-menu-toggle[aria-expanded="true"] .fm-menu-toggle__icon i:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.formaestro-header a:focus-visible,
.formaestro-header button:focus-visible {
	outline: 3px solid rgba(236,47,148,.28);
	outline-offset: 3px;
}

@media (max-width: 1150px) {
	.fm-nav-inner { gap: 22px; }
	.fm-brand { flex-basis: 205px; }
	.fm-brand__mark { width: 205px; }
	.fm-primary-nav { gap: 18px; }
	.fm-primary-nav a { font-size: 12.5px; }
	.fm-quote-button { padding-inline: 18px; font-size: 12.5px; }
}

@media (max-width: 1320px) {
	.fm-nav-inner {
		position: relative;
		min-height: 74px;
	}

	.fm-brand,
	.fm-brand__mark {
		width: 190px;
		flex-basis: 190px;
	}

	.fm-menu-toggle {
		display: inline-flex;
	}

	.fm-menu-wrap {
		position: absolute;
		left: 0;
		right: 0;
		top: calc(100% - 1px);
		display: none;
		padding: 17px;
		border: 1px solid var(--fm-line);
		border-top: 2px solid transparent;
		border-radius: 0 0 16px 16px;
		background:
			linear-gradient(#fff, #fff) padding-box,
			linear-gradient(90deg, var(--fm-pink), var(--fm-violet)) border-box;
		box-shadow: 0 20px 42px rgba(16,21,47,.13);
	}

	.formaestro-header.is-open .fm-menu-wrap {
		display: grid;
		gap: 14px;
	}

	.fm-primary-nav {
		display: grid;
		align-items: stretch;
	}

	.fm-primary-nav a {
		padding: 11px 7px;
		font-size: 14px;
		border-bottom: 1px solid #f0eff6;
	}

	.fm-primary-nav a::after { display: none; }

	.fm-quote-button {
		width: 100%;
		min-height: 46px;
		font-size: 13.5px;
	}
}

@media (max-width: 640px) {
	.fm-header-container {
		width: min(100% - 28px, 1380px);
	}

	.fm-offerbar__inner {
		min-height: 42px;
		gap: 12px;
		font-size: 10.8px;
	}

	.fm-offerbar__offer {
		line-height: 1.25;
	}

	.fm-offerbar__offer svg {
		display: none;
	}

	.fm-offerbar__phone span {
		display: none;
	}

	.fm-offerbar__phone svg {
		width: 17px;
		height: 17px;
	}

	.fm-nav-inner {
		min-height: 68px;
	}

	.fm-brand,
	.fm-brand__mark {
		width: 174px;
		flex-basis: 174px;
	}
}

/* Single-line navigation with generous separation; collapse before crowding. */
@media (min-width: 1321px) {
 .formaestro-header .fm-nav-inner { gap: 32px; }
 .formaestro-header .fm-brand { flex-basis: 210px; }
 .formaestro-header .fm-brand__mark { width: 210px; }
 .formaestro-header .fm-menu-wrap { gap: 32px; }
 .formaestro-header .fm-primary-nav { gap: 26px; }
 .formaestro-header .fm-primary-nav > a,
 .formaestro-header .fm-mega-link {
  white-space: nowrap;
  max-width: none;
  font-size: 14px;
  font-weight: 700;
 }
 .formaestro-header .fm-quote-button { flex-shrink: 0; padding-inline: 22px; }
}


@media (prefers-reduced-motion: reduce) {
	.formaestro-header *,
	.formaestro-header *::before,
	.formaestro-header *::after {
		scroll-behavior: auto !important;
		transition: none !important;
	}
}

