/**
 * Final mobile layout overrides.
 *
 * This file intentionally loads after every other public theme stylesheet.
 */
@media (max-width: 959px) {
	html,
	body {
		max-width: 100% !important;
		overflow-x: clip !important;
	}

	body.menu-open {
		height: 100dvh !important;
		overflow: hidden !important;
		overscroll-behavior: none !important;
		touch-action: none !important;
	}

	.site-header,
	.site-header--floating,
	.site-header--floating.is-scrolled,
	body:not(.home) .site-header--floating {
		position: fixed !important;
		z-index: 99998 !important;
		top: 0 !important;
		right: 0 !important;
		left: 0 !important;
		width: 100% !important;
		height: 68px !important;
		min-height: 68px !important;
		max-height: 68px !important;
		padding: 6px 16px !important;
		overflow: visible !important;
		background: transparent !important;
		box-shadow: none !important;
	}

	.admin-bar .site-header--floating {
		top: 46px !important;
	}

	.header-shell,
	.is-scrolled .header-shell,
	body:not(.home) .header-shell {
		width: 100% !important;
		height: 56px !important;
		min-height: 56px !important;
		max-height: 56px !important;
		padding: 2px 8px !important;
		margin: 0 !important;
		align-items: center !important;
		overflow: visible !important;
		border-radius: 17px !important;
		grid-template-columns: minmax(0, 1fr) 48px !important;
	}

	.site-branding,
	.official-logo,
	.custom-logo-link {
		display: flex !important;
		height: 52px !important;
		min-height: 0 !important;
		max-height: 52px !important;
		margin: 0 !important;
		align-items: center !important;
		overflow: visible !important;
	}

	.site-branding img,
	.official-logo img,
	.custom-logo,
	.custom-logo-link img,
	.is-scrolled .official-logo img,
	body:not(.home) .official-logo img {
		width: auto !important;
		height: 52px !important;
		max-width: 120px !important;
		max-height: 52px !important;
		margin: 0 !important;
		object-fit: contain !important;
	}

	.menu-toggle {
		position: relative !important;
		z-index: 100000 !important;
		width: 46px !important;
		height: 46px !important;
		min-height: 46px !important;
		padding: 10px !important;
		margin: 0 !important;
	}

	.menu-toggle[aria-expanded="true"] {
		position: fixed !important;
		top: calc(11px + env(safe-area-inset-top)) !important;
		right: 16px !important;
	}

	.admin-bar .menu-toggle[aria-expanded="true"] {
		top: calc(57px + env(safe-area-inset-top)) !important;
	}

	.hero,
	body.home .hero {
		min-height: clamp(560px, 72dvh, 650px) !important;
		padding-top: 68px !important;
		margin-top: 0 !important;
	}

	.hero-content,
	body.home .hero-content {
		padding-top: 0 !important;
		margin-top: 0 !important;
	}

	.archive-hero,
	.editorial-hero,
	.volunteer-hero,
	.memory-single__hero,
	.hunt-single__hero,
	.hunt-landing__hero,
	.hunt-retrospective__hero {
		margin-top: 0 !important;
		padding-top: 80px !important;
	}

	.primary-navigation,
	.primary-navigation--center {
		position: fixed !important;
		z-index: 99999 !important;
		inset: 0 !important;
		width: 100vw !important;
		height: 100dvh !important;
		min-height: 100dvh !important;
		max-height: none !important;
		padding: calc(76px + env(safe-area-inset-top)) 22px calc(22px + env(safe-area-inset-bottom)) !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		overscroll-behavior: contain !important;
	}

	.primary-navigation:not(.is-open) {
		visibility: hidden !important;
		opacity: 0 !important;
		pointer-events: none !important;
	}

	.primary-navigation.is-open {
		display: flex !important;
		visibility: visible !important;
		opacity: 1 !important;
		pointer-events: auto !important;
	}

	.primary-navigation .festival-menu {
		width: 100% !important;
		max-width: 520px !important;
		margin: auto auto 0 !important;
		align-items: stretch !important;
	}

	.primary-navigation .festival-menu > .menu-item {
		width: 100% !important;
		margin: 0 0 20px !important;
	}

	.primary-navigation .festival-menu > .menu-item > a,
	.is-scrolled .primary-navigation .festival-menu > .menu-item > a,
	body:not(.home) .primary-navigation .festival-menu > .menu-item > a {
		padding: 0 4px !important;
		font-size: clamp(24px, 7vw, 30px) !important;
		line-height: 1.1 !important;
	}

	.menu-item-has-children:not(.submenu-open) > .sub-menu {
		display: none !important;
	}

	.menu-item-has-children.submenu-open > .sub-menu {
		position: static !important;
		display: block !important;
		width: 100% !important;
		height: auto !important;
		max-height: none !important;
		padding: 8px 0 0 22px !important;
		overflow: visible !important;
		visibility: visible !important;
		opacity: 1 !important;
		pointer-events: auto !important;
		transform: none !important;
	}

	.primary-navigation .sub-menu .menu-item {
		margin: 0 0 12px !important;
	}

	.primary-navigation .sub-menu a,
	.is-scrolled .primary-navigation .sub-menu a,
	body:not(.home) .primary-navigation .sub-menu a {
		padding: 4px !important;
		font-size: 18px !important;
		line-height: 1.25 !important;
	}

	.mobile-menu-cta {
		min-height: 48px !important;
		padding: 11px 18px !important;
		margin-top: 4px !important;
		font-size: 15px !important;
	}

	.floating-mail-action {
		z-index: 90000 !important;
		display: grid !important;
		width: 48px !important;
		height: 48px !important;
		right: 16px !important;
		bottom: calc(20px + env(safe-area-inset-bottom)) !important;
	}

	body.menu-open .floating-mail-action {
		display: none !important;
	}
}

@supports selector(.menu-item-has-children:has(> .submenu-toggle)) {
	@media (max-width: 959px) {
		.menu-item-has-children:has(> .submenu-toggle[aria-expanded="true"]) > .sub-menu {
			display: block !important;
			visibility: visible !important;
			opacity: 1 !important;
			height: auto !important;
			max-height: none !important;
		}
	}
}
