/*
 * Gyülekezeti naptár – nyilvános megjelenés (spec 8.9). Minden szabály a .gyn gyökérosztályon belül, hogy a téma
 * általános szabályai ne rontsák el a szerkezetet. A színek és méretek CSS-változókkal felülírhatók; ahol a szín a
 * téma palettájának színe, a változó a téma változója a bővítmény saját színével tartalékként (2026-10-10). A betűtípust
 * a témától örökli (@font-face nincs; az egyetlen betűcsalád-utalás a havi ige var(--wp--preset--font-family--literata, inherit) értéke).
 */
.gyn {
	--gyn-muted: #5f6368;
	--gyn-border: #d0d4d9;
	--gyn-bg: var(--wp--preset--color--feher, #ffffff);
	--gyn-text: #1f2937;
	--gyn-button-bg: #1f2937;
	--gyn-button-text: var(--wp--preset--color--feher, #ffffff);
	/* A fókuszgyűrű a téma gyűrűjét követi (a téma a webhely kinézetének gazdája): a téma Búzaarany palettaszíne, téma nélkül a kék. */
	--gyn-focus: var(--wp--preset--color--buzaarany, #1a73e8);
	/* A --gyn-link nincs itt: megadva a részletek hivatkozásainak színe lesz, különben a környező szövegé. */
	--gyn-featured: #c62828;
	--gyn-verse-bg: #f1f8e9;
	--gyn-verse-accent: #7cb342;
	--gyn-radius: 8px;
	--gyn-gap: 0.75rem;
	box-sizing: border-box;
	line-height: 1.45;
}

.gyn *,
.gyn *::before,
.gyn *::after {
	box-sizing: inherit;
}

.gyn [hidden],
.gyn-next [hidden] {
	display: none !important;
}

.gyn .gyn-type {
	display: inline-block;
	padding: 0.1em 0.55em;
	border-radius: 999px;
	background: var(--gyn-color, #9e9e9e);
	color: var(--gyn-color-text, #000000);
	font-size: 0.85em;
	font-weight: 600;
	line-height: 1.5;
}

.gyn .gyn-subtitle {
	font-weight: 600;
}

.gyn .gyn-featured .gyn-subtitle,
.gyn .gyn-subtitle.gyn-featured {
	color: var(--gyn-featured);
}

.gyn .gyn-cancelled .gyn-title,
.gyn .gyn-cancelled .gyn-when {
	text-decoration: line-through;
}

.gyn .gyn-cancel-mark,
.gyn .gyn-communion-mark {
	display: inline-block;
	margin-left: 0.4em;
	padding: 0 0.4em;
	border: 1px solid currentColor;
	border-radius: 4px;
	font-size: 0.8em;
	font-weight: 600;
	text-decoration: none;
}

/* Az úrvacsora (spec 6.12): a címke az „Elmarad” párja, saját (Búzaarany) színnel; a felirat a részletekben és a listákban a cím alatt. */
.gyn .gyn-communion-mark {
	color: var(--gyn-cal-communion, #6b4f12);
}

.gyn .gyn-communion {
	margin: 0.15rem 0 0.35rem;
	font-weight: 700;
	color: var(--gyn-cal-communion, #6b4f12);
}

.gyn .gyn-sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* Felugró ablak és részletek (spec 8.5) */
.gyn-dialog {
	width: min(36rem, calc(100vw - 2rem));
	/* A vh tartalék; a dvh a telefonon a böngészősávok nélküli látható magasság (a vh ilyenkor magasabb nála). */
	max-height: calc(100vh - 2rem);
	max-height: calc(100dvh - 2rem);
	padding: 0;
	overflow: auto;
	overscroll-behavior: contain;
	border: 0;
	border-radius: var(--gyn-radius);
	background: var(--gyn-bg);
	color: var(--gyn-text);
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.3);
}

.gyn-dialog::backdrop {
	background: rgba(0, 0, 0, 0.5);
}

/*
 * A bezárás gomb egy nulla magasságú, ragadós sávban ül, így a hosszú ablak görgetésekor is a jobb felső sarokban
 * marad (a sáv tartalmazó blokkja a teljes tartalmat magába foglaló .gyn-dialog-box, ezért a görgetés végéig tapad).
 * A gomb átlátszatlan és sötét gyűrűs: a × jel mindig a töltésen áll, a gomb széle pedig bármilyen képtől legalább
 * 3:1 kontrasztú, mert a világos képtől a gyűrű, a sötéttől a töltés választja el; az ablak hátterétől is a gyűrű.
 */
.gyn-dialog .gyn-dialog-bar {
	position: sticky;
	top: 0;
	z-index: 1;
	height: 0;
}

.gyn-dialog .gyn-dialog-body {
	padding: 1.25rem;
}

.gyn-dialog .gyn-dialog-close {
	position: absolute;
	top: 0.4rem;
	right: 0.4rem;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--gyn-text);
	border-radius: 50%;
	background: var(--gyn-bg);
	color: var(--gyn-text);
	font-size: 1.75rem;
	line-height: 1;
	cursor: pointer;
}

.gyn-dialog .gyn-dialog-close:focus-visible,
.gyn a:focus-visible,
.gyn button:focus-visible {
	outline: 3px solid var(--gyn-focus);
	outline-offset: 3px;
}

.gyn .gyn-detail > * {
	margin: 0 0 0.6rem;
}

/* Az ablakban az első sor (a típus) ne fusson a bezárás gomb alá. */
.gyn-dialog .gyn-detail .gyn-meta {
	margin-right: 44px;
}

.gyn .gyn-detail .gyn-title {
	font-size: 1.35em;
	line-height: 1.25;
}

.gyn .gyn-media img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: calc(var(--gyn-radius) / 2);
}

.gyn .gyn-when,
.gyn .gyn-where {
	color: var(--gyn-muted);
}

.gyn .gyn-fields {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 0.25rem 0.75rem;
}

.gyn .gyn-fields dt {
	font-weight: 600;
}

.gyn .gyn-fields dd {
	margin: 0;
}

/* A nem nyilvános mező felirata (pl. „Úrvacsorai alkalom”, spec 6.5): a mezők után, címke nélkül. */
.gyn .gyn-field-caption {
	margin: 0.25rem 0 0;
	font-weight: 600;
}

/*
 * Hivatkozások a részletekben (az ablakban és az előfordulás oldalán): a téma kiemelő színe halvány is lehet, ezért
 * alapból a környező szöveg színét kapják, aláhúzva; a --gyn-link átállítja. A „Részletek” gomb kimarad (a :not-tal,
 * hogy a :visited, :hover és :focus állapotban se írja felül a gomb fehér feliratát). A listák, a kártyák és a
 * naptár hivatkozásait ez nem érinti.
 */
.gyn .gyn-detail a:not(.gyn-button),
.gyn .gyn-detail a:not(.gyn-button):visited,
.gyn .gyn-detail a:not(.gyn-button):hover,
.gyn .gyn-detail a:not(.gyn-button):focus {
	color: var(--gyn-link, inherit);
	text-decoration: underline;
}

.gyn .gyn-button {
	display: inline-block;
	min-height: 44px;
	padding: 0.65rem 1.1rem;
	border-radius: var(--gyn-radius);
	background: var(--gyn-button-bg);
	color: var(--gyn-button-text);
	font-weight: 600;
	text-decoration: none;
}

/* Listák (spec 8.2). A szerkezeti alapértékek erősek, hogy a téma listastílusa ne rontsa el őket. */
.gyn .gyn-list,
.gyn .gyn-compact,
.gyn .gyn-dates {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

/* A flow-root a sorból kinyúló, jobbra úsztatott képet is a sorba zárja (a [hidden] !important szabálya fölötte áll). */
.gyn .gyn-list > .gyn-item {
	display: flow-root;
	padding: 0.75rem 0;
	border-bottom: 1px solid var(--gyn-border);
}

.gyn .gyn-list > .gyn-item > *,
.gyn .gyn-card-body > * {
	margin: 0 0 0.3rem;
}

.gyn .gyn-heading {
	font-weight: 600;
}

.gyn a.gyn-title {
	text-decoration: none;
}

.gyn a.gyn-title:hover,
.gyn a.gyn-title:focus {
	text-decoration: underline;
}

/* Az elmaradt alkalom címe fölé víve vagy fókuszban is áthúzott marad (a fenti szabály különben felülírná). */
.gyn .gyn-cancelled a.gyn-title:hover,
.gyn .gyn-cancelled a.gyn-title:focus {
	text-decoration: line-through underline;
}

.gyn .gyn-compact > .gyn-item,
.gyn .gyn-dates > .gyn-item {
	padding: 0.35rem 0;
}

.gyn .gyn-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
	gap: var(--gyn-gap);
}

.gyn .gyn-cards > .gyn-item {
	overflow: hidden;
	border: 1px solid var(--gyn-border);
	border-radius: var(--gyn-radius);
	background: var(--gyn-bg);
	color: var(--gyn-text);
}

.gyn .gyn-card-body {
	padding: 0.9rem;
}

.gyn .gyn-cards .gyn-media img {
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 0;
}

.gyn .gyn-list .gyn-media {
	float: right;
	width: 6rem;
	margin: 0 0 0.5rem 0.75rem;
}

/*
 * Alkalom kártya, kiemelt alkalom, havi ige (spec 8.2, 10.2). A gyökerek a .gyn osztállyal együtt állnak (.gyn.gyn-verse),
 * hogy egy témaszabály (pl. .entry-content figure) ne előzze meg őket.
 */
.gyn.gyn-event-card,
.gyn .gyn-featured-list > .gyn-item {
	overflow: hidden;
	border: 1px solid var(--gyn-border);
	border-radius: var(--gyn-radius);
	background: var(--gyn-bg);
	color: var(--gyn-text);
}

/* Két egymás utáni kártya (vagy kártya és ige) nem tapad össze. */
.gyn.gyn-event-card,
.gyn.gyn-featured-box {
	margin: 0 0 var(--gyn-gap);
}

.gyn.gyn-event-card .gyn-media img,
.gyn .gyn-featured-list .gyn-media img {
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 0;
}

.gyn .gyn-featured-list > .gyn-item .gyn-heading {
	font-size: 1.5em;
	line-height: 1.2;
}

/* Több kiemelt kártya (darab="2" vagy "3") közt hely marad; a rejtett tartalékok (display: none) nem foglalnak helyet. */
.gyn .gyn-featured-list {
	display: grid;
	gap: var(--gyn-gap);
}

.gyn.gyn-verse {
	margin: 0 0 var(--gyn-gap);
	padding: 0.9rem 1rem;
	border-left: 4px solid var(--gyn-verse-accent);
	background: var(--gyn-verse-bg);
	color: var(--gyn-text);
}

/*
 * A téma idézetstílusa (egy téma sávot és behúzást, egy másik idézőjel-díszt adhat a blockquote-nak) ne kerüljön
 * a havi ige saját sávja mellé.
 */
.gyn.gyn-verse .gyn-verse-text,
.gyn.gyn-verse .gyn-verse-text p {
	margin: 0;
	padding: 0;
	border: 0;
	quotes: none;
	font-style: italic;
}

.gyn.gyn-verse .gyn-verse-text::before,
.gyn.gyn-verse .gyn-verse-text::after,
.gyn.gyn-verse .gyn-verse-text p::before,
.gyn.gyn-verse .gyn-verse-text p::after {
	content: none;
}

.gyn.gyn-verse .gyn-verse-ref {
	margin-top: 0.3rem;
	font-weight: 600;
}

/*
 * A hivatkozás a környező szöveg színét kapja (itt a --gyn-text-et), aláhúzva, minden állapotban: a téma kiemelő színe a
 * világoszöld háttéren gyenge kontrasztú. A --gyn-link átállítja.
 */
.gyn.gyn-verse .gyn-verse-ref a,
.gyn.gyn-verse .gyn-verse-ref a:visited,
.gyn.gyn-verse .gyn-verse-ref a:hover,
.gyn.gyn-verse .gyn-verse-ref a:focus {
	color: var(--gyn-link, inherit);
	text-decoration: underline;
}

/*
 * A kártyák (az Alkalom kártya blokk, a Következő alkalmak blokk kártyái) és a kiemelt alkalom saját világos háttérrel és szövegszínnel jelennek meg
 * (var(--gyn-bg), var(--gyn-text)), ezért a bennük lévő hivatkozások (cím, dátumok, „Útvonal”) színéért is a bővítmény felel: a téma halvány
 * kiemelő színe ezeken a fehér felületeken nem olvasható. Alapból a környező szöveg színét kapják, minden állapotban; a --gyn-link átállítja.
 * A „Részletek” gomb kimarad (saját színe van). A cím nem aláhúzott (fölé víve igen, l. fent), a többi hivatkozás aláhúzott.
 */
.gyn.gyn-event-card a:not(.gyn-button),
.gyn.gyn-event-card a:not(.gyn-button):visited,
.gyn.gyn-event-card a:not(.gyn-button):hover,
.gyn.gyn-event-card a:not(.gyn-button):focus,
.gyn .gyn-cards > .gyn-item a:not(.gyn-button),
.gyn .gyn-cards > .gyn-item a:not(.gyn-button):visited,
.gyn .gyn-cards > .gyn-item a:not(.gyn-button):hover,
.gyn .gyn-cards > .gyn-item a:not(.gyn-button):focus,
.gyn .gyn-featured-list > .gyn-item a:not(.gyn-button),
.gyn .gyn-featured-list > .gyn-item a:not(.gyn-button):visited,
.gyn .gyn-featured-list > .gyn-item a:not(.gyn-button):hover,
.gyn .gyn-featured-list > .gyn-item a:not(.gyn-button):focus {
	color: var(--gyn-link, inherit);
}

.gyn.gyn-event-card a:not(.gyn-button):not(.gyn-title),
.gyn .gyn-cards > .gyn-item a:not(.gyn-button):not(.gyn-title),
.gyn .gyn-featured-list > .gyn-item a:not(.gyn-button):not(.gyn-title) {
	text-decoration: underline;
}

/*
 * Naptár (spec 8.4; 3f, a vászon „A – Naptárlap” iránya). A naptár egy fehér, lekerekített, árnyékos lap; felül világos fejléc. Alapból lista
 * (telefon): naponként egy sor, csak az alkalommal vagy címkével bíró napok, a szomszéd hónapok napjai nélkül. Ha a naptár konténere legalább
 * 700 px széles (nem a lapé: a konténer dönt), havi rács hétfőtől vasárnapig, teljes téglalapként (a szomszéd napok halványan). A nezet="honap"
 * keskeny helyen is rácsot ad (kisebb cellákkal), a nezet="lista" széles helyen is listát. A gyökér .gyn-nel együtt áll (.gyn.gyn-calendar),
 * hogy egy témaszabály ne előzze meg. A betű a témáé (a havi igéé a téma Literatája); a színek a gyökér saját, --gyn-cal-* változói.
 */
.gyn.gyn-calendar {
	/* A naptár saját színei (3f, „A”; az új dizájn „Vászon” palettája): CSS-változóval felülírhatók (spec 8.9); ahol a szín a téma palettájáé, a téma változója, tartalékkal. */
	--gyn-cal-cell: var(--wp--preset--color--feher, #ffffff);
	--gyn-cal-text: var(--wp--preset--color--tinta, #1a2a20);
	--gyn-cal-muted: var(--wp--preset--color--szurkezold, #4f5e52);
	--gyn-cal-title: var(--wp--preset--color--melyzold, #1f3a2b);
	--gyn-cal-number: #5f6e62;
	--gyn-cal-line: #ece7da;
	--gyn-cal-pager-line: #d6e2d0;
	--gyn-cal-weekend: #fcfaf5;
	/* A szomszéd hónap jövőbeli napja; a múltbeli (a szomszédé is) halvány szürke, a hétvégéétől jól elkülönül (spec 8.4, „Múltbeli napok”). */
	--gyn-cal-other: #fafaf7;
	--gyn-cal-past: #f5f6f2;
	/* A múltbeli és a szomszéd napok szövege és száma szándékosan halvány: kb. 3:1, az AA (4,5:1) alatt (a felhasználó döntése, 2026-10-16; spec 8.4). */
	--gyn-cal-past-text: #868e88;
	--gyn-cal-past-number: #868e88;
	/* A múltbeli és a szomszéd napok bejegyzéseinek betűje a halvány címkén (Render\Palette::PAST_INK; minden címkeszínen legalább 3:1, 2026-10-16). */
	--gyn-cal-past-ink: #7d857f;
	--gyn-cal-cancel: #8a2a14;
	--gyn-cal-cancel-bg: #fbe4da;
	--gyn-cal-cancel-past: #7e3b2b;
	--gyn-cal-cancel-past-bg: #f1e4df;
	/* Az úrvacsora (3e): a címke és a felirat betűje, a Búzaarany sötét árnyalata; a kerete (3f) a Búzaarany halvány árnyalata. */
	--gyn-cal-communion: #6b4f12;
	--gyn-cal-communion-line: #d9bf84;
	--gyn-cal-accent: var(--wp--preset--color--zold, #2f6b45);
	--gyn-cal-accent-dark: var(--wp--preset--color--zold-sotet, #245537);
	--gyn-cal-accent-text: var(--wp--preset--color--feher, #ffffff);
	container-type: inline-size;
	/* A konténer-méretezés miatt a gyökér saját tartalmi szélessége nulla: úszó, inline-block vagy rugalmas szülőben összeesne. */
	width: 100%;
	overflow: hidden;
	color: var(--gyn-cal-text);
	background: var(--gyn-cal-cell);
	border-radius: clamp(20px, 2vw, 24px);
	box-shadow: 0 1px 2px rgba(10, 20, 14, 0.06), 0 18px 48px rgba(10, 20, 14, 0.13);
}

/* A fejléc (spec 8.4; 3f): világos, a lap tetején. Keskenyen a hónap neve és a lapozó egy sorban, alattuk középen a havi ige. */
.gyn.gyn-calendar .gyn-calendar-band {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.375rem 1.5rem;
	padding: 0.75rem;
	color: var(--gyn-cal-text);
	background: var(--gyn-cal-cell);
}

.gyn.gyn-calendar .gyn-calendar-head {
	display: flex;
	flex: 1 1 100%;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem 1.125rem;
	margin: 0;
}

/*
 * A fejléc, a napok fejléce, a címkék és az üres hónap szövege címsor vagy bekezdés: a margójukat a bővítmény adja (a téma általános margója
 * nem torzíthatja). A hónap neve Mélyzöld, nem a téma címsorszíne.
 */
.gyn.gyn-calendar .gyn-month-title {
	margin: 0;
	font-size: 1.3125rem;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--gyn-cal-title);
	white-space: nowrap;
}

.gyn.gyn-calendar .gyn-pager {
	display: flex;
	gap: 0.5rem;
}

.gyn.gyn-calendar .gyn-pager a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 1.125rem;
	border: 1.5px solid var(--gyn-cal-pager-line);
	border-radius: 999px;
	font-size: 0.9375rem;
	font-weight: 700;
	text-decoration: none;
	background: transparent;
}

/* A két nyíl kerek gomb. */
.gyn.gyn-calendar .gyn-pager .gyn-prev,
.gyn.gyn-calendar .gyn-pager .gyn-next-month {
	padding: 0;
	font-size: 1.4em;
	line-height: 1;
}

/*
 * A lapozó gombjai a környező szöveg színét kapják minden állapotban: a téma kiemelő színe halvány is lehet (a régi oldal kiemelő színe
 * fehér háttéren csak 2:1 kontrasztú volt). A keret jelzi, hogy kattintható; a --gyn-link átállítja a színt.
 */
.gyn.gyn-calendar .gyn-pager a,
.gyn.gyn-calendar .gyn-pager a:visited,
.gyn.gyn-calendar .gyn-pager a:hover,
.gyn.gyn-calendar .gyn-pager a:focus {
	color: var(--gyn-link, inherit);
}

/* A „Ma” keretes gomb: Zöld keret, Sötétzöld betű (minden állapotban: a fenti szabály a környező színt adná). */
.gyn.gyn-calendar .gyn-pager a.gyn-today-link,
.gyn.gyn-calendar .gyn-pager a.gyn-today-link:visited,
.gyn.gyn-calendar .gyn-pager a.gyn-today-link:hover,
.gyn.gyn-calendar .gyn-pager a.gyn-today-link:focus {
	color: var(--gyn-cal-accent-dark);
	border-color: var(--gyn-cal-accent);
}

/*
 * A havi ige a fejlécben: a saját világos doboza helyett Mélyzöld, Literata dőlt (a téma előbeállítása; téma nélkül a környező betű). Ugyanezt kapja a rács alatti
 * lábsáv igéje is (igehely: lent, spec 8.4): a három szabály listáiban a lábsáv választói is állnak.
 */
.gyn.gyn-calendar .gyn-calendar-band .gyn.gyn-verse,
.gyn.gyn-calendar .gyn-calendar-foot .gyn.gyn-verse {
	flex: 1 1 100%;
	margin: 0;
	padding: 0;
	color: var(--gyn-cal-title);
	text-align: center;
	background: none;
	border: 0;
}

.gyn.gyn-calendar .gyn-calendar-band .gyn-verse-text p,
.gyn.gyn-calendar .gyn-calendar-foot .gyn-verse-text p {
	font-family: var(--wp--preset--font-family--literata, inherit);
	font-size: 0.96875rem;
	line-height: 1.4;
}

.gyn.gyn-calendar .gyn-calendar-band .gyn-verse-ref,
.gyn.gyn-calendar .gyn-calendar-foot .gyn-verse-ref {
	margin-top: 0;
	font-size: 0.8125rem;
	font-weight: 800;
	color: var(--gyn-cal-accent-dark);
}

/*
 * A rács alatti lábsáv (igehely: lent; spec 8.4): a kinézete itt áll, a láthatóságát a nézet és a konténer szélessége adja. Alapból rejtett (lista nézet, keskeny hely: ott
 * az ige a fejlécben áll); a rács nézetekben (a 700 px-es konténerblokk és a nezet="honap") látszik, és ott a fejléc igéje (gyn-verse-head) rejtett. A szöveg 1 rem (a vászon 16 px-e),
 * a hivatkozás a szöveg mellett áll, középre zárva.
 */
.gyn.gyn-calendar .gyn-calendar-foot {
	display: none;
	padding: 0.875rem 1.375rem 1rem;
	border-top: 1px solid var(--gyn-cal-line);
	text-align: center;
}

.gyn.gyn-calendar .gyn-calendar-foot .gyn.gyn-verse {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: center;
	gap: 0 0.75rem;
}

.gyn.gyn-calendar .gyn-calendar-foot .gyn-verse-text p {
	font-size: 1rem;
}

.gyn.gyn-calendar[aria-busy="true"] {
	opacity: 0.6;
}

.gyn.gyn-calendar .gyn-weekdays,
.gyn.gyn-calendar .gyn-days,
.gyn.gyn-calendar .gyn-day-items {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.gyn.gyn-calendar .gyn-weekdays {
	display: none;
}

/* A hétnapok sora (a rácsban): középre igazítva, nagybetűs, ritkított, Szürkészöld; a keskeny nezet="honap" rácsban levágva. */
.gyn.gyn-calendar .gyn-weekdays li {
	min-width: 0;
	padding: 0.6875rem 0.25rem 0.625rem;
	overflow: hidden;
	font-size: 0.71875rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-align: center;
	text-transform: uppercase;
	color: var(--gyn-cal-muted);
	text-overflow: ellipsis;
	white-space: nowrap;
}

/*
 * Listanézet (alap; 3f, „A” telefonos kerete): naponként egy sor a lapon, vékony vonallal elválasztva. Balra, 50 px-es oszlopban a hét napjának
 * rövid neve (a mai napon „Ma”) és a nap száma körben; jobbra a napi felirat és a bejegyzések. A rács elemeként a nap alapból a tartalma
 * szélességére kényszerítené magát (min-width: auto), a hosszú szó pedig kilógna: a min-width: 0 és az overflow-wrap: break-word ezt megakadályozza.
 */
.gyn.gyn-calendar .gyn-day {
	position: relative;
	display: none;
	min-width: 0;
	min-height: 4.5rem;
	margin: 0;
	padding: 0.625rem 0.75rem 0.625rem 4.125rem;
	color: var(--gyn-cal-text);
	background: var(--gyn-cal-cell);
	border-top: 1px solid var(--gyn-cal-line);
	overflow-wrap: break-word;
}

.gyn.gyn-calendar .gyn-day.gyn-has-items {
	display: block;
}

/* A szomszéd hónapok napjai csak a rácsban látszanak (a lista a hónap saját napjait mutatja). */
.gyn.gyn-calendar .gyn-day.gyn-is-other {
	display: none;
}

.gyn.gyn-calendar .gyn-day-head {
	position: absolute;
	top: 0.75rem;
	left: 0.375rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.125rem;
	width: 3.125rem;
	margin: 0;
	font-weight: 700;
}

.gyn.gyn-calendar .gyn-day-short,
.gyn.gyn-calendar .gyn-today-badge {
	font-size: 0.71875rem;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--gyn-cal-number);
}

/* A mai napon a rövid név helyén „Ma” (Sötétzöld). */
.gyn.gyn-calendar .gyn-today-badge {
	order: -1;
	color: var(--gyn-cal-accent-dark);
}

.gyn.gyn-calendar .gyn-is-today .gyn-day-short {
	display: none;
}

.gyn.gyn-calendar .gyn-day-number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.125rem;
	height: 2.125rem;
	border-radius: 999px;
	font-size: 1.0625rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	color: var(--gyn-cal-muted);
}

/* A nap teljes neve („hétfő október 5.”) a felolvasónak: a listában és a rácsban is rejtve látszik. */
.gyn.gyn-calendar .gyn-day-name {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/*
 * A nap állapota (a később álló nyer): a hétvége krémesebb; a mai nap fehér; a szomszéd hónap jövőbeli napja és a múltbeli nap halványszürke, a
 * hétvége árnyalatát is felülírja (a hétvége árnyalata csak a mai nap utáni napokon látszik: a mai nap hétvégén is fehér, spec 8.4). A mai nap kiemelése a zöld számkorong.
 */
.gyn.gyn-calendar .gyn-is-weekend {
	color: var(--gyn-cal-text);
	background: var(--gyn-cal-weekend);
}

.gyn.gyn-calendar .gyn-is-today {
	color: var(--gyn-cal-text);
	background: var(--gyn-cal-cell);
}

.gyn.gyn-calendar .gyn-is-other {
	color: var(--gyn-cal-past-text);
	background: var(--gyn-cal-other);
}

.gyn.gyn-calendar .gyn-is-past {
	color: var(--gyn-cal-past-text);
	background: var(--gyn-cal-past);
}

.gyn.gyn-calendar .gyn-day.gyn-is-today .gyn-day-number {
	font-weight: 800;
	color: var(--gyn-cal-accent-text);
	background: var(--gyn-cal-accent);
}

/* A múltbeli és a szomszéd nap bejegyzései halványabbak (a címke múltbeli háttere és a halvány betű, legalább 3:1), átlátszóság nélkül; kattinthatók maradnak. */
.gyn.gyn-calendar .gyn-is-past .gyn-entry-link,
.gyn.gyn-calendar .gyn-is-other .gyn-entry-link {
	background: var(--gyn-color-past, var(--gyn-cal-past));
	color: var(--gyn-cal-past-ink);
}

/*
 * A jelzések, a feliratok és a napi címke a múlt betűszínét kapják (a keretük a vonal színét). A választók `.gyn-day`-jel együtt állnak (0,5,0), hogy a
 * listanézet úrvacsora-feliratának szabályát (0,4,0, később áll) is felülírják: a múltbeli nap felirata nem marad úrvacsora-színű.
 */
.gyn.gyn-calendar .gyn-day.gyn-is-past .gyn-label,
.gyn.gyn-calendar .gyn-day.gyn-is-past .gyn-communion-mark,
.gyn.gyn-calendar .gyn-day.gyn-is-past .gyn-communion-label,
.gyn.gyn-calendar .gyn-day.gyn-is-past .gyn-entry .gyn-subtitle,
.gyn.gyn-calendar .gyn-day.gyn-is-other .gyn-label,
.gyn.gyn-calendar .gyn-day.gyn-is-other .gyn-communion-mark,
.gyn.gyn-calendar .gyn-day.gyn-is-other .gyn-communion-label,
.gyn.gyn-calendar .gyn-day.gyn-is-other .gyn-entry .gyn-subtitle {
	color: var(--gyn-cal-past-text);
	border-color: var(--gyn-cal-line);
}

/* A múltbeli és a szomszéd nap száma halványabb (legalább 3:1); a mai nap soha nem múltbeli és nem szomszéd. */
.gyn.gyn-calendar .gyn-day.gyn-is-past .gyn-day-number,
.gyn.gyn-calendar .gyn-day.gyn-is-other .gyn-day-number {
	font-weight: 600;
	color: var(--gyn-cal-past-number);
}

/* Az „Elmarad” halványabb párja a múltbeli és a szomszéd napon (legalább 4,5:1). */
.gyn.gyn-calendar .gyn-day.gyn-is-past .gyn-cancel-mark,
.gyn.gyn-calendar .gyn-day.gyn-is-other .gyn-cancel-mark {
	color: var(--gyn-cal-cancel-past);
	background: var(--gyn-cal-cancel-past-bg);
}

.gyn.gyn-calendar .gyn-label {
	margin: 0 0 0.3rem;
	color: var(--gyn-cal-muted);
	font-size: 0.90625rem;
	font-style: italic;
}

.gyn.gyn-calendar .gyn-entry {
	margin: 0 0 0.375rem;
}

/* A napon belüli elemek, címkék és alcímek hosszú szava csak akkor tör, ha egy sorban sem fér el (a listanézetben; a rácsban l. lent). */
.gyn.gyn-calendar .gyn-entry,
.gyn.gyn-calendar .gyn-label,
.gyn.gyn-calendar .gyn-entry .gyn-subtitle {
	overflow-wrap: break-word;
}

/*
 * A bejegyzés: halvány színes címke (a típus színéből, Html::chipStyle()), felül kis sorban az idő, alatta a cím. A listában legalább 44 px magas, és ha
 * van befejezés, a kis sorban az időtartam áll a kezdés helyett (a :has() nélküli böngészőben a kezdés is látszik).
 */
.gyn.gyn-calendar .gyn-entry-link {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 1px;
	min-height: 44px;
	padding: 0.375rem 0.625rem 0.4375rem;
	border-radius: 9px;
	background: var(--gyn-color-bg, var(--gyn-color));
	color: var(--gyn-color-ink, var(--gyn-color-text));
	text-decoration: none;
}

.gyn.gyn-calendar .gyn-entry-time,
.gyn.gyn-calendar .gyn-entry-range {
	font-size: 0.78125rem;
	font-weight: 700;
	line-height: 1rem;
	font-variant-numeric: tabular-nums;
}

.gyn.gyn-calendar .gyn-entry-range {
	order: -1;
}

.gyn.gyn-calendar .gyn-entry-link:has(.gyn-entry-range) .gyn-entry-time {
	display: none;
}

.gyn.gyn-calendar .gyn-entry-link .gyn-title {
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.3125rem;
}

/* Az elmaradt elemnek a címe (közös szabály) mellett az ideje és az időtartama is áthúzott, mint a listákban a dátum. */
.gyn.gyn-calendar .gyn-cancelled .gyn-entry-time,
.gyn.gyn-calendar .gyn-cancelled .gyn-entry-range {
	text-decoration: line-through;
}

.gyn.gyn-calendar .gyn-entry .gyn-subtitle {
	display: block;
	margin-top: 2px;
	font-size: 0.875rem;
	line-height: 1.1875rem;
}

/* Az „Elmarad” a naptárban kis, halványpiros hátterű jelzés az áthúzott cím alatt (a közös szabály kerete nélkül). */
.gyn.gyn-calendar .gyn-cancel-mark {
	margin: 3px 0 0;
	padding: 0 0.3125rem;
	font-size: 0.625rem;
	font-weight: 800;
	line-height: 0.875rem;
	letter-spacing: 0.02em;
	color: var(--gyn-cal-cancel);
	background: var(--gyn-cal-cancel-bg);
	border-color: transparent;
}

/* Az úrvacsora feliratát a naptár csak a listanézetben mutatja, a rácsban a rövid címke áll helyette (spec 8.4). */
.gyn.gyn-calendar .gyn-communion-label {
	display: none;
}

/* Listában a bejegyzés alatt a teljes úrvacsora-felirat kapszulában (spec 8.4), a rövid címke helyett. */
.gyn.gyn-calendar:not(.gyn-view-honap) .gyn-communion-label {
	display: inline-block;
	margin-top: 0.375rem;
	padding: 0 0.5625rem;
	font-size: 0.78125rem;
	font-weight: 800;
	line-height: 1.25rem;
	letter-spacing: 0.02em;
	color: var(--gyn-cal-communion, #6b4f12);
	border: 1px solid var(--gyn-cal-communion-line);
	border-radius: 999px;
}

.gyn.gyn-calendar:not(.gyn-view-honap) .gyn-communion-mark {
	display: none;
}

/*
 * A rácsban az „Úrvacsora” címke kapszula (3f, „A”), a cellájában marad (3e, záró átnézés: 768 px-es táblagépen a ≈96 px-es cella ≈79 px tartalmi dobozt ad):
 * a közt a cella nem kéri, a betű kicsi, és ha nagyobb betűmérettel vagy keskenyebb rácsban mégsem fér, a vége kipontozva marad le, nem lóg ki. A
 * `vertical-align: top` megtartja a cella magasságát (az `overflow: hidden` az inline-blokk alapvonalát az aljára tenné). Csak a naptárban: a listák és
 * kártyák dátumsorainak címkéje a közös szabályé marad.
 */
.gyn.gyn-calendar .gyn-communion-mark {
	box-sizing: border-box;
	max-width: 100%;
	margin-top: 3px;
	margin-left: 0;
	padding: 0 0.4375rem;
	overflow: hidden;
	font-size: 0.65625rem;
	font-weight: 800;
	line-height: 1rem;
	letter-spacing: 0.02em;
	text-overflow: ellipsis;
	white-space: nowrap;
	vertical-align: top;
	border-color: var(--gyn-cal-communion-line);
	border-radius: 999px;
}

/* Az üres hónap szövege a lapon (margóval, nem párnázással: a téma párnázása sem torzíthatja). */
.gyn.gyn-calendar .gyn-month-empty {
	margin: 1rem 1.5rem;
	color: var(--gyn-muted);
}

/* A „+N további” gomb csak a rácsban látszik (a szkript tölti ki, és rejti a túlcsorduló bejegyzéseket). */
.gyn.gyn-calendar .gyn-more {
	display: none;
}

/*
 * Telefonon a korábbi napok (spec 8.4; 3f): a „Korábbi napok” gomb a lista tetején (a szerver JavaScript nélkül rejti, a szkript mutatja), és a szkript által a
 * gyökérre tett gyn-past-hidden osztállyal a mostani hónap mai nap előtti napjai rejtettek. A rácsban (lent) a gomb nem látszik, és minden nap látszik.
 */
.gyn.gyn-calendar .gyn-past-toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 44px;
	margin: 0;
	padding: 0.5rem 1rem;
	font: inherit;
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--gyn-cal-accent-dark);
	cursor: pointer;
	background: transparent;
	border: 0;
	border-top: 1px solid var(--gyn-cal-line);
}

/* A gomb a lap szélétől szélig ér, a gyökér overflow: hidden szabálya levágná a külső gyűrűt: a gyűrű a gomb belsejébe esik (záró átnézés, M1). */
.gyn.gyn-calendar .gyn-past-toggle:focus-visible {
	outline-offset: -6px;
}

.gyn.gyn-calendar.gyn-past-hidden .gyn-day.gyn-is-past {
	display: none;
}

/*
 * nezet="honap": rács keskeny helyen is, kisebb cellákkal és betűvel. Ez a blokk a széles konténer szabályai előtt áll: széles helyen azok (a
 * szokásos, nagyobb rács) érvényesülnek, mert egyenlő fajlagosság mellett a később álló nyer. A bejegyzések egysoros címkék (időtartam nélkül), az
 * „+N további” nincs: a keskeny cellában minden bejegyzés látszik.
 */
.gyn.gyn-calendar.gyn-view-honap .gyn-calendar-band {
	border-bottom: 1px solid var(--gyn-cal-line);
}

/* A havi ige a rács alatt (igehely: lent): a nezet="honap" mindig a lábsávot mutatja. A rejtő szabály 7 osztályos, hogy a széles fejléc 5 osztályos display: flex szabályát is megelőzze. */
.gyn.gyn-calendar.gyn-view-honap .gyn-calendar-foot {
	display: block;
}

.gyn.gyn-calendar.gyn-view-honap .gyn-calendar-band .gyn.gyn-verse.gyn-verse-head {
	display: none;
}

.gyn.gyn-calendar.gyn-view-honap .gyn-weekdays {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	border-bottom: 1px solid var(--gyn-cal-line);
}

.gyn.gyn-calendar.gyn-view-honap .gyn-weekdays li {
	padding: 0.375rem 0.125rem;
	font-size: 0.625rem;
	letter-spacing: 0.04em;
}

.gyn.gyn-calendar.gyn-view-honap .gyn-days {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
}

.gyn.gyn-calendar.gyn-view-honap .gyn-day {
	display: block;
	min-height: 4rem;
	padding: 0.1875rem;
	border-top: 0;
	border-right: 1px solid var(--gyn-cal-line);
	border-bottom: 1px solid var(--gyn-cal-line);
	font-size: 0.85em;
}

.gyn.gyn-calendar.gyn-view-honap .gyn-day:nth-child(7n) {
	border-right: 0;
}

.gyn.gyn-calendar.gyn-view-honap .gyn-day:nth-last-child(-n + 7) {
	border-bottom: 0;
}

.gyn.gyn-calendar.gyn-view-honap .gyn-past-toggle {
	display: none;
}

.gyn.gyn-calendar.gyn-past-hidden.gyn-view-honap .gyn-day.gyn-is-past {
	display: block;
}

.gyn.gyn-calendar.gyn-view-honap .gyn-day-head {
	position: static;
	width: auto;
}

.gyn.gyn-calendar.gyn-view-honap .gyn-day-number {
	width: auto;
	min-width: 1.6em;
	height: 1.6em;
	padding: 0 0.3em;
	font-size: 0.75rem;
}

.gyn.gyn-calendar.gyn-view-honap .gyn-day-short,
.gyn.gyn-calendar.gyn-view-honap .gyn-today-badge,
.gyn.gyn-calendar.gyn-view-honap .gyn-entry-range {
	display: none;
}

.gyn.gyn-calendar.gyn-view-honap .gyn-entry {
	margin-bottom: 0.15rem;
}

.gyn.gyn-calendar.gyn-view-honap .gyn-entry-link {
	display: block;
	min-height: 0;
	padding: 0.05rem 0.25rem;
	overflow: hidden;
	font-size: 0.8em;
	white-space: nowrap;
	text-overflow: ellipsis;
	border-radius: 5px;
}

.gyn.gyn-calendar.gyn-view-honap .gyn-entry-link .gyn-entry-time,
.gyn.gyn-calendar.gyn-view-honap .gyn-entry-link .gyn-title {
	display: inline;
	font-size: inherit;
	line-height: inherit;
}

/* A rácsban az alcím és a napi címke szóhatáron tör; a túl hosszú szó vége kipontozva marad le (szó közepén nincs sortörés, spec 8.4). */
.gyn.gyn-calendar.gyn-view-honap .gyn-label,
.gyn.gyn-calendar.gyn-view-honap .gyn-entry .gyn-subtitle {
	overflow-wrap: normal;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Széles konténerben (nezet="lista" kivételével) havi rács hétfőtől vasárnapig, vékony vonalakkal; a fejléc egy sorba rendeződik. */
@container (min-width: 700px) {
	.gyn.gyn-calendar .gyn-calendar-band {
		gap: 0.75rem 1.5rem;
		padding: 1.125rem 1.5rem;
	}

	.gyn.gyn-calendar .gyn-calendar-head {
		flex: 0 1 auto;
		justify-content: flex-start;
	}

	.gyn.gyn-calendar .gyn-month-title {
		font-size: 1.75rem;
	}

	.gyn.gyn-calendar .gyn-calendar-band .gyn.gyn-verse {
		display: flex;
		flex: 1 1 18rem;
		align-items: baseline;
		justify-content: flex-end;
		gap: 0.75rem;
		text-align: right;
	}

	.gyn.gyn-calendar .gyn-calendar-band .gyn-verse-text p {
		font-size: 1.0625rem;
	}

	.gyn.gyn-calendar .gyn-calendar-band .gyn-verse-ref {
		flex: none;
	}

	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-calendar-band {
		border-bottom: 1px solid var(--gyn-cal-line);
	}

	/* A havi ige a rács alatt (igehely: lent): széles rácsban a lábsáv látszik, a fejléc igéje rejtve (a 7 osztályos kijelölő a fenti 5 osztályos display: flex szabályt megelőzi); a nezet="lista" a fejlécet mutatja. */
	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-calendar-foot {
		display: block;
	}

	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-calendar-band .gyn.gyn-verse.gyn-verse-head {
		display: none;
	}

	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-weekdays {
		display: grid;
		grid-template-columns: repeat(7, minmax(0, 1fr));
		border-bottom: 1px solid var(--gyn-cal-line);
	}

	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-weekdays li {
		padding: 0.6875rem 0.25rem 0.625rem;
		font-size: 0.71875rem;
		letter-spacing: 0.1em;
	}

	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-days {
		display: grid;
		grid-template-columns: repeat(7, minmax(0, 1fr));
		grid-auto-rows: minmax(8rem, auto);
	}

	/* A rács napjai (spec 8.4; 3f): vékony vonalak a cellák között, a lap szélén nincs vonal; a font-size a nezet="honap" keskeny helyre szóló kisebb betűjét állítja vissza. */
	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-day {
		display: flex;
		flex-direction: column;
		gap: 4px;
		min-height: 8rem;
		padding: 0.375rem 0.5rem 0.625rem;
		border-top: 0;
		border-right: 1px solid var(--gyn-cal-line);
		border-bottom: 1px solid var(--gyn-cal-line);
		font-size: 1em;
	}

	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-day:nth-child(7n) {
		border-right: 0;
	}

	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-day:nth-last-child(-n + 7) {
		border-bottom: 0;
	}

	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-past-toggle {
		display: none;
	}

	.gyn.gyn-calendar.gyn-past-hidden:not(.gyn-view-lista) .gyn-day.gyn-is-past {
		display: flex;
	}

	/* A nap száma fent középen, halványan; a mai napé zöld korongban (a közös szabály). */
	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-day-head {
		position: static;
		justify-content: center;
		width: auto;
	}

	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-day-number {
		width: auto;
		min-width: 1.75rem;
		height: 1.75rem;
		padding: 0 0.4375rem;
		font-size: 0.8125rem;
		font-weight: 600;
		color: var(--gyn-cal-number);
	}

	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-day-short,
	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-today-badge,
	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-entry-range {
		display: none;
	}

	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-entry-link:has(.gyn-entry-range) .gyn-entry-time {
		display: block;
	}

	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-entry {
		margin: 0;
	}

	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-day-items {
		display: flex;
		flex-direction: column;
		gap: 4px;
	}

	/* A rácsban a bejegyzés kicsi: felül az idő, alatta a cím legfeljebb két sorban, szóhatáron törve, a vége kipontozva. */
	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-entry-link {
		display: flex;
		min-height: 0;
		padding: 0.25rem 0.4375rem 0.3125rem;
		overflow: visible;
		font-size: 1em;
		white-space: normal;
		border-radius: 7px;
	}

	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-entry-time {
		display: block;
		font-size: 0.6875rem;
		line-height: 0.875rem;
	}

	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-entry-link .gyn-title {
		display: -webkit-box;
		overflow: hidden;
		font-size: 0.78125rem;
		line-height: 1rem;
		overflow-wrap: normal;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
		line-clamp: 2;
	}

	/*
	 * Az a cím, amelynek valamelyik szava szélesebb a soránál (a szkript jelöli, markLongTitles(); naptár spec 8.4, 2026-10-27): a két soros dobozban ez a szó jelzés nélkül vágódna le, ezért
	 * egy sorban áll, a vége látható ellipszissel (az overflow: hidden a fenti szabályból jön); a teljes cím a felugró ablakban olvasható. Hat osztályos, a fenti címszabály öté fölött áll.
	 */
	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-entry-link .gyn-title.gyn-title-long {
		display: block;
		white-space: nowrap;
		text-overflow: ellipsis;
	}

	/* A rácsban az alcím és a napi címke szóhatáron tör; a túl hosszú szó vége kipontozva marad le (szó közepén nincs sortörés, spec 8.4). */
	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-label,
	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-entry .gyn-subtitle {
		overflow-wrap: normal;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-label {
		margin: 0;
		font-size: 0.75rem;
		line-height: 0.9375rem;
		text-align: center;
	}

	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-entry .gyn-subtitle {
		font-size: 0.71875rem;
		line-height: 0.9375rem;
	}

	/* Rácsban az úrvacsora rövid címkéje látszik, a felirata nem (a listanézet szabályát itt a rács visszavonja). */
	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-communion-label {
		display: none;
	}

	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-communion-mark {
		display: inline-block;
	}

	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-entry.gyn-overflow {
		display: none;
	}

	/*
	 * Egy képernyőre (3f, 10. feladat): a szkript (layout()) asztali szélességen a gyökérre teszi a gyn-fit osztályt, és a --gyn-days változóban megadja a rács magasságát (a
	 * képernyő magasságából: a naptár alja a képernyőn marad). Az osztály nélkül (JavaScript nélkül, keskenyebb ablakban, alacsony ablakban) a rács a megszokott: legalább 8 rem
	 * magas sorok, amelyek a tartalmukkal nőnek. Az illesztett rácsban a fejléc, a hétnapok sora, a napok és a bejegyzések tömörebbek (a nap száma és az idő sora kisebb, a bejegyzés
	 * párnázása szűkebb), a cím továbbra is legfeljebb két sor, szóhatáron törve. A sorok (1fr) egyenlően osztják a rács magasságát, de egyik sem alacsonyabb a tartalmánál (a
	 * sor alapmérete a legmagasabb napjáé): a szkript úgy rejti a bejegyzéseket (a „+N további” mögé), hogy a sorok összege elférjen. Nincs overflow: hidden, semmi nem vágódik le.
	 */
	.gyn.gyn-calendar.gyn-fit:not(.gyn-view-lista) .gyn-calendar-band {
		padding-block: 0.375rem;
	}

	.gyn.gyn-calendar.gyn-fit:not(.gyn-view-lista) .gyn-weekdays li {
		padding-block: 0.3125rem;
		line-height: 1.2;
	}

	.gyn.gyn-calendar.gyn-fit:not(.gyn-view-lista) .gyn-days {
		height: var(--gyn-days, auto);
		grid-auto-rows: 1fr;
	}

	/* A min-height: auto a rács elemének tartalom szerinti legkisebb mérete: a sor (1fr) nem lehet alacsonyabb a legmagasabb napjánál. */
	.gyn.gyn-calendar.gyn-fit:not(.gyn-view-lista) .gyn-day {
		gap: 1px;
		min-height: auto;
		padding: 0.125rem 0.375rem 0.1875rem;
	}

	.gyn.gyn-calendar.gyn-fit:not(.gyn-view-lista) .gyn-day-number {
		min-width: 1.375rem;
		height: 1.375rem;
		padding-inline: 0.375rem;
	}

	.gyn.gyn-calendar.gyn-fit:not(.gyn-view-lista) .gyn-day-items {
		gap: 2px;
	}

	.gyn.gyn-calendar.gyn-fit:not(.gyn-view-lista) .gyn-entry-link {
		padding: 0.125rem 0.4375rem 0.1875rem;
	}

	.gyn.gyn-calendar.gyn-fit:not(.gyn-view-lista) .gyn-entry-time {
		line-height: 0.8125rem;
	}

	.gyn.gyn-calendar:not(.gyn-view-lista) .gyn-more {
		display: inline-flex;
		align-self: flex-start;
		align-items: center;
		min-height: 24px;
		padding: 0 0.375rem;
		font: inherit;
		font-size: 0.75rem;
		font-weight: 800;
		color: var(--gyn-cal-accent-dark);
		cursor: pointer;
		background: none;
		border: 0;
		border-radius: 6px;
	}
}

/*
 * Keskeny rács (3f, javítókör 1–2; a konténer 700–939 px, pl. 768 px-es táblagép): a cellák ≈100–134 px szélesek, a cím helye ≈70–103 px. Egy hosszú egyszavas cím
 * („Istentisztelet”, „Gyermekdélelőtt”) a két soros (-webkit-box, line-clamp) dobozban ellipszis nélkül vágódna le, mert az nem pontoz vízszintesen. Itt a cím egy sor, és ha
 * nem fér el, a vége látható ellipszissel marad le; a teljes cím a felugró ablakban olvasható. Ez a blokk a széles rács után áll, hogy az azonos fajlagosságú címszabályt
 * felülírja. A felső határ mérésből jön (a mintaadat három hónapja, a naptár gyökerének szélessége 700–1000 px közt 1 px-es lépésekkel, az alap két soros szabállyal): a
 * legszélesebb vízszintesen vágott cím a „Gyermekdélelőtt” 913 px-es naptárban (a cella 130 px, a cím helye 99 px); 914 px-től egyetlen cím sem vágódik. A határ ennél 26 px-szel
 * (cellánként ≈3,7 px-szel) nagyobb, de a 1024 px-es ablak 942 px-es naptára már kívül marad (ott a két soros rács áll). A javítókör 1 határa (859 px) a 935–990 px-es
 * ablakokban a „Gyermekdélelőtt”-et ellipszis nélkül vágta; a scripts/browser-check.cjs a 768–1024 px-es ablakokon (TITLE_SWEEP_WIDTHS) méri, hogy ez ne térjen vissza.
 * Ez a szabály JavaScript nélküli tartalék (naptár spec 8.4, 2026-10-27): a szkript a gyökérre a gyn-js-titles osztályt teszi, és attól kezdve a cím a keskeny rácsban is két soros; csak az a
 * cím áll egy sorban, kipontozva, amelynek valamelyik szava szélesebb a soránál (gyn-title-long, a széles konténer-blokk szabálya).
 */
@container (min-width: 700px) and (max-width: 939px) {
	.gyn.gyn-calendar:not(.gyn-view-lista):not(.gyn-js-titles) .gyn-entry-link .gyn-title {
		display: block;
		overflow: hidden;
		white-space: nowrap;
		text-overflow: ellipsis;
	}
}

/*
 * Aloldalak (spec 8.6). A gyökér .gyn-nel együtt áll (.gyn.gyn-single), hogy egy témaszabály ne előzze meg; az elrendezést a
 * blokksablon (a téma) adja.
 */
.gyn.gyn-single > * {
	margin: 0 0 0.75rem;
}

/*
 * A tartalom a .gyn-detail elemben áll, amelynek címszabálya (.gyn .gyn-detail .gyn-title, 1,35 em) három osztályos: egy
 * kétosztályos aloldal-szabályt nem győzne le. Ez is három osztályos, és később áll, így az aloldal címe (h1) nagyobb.
 */
.gyn.gyn-single .gyn-title {
	font-size: 2em;
	line-height: 1.2;
}

.gyn.gyn-single .gyn-section-title {
	margin-top: 1.5rem;
	font-size: 1.25em;
}

/* Figyelmeztetések: saját világos háttér és sötét szöveg, így a téma színeitől függetlenül olvashatók. */
.gyn .gyn-notice {
	padding: 0.75rem 1rem;
	border-radius: var(--gyn-radius);
	background: #fff4cc;
	color: #1f2937;
}

.gyn .gyn-notice.gyn-internal {
	background: #fde7e9;
}

/*
 * Az aloldalak hivatkozásai ugyanúgy a környező szöveg színét kapják, aláhúzva, mint a részletekben: az előfordulás oldalán
 * a „már elmúlt” figyelmeztetés és a „további időpontok” linkje a .gyn-detail elemen kívül áll, és a téma kiemelő színe a
 * halványsárga háttéren gyenge kontrasztú lehet (a régi oldalé 2,5:1 volt). A --gyn-link átállítja.
 */
.gyn.gyn-single a:not(.gyn-button),
.gyn.gyn-single a:not(.gyn-button):visited,
.gyn.gyn-single a:not(.gyn-button):hover,
.gyn.gyn-single a:not(.gyn-button):focus {
	color: var(--gyn-link, inherit);
	text-decoration: underline;
}
