/* GSC Mega Menu: German flag accent (black / red / gold), Poppins + Barlow like the header */
:root {
	--gsc-mm-red: #E4202A;
	--gsc-mm-gold: #FCBE15;
	--gsc-mm-ink: #101010;
	--gsc-mm-muted: #6b7080;
	--gsc-mm-tint: #FFF3F3;
}

/* ---------- Mobile / hamburger list (and any non-desktop width) ---------- */
.gsc-mm-promo,
.gsc-mm-desc,
.gsc-mm-arrow,
.gsc-mm-media--icon {
	display: none !important;
}
.gsc-mm-text,
.gsc-mm-title {
	display: inline;
}
.gsc-mm-media--flag {
	display: inline-flex;
	vertical-align: middle;
	margin-right: 10px;
}
.gsc-mm-media--flag img {
	width: 22px !important;
	height: 16px !important;
	object-fit: cover;
	border-radius: 3px;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, .35);
}

/* ---------- Desktop mega panels ---------- */
@media (min-width: 1025px) {
	/* the header must sit above the page (hero sliders etc.) or the panel shows underneath */
	[data-elementor-type="header"] {
		position: relative;
		z-index: 99990;
	}
	[data-elementor-type="header"] .elementor-section:has(nav.elementor-nav-menu--main),
	[data-elementor-type="header"] .e-con:has(nav.elementor-nav-menu--main) {
		z-index: 5;
	}
	nav.elementor-nav-menu--main {
		position: relative;
	}
	nav.elementor-nav-menu--main > ul.elementor-nav-menu {
		position: static !important;
	}
	nav.elementor-nav-menu--main li.gsc-mm {
		position: relative !important;
	}
	nav.elementor-nav-menu--main li.gsc-mm--destinations {
		position: static !important;
	}

	/* panel */
	nav.elementor-nav-menu--main li.gsc-mm > ul.sub-menu {
		display: none !important;
		position: absolute !important;
		top: 100% !important;
		left: 0 !important;
		right: auto !important;
		margin: 0 !important;
		width: 760px !important;
		min-width: 0 !important;
		max-width: calc(100vw - 32px) !important;
		padding: 22px !important;
		background: #fff !important;
		border: 0 !important;
		border-radius: 0 0 18px 18px !important;
		box-shadow: 0 30px 60px -18px rgba(12, 14, 36, .38), 0 2px 0 rgba(0, 0, 0, .04) !important;
		z-index: 9999 !important;
		gap: 0 8px;
		grid-auto-flow: row;
		align-items: start;
	}
	nav.elementor-nav-menu--main li.gsc-mm > ul.sub-menu::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: 0;
		height: 4px;
		background: linear-gradient(90deg, var(--gsc-mm-ink) 0 33.33%, var(--gsc-mm-red) 33.33% 66.66%, var(--gsc-mm-gold) 66.66% 100%);
	}
	nav.elementor-nav-menu--main li.gsc-mm:hover > ul.sub-menu,
	nav.elementor-nav-menu--main li.gsc-mm:focus-within > ul.sub-menu {
		display: grid !important;
		animation: gscMmIn .28s cubic-bezier(.2, .7, .2, 1) both;
	}
	@keyframes gscMmIn {
		from { opacity: 0; transform: translateY(10px); }
		to { opacity: 1; transform: none; }
	}

	/* layouts */
	nav.elementor-nav-menu--main li.gsc-mm--destinations > ul.sub-menu {
		width: 100% !important;
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	nav.elementor-nav-menu--main li.gsc-mm--destinations.gsc-mm--promo > ul.sub-menu {
		grid-template-columns: 310px repeat(2, minmax(0, 1fr));
	}
	nav.elementor-nav-menu--main li.gsc-mm--grid > ul.sub-menu {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	nav.elementor-nav-menu--main li.gsc-mm--grid.gsc-mm--n3 > ul.sub-menu {
		width: 860px !important;
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	nav.elementor-nav-menu--main li.gsc-mm--grid > ul.sub-menu > li > a {
		align-items: flex-start;
	}
	nav.elementor-nav-menu--main li.gsc-mm--grid.gsc-mm--promo > ul.sub-menu {
		width: 900px !important;
		grid-template-columns: 280px repeat(2, minmax(0, 1fr));
	}
	nav.elementor-nav-menu--main li.gsc-mm--compact > ul.sub-menu {
		width: 330px !important;
		padding: 14px !important;
		grid-template-columns: 1fr;
	}

	/* items */
	nav.elementor-nav-menu--main li.gsc-mm > ul.sub-menu > li {
		border: 0 !important;
		background: none !important;
		min-width: 0;
		padding: 2px 0 !important;
	}
	nav.elementor-nav-menu--main li.gsc-mm > ul.sub-menu > li > a {
		display: flex !important;
		align-items: center;
		gap: 14px;
		height: 100%;
		padding: 12px 14px !important;
		border: 0 !important;
		border-radius: 12px;
		background: transparent !important;
		color: var(--gsc-mm-ink) !important;
		text-transform: none !important;
		white-space: normal !important;
		line-height: 1.3 !important;
		transition: background .2s ease, transform .2s ease;
	}
	nav.elementor-nav-menu--main li.gsc-mm > ul.sub-menu > li > a:hover,
	nav.elementor-nav-menu--main li.gsc-mm > ul.sub-menu > li > a:focus-visible,
	nav.elementor-nav-menu--main li.gsc-mm > ul.sub-menu > li.current-menu-item > a {
		background: var(--gsc-mm-tint) !important;
		color: var(--gsc-mm-red) !important;
		transform: translateX(3px);
	}

	nav.elementor-nav-menu--main .gsc-mm-media {
		flex: 0 0 auto;
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		margin: 0;
	}
	nav.elementor-nav-menu--main .gsc-mm-media--flag img {
		width: 40px !important;
		height: 30px !important;
		border-radius: 6px;
		box-shadow: 0 0 0 1px rgba(16, 16, 16, .08), 0 4px 10px -4px rgba(16, 16, 16, .35);
		transition: transform .25s ease;
	}
	nav.elementor-nav-menu--main a:hover .gsc-mm-media--flag img {
		transform: scale(1.08) rotate(-3deg);
	}
	nav.elementor-nav-menu--main .gsc-mm-media--icon {
		width: 44px;
		height: 44px;
		border-radius: 12px;
		background: var(--gsc-mm-tint);
		color: var(--gsc-mm-red);
		transition: background .2s ease, color .2s ease;
	}
	nav.elementor-nav-menu--main .gsc-mm-media--icon svg {
		width: 22px;
		height: 22px;
	}
	nav.elementor-nav-menu--main a:hover .gsc-mm-media--icon {
		background: var(--gsc-mm-red);
		color: #fff;
	}
	nav.elementor-nav-menu--main .gsc-mm-text {
		display: flex !important;
		flex-direction: column;
		gap: 3px;
		flex: 1 1 auto;
		min-width: 0;
	}
	nav.elementor-nav-menu--main .gsc-mm-title {
		display: block;
		font: 600 14.5px/1.3 "Poppins", sans-serif;
		color: inherit;
	}
	nav.elementor-nav-menu--main .gsc-mm-desc {
		display: block !important;
		font: 400 12.5px/1.4 "Poppins", sans-serif;
		color: var(--gsc-mm-muted);
		text-transform: none;
	}
	nav.elementor-nav-menu--main .gsc-mm-arrow {
		display: inline-block !important;
		flex: 0 0 auto;
		color: var(--gsc-mm-red);
		opacity: 0;
		transform: translateX(-6px);
		transition: opacity .2s ease, transform .2s ease;
	}
	nav.elementor-nav-menu--main a:hover .gsc-mm-arrow {
		opacity: 1;
		transform: none;
	}

	/* promo card */
	nav.elementor-nav-menu--main li.gsc-mm-promo {
		display: block !important;
		grid-column: 1;
		grid-row: 1 / span 30;
		align-self: stretch;
		margin-right: 12px;
		padding: 0 !important;
	}
	.gsc-mm-promo__card {
		position: relative;
		overflow: hidden;
		display: flex;
		flex-direction: column;
		justify-content: flex-end;
		gap: 10px;
		height: 100%;
		min-height: 250px;
		box-sizing: border-box;
		padding: 26px 24px;
		border-radius: 14px;
		color: #fff;
		background:
			radial-gradient(120% 90% at 100% 0%, rgba(228, 32, 42, .55) 0%, rgba(228, 32, 42, 0) 55%),
			radial-gradient(90% 70% at 0% 100%, rgba(252, 190, 21, .22) 0%, rgba(252, 190, 21, 0) 60%),
			linear-gradient(160deg, #1b1b1f 0%, #0c0c0e 100%);
	}
	.gsc-mm-promo__card::after {
		content: "";
		position: absolute;
		right: -46px;
		top: -46px;
		width: 160px;
		height: 160px;
		border-radius: 50%;
		border: 1px dashed rgba(255, 255, 255, .22);
		box-shadow: 0 0 0 22px rgba(255, 255, 255, .03), 0 0 0 44px rgba(255, 255, 255, .025);
		animation: gscMmSpin 40s linear infinite;
	}
	@keyframes gscMmSpin {
		to { transform: rotate(360deg); }
	}
	.gsc-mm-promo__eyebrow {
		font: 600 11px/1 "Poppins", sans-serif;
		letter-spacing: .16em;
		text-transform: uppercase;
		color: var(--gsc-mm-gold);
	}
	.gsc-mm-promo__title {
		font: 600 23px/1.2 "Barlow", sans-serif;
		color: #fff;
	}
	.gsc-mm-promo__text {
		font: 400 13px/1.55 "Poppins", sans-serif;
		color: rgba(255, 255, 255, .78);
		text-transform: none;
	}
	.gsc-mm-promo__actions {
		position: relative;
		z-index: 1;
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 14px;
		margin-top: 6px;
	}
	nav.elementor-nav-menu--main .gsc-mm-promo__btn {
		display: inline-block !important;
		padding: 10px 18px !important;
		border-radius: 999px;
		background: var(--gsc-mm-red) !important;
		color: #fff !important;
		font: 600 13px/1 "Poppins", sans-serif !important;
		text-transform: none !important;
		box-shadow: 0 8px 18px -8px rgba(228, 32, 42, .9);
		transition: transform .2s ease, background .2s ease;
	}
	nav.elementor-nav-menu--main .gsc-mm-promo__btn:hover {
		background: #c8141d !important;
		transform: translateY(-2px);
	}
	nav.elementor-nav-menu--main .gsc-mm-promo__link {
		display: inline-block !important;
		padding: 0 !important;
		background: none !important;
		color: var(--gsc-mm-gold) !important;
		font: 600 13px/1 "Poppins", sans-serif !important;
		text-transform: none !important;
	}
	nav.elementor-nav-menu--main .gsc-mm-promo__link:hover {
		color: #fff !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	nav.elementor-nav-menu--main li.gsc-mm > ul.sub-menu,
	.gsc-mm-promo__card::after {
		animation: none !important;
	}
}
