/* HSP fullscreen menu (popup 317 / 3901 / 3727) on phones only, see hsp-menu.php. */
.hsp-mbar-logo {
	display: none;
}

@media (max-width: 767px) {
	/* opens with a short fade instead of the slide: the bar stays where the header was */
	#elementor-popup-modal-317 .dialog-widget-content.animated,
	#elementor-popup-modal-3901 .dialog-widget-content.animated,
	#elementor-popup-modal-3727 .dialog-widget-content.animated {
		animation: hspMenuFade 0.25s ease-out 0.08s both !important;
	}
	/* Elementor paints the popup at the end of the page for its first frames, then moves it up: pin it to the
	   screen from the first frame (and the 0.08s delay above keeps those frames invisible anyway) */
	#elementor-popup-modal-317,
	#elementor-popup-modal-3901,
	#elementor-popup-modal-3727 {
		position: fixed !important;
		inset: 0 !important;
	}

	/* page behind does not scroll; the menu covers everything, the sticky booking bar (74c936e) included */
	html.hsp-menu-open,
	html.hsp-menu-open body {
		overflow: hidden !important;
	}
	#elementor-popup-modal-317,
	#elementor-popup-modal-3901,
	#elementor-popup-modal-3727 {
		z-index: 100000 !important;
	}

	/* content column: bar on top, site gutter */
	.elementor-popup-modal .elementor-element.elementor-element-1d0e478 {
		justify-content: flex-start !important;
		flex-wrap: nowrap !important;
		padding: 0 clamp(1.25rem, 5vw, 7rem) calc(1.5rem + env(safe-area-inset-bottom, 0px)) !important;
	}

	/* top bar: X exactly on the hamburger, logo centred on it, line under it */
	.elementor-popup-modal .elementor-element.elementor-element-fdd8031 {
		position: relative !important;
		align-self: stretch !important;
		width: auto !important;
		max-width: none !important;
		margin: 0 calc(-1 * clamp(1.25rem, 5vw, 7rem)) !important;
		padding: var(--hsp-menu-y, 35px) clamp(1.25rem, 5vw, 7rem) 26px !important;
		border-bottom: 1px solid rgba(255, 255, 255, 0.18);
		transform: none !important;
	}
	.elementor-popup-modal .elementor-element-fdd8031 > .elementor-widget-container {
		display: flex;
		align-items: center;
		height: var(--hsp-menu-s, 22.4px);
		margin-left: calc(var(--hsp-menu-x, 20px) - clamp(1.25rem, 5vw, 7rem));
	}
	.elementor-popup-modal .elementor-element-fdd8031 .elementor-icon-wrapper,
	.elementor-popup-modal .elementor-element-fdd8031 .elementor-icon {
		display: flex;
		align-items: center;
		justify-content: center;
		width: var(--hsp-menu-s, 22.4px);
		height: var(--hsp-menu-s, 22.4px);
	}
	/* larger tap area around the X, same visual place */
	.elementor-popup-modal .elementor-element-fdd8031 .elementor-icon::before {
		content: "";
		position: absolute;
		width: 44px;
		height: 44px;
	}
	.elementor-popup-modal .hsp-mbar-logo {
		display: block;
		position: absolute;
		left: 50%;
		top: calc(var(--hsp-menu-y, 35px) + var(--hsp-menu-s, 22.4px) / 2);
		transform: translate(-50%, -50%);
		line-height: 0;
	}
	.elementor-popup-modal .hsp-mbar-logo img {
		display: block;
		width: auto;
		height: 46px;
		max-width: none;
	}
	/* menu items: rows with thin separators, no underline, current page in bold (desktop colour) */
	.elementor-popup-modal .elementor-element.elementor-element-5274363 {
		width: 100% !important;
		margin-top: 0.75rem !important;
	}
	.elementor-popup-modal .elementor-element.elementor-element-5274363.elementor-widget li {
		margin-bottom: 0 !important;
		border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	}
	.elementor-popup-modal .elementor-element.elementor-element-5274363.elementor-widget li a.elementor-item {
		display: flex !important;
		align-items: center;
		min-height: clamp(44px, 6.2dvh, 54px);
		padding: 0 !important;
		font-size: 0.95rem !important;
		font-weight: 400 !important;
	}
	.elementor-popup-modal .elementor-element-5274363 .elementor-item::after {
		display: none !important;
	}
	.elementor-popup-modal .elementor-element.elementor-element-5274363.elementor-widget li a.elementor-item.elementor-item-active {
		font-weight: 600 !important;
	}

	/* the last row's line already closes the list */
	.elementor-popup-modal .elementor-element.elementor-element-d50cb8a {
		display: none !important;
	}

	/* contact block */
	.elementor-popup-modal .elementor-element.elementor-element-b3cc561 {
		width: 100% !important;
		margin-top: 1.5rem !important;
	}
	.elementor-popup-modal .elementor-element-b3cc561 .elementor-icon-list-item {
		padding-block: 4px !important;
	}
	.elementor-popup-modal .elementor-element-b3cc561 .elementor-icon-list-text {
		font-size: 0.875rem !important;
		line-height: 1.45;
	}
}

/* a tap must not leave a row bold / underlined (touch screens have no hover) */
@media (max-width: 767px) and (hover: none) {
	.elementor-popup-modal .elementor-element-5274363 .elementor-item:hover:not(.elementor-item-active) {
		font-weight: 400 !important;
	}
}

@keyframes hspMenuFade {
	from { opacity: 0; }
	to { opacity: 1; }
}
