/* KC Mega Menu – change these colours to restyle everything */
.kcmm {
	--kcmm-blue: #1f4e9c;
	--kcmm-text: #000000;
	--kcmm-muted: #e6e8ee;
	--kcmm-top-size: 17px;
	--kcmm-top-weight: 500;
	--kcmm-link-size: 16px;
	--kcmm-heading-size: 12px;
	position: relative;
	font-family: inherit;
	line-height: 1.4;
}
.kcmm *, .kcmm *::before, .kcmm *::after { box-sizing: border-box; }
.kcmm ul { list-style: none; margin: 0; padding: 0; }
.kcmm li { margin: 0; padding: 0; }
.kcmm li::before { content: none; }
.kcmm a { text-decoration: none; box-shadow: none; }
.kcmm button {
	background: none; border: 0; margin: 0; padding: 0; color: inherit;
	font: inherit; cursor: pointer; box-shadow: none; min-height: 0; line-height: 1;
}
.kcmm button:hover, .kcmm button:focus { background: none; color: inherit; }
.kcmm a:focus-visible, .kcmm button:focus-visible {
	outline: 2px solid var(--kcmm-blue); outline-offset: 3px; border-radius: 4px;
}
.kcmm-sr {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(0 0 0 0); white-space: nowrap;
}

/* Top-level items */
.kcmm-item { position: relative; display: flex; align-items: center; }
.kcmm .kcmm-top {
	color: var(--kcmm-text); font-size: var(--kcmm-top-size); font-weight: var(--kcmm-top-weight);
	padding: 10px 0; transition: color .15s;
}
.kcmm .kcmm-top:hover, .kcmm-item.is-open > .kcmm-top, .kcmm-current > .kcmm-top { color: var(--kcmm-blue); }
.kcmm .kcmm-toggle { display: inline-flex; align-items: center; padding: 0px; color: var(--kcmm-text); margin-top:4px;margin-left:4px;}
.kcmm-toggle svg { transition: transform .2s; }
.kcmm-item.is-open > .kcmm-toggle svg { transform: rotate(180deg); }

/* Panel content */
.kcmm .kcmm-heading {
	display: block; margin: 0 0 18px; color: var(--kcmm-blue);
	font-size: var(--kcmm-heading-size); font-weight: 700;
	letter-spacing: .08em; text-transform: uppercase;font-family:inter;
	margin-bottom:20px !important;
}
.kcmm-links { display: grid; gap: 16px; }
.kcmm .kcmm-link { color: var(--kcmm-text); font-size: var(--kcmm-link-size); transition: color .15s; }
.kcmm .kcmm-link:hover, .kcmm .kcmm-link[aria-current] { color: var(--kcmm-blue); }

/* ---------------- Desktop ---------------- */
@media (min-width: 1025px) {
	.kcmm-burger, .kcmm-overlay, .kcmm-drawer-head { display: none !important; }
	.kcmm-drawer { display: contents; }
	.kcmm-list { display: flex; align-items: center; gap: 36px;justify-content:flex-end; }
	.kcmm-item.kc-mobile-only { display: none; }

	.kcmm-panel {
		position: absolute; top: 100%;
		left: calc(-24px - var(--kcmm-shift, 0px));
		padding-top: 14px; /* hover bridge */
		width: max-content;
		z-index: 9999;
		opacity: 0; visibility: hidden; transform: translateY(6px);
		transition: opacity .18s, transform .18s, visibility 0s linear .18s;
	}
	.kcmm-item.is-open > .kcmm-panel {
		opacity: 1; visibility: visible; transform: none;
		transition: opacity .18s, transform .18s, visibility 0s;
	}
	.kcmm-panel-inner {
		display: grid; text-align: left;
		grid-template-columns: repeat(var(--kcmm-cols, 2), minmax(180px, max-content));
		gap: 0 64px;
		min-height: 200px;
		padding: 22px 28px 34px;
		background: #fff;
		border-radius: 12px;
		box-shadow: 0 16px 40px rgba(15, 30, 60, .14), 0 0 0 1px rgba(15, 30, 60, .05);
	}
	.kcmm .kcmm-link { white-space: nowrap; }
}
@media (min-width: 1025px) and (hover: hover) {
	.kcmm-has-panel:hover > .kcmm-panel {
		opacity: 1; visibility: visible; transform: none;
		transition: opacity .18s, transform .18s, visibility 0s;
	}
	.kcmm-has-panel:hover > .kcmm-top { color: var(--kcmm-blue); }
	.kcmm-has-panel:hover > .kcmm-toggle svg { transform: rotate(180deg); }
}

/* ---------------- Mobile / tablet ---------------- */
@media (max-width: 1024px) {
	.kcmm .kcmm-burger {
		display: inline-flex; flex-direction: column; justify-content: center; gap: 5px;
		width: 44px; height: 44px; padding: 0px; border-radius: 8px;
	}
	.kcmm.hfe-dropdown {
    display: flex;
    justify-content: flex-end;
}
	.kcmm .kcmm-burger img {
    width: 44px;
    height: 44px;
    object-fit: cover;
		border-radius:8px;
}
	.kcmm-bar { display: block; width: 24px; height: 2px; border-radius: 2px; background: var(--kcmm-text); }

	.kcmm-overlay {
		position: fixed; inset: 0; z-index: 99998; background: rgba(10, 20, 40, .45);
		opacity: 0; visibility: hidden; transition: opacity .25s, visibility 0s linear .25s;
	}
	.kcmm.is-open .kcmm-overlay { opacity: 1; visibility: visible; transition: opacity .25s; }

	.kcmm-drawer {
		position: fixed; top: 0; right: 0; bottom: 0; z-index: 99999;
		width: min(380px, 88vw); overflow-y: auto; overscroll-behavior: contain;
		background: #fff; padding: 12px 24px 40px;
		box-shadow: -12px 0 40px rgba(10, 20, 40, .18);
		transform: translateX(100%); visibility: hidden;
		transition: transform .28s ease, visibility 0s linear .28s;
	}
	.kcmm.is-open .kcmm-drawer { transform: none; visibility: visible; transition: transform .28s ease; }

	.kcmm-drawer-head { display: flex; justify-content: flex-end; margin-bottom: 4px; }
	.kcmm .kcmm-close {
		display: inline-flex; align-items: center; justify-content: center;
		width: 44px; height: 44px; border-radius: 8px; color: var(--kcmm-text);
	}

	.kcmm-list { display: block; }
	.kcmm-item { flex-wrap: wrap; border-bottom: 1px solid var(--kcmm-muted); }
	.kcmm .kcmm-top { flex: 1; padding: 16px 0; font-size: 17px; }
	.kcmm .kcmm-toggle { width: 44px; height: 44px; justify-content: center; }

	.kcmm-panel { display: none; flex-basis: 100%; }
	.kcmm-item.is-open > .kcmm-panel { display: block; }
	.kcmm-panel-inner { display: grid; gap: 22px; padding: 4px 0 22px 4px; }
	.kcmm .kcmm-heading { margin-bottom: 12px; }
	.kcmm-links { gap: 12px; }
	.kcmm .kcmm-link { display: block; padding: 2px 0; }
}

body.kcmm-lock { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
	.kcmm *, .kcmm *::before, .kcmm *::after { transition: none !important; }
}
