/* Araddhya Core — header dropdown, matched to the live site's menu. */

/* Panel ------------------------------------------------------------------ */

.hfe-nav-menu .sub-menu {
	min-width: 320px;
	padding: 8px;
	background: #fff;
	border: 1px solid var(--ar-border, #d9e5f0);
	border-radius: 12px;
	box-shadow: 0 18px 40px rgba(10, 39, 64, .14);
}

.hfe-nav-menu .sub-menu li {
	margin: 0;
}

/* Items ------------------------------------------------------------------ */

.hfe-nav-menu .sub-menu a.hfe-sub-menu-item {
	position: relative;
	display: block;
	padding: 11px 14px;
	border-radius: 8px;
	line-height: 1.35;
	transition: background-color .15s ease;
}

.hfe-nav-menu .sub-menu a.hfe-sub-menu-item:hover,
.hfe-nav-menu .sub-menu a.hfe-sub-menu-item:focus-visible {
	background: var(--ar-accent-soft, #e8f2fa);
}

.ar-menu-label {
	display: block;
	font-family: var(--ar-body, Inter), system-ui, sans-serif;
	font-size: 14px;
	font-weight: 600;
	line-height: 20px;
	color: var(--ar-text, #0d263e);
}

.ar-menu-sub {
	display: block;
	margin-top: 2px;
	font-family: var(--ar-body, Inter), system-ui, sans-serif;
	font-size: 12px;
	font-weight: 400;
	line-height: 17px;
	color: var(--ar-muted, #5f7386);
}

.hfe-nav-menu .sub-menu a.hfe-sub-menu-item:hover .ar-menu-label {
	color: var(--ar-primary, #0c5ca5);
}

/* Icons ------------------------------------------------------------------ */

.hfe-nav-menu .sub-menu a[class*="ar-menu-icon-"] {
	padding-left: 46px;
}

.hfe-nav-menu .sub-menu a[class*="ar-menu-icon-"]::before {
	content: "";
	position: absolute;
	top: 12px;
	left: 14px;
	width: 20px;
	height: 20px;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 20px 20px;
}

.hfe-nav-menu .sub-menu a.ar-menu-icon-mappin::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230c5ca5' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
}

.hfe-nav-menu .sub-menu a.ar-menu-icon-camera::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230c5ca5' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z'/%3E%3Ccircle cx='12' cy='13' r='3'/%3E%3C/svg%3E");
}

/* A divider under the first "hub" entry, as on the live menu. */
.hfe-nav-menu .sub-menu li:has(> a[class*="ar-menu-icon-"]) {
	padding-bottom: 8px;
	margin-bottom: 8px;
	border-bottom: 1px solid var(--ar-border, #d9e5f0);
}

/* Mobile / off-canvas ----------------------------------------------------- */

@media (max-width: 1024px) {
	.hfe-nav-menu .sub-menu {
		min-width: 0;
		padding: 0 0 0 12px;
		border: 0;
		border-radius: 0;
		box-shadow: none;
		background: transparent;
	}

	.hfe-nav-menu .sub-menu a.hfe-sub-menu-item {
		padding: 10px 0;
	}

	.hfe-nav-menu .sub-menu a[class*="ar-menu-icon-"] {
		padding-left: 32px;
	}

	.hfe-nav-menu .sub-menu a[class*="ar-menu-icon-"]::before {
		top: 11px;
		left: 0;
	}

	.hfe-nav-menu .sub-menu li:has(> a[class*="ar-menu-icon-"]) {
		padding-bottom: 6px;
		margin-bottom: 6px;
	}
}

/* Mobile CTA ------------------------------------------------------------- */

/* The header's "Book a Site Visit" button is hidden on phones, so the menu
   carries the CTA instead — mirroring the live site's mobile panel. */
.hfe-nav-menu li.ar-menu-cta {
	display: none;
}

@media (max-width: 1024px) {
	.hfe-nav-menu li.ar-menu-cta {
		display: block;
		margin-top: 14px;
	}

	.hfe-nav-menu li.ar-menu-cta > a.hfe-menu-item {
		display: flex;
		align-items: center;
		justify-content: center;
		background: var(--ar-primary, #0c5ca5);
		color: #fff;
		border-radius: 8px;
		padding: 14px 20px;
		font-weight: 600;
	}

	.hfe-nav-menu li.ar-menu-cta > a.hfe-menu-item:hover {
		background: var(--ar-primary-deep, #083e70);
		color: #fff;
	}
}

/* Comfortable tap targets in the mobile and footer menus ------------------- */

@media (max-width: 1024px) {
	.hfe-nav-menu .menu-item > a.hfe-menu-item,
	.hfe-nav-menu .menu-item > a.hfe-sub-menu-item,
	.hfe-nav-menu .hfe-has-submenu-container > a {
		display: flex;
		align-items: center;
		min-height: 44px;
	}
}

/* The dropdown sub-labels are long location lines. Header Footer Elementor
   sets menu anchors to nowrap, which pushed the closed mobile menu 65px past
   the viewport and gave the whole page a horizontal scroll. */
.ar-menu-label,
.ar-menu-sub {
	white-space: normal;
	overflow-wrap: anywhere;
	max-width: 100%;
}

.hfe-nav-menu .sub-menu a.hfe-sub-menu-item {
	white-space: normal;
	max-width: 100%;
}

@media (max-width: 1024px) {
	.hfe-nav-menu,
	.hfe-nav-menu ul,
	.hfe-nav-menu .sub-menu {
		max-width: 100%;
	}

	.hfe-nav-menu .sub-menu {
		min-width: 0;
	}
}

/* Fixed header, as on the live site (header.fixed.top-0 with border + shadow) ---- */

body.ehf-header #masthead {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 900;
	background: #fff;
	box-shadow: 0 1px 2px rgba(10, 39, 64, .06);
}

/* Reserve the header's height so the first section is not hidden underneath.
   araddhya.js keeps this exact via --ar-header-h; these are the fallbacks. */
body.ehf-header {
	--ar-header-h: 80px;
	padding-top: var(--ar-header-h);
}

body.admin-bar #masthead {
	top: 32px;
}

@media (max-width: 782px) {
	body.admin-bar #masthead {
		top: 46px;
	}
}

@media (max-width: 1024px) {
	body.ehf-header {
		--ar-header-h: 64px;
	}
}

/* In-page anchors (#site-visit, #virtual-tour, legal contents) land below the header. */
[id] {
	scroll-margin-top: calc(var(--ar-header-h, 80px) + 24px);
}

/* The open mobile menu lives inside the fixed header: keep it scrollable. */
@media (max-width: 1024px) {
	#masthead .hfe-nav-menu__layout-horizontal .hfe-nav-menu,
	#masthead .hfe-nav-menu {
		max-height: calc(100vh - var(--ar-header-h, 64px) - 16px);
		overflow-y: auto;
	}
}

/* Elementor's editor renders the header in-canvas; keep it in flow there. */
body.elementor-editor-active #masthead {
	position: relative;
}

body.elementor-editor-active.ehf-header {
	padding-top: 0;
}

/* Hamburger sits at the right edge of the header on tablet and phone. */
@media (max-width: 1024px) {
	#masthead .elementor-widget-navigation-menu .hfe-nav-menu__toggle {
		margin-left: auto;
		margin-right: 0;
	}

	#masthead .elementor-widget-navigation-menu .hfe-nav-menu__layout-horizontal,
	#masthead .elementor-widget-navigation-menu > .elementor-widget-container {
		display: flex;
		flex-direction: column;
		align-items: flex-end;
		width: 100%;
	}

	#masthead .elementor-widget-navigation-menu .hfe-nav-menu {
		width: 100%;
	}
}

/* Off-canvas dropdown entries: the tap-target rule above turns the anchor into
   a flex row, which put the venture name and its location side by side. Stack
   them, like the live site's mobile menu. */
@media (max-width: 1024px) {
	.hfe-nav-menu .sub-menu .menu-item > a.hfe-sub-menu-item {
		flex-direction: column;
		align-items: flex-start;
		justify-content: center;
		gap: 2px;
		padding: 12px 14px;
	}

	.hfe-nav-menu .sub-menu a[class*="ar-menu-icon-"] {
		padding-left: 46px;
	}

	.hfe-nav-menu .sub-menu .ar-menu-label,
	.hfe-nav-menu .sub-menu .ar-menu-sub {
		width: 100%;
	}

	.hfe-nav-menu .sub-menu li:has(> a[class*="ar-menu-icon-"]) {
		padding-bottom: 6px;
		margin-bottom: 6px;
	}
}

/* Footer legal links (widget class .ar-footer-legal): one wrapping,
   left-aligned row on tablet and phone. The Quick Links menu keeps its list. */
@media (max-width: 1024px) {
	.elementor-118 .ar-footer-legal,
	.elementor-118 .ar-footer-legal .hfe-nav-menu__layout-horizontal,
	.elementor-118 .ar-footer-legal > .elementor-widget-container {
		display: block;
		width: 100%;
	}

	.elementor-118 .ar-footer-legal ul.hfe-nav-menu {
		display: flex;
		flex-wrap: wrap;
		justify-content: flex-start;
		align-items: center;
		column-gap: 22px;
		row-gap: 4px;
		width: 100%;
		margin: 0;
		padding: 0;
	}

	.elementor-118 .ar-footer-legal ul.hfe-nav-menu > li,
	.elementor-118 .ar-footer-legal ul.hfe-nav-menu > li.menu-item {
		margin: 0;
		padding: 0;
		width: auto;
	}

	.elementor-118 .ar-footer-legal ul.hfe-nav-menu > li > a.hfe-menu-item {
		padding: 0;
		margin: 0;
		min-height: 40px;
	}
}

/* Tighter dropdown gutters (desktop panel and mobile list). */
.hfe-nav-menu .sub-menu {
	padding: 6px;
}

.hfe-nav-menu .sub-menu a.hfe-sub-menu-item {
	padding: 10px 10px;
}

.hfe-nav-menu .sub-menu a[class*="ar-menu-icon-"] {
	padding-left: 38px;
}

.hfe-nav-menu .sub-menu a[class*="ar-menu-icon-"]::before {
	left: 10px;
	top: 11px;
}

@media (max-width: 1024px) {
	.hfe-nav-menu .sub-menu {
		padding: 0;
	}

	.hfe-nav-menu .sub-menu .menu-item > a.hfe-sub-menu-item {
		padding: 10px 6px;
	}

	.hfe-nav-menu .sub-menu a[class*="ar-menu-icon-"] {
		padding-left: 34px;
	}

	.hfe-nav-menu .sub-menu a[class*="ar-menu-icon-"]::before {
		left: 6px;
	}
}

/* Header Footer Elementor writes per-widget padding for sub-menu links
   (15px + 20px indent on mobile); the id selector outranks it. */
#masthead .elementor-widget-navigation-menu .sub-menu .menu-item a.hfe-sub-menu-item {
	padding: 10px 10px;
}

#masthead .elementor-widget-navigation-menu .sub-menu .menu-item a[class*="ar-menu-icon-"] {
	padding-left: 38px;
}

@media (max-width: 1024px) {
	/* Same 15px gutter as the parent links, so the entries line up with them. */
	#masthead .elementor-widget-navigation-menu .sub-menu .menu-item a.hfe-sub-menu-item {
		padding: 10px 15px;
	}

	#masthead .elementor-widget-navigation-menu .sub-menu .menu-item a[class*="ar-menu-icon-"] {
		padding-left: 41px;
	}

	#masthead .elementor-widget-navigation-menu .sub-menu a[class*="ar-menu-icon-"]::before {
		left: 15px;
	}

	#masthead .elementor-widget-navigation-menu ul.hfe-nav-menu .sub-menu {
		padding: 0;
		margin: 0;
	}
}
