/* ==========================================================================
   Sticky Header — rounded glass bar; a compact copy slides in once you scroll.
   ========================================================================== */

.msh {
	--msh-accent: #00def5;
	--msh-bg: #0b1014;
	--msh-top: 0px;
	position: relative;
	z-index: 999;
	font-family: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	-webkit-font-smoothing: antialiased;
}
.msh *, .msh *::before, .msh *::after { box-sizing: border-box; }
.msh ul { list-style: none; margin: 0; padding: 0; }
.msh a { text-decoration: none; }
.msh button { font: inherit; }

/* ---------------------------------------------------------------- the bar */
.msh .msh__bar {
	position: relative;
	display: flex; align-items: center; gap: 28px;
	height: 76px; padding: 0 22px 0 30px;
	border: 1px solid rgba(255, 255, 255, .07);
	border-radius: 30px;
	background: var(--msh-bg);
	box-shadow: 0 10px 40px rgba(0, 0, 0, .35), inset 0 1px 0 rgba(255, 255, 255, .04);
}
.msh .msh__logo { display: flex; align-items: center; flex: none; height: 100%; }
.msh .msh__logo img { display: block; height: 44px; width: auto; max-width: 220px; object-fit: contain; }
.msh .msh__logo span { font-size: 22px; font-weight: 800; color: #fff; }

.msh .msh__nav { flex: 1; display: flex; justify-content: center; min-width: 0; }
.msh .msh__menu { display: flex; align-items: center; gap: 6px; }
.msh .msh__li { position: relative; display: flex; align-items: center; }
.msh .msh__a {
	position: relative; display: block; padding: 10px 14px;
	font-size: 16px; font-weight: 500; line-height: 1; color: #e9eef1; white-space: nowrap;
	transition: color .2s ease;
}
.msh .msh__a::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 2px; height: 2px; border-radius: 2px; background: var(--msh-accent); box-shadow: 0 0 8px var(--msh-accent); transform: scaleX(0); transition: transform .25s ease; }
.msh .msh__li:hover > .msh__a, .msh .msh__li.is-on > .msh__a { color: var(--msh-accent); }
.msh .msh__li:hover > .msh__a::after, .msh .msh__li.is-on > .msh__a::after { transform: scaleX(1); }
.msh .has-kids > .msh__a { padding-right: 4px; }
.msh .has-kids > .msh__a::after { right: 4px; }
.msh .msh__chev { width: 15px; height: 15px; margin-right: 8px; fill: none; stroke: #9fb0b8; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; transition: transform .25s ease, stroke .2s ease; }
.msh .msh__li:hover > .msh__chev { transform: rotate(180deg); stroke: var(--msh-accent); }

.msh .msh__drop {
	position: absolute; left: 0; top: calc(100% + 14px); min-width: 250px; padding: 10px;
	border: 1px solid rgba(80, 205, 235, .22); border-radius: 16px;
	background: rgba(8, 15, 20, .96);
	box-shadow: 0 20px 50px rgba(0, 0, 0, .5), 0 0 30px rgba(0, 190, 230, .08);
	-webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
	opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .2s ease, transform .2s ease, visibility .2s;
}
.msh .msh__drop::before { content: ""; position: absolute; left: 0; right: 0; top: -16px; height: 16px; }
.msh .msh__li:hover > .msh__drop, .msh .msh__li:focus-within > .msh__drop { opacity: 1; visibility: visible; transform: none; }
.msh .msh__da { display: block; padding: 11px 14px; border-radius: 10px; font-size: 15px; font-weight: 500; line-height: 1.3; color: #e2e9ec; transition: background-color .2s ease, color .2s ease, padding-left .2s ease; }
.msh .msh__da:hover, .msh .msh__drop .is-on .msh__da { background: rgba(0, 200, 235, .1); color: var(--msh-accent); padding-left: 18px; }

.msh .msh__end { display: flex; align-items: center; gap: 12px; flex: none; }
.msh .msh__cta {
	display: inline-flex; align-items: center; justify-content: center; height: 46px; padding: 0 22px;
	border: 2px solid #eafcff; border-radius: 14px;
	background: linear-gradient(180deg, #19d6ee, #08b9d6); color: #fff;
	font-size: 16px; font-weight: 600; white-space: nowrap;
	box-shadow: 0 0 18px rgba(0, 222, 245, .35);
	transition: transform .2s ease, box-shadow .2s ease;
}
.msh .msh__cta:hover { color: #fff; transform: translateY(-1px); box-shadow: 0 0 28px rgba(0, 222, 245, .6); }

.msh .msh__burger { display: none; width: 46px; height: 46px; padding: 0; border: 1px solid rgba(80, 205, 235, .35); border-radius: 12px; background: rgba(0, 40, 52, .5); cursor: pointer; position: relative; }
.msh .msh__burger span { position: absolute; left: 12px; right: 12px; height: 2px; border-radius: 2px; background: #eafcff; transition: transform .3s ease, opacity .2s ease, top .3s ease; }
.msh .msh__burger span:nth-child(1) { top: 15px; } .msh .msh__burger span:nth-child(2) { top: 22px; } .msh .msh__burger span:nth-child(3) { top: 29px; }
.msh.is-open .msh__burger span:nth-child(1) { top: 22px; transform: rotate(45deg); }
.msh.is-open .msh__burger span:nth-child(2) { opacity: 0; }
.msh.is-open .msh__burger span:nth-child(3) { top: 22px; transform: rotate(-45deg); }

/* ---------------------------------------------------------------- sticky copy */
.msh .msh__fixed {
	position: fixed; left: 0; right: 0; top: var(--msh-top); z-index: 9999;
	padding: 12px 20px 0;
	transform: translateY(calc(-100% - 20px)); opacity: 0; pointer-events: none;
	transition: transform .45s cubic-bezier(.2, .8, .2, 1), opacity .3s ease;
}
.msh .msh__fixed .msh__bar {
	max-width: 1320px; margin: 0 auto; height: 64px; padding: 0 14px 0 24px; overflow: hidden;
	border-color: rgba(80, 215, 245, .28);
	background: rgba(9, 15, 19, .78);
	-webkit-backdrop-filter: blur(16px) saturate(140%); backdrop-filter: blur(16px) saturate(140%);
	box-shadow: 0 14px 40px rgba(0, 0, 0, .45), 0 0 26px rgba(0, 200, 240, .14), inset 0 1px 0 rgba(170, 245, 255, .08);
}
.msh .msh__fixed .msh__logo img { height: 36px; }
.msh .msh__fixed .msh__a { font-size: 15px; }
.msh .msh__fixed .msh__cta { height: 40px; padding: 0 18px; font-size: 15px; border-radius: 12px; }
.msh .msh__fixed .msh__burger { width: 42px; height: 42px; }
.msh .msh__fixed .msh__burger span:nth-child(1) { top: 13px; } .msh .msh__fixed .msh__burger span:nth-child(2) { top: 20px; } .msh .msh__fixed .msh__burger span:nth-child(3) { top: 27px; }
.msh.is-open .msh__fixed .msh__burger span:nth-child(1), .msh.is-open .msh__fixed .msh__burger span:nth-child(3) { top: 20px; }
.msh .msh__fixed .msh__drop { top: calc(100% + 11px); }
.msh .msh__progress { position: absolute; left: 0; bottom: 0; height: 2px; width: calc(var(--msh-p, 0) * 100%); background: linear-gradient(90deg, rgba(0, 222, 245, .2), var(--msh-accent)); box-shadow: 0 0 10px var(--msh-accent); border-radius: 2px; }
.msh.is-stuck .msh__fixed { transform: none; opacity: 1; pointer-events: auto; }
.msh.is-stuck.is-away .msh__fixed { transform: translateY(calc(-100% - 20px)); opacity: 0; pointer-events: none; }
/* the dropdowns of the sticky bar must not be clipped */
.msh .msh__fixed .msh__bar { overflow: visible; }
.msh .msh__fixed .msh__bar::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; }

/* ---------------------------------------------------------------- mobile panel */
.msh .msh__panel {
	position: fixed; left: 12px; right: 12px; z-index: 10000; top: var(--msh-panel-top, 90px);
	max-height: calc(100vh - var(--msh-panel-top, 90px) - 16px); overflow-y: auto; padding: 14px;
	border: 1px solid rgba(80, 205, 235, .26); border-radius: 20px;
	background: rgba(8, 14, 18, .97);
	box-shadow: 0 24px 60px rgba(0, 0, 0, .55), 0 0 30px rgba(0, 190, 230, .1);
	-webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
	opacity: 0; transform: translateY(-10px); transition: opacity .25s ease, transform .25s ease;
}
.msh .msh__panel[hidden] { display: block; visibility: hidden; pointer-events: none; }
.msh.is-open .msh__panel { visibility: visible; pointer-events: auto; opacity: 1; transform: none; }
.msh .msh__panel li + li { border-top: 1px solid rgba(120, 200, 225, .1); }
.msh .msh__prow { display: flex; align-items: center; justify-content: space-between; }
.msh .msh__pa { flex: 1; display: block; padding: 15px 10px; font-size: 17px; font-weight: 600; color: #eef3f5; }
.msh .msh__panel .is-on > .msh__prow .msh__pa { color: var(--msh-accent); }
.msh .msh__ptoggle { width: 44px; height: 44px; border: 0; background: none; cursor: pointer; }
.msh .msh__ptoggle .msh__chev { margin: 0; width: 20px; height: 20px; }
.msh .msh__ptoggle[aria-expanded="true"] .msh__chev { transform: rotate(180deg); stroke: var(--msh-accent); }
.msh .msh__psub { display: none; padding: 0 0 10px 10px; }
.msh .msh__psub.is-open { display: block; }
.msh .msh__psub li { border: 0 !important; }
.msh .msh__psa { display: block; padding: 10px 12px; border-left: 2px solid rgba(80, 205, 235, .3); font-size: 15.5px; color: #c9d4d9; }
.msh .msh__psa:hover { color: var(--msh-accent); border-color: var(--msh-accent); }
.msh .msh__cta--block { display: flex; width: 100%; margin-top: 12px; height: 52px; }

@media (max-width: 1180px) {
	.msh .msh__menu { gap: 0; }
	.msh .msh__a { padding: 10px 10px; font-size: 15px; }
	.msh .msh__bar { gap: 16px; }
}
@media (max-width: 1024px) {
	.msh .msh__nav { display: none; }
	.msh .msh__bar { justify-content: space-between; height: 66px; padding: 0 12px 0 18px; border-radius: 22px; }
	.msh .msh__logo img { height: 36px; }
	.msh .msh__burger { display: block; }
	.msh .msh__fixed { padding: 8px 10px 0; }
	.msh .msh__fixed .msh__bar { height: 58px; border-radius: 18px; }
}
@media (max-width: 560px) {
	.msh .msh__end .msh__cta { display: none; }
	.msh .msh__logo img { height: 32px; max-width: 170px; }
}
@media (prefers-reduced-motion: reduce) {
	.msh .msh__fixed, .msh .msh__panel, .msh .msh__drop { transition: none; }
}
