/* =========================================================
   Dropdown Navigation — MI Al Fitrah
   Desktop : hover / klik dropdown
   Mobile  : off-canvas panel + accordion submenu
   ========================================================= */

:root {
	--nav-h: 85px;
	--nav-radius: 12px;
	--nav-shadow: 0 12px 32px rgba(3, 34, 47, 0.14);
	--nav-hover-bg: rgba(10, 176, 176, 0.08);
	--nav-border: #eef1f2;
}

/* Header harus di atas overlay menu mobile */
.main-header {
	z-index: 1200;
}

/* Anchor tidak tertutup header fixed */
[id]:target,
.section[id],
.section-partner[id],
.section-pengurus[id] {
	scroll-margin-top: calc(var(--nav-h) + 15px);
}

/* ---------- Item menu (level 1) ---------- */
.nav-menu {
	align-items: center;
}

.menu-item {
	position: relative;
	list-style: none;
}

.nav-menu .menu-link,
.nav-menu .menu-trigger {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: inherit;
	font-size: inherit;
	font-weight: 500;
	line-height: 1.2;
	color: var(--primary-font);
	background: none;
	border: 0;
	border-bottom: 2px solid transparent;
	padding: 10px 0;
	cursor: pointer;
	text-decoration: none;
	transition: color 0.25s ease, border-color 0.25s ease;
}

.nav-menu .menu-link:hover,
.nav-menu .menu-trigger:hover,
.nav-menu .menu-link.active,
.nav-menu .menu-trigger.active,
.nav-menu .menu-item.is-open > .menu-trigger {
	color: var(--green-light);
	border-bottom-color: var(--green-light);
}

.nav-menu .menu-link:focus-visible,
.nav-menu .menu-trigger:focus-visible,
.submenu a:focus-visible {
	outline: 2px solid var(--green-light);
	outline-offset: 3px;
	border-radius: 4px;
}

.menu-caret {
	font-size: 12px;
	line-height: 1;
	transition: transform 0.25s ease;
}

.menu-item.is-open > .menu-trigger .menu-caret {
	transform: rotate(180deg);
}

/* ---------- Submenu (dasar) ---------- */
.submenu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.nav-menu .submenu a {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--primary-font);
	text-decoration: none;
	font-weight: 500;
	font-size: 15px;
	border-bottom: 0;
	transition: background 0.2s ease, color 0.2s ease;
}

.nav-menu .submenu a:hover,
.nav-menu .submenu a.active {
	color: var(--green-light);
	background: var(--nav-hover-bg);
	border-bottom: 0;
}

.submenu a i {
	font-size: 16px;
	color: var(--green-light);
	flex-shrink: 0;
}

/* =========================================================
   DESKTOP  (> 1080px)
   ========================================================= */
@media (min-width: 1081px) {
	.submenu {
		position: absolute;
		top: calc(100% + 16px);
		left: 50%;
		transform: translateX(-50%) translateY(10px);
		min-width: 245px;
		background: var(--white);
		border: 1px solid var(--nav-border);
		border-radius: var(--nav-radius);
		box-shadow: var(--nav-shadow);
		padding: 8px;
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
		z-index: 30;
	}

	/* jembatan hover supaya kursor tidak "jatuh" saat turun ke submenu */
	.submenu::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: -18px;
		height: 18px;
	}

	/* fokus keyboard ditangani js/nav.js lewat class .is-open supaya
	   tombol Escape benar-benar bisa menutup dropdown */
	.menu-item.has-submenu:hover > .submenu,
	.menu-item.is-open > .submenu {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: translateX(-50%) translateY(0);
	}

	.nav-menu .submenu a {
		padding: 11px 14px;
		border-radius: 8px;
		white-space: nowrap;
	}

	.nav-overlay {
		display: none !important;
	}
}

/* =========================================================
   TABLET & MOBILE  (<= 1080px) — off-canvas panel
   ========================================================= */
@media (max-width: 1080px) {
	.main-header .header-nav {
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
		position: fixed;
		top: var(--nav-h);
		right: 0;
		width: min(360px, 88vw);
		height: calc(100vh - var(--nav-h));
		height: calc(100dvh - var(--nav-h));
		background: var(--white);
		padding: 14px 16px 40px;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
		box-shadow: -10px 0 30px rgba(3, 34, 47, 0.12);
		transform: translateX(105%);
		transition: transform 0.3s ease;
		z-index: 1210;
	}

	.main-header .header-nav.is-open {
		transform: translateX(0);
	}

	.nav-menu {
		flex-direction: column;
		align-items: stretch;
		gap: 2px;
		width: 100%;
		order: 1;
		padding: 0;
		margin: 0;
	}

	.mobile-actions {
		order: 2;
	}

	.menu-item {
		width: 100%;
	}

	.nav-menu .menu-link,
	.nav-menu .menu-trigger {
		width: 100%;
		justify-content: space-between;
		min-height: 50px;
		padding: 13px 12px;
		border-radius: 10px;
		border-bottom: 1px solid var(--nav-border);
		text-align: left;
	}

	.nav-menu .menu-link:hover,
	.nav-menu .menu-trigger:hover,
	.nav-menu .menu-link.active,
	.nav-menu .menu-trigger.active,
	.nav-menu .menu-item.is-open > .menu-trigger {
		background: var(--nav-hover-bg);
		border-bottom-color: var(--nav-border);
	}

	/* accordion */
	.submenu {
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.3s ease;
		padding-left: 10px;
	}

	.menu-item.is-open > .submenu {
		max-height: 520px;
	}

	.nav-menu .submenu a {
		min-height: 46px;
		padding: 11px 12px;
		border-radius: 8px;
		font-size: 14.5px;
	}

	/* overlay gelap */
	.nav-overlay {
		position: fixed;
		inset: 0;
		background: rgba(3, 34, 47, 0.45);
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.3s ease, visibility 0.3s ease;
		z-index: 1100;
	}

	.nav-overlay.is-open {
		opacity: 1;
		visibility: visible;
	}

	body.nav-locked {
		overflow: hidden;
	}

	/* ikon hamburger <-> close */
	.mobile-toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 44px;
		min-height: 44px;
	}

	.mobile-toggle .icon-close {
		display: none;
	}

	.mobile-toggle.is-open .icon-open {
		display: none;
	}

	.mobile-toggle.is-open .icon-close {
		display: inline-block;
	}
}

/* Layar sangat kecil: panel penuh */
@media (max-width: 480px) {
	.main-header .header-nav {
		width: 100%;
	}
}

/* Aksesibilitas: hormati preferensi kurangi animasi */
@media (prefers-reduced-motion: reduce) {

	.main-header .header-nav,
	.submenu,
	.menu-caret,
	.nav-overlay {
		transition: none !important;
	}
}
