/* Mobile layout fixes. Loaded after the child stylesheet. Desktop layout is unchanged. */

/* 1. Week calendar: one full day in view. Other days scroll inside the calendar. */
@media (max-width: 767px) {
	.event-calendar-container,
	.calendar-scroll-wrapper,
	.event-calendar.fc {
		max-width: 100%;
		min-width: 0;
	}

	.event-calendar.fc {
		container-type: inline-size;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		-webkit-overflow-scrolling: touch;
		touch-action: pan-x pan-y;
		overscroll-behavior-x: contain;
		scrollbar-width: thin;
		scrollbar-color: rgba(226, 217, 198, 0.9) transparent;
		scroll-snap-type: x mandatory;
	}

	.event-calendar.fc .fc-view-harness,
	.event-calendar.fc .fc-scrollgrid,
	.event-calendar.fc .fc-col-header,
	.event-calendar.fc .fc-daygrid-body,
	.event-calendar.fc table.fc-scrollgrid-sync-table {
		width: 700cqi !important;
		min-width: 700cqi !important;
		max-width: none !important;
	}

	.event-calendar.fc .fc-col-header tr,
	.event-calendar.fc .fc-daygrid-body tr,
	.event-calendar.fc .fc-scrollgrid-sync-table tr {
		display: grid !important;
		grid-template-columns: repeat(7, 100cqi) !important;
		column-gap: 0 !important;
		width: 700cqi !important;
	}

	.event-calendar.fc .fc-col-header-cell,
	.event-calendar.fc .fc-daygrid-day {
		width: 100cqi !important;
		min-width: 100cqi !important;
		max-width: 100cqi !important;
		scroll-snap-align: start;
	}

	.event-calendar.fc .fc-daygrid-day-frame,
	.event-calendar.fc .fc-daygrid-event-harness,
	.event-calendar.fc .fc-daygrid-event,
	.event-calendar.fc .custom-event {
		max-width: 100% !important;
	}

	/* Room under the fixed bottom bar for the last card in the day column. */
	.event-calendar.fc .fc-daygrid-day-frame {
		padding-bottom: 150px !important;
		box-sizing: border-box;
	}

	.event-calendar.fc .fc-daygrid-event,
	.event-calendar.fc .custom-event {
		scroll-margin-bottom: 140px;
	}

	.calendar-scroll-wrapper .calendar-scrollbar-top {
		overflow-x: auto;
		max-width: 100%;
	}
}

/* 2. Long FAQ category labels. */
@media (max-width: 767px) {
	.elementor-widget-heading:has(+ .elementor-widget-n-accordion) .elementor-heading-title {
		overflow: visible;
		white-space: normal;
		overflow-wrap: anywhere;
		word-break: break-word;
		max-width: 100%;
		font-size: 28px !important;
		line-height: 1.05;
	}
}

/* 3. Opened or focused FAQ questions clear the fixed header and bottom bar. */
@media (max-width: 767px) {
	html:has(body.page-id-1390) {
		scroll-padding-top: 84px;
		scroll-padding-bottom: 210px;
	}

	.e-n-accordion-item,
	.e-n-accordion-item > .e-n-accordion-item-title {
		scroll-margin-top: 84px;
		scroll-margin-bottom: 210px;
	}

	body.page-id-1390 .elementor-1390 {
		padding-bottom: 320px;
	}

	/* Keep question lines out of the chat button and above the fixed footer. */
	body.page-id-1390 .elementor-widget-n-accordion {
		padding-right: 84px;
		box-sizing: border-box;
	}
}

/* Room intro lines end before the chat button, and the last line can sit above the bottom bar. */
@media (max-width: 767px) {
	body.page-id-1382 .elementor-widget-text-editor {
		padding-right: 128px !important;
		box-sizing: border-box;
	}

	body.page-id-1382 .elementor-1382,
	body.page-id-1382 .elementor.elementor-1382 {
		padding-bottom: 160px;
	}
}

/* 4. Stickers must not cover the heading at phone width. */
@media (max-width: 767px) {
	/* .com Kitchen & Bar: fixed "BOOK YOUR SEAT" star sits on the title. */
	.elementor-1380 .elementor-element.elementor-element-55b2694 {
		bottom: auto !important;
		top: 96px !important;
		left: -56px !important;
		right: auto !important;
		transform: scale(0.78) !important;
		transform-origin: top left;
	}

	/* .dk promo star: keep the scaled offset, and on the homepage lift it
	   into the hero photo so the offer paragraph stays readable. */
	#badge-rotate,
	.elementor-element.elementor-element-623fb30#badge-rotate {
		transform: translateY(120px) scale(0.78);
		transform-origin: left top;
	}

	body.home #badge-rotate,
	body.page-id-41 #badge-rotate {
		margin-top: -940px !important;
	}

	.elementor-location-popup .elementor-widget-text-editor {
		padding-right: 78px;
		box-sizing: border-box;
	}
}

/* 6. Stay / Ophold panel is display:none in the header template. Show it when opened. */
.elementor-841 .elementor-element.elementor-element-43a0ad2.bbh-menu-wrapper-top:has(.bbh-menu-top.active) {
	display: flex;
}

.bbh-menu-top.active {
	opacity: 1;
	pointer-events: all;
}

.bbh-menu-button-top a:focus-visible,
.bbh-menu-top a:focus-visible,
.e-n-accordion-item-title:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}
