:root {
	--font-display: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
	--font-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--pink: #f32bc6;
	--purple: #8f35ff;
	--blue: #1f74ff;
	--cyan: #13d8ff;
	--green: #44e7b4;
	--warning: #ffd84d;
	--radius: 8px;
	--shadow: 0 24px 80px rgba(0, 0, 0, .32);
	--gradient: linear-gradient(100deg, var(--pink), var(--purple), var(--blue));
}

body.theme-dark {
	--bg: #030612;
	--bg-2: #070b1d;
	--surface: #0e1230;
	--surface-2: #111638;
	--border: rgba(255, 255, 255, .1);
	--text: #f8f7ff;
	--muted: #b8bad4;
	--soft: rgba(255, 255, 255, .06);
}

body.theme-light {
	--bg: #f7f8ff;
	--bg-2: #ffffff;
	--surface: #ffffff;
	--surface-2: #f0f3ff;
	--border: rgba(25, 30, 65, .13);
	--text: #0d1024;
	--muted: #555d7d;
	--soft: rgba(31, 116, 255, .08);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background:
		radial-gradient(circle at 20% -10%, rgba(243,43,198,.22), transparent 34rem),
		radial-gradient(circle at 88% 8%, rgba(31,116,255,.22), transparent 36rem),
		var(--bg);
	color: var(--text);
	font-family: var(--font-body);
	font-size: 16px;
	line-height: 1.6;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
.container { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.site-main { min-height: 60vh; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.skip-link:focus { z-index: 20; width: auto; height: auto; padding: 12px 16px; background: var(--pink); color: #fff; clip: auto; }

.site-header {
	position: sticky;
	top: 0;
	z-index: 10;
	background: color-mix(in srgb, var(--bg) 88%, transparent);
	border-bottom: 1px solid var(--border);
	backdrop-filter: blur(16px);
}
.header-inner { display: flex; align-items: center; gap: 28px; min-height: 96px; }
.brand img, .custom-logo-link img { width: 255px; max-height: 78px; object-fit: contain; }
.primary-nav { margin-left: auto; }
.menu {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 22px;
	margin: 0;
	padding: 0;
	list-style: none;
	white-space: nowrap;
}
.menu a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 96px;
	padding: 0;
	border-bottom: 3px solid transparent;
	font-size: 13px;
	font-weight: 800;
	line-height: 1.2;
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 0;
	white-space: nowrap;
}

.primary-nav {
	flex: 1 1 auto;
	min-width: 0;
}

.header-inner {
	gap: 22px;
}

.header-actions {
	flex: 0 0 auto;
}

.brand,
.custom-logo-link {
	flex: 0 0 auto;
}
.menu a:hover, .current-menu-item > a { color: var(--pink); border-color: var(--pink); }
.header-actions { display: flex; align-items: center; gap: 12px; }
.icon-button, .theme-toggle, .nav-toggle {
	display: grid;
	place-items: center;
	border: 1px solid var(--border);
	background: var(--soft);
	color: var(--text);
	cursor: pointer;
}
.icon-button { width: 40px; height: 40px; border-radius: 50%; font-size: 22px; }
.theme-toggle { position: relative; width: 56px; height: 32px; border-radius: 999px; }
.theme-toggle span { width: 22px; height: 22px; border-radius: 50%; background: var(--gradient); transform: translateX(-10px); transition: transform .2s ease; }
.theme-toggle[aria-pressed="true"] span { transform: translateX(10px); }
.join-link, .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 22px;
	border-radius: 7px;
	border: 1px solid transparent;
	font-size: 13px;
	font-weight: 900;
	text-transform: uppercase;
	color: #fff;
	background: var(--gradient);
	box-shadow: 0 10px 30px rgba(143,53,255,.28);
}
.btn-outline { background: transparent; border-color: color-mix(in srgb, var(--pink), var(--blue)); color: var(--text); box-shadow: none; }
.btn-soft { background: var(--soft); color: var(--text); border-color: var(--border); box-shadow: none; }

.hero {
	min-height: 570px;
	display: grid;
	align-items: end;
	padding: 64px 0 42px;
	background:
		linear-gradient(90deg, var(--bg) 0%, rgba(3,6,18,.82) 38%, rgba(3,6,18,.18) 75%),
		var(--hero-image) center/cover no-repeat;
	border-bottom: 1px solid var(--border);
}
body.theme-light .hero {
	background:
		linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.76) 44%, rgba(255,255,255,.12) 82%),
		var(--hero-image) center/cover no-repeat;
}
.hero-copy { width: min(650px, 100%); }
.eyebrow { color: var(--pink); font-weight: 900; text-transform: uppercase; letter-spacing: .28em; }
h1, h2, h3, p { margin-top: 0; }
h1, .display {
	font-family: var(--font-display);
	font-size: clamp(3.3rem, 8vw, 6.2rem);
	line-height: .95;
	text-transform: uppercase;
	letter-spacing: 0;
}
.gradient-text { background: var(--gradient); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hero p { max-width: 560px; font-size: 1.12rem; }
.button-row { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 28px; }

.section { padding: 28px 0; }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.section-title, .widget-title {
	position: relative;
	margin: 0;
	font-size: 1.1rem;
	font-weight: 900;
	text-transform: uppercase;
}
.section-title::after, .widget-title::after {
	content: "";
	display: block;
	width: 40px;
	height: 2px;
	margin-top: 8px;
	background: var(--gradient);
}
.text-link { color: var(--pink); font-size: 13px; font-weight: 900; text-transform: uppercase; }
.card, .news-card, .video-card, .country-card, .product-card, .feature-card, .feed-post, .timeline-item {
	background: linear-gradient(145deg, color-mix(in srgb, var(--surface) 92%, transparent), color-mix(in srgb, var(--surface-2) 92%, transparent));
	border: 1px solid var(--border);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
}
.grid { display: grid; gap: 20px; }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.grid-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.content-sidebar { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 24px; align-items: start; }

.quick-nav { margin-top: -36px; position: relative; z-index: 2; }
.quick-card, .stat-card {
	display: flex;
	align-items: center;
	gap: 16px;
	min-height: 104px;
	padding: 20px;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	box-shadow: 0 16px 40px rgba(0,0,0,.18);
}
.icon-bubble {
	display: grid;
	place-items: center;
	width: 54px;
	height: 54px;
	flex: 0 0 54px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(243,43,198,.35), rgba(31,116,255,.14));
	color: var(--pink);
	font-weight: 900;
}

.media-frame {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: calc(var(--radius) - 2px);
	background: #090d20;
}
.media-frame img { width: 100%; height: 100%; object-fit: cover; min-height: 180px; }
.news-card--horizontal { display: grid; grid-template-columns: 42% 1fr; gap: 28px; padding: 20px; }
.news-card--vertical { overflow: hidden; }
.news-card--vertical .news-card__body { padding: 18px; }
.news-card--compact { display: grid; grid-template-columns: 132px 1fr; gap: 16px; padding: 0; background: transparent; border: 0; box-shadow: none; }
.news-card--compact .media-frame img { min-height: 96px; }
.news-card h2, .news-card h3, .video-card h3 { margin: 10px 0; line-height: 1.2; }
.news-card p, .video-card p, .card p, .feature-card p { color: var(--muted); }
.meta { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; color: var(--muted); font-size: 13px; }
.pill { color: #fff; border: 1px solid color-mix(in srgb, var(--pink), var(--blue)); border-radius: 999px; padding: 2px 8px; background: rgba(243,43,198,.15); text-transform: uppercase; font-size: 11px; font-weight: 800; }

.video-card { padding: 16px; }
.video-thumb::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 35%, rgba(0,0,0,.58));
}
.play {
	position: absolute;
	inset: 50% auto auto 50%;
	width: 58px;
	height: 58px;
	transform: translate(-50%, -50%);
	border: 2px solid #fff;
	border-radius: 50%;
	background: rgba(0,0,0,.34);
}
.play::after {
	content: "";
	position: absolute;
	left: 22px;
	top: 16px;
	border-left: 17px solid #fff;
	border-top: 11px solid transparent;
	border-bottom: 11px solid transparent;
}

.home-video-thumb .play{
	width:40px;
	height:40px;
}

.home-video-thumb .play::after{
	left:15px;
	top:11px;
	border-left:12px solid #fff;
	border-top:8px solid transparent;
	border-bottom:8px solid transparent;
}

.duration {
	position: absolute;
	right: 8px;
	bottom: 8px;
	padding: 2px 6px;
	border-radius: 4px;
	background: #000;
	color: #fff;
	font-size: 12px;
}

.countdown-card { padding: 28px; text-align: center; }
.countdown-card img { width: min(360px, 100%); margin: 22px auto; border-radius: var(--radius); }
.countdown { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 28px 0 12px; }
.countdown div {
	padding: 14px 8px;
	border-radius: var(--radius);
	background: var(--soft);
	border: 1px solid var(--border);
}
.countdown strong { display: block; font-size: clamp(1.8rem, 4vw, 3rem); line-height: 1; }
.countdown span { color: var(--muted); font-size: 12px; text-transform: uppercase; }

.page-hero {
	display: grid;
	grid-template-columns: minmax(0, .75fr) minmax(320px, 1fr);
	align-items: center;
	min-height: 330px;
	gap: 30px;
	padding: 54px max(20px, calc((100vw - 1180px) / 2));
	overflow: hidden;
	border-bottom: 1px solid var(--border);
}
.page-hero img { width: 100%; max-height: 300px; object-fit: cover; border-radius: var(--radius); opacity: .86; }
.breadcrumbs { display: flex; gap: 10px; color: var(--pink); font-size: 13px; margin-bottom: 22px; }
.breadcrumbs span::before { content: ">"; margin-right: 10px; color: var(--muted); }
.page-hero h1 { margin-bottom: 12px; }
.page-hero p { max-width: 560px; color: var(--muted); font-size: 1.08rem; }
.tabs { display: flex; flex-wrap: wrap; gap: 6px; padding: 16px; margin-bottom: 6px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); }
.tab { border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--text); padding: 10px 12px; cursor: pointer; font-size: 12px; font-weight: 900; text-transform: uppercase; }
.tab.is-active { color: var(--pink); border-color: var(--pink); }
.sidebar-stack { display: grid; gap: 20px; }
.sidebar-card { padding: 22px; }
.rank-list, .link-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 14px; }
.rank-list li { display: grid; grid-template-columns: 26px 74px 1fr; align-items: center; gap: 12px; }
.rank-list img { width: 74px; height: 54px; object-fit: cover; border-radius: 6px; }
.link-list li { display: flex; justify-content: space-between; gap: 18px; color: var(--muted); border-bottom: 1px solid var(--border); padding-bottom: 10px; }

.country-layout { display: grid; grid-template-columns: 280px 1fr; gap: 24px; }
.filter-panel { padding: 22px; }
.filter-panel label, .form-row label { display: block; margin: 16px 0 6px; font-size: 12px; font-weight: 900; text-transform: uppercase; }
input, select, textarea {
	width: 100%;
	min-height: 48px;
	border: 1px solid var(--border);
	border-radius: 6px;
	background: color-mix(in srgb, var(--bg) 82%, transparent);
	color: var(--text);
	padding: 11px 14px;
}
textarea { min-height: 120px; resize: vertical; }
.check-row { display: flex; align-items: center; gap: 9px; color: var(--muted); margin: 10px 0; }
.check-row input { width: 16px; min-height: 16px; accent-color: var(--pink); }
.country-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.country-card {
	position: relative;
	min-height: 150px;
	overflow: hidden;
	padding: 18px;
	display: grid;
	align-content: end;
	background: linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.75)), var(--country-bg) center/cover;
}
.flag {
	position: absolute;
	top: 18px;
	left: 50%;
	transform: translateX(-50%);
	display: grid;
	place-items: center;
	width: 68px;
	height: 68px;
	border-radius: 50%;
	border: 2px solid #fff;
	background: var(--gradient);
	color: #fff;
	font-weight: 900;
}
.country-card h3, .country-card p { position: relative; text-align: center; color: #fff; margin-bottom: 0; }

.timeline { display: grid; gap: 16px; }
.timeline-item { display: grid; grid-template-columns: 140px 1fr; gap: 20px; padding: 20px; }
.timeline-item strong { color: var(--pink); font-size: 1.4rem; }
.feature-card, .product-card, .feed-post { padding: 22px; }
.feed-post { display: grid; grid-template-columns: 1fr 45%; gap: 22px; align-items: center; }
.feed-post img { width: 100%; border-radius: var(--radius); }
.join-shell { display: grid; grid-template-columns: .9fr 1.1fr; gap: 48px; padding: 42px 0; }
.benefit-list { display: grid; gap: 24px; margin: 28px 0; }
.benefit { display: grid; grid-template-columns: 62px 1fr; gap: 18px; align-items: start; }
.join-panel { padding: 44px; }
.social-button { width: 100%; margin-bottom: 14px; color: #0d1024; background: #fff; border: 0; border-radius: 6px; min-height: 50px; font-weight: 800; cursor: pointer; }
.divider { display: flex; align-items: center; gap: 16px; color: var(--muted); margin: 28px 0; }
.divider::before, .divider::after { content: ""; height: 1px; flex: 1; background: var(--border); }
.form-message { min-height: 24px; color: var(--green); font-weight: 800; }

.wide-cta {
	display: grid;
	grid-template-columns: 170px 1fr;
	gap: 26px;
	align-items: center;
	padding: 28px;
	background: linear-gradient(90deg, rgba(243,43,198,.2), rgba(31,116,255,.28)), var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius);
}
.wide-cta img { max-width: 150px; }

.site-footer { margin-top: 36px; padding: 38px 0 22px; border-top: 1px solid var(--border); background: color-mix(in srgb, var(--bg) 92%, #000); }
.footer-grid {
	display: grid;
	grid-template-columns:
		1.65fr
		0.85fr
		0.85fr
		0.85fr
		2fr;
	gap: 34px;
}
.site-footer h2 { margin: 0 0 14px; font-size: 14px; text-transform: uppercase; }
.site-footer p, .site-footer a { color: var(--muted); font-size: 14px; }
.site-footer a { display: block; margin: 6px 0; }
.social-row {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 16px;
    margin-top: 20px;
}
.social-row a { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--soft); color: var(--text); font-size: 11px; }
.inline-form {
	display: flex;
	align-items: stretch;
	gap: 10px;
	width: 100%;
}
.inline-form input {
	flex: 1 1 auto;
	width: 100%;
	min-width: 0;
}
.inline-form .btn {
	flex: 0 0 auto;
	min-height: 48px;
	padding: 0 18px;
	border: 0;
	cursor: pointer;
	white-space: nowrap;
}
.copyright { text-align: center; color: var(--muted); margin: 28px 0 0; }

.nav-toggle { display: none; width: 44px; height: 44px; border-radius: 6px; gap: 4px; }
.nav-toggle span:not(.screen-reader-text) { width: 22px; height: 2px; background: var(--text); }

@media (max-width: 1040px) {
	.header-inner { min-height: 82px; }
	.nav-toggle { display: grid; margin-left: auto; }
	.primary-nav {
		position: absolute;
		top: 82px;
		left: 0;
		right: 0;
		display: none;
		margin: 0;
		padding: 16px 20px;
		background: var(--bg);
		border-bottom: 1px solid var(--border);
	}
	.primary-nav.is-open { display: block; }
	.menu { flex-direction: column; align-items: stretch; gap: 0; }
	.menu a { padding: 13px 0; }
	.header-actions { margin-left: 0; }
	.content-sidebar, .country-layout, .join-shell, .page-hero { grid-template-columns: 1fr; }
	.country-grid, .grid-4, .grid-5, .grid-6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
	.container { width: min(100% - 28px, 1180px); }
	.brand img, .custom-logo-link img { width: 190px; }
	.header-actions .icon-button { display: none; }
	.hero { min-height: 500px; padding: 44px 0 34px; }
	h1, .display { font-size: clamp(2.7rem, 15vw, 4rem); }
	.grid-2, .grid-3, .grid-4, .grid-5, .grid-6, .country-grid { grid-template-columns: 1fr; }
	.news-card--horizontal, .news-card--compact, .feed-post, .timeline-item, .wide-cta { grid-template-columns: 1fr; }
	.countdown { grid-template-columns: repeat(2, 1fr); }
	.join-panel { padding: 24px; }
	.footer-grid { grid-template-columns: 1fr; }
	.inline-form { flex-direction: column; }
}

.country-card .flag {
	overflow: hidden;
	background: #ffffff;
	padding: 0;
}

.country-card .flag img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 50%;
	display: block;
}

.country-card {
	align-content: end;
	justify-items: center;
	gap: 4px;
	padding-bottom: 16px;
}

.country-card h3 {
	margin-top: 58px;
	font-size: 18px;
	line-height: 1.1;
	text-shadow: 0 2px 8px rgba(0,0,0,.7);
}

.country-stats {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	margin-top: 6px;
	color: #fff;
	font-size: 14px;
	font-weight: 800;
}

.country-stat {
	display: inline-flex;
	align-items: center;
	gap: 5px;
}

.stat-icon {
	font-size: 15px;
	line-height: 1;
}

.icon-bubble {
	width: 100px;
	height: 60px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.icon-bubble {
	background: radial-gradient(circle, rgba(243,43,198,.18), rgba(143,53,255,.08));
}

.countries-filter {
	padding: 24px;
}

.countries-filter .section-title {
	margin-bottom: 18px;
}

.filter-search {
	position: relative;
	margin-bottom: 22px;
}

.filter-search input {
	padding-right: 42px;
}

.filter-search span {
	position: absolute;
	right: 14px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--muted);
	font-size: 20px;
}

.filter-group {
	padding: 18px 0;
	border-top: 1px solid var(--border);
}

.filter-group h3 {
	margin: 0 0 12px;
	font-size: 12px;
	font-weight: 900;
	text-transform: uppercase;
	color: var(--text);
}

.countries-filter label.check-row {
	display: grid !important;
	grid-template-columns: 28px minmax(0, 1fr) 36px !important;
	align-items: center !important;
	column-gap: 14px !important;
	width: 100% !important;
	margin: 10px 0 !important;
}

.countries-filter label.check-row input {
	appearance: none;
	width: 18px !important;
	height: 18px !important;
	min-height: 18px !important;
	margin: 0 !important;
	border: 1px solid rgba(255,255,255,.35);
	border-radius: 3px;
	background: transparent;
	display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.countries-filter label.check-row input:checked {
	background: var(--gradient);
	border-color: var(--pink);
}

.countries-filter label.check-row input:checked::after {
	content: "✓";
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: #fff;
	font-size: 10px;
	font-weight: 900;
	line-height: 1;
}

.countries-filter .filter-label {
	margin: 0 !important;
	text-align: left !important;
	color: var(--muted) !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	line-height: 1.25 !important;
	text-transform: none !important;
}

.countries-filter .filter-count {
	margin: 0 !important;
	text-align: right !important;
	color: var(--muted) !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	line-height: 1.25 !important;
}

.debut-range {
	min-height: auto;
	padding: 0;
	accent-color: var(--pink);
}

.countries-filter .range-values {
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
	width: 100% !important;
	margin-top: 14px !important;
}

.countries-filter .range-box {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-width: 72px;
	padding: 10px 14px;
	border: 1px solid var(--border);
	border-radius: 8px;
	background: rgba(255,255,255,.03);
	color: var(--text);
	font-size: 13px;
	font-weight: 700;
}

.filter-reset {
	width: 100%;
	margin-top: 20px;
}

.news-card {
	overflow: hidden;
	display: grid;
	grid-template-columns: 320px 1fr;
	align-items: center;
}

.news-card .news-card__image {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 14px;
	background: transparent;
}

.news-card .news-card__image img {
	width: 100%;
	height: auto;
	max-height: 210px;
	object-fit: contain;
	border-radius: 6px;
}

.news-card__content,
.news-card__body {
	padding: 22px;
}

.news-card h2,
.news-card h3 {
	margin: 8px 0;
	font-size: 1.45rem;
	line-height: 1.25;
}

.news-card p {
	margin-bottom: 14px;
	font-size: .96rem;
	line-height: 1.55;
	color: var(--muted);
}

.news-card__content .button,
.news-card__content .btn,
.news-card__body .button,
.news-card__body .btn {
	min-height: auto;
	padding: 0;
	background: transparent;
	box-shadow: none;
	color: var(--pink);
	font-size: 12px;
	margin-top: 8px;
}

@media (max-width: 720px) {
	.news-card {
		grid-template-columns: 1fr;
	}

	.news-card .news-card__image {
		padding: 14px 14px 0;
	}

	.news-card .news-card__image img {
		max-height: none;
	}
}

.confirmed-country-list {
	list-style: none;
	padding: 0;
	margin: 24px 0;
	display: grid;
	gap: 12px;
}

.confirmed-country-list li {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 14px;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--surface);
}

.confirmed-country-list img {
	width: 32px;
	height: 22px;
	object-fit: cover;
	border-radius: 3px;
	box-shadow: 0 2px 8px rgba(0,0,0,.24);
}

.related-news-list {
	display: grid;
	gap: 16px;
	margin-top: 18px;
}

.related-news-item {
	display: grid;
	grid-template-columns: 82px 1fr;
	gap: 14px;
	align-items: center;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--border);
}

.related-news-item:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

.related-news-item img {
	width: 82px;
	height: 62px;
	object-fit: cover;
	border-radius: 6px;
}

.related-news-item small {
	display: block;
	margin-bottom: 5px;
	color: var(--pink);
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
}

.related-news-item strong {
	display: block;
	color: var(--text);
	font-size: 13px;
	line-height: 1.35;
}

.single-news-navigation {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
	margin-top: 48px;
	padding-top: 28px;
	border-top: 1px solid var(--border);
}

.single-news-nav-item {
	display: grid;
	grid-template-columns: 74px 1fr;
	gap: 14px;
	align-items: center;
	padding: 16px;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--surface);
}

.single-news-nav-next {
	grid-template-columns: 1fr 74px;
	text-align: right;
}

.single-news-nav-item img {
	width: 74px;
	height: 58px;
	object-fit: cover;
	border-radius: 6px;
}

.single-news-nav-item small {
	display: block;
	margin-bottom: 5px;
	color: var(--muted);
	font-size: 11px;
}

.single-news-nav-item strong {
	display: block;
	color: var(--text);
	font-size: 13px;
	line-height: 1.35;
}

/* ===============================
   SINGLE NEWS PAGE CLEAN FIX
================================ */

.single-news {
	padding: 48px 0 64px;
}

.single-news-layout {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) 330px !important;
	gap: 36px !important;
	align-items: start !important;
}

.single-news-main {
	min-width: 0;
	max-width: 820px;
}

.single-news-title {
	font-family: var(--font-body) !important;
	font-size: clamp(2.4rem, 4vw, 4.2rem) !important;
	line-height: 1.08 !important;
	text-transform: none !important;
	letter-spacing: -0.04em !important;
	margin: 18px 0 18px !important;
}

.single-news-excerpt {
	font-size: 1.15rem !important;
	line-height: 1.6 !important;
	color: var(--muted) !important;
	max-width: 760px;
}

.single-news-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	align-items: center;
	margin: 22px 0 28px;
	color: var(--muted);
	font-size: 13px;
}

.single-news-image {
	margin: 0 0 32px !important;
}

.single-news-image img {
	width: 100%;
	max-height: 520px;
	object-fit: contain;
	border-radius: var(--radius);
	background: #050817;
}

.single-news-content {
	font-size: 17px !important;
	line-height: 1.85 !important;
	color: var(--text);
}

.single-news-content p {
	margin-bottom: 22px !important;
	color: var(--text);
}

.single-news-content h2 {
	font-family: var(--font-body) !important;
	font-size: 1.8rem !important;
	line-height: 1.25 !important;
	margin: 42px 0 16px !important;
	text-transform: none !important;
}

.single-news-content h3 {
	font-family: var(--font-body) !important;
	font-size: 1.35rem !important;
	line-height: 1.3 !important;
	margin: 34px 0 14px !important;
	text-transform: none !important;
}

.single-news-badge {
	display: inline-flex;
	padding: 6px 12px;
	border-radius: 999px;
	background: rgba(143,53,255,.18);
	border: 1px solid rgba(243,43,198,.45);
	color: #fff;
	font-size: 12px;
	font-weight: 900;
	text-transform: uppercase;
}

body.theme-light .single-news-badge {
	background: rgba(143, 53, 255, 0.09);
	border-color: #8f35ff;
	color: #5f1fc4;
}

.single-news-sidebar {
	position: sticky;
	top: 120px;
	display: grid;
	gap: 22px;
}

.single-news-tags {
	margin-top: 36px;
	padding-top: 24px;
	border-top: 1px solid var(--border);
}

.single-news-tags strong {
	margin-right: 10px;
}

.single-news-tags a {
	display: inline-flex;
	margin: 6px 6px 0 0;
	padding: 6px 12px;
	border-radius: 999px;
	border: 1px solid var(--border);
	background: rgba(255,255,255,.05);
	color: var(--text);
	font-size: 13px;
}

.single-news-navigation {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
	margin-top: 42px;
	padding-top: 28px;
	border-top: 1px solid var(--border);
}

@media (max-width: 1040px) {
	.single-news-layout {
		grid-template-columns: 1fr !important;
	}

	.single-news-main {
		max-width: none;
	}

	.single-news-sidebar {
		position: static;
	}
}

@media (max-width: 720px) {
	.single-news-title {
		font-size: 2.2rem !important;
	}

	.single-news-navigation {
		grid-template-columns: 1fr;
	}
}

.history-decade-nav{
	display:flex;
	flex-wrap:wrap;
	gap:12px;
	margin-top:20px;
}

.history-decade-button{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:12px 20px;
	border-radius:999px;
	background:var(--surface);
	border:1px solid var(--border);
	font-weight:700;
	transition:.25s;
}

.history-decade-button:hover{
	background:var(--pink);
	color:#fff;
}

.history-decade-section {
	margin-bottom: 60px;
	scroll-margin-top: 120px;
}

.history-decade-title {
	font-family: var(--font-display);
	font-size: 3rem;
	margin: 0 0 24px;
	color: var(--pink);
}

/* ===============================
   HISTORY PAGE POC LAYOUT
================================ */

.history-pill-nav .quick-card {
	min-height: 90px;
}

.history-beginning-card {
	display: grid;
	grid-template-columns: 1fr 42% 260px;
	gap: 28px;
	align-items: center;
	padding: 28px;
}

.history-beginning-image img {
	width: 100%;
	height: 260px;
	object-fit: cover;
	border-radius: var(--radius);
}

.history-beginning-facts {
	display: grid;
	gap: 16px;
	padding: 22px;
	border-radius: var(--radius);
	background: rgba(143,53,255,.16);
}

.history-beginning-facts strong {
	display: block;
	font-size: 1.4rem;
	color: var(--pink);
}

.history-beginning-facts span {
	font-size: 12px;
	text-transform: uppercase;
	color: var(--muted);
}

.history-horizontal-timeline {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 220px;
	gap: 18px;
	overflow-x: auto;
	padding: 20px 4px 28px;
	scroll-snap-type: x mandatory;
}

.history-time-card {
	scroll-snap-align: start;
	display: grid;
	gap: 12px;
	padding: 16px;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--surface);
}

.history-time-card strong {
	color: var(--pink);
	font-size: 1.1rem;
}

.history-time-card img {
	width: 100%;
	height: 96px;
	object-fit: cover;
	border-radius: 6px;
}

.history-time-card h3 {
	margin: 0;
	font-size: 1rem;
	line-height: 1.25;
}

.history-time-card p {
	margin: 0;
	color: var(--muted);
	font-size: .9rem;
}

.history-two-column {
	display: grid;
	grid-template-columns: minmax(0,1fr) 330px;
	gap: 24px;
}

.history-panel {
	padding: 24px;
}

.history-winner-grid,
.history-moments-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0,1fr));
	gap: 16px;
}

.history-winner-card,
.history-moment-card {
	display: block;
	width: 100%;
	padding: 0;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	overflow: hidden;
	background: rgba(255,255,255,.03);
	color: var(--text);
	font: inherit;
	text-align: left;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
}

.history-winner-card h3,
.history-moment-card h3 {
	color: var(--text);
}

.history-winner-card p,
.history-moment-card p {
	color: var(--muted);
}

.history-winner-card img,
.history-moment-thumb img {
	width: 100%;
	height: 125px;
	object-fit: cover;
}

.history-winner-card h3,
.history-moment-card h3 {
	margin: 12px 12px 4px;
	font-size: 1rem;
	line-height: 1.25;
}

.history-winner-card p,
.history-moment-card p {
	margin: 0 12px 14px;
	color: var(--muted);
	font-size: .9rem;
}

.history-facts-card ul {
	margin: 18px 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 16px;
}

.history-facts-card li {
	padding-left: 28px;
	position: relative;
	color: var(--muted);
}

.history-facts-card li::before {
	content: "★";
	position: absolute;
	left: 0;
	color: var(--pink);
}

.history-moment-thumb {
	position: relative;
}

@media (max-width: 1040px) {
	.history-beginning-card,
	.history-two-column {
		grid-template-columns: 1fr;
	}

	.history-winner-grid,
	.history-moments-grid {
		grid-template-columns: repeat(2, minmax(0,1fr));
	}
}

@media (max-width: 720px) {
	.history-winner-grid,
	.history-moments-grid {
		grid-template-columns: 1fr;
	}
}

.history-horizontal-timeline {
	position: relative;
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 190px;
	gap: 28px;
	overflow-x: auto;
	padding:38px 10px 20px;
	scroll-snap-type: x mandatory;
}

.history-horizontal-timeline::before {
	content: "";
	position: absolute;
	top: 32px;
	left: 95px;
	width: calc((190px + 28px) * var(--timeline-items, 1) - 28px);
	height: 2px;
	background: linear-gradient(90deg, var(--pink), var(--purple), var(--blue), var(--cyan));
}

.history-time-card {
	position: relative;
	scroll-snap-align: start;
	display: grid;
	gap: 10px;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}

.history-time-card::before {
	content: "";
	position: absolute;
	top: -29px;
	left: 50%;
	width: 16px;
	height: 16px;
	transform: translateX(-50%);
	border-radius: 50%;
	background: var(--pink);
	box-shadow: 0 0 0 7px rgba(243,43,198,.2);
	z-index: 2;
}

.history-time-card strong {
	display: block;
	text-align: center;
	color: var(--pink);
	font-size: 1rem;
	font-weight: 900;
}

.history-time-card img {
	width: 100%;
	height: 88px;
	object-fit: cover;
	border-radius: 6px;
}

.history-time-card h3 {
	margin: 0;
	font-size: .95rem;
	line-height: 1.25;
}

.history-time-card p {
	margin: 0;
	color: var(--muted);
	font-size: .86rem;
	line-height: 1.45;
}

.history-time-card .btn {
	width: 100%;
	min-height: 34px;
	margin-top: 4px;
	font-size: 11px;
}

.history-timeline-wrapper{
    position:relative;
    padding:32px;
    border-radius:var(--radius);
    background:var(--surface);
    border:1px solid var(--border);
    overflow:hidden;
}

/* Timeline Navigation */

.timeline-arrow{
	position:absolute;
	top:50%;
	transform:translateY(-50%);
	width:48px;
	height:48px;
	border:none;
	border-radius:50%;
	background:rgba(18,18,45,.95);
	border:1px solid var(--border);
	color:#fff;
	font-size:24px;
	cursor:pointer;
	display:flex;
	align-items:center;
	justify-content:center;
	z-index:20;
	transition:.25s;
	box-shadow:0 6px 20px rgba(0,0,0,.35);
}

.timeline-arrow:hover{
	background:linear-gradient(135deg,var(--pink),var(--purple));
	transform:translateY(-50%) scale(1.08);
}

.timeline-prev{
	left:14px;
}

.timeline-next{
	right:14px;
}

/* Give the timeline room so arrows don't cover cards */

.history-horizontal-timeline{
	padding-left:70px !important;
	padding-right:70px !important;
}

.timeline-arrow.is-disabled {
	opacity: .28;
	pointer-events: none;
}

.history-horizontal-timeline {
	scrollbar-width: thin;
	scrollbar-color: var(--pink) rgba(255,255,255,.08);
}

.history-horizontal-timeline::-webkit-scrollbar {
	height: 8px;
}

.history-horizontal-timeline::-webkit-scrollbar-track {
	background: rgba(255,255,255,.08);
	border-radius: 999px;
}

.history-horizontal-timeline::-webkit-scrollbar-thumb {
	background: var(--gradient);
	border-radius: 999px;
}

.history-horizontal-timeline::-webkit-scrollbar-thumb:hover {
	background: var(--pink);
}

.history-year-toggle {
	border: 0;
	background: transparent;
	color: var(--pink);
	font-size: 1.1rem;
	font-weight: 900;
	cursor: pointer;
	padding: 0;
	text-align: center;
}

.history-year-toggle:hover {
	color: var(--cyan);
}

.history-modal[hidden] {
	display: none;
}

.history-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: grid;
	place-items: center;
	padding: 24px;
}

.history-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,.72);
	backdrop-filter: blur(8px);
}

.history-modal-box {
	position: relative;
	z-index: 1;
	width: min(760px, 100%);
	max-height: 84vh;
	overflow: auto;
	padding: 28px;
	border: 1px solid rgba(243,43,198,.45);
	border-radius: 18px;
	background: linear-gradient(145deg, rgba(20,24,60,.98), rgba(38,20,75,.98));
	box-shadow: 0 30px 90px rgba(0,0,0,.55);
}

.history-modal-close {
	position: absolute;
	top: 14px;
	right: 16px;
	border: 0;
	background: transparent;
	color: var(--pink);
	font-size: 32px;
	font-weight: 900;
	cursor: pointer;
}

.history-modal-body h3 {
	margin: 0 40px 18px 0;
	font-size: 2rem;
	line-height: 1.2;
	text-transform: none;
}

.history-modal-image img {
	width: 100%;
	max-height: 320px;
	object-fit: cover;
	border-radius: var(--radius);
	margin-bottom: 18px;
}

.history-modal-body p {
	color: var(--muted);
	font-size: 1rem;
	line-height: 1.75;
}

/* History modals always use a dark background.
   Keep their text readable when the website is in light mode. */

body.theme-light .history-modal-box {
	color: #ffffff;
}

body.theme-light .history-modal-body h1,
body.theme-light .history-modal-body h2,
body.theme-light .history-modal-body h3,
body.theme-light .history-modal-body h4,
body.theme-light .history-modal-body h5,
body.theme-light .history-modal-body h6 {
	color: #ffffff;
}

body.theme-light .history-modal-body p,
body.theme-light .history-modal-body li,
body.theme-light .history-modal-body blockquote {
	color: rgba(255, 255, 255, 0.78);
}

body.theme-light .history-modal-body strong {
	color: #ffffff;
}

body.theme-light .history-modal-body .history-event-country,
body.theme-light .history-modal-body .meta {
	color: rgba(255, 255, 255, 0.68);
}

body.theme-light .history-modal-box .related-modal-videos h4,
body.theme-light .history-modal-box .related-modal-card h5 {
	color: #ffffff;
}

body.theme-light .history-modal-box .related-modal-card p {
	color: rgba(255, 255, 255, 0.72);
}

body.theme-light .history-modal-box .related-modal-videos {
	border-top-color: rgba(255, 255, 255, 0.14);
}

body.theme-light .history-modal-box .related-modal-card {
	border-color: rgba(255, 255, 255, 0.14);
	background: rgba(255, 255, 255, 0.05);
}

body.history-modal-open {
	overflow: hidden;
}

.history-event-country {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-top: 4px;
	color: var(--muted);
	font-size: .82rem;
	font-weight: 700;
}

.history-event-country img {
	width: 22px;
	height: 15px;
	object-fit: cover;
	border-radius: 2px;
}

.history-modal-video {
	margin: 18px 0;
	overflow: hidden;
	border-radius: var(--radius);
}

.history-modal-video iframe {
	width: 100%;
	aspect-ratio: 16 / 9;
	height: auto;
	border: 0;
}

.video-load-more-wrap {
	margin-top: 32px;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	gap: 16px;
}

.related-modal-videos {
	margin-top: 28px;
	padding-top: 22px;
	border-top: 1px solid var(--border);
}

.related-modal-videos h4 {
	margin: 0 0 16px;
	font-size: 1rem;
	font-weight: 900;
	text-transform: uppercase;
	color: var(--text);
}

.related-modal-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.related-modal-card {
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: rgba(255,255,255,.04);
	overflow: hidden;
}

.related-modal-card img {
	width: 100%;
	aspect-ratio: 16 / 9;
	height: auto;
	object-fit: contain;
	background: #050817;
}

.related-modal-card h5 {
	margin: 10px 10px 4px;
	font-size: .9rem;
	line-height: 1.25;
	color: var(--text);
}

.related-modal-card p {
	margin: 0 10px 12px;
	font-size: .8rem;
	color: var(--muted);
}

@media (max-width: 720px) {
	.related-modal-grid {
		grid-template-columns: 1fr;
	}
}

.video-search-form {
	margin: 24px 0 32px;
}

.video-search-form input {
	width: 100%;
}

/* ===============================
   HOME PAGE LIVE DATA LAYOUT
================================ */

.home-dashboard-section {
	padding: 28px 0 44px;
}

.home-dashboard-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	align-items: stretch;
}

.home-box {
	padding: 24px;
	min-width: 0;
	overflow: hidden;
}

.home-news-list,
.home-video-list,
.home-events-list {
	display: grid;
	gap: 18px;
}

.home-news-item,
.home-video-item {
	display: grid;
	grid-template-columns: 150px minmax(0, 1fr);
	gap: 16px;
	align-items: center;
}

.home-news-thumb,
.home-video-thumb {
	position: relative;
	display: block;
	width: 150px;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border: 0;
	border-radius: 6px;
	background: #050817;
	padding: 0;
	cursor: pointer;
}

.home-news-thumb img,
.home-video-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.home-news-item h3,
.home-video-item h3 {
	margin: 0 0 6px;
	font-size: 16px;
	line-height: 1.25;
}

.home-news-item p,
.home-video-item p {
	margin: 0 0 6px;
	color: var(--muted);
	font-size: 13px;
	line-height: 1.45;
}

.home-news-item span {
	color: var(--pink);
	font-size: 12px;
	font-weight: 800;
}

.home-ranking-list {
	display: grid;
	gap: 12px;
	margin: 0 0 22px;
	padding: 0;
	list-style: none;
}

.home-ranking-list li {
	display: grid;
	grid-template-columns: 24px 32px minmax(0, 1fr) 32px;
	gap: 10px;
	align-items: center;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--border);
}

.home-ranking-list img {
	width: 32px;
	height: 22px;
	object-fit: cover;
	border-radius: 3px;
}

.home-ranking-list button {
	border: 0;
	background: transparent;
	color: var(--text);
	font-size: 22px;
	cursor: pointer;
}

.home-event-item {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	gap: 16px;
	align-items: center;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--border);
}

.home-event-date {
	display: grid;
	place-items: center;
	min-height: 72px;
	border: 1px solid var(--border);
	border-radius: 8px;
	background: rgba(255,255,255,.04);
}

.home-event-date strong {
	color: var(--pink);
	font-size: 28px;
	line-height: 1;
}

.home-event-date small {
	color: var(--text);
	font-size: 13px;
	font-weight: 900;
	text-transform: uppercase;
}

.home-event-item > span:last-child strong {
	display: block;
	color: var(--text);
	line-height: 1.25;
}

.home-event-item > span:last-child small {
	display: block;
	margin-top: 5px;
	color: var(--muted);
	font-size: 13px;
	line-height: 1.4;
}

.home-box.countdown-card {
	display: block;
	text-align: center;
}

.home-box.countdown-card img {
	width: min(320px, 100%);
	margin: 22px auto;
}

@media (max-width: 1040px) {
	.home-dashboard-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 720px) {
	.home-news-item,
	.home-video-item {
		grid-template-columns: 1fr;
	}

	.home-news-thumb,
	.home-video-thumb {
		width: 100%;
	}
}

/* Home compact layout corrections */

.home-dashboard-grid {
	align-items: start;
}

.home-dashboard-grid {
	align-items: stretch;
}

.home-box {
	height: auto;
	min-height: 0;
	max-height: none;
}

.home-news-list,
.home-video-list {
	gap: 12px;
}

.home-news-item,
.home-video-item {
	grid-template-columns: 105px minmax(0, 1fr);
	gap: 12px;
}

.home-news-thumb,
.home-video-thumb {
	width: 105px;
}

.home-news-item h3,
.home-video-item h3 {
	font-size: 13px;
	line-height: 1.25;
	margin-bottom: 4px;
}

.home-news-item p {
	display: none;
}

.home-news-item span,
.home-video-item p {
	font-size: 11px;
	line-height: 1.25;
}

.home-box.countdown-card {
	height: auto;
	min-height: 0;
	max-height: none;
	padding: 24px 18px;
}

.home-box.countdown-card .countdown {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 6px;
	margin: 20px 0 16px;
}

.home-box.countdown-card .countdown div {
	padding: 10px 4px;
	min-width: 0;
}

.home-box.countdown-card .countdown strong {
	font-size: 2rem;
}

.home-box.countdown-card .countdown span {
	font-size: 10px;
}

.home-box.countdown-card img {
	width: 240px;
	margin: 18px auto;
}

.home-box.countdown-card p {
	margin-bottom: 14px;
	font-size: 13px;
	line-height: 1.35;
}

/* ===============================
   CALENDAR PAGE
================================ */

.calendar-event-list {
	display: grid;
	gap: 18px;
}

.calendar-event-card {
	display: grid;
	grid-template-columns: 110px minmax(0, 1fr) auto;
	gap: 24px;
	align-items: center;
	padding: 22px;
}

.calendar-event-date {
	display: grid;
	place-items: center;
	min-height: 100px;
	border: 1px solid var(--border);
	border-radius: 10px;
	background: rgba(255,255,255,.04);
	text-align: center;
}

.calendar-event-date strong {
	color: var(--pink);
	font-size: 2.4rem;
	line-height: 1;
}

.calendar-event-date span {
	margin-top: 6px;
	color: var(--text);
	font-size: 12px;
	font-weight: 900;
	text-transform: uppercase;
}

.calendar-event-content h2 {
	margin: 10px 0 8px;
	font-size: 1.35rem;
	line-height: 1.25;
}

.calendar-event-content p {
	margin: 12px 0 0;
	color: var(--muted);
}

.calendar-event-action {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
}

@media (max-width: 900px) {
	.calendar-event-card {
		grid-template-columns: 90px minmax(0, 1fr);
	}

.calendar-event-action {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: flex-end;
    justify-content: center;
}

.calendar-map-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 170px;
}

.calendar-map-button i {
    font-size: 15px;
}

@media (max-width: 768px) {
    .calendar-event-action {
        align-items: stretch;
    }

    .calendar-map-button,
    .calendar-event-action .btn {
        width: 100%;
    }
}
}

@media (max-width: 620px) {
	.calendar-event-card {
		grid-template-columns: 1fr;
	}

	.calendar-event-date {
		width: 110px;
	}
}

/* ===============================
   NATIONAL SELECTIONS PAGE
================================ */

.national-selections-page {
	padding: 52px 0 64px;
}

.national-selections-header{
	display:flex;
	justify-content:flex-end;
	align-items:flex-end;
	margin-bottom:28px;
}

.national-selections-header h1 {
	margin: 0 0 14px;
	font-family: var(--font-display);
	font-size: clamp(3rem, 7vw, 5.8rem);
	line-height: .95;
	text-transform: uppercase;
}

.national-selections-header h1 span {
	display: block;
	background: var(--gradient);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.national-selections-header p {
	max-width: 700px;
	margin: 0;
	color: var(--muted);
	font-size: 1.05rem;
}

.national-selection-filters {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.national-selection-filters label > span {
	display: block;
	margin-bottom: 7px;
	color: var(--muted);
	font-size: 12px;
	font-weight: 900;
	text-transform: uppercase;
}

.national-selection-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	margin-bottom: 34px;
	padding: 16px 20px;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--surface);
}

.selection-status {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--muted);
	font-size: 13px;
	font-weight: 800;
}

.selection-status i {
	display: inline-block;
	width: 10px;
	height: 10px;
	border-radius: 50%;
}

.selection-status--not-started i {
	background: #9ca3af;
}

.selection-status--in-progress i {
	background: var(--blue);
}

.selection-status--completed i {
	background: var(--green);
}

.national-selection-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 28px 22px;
}

.national-selection-country {
	min-width: 0;
	text-align: center;
}

.national-selection-country > a {
	display: block;
	padding: 22px 14px;
	border: 1px solid var(--border);
	border-radius: 14px;
	background: linear-gradient(
		145deg,
		color-mix(in srgb, var(--surface) 94%, transparent),
		color-mix(in srgb, var(--surface-2) 92%, transparent)
	);
	box-shadow: var(--shadow);
	transition: transform .2s ease, border-color .2s ease;
}

.national-selection-country > a:hover {
	transform: translateY(-8px);
	border-color: rgba(243,43,198,.55);
	box-shadow: 0 20px 45px rgba(0,0,0,.45);
}

.national-selection-country > a {
	transition: .25s ease;
}

.national-selection-country:hover .national-selection-avatar {
	transform: scale(1.05);
	box-shadow: 0 0 25px rgba(210,60,255,.35);
}

.national-selection-avatar {
	transition: .25s ease;
}

.national-selection-avatar {
	display: grid;
	place-items: center;
	width: 150px;
	height: 150px;
	margin: 0 auto 18px;
	overflow: hidden;
	border: 6px solid #9ca3af;
	border-radius: 50%;
	background: rgba(255,255,255,.04);
	box-shadow: 0 16px 40px rgba(0,0,0,.25);
}

.national-selection-avatar--in-progress {
	border-color: var(--blue);
}

.national-selection-avatar--completed {
	border-color: var(--green);
}

.national-selection-avatar span {
	color: var(--muted);
	font-size: 4.5rem;
	font-weight: 900;
	line-height: 1;
}

.national-selection-country h2 {
	margin: 0 0 10px;
	font-size: 1.15rem;
	line-height: 1.2;
}

.national-selection-country .selection-status {
	justify-content: center;
	margin: 0;
	font-size: 12px;
}

.national-selection-note {
	margin: 34px 0 0;
	padding: 18px 22px;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: rgba(255,255,255,.03);
	color: var(--muted);
	text-align: center;
}

.national-selection-country[hidden] {
	display: none;
}

@media (max-width: 1100px) {
	.national-selections-header {
		grid-template-columns: 1fr;
	}

	.national-selection-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (max-width: 850px) {
	.national-selection-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 620px) {
	.national-selection-filters {
		grid-template-columns: 1fr;
	}

	.national-selection-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 18px 12px;
	}

	.national-selection-avatar {
		width: 110px;
		height: 110px;
	}

	.national-selection-country > a {
		padding: 18px 10px;
	}
}

/* National selection flag overlay refinement */

.national-selection-avatar {
	position: relative;
}

.national-selection-flag-image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: .28;
	filter: saturate(.75) brightness(.75);
}

.national-selection-question {
	position: relative;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	color: #fff;
	font-size: 4.5rem;
	font-weight: 900;
	line-height: 1;
	text-shadow: 0 4px 18px rgba(0,0,0,.65);
}

.national-selection-artist-image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* National selection counters */

.national-selection-stats {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	margin-bottom: 20px;
}

.national-selection-stat-card {
	padding: 18px 20px;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--surface);
	text-align: center;
	cursor: pointer;
	transition:
		transform .2s ease,
		border-color .2s ease,
		box-shadow .2s ease,
		background .2s ease;
}

.national-selection-stat-card:hover {
	transform: translateY(-4px);
	border-color: rgba(243, 43, 198, .55);
	background: rgba(255,255,255,.045);
	box-shadow:
		0 14px 30px rgba(0,0,0,.35),
		0 0 18px rgba(243,43,198,.16);
}

.national-selection-stat-card:focus-visible {
	outline: 2px solid var(--pink);
	outline-offset: 3px;
}

.national-selection-stat-card.is-active {
	border-color: var(--pink);
	box-shadow:
		0 12px 28px rgba(0,0,0,.35),
		0 0 20px rgba(243,43,198,.22);
}

.national-selection-stat-card:active {
	transform: translateY(-1px) scale(.99);
}

.national-selection-stat-card strong {
	display: block;
	font-size: 2rem;
	line-height: 1;
	color: var(--pink);
}

.national-selection-stat-card span {
	display: block;
	margin-top: 8px;
	color: var(--muted);
	font-size: 12px;
	font-weight: 900;
	text-transform: uppercase;
}

@media (max-width: 720px) {
	.national-selection-stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.national-selection-date {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin: 6px 0 12px;
	font-size: .82rem;
	color: var(--muted);
	font-weight: 600;
}

.national-selection-calendar-icon {
	width: 15px;
	height: 15px;
	flex: 0 0 15px;
	fill: none;
	stroke: var(--pink);
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* ===============================
   NATIONAL SELECTION DETAILS
================================ */

.selection-detail-page {
	padding: 34px 0 64px;
}

.selection-detail-breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	margin-bottom: 22px;
	color: var(--muted);
	font-size: 13px;
}

.selection-detail-breadcrumbs a {
	color: var(--muted);
}

.selection-detail-breadcrumbs span:last-child {
	color: var(--pink);
}

.selection-detail-hero {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(360px, .8fr);
	min-height: 460px;
	overflow: hidden;
	border: 1px solid var(--border);
	border-radius: 16px;
	background:
		linear-gradient(135deg, rgba(5, 8, 24, .97), rgba(13, 19, 50, .92));
	box-shadow: var(--shadow);
}

.selection-detail-country {
	padding: 42px;
}

.selection-detail-country-title {
	display: flex;
	gap: 22px;
	align-items: center;
}

.selection-detail-country-title img {
	width: 90px;
	height: 62px;
	object-fit: cover;
	border-radius: 8px;
	box-shadow: 0 12px 28px rgba(0,0,0,.35);
}

.selection-detail-country-title h1 {
	margin: 0;
	font-size: clamp(3rem, 7vw, 6rem);
	line-height: .95;
}

.selection-detail-country-title p {
	margin: 10px 0 0;
	color: var(--pink);
	font-size: 1.2rem;
	font-weight: 900;
}

.selection-detail-status {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 24px;
	padding: 9px 13px;
	border: 1px solid var(--border);
	border-radius: 999px;
	background: rgba(255,255,255,.04);
	color: var(--text);
	font-weight: 900;
}

.selection-detail-status i {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #9ca3af;
}

.selection-detail-status--in-progress i {
	background: var(--blue);
}

.selection-detail-status--completed i {
	background: var(--green);
}

.selection-detail-meta {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin-top: 34px;
}

.selection-detail-meta div {
	padding: 16px;
	border: 1px solid var(--border);
	border-radius: 10px;
	background: rgba(255,255,255,.03);
}

.selection-detail-meta span {
	display: block;
	color: var(--muted);
	font-size: 11px;
	font-weight: 900;
	text-transform: uppercase;
}

.selection-detail-meta strong {
	display: block;
	margin-top: 6px;
	font-size: 1rem;
}

.selection-detail-artist {
	position: relative;
	min-height: 460px;
	overflow: hidden;
	background: linear-gradient(180deg, transparent, rgba(4, 6, 18, .86));
}

.selection-detail-artist::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(5,7,20,.05), rgba(5,7,20,.88));
	pointer-events: none;
}

.selection-detail-artist-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.selection-detail-artist-copy {
	position: absolute;
	z-index: 2;
	left: 28px;
	right: 28px;
	bottom: 28px;
}

.selection-detail-artist-label {
	margin: 0 0 8px;
	color: rgba(255,255,255,.78);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
	text-shadow: 0 2px 10px rgba(0,0,0,.8);
}

.selection-detail-artist-copy h2 {
	margin: 0 0 16px;
	font-size: 2.4rem;
}

.selection-detail-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	gap: 22px;
	margin-top: 22px;
}

.selection-detail-main,
.selection-detail-sidebar {
	display: grid;
	gap: 22px;
	align-content: start;
}

.selection-detail-section,
.selection-detail-side-card {
	padding: 26px;
}

.selection-detail-section h2,
.selection-detail-side-card h2 {
	margin: 0 0 18px;
}

.selection-detail-content {
	color: var(--muted);
	line-height: 1.7;
}

.selection-detail-side-card dl {
	display: grid;
	gap: 14px;
	margin: 20px 0;
}

.selection-detail-side-card dl div {
	padding-bottom: 12px;
	border-bottom: 1px solid var(--border);
}

.selection-detail-side-card dt {
	color: var(--muted);
	font-size: 11px;
	font-weight: 900;
	text-transform: uppercase;
}

.selection-detail-side-card dd {
	margin: 5px 0 0;
	color: var(--text);
	font-weight: 800;
}

.selection-detail-logo {
	display: block;
	width: min(220px, 100%);
	max-height: 160px;
	margin: 0 auto 18px;
	object-fit: contain;
}

@media (max-width: 1050px) {
	.selection-detail-hero,
	.selection-detail-layout {
		grid-template-columns: 1fr;
	}

	.selection-detail-artist {
		min-height: 420px;
	}

	.selection-detail-sidebar {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.selection-detail-country {
		padding: 26px;
	}

	.selection-detail-country-title {
		align-items: flex-start;
		flex-direction: column;
	}

	.selection-detail-meta {
		grid-template-columns: 1fr;
	}

	.selection-detail-sidebar {
		grid-template-columns: 1fr;
	}
}

.selection-detail-broadcaster-logo {
	display: block;
	width: min(180px, 100%);
	max-height: 110px;
	margin: 0 auto 16px;
	object-fit: contain;
}

/* Eurovision country voting */
.home-ranking-list .ranking-country.is-hidden {
	display: none;
}

.home-ranking-list .country-vote-button {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
	min-width: 42px;
	padding: 4px 6px;
	overflow: visible;
	border: 0;
	background: transparent;
	color: #ffffff;
	cursor: pointer;
	transition:
		transform 0.2s ease,
		color 0.2s ease,
		opacity 0.2s ease;
}

.home-ranking-list .country-vote-button:hover {
	color: #a855f7;
	transform: scale(1.08);
}

.home-ranking-list .country-vote-button.is-voted {
	color: #a855f7;
}

.home-ranking-list .country-vote-button.is-loading {
	opacity: 0.55;
	cursor: wait;
}

.home-ranking-list .country-vote-heart {
	display: inline-block;
	font-size: 20px;
	line-height: 1;
	transition: transform 0.2s ease;
}

.home-ranking-list .country-vote-button.is-voted .country-vote-heart {
	animation: euroverse-heart-pop 0.35s ease;
}

.home-ranking-list .country-vote-count {
	font-size: 13px;
	color: currentColor;
}

@keyframes euroverse-heart-pop {
	0% {
		transform: scale(1);
	}

	45% {
		transform: scale(1.45);
	}

	100% {
		transform: scale(1);
	}
}

.ranking-winner-card{
    margin-bottom:16px;
    padding:14px;
    border-radius:12px;
}

.winner-label{
    margin-bottom:10px;
    font-size:.70rem;
}

.winner-flag{
    width:56px;
    margin-bottom:10px;
}

.winner-country{
    margin:0 0 12px;
    font-size:1.65rem;
    font-weight:700;
}

.winner-meta{
    margin-bottom:14px;
}

.winner-meta strong{
    font-size:1.1rem;
}

.winner-change-button {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	min-height: 46px;
	padding: 11px 18px;
	overflow: hidden;
    border: 2px solid var(--purple);
	border-radius: 999px;
	background: var(--surface);
	color: var(--text);
	font: inherit;
	font-weight: 700;
	letter-spacing: .01em;
	cursor: pointer;
	box-shadow:
	0 8px 24px rgba(0,0,0,.08);
	transition:
		border-color .25s ease,
		box-shadow .25s ease,
		transform .2s ease;
}

.winner-change-button::before {
	position: absolute;
	top: 0;
	left: -120%;
	width: 70%;
	height: 100%;
	background:
		linear-gradient(
			90deg,
			transparent,
			rgba(255, 255, 255, .22),
			transparent
		);
	content: "";
	pointer-events: none;
	transform: skewX(-20deg);
	transition: left .55s ease;
}

.winner-change-button:hover {
	background: var(--purple);
	color: #fff;
	border-color: var(--purple);
	box-shadow:
		0 12px 30px rgba(123, 63, 228, .28);
	transform: translateY(-2px);
}

.winner-change-button:hover::before {
	left: 150%;
}

.winner-change-button:active {
	transform: translateY(0) scale(.98);
}

.winner-change-button:hover .winner-change-icon,
.winner-change-button:hover .winner-change-arrow {
	color: #fff;
}

.winner-change-icon,
.winner-change-arrow {
	color: var(--purple);
	transition:
		color .25s ease,
		transform .25s ease;
}

.winner-change-icon {
	font-size: .95rem;
	transition:
		transform .25s ease,
		text-shadow .25s ease;
}

.winner-change-button:hover .winner-change-icon {
	text-shadow: 0 0 12px rgba(255, 255, 255, .65);
	transform: rotate(-12deg) scale(1.12);
}

.winner-change-label {
	position: relative;
	z-index: 1;
}

.winner-change-arrow {
	font-size: 1.05rem;
	transition: transform .25s ease;
}

.winner-change-button:hover .winner-change-arrow {
	transform: translateX(4px);
}

.winner-change-button:focus-visible {
	outline: 3px solid rgba(255, 255, 255, .45);
	outline-offset: 3px;
}

.winner-change-button:active {
	transform: translateY(0) scale(.98);
}

.ranking-winner-card {
	opacity: 1;
	transform: translateY(0);
	max-height: 500px;
	transition:
		opacity 0.25s ease,
		transform 0.25s ease,
		max-height 0.35s ease,
		margin 0.35s ease,
		padding 0.35s ease,
		border-width 0.35s ease;
}

.ranking-winner-card.is-changing {
	opacity: 0;
	transform: translateY(8px) scale(.98);
}

.ranking-winner-card.is-visible {
	opacity: 1;
	transform: translateY(0) scale(1);
}

.ranking-winner-card.is-visible {
	animation: euroverse-winner-card-in 0.35s ease;
}

.ranking-winner-card.is-collapsed {
	max-height: 0;
	margin-top: 0;
	margin-bottom: 0;
	padding-top: 0;
	padding-bottom: 0;
	border-width: 0;
	opacity: 0;
	overflow: hidden;
	pointer-events: none;
	transform: translateY(-8px);
}

.country-vote-count.is-updating,
[data-winner-votes].is-updating {
	display: inline-block;
	animation: euroverse-vote-count 0.35s ease;
}

@keyframes euroverse-winner-card-in {
	0% {
		opacity: 0;
		transform: translateY(-8px) scale(.98);
	}

	100% {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

@keyframes euroverse-vote-count {
	0% {
		opacity: .4;
		transform: scale(.75);
	}

	55% {
		opacity: 1;
		transform: scale(1.25);
	}

	100% {
		opacity: 1;
		transform: scale(1);
	}
}

.home-ranking-list .country-vote-button::before,
.home-ranking-list .country-vote-button::after {
	position: absolute;
	top: 50%;
	left: 14px;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	content: "";
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, -50%) scale(0);
}

.home-ranking-list .country-vote-button::before {
	box-shadow:
		0 -17px 0 var(--pink),
		12px -12px 0 var(--purple),
		17px 0 0 var(--blue),
		12px 12px 0 var(--cyan),
		0 17px 0 var(--pink),
		-12px 12px 0 var(--purple),
		-17px 0 0 var(--blue),
		-12px -12px 0 var(--cyan);
}

.home-ranking-list .country-vote-button::after {
	width: 24px;
	height: 24px;
	border: 2px solid var(--pink);
	background: transparent;
}

.home-ranking-list .country-vote-button.is-bursting::before {
	animation: euroverse-heart-particles 0.6s ease-out;
}

.home-ranking-list .country-vote-button.is-bursting::after {
	animation: euroverse-heart-ring 0.5s ease-out;
}

.home-ranking-list .country-vote-button.is-bursting
.country-vote-heart {
	animation: euroverse-heart-burst 0.55s ease;
}

@keyframes euroverse-heart-burst {
	0% {
		transform: scale(1);
	}

	25% {
		transform: scale(.75);
	}

	55% {
		transform: scale(1.65) rotate(-8deg);
	}

	75% {
		transform: scale(.92) rotate(4deg);
	}

	100% {
		transform: scale(1) rotate(0);
	}
}

@keyframes euroverse-heart-particles {
	0% {
		opacity: 0;
		transform: translate(-50%, -50%) scale(.2);
	}

	25% {
		opacity: 1;
	}

	100% {
		opacity: 0;
		transform: translate(-50%, -50%) scale(1.35);
	}
}

@keyframes euroverse-heart-ring {
	0% {
		opacity: .9;
		transform: translate(-50%, -50%) scale(.25);
	}

	100% {
		opacity: 0;
		transform: translate(-50%, -50%) scale(1.55);
	}
}

.home-ranking-list .ranking-country {
	opacity: 1;
	transform: translateY(0);
	transition:
		opacity .25s ease,
		transform .25s ease;
}

.home-ranking-list .ranking-country.is-row-visible {
	animation: euroverse-ranking-row-in .32s ease both;
}

@keyframes euroverse-ranking-row-in {
	0% {
		opacity: 0;
		transform: translateY(8px);
	}

	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Rankings page */

.euroverse-rankings-page {
	padding-bottom: 80px;
}

.rankings-hero {
	padding: 72px 0 44px;
	text-align: center;
}

.rankings-eyebrow {
	margin: 0 0 10px;
	color: var(--purple);
	font-size: .85rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.rankings-hero h1 {
	margin: 0;
	font-size: clamp(2.2rem, 5vw, 4.6rem);
	line-height: 1;
}

.rankings-intro {
	max-width: 680px;
	margin: 18px auto 0;
	color: var(--muted);
	font-size: 1.05rem;
	line-height: 1.7;
}

.rankings-summary {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	max-width: 900px;
	margin: 34px auto 0;
}

.rankings-summary-card {
	padding: 20px;
	border: 1px solid var(--border);
	border-radius: 18px;
	background: var(--surface);
	box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
}

.rankings-summary-card span {
	display: block;
	margin-bottom: 8px;
	color: var(--muted);
	font-size: .82rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.rankings-summary-card strong {
	font-size: 1.35rem;
}

/* Podium */

.rankings-podium {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: end;
	gap: 20px;
	max-width: 1100px;
	margin: 20px auto 48px;
}

.podium-card {
	position: relative;
	padding: 34px 24px 28px;
	overflow: hidden;
	border: 1px solid var(--border);
	border-radius: 24px;
	background: var(--surface);
	text-align: center;
	box-shadow: 0 16px 45px rgba(0, 0, 0, .08);
	transition:
		transform .25s ease,
		box-shadow .25s ease,
		border-color .25s ease;
}

.podium-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 22px 55px rgba(0, 0, 0, .12);
}

.podium-1 {
	order: 2;
	min-height: 360px;
	border-color: rgba(255, 193, 7, .45);
}

.podium-2 {
	order: 1;
	min-height: 320px;
	border-color: rgba(192, 192, 192, .5);
}

.podium-3 {
	order: 3;
	min-height: 300px;
	border-color: rgba(205, 127, 50, .45);
}

.podium-card::before {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(
			circle at top,
			rgba(123, 63, 228, .12),
			transparent 58%
		);
	content: "";
	pointer-events: none;
}

.podium-medal {
	position: relative;
	z-index: 1;
	margin-bottom: 18px;
	font-size: 2.2rem;
	line-height: 1;
}

.podium-card img {
	position: relative;
	z-index: 1;
	display: block;
	width: 110px;
	height: 74px;
	margin: 0 auto 20px;
	border-radius: 10px;
	object-fit: cover;
	box-shadow: 0 8px 24px rgba(0, 0, 0, .18);
}

.podium-card h2 {
	position: relative;
	z-index: 1;
	margin: 0 0 12px;
	font-size: 1.35rem;
}

.podium-card h2 a {
	color: inherit;
	text-decoration: none;
}

.podium-card strong {
	position: relative;
	z-index: 1;
	display: block;
	font-size: 1.65rem;
}

.podium-card > span {
	position: relative;
	z-index: 1;
	color: var(--muted);
	font-size: .9rem;
}

/* Ranking list */

.rankings-list {
	display: grid;
	gap: 14px;
	max-width: 1100px;
	margin: 0 auto;
}

.rankings-country-card {
	display: grid;
	grid-template-columns: 76px 72px minmax(0, 1fr) auto;
	align-items: center;
	gap: 18px;
	padding: 18px 22px;
	border: 1px solid var(--border);
	border-radius: 18px;
	background: var(--surface);
	box-shadow: 0 8px 28px rgba(0, 0, 0, .05);
	transition:
		transform .22s ease,
		border-color .22s ease,
		box-shadow .22s ease;
}

.rankings-country-card:hover {
	border-color: var(--purple);
	box-shadow: 0 14px 34px rgba(0, 0, 0, .09);
	transform: translateY(-3px);
}

.rankings-country-card.is-selected {
	border-color: var(--purple);
	box-shadow:
		0 0 0 2px rgba(123, 63, 228, .14),
		0 14px 34px rgba(0, 0, 0, .09);
}

.rankings-position {
	color: var(--purple);
	font-size: 1.15rem;
	font-weight: 800;
}

.rankings-country-flag {
	width: 64px;
	height: 42px;
	border-radius: 8px;
	object-fit: cover;
	box-shadow: 0 6px 16px rgba(0, 0, 0, .14);
}

.rankings-country-info {
	min-width: 0;
}

.rankings-country-info h2 {
	margin: 0 0 4px;
	font-size: 1.1rem;
}

.rankings-country-info h2 a {
	color: inherit;
	text-decoration: none;
}

.rankings-country-info span {
	color: var(--muted);
	font-size: .92rem;
}

.rankings-vote-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;

	min-width: 140px;
	height: 44px;

	padding: 0 18px;

	border: 2px solid var(--purple);
	border-radius: 999px;

	background: transparent;
	color: var(--text);

	font-weight: 700;
	cursor: pointer;

	transition: .25s;
}

.rankings-vote-button:hover {
	background: var(--purple);
	color: #fff;
	transform: translateY(-2px);
}

.rankings-vote-button.is-voted {
	background: var(--purple);
	color: #fff;
}

@media (max-width: 800px) {
	.rankings-summary {
		grid-template-columns: 1fr;
	}

	.rankings-podium {
		grid-template-columns: 1fr;
		align-items: stretch;
	}

	.podium-1,
	.podium-2,
	.podium-3 {
		order: initial;
		min-height: auto;
	}

	.podium-1 {
		order: 1;
	}

	.podium-2 {
		order: 2;
	}

	.podium-3 {
		order: 3;
	}

	.rankings-country-card {
		grid-template-columns: 54px 58px minmax(0, 1fr) auto;
		gap: 12px;
		padding: 15px 16px;
	}

	.rankings-country-flag {
		width: 52px;
		height: 34px;
	}
}

/* Rankings page — dark mode contrast */

body.theme-dark .rankings-summary-card,
body.theme-dark .podium-card,
body.theme-dark .rankings-country-card {
	background:
		linear-gradient(
			145deg,
			rgba(20, 25, 62, .96),
			rgba(10, 14, 38, .96)
		);
	border-color: rgba(255, 255, 255, .12);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, .045),
		0 14px 36px rgba(0, 0, 0, .3);
}

body.theme-dark .rankings-summary-card {
	background:
		linear-gradient(
			145deg,
			rgba(30, 25, 74, .96),
			rgba(12, 16, 43, .96)
		);
}

body.theme-dark .rankings-country-card:hover {
	border-color: var(--purple);
	background:
		linear-gradient(
			145deg,
			rgba(52, 28, 96, .96),
			rgba(18, 22, 55, .96)
		);
	box-shadow:
		0 16px 38px rgba(0, 0, 0, .38);
}

body.theme-dark .rankings-country-card.is-selected {
	border-color: var(--purple);
	background:
		linear-gradient(
			145deg,
			rgba(60, 30, 110, .96),
			rgba(20, 24, 60, .96)
		);
	box-shadow:
		0 0 0 2px rgba(143, 53, 255, .2),
		0 16px 38px rgba(0, 0, 0, .38);
}

body.theme-dark .podium-1 {
	border-color: rgba(255, 193, 7, .52);
}

body.theme-dark .podium-2 {
	border-color: rgba(210, 218, 230, .38);
}

body.theme-dark .podium-3 {
	border-color: rgba(205, 127, 50, .5);
}

.rankings-favourite-summary {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.rankings-change-favourite {
	margin-top: 12px;
	padding: 7px 14px;
	border: 1px solid var(--purple);
	border-radius: 999px;
	background: transparent;
	color: var(--text);
	font-size: 12px;
	font-weight: 800;
	cursor: pointer;
	transition:
		background .2s ease,
		color .2s ease,
		transform .2s ease;
}

.rankings-change-favourite:hover {
	background: var(--purple);
	color: #fff;
	transform: translateY(-1px);
}

.rankings-change-favourite[hidden] {
	display: none;
}

.rankings-country-card.is-entering {
	animation: rankings-card-enter 450ms
		cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes rankings-card-enter {
	from {
		opacity: 0;
		transform: translateY(18px) scale(0.98);
	}

	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

@media (prefers-reduced-motion: reduce) {
	.rankings-country-card,
	.rankings-country-card.is-entering {
		animation: none !important;
		transition: none !important;
	}
}

.podium-card {
	transition:
		transform .45s ease,
		opacity .35s ease,
		box-shadow .35s ease;
}

.podium-card.is-changing {
	opacity: .35;
	transform: translateY(16px) scale(.97);
}

.podium-card.is-visible {
	animation: podiumReveal .45s ease;
}

@keyframes podiumReveal {

	from {
		opacity: .35;
		transform: translateY(-10px) scale(.97);
	}

	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}

}

.artist-modal-info-card {
	padding: 18px;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.05);
}

.artist-modal-card-title {
	margin: 0 0 16px;
	font-size: 1rem;
	font-weight: 900;
	line-height: 1.25;
	letter-spacing: 0.04em;
	text-transform: none;
	color: var(--text);
}

/*
|--------------------------------------------------------------------------
| Achievements
|--------------------------------------------------------------------------
*/

.artist-achievements-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}

.artist-achievement-item {
	display: grid;
	gap: 5px;
	min-width: 0;
	padding: 12px;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.055);
}

.artist-achievement-label {
	font-size: 0.68rem;
	font-weight: 700;
	line-height: 1.3;
	color: rgba(255, 255, 255, 0.58);
}

.artist-achievement-value {
	font-size: 1.08rem;
	font-weight: 900;
	line-height: 1.2;
	color: var(--text);
}

/*
|--------------------------------------------------------------------------
| Eurovision participations
|--------------------------------------------------------------------------
*/

.artist-participation-list {
	display: grid;
	gap: 12px;
}

.artist-participation-item {
	display: grid;
	gap: 7px;
	padding: 13px;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.055);
}

.artist-participation-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}

.artist-participation-year {
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	color: rgba(255, 255, 255, 0.68);
}

.artist-participation-winner {
	display: inline-flex;
	align-items: center;
	padding: 4px 8px;
	border-radius: 999px;
	font-size: 0.68rem;
	font-weight: 800;
	line-height: 1;
	text-transform: uppercase;
	background: rgba(255, 213, 79, 0.15);
	color: #ffd54f;
}

.artist-participation-song {
	font-size: 0.95rem;
	line-height: 1.35;
	color: #fff;
}

.artist-participation-details {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 7px;
	margin-top: 4px;
}

.artist-participation-country,
.artist-participation-result,
.artist-participation-points {
	display: grid;
	gap: 3px;
	min-width: 0;
	padding: 8px;
	border-radius: 9px;
	background: rgba(255, 255, 255, .045);
}

.artist-participation-detail-label {
	color: rgba(255, 255, 255, .48);
	font-size: .6rem;
	font-weight: 700;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: .05em;
}

.artist-participation-details strong {
	overflow: hidden;
	color: var(--text);
	font-size: .72rem;
	font-weight: 800;
	line-height: 1.25;
	text-overflow: ellipsis;
	white-space: nowrap;
}

@media (max-width: 640px) {
	.artist-achievements-grid {
		grid-template-columns: 1fr;
	}

	.artist-participation-details {
	grid-template-columns: 1fr;
}

}

.artist-modal-info-card {
	transition:
		border-color .2s ease,
		background .2s ease,
		transform .2s ease,
		box-shadow .2s ease;
}

.artist-modal-info-card:hover {
	border-color: rgba(243, 43, 198, .45);
	background: rgba(255, 255, 255, .065);
	box-shadow: 0 14px 34px rgba(0, 0, 0, .22);
	transform: translateY(-2px);
}

.artist-achievement-item,
.artist-participation-item {
	transition:
		background .2s ease,
		border-color .2s ease,
		transform .2s ease;
}

.artist-achievement-item:hover,
.artist-participation-item:hover {
	background: rgba(255, 255, 255, .085);
	transform: translateY(-1px);
}

/* =========================================================
   Host Edition – Hero
   ========================================================= */

.host-edition-page {
	background: #050817;
	color: #ffffff;
	overflow: hidden;
}

.host-edition-container {
	width: min(1800px, calc(100% - 32px));
	margin-inline: auto;
}

/* Hero uses a slightly wider container */
.host-hero .host-edition-container {
	transform: translateX(-20px);
}

.host-hero {
	position: relative;
	display: flex;
	align-items: center;

	height: 620px;
	min-height: 620px;
	max-height: 620px;

	background-color: #091126;
	background-position: center 38%;
	background-repeat: no-repeat;
	background-size: cover;

	isolation: isolate;
}

@media (max-width: 1200px) {
	.host-hero {
		height: 560px;
		min-height: 560px;
		max-height: 560px;
	}
}

@media (max-width: 768px) {
	.host-hero {
		height: 500px;
		min-height: 500px;
		max-height: 500px;
	}
}

@media (max-width: 600px) {
	.host-hero {
		height: 460px;
		min-height: 460px;
		max-height: 460px;
	}
}

.host-hero__overlay {
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(
			90deg,
			rgba(3, 7, 22, 0.88) 0%,
			rgba(3, 7, 22, 0.68) 34%,
			rgba(3, 7, 22, 0.30) 67%,
			rgba(3, 7, 22, 0.12) 100%
		),
		linear-gradient(
			0deg,
			rgba(3, 7, 22, 0.78) 0%,
			transparent 40%
		);
}

.host-hero__content {
	position: relative;
	z-index: 1;
	padding-block: 90px;
}

.host-hero__eyebrow {
	margin: 0 0 8px;
	color: #ffffff;
	font-size: clamp(1rem, 1.4vw, 1.35rem);
	font-weight: 700;
	line-height: 1.3;
}

.host-hero__title {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0;
	max-width: 720px;
	margin: 0;
	color: #ffffff;
	font-family: inherit;
	line-height: 0.95;
	text-transform: none;
}

.host-hero__year {
	display: block;
	color: #ec3f82;
	font-size: clamp(5rem, 10vw, 9.5rem);
	font-weight: 900;
	letter-spacing: -0.07em;
	line-height: 0.85;
}

.host-hero__location {
	display: block;
	margin-top: 18px;
	color: #ffffff;
	font-size: clamp(2.2rem, 4vw, 4.4rem);
	font-weight: 800;
	letter-spacing: -0.04em;
	line-height: 1;
}

.host-hero__dates {
	margin: 20px 0 0;
	color: #ffffff;
	font-size: clamp(1rem, 1.4vw, 1.3rem);
	font-weight: 600;
}

.host-hero__intro {
	max-width: 680px;
	margin: 22px 0 0;
	color: rgba(255, 255, 255, 0.82);
	font-size: 1.05rem;
	line-height: 1.7;
}

.host-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 30px;
}

.host-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 12px 22px;
	border: 1px solid transparent;
	border-radius: 9px;
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	transition:
		transform 180ms ease,
		background-color 180ms ease,
		border-color 180ms ease;
}

.host-button:hover {
	transform: translateY(-2px);
	text-decoration: none;
}

.host-button--primary {
	background: #ec3f82;
	color: #ffffff;
}

.host-button--primary:hover {
	background: #d82f70;
	color: #ffffff;
}

.host-button--secondary {
	border-color: rgba(255, 255, 255, 0.55);
	background: rgba(4, 8, 24, 0.54);
	color: #ffffff;
	backdrop-filter: blur(8px);
}

.host-button--secondary:hover {
	border-color: #ffffff;
	background: rgba(4, 8, 24, 0.78);
	color: #ffffff;
}

@media (max-width: 900px) {
	.host-edition-container {
		width: min(100% - 32px, 1440px);
	}

	.host-hero {
		min-height: 620px;
		background-position: 58% center;
	}

	.host-hero__content {
		padding-block: 72px;
	}

	.host-hero__intro {
		max-width: 580px;
	}
}

@media (max-width: 600px) {
	.host-edition-container {
		width: min(100% - 24px, 1440px);
	}

	.host-hero {
		min-height: 590px;
		align-items: flex-end;
		background-position: 62% center;
	}

	.host-hero__overlay {
		background:
			linear-gradient(
				0deg,
				rgba(3, 7, 22, 0.98) 0%,
				rgba(3, 7, 22, 0.78) 52%,
				rgba(3, 7, 22, 0.25) 100%
			);
	}

    .host-hero__content {
        padding-top: 70px;
        padding-bottom: 40px;
    }

	.host-hero__year {
	    font-size: clamp(5rem, 9vw, 8rem);
    }

    .host-hero__location {
	    font-size: clamp(1.9rem, 3.5vw, 3.5rem);
    }

	.host-hero__intro {
		display: none;
	}

	.host-hero__actions {
		width: 100%;
	}

	.host-button {
		flex: 1 1 auto;
	}
}

/* =========================================================
   Host Edition – Contest Information Bar
   ========================================================= */

.host-summary {
	padding: 28px 0 34px;
	background: #050817;
}

.host-summary__grid {
	display: grid;
	grid-template-columns:
		minmax(0, 1.15fr)
		minmax(0, 1fr)
		minmax(0, 0.8fr)
		minmax(0, 1.35fr)
		minmax(0, 0.9fr);
	align-items: stretch;
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 14px;
	background: rgba(11, 17, 38, 0.9);
}

.host-summary__item {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
	min-height: 112px;
	padding: 22px 26px;
}

.host-summary__item:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 22px;
	right: 0;
	bottom: 22px;
	width: 1px;
	background: rgba(255, 255, 255, 0.1);
}

.host-summary__label {
	display: block;
	margin-bottom: 8px;
	color: rgba(255, 255, 255, 0.58);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-transform: uppercase;
}

.host-summary__value {
	display: block;
	overflow-wrap: anywhere;
	color: #ffffff;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.35;
}

.host-summary__broadcaster {
	display: flex;
	align-items: center;
	gap: 14px;
	min-width: 0;
}

.host-summary__broadcaster img {
	display: block;
	flex: 0 0 auto;
	width: 58px;
	height: 42px;
	margin: 0;
	padding: 5px;
	border-radius: 6px;
	background: #ffffff;
	object-fit: contain;
}

.host-summary__ticket-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: fit-content;
	min-height: 42px;
	padding: 10px 18px;
	border-radius: 8px;
	background: #ec3f82;
	color: #ffffff;
	font-size: 0.9rem;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	transition:
		background-color 180ms ease,
		transform 180ms ease;
}

.host-summary__ticket-link:hover {
	background: #d82f70;
	color: #ffffff;
	text-decoration: none;
	transform: translateY(-2px);
}

@media (max-width: 1100px) {
	.host-summary__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.host-summary__item:nth-child(3)::after {
		display: none;
	}

	.host-summary__item:nth-child(n + 4) {
		border-top: 1px solid rgba(255, 255, 255, 0.1);
	}
}

@media (max-width: 700px) {
.host-summary {
	padding: 28px 0 12px;
	background: #050817;
}

	.host-summary__grid {
		grid-template-columns: 1fr;
	}

	.host-summary__item {
		min-height: auto;
		padding: 18px 20px;
	}

	.host-summary__item:not(:last-child)::after {
		top: auto;
		right: 20px;
		bottom: 0;
		left: 20px;
		width: auto;
		height: 1px;
	}

	.host-summary__item:nth-child(3)::after {
		display: block;
	}

	.host-summary__item:nth-child(n + 4) {
		border-top: 0;
	}
}

.host-summary__item {
	flex-direction: row;
	align-items: center;
	justify-content: flex-start;
	gap: 18px;
}

.host-summary__content {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.host-summary__icon {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	color: #ec3f82;
}

.host-summary__icon svg {
	width: 30px;
	height: 30px;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.host-summary__value {
	order: 1;
}

.host-summary__label {
	order: 2;
	margin: 5px 0 0;
}

.host-summary__broadcaster {
	width: 100%;
}

.host-summary__broadcaster img {
	width: 58px;
	height: 48px;
}

/* Host transport section */
.host-transport-section {
	padding: 10px 0 72px;
}

.host-transport-layout {
	display: grid;
	grid-template-columns:
		minmax(180px, 0.82fr)
		minmax(300px, 1.35fr)
		minmax(210px, 1fr);
	gap: 12px;
	align-items: stretch;
}

.host-transport-panel {
	height: 100%;
}

.host-transport-panel--map {
	display: flex;
	flex-direction: column;
}

.host-transport-panel--map .host-transport-map {
	flex: 1;
	min-height: 0;
}

.host-transport-panel--map .host-transport-map__iframe {
	height: 100%;
	min-height: 0;
}

@media (max-width: 720px) {
	.host-transport-layout {
		grid-template-columns: 1fr;
	}

	.host-transport-panel--options {
		grid-column: auto;
	}

	.host-transport-map,
	.host-transport-map__iframe {
		min-height: 280px;
		height: 280px;
	}
}

.host-transport-panel {
	min-width: 0;
	padding: 24px;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 20px;
	background: rgba(255, 255, 255, 0.04);
}

.host-transport-panel__title {
	margin: 0 0 20px;
	font-size: 20px;
	line-height: 1.25;
}

.host-transport-routes,
.host-transport-options {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.host-route-card {
	padding: 18px;
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.025);
}

.host-route-card__title {
	margin: 0 0 12px;
	font-size: 18px;
	line-height: 1.3;
}

.host-route-card__route {
	margin: 0 0 14px;
	font-size: 14px;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.78);
}

.host-route-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	margin-bottom: 12px;
	font-size: 14px;
}

.host-route-card__description {
	font-size: 14px;
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.72);
}

.host-route-card__description p {
	margin: 0;
}

.host-route-card__link {
	display: inline-flex;
	margin-top: 14px;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}

.host-route-card__link:hover {
	text-decoration: underline;
}

.host-route-card {
	position: relative;
	display: grid;
	grid-template-columns: 46px minmax(0, 1fr) auto;
	gap: 14px;
	align-items: center;
	cursor: pointer;
	overflow: hidden;
	transition:
		transform 180ms ease,
		border-color 180ms ease,
		background-color 180ms ease,
		box-shadow 180ms ease;
}

.host-route-card::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: linear-gradient(
		135deg,
		rgba(236, 72, 153, 0.09),
		rgba(168, 85, 247, 0.04)
	);
	opacity: 0;
	transition: opacity 180ms ease;
	pointer-events: none;
}

.host-route-card:hover,
.host-route-card:focus-visible {
	transform: translateY(-2px);
	border-color: rgba(236, 72, 153, 0.55);
	box-shadow: 0 14px 34px rgba(0, 0, 0, 0.2);
	outline: none;
}

.host-route-card:hover::before,
.host-route-card:focus-visible::before,
.host-route-card.is-active::before {
	opacity: 1;
}

.host-route-card.is-active {
	border-color: rgba(236, 72, 153, 0.9);
	background: rgba(236, 72, 153, 0.06);
	box-shadow:
		0 0 0 1px rgba(236, 72, 153, 0.16),
		0 14px 34px rgba(0, 0, 0, 0.22);
}

.host-route-card__icon {
	position: relative;
	z-index: 1;
	display: grid;
	width: 42px;
	height: 42px;
	place-items: center;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.045);
	transition:
		transform 180ms ease,
		background-color 180ms ease,
		border-color 180ms ease;
}

.host-route-card__icon svg {
	width: 20px;
	height: 20px;
	fill: currentColor;
	color: rgba(255, 255, 255, 0.82);
}

.host-route-card:hover .host-route-card__icon,
.host-route-card:focus-visible .host-route-card__icon,
.host-route-card.is-active .host-route-card__icon {
	transform: scale(1.05);
	border-color: rgba(236, 72, 153, 0.45);
	background: rgba(236, 72, 153, 0.12);
}

.host-route-card.is-active .host-route-card__icon svg {
	color: #f472b6;
}

.host-route-card__content {
	position: relative;
	z-index: 1;
	min-width: 0;
}

.host-route-card__title {
	margin-bottom: 6px;
}

.host-route-card__route {
	margin-bottom: 0;
}

.host-route-card__meta,
.host-route-card__description,
.host-route-card__link {
	display: none;
}

.host-route-card__duration {
	position: relative;
	z-index: 1;
	align-self: start;
	padding-top: 2px;
	font-size: 13px;
	font-weight: 700;
	white-space: nowrap;
	color: rgba(255, 255, 255, 0.76);
}

.host-route-card:hover .host-route-card__duration,
.host-route-card:focus-visible .host-route-card__duration,
.host-route-card.is-active .host-route-card__duration {
	color: #f472b6;
}

@media (max-width: 720px) {
	.host-route-card {
		grid-template-columns: 42px minmax(0, 1fr);
	}

	.host-route-card__duration {
		grid-column: 2;
		justify-self: start;
		padding-top: 0;
	}
}

.host-transport-option {
	position: relative;
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr);
	gap: 12px;
	align-items: center;
	padding: 14px;
	border: 1px solid rgba(255,255,255,.08);
	border-radius: 16px;
	background: rgba(255,255,255,.025);
	cursor: pointer;
	overflow: hidden;
	transition:
		transform .18s ease,
		border-color .18s ease,
		background-color .18s ease,
		box-shadow .18s ease;
}

.host-transport-option:hover {
	transform: translateY(-2px);
}

.host-transport-option::before{
	content:"";
	position:absolute;
	inset:0;
	border-radius:inherit;
	background:linear-gradient(
		135deg,
		rgba(168,85,247,.10),
		rgba(236,72,153,.03)
	);
	opacity:0;
	transition:opacity .18s ease;
	pointer-events:none;
}

.host-transport-option:hover,
.host-transport-option:focus-visible{
	transform:translateY(-2px);
	border-color:rgba(168,85,247,.55);
	box-shadow:0 14px 34px rgba(0,0,0,.2);
	outline:none;
}

.host-transport-option:hover::before,
.host-transport-option:focus-visible::before,
.host-transport-option.is-active::before{
	opacity:1;
}

.host-transport-option.is-active{
	border-color:rgba(168,85,247,.9);
	background:rgba(168,85,247,.06);
	box-shadow:
		0 0 0 1px rgba(168,85,247,.16),
		0 14px 34px rgba(0,0,0,.22);
}

.host-transport-option__icon{
	display:grid;
	width:38px;
	height:38px;
	place-items:center;
	border:1px solid rgba(168,85,247,.30);
	border-radius:50%;
	background:rgba(168,85,247,.08);
	color:#c084fc;
	transition:
		transform .18s ease,
		background-color .18s ease,
		border-color .18s ease;
}

.host-transport-option__icon svg{
	width:20px;
	height:20px;
	fill:currentColor;
}

.host-transport-option:hover .host-transport-option__icon,
.host-transport-option:focus-visible .host-transport-option__icon,
.host-transport-option.is-active .host-transport-option__icon{
	transform:scale(1.05);
	background:rgba(168,85,247,.16);
	border-color:rgba(168,85,247,.45);
}

.host-transport-option__title {
	margin: 0 0 2px;
	font-size: 16px;
	line-height: 1.25;
}

.host-transport-option__subtitle {
	margin: 0 0 3px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.3;
}

.host-transport-option__description {
	display: -webkit-box;
	overflow: hidden;
	font-size: 12px;
	line-height: 1.35;
	color: rgba(255, 255, 255, 0.68);

	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;

	max-height: 38px;
	transition:
		max-height .35s ease,
		-webkit-line-clamp .35s ease;
}

.host-transport-option__description p{
	margin:0;
}

.host-transport-option:hover .host-transport-option__description,
.host-transport-option:focus-within .host-transport-option__description {
	-webkit-line-clamp: unset;
	max-height: 300px;
}

.host-transport-option__content {
	min-width: 0;
}

.host-transport-map {
	position: relative;
	flex: 1;
	width: 100%;
	min-height: 0;
	height: 100%;
	overflow: hidden;
	border-radius: 12px;
}

.host-transport-map__iframe {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 0;
	border: 0;
	transition: opacity .22s ease;
	opacity: 1;
}

.host-transport-map__venue-badge {
	position: absolute;
	top: 16px;
	right: 16px;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 10px 14px;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 10px;
	background: rgba(236, 63, 130, 0.94);
	color: #fff;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.2;
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.28);
	backdrop-filter: blur(10px);
	pointer-events: none;

	transition:
		transform 220ms ease,
		opacity 220ms ease,
		box-shadow 220ms ease;
}

.host-transport-map__overlay {
	position: absolute;
	right: 28px;
	bottom: 24px;
	left: 28px;
	z-index: 2;
}

.host-transport-map__route {
	padding: 20px;
	border: 1px solid rgba(255, 255, 255, 0.36);
	border-radius: 14px;
	background: rgba(245, 246, 250, 0.92);
	color: #101426;
	box-shadow: 0 18px 42px rgba(0, 0, 0, 0.28);
	backdrop-filter: blur(14px);
}

.host-transport-map__route h3 {
	margin: 0 0 16px;
	color: #101426;
	font-size: 18px;
	line-height: 1.25;
}

.host-transport-map__stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin-bottom: 16px;
}

.host-transport-map__stat {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
	padding-right: 14px;
	border-right: 1px solid rgba(16, 20, 38, 0.14);
}

.host-transport-map__stat:last-child {
	padding-right: 0;
	border-right: 0;
}

.host-transport-map__stat-icon {
	display: flex;
	flex: 0 0 38px;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	margin: 0;
	color: #101426;
}

.host-transport-map__stat-icon svg {
	width: 32px;
	height: 32px;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.host-transport-map__stat-content {
	min-width: 0;
}

.host-transport-map__stat-content strong {
	display: block;
	color: #101426;
	font-size: 15px;
	font-weight: 800;
	line-height: 1.25;
	white-space: nowrap;
}

.host-transport-map__stat-content span {
	display: block;
	margin-top: 3px;
	color: rgba(16, 20, 38, 0.66);
	font-size: 12px;
	line-height: 1.3;
}

#host-route-link {
	display: inline-flex;
	align-items: center;
	color: #d92f7c;
	font-size: 14px;
	font-weight: 800;
	text-decoration: none;
}

#host-route-link:hover {
	text-decoration: underline;
}

@media (max-width: 720px) {
    
    .host-transport-section {
	    padding:12px 0;
    }

	.host-transport-layout {
		grid-template-columns: 1fr;
	}

	.host-transport-panel--map {
		grid-column: auto;
	}

	.host-transport-panel {
		padding: 20px;
	}
	
	.host-transport-map__overlay {
	right: 10px;
	bottom: 10px;
	left: 10px;
    }

    .host-transport-map__route {
	    padding: 14px;
    }

    .host-transport-map__stats {
	    grid-template-columns: 1fr;
	    gap: 8px;
    }

    .host-transport-map__stats > div {
	    padding: 0 0 8px;
	    border-right: 0;
	    border-bottom: 1px solid rgba(16, 20, 38, 0.14);
    }

    .host-transport-map__stats > div:last-child {
	    padding-bottom: 0;
	    border-bottom: 0;
    }
}

/* ==========================================================
   Host Transport Notice
========================================================== */

.host-travel-notice {
	display: block;
	margin: 18px 0;
	padding: 16px 18px;
	border-radius: 12px;
	border-left: 5px solid;
	font-size: 14px;
	line-height: 1.6;
}

.host-travel-notice[hidden] {
	display: none;
}

.host-travel-notice__title {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 8px;
	font-size: 15px;
	font-weight: 700;
}

.host-travel-notice__text {
	margin: 0;
	color: inherit;
}

/* Warning */

.host-travel-notice--warning {
	background: #fff8db;
	border-color: #f4c542;
	color: #6a5600;
}

.host-travel-notice--warning .host-travel-notice__title::before {
	content: "⚠";
	font-size: 16px;
}

/* Information */

.host-travel-notice--information {
	background: #eaf5ff;
	border-color: #4a90e2;
	color: #1d4e89;
}

.host-travel-notice--information .host-travel-notice__title::before {
	content: "ℹ";
	font-size: 16px;
}

/* Recommendation */

.host-travel-notice--recommendation {
	background: #eaf9ef;
	border-color: #4caf50;
	color: #216738;
}

.host-travel-notice--recommendation .host-travel-notice__title::before {
	content: "✓";
	font-size: 16px;
}

/* ==========================================================
   Host Information Cards
========================================================== */

.host-information-section {
	padding: 0 0 18px;
	background: #050817;
}

.host-information-grid {
	display: grid;
	grid-template-columns:
		minmax(280px, 0.9fr)
		minmax(280px, 0.9fr)
		minmax(460px, 1.45fr);
	gap: 18px;
	align-items: start;
}

.host-information-card {
	min-width: 0;
	height: auto;
	padding: 24px;
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 20px;
	background:
		linear-gradient(
			145deg,
			rgba(17, 23, 54, 0.96),
			rgba(8, 13, 34, 0.96)
		);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.04),
		0 18px 42px rgba(0, 0, 0, 0.22);
	transition:
		transform 180ms ease,
		border-color 180ms ease,
		box-shadow 180ms ease;
}

.host-information-card:hover {
	transform: translateY(-3px);
	border-color: rgba(236, 63, 130, 0.42);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.05),
		0 24px 52px rgba(0, 0, 0, 0.3);
}

.host-information-card__header {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	min-height: 92px;
	margin-bottom: 18px;
	padding-bottom: 18px;
	border-bottom: 1px solid rgba(255,255,255,.08);
}

.host-information-card__header > div {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 56px;
}

.host-information-card__icon {
	display: grid;
	flex: 0 0 46px;
	width: 46px;
	height: 46px;
	place-items: center;
	border: 1px solid rgba(236, 63, 130, 0.35);
	border-radius: 50%;
	background: rgba(236, 63, 130, 0.1);
	color: #f472b6;
}

.host-information-card__icon svg {
	width: 24px;
	height: 24px;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.host-information-card__title {
	margin: 0;
	color: #ffffff;
	font-size: 1.15rem;
	font-weight: 800;
	line-height: 1.3;
}

.host-information-card__subtitle {
	margin: 6px 0 0;
	color: rgba(255, 255, 255, 0.62);
	font-size: 0.86rem;
	line-height: 1.5;
}

@media (max-width: 1050px) {
	.host-information-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 720px) {
	.host-information-section {
		padding-bottom: 48px;
	}

	.host-information-grid {
		grid-template-columns: 1fr;
	}

	.host-information-card {
		padding: 20px;
	}
}

/* ==========================================================
   Compact Ticket Price List
========================================================== */

.host-ticket-list {
	display: grid;
	gap: 0;
}

.host-ticket-item {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 18px;
	align-items: start;
	padding: 15px 0;
	border: 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.09);
	border-radius: 0;
	background: transparent;
	transition:
		padding 180ms ease,
		background 180ms ease,
		border-color 180ms ease;
}

.host-ticket-item:first-child {
	padding-top: 0;
}

.host-ticket-item:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

.host-ticket-item:hover,
.host-ticket-item:focus-within {
	margin-inline: -12px;
	padding-inline: 12px;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.035);
}

.host-ticket-item__content {
	min-width: 0;
}

.host-ticket-item__heading {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
}

.host-ticket-item__name {
	margin: 0;
	color: #ffffff;
	font-size: 0.94rem;
	font-weight: 750;
	line-height: 1.35;
}

.host-ticket-item__badge {
	display: inline-flex;
	align-items: center;
	padding: 3px 7px;
	border-radius: 999px;
	background: rgba(34, 197, 94, 0.16);
	color: #86efac;
	font-size: 0.58rem;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.host-ticket-item__information {
	display: -webkit-box;
	overflow: hidden;
	margin: 5px 0 0;
	color: rgba(255, 255, 255, 0.6);
	font-size: 0.76rem;
	line-height: 1.45;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 1;
	transition: color 180ms ease;
}

.host-ticket-item:hover .host-ticket-item__information,
.host-ticket-item:focus-within .host-ticket-item__information {
	display: block;
	overflow: visible;
	color: rgba(255, 255, 255, 0.76);
	-webkit-line-clamp: unset;
}

body.theme-light .host-ticket-item:hover .host-ticket-item__information,
body.theme-light .host-ticket-item:focus-within .host-ticket-item__information {
	color: rgba(16, 20, 38, 0.82);
}

.host-ticket-item__aside {
	display: flex;
	min-width: 74px;
	flex-direction: column;
	align-items: flex-end;
	gap: 5px;
	text-align: right;
}

.host-ticket-item__price {
	display: inline-flex;
	align-items: baseline;
	white-space: nowrap;
	color: #ffffff;
	font-size: 1rem;
	font-weight: 850;
	line-height: 1.3;
}

.host-ticket-item__currency {
	margin-right: 2px;
	color: #c084fc;
	font-size: 0.78em;
}

.host-ticket-item__link {
	color: #f472b6;
	font-size: 0.66rem;
	font-weight: 700;
	line-height: 1.3;
	text-decoration: none;
}

.host-ticket-item__link:hover,
.host-ticket-item__link:focus {
	text-decoration: underline;
}

@media (max-width: 560px) {
	.host-ticket-item {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 10px;
	}

	.host-ticket-item__aside {
		min-width: 62px;
	}

	.host-ticket-item__name {
		font-size: 0.88rem;
	}

	.host-ticket-item__information {
		font-size: 0.72rem;
	}

	.host-ticket-item__price {
		font-size: 0.92rem;
	}
}

/* Good to Know card */
.host-safety-card .host-information-card__header {
	align-items: flex-start;
}

.host-safety-list {
	margin-top: 18px;
}

.host-safety-item {
	display: grid;
	grid-template-columns: 34px minmax(0, 1fr);
	gap: 12px;
	align-items: flex-start;
	padding: 14px 0;
	border-bottom: 1px solid rgba(255,255,255,.06);
}

.host-safety-item:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.host-safety-item__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border: 1px solid rgba(255, 82, 170, 0.45);
	border-radius: 50%;
	background: rgba(255, 82, 170, 0.1);
	color: #ff5cac;
	font-size: 0;
	font-weight: 700;
	line-height: 1;
}

.host-safety-item__icon::before {
	content: "⚠";
	font-size: 13px;
}

.host-safety-item__content {
	min-width: 0;
}

.host-safety-item__content h3 {
	margin: 0 0 4px;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.3;
}

.host-safety-item__content p {
	margin-top: 4px;
	font-size: .84rem;
	line-height: 1.45;
	color: rgba(255,255,255,.72);
}

@media (max-width: 760px) {
	.host-safety-item {
		grid-template-columns: 32px minmax(0, 1fr);
		gap: 12px;
		padding: 14px 0;
	}

	.host-safety-item__icon {
		width: 30px;
		height: 30px;
	}

	.host-safety-item__content h3 {
		font-size: 16px;
	}

	.host-safety-item__content p {
		font-size: 14px;
	}
}

/* Reduce spacing between Transport and Host Information */
.host-edition-page .host-transport-section {
	padding-bottom: 18px;
}

.host-edition-page .host-information-section {
	margin-top: 0;
	padding-top: 0;
}

/* ==========================================================
   Events Around Eurovision
========================================================== */

.host-events-list {
	display: grid;
	max-width: 720px;
	gap: 14px;
}

.host-event-item {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	gap: 18px;
	align-items: center;
	padding: 16px 18px;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 14px;
	background: rgba(10, 15, 36, 0.72);
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.18);
	backdrop-filter: blur(10px);
	transition:
		transform 180ms ease,
		border-color 180ms ease,
		background-color 180ms ease;
}

.host-event-item:hover {
	transform: translateY(-2px);
	border-color: rgba(236, 63, 130, 0.48);
	background: rgba(18, 24, 52, 0.86);
}

.host-event-item__date {
	display: grid;
	place-items: center;
	min-height: 68px;
	padding: 8px;
	border: 1px solid rgba(236, 63, 130, 0.4);
	border-radius: 12px;
	background: rgba(236, 63, 130, 0.12);
	text-align: center;
}

.host-event-item__month {
	display: block;
	color: #f472b6;
	font-size: 0.68rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.host-event-item__day {
	display: block;
	margin-top: 5px;
	color: #ffffff;
	font-size: 1.55rem;
	font-weight: 900;
	line-height: 1;
}

.host-event-item__content {
	min-width: 0;
}

.host-event-item__title {
	margin: 0;
	color: #ffffff;
	font-size: 1rem;
	font-weight: 800;
	line-height: 1.35;
}

.host-event-item__details {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 16px;
	margin: 7px 0 0;
	color: rgba(255, 255, 255, 0.68);
	font-size: 0.8rem;
	line-height: 1.4;
}

.host-event-item__location,
.host-event-item__time {
	display: inline-flex;
	align-items: center;
}

.host-event-item__location::before {
	content: "⌖";
	margin-right: 6px;
	color: #f472b6;
}

.host-event-item__time::before {
	content: "◷";
	margin-right: 6px;
	color: #c084fc;
}

.host-events-section__footer {
	margin-top: 24px;
}

.host-events-section__footer a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 10px 18px;
	border: 1px solid rgba(236, 63, 130, 0.42);
	border-radius: 9px;
	background: rgba(236, 63, 130, 0.12);
	color: #ffffff;
	font-size: 0.82rem;
	font-weight: 800;
	transition:
		transform 180ms ease,
		background-color 180ms ease,
		border-color 180ms ease;
}

.host-events-section__footer a:hover {
	transform: translateY(-2px);
	border-color: #ec3f82;
	background: #ec3f82;
}

@media (max-width: 600px) {
	.host-event-item {
		grid-template-columns: 58px minmax(0, 1fr);
		gap: 12px;
		padding: 14px;
	}

	.host-event-item__date {
		min-height: 58px;
	}

	.host-event-item__day {
		font-size: 1.3rem;
	}
}

/* Compact Events card inside Host Information grid */

.host-events-card {
	display: flex;
	flex-direction: column;
	padding: 0;
}

.host-events-card .host-information-card__header {
	margin: 0;
	padding: 24px 24px 18px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.09);
}

.host-events-card__layout {
	display: block;
	height: auto;
}

.host-events-card__content {
	display: flex;
	min-width: 0;
	flex-direction: column;
	padding: 18px 0 20px 24px;
	padding-right: 24px;
}

.host-events-card .host-events-section__footer {
	margin-top: auto;
	padding-top: 18px;
	padding-right: 18px;
}

.host-events-card .host-events-list {
	max-width: none;
	gap: 0;
}

.host-events-card .host-event-item {
	grid-template-columns: 46px minmax(0, 1fr);
	gap: 12px;
	padding: 14px 0;
	border: 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.09);
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	backdrop-filter: none;
}

.host-events-card .host-event-item:first-child {
	padding-top: 0;
}

.host-events-card .host-event-item:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

.host-events-card .host-event-item:hover {
	transform: none;
	border-color: rgba(255, 255, 255, 0.09);
	background: transparent;
}

.host-events-card .host-event-item__date {
	min-height: 46px;
	padding: 6px;
	border-radius: 10px;
}

.host-events-card .host-event-item__month {
	font-size: 0.55rem;
}

.host-events-card .host-event-item__day {
	margin-top: 3px;
	font-size: 1.05rem;
}

.host-events-card .host-event-item__title {
	font-size: 0.88rem;
	line-height: 1.3;
}

.host-events-card .host-event-item__details {
	gap: 5px 10px;
	margin-top: 5px;
	font-size: 0.7rem;
}

.host-events-card .host-events-section__footer {
	margin-top: 20px;
	padding-top: 18px;
	border-top: 1px solid rgba(255, 255, 255, 0.09);
}

.host-events-card .host-events-section__footer a {
	width: 100%;
	min-height: 42px;
	padding: 9px 14px;
	justify-content: center;
	font-size: 0.72rem;
}

/* Compact Good to Know card */

.host-safety-card {
	height: auto;
	padding: 20px;
}

.host-safety-card .host-information-card__header {
	gap: 12px;
	margin-bottom: 10px;
	padding-bottom: 12px;
}

.host-safety-card .host-information-card__icon {
	width: 38px;
	height: 38px;
	flex-basis: 38px;
}

.host-safety-card .host-information-card__header h2 {
	margin: 0;
	font-size: 1.05rem;
	line-height: 1.2;
}

.host-safety-card .host-information-card__header p {
	margin: 3px 0 0;
	font-size: 0.76rem;
	line-height: 1.35;
}

.host-safety-list {
	margin-top: 0;
}

.host-safety-item {
	grid-template-columns: 26px minmax(0, 1fr);
	gap: 9px;
	padding: 10px 0;
}

.host-safety-item__icon {
	width: 24px;
	height: 24px;
}

.host-safety-item__icon::before {
	font-size: 11px;
}

.host-safety-item__content h3 {
	margin: 0 0 2px;
	font-size: 0.88rem;
	font-weight: 700;
	line-height: 1.25;
}

.host-safety-item__content p {
	margin: 0;
	font-size: 0.74rem;
	line-height: 1.35;
}

/* Equal height Host Information cards */

.host-information-grid {
	align-items: stretch;
}

.host-information-grid > .host-information-card {
	height: auto;
	min-height: 430px;
	display: flex;
	flex-direction: column;
}

@media (max-width: 1050px) {
	.host-information-grid > .host-information-card {
		height: auto;
	}
}

/* Compact Ticket Prices */

.host-ticket-item {
	padding: 10px 0;
}

.host-ticket-item__title {
	font-size: 0.92rem;
	line-height: 1.25;
}

.host-ticket-item__description {
	margin-top: 2px;
	font-size: 0.72rem;
	line-height: 1.35;
}

.host-ticket-item__price {
	font-size: 0.95rem;
}

.host-ticket-item__link {
	font-size: 0.68rem;
}

.host-ticket-item + .host-ticket-item {
	margin-top: 0;
}

/* Clickable event rows */

.host-events-card .host-event-item {
	grid-template-columns: 46px minmax(0, 1fr) 28px;
	width: 100%;
	color: inherit;
	text-decoration: none;
}

.host-event-item__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: rgba(255, 255, 255, 0.42);
	font-size: 1.1rem;
	transition:
		color 180ms ease,
		transform 180ms ease;
}

.host-events-card .host-event-item:hover {
	background: rgba(255, 255, 255, 0.035);
}

.host-events-card .host-event-item:hover .host-event-item__title,
.host-events-card .host-event-item:hover .host-event-item__arrow {
	color: #f472b6;
}

.host-events-card .host-event-item:hover .host-event-item__arrow {
	transform: translateX(4px);
}

/* ==========================================================
   Host Edition — Light Mode
========================================================== */

body.theme-light .host-edition-page,
body.theme-light .host-summary,
body.theme-light .host-information-section {
	background: #f4f6fc;
	color: #15182b;
}

body.theme-light .host-summary__grid {
	border-color: rgba(25, 30, 65, 0.14);
	background: rgba(255, 255, 255, 0.96);
	box-shadow:
		0 12px 32px rgba(24, 30, 65, 0.08);
}

body.theme-light .host-summary__item:not(:last-child)::after {
	background: rgba(25, 30, 65, 0.12);
}

body.theme-light .host-summary__value {
	color: #15182b;
}

body.theme-light .host-summary__label {
	color: #66708f;
}

/* Host Edition — Light Mode: Transport */

body.theme-light .host-transport-panel {
	border-color: rgba(25, 30, 65, 0.13);
	background: rgba(255, 255, 255, 0.72);
	box-shadow: 0 12px 30px rgba(24, 30, 65, 0.06);
}

body.theme-light .host-transport-panel__title,
body.theme-light .host-route-card__title,
body.theme-light .host-transport-option__title {
	color: #15182b;
}

body.theme-light .host-route-card,
body.theme-light .host-transport-option {
	border-color: rgba(25, 30, 65, 0.12);
	background: rgba(255, 255, 255, 0.82);
}

body.theme-light .host-route-card__route,
body.theme-light .host-route-card__description,
body.theme-light .host-route-card__duration,
body.theme-light .host-transport-option__description,
body.theme-light .host-transport-option__subtitle {
	color: #66708f;
}

body.theme-light .host-route-card__icon {
	border-color: rgba(25, 30, 65, 0.12);
	background: rgba(31, 116, 255, 0.06);
}

body.theme-light .host-route-card__icon svg {
	color: #66708f;
}

body.theme-light .host-route-card:hover,
body.theme-light .host-route-card:focus-visible,
body.theme-light .host-route-card.is-active,
body.theme-light .host-transport-option:hover,
body.theme-light .host-transport-option:focus-visible,
body.theme-light .host-transport-option.is-active {
	box-shadow: 0 12px 28px rgba(24, 30, 65, 0.12);
}

body.theme-light .host-route-card.is-active {
	background: rgba(236, 72, 153, 0.08);
}

body.theme-light .host-transport-option.is-active {
	background: rgba(168, 85, 247, 0.08);
}

/* Host Edition — Light Mode: Information Cards */

body.theme-light .host-information-card {
	border-color: rgba(25, 30, 65, 0.13);
	background:
		linear-gradient(
			145deg,
			rgba(255, 255, 255, 0.98),
			rgba(244, 246, 252, 0.98)
		);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.8),
		0 14px 34px rgba(24, 30, 65, 0.1);
}

body.theme-light .host-information-card:hover {
	border-color: rgba(236, 63, 130, 0.38);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.9),
		0 20px 42px rgba(24, 30, 65, 0.14);
}

body.theme-light .host-information-card__header {
	border-bottom-color: rgba(25, 30, 65, 0.1);
}

body.theme-light .host-information-card__title,
body.theme-light .host-safety-card h2,
body.theme-light .host-safety-item h3,
body.theme-light .host-ticket-item__name,
body.theme-light .host-ticket-item__price,
body.theme-light .host-event-item__title {
	color: #15182b;
}

body.theme-light .host-information-card__subtitle,
body.theme-light .host-safety-card .host-information-card__header p,
body.theme-light .host-safety-item p,
body.theme-light .host-ticket-item__information,
body.theme-light .host-event-item__details {
	color: #66708f;
}

body.theme-light .host-ticket-item,
body.theme-light .host-safety-item,
body.theme-light .host-event-item {
	border-bottom-color: rgba(25, 30, 65, 0.1);
}

body.theme-light .host-event-item:hover {
	background: rgba(236, 63, 130, 0.05);
}

body.theme-light .host-event-item__date {
	border-color: rgba(236, 63, 130, 0.42);
	background: rgba(236, 63, 130, 0.06);
}

body.theme-light .host-event-item__arrow {
	color: #7b829d;
}

body.theme-light .host-events-section__footer a {
	border-color: rgba(236, 63, 130, 0.5);
	background: rgba(236, 63, 130, 0.06);
	color: #c72f73;
}

/* Host Edition — Light Mode: Final Contrast Refinements */

body.theme-light .host-summary__grid,
body.theme-light .host-transport-panel,
body.theme-light .host-information-card {
	border-color: rgba(25, 30, 65, 0.16);
}

body.theme-light .host-summary__item:not(:last-child)::after,
body.theme-light .host-information-card__header,
body.theme-light .host-ticket-item,
body.theme-light .host-safety-item,
body.theme-light .host-event-item {
	border-color: rgba(25, 30, 65, 0.12);
}

body.theme-light .host-information-card__icon,
body.theme-light .host-event-item__date,
body.theme-light .host-safety-item__icon {
	background: rgba(236, 63, 130, 0.08);
	border-color: rgba(236, 63, 130, 0.3);
}

body.theme-light .host-ticket-item__link,
body.theme-light .host-events-section__footer a,
body.theme-light #host-route-link {
	color: #cf2f76;
}

body.theme-light .host-ticket-item__badge {
	background: rgba(34, 197, 94, 0.1);
	color: #15803d;
}

body.theme-light .host-transport-section {
	background: #f4f6fc;
}

/* Host Edition — Light Mode: Date and Ticket Spacing Fix */

body.theme-light .host-event-item__month {
	color: #d92f7c;
}

body.theme-light .host-event-item__day {
	color: #15182b;
}

body.theme-light .host-information-card--tickets
.host-ticket-item:last-child {
	padding-bottom: 14px;
}

/* ==========================================================
   Eurovision Fan Zones
========================================================== */

.host-fan-zones-section{
    margin:28px 0;
    padding:18px 0 14px;
}

.host-fan-zones-grid{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:16px;
    margin-top:20px;
}

@media (max-width:1200px){
    .host-fan-zones-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media (max-width:760px){
    .host-fan-zones-grid{
        grid-template-columns:1fr;
    }
}

.host-fan-zone-card{
    overflow:hidden;
    border-radius:18px;
    background:var(--surface-color,#171b29);
    border:1px solid rgba(255,255,255,.08);
    transition:.25s ease;
}

.host-fan-zone-card:hover{
    transform:translateY(-4px);
    border-color:rgba(255,255,255,.18);
}

.host-fan-zone-card__image{
    display:block;
    height:140px;
    overflow:hidden;
}

.host-fan-zone-card__image img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .35s ease;
}

.host-fan-zone-card:hover .host-fan-zone-card__image img{
    transform:scale(1.04);
}

.host-fan-zone-card__body{
    padding:18px;
}

.host-fan-zone-card__heading{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    margin-bottom:14px;
}

.host-fan-zone-card__title{
    margin:0;
    font-size:1.1rem;
    line-height:1.3;
}

.host-fan-zone-card__title a{
    color:inherit;
    text-decoration:none;
}

.host-fan-zone-card__badge{
    padding:4px 10px;
    border-radius:999px;
    font-size:.75rem;
    font-weight:700;
    background:#d63f86;
    color:#fff;
    white-space:nowrap;
}

.host-fan-zone-card__details{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.host-fan-zone-card__detail{
    display:flex;
    align-items:center;
    gap:10px;
    margin:0;
    opacity:.9;
    font-size:.95rem;
}

.host-fan-zone-card__detail span{
    width:18px;
    text-align:center;
    flex-shrink:0;
}

/* ==========================================================
   Eurovision Fan Zones — Light Mode
========================================================== */

body.theme-light .host-fan-zones-section{
    background:transparent;
    color:#111827;
}

body.theme-light .host-fan-zones-section .host-section-heading h2{
    color:#111827;
}

body.theme-light .host-fan-zones-section .host-section-heading p{
    color:#4b5563;
}

body.theme-light .host-fan-zone-card{
    background:#ffffff;
    border-color:#d1d5db;
    color:#111827;
    box-shadow:0 8px 22px rgba(15,23,42,.06);
}

body.theme-light .host-fan-zone-card:hover{
    border-color:#ec4899;
    box-shadow:0 12px 26px rgba(15,23,42,.1);
}

body.theme-light .host-fan-zone-card__body{
    background:#ffffff;
    color:#111827;
}

body.theme-light .host-fan-zone-card__title{
    color:#111827;
}

body.theme-light .host-fan-zone-card__title a{
    color:#111827;
}

body.theme-light .host-fan-zone-card__detail{
    color:#4b5563;
}

body.theme-light .host-fan-zone-card__detail span{
    color:#6b7280;
}

body.theme-light .host-fan-zone-card__detail a{
    color:#4b5563;
}

body.theme-light .host-fan-zone-card__detail a:hover{
    color:#111827;
}

body.theme-light .host-fan-zone-card__detail--distance{
    border-top-color:#e5e7eb;
}

body.theme-light .host-fan-zone-card__detail--distance span{
    color:#ec4899;
}

body.theme-light .host-fan-zone-card__badge--free{
    background:#ec4899;
    color:#ffffff;
}

body.theme-light .host-fan-zone-card__badge--ticket{
    background:#7c3aed;
    color:#ffffff;
}

body.theme-light .host-fan-zone-card__badge--vip{
    background:#f59e0b;
    color:#111827;
}

body.theme-light .host-fan-zone-card__badge--registration{
    background:#2563eb;
    color:#ffffff;
}

body.theme-light .host-fan-zone-card__badge--invite{
    background:#dc2626;
    color:#ffffff;
}

/* ==========================================================
   Eurovision Fan Zones — Carousel
========================================================== */

.host-fan-zones-carousel{
    position:relative;
}

.host-fan-zones-grid{
    display:flex;
    gap:16px;
    overflow-x:auto;
    scroll-behavior:smooth;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    padding:2px;
}

.host-fan-zones-grid::-webkit-scrollbar{
    display:none;
}

.host-fan-zone-card{
    flex:0 0 calc((100% - 64px) / 5);
    min-width:0;
    scroll-snap-align:start;
}

.host-fan-zones-carousel__button{
    position:absolute;
    top:50%;
    z-index:5;
    display:flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    padding:0;
    border:1px solid rgba(255,255,255,.18);
    border-radius:50%;
    background:#111b2d;
    color:#ec4899;
    font-size:2rem;
    line-height:1;
    cursor:pointer;
    box-shadow:0 8px 22px rgba(0,0,0,.28);
    transform:translateY(-50%);
    transition:
        background .2s ease,
        border-color .2s ease,
        transform .2s ease;
}

.host-fan-zones-carousel__button:hover{
    background:#17233a;
    border-color:#ec4899;
    transform:translateY(-50%) scale(1.05);
}

.host-fan-zones-carousel__button--previous{
    left:-22px;
}

.host-fan-zones-carousel__button--next{
    right:-22px;
}

body.theme-light .host-fan-zones-carousel__button{
    background:#ffffff;
    border-color:#d1d5db;
    color:#ec4899;
    box-shadow:0 8px 20px rgba(15,23,42,.14);
}

body.theme-light .host-fan-zones-carousel__button:hover{
    background:#f8fafc;
    border-color:#ec4899;
}

@media (max-width:1200px){
    .host-fan-zone-card{
        flex-basis:calc((100% - 32px) / 3);
    }
}

@media (max-width:760px){
    .host-fan-zone-card{
        flex-basis:85%;
    }

    .host-fan-zones-carousel__button{
        display:none;
    }
}

.host-fan-zones-carousel__button[hidden]{
    display:none;
}

.host-places-carousel__button[hidden] {
	display: none;
}

/* ==========================================================
   Eurovision Fan Zones — Badge Colours
========================================================== */

.host-fan-zone-card__badge--free{
    background:#ec4899;
    color:#ffffff;
}

.host-fan-zone-card__badge--ticket{
    background:#7c3aed;
    color:#ffffff;
}

.host-fan-zone-card__badge--vip{
    background:#f59e0b;
    color:#111827;
}

.host-fan-zone-card__badge--registration{
    background:#2563eb;
    color:#ffffff;
}

.host-fan-zone-card__badge--invite{
    background:#dc2626;
    color:#ffffff;
}

/* ==========================================================
   Host Section Heading — Fan Zones
========================================================== */

.host-section-heading--fan-zones{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    margin:0 0 12px;
}

.host-section-heading__main{
    display:flex;
    align-items:center;
    gap:14px;
    min-width:0;
}

.host-section-heading__icon{
    flex:0 0 42px;
    display:flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    border:1px solid rgba(236,72,153,.28);
    border-radius:12px;
    background:rgba(236,72,153,.1);
    color:#ec4899;
}

.host-section-heading__icon svg{
    width:22px;
    height:22px;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.host-section-heading__title{
    margin:0 0 4px;
    color:#ffffff;
    font-size:1.45rem;
    font-weight:750;
    line-height:1.2;
}

.host-section-heading__subtitle{
    margin:0;
    color:rgba(255,255,255,.66);
    font-size:.92rem;
    line-height:1.45;
}

.host-section-heading__link{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:#ec4899;
    font-size:.92rem;
    font-weight:700;
    text-decoration:none;
    transition:
        color .2s ease,
        transform .2s ease;
}

.host-section-heading__link:hover{
    color:#f472b6;
    transform:translateX(2px);
}

body.theme-light .host-section-heading__icon{
    border-color:#f5b3d4;
    background:#fff0f7;
    color:#ec4899;
}

body.theme-light .host-section-heading__title{
    color:#111827;
}

body.theme-light .host-section-heading__subtitle{
    color:#64748b;
}

body.theme-light .host-section-heading__link{
    color:#db2777;
}

body.theme-light .host-section-heading__link:hover{
    color:#be185d;
}

@media (max-width:760px){
    .host-section-heading--fan-zones{
        align-items:flex-start;
        flex-direction:column;
        gap:12px;
    }

    .host-section-heading__link{
        margin-left:56px;
    }
}

/* Host Place modal */
.host-place-modal__box {
	width: min(1000px, calc(100vw - 32px));
	max-height: calc(100vh - 80px);
	overflow-y: auto;
	border: 1px solid rgba(212, 54, 255, 0.65);
	border-radius: 22px;
	background:
		linear-gradient(
			180deg,
			rgba(28, 20, 70, 0.98) 0%,
			rgba(18, 14, 48, 0.99) 100%
		);
	box-shadow:
		0 28px 80px rgba(0, 0, 0, 0.55),
		0 0 40px rgba(180, 40, 255, 0.16);
}

.host-place-modal__box .history-modal-body {
	padding: 0;
}

.host-place-modal__box .history-modal-close {
	position: absolute;
	top: 16px;
	right: 18px;
	z-index: 10;
	width: 42px;
	height: 42px;
	display: grid;
	place-items: center;
	border: 0;
	border-radius: 50%;
	background: rgba(15, 10, 40, 0.78);
	color: #ff4fb3;
	font-size: 32px;
	line-height: 1;
	cursor: pointer;
	backdrop-filter: blur(10px);
	transition:
		transform 0.2s ease,
		background-color 0.2s ease;
}

.host-place-modal__box .history-modal-close:hover,
.host-place-modal__box .history-modal-close:focus-visible {
	transform: scale(1.08);
	background: rgba(40, 20, 80, 0.95);
	outline: 2px solid rgba(255, 79, 179, 0.5);
	outline-offset: 2px;
}

@media (max-width: 760px) {
	.host-place-modal__box {
		width: calc(100vw - 20px);
		max-height: calc(100vh - 20px);
		border-radius: 16px;
	}

	.host-place-modal__box .history-modal-close {
		top: 10px;
		right: 10px;
		width: 38px;
		height: 38px;
		font-size: 28px;
	}
}

.host-place-modal__hero {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 7;
	background: #111;
}

.host-place-modal__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.host-place-modal__hero .host-fan-zone-card__badge {
	position: absolute;
	left: 20px;
	bottom: 20px;
	z-index: 2;
	margin: 0;
	box-shadow: 0 8px 20px rgba(0,0,0,.35);
}

.host-place-modal__content h2 {
	margin: 0 0 12px;
	font-size: clamp(30px, 4vw, 44px);
	line-height: 1.05;
	color: #ffffff;
}

.host-place-modal__intro {
	margin: 0 0 24px;
	max-width: 760px;
	color: rgba(255, 255, 255, 0.72);
	font-size: 18px;
	line-height: 1.65;
}

.host-place-modal__details {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin: 26px 0;
}

.host-place-modal__detail {
	min-height: 112px;
	padding: 18px;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.045);
}

.host-place-modal__detail strong {
	display: block;
	margin-bottom: 8px;
	color: #ff4fb3;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.host-place-modal__detail span {
	display: block;
	color: rgba(255, 255, 255, 0.88);
	font-size: 15px;
	line-height: 1.55;
}

.host-place-modal__description {
	margin-top: 26px;
	color: rgba(255, 255, 255, 0.78);
	font-size: 16px;
	line-height: 1.75;
}

.host-place-modal__description > *:first-child {
	margin-top: 0;
}

.host-place-modal__description > *:last-child {
	margin-bottom: 0;
}

.host-place-modal__maps-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 26px;
}

@media (max-width: 760px) {
	.host-place-modal__content {
		padding: 24px 18px;
	}

	.host-place-modal__details {
		grid-template-columns: 1fr;
	}

	.host-place-modal__detail {
		min-height: 0;
	}
}

/* Host Place modal: keep dark design in light mode */
body.theme-light .host-place-modal__content h2 {
	color: #ffffff;
}

body.theme-light .host-place-modal__intro {
	color: rgba(255, 255, 255, 0.76);
}

body.theme-light .host-place-modal__description {
	color: rgba(255, 255, 255, 0.82);
}

body.theme-light .host-place-modal__detail strong {
	color: #ff4fb3;
}

body.theme-light .host-place-modal__detail span {
	color: rgba(255, 255, 255, 0.9);
}

/* ==========================================================
   Host Event Modal
   ========================================================== */

.host-event-modal__box {
	width: min(960px, calc(100vw - 32px));
	max-height: calc(100vh - 40px);
	overflow-y: auto;
	border: 1px solid rgba(212, 54, 255, 0.65);
	border-radius: 22px;
	background:
		linear-gradient(
			180deg,
			rgba(28, 20, 70, 0.98) 0%,
			rgba(18, 14, 48, 0.99) 100%
		);
	box-shadow:
		0 28px 80px rgba(0, 0, 0, 0.55),
		0 0 40px rgba(180, 40, 255, 0.16);
}

.host-event-modal__box .history-modal-body {
	padding: 0;
}

.host-event-modal__hero {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 8;
	background: #111;
}

.host-event-modal__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.host-event-modal__content {
	padding: 30px;
}

.host-event-modal__date {
	margin: 0 0 10px;
	color: #ff4fb3;
	font-size: 15px;
	font-weight: 700;
}

.host-event-modal__content h2 {
	margin: 0 0 24px;
	color: #ffffff;
	font-size: clamp(28px, 4vw, 42px);
	line-height: 1.1;
}

.host-event-modal__details {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin-bottom: 26px;
}

.host-event-modal__detail {
	min-height: 105px;
	padding: 18px;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.045);
}

.host-event-modal__detail strong {
	display: block;
	margin-bottom: 8px;
	color: #ff4fb3;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.host-event-modal__detail span {
	display: block;
	color: rgba(255, 255, 255, 0.9);
	font-size: 15px;
	line-height: 1.5;
}

.host-event-modal__description {
	margin-top: 24px;
	color: rgba(255, 255, 255, 0.82);
	font-size: 16px;
	line-height: 1.75;
}

.host-event-modal__description > *:first-child {
	margin-top: 0;
}

.host-event-modal__description > *:last-child {
	margin-bottom: 0;
}

.host-event-modal__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 28px;
}

.host-event-modal__loading,
.host-event-modal__error {
	padding: 40px;
	color: #ffffff;
	text-align: center;
}

body.theme-light .host-event-modal__content h2 {
	color: #ffffff;
}

body.theme-light .host-event-modal__date {
	color: #ff4fb3;
}

body.theme-light .host-event-modal__detail strong {
	color: #ff4fb3;
}

body.theme-light .host-event-modal__detail span,
body.theme-light .host-event-modal__description {
	color: rgba(255, 255, 255, 0.88);
}

@media (max-width: 760px) {
	.host-event-modal__box {
		width: calc(100vw - 20px);
		max-height: calc(100vh - 20px);
		border-radius: 16px;
	}

	.host-event-modal__content {
		padding: 22px 18px;
	}

	.host-event-modal__details {
		grid-template-columns: 1fr;
	}

	.host-event-modal__detail {
		min-height: 0;
	}

	.host-event-modal__actions .host-button {
		width: 100%;
	}
}

.host-event-modal__box .history-modal-close {
	position: absolute;
	top: 16px;
	right: 18px;
	z-index: 100;

	display: grid;
	place-items: center;

	width: 42px;
	height: 42px;

	border: 0;
	border-radius: 50%;

	background: rgba(15, 10, 40, 0.82);
	color: #ff4fb3;

	font-size: 32px;
	font-weight: 900;
	line-height: 1;

	cursor: pointer;
	backdrop-filter: blur(10px);

	transition:
		transform 0.2s ease,
		background-color 0.2s ease;
}

.host-event-modal__box .history-modal-close:hover,
.host-event-modal__box .history-modal-close:focus-visible {
	transform: scale(1.08);
	background: rgba(40, 20, 80, 0.96);
	outline: 2px solid rgba(255, 79, 179, 0.5);
	outline-offset: 2px;
}

/* =========================================================
   Places to Visit in Sofia
   ========================================================= */

.host-places-section {
	padding: 20px 0;
}

.host-section-heading--places {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin: 0 0 24px;
}

.host-places-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 24px;
}

.host-places-filter {
	appearance: none;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.06);
	color: inherit;
	padding: 9px 16px;
	font: inherit;
	font-size: 0.88rem;
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease,
		transform 0.2s ease;
}

.host-places-filter:hover,
.host-places-filter:focus-visible {
	border-color: rgba(255, 255, 255, 0.34);
	background: rgba(255, 255, 255, 0.11);
	transform: translateY(-1px);
}

.host-places-filter.is-active {
	border-color: transparent;
	background: linear-gradient(135deg, #ed2f8f, #7b4dff);
	color: #fff;
	box-shadow: 0 8px 22px rgba(123, 77, 255, 0.22);
}

.host-places-carousel {
	position: relative;
}

.host-places-grid {
	display: flex;
	gap: 20px;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	padding: 4px 2px 2px;
	scrollbar-width: none;
}

.host-places-grid::-webkit-scrollbar {
	display: none;
}

.host-place-card {
	flex: 0 0 calc((100% - 60px) / 4);
	min-width: 250px;
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.055);
	box-shadow: 0 14px 34px rgba(0, 0, 0, 0.16);
	scroll-snap-align: start;
	cursor: pointer;
	transition:
		transform 0.24s ease,
		border-color 0.24s ease,
		box-shadow 0.24s ease;
}

.host-place-card[hidden] {
	display: none;
}

.host-place-card:hover,
.host-place-card:focus-visible {
	transform: translateY(-5px);
	border-color: rgba(237, 47, 143, 0.5);
	box-shadow: 0 20px 42px rgba(0, 0, 0, 0.24);
	outline: none;
}

.host-place-card__image {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 10;
	background: rgba(255, 255, 255, 0.06);
}

.host-place-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.35s ease;
}

.host-place-card:hover .host-place-card__image img,
.host-place-card:focus-visible .host-place-card__image img {
	transform: scale(1.045);
}

.host-place-card__body {
	padding: 18px;
}

.host-place-card__title {
	margin: 0 0 14px;
	font-size: 1.05rem;
	line-height: 1.3;
	color: inherit;
}

.host-place-card__detail {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: 7px 0 0;
	color: rgba(255, 255, 255, 0.72);
	font-size: 0.84rem;
	line-height: 1.45;
}

.host-place-card__detail span {
	flex: 0 0 auto;
	color: #ed2f8f;
	font-weight: 800;
}

.host-place-card__detail--distance {
	color: rgba(255, 255, 255, 0.84);
}

.host-places-carousel__button {
	position: absolute;
	top: 50%;
	z-index: 5;
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 50%;
	background: rgba(14, 16, 31, 0.92);
	color: #fff;
	font-size: 1.8rem;
	line-height: 1;
	cursor: pointer;
	transform: translateY(-50%);
	box-shadow: 0 10px 26px rgba(0, 0, 0, 0.28);
	transition:
		background-color 0.2s ease,
		transform 0.2s ease,
		opacity 0.2s ease;
}

.host-places-carousel__button:hover,
.host-places-carousel__button:focus-visible {
	background: #ed2f8f;
	transform: translateY(-50%) scale(1.06);
	outline: none;
}

.host-places-carousel__button--previous {
	left: -21px;
}

.host-places-carousel__button--next {
	right: -21px;
}

/* Light theme */

body.theme-light .host-places-filter {
	border-color: rgba(16, 20, 38, 0.14);
	background: rgba(16, 20, 38, 0.045);
	color: #101426;
}

body.theme-light .host-places-filter:hover,
body.theme-light .host-places-filter:focus-visible {
	border-color: rgba(16, 20, 38, 0.28);
	background: rgba(16, 20, 38, 0.08);
}

body.theme-light .host-places-filter.is-active {
	border-color: transparent;
	background: linear-gradient(135deg, #ed2f8f, #7b4dff);
	color: #fff;
	box-shadow: 0 8px 22px rgba(123, 77, 255, 0.22);
}

body.theme-light .host-place-card {
	border-color: rgba(16, 20, 38, 0.1);
	background: #fff;
	box-shadow: 0 12px 30px rgba(35, 39, 64, 0.09);
}

body.theme-light .host-place-card:hover,
body.theme-light .host-place-card:focus-visible {
	border-color: rgba(237, 47, 143, 0.38);
	box-shadow: 0 18px 38px rgba(35, 39, 64, 0.14);
}

body.theme-light .host-place-card__title {
	color: #101426;
}

body.theme-light .host-place-card__detail {
	color: rgba(16, 20, 38, 0.68);
}

body.theme-light .host-place-card__detail--distance {
	color: rgba(16, 20, 38, 0.82);
}

body.theme-light .host-places-carousel__button {
	border-color: rgba(16, 20, 38, 0.12);
	background: rgba(255, 255, 255, 0.96);
	color: #101426;
	box-shadow: 0 10px 26px rgba(35, 39, 64, 0.16);
}

body.theme-light .host-places-carousel__button:hover,
body.theme-light .host-places-carousel__button:focus-visible {
	background: #ed2f8f;
	color: #fff;
}

/* Responsive */

@media (max-width: 1180px) {
	.host-place-card {
		flex-basis: calc((100% - 40px) / 3);
	}
}

@media (max-width: 860px) {
	.host-place-card {
		flex-basis: calc((100% - 20px) / 2);
	}

	.host-places-carousel__button {
		display: none;
	}
}

@media (max-width: 720px) {

	.host-places-section {
		padding: 28px 0;
		overflow: hidden;
	}

	.host-places-section .host-edition-container {
		width: calc(100% - 32px);
		margin-inline: auto;
	}

	.host-places-section .host-section-heading--places {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		justify-content: flex-start !important;
		gap: 14px !important;
		width: 100% !important;
		margin-bottom: 22px !important;
	}

	.host-places-section .host-section-heading__main {
		display: grid !important;
		grid-template-columns: 44px minmax(0, 1fr) !important;
		align-items: start !important;
		gap: 14px !important;
		width: 100% !important;
	}

	.host-places-section .host-section-heading__icon {
		grid-column: 1 !important;
		grid-row: 1 !important;
		width: 44px !important;
		height: 44px !important;
		margin-top: 2px !important;
	}

	.host-places-section .host-section-heading__main > div {
		grid-column: 2 !important;
		grid-row: 1 !important;
		width: 100% !important;
		min-width: 0 !important;
	}

	.host-places-section .host-section-heading__title {
		width: 100% !important;
		margin: 0 0 8px !important;
		font-size: 28px !important;
		line-height: 1.1 !important;
		white-space: normal !important;
		word-break: normal !important;
	}

	.host-places-section .host-section-heading__subtitle {
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		font-size: 14px !important;
		line-height: 1.5 !important;
	}

	.host-places-section .host-section-heading__link {
		align-self: flex-start !important;
		width: auto !important;
		margin: 0 0 0 58px !important;
		font-size: 14px !important;
	}

	.host-places-filters {
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: 10px !important;
		width: 100% !important;
		margin-bottom: 18px !important;
		padding-bottom: 8px !important;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		scrollbar-width: none;
	}

	.host-places-filters::-webkit-scrollbar {
		display: none;
	}

	.host-places-filter {
		flex: 0 0 auto !important;
		white-space: nowrap !important;
	}

	.host-places-grid {
		gap: 14px !important;
	}

	.host-place-card {
		flex: 0 0 88% !important;
		min-width: 0 !important;
		max-width: 88% !important;
	}

	.host-places-carousel__button {
		display: none !important;
	}
}

.host-place-modal {
	scrollbar-width: thin;
	scrollbar-color: #ed2f8f rgba(255, 255, 255, 0.08);
}

.host-place-modal::-webkit-scrollbar {
	width: 10px;
}

.host-place-modal::-webkit-scrollbar-track {
	background: rgba(255, 255, 255, 0.06);
	border-radius: 999px;
}

.host-place-modal::-webkit-scrollbar-thumb {
	background: linear-gradient(180deg, #ed2f8f, #7b4dff);
	border: 2px solid rgba(16, 10, 45, 0.9);
	border-radius: 999px;
}

.host-place-modal::-webkit-scrollbar-thumb:hover {
	background: linear-gradient(180deg, #ff4fa3, #9166ff);
}

body.theme-light .host-place-modal {
	scrollbar-color: #ed2f8f rgba(31, 24, 68, 0.12);
}

body.theme-light .host-place-modal::-webkit-scrollbar-track {
	background: rgba(31, 24, 68, 0.08);
}

body.theme-light .host-place-modal::-webkit-scrollbar-thumb {
	border-color: rgba(255, 255, 255, 0.9);
}

/* ==========================================================
   Visitor Guide
========================================================== */

.host-visitor-guide-section{
	padding:12px 0;
}

.host-visitor-guide-heading{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:20px;
	margin-bottom:28px;
	flex-wrap:wrap;
}

.host-visitor-guide-heading__main{
	display:flex;
	align-items:center;
	gap:14px;
}

.host-visitor-guide-heading__icon {
	width: 44px;
	height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;

	border: 1px solid rgba(236, 63, 130, 0.35);
	border-radius: 14px;

	background: rgba(236, 63, 130, 0.08);

	color: #ec3f82;
}

.host-visitor-guide-heading__icon svg {
	width: 20px;
	height: 20px;
	stroke: currentColor;
	stroke-width: 2;
	fill: none;
}

.host-visitor-guide-heading__title{
	margin:0;
	font-size:32px;
	font-weight:700;
}

.host-visitor-guide-heading__link{
	font-weight:600;
	text-decoration:none;
	color:var(--host-accent,#ed2f8f);
	display:flex;
	align-items:center;
	gap:8px;
}

.host-visitor-guide-carousel{
	position:relative;
	width:100%;
	padding:0;
}

.host-visitor-guide-grid{
	display:grid;
	grid-auto-flow:column;
	grid-auto-columns:calc((100% - 96px) / 5);
	gap:24px;
	width:100%;
	overflow-x:auto;
	overflow-y:hidden;
	padding:10px 2px 18px;
	scroll-behavior:smooth;
	scroll-snap-type:x mandatory;
	scrollbar-width:none;
	-ms-overflow-style:none;
}

.host-visitor-guide-grid::-webkit-scrollbar{
	display:none;
}

.host-visitor-guide-card{
	min-width:0;
	scroll-snap-align:start;
}

.host-visitor-guide-carousel__button{
	position:absolute;
	top:50%;
	z-index:10;
	display:flex;
	align-items:center;
	justify-content:center;
	width:50px;
	height:50px;
	padding:0;
	border:1px solid rgba(15, 23, 42, 0.12);
	border-radius:50%;
	background:#ffffff;
	color:#f12f91;
	font-family:Arial, sans-serif;
	font-size:34px;
	font-weight:400;
	line-height:1;
	cursor:pointer;
	box-shadow:0 8px 24px rgba(15, 23, 42, 0.14);
	transform:translateY(-50%);
	transition:
		transform 0.2s ease,
		box-shadow 0.2s ease,
		background-color 0.2s ease;
}

.host-visitor-guide-carousel__button:hover{
	background:#ec4899;
	border-color:#ec4899;
	color:#fff;
	box-shadow:0 12px 28px rgba(236,72,153,.30);
	transform:translateY(-50%) scale(1.06);
}

.host-visitor-guide-carousel__button--previous{
	left:-22px;
}

.host-visitor-guide-carousel__button--next{
	right:-22px;
}

.host-visitor-guide-carousel__button[hidden]{
	display:none;
}

@media (max-width:1200px){
	.host-visitor-guide-grid{
		grid-auto-columns:calc((100% - 48px) / 3);
	}
}

@media (max-width:767px){
	.host-visitor-guide-grid{
		grid-auto-columns:85%;
		gap:16px;
	}

	.host-visitor-guide-carousel__button{
		width:42px;
		height:42px;
		font-size:28px;
	}
}

.host-visitor-guide-card{
	min-height:132px;
	background:#fff;
	border-radius:16px;
	padding:16px;
	display:flex;
	align-items:flex-start;
	gap:14px;
	cursor:pointer;
	border:1px solid rgba(0,0,0,.08);
	box-shadow:0 8px 20px rgba(0,0,0,.06);
	transition:.25s ease;
}

.host-visitor-guide-card:hover{
	transform:translateY(-4px);
	box-shadow:0 18px 36px rgba(0,0,0,.12);
	border-color:#ed2f8f;
}

.host-visitor-guide-card__icon{
	width:48px;
	height:48px;
	display:flex;
	align-items:center;
	justify-content:center;
	color:#ed2f8f;
	font-size:2rem;
	flex:0 0 48px;
	background:none;
	border:none;
	border-radius:0;
	box-shadow:none;
	padding:0;
}

.host-visitor-guide-card__icon svg{
	width:28px;
	height:28px;
	stroke:currentColor;
	stroke-width:1.8;
	fill:none;
}

.host-visitor-guide-card__title{
	margin:0 0 5px;
	font-size:.95rem;
	line-height:1.25;
}

.host-visitor-guide-card__summary{
	display:-webkit-box;
	overflow:hidden;
	margin:0;
	font-size:.78rem;
	line-height:1.4;
	opacity:.8;
	-webkit-box-orient:vertical;
	-webkit-line-clamp:3;
}

body.dark-mode .host-visitor-guide-card{
	background:#1d1d1d;
	border-color:#333;
	box-shadow:none;
}

body.dark-mode .host-visitor-guide-card:hover{
	border-color:#ed2f8f;
	box-shadow:0 16px 32px rgba(0,0,0,.35);
}

body.dark-mode .host-visitor-guide-card__summary{
	opacity:.75;
}

/* Visitor Guide text colours */

.host-visitor-guide-card__title {
	color: #15182b;
}

.host-visitor-guide-card__summary {
	color: #66708f;
}

body.theme-dark .host-visitor-guide-card {
	background:
		linear-gradient(
			145deg,
			rgba(20, 25, 62, 0.96),
			rgba(10, 14, 38, 0.96)
		);
	border-color: rgba(255, 255, 255, 0.12);
	box-shadow: 0 14px 34px rgba(0, 0, 0, 0.28);
}

body.theme-dark .host-visitor-guide-card__title {
	color: #ffffff;
}

body.theme-dark .host-visitor-guide-card__summary {
	color: rgba(255, 255, 255, 0.68);
}

/* Visitor Guide modal — readable in both themes */

.host-visitor-guide-modal__content {
	padding: 30px;
	color: rgba(255, 255, 255, 0.88);
}

.host-visitor-guide-modal__icon{
	display:flex;
	justify-content:center;
	align-items:center;
	margin:0 auto 24px;
	color:#ed2f8f;
}

.host-visitor-guide-modal__icon i{
	font-size:4rem;
	line-height:1;
}

.host-visitor-guide-modal__content h1,
.host-visitor-guide-modal__content h2,
.host-visitor-guide-modal__content h3,
.host-visitor-guide-modal__content h4,
.host-visitor-guide-modal__content h5,
.host-visitor-guide-modal__content h6 {
	color: #ffffff;
}

.host-visitor-guide-modal__content p,
.host-visitor-guide-modal__content li,
.host-visitor-guide-modal__content span,
.host-visitor-guide-modal__description {
	color: rgba(255, 255, 255, 0.72);
}

body.theme-light .host-visitor-guide-modal__content h1,
body.theme-light .host-visitor-guide-modal__content h2,
body.theme-light .host-visitor-guide-modal__content h3,
body.theme-light .host-visitor-guide-modal__content h4,
body.theme-light .host-visitor-guide-modal__content h5,
body.theme-light .host-visitor-guide-modal__content h6 {
	color: #ffffff;
}

body.theme-light .host-visitor-guide-modal__content p,
body.theme-light .host-visitor-guide-modal__content li,
body.theme-light .host-visitor-guide-modal__content span,
body.theme-light .host-visitor-guide-modal__description {
	color: rgba(255, 255, 255, 0.72);
}

/* ==========================================================
   Discover Bulgaria
========================================================== */

.host-discover-bulgaria-carousel{
    position:relative;
    margin-top:28px;
}

.host-discover-bulgaria-grid{
    display:flex;
    gap:24px;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-behavior:smooth;
    scrollbar-width:none;
    flex-wrap:nowrap;
}

.host-discover-bulgaria-grid::-webkit-scrollbar{
    display:none;
}

.host-discover-bulgaria-card{
    position:relative;
    flex:0 0 520px;
    height:240px;
    overflow:hidden;
    border-radius:22px;
    cursor:pointer;
    background:#222;
    box-shadow:0 18px 40px rgba(0,0,0,.14);
    transition:transform .25s ease, box-shadow .25s ease;
}

.host-discover-bulgaria-card:hover{
    transform:translateY(-6px);
    box-shadow:0 24px 48px rgba(0,0,0,.18);
}

.host-discover-bulgaria-card__image{
    position:absolute;
    inset:0;
}

.host-discover-bulgaria-card__image img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.host-discover-bulgaria-card__overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(
        to top,
        rgba(0,0,0,.78),
        rgba(0,0,0,.25) 45%,
        rgba(0,0,0,.05)
    );
}

.host-discover-bulgaria-card__content{
    position:absolute;
    left:28px;
    right:28px;
    bottom:24px;
    z-index:2;
    color:#fff;
}

.host-discover-bulgaria-card__distance {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-size: 0.92rem;
	font-weight: 500;
	color: rgba(255,255,255,.92);
}

.host-discover-bulgaria-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 16px;
	flex-shrink: 0;
}

.host-discover-bulgaria-card__icon svg {
	width: 18px;
	height: 18px;
	stroke: #ff4d5a;
	stroke-width: 2.8;
	fill: rgba(255, 77, 90, .18);
	filter:
		drop-shadow(0 0 4px rgba(0,0,0,.7))
		drop-shadow(0 1px 2px rgba(0,0,0,.8));
}

.host-discover-bulgaria-card__title{
    margin:0;
    font-size:1.55rem;
    font-weight:700;
    color:#fff;
}

.host-discover-bulgaria-card__summary{
    margin-top:10px;
    max-width:90%;
    line-height:1.55;
    color:rgba(255,255,255,.9);
}

.host-discover-bulgaria-carousel__button{
    position:absolute;
    top:50%;
    z-index:5;
    width:44px;
    height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(15,23,42,.1);
    border-radius:50%;
    background:#fff;
    color:#ec348b;
    font-size:2rem;
    line-height:1;
    cursor:pointer;
    box-shadow:0 10px 28px rgba(15,23,42,.16);
    transform:translateY(-50%);
    transition:transform .2s ease, box-shadow .2s ease;
}

.host-discover-bulgaria-carousel__button:hover{
    transform:translateY(-50%) scale(1.06);
    box-shadow:0 14px 34px rgba(15,23,42,.22);
}

.host-discover-bulgaria-carousel__button--previous{
    left:-22px;
}

.host-discover-bulgaria-carousel__button--next{
    right:-22px;
}

.host-discover-bulgaria-carousel__button span{
    position:relative;
    top:-2px;
}

body.theme-light .host-place-modal-content {
	color: #ffffff;
}

body.theme-light .host-place-modal-content h2 {
	color: #ffffff !important;
}

body.theme-light .host-place-modal__description,
body.theme-light .host-place-modal__description p,
body.theme-light .host-place-modal__description li {
	color: rgba(255, 255, 255, 0.78) !important;
}

body.theme-light .host-place-modal__detail strong {
	color: #ff4da6 !important;
}

body.theme-light .host-place-modal__detail span {
	color: rgba(255, 255, 255, 0.9) !important;
}

/* ==========================================================
   Host Edition — Unified Carousel Arrow Buttons
========================================================== */

.host-fan-zones-carousel__button,
.host-places-carousel__button,
.host-visitor-guide-carousel__button,
.host-discover-bulgaria-carousel__button {
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid rgba(236, 72, 153, 0.45);
	border-radius: 50%;
	color: #ec4899;
	font-family: Arial, sans-serif;
	font-size: 2rem;
	font-weight: 400;
	line-height: 1;
	box-shadow: 0 8px 22px rgba(0, 0, 0, 0.28);
	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease,
		transform 0.2s ease,
		box-shadow 0.2s ease;
}

/* Dark mode */

body.theme-dark .host-fan-zones-carousel__button,
body.theme-dark .host-places-carousel__button,
body.theme-dark .host-visitor-guide-carousel__button,
body.theme-dark .host-discover-bulgaria-carousel__button {
	background: #111b2d;
	border-color: rgba(236, 72, 153, 0.45);
	color: #ec4899;
}

/* Light mode */

body.theme-light .host-fan-zones-carousel__button,
body.theme-light .host-places-carousel__button,
body.theme-light .host-visitor-guide-carousel__button,
body.theme-light .host-discover-bulgaria-carousel__button {
	background: #ffffff;
	border-color: rgba(236, 72, 153, 0.4);
	color: #ec4899;
	box-shadow: 0 8px 20px rgba(15, 23, 42, 0.14);
}

/* Same hover and keyboard-focus behaviour in both modes */

body.theme-dark .host-fan-zones-carousel__button:hover,
body.theme-dark .host-fan-zones-carousel__button:focus-visible,
body.theme-dark .host-places-carousel__button:hover,
body.theme-dark .host-places-carousel__button:focus-visible,
body.theme-dark .host-visitor-guide-carousel__button:hover,
body.theme-dark .host-visitor-guide-carousel__button:focus-visible,
body.theme-dark .host-discover-bulgaria-carousel__button:hover,
body.theme-dark .host-discover-bulgaria-carousel__button:focus-visible,
body.theme-light .host-fan-zones-carousel__button:hover,
body.theme-light .host-fan-zones-carousel__button:focus-visible,
body.theme-light .host-places-carousel__button:hover,
body.theme-light .host-places-carousel__button:focus-visible,
body.theme-light .host-visitor-guide-carousel__button:hover,
body.theme-light .host-visitor-guide-carousel__button:focus-visible,
body.theme-light .host-discover-bulgaria-carousel__button:hover,
body.theme-light .host-discover-bulgaria-carousel__button:focus-visible {
	background: #ec4899;
	border-color: #ec4899;
	color: #ffffff;
	box-shadow: 0 12px 28px rgba(236, 72, 153, 0.3);
	transform: translateY(-50%) scale(1.06);
	outline: none;
}

/* Host Places archive hero */

.host-page-hero {
	padding: 76px 0 58px;
	background:
		radial-gradient(
			circle at 15% 20%,
			rgba(236, 72, 153, 0.12),
			transparent 34%
		),
		radial-gradient(
			circle at 85% 20%,
			rgba(59, 130, 246, 0.12),
			transparent 34%
		);
}

.host-page-hero__content {
	width: 100%;
	max-width: none;
}

.host-page-hero__eyebrow,
.host-page-hero h1,
.host-page-hero__intro,
.host-page-hero__count {
	max-width: 980px;
}

.host-page-hero h1 {
	margin: 0 0 28px;
	font-size: clamp(4rem, 8vw, 8rem);
	line-height: 0.88;
	letter-spacing: -0.045em;
	text-transform: uppercase;
}

.host-page-hero p {
	max-width: 760px;
	margin: 0 0 14px;
	font-size: 1.05rem;
	line-height: 1.65;
}

body.theme-dark .host-page-hero {
	background:
		radial-gradient(
			circle at 15% 20%,
			rgba(236, 72, 153, 0.18),
			transparent 34%
		),
		radial-gradient(
			circle at 85% 20%,
			rgba(79, 70, 229, 0.22),
			transparent 34%
		);
}

@media (max-width: 767px) {
	.host-page-hero {
		padding: 52px 0 42px;
	}

	.host-page-hero h1 {
		margin-bottom: 22px;
		font-size: clamp(3.2rem, 16vw, 5.5rem);
	}
}

/* -------------------------------------------------------
   Host Places Toolbar
------------------------------------------------------- */

.host-places-toolbar{
	margin-top:40px;
	padding-top:32px;
	border-top:1px solid rgba(148,163,184,.18);
}

.host-places-toolbar .host-places-filters{
	display:flex;
	flex-wrap:wrap;
	gap:12px;
}

.host-places-toolbar .host-places-filter{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:12px 22px;
	border:1px solid rgba(148,163,184,.28);
	border-radius:999px;
	background:transparent;
	cursor:pointer;
	font-size:.95rem;
	font-weight:600;
	transition:
		background .25s,
		border-color .25s,
		color .25s,
		transform .25s;
}

.host-places-toolbar .host-places-filter:hover{
	transform:translateY(-2px);
}

.host-places-toolbar .host-places-filter.is-active{
	background:#ec4899;
	color:#fff;
	border-color:#ec4899;
}

body.theme-dark .host-places-toolbar{
	border-top-color:rgba(255,255,255,.08);
}

body.theme-dark .host-places-toolbar .host-places-filter{
	border-color:rgba(255,255,255,.12);
	background:rgba(255,255,255,.02);
}

body.theme-dark .host-places-toolbar .host-places-filter:hover{
	background:rgba(255,255,255,.06);
}

body.theme-dark .host-places-toolbar .host-places-filter.is-active{
	background:#ec4899;
	border-color:#ec4899;
	color:#fff;
}

/* -------------------------------------------------------
   Host Places Controls
------------------------------------------------------- */

.host-places-toolbar__controls{
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
	align-items:center;
	gap:18px;
	margin-top:24px;
}

.host-places-search{
	flex:1 1 340px;
	max-width:520px;
}

.host-places-search input{
	width:100%;
	height:48px;
	padding:0 18px;
	border:1px solid rgba(148,163,184,.28);
	border-radius:14px;
	background:transparent;
	font-size:.95rem;
	transition:border-color .25s, box-shadow .25s;
}

.host-places-search input:focus{
	outline:none;
	border-color:#ec4899;
	box-shadow:0 0 0 4px rgba(236,72,153,.12);
}

.host-places-sort select{
	height:48px;
	padding:0 44px 0 16px;
	border:1px solid rgba(148,163,184,.28);
	border-radius:14px;
	background:transparent;
	font-size:.95rem;
	cursor:pointer;
}

body.theme-dark .host-places-search input,
body.theme-dark .host-places-sort select{
	border-color:rgba(255,255,255,.12);
	background:rgba(255,255,255,.02);
	color:#fff;
}

body.theme-dark .host-places-sort select option{
	background:#1b1630;
	color:#ffffff;
}

body.theme-light .host-places-search input,
body.theme-light .host-places-sort select{
	background:#fff;
}

/* -------------------------------------------------------
   Host Places Directory
------------------------------------------------------- */

.host-places-directory-grid{
	display:grid;
	grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
	gap:28px;
	margin-top:48px;
}

.host-places-directory-card{
	display:flex;
	flex-direction:column;
	overflow:hidden;
	border-radius:22px;
	background:var(--surface-color,#fff);
	border:1px solid rgba(148,163,184,.18);
	transition:
		transform .28s ease,
		box-shadow .28s ease,
		border-color .28s ease;
}

.host-places-directory-card:hover{
	transform:translateY(-6px);
	box-shadow:0 18px 40px rgba(15,23,42,.10);
	border-color:rgba(236,72,153,.30);
}

.host-places-directory-card__image{
	display:block;
	aspect-ratio:16/10;
	overflow:hidden;
}

.host-places-directory-card__image img{
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
	transition:transform .45s ease;
}

.host-places-directory-card:hover
.host-places-directory-card__image img{
	transform:scale(1.05);
}

.host-places-directory-card__body{
	padding:22px;
}

.host-places-directory-card__category{
	margin:0 0 10px;
	font-size:.78rem;
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:.08em;
	color:#ec4899;
}

.host-places-directory-card__title{
	margin:0 0 16px;
	font-size:1.35rem;
	line-height:1.3;
}

.host-places-directory-card__title a{
	color:inherit;
	text-decoration:none;
}

.host-places-directory-card__detail{
	display:flex;
	align-items:flex-start;
	gap:10px;
	margin:8px 0;
	font-size:.94rem;
	line-height:1.5;
	opacity:.86;
}

body.theme-dark .host-places-directory-card{
	background:#131821;
	border-color:rgba(255,255,255,.08);
}

body.theme-dark .host-places-directory-card:hover{
	border-color:#ec4899;
	box-shadow:0 22px 48px rgba(0,0,0,.35);
}

.host-places-directory-empty{
	margin-top:60px;
	text-align:center;
	font-size:1.05rem;
	opacity:.75;
}

.host-places-directory-card[hidden] {
	display: none !important;
}

.host-places-directory-card__detail {
	display: grid;
	grid-template-columns: 18px minmax(0, 1fr);
	align-items: start;
	gap: 10px;
}

.host-place-detail-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	min-width: 18px;
	margin-top: 4px;
	color: #ec3f82;
	font-size: 13px;
	line-height: 1;
}

.host-place-detail-icon i {
	color: inherit;
	font-size: inherit;
	line-height: inherit;
}

.host-place-card__detail {
	display: grid;
	grid-template-columns: 18px minmax(0, 1fr);
	align-items: start;
	gap: 10px;
}

/* =========================================================
   Discover Host Country Page
   ========================================================= */

.discover-page {
	background: var(--bg);
}

.discover-hero{
	position:relative;
	width:100%;
	height:clamp(460px, 36vw, 690px);
	background-repeat:no-repeat;
	background-position:center -120px;
	background-size:cover;
	overflow:hidden;
}

@media (max-width:1200px){
	.discover-hero{
		height:clamp(430px, 44vw, 600px);
		background-position:center top;
	}
}

@media (max-width:720px){
	.discover-hero{
		height:390px;
		background-position:center top;
	}
}

.discover-directory-section {
	padding: 54px 0 76px;
}

.discover-directory-heading {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	margin-bottom: 30px;
}

.discover-directory-heading__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 44px;
	width: 44px;
	height: 44px;
	border: 1px solid rgba(236, 63, 130, .35);
	border-radius: 14px;
	background: rgba(236, 63, 130, .08);
	color: #ec3f82;
	font-size: 18px;
}

.discover-directory-heading h2 {
	margin: 0 0 5px;
	font-family: var(--font-body);
	font-size: clamp(1.7rem, 3vw, 2.3rem);
	line-height: 1.15;
	text-transform: none;
}

.discover-directory-heading p {
	max-width: 760px;
	margin: 0;
	color: var(--muted);
	font-size: 1rem;
	line-height: 1.55;
}

@media (max-width: 720px) {
	.discover-hero,
	.discover-hero__container {
		min-height: 420px;
	}

	.discover-hero__container {
		padding-top: 78px;
		padding-bottom: 42px;
	}

	.discover-breadcrumbs {
		top: 20px;
		left: 0;
	}

	.discover-hero__title {
		font-size: clamp(3.3rem, 17vw, 5rem);
	}

	.discover-hero__eyebrow {
		letter-spacing: .2em;
	}

	.discover-directory-heading {
		align-items: flex-start;
	}
}

.discover-layout{
	display:grid;
	grid-template-columns:220px minmax(0,1fr);
	gap:28px;
	align-items:start;
}

.discover-sidebar{
	position:sticky;
	top:120px;
}

.discover-tip-card{
	padding:26px;
	background:#fff;
	border:1px solid rgba(0,0,0,.06);
	border-radius:24px;
	box-shadow:0 18px 42px rgba(18,27,52,.08);
}

.discover-tip-card h3{
	display:flex;
	align-items:center;
	gap:12px;
	margin:0 0 14px;
	font-size:1.2rem;
}

.discover-tip-card h3 i{
	color:#ec3f82;
	font-size:20px;
}

.discover-tip-card p{
	margin:0;
	color:var(--muted);
	line-height:1.7;
}

.discover-results{
	min-width:0;
}

@media (max-width:1100px){

	.discover-layout{
		grid-template-columns:1fr;
	}

	.discover-sidebar{
		position:static;
	}
}

.host-discover-directory-grid{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:22px;
}

.host-discover-directory-card{
	display:flex;
	flex-direction:column;
	height:100%;
	background:#fff;
	border:1px solid rgba(0,0,0,.06);
	border-radius:20px;
	overflow:hidden;
	box-shadow:0 14px 32px rgba(18,27,52,.08);
	transition:
		transform .28s,
		box-shadow .28s;
}

.host-discover-directory-card:hover{
	transform:translateY(-6px);
	box-shadow:0 22px 46px rgba(18,27,52,.13);
}

.host-discover-directory-card__image{
	height:210px;
	overflow:hidden;
}

.host-discover-directory-card__image img{
	width:100%;
	height:100%;
	object-fit:cover;
	transition:transform .45s;
}

.host-discover-directory-card:hover
.host-discover-directory-card__image img{
	transform:scale(1.05);
}

.host-discover-directory-card__body{
	display:flex;
	flex-direction:column;
	flex:1;
	padding:20px;
}

.host-discover-directory-card__label{
	margin:0 0 7px;
	color:#ec3f82;
	font-size:.7rem;
	font-weight:800;
	letter-spacing:.13em;
	line-height:1.2;
	text-transform:uppercase;
}

.host-discover-directory-card__title{
	margin:0 0 10px;
	font-size:1.3rem;
	line-height:1.2;
}

.host-discover-directory-card__excerpt{
	display:-webkit-box;
	flex:1;
	margin:0 0 18px;
	overflow:hidden;
	color:var(--muted);
	font-size:.95rem;
	line-height:1.6;
	-webkit-box-orient:vertical;
	-webkit-line-clamp:3;
}

.host-discover-directory-card__distance{
	display:grid;
	grid-template-columns:18px 1fr;
	gap:9px;
	margin:0 0 18px;
	font-size:.9rem;
}

.host-discover-directory-card__footer{
	margin-top:auto;
	padding-top:14px;
	border-top:1px solid rgba(0,0,0,.06);
}

.host-discover-directory-card__explore{
	display:inline-flex;
	align-items:center;
	gap:9px;
	color:#ec3f82;
	font-size:.9rem;
	font-weight:700;
}

.host-discover-directory-card__explore i{
	font-size:12px;
	transition:transform .25s;
}

.host-discover-directory-card:hover
.host-discover-directory-card__explore i{
	transform:translateX(4px);
}

@media (max-width:1250px){
	.host-discover-directory-grid{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}
}

@media (max-width:720px){
	.host-discover-directory-grid{
		grid-template-columns:1fr;
	}

	.host-discover-directory-card__image{
		height:200px;
	}
}

.host-discover-directory-card__label{
	margin:0 0 8px;
	color:#ec3f82;
	font-size:.72rem;
	font-weight:800;
	letter-spacing:.14em;
	line-height:1.2;
	text-transform:uppercase;
}

/* Discover page: readable white cards in dark mode */

body.theme-dark .discover-tip-card,
body.theme-dark .host-discover-directory-card{
	background:#ffffff;
}

body.theme-dark .discover-tip-card h3,
body.theme-dark .host-discover-directory-card__title{
	color:#101426 !important;
}

body.theme-dark .discover-tip-card p,
body.theme-dark .host-discover-directory-card__excerpt{
	color:#5f6782 !important;
}

body.theme-dark .host-discover-directory-card__distance,
body.theme-dark .host-discover-directory-card__distance span{
	color:#20263a !important;
}

body.theme-dark .host-discover-directory-card__footer{
	border-top-color:rgba(16,20,38,.12);
}

body.theme-dark .host-discover-directory-card__label,
body.theme-dark .host-discover-directory-card__explore,
body.theme-dark .discover-tip-card h3 i,
body.theme-dark .host-place-detail-icon{
	color:#ec3f82 !important;
}

/* ==========================================================
   Visitor Guide Page
   ========================================================== */

.visitor-guide-page{
	background:var(--bg);
}

.visitor-guide-hero{

	height:620px;

	background-repeat:no-repeat;

	background-size:cover;

	background-position:center 48%;

	overflow:hidden;
}

.visitor-guide-directory-section{
	padding:64px 0 80px;
}

.visitor-guide-directory-heading{
	display:flex;
	align-items:flex-start;
	gap:18px;
	margin-bottom:36px;
}

.visitor-guide-directory-heading__icon{
	display:flex;
	align-items:center;
	justify-content:center;
	width:48px;
	height:48px;
	border-radius:16px;
	background:rgba(236,63,130,.08);
	border:1px solid rgba(236,63,130,.28);
	color:#ec3f82;
	font-size:20px;
}

.visitor-guide-directory-heading h2{
	margin:0 0 8px;
	font-size:2.2rem;
	line-height:1.15;
}

.visitor-guide-directory-heading p{
	margin:0;
	max-width:720px;
	color:var(--muted);
	line-height:1.7;
}

.visitor-guide-page-content{

	padding:90px;

	border-radius:28px;

	background:#fff;

	border:1px solid rgba(0,0,0,.05);

	box-shadow:0 18px 48px rgba(18,27,52,.08);

	text-align:center;
}

.visitor-guide-placeholder{

	margin:0;

	font-size:1.2rem;

	color:var(--muted);
}

.visitor-guide-page-content{
	padding:0;
	background:transparent;
	border:0;
	border-radius:0;
	box-shadow:none;
	text-align:left;
}

.visitor-guide-directory-grid{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:22px;
}

.visitor-guide-directory-grid .host-visitor-guide-card{
	position:relative;
	min-height:150px;
	padding:26px 52px 26px 26px;
	background:#fff;
	border:1px solid rgba(18,27,52,.08);
	border-radius:22px;
	box-shadow:0 14px 34px rgba(18,27,52,.07);
	transition:
		transform .25s ease,
		box-shadow .25s ease;
}

.visitor-guide-directory-grid .host-visitor-guide-card:hover{
	transform:translateY(-5px);
	box-shadow:0 22px 46px rgba(18,27,52,.12);
}

.visitor-guide-card__arrow{
	position:absolute;
	right:22px;
	top:50%;
	color:#ec3f82;
	font-size:14px;
	transform:translateY(-50%);
	transition:transform .2s ease;
}

.host-visitor-guide-card:hover .visitor-guide-card__arrow{
	transform:translate(4px,-50%);
}

@media (max-width:1050px){
	.visitor-guide-directory-grid{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}
}

@media (max-width:680px){
	.visitor-guide-directory-grid{
		grid-template-columns:1fr;
	}
}

/* ===============================
   VIDEO MODAL - FORCE DARK THEME
================================ */

#videoModal .history-modal-box{
	color:#fff;
}

#videoModal h1,
#videoModal h2,
#videoModal h3,
#videoModal h4,
#videoModal h5,
#videoModal strong{
	color:#fff !important;
}

#videoModal p,
#videoModal .meta,
#videoModal small{
	color:rgba(255,255,255,.72) !important;
}

#videoModal .related-modal-card h5{
	color:#fff !important;
}

#videoModal .related-modal-card p{
	color:rgba(255,255,255,.72) !important;
}

/* =========================================================
   Countries Page Hero
   ========================================================= */

.countries-hero{
	position:relative;
	display:flex;
	align-items:center;
	width:100%;
	height:520px;
	overflow:hidden;

	background-color:#030612;
	background-repeat:no-repeat;
	background-position:center;
	background-size:contain;

	border-bottom:1px solid var(--border);
}

.countries-hero::before{
	content:"";
	position:absolute;
	inset:0;
	background:
		linear-gradient(
			90deg,
			rgba(3,6,18,.88) 0%,
			rgba(3,6,18,.62) 34%,
			rgba(3,6,18,.18) 68%,
			rgba(3,6,18,.06) 100%
		),
		linear-gradient(
			0deg,
			rgba(3,6,18,.42) 0%,
			transparent 55%
		);
}

.countries-hero__content{
	position:relative;
	z-index:2;
	width:min(1180px,calc(100% - 40px));
	max-width:none;
	margin-inline:auto;
	padding:0;
}

.countries-hero__title{
	max-width:620px;
	margin:0 0 18px;
	color:#fff;
	font-family:var(--font-display);
	font-size:clamp(4rem,7vw,7rem);
	font-weight:900;
	letter-spacing:-.03em;
	line-height:.88;
	text-transform:uppercase;
	text-shadow:0 8px 28px rgba(0,0,0,.45);
}

.countries-hero__description{
	max-width:620px;
	margin:0;
	color:rgba(255,255,255,.9);
	font-size:1.08rem;
	line-height:1.65;
	text-shadow:0 3px 14px rgba(0,0,0,.65);
}

@media (max-width:900px){
	.countries-hero{
		height:380px;
		background-position:center 50%;
	}

	.countries-hero__title{
		font-size:clamp(3.5rem,10vw,5.5rem);
	}
}

@media (max-width:600px){
	.countries-hero{
		height:330px;
		align-items:flex-end;
		background-position:center 50%;
	}

.countries-hero::before{
	content:"";
	position:absolute;
	inset:0;
	z-index:1;
	background:
		linear-gradient(
			90deg,
			#030612 0%,
			rgba(3,6,18,.82) 10%,
			rgba(3,6,18,.38) 24%,
			rgba(3,6,18,.08) 42%,
			rgba(3,6,18,.08) 58%,
			rgba(3,6,18,.38) 76%,
			rgba(3,6,18,.82) 90%,
			#030612 100%
		),
		linear-gradient(
			0deg,
			rgba(3,6,18,.28) 0%,
			transparent 45%
		);
	pointer-events:none;
}

	.countries-hero__content{
		width:min(100% - 28px,1180px);
		padding-bottom:34px;
	}

	.countries-hero__title{
		margin-bottom:12px;
		font-size:clamp(3rem,16vw,4.5rem);
	}

	.countries-hero__description{
		font-size:.95rem;
		line-height:1.5;
	}
}

/* Countries filters — visible checkboxes in light mode */

body.theme-light .countries-filter label.check-row input{
	border:1px solid rgba(25,30,65,.35) !important;
	background:#ffffff !important;
}

body.theme-light .countries-filter label.check-row input:hover{
	border-color:#8f35ff !important;
}

body.theme-light .countries-filter label.check-row input:checked{
	border-color:transparent !important;
	background:var(--gradient) !important;
}

body.theme-light .countries-filter{
	border-color:rgba(25,30,65,.16);
}

body.theme-light .countries-filter .filter-group{
	border-top-color:rgba(25,30,65,.14);
}

/* =========================================================
   National Selections Hero
   ========================================================= */

.national-selections-hero{
	position:relative;
	display:flex;
	align-items:flex-end;
	width:100%;
	height:520px;
	overflow:hidden;

	background-color:#030612;
	background-repeat:no-repeat;
	background-position:center;
	background-size:contain;

	border-bottom:1px solid var(--border);
}

.national-selections-hero::before{
	content:"";
	position:absolute;
	inset:0;
	background:
		linear-gradient(
			90deg,
			#030612 0%,
			rgba(3,6,18,.70) 14%,
			rgba(3,6,18,.12) 40%,
			rgba(3,6,18,.08) 62%,
			rgba(3,6,18,.55) 88%,
			#030612 100%
		),
		linear-gradient(
			0deg,
			rgba(3,6,18,.76) 0%,
			transparent 55%
		);
}

.national-selections-hero__content{
	position:relative;
	z-index:2;
	padding-bottom:34px;
}

.national-selections-hero__year{
	display:inline-flex;
	margin:0;
	padding:9px 15px;
	border:1px solid rgba(255,255,255,.30);
	border-radius:999px;
	background:rgba(5,8,25,.55);
	color:#fff;
	font-size:.88rem;
	font-weight:800;
	letter-spacing:.08em;
	text-transform:uppercase;
	box-shadow:0 8px 24px rgba(0,0,0,.25);
	backdrop-filter:blur(10px);
}

@media (max-width:900px){
	.national-selections-hero{
		height:360px;
		background-position:center;
	}
}

@media (max-width:600px){
	.national-selections-hero{
		height:300px;
	}

	.national-selections-hero__content{
		padding-bottom:24px;
	}
}

/* =========================================================
   National Selection Details — keep hero text readable
   ========================================================= */

body.theme-light .selection-detail-hero{
	color:#ffffff;
}

body.theme-light .selection-detail-hero h1,
body.theme-light .selection-detail-hero h2,
body.theme-light .selection-detail-hero h3,
body.theme-light .selection-detail-hero strong{
	color:#ffffff !important;
}

body.theme-light .selection-detail-country-title p{
	color:#f32bc6 !important;
}

body.theme-light .selection-detail-status{
	color:#ffffff !important;
	background:rgba(255,255,255,.06);
	border-color:rgba(255,255,255,.14);
}

body.theme-light .selection-detail-meta div{
	background:rgba(255,255,255,.035);
	border-color:rgba(255,255,255,.12);
}

body.theme-light .selection-detail-meta span{
	color:rgba(255,255,255,.58) !important;
}

body.theme-light .selection-detail-meta strong{
	color:#ffffff !important;
}

body.theme-light .selection-detail-artist-label{
	color:rgba(255,255,255,.78) !important;
}

body.theme-light .selection-detail-artist-copy h2{
	color:#ffffff !important;
}

body.theme-light .selection-detail-artist-copy .btn-outline{
	color:#ffffff !important;
	border-color:#8f35ff;
}

/* =========================================================
   Shared Artist Modal
   ========================================================= */

#artistModal[hidden]{
	display:none;
}

#artistModal{
	position:fixed;
	inset:0;
	z-index:999999;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:30px;
	opacity:0;
	visibility:hidden;
	transition:opacity .2s ease, visibility .2s ease;
}

#artistModal.is-open{
	opacity:1;
	visibility:visible;
}

#artistModal .history-modal-backdrop{
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	margin:0;
	padding:0;
	border:0;
	background:rgba(2,4,14,.82);
	backdrop-filter:blur(10px);
}

#artistModal .history-modal-panel{
	position:relative;
	z-index:2;
	width:min(900px,100%);
	max-height:calc(100vh - 80px);
	overflow:hidden;
	border:1px solid rgba(255,255,255,.13);
	border-radius:20px;
	background:linear-gradient(
		145deg,
		rgba(25,27,48,.98),
		rgba(10,12,28,.99)
	);
	box-shadow:0 30px 90px rgba(0,0,0,.65);
}

#artistModal .history-modal-body{
	max-height:calc(100vh - 80px);
	overflow-y:auto;
	padding:38px;
}

#artistModal .history-modal-close{
	position:absolute;
	top:16px;
	right:16px;
	z-index:5;
	display:grid;
	place-items:center;
	width:42px;
	height:42px;
	padding:0;
	border:1px solid rgba(255,255,255,.14);
	border-radius:50%;
	background:rgba(8,10,24,.88);
	color:#fff;
	font-size:27px;
	cursor:pointer;
}

#artistModal .history-modal-close:hover{
	color:var(--pink);
	border-color:var(--pink);
}

.artist-modal-profile{
	display:grid;
	grid-template-columns:minmax(220px,310px) minmax(0,1fr);
	gap:34px;
	align-items:start;
}

.artist-modal-sidebar{
	display:grid;
	gap:16px;
	align-content:start;
}

.artist-modal-image{
	display:block;
	width:100%;
	aspect-ratio:4 / 5;
	object-fit:cover;
	border-radius:16px;
	box-shadow:0 20px 45px rgba(0,0,0,.35);
}

.artist-modal-details{
	min-width:0;
	padding-top:10px;
	color:#fff;
}

.artist-modal-label{
	margin:0 0 8px;
	color:var(--pink);
	font-size:12px;
	font-weight:900;
	letter-spacing:.14em;
	text-transform:uppercase;
}

.artist-modal-details h2{
	margin:0 50px 12px 0;
	color:#fff !important;
	font-size:clamp(2rem,5vw,3.4rem);
	line-height:1.05;
}

.artist-modal-country{
	margin:0 0 24px;
	color:rgba(255,255,255,.7);
}

.artist-modal-country strong{
	color:#fff;
}

.artist-modal-bio{
	margin-top:22px;
	color:rgba(255,255,255,.72);
	font-size:15px;
	line-height:1.75;
}

.artist-modal-links{
	display:grid;
	gap:10px;
	margin-top:16px;
}

.artist-modal-links a{
	display:flex;
	align-items:center;
	width:100%;
	min-height:46px;
	padding:10px 14px;
	border:1px solid rgba(255,255,255,.12);
	border-radius:12px;
	background:rgba(255,255,255,.04);
	color:#fff;
	font-size:13px;
	font-weight:800;
}

.artist-modal-links a:hover{
	color:var(--pink);
	border-color:var(--pink);
	background:rgba(243,43,198,.10);
}

body.modal-open{
	overflow:hidden;
}

@media (max-width:720px){
	#artistModal{
		align-items:flex-end;
		padding:14px;
	}

	#artistModal .history-modal-body{
		max-height:calc(100vh - 28px);
		padding:28px 20px 30px;
	}

	.artist-modal-profile{
		grid-template-columns:1fr;
		gap:24px;
	}

	.artist-modal-image{
		width:min(100%,330px);
		margin:0 auto;
		aspect-ratio:1 / 1;
	}
}

/* National Selection — View Artist button */

.selection-detail-artist-copy .artist-modal-trigger{
	position:relative;
	overflow:hidden;
	min-width:150px;
	border:1px solid #a855f7;
	background:rgba(8,10,28,.45);
	color:#ffffff !important;
	cursor:pointer;
	transition:
		background .2s ease,
		border-color .2s ease,
		box-shadow .2s ease,
		transform .2s ease;
}

.selection-detail-artist-copy .artist-modal-trigger::before{
	content:"";
	position:absolute;
	inset:0;
	z-index:-1;
	background:linear-gradient(
		100deg,
		var(--pink),
		var(--purple),
		var(--blue)
	);
	opacity:0;
	transition:opacity .2s ease;
}

.selection-detail-artist-copy .artist-modal-trigger:hover,
.selection-detail-artist-copy .artist-modal-trigger:focus-visible{
	border-color:transparent;
	color:#ffffff !important;
	box-shadow:
		0 12px 28px rgba(143,53,255,.38),
		0 0 22px rgba(243,43,198,.2);
	transform:translateY(-2px);
}

.selection-detail-artist-copy .artist-modal-trigger:hover::before,
.selection-detail-artist-copy .artist-modal-trigger:focus-visible::before{
	opacity:1;
}

.selection-detail-artist-copy .artist-modal-trigger:active{
	transform:translateY(0) scale(.98);
}

/* =========================================================
   Artist Modal — social icons and readable dark appearance
   ========================================================= */

#artistModal .artist-modal-links a{
	display:flex;
	align-items:center;
	gap:12px;
	color:#ffffff !important;
}

#artistModal .artist-modal-links img{
	display:block;
	width:22px;
	height:22px;
	flex:0 0 22px;
	object-fit:contain;
}

#artistModal .artist-modal-links span{
	color:#ffffff !important;
	line-height:1;
}

#artistModal .artist-modal-details,
#artistModal .artist-modal-details h2,
#artistModal .artist-modal-details h3,
#artistModal .artist-modal-details strong{
	color:#ffffff !important;
}

#artistModal .artist-modal-country{
	color:rgba(255,255,255,.72) !important;
}

#artistModal .artist-modal-country strong{
	color:#ffffff !important;
}

#artistModal .artist-modal-bio,
#artistModal .artist-modal-bio p,
#artistModal .artist-modal-bio li{
	color:rgba(255,255,255,.76) !important;
}

#artistModal .artist-modal-bio strong,
#artistModal .artist-modal-bio b{
	color:#ffffff !important;
}

#artistModal .artist-modal-bio em,
#artistModal .artist-modal-bio i{
	color:rgba(255,255,255,.88) !important;
}

body.theme-light #artistModal .artist-modal-label{
	color:var(--pink) !important;
}

body.theme-light #artistModal .artist-modal-links a{
	border-color:rgba(255,255,255,.14);
	background:rgba(255,255,255,.045);
}

body.theme-light #artistModal .artist-modal-links a:hover,
body.theme-light #artistModal .artist-modal-links a:focus-visible{
	color:var(--pink) !important;
	border-color:var(--pink);
	background:rgba(243,43,198,.12);
}

body.theme-light #artistModal .artist-modal-links a:hover span,
body.theme-light #artistModal .artist-modal-links a:focus-visible span{
	color:var(--pink) !important;
}

/* =========================================================
   Artist Modal — achievements readability in light mode
   ========================================================= */

body.theme-light #artistModal .artist-modal-info-card{
	border-color:rgba(255,255,255,.14);
	background:rgba(255,255,255,.05);
}

body.theme-light #artistModal .artist-modal-card-title{
	color:#ffffff !important;
}

body.theme-light #artistModal .artist-achievement-item,
body.theme-light #artistModal .artist-participation-item{
	background:rgba(255,255,255,.075);
}

body.theme-light #artistModal .artist-achievement-label,
body.theme-light #artistModal .artist-participation-year,
body.theme-light #artistModal .artist-participation-detail-label{
	color:rgba(255,255,255,.62) !important;
}

body.theme-light #artistModal .artist-achievement-value,
body.theme-light #artistModal .artist-participation-song,
body.theme-light #artistModal .artist-participation-details strong{
	color:#ffffff !important;
}

body.theme-light #artistModal .artist-participation-country,
body.theme-light #artistModal .artist-participation-result,
body.theme-light #artistModal .artist-participation-points{
	background:rgba(255,255,255,.055);
}

body.theme-light #artistModal .artist-participation-winner{
	color:#ffd54f !important;
	background:rgba(255,213,79,.15);
}

body.theme-light #artistModal .artist-modal-info-card:hover{
	border-color:rgba(243,43,198,.48);
	background:rgba(255,255,255,.07);
}

/* =========================================================
   History Page – Full Featured Image Hero
   ========================================================= */

.history-hero{
	position:relative;
	display:flex;
	align-items:flex-end;

	width:100%;
	height:520px;
	overflow:hidden;

	background-color:#030612;
	background-repeat:no-repeat;
	background-position:center;
	background-size:contain;

	border-bottom:1px solid var(--border);
}

.history-hero::before{
	content:"";
	position:absolute;
	inset:0;
	background:
		linear-gradient(
			90deg,
			#030612 0%,
			rgba(3,6,18,.70) 14%,
			rgba(3,6,18,.10) 38%,
			rgba(3,6,18,.10) 62%,
			rgba(3,6,18,.70) 86%,
			#030612 100%
		),
		linear-gradient(
			0deg,
			rgba(3,6,18,.72) 0%,
			transparent 60%
		);
}

/* History page navigation icons */

.history-pill-nav .icon-bubble {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 46px;

	width: 46px;
	height: 46px;

	border: 0;
	border-radius: 0;
	background: transparent;

	color: var(--pink);
	font-size: 28px;
	line-height: 1;
}

.history-pill-nav .icon-bubble i {
	display: block;
	width: auto;
	height: auto;
	line-height: 1;
}

.history-pill-nav .quick-card {
	gap: 16px;
}

.history-pill-nav .quick-card:hover .icon-bubble {
	color: var(--cyan);
	transform: scale(1.08);
}

.history-pill-nav .icon-bubble {
	transition:
		color 180ms ease,
		transform 180ms ease;
}

/* =========================================================
   About Sofia
========================================================= */

.about-sofia-page {
	overflow: hidden;
	background: var(--bg);
	color: var(--text);
}

.about-sofia-container {
	width: min(1440px, calc(100% - 48px));
	margin-inline: auto;
}

/* Hero */

.about-sofia-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 650px;
	overflow: hidden;
	border-bottom: 1px solid var(--border);
	background:
		linear-gradient(
			90deg,
			rgba(3, 6, 18, 0.98) 0%,
			rgba(3, 6, 18, 0.92) 28%,
			rgba(3, 6, 18, 0.48) 55%,
			rgba(3, 6, 18, 0.12) 100%
		),
		var(--about-sofia-hero-image) center 42% / cover no-repeat,
		#070b1d;
}

.about-sofia-hero__overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(
			0deg,
			rgba(3, 6, 18, 0.72) 0%,
			transparent 52%
		);
	pointer-events: none;
}

.about-sofia-hero__layout {
	position: relative;
	z-index: 2;
	display: block;
}

.about-sofia-hero__content {
	width: min(620px, 100%);
	padding: 76px 0;
}

.about-sofia-eyebrow {
	margin: 0 0 14px;
	color: var(--pink);
	font-size: 0.76rem;
	font-weight: 900;
	letter-spacing: 0.12em;
	line-height: 1.45;
	text-transform: uppercase;
}

.about-sofia-hero__title {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	margin: 0 0 24px;
	color: #ffffff;
	font-family: var(--font-display);
	font-size: clamp(5rem, 9vw, 9rem);
	line-height: 0.78;
	letter-spacing: -0.035em;
	text-transform: uppercase;
}

.about-sofia-hero__title span {
	color: #ffffff;
}

.about-sofia-hero__title strong {
	margin-top: 18px;
	background: var(--gradient);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font: inherit;
}

.about-sofia-hero__subtitle {
	max-width: 520px;
	margin: 0 0 18px;
	color: #ffffff;
	font-family: var(--font-body);
	font-size: clamp(1.55rem, 2.4vw, 2.35rem);
	font-weight: 800;
	line-height: 1.18;
	text-transform: none;
}

.about-sofia-hero__description {
	max-width: 570px;
	margin: 0;
	color: rgba(255, 255, 255, 0.76);
	font-size: 1rem;
	line-height: 1.75;
}

.about-sofia-hero__features {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
	margin-top: 38px;
}

.about-sofia-hero-feature {
	display: flex;
	align-items: center;
	gap: 13px;
	min-width: 0;
	padding: 6px 20px;
	border-right: 1px solid rgba(255, 255, 255, 0.18);
}

.about-sofia-hero-feature:first-child {
	padding-left: 0;
}

.about-sofia-hero-feature:last-child {
	border-right: 0;
}

.about-sofia-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 38px;
	width: 38px;
	height: 38px;
	color: var(--pink);
	font-size: 1.55rem;
}

.about-sofia-hero-feature strong,
.about-sofia-hero-feature span {
	display: block;
}

.about-sofia-hero-feature strong {
	color: #ffffff;
	font-size: 0.73rem;
	font-weight: 900;
	line-height: 1.3;
	text-transform: uppercase;
}

.about-sofia-hero-feature div > span {
	margin-top: 4px;
	color: rgba(255, 255, 255, 0.66);
	font-size: 0.7rem;
	line-height: 1.35;
}

/* General sections */

.about-sofia-section {
	padding: 72px 0;
}

.about-sofia-section-heading {
	margin-bottom: 32px;
}

.about-sofia-section-heading h2,
.about-sofia-intro__content h2,
.about-sofia-eurovision h2 {
	margin: 0;
	font-family: var(--font-body);
	text-transform: none;
}

.about-sofia-section-heading h2 {
	font-size: clamp(2rem, 4vw, 3.2rem);
	line-height: 1.1;
}

.about-sofia-section-heading > p:last-child {
	max-width: 720px;
	margin: 14px 0 0;
	color: var(--muted);
	line-height: 1.7;
}

.about-sofia-section-heading--center {
	text-align: center;
}

.about-sofia-section-heading--center > p:last-child {
	margin-right: auto;
	margin-left: auto;
}

/* Facts */

.about-sofia-facts {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	overflow: hidden;
	border: 1px solid var(--border);
	border-radius: 18px;
	background: var(--surface);
	box-shadow: 0 18px 46px rgba(0, 0, 0, 0.12);
}

.about-sofia-fact {
	min-width: 0;
	padding: 28px 22px;
	border-right: 1px solid var(--border);
}

.about-sofia-fact:last-child {
	border-right: 0;
}

.about-sofia-fact__icon {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	width: 42px;
	height: 42px;
	margin-bottom: 16px;
	color: var(--pink);
	font-size: 1.55rem;
}

.about-sofia-fact h3 {
	margin: 0 0 9px;
	font-family: var(--font-body);
	font-size: 0.78rem;
	font-weight: 900;
	line-height: 1.3;
	text-transform: uppercase;
}

.about-sofia-fact p {
	margin: 0;
	color: var(--muted);
	font-size: 0.82rem;
	line-height: 1.55;
}

/* Introduction */

.about-sofia-intro-section {
	padding: 72px 0;
	border-block: 1px solid var(--border);
	background: var(--surface-2);
}

.about-sofia-intro {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr);
	gap: 70px;
	align-items: center;
}

.about-sofia-intro__content h2 {
	max-width: 760px;
	margin-bottom: 26px;
	font-size: clamp(2.1rem, 4vw, 3.6rem);
	line-height: 1.1;
}

.about-sofia-intro__content p {
	max-width: 820px;
	margin: 0 0 18px;
	color: var(--muted);
	line-height: 1.8;
}

.about-sofia-intro__quote {
	padding: 36px;
	border: 1px solid rgba(243, 43, 198, 0.3);
	border-radius: 22px;
	background:
		linear-gradient(
			145deg,
			rgba(243, 43, 198, 0.1),
			rgba(31, 116, 255, 0.08)
		);
}

.about-sofia-intro__quote i {
	margin-bottom: 20px;
	color: var(--pink);
	font-size: 2.4rem;
}

.about-sofia-intro__quote blockquote {
	margin: 0;
	color: var(--text);
	font-size: clamp(1.3rem, 2.2vw, 2rem);
	font-weight: 800;
	line-height: 1.45;
}

/* Why visit */

.about-sofia-section--visit {
	background:
		radial-gradient(
			circle at 50% 0,
			rgba(143, 53, 255, 0.1),
			transparent 36rem
		);
}

.about-sofia-visit-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}

.about-sofia-visit-card {
	padding: 28px;
	border: 1px solid var(--border);
	border-radius: 18px;
	background: var(--surface);
	box-shadow: 0 14px 34px rgba(0, 0, 0, 0.1);
	transition:
		transform 0.24s ease,
		border-color 0.24s ease,
		box-shadow 0.24s ease;
}

.about-sofia-visit-card:hover {
	transform: translateY(-6px);
	border-color: rgba(243, 43, 198, 0.45);
	box-shadow: 0 22px 48px rgba(0, 0, 0, 0.16);
}

.about-sofia-visit-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	width: 46px;
	height: 46px;
	margin-bottom: 16px;
	color: var(--pink);
	font-size: 1.55rem;
}

.about-sofia-visit-card h3 {
	margin: 0 0 12px;
	font-family: var(--font-body);
	font-size: 1.2rem;
	line-height: 1.3;
	text-transform: none;
}

.about-sofia-visit-card p {
	margin: 0;
	color: var(--muted);
	font-size: 0.92rem;
	line-height: 1.7;
}

/* Eurovision statement */

.about-sofia-eurovision {
	padding: 24px 0 78px;
}

.about-sofia-eurovision .about-sofia-container {
	padding: 48px;
	border: 1px solid rgba(243, 43, 198, 0.3);
	border-radius: 24px;
	background:
		linear-gradient(
			135deg,
			rgba(16, 18, 48, 0.98),
			rgba(43, 18, 74, 0.98)
		);
	box-shadow: var(--shadow);
}

.about-sofia-eurovision h2 {
	max-width: 850px;
	margin-bottom: 22px;
	color: #ffffff;
	font-size: clamp(2rem, 3.5vw, 3.4rem);
	line-height: 1.15;
}

.about-sofia-eurovision p:not(.about-sofia-eyebrow) {
	max-width: 900px;
	margin: 0;
	color: rgba(255, 255, 255, 0.72);
	line-height: 1.75;
}

.about-sofia-eurovision strong {
	display: block;
	margin-top: 24px;
	color: var(--pink);
	font-size: 1.15rem;
}

/* Responsive */

@media (max-width: 1100px) {
	.about-sofia-facts {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.about-sofia-fact:nth-child(3) {
		border-right: 0;
	}

	.about-sofia-fact:nth-child(n + 4) {
		border-top: 1px solid var(--border);
	}

	.about-sofia-intro {
		grid-template-columns: 1fr;
		gap: 36px;
	}
}

@media (max-width: 850px) {
	.about-sofia-hero {
		background-position: 62% center;
	}

	.about-sofia-hero__content {
		width: min(560px, 100%);
	}

	.about-sofia-visit-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 720px) {
	.about-sofia-container {
		width: min(100% - 28px, 1440px);
	}

	.about-sofia-hero {
		min-height: 680px;
		align-items: flex-end;
		background:
			linear-gradient(
				0deg,
				rgba(3, 6, 18, 0.99) 0%,
				rgba(3, 6, 18, 0.86) 56%,
				rgba(3, 6, 18, 0.2) 100%
			),
			var(--about-sofia-hero-image) 62% center / cover no-repeat,
			#070b1d;
	}

	.about-sofia-hero__content {
		padding: 80px 0 42px;
	}

	.about-sofia-hero__title {
		font-size: clamp(4.2rem, 22vw, 6.3rem);
	}

	.about-sofia-hero__features {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.about-sofia-hero-feature {
		padding: 0;
		border-right: 0;
	}

	.about-sofia-section {
		padding: 54px 0;
	}

	.about-sofia-facts {
		grid-template-columns: 1fr;
	}

	.about-sofia-fact,
	.about-sofia-fact:nth-child(3) {
		border-right: 0;
		border-bottom: 1px solid var(--border);
	}

	.about-sofia-fact:nth-child(n + 4) {
		border-top: 0;
	}

	.about-sofia-fact:last-child {
		border-bottom: 0;
	}

	.about-sofia-visit-grid {
		grid-template-columns: 1fr;
	}

	.about-sofia-eurovision .about-sofia-container {
		padding: 30px 24px;
	}
}

/* =========================================================
   Calendar Page Hero
========================================================= */

.calendar-hero {
	width: 100%;
	height: 520px;

	background-color: #030612;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;

	border-bottom: 1px solid var(--border);
}

@media (max-width: 1000px) {
	.calendar-hero {
		height: 420px;
	}
}

@media (max-width: 720px) {
	.calendar-hero {
		height: 280px;
		background-size: cover;
	}
}

/* Calendar event type tags */

.calendar-event-type {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	margin-bottom: 4px;
	padding: 4px 9px;

	border: 1px solid rgba(143, 53, 255, 0.72);
	border-radius: 999px;

	background: rgba(143, 53, 255, 0.12);
	color: var(--purple);

	font-size: 0.68rem;
	font-weight: 900;
	line-height: 1.1;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

body.theme-dark .calendar-event-type {
	border-color: rgba(192, 132, 252, 0.72);
	background: rgba(143, 53, 255, 0.14);
	color: #ffffff;
}

body.theme-light .calendar-event-type {
	border-color: #8f35ff;
	background: rgba(143, 53, 255, 0.08);
	color: #5f1fc4;
}

/* =========================================================
   News Page Hero
========================================================= */

.news-page-hero {
	width: 100%;
	height: 520px;

	background-color: #030612;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;

	border-bottom: 1px solid var(--border);
}

@media (max-width: 1000px) {
	.news-page-hero {
		height: 420px;
	}
}

@media (max-width: 720px) {
	.news-page-hero {
		height: 280px;
		background-size: cover;
	}
}

/* =========================================================
   Videos Page Hero
========================================================= */

.videos-page-hero {
	width: 100%;
	height: 520px;

	background-color: #030612;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;

	border-bottom: 1px solid var(--border);
}

@media (max-width:1000px){

	.videos-page-hero{
		height:420px;
	}

}

@media (max-width:720px){

	.videos-page-hero{
		height:280px;
		background-size:cover;
	}

}

/* =========================================================
   Trending Videos Sidebar
========================================================= */

.trending-video-item {
	position: relative;
	cursor: pointer;
	border-radius: 8px;
	transition:
		background-color 0.2s ease,
		transform 0.2s ease;
}

.trending-video-item:hover,
.trending-video-item:focus-visible {
	background: var(--soft);
	transform: translateX(3px);
	outline: none;
}

.trending-video-thumbnail {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: 6px;
}

.trending-video-thumbnail img {
	display: block;
	width: 82px;
	height: 62px;
	object-fit: cover;
}

.trending-video-play {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 28px;
	height: 28px;
	border: 1px solid rgba(255, 255, 255, 0.9);
	border-radius: 50%;
	background: rgba(3, 6, 18, 0.68);
	opacity: 0;
	transform: translate(-50%, -50%);
	transition:
		opacity 0.2s ease,
		transform 0.2s ease;
}

.trending-video-play::after {
	content: "";
	position: absolute;
	top: 8px;
	left: 11px;
	border-top: 5px solid transparent;
	border-bottom: 5px solid transparent;
	border-left: 8px solid #ffffff;
}

.trending-video-item:hover .trending-video-play,
.trending-video-item:focus-visible .trending-video-play {
	opacity: 1;
	transform: translate(-50%, -50%) scale(1.08);
}

.trending-video-content {
	display: block;
	min-width: 0;
}

.trending-video-title {
	display: block;
	color: var(--text);
	font-size: 13px;
	font-weight: 800;
	line-height: 1.35;
}

.trending-video-content small {
	display: block;
	margin-top: 5px;
	color: var(--muted);
	font-size: 11px;
	line-height: 1.4;
}

.trending-video-item:hover .trending-video-title,
.trending-video-item:focus-visible .trending-video-title {
	color: var(--pink);
}

/* =========================================================
   About EuroVerse Page — clean final version
========================================================= */

.about-euroverse-page,
.about-euroverse-page *,
.about-euroverse-page *::before,
.about-euroverse-page *::after {
	box-sizing: border-box;
}

.about-euroverse-page {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	overflow: hidden;
	background: var(--bg);
	color: var(--text);
}

.about-euroverse-container {
	width: min(1180px, calc(100% - 40px));
	margin-inline: auto;
}

.about-euroverse-eyebrow {
	margin: 0 0 12px;
	color: var(--pink);
	font-size: 0.76rem;
	font-weight: 900;
	letter-spacing: 0.14em;
	line-height: 1.4;
	text-transform: uppercase;
}

.about-euroverse-section {
	padding: 76px 0;
}

.about-euroverse-heading {
	margin-bottom: 34px;
}

.about-euroverse-heading h2,
.about-euroverse-story h2,
.about-euroverse-host-guide h2,
.about-euroverse-vision h2 {
	margin: 0;
	font-family: var(--font-body);
	font-size: clamp(2rem, 4vw, 3.5rem);
	line-height: 1.12;
	letter-spacing: -0.035em;
	text-transform: none;
}

.about-euroverse-heading > p:last-child {
	max-width: 720px;
	margin: 16px 0 0;
	color: var(--muted);
	font-size: 1rem;
	line-height: 1.7;
}

.about-euroverse-heading--center {
	text-align: center;
}

.about-euroverse-heading--center > p:last-child {
	margin-right: auto;
	margin-left: auto;
}

/* Hero */

.about-euroverse-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 650px;
	overflow: hidden;
	border-bottom: 1px solid var(--border);
	background:
		radial-gradient(circle at 13% 20%, rgba(243, 43, 198, 0.25), transparent 32rem),
		radial-gradient(circle at 88% 15%, rgba(31, 116, 255, 0.27), transparent 34rem),
		radial-gradient(circle at 65% 95%, rgba(143, 53, 255, 0.20), transparent 30rem),
		#050817;
}

.about-euroverse-hero::before {
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
	background-size: 52px 52px;
	content: "";
	mask-image: linear-gradient(to bottom, black, transparent);
}

.about-euroverse-hero__glow {
	position: absolute;
	top: 50%;
	right: 8%;
	width: 420px;
	height: 420px;
	border: 1px solid rgba(243, 43, 198, 0.24);
	border-radius: 50%;
	box-shadow:
		0 0 80px rgba(243, 43, 198, 0.14),
		inset 0 0 70px rgba(31, 116, 255, 0.08);
	transform: translateY(-50%);
}

.about-euroverse-hero__glow::before,
.about-euroverse-hero__glow::after {
	position: absolute;
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 50%;
	content: "";
}

.about-euroverse-hero__glow::before {
	inset: 50px;
}

.about-euroverse-hero__glow::after {
	inset: 105px;
	background: var(--gradient);
	filter: blur(50px);
	opacity: 0.22;
}

.about-euroverse-hero__content {
	position: relative;
	z-index: 2;
	padding: 88px 0;
}

.about-euroverse-hero__title {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	margin: 0 0 28px;
	color: #fff;
	font-family: var(--font-display);
	font-size: clamp(5rem, 10vw, 9rem);
	line-height: 0.78;
	letter-spacing: -0.035em;
	text-transform: uppercase;
}

.about-euroverse-hero__title span {
	color: #fff;
}

.about-euroverse-hero__title strong {
	margin-top: 17px;
	background: var(--gradient);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font: inherit;
}

.about-euroverse-hero__subtitle {
	max-width: 700px;
	margin: 0 0 18px;
	color: #fff;
	font-family: var(--font-body);
	font-size: clamp(1.7rem, 3vw, 2.7rem);
	font-weight: 800;
	line-height: 1.15;
	text-transform: none;
}

.about-euroverse-hero__intro {
	max-width: 760px;
	margin: 0;
	color: rgba(255, 255, 255, 0.76);
	font-size: 1.05rem;
	line-height: 1.8;
}

.about-euroverse-hero__features {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 34px;
}

.about-euroverse-hero-feature {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 10px 15px;
	border: 1px solid rgba(255, 255, 255, 0.13);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.055);
	color: rgba(255, 255, 255, 0.86);
	font-size: 0.8rem;
	font-weight: 800;
	backdrop-filter: blur(12px);
}

.about-euroverse-hero-feature i {
	color: var(--pink);
}

/* Story */

.about-euroverse-story {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
	gap: 64px;
	align-items: center;
}

.about-euroverse-story__content h2 {
	margin-bottom: 28px;
}

.about-euroverse-story__content p {
	max-width: 780px;
	margin: 0 0 18px;
	color: var(--muted);
	font-size: 1rem;
	line-height: 1.85;
}

.about-euroverse-story__content strong {
	color: var(--text);
}

.about-euroverse-story__quote {
	padding: 38px;
	border: 1px solid rgba(243, 43, 198, 0.3);
	border-radius: 22px;
	background: linear-gradient(145deg, rgba(243, 43, 198, 0.1), rgba(31, 116, 255, 0.08));
	box-shadow: 0 18px 44px rgba(0, 0, 0, 0.11);
}

.about-euroverse-story__quote > i {
	margin-bottom: 22px;
	color: var(--pink);
	font-size: 2.5rem;
}

.about-euroverse-story__quote blockquote {
	margin: 0;
	color: var(--text);
	font-size: clamp(1.35rem, 2.2vw, 2rem);
	font-weight: 800;
	line-height: 1.45;
}

.about-euroverse-story__quote span {
	display: block;
	margin-top: 22px;
	color: var(--muted);
	font-size: 0.82rem;
	font-weight: 700;
}

/* Mission and content cards */

.about-euroverse-section--mission {
	border-block: 1px solid var(--border);
	background: var(--surface-2);
}

.about-euroverse-mission-grid,
.about-euroverse-content-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.about-euroverse-mission-card,
.about-euroverse-content-card {
	position: relative;
	padding: 28px;
	overflow: hidden;
	border: 1px solid var(--border);
	border-radius: 18px;
	background: var(--surface);
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
	transition:
		transform 0.23s ease,
		border-color 0.23s ease,
		box-shadow 0.23s ease;
}

.about-euroverse-mission-card:hover,
.about-euroverse-content-card:hover {
	transform: translateY(-5px);
	border-color: rgba(243, 43, 198, 0.42);
	box-shadow: 0 20px 42px rgba(0, 0, 0, 0.14);
}

.about-euroverse-mission-card > i,
.about-euroverse-content-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	width: 48px;
	height: 48px;
	margin-bottom: 18px;
	color: var(--pink);
	font-size: 1.6rem;
}

.about-euroverse-mission-card h3,
.about-euroverse-content-card h3 {
	margin: 0 0 11px;
	font-family: var(--font-body);
	font-size: 1.15rem;
	line-height: 1.3;
	text-transform: none;
}

.about-euroverse-mission-card p,
.about-euroverse-content-card p {
	margin: 0;
	color: var(--muted);
	font-size: 0.92rem;
	line-height: 1.7;
}

/* Host guide */

.about-euroverse-host-guide {
	padding: 82px 0;
	background:
		radial-gradient(circle at 78% 50%, rgba(143, 53, 255, 0.25), transparent 28rem),
		linear-gradient(135deg, #0b0e28, #181038);
}

.about-euroverse-host-guide__layout {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
	gap: 72px;
	align-items: center;
}

.about-euroverse-host-guide h2 {
	max-width: 700px;
	margin-bottom: 22px;
	color: #fff;
}

.about-euroverse-host-guide__content > p:not(.about-euroverse-eyebrow) {
	max-width: 720px;
	margin: 0;
	color: rgba(255, 255, 255, 0.72);
	line-height: 1.8;
}

.about-euroverse-host-guide__items {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px 18px;
	margin-top: 30px;
}

.about-euroverse-host-guide__items span {
	display: flex;
	align-items: center;
	gap: 10px;
	color: rgba(255, 255, 255, 0.84);
	font-size: 0.85rem;
	font-weight: 700;
}

.about-euroverse-host-guide__items i {
	width: 20px;
	color: var(--pink);
	text-align: center;
}

.about-euroverse-host-guide__visual {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 380px;
}

.about-euroverse-host-guide__circle {
	display: grid;
	place-items: center;
	width: 210px;
	height: 210px;
	border: 1px solid rgba(255, 255, 255, 0.17);
	border-radius: 50%;
	background: radial-gradient(circle, rgba(243, 43, 198, 0.28), rgba(143, 53, 255, 0.1) 60%, transparent);
	color: #fff;
	font-size: 4.6rem;
	box-shadow:
		0 0 70px rgba(243, 43, 198, 0.19),
		inset 0 0 50px rgba(255, 255, 255, 0.05);
}

.about-euroverse-host-guide__visual::before,
.about-euroverse-host-guide__visual::after {
	position: absolute;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 50%;
	content: "";
}

.about-euroverse-host-guide__visual::before {
	width: 310px;
	height: 310px;
}

.about-euroverse-host-guide__visual::after {
	width: 380px;
	height: 380px;
}

.about-euroverse-host-guide__orbit {
	position: absolute;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 50%;
	background: rgba(12, 15, 42, 0.88);
	color: var(--pink);
	font-size: 1.35rem;
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.28);
}

.about-euroverse-host-guide__orbit--one {
	top: 44px;
	left: 65px;
}

.about-euroverse-host-guide__orbit--two {
	top: 75px;
	right: 36px;
}

.about-euroverse-host-guide__orbit--three {
	right: 85px;
	bottom: 35px;
}

/* Vision */

.about-euroverse-vision {
	display: grid;
	grid-template-columns: 110px minmax(0, 1fr);
	gap: 30px;
	align-items: start;
	max-width: 980px;
}

.about-euroverse-vision__icon {
	display: grid;
	place-items: center;
	width: 100px;
	height: 100px;
	border: 1px solid rgba(243, 43, 198, 0.3);
	border-radius: 24px;
	background: linear-gradient(145deg, rgba(243, 43, 198, 0.12), rgba(31, 116, 255, 0.1));
	color: var(--pink);
	font-size: 2.5rem;
}

.about-euroverse-vision h2 {
	max-width: 850px;
	margin-bottom: 22px;
}

.about-euroverse-vision__content > p:not(.about-euroverse-eyebrow) {
	max-width: 830px;
	margin: 0 0 16px;
	color: var(--muted);
	line-height: 1.8;
}

/* Independent notice */

.about-euroverse-independent {
	padding: 0 0 76px;
}

.about-euroverse-independent__panel {
	display: grid;
	grid-template-columns: 58px minmax(0, 1fr);
	gap: 20px;
	padding: 28px;
	border: 1px solid rgba(31, 116, 255, 0.26);
	border-radius: 18px;
	background: rgba(31, 116, 255, 0.07);
}

.about-euroverse-independent__icon {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	color: var(--blue);
	font-size: 1.7rem;
}

.about-euroverse-independent h2 {
	margin: 0 0 9px;
	font-family: var(--font-body);
	font-size: 1.15rem;
	line-height: 1.3;
	text-transform: none;
}

.about-euroverse-independent p {
	max-width: 980px;
	margin: 0;
	color: var(--muted);
	font-size: 0.9rem;
	line-height: 1.7;
}

/* Contact and social */

.ev-about-final-contact {
	padding: 84px 0;
	border-top: 1px solid var(--border);
	background: var(--surface-2);
}

.ev-about-final-contact__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(340px, 440px);
	gap: 80px;
	align-items: center;
}

.ev-about-final-contact__content h2 {
	max-width: 680px;
	margin: 0;
	color: var(--text);
	font-family: var(--font-body);
	font-size: clamp(2.4rem, 4.5vw, 4.2rem);
	font-weight: 900;
	line-height: 1.07;
	letter-spacing: -0.045em;
	text-transform: none;
}

.ev-about-final-contact__content > p:not(.about-euroverse-eyebrow) {
	max-width: 560px;
	margin: 20px 0 0;
	color: var(--muted);
	font-size: 1rem;
	line-height: 1.7;
}

.ev-about-final-contact .ev-about-final-contact__email {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	width: auto;
	margin: 28px 0 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	color: var(--pink);
	font-size: 1rem;
	font-weight: 900;
	text-decoration: none;
}

.ev-about-final-social {
	padding: 30px;
	border: 1px solid var(--border);
	border-radius: 20px;
	background: var(--surface);
	box-shadow: 0 16px 42px rgba(0, 0, 0, 0.08);
}

.ev-about-final-social h3 {
	margin: 0;
	color: var(--text);
	font-family: var(--font-body);
	font-size: 1.65rem;
	font-weight: 900;
	line-height: 1.2;
	text-transform: none;
}

.ev-about-final-social > p:not(.about-euroverse-eyebrow) {
	margin: 12px 0 22px;
	color: var(--muted);
	font-size: 0.88rem;
	line-height: 1.6;
}

.ev-about-final-social__buttons {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.ev-about-final-social__buttons a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	min-height: 52px;
	margin: 0;
	padding: 13px 16px;
	border: 1px solid rgba(243, 43, 198, 0.32);
	border-radius: 12px;
	background: rgba(243, 43, 198, 0.08);
	box-shadow: none;
	color: var(--text);
	font-size: 0.88rem;
	font-weight: 900;
	line-height: 1;
	text-align: center;
	text-decoration: none;
	transition:
		transform 0.2s ease,
		border-color 0.2s ease,
		background 0.2s ease;
}

.ev-about-final-social__buttons a::before,
.ev-about-final-social__buttons a::after {
	display: none;
	content: none;
}

.ev-about-final-social__buttons a:hover {
	border-color: var(--pink);
	background: rgba(243, 43, 198, 0.14);
	transform: translateY(-2px);
}

.ev-about-final-social__buttons i {
	width: auto;
	height: auto;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	color: var(--pink);
	font-size: 1rem;
}

/* Responsive */

@media (max-width: 980px) {
	.about-euroverse-story,
	.about-euroverse-host-guide__layout,
	.ev-about-final-contact__grid {
		grid-template-columns: 1fr;
	}

	.about-euroverse-mission-grid,
	.about-euroverse-content-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.about-euroverse-host-guide__visual {
		max-width: 500px;
		margin-inline: auto;
	}

	.ev-about-final-social {
		max-width: 520px;
	}
}

@media (max-width: 720px) {
	.about-euroverse-container {
		width: min(100% - 28px, 1180px);
	}

	.about-euroverse-section {
		padding: 56px 0;
	}

	.about-euroverse-hero {
		min-height: 670px;
	}

	.about-euroverse-hero__content {
		padding: 72px 0 52px;
	}

	.about-euroverse-hero__title {
		font-size: clamp(4.2rem, 22vw, 6.3rem);
	}

	.about-euroverse-hero__glow {
		right: -210px;
		width: 390px;
		height: 390px;
		opacity: 0.6;
	}

	.about-euroverse-mission-grid,
	.about-euroverse-content-grid {
		grid-template-columns: 1fr;
	}

	.about-euroverse-host-guide__items {
		grid-template-columns: 1fr;
	}

	.about-euroverse-host-guide__visual {
		min-height: 330px;
		transform: scale(0.82);
	}

	.about-euroverse-vision,
	.about-euroverse-independent__panel {
		grid-template-columns: 1fr;
	}

	.ev-about-final-contact {
		padding: 62px 0;
	}

	.ev-about-final-contact__grid {
		gap: 44px;
	}
}

@media (max-width: 520px) {
	.ev-about-final-social__buttons {
		grid-template-columns: 1fr;
	}
}

/* =========================================================
   Euroverse Legal Pages
   ========================================================= */

.legal-page {
	padding-top: 48px;
	padding-bottom: 72px;
}

.legal-page__layout {
	display: grid;
	grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
	gap: 32px;
	align-items: start;
}

.legal-page__sidebar {
	position: sticky;
	top: 110px;
	display: grid;
	gap: 20px;
}

.legal-page__navigation,
.legal-page__contact,
.legal-page__summary,
.legal-page__content,
.legal-page__related {
	border: 1px solid var(--border);
	border-radius: 20px;
	background: var(--surface);
}

.legal-page__navigation,
.legal-page__contact {
	padding: 24px;
}

.legal-page__navigation h2,
.legal-page__contact h2,
.legal-page__related h2 {
	margin: 0 0 16px;
	font-size: 1.15rem;
}

.legal-page__contents ul {
	display: grid;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.legal-page__contents a {
	display: block;
	padding: 10px 12px;
	border-radius: 10px;
	color: var(--text-muted);
	font-size: 0.94rem;
	line-height: 1.35;
	text-decoration: none;
	transition:
		background-color 0.2s ease,
		color 0.2s ease,
		transform 0.2s ease;
}

.legal-page__contents a:hover,
.legal-page__contents a:focus-visible {
	background: rgba(230, 47, 86, 0.12);
	color: var(--text);
	transform: translateX(3px);
}

.legal-page__contact p {
	margin: 0 0 18px;
	color: var(--text-muted);
	font-size: 0.94rem;
	line-height: 1.6;
}

.legal-page__contact .button {
	width: 100%;
	justify-content: center;
	text-align: center;
}

.legal-page__main {
	display: grid;
	gap: 24px;
	min-width: 0;
}

.legal-page__summary {
	padding: 32px;
}

.legal-page__eyebrow {
	display: inline-block;
	margin-bottom: 10px;
	color: var(--accent);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.legal-page__summary h2 {
	margin: 0 0 12px;
	font-size: clamp(1.7rem, 3vw, 2.3rem);
}

.legal-page__summary > p {
	max-width: 760px;
	margin: 0;
	color: var(--text-muted);
	font-size: 1rem;
	line-height: 1.7;
}

.legal-page__highlights {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin-top: 28px;
}

.legal-page__highlight {
	padding: 16px;
	border: 1px solid var(--border);
	border-radius: 14px;
	background: var(--surface-soft);
}

.legal-page__highlight strong,
.legal-page__highlight span {
	display: block;
}

.legal-page__highlight strong {
	margin-bottom: 5px;
	color: var(--text);
	font-size: 0.96rem;
}

.legal-page__highlight span {
	color: var(--text-muted);
	font-size: 0.85rem;
	line-height: 1.45;
}

.legal-page__content {
	padding: clamp(24px, 4vw, 48px);
	scroll-behavior: smooth;
}

.legal-page__content h2 {
	margin-top: 48px;
	margin-bottom: 16px;
	padding-top: 8px;
	color: var(--text);
	font-size: clamp(1.35rem, 2.4vw, 1.75rem);
	scroll-margin-top: 130px;
}

.legal-page__content h2:first-child {
	margin-top: 0;
}

.legal-page__content h3 {
	margin-top: 28px;
	margin-bottom: 12px;
	font-size: 1.15rem;
}

.legal-page__content p,
.legal-page__content li {
	color: var(--text-muted);
	font-size: 1rem;
	line-height: 1.75;
}

.legal-page__content p {
	margin-bottom: 18px;
}

.legal-page__content ul,
.legal-page__content ol {
	margin: 0 0 22px;
	padding-left: 24px;
}

.legal-page__content li + li {
	margin-top: 8px;
}

.legal-page__content a {
	color: var(--accent);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.legal-page__content strong {
	color: var(--text);
}

.legal-page__related {
	padding: 28px 32px;
}

.legal-page__related-links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.legal-page__related-links a {
	display: inline-flex;
	align-items: center;
	min-height: 42px;
	padding: 10px 16px;
	border: 1px solid var(--border);
	border-radius: 999px;
	color: var(--text);
	font-size: 0.92rem;
	font-weight: 600;
	text-decoration: none;
	transition:
		border-color 0.2s ease,
		background-color 0.2s ease,
		color 0.2s ease;
}

.legal-page__related-links a:hover,
.legal-page__related-links a:focus-visible {
	border-color: var(--accent);
	background: rgba(230, 47, 86, 0.12);
	color: var(--accent);
}

@media (max-width: 980px) {
	.legal-page__layout {
		grid-template-columns: 1fr;
	}

	.legal-page__sidebar {
		position: static;
		order: 2;
	}

	.legal-page__main {
		order: 1;
	}

	.legal-page__navigation {
		display: none;
	}
}

@media (max-width: 720px) {
	.legal-page {
		padding-top: 28px;
		padding-bottom: 48px;
	}

	.legal-page__layout {
		gap: 20px;
	}

	.legal-page__summary,
	.legal-page__content,
	.legal-page__related {
		padding: 22px;
		border-radius: 16px;
	}

	.legal-page__highlights {
		grid-template-columns: 1fr;
	}

	.legal-page__related-links {
		display: grid;
	}

	.legal-page__related-links a {
		justify-content: center;
	}
}

/* =========================================================
   Euroverse Cookie Notice
   ========================================================= */

.euroverse-cookie-notice {
	position: fixed !important;

	left: 20px !important;
	right: 20px !important;
	bottom: 20px !important;
	top: auto !important;

	width: auto !important;

	margin: 0 !important;

	z-index: 999999 !important;

	transform: none !important;
}

.euroverse-cookie-notice[hidden] {
	display: none;
}

.euroverse-cookie-notice__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	max-width: 1180px;
	margin: 0 auto;
	padding: 28px 34px;
	border: 1px solid var(--border);
	border-radius: 18px;
	background: var(--surface);
	box-shadow: 0 18px 50px rgba(0, 0, 0, 0.28);
}

.euroverse-cookie-notice__content {
	flex: 1;
	max-width: 760px;
}

.euroverse-cookie-notice__content strong {
	display: block;
	margin-bottom: 6px;
	color: var(--text);
	font-size: 1.45rem;
    font-weight: 700;
    margin-bottom: 10px;
    }

.euroverse-cookie-notice__content p {
	margin: 0;
	color: var(--text-muted);
	font-size: 0.92rem;
	line-height: 1.55;
}

.euroverse-cookie-notice__actions {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	gap: 10px;
}

.euroverse-cookie-notice__policy {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 48px;
	padding: 0 24px;
	border: 1px solid rgba(255,255,255,.18);
	border-radius: 14px;
	background: rgba(255,255,255,.03);
	color: var(--text);
	font-weight: 600;
	text-decoration: none;
	transition: all .25s ease;
}

.euroverse-cookie-notice__policy:hover,
.euroverse-cookie-notice__policy:focus-visible {
	background: rgba(255,255,255,.08);
	border-color: rgba(255,255,255,.28);
	transform: translateY(-1px);
	color: #fff;
}

.euroverse-cookie-notice__acknowledge {
	min-width: 130px;
}

@media (max-width: 760px) {
	.euroverse-cookie-notice {
		right: 12px;
		bottom: 12px;
		left: 12px;
	}

	.euroverse-cookie-notice__inner {
		align-items: stretch;
		flex-direction: column;
		gap: 16px;
		padding: 18px;
		border-radius: 16px;
	}

.euroverse-cookie-notice__actions {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-shrink: 0;
}

	.euroverse-cookie-notice__actions .button {
		justify-content: center;
		width: 100%;
		text-align: center;
	}
}

.euroverse-cookie-notice__acknowledge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 48px;
	min-width: 180px;
	padding: 0 30px;
	border: 0;
	border-radius: 14px;
	background: linear-gradient(135deg,#e62f56,#ff5a63);
	color: #fff;
	font-weight: 700;
	cursor: pointer;
	transition: all .25s ease;
	box-shadow: 0 10px 28px rgba(230,47,86,.35);
}

.euroverse-cookie-notice__acknowledge:hover {
	transform: translateY(-2px);
	box-shadow: 0 16px 36px rgba(230,47,86,.45);
}

.euroverse-cookie-notice__acknowledge:active {
	transform: translateY(0);
}

.newsletter-message{
	margin-top:12px;
	font-size:14px;
	font-weight:600;
}

.newsletter-message.success{
	color:#44e7b4;
}

.newsletter-message.error{
	color:#ff6b6b;
}

.newsletter-message.success {
	color: #44e7b4;
}

body.theme-light .newsletter-message.success {
	color: #087f5b;
}

.newsletter-message.error {
	color: #ff6b6b;
}

body.theme-light .newsletter-message.error {
	color: #b42318;
}

.newsletter-message {
	margin-top: 12px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.5;
}

.site-footer .newsletter-box {
	min-width: 0;
	width: 100%;
}

.site-footer .newsletter-box .inline-form {
	display: flex;
	align-items: stretch;
	width: 100%;
	gap: 10px;
}

.site-footer .newsletter-box .inline-form input {
	flex: 1 1 0;
	width: 0;
	min-width: 0;
	padding-inline: 18px;
}

.site-footer .newsletter-box .inline-form .btn {
	flex: 0 0 auto;
	min-width: 138px;
	padding-inline: 18px;
	white-space: nowrap;
}

@media (max-width: 720px) {
	.site-footer .newsletter-box .inline-form {
		flex-direction: column;
	}

	.site-footer .newsletter-box .inline-form input {
		width: 100%;
	}

	.site-footer .newsletter-box .inline-form .btn {
		width: 100%;
	}
}

/* ==========================================================
   Single News — Jetpack Sharing Buttons
========================================================== */

/* Like + Share row */
.single-news-main .sharedaddy {
	margin: 34px 0 0 !important;
	padding: 24px 0 0 !important;
	border-top: 1px solid var(--border);

	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 18px;
}

.single-news-main .sharedaddy h3,
.single-news-main .sharedaddy .sd-title {
	margin: 0 !important;
	font-size: 15px !important;
	font-weight: 900 !important;
	text-transform: uppercase;
	color: var(--text) !important;
}

.single-news-main .jetpack-likes-widget-wrapper {
	margin: 0 !important;
}

.single-news-main .jetpack-likes-widget-wrapper iframe {
	vertical-align: middle;
}

.single-news-main .sharedaddy .sd-title::before {
	display: none !important;
}

.single-news-main .sd-content ul {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 10px !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.single-news-main .sd-content ul li {
	margin: 0 !important;
	padding: 0 !important;
}

.single-news-main .sd-content ul li a.sd-button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	min-height: 42px !important;
	padding: 9px 15px !important;
	border: 1px solid var(--border) !important;
	border-radius: 999px !important;
	background: var(--surface) !important;
	color: var(--text) !important;
	font-family: var(--font-body) !important;
	font-size: 12px !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	box-shadow: none !important;
	text-decoration: none !important;
	transition:
		transform .2s ease,
		border-color .2s ease,
		background .2s ease,
		color .2s ease,
		box-shadow .2s ease !important;
}

.single-news-main .sd-content ul li a.sd-button:hover,
.single-news-main .sd-content ul li a.sd-button:focus-visible {
	border-color: var(--pink) !important;
	background: linear-gradient(
		100deg,
		rgba(243, 43, 198, .12),
		rgba(143, 53, 255, .12)
	) !important;
	color: var(--pink) !important;
	box-shadow: 0 8px 22px rgba(143, 53, 255, .14) !important;
	transform: translateY(-2px);
	outline: none !important;
}

.single-news-main .sd-content ul li a.sd-button::before {
	margin: 0 !important;
	color: currentColor !important;
	font-size: 15px !important;
	line-height: 1 !important;
}

.single-news-main .sd-content ul li a.sd-button span {
	color: inherit !important;
	font-size: 12px !important;
	font-weight: 800 !important;
	line-height: 1 !important;
}

.single-news-main .sd-social-icon-text .sd-content ul li[class*="share-"] a {
	top: auto !important;
}

body.theme-dark .single-news-main .sd-content ul li a.sd-button {
	background: rgba(255, 255, 255, .045) !important;
	border-color: rgba(255, 255, 255, .12) !important;
}

body.theme-light .single-news-main .sd-content ul li a.sd-button {
	background: #ffffff !important;
	border-color: rgba(25, 30, 65, .14) !important;
	box-shadow: 0 6px 18px rgba(25, 30, 65, .06) !important;
}

@media (max-width: 560px) {
	.single-news-main .sd-content ul {
		gap: 8px !important;
	}

	.single-news-main .sd-content ul li a.sd-button {
		min-height: 40px !important;
		padding: 8px 13px !important;
	}
}

/* ==========================================================
   Single News — Compact Like and Share Bar
========================================================== */

.euroverse-engagement-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	margin-top: 34px;
	padding: 22px 0;
	border-top: 1px solid var(--border);
	border-bottom: 1px solid var(--border);
}

/* Remove the separate Like heading */
.euroverse-engagement-row .euroverse-content-action-title {
	display: none !important;
}

.euroverse-engagement-row .euroverse-content-actions,
.euroverse-engagement-row .euroverse-like-area,
.euroverse-engagement-row .sharedaddy {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

.euroverse-engagement-row .euroverse-like-area {
	display: block;
}

/* Divider between Like and Share */
.euroverse-engagement-row .sharedaddy {
	display: flex !important;
	flex: 0 1 auto;
	align-items: center;
	gap: 12px;
}

.euroverse-engagement-row .sharedaddy::before {
	content: "";
	display: block;
	width: 1px;
	height: 30px;
	margin-right: 2px;
	background: var(--border);
}

/* Share label on the same line */
.euroverse-engagement-row .sharedaddy .sd-title {
	margin: 0 !important;
	color: var(--text) !important;
	font-family: var(--font-body) !important;
	font-size: 14px !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	text-transform: none !important;
	white-space: nowrap;
}

.euroverse-engagement-row .sharedaddy .sd-title::before {
	display: none !important;
}

.euroverse-engagement-row .sharedaddy .sd-content {
	margin: 0 !important;
}

.euroverse-engagement-row .sharedaddy .sd-content ul {
	display: flex !important;
	align-items: center !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
	margin: 0 !important;
	padding: 0 !important;
}

.euroverse-engagement-row .sharedaddy .sd-content ul li {
	margin: 0 !important;
}

/* Hide Jetpack's Customize buttons link */
.euroverse-engagement-row .sharedaddy .sharing-anchor {
	display: none !important;
}

/* Like button */
.euroverse-like-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 42px;
	padding: 9px 16px;
	border: 1px solid var(--border);
	border-radius: 999px;
	background: var(--surface);
	color: var(--text);
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 800;
	line-height: 1;
	cursor: pointer;
	box-shadow: none;
	transition:
		transform .2s ease,
		border-color .2s ease,
		background .2s ease,
		color .2s ease,
		box-shadow .2s ease;
}

.euroverse-like-button:hover,
.euroverse-like-button:focus-visible {
	border-color: var(--pink);
	background: rgba(243, 43, 198, .08);
	color: var(--pink);
	box-shadow: 0 8px 20px rgba(143, 53, 255, .12);
	transform: translateY(-2px);
	outline: none;
}

.euroverse-like-button.is-liked {
	border-color: transparent;
	background: var(--gradient);
	color: #ffffff;
}

.euroverse-like-icon {
	font-size: 18px;
	line-height: 1;
}

.euroverse-like-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	padding: 2px 6px;
	border-radius: 999px;
	background: rgba(143, 53, 255, .09);
	color: inherit;
	font-size: 12px;
}

.euroverse-like-button.is-liked .euroverse-like-count {
	background: rgba(255, 255, 255, .18);
}

.euroverse-like-button.is-loading {
	opacity: .6;
	cursor: wait;
}

.euroverse-like-button.is-animating .euroverse-like-icon {
	animation: euroverse-like-pop .45s ease;
}

@keyframes euroverse-like-pop {
	0% {
		transform: scale(1);
	}

	45% {
		transform: scale(1.45);
	}

	100% {
		transform: scale(1);
	}
}

body.theme-dark .euroverse-like-button {
	background: rgba(255, 255, 255, .045);
	border-color: rgba(255, 255, 255, .12);
}

body.theme-light .euroverse-like-button {
	background: #ffffff;
	border-color: rgba(25, 30, 65, .14);
	box-shadow: 0 5px 16px rgba(25, 30, 65, .06);
}

@media (max-width: 640px) {
	.euroverse-engagement-row {
		gap: 12px;
	}

	.euroverse-engagement-row .sharedaddy {
		flex-wrap: wrap;
	}

	.euroverse-engagement-row .sharedaddy::before {
		display: none;
	}

	.euroverse-engagement-row .sharedaddy .sd-title {
		width: 100%;
	}
}

/* Final compact Like + Share alignment */

.euroverse-engagement-row {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center !important;
	gap: 18px !important;
	padding: 20px 0 !important;
}

/* Hide Jetpack heading */
.euroverse-engagement-row .sharedaddy .sd-title,
.euroverse-engagement-row .sharedaddy h3.sd-title {
	display: none !important;
}

/* Keep the Jetpack share container on one line */
.euroverse-engagement-row .sharedaddy,
.euroverse-engagement-row .sharedaddy .sd-sharing,
.euroverse-engagement-row .sharedaddy .sd-content {
	display: flex !important;
	align-items: center !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Remove the Customize buttons link */
.euroverse-engagement-row .sharedaddy .sharing-anchor,
.euroverse-engagement-row .sharedaddy .share-customize,
.euroverse-engagement-row .sharedaddy li.share-customize,
.euroverse-engagement-row .sharedaddy .sd-content > a {
	display: none !important;
}

/* Keep social buttons aligned */
.euroverse-engagement-row .sharedaddy .sd-content ul {
	display: flex !important;
	align-items: center !important;
	flex-wrap: wrap !important;
	gap: 10px !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Vertical divider */
.euroverse-engagement-row .sharedaddy::before {
	content: "";
	display: block;
	width: 1px;
	height: 34px;
	margin-right: 18px;
	background: var(--border);
}

/* Ensure Like and Share buttons have matching height */
.euroverse-engagement-row .euroverse-like-button,
.euroverse-engagement-row .sharedaddy a.sd-button {
	min-height: 44px !important;
}

@media (max-width: 560px) {
	.euroverse-engagement-row {
		gap: 10px !important;
	}

	.euroverse-engagement-row .sharedaddy::before {
		margin-right: 10px;
	}
}

/* Hide Jetpack admin customization link */
.sharedaddy .sharing-anchor,
.sharedaddy .sd-content + a,
.sharedaddy a[href*="sharing"],
.sharedaddy a[href*="customize"],
.sharedaddy .share-customize-link {
	display: none !important;
}

/* ==========================================================
   Like + Share — Theme Contrast Fix
========================================================== */

/* Liked state must override normal light/dark button rules */
body.theme-light .euroverse-like-button.is-liked,
body.theme-dark .euroverse-like-button.is-liked {
	border-color: var(--pink) !important;
	background: linear-gradient(
		100deg,
		var(--pink),
		var(--purple),
		var(--blue)
	) !important;
	color: #ffffff !important;
	box-shadow: 0 8px 22px rgba(143, 53, 255, .25) !important;
}

/* Pink heart when liked */
.euroverse-like-button.is-liked .euroverse-like-icon {
	color: #ff8de5 !important;
	text-shadow: 0 0 10px rgba(243, 43, 198, .55);
}

/* Keep all Like text visible */
.euroverse-like-button.is-liked .euroverse-like-label,
.euroverse-like-button.is-liked .euroverse-like-count {
	color: #ffffff !important;
}

.euroverse-like-button.is-liked .euroverse-like-count {
	background: rgba(255, 255, 255, .2) !important;
}

/* Dark-mode Jetpack sharing buttons */
body.theme-dark .euroverse-engagement-row .sharedaddy a.sd-button {
	border-color: rgba(255, 255, 255, .18) !important;
	background: rgba(255, 255, 255, .07) !important;
	color: #ffffff !important;
	box-shadow: none !important;
}

body.theme-dark .euroverse-engagement-row .sharedaddy a.sd-button span,
body.theme-dark .euroverse-engagement-row .sharedaddy a.sd-button::before {
	color: #ffffff !important;
}

/* Dark-mode hover */
body.theme-dark .euroverse-engagement-row .sharedaddy a.sd-button:hover,
body.theme-dark .euroverse-engagement-row .sharedaddy a.sd-button:focus-visible {
	border-color: var(--pink) !important;
	background: rgba(243, 43, 198, .14) !important;
	color: var(--pink) !important;
	box-shadow: 0 8px 20px rgba(143, 53, 255, .18) !important;
}

/* Light-mode liked button visibility */
body.theme-light .euroverse-like-button.is-liked {
	background: linear-gradient(
		100deg,
		var(--pink),
		var(--purple),
		var(--blue)
	) !important;
	color: #ffffff !important;
}

/* Unliked dark-mode heart */
body.theme-dark .euroverse-like-button:not(.is-liked) .euroverse-like-icon {
	color: var(--pink);
}

/* ==========================================================
   Euroverse Top Alert Banner
========================================================== */

.euroverse-top-alert {
	position: relative;
	z-index: 30;
	width: 100%;
	overflow: hidden;
	border-bottom: 1px solid rgba(255, 255, 255, .14);
	color: #ffffff;
}

.euroverse-top-alert--breaking {
	background:
		linear-gradient(
			90deg,
			#b91c1c 0%,
			#ef233c 38%,
			#d92f7c 72%,
			#7b2cff 100%
		);
	box-shadow: 0 10px 28px rgba(185, 28, 28, .24);
}

.euroverse-top-alert--announcement {
	background:
		linear-gradient(
			90deg,
			#dbeafe 0%,
			#bfdbfe 40%,
			#dbeafe 100%
		);
	border-bottom-color: rgba(30, 64, 175, .14);
	color: #102047;
	box-shadow: 0 8px 22px rgba(30, 64, 175, .08);
}

.euroverse-top-alert__track {
	display: flex;
	align-items: center;
	width: max-content;
	animation: euroverse-alert-scroll 36s linear infinite;
	will-change: transform;
}

.euroverse-top-alert:hover .euroverse-top-alert__track {
	animation-play-state: paused;
}

.euroverse-top-alert__item {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	gap: 14px;
	min-height: 42px;
	padding: 8px 34px;
	white-space: nowrap;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.25;
}

.euroverse-top-alert__item::after {
	content: "•";
	margin-left: 20px;
	color: rgba(255, 255, 255, .65);
	font-size: 15px;
}

.euroverse-top-alert--announcement
.euroverse-top-alert__item::after {
	color: rgba(30, 64, 175, .42);
}

.euroverse-top-alert__item a,
.euroverse-top-alert__item > span:not(.euroverse-top-alert__badge) {
	color: inherit;
	text-decoration: none;
}

.euroverse-top-alert__item a:hover,
.euroverse-top-alert__item a:focus-visible {
	text-decoration: underline;
	outline: none;
}

.euroverse-top-alert__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 26px;
	padding: 5px 10px;
	border-radius: 999px;
	background: rgba(0, 0, 0, .24);
	color: #ffffff;
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .08em;
	line-height: 1;
	text-transform: uppercase;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, .14),
		0 4px 14px rgba(0, 0, 0, .14);
}

.euroverse-top-alert--breaking .euroverse-top-alert__badge {
	animation: euroverse-breaking-pulse 1.35s ease-in-out infinite;
}

.euroverse-top-alert--announcement
.euroverse-top-alert__badge {
	border: 1px solid rgba(30, 64, 175, .18);
	background: rgba(255, 255, 255, .62);
	color: #1e3a8a;
	box-shadow: none;
}

@keyframes euroverse-alert-scroll {
	from {
		transform: translateX(100vw);
	}

	to {
		transform: translateX(-100%);
	}
}

@keyframes euroverse-breaking-pulse {
	0%,
	100% {
		transform: scale(1);
		box-shadow:
			inset 0 1px 0 rgba(255, 255, 255, .14),
			0 0 0 0 rgba(255, 255, 255, .28);
	}

	50% {
		transform: scale(1.04);
		box-shadow:
			inset 0 1px 0 rgba(255, 255, 255, .14),
			0 0 0 7px rgba(255, 255, 255, 0);
	}
}

@media (max-width: 720px) {
	.euroverse-top-alert__track {
		animation-duration: 22s;
	}

	.euroverse-top-alert__item {
		min-height: 40px;
		padding: 8px 22px;
		font-size: 13px;
	}

	.euroverse-top-alert__badge {
		padding: 5px 8px;
		font-size: 9px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.euroverse-top-alert__track,
	.euroverse-top-alert--breaking .euroverse-top-alert__badge {
		animation: none;
	}
}

.footer-donation {
    margin-top: 18px;
}

.footer-donation .btn-donation {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 12px 24px;
    border-radius: 10px;
    background: linear-gradient(135deg, #e31fd0, #3268ff);
    color: #ffffff;
    font-weight: 700;
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.footer-donation .btn-donation:hover {
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(85, 72, 255, 0.25);
}

/* Support Euroverse — impact section */
.support-section-heading {
	max-width: 760px;
	margin: 0 auto 36px;
	text-align: center;
}

.support-section-kicker {
	display: inline-block;
	margin-bottom: 10px;
	color: var(--accent, #d81fd5);
	font-size: 0.8rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.support-section-heading h2 {
	margin: 0 0 14px;
	font-size: clamp(2rem, 4vw, 3rem);
	line-height: 1.1;
}

.support-section-heading p {
	margin: 0;
	font-size: 1.05rem;
	line-height: 1.7;
	opacity: 0.8;
}

.support-impact-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}

.support-impact-card {
	padding: 28px;
	border: 1px solid rgba(128, 128, 160, 0.2);
	border-radius: 18px;
	background: var(--surface, #ffffff);
	box-shadow: 0 16px 38px rgba(16, 18, 38, 0.08);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.support-impact-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 22px 46px rgba(16, 18, 38, 0.13);
}

.support-impact-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	margin-bottom: 20px;
	border-radius: 14px;
	background: linear-gradient(135deg, #e31fd0, #3268ff);
	color: #ffffff;
	font-size: 1.3rem;
}

.support-impact-card h3 {
	margin: 0 0 10px;
	font-size: 1.15rem;
}

.support-impact-card p {
	margin: 0;
	line-height: 1.65;
	opacity: 0.78;
}

@media (max-width: 900px) {
	.support-impact-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.support-impact-grid {
		grid-template-columns: 1fr;
	}

	.support-impact-card {
		padding: 24px;
	}
}

/* Support Euroverse — introduction */
.support-intro {
	padding-top: 64px;
	padding-bottom: 64px;
}

.support-intro-layout {
	display: grid;
	grid-template-columns: minmax(260px, 0.8fr) minmax(0, 1.4fr);
	gap: 64px;
	align-items: start;
	padding: 48px;
	border: 1px solid rgba(128, 128, 160, 0.18);
	border-radius: 24px;
	background:
		linear-gradient(
			135deg,
			rgba(227, 31, 208, 0.07),
			rgba(50, 104, 255, 0.07)
		);
}

.support-intro-heading h2 {
	margin: 8px 0 0;
	font-size: clamp(2rem, 4vw, 3.2rem);
	line-height: 1.05;
}

.support-intro-content {
	max-width: 720px;
}

.support-intro-content p {
	margin: 0;
	font-size: 1.05rem;
	line-height: 1.8;
	opacity: 0.82;
}

.support-intro-content p + p {
	margin-top: 20px;
}

@media (max-width: 800px) {
	.support-intro-layout {
		grid-template-columns: 1fr;
		gap: 24px;
		padding: 32px;
	}
}

@media (max-width: 560px) {
    .support-intro {
        padding-top: 64px;
        padding-bottom: 20px;
    }

	.support-intro-layout {
		padding: 24px;
		border-radius: 18px;
	}
}

/* Support Euroverse — donation section */
.support-donation-section {
    padding-top: 20px;
    padding-bottom: 72px;
}

.support-donation-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(340px, 0.9fr);
	gap: 56px;
	align-items: center;
	padding: 56px;
	border-radius: 28px;
	background:
		radial-gradient(
			circle at top right,
			rgba(50, 104, 255, 0.16),
			transparent 38%
		),
		linear-gradient(
			135deg,
			rgba(227, 31, 208, 0.08),
			rgba(50, 104, 255, 0.06)
		);
	border: 1px solid rgba(128, 128, 160, 0.18);
}

.support-donation-copy h2 {
	max-width: 650px;
	margin: 8px 0 18px;
	font-size: clamp(2rem, 4vw, 3.25rem);
	line-height: 1.08;
}

.support-donation-copy > p {
	max-width: 680px;
	margin: 0 0 28px;
	font-size: 1.05rem;
	line-height: 1.75;
	opacity: 0.82;
}

.support-donation-points {
	display: grid;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.support-donation-points li {
	display: flex;
	gap: 12px;
	align-items: center;
	font-weight: 600;
}

.support-donation-points i {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	flex: 0 0 34px;
	border-radius: 10px;
	background: rgba(128, 86, 255, 0.12);
	color: #9c35f5;
}

.support-donation-panel {
	padding: 40px;
	border-radius: 22px;
	background: var(--surface, #ffffff);
	border: 1px solid rgba(128, 128, 160, 0.18);
	box-shadow: 0 24px 60px rgba(16, 18, 38, 0.12);
	text-align: center;
}

.support-donation-panel__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 62px;
	height: 62px;
	margin: 0 auto 22px;
	border-radius: 18px;
	background: linear-gradient(135deg, #e31fd0, #3268ff);
	color: #ffffff;
	font-size: 1.5rem;
}

.support-donation-panel h3 {
	margin: 0 0 14px;
	font-size: 1.6rem;
}

.support-donation-panel > p {
	margin: 0;
	line-height: 1.7;
	opacity: 0.78;
}

.support-donation-checkout {
	margin-top: 26px;
}

.support-donation-checkout .simpay-payment-btn,
.support-donation-checkout button,
.support-donation-checkout input[type="submit"] {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	min-height: 54px;
	padding: 14px 24px !important;
	border: 0 !important;
	border-radius: 12px !important;
	background: linear-gradient(135deg, #e31fd0, #3268ff) !important;
	color: #ffffff !important;
	font-size: 1rem !important;
	font-weight: 800 !important;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	cursor: pointer;
	box-shadow: 0 14px 28px rgba(94, 71, 255, 0.24);
}

.support-donation-checkout .simpay-payment-btn:hover,
.support-donation-checkout button:hover,
.support-donation-checkout input[type="submit"]:hover {
	transform: translateY(-2px);
	box-shadow: 0 18px 34px rgba(94, 71, 255, 0.32);
}

.support-donation-note {
	margin-top: 18px !important;
	font-size: 0.82rem;
	opacity: 0.62 !important;
}

@media (max-width: 900px) {
	.support-donation-layout {
		grid-template-columns: 1fr;
		gap: 40px;
		padding: 40px;
	}
}

@media (max-width: 560px) {
	.support-donation-section {
		padding-top: 30px;
		padding-bottom: 48px;
	}

	.support-donation-layout {
		padding: 24px;
		border-radius: 20px;
	}

	.support-donation-panel {
		padding: 28px 22px;
	}
}

/* Support Euroverse — FAQ */
.support-faq {
	padding-top: 72px;
	padding-bottom: 84px;
}

.support-faq-list {
	max-width: 900px;
	margin: 0 auto;
	display: grid;
	gap: 14px;
}

.support-faq-item {
	border: 1px solid rgba(128, 128, 160, 0.18);
	border-radius: 16px;
	background: var(--surface, #ffffff);
	box-shadow: 0 12px 30px rgba(16, 18, 38, 0.06);
	overflow: hidden;
}

.support-faq-item summary {
	position: relative;
	padding: 22px 58px 22px 24px;
	font-size: 1rem;
	font-weight: 800;
	cursor: pointer;
	list-style: none;
}

.support-faq-item summary::-webkit-details-marker {
	display: none;
}

.support-faq-item summary::after {
	content: "+";
	position: absolute;
	top: 50%;
	right: 24px;
	transform: translateY(-50%);
	font-size: 1.5rem;
	font-weight: 500;
	color: #9c35f5;
}

.support-faq-item[open] summary::after {
	content: "−";
}

.support-faq-item p {
	margin: 0;
	padding: 0 24px 24px;
	line-height: 1.75;
	opacity: 0.78;
}

/* Support Euroverse — featured image hero */
.support-page-hero {
	position: relative;
	width: 100%;
	height: 520px;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	overflow: hidden;
}

.support-page-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(8, 8, 24, 0.08) 0%,
		rgba(8, 8, 24, 0.03) 65%,
		rgba(8, 8, 24, 0.32) 100%
	);
}

@media (max-width: 900px) {
	.support-page-hero {
		height: 400px;
		background-size: cover;
	}
}

@media (max-width: 600px) {
	.support-page-hero {
		height: 280px;
	}
}

/* ==========================================================
   Eurovision Fan Clubs Page
========================================================== */

.fan-clubs-page {
	background: var(--bg);
}

.fan-clubs-hero {
	padding: 54px 0 34px;
	background:
		radial-gradient(
			circle at 18% 20%,
			rgba(243, 43, 198, .18),
			transparent 34%
		),
		radial-gradient(
			circle at 82% 20%,
			rgba(31, 116, 255, .18),
			transparent 34%
		);
}

.fan-clubs-hero__layout {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(420px, .9fr);
	gap: 34px;
	align-items: center;
}

.fan-clubs-hero__copy h1 {
	margin: 0 0 20px;
	font-size: clamp(3.2rem, 7vw, 6.2rem);
	line-height: .92;
}

.fan-clubs-hero__copy > p:last-child {
	max-width: 720px;
	margin: 0;
	color: var(--muted);
	font-size: 1.05rem;
	line-height: 1.7;
}

.fan-clubs-summary {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	overflow: hidden;
	border: 1px solid rgba(243, 43, 198, .38);
	border-radius: 18px;
	background:
		linear-gradient(
			145deg,
			color-mix(in srgb, var(--surface) 94%, transparent),
			color-mix(in srgb, var(--surface-2) 94%, transparent)
		);
	box-shadow: var(--shadow);
}

.fan-clubs-summary__item {
	position: relative;
	padding: 28px 20px;
	text-align: center;
}

.fan-clubs-summary__item:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 22px;
	right: 0;
	bottom: 22px;
	width: 1px;
	background: var(--border);
}

.fan-clubs-summary__item strong {
	display: block;
	margin-bottom: 8px;
	color: var(--pink);
	font-size: 2rem;
	line-height: 1;
}

.fan-clubs-summary__item span {
	display: block;
	color: var(--muted);
	font-size: .82rem;
	font-weight: 800;
	line-height: 1.4;
	text-transform: uppercase;
}

.fan-clubs-toolbar {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 260px auto;
	gap: 14px;
	align-items: center;
	margin-bottom: 28px;
	padding: 18px;
	border: 1px solid var(--border);
	border-radius: 14px;
	background: var(--surface);
	box-shadow: 0 14px 34px rgba(0, 0, 0, .08);
}

.fan-clubs-search input,
.fan-clubs-region-filter select {
	width: 100%;
}

.fan-clubs-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.fan-club-card {
	display: grid;
	grid-template-columns: 140px minmax(0, 1fr);
	gap: 18px;
	min-width: 0;
	padding: 18px;
	border: 1px solid var(--border);
	border-radius: 16px;
	background:
		linear-gradient(
			145deg,
			color-mix(in srgb, var(--surface) 94%, transparent),
			color-mix(in srgb, var(--surface-2) 94%, transparent)
		);
	box-shadow: var(--shadow);
	transition:
		transform .2s ease,
		border-color .2s ease,
		box-shadow .2s ease;
}

.fan-club-card:hover {
	transform: translateY(-4px);
	border-color: rgba(243, 43, 198, .48);
	box-shadow: 0 20px 42px rgba(0, 0, 0, .18);
}

.fan-club-card[hidden] {
	display: none;
}

.fan-club-card__logo {
	display: grid;
	place-items: center;
	min-height: 170px;
	overflow: hidden;
	border: 1px solid var(--border);
	border-radius: 12px;
	background: #ffffff;
	padding: 14px;
}

.fan-club-card__logo img {
	display: block;
	width: 100%;
	height: 100%;
	max-height: 145px;
	object-fit: contain;
}

.fan-club-card__content {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.fan-club-card__country {
	display: flex;
	align-items: center;
	gap: 10px;
}

.fan-club-card__country img {
	width: 28px;
	height: 19px;
	border-radius: 3px;
	object-fit: cover;
	box-shadow: 0 4px 10px rgba(0, 0, 0, .15);
}

.fan-club-card__country h2 {
	margin: 0;
	font-size: 1.15rem;
	line-height: 1.25;
}

.fan-club-card__content h3 {
	margin: 12px 0 6px;
	color: var(--purple);
	font-size: 1rem;
	line-height: 1.35;
}

.fan-club-card__region {
	margin: 0 0 10px;
	color: var(--muted);
	font-size: .85rem;
}

.fan-club-card__status {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	color: var(--green);
	font-size: .82rem;
	font-weight: 800;
}

.fan-club-card__status span {
	display: inline-block;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--green);
	box-shadow: 0 0 12px rgba(68, 231, 180, .45);
}

.fan-club-card__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: auto;
	padding-top: 18px;
}

.fan-club-card__actions .btn {
	flex: 1 1 120px;
	min-height: 40px;
	padding: 0 14px;
	font-size: 11px;
}

.fan-clubs-empty {
	margin: 32px 0 0;
	padding: 24px;
	border: 1px solid var(--border);
	border-radius: 14px;
	background: var(--surface);
	color: var(--muted);
	text-align: center;
}

body.theme-light .fan-clubs-summary,
body.theme-light .fan-club-card,
body.theme-light .fan-clubs-toolbar {
	box-shadow: 0 14px 34px rgba(25, 30, 65, .09);
}

@media (max-width: 1100px) {
	.fan-clubs-hero__layout {
		grid-template-columns: 1fr;
	}

	.fan-clubs-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.fan-clubs-summary {
		grid-template-columns: 1fr;
	}

	.fan-clubs-summary__item:not(:last-child)::after {
		top: auto;
		right: 20px;
		bottom: 0;
		left: 20px;
		width: auto;
		height: 1px;
	}

	.fan-clubs-toolbar {
		grid-template-columns: 1fr;
	}

	.fan-clubs-grid {
		grid-template-columns: 1fr;
	}

	.fan-club-card {
		grid-template-columns: 110px minmax(0, 1fr);
	}

	.fan-club-card__logo {
		min-height: 145px;
	}
}

@media (max-width: 520px) {
	.fan-club-card {
		grid-template-columns: 1fr;
	}

	.fan-club-card__logo {
		min-height: 190px;
	}

	.fan-club-card__actions {
		flex-direction: column;
	}

	.fan-club-card__actions .btn {
		width: 100%;
	}
}

/* Contact form */

.euroverse-contact-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 24px;
	margin-bottom: 20px;
	padding: 0 28px;
	min-width: 170px;
	min-height: 52px;
}

.contact-honeypot {
	position: absolute !important;
	left: -9999px;
	top: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
	opacity: 0;
	pointer-events: none;
}

.support-stripe-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 54px;
	padding: 14px 24px;
	border-radius: 12px;
	background: linear-gradient(135deg, #e31fd0, #3268ff);
	color: #ffffff;
	font-size: 1rem;
	font-weight: 800;
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	box-shadow: 0 14px 28px rgba(94, 71, 255, 0.24);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.support-stripe-button:hover {
	color: #ffffff;
	transform: translateY(-2px);
	box-shadow: 0 18px 34px rgba(94, 71, 255, 0.32);
}

/* =========================================================
   MOBILE HEADER AND MENU FIX
   ========================================================= */

@media (max-width: 720px) {

	.site-header {
		width: 100%;
		overflow: visible;
	}

	.header-inner {
		position: relative;
		width: 100%;
		min-height: 76px;
		padding: 8px 14px;
		gap: 10px;
	}

	.brand,
	.custom-logo-link {
		flex: 1 1 auto;
		min-width: 0;
	}

	.brand img,
	.custom-logo-link img {
		width: 150px;
		max-width: 100%;
		max-height: 58px;
		object-fit: contain;
	}

	.nav-toggle {
		order: 2;
		flex: 0 0 42px;
		width: 42px;
		height: 42px;
		margin-left: auto;
	}

	.header-actions {
		order: 3;
		flex: 0 0 auto;
		gap: 8px;
	}

	.header-actions .theme-toggle {
		width: 50px;
		height: 30px;
	}

	.header-actions .join-link {
		min-height: 40px;
		padding: 0 14px;
		font-size: 12px;
	}

	.primary-nav {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		z-index: 1000;
		max-height: calc(100vh - 76px);
		overflow-y: auto;
		padding: 8px 18px 18px;
		background: var(--bg);
		border-top: 1px solid var(--border);
		border-bottom: 1px solid var(--border);
		box-shadow: 0 18px 35px rgba(0, 0, 0, 0.22);
	}

	.primary-nav .menu {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		width: 100%;
	}

	.primary-nav .menu li {
		width: 100%;
		margin: 0;
		border-bottom: 1px solid var(--border);
	}

	.primary-nav .menu li:last-child {
		border-bottom: 0;
	}

	.primary-nav .menu a {
		justify-content: flex-start;
		width: 100%;
		min-height: 0;
		padding: 14px 4px;
		border-bottom: 0;
		font-size: 14px;
		line-height: 1.25;
		text-align: left;
	}

	.primary-nav .current-menu-item > a {
		color: var(--pink);
		border-bottom: 0;
	}
}

@media (max-width: 430px) {

	.brand img,
	.custom-logo-link img {
		width: 132px;
	}

	.header-inner {
		padding-inline: 10px;
		gap: 7px;
	}

	.header-actions {
		gap: 6px;
	}

	.header-actions .theme-toggle {
		width: 46px;
	}

	.header-actions .join-link {
		padding-inline: 11px;
		font-size: 11px;
	}
}

/* =========================================================
   FINAL MOBILE FOOTER LAYOUT
   ========================================================= */

@media screen and (max-width: 720px) {

	.site-footer {
		padding: 24px 0 16px !important;
		overflow: hidden;
	}

	.site-footer .footer-grid {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		column-gap: 10px !important;
		row-gap: 24px !important;
		align-items: start !important;
	}

	.site-footer .footer-brand {
		grid-column: 1 / -1 !important;
		text-align: center !important;
	}

	.site-footer .footer-brand .brand {
		display: flex !important;
		justify-content: center !important;
	}

	.site-footer .footer-brand .brand img {
		width: 155px !important;
		max-height: 60px !important;
		margin: 0 auto !important;
	}

	.site-footer .footer-brand p {
		max-width: 360px !important;
		margin: 10px auto 0 !important;
		font-size: 12px !important;
		line-height: 1.45 !important;
	}

	.site-footer .social-row {
		margin-top: 12px !important;
	}

	.site-footer .footer-grid > div:not(.footer-brand):not(.newsletter-box) {
		min-width: 0 !important;
		text-align: center !important;
	}

	.site-footer h2 {
		margin: 0 0 10px !important;
		font-size: 11px !important;
		line-height: 1.2 !important;
		white-space: nowrap;
	}

	.site-footer a {
		margin: 6px 0 !important;
		font-size: 11px !important;
		line-height: 1.35 !important;
		overflow-wrap: anywhere;
	}

	.site-footer .newsletter-box {
		grid-column: 1 / -1 !important;
		margin-top: 0 !important;
		text-align: center !important;
	}

	.site-footer .newsletter-box p {
		margin-bottom: 12px !important;
		font-size: 12px !important;
		line-height: 1.4 !important;
	}

	.site-footer .inline-form {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) auto !important;
		gap: 8px !important;
	}

	.site-footer .inline-form input {
		min-width: 0 !important;
		min-height: 44px !important;
	}

	.site-footer .inline-form .btn {
		width: auto !important;
		min-height: 44px !important;
		padding-inline: 14px !important;
	}

	.site-footer .footer-donation {
		margin-top: 10px !important;
	}

	.site-footer .footer-donation .btn {
		width: 100% !important;
	}

	.site-footer .copyright {
		margin-top: 20px !important;
		font-size: 11px !important;
	}
}

/* =========================================================
   NATIONAL SELECTIONS MOBILE TOP SECTION
   ========================================================= */

@media screen and (max-width: 720px) {

	.national-selections-page {
		padding: 28px 0 48px;
	}

	.national-selections-header {
		display: block !important;
		margin-bottom: 20px !important;
	}

	.national-selection-filters {
		display: grid !important;
		grid-template-columns: 1fr !important;
		gap: 14px !important;
		width: 100% !important;
	}

	.national-selection-filters label {
		display: block !important;
		width: 100% !important;
		margin: 0 !important;
	}

	.national-selection-filters label > span {
		margin-bottom: 6px !important;
		font-size: 11px !important;
	}

	.national-selection-filters select {
		width: 100% !important;
		min-height: 48px !important;
		padding: 10px 42px 10px 14px !important;
		font-size: 15px !important;
	}

	.national-selection-stats {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 12px !important;
		margin-bottom: 16px !important;
	}

	.national-selection-stat-card {
		min-width: 0 !important;
		min-height: 112px !important;
		padding: 16px 8px !important;
	}

	.national-selection-stat-card strong {
		font-size: 2.3rem !important;
	}

	.national-selection-stat-card span {
		margin-top: 10px !important;
		font-size: 11px !important;
		line-height: 1.25 !important;
	}

	.national-selection-legend {
		display: grid !important;
		grid-template-columns: 1fr !important;
		gap: 12px !important;
		margin-bottom: 26px !important;
		padding: 16px !important;
	}

	.national-selection-legend .selection-status {
		font-size: 12px !important;
	}
}

@media screen and (max-width: 390px) {

	.national-selection-stat-card {
		min-height: 104px !important;
		padding-inline: 6px !important;
	}

	.national-selection-stat-card strong {
		font-size: 2rem !important;
	}

	.national-selection-stat-card span {
		font-size: 10px !important;
	}
}

/* =========================================================
   ESC 2027 MOBILE HERO FIX
   ========================================================= */

@media screen and (max-width: 720px) {

	.host-edition-page {
		width: 100%;
		overflow-x: hidden;
	}

	.host-hero {
		height: auto !important;
		min-height: 620px !important;
		max-height: none !important;
		align-items: flex-end !important;
		background-position: 58% center !important;
	}

	.host-hero .host-edition-container {
		width: calc(100% - 28px) !important;
		margin-inline: auto !important;
		transform: none !important;
	}

	.host-hero__content {
		width: 100% !important;
		padding: 70px 0 42px !important;
	}

	.host-hero__eyebrow {
		margin-bottom: 8px !important;
		font-size: 15px !important;
		line-height: 1.3 !important;
	}

	.host-hero__title {
		width: 100% !important;
		max-width: 100% !important;
	}

	.host-hero__year {
		font-size: clamp(4.5rem, 22vw, 6.5rem) !important;
		letter-spacing: -0.06em !important;
		line-height: 0.9 !important;
	}

	.host-hero__location {
		margin-top: 14px !important;
		font-size: clamp(2rem, 9vw, 3rem) !important;
		line-height: 1.05 !important;
		overflow-wrap: anywhere;
	}

	.host-hero__dates {
		margin-top: 18px !important;
		font-size: 17px !important;
	}

	.host-hero__actions {
		display: grid !important;
		grid-template-columns: 1fr 1fr !important;
		gap: 12px !important;
		width: 100% !important;
		margin-top: 24px !important;
	}

	.host-button {
		width: 100% !important;
		min-width: 0 !important;
		min-height: 50px !important;
		padding: 12px 10px !important;
		font-size: 14px !important;
		text-align: center;
	}
}

@media screen and (max-width: 390px) {

	.host-hero {
		min-height: 590px !important;
	}

	.host-hero__year {
		font-size: 4.3rem !important;
	}

	.host-hero__location {
		font-size: 1.85rem !important;
	}

	.host-hero__actions {
		grid-template-columns: 1fr !important;
	}
}

/* =========================================================
   ESC 2027 MOBILE VENUE MAP FIX
   ========================================================= */

@media screen and (max-width: 720px) {

	.host-transport-panel--map {
		display: block !important;
		padding: 14px !important;
	}

	.host-transport-map {
		display: flex !important;
		flex-direction: column !important;
		height: auto !important;
		min-height: 0 !important;
		overflow: visible !important;
		border-radius: 14px !important;
	}

	.host-transport-map__iframe {
		display: block !important;
		width: 100% !important;
		height: 420px !important;
		min-height: 420px !important;
		border-radius: 12px !important;
	}

	.host-transport-map__overlay {
		position: static !important;
		inset: auto !important;
		width: 100% !important;
		margin-top: 12px !important;
	}

	.host-transport-map__route {
		width: 100% !important;
		padding: 16px !important;
		border-radius: 12px !important;
		background: #f5f6fa !important;
		box-shadow: none !important;
	}

	.host-transport-map__route h3 {
		margin-bottom: 14px !important;
		font-size: 18px !important;
	}

	.host-transport-map__stats {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 8px !important;
		margin-bottom: 14px !important;
	}

	.host-transport-map__stat {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		gap: 6px !important;
		min-width: 0 !important;
		padding: 8px 4px !important;
		border-right: 0 !important;
		border-bottom: 0 !important;
		text-align: center !important;
	}

	.host-transport-map__stat-icon {
		width: 30px !important;
		height: 30px !important;
		flex-basis: 30px !important;
	}

	.host-transport-map__stat-icon svg {
		width: 26px !important;
		height: 26px !important;
	}

	.host-transport-map__stat-content strong {
		display: block !important;
		font-size: 15px !important;
		line-height: 1.2 !important;
	}

	.host-transport-map__stat-content span {
		display: block !important;
		font-size: 10px !important;
		line-height: 1.25 !important;
	}

	#host-route-link {
		display: inline-flex !important;
		margin-top: 4px !important;
		font-size: 14px !important;
	}
}

@media screen and (max-width: 390px) {

	.host-transport-map__iframe {
		height: 380px !important;
		min-height: 380px !important;
	}

	.host-transport-map__stats {
		grid-template-columns: 1fr !important;
	}

	.host-transport-map__stat {
		display: grid !important;
		grid-template-columns: 32px minmax(0, 1fr) !important;
		text-align: left !important;
	}

	.host-transport-map__stat-content span,
	.host-transport-map__stat-content strong {
		text-align: left !important;
	}
}

/* ESC 2027 mobile map — final structure */

@media screen and (max-width: 720px) {

	.host-edition-page .host-transport-panel--map {
		display: flex !important;
		flex-direction: column !important;
		height: auto !important;
		padding: 14px !important;
	}

	.host-edition-page .host-transport-map {
		display: block !important;
		width: 100% !important;
		height: 420px !important;
		min-height: 420px !important;
		overflow: hidden !important;
		border-radius: 14px !important;
	}

	.host-edition-page #host-transport-map-iframe {
		display: block !important;
		width: 100% !important;
		height: 420px !important;
		min-height: 420px !important;
		border: 0 !important;
	}

	.host-edition-page .host-transport-map__overlay {
		position: relative !important;
		inset: auto !important;
		right: auto !important;
		bottom: auto !important;
		left: auto !important;
		z-index: auto !important;
		width: 100% !important;
		margin-top: 14px !important;
	}

	.host-edition-page .host-transport-map__route {
		width: 100% !important;
		padding: 16px !important;
		border-radius: 12px !important;
	}

	.host-edition-page .host-transport-map__stats {
		grid-template-columns: 1fr !important;
		gap: 10px !important;
	}

	.host-edition-page .host-transport-map__stat {
		display: grid !important;
		grid-template-columns: 38px minmax(0, 1fr) !important;
		gap: 10px !important;
		align-items: center !important;
		padding: 0 0 10px !important;
		border-right: 0 !important;
		border-bottom: 1px solid rgba(16, 20, 38, 0.14) !important;
		text-align: left !important;
	}

	.host-edition-page .host-transport-map__stat:last-child {
		padding-bottom: 0 !important;
		border-bottom: 0 !important;
	}
}

/* =========================================================
   ESC 2027 MOBILE AVAILABLE ROUTES
   ========================================================= */

@media screen and (max-width: 720px) {

	.host-transport-panel--options {
		width: 100% !important;
		height: auto !important;
		padding: 18px !important;
	}

	.host-transport-panel--options .host-transport-panel__title {
		margin-bottom: 16px !important;
		font-size: 22px !important;
		line-height: 1.2 !important;
	}

	.host-transport-options,
	.host-transport-options__group {
		width: 100% !important;
		min-width: 0 !important;
	}

	.host-transport-options__group {
		display: flex !important;
		flex-direction: column !important;
		gap: 12px !important;
	}

	.host-transport-options__group[hidden] {
		display: none !important;
	}

	.host-transport-option {
		display: grid !important;
		grid-template-columns: 42px minmax(0, 1fr) !important;
		gap: 12px !important;
		align-items: start !important;
		width: 100% !important;
		min-width: 0 !important;
		padding: 14px !important;
		border-radius: 14px !important;
	}

	.host-transport-option__icon {
		width: 42px !important;
		height: 42px !important;
	}

	.host-transport-option__content {
		width: 100% !important;
		min-width: 0 !important;
	}

	.host-transport-option__title {
		display: flex !important;
		flex-wrap: wrap !important;
		align-items: center !important;
		gap: 7px !important;
		margin: 0 0 5px !important;
		font-size: 17px !important;
		line-height: 1.25 !important;
		overflow-wrap: anywhere !important;
	}

	.host-transport-option__recommended {
		display: inline-flex !important;
		flex: 0 0 auto !important;
		padding: 4px 7px !important;
		border-radius: 999px !important;
		font-size: 9px !important;
		line-height: 1 !important;
		white-space: nowrap !important;
	}

	.host-transport-option__subtitle {
		margin-bottom: 5px !important;
		font-size: 13px !important;
		line-height: 1.4 !important;
	}

	.host-transport-option__description {
		display: block !important;
		max-height: none !important;
		overflow: visible !important;
		font-size: 12px !important;
		line-height: 1.45 !important;
		-webkit-line-clamp: unset !important;
	}

	.host-transport-option:hover,
	.host-transport-option:focus-visible {
		transform: none !important;
	}
}

@media screen and (max-width: 390px) {

	.host-transport-panel--options {
		padding: 14px !important;
	}

	.host-transport-option {
		grid-template-columns: 36px minmax(0, 1fr) !important;
		gap: 10px !important;
		padding: 12px !important;
	}

	.host-transport-option__icon {
		width: 36px !important;
		height: 36px !important;
	}

	.host-transport-option__title {
		font-size: 15px !important;
	}
}

/* =========================================================
   ESC 2027 MOBILE SPACING & TYPOGRAPHY
   ========================================================= */

@media screen and (max-width:720px){

    /* Overall page */

    .host-edition-page section{
        padding-top:28px !important;
        padding-bottom:28px !important;
    }

    .host-edition-page .host-edition-container{
        width:calc(100% - 28px) !important;
    }

    /* Cards */

    .host-edition-page .card,
    .host-edition-page .host-card,
    .host-edition-page .host-panel,
    .host-edition-page .host-transport-panel{
        padding:18px !important;
        border-radius:20px !important;
    }

    /* Section headings */

    .host-edition-page h2,
    .host-edition-page .section-title,
    .host-edition-page .host-section-heading__title{

        margin-bottom:10px !important;

        font-size:30px !important;

        line-height:1.12 !important;
    }

    .host-edition-page .host-section-heading__subtitle,
    .host-edition-page .section-subtitle{

        font-size:14px !important;

        line-height:1.55 !important;
    }

    /* Reduce white space */

    .host-edition-page .host-section-heading{

        margin-bottom:18px !important;
    }

    .host-edition-page .host-section{

        margin-bottom:30px !important;
    }

    /* Buttons */

    .host-edition-page .btn,
    .host-edition-page .host-button{

        min-height:48px !important;

        padding:12px 18px !important;
    }

    /* Lists */

    .host-edition-page ul,
    .host-edition-page ol{

        margin-top:12px !important;
        margin-bottom:12px !important;
    }

    /* Images */

    .host-edition-page img{

        border-radius:16px;
    }

}

/* =========================================================
   MOBILE STICKY HEADER POLISH
   ========================================================= */

@media screen and (max-width: 720px) {

	.site-header {
		position: sticky !important;
		top: 0 !important;
		z-index: 9998 !important;
		background: color-mix(
			in srgb,
			var(--bg) 86%,
			transparent
		) !important;
		border-bottom: 1px solid var(--border) !important;
		backdrop-filter: blur(18px) saturate(140%) !important;
		-webkit-backdrop-filter: blur(18px) saturate(140%) !important;
		box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
	}

	.header-inner {
		min-height: 72px !important;
		padding-top: 7px !important;
		padding-bottom: 7px !important;
	}

	.brand img,
	.custom-logo-link img {
		width: 140px !important;
		max-height: 54px !important;
	}

	.nav-toggle {
		width: 40px !important;
		height: 40px !important;
		border-radius: 10px !important;
	}

	.nav-toggle span:not(.screen-reader-text) {
		width: 20px !important;
	}

	.header-actions .theme-toggle {
		width: 48px !important;
		height: 30px !important;
	}

	.header-actions .join-link {
		min-height: 40px !important;
		padding-inline: 13px !important;
		border-radius: 9px !important;
	}

	.primary-nav {
		top: 100% !important;
		max-height: calc(100vh - 72px) !important;
		background: color-mix(
			in srgb,
			var(--bg) 96%,
			transparent
		) !important;
		backdrop-filter: blur(18px) !important;
		-webkit-backdrop-filter: blur(18px) !important;
	}
}

@media screen and (max-width: 390px) {

	.brand img,
	.custom-logo-link img {
		width: 126px !important;
	}

	.header-actions .join-link {
		padding-inline: 10px !important;
		font-size: 10px !important;
	}
}

/* =========================================================
   ESC 2027 MOBILE CAROUSEL POLISH
   ========================================================= */

@media screen and (max-width: 720px) {

	.host-fan-zones-grid,
	.host-visitor-guide-grid,
	.host-discover-bulgaria-grid {
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: 14px !important;
		width: 100% !important;
		padding: 4px 2px 14px !important;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		scroll-snap-type: x mandatory !important;
		scroll-padding-left: 2px !important;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none !important;
	}

	.host-fan-zones-grid::-webkit-scrollbar,
	.host-visitor-guide-grid::-webkit-scrollbar,
	.host-discover-bulgaria-grid::-webkit-scrollbar {
		display: none !important;
	}

	.host-fan-zone-card,
	.host-visitor-guide-card,
	.host-discover-bulgaria-card {
		flex: 0 0 calc(100% - 38px) !important;
		width: calc(100% - 38px) !important;
		min-width: calc(100% - 38px) !important;
		max-width: calc(100% - 38px) !important;
		scroll-snap-align: start !important;
	}

	.host-fan-zone-card__image,
	.host-discover-bulgaria-card__image {
		height: 210px !important;
		min-height: 210px !important;
		overflow: hidden !important;
	}

	.host-fan-zone-card__image img,
	.host-discover-bulgaria-card__image img {
		width: 100% !important;
		height: 100% !important;
		object-fit: cover !important;
	}

	.host-fan-zone-card__body {
		padding: 16px !important;
	}

	.host-visitor-guide-card {
		padding: 18px !important;
	}

	.host-discover-bulgaria-card {
		min-height: 280px !important;
	}

	.host-fan-zone-card__title,
	.host-visitor-guide-card__title,
	.host-discover-bulgaria-card__title {
		font-size: 19px !important;
		line-height: 1.2 !important;
	}

	.host-fan-zones-carousel__button,
	.host-visitor-guide-carousel__button,
	.host-discover-bulgaria-carousel__button {
		display: none !important;
	}

	.host-fan-zones-carousel,
	.host-visitor-guide-carousel,
	.host-discover-bulgaria-carousel {
		width: 100% !important;
		overflow: visible !important;
	}
}

@media screen and (max-width: 390px) {

	.host-fan-zone-card,
	.host-visitor-guide-card,
	.host-discover-bulgaria-card {
		flex-basis: calc(100% - 26px) !important;
		width: calc(100% - 26px) !important;
		min-width: calc(100% - 26px) !important;
		max-width: calc(100% - 26px) !important;
	}

	.host-fan-zone-card__image,
	.host-discover-bulgaria-card__image {
		height: 190px !important;
		min-height: 190px !important;
	}
}

/* =========================================================
   GLOBAL MOBILE OVERFLOW FIX
   ========================================================= */

@media screen and (max-width: 720px) {

	html,
	body {
		width: 100%;
		max-width: 100%;
		overflow-x: clip;
	}

	.site-main,
	.host-edition-page,
	.national-selections-page,
	.site-footer {
		width: 100%;
		max-width: 100%;
		overflow-x: clip;
	}

	.container,
	.host-edition-container {
		max-width: 100%;
	}

	.host-edition-page section,
	.host-edition-page article,
	.host-edition-page div {
		min-width: 0;
	}

	.host-edition-page iframe,
	.host-edition-page img,
	.host-edition-page video,
	.host-edition-page svg {
		max-width: 100%;
	}

	.host-summary__grid,
	.host-information-grid,
	.host-transport-layout {
		width: 100% !important;
		max-width: 100% !important;
	}

	.host-summary__value,
	.host-information-card__title,
	.host-ticket-item__name,
	.host-event-item__title {
		overflow-wrap: anywhere;
		word-break: normal;
	}

	.host-button,
	.btn,
	.host-section-heading__link {
		max-width: 100%;
	}

	input,
	select,
	textarea,
	button {
		max-width: 100%;
	}

	/* Keep intended horizontal carousels scrollable */
	.host-places-grid,
	.host-fan-zones-grid,
	.host-visitor-guide-grid,
	.host-discover-bulgaria-grid,
	.host-places-filters {
		overflow-x: auto !important;
	}
}

.esc-host-selection{
    position:relative;
    display:flex;
    height:100vh;
    overflow:hidden;
}

.city{
    flex:1;
    position:relative;
    background-size:cover;
    background-position:center;
    transition:.5s;
}

.city:hover{
    transform:scale(1.03);
}

.sofia{
    background-image:url('/wp-content/uploads/2026/08/sofia.jpg');
    background-position:center;
    background-size:cover;
}

.burgas{
    background-image:url('/wp-content/uploads/2026/08/burgas.jpg');
    background-position:center;
    background-size:cover;
}
.overlay{
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.45);
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
}

.overlay h2{
    font-size:72px;
    color:#fff;
}

.overlay span{
    color:#fff;
    font-size:22px;
}

.host-title{
    position:absolute;
    top:40px;
    left:50%;
    transform:translateX(-50%);
    z-index:20;
    text-align:center;
    color:#fff;
}

.host-footer{
    position:absolute;
    bottom:35px;
    left:50%;
    transform:translateX(-50%);
    color:#fff;
    z-index:20;
}

@media (max-width: 768px) {

    .esc-host-selection {
        display: flex;
        flex-direction: column;
        height: auto;
        min-height: 100svh;
        overflow: hidden;
    }

    .host-title {
        position: relative;
        top: auto;
        left: auto;
        transform: none;
        width: 100%;
        padding: 22px 18px;
        background: #070815;
        text-align: center;
        order: 1;
    }

    .host-title h1 {
        margin: 0;
        font-size: 30px;
        line-height: 1.05;
        color: #fff;
    }

    .host-title p {
        margin: 8px 0 0;
        font-size: 15px;
        line-height: 1.4;
        color: rgba(255, 255, 255, 0.85);
    }

    .city {
        flex: none;
        width: 100%;
        height: 43svh;
        min-height: 340px;
        transform: none !important;
    }

    .sofia {
        order: 2;
    }

    .burgas {
        order: 3;
    }

    .overlay {
        padding: 24px;
        text-align: center;
        background: rgba(0, 0, 0, 0.38);
    }

    .overlay h2 {
        margin: 0;
        font-size: 52px;
        line-height: 1;
        color: #fff;
    }

    .overlay span {
        display: block;
        margin-top: 10px;
        font-size: 17px;
        line-height: 1.3;
        color: #fff;
    }

    .host-footer {
        position: relative;
        bottom: auto;
        left: auto;
        transform: none;
        width: 100%;
        padding: 18px;
        background: #070815;
        text-align: center;
        font-size: 15px;
        line-height: 1.4;
        color: #fff;
        order: 4;
    }
}

/* ===============================
   HOMEPAGE HERO SLIDER
================================ */

.home-hero-slider {
	position: relative;
	overflow: hidden;
	border-bottom: 1px solid var(--border);
}

.home-hero-slider__track {
	position: relative;
}

.home-hero-slide {
	position: relative;
	display: none;
	min-height: 570px;
	align-items: end;
	padding: 64px 0 42px;

	background:
		linear-gradient(
			90deg,
			var(--bg) 0%,
			rgba(3, 6, 18, .82) 38%,
			rgba(3, 6, 18, .18) 75%
		),
		var(--hero-image) center / cover no-repeat;
}

.home-hero-slide.is-active {
	display: flex;
}

.home-hero-slide__content {
	width: min(100% - 80px, 1460px);
	margin-inline: auto;
}

.home-hero-slide__content h1 {
	max-width: 850px;
	margin-bottom: 28px;
}

.home-hero-slide__description {
	max-width: 620px;
	font-size: 1.12rem;
	color: #fff;
}

.home-hero-slide__description p {
	margin-bottom: 0;
}

body.theme-light .home-hero-slide {
	background:
		linear-gradient(
			90deg,
			rgba(255, 255, 255, .96) 0%,
			rgba(255, 255, 255, .76) 44%,
			rgba(255, 255, 255, .12) 82%
		),
		var(--hero-image) center / cover no-repeat;
}

@media (max-width: 720px) {
	.home-hero-slide {
		min-height: 500px;
		padding: 44px 0 34px;
	}

	.home-hero-slide__content h1 {
		margin-bottom: 20px;
	}
}

/* Homepage hero slider controls */

.home-hero-slider__arrow {
	position: absolute;
	top: 50%;
	z-index: 5;

	display: grid;
	place-items: center;

	width: 46px;
	height: 46px;

	border: 1px solid rgba(255,255,255,.22);
	border-radius: 50%;

	background: rgba(5, 8, 24, .62);
	color: #fff;

	font-size: 34px;
	line-height: 1;

	cursor: pointer;
	transform: translateY(-50%);

	backdrop-filter: blur(8px);

	transition:
		background .2s ease,
		border-color .2s ease,
		transform .2s ease;
}

.home-hero-slider__arrow:hover {
	background: var(--pink);
	border-color: var(--pink);
	transform: translateY(-50%) scale(1.06);
}

.home-hero-slider__arrow--prev {
	left: 24px;
}

.home-hero-slider__arrow--next {
	right: 24px;
}

.home-hero-slider__dots {
	position: absolute;
	z-index: 5;
	left: 50%;
	bottom: 20px;

	display: flex;
	gap: 8px;

	transform: translateX(-50%);
}

.home-hero-slider__dot {
	width: 9px;
	height: 9px;
	padding: 0;

	border: 0;
	border-radius: 50%;

	background: rgba(255,255,255,.42);

	cursor: pointer;

	transition:
		width .2s ease,
		background .2s ease;
}

.home-hero-slider__dot.is-active {
	width: 28px;
	border-radius: 999px;
	background: var(--pink);
}

@media (max-width: 720px) {

	.home-hero-slider__arrow {
		width: 38px;
		height: 38px;
		font-size: 28px;
	}

	.home-hero-slider__arrow--prev {
		left: 10px;
	}

	.home-hero-slider__arrow--next {
		right: 10px;
	}

	.home-hero-slider__dots {
		bottom: 14px;
	}
}

/* Homepage hero refinements */

/* Better description contrast in light mode */
body.theme-light .home-hero-slide__description,
body.theme-light .home-hero-slide__description p {
	color: #11152b;
}

/* ==========================================
   Registration field validation
========================================== */

.join-form input.is-invalid,
.join-form select.is-invalid {
	border: 2px solid #dc2626 !important;
	background: rgba(220, 38, 38, 0.04);
}

.join-form input.is-valid,
.join-form select.is-valid {
	border: 2px solid #16a34a !important;
}

.field-validation-message {
	display: none;
	margin-top: 7px;
	padding: 8px 11px;

	border: 1px solid rgba(220, 38, 38, 0.30);
	border-radius: 6px;

	background: rgba(220, 38, 38, 0.09);
	color: #b91c1c;

	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
}

.field-validation-message:not(:empty) {
	display: block;
}

.field-validation-message:not(:empty)::before {
	content: "⚠";
	display: inline-block;
	margin-right: 6px;
	font-weight: 700;
}

/* Dark mode */
body:not(.theme-light) .field-validation-message {
	background: rgba(239, 68, 68, 0.14);
	border-color: rgba(248, 113, 113, 0.35);
	color: #fca5a5;
}

body:not(.theme-light) .join-form input.is-invalid,
body:not(.theme-light) .join-form select.is-invalid {
	border-color: #ef4444 !important;
	background: rgba(239, 68, 68, 0.07);
}

body:not(.theme-light) .join-form input.is-valid,
body:not(.theme-light) .join-form select.is-valid {
	border-color: #22c55e !important;
}

/* ==========================================================
   Join Page - PoC Layout
   ========================================================== */

.join-hero {
	position: relative;
	min-height: 320px;
	overflow: hidden;
	background: #080b1d;
}

.join-hero__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.join-hero__overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(
			90deg,
			rgba(3, 6, 20, 0.92) 0%,
			rgba(3, 6, 20, 0.72) 38%,
			rgba(3, 6, 20, 0.18) 72%,
			rgba(3, 6, 20, 0.08) 100%
		);
}

.join-hero__content {
	position: relative;
	z-index: 2;
	width: min(1120px, calc(100% - 48px));
	margin: 0 auto;
	padding: 64px 0;
}

.join-hero__content h1 {
	max-width: 620px;
	margin: 0 0 16px;

	color: #fff;

	font-size: clamp(44px, 5vw, 72px);
	line-height: 0.95;
}

.join-hero__content p {
	max-width: 560px;
	margin: 0;

	color: rgba(255, 255, 255, 0.90);

	font-size: clamp(18px, 2vw, 24px);
	line-height: 1.45;
}


/* Main registration area */

.join-page {
	padding: 42px 0 70px;
}

.join-shell {
	display: grid;
	grid-template-columns: 500px 520px;
	gap: 42px;

	align-items: start;
	justify-content: center;

	width: min(1180px, calc(100% - 48px));

	margin-left: auto;
	margin-right: auto;
}


/* Left column */

.join-intro {
	min-width: 0;
}

.join-title {
	margin: 0 0 22px;

	font-size: clamp(58px, 6vw, 90px);
	line-height: 0.82;
	letter-spacing: -0.04em;
}

.join-title .gradient-text {
	display: block;
}

.join-description {
	max-width: 480px;
	margin-bottom: 30px;

	font-size: 17px;
	line-height: 1.65;
}

.benefit-list {
	display: grid;
	gap: 22px;

	margin-top: 26px;
}

.benefit {
	display: grid;
	grid-template-columns: 78px 1fr;
	gap: 18px;
	align-items: center;
}

.benefit-icon {
	display: grid;
	place-items: center;

	width: 78px;
	height: 78px;

	border-radius: 50%;

	background:
		linear-gradient(
			135deg,
			rgba(239, 35, 198, 0.11),
			rgba(73, 94, 255, 0.12)
		);

	box-shadow:
		0 8px 26px rgba(112, 65, 255, 0.12);

	border: 1px solid rgba(132, 96, 255, 0.14);
}

.benefit-icon svg {
	width: 42px;
	height: 42px;

	fill: none;
	stroke: #6f42ff;
	stroke-width: 3;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.benefit h2 {
	margin: 0 0 6px;

	font-size: 21px;
	line-height: 1.15;
}

.benefit p {
	margin: 0;

	font-size: 15px;
	line-height: 1.5;
}

.join-testimonial {
	margin-top: 34px;
	padding: 24px;

	max-width: 480px;
}

.join-testimonial p {
	margin-top: 0;

	font-size: 15px;
	line-height: 1.6;
}


/* Right registration card */

.join-panel {
	width: 100%;
	max-width: 520px;
	min-height: 760px;

	padding: 34px 36px;

	border-radius: 18px;

	box-shadow:
		0 18px 50px rgba(25, 32, 65, 0.12);
}

.join-panel .section-title {
	margin-top: 0;
	margin-bottom: 8px;
}

.join-panel > p {
	margin-top: 0;
	margin-bottom: 24px;
}

.social-button {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 100%;
	min-height: 50px;

	margin-bottom: 12px;

	border: 1px solid rgba(100, 110, 150, 0.18);
	border-radius: 8px;

	background: #fff;

	font-weight: 700;

	cursor: pointer;

	transition:
		transform 0.15s ease,
		border-color 0.15s ease,
		box-shadow 0.15s ease;
}

.social-button:hover {
	transform: translateY(-1px);

	border-color: rgba(111, 66, 255, 0.35);

	box-shadow:
		0 8px 20px rgba(90, 65, 180, 0.08);
}

.divider {
	display: flex;
	align-items: center;
	gap: 14px;

	margin: 28px 0;

	color: #68708a;
	font-size: 13px;
}

.divider::before,
.divider::after {
	content: "";
	flex: 1;

	height: 1px;

	background: rgba(100, 110, 150, 0.22);
}

.join-panel .form-row {
	margin-bottom: 15px;
}

.join-panel .form-row label {
	display: block;

	margin-bottom: 6px;

	font-size: 12px;
	font-weight: 800;
	text-transform: uppercase;
}

.join-panel .form-row input,
.join-panel .form-row select {
	width: 100%;
	min-height: 46px;
}

.join-panel .check-row {
	display: flex;
	align-items: flex-start;
	gap: 9px;

	margin: 10px 0 14px;
}

.join-panel .check-row input {
	margin-top: 3px;
}

.join-panel .btn-primary {
	min-height: 48px;
}

.euroverse-verification-panel {
	margin-top: 6px;
}


/* Light mode */

body.theme-light .join-panel,
body.theme-light .join-testimonial {
	background: #fff;
}

body.theme-light .benefit h2 {
	color: #11152b;
}


/* Dark mode */

body.theme-dark .social-button {
	background: rgba(255, 255, 255, 0.05);
	color: #fff;
}

body.theme-dark .benefit-icon {
	background:
		linear-gradient(
			135deg,
			rgba(239, 35, 198, 0.16),
			rgba(73, 94, 255, 0.18)
		);
}

body.theme-dark .benefit-icon svg {
	stroke: #a787ff;
}


/* Tablet */

@media (max-width: 1100px) {

.join-hero__content,
.join-shell {
	width: calc(100% - 48px);
	margin-left: auto;
	margin-right: auto;
}

	.join-shell {
		grid-template-columns:
			minmax(0, 1fr)
			minmax(0, 1fr);

		gap: 28px;
	}

	.join-title {
		font-size: clamp(52px, 7vw, 72px);
	}
}


/* Mobile */

@media (max-width: 760px) {

	.join-hero {
		min-height: 250px;
	}

	.join-hero__content {
		min-height: 250px;

		width: calc(100% - 32px);

		margin-left: 16px;
		margin-right: 16px;
	}

	.join-hero__content h1 {
		font-size: 42px;
	}

	.join-hero__content p {
		font-size: 17px;
	}

	.join-page {
		padding-top: 28px;
	}

	.join-shell {
		grid-template-columns: 1fr;

		width: calc(100% - 28px);

		margin-left: 14px;
		margin-right: 14px;

		gap: 30px;
	}

	.join-title {
		font-size: 58px;
	}

	.benefit {
		grid-template-columns: 64px 1fr;
	}

	.benefit-icon {
		width: 64px;
		height: 64px;
	}

	.benefit-icon svg {
		width: 34px;
		height: 34px;
	}

	.join-panel {
		max-width: none;
		min-height: auto;

		padding: 26px 22px;
	}
}

/* ==========================================================
   JOIN PAGE — FINAL LAYOUT
========================================================== */

/* ---------- HERO ---------- */

.join-hero {
	position: relative;
	width: 100%;
	height: 320px;
	overflow: hidden;
	background: #060817;
}

.join-hero__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: center;
}

.join-hero__overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(
			90deg,
			rgba(3, 6, 18, .92) 0%,
			rgba(3, 6, 18, .70) 36%,
			rgba(3, 6, 18, .15) 76%,
			rgba(3, 6, 18, .05) 100%
		);
}

.join-hero .join-hero__content {
	position: relative;
	z-index: 2;

	display: flex;
	flex-direction: column;
	justify-content: center;

	width: min(1120px, calc(100% - 48px));
	height: 100%;

	margin: 0 auto !important;
	padding: 0 !important;
}

.join-hero__content h1 {
	margin: 0 0 14px !important;

	color: #ffffff;

	font-family: var(--font-body);
	font-size: 48px !important;
	font-weight: 800;
	line-height: 1.05;
	text-transform: none;
}

.join-hero__content p {
	max-width: 520px;
	margin: 0 !important;

	color: rgba(255, 255, 255, .90);

	font-size: 18px;
	line-height: 1.55;
}


/* ---------- MAIN PAGE ---------- */

.join-page {
	padding: 48px 0 72px !important;
}

.join-page .join-shell {
	display: grid !important;
	grid-template-columns: 470px 520px !important;
	gap: 60px !important;

	align-items: start !important;
	justify-content: center !important;

	width: min(1120px, calc(100% - 48px)) !important;
	max-width: 1120px !important;

	margin: 0 auto !important;
	padding: 0 !important;
}


/* ---------- LEFT COLUMN ---------- */

.join-intro {
	width: 100%;
	min-width: 0;
}

.join-intro .join-title {
	margin: 4px 0 28px !important;

	font-size: 76px !important;
	line-height: .82 !important;
	letter-spacing: -2px;
}

.join-intro .join-title .gradient-text {
	display: block;
}

.join-description {
	max-width: 450px;

	margin: 0 0 32px !important;

	font-size: 16px;
	line-height: 1.65;
}


/* ---------- BENEFITS ---------- */

.join-page .benefit-list {
	display: grid !important;
	gap: 24px !important;

	margin: 0 !important;
}

.join-page .benefit {
	display: grid !important;
	grid-template-columns: 72px minmax(0, 1fr) !important;
	gap: 18px !important;

	align-items: center !important;
}


/* Circular icon card */

.join-page .benefit-icon {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;

	width: 68px !important;
	height: 68px !important;

	border: 1px solid rgba(143, 53, 255, .18);
	border-radius: 50% !important;

	background:
		linear-gradient(
			135deg,
			rgba(243, 43, 198, .10),
			rgba(31, 116, 255, .10)
		) !important;

	box-shadow:
		0 8px 24px rgba(89, 55, 190, .10);
}


/* Fix the black SVG icons */

.join-page .benefit-icon svg {
	display: block;

	width: 34px !important;
	height: 34px !important;

	fill: none !important;
	stroke: #7c3aed !important;
	stroke-width: 3 !important;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.join-page .benefit-icon svg * {
	fill: none !important;
	stroke: #7c3aed !important;
}


/* Benefit text */

.join-page .benefit h2 {
	margin: 0 0 5px !important;

	font-family: var(--font-body);
	font-size: 19px !important;
	font-weight: 800;
	line-height: 1.2;
	text-transform: none;
}

.join-page .benefit p {
	margin: 0 !important;

	color: var(--muted);

	font-size: 14px;
	line-height: 1.5;
}


/* ---------- TESTIMONIAL ---------- */

.join-testimonial {
	width: 100%;
	max-width: 450px;

	margin-top: 32px !important;
	padding: 22px 24px !important;

	border-radius: 12px !important;
}

.join-testimonial p {
	margin: 0 0 12px !important;

	font-size: 14px;
	line-height: 1.6;
}

.join-testimonial strong {
	font-size: 13px;
}


/* ---------- RIGHT REGISTRATION PANEL ---------- */

.join-page .join-panel {
	width: 520px !important;
	max-width: 100% !important;

	min-height: 760px;

	margin: 0 !important;
	padding: 34px 36px !important;

	border-radius: 16px !important;
}

.join-panel .section-title {
	margin: 0 0 8px !important;

	font-size: 18px !important;
}

.join-panel > p {
	margin: 0 0 24px !important;
}


/* Social buttons */

.join-panel .social-button {
	width: 100%;

	min-height: 50px;

	margin-bottom: 12px;

	border: 1px solid var(--border);
	border-radius: 7px;

	background: #ffffff;
	color: #0d1024;

	font-weight: 800;
}


/* ---------- FORM ---------- */

.join-panel .divider {
	margin: 28px 0 !important;
}

.join-panel .form-row label {
	margin: 0 0 6px !important;

	font-size: 11px;
	font-weight: 900;
}

.join-panel .form-row input,
.join-panel .form-row select {
	min-height: 48px;
}

.join-panel .check-row {
	margin: 12px 0 16px;
}


/* ---------- DARK MODE ---------- */

body.theme-dark .join-panel .social-button {
	background: rgba(255, 255, 255, .06);
	color: #ffffff;
}


/* ---------- TABLET ---------- */

@media (max-width: 1050px) {

	.join-page .join-shell {
		grid-template-columns:
			minmax(0, 1fr)
			minmax(0, 1fr) !important;

		gap: 32px !important;
	}

	.join-page .join-panel {
		width: 100% !important;
	}

	.join-intro .join-title {
		font-size: 62px !important;
	}
}


/* ---------- MOBILE ---------- */

@media (max-width: 760px) {

	.join-hero {
		height: 260px;
	}

	.join-hero .join-hero__content {
		width: calc(100% - 32px);
	}

	.join-hero__content h1 {
		font-size: 38px !important;
	}

	.join-hero__content p {
		font-size: 16px;
	}

	.join-page {
		padding-top: 30px !important;
	}

	.join-page .join-shell {
		grid-template-columns: 1fr !important;

		width: calc(100% - 28px) !important;

		gap: 32px !important;
	}

	.join-intro .join-title {
		font-size: 56px !important;
	}

	.join-page .join-panel {
		width: 100% !important;
		min-height: auto;

		padding: 26px 22px !important;
	}

	.join-page .benefit {
		grid-template-columns: 60px minmax(0, 1fr) !important;
	}

	.join-page .benefit-icon {
		width: 56px !important;
		height: 56px !important;
	}

	.join-page .benefit-icon svg {
		width: 29px !important;
		height: 29px !important;
	}
}

/* Join benefit icon final fix */

.join-page .benefit-icon {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;

	width: 68px !important;
	height: 68px !important;

	border-radius: 50% !important;

	background:
		linear-gradient(
			135deg,
			rgba(243, 43, 198, .12),
			rgba(31, 116, 255, .12)
		) !important;

	border: 1px solid rgba(143, 53, 255, .20) !important;
}

.join-page .benefit-icon svg,
.join-page .benefit-icon svg * {
	fill: none !important;
	stroke: #7c3aed !important;
	color: #7c3aed !important;
}

body.theme-dark .join-page .benefit-icon svg,
body.theme-dark .join-page .benefit-icon svg * {
	stroke: #b794f6 !important;
	color: #b794f6 !important;
}

/* Join testimonial final styling */

.join-testimonial {
	position: relative;

	max-width: 450px;

	margin-top: 34px !important;
	padding: 24px 26px 22px 56px !important;

	border: 1px solid rgba(143, 53, 255, .18) !important;
	border-radius: 14px !important;

	background:
		linear-gradient(
			135deg,
			rgba(255,255,255,.92),
			rgba(245,247,255,.96)
		) !important;

	box-shadow:
		0 14px 36px rgba(20, 28, 70, .08) !important;
}

.join-testimonial::before {
	content: "“";

	position: absolute;
	top: 18px;
	left: 20px;

	color: #d946ef;

	font-family: Georgia, serif;
	font-size: 42px;
	font-weight: 700;
	line-height: 1;
}

.join-testimonial p {
	margin: 0 0 14px !important;

	color: var(--muted) !important;

	font-size: 14px;
	line-height: 1.65;
}

.join-testimonial strong {
	display: block;

	color: var(--text);

	font-size: 13px;
	font-weight: 800;
}

body.theme-dark .join-testimonial {
	background:
		linear-gradient(
			145deg,
			rgba(20, 24, 58, .96),
			rgba(12, 16, 42, .96)
		) !important;
}

/* ==========================================================
   FINAL Join social login buttons
========================================================== */

.join-panel .social-login-buttons {
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: 100%;
}

/* Google */
.join-panel .euroverse-google-button {
	width: 100%;
	height: 40px;
	overflow: hidden;
	border-radius: 6px;
}

.join-panel .euroverse-google-button > div,
.join-panel .euroverse-google-button iframe {
	width: 100% !important;
	max-width: 100% !important;
	height: 40px !important;
}

/* Facebook + Apple */
.join-panel .social-login-buttons > .social-button {
	position: relative !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;

	width: 100% !important;
	height: 40px !important;
	min-height: 40px !important;
	max-height: 40px !important;

	margin: 0 !important;
	padding: 0 48px !important;

	overflow: hidden !important;

	border: 0 !important;
	border-radius: 6px !important;

	background: #ffffff !important;
	color: #0d1024 !important;

	font-weight: 800 !important;
	line-height: 1 !important;
}

/* Facebook + Apple logo */
.join-panel .social-login-buttons > .social-button > img {
	position: absolute !important;
	left: 14px !important;
	top: 50% !important;

	display: block !important;

	width: 20px !important;
	height: 20px !important;

	min-width: 20px !important;
	min-height: 20px !important;
	max-width: 20px !important;
	max-height: 20px !important;

	margin: 0 !important;
	padding: 0 !important;

	object-fit: contain !important;

	transform: translateY(-50%) !important;
}

/* Button text */
.join-panel .social-login-buttons > .social-button > span {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;

	text-align: center !important;
	line-height: 1 !important;
}

/* ==========================================================
   Facebook login status message
========================================================== */

.facebook-login-message {
	width: 100%;
	margin: 14px 0 18px;
	padding: 14px 18px;

	border: 1px solid transparent;
	border-radius: 10px;

	font-size: 14px;
	font-weight: 800;
	line-height: 1.5;

	box-shadow: 0 10px 28px rgba(0, 0, 0, .08);
}

.facebook-login-message--success {
	background: #ecfdf5;
	border-color: #86efac;
	color: #166534;
}

.facebook-login-message--error {
	background: #fff1f2;
	border-color: #fda4af;
	color: #9f1239;
}

/* ==========================================================
   Saved Items
========================================================== */

.euroverse-save-button {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin: 8px 0;
	padding: 7px 12px;
	border: 1px solid rgba(124, 58, 237, .18);
	border-radius: 999px;
	background: rgba(124, 58, 237, .06);
	color: var(--purple);
	font: inherit;
	font-size: .72rem;
	font-weight: 800;
	line-height: 1;
	cursor: pointer;
	transition:
		transform .18s ease,
		background .18s ease,
		border-color .18s ease,
		box-shadow .18s ease;
}

.euroverse-save-button:hover {
	transform: translateY(-1px);
	background: rgba(124, 58, 237, .11);
	border-color: rgba(124, 58, 237, .3);
	box-shadow: 0 5px 14px rgba(124, 58, 237, .12);
}

.euroverse-save-icon {
	font-size: 1rem;
	line-height: 1;
}

/* Item is already saved */
.euroverse-save-button.is-saved {
	background: rgba(124, 58, 237, .12);
	border-color: rgba(124, 58, 237, .3);
	color: var(--purple);
}

/* AJAX request running */
.euroverse-save-button.is-loading {
	opacity: .55;
	cursor: wait;
	pointer-events: none;
}

/* ==========================================================
   Header Account Avatar
========================================================== */

.header-account-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	flex: 0 0 42px;
	border-radius: 50%;
	overflow: hidden;
	border: 2px solid rgba(124, 58, 237, .22);
	background: rgba(124, 58, 237, .08);
	box-shadow: 0 4px 12px rgba(124, 58, 237, .12);
	transition:
		transform .18s ease,
		border-color .18s ease,
		box-shadow .18s ease;
}

.header-account-link:hover {
	transform: translateY(-1px);
	border-color: rgba(124, 58, 237, .55);
	box-shadow: 0 6px 18px rgba(124, 58, 237, .22);
}

.header-account-avatar {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 50%;
}

@media (max-width: 768px) {

	.header-account-link {
		width: 38px;
		height: 38px;
		flex-basis: 38px;
	}
}

/* ==========================================================
   Join Page Auth Tabs
========================================================== */

.join-auth-tabs {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 6px;
	margin: 14px 0 18px;
	padding: 5px;
	border: 1px solid rgba(124, 58, 237, .14);
	border-radius: 14px;
	background: rgba(124, 58, 237, .05);
}

.join-auth-tab {
	min-height: 42px;
	padding: 0 16px;
	border: 0;
	border-radius: 10px;
	background: transparent;
	color: var(--muted);
	font: inherit;
	font-size: .82rem;
	font-weight: 800;
	cursor: pointer;
	transition:
		background .18s ease,
		color .18s ease,
		box-shadow .18s ease,
		transform .18s ease;
}

.join-auth-tab:hover {
	color: var(--text);
	background: rgba(124, 58, 237, .07);
}

.join-auth-tab.is-active {
	background:
		linear-gradient(
			135deg,
			#d946ef,
			#4f46ff
		);
	color: #fff;
	box-shadow:
		0 8px 20px rgba(124, 58, 237, .22);
}

.join-auth-tab:active {
	transform: scale(.98);
}

@media (max-width: 520px) {

	.join-auth-tabs {
		grid-template-columns: 1fr 1fr;
	}

	.join-auth-tab {
		padding: 0 10px;
		font-size: .76rem;
	}
}

/* ==========================================================
   Join Page — Mobile Width Fix
========================================================== */

@media (max-width: 760px) {

	.join-page {
		width: 100%;
		max-width: 100%;
		overflow-x: clip;
		padding: 30px 0 50px !important;
	}

	.join-page .join-shell {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) !important;

		width: 100% !important;
		max-width: 100% !important;

		margin: 0 !important;
		padding: 0 16px !important;

		gap: 32px !important;
		box-sizing: border-box;
	}

	.join-intro,
	.join-page .join-panel {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		margin: 0 !important;
		box-sizing: border-box;
	}

	.join-page .join-panel {
		min-height: auto !important;
		padding: 24px 18px !important;
	}

	.join-intro .join-title {
		max-width: 100%;
		font-size: 46px !important;
		line-height: .9 !important;
		letter-spacing: -1px;
		overflow-wrap: anywhere;
	}

	.join-description,
	.join-testimonial {
		width: 100% !important;
		max-width: 100% !important;
	}

	.join-panel form,
	.join-panel .form-row,
	.join-panel input,
	.join-panel select,
	.join-panel .social-login-buttons,
	.join-panel .social-button {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		box-sizing: border-box;
	}

	/* Google Sign-In can inject its own fixed-width iframe */
	.join-panel iframe,
	.join-panel [id*="g_id"],
	.join-panel .g_id_signin {
		max-width: 100% !important;
	}

	.join-panel .social-login-buttons {
		overflow: hidden;
	}
}

/* ==========================================================
   News Cards — Compact Mobile Layout
========================================================== */

@media (max-width: 720px) {

	.news-card {
		display: grid !important;
		grid-template-columns: 110px minmax(0, 1fr) !important;
		gap: 12px !important;
		align-items: center !important;
		padding: 10px !important;
	}

	.news-card .news-card__image {
		width: 110px !important;
		padding: 0 !important;
	}

	.news-card .news-card__image img {
		width: 110px !important;
		height: 78px !important;
		max-height: 78px !important;
		object-fit: cover !important;
		border-radius: 8px !important;
	}

	.news-card__content,
	.news-card__body {
		padding: 0 !important;
		min-width: 0;
	}

	.news-card h2,
	.news-card h3 {
		margin: 4px 0 6px !important;
		font-size: 14px !important;
		line-height: 1.25 !important;
	}

	.news-card p {
		display: none !important;
	}

	.news-card .eyebrow {
		display: block !important;
		margin: 0 0 4px !important;
		font-size: 9px !important;
		line-height: 1.2 !important;
	}

	.news-card .button,
	.news-card .btn {
		display: inline-flex !important;
		margin-top: 4px !important;
		font-size: 10px !important;
	}

	.news-card + .news-card {
		margin-top: 10px;
	}
}

/* =========================================================
   About Burgas
========================================================= */

.about-burgas-page {
	overflow: hidden;
	background: var(--bg);
	color: var(--text);
}

.about-burgas-container {
	width: min(1440px, calc(100% - 48px));
	margin-inline: auto;
}

/* Burgas coastal accent */
.about-burgas-page {
	--burgas-accent: #13d8ff;
	--burgas-accent-2: #1f74ff;
}

/* Hero */

.about-burgas-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 650px;
	overflow: hidden;
	border-bottom: 1px solid var(--border);
	background:
		linear-gradient(
			90deg,
			rgba(3, 6, 18, 0.98) 0%,
			rgba(3, 6, 18, 0.92) 28%,
			rgba(3, 6, 18, 0.48) 55%,
			rgba(3, 6, 18, 0.12) 100%
		),
		var(--about-burgas-hero-image) center 42% / cover no-repeat,
		#070b1d;
}

.about-burgas-hero__overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(
			0deg,
			rgba(3, 6, 18, 0.72) 0%,
			transparent 52%
		);
	pointer-events: none;
}

.about-burgas-hero__layout {
	position: relative;
	z-index: 2;
	display: block;
}

.about-burgas-hero__content {
	width: min(620px, 100%);
	padding: 76px 0;
}

.about-burgas-eyebrow {
	margin: 0 0 14px;
	color: var(--burgas-accent);
	font-size: 0.76rem;
	font-weight: 900;
	letter-spacing: 0.12em;
	line-height: 1.45;
	text-transform: uppercase;
}

.about-burgas-hero__title {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	margin: 0 0 24px;
	color: #ffffff;
	font-family: var(--font-display);
	font-size: clamp(5rem, 9vw, 9rem);
	line-height: 0.78;
	letter-spacing: -0.035em;
	text-transform: uppercase;
}

.about-burgas-hero__title span {
	color: #ffffff;
}

.about-burgas-hero__title strong {
	margin-top: 18px;
	background: var(--gradient);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font: inherit;
}

.about-burgas-hero__subtitle {
	max-width: 520px;
	margin: 0 0 18px;
	color: #ffffff;
	font-family: var(--font-body);
	font-size: clamp(1.55rem, 2.4vw, 2.35rem);
	font-weight: 800;
	line-height: 1.18;
	text-transform: none;
}

.about-burgas-hero__description {
	max-width: 570px;
	margin: 0;
	color: rgba(255, 255, 255, 0.76);
	font-size: 1rem;
	line-height: 1.75;
}

.about-burgas-hero__features {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
	margin-top: 38px;
}

.about-burgas-hero-feature {
	display: flex;
	align-items: center;
	gap: 13px;
	min-width: 0;
	padding: 6px 20px;
	border-right: 1px solid rgba(255, 255, 255, 0.18);
}

.about-burgas-hero-feature:first-child {
	padding-left: 0;
}

.about-burgas-hero-feature:last-child {
	border-right: 0;
}

.about-burgas-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 38px;
	width: 38px;
	height: 38px;
	color: var(--burgas-accent);
	font-size: 1.55rem;
}

.about-burgas-hero-feature strong,
.about-burgas-hero-feature span {
	display: block;
}

.about-burgas-hero-feature strong {
	color: #ffffff;
	font-size: 0.73rem;
	font-weight: 900;
	line-height: 1.3;
	text-transform: uppercase;
}

.about-burgas-hero-feature div > span {
	margin-top: 4px;
	color: rgba(255, 255, 255, 0.66);
	font-size: 0.7rem;
	line-height: 1.35;
}

/* General sections */

.about-burgas-section {
	padding: 72px 0;
}

.about-burgas-section-heading {
	margin-bottom: 32px;
}

.about-burgas-section-heading h2,
.about-burgas-intro__content h2,
.about-burgas-eurovision h2 {
	margin: 0;
	font-family: var(--font-body);
	text-transform: none;
}

.about-burgas-section-heading h2 {
	font-size: clamp(2rem, 4vw, 3.2rem);
	line-height: 1.1;
}

.about-burgas-section-heading > p:last-child {
	max-width: 720px;
	margin: 14px 0 0;
	color: var(--muted);
	line-height: 1.7;
}

.about-burgas-section-heading--center {
	text-align: center;
}

.about-burgas-section-heading--center > p:last-child {
	margin-right: auto;
	margin-left: auto;
}

/* Facts */

.about-burgas-facts {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	overflow: hidden;
	border: 1px solid var(--border);
	border-radius: 18px;
	background: var(--surface);
	box-shadow: 0 18px 46px rgba(0, 0, 0, 0.12);
}

.about-burgas-fact {
	min-width: 0;
	padding: 28px 22px;
	border-right: 1px solid var(--border);
}

.about-burgas-fact:last-child {
	border-right: 0;
}

.about-burgas-fact__icon {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	width: 42px;
	height: 42px;
	margin-bottom: 16px;
	color: var(--burgas-accent);
	font-size: 1.55rem;
}

.about-burgas-fact h3 {
	margin: 0 0 9px;
	font-family: var(--font-body);
	font-size: 0.78rem;
	font-weight: 900;
	line-height: 1.3;
	text-transform: uppercase;
}

.about-burgas-fact p {
	margin: 0;
	color: var(--muted);
	font-size: 0.82rem;
	line-height: 1.55;
}

/* Introduction */

.about-burgas-intro-section {
	padding: 72px 0;
	border-block: 1px solid var(--border);
	background: var(--surface-2);
}

.about-burgas-intro {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr);
	gap: 70px;
	align-items: center;
}

.about-burgas-intro__content h2 {
	max-width: 760px;
	margin-bottom: 26px;
	font-size: clamp(2.1rem, 4vw, 3.6rem);
	line-height: 1.1;
}

.about-burgas-intro__content p {
	max-width: 820px;
	margin: 0 0 18px;
	color: var(--muted);
	line-height: 1.8;
}

.about-burgas-intro__quote {
	padding: 36px;
	border: 1px solid rgba(19, 216, 255, 0.28);
	border-radius: 22px;
	background:
		linear-gradient(
			145deg,
			rgba(19, 216, 255, 0.10),
			rgba(31, 116, 255, 0.08)
		);
}

.about-burgas-intro__quote i {
	margin-bottom: 20px;
	color: var(--burgas-accent);
	font-size: 2.4rem;
}

.about-burgas-intro__quote blockquote {
	margin: 0;
	color: var(--text);
	font-size: clamp(1.3rem, 2.2vw, 2rem);
	font-weight: 800;
	line-height: 1.45;
}

/* Why visit */

.about-burgas-section--visit {
	background:
		radial-gradient(
			circle at 50% 0,
			rgba(143, 53, 255, 0.1),
			transparent 36rem
		);
}

.about-burgas-visit-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}

.about-burgas-visit-card {
	padding: 28px;
	border: 1px solid var(--border);
	border-radius: 18px;
	background: var(--surface);
	box-shadow: 0 14px 34px rgba(0, 0, 0, 0.1);
	transition:
		transform 0.24s ease,
		border-color 0.24s ease,
		box-shadow 0.24s ease;
}

.about-burgas-visit-card:hover {
	transform: translateY(-6px);
	border-color: rgba(19, 216, 255, 0.45);
	box-shadow: 0 22px 48px rgba(0, 0, 0, 0.16);
}

.about-burgas-visit-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	width: 46px;
	height: 46px;
	margin-bottom: 16px;
	color: var(--burgas-accent);
	font-size: 1.55rem;
}

.about-burgas-visit-card h3 {
	margin: 0 0 12px;
	font-family: var(--font-body);
	font-size: 1.2rem;
	line-height: 1.3;
	text-transform: none;
}

.about-burgas-visit-card p {
	margin: 0;
	color: var(--muted);
	font-size: 0.92rem;
	line-height: 1.7;
}

/* Eurovision statement */

.about-burgas-eurovision {
	padding: 24px 0 78px;
}

.about-burgas-eurovision .about-burgas-container {
	padding: 48px;
	border: 1px solid rgba(19, 216, 255, 0.28);
	border-radius: 24px;
	background:
		linear-gradient(
			135deg,
			rgba(16, 18, 48, 0.98),
			rgba(15, 52, 92, 0.98)
		);
	box-shadow: var(--shadow);
}

.about-burgas-eurovision h2 {
	max-width: 850px;
	margin-bottom: 22px;
	color: #ffffff;
	font-size: clamp(2rem, 3.5vw, 3.4rem);
	line-height: 1.15;
}

.about-burgas-eurovision p:not(.about-burgas-eyebrow) {
	max-width: 900px;
	margin: 0;
	color: rgba(255, 255, 255, 0.72);
	line-height: 1.75;
}

.about-burgas-eurovision strong {
	display: block;
	margin-top: 24px;
	color: var(--burgas-accent);
	font-size: 1.15rem;
}

/* Responsive */

@media (max-width: 1100px) {
	.about-burgas-facts {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.about-burgas-fact:nth-child(3) {
		border-right: 0;
	}

	.about-burgas-fact:nth-child(n + 4) {
		border-top: 1px solid var(--border);
	}

	.about-burgas-intro {
		grid-template-columns: 1fr;
		gap: 36px;
	}
}

@media (max-width: 850px) {
	.about-burgas-hero {
		background-position: 62% center;
	}

	.about-burgas-hero__content {
		width: min(560px, 100%);
	}

	.about-burgas-visit-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 720px) {
	.about-burgas-container {
		width: min(100% - 28px, 1440px);
	}

	.about-burgas-hero {
		min-height: 680px;
		align-items: flex-end;
		background:
			linear-gradient(
				0deg,
				rgba(3, 6, 18, 0.99) 0%,
				rgba(3, 6, 18, 0.86) 56%,
				rgba(3, 6, 18, 0.2) 100%
			),
			var(--about-burgas-hero-image) 62% center / cover no-repeat,
			#070b1d;
	}

	.about-burgas-hero__content {
		padding: 80px 0 42px;
	}

	.about-burgas-hero__title {
		font-size: clamp(4.2rem, 22vw, 6.3rem);
	}

	.about-burgas-hero__features {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.about-burgas-hero-feature {
		padding: 0;
		border-right: 0;
	}

	.about-burgas-section {
		padding: 54px 0;
	}

	.about-burgas-facts {
		grid-template-columns: 1fr;
	}

	.about-burgas-fact,
	.about-burgas-fact:nth-child(3) {
		border-right: 0;
		border-bottom: 1px solid var(--border);
	}

	.about-burgas-fact:nth-child(n + 4) {
		border-top: 0;
	}

	.about-burgas-fact:last-child {
		border-bottom: 0;
	}

	.about-burgas-visit-grid {
		grid-template-columns: 1fr;
	}

	.about-burgas-eurovision .about-burgas-container {
		padding: 30px 24px;
	}
}
