/**
 * RM Custom Nav — Frontend styles
 *
 * CSS variables for theming (override in your theme or plugin settings):
 *   --rm-bar-bg       : nav bar background
 *   --rm-bar-text     : nav bar text color
 *   --rm-bar-height   : nav bar height
 *   --rm-accent       : active/hover accent (underline, highlights)
 *   --rm-section-color: section header text
 *   --rm-cta-bg       : CTA button background
 *   --rm-cta-text     : CTA button text
 */

.rm-nav {
	--rm-bar-bg: #1C3644;
	--rm-bar-text: #ffffff;
	--rm-bar-height: 56px;
	--rm-accent: #C47030;
	--rm-section-color: #2271b1;
	--rm-cta-bg: #C47030;
	--rm-cta-text: #ffffff;
	--rm-panel-bg: #ffffff;
	--rm-panel-shadow: 0 8px 30px rgba(0,0,0,0.12);
	--rm-text-dark: #1d2327;
	--rm-text-muted: #6b7280;
	--rm-disabled-color: #b0b5ba;
	--rm-radius: 0px;

	font-family: inherit;
	line-height: 1.5;
	box-sizing: border-box;
	width: 100% !important;
	flex: 1 1 100% !important;
	max-width: 100% !important;
	position: relative !important;
}
.rm-nav *, .rm-nav *::before, .rm-nav *::after { box-sizing: border-box; }

/* ================================================================ */
/* DESKTOP                                                          */
/* ================================================================ */

.rm-nav__desktop { display: block; }
.rm-nav__mobile  { display: none; }

.rm-nav__bar-wrap {
	position: relative !important;
	z-index: 10000;
	overflow: visible;
}

/* Ensure Elementor containers don't clip the mega panels — broad selector is fine for overflow only */
.elementor-element:has(.rm-nav),
.elementor-widget:has(.rm-nav),
.elementor-widget-shortcode:has(.rm-nav) {
	overflow: visible !important;
}
/* Desktop only: stretch the WIDGET WRAPPER (only) so the full nav bar spans its row.
   Narrow selector — must NOT match ancestor containers like `.fixed-header-container`,
   which would otherwise get width/flex overrides that break Elementor's sticky width capture. */
@media (min-width: 1025px) {
	.elementor-widget-shortcode:has(.rm-nav) {
		width: 100% !important;
		max-width: 100% !important;
		flex: 1 1 100% !important;
	}
}
/* Mobile/tablet: widget wrapper shrinks to the hamburger's width. Ancestor containers untouched. */
@media (max-width: 1024px) {
	.elementor-widget-shortcode:has(.rm-nav) {
		flex: 0 0 auto !important;
		width: auto !important;
		max-width: 100% !important;
	}
}
/* Fallback for browsers without :has() support */
.e-con:has(.rm-nav) { overflow: visible !important; }

.rm-nav__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 24px;
	height: var(--rm-bar-height);
}

.rm-nav__bar-group {
	display: flex;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 0;
	height: 100%;
}

.rm-nav__bar-item {
	display: flex;
	align-items: center;
	height: 100%;
	position: static; /* panels escape to bar-wrap */
}

.rm-nav__bar-item--has-panel {
	position: static;
}

.rm-nav__bar-link {
	display: flex !important;
	align-items: center !important;
	gap: 6px !important;
	height: 100% !important;
	padding: 0 clamp(8px, 2.4vw - 16px, 18px) !important;
	color: var(--rm-bar-text) !important;
	text-decoration: none !important;
	font-size: clamp(0.85rem, 0.235rem + 0.962vw, 1.1rem) !important;
	font-weight: 600 !important;
	letter-spacing: 0.04em !important;
	text-transform: uppercase !important;
	background: transparent !important;
	background-color: transparent !important;
	border: none !important;
	border-bottom: 3px solid transparent !important;
	cursor: pointer !important;
	white-space: nowrap !important;
	transition: border-color 0.2s ease !important;
	font-family: inherit !important;
	box-shadow: none !important;
	outline: none !important;
}

.rm-nav__bar-link:hover,
.rm-nav__bar-link:focus,
.rm-nav__bar-item--has-panel:hover > .rm-nav__bar-link {
	border-bottom-color: var(--rm-accent) !important;
	color: var(--rm-bar-text) !important;
	background: transparent !important;
	background-color: transparent !important;
	outline: none !important;
}

.rm-nav__chevron {
	transition: transform 0.2s ease;
}

/* ================================================================ */
/* PANELS                                                           */
/* ================================================================ */

.rm-nav__panel {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	width: 100%;
	max-width: 1391px;
	margin: 0 auto;
	z-index: 9999;
	background: var(--rm-panel-bg);
	box-shadow: var(--rm-panel-shadow);
	border-top: 1px solid #e5e7eb;
	overflow: hidden;
	display: none;
	/* Reset Elementor inherited styles */
	text-transform: none;
	letter-spacing: 0;
	font-size: 15px;
	font-weight: 400;
	color: var(--rm-text-dark);
}

/* Pure CSS hover — no JS needed */
.rm-nav__bar-item--has-panel:hover > .rm-nav__panel,
.rm-nav__bar-item--has-panel:focus-within > .rm-nav__panel {
	display: block;
	animation: rmPanelIn 0.2s ease;
}

.rm-nav__bar-item--has-panel:hover > .rm-nav__bar-link .rm-nav__chevron {
	transform: rotate(180deg);
}

/* Positioned relative to bar-wrap which is the reference */
.rm-nav__bar-wrap { position: relative !important; }

@keyframes rmPanelIn {
	from { opacity: 0; transform: translateY(-4px); }
	to   { opacity: 1; transform: translateY(0); }
}

.rm-nav__panel-inner {
	display: flex !important;
	gap: 0 !important;
	max-width: 1440px;
	margin: 0 auto;
	padding: 32px 24px;
	min-height: 200px;
	align-items: flex-start !important;
}

/* When there's a promo column, 3 columns */
.rm-nav__panel-inner:has(.rm-nav__panel-col--promo) {
	/* handled by promo flex-basis below */
}

.rm-nav__panel-col {
	flex: 1 1 0% !important;
	min-width: 0 !important;
	padding: 0 24px !important;
	border-right: 1px solid #f0f0f1;
}
.rm-nav__panel-col:first-child { padding-left: 0 !important; }
.rm-nav__panel-col:last-child  { border-right: none; padding-right: 0 !important; }

.rm-nav__panel-col--promo {
	flex: 0 0 340px !important;
	max-width: 340px !important;
	padding: 0 !important;
	border-right: none;
}

/* ================================================================ */
/* SECTIONS (inside panels) — !important to beat Elementor kit      */
/* ================================================================ */

.rm-nav__section {
	margin-bottom: 24px !important;
}
.rm-nav__section:last-child { margin-bottom: 0 !important; }

.rm-nav__panel .rm-nav__section-title,
.rm-nav__panel h3.rm-nav__section-title {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	margin: 24px 0 12px !important;
	padding: 0 0 8px !important;
	font-size: 0.9em !important;
	font-weight: 900 !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase !important;
	color: var(--e-global-color-accent, var(--rm-section-color)) !important;
	border-bottom: 2px solid var(--e-global-color-accent, var(--rm-section-color)) !important;
	border-top: none !important;
	border-left: none !important;
	border-right: none !important;
	line-height: 1.4 !important;
	background: transparent !important;
	height: auto !important;
	width: auto !important;
	max-height: none !important;
	overflow: visible !important;
	position: static !important;
	float: none !important;
	clip: auto !important;
}

/* First section title in a column — no top margin */
.rm-nav__panel-col > h3.rm-nav__section-title:first-child,
.rm-nav__panel-col > .rm-nav__section:first-child > h3.rm-nav__section-title {
	margin-top: 0 !important;
}

.rm-nav__panel .rm-nav__section-list {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.rm-nav__panel .rm-nav__section-item {
	margin-bottom: 2px !important;
	border: none !important;
}

/* ================================================================ */
/* LINKS (inside sections) — !important to beat Elementor kit       */
/* ================================================================ */

.rm-nav__panel .rm-nav__link,
.rm-nav__panel a.rm-nav__link,
.rm-nav__panel span.rm-nav__link {
	display: flex !important;
	align-items: flex-start !important;
	gap: 12px !important;
	padding: 8px 10px !important;
	border-radius: 6px !important;
	text-decoration: none !important;
	color: var(--rm-text-dark) !important;
	text-transform: none !important;
	font-size: 15px !important;
	font-weight: 400 !important;
	letter-spacing: 0 !important;
	border: none !important;
	background: transparent !important;
	transition: background-color 0.15s ease !important;
}

.rm-nav__panel a.rm-nav__link:hover {
	background: #f6f8fa !important;
	color: var(--rm-text-dark) !important;
	text-decoration: none !important;
}

.rm-nav__panel .rm-nav__link--disabled {
	color: var(--rm-disabled-color) !important;
	cursor: default !important;
	pointer-events: none !important;
}

.rm-nav__panel .rm-nav__icon {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 14px !important;
	height: 14px !important;
	flex-shrink: 0 !important;
	background: transparent !important;
	border-radius: 0 !important;
	color: #9ca3af !important;
	margin: 0 8px 0 0 !important;
	transition: transform 0.2s ease, color 0.2s ease !important;
}

/* Hover: icon slides right, both icon and label take on brand accent */
.rm-nav__panel a.rm-nav__link:hover .rm-nav__icon,
.rm-nav__panel a.rm-nav__link:focus .rm-nav__icon {
	transform: translateX(4px) !important;
	color: var(--e-global-color-accent, var(--rm-section-color)) !important;
}

.rm-nav__panel a.rm-nav__link:hover .rm-nav__link-label,
.rm-nav__panel a.rm-nav__link:focus .rm-nav__link-label {
	color: var(--e-global-color-accent, var(--rm-section-color)) !important;
}

/* Active state (current page URL matches menu item URL) */
.rm-nav__panel .rm-nav__link--active .rm-nav__icon {
	color: var(--e-global-color-accent, var(--rm-section-color)) !important;
	transform: translateX(4px) !important;
}

.rm-nav__panel .rm-nav__link--active .rm-nav__link-label {
	color: var(--e-global-color-accent, var(--rm-section-color)) !important;
	font-weight: 700 !important;
}

.rm-nav__panel .rm-nav__link--disabled .rm-nav__icon {
	background: transparent !important;
	color: var(--rm-disabled-color) !important;
}

.rm-nav__icon-svg { display: block; }

.rm-nav__panel .rm-nav__link-text {
	display: flex !important;
	flex-direction: column !important;
	gap: 2px !important;
	min-width: 0 !important;
}

.rm-nav__panel .rm-nav__link-label {
	font-size: 15px !important;
	font-weight: 600 !important;
	color: var(--rm-text-dark) !important;
	line-height: 1.3 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}

.rm-nav__panel .rm-nav__link-tagline {
	font-size: 13px !important;
	color: var(--rm-text-muted) !important;
	font-weight: 400 !important;
	line-height: 1.4 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}

.rm-nav__panel .rm-nav__link--disabled .rm-nav__link-label,
.rm-nav__panel .rm-nav__link--disabled .rm-nav__link-tagline {
	color: var(--rm-disabled-color) !important;
}

/* ================================================================ */
/* FLAT LINKS (level-1 items without children, e.g. Company items) */
/* ================================================================ */

.rm-nav__flat-item {
	margin-bottom: 2px !important;
}

.rm-nav__panel .rm-nav__flat-link,
.rm-nav__panel a.rm-nav__flat-link {
	display: flex !important;
	align-items: center !important;
	padding: 10px 12px !important;
	border-radius: 6px !important;
	text-decoration: none !important;
	color: var(--rm-text-dark) !important;
	text-transform: none !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	letter-spacing: 0 !important;
	border: none !important;
	background: transparent !important;
	transition: background-color 0.15s ease !important;
	line-height: 1.4 !important;
}

.rm-nav__panel .rm-nav__flat-text {
	display: flex !important;
	flex-direction: column !important;
	gap: 2px !important;
	min-width: 0 !important;
}

.rm-nav__panel a.rm-nav__flat-link:hover {
	background: #f6f8fa !important;
	color: var(--rm-text-dark) !important;
	text-decoration: none !important;
}

.rm-nav__panel a.rm-nav__flat-link:hover .rm-nav__flat-label,
.rm-nav__panel a.rm-nav__flat-link:focus .rm-nav__flat-label {
	color: var(--e-global-color-accent, var(--rm-section-color)) !important;
	transition: color 0.2s ease !important;
}

.rm-nav__panel a.rm-nav__flat-link:hover .rm-nav__icon,
.rm-nav__panel a.rm-nav__flat-link:focus .rm-nav__icon {
	transform: translateX(4px) !important;
	color: var(--e-global-color-accent, var(--rm-section-color)) !important;
}

.rm-nav__panel .rm-nav__flat-link--active .rm-nav__flat-label {
	color: var(--e-global-color-accent, var(--rm-section-color)) !important;
	font-weight: 700 !important;
}

.rm-nav__panel .rm-nav__flat-link--active .rm-nav__icon {
	color: var(--e-global-color-accent, var(--rm-section-color)) !important;
	transform: translateX(4px) !important;
}

.rm-nav__panel .rm-nav__flat-link--disabled {
	color: var(--rm-disabled-color) !important;
	cursor: default !important;
	pointer-events: none !important;
}

.rm-nav__panel .rm-nav__flat-tagline {
	display: block !important;
	font-size: 13px !important;
	color: var(--rm-text-muted) !important;
	font-weight: 400 !important;
	text-transform: none !important;
	margin-top: 2px !important;
}

/* ================================================================ */
/* PROMO CARD                                                       */
/* ================================================================ */

.rm-nav__promo {
	height: 100%;
	min-height: 200px;
	overflow: hidden;
}

/* ================================================================ */
/* STICKY VARIANT                                                   */
/* ================================================================ */

.rm-nav--sticky {
	--rm-bar-height: 44px;
}

.rm-nav--sticky .rm-nav__bar-link {
	font-size: 12px !important;
	padding: 0 14px !important;
}

.rm-nav--sticky .rm-nav__panel-inner {
	padding: 24px 24px;
}

/* ================================================================ */
/* MOBILE                                                           */
/* ================================================================ */

@media (max-width: 1024px) {
	.rm-nav__desktop { display: none !important; }
	.rm-nav__mobile  { display: block; }
}

.rm-nav__hamburger {
	display: flex !important;
	flex-direction: column !important;
	justify-content: center !important;
	align-items: center !important;
	gap: 5px !important;
	width: 40px !important;
	height: 40px !important;
	min-width: 40px !important;
	max-width: 40px !important;
	padding: 8px !important;
	background: #0088BB !important;
	background-color: #0088BB !important;
	border: none !important;
	box-shadow: none !important;
	cursor: pointer !important;
	position: relative !important;
	z-index: 5 !important;
	transition: transform 0.3s ease !important;
	flex-shrink: 0 !important;
}
.rm-nav__hamburger span {
	display: block !important;
	width: 24px !important;
	height: 2px !important;
	background: var(--rm-bar-text) !important;
	background-color: var(--rm-bar-text) !important;
	border-radius: 2px !important;
	transition: transform 0.3s ease, opacity 0.2s ease !important;
	transform-origin: center !important;
	margin: 0 !important;
	padding: 0 !important;
	flex-shrink: 0 !important;
}

/* Open state: spans morph into an X in place — hamburger stays where it is */
.rm-nav__hamburger--open span:nth-child(1) {
	transform: translateY(7px) rotate(45deg) !important;
}
.rm-nav__hamburger--open span:nth-child(2) {
	opacity: 0 !important;
	transform: scaleX(0) !important;
}
.rm-nav__hamburger--open span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg) !important;
}

/* Drawer */
/* Dropdown — fixed positioning + escape transformed ancestors by teleporting to body via JS.
   `top` uses CSS variable so JS can override the !important-locked value.
   NOTE: variables are re-declared here because the drawer is teleported to <body> and is no
   longer a descendant of `.rm-nav` where these vars are normally defined. Without this block
   every `var(--rm-*)` inside the drawer resolves to nothing and falls back to theme defaults. */
.rm-nav__drawer {
	--rm-bar-bg: #1C3644;
	--rm-bar-text: #ffffff;
	--rm-bar-height: 56px;
	--rm-accent: #C47030;
	--rm-section-color: #2271b1;
	--rm-cta-bg: #C47030;
	--rm-cta-text: #ffffff;
	--rm-panel-bg: #ffffff;
	--rm-panel-shadow: 0 8px 30px rgba(0,0,0,0.12);
	--rm-text-dark: #1d2327;
	--rm-text-muted: #6b7280;
	--rm-disabled-color: #b0b5ba;
	--rm-radius: 0px;

	position: fixed !important;
	top: var(--rm-drawer-top, 0) !important;
	left: 0 !important;
	right: 0 !important;
	width: 100vw !important;
	max-width: 100vw !important;
	max-height: 0 !important;
	z-index: 9999 !important;
	background: var(--rm-panel-bg) !important;
	box-shadow: 0 8px 20px rgba(0,0,0,0.12) !important;
	overflow: hidden !important;
	opacity: 0 !important;
	visibility: hidden !important;
	transition: max-height 0.3s ease, opacity 0.2s ease, visibility 0s linear 0.3s !important;
	font-family: var(--e-global-typography-secondary-font-family, inherit) !important;
	display: flex !important;
	flex-direction: column !important;
	margin: 0 !important;
}

.rm-nav__drawer[aria-hidden="false"] {
	max-height: 85vh !important;
	opacity: 1 !important;
	visibility: visible !important;
	transition: max-height 0.3s ease, opacity 0.2s ease, visibility 0s linear 0s !important;
}

/* Drawer body */
.rm-nav__drawer-body {
	flex: 1 !important;
	overflow-y: auto !important;
	-webkit-overflow-scrolling: touch !important;
	scrollbar-gutter: stable !important;
}

.rm-nav__drawer-list {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	background: #fff;
}

/* Top-level items */
.rm-nav__drawer-toggle,
.rm-nav__drawer-direct {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	width: 100% !important;
	padding: 16px 20px !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.03em !important;
	color: var(--rm-text-dark) !important;
	background: none !important;
	border: none !important;
	border-bottom: 1px solid #f0f0f1 !important;
	cursor: pointer !important;
	text-decoration: none !important;
	font-family: inherit !important;
	text-align: left !important;
	position: relative !important;
	z-index: 2 !important;
	pointer-events: auto !important;
	min-height: 52px !important;
}

.rm-nav__drawer-direct svg {
	color: var(--rm-text-muted);
}

.rm-nav__drawer-arrow {
	transition: transform 0.2s ease;
	color: var(--rm-accent);
}

.rm-nav__drawer-toggle[aria-expanded="true"] .rm-nav__drawer-arrow {
	transform: rotate(180deg);
}

/* Expandable content */
.rm-nav__drawer-content {
	overflow: hidden;
	max-height: 0;
	transition: max-height 0.3s ease;
	background: #f9fafb;
	border-bottom: 1px solid #f0f0f1;
}

.rm-nav__drawer-content[aria-hidden="false"] {
	max-height: 2000px;
}

.rm-nav__drawer-section {
	margin: 0 12px 6px !important;
	padding: 14px 8px 8px !important;
	font-size: 13px !important;
	font-weight: 900 !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase !important;
	color: var(--e-global-color-accent, var(--rm-section-color)) !important;
	border-bottom: 2px solid var(--e-global-color-accent, var(--rm-section-color)) !important;
}

.rm-nav__drawer-sublist {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 0 10px !important;
	position: relative !important;
	z-index: 1 !important;
}

.rm-nav__drawer-sublist li {
	margin: 0 !important;
	position: relative !important;
	z-index: 1 !important;
}

.rm-nav__drawer-link,
span.rm-nav__drawer-link {
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	padding: 8px 20px 8px 28px !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	color: var(--rm-text-dark) !important;
	text-decoration: none !important;
	position: relative !important;
	z-index: 2 !important;
	pointer-events: auto !important;
	min-height: 44px !important;
	background: transparent !important;
	transition: color 0.2s ease, background-color 0.2s ease !important;
}

/* Icon inside mobile submenu link */
.rm-nav__drawer-link .rm-nav__icon,
span.rm-nav__drawer-link .rm-nav__icon {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 14px !important;
	height: 14px !important;
	flex-shrink: 0 !important;
	background: transparent !important;
	color: #9ca3af !important;
	margin: 0 !important;
	transition: transform 0.2s ease, color 0.2s ease !important;
}

.rm-nav__drawer-link:hover .rm-nav__icon,
.rm-nav__drawer-link:focus .rm-nav__icon,
.rm-nav__drawer-link:active .rm-nav__icon {
	transform: translateX(4px) !important;
	color: var(--e-global-color-accent, var(--rm-section-color)) !important;
}

.rm-nav__drawer-link:hover,
.rm-nav__drawer-link:active,
.rm-nav__drawer-link:focus {
	color: var(--e-global-color-accent, var(--rm-section-color)) !important;
	background: #f6f8fa !important;
}

.rm-nav__drawer-link--disabled,
.rm-nav__drawer-link.rm-nav__drawer-link--disabled,
span.rm-nav__drawer-link--disabled,
a.rm-nav__drawer-link--disabled {
	color: var(--rm-disabled-color) !important;
	pointer-events: none !important;
}

.rm-nav__drawer-link--disabled .rm-nav__icon,
.rm-nav__drawer-link.rm-nav__drawer-link--disabled .rm-nav__icon,
span.rm-nav__drawer-link--disabled .rm-nav__icon,
a.rm-nav__drawer-link--disabled .rm-nav__icon {
	color: var(--rm-disabled-color) !important;
}

/* Drawer footer */
.rm-nav__drawer-footer {
	flex-shrink: 0;
	padding: 16px 20px;
	border-top: 1px solid #e5e7eb;
	background: var(--rm-panel-bg);
	display: flex;
	flex-direction: column;
	gap: 12px;
	align-items: center;
}

.rm-nav__drawer-cta {
	display: block;
	width: 100%;
	padding: 14px 24px;
	background: var(--rm-cta-bg);
	color: var(--rm-cta-text);
	text-align: center;
	text-decoration: none;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.04em;
	border-radius: 6px;
}

.rm-nav__drawer-phone {
	display: flex;
	align-items: center;
	gap: 8px;
	color: var(--rm-section-color);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	letter-spacing: 0.02em;
}

/* Backdrop removed in v0.5.22 — dropdown replaces full-screen drawer, no dim/overlay */
