/*
	Theme Name: Pesterzsébeti Baptista Gyülekezet
	Theme URI: https://pbgy.hu
	Description: Egyedi gyermek téma a Hello Elementor alapján, a Pesterzsébeti Baptista Gyülekezet márkaszíneivel.
	Author: PBGY
	Template: hello-elementor
	Version: 2.0.0
	Text Domain: pbgy
*/

/* ---------- Önhosztolt betűk (Lora címekhez, Inter törzsszöveghez) ----------
   Kovács Viktória (kommunikációs osztályvezető) honlapkoncepciója explicit
   ezt a párosítást kéri. Self-hosztolva (nem Google Fonts CDN-ről), mert
   ez GDPR-szempontból biztonságosabb és gyorsabb is - lásd fonts/ mappa. */

@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url('fonts/inter-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url('fonts/inter-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+2113, U+A720-A7FF;
}

@font-face {
	font-family: 'Lora';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url('fonts/lora-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'Lora';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url('fonts/lora-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+2113, U+A720-A7FF;
}

@font-face {
	font-family: 'Lora';
	font-style: italic;
	font-weight: 400 700;
	font-display: swap;
	src: url('fonts/lora-italic-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'Lora';
	font-style: italic;
	font-weight: 400 700;
	font-display: swap;
	src: url('fonts/lora-italic-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+2113, U+A720-A7FF;
}

/* ---------- Márkaszínek - Kovács Viktória honlapkoncepciója alapján ----------
   Meleg, természetes zöld-bézs-barna paletta (a korábbi lila-sárga 0. körös
   build helyett - lásd a projekt jegyzeteit). */

:root {
	--pbgy-green: #68745b;
	--pbgy-green-dark: #3f4939;
	--pbgy-brown: #806b57;
	--pbgy-beige: #e8e0d2;
	--pbgy-paper: #f7f4ec;
	--pbgy-ink: #33342f;
	--pbgy-white: #ffffff;
	--pbgy-border: #ddd4c0;
	--pbgy-on-dark-text: #d9d2bf;
	--pbgy-max-width: 1180px;
}

html {
	scroll-behavior: smooth;
}

/* Elementor-hiba javítása (plugin verzió 4.1.4, ellenőrizve a böngészőben
   élesben) - az Elementor saját frontend.min.css-e a container elemeken
   (.e-con) minden logikai margót ÉS a vízszintes (inline) paddingot
   ténylegesen alkalmazza, de a FÜGGŐLEGES (block) paddingot NEM: a
   --padding-block-start/-end custom property helyesen ki van számolva, de
   sosem kerül egy tényleges `padding-block-start`/`-end` deklarációba. Emiatt
   a teljes oldalon minden szekció szándékolt padding_tv értéke (build_pages.py)
   némán nem érvényesült - csak a widgetek saját margói adták a látható
   térközt, a tervezett szekció-ritmus (56-100px között, szekciónként eltérő)
   gyakorlatilag nem létezett. Ez a szabály pontosan azt a két deklarációt
   pótolja, amit az Elementor saját maga már kiszámolt custom property-jei
   alapján kellene, hogy alkalmazzon. */
.e-con {
	padding-block-start: var(--padding-block-start);
	padding-block-end: var(--padding-block-end);
}

body {
	color: var(--pbgy-ink);
	background: var(--pbgy-paper);
	font-family: 'Inter', sans-serif;
}

h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
	font-family: 'Lora', serif;
	letter-spacing: -0.01em;
	text-wrap: balance;
}

p {
	text-wrap: pretty;
}

*:focus-visible {
	outline: 2px solid var(--pbgy-brown);
	outline-offset: 2px;
}

/* Olvashatóság: a hosszabb, mondat-szintű szövegblokkok ne fussanak a teljes
   1180px-es boxed szélességre - túl hosszú sorok nehezen olvashatók.
   (boxed(..., prose=True) helper) */
.pbgy-prose {
	max-width: 68ch;
}

.pbgy-prose p {
	line-height: 1.75;
}

/* Kis, sárga aláfestésű kiemelés helyett most a meleg barna árnyalatot
   használjuk a "bemerített" szónál - a felhasználó kérésére a baptista
   identitást vizuálisan, nem új szöveggel erősítjük. */
.pbgy-highlight {
	background: linear-gradient(to bottom, transparent 62%, rgba(128, 107, 87, .28) 62%);
	font-weight: 700;
	color: var(--pbgy-green-dark);
}

/* Puha, árnyékolt panel ikon/kártya-grid nélkül (Alkalmaink napi oszlopai -
   panel() helper) - mélységet ad egy sima színes sávnak. */
.pbgy-panel {
	background: rgba(255, 255, 255, .7);
	border-radius: 20px;
	padding: 30px 26px !important;
	box-shadow: 0 20px 40px -22px rgba(63, 73, 57, .38);
	max-width: 100%;
}

@media (max-width: 480px) {
	.pbgy-panel {
		padding: 20px 12px !important;
	}
}

/* Gomb hover/press visszajelzés - a szín a gomb saját szövegszínét veszi át
   (currentColor). */
.elementor-button {
	transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}

.elementor-button:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 28px -12px currentColor;
	opacity: .94;
}

.elementor-button:active {
	transform: translateY(0) scale(.98);
}

/* Szöveges link nyílhegyel (text_link() helper) - a mindig kitöltött+
   körvonalas gombpár sablon egyhangúságát töri meg egy-egy másodlagos
   cselekvésnél. */
.pbgy-text-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: #ffffff;
	font-family: 'Inter', sans-serif;
	font-weight: 600;
	font-size: 15px;
	text-decoration: underline;
	text-underline-offset: 4px;
	text-decoration-thickness: 1.5px;
	text-decoration-color: rgba(255, 255, 255, .5);
	transition: gap .18s ease, text-decoration-color .18s ease;
}

.pbgy-text-link:hover {
	gap: 12px;
	text-decoration-color: #ffffff;
	color: #ffffff;
}

.pbgy-text-link span {
	transition: transform .18s ease;
}

.pbgy-text-link:hover span {
	transform: translateX(2px);
}

/* Egyenlő szélességű oszlopok minden több-gyermekes flex sorban (row() helper) */
.pbgy-row > .e-con {
	flex: 1 1 0;
	min-width: 0;
}

/* Grid, nem flex: az Elementor flex-direction-je col()-on valódi Safari-n
   (WebKit) megbízhatatlan volt - lásd a commit üzenetét. */
.pbgy-col {
	display: grid !important;
	grid-auto-flow: row !important;
	grid-template-columns: 100% !important;
	gap: 20px;
}

@media (max-width: 700px) {
	.pbgy-row {
		flex-direction: column !important;
		/* A row() flex_gap-ja (Elementor "flex_gap" kontroll) egy fix inline
		   px-érték, nem reszponzív - egymás mellett (desktop/tablet) elfért
		   "levegőnek" hatott, de mobilon, ahol ugyanez az érték az egymásra
		   halmozott teljes szélességű oszlopok KÖZÖTTI függőleges rést adja,
		   túl szellősnek hatott (2026-09-11-i felhasználói visszajelzés) -
		   ezért itt !important-tel felülírjuk egy kisebb, egységes értékre. */
		gap: 24px !important;
	}

	.pbgy-row > .e-con {
		width: 100%;
	}
}

/* Aszimmetrikus hero-sor (hero_split() helper) - 58/42 arányú két oszlop az
   egyenlő (50/50) alap helyett, hogy a nyitókép ne középre igazított,
   szimmetrikus blokk legyen, hanem tényleges súlypontja legyen a szövegnek. */
.pbgy-hero-row > .e-con:first-child {
	flex: 1.4 1 0;
}

.pbgy-hero-row > .e-con:last-child {
	flex: 1 1 0;
}

/* "Beszúrt jegyzet" - a Családi nap blokk szándékosan NEM a többi szekcióval
   egyező, középre igazított kártya, hanem egy enyhén elforgatott, oldalra
   tolt "post-it"/kitűzött cetli - vizuálisan is jelezve, hogy ez egy
   időszakos betoldás a fő tartalom mellett, nem a szerkezet állandó része
   (lásd bin/build_pages.py "csaladinap" megjegyzés - szeptember 12 után ez a
   blokk egyszerűen kivehető). */
.pbgy-note-card {
	position: relative;
	isolation: isolate;
	max-width: 460px;
	margin-left: 0;
	margin-right: auto;
	transform: rotate(-1.4deg);
	background: var(--pbgy-white);
	border-left: 4px solid var(--pbgy-brown);
	border-radius: 4px 16px 16px 4px;
	padding: 32px 30px;
	box-shadow: 0 22px 40px -24px rgba(63, 73, 57, .45);
}

.pbgy-note-card::before {
	content: "";
	position: absolute;
	top: -10px;
	left: 28px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--pbgy-brown);
	box-shadow: 0 3px 6px rgba(0, 0, 0, .25);
	z-index: 2;
}

/* Nagyon halvány papír-szemcse, hogy a "kitűzött cetli" ne sima digitális
   felület legyen, hanem tapintható tárgynak hasson - ugyanaz a technika,
   mint a fotó-helykitöltőn és a hirdetőtáblán. Az ::after-re kerül, hogy ne
   ütközzön a fenti ::before pin-dekorációval. */
.pbgy-note-card::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	z-index: 0;
	opacity: .05;
	mix-blend-mode: multiply;
	pointer-events: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
	background-size: 140px 140px;
}

.pbgy-note-card > * {
	position: relative;
	z-index: 1;
}

.pbgy-note-card h2 {
	margin: 0 0 10px;
	font-family: 'Lora', serif;
	font-weight: 700;
	font-size: 22px;
	line-height: 1.3;
	color: var(--pbgy-green-dark);
}

.pbgy-note-card p {
	margin: 0 0 20px;
	line-height: 1.6;
}

.pbgy-note-card p:last-of-type {
	margin-bottom: 0;
}

.pbgy-note-card .elementor-button {
	margin-top: 4px;
}

/* Ha épp nincs aktív esemény, a [pbgy_esemenyek] shortcode üres stringet ad
   vissza (lásd functions.php) - de a körülötte lévő szekció (anchor_section
   "csaladinap", bézs háttér + padding) enélkül is megjelenne, mint egy üres,
   tartalom nélküli csík. A .pbgy-empty osztályt egy apró script teszi fel
   (lásd functions.php pbgy-events-empty-check) - a :has() CSS-szelektoros
   változat megbízhatatlannak bizonyult (a matches() teszt szerint nem
   illeszkedett, mégis lezérózta a paddingot), ezért egyszerű, ellenőrizhető
   JS-osztály-kapcsolásra váltottunk. */
#csaladinap.pbgy-empty {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

/* Több aktív esemény esetén ([pbgy_esemenyek] shortcode) a páros sorszámú
   jegyzet ellentétes irányba dől és jobbra tolódik - úgy fest, mintha
   valóban több különálló cetli lenne egy hirdetőtáblán kitűzve, nem egy
   ismétlődő minta. */
.pbgy-note-card-alt {
	margin-left: auto;
	margin-right: 0;
	transform: rotate(1.2deg);
}

.pbgy-notes-multi {
	display: flex;
	flex-direction: column;
	gap: 28px;
}

@media (max-width: 700px) {
	.pbgy-note-card,
	.pbgy-note-card-alt {
		transform: rotate(-0.8deg);
		max-width: 100%;
		margin-left: 0;
		margin-right: 0;
	}
}

/* Váltakozó fotó/szöveg sávok (split_row() helper) - a "közösségeink"
   szekció NEM négy egyenlő kártya rácsa (a leggenerikusabb AI-elrendezés),
   hanem négy, egyenként teljes súlyú, váltakozó irányú sáv - nagyobb
   jelenlétet ad mindegyik közösségnek. */
.pbgy-split-row {
	padding: 36px 0;
	border-top: 1px solid rgba(63, 73, 57, .12);
}

.pbgy-split-row:first-of-type {
	border-top: none;
}

/* A Facebook-kártya (panel(..., extra_class="pbgy-fb-card")) felülírja a fenti
   .pbgy-row > .e-con alap egyenlő-oszlopszélesség szabályát - a kártya a
   benne lévő rögzített szélességű beágyazásra simuljon. */
.pbgy-row > .pbgy-fb-card {
	flex: 0 1 auto;
	max-width: 420px;
}

@media (max-width: 700px) {
	.pbgy-row > .pbgy-fb-card {
		max-width: 100%;
	}
}

/* Dőlt, barna kiemelés egy-egy szónak a címsorokon belül (heading_rich()
   helper) - az egribaptista.hu mintájára (2026-09-11-i felhasználói kérés):
   egyetlen dőlt/színes szó sokkal "megtervezettebbé" teszi a címsort, mint
   az egységes vastag szöveg, tartalom-bővítés nélkül. Szándékosan csak
   néhány fő címsoron használjuk (nem mindegyiken) - lásd build_pages.py. */
.pbgy-accent {
	color: var(--pbgy-brown);
	font-style: italic;
}

/* Kompakt statisztika-sáv (stat_row() helper) - konkrét tények nagy Lora-
   számokkal/értékekkel, apró nagybetűs címkékkel (lásd egribaptista.hu
   "Alapítva / Alkalom hetente / Mindenki" mintája) - vizuális súlyt ad egy
   rövid szöveg-blokknak dísz-ikon és kártya-keret nélkül. */
.pbgy-stat-row {
	display: flex;
	flex-wrap: wrap;
	gap: 28px 48px;
	margin-top: 4px;
}

.pbgy-stat-col {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.pbgy-stat-label {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: var(--pbgy-brown);
}

.pbgy-stat-value {
	font-family: 'Lora', serif;
	font-size: 26px;
	font-weight: 700;
	color: var(--pbgy-green-dark);
	line-height: 1.15;
}

@media (max-width: 480px) {
	.pbgy-stat-row {
		gap: 20px 32px;
	}

	.pbgy-stat-value {
		font-size: 21px;
	}
}

/* Vízszintesen görgethető fotó-csík (gallery_strip() helper) - az
   egribaptista.hu "Pillanatok közösségünk életéből" galéria-carouselje
   ihlette (2026-09-11), de Elementor Pro slider-widget/JS-könyvtár nélkül:
   natív CSS scroll-snap, érintős/egérgörgetéssel. Szándékosan nincs
   nyíl-gomb - a natív görgetés/swipe elég, és nem igényel JS-t. */
.pbgy-gallery-strip {
	display: flex;
	gap: 20px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding: 4px 4px 12px;
	margin: 0 -4px;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	scrollbar-color: var(--pbgy-brown) transparent;
}

.pbgy-gallery-item {
	flex: 0 0 auto;
	width: 320px;
	scroll-snap-align: start;
}

.pbgy-gallery-item img {
	width: 100%;
	height: 220px;
	object-fit: cover;
	border-radius: 16px;
	display: block;
}

@media (max-width: 480px) {
	.pbgy-gallery-item {
		width: 78vw;
	}

	.pbgy-gallery-item img {
		height: 190px;
	}
}

.elementor-widget-image .elementor-widget-container,
.elementor-widget-image {
	height: auto;
}

.elementor-widget-image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 16px;
}

/* Fotó-helykitöltő (nincs még valódi fotóanyag - lásd README "Fotók"
   szakasz) - a koncepció kéri, hogy nagy, valódi gyülekezeti fotók legyenek
   a végleges oldalon. Egy lapos, kétszínű gradienssel + nagy, középre írt
   szöveggel ez nyilvánvalóan "hiányzó tartalomnak" hatna (pont az ellenkezője
   annak a magabiztos, fotó-vezérelt hatásnak, amit a referenciaoldalak
   adnak) - ezért többrétegű, szerves gradienssel, finom szemcse-textúrával
   és egy diszkrét sarok-címkével (nem nagy, középre helyezett mondattal)
   dolgozunk: úgy fest, mint egy szándékos, letisztult felület, nem mint egy
   üres doboz. Amint megjön a valódi fotóanyag, ez az egész blokk lecserélendő
   natív Elementor image widgetre. */
.pbgy-photo-placeholder {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	min-height: 320px;
	border-radius: 22px;
	background:
		radial-gradient(120% 90% at 12% 8%, rgba(255, 255, 255, .4), transparent 55%),
		radial-gradient(90% 90% at 88% 105%, rgba(63, 73, 57, .65), transparent 62%),
		linear-gradient(155deg, var(--pbgy-beige) 0%, var(--pbgy-green) 60%, var(--pbgy-green-dark) 100%);
}

.pbgy-photo-placeholder::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	opacity: .1;
	mix-blend-mode: overlay;
	pointer-events: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
	background-size: 160px 160px;
}

.pbgy-photo-placeholder-tag {
	position: relative;
	z-index: 1;
	margin: 16px;
	padding: 7px 14px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .16);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 1px solid rgba(255, 255, 255, .3);
	color: #ffffff;
	font-family: 'Inter', sans-serif;
	font-weight: 600;
	font-size: 11px;
	letter-spacing: 1.4px;
	text-transform: uppercase;
}

/* Egyszerű, kártya/ikon nélküli szöveges lista (Alkalmaink, Kisebb közösségeink) */
.pbgy-simple-list {
	list-style: none;
	margin: 0;
	padding: 0;
	max-width: var(--pbgy-max-width);
}

.pbgy-simple-list li {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: baseline;
	gap: 4px 24px;
	padding: 14px 0;
	border-bottom: 1px solid var(--pbgy-border);
}

.pbgy-simple-list li:last-child {
	border-bottom: none;
}

.pbgy-simple-list-title {
	font-weight: 700;
}

.pbgy-simple-list-desc {
	color: #6b6656;
}

/* Kapcsolat oldal "Lelkipásztor" sorában a tel:/mailto: linkek szín nélkül
   (csak az örökölt globális `a{color}`-ral) szinte megkülönböztethetetlenek
   voltak a köréjük eső leíró szövegtől (~1.6:1 kontraszt) - önreview során
   derült ki. Aláhúzás adja vissza a "ez kattintható" jelzést, ahogy a
   .pbgy-text-link is teszi máshol az oldalon. */
.pbgy-simple-list-desc a {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.pbgy-simple-list-stacked li {
	display: block;
}

.pbgy-simple-list-stacked .pbgy-simple-list-title {
	display: block;
	margin-bottom: 4px;
}

.pbgy-simple-list-stacked .pbgy-simple-list-desc {
	display: block;
	line-height: 1.6;
}

.pbgy-simple-list-on-dark .pbgy-simple-list-title {
	color: #ffffff;
}

.pbgy-simple-list-on-dark .pbgy-simple-list-desc {
	color: var(--pbgy-on-dark-text);
}

.pbgy-simple-list-on-dark li {
	border-bottom-color: rgba(255, 255, 255, 0.18);
}

/* Gyülekezeti hirdetőtábla (schedule_block() helper, .pbgy-noticeboard
   wrapper) - a felhasználó kérésére SZÁNDÉKOSAN NEM a lapon mindenhol
   ismétlődő fehér, lekerekített, árnyékos "kártya" - az önmagában is
   sablonossá vált. Sötét, enyhén texturált tábla ("felt board" hatás),
   szögletesebb sarkokkal, apró "kitűző" pöttyökkel, letter-board jellegű,
   ritkított nagybetűs napnevekkel - fizikai hirdetőtáblát idéz, nem
   webes UI-kártyát. */
.pbgy-noticeboard {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: var(--pbgy-green-dark);
	border-radius: 6px;
	padding: 40px 36px;
	box-shadow: 0 26px 50px -26px rgba(0, 0, 0, .5);
}

.pbgy-noticeboard::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	opacity: .1;
	mix-blend-mode: overlay;
	pointer-events: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
	background-size: 140px 140px;
}

.pbgy-noticeboard-pin {
	position: absolute;
	top: 16px;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var(--pbgy-brown);
	box-shadow: 0 2px 4px rgba(0, 0, 0, .4), inset 0 1px 1px rgba(255, 255, 255, .3);
}

.pbgy-noticeboard-pin:first-child {
	left: 20px;
}

.pbgy-noticeboard-pin:last-child {
	right: 20px;
}

.pbgy-noticeboard > .pbgy-schedule {
	position: relative;
	z-index: 1;
}

.pbgy-schedule-day {
	padding: 20px 0;
	border-bottom: 1px dashed rgba(217, 210, 191, .3);
}

.pbgy-schedule-day:first-child {
	padding-top: 6px;
}

.pbgy-schedule-day:last-child {
	border-bottom: none;
	padding-bottom: 6px;
}

.pbgy-schedule-day-name {
	display: block;
	margin-bottom: 12px;
	font-family: 'Inter', sans-serif;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--pbgy-beige);
}

.pbgy-schedule-item {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
	padding: 6px 0;
	font-size: 16px;
	color: #ffffff;
}

.pbgy-schedule-time {
	flex: none;
	font-family: 'Lora', serif;
	font-weight: 700;
	font-size: 17px;
	color: var(--pbgy-on-dark-text);
	font-variant-numeric: tabular-nums;
}

.elementor-shape-bottom {
	overflow: hidden;
}

/* Finom fényfolt + zaj-textúra a nagy, egyszínű sötétzöld sávokon (hero,
   záró CTA, Kapcsolat-fejléc - section(..., texture=True) a build_pages.py-ban).
   Eddig ez az osztály hivatkozva volt a generátorban, de sosem lett
   ténylegesen definiálva - a három legnagyobb felület, köztük a nyitókép
   háttere, emiatt teljesen lapos volt. Ugyanaz a bevált minta, mint a
   .pbgy-photo-placeholder / .pbgy-noticeboard textúrája. */
.pbgy-bg-texture {
	position: relative;
	isolation: isolate;
	overflow: hidden;
}

.pbgy-bg-texture::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	opacity: .14;
	mix-blend-mode: overlay;
	pointer-events: none;
	background-image:
		radial-gradient(65% 55% at 80% 0%, rgba(255, 255, 255, .3), transparent 60%),
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='150' height='150'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
	background-size: cover, 150px 150px;
}

/* Horgony-navigáció (Fő menü -> Kezdőlap #rolunk / #alkalmaink / ...) ne a
   fejléc alá görgessen be a szekció tetejére. */
.elementor-element[id] {
	scroll-margin-top: 150px;
}

a {
	color: var(--pbgy-green-dark);
}

/* ============================================================
   Scroll-animációk - progresszív fokozás.
   ============================================================
   A projekt korábban TUDATOSAN elkerülte az Elementor natív "Entrance
   Animation" funkcióját, mert az visibility:hidden-nel rejti el a
   tartalmat, amíg JS be nem lép a viewportba - ez valós (bár kicsi)
   kockázat JS nélküli/lassú böngészőknél, és megnehezíti a statikus
   tesztelést. Ezt a kockázatot itt megkerüljük: a .pbgy-reveal elemek
   ALAPÉRTELMEZETTEN teljesen láthatóak - csak akkor kapnak kezdeti
   rejtett állapotot, ha a <html> elem már megkapta a `.js` osztályt (ezt
   egy szinkron, a <head> elején futó apró script adja hozzá, lásd
   functions.php pbgy_js_class_bootstrap) ÉS a látogató nem kért csökkentett
   mozgást (prefers-reduced-motion). JS nélkül, vagy reduced-motion mellett
   a tartalom mindig azonnal, teljesen látható marad. */
@media (prefers-reduced-motion: no-preference) {
	.js .pbgy-reveal {
		opacity: 0;
		transform: translateY(22px);
		transition: opacity .7s cubic-bezier(.22, .61, .36, 1), transform .7s cubic-bezier(.22, .61, .36, 1);
		transition-delay: var(--pbgy-reveal-delay, 0ms);
	}

	.js .pbgy-reveal.is-visible {
		opacity: 1;
		transform: none;
	}

	.js .pbgy-reveal-scale {
		opacity: 0;
		transform: scale(.94);
		transition: opacity .7s ease, transform .7s ease;
		transition-delay: var(--pbgy-reveal-delay, 0ms);
	}

	.js .pbgy-reveal-scale.is-visible {
		opacity: 1;
		/* A --pbgy-parallax-y-t a hero-fotó parallax scriptje (functions.php
		   pbgy-parallax) írja - minden más .pbgy-reveal-scale elemnél nincs
		   beállítva, ott a var() fallback (0px) miatt ez pontosan úgy
		   viselkedik, mintha "transform: none" lenne. Így a belépő
		   nagyítás-animáció és a folyamatos görgetési parallax nem írja
		   felül egymást (mindkettő ugyanazt a transform-ot kezeli). */
		transform: translateY(var(--pbgy-parallax-y, 0px));
	}

	/* A nyitóblokk az első képernyőn van: ott nincs beúszás, különben a
	   böngésző csak az animáció végén festi ki a nyitóképet és a címet
	   (mobilon ez adta a lassú LCP-t). A parallax megmarad. */
	.js .pbgy-hero-row .pbgy-reveal,
	.js .pbgy-hero-row .pbgy-reveal-scale {
		opacity: 1;
		transform: translateY(var(--pbgy-parallax-y, 0px));
		transition: none;
	}
}

/* ---------- Topbar (wp_body_open-be akasztva, lásd functions.php) ---------- */

.pbgy-topbar {
	background: var(--pbgy-green-dark);
	color: var(--pbgy-on-dark-text);
	font-size: 13px;
}

.pbgy-topbar-inner {
	max-width: var(--pbgy-max-width);
	margin: 0 auto;
	padding: 8px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}

.pbgy-topbar a {
	color: var(--pbgy-on-dark-text);
	text-decoration: none;
}

.pbgy-topbar a:hover {
	color: #ffffff;
}

.pbgy-topbar-live {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: 700;
	color: #ffffff !important;
}

.pbgy-topbar-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #c96a4b;
	flex: none;
}

.pbgy-topbar-info {
	display: flex;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
}

.pbgy-topbar-info span {
	color: var(--pbgy-on-dark-text);
	opacity: .85;
}

.pbgy-topbar-info a,
.pbgy-topbar-info span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.pbgy-topbar .pbgy-icon {
	flex: none;
	opacity: .8;
}

@media (max-width: 700px) {
	.pbgy-topbar {
		display: none;
	}
}

/* ---------- Header (Hello Elementor natív dinamikus fejléce) ---------- */

/* Sötétzöld fejléc - NEM fehér. A topbar is, a legtöbb kezdőlap-szekció
   (hero, Találkozzunk) is sötétzöld - egy fehér fejléc a kettő között éles,
   oda nem illő törést adna ("szendvics" hatás). Így a topbar + fejléc +
   hero egybefüggő sávnak hat, a fehér csak a lapon belüli tartalmi
   szekcióknál jelenik meg, sosem a navigációs sávban. */
.site-header {
	background: var(--pbgy-green-dark);
	position: sticky;
	top: 0;
	z-index: 100;
	transition: background-color .25s ease, box-shadow .25s ease, backdrop-filter .25s ease;
}

/* Legördüléskor a tömör sötétzöld helyett finom "üveg" hatás - a lap
   tartalma áttűnik alatta, ami könnyebbnek, kortársabbnak hat, mint egy
   sima színes sáv. */
.site-header.is-scrolled {
	background: rgba(63, 73, 57, .82);
	backdrop-filter: blur(14px) saturate(140%);
	-webkit-backdrop-filter: blur(14px) saturate(140%);
	box-shadow: 0 8px 24px rgba(51, 52, 47, .18);
}

.site-header .header-inner {
	align-items: center;
	max-width: var(--pbgy-max-width);
	margin: 0 auto;
	padding: 10px 24px;
	gap: 16px;
	transition: padding .2s ease;
}

.site-header.is-scrolled .header-inner {
	padding-top: 4px;
	padding-bottom: 4px;
}

.site-logo {
	display: flex;
	align-items: center;
}

.site-logo img {
	width: 220px;
	max-width: 50vw;
	height: auto;
	transition: width .2s ease;
}

.site-header.is-scrolled .site-logo img {
	width: 140px;
}

.site-footer .site-logo img {
	width: 220px;
	max-width: 70vw;
}

.site-branding .site-title a {
	font-family: 'Lora', serif;
	font-size: 22px;
	font-weight: 700;
	color: #ffffff;
	text-decoration: none;
	line-height: 1.2;
}

.site-branding .site-description {
	margin: 2px 0 0;
	font-size: 13px;
	color: var(--pbgy-on-dark-text);
}

.site-header .site-navigation ul.menu li a {
	position: relative;
	display: inline-block;
	color: #ffffff;
	text-decoration: none;
	font-weight: 600;
	font-size: 15px;
	padding: 10px 16px;
	transition: color .15s ease, padding .2s ease;
}

.site-header.is-scrolled .site-navigation ul.menu li a {
	padding-top: 4px;
	padding-bottom: 4px;
}

.site-header .site-navigation ul.menu li a::after {
	content: "";
	position: absolute;
	left: 16px;
	right: 16px;
	bottom: 6px;
	height: 2px;
	background: var(--pbgy-beige);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .2s ease;
}

.site-header .site-navigation ul.menu li a:hover,
.site-header .site-navigation ul.menu li a:focus {
	color: var(--pbgy-beige);
}

.site-header .site-navigation ul.menu li a:hover::after,
.site-header .site-navigation ul.menu li a:focus::after {
	transform: scaleX(1);
}

/* Az utolsó menüpont (Kapcsolat) kiemelt CTA-gombként - barna, hogy a
   sötétzöld fejléc-háttértől is elváljon (egy azonos-tónusú zöld gomb
   szinte eltűnne rajta). */
.site-header .site-navigation ul.menu > li:last-child > a {
	background: var(--pbgy-brown);
	color: #ffffff;
	padding: 10px 20px;
	border-radius: 8px;
	margin-inline-start: 4px;
	transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, padding .2s ease;
}

.site-header.is-scrolled .site-navigation ul.menu > li:last-child > a {
	padding-top: 4px;
	padding-bottom: 4px;
}

.site-header .site-navigation ul.menu > li:last-child > a::after {
	display: none;
}

.site-header .site-navigation ul.menu > li:last-child > a:hover,
.site-header .site-navigation ul.menu > li:last-child > a:focus {
	color: #ffffff;
	background: #6b5847;
	transform: translateY(-2px);
	box-shadow: 0 12px 24px -10px rgba(0, 0, 0, .45);
}

.site-navigation-toggle-holder .site-navigation-toggle {
	background-color: var(--pbgy-brown);
	color: #fff;
	border-radius: 8px;
	padding: 10px;
}

.site-navigation-dropdown ul.menu li a {
	font-weight: 600;
	color: var(--pbgy-ink);
}

.site-navigation-dropdown ul.menu li.current-menu-item a {
	background: transparent;
	color: var(--pbgy-ink);
}

/* ---------- Footer ---------- */

.site-footer {
	background: var(--pbgy-green-dark);
	color: var(--pbgy-on-dark-text);
}

.pbgy-footer-inner {
	max-width: var(--pbgy-max-width);
	margin: 0 auto;
	padding: 48px 24px 28px;
	display: grid;
	/* Fix 3 oszlop (nem auto-fit) - a 3 dobozzal az auto-fit egy köztes
	   (kb. 600-900px-es) ablakszélességnél 2 oszlopra tört, és a harmadik
	   ("Kapcsolat") doboz egyedül, félig üresen lógott egy külön sorban -
	   pont ez adta az "össze-vissza" hatást. Explicit 3 oszlop + egyenes
	   ugrás 1 oszlopra (lásd lent) - nincs köztes, kényelmetlen állapot. */
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px;
}

@media (max-width: 700px) {
	.pbgy-footer-inner {
		grid-template-columns: 1fr;
	}
}

.pbgy-footer-mark {
	display: block;
	width: 44px;
	height: auto;
	margin-bottom: 14px;
}

.pbgy-footer-inner .pbgy-footer-title {
	color: #fff;
	font-family: 'Lora', serif;
	font-weight: 500;
	font-size: 17px;
	line-height: 1.2;
	letter-spacing: -.17px;
	margin: 0 0 14px;
}

.pbgy-footer-inner .pbgy-footer-title small {
	display: block;
	margin-top: 4px;
	color: var(--pbgy-on-dark-text);
	font-size: 13px;
	font-weight: 400;
	letter-spacing: .3px;
}

.pbgy-footer-inner p {
	margin: 0 0 8px;
	font-size: 14px;
	line-height: 1.6;
}

.pbgy-footer-inner a {
	color: #ffffff;
	text-decoration: none;
}

.pbgy-footer-inner a:hover {
	text-decoration: underline;
}

.pbgy-footer-inner a.pbgy-icon-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.pbgy-footer-inner .pbgy-icon {
	flex: none;
	opacity: .85;
}

.site-footer .site-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-footer .site-navigation li {
	margin-bottom: 8px;
}

/* ---------- Contact Form 7 ---------- */

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea {
	width: 100%;
	border: 1px solid var(--pbgy-border);
	border-radius: 8px;
	padding: 12px 14px;
	font-size: 15px;
	font-family: inherit;
}

.wpcf7-form input:focus,
.wpcf7-form textarea:focus {
	outline: 2px solid var(--pbgy-green);
	outline-offset: 1px;
}

.wpcf7-form input[type="submit"] {
	background: var(--pbgy-green);
	color: #fff;
	border: none;
	border-radius: 8px;
	padding: 14px 28px;
	font-weight: 700;
	font-size: 15px;
	cursor: pointer;
	transition: background-color .15s ease;
}

.wpcf7-form input[type="submit"]:hover {
	background: var(--pbgy-green-dark);
}

.wpcf7-form .wpcf7-not-valid-tip {
	font-size: 13px;
	color: #b3492f;
}

.wpcf7-form .wpcf7-response-output {
	margin: 16px 0 0;
	padding: 14px 18px;
	border: none !important;
	border-radius: 8px;
	background: #f6e9e2;
	color: #a8462b;
	font-size: 14px;
	font-weight: 600;
}

.wpcf7-form.sent .wpcf7-response-output {
	background: #e9ede4;
	color: #4c5a3f;
}

.pbgy-footer-bottom {
	max-width: var(--pbgy-max-width);
	margin: 0 auto;
	border-top: 1px solid rgba(255, 255, 255, .12);
	padding: 16px 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px 20px;
	flex-wrap: wrap;
	font-size: 13px;
	color: #c2bca6;
}

.pbgy-footer-bottom a {
	color: #c2bca6;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.pbgy-footer-bottom a:hover {
	color: #ffffff;
}

/* Galéria (/galeria/ archívum és albumoldal - inc/galeria.php,
   archive-album.php, single-album.php). */
body:not([class*=elementor-page-]) .site-main.pbgy-galeria {
	max-width: none;
	padding-inline: 0;
	background: var(--pbgy-paper);
	padding-bottom: 72px;
}

.pbgy-galeria-wrap {
	max-width: var(--pbgy-max-width);
	margin: 0 auto;
	padding: 0 24px;
}

.pbgy-galeria-hero {
	background: var(--pbgy-green-dark);
	color: var(--pbgy-on-dark-text);
	padding: 64px 0 56px;
	margin-bottom: 48px;
}

.pbgy-galeria-hero .pbgy-galeria-wrap {
	position: relative;
	z-index: 1;
}

.pbgy-galeria-hero h1 {
	font-family: 'Lora', serif;
	color: #ffffff;
	font-size: 52px;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -1.5px;
	margin: 0 0 12px;
}

.pbgy-galeria-hero p {
	margin: 0;
	font-size: 17px;
}

.pbgy-galeria-vissza {
	display: inline-block;
	margin-bottom: 18px;
	color: var(--pbgy-on-dark-text);
	font-weight: 600;
	font-size: 15px;
	text-decoration: none;
}

.pbgy-galeria-vissza:hover {
	color: #ffffff;
}

.pbgy-album-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 28px;
}

.pbgy-album-card {
	display: flex;
	flex-direction: column;
	background: var(--pbgy-white);
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 10px 30px -18px rgba(51, 52, 47, .45);
	color: var(--pbgy-ink);
	text-decoration: none;
	transition: transform .2s ease, box-shadow .2s ease;
}

.pbgy-album-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 16px 36px -18px rgba(51, 52, 47, .55);
	color: var(--pbgy-ink);
}

.pbgy-album-cover {
	display: block;
	width: 100%;
	height: 230px;
	min-height: 0;
	object-fit: cover;
	border-radius: 0;
}

.pbgy-album-play {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 1;
	width: 68px;
	height: 68px;
	margin: -34px 0 0 -34px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	box-shadow: 0 8px 24px -10px rgba(0, 0, 0, .5);
}

.pbgy-album-play::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	margin: -11px 0 0 -6px;
	border-style: solid;
	border-width: 11px 0 11px 18px;
	border-color: transparent transparent transparent var(--pbgy-green-dark);
}

.pbgy-album-body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 20px 22px 24px;
}

.pbgy-album-date,
.pbgy-album-meta {
	font-size: 13px;
	font-weight: 600;
	color: var(--pbgy-brown);
}

.pbgy-album-body h2 {
	font-family: 'Lora', serif;
	font-size: 23px;
	line-height: 1.25;
	color: var(--pbgy-green-dark);
	margin: 0;
}

.pbgy-album-body p {
	margin: 0;
	font-size: 15px;
	line-height: 1.55;
}

.pbgy-galeria .navigation.pagination {
	margin-top: 40px;
	text-align: center;
}

.pbgy-galeria-ures {
	font-size: 17px;
}

.pbgy-album-content {
	font-size: 17px;
	line-height: 1.65;
	color: var(--pbgy-ink);
}

.pbgy-album-content > * + * {
	margin-top: 28px;
}

.pbgy-album-content p {
	max-width: 760px;
}

.pbgy-album-content .wp-block-gallery.has-nested-images figure.wp-block-image img {
	border-radius: 12px;
}

.pbgy-album-content .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img {
	aspect-ratio: 1;
	height: auto;
}

.pbgy-album-content .wp-block-embed {
	max-width: 900px;
}

/* Telefonos, álló videók: ne töltsék ki a teljes oszlopszélességet. */
.pbgy-album-content .wp-block-video {
	margin: 0;
	text-align: center;
}

.pbgy-album-content .wp-block-video video {
	display: inline-block;
	width: auto;
	max-width: 100%;
	max-height: 560px;
	border-radius: 12px;
	background: var(--pbgy-green-dark);
}

.pbgy-album-content .pbgy-album-videok.wp-block-columns {
	justify-content: center;
	gap: 28px;
}

.pbgy-album-content .pbgy-album-videok > .wp-block-column {
	flex: 0 1 auto;
}

.pbgy-album-nav {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	margin-top: 56px;
	padding-top: 24px;
	border-top: 1px solid var(--pbgy-border);
	font-weight: 600;
}

.pbgy-gallery-item a {
	display: block;
}

.pbgy-gallery-more {
	margin: 18px 0 0;
}

.pbgy-gallery-more .pbgy-text-link,
.pbgy-gallery-more .pbgy-text-link:hover {
	color: var(--pbgy-green-dark);
	text-decoration-color: currentColor;
}

@media (max-width: 767px) {
	.pbgy-galeria-hero {
		padding: 44px 0 40px;
		margin-bottom: 32px;
	}

	.pbgy-galeria-hero h1 {
		font-size: 36px;
	}

	.pbgy-album-grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.pbgy-album-nav {
		flex-direction: column;
	}
}

/* 404 oldal (404.php) - a kezdőlap nyitóblokkjának nyelve, alatta hirdetőtábla. */
body:not([class*=elementor-page-]) .site-main.pbgy-404 {
	max-width: none;
	padding-inline: 0;
	background: var(--pbgy-paper);
	padding-bottom: 88px;
}

.pbgy-404-wrap {
	max-width: var(--pbgy-max-width);
	margin: 0 auto;
	padding: 0 24px;
}

.pbgy-404-hero {
	background: var(--pbgy-green-dark);
	color: var(--pbgy-on-dark-text);
	padding: 88px 0 96px;
}

.pbgy-404-hero .pbgy-404-wrap {
	position: relative;
	z-index: 1;
}

.pbgy-404-hero > .pbgy-404-wrap > * {
	max-width: 720px;
}

.pbgy-404-eyebrow {
	margin: 0 0 18px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	color: #d8c3a5;
}

.pbgy-404-hero h1 {
	font-family: 'Lora', serif;
	color: #ffffff;
	font-size: 60px;
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: -2px;
	margin: 0 0 22px;
}

.pbgy-404-hero p {
	margin: 0 0 10px;
	font-size: 17px;
}

.pbgy-404-cselekves {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 18px 28px;
	margin-top: 30px;
}

.pbgy-404-gomb {
	display: inline-block;
	padding: 15px 30px;
	border-radius: 4px;
	background: var(--pbgy-brown);
	color: #ffffff;
	font-family: 'Lora', serif;
	font-size: 16px;
	font-weight: 500;
	text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}

.pbgy-404-gomb:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 28px -12px var(--pbgy-brown);
	opacity: .94;
	color: #ffffff;
}

.pbgy-404-gomb:active {
	transform: translateY(0) scale(.98);
}

.pbgy-404-tovabb {
	display: grid;
	grid-template-columns: 5fr 7fr;
	gap: 48px;
	align-items: center;
	margin-top: 72px;
}

.pbgy-404-tovabb-fej h2 {
	font-family: 'Lora', serif;
	font-size: 40px;
	line-height: 1.1;
	letter-spacing: -1px;
	color: var(--pbgy-green-dark);
	margin: 0 0 12px;
}

.pbgy-404-tovabb-fej p {
	margin: 0;
	font-size: 17px;
	color: var(--pbgy-ink);
}

.pbgy-404-link {
	text-decoration: none;
	padding: 10px 0;
	border-bottom: 1px dashed rgba(217, 210, 191, .18);
}

.pbgy-404-link:last-child {
	border-bottom: none;
}

.pbgy-404-link strong {
	font-weight: 600;
	color: #ffffff;
}

.pbgy-404-link small {
	display: block;
	margin-top: 2px;
	font-size: 14px;
	color: var(--pbgy-on-dark-text);
}

.pbgy-404-link .pbgy-schedule-time {
	transition: transform .18s ease, color .18s ease;
}

.pbgy-404-link:hover .pbgy-schedule-time,
.pbgy-404-link:focus-visible .pbgy-schedule-time {
	transform: translateX(4px);
	color: #ffffff;
}

@media (max-width: 900px) {
	.pbgy-404-tovabb {
		grid-template-columns: 1fr;
		gap: 28px;
		margin-top: 48px;
	}
}

@media (max-width: 767px) {
	.pbgy-404-hero {
		padding: 56px 0 64px;
	}

	.pbgy-404-hero h1 {
		font-size: 38px;
		letter-spacing: -1px;
	}

	.pbgy-404-tovabb-fej h2 {
		font-size: 30px;
	}
}

/* Kapcsolati űrlap: az adatkezelési hozzájárulás jelölőnégyzete (bin/create-contact-form.php). */
.wpcf7-acceptance label {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	font-size: 15px;
	line-height: 1.5;
	cursor: pointer;
}

.wpcf7-acceptance input[type="checkbox"] {
	flex: none;
	width: 20px;
	height: 20px;
	margin: 2px 0 0;
	accent-color: var(--pbgy-green-dark);
}

.wpcf7-acceptance a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Adatkezelési tájékoztató (a WP az adatvédelmi oldalra privacy-policy body-osztályt tesz): olvasható sorhossz. */
body.privacy-policy .site-main {
	max-width: 780px;
	padding-top: 48px;
	padding-bottom: 72px;
}

body.privacy-policy .site-main h1 {
	color: var(--pbgy-green-dark);
	font-size: 44px;
	letter-spacing: -1px;
}

body.privacy-policy .site-main h2 {
	color: var(--pbgy-green-dark);
	font-size: 24px;
	margin: 40px 0 12px;
}

body.privacy-policy .site-main li {
	margin-bottom: 8px;
}

body.privacy-policy .site-main a {
	color: var(--pbgy-green-dark);
	text-decoration: underline;
	text-underline-offset: 3px;
}

@media (max-width: 767px) {
	body.privacy-policy .site-main h1 {
		font-size: 32px;
	}
}

/* Élő istentisztelet blokk (inc/elo.php, [pbgy_elo_istentisztelet]). */
.pbgy-elo-fej {
	max-width: 760px;
	margin-bottom: 32px;
}

.pbgy-elo-eyebrow {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 10px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	color: var(--pbgy-brown);
}

.pbgy-elo-fej h2 {
	font-family: 'Lora', serif;
	font-size: 34px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -1px;
	color: var(--pbgy-green-dark);
	margin: 0 0 12px;
}

.pbgy-elo-fej p:last-child {
	margin: 0;
	font-size: 17px;
	line-height: 1.6;
}

.pbgy-elo-racs {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr);
	gap: 28px;
	align-items: stretch;
}

.pbgy-elo-player {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	padding: 0;
	border: 0;
	border-radius: 18px;
	overflow: hidden;
	background: var(--pbgy-green-dark);
	cursor: pointer;
	box-shadow: 0 18px 40px -22px rgba(51, 52, 47, .6);
}

.pbgy-elo-player img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .4s ease;
}

.pbgy-elo-player:hover img {
	transform: scale(1.02);
}

.pbgy-elo-player::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, .35) 0%, transparent 35%, transparent 60%, rgba(0, 0, 0, .35) 100%);
	pointer-events: none;
}

.pbgy-elo-play {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 1;
	width: 84px;
	height: 84px;
	margin: -42px 0 0 -42px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .94);
	box-shadow: 0 10px 30px -10px rgba(0, 0, 0, .6);
	transition: transform .2s ease;
}

.pbgy-elo-player:hover .pbgy-elo-play {
	transform: scale(1.06);
}

.pbgy-elo-play::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	margin: -14px 0 0 -8px;
	border-style: solid;
	border-width: 14px 0 14px 23px;
	border-color: transparent transparent transparent var(--pbgy-green-dark);
}

.pbgy-elo-badge {
	position: absolute;
	top: 16px;
	left: 16px;
	z-index: 1;
	padding: 6px 12px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .92);
	color: var(--pbgy-green-dark);
	font-size: 13px;
	font-weight: 700;
}

.pbgy-elo-badge.is-live,
.pbgy-elo-pont {
	background: #c8372d;
	color: #ffffff;
}

.pbgy-elo-badge.is-live {
	text-transform: uppercase;
	letter-spacing: 1.5px;
}

.pbgy-elo-badge.is-live::before {
	content: "● ";
	animation: pbgy-elo-villog 1.4s ease-in-out infinite;
}

.pbgy-elo-pont {
	display: inline-block;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	animation: pbgy-elo-villog 1.4s ease-in-out infinite;
}

@keyframes pbgy-elo-villog {
	50% {
		opacity: .35;
	}
}

.pbgy-elo-live-cim {
	position: absolute;
	inset: auto 20px 20px;
	z-index: 1;
	color: #ffffff;
	font-family: 'Lora', serif;
	font-size: 20px;
	text-align: left;
}

.pbgy-elo-frame {
	cursor: auto;
}

.pbgy-elo-frame iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

.pbgy-elo-player.is-ures {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	cursor: auto;
	color: var(--pbgy-on-dark-text);
	text-align: center;
}

.pbgy-elo-player.is-ures a {
	color: #ffffff;
}

.pbgy-elo-felirat {
	margin: 14px 4px 0;
	font-size: 15px;
	color: var(--pbgy-ink);
}

.pbgy-elo-kartya {
	display: flex;
	border-radius: 18px;
	background: var(--pbgy-green-dark);
	color: var(--pbgy-on-dark-text);
	aspect-ratio: auto;
}

.pbgy-elo-kartya-belso {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 14px;
	width: 100%;
	padding: 32px 28px;
	text-align: center;
}

.pbgy-elo-kartya .pbgy-elo-eyebrow {
	justify-content: center;
	margin: 0;
	color: #d8c3a5;
}

.pbgy-elo-szamlalo {
	display: flex;
	justify-content: center;
	gap: 14px;
}

.pbgy-elo-szamlalo span {
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 48px;
}

.pbgy-elo-szamlalo b {
	font-family: 'Lora', serif;
	font-size: 40px;
	font-weight: 700;
	line-height: 1;
	color: #ffffff;
	font-variant-numeric: tabular-nums;
}

.pbgy-elo-szamlalo small {
	margin-top: 6px;
	font-size: 11px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
}

.pbgy-elo-ido {
	margin: 0;
	font-size: 15px;
}

.pbgy-elo-kartya .pbgy-text-link {
	justify-content: center;
	font-size: 14px;
}

.pbgy-elo-ma,
.pbgy-elo-csak-elo,
.pbgy-elo.is-hamarosan .pbgy-elo-szamlalo,
.pbgy-elo.is-live .pbgy-elo-csak-nem-elo {
	display: none;
}

.pbgy-elo.is-hamarosan:not(.is-live) .pbgy-elo-ma {
	display: block;
	margin: 0;
	color: #ffffff;
	font-family: 'Lora', serif;
	font-size: 20px;
}

.pbgy-elo.is-live .pbgy-elo-csak-elo {
	display: flex;
}

@media (max-width: 900px) {
	.pbgy-elo-racs {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 767px) {
	.pbgy-elo-fej h2 {
		font-size: 24px;
	}

	.pbgy-elo-fej p:last-child {
		font-size: 16px;
	}

	.pbgy-elo-play {
		width: 64px;
		height: 64px;
		margin: -32px 0 0 -32px;
	}

	.pbgy-elo-szamlalo b {
		font-size: 32px;
	}
}

/* Kattintásra betöltődő térkép (inc/terkep.php, [pbgy_terkep]) - addig egy
   CSS-ből rajzolt, utcahálózatot idéző háttér, külső kép nélkül. */
.pbgy-terkep {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 420px;
	border-radius: 18px;
	overflow: hidden;
	background-color: #e9e2d2;
	background-image:
		radial-gradient(circle at 50% 46%, rgba(247, 244, 236, .95) 0, rgba(247, 244, 236, .75) 26%, transparent 52%),
		linear-gradient(28deg, transparent 47%, rgba(255, 255, 255, .9) 47.5%, rgba(255, 255, 255, .9) 49%, transparent 49.5%),
		linear-gradient(118deg, transparent 58%, rgba(255, 255, 255, .8) 58.4%, rgba(255, 255, 255, .8) 59.4%, transparent 59.8%),
		repeating-linear-gradient(0deg, transparent 0 46px, rgba(104, 116, 91, .13) 46px 48px),
		repeating-linear-gradient(90deg, transparent 0 64px, rgba(104, 116, 91, .13) 64px 66px),
		linear-gradient(160deg, #e8e0d2, #dcd6c2);
	box-shadow: 0 18px 40px -26px rgba(51, 52, 47, .55);
}

.pbgy-terkep-belso {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	max-width: 440px;
	padding: 28px 24px;
	text-align: center;
}

.pbgy-terkep-pin {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: var(--pbgy-green-dark);
	color: #ffffff;
	box-shadow: 0 10px 24px -10px rgba(63, 73, 57, .8);
}

.pbgy-terkep-cim {
	margin: 0;
	font-family: 'Lora', serif;
	font-size: 22px;
	font-weight: 700;
	color: var(--pbgy-green-dark);
}

.pbgy-terkep-gombok {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 12px 20px;
}

.pbgy-terkep-gomb {
	padding: 12px 22px;
	border: 0;
	border-radius: 8px;
	background: var(--pbgy-brown);
	color: #ffffff;
	font-family: 'Inter', sans-serif;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
	transition: background .2s ease;
}

.pbgy-terkep-gomb:hover,
.pbgy-terkep-gomb:focus-visible {
	background: var(--pbgy-green-dark);
}

.pbgy-terkep-link {
	color: var(--pbgy-green-dark);
	font-weight: 600;
	font-size: 15px;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.pbgy-terkep-megj {
	margin: 0;
	font-size: 12.5px;
	line-height: 1.5;
	color: #6b6a60;
}

.pbgy-terkep.is-betoltve {
	display: block;
	background: var(--pbgy-beige);
}

.pbgy-terkep iframe {
	display: block;
	width: 100%;
	height: 420px;
	border: 0;
}

@media (max-width: 767px) {
	.pbgy-terkep,
	.pbgy-terkep iframe {
		min-height: 340px;
		height: auto;
	}

	.pbgy-terkep iframe {
		height: 340px;
	}
}

/* ---------- Nyitóblokk: az istentisztelet ideje és helye ---------- */

.pbgy-hero-info {
	margin-top: 4px;
	font-size: 15px;
	font-weight: 600;
	color: #ffffff;
}

/* ---------- Érintési célméretek (min. 44 px, mobil) ---------- */

.site-navigation-toggle-holder .site-navigation-toggle {
	min-width: 44px;
	min-height: 44px;
}

.pbgy-text-link,
.pbgy-galeria-vissza {
	min-height: 44px;
}

.pbgy-galeria-vissza {
	display: inline-flex;
	align-items: center;
	margin-bottom: 8px;
}

.pbgy-album-content .lightbox-trigger {
	width: 44px;
	height: 44px;
}

.pbgy-note-card .elementor-button,
.pbgy-footer-inner a.pbgy-icon-link,
.pbgy-terkep-link,
.pbgy-gallery-more .pbgy-text-link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
}

.pbgy-note-card .elementor-button {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

.elementor-social-icon {
	min-width: 44px;
	min-height: 44px;
	justify-content: center;
	align-items: center;
	display: inline-flex;
}

.wp-lightbox-overlay .wp-lightbox-close-button {
	min-width: 44px;
	min-height: 44px;
}
