/* Lobify Mobile Menu — the file loads globally so desktop always receives the hide rule; all visual UI remains scoped to <=699px. */
.lobify-mobile-menu { display: none !important; }

@media (max-width: 699px) {
	body.lobify-mobile-menu-enabled .lobify-site-header { display: none !important; }
	body.lobify-mobile-menu-enabled.lobify-mobile-menu-hide-top-area .lobify-top-bar { display: none !important; }

	.lobify-mobile-menu {
		display: block !important;
		position: relative;
		z-index: 12000;
		width: 100%;
		max-width: 100%;
		color: var(--lmm-text);
		font-family: var(--lobify-body-font, "Source Sans Pro", sans-serif);
	}

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

	/* When sticky is enabled, remove the wrapper box so the header can stick
	 * against the document viewport instead of being constrained by a parent
	 * whose normal-flow height is only the header itself. Custom properties
	 * defined on the wrapper continue to inherit into the header and panel. */
	body.lobify-mobile-menu-sticky .lobify-mobile-menu { display: contents !important; }

	.lobify-mobile-menu__header {
		position: relative;
		top: auto;
		z-index: 12010;
		width: 100%;
		min-height: var(--lmm-header-height);
		background: color-mix(in srgb, var(--lmm-header-bg) 95%, transparent);
		-webkit-backdrop-filter: blur(14px) saturate(145%);
		backdrop-filter: blur(14px) saturate(145%);
		border-bottom: 1px solid color-mix(in srgb, var(--lmm-text) 8%, transparent);
		box-shadow: 0 8px 24px rgba(0, 33, 40, 0.07);
	}

	body.lobify-mobile-menu-sticky .lobify-mobile-menu__header {
		position: sticky;
		top: 0;
	}

	body.admin-bar.lobify-mobile-menu-sticky .lobify-mobile-menu__header { top: 46px; }

	.lobify-mobile-menu__header-inner {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
		align-items: center;
		gap: 8px;
		width: 100%;
		min-width: 0;
		min-height: var(--lmm-header-height);
		padding: 4px 14px;
	}

	.lobify-mobile-menu__brand {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 9px;
		min-width: 0;
		max-width: min(70vw, 320px);
		color: var(--lmm-text) !important;
		text-align: center;
		text-decoration: none !important;
		justify-self: center;
	}

	.lobify-mobile-menu__brand--panel {
		width: fit-content;
		max-width: calc(100% - 104px);
		margin-inline: auto;
	}

	.lobify-mobile-menu__logo {
		display: block;
		width: auto;
		max-width: min(70vw, 320px);
		height: var(--lmm-logo-size) !important;
		max-height: none !important;
		object-fit: contain;
		object-position: center;
		flex: 0 0 auto;
	}

	.lobify-mobile-menu__hotel-name {
		display: -webkit-box;
		overflow: hidden;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
		font-family: var(--lobify-heading-font, "Alatsi", sans-serif);
		font-size: 15px;
		font-weight: 600;
		line-height: 1.08;
		letter-spacing: .025em;
		text-transform: uppercase;
	}

	.lobify-mobile-menu__header-left,
	.lobify-mobile-menu__header-right {
		display: flex;
		align-items: center;
		min-width: 0;
	}

	.lobify-mobile-menu__header-left { justify-content: flex-start; }
	.lobify-mobile-menu__header-right { justify-content: flex-end; }

	.lobify-mobile-menu__header-booking {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 38px;
		padding: 0 14px;
		border: 0;
		border-radius: 999px;
		background: var(--lmm-cta-bg);
		color: var(--lmm-cta-text) !important;
		font-family: var(--lobify-button-font, "Montserrat", sans-serif);
		font-size: 12px;
		font-weight: 700;
		line-height: 1;
		text-decoration: none !important;
		max-width: 100%;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.lobify-mobile-menu__toggle,
	.lobify-mobile-menu__close,
	.lobify-mobile-menu__submenu-toggle {
		-webkit-appearance: none;
		appearance: none;
		border: 0;
		background: transparent;
		color: var(--lmm-accent);
		cursor: pointer;
	}

	.lobify-mobile-menu__toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 50px;
		height: 50px;
		padding: 3px;
		border-radius: 12px;
		color: var(--lmm-hamburger);
	}

	.lobify-mobile-menu__toggle svg,
	.lobify-mobile-menu__close svg,
	.lobify-mobile-menu__submenu-toggle svg { width: 100%; height: 100%; }

	.lobify-mobile-menu__toggle:focus-visible,
	.lobify-mobile-menu__close:focus-visible,
	.lobify-mobile-menu__submenu-toggle:focus-visible,
	.lobify-mobile-menu a:focus-visible {
		outline: 2px solid var(--lmm-accent);
		outline-offset: 2px;
	}

	.lobify-mobile-menu__overlay {
		position: fixed;
		inset: 0;
		z-index: 12050;
		visibility: hidden;
		opacity: 0;
		pointer-events: none;
		transition: opacity .22s ease, visibility .22s ease;
	}

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

	.lobify-mobile-menu__backdrop {
		position: absolute;
		inset: 0;
		background: rgba(10, 24, 28, .48);
		-webkit-backdrop-filter: blur(7px);
		backdrop-filter: blur(7px);
	}

	.lobify-mobile-menu__panel {
		position: absolute;
		top: max(10px, env(safe-area-inset-top));
		right: 10px;
		bottom: max(10px, env(safe-area-inset-bottom));
		display: flex;
		flex-direction: column;
		width: min(calc(100vw - 20px), var(--lmm-panel-max));
		max-width: calc(100vw - 20px);
		min-width: 0;
		padding: 20px 18px 18px;
		border-radius: var(--lmm-panel-radius);
		background: var(--lmm-panel-bg);
		box-shadow: -18px 24px 70px rgba(0, 24, 30, .22);
		transform: translateX(calc(100% + 18px));
		transition: transform .28s cubic-bezier(.22,.61,.36,1);
		overflow-x: clip;
		overflow-y: auto;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
	}

	.lobify-mobile-menu__overlay.is-open .lobify-mobile-menu__panel { transform: translateX(0); }

	.lobify-mobile-menu__panel-head {
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 70px;
		margin: -20px -18px 14px;
		padding: 10px 60px;
		border-bottom: 1px solid color-mix(in srgb, var(--lmm-text) 10%, transparent);
		background: var(--lmm-panel-head-bg);
		box-shadow: 0 8px 20px color-mix(in srgb, var(--lmm-text) 8%, transparent);
		flex: 0 0 auto;
	}

	.lobify-mobile-menu__panel .lobify-mobile-menu__logo {
		height: var(--lmm-logo-size) !important;
		max-height: none !important;
		max-width: min(78vw, 340px);
	}

	.lobify-mobile-menu__close {
		position: absolute;
		top: 50%;
		right: 18px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 50px;
		height: 50px;
		padding: 3px;
		border-radius: 12px;
		color: var(--lmm-text);
		flex: 0 0 auto;
		transform: translateY(-50%);
	}

	.lobify-mobile-menu__nav { flex: 0 0 auto; }
	.lobify-mobile-menu__menu,
	.lobify-mobile-menu__submenu {
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.lobify-mobile-menu__menu-item {
		margin: 0;
		border-bottom: 1px solid color-mix(in srgb, var(--lmm-text) 12%, transparent);
	}

	.lobify-mobile-menu__item-row {
		display: flex;
		align-items: stretch;
		min-width: 0;
	}

	.lobify-mobile-menu__menu-link {
		display: flex;
		align-items: center;
		gap: 13px;
		min-width: 0;
		min-height: 58px;
		padding: 9px 4px;
		color: var(--lmm-text) !important;
		font-family: var(--lobify-menu-font, "Montserrat", sans-serif);
		font-size: 16px !important;
		font-weight: 500;
		line-height: 1.25;
		text-decoration: none !important;
		flex: 1 1 auto;
	}

	.lobify-mobile-menu__menu-link:hover,
	.lobify-mobile-menu__menu-link:focus { color: var(--lmm-text) !important; }

	.lobify-mobile-menu__menu-icon,
	.lobify-mobile-menu__quick-icon,
	.lobify-mobile-menu__final-icon {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		color: var(--lmm-accent);
		flex: 0 0 auto;
	}

	.lobify-mobile-menu__menu-icon { width: 26px; height: 26px; }
	.lobify-mobile-menu__menu-icon svg,
	.lobify-mobile-menu__quick-icon svg,
	.lobify-mobile-menu__final-icon svg,
	.lobify-mobile-menu__menu-chevron svg { width: 100%; height: 100%; }

	.lobify-mobile-menu__menu-label {
		min-width: 0;
		overflow-wrap: anywhere;
	}

	.lobify-mobile-menu__menu-chevron {
		display: inline-flex;
		width: 18px;
		height: 18px;
		margin-left: auto;
		color: color-mix(in srgb, var(--lmm-text) 55%, transparent);
		flex: 0 0 auto;
	}

	.lobify-mobile-menu__submenu-toggle {
		display: inline-flex;
		align-items: center;
		justify-content: flex-end;
		width: 50px;
		padding: 16px 4px 16px 28px;
		color: color-mix(in srgb, var(--lmm-text) 70%, transparent);
		flex: 0 0 50px;
	}

	.lobify-mobile-menu__submenu-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
	.lobify-mobile-menu__submenu-toggle svg { transition: transform .18s ease; }

	.lobify-mobile-menu__submenu {
		padding: 0 0 8px 39px;
		border-top: 1px dashed color-mix(in srgb, var(--lmm-text) 10%, transparent);
	}

	.lobify-mobile-menu__submenu .lobify-mobile-menu__menu-item { border: 0; }
	.lobify-mobile-menu__submenu .lobify-mobile-menu__menu-link {
		min-height: 46px;
		padding: 8px 4px;
		font-size: 14px !important;
		font-weight: 500;
	}

	.lobify-mobile-menu__quick-section {
		margin-top: 18px;
		flex: 0 0 auto;
	}

	.lobify-mobile-menu__section-label {
		margin: 0 0 10px;
		color: var(--lmm-accent);
		font-family: var(--lobify-button-font, "Montserrat", sans-serif);
		font-size: 11px;
		font-weight: 700;
		letter-spacing: .12em;
		text-transform: uppercase;
	}

	.lobify-mobile-menu__quick-actions {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
	}

	.lobify-mobile-menu__quick-action {
		display: flex;
		align-items: center;
		justify-content: center;
		flex-direction: column;
		gap: 7px;
		min-width: 0;
		min-height: 88px;
		padding: 11px 6px;
		border: 1px solid color-mix(in srgb, var(--lmm-text) 10%, transparent);
		border-radius: 16px;
		background: var(--lmm-quick-bg);
		color: var(--lmm-text) !important;
		font-family: var(--lobify-body-font, "Source Sans Pro", sans-serif);
		font-size: 12px !important;
		font-weight: 600;
		line-height: 1.2;
		overflow-wrap: anywhere;
		text-align: center;
		text-decoration: none !important;
	}

	.lobify-mobile-menu__quick-icon { width: 26px; height: 26px; }

	.lobify-mobile-menu__final-cta {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 9px;
		width: 100%;
		min-height: 58px;
		margin-top: 18px;
		padding: 12px 18px;
		border-radius: 16px;
		background: var(--lmm-cta-bg);
		color: var(--lmm-cta-text) !important;
		font-family: var(--lobify-button-font, "Montserrat", sans-serif);
		font-size: 16px !important;
		font-weight: 700;
		line-height: 1.2;
		text-align: center;
		text-decoration: none !important;
		flex: 0 0 auto;
	}

	.lobify-mobile-menu__final-icon { width: 23px; height: 23px; color: currentColor; }

	html.lobify-mobile-menu-open,
	body.lobify-mobile-menu-open {
		overflow: hidden !important;
		overscroll-behavior: none;
	}

	@media (max-width: 370px) {
		.lobify-mobile-menu__header-inner { padding-inline: 10px; gap: 5px; }
		.lobify-mobile-menu__brand { max-width: 62vw; }
		.lobify-mobile-menu__header-booking { padding: 0 9px; font-size: 11px; }
		.lobify-mobile-menu__hotel-name { font-size: 13px; }
		.lobify-mobile-menu__quick-actions { gap: 6px; }
		.lobify-mobile-menu__quick-action { min-height: 80px; font-size: 11px !important; }
	}

	@media (prefers-reduced-motion: reduce) {
		.lobify-mobile-menu__overlay,
		.lobify-mobile-menu__panel,
		.lobify-mobile-menu__submenu-toggle svg { transition: none !important; }
	}
}


/* v1.3.24 — iconos personalizados del menú móvil */
.lobify-mobile-menu__menu-icon .lobify-theme-custom-icon-image,
.lobify-mobile-menu__quick-icon .lobify-theme-custom-icon-image,
.lobify-mobile-menu__final-icon .lobify-theme-custom-icon-image,
.lobify-mobile-menu__menu-chevron .lobify-theme-custom-icon-image,
.lobify-mobile-menu__submenu-toggle .lobify-theme-custom-icon-image,
.lobify-mobile-menu__menu-toggle .lobify-theme-custom-icon-image,
.lobify-mobile-menu__close .lobify-theme-custom-icon-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}
