.omg-menu,
.elementor-widget-omg-menu-navegacion,
.elementor-widget-omg-menu-navegacion > .elementor-widget-container {
	width: 100%;
	max-width: 100%;
}

.omg-menu {
	position: relative;
	z-index: 20;
	--omg-mobile-panel-width: 88%;
	--omg-mobile-panel-bg: #fff;
}

.omg-menu *,
.omg-menu *::before,
.omg-menu *::after {
	box-sizing: border-box;
}

.omg-menu a,
.omg-menu button {
	-webkit-tap-highlight-color: transparent;
}

.omg-menu button {
	appearance: none;
	border: 0;
	font: inherit;
	cursor: pointer;
}

.omg-menu svg,
.omg-menu i {
	display: block;
}

.omg-menu svg {
	width: 1em;
	height: 1em;
}

.omg-menu__toggle-wrap {
	display: flex;
	width: 100%;
	transition: opacity .15s ease, visibility .15s ease;
}

.omg-menu.is-mobile-mode.is-mobile-open .omg-menu__toggle-wrap,
body.omg-menu-lock-scroll .omg-menu.is-mobile-mode.is-mobile-open .omg-menu__toggle-wrap {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

.omg-menu__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	background: transparent;
	line-height: 1;
}

.omg-menu__toggle-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	font-size: 28px;
}

.omg-menu__overlay {
	position: fixed;
	inset: 0;
	z-index: 999998;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .25s ease, visibility .25s ease;
}

.omg-menu__panel {
	background: var(--omg-mobile-panel-bg);
}

.omg-menu__mobile-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex: 0 0 auto;
	padding: 12px 14px;
	border-bottom: 1px solid #e4eadf;
}

.omg-menu__mobile-header-start {
	display: flex;
	align-items: center;
	gap: 9px;
	min-width: 0;
}

.omg-menu__panel-title {
	display: block;
	min-width: 0;
	font-weight: 700;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.omg-menu__back,
.omg-menu__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 40px;
	width: 40px;
	height: 40px;
	padding: 9px;
	background: transparent;
	line-height: 1;
}

.omg-menu__back[hidden] {
	display: none !important;
}

.omg-menu__list,
.omg-menu__list .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.omg-menu__list .menu-item {
	position: relative;
	margin: 0;
}

.omg-menu__list .menu-item > a {
	display: flex;
	align-items: center;
	min-width: 0;
	text-decoration: none;
	transition: color .2s ease, background-color .2s ease, border-color .2s ease;
}

.omg-menu__item-content {
	display: inline-flex;
	align-items: center;
	min-width: 0;
	gap: 7px;
}

.omg-menu__item-label {
	min-width: 0;
}

.omg-menu__item-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
}

.omg-menu__item-icon img {
	display: block;
	width: 20px;
	height: 20px;
	object-fit: contain;
}

.omg-menu__submenu-toggle {
	position: absolute;
	top: 50%;
	right: 4px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 10px;
	background: transparent;
	line-height: 1;
	transform: translateY(-50%);
	transition: color .2s ease, background-color .2s ease, transform .2s ease;
}

.omg-menu__submenu-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.omg-menu__submenu-icon--mobile {
	display: none;
}

.omg-menu__editor-notice {
	padding: 12px 14px;
	border: 1px dashed #b6c2ae;
	background: #f7faf5;
	color: #243018;
}

.omg-menu__icon-template {
	display: none;
}

body.omg-menu-lock-scroll {
	overflow: hidden;
}

/* Menú móvil y tablet. */
.omg-menu.is-mobile-mode .omg-menu__panel {
	position: fixed;
	top: 0;
	bottom: 0;
	z-index: 999999;
	display: flex;
	flex-direction: column;
	width: min(var(--omg-mobile-panel-width), 100vw);
	max-width: 100vw;
	overflow: hidden;
	box-shadow: 0 0 30px rgba(0, 0, 0, .18);
	transition: transform .28s ease, visibility .28s ease;
	visibility: hidden;
}

.omg-menu--panel-left.is-mobile-mode .omg-menu__panel {
	left: 0;
	transform: translateX(-105%);
}

.omg-menu--panel-right.is-mobile-mode .omg-menu__panel {
	right: 0;
	transform: translateX(105%);
}

.omg-menu.is-mobile-mode.is-mobile-open .omg-menu__panel {
	transform: translateX(0);
	visibility: visible;
}

.omg-menu.is-mobile-mode.is-mobile-open .omg-menu__overlay {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.omg-menu.is-mobile-mode .omg-menu__mobile-content {
	position: relative;
	flex: 1 1 auto;
	min-height: 0;
	overflow: hidden;
}

.omg-menu.is-mobile-mode .omg-menu__view {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 8px 20px 24px;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	background: var(--omg-mobile-panel-bg);
	transition: transform .3s ease, opacity .3s ease, visibility .3s ease;
	will-change: transform;
}

.omg-menu--mobile-from-right.is-mobile-mode .omg-menu__view.is-view-ahead {
	transform: translateX(100%);
}

.omg-menu--mobile-from-right.is-mobile-mode .omg-menu__view.is-view-behind {
	transform: translateX(-100%);
}

.omg-menu--mobile-from-left.is-mobile-mode .omg-menu__view.is-view-ahead {
	transform: translateX(-100%);
}

.omg-menu--mobile-from-left.is-mobile-mode .omg-menu__view.is-view-behind {
	transform: translateX(100%);
}

.omg-menu.is-mobile-mode .omg-menu__view.is-view-ahead,
.omg-menu.is-mobile-mode .omg-menu__view.is-view-behind {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

.omg-menu.is-mobile-mode .omg-menu__view.is-view-current {
	z-index: 2;
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateX(0);
}

.omg-menu.is-mobile-mode .omg-menu__view .menu-item {
	position: relative;
	border-bottom: 1px solid var(--omg-mobile-divider, #e4eadf);
}

.omg-menu.is-mobile-mode .omg-menu__view .menu-item > a {
	width: 100%;
	min-height: 44px;
	padding: var(--omg-mobile-item-padding, 13px 8px);
	padding-right: 52px;
	color: var(--omg-mobile-item-color, #243018);
	background: var(--omg-mobile-item-bg, transparent);
}

.omg-menu.is-mobile-mode .omg-menu__view .menu-item > a .omg-menu__item-label {
	font: inherit;
	font-size: inherit;
	line-height: inherit;
	letter-spacing: inherit;
}

.omg-menu.is-mobile-mode .omg-menu__view .menu-item:not(.menu-item-has-children) > a {
	padding-right: 8px;
}

.omg-menu.is-mobile-mode .omg-menu__view .menu-item:hover > a,
.omg-menu.is-mobile-mode .omg-menu__view .menu-item:focus-within > a {
	color: var(--omg-mobile-item-hover-color, var(--omg-mobile-item-color, #243018));
	background: var(--omg-mobile-item-hover-bg, var(--omg-mobile-item-bg, transparent));
}

.omg-menu.is-mobile-mode .omg-menu__submenu-toggle {
	right: 0;
	width: 40px;
	height: 40px;
	padding: 11px;
	font-size: 16px;
	color: #243018;
	background: transparent;
	border-radius: 6px;
	transform: translateY(-50%);
}

.omg-menu.is-mobile-mode .omg-menu__submenu-icon--desktop {
	display: none;
}

.omg-menu.is-mobile-mode .omg-menu__submenu-icon--mobile {
	display: inline-flex;
}

.omg-menu.is-mobile-mode .omg-menu__item-icon--desktop {
	display: none;
}

.omg-menu.is-mobile-mode .omg-menu__item-icon img {
	width: 22px;
	height: 22px;
}

/* Menú de escritorio. */
.omg-menu.is-desktop-mode .omg-menu__toggle-wrap,
.omg-menu.is-desktop-mode .omg-menu__mobile-header,
.omg-menu.is-desktop-mode .omg-menu__overlay {
	display: none;
}

.omg-menu.is-desktop-mode .omg-menu__panel,
.omg-menu.is-desktop-mode .omg-menu__mobile-content,
.omg-menu.is-desktop-mode .omg-menu__list {
	position: static;
	width: 100%;
	max-width: none;
	overflow: visible;
	transform: none;
	visibility: visible;
	box-shadow: none;
}

.omg-menu.is-desktop-mode .omg-menu__list {
	padding: 0;
}

.omg-menu--layout-horizontal.is-desktop-mode .omg-menu__list {
	display: flex;
	align-items: stretch;
	flex-wrap: nowrap;
}

.omg-menu--layout-vertical.is-desktop-mode .omg-menu__list {
	display: flex;
	flex-direction: column;
}

.omg-menu--layout-horizontal.omg-menu--stretch-items.is-desktop-mode .omg-menu__list {
	justify-content: stretch;
	width: 100%;
	flex-wrap: wrap;
}

.omg-menu--layout-horizontal.omg-menu--stretch-items.is-desktop-mode .omg-menu__list > .menu-item {
	/* Reparte el espacio sobrante, pero respeta el ancho real de cada texto. */
	flex: 1 1 auto;
	min-width: max-content;
}

.omg-menu--layout-horizontal.omg-menu--stretch-items.is-desktop-mode .omg-menu__list > .menu-item > a {
	justify-content: center;
	width: 100%;
	min-width: max-content;
}

.omg-menu--layout-horizontal.omg-menu--stretch-items.is-desktop-mode .omg-menu__list > .menu-item > a .omg-menu__item-content,
.omg-menu--layout-horizontal.omg-menu--stretch-items.is-desktop-mode .omg-menu__list > .menu-item > a .omg-menu__item-label {
	max-width: none;
	overflow: visible;
	text-overflow: clip;
	white-space: nowrap;
}

.omg-menu.is-desktop-mode .omg-menu__list > .menu-item > a {
	min-height: 100%;
	padding: 11px 12px;
	color: #243018;
}

.omg-menu.is-desktop-mode .menu-item-has-children > a {
	/* El espacio de la flecha se suma al relleno elegido en Elementor. */
	padding-right: calc(var(--omg-desktop-main-padding-right, 12px) + 40px) !important;
}

.omg-menu.is-desktop-mode .sub-menu .menu-item-has-children > a {
	padding-right: calc(var(--omg-desktop-submenu-padding-right, 12px) + 40px) !important;
}

.omg-menu.is-desktop-mode .menu-item-has-children > a > .omg-menu__item-content {
	max-width: 100%;
}

.omg-menu.is-desktop-mode .omg-menu__list > .menu-item,
.omg-menu.is-desktop-mode .sub-menu > .menu-item {
	border: 0;
}

.omg-menu.is-desktop-mode .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 1000;
	display: block;
	min-width: 260px;
	max-height: none;
	overflow: visible;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	background: #fff;
	transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}

.omg-menu.is-desktop-mode .sub-menu .sub-menu {
	top: 0;
	left: 100%;
}

.omg-menu.is-desktop-mode .sub-menu .menu-item > a {
	width: 100%;
	padding: 10px 12px;
}

.omg-menu--animation-fade-slide.is-desktop-mode .sub-menu {
	transform: translateY(8px);
}

.omg-menu--animation-none.is-desktop-mode .sub-menu {
	transition: none;
}

.omg-menu.is-desktop-mode .menu-item.is-submenu-open > .sub-menu,
.omg-menu--trigger-hover.is-desktop-mode .menu-item:hover > .sub-menu,
.omg-menu--trigger-hover.is-desktop-mode .menu-item:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: none;
}

.omg-menu.is-desktop-mode .omg-menu__submenu-toggle[aria-expanded="true"] .omg-menu__submenu-icon--desktop {
	transform: rotate(180deg);
}

.omg-menu.is-desktop-mode .omg-menu__item-icon--mobile {
	display: none;
}

/* Sin JavaScript se mantiene el panel móvil cerrado. */
.omg-menu:not(.is-mobile-mode):not(.is-desktop-mode) .omg-menu__panel {
	visibility: hidden;
}


/* Normalización estricta para listas movidas entre pantallas en móvil. */
.omg-menu ul,
.omg-menu ol,
.omg-menu li,
.omg-menu__view,
.omg-menu__view > .menu-item {
	list-style: none !important;
}

.omg-menu li::marker,
.omg-menu__view > .menu-item::marker {
	content: '' !important;
}

.omg-menu__view > .menu-item::before {
	display: none !important;
	content: none !important;
}

/* El texto puede reducirse, pero nunca invade el espacio reservado a la flecha. */
.omg-menu__item-content {
	flex: 0 1 auto;
	max-width: 100%;
	overflow: hidden;
}

.omg-menu__item-label {
	display: block;
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* Fondos y colores de flechas aislados de los estilos globales del tema. */
.omg-menu.is-desktop-mode .omg-menu__submenu-toggle {
	color: var(--omg-desktop-arrow-color, #243018) !important;
	background-color: var(--omg-desktop-arrow-bg, transparent) !important;
}

.omg-menu.is-desktop-mode .menu-item:hover > .omg-menu__submenu-toggle,
.omg-menu.is-desktop-mode .menu-item:focus-within > .omg-menu__submenu-toggle {
	color: var(--omg-desktop-arrow-hover-color, var(--omg-desktop-arrow-color, #243018)) !important;
	background-color: var(--omg-desktop-arrow-hover-bg, var(--omg-desktop-arrow-bg, transparent)) !important;
}

.omg-menu.is-mobile-mode .omg-menu__submenu-toggle {
	color: var(--omg-mobile-arrow-color, #243018) !important;
	background-color: var(--omg-mobile-arrow-bg, transparent) !important;
}

.omg-menu.is-mobile-mode .omg-menu__submenu-toggle:hover,
.omg-menu.is-mobile-mode .omg-menu__submenu-toggle:focus-visible,
.omg-menu.is-mobile-mode .omg-menu__submenu-toggle:active {
	color: var(--omg-mobile-arrow-hover-color, var(--omg-mobile-arrow-color, #243018)) !important;
	background-color: var(--omg-mobile-arrow-hover-bg, var(--omg-mobile-arrow-bg, transparent)) !important;
}

.omg-menu.is-mobile-mode .omg-menu__back {
	color: var(--omg-mobile-back-color, var(--omg-mobile-header-icon-color, #243018)) !important;
	background-color: var(--omg-mobile-back-bg, var(--omg-mobile-header-icon-bg, transparent)) !important;
}

.omg-menu.is-mobile-mode .omg-menu__close {
	color: var(--omg-mobile-close-color, var(--omg-mobile-header-icon-color, #243018)) !important;
	background-color: var(--omg-mobile-close-bg, var(--omg-mobile-header-icon-bg, transparent)) !important;
}

@media (prefers-reduced-motion: reduce) {
	.omg-menu *,
	.omg-menu *::before,
	.omg-menu *::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}

.omg-menu.is-desktop-mode .sub-menu .menu-item-has-children > .omg-menu__submenu-toggle .omg-menu__submenu-icon--desktop {
	transform: rotate(-90deg);
}

.omg-menu.is-desktop-mode .sub-menu .menu-item-has-children.is-submenu-open > .omg-menu__submenu-toggle .omg-menu__submenu-icon--desktop {
	transform: rotate(90deg);
}

.omg-menu__item-icon {
	/* Todos los iconos respetan el tamaño global configurado en el widget. */
	width: var(--omg-menu-item-icon-size, 20px);
	height: var(--omg-menu-item-icon-size, 20px);
	font-size: var(--omg-menu-item-icon-size, 20px);
	min-width: var(--omg-menu-item-icon-size, 20px);
	max-width: var(--omg-menu-item-icon-size, 20px);
	min-height: var(--omg-menu-item-icon-size, 20px);
	max-height: var(--omg-menu-item-icon-size, 20px);
	overflow: hidden;
}

.omg-menu__item-icon img,
.omg-menu__item-icon i,
.omg-menu__item-icon svg,
.omg-menu__item-icon-shape {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	max-height: 100% !important;
	font-size: inherit;
	object-fit: contain;
}

.omg-menu__item-icon-shape {
	background-color: currentColor;
	-webkit-mask-image: var(--omg-menu-icon-url);
	mask-image: var(--omg-menu-icon-url);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
}

.omg-menu__item-label--hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}


/* Correcciones de apilado y estilos editables — v0.9.0. */
.omg-menu.is-mobile-mode .omg-menu__overlay {
	z-index: 2147483646 !important;
}

.omg-menu.is-mobile-mode .omg-menu__panel,
.omg-menu.is-mobile-mode.is-mobile-open .omg-menu__panel {
	z-index: 2147483647 !important;
	background-color: var(--omg-mobile-panel-bg, #fff) !important;
	background-image: none !important;
	opacity: 1 !important;
	isolation: isolate;
}

.omg-menu.is-mobile-mode .omg-menu__mobile-content,
.omg-menu.is-mobile-mode .omg-menu__view,
.omg-menu.is-mobile-mode .omg-menu__list {
	background-color: var(--omg-mobile-panel-bg, #fff) !important;
	background-image: none !important;
	opacity: 1 !important;
}

/* En la web pública el widget se monta temporalmente junto a <body> para escapar
 * de las capas creadas por cabeceras fijas, sticky o transformadas. */
.omg-menu-widget-portal {
	position: static !important;
	z-index: 2147483647 !important;
	width: 0 !important;
	height: 0 !important;
	min-width: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	overflow: visible !important;
}

/* Refuerzo para la vista del editor y para estructuras donde no puede montarse
 * el widget junto a <body>. */
.omg-menu-widget-open,
.omg-menu-stack-ancestor {
	position: relative !important;
	z-index: 2147483647 !important;
	overflow: visible !important;
}

/* Los colores elegidos en Elementor alcanzan también a SVG con relleno o trazo
 * definidos dentro del propio archivo. Se respeta fill="none" y stroke="none". */
.omg-menu__submenu-toggle,
.omg-menu__back,
.omg-menu__close {
	background-image: none !important;
}

.omg-menu__submenu-toggle svg,
.omg-menu__back svg,
.omg-menu__close svg,
.omg-menu__submenu-toggle i,
.omg-menu__back i,
.omg-menu__close i {
	color: inherit !important;
}

.omg-menu__submenu-toggle svg path:not([fill="none"]):not([fill]),
.omg-menu__submenu-toggle svg [fill]:not([fill="none"]),
.omg-menu__back svg path:not([fill="none"]):not([fill]),
.omg-menu__back svg [fill]:not([fill="none"]),
.omg-menu__close svg path:not([fill="none"]):not([fill]),
.omg-menu__close svg [fill]:not([fill="none"]) {
	fill: currentColor !important;
}

.omg-menu__submenu-toggle svg [stroke]:not([stroke="none"]),
.omg-menu__back svg [stroke]:not([stroke="none"]),
.omg-menu__close svg [stroke]:not([stroke="none"]) {
	stroke: currentColor !important;
}

/* Corrección visual v0.9.1: la pantalla que sale se oculta de inmediato.
 * La nueva pantalla conserva su deslizamiento, pero no llega a verse el estado
 * pulsado de la opción anterior en el borde izquierdo. */
.omg-menu.is-mobile-mode .omg-menu__mobile-content {
	contain: paint;
	isolation: isolate;
}

.omg-menu.is-mobile-mode .omg-menu__view.is-view-leaving {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
	transition: none !important;
}


/* Prevención de destello durante la carga — v0.9.2.
 * Estos selectores refuerzan el ocultamiento indicado directamente en el HTML.
 * JavaScript elimina el atributo solo después de aplicar el modo correcto. */
.omg-menu [data-omg-initially-hidden="true"] {
	display: none !important;
}


/* Distribución adaptable en tablet — v0.9.6.
 * Cuando tablet usa el diseño de escritorio, las opciones conservan el texto
 * completo y cada fila reparte todo el ancho disponible. */
@media (min-width: 768px) and (max-width: 1024px) {
	.omg-menu[data-tablet-desktop-mode="yes"].omg-menu--layout-horizontal.omg-menu--stretch-items.is-desktop-mode .omg-menu__list {
		display: flex !important;
		width: 100% !important;
		max-width: 100% !important;
		flex-wrap: wrap !important;
		justify-content: space-evenly !important;
		align-items: stretch !important;
		align-content: flex-start !important;
	}

	.omg-menu[data-tablet-desktop-mode="yes"].omg-menu--layout-horizontal.omg-menu--stretch-items.is-desktop-mode .omg-menu__list > .menu-item {
		flex: 1 1 140px !important;
		min-width: max-content !important;
		max-width: none !important;
	}

	.omg-menu[data-tablet-desktop-mode="yes"].omg-menu--layout-horizontal.omg-menu--stretch-items.is-desktop-mode .omg-menu__list > .menu-item > a {
		width: 100% !important;
		min-width: max-content !important;
		justify-content: center !important;
	}

	.omg-menu[data-tablet-desktop-mode="yes"].omg-menu--layout-horizontal.omg-menu--stretch-items.is-desktop-mode .omg-menu__list > .menu-item > a .omg-menu__item-content,
	.omg-menu[data-tablet-desktop-mode="yes"].omg-menu--layout-horizontal.omg-menu--stretch-items.is-desktop-mode .omg-menu__list > .menu-item > a .omg-menu__item-label {
		max-width: none !important;
		overflow: visible !important;
		text-overflow: clip !important;
		white-space: nowrap !important;
	}
}
