/*
 * Apollo oldalsablon stílusai.
 * Csak az Apollo nézeteken töltődik be: Szekciós oldal (templates/page-apollo.php) és egyedi
 * eseményoldal (templates/single-event.php) – apollo_is_view().
 * Osztályok: apollo- előtag, BEM. Tokenek: assets/css/apollo-tokens.css.
 */

/* ==========================================================================
   Alap
   ========================================================================== */

.apollo {
	color: var(--apollo-color-text);
	background: var(--apollo-color-bg);
	font-family: var(--apollo-font-family);
	font-weight: var(--apollo-font-weight-regular);
}

:where(.apollo) *,
:where(.apollo) *::before,
:where(.apollo) *::after {
	box-sizing: border-box;
}

:where(.apollo) img {
	display: block;
	max-width: 100%;
	height: auto;
}

/* Horgonyra (#ajanlatkeres) sima görgetés, ha a felhasználó nem kért csökkentett mozgást */
@media (prefers-reduced-motion: no-preference) {
	html {
		scroll-behavior: smooth;
	}
}

/* ==========================================================================
   Közös elemek
   ========================================================================== */

/* Szekciócím alatta vonallal (Figma: "Helyet adunk az alkalomnak", "Referenciák") */
.apollo-section-heading {
	margin: 0 0 clamp(2rem, 3.75vw, 3.375rem); /* 54px desktop */
	padding-bottom: clamp(1.25rem, 1.95vw, 1.75rem); /* 28px desktop */
	border-bottom: 1px solid var(--apollo-color-border);
}

/* Keretes címke (Figma v2: Jelölő – „Kiemelt partner”: 14 px, kisbetűs, ritkítás nélkül; korábban nagybetűs gombstílus) */
.apollo-badge {
	flex: none;
	margin: 0;
	padding: var(--apollo-space-8) var(--apollo-space-16);
	border: 1px solid currentColor;
	font-size: var(--apollo-type-caption-size);
	line-height: var(--apollo-type-caption-line);
}

/* Felső címke a cím fölött (Figma: Eyebrow – „Letölthető anyagok”, térkép kártya). --body: Body méretű,
   ritkítás nélkül (Rendezvénytér: „Hall 1”, Vendéglátás / Technika panelek). Szín és alsó margó a szekcióban. */
.apollo-eyebrow {
	margin: 0;
	font-size: var(--apollo-type-eyebrow-size);
	line-height: var(--apollo-type-eyebrow-line);
	letter-spacing: var(--apollo-tracking-eyebrow);
	text-transform: uppercase;
}

.apollo-eyebrow--body {
	font-size: var(--apollo-type-body-size);
	line-height: var(--apollo-type-body-line);
	letter-spacing: inherit;
}

/* Címke vonallal (Figma: Események – „——— Hamarosan”, eseményoldal – „Galéria ———”). Eyebrow stílus;
   --end: a vonal a szöveg után. */
.apollo-line-label {
	display: flex;
	align-items: center;
	gap: var(--apollo-space-16);
	margin: 0;
	font-size: var(--apollo-type-eyebrow-size);
	font-weight: var(--apollo-font-weight-regular);
	line-height: var(--apollo-type-eyebrow-line);
	letter-spacing: var(--apollo-tracking-eyebrow);
	text-transform: uppercase;
}

.apollo-line-label::before,
.apollo-line-label--end::after {
	content: "";
	flex: none;
	width: 2.5rem; /* 40px */
	height: 1px;
	background: currentColor;
}

.apollo-line-label--end::before {
	content: none;
}

.apollo-line-label--end::after {
	width: 4rem; /* 64px */
}

/* Képzoom hoverre (mint az apollogallery.hu-n): a tartalmi képek (kártyák, galéria, venue, csapat,
   események) a keretükön belül lassan 1.045-re nagyulnak. A hero és a banner háttérképe nem.
   .apollo-zoom = a levágó keret (overflow: hidden); a kép a benne lévő <img>. Kártyán (eseménykártya)
   a kártya egészének hovere indítja. Csak egérrel (hover: hover) és mozgáscsökkentés nélkül. */
.apollo-zoom {
	display: block;
	overflow: hidden;
}

.apollo-zoom img {
	display: block;
}

.apollo-zoom__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.apollo-zoom img {
		transition: transform 0.9s cubic-bezier(0.25, 0.46, 0.45, 0.94);
	}

	.apollo-zoom:hover img,
	.apollo-event-card:hover .apollo-zoom img {
		transform: scale(1.045);
	}
}

/* Szövegstílusok: a Figma szövegstílusainak közös deklarációi egy helyen (méret, vastagság, sormagasság,
   nagybetű). Az elem saját szabályai (margó, szín, töréspontok) a szekció blokkjában maradnak. */

/* H3 nagybetűs (Figma: H3 – szekciócím, kártyacím) */
.apollo-section-heading,
.apollo-hero__subtitle,
.apollo-cta__title,
.apollo-split__list-title,
.apollo-split__card-title,
.apollo-split__stat-label,
.apollo-split-panels__list-item,
.apollo-event__title {
	font-size: var(--apollo-type-h3-size);
	font-weight: var(--apollo-font-weight-light);
	line-height: var(--apollo-type-h3-line);
	text-transform: uppercase;
}

/* H2 nagybetűs (Figma: H2 – szekció főcím) */
.apollo-gallery__title,
.apollo-venue__title,
.apollo-video__title,
.apollo-split__title,
.apollo-team__name,
.apollo-partners__title,
.apollo-text-images__title,
.apollo-features__title,
.apollo-features__keyword,
.apollo-split-panels__title {
	font-size: var(--apollo-type-h2-size);
	font-weight: var(--apollo-font-weight-light);
	line-height: var(--apollo-type-h2-line);
	text-transform: uppercase;
}

/* Telefonon a hosszú szavak (pl. „RENDEZVÉNYHELYSZÍN?”) ne lógjanak ki a H2 címekből: elválasztás, végső esetben törés */
@media (max-width: 39.999rem) {
	.apollo-gallery__title,
	.apollo-venue__title,
	.apollo-video__title,
	.apollo-split__title,
	.apollo-team__name,
	.apollo-partners__title,
	.apollo-text-images__title,
	.apollo-features__title,
	.apollo-features__keyword,
	.apollo-split-panels__title {
		overflow-wrap: break-word;
		hyphens: auto;
	}
}

/* H4 nagybetűs (Figma: H4 – kis cím, címke) */
.apollo-split__lead,
.apollo-split__stat-title,
.apollo-partners__name,
.apollo-image-cards__title,
.apollo-features__item-title,
.apollo-split-panels__spec-label,
.apollo-downloads__title,
.apollo-event-card__title,
.apollo-event__fact--organizer {
	font-size: var(--apollo-type-h4-size);
	font-weight: var(--apollo-font-weight-light);
	line-height: var(--apollo-type-h4-line);
	text-transform: uppercase;
}

/* Body Large (Figma: Body Large – bevezető, lista) */
.apollo-hero__text,
.apollo-occasions__item-title,
.apollo-cta__text,
.apollo-split__list-item,
.apollo-team__position,
.apollo-contact__intro {
	font-size: var(--apollo-type-body-l-size);
	font-weight: var(--apollo-font-weight-light);
	line-height: var(--apollo-type-body-l-line);
}

/* ==========================================================================
   Szekciók
   ========================================================================== */

/* Hero
   ========================================================================== */

.apollo-hero {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: flex-end;
	min-height: clamp(36rem, 100svh, 57.5rem);
	padding-top: calc(var(--apollo-header-height) + var(--apollo-space-32));
	padding-bottom: clamp(4rem, 8.33vw, 7.5rem); /* v2: 120px a hero aljától (Főoldal; Rólunk 113) */
	overflow: hidden;
	background: var(--apollo-color-bg-inverse);
	color: var(--apollo-color-text-inverse);
}

.apollo-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	/* A Figma egyenletes sötétítése + a szöveg felől erősödő átmenet (olvashatóság, ügyfélkérés 2026-11-10) */
	background:
		linear-gradient(to top, var(--apollo-color-overlay-text) 0%, transparent 65%),
		var(--apollo-color-overlay);
}

.apollo-hero--align-right::after {
	background:
		linear-gradient(to bottom, var(--apollo-color-overlay-text) 0%, transparent 65%),
		var(--apollo-color-overlay);
}

.apollo-hero__image {
	position: absolute;
	inset: 0;
	z-index: -2;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.apollo-hero__content {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1.25rem;
}

.apollo-hero__title {
	margin: 0;
	font-size: var(--apollo-type-display-size);
	font-weight: var(--apollo-font-weight-light);
	line-height: var(--apollo-type-display-line);
	text-transform: uppercase;
	overflow-wrap: break-word;
	hyphens: manual; /* nincs elválasztás (pl. „AJÁNLATKÉRÉSED”); a leghosszabb szó (RENDEZVÉNYHELYSZÍN) 390 px-en is kifér */
}

/* Közepes cím (csak címes aloldal hero, Figma: H1 60 / 70, 1014 px széles); v2: a cím alja 209 px-re a hero aljától */
.apollo-hero--title-h1 {
	padding-bottom: clamp(4rem, 14.5vw, 13rem);
}

.apollo-hero--title-h1 .apollo-hero__title {
	max-width: 63.375rem;
	hyphens: auto; /* „RENDEZVÉNYSZOLGÁLTATÁSOK” telefonon csak elválasztva fér ki */
	font-size: var(--apollo-type-h1-size);
	line-height: var(--apollo-type-h1-line);
}

/* Kicsi cím (Rendezvénytér, Figma: H2 45 / 52), a szöveg Body 18 / 24, fehér */
.apollo-hero--title-h2 .apollo-hero__title {
	font-size: var(--apollo-type-h2-size);
	line-height: var(--apollo-type-h2-line);
}

.apollo-hero--title-h2 .apollo-hero__text {
	color: var(--apollo-color-text-inverse);
	font-size: var(--apollo-type-body-size);
	font-weight: var(--apollo-font-weight-regular);
	line-height: var(--apollo-type-body-line);
}

/* Díszítő „szilánk” (Figma: 478 × 481, x 1067, y 707 – a hero alja levágja, ahogy a Figmában a következő
   szekció takarja). A tartalom alatt, a sötétítő fölött. Telefonon nincs: ott a szöveg a hero alján van. */
.apollo-hero__decoration {
	--apollo-decoration-size: clamp(16rem, 33.22vw, 29.875rem);
	display: none;
	position: absolute;
	right: calc(var(--apollo-decoration-size) * -0.2202);
	bottom: calc(var(--apollo-decoration-size) * -0.5604);
	width: var(--apollo-decoration-size);
	aspect-ratio: 478.31 / 481.017;
	background: var(--apollo-color-bg-accent);
	pointer-events: none;
	-webkit-mask: url("../img/decoration.svg") no-repeat center / contain;
	mask: url("../img/decoration.svg") no-repeat center / contain;
}

@media (min-width: 48rem) {
	.apollo-hero__decoration {
		display: block;
	}
}

/* Jobbra fent (Rendezvénytér): 560 px széles blokk a konténer jobb szélén, a fejléc alatt 72 px-re.
   64rem alatt marad a bal alsó elrendezés. */
@media (min-width: 64rem) {
	.apollo-hero--align-right {
		align-items: flex-start;
		padding-top: calc(var(--apollo-header-height) + clamp(2rem, 6.67vw, 6rem)); /* v2: a fejléc alatt 96 px-re */
	}

	.apollo-hero--align-right .apollo-hero__content {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 35rem);
		row-gap: var(--apollo-space-24);
	}

	.apollo-hero--align-right .apollo-hero__content > * {
		grid-column: 2;
		justify-self: start;
	}

	/* 560 px-en egész szavak férnek ki (Figma: PRÉMIUM / RENDEZVÉNYTÉR / …), nem kell elválasztás */
	.apollo-hero--align-right .apollo-hero__title {
		hyphens: manual;
	}
}

.apollo-hero__subtitle {
	margin: 0;
	color: var(--apollo-color-text-accent-on-dark);
}

/* Kisebb alcím (subtitle_size = small – Főoldal, v2: kb. 30 px) */
.apollo-hero--subtitle-small .apollo-hero__subtitle {
	font-size: clamp(1.125rem, 2.08vw, 1.875rem);
}

/* Szöveg: fehér (alap, Főoldal v2), szürke: text_style = muted (Rólunk) */
.apollo-hero__text {
	max-width: 47.5rem;
	margin: 0;
	color: var(--apollo-color-text-inverse);
}

.apollo-hero--text-muted .apollo-hero__text {
	color: var(--apollo-color-text-inverse-muted);
}

/* Helyet adunk az alkalomnak
   ========================================================================== */

.apollo-occasions {
	padding-block: var(--apollo-section-y);
	background: var(--apollo-color-bg);
}

.apollo-occasions__list {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--apollo-space-24) var(--apollo-space-48);
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: apollo-occasion;
}

.apollo-occasions__item {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
	padding-top: 0.625rem;
	border-top: 1px solid var(--apollo-color-border-subtle);
	counter-increment: apollo-occasion;
}

/* Sorszám: "01" (v2: perjelek nélkül, világosszürke) */
.apollo-occasions__item::before {
	content: counter(apollo-occasion, decimal-leading-zero);
	color: var(--apollo-color-text-inactive);
	font-size: var(--apollo-type-caption-size);
	line-height: 1rem;
}

.apollo-occasions__item-title {
	margin: 0;
}

.apollo-occasions__item-text {
	margin: 0;
	color: var(--apollo-color-text-muted);
	font-size: var(--apollo-type-caption-size);
	line-height: var(--apollo-type-caption-line);
}

@media (min-width: 40rem) {
	.apollo-occasions__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Desktop: 3 × 352px oszlop, a köz a maradék (Figma: space-between) */
@media (min-width: 64rem) {
	.apollo-occasions__list {
		grid-template-columns: repeat(3, minmax(0, 22rem));
		justify-content: space-between;
	}
}

/* Slider (közös komponens: galéria, később referenciák)
   ========================================================================== */

.apollo-slider {
	display: flex;
	flex-direction: column;
	gap: var(--apollo-space-24);
	min-width: 0;
}

.apollo-slider__viewport {
	position: relative; /* a diák offsetLeft-je ehhez képest */
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.apollo-slider__viewport::-webkit-scrollbar {
	display: none;
}

.apollo-slider__viewport:focus-visible {
	outline: 1px solid var(--apollo-color-text);
	outline-offset: 4px;
}

.apollo-slider__track {
	display: flex;
	margin: 0;
	padding: 0;
	list-style: none;
}

.apollo-slider__slide {
	flex: 0 0 100%;
	scroll-snap-align: start;
	scroll-snap-stop: always;
}

.apollo-slider__figure {
	display: flex;
	flex-direction: column;
	gap: var(--apollo-space-12);
	margin: 0;
}

.apollo-slider__image {
	width: 100%;
	aspect-ratio: 621 / 520;
	object-fit: cover;
	background: var(--apollo-color-bg);
}

.apollo-slider__caption {
	color: var(--apollo-color-text-muted-on-subtle);
	font-size: var(--apollo-type-caption-size);
	line-height: var(--apollo-type-caption-line);
}

.apollo-slider__controls {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--apollo-space-16);
}

.apollo-slider__counter {
	margin: 0;
	font-size: var(--apollo-type-small-size);
	line-height: var(--apollo-type-small-line);
	letter-spacing: var(--apollo-tracking-label);
	font-variant-numeric: tabular-nums;
}

.apollo-slider__nav {
	display: flex;
	gap: var(--apollo-space-16);
}

/* Lapozó nyíl (Figma: Arrow Button – Light). Hover: kitöltés. */
.apollo-slider__button {
	position: relative;
	display: grid;
	place-items: center;
	width: 3.5rem;
	height: 3.5rem;
	padding: 0;
	border: 1px solid var(--apollo-color-border);
	border-radius: var(--apollo-radius);
	background: transparent;
	color: var(--apollo-color-text);
	cursor: pointer;
	transition: background-color var(--apollo-transition), color var(--apollo-transition), opacity var(--apollo-transition);
}

.apollo-slider__button::before {
	content: "";
	width: 1.5rem;
	height: 0.625rem;
	background: currentColor;
	-webkit-mask: url("../img/arrow.svg") no-repeat center / contain;
	mask: url("../img/arrow.svg") no-repeat center / contain;
}

.apollo-slider__button--prev::before {
	transform: scaleX(-1);
}

.apollo-slider__button:hover:not([aria-disabled="true"]),
.apollo-slider__button:focus-visible {
	background: var(--apollo-color-text);
	color: var(--apollo-color-bg);
}

.apollo-slider__button:focus-visible {
	outline: 1px solid var(--apollo-color-text);
	outline-offset: 3px;
}

.apollo-slider__button[aria-disabled="true"] {
	opacity: 0.3;
	cursor: default;
}

@media (prefers-reduced-motion: reduce) {
	.apollo-slider__button {
		transition: none;
	}
}

/* Rendezvény kortárs művészeti galériában
   ========================================================================== */

.apollo-gallery {
	padding-block: var(--apollo-section-y);
	background: var(--apollo-color-bg-subtle);
}

.apollo-gallery__inner {
	display: grid;
	gap: var(--apollo-space-48);
}

.apollo-gallery__content {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: var(--apollo-space-32);
}

.apollo-gallery__title {
	margin: 0;
}

.apollo-gallery__text {
	font-size: var(--apollo-type-body-size);
	line-height: var(--apollo-type-body-line);
}

.apollo-gallery__text > * {
	margin: 0;
}

/* A Figmában nincs köz a bekezdések között; olvashatóság miatt kis térköz */
.apollo-gallery__text > * + * {
	margin-top: var(--apollo-space-12);
}

/* Desktop: 539 / 621 arányú oszlopok; a szöveges oszlop legalább a kép magasságú,
   így a cím fent, a szöveg a kép aljával egy vonalban (Figma: space-between). */
@media (min-width: 64rem) {
	.apollo-gallery__inner {
		grid-template-columns: minmax(0, 539fr) minmax(0, 621fr);
		align-items: start;
		column-gap: clamp(3rem, 6.67vw, 6rem);
	}

	.apollo-gallery__content {
		aspect-ratio: 539 / 520;
	}

	.apollo-gallery--no-images .apollo-gallery__inner {
		grid-template-columns: minmax(0, 539fr);
	}

	.apollo-gallery--no-images .apollo-gallery__content {
		aspect-ratio: auto;
	}
}

/* A Corvin Palace-ban
   ========================================================================== */

.apollo-venue {
	padding-block: var(--apollo-section-y);
	background: var(--apollo-color-bg);
}

.apollo-venue__inner {
	display: grid;
	gap: var(--apollo-space-48);
}

.apollo-venue__content {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: var(--apollo-space-32);
}

.apollo-venue__title {
	margin: 0;
}

.apollo-venue__text {
	font-size: var(--apollo-type-body-size);
	line-height: var(--apollo-type-body-line);
}

.apollo-venue__text > * {
	margin: 0;
}

/* v2: bekezdések között egy üres sor (Hall 2); a „Kapacitás:” sor után a lista közvetlenül (Hall 1) */
.apollo-venue__text > * + * {
	margin-top: var(--apollo-space-24);
}

.apollo-venue__text > p + ul {
	margin-top: 0;
}

.apollo-venue__text ul {
	padding-left: 1.6875rem;
}

/* Képrács: balra a magas kép, jobbra két kép egymás alatt (Figma: 374 + 28 + 374, 300 / 306) */
.apollo-venue__images {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(0.5rem, 1.25vw, 1.125rem) clamp(0.75rem, 1.95vw, 1.75rem);
}

.apollo-venue__images--count-3 {
	grid-template-rows: minmax(0, 300fr) minmax(0, 306fr);
	aspect-ratio: 776 / 624;
}

.apollo-venue__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	background: var(--apollo-color-bg-subtle);
}

/* Üres képhely: bézs helykitöltő */
.apollo-venue__image--empty {
	display: block;
	background: var(--apollo-color-bg-accent-soft);
}

.apollo-venue__images--count-3 .apollo-venue__image--large {
	grid-row: 1 / -1;
}

/* Egy kép (Főoldal – „Corvin Palace”, v2): Figma 725 × 640 */
.apollo-venue__images--count-1 {
	grid-template-columns: minmax(0, 1fr);
	aspect-ratio: 725 / 640;
}

.apollo-venue--bg-subtle {
	background: var(--apollo-color-bg-subtle);
}

/* Felirat + cím (Hall): Figma „Címke” Body 18 / 24, nagybetűs */
.apollo-venue__heading {
	display: flex;
	flex-direction: column;
	gap: var(--apollo-space-24);
}

/* Alaprajz: saját arányában, legfeljebb 478 × 338 px (Figma Hall 1) */
.apollo-venue__plan {
	width: auto;
	max-width: min(100%, 29.875rem);
	max-height: 21.125rem;
}

/* Desktop: képek balra (776), szöveg jobbra (384); a szöveges oszlop a képrács magasságú,
   a cím fent, a szöveg lent (Figma: space-between). */
@media (min-width: 64rem) {
	.apollo-venue__inner {
		grid-template-columns: minmax(0, 776fr) minmax(0, 384fr);
		column-gap: clamp(3rem, 6.67vw, 6rem);
	}

	.apollo-venue__images {
		grid-row: 1;
		grid-column: 1;
	}

	.apollo-venue__content {
		grid-row: 1;
		grid-column: 2;
	}

	/* Egy kép: kép 725, szöveg 435 px (köz 96) */
	.apollo-venue--single .apollo-venue__inner {
		grid-template-columns: minmax(0, 725fr) minmax(0, 435fr);
	}

	/* Képek jobbra (Hall): szöveg 586 px (a szöveg 519 px széles), képek 670 px, a nagy kép
	   380, a kicsik 266 px széles. v2 (Hall 1): 678 px magas, a felső kép 310, az alsó 342 px
	   (a Hall 2 a Figmában 374 / 272 × 630 – a közös rács a Hall 1 méreteit követi). */
	.apollo-venue--images-right .apollo-venue__inner {
		grid-template-columns: minmax(0, 586fr) minmax(0, 670fr);
		column-gap: 0;
	}

	.apollo-venue--images-right .apollo-venue__content {
		grid-column: 1;
		padding-right: clamp(1.5rem, 4.65vw, 4.1875rem);
	}

	.apollo-venue--images-right .apollo-venue__images {
		grid-column: 2;
		grid-template-columns: minmax(0, 380fr) minmax(0, 266fr);
		grid-template-rows: minmax(0, 310fr) minmax(0, 342fr);
		gap: var(--apollo-space-24);
		aspect-ratio: 670 / 678;
	}
}

/* Banner (teljes szélességű kép)
   ========================================================================== */

.apollo-banner {
	margin: 0;
}

/* Figma: 1440 × 972. Mobilon legalább 20rem magas (cover-rel vágva),
   nagy képernyőn legfeljebb a képernyő magassága. */
.apollo-banner__image {
	width: 100%;
	height: auto;
	aspect-ratio: 1440 / 972;
	min-height: 20rem;
	max-height: 100svh;
	object-fit: cover;
	background: var(--apollo-color-bg-subtle);
}

/* Referenciák
   ========================================================================== */

.apollo-references {
	padding-block: var(--apollo-section-y);
	background: var(--apollo-color-bg);
}

/* Fejléc: cím balra, lapozó nyilak jobbra, alatta a szekciócím vonala */
.apollo-references__header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--apollo-space-16) var(--apollo-space-32);
	margin-bottom: clamp(2rem, 3.75vw, 3.375rem); /* 54px desktop */
	padding-bottom: clamp(1rem, 1.53vw, 1.375rem); /* 22px desktop: a nyíl alja és a vonal között */
	border-bottom: 1px solid var(--apollo-color-border);
}

.apollo-references__title {
	margin: 0;
	padding: 0;
	border: 0;
}

/* Ha minden vélemény kifér, a JS elrejti a nyilakat (hidden) */
.apollo-references__nav[hidden] {
	display: none;
}

.apollo-references__list {
	--apollo-references-gap: var(--apollo-space-32);
	gap: var(--apollo-references-gap);
	align-items: flex-start;
}

/* Telefon: 1 vélemény (a következő széle belóg), tablet: 2, desktop: 3 (Figma: 352 px, köz 100 px) */
.apollo-references__item {
	flex: 0 0 85%;
	min-width: 0;
	scroll-snap-align: start;
}

.apollo-references__card {
	display: flex;
	flex-direction: column;
	gap: var(--apollo-space-32);
	margin: 0;
}

.apollo-references__quote {
	margin: 0;
	font-size: var(--apollo-type-small-size);
	font-weight: var(--apollo-font-weight-light);
	line-height: var(--apollo-type-small-line);
}

.apollo-references__quote p {
	margin: 0;
}

/* A név közvetlenül az idézet alatt (v2: a nevek nem egy vonalban) */
.apollo-references__author {
	display: flex;
	flex-direction: column;
	gap: var(--apollo-space-4);
}

.apollo-references__name {
	font-size: var(--apollo-type-small-size);
	line-height: var(--apollo-type-small-line);
	letter-spacing: var(--apollo-tracking-label);
	text-transform: uppercase;
}

.apollo-references__date {
	color: var(--apollo-color-text-muted);
	font-size: var(--apollo-type-caption-size);
	line-height: var(--apollo-type-caption-line);
}

/* Céglogó a név fölött: egységes magasság (32 → 40 px), max. szélesség, szürkeárnyalatos és halványított,
   hogy a különböző logók ne üssenek el; a multiply eltünteti a nem átlátszó PNG/JPG fehér hátterét. */
.apollo-references__logo {
	display: block;
	margin-bottom: var(--apollo-space-12);
}

.apollo-references__logo-image {
	display: block;
	width: auto;
	max-width: min(10rem, 100%);
	height: clamp(2rem, 2.78vw, 2.5rem);
	object-fit: contain;
	object-position: left center;
	filter: grayscale(1) contrast(1.1);
	opacity: 0.75;
	mix-blend-mode: multiply;
}

@media (min-width: 40rem) {
	.apollo-references__item {
		flex-basis: calc((100% - var(--apollo-references-gap)) / 2);
	}
}

@media (min-width: 64rem) {
	.apollo-references__list {
		--apollo-references-gap: clamp(2rem, 6.94vw, 6.25rem); /* 100px desktop */
	}

	.apollo-references__item {
		flex-basis: calc((100% - 2 * var(--apollo-references-gap)) / 3);
	}

	/* Desktopon a Figma tényleges megjelenése: 14 / 20 px */
	.apollo-references__quote {
		font-size: var(--apollo-type-caption-size);
		line-height: var(--apollo-type-caption-line);
	}
}

/* Bemutatkozó videó
   ========================================================================== */

.apollo-video {
	padding-block: var(--apollo-section-y);
	background: var(--apollo-color-bg);
}

.apollo-video__title {
	margin: 0 0 clamp(2rem, 4.44vw, 4rem); /* 64px desktop */
	text-align: center;
}

/* Figma: 1256 × 760, a lejátszás gomb középen */
.apollo-video__player {
	position: relative;
	display: grid;
	place-items: center;
	aspect-ratio: 1256 / 760;
	overflow: hidden;
	background: var(--apollo-color-bg-subtle);
}

.apollo-video__poster,
.apollo-video__iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.apollo-video__poster,
.apollo-video__media {
	object-fit: cover;
}

/* Feltöltött videó: a poszter kitölti a keretet; lejátszás közben a teljes kép látszik (fekete sávokkal) */
.apollo-video__media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	background: var(--apollo-color-bg-inverse);
}

.apollo-video__player.is-playing .apollo-video__media {
	object-fit: contain;
}

.apollo-video__play[hidden] {
	display: none;
}

.apollo-video__iframe {
	border: 0;
}

/* Lejátszás gomb (Figma: 96px kör, körvonalas háromszög) */
.apollo-video__play {
	position: relative;
	display: grid;
	place-items: center;
	width: clamp(4rem, 6.67vw, 6rem);
	height: clamp(4rem, 6.67vw, 6rem);
	padding: 0;
	border: 1px solid var(--apollo-color-border-subtle);
	border-radius: 50%;
	background: var(--apollo-color-bg-translucent);
	color: var(--apollo-color-text);
	cursor: pointer;
	transition: background-color var(--apollo-transition), transform var(--apollo-transition);
}

.apollo-video__play::before {
	content: "";
	width: 1.375rem;
	height: 1.625rem;
	margin-left: 0.25rem; /* optikai közép */
	background: currentColor;
	-webkit-mask: url("../img/play.svg") no-repeat center / contain;
	mask: url("../img/play.svg") no-repeat center / contain;
}

.apollo-video__play:hover,
.apollo-video__play:focus-visible {
	background: var(--apollo-color-bg);
	transform: scale(1.05);
}

.apollo-video__play:focus-visible {
	outline: 2px solid var(--apollo-color-bg);
	outline-offset: 3px;
	box-shadow: 0 0 0 5px var(--apollo-color-text);
}

.apollo-video__fallback {
	position: absolute;
	bottom: var(--apollo-space-16);
	color: var(--apollo-color-text);
}

@media (prefers-reduced-motion: reduce) {
	.apollo-video__play {
		transition: none;
	}

	.apollo-video__play:hover,
	.apollo-video__play:focus-visible {
		transform: none;
	}
}

/* CTA – ajánlatkérés
   ========================================================================== */

.apollo-cta {
	padding-block: clamp(4rem, 6.67vw, 6rem); /* 96px desktop */
	background: var(--apollo-color-bg-inverse);
	color: var(--apollo-color-text-inverse);
	--apollo-button-hover-bg: var(--apollo-color-bg); /* fekete háttéren fehér hover (apollo-base.css) */
	--apollo-button-hover-text: var(--apollo-color-text);
	scroll-margin-top: var(--apollo-scroll-offset);
}

.apollo-cta__inner {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--apollo-space-32);
}

.apollo-cta__content {
	display: flex;
	flex-direction: column;
	gap: var(--apollo-space-16);
}

.apollo-cta__title {
	margin: 0;
}

.apollo-cta__text {
	margin: 0;
	color: var(--apollo-color-text-inverse-muted);
}

/* Desktop: szöveg balra, gomb jobbra középre igazítva (Figma: gap 64) */
@media (min-width: 64rem) {
	.apollo-cta__inner {
		flex-direction: row;
		align-items: center;
		gap: var(--apollo-space-64);
	}

	.apollo-cta__content {
		flex: 1;
	}
}

/* Kétoszlopos szekció (split): cím + szöveg balra, oldalsáv jobbra
   (Rólunk bemutatkozás, Szolgáltatások). Színek a háttérváltozatból, egyedi változókkal.
   ========================================================================== */

.apollo-split {
	--apollo-split-muted: var(--apollo-color-text);
	--apollo-split-number: var(--apollo-color-text);
	--apollo-split-border: var(--apollo-color-border);
	--apollo-split-card: var(--apollo-color-bg-subtle);
	padding-block: var(--apollo-section-y);
	background: var(--apollo-color-bg);
	color: var(--apollo-color-text);
}

.apollo-split--bg-subtle {
	--apollo-split-card: var(--apollo-color-bg);
	background: var(--apollo-color-bg-subtle);
}

.apollo-split--bg-accent-soft {
	--apollo-split-card: var(--apollo-color-bg);
	background: var(--apollo-color-bg-accent-soft);
}

.apollo-split--bg-inverse {
	--apollo-split-muted: var(--apollo-color-text-inverse-muted);
	--apollo-split-number: var(--apollo-color-text-accent-on-dark);
	--apollo-split-border: var(--apollo-color-border-inverse-subtle);
	--apollo-split-card: var(--apollo-color-bg-inverse-subtle);
	background: var(--apollo-color-bg-inverse);
	color: var(--apollo-color-text-inverse);
}

.apollo-split__inner {
	display: grid;
	gap: var(--apollo-space-48);
}

.apollo-split__main,
.apollo-split__aside {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.apollo-split__main {
	gap: var(--apollo-space-24);
}

.apollo-split__aside {
	gap: var(--apollo-space-32);
}

.apollo-split__title {
	margin: 0;
	overflow-wrap: break-word;
}

/* Bevezető (Rólunk): H4, nagybetűs */
.apollo-split__lead {
	margin: 0;
}

.apollo-split__text {
	color: var(--apollo-split-muted);
	font-size: var(--apollo-type-body-size);
	line-height: var(--apollo-type-body-line);
}

.apollo-split__text > * {
	margin: 0;
}

/* Figma: bekezdések között egy üres sor */
.apollo-split__text > * + * {
	margin-top: var(--apollo-space-24);
}

/* Oldalsáv: számozott lista. 1 oszlop: H3 cím, Body Large tételek; 2 oszlop: eyebrow cím, Body tételek. */
.apollo-split__list-title {
	margin: 0;
}

.apollo-split__list {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: apollo-split;
}

/* Vonal minden tétel fölött és alatt; a -1px a szomszédos vonalakat egybeolvasztja */
.apollo-split__list-item {
	display: flex;
	align-items: center;
	gap: var(--apollo-space-32);
	margin-bottom: -1px;
	padding-block: var(--apollo-space-24);
	border-block: 1px solid var(--apollo-split-border);
	counter-increment: apollo-split;
}

.apollo-split__list-item::before {
	content: counter(apollo-split, decimal-leading-zero);
	flex: none;
	color: var(--apollo-split-number);
	font-size: var(--apollo-type-eyebrow-size);
	font-weight: var(--apollo-font-weight-regular);
	line-height: var(--apollo-type-eyebrow-line);
	letter-spacing: var(--apollo-tracking-eyebrow);
	font-variant-numeric: tabular-nums;
}

.apollo-split__aside--list-2 .apollo-split__list-title {
	color: var(--apollo-split-muted);
	font-size: var(--apollo-type-eyebrow-size);
	font-weight: var(--apollo-font-weight-regular);
	line-height: var(--apollo-type-eyebrow-line);
	letter-spacing: var(--apollo-tracking-eyebrow);
}

.apollo-split__aside--list-2 .apollo-split__list-item {
	gap: 1.25rem;
	padding-block: 1.25rem;
	font-size: var(--apollo-type-body-size);
	font-weight: var(--apollo-font-weight-regular);
	line-height: var(--apollo-type-body-line);
}

/* 2 oszlop: oszloponként folytatódik (01–07 | 08–14), a sorok számát a sablon adja */
@media (min-width: 40rem) {
	.apollo-split__aside--list-2 .apollo-split__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: repeat(var(--apollo-split-rows, 1), auto);
		grid-auto-flow: column;
		column-gap: var(--apollo-space-48);
	}
}

/* Oldalsáv: kiemelt kártya (Szolgáltatások – Dekoráció) */
.apollo-split__card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--apollo-space-24);
	padding: clamp(1.5rem, 3.33vw, 3rem);
	background: var(--apollo-split-card);
}

.apollo-split__card-title {
	margin: 0;
}

.apollo-split__card-text {
	margin: 0;
	font-size: var(--apollo-type-body-size);
	line-height: var(--apollo-type-body-line);
}

/* Oldalsáv: nagy szám (Szolgáltatások – Érkezés és parkolás).
   v2: a címke H3 méretű, a vonal fölött (korábban kis nagybetűs, a vonal alatt). */
.apollo-split__aside--stat {
	gap: var(--apollo-space-32);
}

.apollo-split__stat-label {
	margin: 0;
	padding-bottom: clamp(1.25rem, 1.95vw, 1.75rem); /* 28px desktop, mint a szekciócímnél */
	border-bottom: 1px solid var(--apollo-split-border);
}

.apollo-split__stat {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--apollo-space-16) var(--apollo-space-32);
}

/* Figma: 60 / 66 px (Jost-tal jelölve, itt a fő betűcsalád) */
.apollo-split__stat-value {
	margin: 0;
	font-size: var(--apollo-type-h1-size);
	line-height: 1.1;
	text-transform: uppercase;
	white-space: nowrap;
}

.apollo-split__stat-body {
	display: flex;
	flex: 1 1 15rem;
	flex-direction: column;
	gap: var(--apollo-space-8);
}

.apollo-split__stat-title {
	margin: 0;
}

.apollo-split__stat-text,
.apollo-split__stat-note {
	margin: 0;
	font-size: var(--apollo-type-body-size);
	line-height: var(--apollo-type-body-line);
}

/* Oldalsáv: kép (v2, Szolgáltatások – Dekoráció: jobbra, Zongora: balra). Figma: 580 × 540. */
.apollo-split__image {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 580 / 540;
	object-fit: cover;
	background: var(--apollo-color-bg-accent-soft);
}

/* Kép balra: telefonon is a kép van elöl (mint a Figmában) */
.apollo-split--image-left .apollo-split__aside {
	order: -1;
}

/* Egymás alatt (v2, Szolgáltatások – „Helyet adunk az alkalomnak”): szekciócím vonallal, szöveg teljes
   szélességben, alatta „Pontos tartalma” felirat és a lista oszlopokban (desktopon 4). */
.apollo-split__heading {
	margin-bottom: 0;
}

.apollo-split--stacked .apollo-split__main {
	gap: clamp(2rem, 3.75vw, 3.375rem); /* 54px desktop, mint a szekciócím alatt */
}

.apollo-split__aside--list-stacked .apollo-split__list-title {
	color: var(--apollo-color-text-muted);
	font-size: var(--apollo-type-eyebrow-size);
	font-weight: var(--apollo-font-weight-regular);
	line-height: var(--apollo-type-eyebrow-line);
	letter-spacing: var(--apollo-tracking-eyebrow);
}

.apollo-split__aside--list-stacked .apollo-split__list {
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 13rem), 1fr));
	gap: var(--apollo-space-32);
}

.apollo-split__aside--list-stacked .apollo-split__list-item {
	flex-direction: column;
	font-weight: var(--apollo-font-weight-regular);
	align-items: flex-start;
	gap: var(--apollo-space-24);
	margin-bottom: 0;
	padding-block: var(--apollo-space-24) 0;
	border-bottom: 0;
}

.apollo-split--stacked .apollo-split__list-item::before {
	color: var(--apollo-color-text-accent);
}

/* Desktop: 586 / 574 px oszlopok, köz 96 px; képes oldalsávnál 580 / 580 */
@media (min-width: 64rem) {
	.apollo-split:not(.apollo-split--stacked) .apollo-split__inner {
		grid-template-columns: minmax(0, 586fr) minmax(0, 574fr);
		align-items: start;
		column-gap: clamp(3rem, 6.67vw, 6rem);
	}

	.apollo-split--aside-image:not(.apollo-split--stacked) .apollo-split__inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.apollo-split--stacked .apollo-split__inner {
		gap: var(--apollo-space-48);
	}

	.apollo-split__aside--list-stacked .apollo-split__list {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* Csapat (Team Showcase): névlista, kattintásra cserélődő fotó
   Mobilon (48rem alatt) a fotó a lista fölött, fekvő (4:3) vágással, hogy a nevek közel maradjanak.
   ========================================================================== */

.apollo-team {
	padding-block: var(--apollo-section-y);
	background: var(--apollo-color-bg);
}

/* Figma: a vonal és a lista között 28 px (a közös szekciócímnél 54) */
.apollo-team__heading {
	margin-bottom: clamp(1.25rem, 1.95vw, 1.75rem);
}

.apollo-team__showcase {
	display: grid;
	gap: var(--apollo-space-32);
}

.apollo-team__list {
	display: flex;
	flex-direction: column;
	gap: clamp(1.25rem, 1.95vw, 1.75rem);
}

.apollo-team__member {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	column-gap: var(--apollo-space-24);
	width: 100%;
	padding: 0;
	border: 0;
	border-radius: var(--apollo-radius);
	background: none;
	color: var(--apollo-color-text-inactive);
	font: inherit;
	text-align: left;
	cursor: pointer;
	transition: color var(--apollo-transition);
}

.apollo-team__name {
	overflow-wrap: break-word;
}

.apollo-team__position {
	grid-column: 1 / -1;
}

/* Nyíl az aktív név mellett (Figma: 80 px) */
.apollo-team__member::after {
	content: "";
	grid-row: 1;
	grid-column: 2;
	width: clamp(2.5rem, 5.56vw, 5rem);
	height: 0.6875rem;
	background: currentColor;
	opacity: 0;
	transition: opacity var(--apollo-transition);
	-webkit-mask: url("../img/arrow-long.svg") no-repeat right center / contain;
	mask: url("../img/arrow-long.svg") no-repeat right center / contain;
}

.apollo-team__member:hover {
	color: var(--apollo-color-text-muted);
}

.apollo-team__member[aria-selected="true"] {
	color: var(--apollo-color-text-accent-on-dark);
}

.apollo-team__member[aria-selected="true"]::after {
	opacity: 1;
}

.apollo-team__member:focus-visible {
	outline: 1px solid var(--apollo-color-text);
	outline-offset: 4px;
}

.apollo-team__photos {
	order: -1;
}

.apollo-team__photo {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--apollo-color-bg-accent-soft); /* helykitöltő, ha nincs fotó */
}

.apollo-team__photo[hidden] {
	display: none;
}

.apollo-team__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 20%;
}

/* Képcsere: rövid áttűnés, csak felhasználói választás után (betöltéskor nem) */
@media (prefers-reduced-motion: no-preference) {
	.apollo-team__showcase.is-interacted .apollo-team__photo:not([hidden]) {
		animation: apollo-fade-in var(--apollo-transition);
	}
}

@keyframes apollo-fade-in {
	from {
		opacity: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.apollo-team__member,
	.apollo-team__member::after {
		transition: none;
	}
}

/* Tablettől: lista balra, fotó jobbra (Figma: 600 + 460 px; a köz 196 px, így a fotó
   a konténer jobb széléig ér – a Figma-keret 1247 px széles, nem 1256) */
@media (min-width: 48rem) {
	.apollo-team__showcase {
		grid-template-columns: minmax(0, 600fr) minmax(0, 460fr);
		align-items: start;
		column-gap: clamp(2rem, 13.61vw, 12.25rem);
	}

	.apollo-team__photos {
		order: 0;
	}

	.apollo-team__photo {
		aspect-ratio: 460 / 588;
	}
}

/* Partnerkártyák (Szolgáltatások – Catering)
   Telefonon 1 oszlop, 40rem-től 3 (tableten is, hogy ne maradjon árva kártya).
   ========================================================================== */

.apollo-partners {
	padding-block: var(--apollo-section-y);
	background: var(--apollo-color-bg-accent-soft);
	color: var(--apollo-color-text);
}

.apollo-partners__header {
	display: grid;
	gap: var(--apollo-space-32);
	margin-bottom: clamp(3rem, 4.44vw, 4rem); /* 64px desktop */
}

.apollo-partners__title {
	margin: 0;
	overflow-wrap: break-word;
}

.apollo-partners__text {
	font-size: var(--apollo-type-body-size);
	line-height: var(--apollo-type-body-line);
}

.apollo-partners__text > * {
	margin: 0;
}

.apollo-partners__text > * + * {
	margin-top: var(--apollo-space-24);
}

.apollo-partners__list {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--apollo-space-48) var(--apollo-space-24);
	margin: 0;
	padding: 0;
	list-style: none;
}

.apollo-partners__item {
	display: flex;
	flex-direction: column;
	gap: var(--apollo-space-24);
}

/* Figma: 403 × 320; kép nélkül bézs helykitöltő */
.apollo-partners__media {
	aspect-ratio: 403 / 320;
	overflow: hidden;
	background: var(--apollo-color-bg-accent);
}

.apollo-partners__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* 64rem alatt a címke mindig a név alatt (különben a rövidebb nevűeknél mellé, a hosszabbaknál alá kerülne) */
.apollo-partners__meta {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--apollo-space-12) var(--apollo-space-16);
}

.apollo-partners__name {
	margin: 0;
}

@media (min-width: 40rem) {
	.apollo-partners__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* Desktop: a fejléc a split oszlopait követi (586 / 574 px, köz 96 px) */
@media (min-width: 64rem) {
	.apollo-partners__header {
		grid-template-columns: minmax(0, 586fr) minmax(0, 574fr);
		align-items: start;
		column-gap: clamp(3rem, 6.67vw, 6rem);
	}

	.apollo-partners__meta {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
	}
}

/* Cím + szöveg + két kép (Rendezvénytér – „Különleges rendezvényhelyszín…”)
   ========================================================================== */

.apollo-text-images {
	padding-block: var(--apollo-section-y);
	background: var(--apollo-color-bg-subtle);
}

.apollo-text-images--bg-default {
	background: var(--apollo-color-bg);
}

.apollo-text-images--bg-accent-soft {
	background: var(--apollo-color-bg-accent-soft);
}

.apollo-text-images__title {
	margin: 0 0 clamp(2.5rem, 4.44vw, 4rem); /* 64px desktop */
	overflow-wrap: break-word;
	hyphens: auto;
	hyphenate-limit-chars: 10 5 5; /* csak a hosszú szavakat töri (mobilon), a rövideket nem */
}

.apollo-text-images__row {
	display: grid;
	gap: var(--apollo-space-32);
}

.apollo-text-images__text {
	font-size: var(--apollo-type-body-size);
	line-height: var(--apollo-type-body-line);
}

.apollo-text-images__text > * {
	margin: 0;
}

/* A Figmában nincs köz a bekezdések között; mint a galériánál, kis térköz */
.apollo-text-images__text > * + * {
	margin-top: var(--apollo-space-12);
}

/* Két egyforma kép, 340 px magas (Figma v2: 309 + 24 + 308; korábban 411 + 206) */
.apollo-text-images__images {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--apollo-space-24);
	aspect-ratio: 641 / 340;
}

.apollo-text-images__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	background: var(--apollo-color-bg-accent-soft); /* helykitöltő, ha nincs kép */
}

/* Desktop: szöveg 519 px balra, a sor aljához igazítva; képek jobbra (köz 96 px) */
@media (min-width: 64rem) {
	.apollo-text-images__row {
		grid-template-columns: minmax(0, 519fr) minmax(0, 641fr);
		align-items: end;
		column-gap: clamp(3rem, 6.67vw, 6rem);
	}

	.apollo-text-images__images {
		grid-column: 2;
	}
}

/* Képes kártyák 3 eltolt oszlopban (Rendezvénytér – „Rendezvénytípusok”)
   Telefon: 1 oszlop, fekvő (4:3) képek, eltolás nélkül. Tablet (40rem): 2 oszlop, a második 64 px-lel lejjebb.
   Desktop (64rem): 3 oszlop, a középső 120 px-lel lejjebb; az első sor szélső képei magasabbak (560 / 480).
   ========================================================================== */

.apollo-image-cards {
	padding-block: var(--apollo-section-y);
	background: var(--apollo-color-bg);
}

/* Figma: a vonal fölött 24, alatta 64 px (a közös szekciócímnél 28 / 54) */
.apollo-image-cards__heading {
	margin-bottom: clamp(2.5rem, 4.44vw, 4rem);
	padding-bottom: var(--apollo-space-24);
}

.apollo-image-cards__list {
	--apollo-image-cards-offset: 0px;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--apollo-space-48);
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: apollo-image-card;
}

.apollo-image-cards__item {
	display: flex;
	flex-direction: column;
	gap: var(--apollo-space-24);
	counter-increment: apollo-image-card;
}

.apollo-image-cards__media {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--apollo-color-bg-accent-soft); /* helykitöltő, ha nincs kép */
}

.apollo-image-cards__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Képaláírás (v2: fotós / partner a kép alatt, Figma: 14 px, szürke) */
.apollo-image-cards__caption {
	margin: 0;
	color: var(--apollo-color-text-muted);
	font-size: var(--apollo-type-caption-size);
	line-height: var(--apollo-type-caption-line);
}

/* Sorszám + 80 px-es nyíl (Figma: „01 ——→”; v2: világosszürke, dekoratív) */
.apollo-image-cards__number {
	display: flex;
	color: var(--apollo-color-text-inactive);
	align-items: center;
	gap: var(--apollo-space-16);
}

.apollo-image-cards__number::before {
	content: counter(apollo-image-card, decimal-leading-zero);
	font-size: var(--apollo-type-eyebrow-size);
	line-height: var(--apollo-type-eyebrow-line);
	letter-spacing: var(--apollo-tracking-eyebrow);
	font-variant-numeric: tabular-nums;
}

.apollo-image-cards__number::after {
	content: "";
	width: 5rem;
	height: 0.6875rem;
	background: currentColor;
	-webkit-mask: url("../img/arrow-long.svg") no-repeat left center / contain;
	mask: url("../img/arrow-long.svg") no-repeat left center / contain;
}

.apollo-image-cards__title {
	margin: 0;
}

.apollo-image-cards__text {
	margin: 0;
	font-size: var(--apollo-type-small-size);
	line-height: var(--apollo-type-small-line);
}

/* Az eltolt kártyák a helyükön maradnak a rácsban, csak lejjebb rajzolódnak; a lista alja ennyivel hosszabb. */
@media (min-width: 40rem) {
	.apollo-image-cards__list {
		--apollo-image-cards-offset: 4rem;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--apollo-space-64) var(--apollo-space-32);
		padding-bottom: var(--apollo-image-cards-offset);
	}

	.apollo-image-cards__media {
		aspect-ratio: 387 / 480;
	}

	.apollo-image-cards__item:nth-child(2n) {
		translate: 0 var(--apollo-image-cards-offset);
	}
}

@media (min-width: 64rem) {
	.apollo-image-cards__list {
		--apollo-image-cards-offset: clamp(4rem, 8.33vw, 7.5rem);
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: var(--apollo-space-96) var(--apollo-space-48);
	}

	.apollo-image-cards__item:nth-child(2n) {
		translate: none;
	}

	.apollo-image-cards__item:nth-child(3n + 2) {
		translate: 0 var(--apollo-image-cards-offset);
	}

	.apollo-image-cards__item:nth-child(1) .apollo-image-cards__media,
	.apollo-image-cards__item:nth-child(3) .apollo-image-cards__media {
		aspect-ratio: 387 / 560;
	}
}

/* Lépcsőzetes jellemzők (Rendezvénytér – „Miért az Apollo”)
   Telefon: 1 oszlop, lépcsőzés nélkül. Tablet (40rem): 2 oszlop, a második 48 px-lel lejjebb.
   Desktop (64rem): 4 oszlop, oszloponként 48 px-lel lejjebb (0 / 48 / 96 / 144).
   ========================================================================== */

.apollo-features {
	padding-block: var(--apollo-section-y);
	background: var(--apollo-color-bg-inverse);
	color: var(--apollo-color-text-inverse);
}

.apollo-features__title {
	max-width: 47.5rem; /* 760px */
	margin: 0 0 clamp(3rem, 5.56vw, 5rem); /* 80px desktop */
}

.apollo-features__list {
	--apollo-features-step: 3rem; /* 48px */
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--apollo-space-48) var(--apollo-space-24);
	margin: 0;
	padding: 0;
	list-style: none;
}

.apollo-features__item {
	display: flex;
	flex-direction: column;
	gap: var(--apollo-space-24);
	padding-top: var(--apollo-space-24);
	border-top: 1px solid var(--apollo-color-border-accent-on-dark);
}

.apollo-features__keyword {
	margin: 0;
}

.apollo-features__item-title {
	margin: 0;
	color: var(--apollo-color-text-accent-on-dark);
}

.apollo-features__text {
	margin: 0;
	color: var(--apollo-color-text-inverse-muted);
	font-size: var(--apollo-type-small-size);
	line-height: var(--apollo-type-small-line);
}

@media (min-width: 40rem) {
	.apollo-features__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.apollo-features__item:nth-child(2n) {
		margin-top: var(--apollo-features-step);
	}
}

@media (min-width: 64rem) {
	.apollo-features__list {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.apollo-features__item:nth-child(2) {
		margin-top: var(--apollo-features-step);
	}

	.apollo-features__item:nth-child(3) {
		margin-top: calc(var(--apollo-features-step) * 2);
	}

	.apollo-features__item:nth-child(4) {
		margin-top: calc(var(--apollo-features-step) * 3);
	}
}

/* Két panel – bal bézs, jobb fekete (Rendezvénytér – „Vendéglátás és technika”)
   A panelek háttere a képernyő széléig ér, a tartalom a konténer szélével és a középvonallal fut
   (a szekció rácsvonalai subgriddel öröklődnek). 64rem alatt a panelek egymás alatt.
   ========================================================================== */

.apollo-split-panels {
	display: grid;
	grid-template-columns:
		[full-start] minmax(var(--apollo-gutter), 1fr)
		[content-start] minmax(0, var(--apollo-container))
		[content-end] minmax(var(--apollo-gutter), 1fr)
		[full-end];
}

.apollo-split-panels__panel {
	display: grid;
	grid-column: full;
	grid-template-columns: subgrid;
	padding-block: var(--apollo-section-y);
}

.apollo-split-panels__panel--left {
	background: var(--apollo-color-bg-accent-soft);
	color: var(--apollo-color-text);
}

.apollo-split-panels__panel--right {
	--apollo-button-hover-bg: var(--apollo-color-bg); /* fekete panel: fehér gomb hover */
	--apollo-button-hover-text: var(--apollo-color-text);
	background: var(--apollo-color-bg-inverse);
	color: var(--apollo-color-text-inverse);
}

.apollo-split-panels__content {
	--apollo-split-panels-border: var(--apollo-color-border);
	display: flex;
	flex-direction: column;
	gap: var(--apollo-space-64);
	grid-column: content;
	min-width: 0;
}

.apollo-split-panels__panel--right .apollo-split-panels__content {
	--apollo-split-panels-border: var(--apollo-color-border-inverse-subtle);
}

.apollo-split-panels__intro {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--apollo-space-24);
}

.apollo-split-panels__panel--right .apollo-split-panels__eyebrow {
	color: var(--apollo-color-text-accent-on-dark);
}

.apollo-split-panels__title {
	margin: 0;
}

.apollo-split-panels__text {
	margin: 0;
	font-size: var(--apollo-type-body-size);
	line-height: var(--apollo-type-body-line);
}

.apollo-split-panels__panel--right .apollo-split-panels__text {
	color: var(--apollo-color-text-inverse-muted);
}

/* Bal: számozott lista (01 + H3 név), vonal minden tétel fölött és alatt */
.apollo-split-panels__list {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: apollo-split-panels;
}

.apollo-split-panels__list-item {
	display: flex;
	align-items: center;
	gap: var(--apollo-space-32);
	margin-bottom: -1px;
	padding-block: var(--apollo-space-24);
	border-block: 1px solid var(--apollo-split-panels-border);
	counter-increment: apollo-split-panels;
}

.apollo-split-panels__list-item::before {
	content: counter(apollo-split-panels, decimal-leading-zero);
	flex: none;
	font-size: var(--apollo-type-eyebrow-size);
	font-weight: var(--apollo-font-weight-regular);
	line-height: var(--apollo-type-eyebrow-line);
	letter-spacing: var(--apollo-tracking-eyebrow);
	font-variant-numeric: tabular-nums;
}

/* Jobb: címke–érték sorok */
.apollo-split-panels__specs {
	margin: 0;
}

/* Telefonon az érték mindig a címke alatt (különben a hosszabb címkéknél alá, a rövidebbeknél mellé kerülne) */
.apollo-split-panels__spec {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--apollo-space-8) var(--apollo-space-24);
	margin-bottom: -1px;
	padding-block: var(--apollo-space-24);
	border-block: 1px solid var(--apollo-split-panels-border);
}

.apollo-split-panels__spec-label {
	color: var(--apollo-color-text-accent-on-dark);
}

.apollo-split-panels__spec-value {
	margin: 0;
	color: var(--apollo-color-text-inverse-muted);
	font-size: var(--apollo-type-body-size);
	line-height: var(--apollo-type-body-line);
}

@media (min-width: 40rem) {
	.apollo-split-panels__spec {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
	}
}

/* Desktop: két egyforma panel; a konténer középvonala választja el a tartalmakat, mellette 64 px */
@media (min-width: 64rem) {
	.apollo-split-panels {
		grid-template-columns:
			[full-start] minmax(var(--apollo-gutter), 1fr)
			[content-start] minmax(0, calc(var(--apollo-container) / 2))
			[mid] minmax(0, calc(var(--apollo-container) / 2))
			[content-end] minmax(var(--apollo-gutter), 1fr)
			[full-end];
	}

	.apollo-split-panels__panel--left {
		grid-column: full-start / mid;
	}

	.apollo-split-panels__panel--right {
		grid-column: mid / full-end;
	}

	.apollo-split-panels__panel--left .apollo-split-panels__content {
		grid-column: content-start / mid;
		padding-right: var(--apollo-space-64);
	}

	.apollo-split-panels__panel--right .apollo-split-panels__content {
		grid-column: mid / content-end;
		padding-left: var(--apollo-space-64);
	}
}

/* Letölthető anyagok (Rendezvénytér – „Ismerd meg a teret”)
   ========================================================================== */

.apollo-downloads {
	padding-block: var(--apollo-section-y);
	background: var(--apollo-color-bg);
}

.apollo-downloads__eyebrow {
	margin-bottom: var(--apollo-space-24);
}

.apollo-downloads__list {
	display: grid;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: apollo-download;
}

.apollo-downloads__item {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--apollo-space-24) var(--apollo-space-32);
	padding-block: var(--apollo-space-40);
	counter-increment: apollo-download;
}

/* Sorszám („01”) a cím első sorához igazítva */
.apollo-downloads__item::before {
	content: counter(apollo-download, decimal-leading-zero);
	align-self: flex-start;
	font-size: var(--apollo-type-eyebrow-size);
	line-height: var(--apollo-type-eyebrow-line);
	letter-spacing: var(--apollo-tracking-eyebrow);
	font-variant-numeric: tabular-nums;
}

.apollo-downloads__info {
	display: flex;
	flex: 1 1 14rem;
	flex-direction: column;
	gap: var(--apollo-space-8);
}

.apollo-downloads__title {
	margin: 0;
}

.apollo-downloads__meta {
	margin: 0;
	color: var(--apollo-color-text-muted);
	font-size: var(--apollo-type-small-size);
	line-height: var(--apollo-type-small-line);
}

/* Desktop: a tételek egymás mellett, a két szélre igazítva (Figma: space-between) */
@media (min-width: 64rem) {
	.apollo-downloads__list {
		grid-template-columns: repeat(2, auto);
		justify-content: space-between;
		column-gap: var(--apollo-space-48);
	}

	.apollo-downloads__info {
		flex: none;
	}
}

/* Galéria – képsor változat (Rendezvénytér – „Események az Apollóban”)
   A képsor a konténer bal szélétől a lap jobb széléig ér (rácsvonal, nem vw – így nincs oldalgörgetés).
   Méretminta 8-asával (Figma v2): 560 × 640, 400 × 480, 400 × 520, 560 × 640, 480 × 600, 400 × 520,
   560 × 640, 400 × 480.
   ========================================================================== */

.apollo-gallery--row {
	display: grid;
	grid-template-columns:
		[full-start] minmax(var(--apollo-gutter), 1fr)
		[content-start] minmax(0, var(--apollo-container))
		[content-end] minmax(var(--apollo-gutter), 1fr)
		[full-end];
	row-gap: clamp(2.5rem, 4.44vw, 4rem); /* 64px desktop */
}

.apollo-gallery__header {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--apollo-space-32) var(--apollo-space-64);
	grid-column: content;
}

.apollo-gallery--row .apollo-gallery__content {
	flex: 1 1 20rem;
	gap: var(--apollo-space-24);
	aspect-ratio: auto; /* a lapozó változat desktopos 539 / 520-as aránya itt nem kell */
}

.apollo-gallery--row .apollo-slider__controls {
	gap: var(--apollo-space-24);
}

.apollo-gallery__viewport {
	grid-column: content-start / full-end;
}

.apollo-gallery__track {
	align-items: flex-end;
	gap: var(--apollo-space-24);
	padding-right: var(--apollo-gutter);
}

.apollo-gallery__slide {
	--apollo-gallery-width: 25rem;
	--apollo-gallery-ratio: 400 / 480;
	flex: none;
	width: min(var(--apollo-gallery-width), 80vw);
}

.apollo-gallery__slide:nth-child(8n + 1),
.apollo-gallery__slide:nth-child(8n + 4),
.apollo-gallery__slide:nth-child(8n + 7) {
	--apollo-gallery-width: 35rem;
	--apollo-gallery-ratio: 560 / 640;
}

.apollo-gallery__slide:nth-child(8n + 3),
.apollo-gallery__slide:nth-child(8n + 6) {
	--apollo-gallery-ratio: 400 / 520;
}

.apollo-gallery__slide:nth-child(8n + 5) {
	--apollo-gallery-width: 30rem;
	--apollo-gallery-ratio: 480 / 600;
}

.apollo-gallery--row .apollo-slider__image {
	aspect-ratio: var(--apollo-gallery-ratio);
	background: var(--apollo-color-bg-accent-soft);
}

.apollo-gallery--row .apollo-slider__caption {
	color: var(--apollo-color-text-muted-on-subtle);
	font-size: var(--apollo-type-small-size);
	line-height: var(--apollo-type-small-line);
}

/* Oldalcím kép nélkül (Kapcsolat – „Találkozzunk a Corvin Palace-ban”)
   Figma: a fejléc alatt 160 px, a cím (H1, 702 px széles) a szekció aljáig ér; a díszítő elem jobb alul
   átnyúlik a következő szekció felső térközébe (a Figmában legfelül van), oldalt a lap széle vágja.
   ========================================================================== */

.apollo-page-title {
	position: relative;
	z-index: 1;
	padding-top: clamp(3rem, 11.11vw, 10rem); /* 160px desktop */
	overflow-x: clip;
	background: var(--apollo-color-bg);
}

.apollo-page-title__title {
	max-width: 43.875rem; /* 702px */
	margin: 0;
	font-size: var(--apollo-type-h1-size);
	font-weight: var(--apollo-font-weight-light);
	line-height: var(--apollo-type-h1-line);
	text-transform: uppercase;
	overflow-wrap: break-word;
	hyphens: auto;
	hyphenate-limit-chars: 10 5 5;
	text-wrap: balance; /* egyenletes sorok, ne „PALACE-” / „BAN” */
}

/* Figma: 263 × 265, x 1243, y 284 (a szekció tetejétől 134 px = a méret 0,51-szerese) */
.apollo-page-title__decoration {
	--apollo-decoration-size: clamp(7rem, 18.27vw, 16.4375rem);
	position: absolute;
	top: calc(var(--apollo-decoration-size) * 0.5095);
	right: calc(var(--apollo-decoration-size) * -0.2509);
	width: var(--apollo-decoration-size);
	aspect-ratio: 478.31 / 481.017;
	background: var(--apollo-color-bg-accent);
	pointer-events: none;
	-webkit-mask: url("../img/decoration.svg") no-repeat center / contain;
	mask: url("../img/decoration.svg") no-repeat center / contain;
}

/* Folyamatos, lassú forgás (mint az apollogallery.hu-n): lineáris, óramutató irányú, 15 s / kör.
   Csökkentett mozgásnál áll. */
@media (prefers-reduced-motion: no-preference) {
	.apollo-page-title__decoration {
		animation: apollo-spin 15s linear infinite;
	}
}

@keyframes apollo-spin {
	to {
		transform: rotate(1turn);
	}
}

/* 1024 px alatt a cím a teljes szélességet kapja, a díszítés rácsúszna – ott nincs */
@media (max-width: 63.999rem) {
	.apollo-page-title__decoration {
		display: none;
	}
}

/* Elérhetőségek + kapcsolati űrlap
   ========================================================================== */

.apollo-contact {
	padding-block: var(--apollo-section-y);
	background: var(--apollo-color-bg);
}

.apollo-contact__inner {
	display: grid;
	gap: var(--apollo-space-64);
}

.apollo-contact__info,
.apollo-contact__form {
	min-width: 0;
}

/* Figma: a vonal alatt 32 px (bal) / 48 px (jobb) */
.apollo-contact__heading {
	margin-bottom: var(--apollo-space-32);
}

.apollo-contact__form .apollo-contact__heading {
	margin-bottom: var(--apollo-space-48);
}

.apollo-contact__intro {
	margin: 0 0 var(--apollo-space-48);
}

.apollo-contact__list {
	margin: 0;
}

.apollo-contact__row {
	display: grid;
	grid-template-columns: 7.5rem minmax(0, 1fr); /* 120px címke */
	gap: var(--apollo-space-24);
	padding-block: 1.25rem;
}

.apollo-contact__label {
	color: var(--apollo-color-text-muted);
	font-size: var(--apollo-type-small-size);
	line-height: var(--apollo-type-small-line);
	letter-spacing: var(--apollo-tracking-label);
	text-transform: uppercase;
}

.apollo-contact__value {
	margin: 0;
	font-size: var(--apollo-type-body-size);
	line-height: var(--apollo-type-body-line);
}

.apollo-contact__value > * {
	margin: 0;
}

.apollo-contact__value a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.2em;
	overflow-wrap: anywhere; /* telefonon a hosszú e-mail-cím is beférjen az oszlopba */
}

.apollo-contact__value a:hover {
	text-decoration-thickness: 2px;
}

.apollo-contact__value a:focus-visible {
	outline: 1px solid currentColor;
	outline-offset: 2px;
}

.apollo-contact__form-intro {
	margin: 0 0 var(--apollo-space-48);
	color: var(--apollo-color-text-muted);
	font-size: var(--apollo-type-body-size);
	line-height: var(--apollo-type-body-line);
}

/* Desktop: elérhetőségek 440 px, köz 96 px, űrlap a maradék */
@media (min-width: 64rem) {
	.apollo-contact__inner {
		grid-template-columns: minmax(0, 440fr) minmax(0, 720fr);
		column-gap: clamp(3rem, 6.67vw, 6rem);
	}
}

/* Térkép: statikus kép, címkártya bal alul (Figma: 1440 × 600, kártya 380 px, 60 px-re a sarokból)
   Telefonon a kártya a kép alatt (nem takarja a térképet, és olvashatóbb).
   ========================================================================== */

.apollo-map {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	background: var(--apollo-color-bg-inverse-subtle); /* kép nélkül sötét felület */
}

.apollo-map__image {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.apollo-map__inner {
	padding-block: var(--apollo-space-24);
}

.apollo-map__card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--apollo-space-16);
	width: 23.75rem; /* 380px */
	max-width: 100%;
	padding: var(--apollo-space-32);
	background: var(--apollo-color-bg);
	color: var(--apollo-color-text);
}

.apollo-map__eyebrow {
	color: var(--apollo-color-text-accent); /* Figma #a8927a – kontraszt: TEENDOK */
}

/* A cím alatt halvány vonal (Figma: color-border-subtle #bdbdbd) */
.apollo-map__address {
	align-self: stretch;
	margin: 0;
	padding-bottom: var(--apollo-space-16);
	border-bottom: 1px solid var(--apollo-color-border-muted);
	font-size: var(--apollo-type-body-size);
	line-height: var(--apollo-type-body-line);
}

/* Szöveges link (Figma: Button – Text): nagybetűs, alul vonal, nyíl */
.apollo-map__route {
	display: inline-flex;
	align-items: center;
	gap: var(--apollo-space-12);
	padding: var(--apollo-space-4);
	border-bottom: 1px solid currentColor;
	color: inherit;
	font-size: var(--apollo-type-button-size);
	line-height: var(--apollo-type-button-line);
	letter-spacing: var(--apollo-tracking-button);
	text-decoration: none;
	text-transform: uppercase;
}

.apollo-map__route:hover .apollo-button__arrow {
	transform: translateX(0.25rem);
}

.apollo-map__route:focus-visible {
	outline: 1px solid currentColor;
	outline-offset: 3px;
}

@media (min-width: 40rem) {
	.apollo-map {
		display: block;
		min-height: clamp(25rem, 41.67vw, 37.5rem); /* 600px desktop */
	}

	.apollo-map__image {
		position: absolute;
		inset: 0;
		z-index: -1;
		height: 100%;
		aspect-ratio: auto;
	}

	/* A kártya a konténer helyett a lap bal szélétől 60 px-re (Figma), a kép aljától 60 px-re */
	.apollo-map__inner {
		position: absolute;
		bottom: clamp(1.5rem, 4.17vw, 3.75rem);
		left: clamp(1rem, 4.17vw, 3.75rem);
		width: auto; /* az .apollo-container 100%-a a bal eltolással túllógna (oldalgörgetés) */
		max-width: calc(100% - 2 * clamp(1rem, 4.17vw, 3.75rem));
		padding: 0;
	}
}

/* Hero kép nélkül (Köszönjük): sötét átmenet (Figma: #111 → fekete), sötétítő nélkül
   ========================================================================== */

.apollo-hero--no-image {
	background: linear-gradient(180deg, var(--apollo-color-bg-inverse-subtle) 0%, var(--apollo-color-bg-inverse) 100%);
}

.apollo-hero--no-image::after {
	content: none;
}

/* Eseménylista (Események — Desktop: „Események az Apollóban”)
   Cím vonallal (H3), alatta csoportok: balra a címke („——— Hamarosan”, 300 px-es oszlop), jobbra
   kétoszlopos kártyarács (454 + 48 + 454). A második csoport felül vonallal indul. A lapozó jobbra
   igazítva (számláló + nyilak, mint a slidernél).
   ========================================================================== */

.apollo-events {
	padding-block: clamp(2.5rem, 4.44vw, 4rem) var(--apollo-section-y); /* 64 / 120px desktop */
}

.apollo-events__title {
	margin-bottom: clamp(2rem, 3.89vw, 3.5rem); /* 56px desktop */
}

.apollo-events__group {
	display: grid;
	gap: var(--apollo-space-32);
	scroll-margin-top: var(--apollo-scroll-offset);
}

.apollo-events__group + .apollo-events__group {
	margin-top: clamp(5rem, 11.11vw, 10rem); /* 160px desktop */
	padding-top: var(--apollo-space-24);
	border-top: 1px solid var(--apollo-color-border);
}

.apollo-events__list {
	display: grid;
	gap: clamp(3rem, 5.56vw, 5rem) var(--apollo-space-48); /* 80 / 48px desktop */
	align-items: start;
	margin: 0;
	padding: 0;
	list-style: none;
}

.apollo-events__empty {
	margin: 0;
	font-size: var(--apollo-type-body-size);
	line-height: var(--apollo-type-body-line);
}

.apollo-events__pagination {
	justify-content: flex-end;
	gap: clamp(2rem, 6.11vw, 5.5rem); /* 88px desktop */
	margin-top: clamp(3rem, 4.44vw, 4rem);
}

@media (min-width: 40rem) {
	.apollo-events__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 64rem) {
	.apollo-events__group {
		grid-template-columns: minmax(0, 300fr) minmax(0, 956fr);
		gap: 0;
	}

	.apollo-events__label {
		align-self: start;
		margin-top: var(--apollo-space-4);
	}
}

/* A lapozó nyilai linkek (a slider gombjainak megjelenésével); a végeken nem kattintható span */
a.apollo-slider__button {
	text-decoration: none;
}

/* Eseménykártya (lista: kép, dátum, cím, rövid leírás; „További események”: kép, dátum, cím, Részletek)
   A DOM-ban a cím van elöl (felolvasáskor a cím jön először), vizuálisan a kép és a dátum. Az egész kártya
   kattintható: a link ::after-e kifeszül a kártyára.
   ========================================================================== */

.apollo-event-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--apollo-space-16);
}

.apollo-event-card__media {
	order: -2;
	margin-bottom: var(--apollo-space-4);
	aspect-ratio: 454 / 256;
	overflow: hidden;
	background: var(--apollo-color-bg-accent-soft); /* plakát nélkül helykitöltő */
}

.apollo-event-card--related .apollo-event-card__media {
	aspect-ratio: 402 / 300;
}

.apollo-event-card__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: opacity var(--apollo-transition);
}

.apollo-event-card__date {
	order: -1;
	margin: 0;
	font-size: var(--apollo-type-small-size);
	line-height: var(--apollo-type-small-line);
	letter-spacing: var(--apollo-tracking-label);
	font-variant-numeric: tabular-nums;
}

.apollo-event-card__title {
	margin: 0;
	overflow-wrap: break-word;
	hyphens: auto;
}

.apollo-event-card__summary {
	margin: 0;
	font-size: var(--apollo-type-small-size);
	line-height: var(--apollo-type-small-line);
}

.apollo-event-card__link {
	color: inherit;
	text-decoration: none;
}

.apollo-event-card__link::after {
	content: "";
	position: absolute;
	inset: 0;
}

.apollo-event-card--list:hover .apollo-event-card__link,
.apollo-event-card__link:focus-visible {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

.apollo-event-card__link:focus-visible {
	outline: none;
}

.apollo-event-card:has(.apollo-event-card__link:focus-visible) {
	outline: 1px solid currentColor;
	outline-offset: 6px;
}

/* „Részletek” (Figma: Text Link – nagybetűs gombszöveg, alsó vonal, nyíl) */
.apollo-event-card__more {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: var(--apollo-space-12);
	padding: var(--apollo-space-4);
	border-bottom: 1px solid currentColor;
	font-size: var(--apollo-type-button-size);
	line-height: var(--apollo-type-button-line);
	letter-spacing: var(--apollo-tracking-button);
	text-transform: uppercase;
}

.apollo-event-card--related:hover .apollo-button__arrow {
	transform: translateX(0.25rem);
}

@media (prefers-reduced-motion: reduce) {
	.apollo-event-card__image {
		transition: none;
	}
}

/* Eseményoldal (Új esemény / Korábbi esemény galériával)
   Fejléc: cím (H3) + időpont, alatta vonal. Plakátos elrendezés (közelgő): plakát 640 px + adatok,
   alatta a leírás teljes szélességben. Oldalsávos (korábbi, borítóképpel): adatok balra, leírás 740 px jobbra.
   ========================================================================== */

.apollo-event__hero {
	position: relative;
	height: clamp(20rem, 63.89vw, 57.5rem); /* 920px desktop */
	background: var(--apollo-color-bg-inverse);
}

/* A fejléc fehér szövege világos fotón is olvasható legyen */
.apollo-event__hero::after {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: calc(var(--apollo-header-height) * 1.5);
	background: linear-gradient(var(--apollo-color-overlay), transparent);
	pointer-events: none;
}

.apollo-event__hero-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.apollo-event__header {
	padding-top: clamp(2.5rem, 4.44vw, 4rem); /* 64px desktop */
}

.apollo-event__header::after {
	content: "";
	display: block;
	margin-top: clamp(1.25rem, 1.95vw, 1.75rem); /* 28px desktop */
	border-bottom: 1px solid var(--apollo-color-border);
}

.apollo-event__title {
	margin: 0;
	overflow-wrap: break-word;
	hyphens: auto;
}

.apollo-event__date,
.apollo-event__facts {
	font-size: var(--apollo-type-h4-size);
	font-weight: var(--apollo-font-weight-light);
	line-height: var(--apollo-type-h4-line);
	font-variant-numeric: tabular-nums;
}

.apollo-event__date {
	margin: var(--apollo-space-24) 0 0;
}

.apollo-event__body {
	display: grid;
	gap: var(--apollo-space-40);
	padding-block: clamp(3rem, 8.33vw, 7.5rem) var(--apollo-section-y); /* 120 / 120px desktop */
}

.apollo-event--aside .apollo-event__body {
	padding-top: clamp(3rem, 5.56vw, 5rem); /* 80px desktop */
}

.apollo-event__poster-image {
	width: 100%;
	height: auto;
}

.apollo-event__info {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--apollo-space-32);
	min-width: 0;
}

.apollo-event__facts {
	display: flex;
	flex-direction: column;
	gap: var(--apollo-space-24);
	margin: 0;
}

.apollo-event__facts dd {
	margin: 0;
}

.apollo-event__fact--organizer dt,
.apollo-event__fact--organizer dd {
	overflow-wrap: break-word;
}

/* A leírás (blokkszerkesztő tartalma): Body 18, bekezdésközök, lista, link */
.apollo-event__content {
	min-width: 0;
	font-size: var(--apollo-type-body-size);
	line-height: var(--apollo-type-body-line);
	overflow-wrap: break-word;
}

.apollo-event__content > :first-child {
	margin-top: 0;
}

.apollo-event__content > :last-child {
	margin-bottom: 0;
}

.apollo-event__content :where(p, ul, ol, figure, blockquote) {
	margin: 0 0 var(--apollo-space-24);
}

.apollo-event__content :where(ul, ol) {
	padding-left: 1.5em;
}

.apollo-event__content :where(h2, h3, h4) {
	margin: var(--apollo-space-40) 0 var(--apollo-space-16);
	font-size: var(--apollo-type-h4-size);
	font-weight: var(--apollo-font-weight-light);
	line-height: var(--apollo-type-h4-line);
	text-transform: uppercase;
}

.apollo-event__content a {
	color: inherit;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

.apollo-event__content a:focus-visible {
	outline: 1px solid currentColor;
	outline-offset: 2px;
}

.apollo-event__content figcaption {
	margin-top: var(--apollo-space-8);
	color: var(--apollo-color-text-muted);
	font-size: var(--apollo-type-caption-size);
	line-height: var(--apollo-type-caption-line);
}

@media (min-width: 64rem) {
	/* Plakát (640) + adatok, alatta a leírás a teljes szélességben */
	.apollo-event--poster .apollo-event__body {
		grid-template-columns: minmax(0, 640fr) minmax(0, 552fr);
		column-gap: var(--apollo-space-64);
		row-gap: var(--apollo-space-64);
	}

	.apollo-event--poster .apollo-event__info {
		padding-top: var(--apollo-space-8);
	}

	.apollo-event--poster .apollo-event__content {
		grid-column: 1 / -1;
	}

	/* Plakát nélkül az adatok és a leírás egymás alatt */
	.apollo-event--poster .apollo-event__body:not(:has(.apollo-event__poster)) {
		grid-template-columns: minmax(0, 1fr);
	}

	/* Adatok balra, leírás jobbra (740 px) */
	.apollo-event--aside .apollo-event__body {
		grid-template-columns: minmax(0, 1fr) minmax(0, 46.25rem);
		column-gap: var(--apollo-space-64);
	}
}

/* Esemény galéria (Korábbi esemény galériával): három oszlopos, kötetlen képarányú rács (CSS columns),
   alatta jobbra a lapozó. JS-sel oldalanként 12 kép; nagyítás: .apollo-lightbox.
   ========================================================================== */

.apollo-event-gallery {
	padding-bottom: var(--apollo-section-y);
}

.apollo-event-gallery__title {
	margin-bottom: clamp(2rem, 4.17vw, 3.75rem); /* 60px desktop */
	scroll-margin-top: var(--apollo-scroll-offset);
}

.apollo-event-gallery__title:focus {
	outline: none;
}

.apollo-event-gallery__list {
	column-gap: var(--apollo-space-24);
	margin: 0;
	padding: 0;
	list-style: none;
}

.apollo-event-gallery__item {
	break-inside: avoid;
	margin-bottom: var(--apollo-space-24);
}

.apollo-event-gallery__item[hidden] {
	display: none;
}

.apollo-event-gallery__link {
	display: block;
	background: var(--apollo-color-bg-accent-soft);
	cursor: zoom-in;
}

.apollo-event-gallery__link:focus-visible {
	outline: 1px solid var(--apollo-color-text);
	outline-offset: 3px;
}

.apollo-event-gallery__image {
	width: 100%;
	transition: opacity var(--apollo-transition);
}


.apollo-event-gallery__pager {
	justify-content: flex-end;
	gap: clamp(2rem, 6.11vw, 5.5rem); /* 88px desktop */
	margin-top: var(--apollo-space-24);
}

.apollo-event-gallery__pager[hidden] {
	display: none;
}

@media (min-width: 40rem) {
	.apollo-event-gallery__list {
		columns: 2;
	}
}

@media (min-width: 64rem) {
	.apollo-event-gallery__list {
		columns: 3;
	}
}

@media (prefers-reduced-motion: reduce) {
	.apollo-event-gallery__image {
		transition: none;
	}
}

/* További események (szürke sáv, 3 kártya)
   ========================================================================== */

.apollo-event-related {
	padding-block: var(--apollo-section-y);
	background: var(--apollo-color-bg-subtle);
}

.apollo-event-related__title {
	margin-bottom: clamp(2rem, 4.17vw, 3.75rem); /* 60px desktop */
}

.apollo-event-related__list {
	display: grid;
	gap: var(--apollo-space-48) var(--apollo-space-24);
	align-items: start;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 40rem) {
	.apollo-event-related__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 64rem) {
	.apollo-event-related__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* Galéria nagyítás (Figma: Galéria — nagyítás (lightbox)): natív <dialog>, teljes képernyő, fekete.
   Bal felül számláló, jobb felül ✕, a kép középen (max. 1000 px), alatta képaláírás, oldalt a nyilak.
   Telefonon a nyilak alul.
   ========================================================================== */

html.apollo-lightbox-is-open {
	overflow: hidden;
}

.apollo-lightbox {
	width: 100%;
	max-width: none;
	height: 100%;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: var(--apollo-color-bg-inverse);
	color: var(--apollo-color-text-inverse);
	font-family: var(--apollo-font-family);
}

.apollo-lightbox::backdrop {
	background: var(--apollo-color-bg-inverse);
}

.apollo-lightbox__inner {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	grid-template-rows: auto minmax(0, 1fr);
	grid-template-areas:
		"counter . close"
		"prev figure next";
	align-items: center;
	gap: var(--apollo-space-24) var(--apollo-space-32);
	height: 100%;
	padding: clamp(1rem, 3.33vw, 3rem) var(--apollo-gutter) clamp(1.5rem, 4.44vw, 4rem);
}

.apollo-lightbox__counter {
	grid-area: counter;
	margin: 0;
	font-size: var(--apollo-type-small-size);
	line-height: var(--apollo-type-small-line);
	letter-spacing: var(--apollo-tracking-label);
	font-variant-numeric: tabular-nums;
}

.apollo-lightbox__close {
	grid-area: close;
	position: relative;
	justify-self: end;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	cursor: pointer;
}

.apollo-lightbox__close::before,
.apollo-lightbox__close::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 1.75rem;
	height: 1px;
	background: currentColor;
	transform: translate(-50%, -50%) rotate(45deg);
}

.apollo-lightbox__close::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}

.apollo-lightbox__close:focus-visible {
	outline: 1px solid currentColor;
	outline-offset: 2px;
}

.apollo-lightbox__figure {
	grid-area: figure;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--apollo-space-24);
	height: 100%;
	min-height: 0;
	margin: 0;
}

.apollo-lightbox__image {
	display: block;
	max-width: min(100%, 62.5rem); /* 1000px */
	max-height: calc(100% - var(--apollo-space-64));
	width: auto;
	height: auto;
	object-fit: contain;
}

.apollo-lightbox__caption {
	width: min(100%, 62.5rem);
	color: var(--apollo-color-text-inverse-muted);
	font-size: var(--apollo-type-body-size);
	line-height: var(--apollo-type-body-line);
}

.apollo-lightbox__button.apollo-slider__button {
	border-color: var(--apollo-color-border-inverse);
	color: var(--apollo-color-text-inverse);
}

.apollo-lightbox__button.apollo-slider__button--prev {
	grid-area: prev;
}

.apollo-lightbox__button.apollo-slider__button--next {
	grid-area: next;
}

.apollo-lightbox__button.apollo-slider__button:hover:not([aria-disabled="true"]),
.apollo-lightbox__button.apollo-slider__button:focus-visible {
	background: var(--apollo-color-bg);
	color: var(--apollo-color-text);
}

.apollo-lightbox__button.apollo-slider__button:focus-visible {
	outline-color: var(--apollo-color-border-inverse);
}

@media (max-width: 47.999rem) {
	.apollo-lightbox__inner {
		grid-template-columns: auto minmax(0, 1fr) auto;
		grid-template-rows: auto minmax(0, 1fr) auto;
		grid-template-areas:
			"counter . close"
			"figure figure figure"
			"prev . next";
	}
}
