/* =========================================================================
   Dénesfa Község Önkormányzata – honlapsablon (Joomla 6)
   Elegáns, hajszálvonalas, meleg bézs. WCAG 2.2 AA; kontrasztarányok mérve.
   A forrás a dizájnprototípus (uj/dizajn) 4. változata.
   ========================================================================= */

/* ---- Betűkészletek: saját szerverről (ADV-05), OFL licenc ---------------- */
@font-face { font-family: "Atkinson Hyperlegible Next"; font-style: normal; font-weight: 400; font-display: swap;
  src: url(../fonts/atkinson-hyperlegible-next-latin-ext-400-normal.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Atkinson Hyperlegible Next"; font-style: normal; font-weight: 400; font-display: swap;
  src: url(../fonts/atkinson-hyperlegible-next-latin-400-normal.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Atkinson Hyperlegible Next"; font-style: normal; font-weight: 700; font-display: swap;
  src: url(../fonts/atkinson-hyperlegible-next-latin-ext-700-normal.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Atkinson Hyperlegible Next"; font-style: normal; font-weight: 700; font-display: swap;
  src: url(../fonts/atkinson-hyperlegible-next-latin-700-normal.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Atkinson Hyperlegible Next"; font-style: italic; font-weight: 400; font-display: swap;
  src: url(../fonts/atkinson-hyperlegible-next-latin-ext-400-italic.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Atkinson Hyperlegible Next"; font-style: italic; font-weight: 400; font-display: swap;
  src: url(../fonts/atkinson-hyperlegible-next-latin-400-italic.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Atkinson Hyperlegible Next"; font-style: italic; font-weight: 700; font-display: swap;
  src: url(../fonts/atkinson-hyperlegible-next-latin-ext-700-italic.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Atkinson Hyperlegible Next"; font-style: italic; font-weight: 700; font-display: swap;
  src: url(../fonts/atkinson-hyperlegible-next-latin-700-italic.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, 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-wght-normal.woff2) format("woff2-variations");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Lora"; font-style: normal; font-weight: 400 700; font-display: swap;
  src: url(../fonts/lora-latin-wght-normal.woff2) format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, 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-latin-ext-wght-italic.woff2) format("woff2-variations");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Lora"; font-style: italic; font-weight: 400 700; font-display: swap;
  src: url(../fonts/lora-latin-wght-italic.woff2) format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ---- Színek -------------------------------------------------------------
   Mért kontrasztarányok:
     tinta #2A2119 / elefántcsont #FBF8F1 14,9:1 · bézs #F2E9D8 13,1:1
     halvány #5B4B3D / elefántcsont 7,9:1 · homok #E7D9BF 6,0:1
     link #7B3416 / elefántcsont 8,4:1 · homok 6,4:1
     címke-arany #86621C / elefántcsont 5,2:1 · bézs 4,6:1
     krém #F6EFE2 / dió #3B2B20 11,8:1 · arany #E2C27A / dió 7,9:1
     fókusz #1D4F91 / elefántcsont 7,7:1 · mezőkeret #8C7A60 / papír 4,1:1
   A hajszálvonalak (#DCCBAA, #C2A877) csak díszítenek, információt nem hordoznak.
   ------------------------------------------------------------------------ */
:root {
  --ivory: #FBF8F1;
  --paper: #FFFEFA;
  --beige: #F2E9D8;
  --sand: #E7D9BF;
  --hair: #DCCBAA;
  --hair-gold: #C2A877;
  --ink: #2A2119;
  --soft: #5B4B3D;
  --accent: #7B3416;
  --accent-deep: #561F0A;
  --label: #86621C;
  --walnut: #3B2B20;
  --cream: #F6EFE2;
  --gold-on-dark: #E2C27A;
  --focus: #1D4F91;
  --field: #8C7A60;
  --font-body: "Atkinson Hyperlegible Next", "Segoe UI", system-ui, sans-serif;
  --font-serif: "Lora", Georgia, "Times New Roman", serif;
  --wrap: 72rem;
  --measure: 68ch;
  --ease: cubic-bezier(.2, .7, .2, 1);
}

/* Betűméret-állítás (A / A+ / A++) – az egyetlen megjelenítési beállítás */
html { font-size: 112.5%; }                      /* 18 px alap (UX-03) */
html[data-fontsize="2"] { font-size: 125%; }
html[data-fontsize="3"] { font-size: 143.75%; }

/* ---- Alapok ------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
body {
  margin: 0; background: var(--ivory); color: var(--ink);
  font-family: var(--font-body); font-size: 1rem; line-height: 1.65;
  -webkit-text-size-adjust: 100%; text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3 { overflow-wrap: break-word; text-wrap: balance; font-family: var(--font-serif); font-weight: 500; line-height: 1.2; margin: 0 0 .55em; color: var(--ink); letter-spacing: -.005em; }
h1 { font-size: clamp(2rem, 1.5rem + 2vw, 2.9rem); }
h2 { font-size: clamp(1.45rem, 1.25rem + .8vw, 1.85rem); }
h3 { font-size: 1.3rem; }
p, ul, ol, dl { margin: 0 0 1em; }
main { overflow-wrap: break-word; }
a { color: var(--accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .22em; text-decoration-color: color-mix(in srgb, var(--accent) 45%, transparent); transition: color .2s, text-decoration-color .2s; }
a:hover { color: var(--accent-deep); text-decoration-color: currentColor; }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; border-radius: 2px; }
::selection { background: var(--sand); }
.wrap { width: min(100% - 2.5rem, var(--wrap)); margin-inline: auto; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.eyebrow { display: inline-block; font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--label); }
.rule { height: 1px; border: 0; margin: 0; background: linear-gradient(90deg, transparent, var(--hair-gold) 15%, var(--hair-gold) 85%, transparent); }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; } }

.skip-link { position: absolute; left: 1rem; top: -100px; z-index: 100; background: var(--paper); color: var(--accent); padding: .7rem 1rem; border: 1px solid var(--hair-gold); font-weight: 700; }
.skip-link:focus { top: .5rem; }

/* ---- Fejléc: név és idézet · címer · képváltó --------------------------
   A régi fejléc szerkezete: a címer választja el a képváltót a szöveges résztől.
   A képváltó a fejléc teljes magasságát kitölti, bal széle beleolvad a háttérbe, jobbra a lap széléig fut ki.
   Kontraszt a homok háttéren (#EEDFC0–#E2CC9F): tinta 10,1:1 · halvány 6,4:1 · címke #6B4C12 5,0:1
   ------------------------------------------------------------------------ */
.masthead {
  --head-h: clamp(8.5rem, 5rem + 6vw, 10.5rem);
  position: relative; overflow: hidden;
  background:
    radial-gradient(90% 140% at 12% 0%, #F5EAD3 0%, transparent 65%),
    linear-gradient(180deg, #EEDFC0 0%, #E2CC9F 100%);
}
.masthead::before {             /* a régi fejléc virágos indája, modern vonalas változatban */
  content: ""; position: absolute; left: 0; top: 0; height: 100%; aspect-ratio: 660 / 250; pointer-events: none; opacity: .42;
  background: url(../images/fejlec-inda.svg) left top / contain no-repeat;
}
.brand { display: contents; }
.masthead__inner {
  position: relative; width: min(100%, 78rem); margin-inline: auto;
  display: grid; grid-template-columns: minmax(0, 1.08fr) auto minmax(0, 1fr); grid-template-rows: minmax(var(--head-h), auto);
}
.masthead__text { grid-column: 1; grid-row: 1; align-self: center; display: flex; flex-direction: column; padding: 1rem 1.5rem 1rem clamp(1.25rem, 3vw, 2.5rem); min-width: 0; }
.brand__name { font-family: var(--font-serif); font-size: clamp(2rem, 1rem + 2.4vw, 3.05rem); font-weight: 500; line-height: 1; letter-spacing: .01em; color: var(--ink); text-decoration: none; }
.brand__name:hover { color: var(--accent-deep); }
.brand__sub { font-size: .74rem; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: #6B4C12; margin: .45rem 0 0; }
.motto { margin: .7rem 0 0; font-family: var(--font-serif); font-style: italic; font-size: clamp(.8rem, .55rem + .5vw, .95rem); line-height: 1.5; color: #4E3F31; }
.motto blockquote, .motto p { margin: 0; }
.motto figcaption { font-style: normal; font-family: var(--font-body); font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: #6B4C12; margin-top: .25rem; }
.masthead .cimer {
  grid-column: 2; grid-row: 1; align-self: center; position: relative; z-index: 2;
  height: calc(var(--head-h) * .86); width: auto; margin-inline: .25rem;
  filter: drop-shadow(0 4px 8px rgb(59 43 32 / .28));
}

.slideshow {
  grid-column: 3; grid-row: 1; position: relative; min-height: 100%;
  margin-left: calc(var(--head-h) * -.62);              /* a címer mögé fut be */
  --kifut: clamp(0px, (100vw - 78rem) / 2, (1920px - 78rem) / 2);  /* jobbra a lap széléig, legfeljebb Full HD szélességig */
}
/* Jobbra egyenes vágással a lap szélén ér véget, balra a címer mögött olvad bele a háttérbe. A balra áttűnés
   hossza a tartalomsávon belüli rész 34%-a, a kifutástól független. A maszk csak a képeken van, a gombon nincs. */
.slideshow__frame {
  position: absolute; inset: 0 calc(var(--kifut) * -1) 0 0;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 calc((100% - var(--kifut)) * .34));
          mask-image: linear-gradient(90deg, transparent 0, #000 calc((100% - var(--kifut)) * .34));
}
.slideshow img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.6s var(--ease); }
.slideshow img.is-active { opacity: 1; }
.slideshow__toggle {
  position: absolute; right: 1.6rem; bottom: .7rem; z-index: 3; display: grid; place-items: center; width: 2rem; height: 2rem; padding: 0;
  border-radius: 50%; border: 1px solid rgb(255 255 255 / .75); background: rgb(42 33 25 / .5); color: #fff; cursor: pointer;
}
.slideshow__toggle:hover { background: rgb(42 33 25 / .8); }
.slideshow__toggle:focus-visible { outline: 2px solid #fff; outline-offset: 2px; box-shadow: 0 0 0 4px var(--focus); }
.slideshow__toggle svg { width: .85rem; height: .85rem; }
html:not(.js) .slideshow__toggle { display: none; }

/* ---- Menüsáv: dióbarna, arany hajszálvonalakkal – élesen elválasztja a fejlécet a tartalomtól ---- */
.navbar { position: relative; z-index: 20; background: var(--walnut); color: var(--cream); border-top: 1px solid #A88A55; border-bottom: 1px solid #A88A55; box-shadow: 0 10px 24px -14px rgb(59 43 32 / .55); }
.navbar::after { content: ""; position: absolute; left: 0; right: 0; bottom: 3px; height: 1px; background: rgb(226 194 122 / .35); pointer-events: none; }
.navbar__inner { display: flex; align-items: center; justify-content: center; min-height: 3.3rem; }
.navbar :focus-visible { outline-color: var(--gold-on-dark); }
.main-nav__toggle { display: none; }
.main-nav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; }
.main-nav__item { position: relative; }
.main-nav__link, .main-nav__button {
  position: relative; display: flex; align-items: center; gap: .3rem; min-height: 3.3rem; padding: .7rem .72rem;
  font: inherit; font-family: var(--font-serif); font-size: 1rem; color: var(--cream); background: none; border: 0; cursor: pointer; text-decoration: none;
}
.main-nav__link::after, .main-nav__button::after {
  content: ""; position: absolute; left: .72rem; right: .72rem; bottom: .6rem; height: 1px; background: var(--gold-on-dark);
  transform: scaleX(0); transition: transform .3s var(--ease);
}
.main-nav__link:hover::after, .main-nav__button:hover::after,
.main-nav__button[aria-expanded="true"]::after, .main-nav__link[aria-current]::after, .main-nav__item.is-active > .main-nav__button::after { transform: scaleX(1); }
.main-nav__link:hover, .main-nav__button:hover { color: #fff; }
.main-nav__button svg { width: .7rem; height: .7rem; color: var(--gold-on-dark); transition: rotate .25s var(--ease); }
.main-nav__button[aria-expanded="true"] svg { rotate: 180deg; }
.submenu {
  position: absolute; left: 0; top: 100%; min-width: 17rem; margin: 0; padding: .6rem 0; list-style: none;
  background: var(--paper); border: 1px solid var(--hair); border-top: 0; box-shadow: 0 18px 40px -18px rgb(59 43 32 / .4);
}
.submenu::before { content: ""; position: absolute; left: 1.25rem; right: 1.25rem; top: 0; height: 1px; background: var(--hair-gold); }
.submenu[hidden], html:not(.js) .submenu { display: none; }
html:not(.js) .main-nav__item:hover > .submenu, html:not(.js) .main-nav__item:focus-within > .submenu { display: block; }
.submenu a { display: block; padding: .5rem 1.4rem; color: var(--ink); text-decoration: none; font-size: .95rem; }
.submenu a:hover { color: var(--accent); background: var(--beige); }
.submenu :focus-visible { outline-color: var(--focus); outline-offset: -2px; }
.submenu__overview a { font-family: var(--font-serif); font-style: italic; color: var(--accent); }

/* Betűméret: áttetsző sáv a fejléc jobb felső sarkában, a képváltó fölött */
.tools {
  position: absolute; top: .7rem; right: 1.5rem; z-index: 4; display: flex; align-items: center; gap: .9rem;
  padding: .2rem .35rem .2rem .85rem; border-radius: 999px; border: 1px solid rgb(226 194 122 / .45);
  background: rgb(36 27 20 / .78); color: var(--cream); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.tools :focus-visible { outline-color: var(--gold-on-dark); }
.fontsize { display: flex; align-items: center; gap: .05rem; margin: 0; padding: 0; border: 0; font-size: .76rem; }
.fontsize legend { float: left; margin-right: .4rem; padding: 0; color: #D9CBB4; letter-spacing: .04em; }
.fontsize button {
  font: inherit; font-family: var(--font-serif); color: var(--cream); background: none; border: 1px solid transparent; border-radius: 50%;
  width: 1.75rem; height: 1.75rem; padding: 0; line-height: 1; cursor: pointer;
}
.fontsize button:nth-of-type(1) { font-size: .78rem; }
.fontsize button:nth-of-type(2) { font-size: .95rem; }
.fontsize button:nth-of-type(3) { font-size: 1.12rem; }
.fontsize button:hover { border-color: rgb(226 194 122 / .5); }
.fontsize button[aria-pressed="true"] { border-color: var(--gold-on-dark); color: var(--gold-on-dark); }
.kontraszt {
  display: inline-flex; align-items: center; gap: .35rem; height: 1.75rem; padding: 0 .6rem 0 .45rem; border: 1px solid transparent; border-radius: 999px;
  font: inherit; font-size: .76rem; letter-spacing: .04em; color: #D9CBB4; background: none; cursor: pointer;
}
.kontraszt svg { width: 1.05rem; height: 1.05rem; color: var(--cream); }
.kontraszt:hover { border-color: rgb(226 194 122 / .5); }
.kontraszt[aria-pressed="true"] { border-color: var(--gold-on-dark); color: var(--gold-on-dark); }

/* ---- Morzsamenü --------------------------------------------------------- */
.breadcrumb { font-size: .82rem; color: var(--soft); padding-block: 1.4rem 0; letter-spacing: .02em; }
.breadcrumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .2rem .55rem; }
.breadcrumb li + li::before { content: "·"; margin-right: .55rem; color: var(--label); }

/* ---- Nyitóoldal: egyetlen időrendi folyam ------------------------------- */
.home { padding-block: 3rem 4rem; }
.section-title { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: .5rem 1.5rem; margin-bottom: .5rem; }
.section-title h2 { margin: 0; }
.section-title a { font-size: .9rem; }
/* Évenkénti tagolás: évcím arany hajszálvonallal */
.stream-year { display: flex; align-items: center; gap: 1rem; margin: 2.2rem 0 1rem; font-size: 1.2rem; color: var(--soft); }
.stream-year::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, var(--hair-gold), transparent); }
.section-title + .stream-year, .category-desc + .stream-year { margin-top: 1rem; }
.stream { list-style: none; margin: 0; padding: 0; display: grid; gap: .85rem; }

/* Egy bejegyzés: külön lap, bal szélén a rovat színe */
.entry {
  display: grid; grid-template-columns: 4.2rem minmax(0, 1fr) auto; gap: 1.4rem; align-items: start;
  padding: 1.25rem 1.4rem 1.3rem 1.25rem; background: var(--paper); border: 1px solid var(--hair); border-left: 3px solid var(--tipus, var(--hair-gold));
  box-shadow: 0 8px 20px -18px rgb(59 43 32 / .5);
}
.entry h3 { font-size: 1.3rem; margin: .45rem 0 .4rem; }
.entry h3 a { color: var(--ink); text-decoration: none; background-image: linear-gradient(var(--accent), var(--accent)); background-size: 0 1px; background-position: 0 100%; background-repeat: no-repeat; transition: background-size .35s var(--ease), color .2s; }
.entry h3 a:hover { color: var(--accent-deep); background-size: 100% 1px; }
.entry p { margin: 0; color: var(--soft); }
.entry__thumb { width: 9.5rem; }
.entry__thumb img { aspect-ratio: 4 / 3; object-fit: cover; outline: 1px solid var(--hair); outline-offset: 4px; }

/* Naptárlap: fent a hónap a rovat színével, alatta a nap; két „spirál” tartja */
.naptarlap { position: relative; display: flex; flex-direction: column; margin: .35rem 0 0; text-align: center; line-height: 1; background: var(--paper); border: 1px solid var(--hair); border-radius: 5px; box-shadow: 0 1px 0 var(--hair), 0 6px 12px -8px rgb(59 43 32 / .45); }
.naptarlap::before, .naptarlap::after { content: ""; position: absolute; top: -.3rem; width: .2rem; height: .55rem; border-radius: 1rem; background: var(--walnut); box-shadow: 0 0 0 1.5px var(--paper); }
.naptarlap::before { left: 24%; }
.naptarlap::after { right: 24%; }
.naptarlap__ho { padding: .5rem .2rem .3rem; border-radius: 4px 4px 0 0; background: var(--tipus, var(--walnut)); color: #fff; font-size: .66rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.naptarlap__nap { padding: .42rem 0 .5rem; font-family: var(--font-serif); font-size: 1.85rem; color: var(--ink); }

/* Rovatcímke: a rovat színével, halvány alapon */
.cimke { padding: .2rem .55rem .15rem; border-radius: 2px; color: var(--tipus, var(--label)); background: color-mix(in srgb, var(--tipus, var(--label)) 9%, var(--paper)); }
/* A cím fölötti rovatcímke lebeg, így az igazításban az oldal címe számít első sornak (a jobb oldali sáv
   első címe ehhez igazodik); a jobb margó miatt a cím mindig alatta kezdődik */
.article > .cimke, .error-page > .eyebrow { float: left; margin: 0 100% 1.25rem 0; }

/* Rovatszínek (a kategória aliasa szerint). Fehér szövegen és halvány alapjukon is legalább 4,9:1 kontrasztúak. */
.rovat--hirek { --tipus: #3D6B34; }
.rovat--kozlemenyek { --tipus: #1E6763; }
.rovat--hirdetmenyek { --tipus: #9B3A1E; }
.rovat--palyazatok { --tipus: #85601A; }
.rovat--galeria { --tipus: #763A6B; }
.rovat--valasztas { --tipus: #3B4A8A; }
.more svg, .btn svg { width: 1.15rem; height: 1.15rem; flex: none; }
.more { display: inline-flex; align-items: center; gap: .5rem; margin-top: 1.75rem; font-family: var(--font-serif); font-style: italic; font-size: 1.05rem; }

/* ---- Aloldal / cikk ----------------------------------------------------- */
/* A két hasáb első szövegsora (bal: az oldal címe, jobb: a sáv első címe) egy alapvonalra kerül */
.page { display: grid; grid-template-columns: minmax(0, 1fr) 17.5rem; gap: 3.5rem; align-items: first baseline; padding-block: .5rem 4rem; }
.article { max-width: var(--measure); }
.article h1 { margin: 1.1rem 0 .9rem; }
.article-meta { display: flex; flex-wrap: wrap; gap: .3rem 1.6rem; padding-block: .8rem; margin-bottom: 2rem; border-block: 1px solid var(--hair); font-size: .85rem; color: var(--soft); }
.article-meta strong { color: var(--ink); font-weight: 400; }
.lead { font-family: var(--font-serif); font-size: 1.22rem; line-height: 1.6; color: var(--ink); }
.article h2 { margin-top: 2.2rem; }
.article li { margin-bottom: .35rem; }
.deadline { display: flex; flex-wrap: wrap; gap: .3rem 1rem; align-items: baseline; margin: 1.8rem 0; padding: 1rem 0; border-block: 1px solid var(--hair-gold); }
.deadline .eyebrow { flex: none; }
.deadline strong { font-family: var(--font-serif); font-weight: 500; font-size: 1.2rem; }

.attachments { list-style: none; margin: .5rem 0 0; padding: 0; border-top: 1px solid var(--hair); }
.attachments li { border-bottom: 1px solid var(--hair); }
.attachments a { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: 1rem .25rem; text-decoration: none; color: var(--ink); }
.attachments a:hover .att__name { color: var(--accent); text-decoration: underline; text-decoration-thickness: 1px; }
.att__badge { display: grid; place-items: center; width: 2.6rem; height: 3.2rem; border: 1px solid var(--hair-gold); font-size: .62rem; font-weight: 700; letter-spacing: .1em; color: var(--accent); position: relative; background: var(--paper); }
.att__badge::before { content: ""; position: absolute; top: -1px; right: -1px; border-style: solid; border-width: 0 .7rem .7rem 0; border-color: transparent var(--ivory) var(--hair-gold) transparent; }
.att__name { display: block; font-family: var(--font-serif); font-size: 1.05rem; }
.att__info { display: block; font-size: .8rem; color: var(--soft); }
.att__dl { font-size: .8rem; color: var(--accent); letter-spacing: .06em; }

.gallery { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr)); gap: .75rem; }
.gallery a { display: block; position: relative; overflow: hidden; background: var(--beige); }
.gallery img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; transition: transform .6s var(--ease), filter .6s var(--ease); }
.gallery a:hover img { transform: scale(1.04); filter: saturate(1.08); }
.gallery a::after { content: ""; position: absolute; inset: 6px; border: 1px solid rgb(255 255 255 / .0); transition: border-color .3s; pointer-events: none; }
.gallery a:hover::after, .gallery a:focus-visible::after { border-color: rgb(255 255 255 / .75); }
.gallery-note { font-size: .82rem; color: var(--soft); margin-top: .6rem; }

.lightbox { padding: 0; border: 0; background: transparent; max-width: min(96vw, 64rem); max-height: 94vh; overflow: visible; }
.lightbox::backdrop { background: rgb(26 20 15 / .88); }
.lightbox figure { margin: 0; }
.lightbox img { max-height: 80vh; width: auto; margin-inline: auto; box-shadow: 0 30px 80px rgb(0 0 0 / .5); }
.lightbox figcaption { display: table; margin: .6rem auto 0; padding: .35rem .9rem; background: rgb(26 20 15 / .85); color: #F6EFE2; text-align: center; font-family: var(--font-serif); font-style: italic; }
.lightbox__count { display: block; font-family: var(--font-body); font-style: normal; font-size: .75rem; letter-spacing: .14em; color: #E2C27A; margin-top: .2rem; }
.lightbox button {
  position: fixed; display: grid; place-items: center; width: 2.9rem; height: 2.9rem; padding: 0; border-radius: 50%;
  border: 1px solid rgb(246 239 226 / .6); background: rgb(26 20 15 / .4); color: #F6EFE2; cursor: pointer;
}
.lightbox button:hover { background: rgb(246 239 226 / .15); }
.lightbox button:focus-visible { outline: 2px solid #F6EFE2; outline-offset: 3px; }
.lightbox button svg { width: 1.2rem; height: 1.2rem; }
.lightbox__close { top: 1rem; right: 1rem; }
.lightbox__prev { left: 1rem; top: 50%; translate: 0 -50%; }
.lightbox__next { right: 1rem; top: 50%; translate: 0 -50%; }
.lightbox button[hidden] { display: none; }
a[aria-haspopup="dialog"] { cursor: zoom-in; }

.side-nav { align-self: start; }
.side-nav h2 { font-size: .78rem; font-family: var(--font-body); font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--label); margin-bottom: .6rem; }
.side-nav ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--hair); }
.side-nav li { border-bottom: 1px solid var(--hair); }
.side-nav a { display: block; padding: .6rem 0; color: var(--ink); text-decoration: none; font-size: .95rem; }
.side-nav a:hover { color: var(--accent); }
.side-nav a[aria-current="page"] { color: var(--accent); font-family: var(--font-serif); font-style: italic; }

/* ---- Kapcsolat ---------------------------------------------------------- */
.contact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 3.5rem; padding-block: 1rem 2.5rem; }
.contact dl { margin: 0; display: grid; grid-template-columns: 9rem minmax(0, 1fr); border-top: 1px solid var(--hair); }
.contact dt, .contact dd { margin: 0; padding: .7rem 0; border-bottom: 1px solid var(--hair); }
.contact dt { font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--label); padding-top: .95rem; }
.map figure { margin: 0; }
.map img { width: 100%; outline: 1px solid var(--hair); outline-offset: 6px; }
.map figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .3rem 1rem; font-size: .8rem; color: var(--soft); margin-top: 1rem; }
.map .links { display: flex; flex-wrap: wrap; gap: .3rem 1.25rem; margin-top: .9rem; font-size: .92rem; }
.directions { margin-top: 1.5rem; font-size: .95rem; }

.form-section { padding-block: 2.5rem 4rem; border-top: 1px solid var(--hair); }
.form { max-width: 44rem; display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem 1.75rem; }
.field { display: grid; gap: .35rem; }
.field--wide { grid-column: 1 / -1; }
.field label { font-size: .88rem; font-weight: 700; }
.field .req { font-weight: 400; color: var(--soft); font-size: .82rem; }
.field input, .field textarea {
  font: inherit; color: var(--ink); background: var(--paper); border: 0; border-bottom: 1px solid var(--field);
  padding: .55rem .1rem; border-radius: 0; transition: border-color .2s, background .2s;
}
.field textarea { min-height: 9rem; resize: vertical; border: 1px solid var(--field); padding: .6rem .7rem; }
.field input:focus-visible, .field textarea:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; background: #fff; }
.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-privacy { grid-column: 1 / -1; font-size: .82rem; color: var(--soft); margin: 0; max-width: 60ch; }
.btn {
  justify-self: start; display: inline-flex; align-items: center; gap: .6rem; min-height: 2.9rem; padding: .6rem 1.7rem;
  font: inherit; font-family: var(--font-serif); font-size: 1.02rem; letter-spacing: .02em; color: var(--paper); background: var(--accent);
  border: 1px solid var(--accent); cursor: pointer; transition: background .2s;
}
.btn:hover { background: var(--accent-deep); }
.form-status { grid-column: 1 / -1; margin: 0; font-family: var(--font-serif); font-style: italic; color: var(--accent); min-height: 1.5em; }

/* ---- Jobb oldali sáv: minden modul egy egységben -------------------------------
   A sidebar pozíció moduljai (pl. a rovat almenüje: Választási információk és alpontjai) és az
   állandó blokkok (bemutató videó, TAO, közösségi oldalak, támogatók) egy halványan színezett
   oszlopban; bal szélén a végein elhalványuló arany hajszálvonal, a szakaszok között vékony vonal.
   Mobilon a tartalom után, a lábléc előtt. Nem ragadós: nem takarhatja el a fókuszt (AKM-44).
   Kontraszt a sáv alapján (#F7F1E5): tinta 14,0:1 · halvány 7,4:1 · link 8,0:1 · címke 4,9:1 */
.page__aside {
  position: relative; display: grid; min-width: 0;
  padding: .2rem 1.5rem .4rem 1.65rem; background: #F7F1E5;
}
.page__aside::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 1px; pointer-events: none;
  background: linear-gradient(180deg, transparent, var(--hair-gold) 12%, var(--hair-gold) 88%, transparent);
}
.page__aside > *, .allando > * { padding-block: 1.2rem 1.3rem; }
.page__aside > .allando { padding-block: 0; }
.page__aside > * + *, .allando > * + * { border-top: 1px solid var(--hair); }
/* A sáv címei ugyanazzal a betűvel, mint a tartalom címei (Lora) */
.allando__cimsor, .page__aside .side-nav h2 {
  margin: 0 0 .75rem; font-family: var(--font-serif); font-weight: 500; font-size: 1.3rem; line-height: 1.25;
  letter-spacing: 0; text-transform: none; color: var(--ink);
}
.page__aside .side-nav ul { border-top: 0; }
.page__aside .side-nav > ul > li:last-child { border-bottom: 0; }
.allando { display: grid; }
.allando__video { display: grid; color: var(--ink); text-decoration: none; }
.allando__video .eyebrow { justify-self: start; margin-bottom: .7rem; }
.allando__kep { position: relative; display: block; margin-bottom: .75rem; overflow: hidden; background: var(--walnut); outline: 1px solid var(--hair); outline-offset: 4px; }
.allando__kep img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; transition: transform .6s var(--ease); }
.allando__play {
  position: absolute; inset: 0; margin: auto; display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%;
  background: rgb(42 33 25 / .7); border: 1.5px solid rgb(255 255 255 / .9); color: #fff; transition: background .2s, scale .3s var(--ease);
}
.allando__play svg { width: 1.15rem; height: 1.15rem; margin-left: .16rem; }
.allando__cim { font-family: var(--font-serif); font-size: 1.15rem; line-height: 1.3; }
.allando__hol { justify-self: start; margin-top: .2rem; font-size: .85rem; color: var(--accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .22em; text-decoration-color: color-mix(in srgb, var(--accent) 45%, transparent); }
.allando__video:hover .allando__kep img { transform: scale(1.04); }
.allando__video:hover .allando__play { background: var(--accent); scale: 1.06; }
.allando__video:hover .allando__cim { color: var(--accent-deep); }
.allando__video:hover .allando__hol { text-decoration-color: currentColor; }
.allando__linkek, .allando__kozossegi, .allando__logok { list-style: none; margin: 0; padding-left: 0; display: grid; gap: .7rem; }
.allando__kozossegi { gap: .1rem; }
.allando__kozossegi a { display: flex; align-items: center; gap: .65rem; padding: .35rem 0; color: var(--ink); text-decoration: none; font-size: .95rem; line-height: 1.35; transition: color .2s; }
.allando__kozossegi a:hover { color: var(--accent-deep); }
.allando__kozossegi svg { width: 1.35rem; height: 1.35rem; flex: none; color: var(--accent); }
.allando__logok li { padding: .9rem; text-align: center; background: #fff; border: 1px solid var(--hair); }
.allando__logok img { width: 7.5rem; margin-inline: auto; }            /* 135 px: a Magyar Falu Programhoz legalább 100 px kell */
.allando__logok p { margin: .65rem 0 0; font-size: .8rem; line-height: 1.45; color: var(--soft); }
.allando .kiemelt { padding: .15rem 0 .2rem 1rem; background: none; border: 0; border-left: 2px solid var(--hair-gold); }
.allando .kiemelt:hover { background: none; border-left-color: var(--accent); }
.allando .kiemelt__cim { font-size: 1.12rem; }

.kiemelt { padding: .85rem 1rem .9rem; background: var(--paper); }
.allando .kiemelt__cim { font-size: 1.12rem; }

.kiemelt {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 1.25rem; align-items: center;
  padding: 1rem 1.25rem 1.05rem; background: var(--ivory); border: 1px solid var(--hair); border-left: 3px solid var(--accent);
  color: var(--ink); text-decoration: none; transition: border-color .2s, background .2s;
}
.kiemelt > :not(svg) { grid-column: 1; }
.kiemelt .eyebrow { justify-self: start; color: var(--accent); margin-bottom: .2rem; }
.kiemelt__cim { font-family: var(--font-serif); font-size: 1.25rem; line-height: 1.3; }
.kiemelt__leiras { margin-top: .2rem; font-size: .85rem; line-height: 1.45; color: var(--soft); }
.kiemelt svg { grid-column: 2; grid-row: 1 / span 3; width: 1.25rem; height: 1.25rem; color: var(--accent); transition: translate .25s var(--ease); }
.kiemelt:hover { background: var(--beige); border-color: var(--hair-gold); border-left-color: var(--accent-deep); color: var(--ink); }
.kiemelt:hover .kiemelt__cim { color: var(--accent-deep); }
.kiemelt:hover svg { translate: .2rem 0; }

/* ---- Lábléc ------------------------------------------------------------- */
.site-footer { background: var(--walnut); color: var(--cream); font-size: .9rem; }
.site-footer a { color: var(--cream); text-decoration-color: rgb(246 239 226 / .4); }
.site-footer a:hover { color: var(--gold-on-dark); text-decoration-color: currentColor; }
.site-footer :focus-visible { outline-color: var(--gold-on-dark); }
.site-footer .wrap { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 2rem 3rem; padding-block: 3rem 2.5rem; }
.site-footer h2 { font-size: .74rem; font-family: var(--font-body); font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-on-dark); margin-bottom: .9rem; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li { margin-bottom: .4rem; }
.site-footer address { font-style: normal; line-height: 1.75; }
.site-footer address a { overflow-wrap: anywhere; }
.footer-brand { display: flex; gap: 1.1rem; align-items: flex-start; }
.footer-brand img { width: 4.4rem; flex: none; }
.footer-brand > div { min-width: 0; }
.footer-brand .name { overflow-wrap: break-word; hyphens: auto; font-family: var(--font-serif); font-size: 1.25rem; color: var(--cream); margin: 0 0 .4rem; letter-spacing: 0; text-transform: none; font-weight: 500; }
.footer-bottom { border-top: 1px solid rgb(246 239 226 / .16); }
.footer-bottom .wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .4rem 2rem; padding-block: 1rem; font-size: .76rem; color: rgb(246 239 226 / .85); }
.footer-bottom p { margin: 0; }

/* ---- Joomla: oldalszerkezet --------------------------------------------- */
.page--single { grid-template-columns: minmax(0, 1fr); }
.page__main { min-width: 0; }
.home .page { padding-block: 0; }
.page .section-title h1 { margin: 1.1rem 0 .5rem; }
.home .section-title h1 { margin: 0 0 .55em; }
.stream-section { max-width: 54rem; }
.category-desc { max-width: var(--measure); color: var(--soft); }
.empty-note { font-family: var(--font-serif); font-style: italic; color: var(--soft); padding-block: 1.5rem; }
.pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1.5rem; margin-top: 1.75rem; }
.pager .more { margin-top: 0; }
.pager__count { font-size: .82rem; letter-spacing: .04em; color: var(--soft); }
html:not(.js) .tools { display: none; }

/* Kezdőkép: fekvő kép 3:2 arányban a szövegoszlop teljes szélességében, álló kép egészben, alacsonyabban */
.article-image { margin: 0 0 2.2rem; }
.article-image img { width: 100%; height: auto; outline: 1px solid var(--hair); outline-offset: 6px; }
.article-image--allo img { width: auto; max-width: 100%; max-height: 32rem; }
.article-image figcaption { margin-top: 1rem; font-family: var(--font-serif); font-style: italic; font-size: .9rem; line-height: 1.5; color: var(--soft); }

/* A cikk szövege, ahogy a szerkesztőben készül: az első bekezdés kiemelt bevezető */
.article__body > p:first-child { font-family: var(--font-serif); font-size: 1.22rem; line-height: 1.6; color: var(--ink); }
.article__body h3 { margin-top: 1.8rem; }
/* Rendeletek (az NJT szövegéből): a pontok és alpontok behúzva, a paragrafusok között kis térköz */
.article__body .rendelet-pont { margin-left: 1.5rem; }
.article__body .rendelet-alpont { margin-left: 3rem; }
.article__body h4 { margin: 1.6rem 0 .5rem; font-size: 1.05rem; }
.article__body img { margin-block: 1.5rem; }
.article__body figure { margin: 2rem 0; }
.article__body figcaption { font-size: .85rem; color: var(--soft); margin-top: .6rem; }
.article__body blockquote { margin: 1.8rem 0; padding: .2rem 0 .2rem 1.4rem; border-left: 1px solid var(--hair-gold); font-family: var(--font-serif); font-style: italic; color: var(--soft); }
.article__body hr { height: 1px; border: 0; margin: 2rem 0; background: var(--hair); }
.article__body table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; font-size: .92rem; }
/* A sablon minden táblázatot görgethető dobozba tesz (keskeny képernyőn), amely billentyűzettel is elérhető */
.article__body .tablazat { overflow-x: auto; margin: 1.5rem 0; }
.article__body .tablazat table { margin: 0; }
.article__body th, .article__body td { padding: .55rem .75rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--hair); }
.article__body th { font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--label); border-bottom-color: var(--hair-gold); }
.status-note { margin: 0 0 1rem; padding: .6rem 1rem; font-size: .9rem; background: #FFF4D6; border-left: 3px solid var(--label); }
joomla-hidden-mail { display: inline; }

/* Rendszerüzenetek (pl. az űrlap elküldése után) */
.notice { margin: 1.4rem 0 0; padding: .9rem 1.2rem; background: var(--paper); border: 1px solid var(--hair); border-left: 3px solid var(--label); }
.notice p { margin: 0; }
.notice .notice__title { margin-bottom: .25rem; font-size: .74rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--label); }
.notice--hiba { border-left-color: #A3261B; }
.notice--hiba .notice__title { color: #A3261B; }
.notice--siker { border-left-color: #3F6B2A; }
.notice--siker .notice__title { color: #3F6B2A; }

/* Űrlap: a Joomla mezői és ellenőrzése */
.field input, .field textarea { width: 100%; }
.field .invalid, .field [aria-invalid="true"] { border-color: #A3261B; }
.field label.invalid, .form-control-feedback { font-size: .82rem; color: #A3261B; }
.contact-page h1 { margin: 1.1rem 0 .9rem; }
/* ALTCHA robotszűrő („Nem vagyok robot”): a Joomla saját, külső szolgáltató nélküli megoldása */
altcha-widget {
  --altcha-border-width: 1px; --altcha-border-radius: 0; --altcha-max-width: 20rem;
  --altcha-color-base: var(--paper); --altcha-color-border: var(--field); --altcha-color-text: var(--ink);
  --altcha-color-border-focus: var(--focus); --altcha-color-error-text: #A3261B; --altcha-color-footer-bg: var(--beige);
  font-family: var(--font-body);
}
.contact-page .form-section { padding-bottom: 0; }

/* Oldalmenü: beágyazott pontok és címsorok */
.side-nav span { display: block; padding: .6rem 0; font-size: .95rem; color: var(--soft); }
.side-nav ul ul { padding-left: 1rem; border-top: 0; }
.side-nav li li { border-bottom: 0; }
.side-nav a[aria-current] { color: var(--accent); font-family: var(--font-serif); font-style: italic; }

/* Oldaltérkép */
.sitemap ul, .menu-list ul { list-style: none; margin: 0; padding: 0; }
.sitemap > ul { columns: 2 16rem; column-gap: 3rem; }
.sitemap > ul > li { break-inside: avoid; margin-bottom: 1.3rem; }
.sitemap > ul > li > a, .sitemap > ul > li > span { font-family: var(--font-serif); font-size: 1.15rem; }
.sitemap li li { padding: .2rem 0 .2rem 1rem; border-left: 1px solid var(--hair); }

/* Hibaoldal */
.error-page { max-width: var(--measure); padding-block: 3.5rem 4.5rem; }
.error-page h1 { margin: .6rem 0 .9rem; }
.error-debug { padding: 1rem; font-size: .8rem; white-space: pre-wrap; background: var(--beige); }

/* Karbantartás alatti oldal */
.offline { display: grid; place-items: center; min-height: 100vh; padding: 1.25rem; background: linear-gradient(180deg, #EEDFC0 0%, #E2CC9F 100%); }
.offline__box { width: min(100%, 30rem); padding: 2.5rem 2rem; text-align: center; background: var(--paper); border: 1px solid var(--hair-gold); box-shadow: 0 30px 60px -30px rgb(59 43 32 / .45); }
.offline__box img { width: 6rem; margin: 0 auto 1rem; }
.offline__box h1 { font-size: 1.8rem; }
.offline__login { margin-top: 1.5rem; text-align: left; }
.offline__login summary { cursor: pointer; font-family: var(--font-serif); font-style: italic; color: var(--accent); }
.offline .form { grid-template-columns: minmax(0, 1fr); margin-top: 1rem; }

/* ---- Reszponzív (320 px-től – AKM-24, UZM-30) ---------------------------
   A fejléc 44rem fölött mindig egy sorban marad (név · címer · képváltó),
   csak arányosan kisebb lesz; alatta egymás alá kerül: képváltó, címer, név. */
@media (max-width: 64rem) {
  .page, .contact { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
  .page__aside { margin-top: 0; }
  .page-head { position: relative; }
  .masthead, .masthead__inner { position: static; }
  .navbar__inner { justify-content: flex-start; }
  .tools { z-index: 25; top: auto; bottom: 0; right: max(1.25rem, (100vw - var(--wrap)) / 2); height: 3.3rem; padding: 0; border: 0; border-radius: 0; background: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .main-nav { position: static; }
  .main-nav__toggle {
    display: flex; align-items: center; gap: .6rem; min-height: 3.2rem; padding: 0 .25rem;
    font: inherit; font-family: var(--font-serif); font-size: 1.05rem; color: var(--cream); background: none; border: 0; cursor: pointer;
  }
  .main-nav__toggle svg { width: 1.2rem; height: 1.2rem; color: var(--gold-on-dark); }
  .main-nav__list { display: none; position: absolute; left: 0; right: 0; top: 100%; flex-direction: column; background: var(--paper); border-bottom: 1px solid var(--hair-gold); box-shadow: 0 18px 40px -18px rgb(59 43 32 / .45); }
  .main-nav.is-open .main-nav__list { display: flex; }
  html:not(.js) .main-nav__toggle { display: none; }
  html:not(.js) .main-nav__list { display: flex; position: static; box-shadow: none; }
  html:not(.js) .main-nav__item .submenu { display: block; }
  .main-nav__link, .main-nav__button { width: 100%; justify-content: space-between; color: var(--ink); border-bottom: 1px solid var(--hair); min-height: 3rem; padding-inline: 1.25rem; }
  .main-nav__link:hover, .main-nav__button:hover { color: var(--accent); }
  .main-nav__button svg { color: var(--label); }
  .main-nav__link::after, .main-nav__button::after { display: none; }
  .main-nav__list :focus-visible { outline-color: var(--focus); outline-offset: -3px; }
  .submenu { position: static; min-width: 0; box-shadow: none; border: 0; border-bottom: 1px solid var(--hair); background: var(--beige); }
  .submenu::before { display: none; }
}
@media (max-width: 64rem) and (min-width: 38rem) {
  /* Középső szélességen az állandó blokkok két oszlopban; az elválasztó vonal az első sor fölött elmarad */
  .allando { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2.5rem; align-items: start; }
  .allando > * { border-top: 1px solid var(--hair); }
  .allando > :nth-child(-n+2) { border-top: 0; }
}
@media (max-width: 52rem) {
  .entry { grid-template-columns: 3.8rem minmax(0, 1fr); gap: 1.1rem; }
  .entry__thumb { grid-column: 2; width: 100%; max-width: 20rem; }
  .site-footer .wrap { grid-template-columns: minmax(0, 1fr); }
  .form { grid-template-columns: minmax(0, 1fr); }
  .contact dl { grid-template-columns: minmax(0, 1fr); }
  .contact dt { border-bottom: 0; padding-bottom: 0; }
  .article__body td { hyphens: auto; overflow-wrap: break-word; }
}
@media (max-width: 50rem) {
  /* Mobil: alacsony fejléc – a képváltó a teljes szélességet kitölti, a címer és a név közvetlenül a képen
     ül; az idézet rejtve. A kép bal oldalát balról jobbra halványuló sötét fátyol takarja: a fehér név és
     a világos arany alcím a legvilágosabb fotó fölött is legalább 5:1 kontrasztú (a fátyol a felirat alatt
     legalább 70%-ban fedett). */
  .page-head { --mob-h: clamp(7rem, 5.5rem + 6vw, 8.5rem); }
  .masthead::before { display: none; }
  .masthead__inner { display: flex; align-items: center; min-height: 0; height: var(--mob-h); }
  .slideshow { position: absolute; inset: 0 0 auto 0; height: var(--mob-h); margin: 0; min-height: 0; }
  .slideshow__frame { -webkit-mask-image: none; mask-image: none; }
  .slideshow::after {
    content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
    background: linear-gradient(90deg, rgb(28 21 15 / .8) 0%, rgb(28 21 15 / .72) 45%, rgb(28 21 15 / .3) 75%, rgb(28 21 15 / 0) 100%);
  }
  .slideshow__toggle { right: .6rem; bottom: .6rem; }
  .brand {
    display: flex; align-items: center; gap: .6rem; position: relative; z-index: 2; height: calc(100% - 1.3rem); margin-left: .75rem; max-width: calc(100% - 3.9rem);
  }
  .masthead .cimer { order: 1; height: 100%; width: auto; margin: 0; filter: drop-shadow(0 2px 6px rgb(0 0 0 / .5)); }
  .masthead__text { order: 2; padding: 0; }
  .brand__name { font-size: clamp(1.55rem, 1.1rem + 2.2vw, 2.1rem); color: #fff; text-shadow: 0 1px 2px rgb(0 0 0 / .6), 0 0 14px rgb(0 0 0 / .35); }
  .brand__name:hover { color: #fff; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .15em; }
  .brand__name:focus-visible { outline-color: #fff; }
  .brand__sub { font-size: .6rem; letter-spacing: .16em; margin-top: .3rem; color: #F2DFA9; text-shadow: 0 1px 2px rgb(0 0 0 / .7); }
  .motto { display: none; }
  .fontsize legend, .kontraszt__felirat { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .kontraszt { padding-inline: .35rem; }
}
@media (max-width: 30rem) {
  h1, h2, h3 { hyphens: auto; }
  .tools { right: .75rem; }
  .brand__sub { letter-spacing: .1em; white-space: nowrap; }
  .entry { grid-template-columns: 3.1rem minmax(0, 1fr); gap: .9rem; padding: 1rem .9rem 1.05rem .8rem; }
  .entry h3 { font-size: 1.15rem; }
  .naptarlap__ho { padding-top: .45rem; font-size: .58rem; letter-spacing: .06em; }
  .naptarlap__nap { font-size: 1.45rem; padding-block: .32rem .4rem; }
  .entry__thumb { grid-column: 1 / -1; max-width: none; }
  .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
  .footer-brand { flex-direction: column; }
}

@media (max-width: 24rem) {
  .masthead .cimer { height: 72%; }
  .masthead__text { min-width: 0; }
  .brand { padding-right: .7rem; gap: .4rem; }
  .brand__name { font-size: 1.4rem; }
  .brand__sub { font-size: .55rem; letter-spacing: .05em; white-space: nowrap; }
}

/* ---- Magas kontrasztú megjelenítés (AKM-32) -------------------------------
   A kapcsoló a betűméret mellett van; a választást a böngésző helyi tárhelye őrzi (süti nélkül).
   Fekete alapon sárga szöveg, fehér hivatkozások, ciánkék fókusz. A színek változókból jönnek,
   itt csak a változókat és a beégetett színeket írjuk felül.
   Kontraszt fekete alapon: sárga #FFFF00 19,6:1 · fehér 21:1 · fókusz #00E5FF 13,9:1 · hiba #FF9B9B 10,1:1 */
html[data-kontraszt="magas"] {
  --ivory: #000; --paper: #000; --beige: #000; --sand: #000; --walnut: #000;
  --hair: #FFFF00; --hair-gold: #FFFF00; --ink: #FFFF00; --soft: #FFFF00; --label: #FFFF00; --field: #FFFF00;
  --accent: #FFFFFF; --accent-deep: #FFFFFF; --cream: #FFFF00; --gold-on-dark: #FFFF00; --focus: #00E5FF;
  color-scheme: dark;
}
html[data-kontraszt="magas"] body { background: #000; }
html[data-kontraszt="magas"] :focus-visible { outline-width: 3px; }
html[data-kontraszt="magas"] ::selection { background: #FFFF00; color: #000; }
html[data-kontraszt="magas"] a { text-decoration-color: currentColor; }
html[data-kontraszt="magas"] [class*="rovat--"] { --tipus: #FFFF00; }
html[data-kontraszt="magas"] .masthead { background: #000; border-bottom: 1px solid #FFFF00; }
html[data-kontraszt="magas"] .masthead::before, html[data-kontraszt="magas"] .navbar::after { display: none; }
html[data-kontraszt="magas"] .brand__sub, html[data-kontraszt="magas"] .motto, html[data-kontraszt="magas"] .motto figcaption,
html[data-kontraszt="magas"] .fontsize legend, html[data-kontraszt="magas"] .kontraszt, html[data-kontraszt="magas"] .footer-bottom .wrap { color: #FFFF00; }
html[data-kontraszt="magas"] .tools { background: #000; border-color: #FFFF00; }
html[data-kontraszt="magas"] .brand { background: rgb(0 0 0 / .92); border: 1px solid #FFFF00; padding: .3rem 1rem .3rem .35rem; }
html[data-kontraszt="magas"] .brand__name, html[data-kontraszt="magas"] .brand__sub { text-shadow: none; }
html[data-kontraszt="magas"] .navbar { border-color: #FFFF00; box-shadow: none; }
html[data-kontraszt="magas"] .main-nav__link:hover, html[data-kontraszt="magas"] .main-nav__button:hover { color: #FFFFFF; }
html[data-kontraszt="magas"] .naptarlap__ho { color: #000; }
html[data-kontraszt="magas"] .entry, html[data-kontraszt="magas"] .naptarlap, html[data-kontraszt="magas"] .submenu { box-shadow: none; }
html[data-kontraszt="magas"] .page__aside { background: #000; }
html[data-kontraszt="magas"] .page__aside::before { background: #FFFF00; }
html[data-kontraszt="magas"] .allando__logok p { color: #000; }        /* a logók fehér alapon maradnak (pályázati feltétel) */
html[data-kontraszt="magas"] .allando__play { background: #000; border-color: #FFFF00; color: #FFFF00; }
html[data-kontraszt="magas"] .status-note { background: #000; border: 1px solid #FFFF00; }
html[data-kontraszt="magas"] .notice--hiba, html[data-kontraszt="magas"] .notice--siker { border-left-color: #FFFF00; }
html[data-kontraszt="magas"] .notice--hiba .notice__title, html[data-kontraszt="magas"] .notice--siker .notice__title { color: #FFFF00; }
html[data-kontraszt="magas"] .field .invalid, html[data-kontraszt="magas"] .field [aria-invalid="true"] { border-color: #FF9B9B; }
html[data-kontraszt="magas"] .field label.invalid, html[data-kontraszt="magas"] .form-control-feedback { color: #FF9B9B; }
html[data-kontraszt="magas"] altcha-widget { --altcha-color-error-text: #FF9B9B; }
html[data-kontraszt="magas"] .offline { background: #000; }
html[data-kontraszt="magas"] .site-footer { border-top: 2px solid #FFFF00; }

/* ---- Windows nagy kontrasztú téma (forced-colors) ----------------------- */
@media (forced-colors: active) {
  .submenu, .att__badge, .naptarlap { border: 1px solid CanvasText; }
  .naptarlap__ho { border-bottom: 1px solid CanvasText; }
  .fontsize button[aria-pressed="true"], .kontraszt[aria-pressed="true"] { outline: 2px solid Highlight; }
  .page__aside { border-left: 1px solid CanvasText; }
  .allando__logok li { border: 1px solid CanvasText; }
}

/* ---- Nyomtatás (UZM-23) ------------------------------------------------- */
@media print {
  .navbar, .slideshow, .tools, .page__aside, .skip-link, .lightbox, .form-section, .pager { display: none !important; }
  body { background: #fff; color: #000; font-size: 11pt; }
  .page { display: block; }
  a { color: #000; }
  .article a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .85em; }
  .site-footer { background: none; color: #000; border-top: 1px solid #000; }
  .site-footer a, .site-footer h2 { color: #000; }
}
