/* =========================================================
   HAMSA — NAVIGATION
   =========================================================
   Desktop = Primary Menu
   Mobile  = Mobile Menu
   ========================================================= */


/* =========================================================
   NAVIGATION WRAPPER
   ========================================================= */

.hamsa-primary-nav {
	position: relative;

	display: flex;
	align-items: center;

	width: 100%;
	margin: 0;
	padding: 0;
}


/* =========================================================
   DESKTOP NAVIGATION
   ========================================================= */

.hamsa-desktop-navigation {
	display: flex;
	align-items: center;

	margin-left: auto;
}


.hamsa-desktop-menu {
	display: flex;
	align-items: center;

	gap: 30px;

	margin: 0;
	padding: 0;

	list-style: none;
}


.hamsa-desktop-menu > li {
	position: relative;

	display: block;

	margin: 0;
	padding: 0;

	list-style: none;
}


.hamsa-desktop-menu > li > a {
	position: relative;

	display: block;

	margin: 0;
	padding: 12px 0;

	color: #111111;

	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;

	text-decoration: none;
	white-space: nowrap;
}


/* Desktop hover line */

.hamsa-desktop-menu > li > a::after {
	content: "";

	position: absolute;

	left: 0;
	bottom: 2px;

	width: 0;
	height: 2px;

	background: #c99a2e;

	transition: width .2s ease;
}


.hamsa-desktop-menu > li > a:hover::after,
.hamsa-desktop-menu > li > a:focus::after,
.hamsa-desktop-menu > li.current-menu-item > a::after,
.hamsa-desktop-menu > li.current-menu-ancestor > a::after {
	width: 100%;
}


/* =========================================================
   DESKTOP DROPDOWN
   ========================================================= */

.hamsa-desktop-menu > li > .sub-menu {
	position: absolute;

	top: calc(100% + 8px);
	left: 0;

	z-index: 99999;

	display: block;

	min-width: 240px;

	margin: 0;
	padding: 8px 0;

	list-style: none;

	background: #ffffff;

	border: 1px solid #e5e5e5;
	border-top: 2px solid #c99a2e;

	box-shadow: 0 14px 32px rgba(0, 0, 0, .10);

	opacity: 0;
	visibility: hidden;
	pointer-events: none;

	transform: translateY(6px);

	transition:
		opacity .2s ease,
		visibility .2s ease,
		transform .2s ease;
}


.hamsa-desktop-menu > li:hover > .sub-menu,
.hamsa-desktop-menu > li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;

	transform: translateY(0);
}


/* =========================================================
   DESKTOP SUBMENU ITEMS
   ========================================================= */

.hamsa-desktop-menu .sub-menu > li {
	position: relative;

	display: block;

	width: 100%;

	margin: 0;
	padding: 0;

	list-style: none;
}


.hamsa-desktop-menu .sub-menu > li > a {
	display: block;

	width: 100%;

	margin: 0;
	padding: 11px 18px;

	color: #222222;

	font-size: 15px;
	font-weight: 500;
	line-height: 1.45;

	text-decoration: none;

	white-space: normal;

	border-left: 2px solid transparent;
}


.hamsa-desktop-menu .sub-menu > li > a:hover,
.hamsa-desktop-menu .sub-menu > li > a:focus {
	color: #111111;

	background: #f6f6f4;

	border-left-color: #c99a2e;
}


/* =========================================================
   NESTED DESKTOP SUBMENU
   ========================================================= */

.hamsa-desktop-menu .sub-menu .sub-menu {
	position: absolute;

	top: -9px;
	left: 100%;

	z-index: 99999;

	min-width: 240px;

	margin: 0;
	padding: 8px 0;

	background: #ffffff;

	border: 1px solid #e5e5e5;
	border-top: 2px solid #c99a2e;

	box-shadow: 0 14px 32px rgba(0, 0, 0, .10);

	opacity: 0;
	visibility: hidden;
	pointer-events: none;

	transform: translateX(6px);

	transition:
		opacity .2s ease,
		visibility .2s ease,
		transform .2s ease;
}


.hamsa-desktop-menu .sub-menu > li:hover > .sub-menu,
.hamsa-desktop-menu .sub-menu > li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;

	transform: translateX(0);
}


/* =========================================================
   MOBILE NAVIGATION
   =========================================================

   Mobile navigation is hidden on desktop.
   mobile.css will display it at <= 991px.
   ========================================================= */

.hamsa-mobile-navigation {
	display: none;
}


.hamsa-mobile-menu {
	display: none;
}


/* =========================================================
   MOBILE BREAKPOINT
   ========================================================= */

@media (max-width: 991px) {

	/* ---------------------------------------------
	   Hide desktop menu completely
	   --------------------------------------------- */

	.hamsa-desktop-navigation {
		display: none !important;
	}


	/* ---------------------------------------------
	   Show mobile navigation
	   --------------------------------------------- */

	.hamsa-mobile-navigation {
		position: relative;

		display: flex;

		align-items: center;

		margin-left: auto;
	}


	/* ---------------------------------------------
	   Mobile menu button
	   --------------------------------------------- */

	.hamsa-menu-toggle {
		display: inline-flex !important;

		align-items: center;
		justify-content: center;

		gap: 9px;

		width: auto;
		height: 44px;

		margin: 0;
		padding: 0;

		border: 0;
		border-radius: 0;

		background: transparent;
		color: #111111;

		font-family: inherit;
		font-size: 17px;
		font-weight: 500;
		line-height: 1;

		cursor: pointer;

		box-shadow: none;
	}


	.hamsa-menu-toggle:hover,
	.hamsa-menu-toggle:focus,
	.hamsa-menu-toggle:active {
		background: transparent;
		color: #111111;

		border: 0;
		box-shadow: none;
	}


	.hamsa-menu-toggle:focus-visible {
		outline: 2px solid #c99a2e;
		outline-offset: 4px;
	}


	.hamsa-menu-toggle-icon {
		display: inline-block;

		font-size: 28px;
		font-weight: 400;

		line-height: 1;
	}


	.hamsa-menu-toggle-label {
		display: inline-block;

		font-size: 17px;
		line-height: 1;
	}


	/* ---------------------------------------------
	   Mobile menu panel
	   --------------------------------------------- */

	.hamsa-mobile-menu {
		position: absolute !important;

		top: calc(100% + 10px);
		right: 0;
		left: auto;

		z-index: 99999;

		display: none !important;

		flex-direction: column;
		align-items: stretch;

		width: 320px;
		max-width: calc(100vw - 32px);

		margin: 0;
		padding: 8px 20px 14px;

		list-style: none;

		background: #ffffff;

		border: 1px solid #dddddd;
		border-top: 2px solid #c99a2e;

		box-shadow: 0 12px 30px rgba(0, 0, 0, .12);
	}


	.hamsa-mobile-menu.is-open {
		display: flex !important;
	}


	/* ---------------------------------------------
	   Mobile top-level items
	   --------------------------------------------- */

	.hamsa-mobile-menu > li {
		position: relative;

		display: block;

		width: 100%;

		margin: 0;
		padding: 0;

		list-style: none;
	}


	.hamsa-mobile-menu > li > a {
		display: block;

		width: 100%;

		margin: 0;
		padding: 13px 0;

		color: #111111;

		font-size: 16px;
		font-weight: 500;
		line-height: 1.45;

		text-decoration: none;

		white-space: normal;

		border-bottom: 1px solid #eeeeee;
	}


	.hamsa-mobile-menu > li:last-child > a {
		border-bottom: 0;
	}


	/* Remove desktop underline */

	.hamsa-mobile-menu > li > a::after {
		display: none !important;
	}


	/* ---------------------------------------------
	   Mobile submenu
	   --------------------------------------------- */

	.hamsa-mobile-menu > li > .sub-menu {
		position: static !important;

		display: block;

		width: 100%;
		min-width: 0;

		margin: 0;
		padding: 0 0 4px 14px;

		list-style: none;

		background: #fafafa;

		border: 0;
		border-left: 2px solid #c99a2e;

		box-shadow: none;

		opacity: 1 !important;
		visibility: visible !important;
		pointer-events: auto !important;

		transform: none !important;
	}


	.hamsa-mobile-menu .sub-menu > li {
		display: block;

		width: 100%;

		margin: 0;
		padding: 0;

		list-style: none;
	}


	.hamsa-mobile-menu .sub-menu > li > a {
		display: block;

		width: 100%;

		margin: 0;
		padding: 10px;

		color: #333333;

		font-size: 14px;
		font-weight: 500;
		line-height: 1.45;

		text-decoration: none;

		white-space: normal;

		border-bottom: 1px solid #eeeeee;
	}


	.hamsa-mobile-menu .sub-menu > li:last-child > a {
		border-bottom: 0;
	}


	/* ---------------------------------------------
	   Nested mobile submenu
	   --------------------------------------------- */

	.hamsa-mobile-menu .sub-menu .sub-menu {
		position: static !important;

		display: block;

		width: 100%;
		min-width: 0;

		margin: 0;
		padding: 0 0 0 12px;

		background: #ffffff;

		border: 0;
		border-left: 1px solid #dddddd;

		box-shadow: none;

		opacity: 1 !important;
		visibility: visible !important;
		pointer-events: auto !important;

		transform: none !important;
	}
}


/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 480px) {

	.hamsa-menu-toggle {
		height: 42px;

		gap: 8px;

		font-size: 16px;
	}


	.hamsa-menu-toggle-icon {
		font-size: 26px;
	}


	.hamsa-menu-toggle-label {
		font-size: 16px;
	}


	.hamsa-mobile-menu {
		width: 300px;
		max-width: calc(100vw - 24px);

		padding-left: 16px;
		padding-right: 16px;
	}
}