/* Fly Away – Termik design rendszer
   Minden szín token. Világos = :root, sötét = [data-theme="dark"] (és rendszerbeállítás, ha nincs választás). */
:root{
  --bg:#F2F5F1; --surface:#FFFFFF; --surface-2:#E8EDE7; --ink:#13252E; --muted:#51636D; --line:#D3DBD4;
  --sky:#2B78CC; --sky-ink:#FFFFFF; --sky-soft:#DCEBFA; --sky-deep:#15477D;
  --grass:#3E8A4E; --grass-ink:#FFFFFF; --grass-soft:#DDEFD9;
  --sand:#EBDDBF; --sand-ink:#3A2F14;
  --red:#DB352B; --red-ink:#FFFFFF;
  --weekend:#F9DCD6; --holiday:#EE9A8E;
  --shadow:0 18px 40px -28px rgba(19,37,46,.45);
  --r-tile:0;   /* founder 2026-10-01: „vegyük le az összeset” – sarok nincs, sehol */ --r-ctl:0;
  /* BETŰ: EGY család, az Oxanium (founder 2026-10-01, „5 · Oxanium”) – minden szerep ugyanaz; a tokenek
     megmaradnak, hogy egy szerep később külön állítható legyen. Dőlt NINCS (a betuk.css csak normált ad).
     A verem MÁSODIK tagja az `Oxanium-tartalek`: NEM új betűkép, hanem az Oxanium DOBOZÁRA illesztett
     helyi tartalék (a betuk.css írja le, founder-döntés 2026-10-19, FLYA-388). A sorrend kötött: amíg a
     woff2 meg nem jött, a tartalék áll a szövegen, utána az Oxanium – és a csere így nem mozdítja a lapot. */
  --f-display:"Oxanium","Oxanium-tartalek",system-ui,sans-serif; --f-body:"Oxanium","Oxanium-tartalek",system-ui,sans-serif; --f-racs:"Oxanium","Oxanium-tartalek",system-ui,sans-serif; --f-menu:"Oxanium","Oxanium-tartalek",system-ui,sans-serif;
  --f-cim:"Oxanium","Oxanium-tartalek",system-ui,sans-serif; --f-gal:"Oxanium","Oxanium-tartalek",system-ui,sans-serif;
  /* Műszer és széltérkép (2026-09-22). A sáv áttetsző, ezért a háttér átüt rajta; a varió borostyán, hogy a
     kék/zöld jelölőktől elkülönüljön. Az --aramlat/--fade RGB-hármas, mert a canvas rgba()-ban rajzol. */
  --muszer-bg:rgba(255,255,255,.62); --muszer-line:rgba(19,37,46,.10);
  /* A műszer a KIEMELÉS színét viszi (founder 2026-09-22: „mindenhol legyen egyforma”) – a csúszka gombja,
     a varió száma és a „m” / „m/s” feliratok. Ezért nincs saját értéke, és a sötét blokkokban sincs. */
  --vario:var(--kiemeles); --vario-halo:color-mix(in srgb, var(--kiemeles) 22%, transparent);
  --aramlat:21,71,125; --aramlat-a:.42; --fade:242,245,241; --rail:56px;
  /* A FOTÓN ÁLLÓ FEHÉR SZÖVEG ÁRNYÉKA – EGY paraméter (founder-döntés 2026-10-16, Kinga kérése, FLYA-288).
     2026-10-17 óta a fotókon NINCS sötétítő réteg, tehát az olvashatóságot egyedül ez az árnyék tartja.
     Az értéke a RÉGI szlogen-árnyék (`.photo .headrow .slogan`, 2026-09-22): egy közeli, kemény él a
     betű körül + egy nagy, lágy halo. A `.photo` elemen áll, és ONNAN ÖRÖKLŐDIK minden gyerekre –
     ezért nem kell elemenként felsorolni, és egy új felirat magától árnyékos lesz. A saját hátterű
     elemek (címke, gomb, pirula, dátum-kapszula) alább VISSZAVESZIK `none`-ra. */
  --foto-arnyek:0 1px 3px rgba(0,0,0,.65),0 0 18px rgba(0,0,0,.45);
  /* A KIEMELÉS SZÍNE – EGY paraméter az egész oldalra (founder 2026-09-22). Ez van a gombokon, az
     aláhúzásokon, a kijelölt szűrők keretén, a legolvasottabb számokon és a fókuszkereten.
     MINDKÉT TÉMÁBAN UGYANAZ, ezért a sötét blokkokban SZÁNDÉKOSAN nincs újradefiniálva.
     Az itteni érték csak a TARTALÉK: élesben a `assets/szinek.css` írja felül, amit a telepítés
     generál a `data/beallitasok/megjelenes.json`-ból (admin → Kezdőlap → „A kiemelések színe”).
     A --cta megmaradt ÁLNÉVNEK, hogy a gombok szabályai ne mozduljanak; új szabály már --kiemeles-t használ.
     PIROS MARAD minden JELZŐ: akció-pirula, logó, ma-vonal, .rep-card .datum, a szélzsák csíkjai.
     (A „betelt" pirula 2026-09-30-án megszűnt – helyette kék „Érdeklődj".) */
  --kiemeles:#36DED3; --kiemeles-ink:#13252E;
  --cta:var(--kiemeles); --cta-ink:var(--kiemeles-ink);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0E181D; --surface:#17252C; --surface-2:#1E3038; --ink:#E7EEF0; --muted:#9CB0B9; --line:#2A3D46;
    --sky:#2467B2; --sky-ink:#FFFFFF; --sky-soft:#16324C; --sky-deep:#0F2D52;
    --grass:#2F7240; --grass-ink:#FFFFFF; --grass-soft:#183223;
    --sand:#3A3830; --sand-ink:#EEE7D5;   /* „hamvas homok” (GitHub #498, founder 2026-10-30): hidegebb, a felületekhez közelebb; szöveg 9,52:1 (a barnás elődje 9,77:1) */
    --red:#EF5547; --red-ink:#1A0806;
    --weekend:#3A2522; --holiday:#84352B;
    --shadow:0 18px 40px -28px rgba(0,0,0,.8);
    --muszer-bg:rgba(23,37,44,.66); --muszer-line:rgba(231,238,240,.10);
    --aramlat:156,190,225; --aramlat-a:.34; --fade:14,24,29;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0E181D; --surface:#17252C; --surface-2:#1E3038; --ink:#E7EEF0; --muted:#9CB0B9; --line:#2A3D46;
  --sky:#2467B2; --sky-ink:#FFFFFF; --sky-soft:#16324C; --sky-deep:#0F2D52;
  --grass:#2F7240; --grass-ink:#FFFFFF; --grass-soft:#183223;
  --sand:#3A3830; --sand-ink:#EEE7D5;   /* #498 – a fenti párja, a kettő együtt mozog */
  --red:#EF5547; --red-ink:#1A0806;
  --weekend:#3A2522; --holiday:#84352B;
  --shadow:0 18px 40px -28px rgba(0,0,0,.8);
  color-scheme:dark;
  --muszer-bg:rgba(23,37,44,.66); --muszer-line:rgba(231,238,240,.10);
  --aramlat:156,190,225; --aramlat-a:.34; --fade:14,24,29;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 var(--f-body);-webkit-font-smoothing:antialiased;font-synthesis:none}
/* A SZÖVEG A SZÉLESSÉGGEL NŐ (founder 2026-10-03: „Minden oldalon arányosan növekedhet a szöveg”, választása: 16 → 18 px): 1000 px-ig 16,
   onnan egyenletesen 18-ig a teljes, 1600 px-es keretnél (1744 px-es ablak). A rögzített px-es méretek (menü, címek, pirulák) nem változnak,
   a folyó szöveg és minden örökölt méret igen. */
@media (min-width:1001px){ body{font-size:clamp(16px,calc(16px + (100vw - 1000px) * 2 / 744),18px)} }
/* Dőlt betű nincs: az Oxaniumnak nincs dőlt változata, és ferdét sem gyártunk – a kiemelő elemek is egyenesek. */
em,i,cite,var,dfn,address{font-style:normal}
img{max-width:100%;display:block}
a{color:inherit}
[hidden]{display:none!important}
:focus-visible{outline:2.5px solid var(--kiemeles);outline-offset:3px;border-radius:0;box-shadow:0 0 0 1px var(--ink)}
/* A KERET (founder 2026-10-03: „nagyobbak a csempék… jobban töltse ki az oldalt, a főmenü is… Mindenhol egyforma közöket”):
   EGYETLEN köz, `--koz` = 16 px – a lapszéleken (bal oldalon a műszersáv szélétől: a `--eltol` szabály lent), a fejléc és a
   csempék között, a csempék között. A tartalom 1600 px-ig nő, utána középen áll. A terv („F · Nagy kettő”, Bento-főoldal)
   arányrendszere. A szöveg sorhossza NEM nő: a próza a `ch`-alapú szélességén marad (.prose p 66ch), a részletoldal
   szövegdoboza (.c-tartalom) 1240 px. Előtte: 1240 px és clamp(16px,3vw,32px). */
:root{--koz:16px}
.page{max-width:calc(1600px + 2 * var(--koz));margin:0 auto;padding-inline:var(--koz)}

/* ───────── A JS-TŐL FÜGGŐ RÉSZ A RAJZOLÁS VÉGÉIG REJTVE, HELYFOGLALÁSSAL (FLYA-382 · GitHub #450) ─────────
   founder-döntés 2026-10-18 („B” út): amit a JS átrajzol, az addig nem látszik, amíg kész nem lesz – a
   HELYE viszont le van foglalva, tehát a lap nem ugrik össze. A szabály HÁROM darabja és a miértje a
   `site/assets/flyaway.js` → `rajzolKesz()` fejében áll egy helyen; itt csak a CSS-oldal:

     · `html.js` – a jelet a `<head>` első, szinkron szkriptje teszi fel. JS NÉLKÜL a szabály NEM HAT, és
       az előrenderelt tartalom ugyanúgy látszik, mint eddig (a keresőnek semmi nem változik).
     · `visibility:hidden` – NEM `display:none`: a hely megmarad, a JS nélküli tartalom magasságát
       foglalja. Ahol a kész elrendezés magassága ettől lényegesen eltér, a tartó külön `min-height`-ot
       kap (lásd a jelölt tartók szabályait – a mérce a CLS).
     · A BIZTONSÁGI IDŐZÍTŐ 1,5 s, ÉS SZÁNDÉKOSAN CSS-BŐL JÖN (founder-döntés 2026-10-18): 0 s hosszú,
       1,5 s késleltetésű animáció `forwards` kitöltéssel – 1,5 s után a `visibility` `visible` lesz, és
       az is marad. Egy JS-es `setTimeout` ugyanazzal a hibával veszne el, amitől védeni akar (ha a
       rajzoló szkript el sem indul vagy kivételre fut, a rejtés örökre bent maradna).
   A `prefers-reduced-motion` ezt SZÁNDÉKOSAN nem kapcsolja ki: a `visibility` nem mozgás, és a
   kikapcsolása a biztonsági időzítőt vinné el. */
@keyframes fa-rajzol-kesz{to{visibility:visible}}
html.js [data-js-rajzol]{visibility:hidden;animation:fa-rajzol-kesz 0s linear 1.5s forwards}
/* A LÁBLÉC-TARTÓ A GALÉRIA-ALBUM LAPJÁN: `display:none`, NEM `visibility:hidden` (FLYA-451 · SEO-25 ·
   GitHub #40 utólelet, founder-döntés 2026-10-24: „rejtés a rajzolásig … Min-height helyfoglalás nincs,
   és üres sávot sem teszünk be”).
   MIÉRT MÁS A MECHANIZMUS, MINT A TÖBBI JELÖLT TARTÓNÁL. A fenti szabály a HELYET megtartja, és a
   biztonsági időzítő 1,5 s után MEGMUTATJA a tartót. A láblécnél ez a kettő együtt baj: a `<main>` a
   JS-ben 468 px-ről a teljes album-nézetre cserélődik (4 893 px az andaluzián), és Slow 4G-n a nézet
   csak 1,7 s-nál készül el – a lábléc 1,5 s-kor LÁTHATÓAN megjelenik, majd kétszer elmozdul (előbb
   össze, majd szét a magasodó `<main>` alatt): mérve 1280 px-en **0,96–1,11 CLS**, pontosan a jegy
   tárgya. A `display:none` nem tart helyet (a founder kérése), így a mozdulat rejtett VAGY NEM LÉTEZŐ
   elemen történik. A BIZTONSÁGI HÁLÓ a lap saját, parszi közben futó szkriptje – **az ALBUM-ÚT
   ÉLETCIKLUSÁHOZ kötve, nem a `load`-hoz** (FLYA-451 2. kör, QA-bírálat): a `load` + 1,5 s csak akkor
   veszi le a jelölést, ha az album-út el sem indult (pl. a `flyaway.js` be sem töltött); ha él, a
   felszabadítás az övé (`rajzolKesz()` a rajzolás végén, illetve a hibaágban). A vak időzítő ugyanis a
   LASSÚ adatot vágta el: mérve 2 s késleltetett `galeria.json` mellett a lábléc 1 549 ms-kor megjelent,
   a nézet 2 057 ms-kor készült el, a CLS 0,2489 lett – a jegy tárgya jött vissza. A többi jelölt tartó
   1,5 s-os CSS-időzítője változatlan. `html.js` nélkül – kereső, JS nélküli böngésző – a szabály nem
   hat: a látvány változatlan. */
html.js [data-footer][data-js-rajzol]{display:none}
/* HELYFOGLALÁS AZ ÜRESEN ÁLLÓ TARTÓKNAK, CSAK `html.js` MELLETT. A `visibility:hidden` csak azt a helyet
   tartja meg, ami MÁR megvan – ahol a JS nélküli jelölésben a tartó ÜRES (a tartalom teljes egészében
   JS-ből jön), ott nincs mit megtartani, és a megjelenéskor a lap alja ugrik. Az ilyen tartó ezért a
   KÉSZ tartalma nagyságrendjében foglal helyet, amíg üres – és mivel a szabály `html.js` alatt áll,
   a JS NÉLKÜLI lap pontosan úgy rajzolódik, mint eddig (a `ssg_lenyomat` mércéje).
   A `100vh` nem szemmérték: ennyitől a lap alja MINDKÉT állapotban a hajtás alatt marad, tehát a
   maradék elmozdulás a nézeten kívül esik, és a CLS-be nem számít (mérve `/jelentkezes/`: 0,2304 → 0). */
html.js #apply[data-js-rajzol]:empty{min-height:100vh}
html.js .rep-count[data-js-rajzol]:empty{min-height:10px}   /* a Repertoár darabszáma – a KIRAJZOLT magassága 1280 és 390 px-en is 10 px (mérve) */
/* A PILLANATOK KÉPSORÁNAK HELYE (FLYA-421, 2026-10-20) – EGY ARÁNY, NEM HÁROM SZÁM.
   MI VOLT ITT 2026-10-20-TÓL (FLYA-387): a TELJES szakaszt egy mért `min-height` foglalta
   (`html.js [data-pillanatok][data-js-rajzol]:empty` – 243 / 210 / 260 px, a sávonkénti legkisebb
   magasság). A szám azért nem volt jó, amit a FLYA-407 szabálya kimond: a foglalt magasság 32–50 %-a a
   SZERKESZTŐ adatából állt (a szakaszfej 1280 px-en 81,5 px, 390 px-en 131,4 px, mert ott a mai bevezető
   négy sorba tördel). A szakaszfejet ezért a TELEPÍTÉS rajzolja elő (`kozos/csempek_statikus.mjs` ↔
   `site/assets/kockak.js` → `pillanatok`), és a foglalás a KÉPSORRA szűkült: annak a magassága
   KIZÁRÓLAG a nézettől függ, mert a cella arányát a `.falsor .falkep{aspect-ratio:3/2}` kötve tartja
   (FLYA-405).
   ÉS EZÉRT NEM SZÁM A FOGLALÁS SEM: a `::before` a rács SAJÁT cellája – egy rácselem egyetlen sávban,
   `aspect-ratio:3/2`-vel –, tehát a magasságát UGYANAZ a mértan adja, mint a kész sorét (az `auto-fill`
   a sávokat az elemszámtól függetlenül nyitja, lásd a `.falsor` szabályát lentebb). A `content` nem
   szünteti meg a `:empty`-t: az a DOM gyerekeiről szól, a pszeudó-elem nem gyerek.
   MÉRVE 2026-10-20 a `/csapatunk/` lapon, 129 szélességen (320–1600 px, 10 px-es lépték,
   `--hide-scrollbars`), a foglalás és a KIRAJZOLT sor magasságát összevetve:
     ez az alak:        legnagyobb eltérés 0,0 px · túlfoglalás 0 szélességen
     három `min-height`: legnagyobb eltérés 101,3 px · túlfoglalás 7 szélességen (VISSZAUGRÁS)
   (a sávonkénti legkisebb sor-magasság 132 / 101,1 / 101,8 px; a jegy javasolt 154 / 118 / 116 px-e a
   1280 / 768 / 390 px-en MÉRT érték, sávon belül tehát túlfoglalt volna.)
   A foglalás a `data-js-rajzol` jelöléssel EGYÜTT kerül le (`rajzolKesz`), tehát a kép nélküli
   (`el.hidden`) ág sem hagy üres hézagot, és `html.js` nélkül (kereső) a szabály nem is hat. */
html.js .falsor[data-js-rajzol]:empty::before{content:"";aspect-ratio:3/2}
/* A HELYFOGLALÁS TELEFONON A HAT KÉP MAGASSÁGA (a `--pill-cel:6` párja; a szám a SZÉLESSÉGTŐL függ, nem a tartalomtól – a cella a rács
   teljes szélességét fogja, `grid-column:1/-1`; W = a rács szélessége = nézet − 32 px; az oszlop legalább 150 px, a köz 10 px):
   · 1 oszlop (nézet ≤ 341 px): 6 sor × 2W/3 + 5 × 10 = 4W + 50 → arány 1/4 + 50 px párna;
   · 2 oszlop (342–501 px): 3 sor × (W−10)/3 + 2 × 10 = W + 10 → arány 1 + 10 px;
   · 3 oszlop (502–640 px): 2 sor × 2(W−20)/9 + 10 = 4W/9 + 10 − 80/9 → arány 9/4 + (10 − 80/9) px.
   Mérve: a foglalás és a kész sor 320 / 390 / 640 / 768 px-en 0 px-re egyezik. */
@media (max-width:640px){ html.js .falsor[data-js-rajzol]:empty::before{grid-column:1/-1;aspect-ratio:9/4;padding-bottom:calc(10px - 80px / 9)} }
@media (max-width:501px){ html.js .falsor[data-js-rajzol]:empty::before{aspect-ratio:1;padding-bottom:10px} }
@media (max-width:341px){ html.js .falsor[data-js-rajzol]:empty::before{aspect-ratio:1/4;padding-bottom:50px} }
/* A HÍREK CÍMKESORA – A HELYFOGLALÁS 2026-10-20 (FLYA-407) ÓTA NEM `min-height`, HANEM ELŐRENDERELÉS.
   MI VOLT ITT 2026-10-19-TŐL (FLYA-382): a sor JS-only volt, ÜRESEN állt a jelölésben, és a helyét egy
   mért `min-height:20px` tartotta – ennyi a KIRAJZOLT sor 1280 px-en (1080×20 px, 12 címkével). A szám
   1280 px-en jó volt (`/hirek/` CLS 0,2160 → 0,0029), 390 px-en viszont NEM: ott ugyanaz a 12 címke NÉGY
   sorba tördel (96 px), a 20 px-es foglalás tehát 76 px-et hagyott a lap aljának. A FLYA-382 azt mérte,
   hogy 390 px-en a CLS „0,0000 előtte és utána” – AZ A MÉRÉS HIBÁS VOLT: a fejléc akkori 0,26-os padlója
   (FLYA-400) alá szorult, és a `#szurok`/`#lista` elmozdulás-pontszáma a forrás-bontásban látszott csak.
   Újramérve 2026-10-20 (390 px, Slow 4G + 4× CPU-fék, 3 futás mediánja): `/hirek/` 0,0583,
   `/hirek/sikerek/` 0,0796, `/hirek/programok/` 0,0761, `/hirek/pilotainfo/` 0,0741.
   AMIÉRT EGY SZÁM NEM IS LEHETETT JÓ: a sor magassága a nézet szélességétől ÉS a címkék számától és
   hosszától függ (a címkéket a szerkesztő adja a cikkek `temak` mezőiben) – a 12 címke 390 px-en négy,
   1280 px-en egy sor. A megoldás ezért a tartalom: a sort a TELEPÍTÉS rajzolja elő (`kockak.js` ↔
   `kozos/csempek_statikus.mjs` → `hirCimkesor()`), rangsor nélküli renddel, a mért rangsor pedig csak
   ÁTRENDEZ – a hely így a JELÖLÉSBEN áll, nem egy számban. A `min-height` szabály ezzel kiesett.
   A SAJÁT SOR MARAD (`flex-basis:100%`, 701 px fölött): a `.under` `flex-wrap:wrap`-es sor, és a Hírek
   lapján a kitöltött címkesor (1080 px) a darabszámot (126 px) a MÁSODIK sorba tolja, a ROVATLAPOKON
   viszont ELFÉR mellette – a szabály nélkül a rovatlapok látványa változna meg.
   A `html.js` KAPU LEKERÜLT RÓLA: csak azért volt ott, hogy a JS NÉLKÜLI (üres soros) lap ne mozduljon
   el a régitől. A sor ma a jelölésben is KÉSZEN áll, tehát a kapuval a kereső és a JS-t nem futtató
   böngésző MÁST látna, mint a látogató (a darabszám a sor mellett, nem alatta) – egy forrás, egy
   látvány. A látogató látványa nem változik. */
@media (min-width:701px){
  .under > .tagrow{flex-basis:100%}
}
h1,h2,h3{font-family:var(--f-display);letter-spacing:-.02em;text-wrap:balance;margin:0}
/* A `p`-re váltott segéddoboz-címek (FLYA-457 · SEO-13): ugyanaz a betű, mint a h2/h3-é. KÜLÖN sor, mert
   a `h1, h2, h3` kritikus listasora a saját alakját hordozza, és a listát nem írjuk át feleslegesen. */
.card-cim,.vj-cim,.cta-cim{font-family:var(--f-display);letter-spacing:-.02em;text-wrap:balance;margin:0}
.eyebrow{font:700 12px/1.35 var(--f-body);letter-spacing:.12em;text-transform:uppercase;opacity:.8;margin:0}

/* ---------- fejléc ---------- */
/* A teljes fejléc (gyorslinkek + főmenü) görgetéskor is a helyén marad, a prototípus-sáv alatt. Az oldal háttérszínét kapja teljes szélességben,
   hogy a tartalom ne üssön át alatta. Keskeny képernyőn (hamburger-menü) csak a főmenü sora ragad: a gyorslinkek kigördülnek, hogy ne vegyék el a képernyőt.
   A --fej-h / --util-h értékét a flyaway.js méri; ezekhez igazodnak a ragadós oldalsávok és a horgonyok. */
html{overflow-x:clip}
header[data-header]{position:sticky;top:var(--proto-h,0px);z-index:40;padding-bottom:10px;margin-bottom:-10px}
/* A FEJLÉC HELYÉT 2026-10-02 ÓTA EGY `:empty` MIN-HEIGHT FOGLALTA LE (founder: „Villan egyet… mintha
   minden alkalommal újra renderelné a teljes oldalt”): a fejlécet a flyaway.js töltötte ki, és amíg üres
   volt, a tartalom a lap tetejére rajzolódott, majd a fejléc megérkeztekor ~114 px-rel lejjebb UGROTT. A
   HÁROM `:empty` SZABÁLY 2026-10-13-án (FLYA-165 · SEO-03) KIKERÜLT: a fejléc jelölése a kiszolgált
   HTML-ben áll (a telepítés írja be, `kozos/vaz.mjs`), tehát a `[data-header]` SOHA nem üres – a szabályok
   egyetlen lapon sem illeszkedtek volna többé, viszont azt sugallták, hogy a fejléc még JS-ből jön. Az
   ugrás maga a gyökerénél szűnt meg: nincs mire várni.
   A MORZSAMENÜ a tartalomból a fejlécbe költözik (`morzsaFel`), ezért a tartalomban nem foglal helyet. */
main .crumbs{display:none}
/* ───── A LAP LÁTHATÓ H1-e: „SZERÉNY CÍMKE” (founder-döntés 2026-10-10, B változat – FLYA-119 · SEO-05) ─────
   Ahol a lapnak nincs képes fejsáva (Főoldal, Galéria, album-nézet), ott a `<main>` ELSŐ eleme ez a kis,
   nagybetűs, ritkított címke – balra (founder: szöveg balra fel). A NAGYBETŰT A CSS ADJA: a DOM-ban a
   rendes, kis- és nagybetűs mondat áll, hogy a kereső és a felolvasó azt kapja. A szín a lap szövegszíne
   (nem a türkiz – az az albumszámlálóé).
   A FELSŐ MARGÓ a rács SAJÁT felső margója (`--koz`): a címke pontosan oda kerül, ahol eddig a rács teteje
   állt, a rács pedig a címke magasságával csúszik lejjebb (mérve: 1280 px-en 170 → 203 px, 33 px). */
.lap-h1{font:600 14px/1.2 var(--f-body);letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin:var(--koz) 0 12px;overflow-wrap:anywhere}
/* A GALÉRIÁN a H1 és az albumszámláló EGY SOR: a cím balra, a darabszám jobbra, függőlegesen középen
   (founder-döntés 2026-10-10). Telefonon is egy sorban marad, ha elfér; ha nem, a `flex-wrap` a cím alá
   teszi a darabszámot. A sor margója a régi `.gal-szam`-é, hogy a lap mértana ne mozduljon. */
.lap-fejsor{display:flex;justify-content:space-between;align-items:center;gap:8px 16px;flex-wrap:wrap;margin:28px 0 12px}
/* A SOR GYEREKEINEK NINCS SAJÁT MARGÓJA – a két osztály NEVESÍTVE is szerepel, mert a `.gal-szam` 28/12 px-es
   margója ebben a fájlban LENTEBB áll, és puszta `.lap-fejsor>*` mellett (azonos fajsúly, későbbi sor) AZ
   nyerne: a darabszám 8 px-rel a cím alá csúszott (mérve, 2026-10-10). */
.lap-fejsor>*,.lap-fejsor>.lap-h1,.lap-fejsor>.gal-szam{margin:0}
@media (max-width:700px){ .lap-h1{font-size:13px} }
/* A SZKRIPTBŐL RAJZOLT LAPOKON (Klubélet, Felszerelés… – a <main> üresen érkezik, a tartalmat a landing.js tölti be) a lábléc addig a fejléc
   alá ugrott, majd a tartalom megérkeztekor a képernyő alá – mérve: 50–250 ms-ig a képernyőn állt (y 154). Amíg a <main> üres, egy
   képernyőnyi helyet foglal, így a lábléc végig a képernyő alatt marad. */
main:empty{min-height:100vh}
/* A „KÖVETKEZŐ TÚRÁINK” DOBOZ a kártyáit később kapja meg (az időpontok és a galéria lekérése után): addig 0 px magas volt, és a
   megérkezéskor 370–1030 px-rel lejjebb tolta az alatta lévőket (mérve a Klubéleten). Üresen ezért a kártyasor MÉRT magasságát foglalja:
   három kártya egy sorban 372 px; 900 px alatt 2+1 (666); 560 px alatt egymás alatt (990) – 2026-10-03, a növő betűvel és a 16 px-es közzel újramérve. A bevezető szöveg és a jelmagyarázat
   lapfüggő – a maradék mozgás legfeljebb ~45 px. Ha nincs jövőbeli túra, a doboz eltűnik (flyaway.js → `hidden`). */
[data-kovetkezo]:empty{margin-top:48px;min-height:372px}   /* 2026-10-03 (18-ig növő betű, 16 px köz): 370–374 asztalon */   /* a 48 px a kitöltött doboz fejének felső margója – az is a hely része */
.bento>[data-kovetkezo]:empty{margin-top:0;min-height:408px}   /* a Főoldalon rács-elemként áll: ott a margó a dobozon BELÜL marad */
@media (max-width:900px){ [data-kovetkezo]:empty{min-height:666px} .bento>[data-kovetkezo]:empty{min-height:698px} }
@media (max-width:560px){ [data-kovetkezo]:empty{min-height:990px} .bento>[data-kovetkezo]:empty{min-height:1013px} }
header[data-header]::before{content:"";position:absolute;inset:0 calc(50% - 50vw);background:var(--bg);z-index:-1}
:root{--horgony:calc(var(--fej-h,130px) + var(--proto-h,0px) + 16px)}
[id]{scroll-margin-top:var(--horgony)}
@media (max-width:1080px){header[data-header]{top:calc(var(--proto-h,0px) - var(--util-h,0px))}}
.util{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--muted);padding-block:10px}
.util nav{display:flex;gap:6px 18px;flex-wrap:wrap;align-items:center}
.util a{text-decoration:none}.util a:hover{color:var(--ink);text-decoration:underline}
/* A GYORSLINKEK ÉS A BEÁLLÍTÁSOK EGY CSOPORTBAN, JOBBRA (founder 2026-09-29: „A GYIK, Galéria, FAdmin
   kerüljön át a másik oldalra az EN felirat elé"). A bal oldalon a morzsamenü helye áll. */
.util-jobb{display:flex;align-items:center;gap:6px 18px;flex-wrap:wrap;justify-content:flex-end}
.morzsa-hely{min-width:0}
.morzsa-hely .crumbs{margin:0}   /* a tartalomban 22 px-es felső margója volt – a sávban nem kell */
@media (max-width:700px){
  /* Telefonon a kettő nem fér egymás mellé (mérve 390 px-en: morzsamenü 326 px, a linkek ~250 px,
     a sáv 358 px), ezért KÜLÖN SORBAN állnak: fent a linkek, alattuk a teljes morzsamenü
     (founder-döntés 2026-09-29). A DOM-sorrend marad, csak a megjelenítési sorrend fordul. */
  .util-jobb{order:1;flex-basis:100%;justify-content:flex-start}
  .morzsa-hely{order:2;flex-basis:100%}
}
.theme{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:var(--r-ctl);padding:5px 12px 5px 8px;font:600 12.5px/1 var(--f-body);cursor:pointer}
.theme svg{width:16px;height:16px}
/* SIKLÓERNYŐS EGÉRMUTATÓ (founder 2026-10-01, „E” változat; Planner-átadó ATADAS-kurzor.md). 2026-10-04 óta MINDEN lapon (előtte csak a Főoldalon), csak
   egérrel/érintőpaddal (`pointer:fine`), és csak ha a látogató nem kapcsolta ki (`data-kurzor="ki"` a gyökéren). A kattintópont
   a Y bal alsó vége (11 30); a jel a pont FÖLÖTT áll, nem takarja, amire kattintasz. A `*` azért kell, mert a linkek és gombok
   saját `cursor:pointer`-t kapnak – a founder döntése, hogy ott is a jel álljon. Szövegmezőben a szövegkurzor marad.
   32 px-nél nagyobb kép NEM mehet: a Chrome az ablak széléhez érve elrejti. */
/* 2026-10-04 (founder: „A siklóernyős kurzor eltűnt, javítsd” – az új lapokon sosem volt; döntés: MINDEN nyilvános lapon legyen, nem csak a Főoldalon). */
@media (pointer:fine){
  :root:not([data-kurzor="ki"]) body,
  :root:not([data-kurzor="ki"]) body *{
    cursor:url(/img/kurzor/kurzor-vilagos.png) 11 30,auto;
    cursor:image-set(url(/img/kurzor/kurzor-vilagos.png) 1x,url(/img/kurzor/kurzor-vilagos@2x.png) 2x) 11 30,auto}
  :root[data-theme="dark"]:not([data-kurzor="ki"]) body,
  :root[data-theme="dark"]:not([data-kurzor="ki"]) body *{
    cursor:url(/img/kurzor/kurzor-sotet.png) 11 30,auto;
    cursor:image-set(url(/img/kurzor/kurzor-sotet.png) 1x,url(/img/kurzor/kurzor-sotet@2x.png) 2x) 11 30,auto}
  @media (prefers-color-scheme:dark){   /* tartalék a betöltés első pillanatára, amíg a data-theme nincs a gyökéren */
    :root:not([data-theme]):not([data-kurzor="ki"]) body,
    :root:not([data-theme]):not([data-kurzor="ki"]) body *{
      cursor:url(/img/kurzor/kurzor-sotet.png) 11 30,auto;
    cursor:image-set(url(/img/kurzor/kurzor-sotet.png) 1x,url(/img/kurzor/kurzor-sotet@2x.png) 2x) 11 30,auto}
  }
  /* !important: a fenti `*` szabályok (a sötét téma ága 0,4,1 súlyú) különben legyőznék – mérve: a mezőn a jel állt */
  body :is(input:not([type=button],[type=submit],[type=checkbox],[type=radio]),textarea,[contenteditable]){cursor:text!important}
}
/* a KAPCSOLÓ – a téma-kapcsoló kapszulájának mintájára, a sáv magasságát nem növeli; csak asztali nézetben látszik (lent) */
.kurzor-kk{position:relative;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--surface);
  border-radius:var(--r-ctl);padding:4px 10px;cursor:pointer;line-height:0}
.kurzor-kk img{display:block;height:16px;width:auto}
.kurzor-kk[aria-pressed="false"] img{filter:grayscale(1);opacity:.5}
.kurzor-kk[aria-pressed="false"]::after{content:"";position:absolute;left:50%;top:50%;width:26px;height:1.5px;background:var(--muted);
  translate:-50% -50%;rotate:-28deg}
.kurzor-kk:focus-visible{outline:2.5px solid var(--kiemeles);outline-offset:2px}
/* LÁTHATÓSÁG (founder 2026-10-02: „Az asztali gépemen nem látom a kapcsoló ikont, míg a tableten megjelenik. Fordítva kell […] A mobil
   nézetben ne jelenjen meg, az asztali nézetben igen.”): a NÉZETHEZ kötve, nem az „egér van-e” érzékeléshez – az (`any-pointer`) a
   founder asztali gépén és tabletjén is fordítva döntött. Az asztali nézet határa az oldal saját töréspontja: 1080 px fölött. */
@media (max-width:1080px){ .kurzor-kk{display:none} }

.theme .moon{display:none}
:root[data-theme="dark"] .theme .sun{display:none}:root[data-theme="dark"] .theme .moon{display:block}
/* A KAPCSOLÓ FELIRATA CSS-BŐL, NEM JS-BŐL (FLYA-400, 2026-10-20 · GitHub #21). A `flyaway.js` korábban
   a `#theme-label`-be ÍRTA a szöveget, tehát a felirat az első festéskor ÜRESEN állt, és csak a JS
   lefutásakor jelent meg. 390 px-en ez 32,23 px-szel szélesítette a Beállítások navot (79,05 →
   111,28 px), amitől a `.util-jobb` MÁSODIK SORBA tördelt: a `.util` 80,92 → 107,06 px, és a lap MINDEN
   doboza 26 px-et csúszott lefelé – EGY `layout-shift` bejegyzés, CLS 0,2607 MINDEN mért lapon (mérve
   2026-10-19, a FLYA-388 söprése; a forrás `main#oldal` + `nav#mainnav` + `div#morzsa-hely` + a két nav).
   A `data-theme` a lap fejében álló szkriptből MÁR az első festés előtt a gyökéren áll, ezért a feliratot
   a CSS a VÉGLEGES szövegével tudja kirajzolni – nem kell se beírt szélesség-tartalék, se rejtés.
   A hármas alak a lap többi téma-párjának bevált mintája (`.logo .vil/.sot`, `.fejsav.temapar`): a
   választott téma, majd a rendszerbeállítás, amíg a `data-theme` nincs kint. */
#theme-label::after{content:"Világos"}
:root[data-theme="dark"] #theme-label::after{content:"Sötét"}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) #theme-label::after{content:"Sötét"} }
.lang{opacity:.55;cursor:not-allowed}
/* FŐMENÜ „B · Fehér lap” (founder 2026-10-01; terv: claude.ai/artifact/AfHo6N1xbmyT61mpyLteSL): a fehér lap
   szögletesen, árnyék helyett 1 px-es kerettel – a főoldali csempék nyelve. A menüpontok nagybetűs Oxanium
   600, DŐLT (founder 2026-10-02: „a főcím sorban a menüpontok dőlt betűvel jelenjenek meg, a font maradjon” – az Oxaniumnak nincs saját
   dőlt változata, ezért ITT, és csak itt meg a MENÜ gombon, a böngésző dönti meg: `font-synthesis:style`), 12 px; az aktív pont égkék talpat kap. A logó cellája a lap saját belső margója. */
.mainnav{display:flex;align-items:center;gap:12px;background:var(--surface);border-radius:0;padding:0 10px;min-height:72px;border:1px solid var(--line);box-shadow:none}
.mainnav .logo{padding:12px 10px}
.mainnav .btn{min-height:44px}   /* a menü érintési célja 44 px – a Jelentkezem is (a közös .btn 37 px magas volt) */
/* ───── A HIVATALOS LOGÓ (founder-döntés 2026-10-01) ─────
   Bejegyzett védjegy: ernyő + pilóta + FLY AWAY + since 1991 ®. A régi, egybe írt FlyAway szójel
   (`.fa-wm` és társai) ezzel KIKERÜLT a közös stíluslapból – a bemutató lapja (`site/logo/`) a saját
   `<style>`-jában hordozza tovább, hogy ne törjön; élesedéskor az a lap amúgy is törlendő.
   KÉT KÉP megy ki (világos és fehér betűs), mert a téma a `data-theme`-ből ÉS a rendszerbeállításból is
   eldőlhet – ugyanaz a hármas szabály, mint a színtokeneknél. A nem odaillőt itt rejtjük el. */
.logo{display:flex;align-items:center;text-decoration:none;flex:none}
/* MÉRVE (2026-10-01, a mai éles fejléchez képest): 36px → 0 px eltérés, 40px → asztalon +3, 375-ön +4,
   44px → +7/+8. Az átadó max. 4 px növekedést enged, ezért a legnagyobb, ami belefér: 40px. */
:root{--logo-h:40px}
/* AZ `aspect-ratio` A KISEBB VÁLTOZAT KEREKÍTÉSE ELLEN VAN (FLYA-398, mérve 2026-10-20). A `width:auto` a
   BETÖLTÖTT fájl saját arányából számol, a kicsinyített változat magassága pedig egész képpontra kerekül:
   a 240 px-es logó 240 × 83 (2,8916), az eredeti 1200 × 417 (2,8777) – a doboz emiatt 115,1 px-ről
   115,7 px-re nőtt, azaz a flex-fejlécben minden tőle jobbra álló elem 0,55 px-et csúszott volna a kép
   beérkezésekor. Az arány kimondásával a doboz a betöltött fájltól FÜGGETLENÜL 115,1 px (mérve ugyanazzal
   a műszerrel), és ez egyben a „nem változik a látvány” mércéje. A szabály a FEJLÉC és a LÁBLÉC logójára
   hat: ahol az `<img>` MINDKÉT mérete adott (`.pk .logo img`, `.fcs .kep img`), ott az `aspect-ratio`
   hatástalan – a partnerlogók (`.brand .blogo img`) pedig nem `.logo`-ban állnak. */
.logo img{display:block;width:auto;height:var(--logo-h,36px);aspect-ratio:1200/417}
.logo .sot{display:none}
:root[data-theme="dark"] .logo .vil{display:none}
:root[data-theme="dark"] .logo .sot{display:block}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .logo .vil{display:none}
  :root:not([data-theme="light"]) .logo .sot{display:block}
}
/* A HIVATALOS LOGÓ KÉPKÉNT IS TÉMAFÜGGŐ – `temapar` (founder 2026-10-16, FLYA-289 · GitHub #359).
   A fenti fejléc-szabály HÁROM állapota (mentett választás · rendszer-sötét · rendszer-világos) áll a
   rekord-képekre is, ahol a hivatalos logó szerepel – ott, ahol a MÖGÖTTES FELÜLET témafüggő. Ilyen a
   rács csempéje: a `.fcs .kep` háttere `--surface-2`, és a `-sotet` logó FEHÉR betűs, átlátszó hátterű,
   tehát világos témában eltűnik (az Adó 1% csempéje, founder-képernyőkép 2026-10-16).
   A `display:none` HÁROM osztállyal mondja ki magát, mert a `.fcs .kep img{display:block}` szabály két
   osztályt és egy elemet köt – kevesebbel nem nyerne.
   KÉT ALAKBAN, mert a kép kétféleképpen rajzolódik:
     · `<img>`-PÁR (a rács csempéje) – a nem odaillő tagot elrejtjük;
     · HÁTTÉRKÉP-PÁR (a `fej` kocka fejsávja) – a rajzoló a két utat `--tp-vil` / `--tp-sot` változóba
       írja, és a `background-image` itt választ. Második réteget nem használunk: a `background-image`
       így EGYETLEN helyen dől el, és a `fej` `style` attribútuma nem hordoz képet.
   A FEJSÁVRÓL, hogy ne kelljen újra megmérni (founder-döntés 2026-10-17, a jegy kérdés-kártyáján): a
   `.tile.fejsav.photo` hátlapja NEM témafüggő – `rgb(21,71,125)` világosban, `rgb(15,45,82)` sötétben,
   a felirata mindkettőn `#fff` –, tehát a sötét betűs tag ott alacsony kontraszttal áll. A founder ezt
   a számot ismerve kérte a téma szerinti váltást; a `logo_par_proba.mjs` 2. szakasza méri és kiírja. */
.fcs .kep.temapar .sot{display:none}
:root[data-theme="dark"] .fcs .kep.temapar .vil{display:none}
:root[data-theme="dark"] .fcs .kep.temapar .sot{display:block}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .fcs .kep.temapar .vil{display:none}
  :root:not([data-theme="light"]) .fcs .kep.temapar .sot{display:block}
}
.fejsav.temapar{background-image:var(--tp-vil)}
:root[data-theme="dark"] .fejsav.temapar{background-image:var(--tp-sot)}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .fejsav.temapar{background-image:var(--tp-sot)} }
.mainnav ul{display:flex;flex-wrap:wrap;gap:0;list-style:none;margin:0;padding:0;align-items:center}
/* A MENÜ KÖZÉPEN, A LOGÓ ÉS A GOMB A SZÉLEN (founder 2026-10-04: „A Főmenü szerkezet ne húzd szét, hanem legyen középre rendezve, úgy hogy a
   Fly Away és Jelentkezés gomb kint marad a szélén”; terv: flyaway-tervek/fomenu-kozepre-terv.html). Asztalon a fejléc HÁROM oszlop: két
   egyforma szélső (`1fr`) a logónak balra és a gombnak jobbra zárva, középen a menü tömbje – így a tömb a fejléc VALÓDI közepén áll, nem a
   logó és a gomb közti maradék közepén. A pontok köze ÁLLANDÓ 8 px (a founder a terven 8/16/24/32 közül választott), a képernyővel nem nő –
   ez váltja a 2026-10-03-i `space-evenly`-t (mérve előtte: 28/44/71 px 1280/1440/1920-on). Ha szűk a hely, az `1fr` oszlopok a logó/gomb
   szélességéig zsugorodnak, a tömb a maradék közepén marad. 1080 alatt a flex-sor és a Menü gomb változatlan. */
@media (min-width:1081px){
  .mainnav{display:grid;grid-template-columns:1fr auto 1fr}
  .mainnav .logo{justify-self:start}
  .mainnav .btn{justify-self:end}
  .mainnav ul{justify-content:center;gap:8px}
}
/* A KIJELÖLÉS A FELIRATTAL EGYÜTT DŐL (founder 2026-10-09, GitHub #140, FLYA-46: „a menüpont kijelölése dőljön pontosan úgy, ahogy a
   felirata”; terv: flyaway-tervek/fomenu-dolt-kijeloles-terv.html). A főmenü feliratát nem egy dőlt betűfájl dönti meg – az Oxaniumnak
   NINCS dőlt vágása –, hanem a motor maga, a `font-synthesis:style` szintetikus dőlésével. A szöge NEM becsült: 2026-10-10-én mérve az élő
   /hirek/ lapon, canvasra rajzolt 400 px-es „I” bal élére illesztett egyenesből (legkisebb négyzetek, a szárvégek 15–15 %-a nélkül):
   Chrome 155: 14,03° (tan 0,2499) · Firefox 142: 13,93° (tan 0,2480) · WebKit/Safari 26: 14,04° (tan 0,2500) – a három motor
   0,11°-on belül, az illesztés maradéka ≤ 0,51 px. Ezért a dőlés EGYETLEN változó, a `--dolt`, és minden ferde réteg ebből él –
   ha egy motor egyszer elmozdul, csak ezt az egy számot kell állítani. A mérés megismételhető: `tools/proba/fomenu_doles.mjs`.
   A PONT DOBOZA NEM VÁLTOZIK: szélesség, magasság, párna és köz ugyanaz – a kiemelés `transform`-mal dől, a mértant nem érinti
   (mérve: a nyolc pont `getBoundingClientRect()`-je rámutatás előtt és alatt ±0 px, 1081/1200/1440/390 px-en, mindkét témában). */
.mainnav{--dolt:-14deg}
.mainnav li a{display:flex;align-items:center;--pont-h:44px;min-height:var(--pont-h);padding:0 9px;border-radius:0;text-decoration:none;white-space:nowrap;
  font:italic 600 12px/1 var(--f-menu);font-synthesis:style;letter-spacing:.02em;text-transform:uppercase;
  position:relative;isolation:isolate;
  /* a döntött réteg ALSÓ élének elcsúszása: a `skewX` a doboz közepe körül forgat, így az alsó él a pont felének
     tangensével megy balra (44 px-es pontnál −5,48 px). SZÁMOLT, nem beírt px – a 48 px-es telefonos sor magától követi. */
  --talp-tol:calc(var(--pont-h) / 2 * tan(var(--dolt)))}
/* RÁMUTATÁSKOR A PONT A SAJÁT FŐMENÜ-SZÍNÉT KAPJA (founder, GitHub #14, 2026-10-03: „A főmenü felett állva a kijelölés színe is
   kövesse a főmenü színt”). Eddig semleges felület volt (`--surface-2`: mérve #E8EDE7 világosban, #1E3038 sötétben – mindkét témában
   ugyanaz a szürke mind a nyolc ponton). A háttér a pont `--fc`-je (a `focim.json` színe, a `<li>`-n, lásd a `flyaway.js` `menuHtml`-jét),
   a FELIRAT pedig az `--fci`: a TELEPÍTÉS által a kontrasztból számolt `--fcs-<kulcs>-ink` (szinek.css) – nem beírt szín, nem téma-függő,
   mert a főmenü színe sem az. Kézzel sosem írjuk át: ha a szerkesztő színt vált az adminban, a felirat magától követi.
   Főcím nélküli pont (a tartaléklista és a panel alján álló Jelentkezés) a régi, semleges felületet kapja.
   2026-10-10 (FLYA-46) ÓTA a szín nem a link háttere, hanem egy `::before` PARALELOGRAMMA a felirat mögött: a link saját háttere átlátszó,
   a réteg `z-index:-1`-en áll az `isolation:isolate` buborékjában (a pont háttere fölött, a felirat alatt). Csak rámutatva és fókuszban
   létezik (`content` nélkül nincs is), így alaphelyzetben egy üres réteg sem terheli a nyolc pontot. */
.mainnav li a:is(:hover,:focus-visible){color:var(--fci,var(--ink))}
.mainnav li a:is(:hover,:focus-visible)::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:0;
  background:var(--fc,var(--surface-2));transform:skewX(var(--dolt))}
/* FÓKUSZ: a billentyűs kijelölés is a ferde réteget mutatja. A globális `:focus-visible` téglalap keretét (74. sor) itt levesszük,
   és a keret a PARALELOGRAMMÁN fut körbe – az `outline` a `::before` saját koordinátáiban rajzolódik, a `transform` azt is megdönti. */
.mainnav li a:focus-visible{outline:none;box-shadow:none}
.mainnav li a:focus-visible::before{outline:2.5px solid var(--kiemeles);outline-offset:3px}
/* A JELENTKEZÉS GOMB NEM MENÜPONT (founder-döntés 2026-10-10, FLYA-53: „a Jelentkezés gomb maradjon a mai teli türkiz téglalap … a FLYA-46
   ferde `::before` rétege a `.btn`-en ne jelenjen meg – a gomb gomb marad, nem menüpont; rámutatáskor a gomb mai saját viselkedése él”).
   460 px alatt a gomb a panel ALJÁN, egy `li.jel`-ben áll (lásd lent, 300. sor körül), ezért a fenti három menüpont-szabály elérte –
   pedig saját türkiz `--cta` háttere van. MÉRVE az élő oldalon (9256a059, 390 px, mindkét téma): a szürke ferde réteg a gomb dobozának
   78,0 %-át fedte, türkizen csak 9,9 % maradt – a jegy „két türkiz háromszög”-e ennél is több volt. Ezért itt három dolgot vonunk vissza:
   1. a RÉTEG: `content:none` – a `::before` nem is jön létre (a `content` nélkül nincs mit megdönteni, a lenti `inset:0 6px` tárgytalan);
   2. a FELIRAT SZÍNE: a menüpont-szabály `--fci`-je sötét témában `#E7EEF0`-ra vitte a feliratot a türkiz hátteren (mérve) – a gomb
      a saját `--cta-ink`-jét kapja vissza (`#13252E`, mindkét témában ugyanaz, mert a `--cta` sem téma-függő);
   3. a FÓKUSZ KERETE: a FLYA-46 a keretet a `::before`-ra tette (`outline:none` a linken), így a réteg nélkül a gombnak NEM lenne látható
      billentyűs kerete – itt a globális `:focus-visible` (74. sor) kerete áll vissza, ugyanaz, amit a fejlécben álló gomb is kap.
   Amit NEM változtat: a `.btn:hover{transform:translateY(-1px)}` 1 px-es emelkedés (a gomb saját, FLYA-46 előtti viselkedése) és a nyolc
   menüpont ferde rétege (mérve: 48/48 lenyomat bájtra ugyanaz). Őr: `node tools/proba/jelentkezes_gomb.mjs <alap-URL>`. */
.mainnav li.jel a.btn:is(:hover,:focus-visible){color:var(--cta-ink)}
.mainnav li.jel a.btn:is(:hover,:focus-visible)::before{content:none}
.mainnav li.jel a.btn:focus-visible{outline:2.5px solid var(--kiemeles);outline-offset:3px;box-shadow:0 0 0 1px var(--ink)}
/* AZ AKTÍV PONT TALPA a főcím színe (2026-10-02); a szöveg tinta marad. 2026-10-10 (FLYA-46) óta nem a link teljes szélességében futó
   `box-shadow:inset 0 -3px 0`, hanem a döntött réteg ALSÓ ÉLÉN álló, ferde végű csík: `--talp-tol`-lal balra tolva (44 px-es pontnál
   5,48 px) és ugyanazzal a `--dolt`-tal megdöntve. A tömörödő 1081–1299 px-es sávban a pont magassága nem változik, így a tolás sem. */
.mainnav li a[aria-current="page"]::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;border-radius:0;
  background:var(--fc,var(--sky));transform:translateX(var(--talp-tol)) skewX(var(--dolt))}
.burger{display:none;margin-left:auto;border:0;background:var(--surface-2);color:var(--ink);border-radius:0;min-height:44px;padding:0 16px;font:italic 600 13px/1 var(--f-menu);font-synthesis:style;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
/* A TÍZ MENÜPONT EGY SORBAN (founder 2026-10-02: „Fokozatosan tömörítem”). 1081 és 1278 px között a pontok két sorba törtek (mérve: 1081-en
   178 px hiányzott; egy 1280-as ablakban görgetősávval már tört). Ebben a sávban a távolságok és a betű az ablakkal együtt, egyenletesen
   csökkennek: `--u` 0 → 1 px (1081 → 1300), a betű 11 → 12 px, a pontok párnája 3 → 9 px. 1300 px-től semmi nem változik. */
@media (min-width:1081px) and (max-width:1299px){
  .mainnav{--u:calc((100vw - 1081px) / 219);gap:calc(6px + 6 * var(--u));padding-inline:calc(6px + 4 * var(--u))}
  .mainnav .logo{padding-inline:calc(6px + 4 * var(--u))}
  .mainnav li a{padding-inline:calc(3px + 6 * var(--u));font-size:calc(11px + var(--u))}
  .mainnav .btn{padding-inline:calc(16px + 6 * var(--u))}
}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--cta);color:var(--cta-ink);border:0;border-radius:var(--r-ctl);padding:11px 22px;font:700 14.5px/1 var(--f-body);text-decoration:none;white-space:nowrap;cursor:pointer;transition:transform .2s}
.btn:hover{transform:translateY(-1px)}
.btn.ghost{background:transparent;color:inherit;box-shadow:inset 0 0 0 1.5px currentColor}
.btn.quiet{background:var(--surface-2);color:var(--ink)}
/* A TELEFONOS MENÜ LEGÖRDÜLŐ PANEL (founder 2026-10-04, telefonos képernyőképpel: „A menü gomb alatt jelenjen meg a legördülő menü és jól látható
   legyen. Lehet egy kicsit átlátszó.” · „a Fly Away ikon … ugrik egyet, javítsd, ne mozduljon” · „jobbra rendezett legyen a szöveg” · „csak egy
   minimálisan legyen szélesebb, mint a legszélesebb szöveg. Igazodjon a menü gomb jobb széle a megjelenített menü jobb széle”; terv:
   flyaway-tervek/mobil-menu-terv.html). A lista a FOLYAMON KÍVÜL, lebegő panelként nyílik 8 px-re a kártya alja alatt, a jobb széle a Menü gomb jobb
   szélén (a gomb 10 px-re áll a kártya szélétől) – a kártya 72 px marad, a logó és a gomb nem mozdul (eddig a lista megnyújtotta a kártyát, és
   5 px-et ugrottak). SZÉLESSÉG: nincs beírt px – `max-content`, a leghosszabb felirat + 2×15 px párna + 1 px keret; a feliratok balra zártak (founder 2026-10-04 este, végső;
   aznap a jobbra és a középre zárt is megvolt). Háttér: a téma felülete 92 %-ban, elmosással, 1 px keret, árnyék,
   szögletes. A panel alja a Varió-sáv fölött ér véget (`--panel-max`-ot a flyaway.js méri nyitáskor), ha nem fér, belül görgethető. A lap mögötte
   elsötétül (`.menu-arny`, a fejléc alatt), rákoppintva, Esc-re, menüpontra koppintva és 40 px görgetés után zár. 460 px alatt a Jelentkezés gomb a
   panel alján (`li.jel`, a pontok szövegének szélességében), a fejlécből eltűnik. A kapszulás fejléc `clip-path`-ja nyitva lekerül (lent, 1370. sor
   körül), különben a kártyán kívül eső panelt levágná. */
@media (max-width:1080px){
  .burger{display:block}
  .mainnav{flex-wrap:wrap;padding:0;position:relative}
  .mainnav .logo{padding:10px 14px}
  .mainnav .burger{margin-right:10px}
  /* A PONTOK BALRA ZÁRVA (founder 2026-10-04 este, VÉGSŐ: „A balra rendezett menü tetszik, az legyen a végső” – mindkét nyitásra, a Menü gombra és a
     ≡-re; aznap a jobbra és a középre zárt változat is megvolt), az aktív pont talpa a bal szélen. A felső sáv négy pontja (Éterben, Galéria, GYIK,
     Kapcsolat) nincs a panelben – a felső sávban érhetők el. */
  .mainnav li a{--pont-h:48px;padding:0 15px;justify-content:flex-start;text-align:left}
  /* A PANELEN IS DŐL A KIJELÖLÉS (founder 2026-10-10, FLYA-46: „telefonon a bal oldali jelölőcsík is dőljön 14°-kal, és a rámutatás
     háttere ott is paralelogramma”). A rámutatás paralelogrammája 6–6 px-rel beljebb kezdődik: a 48 px-es sor dőlése ±5,98 px-et visz
     el oldalra, így a ferde szélek a panelen BELÜL maradnak – a `ul` `overflow-y:auto`-ja különben levágná őket (és a 390 px-es
     vízszintes görgetés 0 marad). A `height:auto` és a `right:auto` az asztali vízszintes talpat vonja vissza. */
  .mainnav li a:is(:hover,:focus-visible)::before{inset:0 6px}
  .mainnav li a[aria-current="page"]::after{left:6px;right:auto;top:8px;bottom:8px;width:3px;height:auto;transform:skewX(var(--dolt))}
  .mainnav ul{display:none;position:absolute;top:var(--panel-teto,calc(100% + 9px));right:var(--panel-jobb,10px);z-index:5;flex-direction:column;align-items:stretch;margin:0;
    width:max-content;max-width:calc(100vw - 32px);box-sizing:border-box;max-height:var(--panel-max,calc(100dvh - 300px));overflow-y:auto;overscroll-behavior:contain;
    background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
    border:1px solid var(--line);box-shadow:var(--shadow);border-radius:0;opacity:1;transition:opacity .15s}
  .mainnav.open ul{display:flex;flex-wrap:nowrap}
  @starting-style{ .mainnav.open ul{opacity:0} }
  .mainnav .btn{order:2}
}
.mainnav li.jel{display:none}   /* a Jelentkezés a panelben – csak 460 px alatt */
@media (max-width:460px){
  .mainnav>.btn{display:none}
  .mainnav li.jel{display:block}
  .mainnav li.jel a.btn{display:flex;justify-content:center;min-height:44px;margin:8px 15px 12px;padding:0 14px;white-space:nowrap}   /* 2026-10-05: 14 px párna – a gomb adja a panel szélességét (~145 px), a felirat nem ér a széléig */
}
.menu-arny{position:fixed;inset:0;z-index:29;background:rgba(8,14,17,.38);opacity:1;transition:opacity .15s}   /* 29 = a kapszulás (rögzített) fejléc (30) alatt – a ragadós fejléc 40 */
.menu-arny[hidden]{display:none}
@starting-style{ .menu-arny:not([hidden]){opacity:0} }
@media (min-width:1081px){ .menu-arny{display:none} }
@media (prefers-reduced-motion:reduce){ .mainnav ul,.menu-arny{transition:none} }

/* ---------- csempék ---------- */
.bento{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--koz);margin-top:var(--koz)}   /* egy köz mindenhol (founder 2026-10-03) */
.tile{border-radius:var(--r-tile);padding:22px;display:flex;flex-direction:column;justify-content:flex-start;gap:6px;min-height:176px;text-decoration:none;position:relative;overflow:hidden;background:var(--surface);transition:transform .25s,box-shadow .25s}
a.tile:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
/* Szövegelrendezés (founder, 2026-09-20): a cím és a leírás balra FEL, a kis felirat, a címkék és a jelzők balra LE – `order`-rel, egységesen.
   KIVÉTEL (a kis felirat ott a tartalom címkéje, vagy a csempe nyitókép): .tile.hero, .tour-hero, .depart, .summary .tile, lista-csempe (.tile:has(.list)). */
.tile .eyebrow,.tile .chips{order:9;margin-top:auto;padding-top:20px}
.tile .eyebrow~.chips,.tile .chips~.eyebrow{margin-top:0;padding-top:6px}
.tile.hero,.tour-hero{justify-content:flex-end}
.tile.hero .eyebrow,.tour-hero .eyebrow{order:0;margin-top:0;margin-bottom:auto;padding-top:0}
.tile.hero .chips,.tour-hero .chips{order:0;margin-top:0;padding-top:0}
.depart .eyebrow,.summary .tile .eyebrow,.tile:has(.list) .eyebrow{order:0;margin-top:0;padding-top:0}
/* a landing oldalak fejsávja: főcím balra fel, bevezető jobbra fel (tetejük egy vonalban), kis felirat balra le */
.tile.fejsav{justify-content:flex-start}
.tile.fejsav .eyebrow{order:9;margin-top:auto;margin-bottom:0;padding-top:32px}
.tile :is(h2,h3){font-size:22px;line-height:1.15;font-weight:700}
.tile p{margin:0;font-size:14.5px;opacity:.92}
.tile .more{font-weight:700;font-size:13.5px;margin-top:6px}
/* Biztonsági háló (2026-10-01): a `.tile{overflow:hidden}` némán LEVÁGJA a csempénél szélesebb egyetlen szót
   („Mentőernyő”, „regisztrációk”, „GROSSVENEDIGER”). A `break-word` csak akkor tör, ha a szó magában sem fér ki –
   ahol eddig kifért, ott semmi nem mozdul (lenyomattal mérve), és a min-content szélességet sem változtatja.
   `hyphens:auto` itt sem kell: a macOS-ben van magyar elválasztó szótár, de akkor is elválaszt, amikor nem muszáj
   („Alapfokú tan-folyam”) – lásd a .parban megjegyzését. */
.tile h1,.tile h2,.tile h3,.tile h4,.tile p{overflow-wrap:break-word}
.s3{grid-column:span 3}.s4{grid-column:span 4}.s5{grid-column:span 5}.s6{grid-column:span 6}.s7{grid-column:span 7}.s8{grid-column:span 8}.s12{grid-column:span 12}
.r2{grid-row:span 2}
.c-sky{background:var(--sky);color:var(--sky-ink)}.c-sky-soft{background:var(--sky-soft)}.c-sky-deep{background:var(--sky-deep);color:#fff}
.c-grass{background:var(--grass);color:var(--grass-ink)}.c-grass-soft{background:var(--grass-soft)}
.c-sand{background:var(--sand);color:var(--sand-ink)}
.hero{min-height:440px;padding:clamp(24px,3.4vw,40px);color:#fff}
.hero h1{font-size:clamp(36px,5.2vw,66px);line-height:.98;font-weight:800;letter-spacing:-.03em;max-width:12ch}
.hero p{font-size:17.5px;max-width:42ch;margin:6px 0 14px}
.hero .actions{display:flex;gap:10px;flex-wrap:wrap}
/* fotó-helykitöltők: az archívum megérkezéséig */
.ph{color:#fff}
.ph::before{content:"";position:absolute;inset:0;z-index:0}
.ph>*{position:relative;z-index:1}
.ph::after{content:"fotó helye";position:absolute;top:12px;right:14px;z-index:1;font:600 10px/1 var(--f-body);letter-spacing:.1em;text-transform:uppercase;opacity:.75}
.ph.sky::before{background:linear-gradient(180deg,transparent 35%,rgba(8,28,46,.62)),radial-gradient(120% 80% at 80% 110%,#fff8 0 18%,transparent 40%),linear-gradient(180deg,#2467B8 0%,#6FAEE6 55%,#C4E0F5 100%)}
.ph.meadow::before{background:linear-gradient(180deg,transparent 35%,rgba(8,28,46,.62)),linear-gradient(180deg,#6FAEE6 0%,#C4E0F5 40%,#5E9B4E 40.5%,#2F6B33 100%)}
.ph.sea::before{background:linear-gradient(180deg,transparent 35%,rgba(8,28,46,.62)),linear-gradient(180deg,#F3C483 0%,#EE9A62 32%,#276585 32.5%,#123E57 100%)}
.ph.peak::before{background:linear-gradient(180deg,transparent 35%,rgba(8,28,46,.62)),linear-gradient(200deg,transparent 58%,#1D3A57 58.5%),linear-gradient(160deg,transparent 62%,#ffffff66 62.5% 66%,#35597C 66.5%),linear-gradient(180deg,#7DB6E6,#DCEDF8)}
:root[data-theme="dark"] .ph::before{filter:brightness(.78) saturate(.95)}
.glider{position:absolute;z-index:1;color:rgba(255,255,255,.94)}
.list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.list li a{display:flex;justify-content:space-between;gap:12px;background:rgba(255,255,255,.16);border-radius:0;padding:10px 14px;font-weight:600;text-decoration:none}
.list li a:hover{background:rgba(255,255,255,.26)}
.list span{font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}
.pill{display:inline-block;font:700 11px/1 var(--f-body);letter-spacing:.06em;text-transform:uppercase;border-radius:var(--r-ctl);padding:5px 9px;background:var(--red);color:var(--red-ink)}

.section{margin-top:64px}
/* oldal- és szakaszfejléc: a cím sorában, jobbra rendezve áll a rövid leírás (alatta a továbbvezető link); keskeny képernyőn egymás alá törik */
.section-head{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:clamp(24px,4vw,56px);row-gap:10px;align-items:start;margin-bottom:4px}
.section-head>div{display:contents}
.section-head .eyebrow{grid-column:1/-1}
.section-head h1,.section-head h2{grid-column:1;margin-top:0!important}
.section-head p:not(.eyebrow){grid-column:2;justify-self:end;text-align:right;text-wrap:balance;margin-top:0}
.section-head>a{grid-column:2;justify-self:end}
.headrow{display:flex;justify-content:space-between;align-items:flex-start;gap:12px clamp(24px,4vw,56px)}
.headrow h1{flex:0 1 auto}
.headrow .slogan{flex:1 1 0;min-width:0;margin-left:auto;text-align:right;text-wrap:balance;font-size:clamp(16px,1.5vw,20px)}
/* a leírás teteje a főcím tetejével van szintben: mindkettőt a nagybetű-magasságra vágjuk; ahol a böngésző ezt nem tudja, közelítő eltolás */
@supports (text-box:trim-both cap alphabetic){
  .section-head h1,.section-head h2,.section-head p:not(.eyebrow),.headrow h1,.headrow .slogan{text-box:trim-both cap alphabetic}
  .section-head>a{margin-top:4px}
}
@supports not (text-box:trim-both cap alphabetic){
  .section-head h1~p:not(.eyebrow){padding-top:.35em}
}
@media (max-width:760px){
  .section-head{grid-template-columns:minmax(0,1fr)}
  .section-head h1,.section-head h2,.section-head p:not(.eyebrow),.section-head>a{grid-column:1;justify-self:start;text-align:left}
  .headrow{flex-direction:column;align-items:flex-start;gap:18px}
  .headrow .slogan{flex:none;margin-left:0;text-align:left;max-width:none!important}
}
.section-head h2{font-size:clamp(26px,3.2vw,38px);font-weight:800}
.section-head p{margin:6px 0 0;color:var(--muted);max-width:60ch}
.section-head>a{font-weight:700;text-decoration:none;border-bottom:2px solid var(--kiemeles);padding-bottom:2px}

/* idézetek */
.quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--koz);margin-top:var(--koz)}
.quotes figure{margin:0;background:var(--surface);border-radius:var(--r-tile);padding:24px}
.quotes blockquote{margin:0 0 14px;font:500 19px/1.4 var(--f-display);letter-spacing:-.01em}
.quotes figcaption{font-size:13.5px;color:var(--muted)}
.note{font-size:13px;color:var(--muted);border:1px dashed var(--line);border-radius:0;padding:10px 14px;margin-top:12px}

/* hírlevél + partnerek + lábléc */
.news{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;align-items:center;background:var(--sky-deep);color:#fff;border-radius:var(--r-tile);padding:clamp(22px,3vw,36px)}
.news h2{font-size:clamp(24px,3vw,34px)}
.news p{margin:8px 0 0;opacity:.9}
.news form{display:flex;flex-direction:column;gap:12px}
.news .row{display:flex;gap:8px;flex-wrap:wrap}
.news input[type=email]{flex:1 1 220px;border:0;border-radius:var(--r-ctl);padding:13px 18px;font:500 15px var(--f-body);background:#fff;color:#13252E}
.news label{display:flex;gap:8px;align-items:center;font-size:14.5px}
.news .checks{display:flex;gap:6px 20px;flex-wrap:wrap}
.partners{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.partners span,.partners a{background:var(--surface);border-radius:0;padding:14px 18px;font-weight:600;font-size:14.5px;color:var(--ink);text-decoration:none;position:relative}
.partners a{padding-right:38px;transition:transform .2s,box-shadow .2s}
.partners a:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.partners a i{position:absolute;right:16px;top:14px;font-style:normal;color:var(--muted);font-size:13px}
@media (prefers-reduced-motion:reduce){.partners a{transition:none}.partners a:hover{transform:none}}
/* „PARTNEREINK” LOGÓS KÁRTYA (2026-10-01) – a logó-doboz SÖTÉT TÉMÁBAN IS FEHÉR (a logók fehérre készülnek), a kép nem vágódik
   (`contain`); logó nélkül a partner neve áll benne, rögzített sötét tintával. Szögletes, árnyék nélkül; a hover csak a keret. */
.pk-racs{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--koz)}
.pk{container-type:inline-size;display:flex;flex-direction:column;min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-tile);color:inherit;text-decoration:none;transition:border-color .15s}
a.pk:hover{border-color:var(--ink)}
.pk:focus-visible{outline:2.5px solid var(--kiemeles);outline-offset:2px}
.pk .logo{--pk-px:20px;aspect-ratio:3/2;background:transparent;padding:16px var(--pk-px);display:grid;grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center;border-bottom:1px solid var(--line);min-width:0;overflow:hidden}
.pk .logo img{display:block;width:100%;height:100%;max-width:none;object-fit:contain}   /* a doboz egészét kitölti, arányosan; a fejléc `.logo img` magassága (--logo-h) itt nem hathat */
/* A LOGÓ A KÁRTYA SAJÁT FELÜLETÉN (2026-10-02): a fehér doboz megszűnt; sötét témában a `.sot` kép áll (a sötét változat, vagy a
   világos invertálva). A fejléc `.logo .vil/.sot` szabályainál erősebben kell mondani, mert a fenti `display:block` felülírná őket. */
.pk .logo .sot,.brand .blogo .sot{display:none}
.pk .logo img.inverz,.brand .blogo img.inverz{filter:invert(1) hue-rotate(180deg)}
:root[data-theme="dark"] .pk .logo .vil,:root[data-theme="dark"] .brand .blogo .vil{display:none}
:root[data-theme="dark"] .pk .logo .sot,:root[data-theme="dark"] .brand .blogo .sot{display:block}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .pk .logo .vil,:root:not([data-theme="light"]) .brand .blogo .vil{display:none} :root:not([data-theme="light"]) .pk .logo .sot,:root:not([data-theme="light"]) .brand .blogo .sot{display:block} }
/* A név a kártya SZÉLESSÉGÉHEZ méretez (konténer-egység): az Oxanium 800 nagybetűs, 14 betűs szava („MENTŐSZOLGÁLAT”)
   ~9,3 betűmagasság széles – a belső margón belül ennyinek kell elférnie, különben szó közben törne. Telefonon
   (két hasáb, 320 px-en ~136 px-es kártya) a margó és az alsó felirat is kisebb, hogy a szó egészben maradjon. */
.pk .logo .nev{font:800 clamp(12px,calc((100cqi - 2 * var(--pk-px)) / 9.6),26px)/.98 var(--f-racs);text-transform:uppercase;color:var(--ink);text-align:center;text-wrap:balance;overflow-wrap:anywhere}
.pk .szoveg{position:relative;display:flex;flex-direction:column;gap:3px;padding:12px 30px 14px 14px;min-width:0}
.pk .szoveg b{font:700 15px/1.25 var(--f-body);overflow-wrap:anywhere}
.pk .szoveg small{font-size:12.5px;color:var(--muted)}
.pk .szoveg i{position:absolute;right:12px;top:12px;font-style:normal;color:var(--muted)}
@media (max-width:520px){ .pk-racs{grid-template-columns:repeat(2,minmax(0,1fr))} .pk .logo{--pk-px:8px} .pk .szoveg{padding:10px 22px 12px 10px} .pk .szoveg b{font-size:13px} .pk .szoveg i{right:8px;top:10px} }

.partners small{display:block;font-weight:500;color:var(--muted);font-size:12px}
footer.site{margin-top:72px;background:var(--surface);border-radius:var(--r-tile) var(--r-tile) 0 0;padding:32px clamp(18px,3vw,36px) calc(28px + env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:1.3fr repeat(3,1fr);gap:28px;font-size:14.5px}
footer.site .lablec-cim{font:700 12px/1 var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 12px}
/* a KAPCSOLAT rovatcím link lett (founder 2026-09-29): a felső sávból kikerült a Kapcsolat, helyette ez */
footer.site .lablec-cim a{color:inherit;text-decoration:none}
footer.site .lablec-cim a:hover{color:var(--ink);text-decoration:underline}
footer.site ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
footer.site a{text-decoration:none}footer.site a:hover{text-decoration:underline}
footer.site .fine{grid-column:1/-1;border-bottom:1px solid var(--line);padding-bottom:12px;color:var(--muted);font-size:13px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
/* ASZTALON a © a „Könyv: Szelek szárnyán” sorával EGY VONALBAN (founder 2026-10-01: „rakd feljebb, hogy a könyv felirattal
   legyen egysorban”). A négy oszlop KÖZÖS sorokat kap (subgrid): 1. sor a logó és a három cím, 2–6. sor a lista-elemek –
   a leírás a 2–5. sort tölti, a © a 6.-at, ahol az Egyesület utolsó eleme, a Könyv áll. Így akkor is egy vonalban marad,
   ha a leírás hosszabb vagy rövidebb. A vonal a sor ALATT (a © a vonal fölött – korábbi founder-döntés), a lábléc saját
   ál-elemével. 900 px alatt az oszlopok egymás alá törnek, ott nincs közös sor: a © a lábléc alján marad, ahogy eddig. */
@media (min-width:901px){
  footer.site{grid-template-rows:repeat(6,auto);row-gap:7px}
  footer.site>div:not(.fine){display:grid;grid-template-rows:subgrid;grid-row:1 / span 6;align-content:start}
  footer.site>div:first-child{grid-row:1 / span 5}
  footer.site>div:first-child p{grid-row:2 / span 4;margin:0;align-self:start}
  footer.site .lablec-cim{margin:0 0 5px;align-self:end}
  footer.site ul{display:contents}
  footer.site li:last-child{align-self:end}   /* ha a © szűk oszlopban két sorba törik, a Könyv a sor ALJÁN áll vele egy vonalban */
  footer.site .fine{grid-column:1;grid-row:6;align-self:end;border-bottom:0;padding-bottom:0}
  footer.site::after{content:"";grid-column:1/-1;grid-row:7;border-bottom:1px solid var(--line);margin-top:5px}
}

@media (max-width:900px){
  .s3,.s4,.s5{grid-column:span 6}.s7,.s8,.s6{grid-column:span 12}
  .news{grid-template-columns:1fr}
  footer.site{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .glider{display:none}
  .s3,.s4,.s5{grid-column:span 12}
  .hero{min-height:380px}
  footer.site{grid-template-columns:1fr}
}

/* ---------- túranaptár ---------- */
.cal-tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:20px 0 14px}
.chip{display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:var(--r-ctl);padding:8px 14px;font:600 14px/1 var(--f-body);cursor:pointer}
.chip i{width:12px;height:12px;border-radius:0;display:block}
.chip[aria-pressed="false"]{opacity:.5;text-decoration:line-through}
.chip.tura i,.ev.tura{background:var(--grass)}.chip.hazai i,.ev.hazai{background:var(--sky)}
.legend{margin-left:auto;display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.legend i{display:inline-block;width:12px;height:12px;border-radius:0;margin-right:5px;vertical-align:-1px}
.year-grid{background:var(--surface);border-radius:var(--r-tile);padding:14px 16px;display:flex;flex-direction:column;gap:2px}
.month{display:grid;grid-template-columns:58px repeat(31,minmax(0,1fr));column-gap:2px;align-items:center;padding-block:3px;border-top:1px solid var(--line)}
.month:first-child{border-top:0}
.month>b{grid-row:1/span 3;font:700 12.5px/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.day{grid-row:1;text-align:center;font:500 14px/28px var(--f-body);font-variant-numeric:tabular-nums;border-radius:0;color:var(--muted)}
.day.we{background:var(--weekend);color:var(--ink);font-weight:700}
.day.hol{background:var(--holiday);color:var(--ink);font-weight:700}
.day.today{box-shadow:inset 0 0 0 2px var(--red);color:var(--ink);font-weight:800}
.ev-jel{grid-row:1;align-self:stretch;border-radius:0;position:relative;z-index:1;--c:var(--grass);background:color-mix(in srgb,var(--c) 22%,transparent);box-shadow:inset 0 0 0 2px var(--c)}
.ev-jel.hazai,.ev.hazai{--c:var(--sky)}
.ev-jel.past{opacity:.5}
.ev{grid-row:2;--c:var(--grass);justify-self:center;margin-top:3px;padding:0 4px;white-space:nowrap;text-decoration:none;position:relative;z-index:2;font:500 18px/26px var(--f-body);color:color-mix(in srgb,var(--c) 72%,var(--ink));background:none!important}
.ev.past{opacity:.6}
.ev:hover{text-decoration:underline}
.month:has(.ev:hover) .ev-jel,.ev-jel:hover{filter:brightness(1.08)}
.month .spacer{grid-row:2;height:27px;grid-column:2}
/* évváltás: az évek váltakozó színcsaládot kapnak (sáv a hónapnév mellett, halvány sorháttér, színes évsor) */
.yr-a{--yr:#2B78CC}.yr-b{--yr:#C4831A}
.cal-range{display:block;font-size:.42em;font-weight:700;letter-spacing:0;color:var(--muted);margin-top:8px}
.month.yr-a,.month.yr-b{border-left:5px solid var(--yr);padding-left:9px}
.month.yr-a>b,.month.yr-b>b{color:color-mix(in srgb,var(--yr) 70%,var(--ink))}
.month.now{background:color-mix(in srgb,var(--ink) 5%,transparent)}
.month.now>b{color:var(--ink);font-weight:800}
.yr-head{display:flex;align-items:center;gap:12px;margin:10px 0 2px}
.yr-head:first-child{margin-top:0}
.yr-head b{background:var(--yr);color:#fff;font:800 14px/1 var(--f-display);letter-spacing:.06em;padding:6px 12px;border-radius:var(--r-ctl)}
.yr-head::after{content:"";flex:1;height:3px;border-radius:0;background:var(--yr)}
.month-list .yr-head{margin:6px 0 -8px}
.month-list section{border-left:5px solid var(--yr);padding-left:12px}
.month-list h3 small{font:700 13px/1 var(--f-body);color:var(--yr);margin-left:6px}
/* Következő túráink a naptár alatt */
.next-grid{padding:4px;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--gap,var(--koz));margin-top:var(--koz)}
/* a kártya négy sarka: név + dátum bal fent, hátralévő napok jobb fent, jelzők + címkék bal lent, ország jobb lent; képváltás csak itt */
.next-card{position:relative;overflow:hidden;border-radius:var(--r-tile);min-height:280px;padding:20px;display:flex;flex-direction:column;color:#fff;text-decoration:none;transition:transform .25s,box-shadow .25s}
.next-card.kepes{background:#0B1D2C}
.next-card:hover{transform:translateY(-3px)}
.next-card .bg,.kt-doboz .bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.3s ease}
.next-card .bg.on,.kt-doboz .bg.on{opacity:1}
.next-card.kepes::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,28,46,.82) 0%,rgba(8,28,46,.50) 38%,rgba(8,28,46,.12) 62%,rgba(8,28,46,.62) 100%)}
:root[data-theme="dark"] .next-card.kepes::before{background:linear-gradient(180deg,rgba(8,20,30,.82) 0%,rgba(8,20,30,.50) 38%,rgba(8,20,30,.12) 62%,rgba(8,20,30,.62) 100%)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .next-card.kepes::before{background:linear-gradient(180deg,rgba(8,20,30,.82) 0%,rgba(8,20,30,.50) 38%,rgba(8,20,30,.12) 62%,rgba(8,20,30,.62) 100%)}}
.next-card>.in{position:relative;z-index:2;display:flex;flex-direction:column;flex:1;gap:4px}
.next-card .fej{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:14px;align-items:start}
.next-card h3{font:700 27px/1.1 var(--f-display);overflow-wrap:break-word;text-shadow:0 1px 10px rgba(0,0,0,.4)}
.next-card .nap{grid-column:2;grid-row:1/3;display:flex;flex-direction:column;align-items:flex-end;white-space:nowrap;text-align:right;text-shadow:0 1px 10px rgba(0,0,0,.5)}
.next-card .nap b{font:800 38px/.9 var(--f-display);letter-spacing:-.03em}
.next-card .nap small{font:600 12.5px/1.2 var(--f-body);letter-spacing:.02em;margin-top:5px;opacity:.95}
.next-card .nap.szo b{font-size:24px;line-height:1.05}
.next-card .datum{grid-column:1;margin:6px 0 0;font:800 15px/1.3 var(--f-body);white-space:nowrap;overflow:hidden;text-shadow:0 1px 8px rgba(0,0,0,.45)}
.next-card .fej.szuk .nap{grid-row:1}
.next-card .fej.szuk .datum{grid-column:1/3}
.next-card .lab{margin-top:auto;padding-top:20px;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:14px;align-items:end}
.next-card .bal{display:flex;flex-direction:column;gap:8px;align-items:flex-start;min-width:0}
.next-card .jelzok{display:flex;gap:6px;flex-wrap:wrap}   /* a repülés jellegének címkéi 2026-11-01 óta nem állnak a kártyán (#497) */
.next-card .orszag{font:400 15px/1.2 var(--f-body);text-align:right;text-shadow:0 1px 8px rgba(0,0,0,.5)}
@media (prefers-reduced-motion:reduce){.next-card,.next-card .bg{transition:none}.next-card:hover{transform:none}}
.next-card .pill{font:800 12px/1 var(--f-body);letter-spacing:.04em;text-transform:uppercase;padding:7px 10px;border-radius:var(--r-ctl);background:var(--red);color:#fff}
.next-card .pill.akcio{background:#FFD400;color:#111;text-transform:none;letter-spacing:0}
/* ALAP: SEMLEGES keret, jelzés nélkül (founder 2026-09-30) – a zöld „vannak szabad helyek" megszűnt. */
.next-card{--st:var(--line);--st-a:78%;box-shadow:0 0 0 4px color-mix(in srgb,var(--st) var(--st-a),transparent)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .next-card{--st-a:55%}}
:root[data-theme="dark"] .next-card{--st-a:55%}
.next-card:hover{box-shadow:0 0 0 4px var(--st),var(--shadow)}
.next-card.utolso-helyek,.next-legend .utolso-helyek{--st:#E08A1E}
.next-card.erdeklodj,.next-legend .erdeklodj{--st:var(--sky)}
.next-card .pill.utolso-helyek{background:#E08A1E;color:#111}
.next-card .pill.erdeklodj{background:var(--sky);color:var(--sky-ink)}
.next-legend{display:flex;gap:16px;flex-wrap:wrap;margin:10px 0 0;font-size:13px;color:var(--muted)}
.next-legend span{--st:var(--line)}
.next-legend i{display:inline-block;width:14px;height:10px;border-radius:0;margin-right:6px;box-shadow:0 0 0 2px color-mix(in srgb,var(--st) 55%,transparent)}
.month-list{display:none;flex-direction:column;gap:22px;margin-top:8px}
.month-list h3{font-size:20px;margin-bottom:8px}
.month-list .empty{color:var(--muted);font-size:14px}
/* „Naptár nézet →” az Eseménynaptár blokk ALATT, JOBBRA (FLYA-292, founder-döntés 2026-10-16). A szakaszfej
   jobb oldali linkjének betűképét viseli (.section-head a), de külön sorban: a blokkban csak a Lista nézet
   van, a naptár a /turanaptar/ lapon. Sarok nincs, az érintési cél 44 px (a sor magassága adja). */
.naptar-nezet{margin-top:14px;text-align:right}
.naptar-nezet a{display:inline-block;min-height:44px;line-height:44px;font:700 15px/44px var(--f-body);color:var(--ink);text-decoration:none;border-bottom:2px solid var(--kiemeles)}
.naptar-nezet a:hover,.naptar-nezet a:focus-visible{color:var(--kiemeles)}
.ev-card{display:grid;grid-template-columns:64px 1fr;gap:14px;background:var(--surface);border-radius:0;padding:14px;text-decoration:none;margin-bottom:8px;border-left:6px solid var(--grass)}
.ev-card.hazai{border-left-color:var(--sky)}
.ev-card time{font:800 22px/1 var(--f-display);font-variant-numeric:tabular-nums}
.ev-card time small{display:block;font:600 11px/1.4 var(--f-body);color:var(--muted);letter-spacing:.06em;text-transform:uppercase}
.ev-card b{font-size:17px;display:block}
.ev-card p{margin:2px 0 0;font-size:13.5px;color:var(--muted)}
.tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}
.tags span{font-size:11.5px;font-weight:600;background:var(--surface-2);border-radius:var(--r-ctl);padding:3px 8px}
@media (max-width:900px){ .year-grid{display:none} .month-list{display:flex} .legend{margin-left:0;display:none} .nezet{display:none!important} }

@media (prefers-reduced-motion:reduce){ *{transition:none!important;scroll-behavior:auto!important} }

/* ---------- túraoldal-sablon ---------- */
.crumbs{display:flex;gap:8px;flex-wrap:wrap;font-size:13.5px;color:var(--muted);margin:22px 0 0}
.crumbs a{text-decoration:none}.crumbs a:hover{text-decoration:underline}
.tour-hero{min-height:460px}
.tour-hero h1{max-width:none}
/* 320 px-en a nyitókép belseje 240 px, a 36 px-es „Biztonságtechnika” 305 px – a fenti háló eltörné szó közben.
   28 px-en egyben kifér (237 px); a kisebb szám 360 px alatt minden túra- és képzés-címre egyformán vonatkozik.
   A főcím-lapok fejsávja (.fejsav, szintén .tour-hero) kimarad: ott nem volt vágás, a betűméretük nem változik. */
@media (max-width:360px){.tour-hero:not(.fejsav) h1{font-size:28px}}
.tour-hero .slogan{font:500 clamp(18px,2vw,24px)/1.25 var(--f-display);margin:0;opacity:.95}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.chips span{font:600 12.5px/1 var(--f-body);background:rgba(255,255,255,.2);backdrop-filter:blur(6px);border-radius:var(--r-ctl);padding:7px 11px}
/* ───── A ZÖLD INDULÁS-DOBOZ (founder-döntés 2026-10-17, FLYA-314 · az átadó 2. szakasza) ─────────────
   A SORREND fentről lefelé: „A túra időpontja” felirat · a dátum · Napok/Túravezető · a visszaszámláló ·
   a kis szöveg · a gomb a doboz LEGALJÁN (a gomb `margin-top:auto`-ja tolja le). A Szint sora lekerült:
   a „Milyen ez a túra?” doboz már viszi (4. pont).
   A DÁTUM a doboz SAJÁT szélessége szerint vált alakot (2. pont) – de NEM `@container`-lekérdezéssel.
   MÉRVE, ezért: egy FIX küszöb nem tud egyszerre igaz lenni a 17 időpontra. A leghosszabb alak a
   Marokkóé („2026. november 28 – december 5.”, 31 jegy) – 26,88 px-es betűvel kb. 435 px, miközben a
   LEGSZÉLESEBB doboz 1280 px-en 417 px helyet ad: a hosszú alak ott SOHA nem fér ki. Az a küszöb viszont,
   ami Marokkót megvédi (≥436 px), a Monacótól is elvenné a hosszú alakot 1280 px-en – és épp azt kéri
   az átadó elfogadási 1. pontja („2027. január 10–17.”). A két elvárás fix számmal összeegyeztethetetlen,
   ezért a VÁLASZTÁST mérés dönti el (`FlyAway.indulasIgazit`): a doboz a LEGBŐVEBB alakot kapja, amelyik
   KIFÉR. A szabály így adatfüggetlen – egy jövőbeli, még hosszabb dátum sem tör két sorba, CSS-javítás
   nélkül. A `white-space:nowrap` a biztonsági háló: ha a JS nem futna le, a sor akkor sem tördelődik. */
.depart{justify-content:flex-start;gap:14px}
.depart .when{font:800 clamp(22px,2.1vw,29px)/1.1 var(--f-display);letter-spacing:-.02em}
/* A DÁTUM EGY ELEM: a jelölésben a HOSSZÚ alak áll, a másik kettő a `data-k` / `data-r` attribútumban vár
   (`FlyAway.indulasKartya`). A `nowrap` kettőt ad: (1) a sor sosem tör két sorba, (2) ettől lesz MÉRHETŐ a
   túlcsordulás (`scrollWidth > clientWidth`), amiből az igazító a legbővebb kiférő alakot választja. */
.depart .when{white-space:nowrap}
/* A VISSZASZÁMLÁLÓ (3. pont): „Már csak N nap, és itt repülhetsz!” – az N kiemelve, kb. 44 px.
   Csak JÖVŐBELI időpontnál áll itt; a többi állapotban a mai állapot-mondat (`.state`) marad a helyén. */
.depart .vissza{margin:4px 0 0;font:600 17px/1.3 var(--f-display)}
.depart .vissza b{font:800 44px/1 var(--f-display);display:inline-block;vertical-align:-6px;margin:0 2px}
@media (max-width:360px){ .depart .vissza{font-size:16px} .depart .vissza b{font-size:38px} }
.depart dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:14.5px}
.depart dt{opacity:.75}.depart dd{margin:0;font-weight:600}
.depart .btn{justify-content:center;margin-top:auto;background:#fff;color:#13252E}
.depart small{opacity:.85;font-size:13px}
/* A „KAPCSOLÓDÓ HELYSZÍNEK” DOBOZ (GitHub #512): a képzés oldalsávjában, a „Kapcsolódik” csempe színével; soronként a túra neve balra,
   a következő időpont jobbra (ha van), a sor 44 px-es érintési cél, a nyíl a lap többi linkcsempéjének jele. */
.helyszinek ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.helyszinek li+li{border-top:1px solid rgba(255,255,255,.28)}
.helyszinek a{display:flex;align-items:center;gap:12px;min-height:44px;color:inherit;text-decoration:none;font-size:17px}
.helyszinek a b{font-weight:700}
.helyszinek a span{margin-left:auto;opacity:.9;font-size:15px;white-space:nowrap}
.helyszinek a::after{content:"→";margin-left:auto}
.helyszinek a:has(span)::after{margin-left:0}   /* dátummal a dátum tolja jobbra a sort, a nyíl közvetlenül utána */
.helyszinek a:hover b,.helyszinek a:focus-visible b{text-decoration:underline}
/* A KÉPZÉS „RÖVIDEN” DOBOZÁNAK FELIRATKOZÁSA (GitHub #513, 2026-10-30): a hírlevél-sáv űrlapja a keskeny dobozban –
   a mező és a gomb EGYMÁS ALATT, teljes szélességben (a doboz 1/3 hasáb, egy sorban a gomb felirata vágódna), a gomb a
   doboz aljára zár, mint a jelentkezés gombja. A küldő ugyanaz (`hirlevelUrlap`), ezért az osztálynevek a sávéi. */
.depart .fel-szoveg{margin:8px 0 0;font-size:15px;line-height:1.45}
.depart .hl-urlap{display:flex;flex-direction:column;gap:6px;margin-top:auto}
.depart .hl-sor{display:flex;flex-direction:column;gap:8px}
.depart .hl-email{min-width:0;min-height:44px;border:0;border-radius:var(--r-ctl);padding:11px 14px;font:500 15px var(--f-body);background:#fff;color:#13252E}
.depart .hl-gomb{margin-top:0;min-height:44px;border:0;cursor:pointer;white-space:normal}
.depart .hl-uzenet{margin:0;font:600 13px/1.35 var(--f-body)}
.depart .hl-uzenet:empty{display:none}
.depart .hl-adat{margin:0;font-size:12.5px;line-height:1.35;opacity:.85}
.depart .hl-adat a{color:inherit}
.depart .hl-koszono{margin:0;font:700 16px/1.3 var(--f-body)}
.state{align-self:flex-start;font:700 11px/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase;background:rgba(255,255,255,.2);border-radius:var(--r-ctl);padding:6px 10px}
/* Indulás-doboz TÉRKÉPPEL (founder-döntés 2026-09-27, Planner-átadó: csak ahol a rekordon van `terkep` mező – ma egyedül Ölüdeniz).
   A doboz kettéoszlik: felül a szöveg tömörebben (a térköz ITT van, a csempéé 0, hogy a kép a szélig érjen), alul a térkép-GIF a
   saját 5:3 arányában, teljes szélességben, vágás nélkül (nincs object-fit). A dobozon nincs rögzített magasság: a mellette álló
   fotós csempe vele nő – ez a founder által elfogadott következmény. Az „↻ ÚJRA" pirula csak a lefutás UTÁN látszik (founder). */
.depart.terkepes{padding:0;gap:0}
.depart.terkepes .depart-szoveg{display:flex;flex-direction:column;gap:10px;padding:22px 22px 18px;flex:1 1 auto}
.depart.terkepes .depart-sor{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 10px}
/* a pirula és a kis felirat SZAVANKÉNT nem törhet (ránézésre derült ki: 365 px-en „IDÉN MÁR / LEZAJLOTT" lett belőle); ha együtt nem férnek el, a felirat egészben megy a következő sorba */
.depart.terkepes .depart-sor .state,.depart.terkepes .depart-sor .eyebrow{white-space:nowrap;flex:0 0 auto}
.depart.terkepes .depart-sor .eyebrow{margin:0}
.depart.terkepes .when{font-size:28px}
@media (max-width:360px){.depart.terkepes .when{font-size:22px}}   /* 320 px-en a 28 px-es dátum két sorba tört („16– / 23.") – ránézésre derült ki */
.depart.terkepes dl{gap:3px 14px;font-size:14px;line-height:1.35}
.depart.terkepes small{font-size:12.5px;line-height:1.4}
.depart .terkep{position:relative;display:block;width:100%;margin:0;padding:0;border:0;background:#F2F5F1;cursor:pointer;line-height:0;font:inherit;color:inherit}
.depart .terkep img{display:block;width:100%;height:auto}
.depart .terkep video{display:block;width:100%;height:auto}   /* 16:9 marad – a videót NEM vágjuk, mert a jobb alsó sarokban a Google Earth forrásjelzése áll */
.depart .terkep .ujra{position:absolute;right:10px;bottom:10px;font:700 11px/1 var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:#13252E;background:rgba(255,255,255,.85);border-radius:var(--r-ctl);padding:6px 10px;pointer-events:none}
/* A VIDEÓS térképen az „Újra" FELÜL jobbra megy: alul jobbra a Google Earth forrásjelzése van, azt semmi nem takarhatja (founder-döntés 2026-09-27). */
.depart .terkep.videos .ujra{top:10px;bottom:auto}
/* Az időzített helynév bal FENT, a pirula stílusában – a rekord `helyek` mezőjéből, a videóval együtt vált. */
.depart .terkep .felirat{position:absolute;left:10px;top:10px;font:700 11px/1 var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:#13252E;background:rgba(255,255,255,.85);border-radius:var(--r-ctl);padding:6px 10px;pointer-events:none;max-width:calc(100% - 100px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.depart .terkep .felirat:empty{display:none}
.depart .terkep .ujra[hidden]{display:none}
.depart .terkep:focus-visible{outline:3px solid #fff;outline-offset:-3px}
/* A TÚRA (és a képzés) TÖRZSE (founder 2026-10-03): a szövegoszlop a „Milyen ez a túra?” dobozhoz tolva – a jobb széle egy köz (16 px) a
   doboz bal szélétől, a sorok balra zártak, a bal oldalon marad az üres hely; a hero és a törzs között is egy köz. 900 px alatt egy oszlop. */
.tour-body{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:var(--koz);margin-top:var(--koz);align-items:start}
.tour-body .prose{max-width:66ch;margin-left:auto}
/* …és a SOROK IS JOBBRA ZÁRTAK (founder 2026-10-03: „A szöveg is jobbra igazított legyen a bekezdésekben és bekezdés címek is”): a bevezető, a
   bekezdés-címek és a bekezdések a doboz felől zárnak; a felsorolások balra maradnak (jobbra zárt listajel nincs). 900 px alatt minden balra.
   2026-10-17 (FLYA-314) ÓTA EZ CSAK A KÉPZÉS LAPJÁRA ÁLL (`:not(.turalap)`): a túralap szövege sorkizárt
   és balra zárt (lentebb). A szűkítés szándékos – a `.tour-body` rácsot a képzés is viseli, és a founder
   9. pontja a TÚRALAPRÓL szól; a képzés-lapok szövegének átigazítását senki nem kérte. */
@media (min-width:901px){ .tour-body:not(.turalap) .prose{text-align:right} .tour-body:not(.turalap) .prose ul,.tour-body:not(.turalap) .prose ol{text-align:left} }

/* ───── A TÚRALAP ÁTTERVE (founder-döntés 2026-10-17, FLYA-314 · GitHub #384; FINOMÍTÁS 2026-10-18,
   FLYA-338 · GitHub #403) ─────────────────────────────────────────────────────────────────────────────
   EGY RÁCS (FLYA-314, 7. pont): a zöld doboz a `.bento`-ból a `.side`-ba került, így a zöld doboz, a
   „Milyen ez a túra?”, a „Mennyibe kerül?” és az „Utazás” ugyanannak az EGY oszlopnak a szélességét
   kapja. 0-állapot az élő lapon (`258cf269`, mérve): a zöld doboz 1280 px-en 386,7 px, a két
   oldalsáv-doboz 461,2 px – két külön rács.
   2026-10-18 (FLYA-338) A RÁCS HÁROM PONTON MÓDOSULT, mind founder-döntés:
     · a FEJSÁV TELJES SZÉLESSÉGŰ (17. pont: a cikk fejsávja), tehát a két hasáb ALATTA kezdődik;
     · a JOBB OSZLOP FIX 380 px (13. pont, founder-döntés 2026-10-18 – az előnézet 320/380/440/500-as
       kapcsolójából a 380 lett a végleges), nem `minmax(0,1fr)`; a bal hasáb viszi a maradékot;
     · a JOBB OSZLOP NEM RAGAD (15. pont: „görgetéskor a jobb oszlop együtt megy a leírással”) – a
       `.side` `position:sticky`-je a TÚRALAPON `static`-ra vált. A képzéslapon MARAD ragadós: azt az
       átadó „Amit NEM kérünk” szakasza kimondja [levezetve].
   A SZÖVEG SORKIZÁRT (FLYA-314, 9. pont), az utolsó sor balra, minden szélességen; a felsorolások balra
   zártak. 2026-10-18 ÓTA A SORHOSSZ A BAL OSZLOP TELJES SZÉLESSÉGE (14. pont: „a kép alatti szöveg olyan
   széles, mint a kép”): a `.tour-body .prose` 66ch-s szűkítése ÉS a `.prose p` 66ch-s mércéje is
   megszűnik a túralapon – a FLYA-314 ezt még szándékosan megtartotta, a founder 14. pontja viszont
   pontosan ezt a szűkítést kéri ki (a jóváhagyott előnézet `.szoveg p{max-width:none}`-ja). A KÉPZÉS
   lapján mindkettő marad. */
.tour-body.turalap{grid-template-columns:minmax(0,1fr) 380px;grid-template-rows:auto auto 1fr}   /* KÉT osztály, nem egy: a `.tour-body` rácsát a sor-rend nem dönthesse el, és a 900 px alatti egyhasábos szabály is NÉVVEL írja felül (lentebb) */
.turalap .prose{margin-left:0;max-width:none;text-align:justify;text-align-last:left;hyphens:auto}
.turalap .prose p{max-width:none}
.turalap .prose ul,.turalap .prose ol{text-align:left;text-align-last:left}
/* ───── OLVASHATÓSÁG: +2 PX A DOBOZOKBAN ÉS A BEKEZDÉSEKBEN (founder-döntés 2026-10-19, D1 · FLYA-401 ·
   GitHub #476) ────────────────────────────────────────────────────────────────────────────────────────
   A founder szava: „a dobozokban lévő leírások és bekezdések egyel nagyobb, és kettővel nagyobb betűvel …
   mert a mostani nagyon nehezen olvasható, kicsi betű”. A döntés **+2 px**, és CSAK A TÚRALAPON.
   MIÉRT `.turalap` ALÁ SZŰKÍTVE: a `.meter` és a `.prose` nem a túra sajátja – a `.meter` a KÉPZÉS
   („röviden” doboz, FLYA-408) és a cikk lapján is áll, a `.prose` a cikken, a képzésen és a `/kapcsolat/`-on
   is (mérve: a kritikus CSS listája mind a négy lapot megnevezi a `.prose p` sorában). A founder a TÚRALAP
   olvashatóságát kérte, tehát a szűkítés nem óvatosság, hanem a kérés betűje – a többi lap lenyomata
   változatlan marad (az őr 6. szakasza negatív kontrollként meg is méri a képzés- és a cikklapot).
   A NÉGY DOBOZ sorai itt EGY rendben vannak: a zöld doboz (`.depart`) `<dl>`-je és kis szövege, a másik
   három doboz (`Milyen ez a túra?` · `Mennyibe kerül?` · `Utazás`) pedig a `.meter` sorain áll – a
   FÉLKÖVÉR CÍMKE (`.meter b`) méretet NEM hord, a `.meter`-ből örökli, tehát a +2 px magától eljut hozzá.
   A SORKÖZ ARÁNYOSAN NŐ, mert a `body` `line-height`-ja MÉRTÉKEGYSÉG NÉLKÜLI (`font:16px/1.55`): a
   leszármazottak az ARÁNYT öröklik, nem a kiszámolt képpontot (mérve: a bekezdés sorköze 1280 px-en
   25,97 px → 29,06 px).
   AMI NEM VÁLTOZIK (az átadó D1-je): a nagy bevezető mondat (`.prose .lead`, 23/20/19 px – ezért áll a
   bekezdés-szabályban a `:not(.lead)`, hiszen a `.lead` IS egy `p`, és a két szelektor fajsúlya
   különben a sorrenden dőlne el), a címek (`.prose h2` 26 px, `.card :is(h2,h3)` 19 px), a dátum
   (`.depart .when`) és a „Már csak N nap” sor (`.depart .vissza`).
   A TÉRKÉPES ÁG (`.depart.terkepes`, ma egyedül Ölüdeniz) SZÁNDÉKOSAN KÜLÖN SOR: ott a térkép miatt
   tömörebb a doboz (14 / 12,5 px), és a +2 px azon a tömörebb alapon értendő – egy közös szabály
   csendben 16,5-re vinné, azaz a térképes doboz +2,5 és +4 px-et kapott volna. (A doboz ma a D3 miatt
   lezárult időponton nem is rajzolódik; a szabály akkor él, ha Ölüdeniz új időpontot kap.) */
.turalap .meter,.turalap .depart dl{font-size:16.5px}
.turalap .meter small,.turalap .depart small{font-size:15px}
.turalap .depart.terkepes dl{font-size:16px}
.turalap .depart.terkepes small{font-size:14.5px}
.turalap .prose p:not(.lead){font-size:calc(1em + 2px)}
/* A NÉGY RÁCS-ELEM HELYE. A DOM-sorrend: fejsáv · címkesor · OLDALSÁV · szöveg – és ez nem véletlen:
   keskeny nézetben pontosan ebben a sorrendben kell folyniuk, hogy a dátum és a dobozok a címkesor UTÁN,
   a cikk-hosszú szöveg ELŐTT álljanak (a jóváhagyott előnézet rendje). Széles nézetben a CSS teszi a
   fejsávot a teljes szélességre és az oldalsávot a jobb hasábba – így a DOM-sorrend a telefont szolgálja,
   a rács pedig az asztalt. 2026-10-18-ig a fejkép, a címblokk és a szöveg EGY burkolóban állt, és az
   oldalsáv csak utánuk tudott jönni: 390 px-en a zöld doboz a teljes cikk ALÁ csúszott (mérve: a lap
   15 006 px magas, a doboz a 70 %-ánál) – ezt a mérőszámok nem fogták meg, csak a képernyőkép.
   A HELYEK EXPLICIT SOR-SZÁMOT IS KAPNAK, nem automatikus elhelyezést: az oldalsáv `grid-row`-ja
   (`2 / span 2`) kézzel kijelölt terület, és a mellette folyó automatikus elhelyezés sorrendje böngészőnként
   kiszámíthatatlan lett volna. */
.turalap>.fejsav{grid-column:1/-1;grid-row:1;margin-top:0}   /* a `.cikkfej` 14 px-es felső margója a cikklap morzsájához tartozik – itt a rács `margin-top`-ja adja a közt */
.turalap>.tour-cim{grid-column:1;grid-row:2}
.turalap>.prose{grid-column:1;grid-row:3}
.turalap>.side{grid-column:2;grid-row:2/span 2;position:static}
/* A JELLEG-CÍMKÉK KÖZVETLENÜL A KÉP ALATT, BALRA (founder 2026-10-18, 18. pont). A `.tour-cim` 2026-10-18
   óta CSAK ezeket viszi: a helyszín, a túranév (H1) és a szlogen visszakerült a KÉPRE, a cikk fejsávjának
   elrendezésével (`cikkFej`), ezért a blokk korábbi `.eyebrow` / `h1` / `.slogan` szabályai – és a
   `.tour-kep` csempe-szabálya – ELŐÁLLÍTÓ NÉLKÜL maradtak, tehát kikerültek (a FLYA-59 tanulsága). A H1
   betűje ma a cikk címéé (`.cikkfej h1`). */
.tour-cim{display:flex;flex-direction:column;gap:6px;min-width:0}
/* A címkék a LAP hátterén állnak, nem a fotón: a fotós változat áttetsző fehérje itt olvashatatlan lenne. */
.tour-cim .chips{margin-top:0}
.tour-cim .chips span{background:var(--surface-2);backdrop-filter:none;color:var(--ink)}

/* A LAPOZHATÓ SOR (8. pont, a Planner 1.3-as módosításával). SZÉLES NÉZETBEN a burkolók átlátszóak
   (`display:contents`), tehát a dobozok a `.side` saját hasábjának elemei maradnak – a zöld doboz
   `order:-1`-gyel a sor ELEJÉRE kerül (zöld · Milyen · Mennyibe), ahogy az átadó 3. pontja kéri. */
/* CSAK A TÚRALAP `.side` DOBOZÁBAN (founder 2026-11-01, telefonos képernyőképpel: „a főoldalon a telefonon is teljesen balra
   igazított legyen a főcsempékben a kiírás”): a csempe címsávja is `.sav` (`.fcs .sav`, a `kockak.js`), és a 900 px alatti
   lapozósor-szabály – a `padding-inline`, a `gap`, a `scroll-snap` – a puszta `.sav`-on MINDEN csempére ráfolyt (mérve 2026-11-01:
   a cím 390 px-en 44,75 px-nél, 768 px-en a főoldal nagy csempéjén 174 px-nél kezdődött a 16 helyett). */
.side .sav,.side .sav-lap{display:contents}
.side>.sav .depart,.side .sav-lap .depart{order:-1}
.pottyok{display:none}
.prose .lead{font:500 clamp(19px,2vw,23px)/1.45 var(--f-display);letter-spacing:-.01em;margin:0 0 28px}
.prose h2{font-size:26px;font-weight:800;margin:32px 0 10px}
.prose p{margin:0 0 14px;max-width:66ch}
.side{position:sticky;top:calc(var(--fej-h,96px) + var(--proto-h,0px) + 12px);display:flex;flex-direction:column;gap:14px}
.card{background:var(--surface);border-radius:var(--r-tile);padding:22px}
/* A KÁRTYA CÍMÉNEK MÉRETE A KÁRTYÁHOZ TARTOZIK, NEM A CÍMKE SZINTJÉHEZ (FLYA-321, 2026-10-18).
   Az oldalsáv kártyái („Milyen ez a túra?”, „Mennyibe kerül?”) a H1 UTÁN állnak a DOM-ban (FLYA-314 óta
   az oldalsáv előrébb került – ez a telefonos sorrend miatt kell), ezért a címük `h2`; a törzsben, egy
   H2-es szakasz ALATT álló kártyáké (`cols2`) marad `h3`. A LÁTVÁNYUK azonos: EGY szelektor adja
   mindkettőnek. A `:is(h2,h3)` fajsúlya ugyanaz, mint a régi `h3`-é (0,1,1), tehát egyetlen szabály
   rangsora sem mozdult – és mérve: a 0-állapotban egyetlen kiszolgált lapon sem állt `h2` `.card`-on
   belül, tehát a bővítés ma senkitől nem von el stílust. */
.card :is(h2,h3){font-size:19px;margin-bottom:14px}
.card .card-cim{font-size:19px;margin-bottom:14px;font-weight:700}
.meter{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:9px 0;border-top:1px solid var(--line);font-size:14.5px}
.meter:first-of-type{border-top:0}
.meter b{font-weight:600}
.meter .dots{display:flex;gap:4px;align-items:center}
.meter .dots i{width:11px;height:11px;border-radius:0;background:var(--surface-2)}
.meter .dots i.on{background:var(--grass)}
/* a nehézségi szint is ZÖLD, mint az összes többi szintjelző (founder 2026-10-01) – a korábbi piros `.meter.level` szabály megszűnt */
.meter small{grid-column:1/-1;color:var(--muted);font-size:13px}
.prices{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--koz);margin-top:var(--koz)}
.price{background:var(--surface);border-radius:var(--r-tile);padding:24px;border:2px solid transparent;display:flex;flex-direction:column;gap:6px}
.price.best{border-color:var(--grass)}
.price .tag,.ardoboz .tag{align-self:flex-start;font:700 11px/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase;background:var(--grass);color:var(--grass-ink);border-radius:var(--r-ctl);padding:5px 9px}
.price h3{font-size:20px}
.price .amt{font:800 38px/1 var(--f-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.price .amt small{font:500 14px var(--f-body);color:var(--muted);letter-spacing:0}
.price p{margin:0;font-size:14px;color:var(--muted)}
.cols2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--koz);margin-top:var(--koz)}
.ticks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:14.5px}
.ticks li{padding-left:26px;position:relative}
.ticks li::before{content:"";position:absolute;left:2px;top:7px;width:12px;height:6px;border-left:2.5px solid var(--grass);border-bottom:2.5px solid var(--grass);transform:rotate(-45deg)}
.ticks.plus li::before{width:10px;height:0;border-left:0;border-bottom:2.5px solid var(--muted);transform:none;top:11px}
.facts{margin:0;display:grid;grid-template-columns:auto 1fr;gap:10px 18px;font-size:14.5px}
.facts dt{color:var(--muted)}.facts dd{margin:0}
/* AZ ÁR ÉS AZ UTAZÁS DOBOZA – EGY FORMA, EGY SZABÁLY (FLYA-215 / FLYA-316 / FLYA-319).
   Mindkettő az oldalsávban áll („Milyen ez a túra?” · „Mennyibe kerül?” · „Utazás”), és ANNAK a formáját
   hordozza: a kártyát (`.card`), a címet (`.card :is(h2,h3)`) és a CÍMKE–ÉRTÉK sort (`.meter` +
   `.meter b` + `.meter small`) a MEGLÉVŐ szabályok adják.
   EGYETLEN új szabály kell: a CÍMKE NÉLKÜLI sor. A `.meter` rácsa `1fr auto`, tehát egy magában álló elem
   csak az első hasábot kapná, és a jobb oldalon maradna egy `auto` nyomvonal – a sima szöveg ezért a
   TELJES szélességen áll.
   2026-10-18 (FLYA-319, founder D5): AZ ÁR-DOBOZ IS CÍMKE–ÉRTÉK SOROKBÓL ÁLL, és ezzel a SAJÁT
   szabályai MEGSZŰNTEK (`.ardoboz .osszeg`, `.meter b .tag`, `.ar-proza`, `.ar-jegyzet`, `.ar-alcim`),
   mert az előállítójuk is megszűnt: a csomag-sor, a próza, a jegyzet és a két `.ticks` lista helyén ma
   sorok állnak. Előállító nélküli CSS-szabály nem marad a fájlban (a FLYA-59 tanulsága) – mérve: 0
   előfordulás a mai jelölésben. A `.ticks` és a `.tag` szabálya MARAD: azoknak MÁS előállítójuk is van
   (a cikk-kockák `ul`-listái, illetve a képzés ár-opcióinak akció-címkéje).
   A `.ut-sima` NEVE MARADT (nem lett `.sor-sima`): a FLYA-316 óta élő osztály, 9 túralapon kint van, és
   egy puszta átnevezés a FLYA-316 ikerpárját és próbáját is átírná – a KÖTŐDÉSE viszont már nem az
   utazáshoz szól, hanem a két oldalsávi dobozhoz, ezért a szelektor mindkettőt nevezi. */
.utazasdoboz .ut-sima,.ardoboz .ut-sima{grid-column:1/-1}
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:150px 150px;gap:10px;margin-top:16px}
.gallery .ph{border-radius:0;position:relative;overflow:hidden}
.gallery .ph:first-child{grid-row:span 2}
.gallery a.ph{display:flex;align-items:center;justify-content:center;text-decoration:none;font:700 16px var(--f-display);text-align:center;padding:12px}
.gallery a.ph::after{content:none}
.cta-bar{display:none}
.missing{background:var(--surface);border-radius:var(--r-tile);padding:28px;margin-top:20px;max-width:70ch}
@media (max-width:900px){
  /* `minmax(0,1fr)` ÉS NEM `1fr` (FLYA-314, MÉRVE): a puszta `1fr` `min-width:auto`, azaz a hasáb nem
     mehet a tartalma MIN-CONTENT szélessége alá – a lapozható sor min-content szélessége viszont a három
     lap összege (mérve 390 px-en: `.sav` 878 px, `.side` 649 px), ezért a hasáb 649 px-re nyílt, és a LAP
     lett 147–292 px-rel vízszintesen görgethető. A `minmax(0,…)` és a `min-width:0` engedi a hasábot a
     sor alá zsugorodni; a sor a SAJÁT `overflow-x`-ében görget, ahogy kell. */
  .tour-body{grid-template-columns:minmax(0,1fr);gap:28px}.side{position:static;min-width:0}
  /* A túralap négy eleme a DOM-sorrendben folyik: fejsáv · címkesor · lapozható sor · szöveg. A 2026-10-18
     (FLYA-338) óta EXPLICIT sor- és hasáb-számokat itt MIND vissza kell engedni `auto`-ra, és a fix
     380 px-es második hasábot is: két osztállyal írták elő (`.tour-body.turalap`), ezért a fenti egyhasábos
     `.tour-body` szabály magában NEM írja felül őket (0,1,0 vs. 0,2,0 fajsúly). */
  .tour-body.turalap{grid-template-columns:minmax(0,1fr);grid-template-rows:none}
  .turalap>.fejsav,.turalap>.tour-cim,.turalap>.prose,.turalap>.side{grid-column:1;grid-row:auto}
  /* ── A LAPOZHATÓ SOR a töréspont ALATT (FLYA-314, 8. pont) ──
     A 900 px A MÉRT TÖRÉSPONT, nem választott szám: a zöld doboz eddig a `.bento` rácsán `s4` volt, és
     a fenti `.s3,.s4,.s5{grid-column:span 6}` szabály miatt PONTOSAN itt került volna új sorba (a fejkép
     12 hasábra nő). Ugyanitt vált a `.tour-body` is egy hasábra, tehát egy töréspont visz mindent.
     A `.side` lesz maga a sor: a burkolók `display:contents`-e megszűnik, a `.sav` vízszintesen
     lapozható, pattintós sor, a `.sav-lap` pedig EGY lappá fogja a zöld dobozt és a „Mennyibe kerül?”-t
     (a Planner 1.3-as módosítása, 12 px réssel). A szomszédos lapokból egy ujjnyi kilátszik, ezért a sor
     két végén a `padding-inline` tartja középen az első lapot – `scroll-padding` helyett, mert azt a
     `scroll-snap-align:center` mellett nem minden böngésző veszi figyelembe. */
  .side{gap:0}
  .side .sav{display:flex;align-items:flex-start;gap:12px;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-behavior:smooth;padding:2px 0;padding-inline:calc((100% - min(84%,420px)) / 2)}
  .side .sav::-webkit-scrollbar{display:none}
  .side .sav>*{flex:0 0 min(84%,420px);scroll-snap-align:center;min-width:0}
  .side .sav-lap{display:flex;flex-direction:column;gap:12px}
  .side .sav .depart,.side .sav .sav-lap .depart{order:0}
  /* A doboz magassága a SAJÁT tartalmáé – nem nyújtjuk egyformára ([levezetve], az átadó 3. pontja). */
  .sav .depart{min-height:0}
  /* A PÖTTY-JELZŐ 2026-10-18 (FLYA-338, a founder 16. pontja: „a lapozható sor pöttyei a zöld doboz
     színét kapják”) ÓTA A ZÖLD DOBOZ SZÍNÉVEL (`--grass` – ugyanaz a token, amit a `c-grass` osztály
     tesz a dobozra). 2026-10-18 ELŐTT a Főoldal kékje volt (`--fcs-fooldal`, `#2B78CC`, a generált
     `szinek.css`-ből, FLYA-314). A sort a böngésző tölti fel (`FlyAway.savBekot`), mert a lapok száma
     napfüggő – a HELYE viszont itt ki van mérve, hogy a pöttyök megjelenése ne mozdítsa el a lapot (CLS).
     A MÉRTAN VÁLTOZATLAN: a founder 16. pontja a SZÍNRŐL szól, és a jóváhagyott előnézet 10 px-es
     pöttyei + 10 px-es rése 24 px-es érintési-cél ÁTFEDÉST adnának – azt a hibát a FLYA-314 egyszer már
     megmérte és elhárította (lásd a következő bekezdést), ezért a 44 px-es, élben érő gombok maradnak. */
  /* A GOMB MAGA 44×44 px, a LÁTHATÓ pötty 10 px, a közepén (`::before`). MÉRVE kellett idejutni: az első
     változat 10 px-es gombot rajzolt, és a 44 px-es érintési célt egy `inset:-17px`-es `::before` adta a
     pötty KÖRÜL – a 10 px-es réssel a célok 24 px-t ÁTFEDTÉK, és a kijelölt pötty (amelyiket a `z-index`
     emelt) ELLOPTA a szomszédja kattintását: az `elementFromPoint` a 0. pötty közepén az 1. pöttyt adta,
     a próba pedig „nem lapoz”-t jelentett egy hibátlan kezelőre. Átfedő érintési célt tehát nem
     `z-index`-szel rendezünk el, hanem meg sem engedünk: a gombok élben érnek össze, a rés a pöttyök
     KÖZÖTT van, és minden pötty közepe a SAJÁT gombjára esik. */
  .pottyok{display:flex;justify-content:center;gap:0;margin-top:2px;min-height:44px}
  .pottyok button{width:44px;height:44px;padding:0;border:0;background:transparent;cursor:pointer;display:grid;place-items:center}
  .pottyok button::before{content:"";width:10px;height:10px;border:2px solid var(--grass);background:transparent}
  .pottyok button[aria-current="true"]::before{background:var(--grass)}
  .gallery{grid-template-columns:1fr 1fr;grid-template-rows:160px 110px 110px}.gallery .ph:first-child{grid-row:auto;grid-column:span 2}
  .cta-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;gap:12px;align-items:center;justify-content:space-between;background:var(--surface);border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));font-size:14px}
  .cta-bar b{display:block;font-size:15px}
  body.has-cta{padding-bottom:76px}
}

/* ---------- jelentkezés ----------
   A lapot 2026-09-30 óta a KÖZÖS RAJZOLÓ rajzolja (`assets/jelentkezes.js`), amit az admin előnézete is
   hív. Az admin CSP-je tiltja a `style` attribútumot, ezért ami korábban beégetett `style="…"` volt a
   lapon, az itt OSZTÁLY (`.jel-*`). */
/* AZ ADMIN ELŐNÉZET-KERETE ezt a stíluslapot tölti be (`/admin/jelentkezes-elonezet.html`), az admin
   sajátját nem – ezért a keret két szabálya ITT él. */
body.jel-elonezet{background:var(--bg);margin:0;padding:16px}
body.jel-elonezet .apply{margin-top:0}
.jel-fej{margin-top:14px}
.jel-cim{font-size:clamp(32px,4.6vw,56px);font-weight:800}
.jel-hiba{color:var(--red);font-weight:600;margin:0}
.jel-akcio{align-self:flex-start}
.summary .tile .pill{align-self:flex-start}
.jel-fadmin{margin:0;font-size:14px;color:var(--muted)}
.jel-kerdes{grid-column:1/-1;margin:0 0 2px;font-size:14px;font-weight:600}
/* a „Repültél már velünk?” két válasza keskenyebb, mint a fajta-választó – egy sorban, de nem teljes szélességben */
.seg-kicsi{grid-template-columns:repeat(auto-fit,minmax(140px,180px))}
.seg-kicsi label{padding:10px 14px}

.apply{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:28px;margin-top:28px;align-items:start}
.form{background:var(--surface);border-radius:var(--r-tile);padding:clamp(20px,3vw,34px);display:flex;flex-direction:column;gap:26px}
.form fieldset{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:14px;min-width:0}
.form legend{font:800 20px/1.2 var(--f-display);letter-spacing:-.01em;padding:0;margin-bottom:12px}
.seg{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
/* HÁROM fajta (GitHub #520, 2026-10-30: Tanfolyam · Túra · Kérdésem van) – egy sorban, ahol elfér; keskenyebben kettő, 460 px alatt egy */
.seg:has(> label:nth-of-type(3)){grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
@media (max-width:460px){.seg{grid-template-columns:1fr}}
.seg label{position:relative;display:flex;flex-direction:column;gap:2px;border:2px solid var(--line);border-radius:0;padding:14px 16px;cursor:pointer;font-weight:700}
.seg label small{font-weight:500;color:var(--muted);font-size:13px}
.seg input{position:absolute;opacity:0;inset:0;cursor:pointer}
.seg label:has(input:checked){border-color:var(--sky);background:var(--sky-soft)}
.seg label:has(input:focus-visible){outline:2.5px solid var(--kiemeles);outline-offset:3px;box-shadow:0 0 0 1px var(--ink)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--koz)}
.field{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}
.field span em{font-style:normal;font-weight:500;color:var(--muted)}
.field input,.field select,.field textarea{font:500 16px var(--f-body);color:var(--ink);background:var(--bg);border:1.5px solid var(--line);border-radius:0;padding:12px 14px;width:100%}
.field textarea{min-height:110px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--sky);box-shadow:0 0 0 3px var(--sky-soft)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;font-weight:500}
.check input{width:18px;height:18px;margin-top:2px;accent-color:var(--sky);flex:none}
.form .btn{align-self:flex-start;padding:14px 28px;font-size:16px}
.summary{position:sticky;top:calc(var(--fej-h,96px) + var(--proto-h,0px) + 12px);display:flex;flex-direction:column;gap:14px}
.summary .tile{min-height:0;justify-content:flex-start;gap:10px}
.summary .when{font:800 26px/1.1 var(--f-display)}
.sent{background:var(--grass-soft);border-radius:var(--r-tile);padding:28px}
.sent h2{font-size:28px;margin-bottom:8px}
.sent dl{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:16px 0 0;font-size:14.5px}
.sent dt{color:var(--muted)}.sent dd{margin:0;font-weight:600}
@media (max-width:900px){ .apply{grid-template-columns:1fr} .summary{position:static;order:-1} }

/* ---------- valódi fotók, galéria, modulok ---------- */
.photo{background-size:cover;background-position:center;color:#fff;text-shadow:var(--foto-arnyek)}
/* A KÉPES FEJSÁV (founder 2026-10-04): állandó arány – 641 px fölött 3:1, alatta 9:10 (a min-height:400 helyett; a szöveg magasabbra nyomhatja);
   a kép helye és mérete a két nézet CSS-változóiból (`--fkp-web/--fk-web`, `--fkp-telefon/--fk-telefon` – a kockak.js fejKepStilus-a írja a rekord
   `foto`-jából); 100 % alatti nagyításnál a szabad részt a főcím színe tölti (`--fejszin`, a lap főcíméből; tartalék a mélykék).
   MÉRVE 2026-10-04: a tartalomhoz mért automatikus minimum (`min-height:auto`) csak `overflow:visible` vagy `clip` mellett él – a `.tile` `hidden`-je
   alatt a hosszú cím kilógott (Rólunk 641 px-en 53 px); ezért itt `clip` (ugyanúgy vág, de a sáv nő a szöveghez). */
.tile.fejsav.photo{min-height:auto;overflow:clip;aspect-ratio:3/1;background-repeat:no-repeat;background-color:var(--fejszin,var(--sky-deep));background-position:var(--fkp-web,center);background-size:var(--fk-web,cover)}
@media (max-width:640px){ .tile.fejsav.photo{aspect-ratio:9/10;background-position:var(--fkp-telefon,var(--fkp-web,center));background-size:var(--fk-telefon,var(--fk-web,cover))} }
/* A TARTALOM SAJÁT FEJSÁVJA a túra- és a képzésoldalon (founder 2026-10-06, Kép-szerkesztő): a csempe mérete, aránya, szövegei és átmenete a mai; a
   kép mérete és helye nézetenként a `foto.fejsav`-ból (kockak.js sajatFejStilus → `--fkp-*`/`--fk-*`), nélküle `cover` + `foto.pozicio`; a kép
   nélküli részt a rekord főcímének színe tölti (`--fejszin`). A cikk sávja a fenti `.tile.fejsav.photo` szabállyal megy. */
.tour-hero.photo:not(.fejsav){background-repeat:no-repeat;background-color:var(--fejszin,var(--sky-deep));background-position:var(--fkp-web,center);background-size:var(--fk-web,cover)}
@media (max-width:640px){ .tour-hero.photo:not(.fejsav){background-position:var(--fkp-telefon,var(--fkp-web,center));background-size:var(--fk-telefon,var(--fk-web,cover))} }
/* A FOTÓN NINCS SÖTÉTÍTŐ RÉTEG (founder-döntés 2026-10-16, Kinga kérése – FLYA-288, GitHub #358).
   AMI ITT VOLT: négy `::before` sötét átmenet (`.photo`, `.photo.tour-hero:not(.fejsav)`,
   `.tile.fejsav.photo`, `.photo.hero:not(.tour-hero)`) és ugyanez a sötét témában még hatszor. A fejkép
   ettől MÉRHETŐEN sötétebb volt, mint UGYANAZ a fotó a csempén: a `/kepzesek/` fejképe és az „Alapfokú
   tanfolyam" csempéje (mindkettő `/img/kepzes/hero.jpg`) ugyanazon a képponton 24,9 %-kal (világos) és
   27,2 %-kal (sötét) tért el – pontosan ezt a két képet tette egymás alá a founder a kérésében.
   A réteg HELYETT a betűk árnyéka tart olvashatón (`--foto-arnyek`, a `.photo`-ról öröklődve).
   A `::before` elem maga is MEGSZŰNT: háttér nélkül semmit nem festett, viszont egy `inset:0` abszolút
   doboz maradt volna minden fotón. Őr: `node tools/proba/foto_sotetites_proba.mjs`.
   NEM tartozik ide, és NEM változott: a Galéria-album vetítőjének `v-sotet` rétege (65 %, founder
   2026-09-29), a sötét téma `.ph::before` szűrője (a kép NÉLKÜLI helykitöltőé) és az admin cikk-fejléc
   szövegablakának vászna (FLYA-163). */
.photo>*{position:relative;z-index:1}
/* A SAJÁT HÁTTERŰ elemek VISSZAVESZIK az öröklött árnyékot: van saját felületük, azon az árnyék csak
   elmosná a betűt (founder-döntés 2026-10-16: „a címkék szürke dobozai és a gombok nem kapnak árnyékot").
   MÉRVE (FLYA-288, 7 lap × 4 nézet): a fotón ma négy ilyen fajta áll – a `.chips span` (áttetsző fehér,
   a Repertoár-kártyán és a túra fejsávján), a `.btn`, a `.pill` és a `.rep-card .datum` piros kapszulája
   (annak a `small`/`b` gyereke hordozza a szöveget, ezért a `*` is kell). */
.photo .chips span,.photo .btn,.photo .pill,.photo .datum,.photo .datum *{text-shadow:none}
/* A KÉP NÉLKÜLI TARTALOM-FEJLÉC (founder-döntés 2026-10-10, FLYA-75, a Planner-átadó 2. pontja: „a kép nélküli
   cikk fejléce a cikk főcímének színét kapja … és a KÉPES fejléc arányát; a mai `c-sky-deep` és
   `min-height:300px` megszűnik”). A szín NEM beírt érték: a `.focimszin[data-focim="<kulcs>"]` hídján jön a
   generált `szinek.css`-ből (`--sz` / `--szi`) – ugyanazon az EGY úton, amelyen a Cikkek-blokk kártyái és a
   rács csempéi is kapják a főcím színét. A felirat a SZÁMOLT `-ink` (`--szi`): a Kipróbálnám sárgáján sötét.
   Főcím nélküli cikknél a Főoldal színe (a rajzoló `data-focim="fooldal"`-t ír). Arány: a képes sávé (3:1,
   641 px alatt 9:10), `min-height:auto` + `overflow:clip` – ettől nő a sáv a tartalomhoz, ha a hosszú cím nem
   fér bele (ugyanaz a mérés, ami 2026-10-04-én a képes sávnál a `clip`-et adta). A fotón SOHA nincs felirat –
   itt nincs fotó, tehát a felirat az egyszínű sávon áll, árnyék nélkül. */
.tile.fejsav.nincskep{min-height:auto;overflow:clip;aspect-ratio:3/1;background:var(--sz,var(--sky-deep));color:var(--szi,#fff)}
@media (max-width:640px){ .tile.fejsav.nincskep{aspect-ratio:9/10} }
.tile.fejsav.nincskep h1,.tile.fejsav.nincskep .bev,.tile.fejsav.nincskep .slogan,.tile.fejsav.nincskep .meta,.tile.fejsav.nincskep .eyebrow,.tile.fejsav.nincskep .eyebrow a{color:var(--szi,#fff);text-shadow:none}
.tile.fejsav.nincskep .btn{background:var(--szi,#fff);color:var(--sz,var(--sky-deep));border-color:var(--szi,#fff)}
/* A KIVÁGÁS a VÁLTOZÓ ARÁNYÚ helyeken – kártya, portré, szövegbeli kép (founder-döntés 2026-10-10, FLYA-75,
   13. pont). A `szel`/`mag` a KITÖLTŐ (cover) méret százaléka, mert ugyanaz a beállítás több arányú kártyán is
   megjelenik; a két érték FÜGGETLEN (eltérésük maga a torzítás – founder 3. kör: „nem baj, ha kép torzul”).
   A `pozicio` az `object-position`, és ugyanaz a pont a nagyítás horgonya is (`--kvo`), hogy a nagyítás ne
   csúsztassa el a beállított kivágást. 100/100-nál az osztály ki sem kerül, tehát a kint lévő képek számolt
   `transform`-ja betűre `none` marad. A szülő minden ilyen helyen vág (`.ncard .thumb`, `.cikk-kartya .ckep`,
   `.fcs .kep`, `.people figure` – mindegyiken `overflow:hidden`), a szabad részt a hely háttere tölti. */
.kivagott{transform:scale(var(--kvx,1),var(--kvy,1));transform-origin:var(--kvo,center)}
/* A SÖTÉT TÉMA FOTÓ-RÉTEGEI IS MEGSZŰNTEK (FLYA-288): a fenti négy átmenet sötét párja hatszor állt itt
   (`[data-theme="dark"]` és `prefers-color-scheme` ágon). A fotó mindkét témában ugyanúgy látszik. */
.mosaic{columns:4 220px;column-gap:10px;margin-top:16px}
.mosaic button{display:block;width:100%;margin:0 0 10px;padding:0;border:0;border-radius:0;overflow:hidden;cursor:zoom-in;background:var(--surface-2);break-inside:avoid}
.mosaic img{width:100%;height:auto;transition:transform .35s}
.mosaic button:hover img{transform:scale(1.04)}
/* OSZLOPOS MOZAIK (FLYA-223, 2026-10-16) – a „Képek a túráról” blokk rácsa. A régi `columns:4 220px`
   többhasábos elrendezés a kép darabszámának változására ÚJRATÖRDEL: a „További képek” gombra minden
   addig látható kép elmozdult volna. Itt N VALÓDI oszlop áll, és az új kép a legalacsonyabb oszlop
   VÉGÉRE kerül – a kint lévők helye nem változhat. Az oszlopszámot az `auto-fill` adja (a `data-db`
   nélküli állapotban mérjük vissza, a Pillanatok sor mintájára), a hasábszélesség marad 220 px. */
.mosaic.oszlopos{columns:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));column-gap:10px;row-gap:0;align-items:start}
.mosaic.oszlopos[data-db]{grid-template-columns:repeat(var(--db),1fr)}
.mosaic.oszlopos .mcol{min-width:0}
.mosaic-tobbi{margin:12px 0 0;font-size:14.5px;color:var(--muted)}
.mosaic-lab{display:flex;justify-content:center;margin-top:6px}
.mosaic-lab button[hidden]{display:none}
dialog#lightbox{border:0;padding:0;background:transparent;max-width:min(96vw,1400px);max-height:96vh;color:#fff}
dialog#lightbox::backdrop{background:rgba(6,14,20,.92)}
dialog#lightbox img{max-width:100%;max-height:calc(96vh - 60px);border-radius:0;margin:0 auto}
.lb-bar{display:flex;gap:10px;align-items:center;justify-content:center;padding-top:10px;font:600 14px var(--f-body)}
.lb-bar button{border:0;border-radius:var(--r-ctl);background:rgba(255,255,255,.16);color:#fff;padding:9px 16px;font:700 15px var(--f-body);cursor:pointer}
.lb-bar button:hover{background:rgba(255,255,255,.3)}
.lb-bar output{min-width:64px;text-align:center;font-variant-numeric:tabular-nums}
.module{background:var(--sky-soft);border-radius:var(--r-tile);padding:clamp(20px,3vw,36px)}
.module-head{display:grid;gap:28px;align-items:center}
.module-head.has-foto{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}
.module-head h2{font-size:clamp(26px,3.2vw,38px);font-weight:800;margin:8px 0 12px}
.module-head .lead{font:500 19px/1.45 var(--f-display);margin:0 0 14px}
.module-head p{margin:0 0 12px;max-width:66ch}
.module-head img{border-radius:0;width:100%;aspect-ratio:16/10;object-fit:cover}
/* a `.addon` (a túra kiegészítő-sora) 2026-10-16 (FLYA-215) óta nincs: a kiegészítő az ár-dobozban áll, a
   többi ár-adattal egy formában (`.meter.ar`) – ELŐÁLLÍTÓ NÉLKÜLI szabály nem marad a fájlban */
@media (max-width:900px){.module-head.has-foto{grid-template-columns:1fr}}

/* ---------- küldetés-blokk (FLYA-88 · GitHub #113, founder-döntés 2026-10-10) ----------
   A `.module-head` mintája: két hasáb, függőlegesen középre igazítva, a kép `cover`, sarok nélkül.
   Amiben MÁS (a Planner-átadó szerint): az arány 55 / 45 %, a kép fekvő 3:2, és a hasábok 620 px-en
   törnek egymás alá (nem 900-on) – a küldetés szövege odáig elfér a kép mellett. A záró sorok nagy,
   félkövér betűvel, DE a szöveg színével: kiemelő szín nincs rajta (founder-döntés). A betűméret a
   szélességgel nő (clamp). Kép nélkül a `.kepes` osztály elmarad, és a szöveg a teljes szélességen áll. */
.kuldetes{display:grid;gap:clamp(20px,3vw,36px);align-items:center}
.kuldetes.kepes{grid-template-columns:minmax(0,55fr) minmax(0,45fr)}
.kuldetes-bekezdes{margin:0;font-size:17.5px;max-width:60ch}
.kuldetes-jelmondat{margin:clamp(18px,2vw,28px) 0 0;font-family:var(--f-display);font-weight:700;font-size:clamp(24px,2.6vw,34px);line-height:1.12;letter-spacing:-.02em;color:inherit}
.kuldetes-jelmondat span{display:block}
.kuldetes-kep{aspect-ratio:3/2;overflow:hidden;border-radius:0}
.kuldetes-kep img{display:block;width:100%;height:100%;object-fit:cover;border-radius:0}
@media (max-width:620px){.kuldetes.kepes{grid-template-columns:1fr}}

/* ---------- cikkoldal és hírlista ---------- */
.rovatok{display:flex;gap:6px;flex-wrap:wrap}
.rovat{font:700 11.5px/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase;border-radius:var(--r-ctl);padding:6px 10px;background:var(--surface-2);color:var(--ink);text-decoration:none}
.rovat.ugyintezes,.rovat.papirrepulo{background:var(--sand);color:var(--sand-ink)}.rovat.szolgaltatas,.rovat.felszereles{background:var(--sky-soft)}
.rovat.klubelet,.rovat.klubter,.rovat.hazai{background:var(--sky);color:#fff}.rovat.turak,.rovat.turaink,.rovat.utjaink{background:var(--grass);color:#fff}   /* az új főmenü-kulcsok (2026-10-04) a régiek színét viszik tovább */.rovat.akcio{background:var(--red);color:var(--red-ink)}
/* A CIKK TÖRZSE A SZÉLESEBB KERETBEN (founder 2026-10-03: „Lehet a szöveg egy kicsit nagyobb betűkkel, de nem lesz extra nagy, és zárjon
   középen”): a szövegoszlop (70ch, a lap betűjével: 16 → 18 px) és a 300 px-es oldalsáv együtt zár, és a
   pár KÖZÉPEN áll – a két oszlop közé nem nyílik üres tér (1440 px-en ~440 px volt). 900 px alatt egy oszlop, mint eddig. */
.art-body{display:grid;grid-template-columns:minmax(0,70ch) 300px;justify-content:center;gap:var(--koz);margin-top:var(--koz);align-items:start}   /* a betű a lapé (16 → 18), a köz egy (2026-10-03) */
.art-body .prose{max-width:70ch}
.prose ul{margin:0 0 16px;padding-left:22px;display:flex;flex-direction:column;gap:8px}
.callout{background:var(--sand);color:var(--sand-ink);border-radius:0;padding:18px 20px;margin:18px 0;font-weight:500}
.callout b{display:block;font:700 12px/1 var(--f-body);letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px}
.slots{background:var(--surface);border-radius:0;padding:6px 20px;margin:18px 0}
.slots :is(h2,h3){font-size:17px;padding:14px 0 6px;font-weight:700;margin:0}
.slots div{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:12px;padding:12px 0;border-top:1px solid var(--line);font-size:15px}
.slots b{font-weight:700;font-variant-numeric:tabular-nums}.slots span{color:var(--muted)}
.fees{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;margin:18px 0}
.fee{background:var(--surface);border-radius:0;padding:20px;display:flex;flex-direction:column;gap:8px}
.fee :is(h2,h3){font-size:18px;font-weight:700;margin:0}
.fee .nums{display:flex;gap:14px;align-items:baseline;flex-wrap:wrap}
.fee .club{font:800 30px/1 var(--f-display);font-variant-numeric:tabular-nums;color:var(--grass)}
:root[data-theme="dark"] .fee .club{color:#7CC68B}
.fee .full{color:var(--muted);text-decoration:line-through;font-variant-numeric:tabular-nums}
.fee small{font-weight:700;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.fee p{margin:0;font-size:14px;color:var(--muted)}
.toc{position:sticky;top:calc(var(--fej-h,96px) + var(--proto-h,0px) + 12px);display:flex;flex-direction:column;gap:14px}
.toc ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:14.5px}
.toc a{text-decoration:none;color:var(--muted)}.toc a:hover{color:var(--ink)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--koz);margin-top:var(--koz)}
/* A LINKLISTA – a `gyujto` `linklista` formája (FLYA-208 · SEO-03): dátumfüggetlen cím + link lista, kép és
   adat nélkül. Hasábokba tördel, mert a 34 úti cél egy hasábban a lap aljára nyúlna; a hasábszám a HELYBŐL
   jön, nem a darabszámból – itt az `auto-fill` üres cellája nem látszik, mert a sornak nincs háttere, csak
   szövege és egy alsó vonala (a FLYA-41 „ne auto-fill-lel töltsd ki” szabálya a HÁTTERES csempékre szól).
   Sarok nincs (founder 2026-10-01). A 44 px-es érintési célt a 13+13 px belső tér és a 19 px sormagasság
   adja ki. */
.linklista{list-style:none;margin:var(--koz) 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:0 var(--koz)}
.linklista a{display:block;padding:13px 0;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;font-weight:600;font-size:15.5px;line-height:1.2}
.linklista a:hover{color:var(--kiemeles)}
.ncard{background:var(--surface);border-radius:var(--r-tile);overflow:hidden;text-decoration:none;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s}
.ncard:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.ncard .thumb{aspect-ratio:16/10;position:relative;overflow:hidden}
.ncard .thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ncard .txt{padding:18px 20px 22px;display:flex;flex-direction:column;gap:8px}
.ncard :is(h2,h3){font-size:20px;line-height:1.18}
.ncard p{margin:0;font-size:14.5px;color:var(--muted)}
.ncard.wide{grid-column:1/-1;flex-direction:row}
.ncard.wide .thumb{flex:1.2;aspect-ratio:16/10}.ncard.wide .txt{flex:1;justify-content:center;padding:28px}
.ncard.wide :is(h2,h3){font-size:clamp(24px,2.6vw,32px)}
@media (max-width:900px){.art-body{grid-template-columns:1fr;gap:24px}.toc{position:static;order:-1}.ncard.wide{flex-direction:column}.ncard.wide .thumb{aspect-ratio:16/10;flex:none}}

/* ---------- a főoldali „Cikkek” blokk (founder-döntés 2026-10-10, FLYA-52 – a Planner „C” változata) ----------
   HÁROM cikknél: bal oszlop ≈ 60 % egy NAGY kártyával (kép 2:1 felül, alatta címke, cím, teljes bevezető), jobb
   oszlop ≈ 40 % két KICSI kártyával egymás alatt (kép balra ≈ 42 %, jobbra címke és cím, bevezető nincs). A két
   oszlop AZONOS MAGAS: a rács `stretch`-el, a jobb oszlop két egyenlő sorra oszlik.
   KETTŐNÉL két nagy kártya (60/40), EGYNÉL egy nagy teljes szélességben, kép balra 55 %-on. NULLÁNÁL a rajzoló
   semmit nem ad vissza – ez a szakasz nem is jön létre.
   720 px alatt minden egymás alá kerül; a kicsi kártya képe 120 px-es sáv balra, a nagy kártya képe 2:1 felül.
   A SZÍN a kártya `data-focim`-jából jön: a generált `szinek.css` a `.focimszin[data-focim="<kulcs>"]` hídján adja a
   `--sz` / `--szi` változót. SZÁNDÉKOSAN NEM `.fcs`: az a RÁCS CSEMPÉJE, és a teljes mértanát magával hozza
   (`display:grid`, `background:var(--sz)`, `grid-template-rows`, a képen `contain:size`) – 2026-10-10-én MÉRVE a kép
   így a kártya egész szélességét elvitte (470 px a 470 px-es kártyán). A kép osztálya ezért `.ckep`, nem `.kep`.
   Sarok sehol, és a fotón SOHA nincs felirat – a címke a kép ALATT, a szöveg-részben áll. */
.cikkblokk{display:grid;gap:var(--koz);margin-top:var(--koz);align-items:stretch}
.cikkblokk.db-1{grid-template-columns:minmax(0,1fr)}
.cikkblokk.db-2,.cikkblokk.db-3{grid-template-columns:minmax(0,6fr) minmax(0,4fr)}
.cikkblokk>.kicsik{display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:var(--koz);min-height:0}
.cikk-kartya{background:var(--surface);border-radius:var(--r-tile);overflow:hidden;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;min-width:0;transition:transform .25s,box-shadow .25s}
.cikk-kartya:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.cikk-kartya .ckep{display:block;position:relative;overflow:hidden;background:var(--surface-2)}
.cikk-kartya .ckep img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* FLYA-320: MINDEN Kartya-hely 16:10 – ez a kivagas-teglalap aranya, ezert a kep pontosan kitolti */
.cikk-kartya.nagy .ckep{aspect-ratio:16/10}
.cikk-kartya .txt{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:18px 20px 22px;min-width:0}
/* a címke = a cikk FŐMENÜJÉNEK neve és színe; a `.nk` a nagybetűs szakasz utáni rész (FlyAway.nagyKiemel) */
.cikk-kartya .cimke{background:var(--sz);color:var(--szi);font:700 11.5px/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase;padding:6px 10px;border-radius:var(--r-ctl)}
.cikk-kartya .cimke .nk{font-size:9.5px}
.cikk-kartya .cim{font:800 clamp(20px,1.9vw,26px)/1.18 var(--f-cim);display:block}
.cikk-kartya .bev{margin:0;font-size:14.5px;line-height:1.5;color:var(--muted);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
/* kicsi kártya: kép balra, a szöveg középre igazítva – bevezető nélkül (a rajzoló nem is adja) */
.cikk-kartya.kicsi{flex-direction:row;align-items:stretch}
.cikk-kartya.kicsi .ckep{flex:0 0 42%;aspect-ratio:16/10;align-self:center}
.cikk-kartya.kicsi .txt{flex:1;justify-content:center;padding:16px 18px;gap:7px}
.cikk-kartya.kicsi .cim{font-size:clamp(16.5px,1.3vw,19px)}
/* egyetlen cikk: teljes szélesség, kép balra 55 %-on */
.cikkblokk.db-1 .cikk-kartya.nagy{flex-direction:row}
.cikkblokk.db-1 .cikk-kartya.nagy .ckep{flex:0 0 55%;aspect-ratio:16/10;align-self:center}
.cikkblokk.db-1 .cikk-kartya.nagy .txt{flex:1;justify-content:center;padding:28px}
.cikkblokk.db-1 .cikk-kartya.nagy .cim{font-size:clamp(24px,2.6vw,32px)}
/* kép nélkül: a Hírek `.nothumb` mintája – 10 px-es sáv a főmenü színén, felirat nélkül. Képet nem pótolunk. */
.cikk-kartya.nincskep{flex-direction:column}
.cikk-kartya.nincskep .ckep{flex:none;height:10px;aspect-ratio:auto;min-height:0;background:var(--sz)}
@media (max-width:720px){
  .cikkblokk,.cikkblokk.db-1,.cikkblokk.db-2,.cikkblokk.db-3{grid-template-columns:minmax(0,1fr)}
  .cikkblokk>.kicsik{grid-template-rows:none}
  .cikkblokk.db-1 .cikk-kartya.nagy{flex-direction:column}
  .cikkblokk.db-1 .cikk-kartya.nagy .ckep{flex:none;aspect-ratio:16/10;min-height:0}
  .cikkblokk.db-1 .cikk-kartya.nagy .txt{padding:18px 20px 22px}
  .cikk-kartya.kicsi .ckep{flex:0 0 120px}
  .cikk-kartya.nincskep .ckep{flex:none}
}

/* ---------- repertoár ---------- */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.rep-tools{display:flex;flex-direction:column;gap:10px;margin:22px 0 8px}
.rep-search input{width:100%;font:500 16px var(--f-body);color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-ctl);padding:13px 20px}
.rep-search input:focus{outline:0;border-color:var(--sky);box-shadow:0 0 0 3px var(--sky-soft)}
.rep-row{display:flex;gap:8px;flex-wrap:wrap}
.rep-tools .chip{opacity:1;text-decoration:none;padding:7px 13px;font-size:13.5px}
.rep-tools .chip[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--kiemeles);box-shadow:inset 0 0 0 1px var(--kiemeles)}
.rep-tools .chip.idei{border-color:var(--cta)}.rep-tools .chip.idei[aria-pressed="true"]{background:var(--cta);color:var(--cta-ink);border-color:var(--cta)}
/* A DARABSZÁM A CÍM ALATT, nem a fejrész jobb oldalán (founder 2026-10-18, FLYA-339, 5. kérés: „a
   darabszám a »Repertoár« felirat alá, mindig a szűrt, látható helyszínek számával”). A `.section-head`
   alaprendje a `p`-t a 2. oszlopba, jobbra zárja – ez a sor az EGY kivétel, és csak a Repertoár
   darabszám-sorára szól. A fejrészből a leírás KIKERÜLT: a helye a kereső mellett van (`.rep-ker`). */
.rep-count{color:var(--muted);font-size:14px;margin:6px 0 0}
.rep-fejresz p.rep-count{grid-column:1;justify-self:start;text-align:left;padding-top:0;max-width:60ch}
/* 760 px fölött a fejrész kétoszlopos: a darabszám a 2. SORBA kerül (a cím alá), a Túranaptár link a cím
   SORÁBA jobbra. Alatta a `.section-head` egy hasábra törik, és az automatikus sorrend a helyes:
   cím → darabszám → link; ezért a sor-kényszer csak a széles nézetben áll. */
@media (min-width:761px){.rep-fejresz p.rep-count{grid-row:2}.rep-fejresz>a{grid-row:1}}
/* A KERESŐ SORA ÉS A RÁCS UGYANAZ A RÁCS (founder 2026-10-18, FLYA-339, 5. kérés: a kereső „pontosan az
   első kártya-oszlop szélessége, azzal együtt változik”). Ezért a két elem EGY szabályban kapja a
   hasábjait: a kereső szélessége SZERKEZETBŐL egyezik az első kártyáéval, nincs beírt px-érték – a
   korábbi `max-width:520px` éppen ezért került le a keresőről.
   Három oszlop 900 px fölött, kettő 600–900 között, egy 600 px alatt (founder 2., D4; a jóváhagyott
   előnézet töréspontjai). A 2026-10-18 előtti `auto-fill, minmax(250px,1fr)` 1280 px-en NÉGY oszlopot
   adott, és a darabszámtól függetlenül nyitott sávokat (a FLYA-41 tanulsága). */
.rep-grid,.rep-ker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.rep-grid{margin-top:14px}
.rep-ker{align-items:center}
.rep-ker .rep-search{grid-column:1}
.rep-ker .rep-leiras{grid-column:2/-1;justify-self:end;text-align:right;max-width:60ch;margin:0;color:var(--muted);text-wrap:balance}
@media (max-width:900px){.rep-grid,.rep-ker{grid-template-columns:repeat(2,minmax(0,1fr))}.rep-ker .rep-leiras{grid-column:2}}
@media (max-width:600px){.rep-grid,.rep-ker{grid-template-columns:minmax(0,1fr)}.rep-ker .rep-leiras{grid-column:1;justify-self:start;text-align:left}}
/* A REPERTOÁR KÁRTYÁJA: KÉP 16:10 + SZÖVEGSÁV (founder-döntés 2026-10-18, FLYA-339, D3 – a „B” változat a
   jóváhagyott előnézetből; a hírkártya `.ncard` mintája). 2026-10-18 ELŐTT a kártya egy 16:10-es FOTÓS
   doboz volt, a szöveg a képen (`.photo`, `background-image`) – a képet azért kellett `<img>`-be tenni,
   mert a `loading="lazy"` CSAK `<img>`-re működik (founder 3. kérése: elsőre csak egy képernyőnyi kép).
   A `.photo` osztály ezzel LEKERÜLT a kártyáról: a `.photo{color:#fff;text-shadow:…}` szabálya a
   szövegsávon már hibás lenne. A kép nélküli úti cél kártyája SZÍNES marad, a szöveg a színen
   (`.szin` + a `c-*` szín-osztály) – ezért nem a `.rep-card`, hanem a `.rep-card.kepes` kapja a
   felületszínt: a `c-*` osztályok a fájlban KORÁBBAN állnak, egy `.rep-card{background}` elvinné a színt. */
.rep-card{position:relative;overflow:hidden;border-radius:var(--r-tile);border:1px solid var(--line);display:flex;flex-direction:column;text-decoration:none;transition:transform .25s,box-shadow .25s}
.rep-card.kepes{background:var(--surface);color:var(--ink)}
.rep-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.rep-card .thumb{aspect-ratio:16/10;position:relative;overflow:hidden}
.rep-card.kepes .thumb{background:var(--surface-2)}
.rep-card .thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rep-card .txt{display:flex;flex-direction:column;flex:1;padding:14px 16px 16px;gap:10px}
.rep-card :is(h2,h3){font-size:23px;line-height:1.1}
.rep-card p{margin:0;font-size:14px}
.rep-card.kepes p{color:var(--muted)}
.rep-card:not(.kepes) p{opacity:.92}
.rep-card .chips{margin-top:auto}
.rep-card .chips span{font-size:11.5px;padding:5px 9px}
.rep-card.kepes .chips span{background:var(--surface-2);backdrop-filter:none;color:var(--ink)}
.rep-card:not(.kepes) .chips span{background:rgba(127,127,127,.18);backdrop-filter:none}
/* Repertoár-szűrő (3b): három feliratos sor – Térség · Repülés · Utazás. A chipek KÖZÖS bal éle szerkezetből jön: egy rács, közös feliratoszlop
   (a legszélesebb felirat adja), a sorok display:contents – nincs beírt eltolás. 600 px alatt a felirat a sora fölé kerül. */
.rep-szuro{display:grid;grid-template-columns:max-content minmax(0,1fr);column-gap:12px;row-gap:10px;align-items:baseline}
.rep-sor{display:contents}
.rep-szuro .eyebrow{color:var(--muted);opacity:1}
.rep-row .koz{margin-left:10px}
@media (max-width:600px){.rep-szuro{grid-template-columns:minmax(0,1fr);row-gap:6px}.rep-sor .rep-row{margin-bottom:6px}.rep-row .koz{margin-left:0}}
/* Repertoár-kártya feje: kétoszlopos rács – balra a cím és az alcím, jobbra a dátum. A szöveg oszlopa a dátum TÉNYLEGES szélességéig ér, alá semmi nem futhat.
   A dátum a szövegsáv jobb felső sarkában (FLYA-339 óta a sáv 16 px-es belső margójához zárva, negatív margó nélkül: a kép alatt nincs mibe behúzni). */
.rep-fej{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:8px;align-items:start;position:relative;z-index:1}
.rep-fej>div{display:flex;flex-direction:column;gap:4px;min-width:0}
.rep-fej :is(h2,h3){overflow-wrap:anywhere}
.rep-card .datum{display:flex;flex-direction:column;align-items:flex-end;gap:3px;margin:0;background:var(--red);color:var(--red-ink);border-radius:0;padding:7px 10px 8px;text-align:right;font-family:var(--f-body);line-height:1}
.rep-card .datum small{font-size:11px;font-weight:700;letter-spacing:.08em;opacity:.85}
.rep-card .datum b{font-size:13px;font-weight:700;white-space:nowrap}
/* a repülés-címke ELÖL és félkövéren (Repertoár-kártya, túraoldal fejsávja); az utazás-címke betűje a régi */
.chips span.rep{font-weight:700}
.chips span .sr{padding:0;background:none;backdrop-filter:none}
/* A NÉVSOR BETŰJELE (`.betu`, `.van-betu`) 2026-10-18-án MEGSZŰNT – founder-döntés, FLYA-339 (7. kérés:
   „a kártyákról a betűjel lekerül”). A rend továbbra is névsor; a betűjel a 16:10-es fotós kártya jobb
   alsó sarkában állt, a szövegsávos kártyán nincs helye. A hozzá tartozó címkesor-kivétel is lekerült. */

/* ---------- képzésoldal ---------- */
.depart.c-sky .btn{background:#fff;color:#13252E}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-top:14px}
.stats div{background:var(--surface);border-radius:var(--r-tile);padding:20px 22px;display:flex;flex-direction:column;gap:4px}
.stats b{font:800 34px/1 var(--f-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.stats span{font-size:14px;color:var(--muted)}
.steps{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.steps li{background:var(--surface);border-radius:var(--r-tile);overflow:hidden;display:flex;flex-direction:column}
.step-photo{aspect-ratio:16/10;background-size:cover;background-position:center;position:relative}
.step-photo span{position:absolute;left:16px;bottom:-22px;width:48px;height:48px;border-radius:0;background:var(--red);color:var(--red-ink);display:grid;place-items:center;font:800 22px/1 var(--f-display);box-shadow:0 0 0 5px var(--surface)}
.step-txt{padding:34px 22px 24px}
.step-txt h3{font-size:21px;margin-bottom:8px}
.step-txt p{margin:0;font-size:14.5px;color:var(--muted)}
/* A `.rep-grid.wide` NÉGYOSZLOPOS változata 2026-10-18-án megszűnt (FLYA-339, 2. kérés: „legfeljebb három
   kártya egy sorban”). A `wide` osztályt egyetlen lap és rajzoló sem tette ki – mérve 2026-10-18: 0 hely. */

/* ---------- galéria ---------- */
.mosaic.big{columns:4 260px}
.mosaic.big button{background:var(--surface-2)}
.mosaic.big img{height:100%;object-fit:cover}
.album-nav{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:32px}
.video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;margin-top:16px}
.video-grid figure{margin:0;background:var(--surface);border-radius:var(--r-tile);overflow:hidden}
.video{aspect-ratio:16/9}.video iframe{width:100%;height:100%;border:0;display:block}
.video-grid figcaption{padding:14px 18px;font-weight:600}

/* ---------- landing oldalak ---------- */
.bigquote{margin:0;background:var(--sand);color:var(--sand-ink);border-radius:var(--r-tile);padding:clamp(24px,4vw,48px)}
.bigquote blockquote{margin:0 0 16px;font:500 clamp(20px,2.4vw,28px)/1.4 var(--f-display);letter-spacing:-.01em;max-width:46ch}
.bigquote figcaption{font-size:14.5px;opacity:.8}
.faq{display:flex;flex-direction:column;gap:10px;max-width:880px}
.faq details{background:var(--surface);border-radius:0;padding:0 22px}
.faq summary{cursor:pointer;list-style:none;padding:18px 34px 18px 0;font:700 18px/1.3 var(--f-display);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:0;top:12px;font:500 28px/1 var(--f-body);color:var(--red);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details>div{padding:0 0 20px;max-width:70ch}.faq p{margin:0 0 12px}
.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(250px,100%),1fr));gap:14px;margin-top:16px}
.people figure{margin:0;background:var(--surface);border-radius:var(--r-tile);overflow:hidden}
.people img,.people .noimg{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center 25%}
.people .noimg{display:grid;place-items:center;background:var(--sky-soft);font:800 44px var(--f-display);color:var(--sky-deep)}
:root[data-theme="dark"] .people .noimg{color:#9CC4F0}
.people figcaption{padding:16px 18px 20px;display:flex;flex-direction:column;gap:4px}
.people b{font:700 19px var(--f-display)}.people span{font-size:14px;color:var(--muted)}
.brands{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:16px}
.brands .tags span{font-size:14px;padding:6px 12px}
.ev-card.past{opacity:.6}

.people{grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));align-items:start}
/* A CSAPATUNK MOZAIK (Kinga 2026-10-19, 8.1 · GitHub #503): a Vendégkönyv bevált, változó magasságú hasábjai a sorokba rendezett rács helyett –
   a hosszú bemutatkozás (Peti) mellett így nem marad nagy üres terület. A hasábok FELÜLRŐL LEFELÉ töltődnek (a Vendégkönyvvel azonos szabály). */
.people{display:block;columns:3 340px;column-gap:14px}
.people>figure{break-inside:avoid;margin:0 0 14px}
.people .role{font-weight:600;color:var(--ink)}
.people p{margin:6px 0 0;font-size:14.5px;color:var(--muted)}
.people blockquote{margin:10px 0 0;font:500 16px/1.4 var(--f-display);border-left:3px solid var(--kiemeles);padding-left:12px}   /* founder 2026-09-22: a Csapatunk idézete is a kiemelés színét kapja */
.people .noimg{aspect-ratio:16/6}

.facade{position:relative;display:block;width:100%;border:0;padding:0;cursor:pointer;background-size:cover;background-position:center}
.facade::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(8,20,30,.55))}
.facade .play{position:absolute;left:50%;top:50%;width:68px;height:68px;margin:-34px 0 0 -34px;border-radius:0;background:var(--cta);box-shadow:0 8px 24px rgba(0,0,0,.35);transition:transform .2s}
.facade .play::after{content:"";position:absolute;left:27px;top:20px;border:14px solid transparent;border-left:22px solid var(--cta-ink);border-right:0}
.facade:hover .play{transform:scale(1.08)}
.facade .len{position:absolute;right:10px;bottom:10px;background:rgba(0,0,0,.75);color:#fff;font:600 12.5px/1 var(--f-body);padding:5px 7px;border-radius:0;font-variant-numeric:tabular-nums}
.facade .rank{position:absolute;left:12px;top:10px;font:800 34px/1 var(--f-display);color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.6)}
.video-grid figcaption{display:flex;flex-direction:column;gap:4px}
.video-grid figcaption b{font:700 16.5px/1.25 var(--f-display)}
.video-grid figcaption span{font-size:13.5px;font-weight:500;color:var(--muted)}

/* ---------- Facebook ---------- */
.fb-wrap{display:grid;grid-template-columns:minmax(0,520px) minmax(0,1fr);gap:14px;margin-top:16px;align-items:start}
.fb-box{background:var(--surface);border-radius:var(--r-tile);overflow:hidden;min-height:240px;display:grid}
.fb-box iframe{display:block;width:100%}
.fb-ask{padding:28px;align-self:center}.fb-ask p{margin:0 0 16px;color:var(--muted)}.fb-ask strong{color:var(--ink)}
.fb-side{display:grid;gap:14px}
.fb-szoveg{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line;color:var(--ink)!important}
@media (max-width:900px){.fb-wrap{grid-template-columns:1fr}.fb-side{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}

/* kis felbontású portré: nem nyújtjuk, színes sávon, a saját méretében */
.people .noimg.portrait{aspect-ratio:auto;padding:22px 0 0;place-items:end center}
.people .noimg.portrait img{width:170px;height:215px;aspect-ratio:auto;object-fit:cover;object-position:center 20%;border-radius:0}

.ncard .thumb.nothumb{aspect-ratio:auto;height:10px;background:var(--sky)}
.ncard .thumb.nothumb.ugyintezes,.ncard .thumb.nothumb.papirrepulo,.ncard .thumb.nothumb.szabalyok{background:var(--sand)}
.ncard .thumb.nothumb.turak,.ncard .thumb.nothumb.turaink,.ncard .thumb.nothumb.utjaink{background:var(--grass)}
.prose a{text-decoration-color:var(--kiemeles);text-underline-offset:3px}

.quote-wall{columns:3 300px;column-gap:14px}
.quote-wall figure{break-inside:avoid;margin:0 0 14px;background:var(--surface);border-radius:var(--r-tile);padding:22px 24px}
.quote-wall figure:nth-child(4n+1){background:var(--sky-soft)}.quote-wall figure:nth-child(7n+3){background:var(--sand);color:var(--sand-ink)}
.quote-wall blockquote{margin:0 0 12px;font-size:15.5px;line-height:1.55}
.quote-wall figcaption{font:700 14px var(--f-display)}

/* ---------- címkék ---------- */
.tagrow{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0}
/* a `span` a CÉL NÉLKÜLI címke (FLYA-146: nincs Hírek főcím → a `#téma` megmarad, de nem link) – a sor látványa a két ágon azonos */
.tagrow a,.tagrow span{font:600 15px/1.3 var(--f-body);color:var(--muted);text-decoration:none}
.tagrow a:hover,.tagrow a.on,.tagrow a[aria-current]{color:var(--ink);text-decoration:underline;text-decoration-color:var(--kiemeles);text-decoration-thickness:2px;text-underline-offset:4px}
.tagrow a.clear{color:var(--kiemeles)}
#cimkek{margin:0 0 6px}
.tagline{font-size:12.5px;color:var(--muted);font-weight:600;white-space:pre-wrap}
.ncard .txt p{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}

.facade.nokep{background:linear-gradient(135deg,var(--sky-deep),var(--sky))}
.art-video{margin:18px 0;background:var(--surface);border-radius:0;overflow:hidden}
.art-video figcaption{padding:12px 16px;font-size:14px;color:var(--muted)}
/* FÉL SZÉLESSÉGŰ VIDEÓ (GitHub #505, Kinga 9.2: „kerüljön előrébb, és ne legyen aránytalanul nagy”): jobbra úszik, a
   bekezdések körbefolyják; 640 px alatt a mai teljes szélességű alak (ott fél szélességben a lejátszó gomb is apró lenne). */
.art-video.fel{float:right;width:calc(50% - 12px);margin:4px 0 16px 24px}
@media (max-width:640px){ .art-video.fel{float:none;width:auto;margin:18px 0} }

/* Pillanatok: egyetlen sor, annyi kép, amennyi a nézetben elfér; a sor mindig kitölti a szélességet.
   KÉT ÁLLAPOT (FLYA-41, 2026-10-10): `data-db` nélkül az `auto-fill` MÉRŐESZKÖZ – a kép darabszámától
   függetlenül annyi sávot nyit, amennyi a sorba fér, és a rajzoló (flyaway.js `pillanatok`) ezt olvassa
   vissza oszlopszámnak; a clamp-képlet így EGY helyen, itt él. A `data-db` megjelenése után a rács pontosan
   annyi egyenlő oszlop, ahány kép ki van rajzolva – kevesebb kép esetén kevesebb, de szélesebb oszlop,
   üres cella nélkül. Rejtett elem nincs: ami nem kell, az nem is rajzolódik ki. */
.falsor{display:grid;grid-template-columns:repeat(auto-fill,minmax(clamp(150px,18vw,240px),1fr));column-gap:10px;row-gap:0;--pill-cel:0}
/* TELEFONON HAT KÉP (founder 2026-11-01: „A pillanatok a telefon 6 képet jelenítsen meg”; a három döntése: 2 oszlop × 3 sor, 320 px-en
   marad az 1 oszlop (6 sor), tableten és asztalon marad az egy sor). A CÉL-DARABSZÁMOT a CSS mondja ki (`--pill-cel`), a rajzoló olvassa
   vissza – ahogy az oszlopszámot is a kirajzolt rácsból (`flyaway.js` → `pillanatok()`): 0 = annyi kép, ahány oszlop (egy sor); 6 = hat
   kép, a sorok száma az oszlopszámból adódik. A 640 px a csempe-rács telefonos töréspontja. A sorok köze 10 px, mint a hasáboké. */
@media (max-width:640px){
  .falsor{--pill-cel:6;row-gap:10px}
}
.falsor[data-db]{grid-template-columns:repeat(var(--db),1fr)}
.falsor .falkep{aspect-ratio:3/2!important;margin:0}
@media (hover:none){.falsor .falkep span{opacity:1}}
.falkep{display:block;position:relative;margin:0 0 10px;border-radius:0;overflow:hidden;break-inside:avoid;background:var(--surface-2)}
.falkep img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s}
.falkep:hover img{transform:scale(1.04)}
.falkep span{position:absolute;left:10px;bottom:10px;font:700 12px/1 var(--f-body);color:#fff;background:rgba(8,20,30,.6);padding:6px 9px;border-radius:var(--r-ctl);opacity:0;transition:opacity .2s}
.falkep:hover span,.falkep:focus-visible span{opacity:1}

/* ---------- gyártók ---------- */
.brand-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;margin-top:16px}
.brand{background:var(--surface);border-radius:var(--r-tile);overflow:hidden;text-decoration:none;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s}
a.brand:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.brand .bfoto{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
/* A gyártó logója a fotó ALATT, saját sávban (founder 2026-10-01); 2026-10-02 óta a sáv átlátszó, sötét témában a sötét logó áll (lent). */
/* EGYFORMA LOGÓ-SÁV (founder 2026-10-06, Gyártóink): minden logó 52 px magas, legfeljebb a sáv 78 %-a széles (object-fit: contain) – a nagyon széles logó
   ezért alacsonyabb rajzolatú lehet, a doboza ugyanakkora. CSAK a márkakártyán; a Partnereink (.pk) nem változik. */
.brand .blogo{display:grid;grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center;height:90px;padding:14px 22px;background:transparent;border-bottom:1px solid var(--line)}
.brand .blogo img{display:block;width:auto;height:52px;max-width:78%;object-fit:contain}
.brand .btxt{padding:18px 20px 20px;display:flex;flex-direction:column;gap:6px;flex:1 1 auto}
.brand b{font:800 22px/1.1 var(--f-display);letter-spacing:-.01em}
.brand span span{font-size:14.5px;color:var(--muted)}
.brand em{font-style:normal;font-weight:700;font-size:13.5px;margin-top:auto;padding-top:4px}   /* „A gyártó oldala →” minden kártyán a kártya alján (founder 2026-10-06) */
.brand:not(.has-foto){background:var(--sky-soft);justify-content:flex-end;min-height:150px}
.brand.has-logo:not(.has-foto){justify-content:flex-start}   /* fotó nélkül a logósáv a kártya tetején áll, a szöveg alatta */

/* ---------- „Most aktuális" sáv (a régi futó szöveg utódja) ---------- */
.aktualis{display:flex;gap:8px;align-items:center;margin-top:14px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.aktualis::-webkit-scrollbar{display:none}
.aktualis>span{font:700 11.5px/1 var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);white-space:nowrap;padding-right:4px}
.aktualis a{white-space:nowrap;text-decoration:none;font-size:14px;background:var(--surface);border-radius:var(--r-ctl);padding:8px 14px;color:var(--muted)}
.aktualis a b{color:var(--ink);font-weight:700;margin-right:4px}
.aktualis a:hover{box-shadow:var(--shadow)}
.aktualis a.kiemelt{background:var(--cta);color:var(--cta-ink)}.aktualis a.kiemelt b{color:inherit}

.section-head+.cal-tools,.section-head+.falsor{margin-top:16px}

/* Galéria: témabuborékok a Fotók / Videók mellett; telefonon egy sorban, vízszintesen görgethető */
.temak{align-items:center}
.temak .elvalaszto{width:1px;align-self:stretch;background:var(--line);margin:4px 4px}
.temak .chip{text-decoration:none;white-space:nowrap}
@media (max-width:760px){.temak{flex-wrap:nowrap;overflow-x:auto;margin-inline:-16px;padding-inline:16px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.temak::-webkit-scrollbar{display:none}.temak .chip{flex:none}}

/* „Hasznos volt ez a cikk?" – a törzs után, nem ragad, nem takar. A két gomb 320 px-ig egymás mellett marad. */
.vj{margin-top:40px;padding:22px clamp(18px,3vw,28px);background:var(--surface);border-radius:var(--r-tile);display:flex;align-items:center;justify-content:space-between;gap:14px 24px;flex-wrap:wrap}
.vj .vj-cim{font-size:clamp(19px,2.2vw,24px);margin:0;font-weight:700}
.vj-valasz{display:flex;gap:10px;align-items:center;flex-wrap:nowrap}
.vj-valasz .btn{min-height:46px;min-width:104px;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.vj-valasz svg{width:20px;height:20px;fill:currentColor;flex:none}
.vj-koszi{margin:0;font-weight:700;color:var(--ink)}
.vj-koszi:focus{outline:none}.vj-koszi:focus-visible{outline:2px solid var(--sky);outline-offset:4px;border-radius:0}
.vj-valasz:has(.vj-koszi){flex-wrap:wrap}
/* „Legolvasottabb" – asztalon legfeljebb öt egy sorban, telefonon egy oszlop; a címek törnek, nem vágódnak */
.legolv{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.legolv a{display:flex;flex-direction:column;gap:8px;height:100%;padding:16px;background:var(--surface);border-radius:0;text-decoration:none;color:var(--ink);transition:transform .2s,box-shadow .2s}
.legolv a:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.legolv b{font:800 28px/1 var(--f-display);color:var(--kiemeles)}
.legolv strong{font:700 16px/1.3 var(--f-body);overflow-wrap:anywhere}
.legolv .rovat{align-self:flex-start}
@media (max-width:1000px){.legolv{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.legolv{grid-template-columns:minmax(0,1fr)}.legolv a{flex-direction:row;align-items:center;flex-wrap:wrap}.legolv strong{flex:1 1 100%}}
@media (prefers-reduced-motion:reduce){.legolv a{transition:none}.legolv a:hover{transform:none}}

/* keskeny képernyőn a hosszú feliratú gomb törhet, hogy ne tolja szét az oldalt */
@media (max-width:480px){.news:not(.cta-sav) .btn{white-space:normal;line-height:1.25;text-align:left;max-width:100%}.news>div{min-width:0;max-width:100%}}

/* Főoldali „Következő túráink" doboz (váltakozó helyszínek; az egész a túranaptárra visz) */
.tile.kt-doboz{color:#fff;background:#0B1D2C;padding:0}
.kt-doboz::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,28,46,.82) 0%,rgba(8,28,46,.50) 40%,rgba(8,28,46,.14) 64%,rgba(8,28,46,.66) 100%)}
:root[data-theme="dark"] .kt-doboz::before{background:linear-gradient(180deg,rgba(8,20,30,.82) 0%,rgba(8,20,30,.50) 40%,rgba(8,20,30,.14) 64%,rgba(8,20,30,.66) 100%)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .kt-doboz::before{background:linear-gradient(180deg,rgba(8,20,30,.82) 0%,rgba(8,20,30,.50) 40%,rgba(8,20,30,.14) 64%,rgba(8,20,30,.66) 100%)}}
.kt-doboz .hit{position:absolute;inset:0;z-index:2;border-radius:inherit}
.kt-doboz .hit:focus-visible{outline:3px solid #fff;outline-offset:-5px}
.kt-doboz .in{position:relative;z-index:3;pointer-events:none;display:flex;flex-direction:column;gap:6px;flex:1;padding:22px}
.kt-doboz .eyebrow{order:0;margin:0 0 4px;padding:0;opacity:.9;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.kt-doboz .hely{font:700 27px/1.15 var(--f-display);overflow-wrap:break-word;text-shadow:0 1px 10px rgba(0,0,0,.45);transition:opacity .5s ease}
.kt-doboz .adat{margin:0;font:800 15px/1.3 var(--f-body);opacity:1;white-space:nowrap;overflow:hidden;text-shadow:0 1px 10px rgba(0,0,0,.45);transition:opacity .5s ease}
.kt-doboz .orszag{font:400 15px/1.2 var(--f-body);text-shadow:0 1px 8px rgba(0,0,0,.5);transition:opacity .5s ease}
.kt-doboz .valt .hely,.kt-doboz .valt .adat,.kt-doboz .valt .orszag{opacity:0}
.kt-doboz .lab{margin-top:auto;padding-top:16px;display:flex;justify-content:space-between;align-items:flex-end;gap:14px}
.kt-doboz .pontok{display:flex;gap:2px;pointer-events:auto;margin:-8px -8px -8px 0}
.kt-doboz .pontok:empty{display:none}
.kt-doboz .pontok button{width:26px;height:26px;border:0;background:transparent;padding:0;cursor:pointer;display:grid;place-items:center;border-radius:var(--r-ctl)}
.kt-doboz .pontok button i{display:block;width:8px;height:8px;border-radius:0;background:#fff;opacity:.5;transition:width .3s ease,opacity .3s ease}
.kt-doboz .pontok button[aria-current="true"] i{width:22px;opacity:1}
.kt-doboz .pontok button:hover i{opacity:.9}
.kt-doboz .pontok button:focus-visible{outline:2px solid #fff;outline-offset:-2px}
@media (max-width:760px){.tile.kt-doboz{min-height:230px}}
@media (prefers-reduced-motion:reduce){.kt-doboz .bg,.kt-doboz .hely,.kt-doboz .adat,.kt-doboz .orszag,.kt-doboz .pontok button i{transition:none}}
/* „Most aktuális" 600 px alatt: a tételek egymás alatt, nincs oldalra görgetés; balra a név, jobbra az időpont */
@media (max-width:600px){
  .aktualis{flex-direction:column;align-items:stretch;overflow:visible;gap:6px}
  .aktualis>span{padding:0 0 4px}
  .aktualis a{display:flex;justify-content:space-between;align-items:baseline;gap:12px;white-space:normal;border-radius:0;padding:10px 14px}
  .aktualis a b{margin-right:0}
}

/* Cikk- és Hírek-fejsáv: a landing fejsáv (.tile.fejsav + .headrow) cikk-specifikus kiegészítései.
   Bal fent a cím (gombos cikknél alatta a bevezető), jobb fent a teendő-gomb VAGY a bevezető, bal lent a rovat(ok), jobb lent szerző · dátum · olvasási idő. */
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.cikkfej{margin-top:14px}
.cikkfej h1{font-size:clamp(34px,4.8vw,60px);line-height:1;max-width:20ch;overflow-wrap:break-word}
.cikkfej .bal{display:flex;flex-direction:column;gap:18px;min-width:0;flex:0 1 auto}
.cikkfej .bev{margin:0;font:500 clamp(16.5px,1.5vw,19px)/1.4 var(--f-display);max-width:54ch;opacity:.95}
.cikkfej .headrow>.btn,.cikkfej .headrow>.szavaz-hely{flex:none;margin-left:auto;white-space:nowrap}
.cikkfej .lab{order:9;margin-top:auto;padding-top:32px;display:flex;justify-content:space-between;align-items:flex-end;gap:16px}
.tile.fejsav.cikkfej .lab .eyebrow{order:0;margin:0;padding:0}
.cikkfej .eyebrow a{text-decoration:none}.cikkfej .eyebrow a:hover{text-decoration:underline}
.cikkfej .meta{font:400 14px/1.3 var(--f-body);opacity:.9;text-align:right}
.under{display:flex;justify-content:space-between;align-items:center;gap:12px 18px;flex-wrap:wrap;margin-top:14px}
@media (max-width:760px){
  .cikkfej .headrow>.btn,.cikkfej .headrow>.szavaz-hely{margin-left:0;max-width:100%}
  .cikkfej .lab{flex-direction:column;align-items:flex-start;gap:8px}
  .cikkfej .meta{text-align:left}
}
@media (max-width:420px){.cikkfej .headrow>.btn,.cikkfej .headrow>.szavaz-hely .btn{white-space:normal;line-height:1.25;align-self:stretch;justify-content:center;text-align:center}}
/* ── A TÚRALAP FEJSÁVJA TELEFONON: A CÍM A GOMB ALATT (founder 2026-10-18, FLYA-338 [levezetve], a
   jóváhagyott előnézet `@container (max-width:640px)` szabálya: a gomb jobbra fent, a cím `top:70px`-től).
   A 640 px A FEJSÁV SAJÁT TÖRÉSPONTJA: ugyanott vált a `.tile.fejsav.photo` aránya 3:1-ről 9:10-re, tehát
   egy töréspont visz mindent – nem új, választott szám.
   CSAK A TÚRALAPRA ÁLL (`.turalap>.cikkfej`): a cikklapon a CTA-gomb ritka, és a founder 18. pontja a
   TÚRÁRÓL szól. A megoldás `flex-wrap` + `order`, nem abszolút pozicionálás: így a gomb magassága
   SZÁMÍT a sáv elrendezésében (abszolút rétegnél a cím alácsúszhatna), és a `.bal` 100 %-os szélessége
   tolja a címet a következő sorba – szerkezettel igazítunk, nem eltolás-számmal (CLAUDE.md). ── */
@media (max-width:640px){
  .turalap>.cikkfej .headrow{flex-wrap:wrap}
  .turalap>.cikkfej .headrow>.btn,.turalap>.cikkfej .headrow>.szavaz-hely{order:-1;margin-left:auto}
  .turalap>.cikkfej .bal{width:100%}
}
/* A TÚRALAP FEJKÉPÉN A JELENTKEZÉS GOMBJA FEHÉR (founder 2026-10-18, a 18. pont: „fehér gomb”, és a
   jóváhagyott előnézet `.kepgomb{background:#fff;color:#13252E}`-je). A közös `.btn` türkiz (`--cta`), ez
   a gomb viszont 2026-10-18-ig a ZÖLD dobozban állt, FEHÉREN (`.depart .btn`) – a founder a MEGLÉVŐ gombot
   tette át a képre, a feliratával és a színével együtt. A CIKK fejsávjának CTA-gombja türkiz MARAD, ezért
   a szűkítés `.turalap`-ra áll. A két érték beírt, nem token: ugyanaz a pár, amit a `.depart .btn` és a
   `cta-sav` fehér gombja visel – `#13252E` MINDKÉT témában, mert a gomb a FOTÓN áll, nem a lap felületén
   (a téma-függő `--ink` sötét témában világos lenne a fehéren). */
.turalap>.cikkfej .headrow>.btn,.turalap>.cikkfej .headrow>.szavaz-hely .btn{background:#fff;color:#13252E}
/* ───── A TÚRA-SZAVAZÁS GOMBJA ÉS BUBORÉKJA A FEJKÉPEN (founder-döntés 2026-10-19, D3–D4 · FLYA-402 ·
   GitHub #472; a jóváhagyott előnézet 2. változata) ────────────────────────────────────────────────────
   A GOMB MAGA NEM KAP SAJÁT STÍLUST: a `.szavaz-hely` a `.headrow` FLEX-ELEME, tehát pontosan oda és úgy
   áll, ahová a „jövök” gomb állt – a fenti öt szabály (`flex:none; margin-left:auto`, a 760/640/420 px-es
   ágak és a fehér gomb) mind a KETTŐRE szól. Ezért van a gomb egy burokban: szerkezettel igazítunk, nem
   eltolás-számmal (CLAUDE.md) – egy `position:absolute` buborék alácsúszhatna a címnek.
   A BUBORÉK SÖTÉT, BAL SZÉLÉN A KIEMELÉS SZÍNÉVEL (az előnézet). Azért SÖTÉT és nem áttetsző fehér, amiért
   a „megszavaztad ✓” gomb is: a havas fejképen az áttetsző fehér olvashatatlan volt (mérve az előnézetben).
   A beírt `#0E1B22` és `#E7EEF0` nem token: ugyanaz a pár, amit a JS nélküli út lapja visel
   (`worker/szamol.js` → `turaSzavazatLap`), és MINDKÉT témában ugyanaz, mert a buborék a FOTÓN áll, nem a
   lap felületén – a téma-függő `--surface`/`--ink` sötét témában megfordulna a fotó alatt. A bal éle
   viszont `var(--kiemeles)`: a kiemelés színe EGY paraméter (founder-döntés), azt nem égetjük be.
   SARKOK NINCSENEK (`--r-tile: 0`), a betű az Oxanium – a két design-alapszabály itt is áll.
   ÜRESEN NEM LÁTSZIK: az élő régió a kirajzolt jelölés része (a felolvasónak a tartalom előtt kell látnia),
   de amíg nincs benne semmi, a `:empty` elrejti – a `gap` sem nyílik ki alatta, mert a `.szavaz-hely`
   `gap`-je csak LÁTHATÓ elemek közé kerül (`display:none` elemet a flex kihagy). A lap mértana tehát a
   szavazásig bájtra ugyanaz, mint a „jövök” gombnál.
   390 PX-EN SEM LÓG KI – HÁROM SZABÁLY EGYÜTT: a `max-width:min(34ch,100%)` a 34 karakteres mércét a doboz
   szélességéhez vágja, az `overflow-wrap:anywhere` a leghosszabb túranevet is eltöri (a `/tura/uj-zeland/`
   57 betűs helynevének tanulsága, FLYA-248), és a `white-space:normal` VISSZAVONJA az örökölt `nowrap`-et.
   ⚠️ A HARMADIK NÉLKÜL A BUBORÉK CSENDBEN KILÓG, ÉS A `scrollWidth` NEM MUTATJA MEG. A gomb helye a
   `.headrow` flex-eleme, és annak `white-space:nowrap`-je van (hogy a GOMB felirata ne törjön) – ez
   ÖRÖKLŐDIK a buborékra, a `max-width` pedig egy nem törő szövegsort nem tud megfogni. Mérve 2026-10-22-én,
   a leghosszabb szöveggel („Erre a túrára ma már szavaztál…”), `/tura/uj-zeland/`, 390 px: a buborék jobb
   széle **572 px** volt a 390 px-es lapon – 182 px kilógás –, és a vízszintes görgetés mégis **0**, mert a
   fejkép levágja. A rövid („Köszi, megjött a szavazatod!”) szöveg belefért, tehát a VALÓDI első szöveggel
   mérve a hiba nem állt elő: a próba azóta a LEGHOSSZABB szöveget is méri (`tura_szavazas_bongeszo.mjs`
   5. szakasz). Levágás és kipontozás nincs (founder-szabály). ── */
.szavaz-hely{display:flex;flex-direction:column;align-items:flex-end;gap:10px;min-width:0}
.szavaz-hely form.szavaz{margin:0;display:contents}
.szavaz-hely .btn.kesz{cursor:default;opacity:.92}
.szavaz-valasz:empty{display:none}
.szavaz-bubi{display:block;max-width:min(34ch,100%);background:#0E1B22;color:#E7EEF0;border-left:4px solid var(--kiemeles);border-radius:var(--r-tile);padding:12px 16px;text-decoration:none;text-align:left;white-space:normal;overflow-wrap:anywhere;box-shadow:var(--shadow)}
.szavaz-bubi .szavaz-bubi-szoveg{display:block;font:700 15px/1.35 var(--f-display)}
.szavaz-bubi .szavaz-bubi-hivo{display:block;margin-top:6px;font:500 13.5px/1.3 var(--f-body);color:var(--kiemeles)}
.szavaz-bubi:hover .szavaz-bubi-hivo,.szavaz-bubi:focus-visible .szavaz-bubi-hivo{text-decoration:underline}
/* A FEJKÉPEN A BAL SZÉLRE IGAZÍTUNK, amint a `.headrow` oszloppá áll (760 px) – különben a buborék jobbra
   lógna ki a 100 %-os szélességű `.bal` mellett. A 640 px-es túralap-ágon a gomb a cím FÖLÉ kerül
   (`order:-1`), a buborék vele megy: egy tárgy, egy hely. */
@media (max-width:760px){.szavaz-hely{align-items:flex-start;width:100%}.szavaz-bubi{max-width:100%}}
/* keskeny képernyő: hosszú szó vagy link ne tolja szét a cikket és a fejsávot */
.art-body>*{min-width:0}
/* A SZÖVEGFOLYAM `anywhere`, nem `break-word` (FLYA-248, 2026-10-16). A kettő a SOR TÖRÉSÉBEN azonos –
   mindkettő CSAK akkor tör szót, ha a szó magában sem fér ki –, a különbség a BELSŐ (min-content)
   szélesség: `break-word` mellett a leghosszabb szó TELJES hossza marad a doboz belső mércéje, és egy
   `auto` minimumú grid-sáv kénytelen felvenni. Mérve a `/tura/uj-zeland/` lapon (57 betűs maori helynév,
   390 px-es nézet): `break-word` → `.prose` 514 px és a lap 140 px-t görget vízszintesen; `anywhere` →
   `.prose` 358 px, a görgetés 0. A `min-width:0` itt NEM megoldás (mérve: a sáv 358-ra zsugorodik, de a
   `.tour-body .prose` `margin-left:auto`-ja miatt a doboz fit-content, így a 514 px-es min-content marad)
   – a kilógást csak a min-content csökkentése szünteti meg. Levágás és kipontozás nincs: a szó eltörik és
   végig olvasható. Az `overflow-wrap` öröklődik, ezért a `.prose a` külön sora feleslegessé vált.
   Őr: `tools/proba/szotores_proba.mjs`. */
.prose{overflow-wrap:anywhere}
@media (max-width:760px){.cikkfej .bal,.cikkfej .headrow>*{max-width:100%;min-width:0}.cikkfej .bal{width:100%}.cikkfej h1,.cikkfej .bev{overflow-wrap:anywhere;hyphens:auto}}
@media (max-width:420px){.cikkfej h1{font-size:30px}}

/* Felhívó sáv (szöveg + gomb alakú dobozok: a landing oldalak alja, a képzés- és túraoldal jelentkező-dobozai):
   vékony, a szöveg balra, a gomb(ok) a jobb belső szélhez tapadnak – minden nézetben. A .news alapja (a főoldali hírlevél-űrlap) NEM változik.
   AZ `opacity:1` A CÍMSOR-SZABÁLYBAN SZÁNDÉKOS (FLYA-457, 2026-10-25): a segéddoboz címe 2026-10-24-én `h2`-ről
   `p.cta-cim`-re váltott, és az alatta álló `.cta-sav p` (0,1,1) `opacity:.9`-e azóta a CÍMRE is illeszkedik – a
   címsor-szabály (0,2,0) a betűt, a súlyt és a margót elviszi, az `opacity`-t nem írja, az pedig nem öröklődő.
   Mérve a hét képzéslapon, a hiba: 1 → 0,9. Itt a hiányt pótoljuk, nem a törzsszöveg szelektorát írjuk át. */
.news.cta-sav{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px 28px;padding:18px clamp(20px,2.6vw,30px)}
.cta-sav>div:first-child{flex:1 1 320px;min-width:0}
.cta-sav :is(h2,.cta-cim){font-size:clamp(19px,2vw,23px);line-height:1.2;font-weight:700;margin:0;opacity:1}
.cta-sav p{margin:3px 0 0;font-size:14.5px;line-height:1.4;opacity:.9}
.cta-sav .gombok{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;flex:0 1 auto;margin-left:auto}
.cta-sav .btn{padding:10px 18px;font-size:14px}
@media (max-width:760px){
  .news.cta-sav{flex-direction:column;align-items:stretch;padding:16px 18px}
  .cta-sav>div:first-child{flex:none}
  .cta-sav .gombok{justify-content:flex-end;margin-left:0}
  .cta-sav .btn{white-space:normal;text-align:right;line-height:1.25;max-width:100%}
}
/* HÍRLEVÉL-SÁV, MŰKÖDŐ FELIRATKOZÁSSAL (FLYA-296, founder-döntés 2026-10-16 · GitHub #188).
   A sáv a felhívó sáv (`.cta-sav`) mintája: cím + szöveg balra fent, az ŰRLAP jobbra – a mező és a gomb
   egy sorban, alatta a hibamondat helye, majd a hozzájárulás sora, a sor végén a magyarázó link gombja.
   640 px alatt a jobb oldal teljes szélességűvé nyílik, és a két mondat balra zár: így semmi nem vágódik
   és nem rövidül (founder-szabály). Sarok nincs sehol (`--r-ctl:0`), a gomb a sáv sötét hátterén FEHÉR –
   ugyanaz a pár, amit a `cta` kocka első gombja visel. A hibamondat üresen KI SEM RAJZOLÓDIK (`:empty`),
   de az élő tartomány (`role="alert"`) a jelölésben akkor is ott áll – egy később beszúrt szöveget csak
   így olvas fel a képernyőolvasó. */
.hirlevel .gombok{flex:0 1 420px;flex-direction:column;align-items:flex-end;gap:8px}
.hirlevel .hl-urlap{display:flex;flex-direction:column;align-items:stretch;gap:6px;width:100%;max-width:100%}
/* A MEZŐ ÉS A GOMB EGY SORBAN (`nowrap`): a jobb hasáb szélességét a hozzájárulás MONDATA adná, és
   `wrap` mellett a gomb a mező ALÁ esett (mérve 1280 px-en: a sor 332 px, a mező + gomb 358 px).
   480 px alatt viszont SZÁNDÉKOS a törés: ott a mező és a gomb is teljes szélességű, így egyik sem
   szorul össze és nem vágódik (founder-szabály: telefonon semmi nem vágódhat). */
.hirlevel .hl-sor{display:flex;flex-wrap:nowrap;justify-content:flex-end;gap:8px;width:100%}
.hirlevel .hl-email{flex:1 1 200px;min-width:0;border:0;border-radius:var(--r-ctl);padding:10px 14px;font:500 14.5px var(--f-body);background:#fff;color:#13252E}
.hirlevel .hl-gomb{white-space:nowrap}
.hirlevel .hl-gomb{background:#fff;color:#13252E;border:0;cursor:pointer}
.hirlevel .hl-uzenet{margin:0;font:600 13px/1.35 var(--f-body);text-align:right}
.hirlevel .hl-uzenet:empty{display:none}
.hirlevel .hl-adat{margin:0;font-size:12.5px;line-height:1.35;opacity:.85;text-align:right}
.hirlevel .hl-adat a{color:#fff}
.hirlevel .hl-koszono{margin:0;font:700 15px/1.3 var(--f-body);text-align:right}
@media (max-width:640px){
  .hirlevel .gombok{flex:1 1 100%;align-items:stretch;width:100%}
  .hirlevel .hl-uzenet,.hirlevel .hl-adat,.hirlevel .hl-koszono{text-align:left}
}
@media (max-width:480px){
  .hirlevel .hl-sor{flex-wrap:wrap}
  .hirlevel .hl-email,.hirlevel .hl-gomb{flex:1 1 100%}
}

/* Túranaptár – nézetváltó és Lista nézet. Az Idővonal (#grid) szabályai VÁLTOZATLANOK; a lista saját névtérben él (.naptar-lista). */
.cal-tools .nezet,.cal-tools .szelet{display:inline-flex;background:var(--surface-2);border-radius:var(--r-ctl);padding:4px;gap:2px}
.cal-tools .legend+.nezet{margin-left:4px}
.nezet button,.szelet button{border:0;background:transparent;border-radius:var(--r-ctl);padding:8px 14px;font:600 14px/1 var(--f-body);cursor:pointer;color:var(--muted);display:inline-flex;align-items:center;gap:7px}
.nezet button[aria-pressed="true"],.szelet button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.12)}
.nezet button:focus-visible,.szelet button:focus-visible{outline:2px solid var(--sky);outline-offset:2px}
.nezet svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
/* .szelet = a szeletes vezérlő KÖZÖS kinézete (nézetváltó és szűrő); a .nezet a nézetváltó viselkedés-osztálya marad (a szkriptje és a 900 px-es elrejtése csak rá vonatkozik).
   A túranaptár szűrője (.szelet.szuro) telefonon is látszik; a két színes négyzet a két eseményszín magyarázata. A vezérlő 250 px széles: 320 px-es képernyőn is egy sorban elfér. */
.szelet button{white-space:nowrap}
.szelet button i{width:12px;height:12px;border-radius:0;display:block;flex:none}
.szelet .kulfoldi i{background:var(--grass)}.szelet .hazai i{background:var(--sky)}
section[data-nezet="lista"] .year-grid{display:none}
section[data-nezet="lista"] .legend{display:none}
section[data-nezet="lista"] .cal-tools .nezet{margin-left:auto}
section[data-nezet="idovonal"] .naptar-lista{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.naptar-lista{display:flex;flex-direction:column;gap:6px;margin-top:16px}
.naptar-lista .regi-gomb{align-self:flex-start;border:1.5px solid var(--line);background:transparent;border-radius:var(--r-ctl);padding:9px 16px;font:600 14px/1 var(--f-body);cursor:pointer;color:var(--muted)}
.naptar-lista .regi-gomb:hover{color:var(--ink)}
.naptar-lista .honap{display:flex;align-items:baseline;gap:10px;margin:18px 0 4px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.naptar-lista .honap :is(h2,h3){font-size:19px;font-weight:700}
.naptar-lista .honap small{font-size:13px;color:var(--muted)}
.naptar-lista .honap.ures-h{border-bottom:0;opacity:.75}.naptar-lista .honap.ures-h :is(h2,h3){font-size:16px;font-weight:600;color:var(--muted)}
.naptar-lista .ma-vonal{display:flex;align-items:center;gap:10px;font:800 11.5px/1 var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin:10px 0 2px}
.naptar-lista .ma-vonal::after{content:"";flex:1;border-top:2px solid var(--red);opacity:.7}
.naptar-lista .sor{--c:var(--grass);display:grid;grid-template-columns:118px 76px minmax(0,1fr) auto auto;gap:6px 16px;align-items:center;background:var(--surface);border-radius:0;padding:10px 16px 10px 14px;text-decoration:none;color:inherit;position:relative;overflow:hidden;transition:box-shadow .2s}
.naptar-lista .sor.hazai{--c:var(--sky)}
.naptar-lista .sor::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--c)}
.naptar-lista .sor:hover{box-shadow:0 10px 24px -18px rgba(19,37,46,.5)}
.naptar-lista .sor .d b{display:block;font:800 22px/1 var(--f-display);letter-spacing:-.02em;white-space:nowrap}
.naptar-lista .sor .d small{display:block;font-size:12.5px;color:var(--muted);margin-top:4px;white-space:nowrap}
.naptar-lista .sor .kep{width:76px;height:54px;border-radius:0;background:var(--surface-2) center/cover;display:grid;place-items:center;font:800 20px/1 var(--f-display);color:var(--c)}
.naptar-lista .sor .nev{min-width:0}
.naptar-lista .sor .nev :is(h3,h4){margin:0;font:700 18px/1.2 var(--f-display);letter-spacing:-.01em;overflow-wrap:break-word}
.naptar-lista .sor .nev p{margin:0;font-size:14px;color:var(--muted)}
.naptar-lista .sor .cim{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.naptar-lista .sor .cim span{font:600 11.5px/1 var(--f-body);padding:5px 9px;border-radius:var(--r-ctl);background:var(--surface-2);color:var(--muted);white-space:nowrap}
.naptar-lista .sor .all{font:700 13.5px/1.2 var(--f-body);text-align:right;white-space:nowrap;min-width:92px}
.naptar-lista .sor .all.most{color:var(--red)}
.naptar-lista .sor .all small{display:block;font:500 12px/1.2 var(--f-body);color:var(--muted)}
.naptar-lista .sor .jelzok{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;margin-top:5px}
.naptar-lista .pill{font:800 11px/1 var(--f-body);letter-spacing:.04em;text-transform:uppercase;padding:5px 8px;border-radius:var(--r-ctl);background:var(--red);color:#fff}
.naptar-lista .pill.utolso-helyek{background:#E08A1E;color:#111}.naptar-lista .pill.erdeklodj{background:var(--sky);color:var(--sky-ink)}.naptar-lista .pill.akcio{background:#FFD400;color:#111;text-transform:none;letter-spacing:0}
.naptar-lista .sor.mult{opacity:.62}
@media (max-width:900px){
  .naptar-lista .sor{grid-template-columns:64px minmax(0,1fr);grid-template-areas:"kep d" "kep nev" "cim cim" "all all";gap:2px 12px;padding:12px 14px}
  .naptar-lista .sor .kep{grid-area:kep;width:64px;height:64px;align-self:start}
  .naptar-lista .sor .d{grid-area:d}.naptar-lista .sor .nev{grid-area:nev}
  .naptar-lista .sor .d b{font-size:17px;display:inline}.naptar-lista .sor .d small{display:inline;margin-left:6px;white-space:normal}
  .naptar-lista .sor .cim{grid-area:cim;justify-content:flex-start;margin-top:8px}
  .naptar-lista .sor .all{grid-area:all;text-align:left;margin-top:6px;white-space:normal}
  .naptar-lista .sor .all small{display:inline;margin-left:6px}
  .naptar-lista .sor .jelzok{justify-content:flex-start}
}
@media (prefers-reduced-motion:reduce){.naptar-lista .sor{transition:none}}

/* ===================================================================================================
   SZÉLTÉRKÉP-HÁTTÉR ÉS VARIÓ-MŰSZER (2026-09-22, founder-jóváhagyott tervezői átadó)
   A viselkedés a site/assets/muszer.js-ben van; itt csak a megjelenés. Minden szín TOKENBŐL jön, hogy
   a témaváltás magától átvigye – a canvas a tokeneket olvassa ki, ezért is RGB-hármasok.
   =================================================================================================== */

/* A háttér a lap MÖGÖTT fut. A body háttere a nézetre öröklődik, tehát az alá nem kerül; a tartalom
   fölötte van. Semmilyen meglévő elem z-indexéhez nem kellett nyúlni. */
#szelterkep{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}

/* A SÁV RÁÚSZIK, de a tartalom SOHA nem kerül alá (founder, 3. kör: „a tartalom soha ne csússzon alá,
   az nagyon nem tetszik”). Ahol az oldalmargó keskenyebb a sávnál, a tartalom PONTOSAN az átfedéssel
   csúszik jobbra; 1744 px fölött (1632-es keret + 2 × 56) a margó elnyeli a sávot, és az eltolás 0.

   A `--eltol`-T 2026-10-19 (FLYA-382 · GitHub #450) ÓTA A CSS SZÁMOLJA, NEM A JS. Addig a `muszer.js`
   `eltolas()`-a írta be a `<html>` inline stílusába – a CSS tartaléka pedig `0px` volt –, ezért az ELSŐ
   FESTÉS 56 px-rel szélesebb hasábbal rajzolt, mint a kész lap: mérve 1280 px-en a `<main>` szélessége
   1248 → 1192 px MINDEN lapon, és ettől MINDEN szöveg újratördelődött (`/adatkezeles/` `p.slogan`
   430×167 → 374×197 px, két sorral több). Ez volt a kör legnagyobb, EGYETEMES „villanása”, és nem
   rejtéssel szüntethető meg, hanem azzal, hogy a hely az első festéskor is le van foglalva (a founder
   „a helyét foglald le előre” útja – az átadó [levezetve] pontja). A képlet BETŰRE a régi JS-é:
       innerWidth >= 900 ? max(0, rail − max(0, (innerWidth − 1600 − 2·köz) / 2)) : 0
   A `100vw` és az `innerWidth` ugyanazt a szélességet adja (mindkettő a görgetősávval együtt), a 900 px-es
   kapu pedig maga ez a médiafeltétel – 900 alatt a `--eltol` definiálva sincs, és a `var(--eltol,0px)`
   tartaléka 0. Az őr: `tools/proba/villanas_proba.mjs` (a kirajzolt CSS-érték a RÉGI JS-képlethez mérve,
   több nézetszélességen, negatív kontrollal). A `--koz` és a `--rail` token marad az egyetlen forrás. */
@media (min-width:900px){
  :root{--eltol:max(0px, calc(var(--rail) - max(0px, (100vw - 1600px - 2 * var(--koz)) / 2)))}
  .page{padding-left:calc(var(--koz) + var(--eltol,0px))}
  /* A jobb szél is igazodik (2026-10-01): a műszersáv miatti eltolás a fejléc KÖZEPÉT `--eltol/2`-vel jobbra viszi, így a
     teljes szélességű háttércsík jobb széle ennyivel a képernyőn túlra lógott (1280-on 26, 1000-en 36 px – mérve). A
     `html{overflow-x:clip}` ezt eddig is levágta, görgetni nem lehetett, de a `clip`-et nem ismerő régi Safari (15 és
     korábbi) oldalra görgethető lapot mutatott volna. A `clip` marad tartaléknak (pl. a görgetősáv szélessége miatt). */
  header[data-header]::before{left:calc(50% - 50vw + var(--eltol,0px));right:calc(50% - 50vw + var(--eltol,0px) / 2)}
}

/* A MŰSZER. Alapból (telefonon) alsó sáv; 900 px fölött bal oldali sáv a lap tetejétől az aljáig.
   Csak OLVAS: nincs benne kattintható elem, ezért 44 px-es célt sem hoz létre. */
.muszer{position:fixed;z-index:30;left:0;right:0;bottom:0;display:flex;gap:16px;align-items:center;justify-content:space-between;
  min-height:56px;box-sizing:border-box;padding:6px 16px calc(6px + env(safe-area-inset-bottom,0px));background:var(--muszer-bg);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--muszer-line);color:var(--ink);font-family:var(--f-display)}
.muszer[hidden]{display:none}   /* ma semmi nem állítja (a műszer MINDEN lapon fent marad, founder 2026-09-22); biztosíték: a display:flex különben legyőzné a hidden-t */
.muszer small{font:700 11px/1.3 var(--f-body);letter-spacing:.02em;text-transform:uppercase;color:var(--vario);display:block}   /* a „MAGASSÁG” és a „VARIÓ” egyforma: a kiemelés színe. 11 px a legnagyobb, ami kifér – mérve: 12 px-en a „MAGASSÁG” 81 px lenne a 66 px-es helyen (founder 2026-09-22) */
.muszer .alt{font-weight:800;font-size:22px;line-height:1.05;font-variant-numeric:tabular-nums;letter-spacing:-.01em;white-space:nowrap;color:var(--vario)}   /* a magasság száma is a kiemelés színe (founder 2026-09-22) */
.muszer .alt em{font-style:normal;font-size:.7em;line-height:1;font-weight:700;color:var(--vario)}   /* a „m” közel a számhoz */   /* a „m” is a kiemelés színe */
.muszer .vz{font-weight:700;font-size:17px;font-variant-numeric:tabular-nums;color:var(--vario);text-align:right;white-space:nowrap}
.muszer .vz em{font-style:normal}
.muszer .scale{display:none}
/* A FEJ – a miniatűr szélzsák (founder 2026-10-01, Planner-átadó „Főmenü B”). A zsák egyben a háttér kapcsolója
   (role=button), ezért kap egy 44 px-es láthatatlan fogófelületet. Alatta csak „x,x m/s”; a részletek rámutatásra. */
.muszer .zsak-doboz{position:relative;display:flex;align-items:center;gap:8px}
.muszer .zsak{position:relative;display:block;width:30px;height:30px;flex:none;cursor:pointer;color:var(--ink);border-radius:0}
.muszer .zsak::before{content:"";position:absolute;inset:-7px}
.muszer .zsak svg{display:block;width:100%;height:100%;overflow:visible}
.muszer .zsak:focus-visible{outline:2.5px solid var(--kiemeles);outline-offset:2px}
.muszer .szel-ms{font:800 13px/1.1 var(--f-body);color:var(--vario);font-variant-numeric:tabular-nums;white-space:nowrap}
.muszer .szel-ms em{font-style:normal;font-weight:700;font-size:10px;margin-left:2px}
.muszer .szel-tip{display:none}
/* a méter: telefonon a sáv közepén, CSAK görgetés közben; az eltűnés azonnali (nincs átmenet) */
.muszer .most-tel{font:800 15px/1 var(--f-body);color:var(--vario);font-variant-numeric:tabular-nums;white-space:nowrap;opacity:0;margin-inline:auto}
.muszer .most-tel.lat{opacity:1}
/* Telefonon az alsó sáv takarná a lábléc utolsó sorát – ezért a lap alja kap ennyi helyet.
   A „Jelentkezem” sávval (.cta-bar) ütközne: founder-döntés 2026-09-22 szerint OTT A CTA-SÁV TŰNIK EL,
   a gomb a lapon belül (a képzés dobozában és a záró sávban) marad elérhető. */
body.muszer-also{padding-bottom:56px}
body.muszer-also .cta-bar{display:none}

@media (min-width:900px){
  .muszer{top:0;bottom:0;right:auto;width:var(--rail);z-index:45;   /* 45 = a ragadós fejléc (40) FÖLÖTT, hogy a sáv a lap tetejéig érjen */
    flex-direction:column;justify-content:flex-start;padding:calc(var(--proto-h,0px) + 10px) 3px 16px;text-align:center;border-top:0;border-right:1px solid var(--muszer-line)}
  /* a fej a prototípus-sáv ALATT kezdődik (az a legfelső rétegen ül, és eltakarta a zsákot – mérve 2026-10-01) */
  /* asztalon a fej oszlop: zsák 36 px, alatta az érték egymás alatt; a részletek a sávtól JOBBRA, rámutatásra/fókuszra */
  .muszer .zsak-doboz{flex-direction:column;gap:4px}
  .muszer .zsak{width:36px;height:36px}
  .muszer .zsak::before{inset:-4px}
  .muszer .szel-ms{text-align:center}
  .muszer .szel-ms em{display:block;margin-left:0}
  .muszer .szel-tip{display:block;position:absolute;left:calc(100% + 10px);top:0;z-index:5;background:var(--ink);color:var(--bg);
    font:500 12.5px/1.4 var(--f-body);padding:8px 10px;white-space:nowrap;text-align:left;opacity:0;pointer-events:none;transition:opacity .15s}
  .muszer .zsak-doboz:hover .szel-tip,.muszer .zsak-doboz:focus-within .szel-tip{opacity:1}
  .muszer .most-tel{display:none}
  .muszer .scale .most{position:absolute;left:14px;top:0;translate:0 -50%;z-index:2;font:800 13px/1 var(--f-body);color:var(--vario);
    background:var(--surface);padding:3px 5px;white-space:nowrap;font-variant-numeric:tabular-nums;pointer-events:none;opacity:0}
  .muszer .scale .most.lat{opacity:1}   /* 3 px oldalmargó: a „MAGASSÁG” feliratnak kell a hely */
  .muszer .vz{text-align:center}
  .muszer .vz span{display:block;font-size:20px;font-weight:800;line-height:1.05}   /* a szám eggyel nagyobb és félkövér */
  .muszer .vz em{display:block;line-height:1}                                        /* a „m/s” alatta, a mai méreten */
  .muszer .alt em{display:block;font-size:15px}
  /* A skála vonala BALRA tolva (founder 2026-09-22): középen állva a „2000” osztásszám 71 px-nél ért véget,
     1 px-re a 72 px-es sáv szélétől. Így a vonal 12 px-nél áll, a számok 23-tól 48-ig férnek el. */
  /* A skála FOGHATÓ: a korongot húzva lehet görgetni (founder 2026-09-23). A vonal 2 px marad,
     de a ::after egy 44 px széles, láthatatlan fogófelületet ad rá – az átadó kikötése, hogy a műszer
     ne hozzon létre 44 px alatti célpontot, a 16 px-es korong önmagában kevés lenne.
     A touch-action:none kell, különben az ujjmozdulatot a böngésző lapgörgetésnek venné. */
  .muszer .scale{display:block;position:relative;flex:1;width:2px;margin-block:10px;margin-left:9px;align-self:flex-start;background:var(--line);
    cursor:grab;touch-action:none}
  .muszer .scale::after{content:"";position:absolute;inset:0 -21px}
  .muszer .scale.fogva{cursor:grabbing}
  .muszer .scale.fogva i{transform:scale(1.15);translate:0 -50%}
  .muszer .scale i{position:absolute;left:-7px;width:16px;height:16px;border-radius:0;background:var(--vario);top:0;translate:0 -50%;box-shadow:0 0 0 5px var(--vario-halo);transition:transform .12s ease}
  .muszer .scale b{position:absolute;left:11px;font:600 10px var(--f-body);color:var(--muted);translate:0 -50%;white-space:nowrap}
  /* a jelölők ALATT a mértékegység (founder 2026-10-01): ugyanaz a betű, mint a számé; a szám helyét nem tolja el.
     A legalsó „0 m” kivétel: ott a szám MELLETT áll (founder ugyanaznap). */
  .muszer .scale b em{position:absolute;left:0;right:0;top:100%;text-align:center;font:inherit;font-style:normal}   /* a szám alatt KÖZÉPRE (founder 2026-10-01) */
  body.muszer-also{padding-bottom:0}
  body.muszer-also .cta-bar{display:none}   /* a .cta-bar úgyis csak 900 px alatt látszik – ez csak biztosíték */
}

/* A SZÉLCSEMPE a Kiemelt sor negyedik eleme, a JOBB ALSÓ SAROKBAN, fél magasságban (founder 2026-09-23).
   Belül két hasáb: balra a szélzsák rajza, jobbra az iránytű és ALATTA a szélerősség; legalul a helynév,
   majd KÜLÖN SORBAN a mérés ideje. Ugyanaz a csempe-stílus, mint a többié – semmi külön szín. */
.tile.szel{gap:0;padding:14px 12px;justify-content:center;align-items:center;min-height:0}
.tile.szel .szelsor{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%;min-width:0}
.tile.szel .zsakrajz{flex:none;width:100%;max-width:112px;aspect-ratio:1;overflow:visible;cursor:pointer}
.tile.szel .szeljobb{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;flex:none;min-width:0}
.tile.szel .ert{font-size:17px;line-height:1.15;letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap;margin:0}
.tile.szel .ert b{font-size:12.5px;color:var(--muted);font-weight:700}
.tile.szel .hely{color:var(--muted);font-size:11.5px;margin:3px 0 0;font-weight:600;white-space:nowrap}
.tile.szel .forras{color:var(--muted);font-size:11.5px;margin:0;white-space:nowrap}

/* A szélzsák NÉGYZETES rajztérben, PÓZNA NÉLKÜL (founder-döntés 2026-09-28). A zsák a rajz közepén ül,
   és a PONTOS szélirányba fordul (nem 90°-onként), a négyzet közepe körül – így sosem lóghat ki.
   Gyenge szélben megereszkedik: rövidebb és vékonyabb (--eresztés a JS-ben), és arányosan lobog
   (--amp, --ido). A korábbi --lelog megszűnt: pózna nélkül nincs mihez képest lelógnia. */
/* HÁROM csoport, három mozgás (founder-döntés 2026-09-28, pózna nélküli szélzsák):
   forgás a rajz KÖZEPE körül · eresztés és lobogás a zsák SZÁJÁNÁL fogva (15,50). */
.szelall{transform-origin:50px 50px;transition:transform .9s ease}
.ereszt{transform-origin:15px 50px;transition:transform .8s ease}
.lobogo{transform-origin:15px 50px;animation:lobog var(--ido,1.2s) ease-in-out infinite alternate}
@keyframes lobog{
  from{transform:rotate(calc(var(--amp,0deg) * -1)) skewY(calc(var(--amp,0deg) * -.35))}
  to{transform:rotate(var(--amp,0deg)) skewY(calc(var(--amp,0deg) * .35))}
}
.muszer.indul .szelall,.muszer.indul .ereszt{transition:none}   /* az első állás átmenet nélkül – lapváltáskor a zsák nem fordul be újra (muszer.js: indulasVege) */
@media (prefers-reduced-motion:reduce){.szelall,.ereszt{transition:none}.lobogo{animation:none}}

/* A KETTÉVÁGOTT HELY (founder 2026-09-24): az akciócsempe korábbi s5-ös helye két egyenlő oszlop –
   balra az akció, jobbra a szélzsák. A `.parban` maga NEM csempe: csak rács, ezért nincs háttere és
   kerete. Így a nyitó csempe és a „Következő túráink" mérete változatlan marad.
   A KÜSZÖB MÉRT ÉRTÉK, nem tetszőleges: 1240 px alatt egymás alá kerülnek, teljes szélességben.
   A founder döntése az volt, hogy keskenyen szét kell válniuk; a határt a mérés adta meg:
     1101 px → a fél csempe 190 px, a címnek 154 px marad, a „tanfolyamkezdés” szó viszont 168 px
     1240 px → 219 px / 183 px, kényelmesen kifér
   1100-as küszöbbel tehát 1101 és 1240 között levágódott volna a cím utolsó betűje.
   A sor magasságát a magasabbik fél adja – mindkettő kitölti. */
.parban{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:stretch}
.parban>.tile{min-height:0}
/* A FÉL SZÉLESSÉGŰ akciócsempe legszűkebb esete 1101 px-en 190 px – ott a „tanfolyamkezdés” egyetlen
   szóként szélesebb a csempénél, és a `.tile{overflow:hidden}` LEVÁGTA az utolsó betűjét. A mérés ezt
   nem mutatta (a doboz függőlegesen nem lógott túl), csak a ránézés. Ezért itt kisebb a cím, és a
   túl hosszú szó elválik: az `overflow-wrap` csak akkor tör, ha a szó magában sem fér ki.
   `hyphens:auto` NEM kell: az akkor is elválaszt, amikor nem muszáj („Őszköszön-tő tanfo-lyamkezdés”). */
.parban>a.tile{padding:18px}
.parban>a.tile :is(h2,h3){font-size:20px;line-height:1.12;overflow-wrap:break-word}
.parban>a.tile p{font-size:14px;overflow-wrap:break-word}
@media (max-width:1239px){.parban{grid-template-columns:1fr}}

/* ───────── GALÉRIA – főképernyő: KÉPFOLYAM (founder-döntés 2026-09-29, Planner-átadó) ─────────
   Az albumok egy folyamban, sorkizárt sorokban, felváltva 3 és 2 soronként; a méretet a JS számolja
   (a borítók arányaiból), ezért itt csak a viselkedés és a tipográfia van.
   SZÍN: a terv saját `--accent` tokent használt (#3E87BE), ami ezen a webhelyen NEM létezik. A megfelelője
   a founder paraméterezhető kiemelés-színe (`--kiemeles`), hogy a galéria is kövesse, ha átállítja. */
.gal-folyam{display:flex;flex-direction:column;gap:14px;margin-top:8px}
.gal-folyam:focus{outline:none}
.gal-sor{display:flex;gap:14px}
.gal-album{flex:0 0 auto;text-decoration:none;color:inherit;display:block;min-width:0}
.gal-album .keret{display:block;overflow:hidden;background:var(--surface-2);position:relative}
/* `will-change` NINCS: képenként külön kompozit-réteget kért, és mobilon a rétegek elfogyásakor a
   böngésző elejtette és újraépítette őket – ettől VILLOGTAK a képek görgetés közben (2026-09-29). */
.gal-album img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.1);transform-origin:50% 50%;opacity:0;transition:opacity .6s ease,scale .85s ease}
.gal-album img.betoltve{opacity:1}
.gal-album .hamarosan{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:600 12px/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.gal-album .nev{display:block;margin-top:0;padding:4px 12px;font:500 15px/1.25 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);
  background:color-mix(in srgb,var(--kiemeles) 20%,transparent)}
.gal-album:hover .nev{color:var(--kiemeles-ink);background:var(--kiemeles)}
/* RÁMUTATVA A BORÍTÓ LÁGYAN VISSZANŐ (founder 2026-10-06: „legyen a görgetés effekt ellentéte, amikor a kép fölé állok” → +7 %, 0,85 mp):
   a KÜLÖN `scale` tulajdonsággal, így a görgetés JS-ének inline `transform`-ja érintetlen, és a kettő összeszorzódik (1,0 × 1,07).
   Csak egérrel – billentyűs fókuszra nem; csak az albumcsempéken (az album lapja, a fal, a vetítő nem). */
.gal-album:hover img{scale:1.07}
/* A SORKIZÁRÁS ELŐTTI ÁLLAPOT – A JS NÉLKÜL KISZOLGÁLT ALBUMSOR (FLYA-340 · SEO-03 maradék, 2026-10-18).
   A telepítés mind a 34 album csempéjét a jelölésbe írja, de a sorkizárás mértanát (szélesség,
   keretmagasság) csak a böngésző tudja kiszámolni a nézet szélességéből – addig, és JavaScript nélkül
   VÉGLEG, egyszerű rács áll a helyén. A `data-elore`-t a `folyamRajz()` veszi le az első kirajzoláskor.
   Az `opacity:1` azért kell, mert a borító alapállapota `opacity:0` (a betöltés-effekt), és azt a JS
   `.betoltve` osztálya kapcsolja be – nélküle JS nélkül mind a 34 kép LÁTHATATLAN maradna. */
.gal-folyam[data-elore]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.gal-folyam[data-elore] .gal-album{width:auto}
.gal-folyam[data-elore] .gal-album .keret{aspect-ratio:3/2}
.gal-folyam[data-elore] .gal-album img{opacity:1}

/* A számláló jobbra fent; a függőleges címmel EGYÜTT csúszik ki lefelé görgetve. */
/* A „33 album” felirat görgetéskor jobbra kicsúszik és elhalványul. A csúszás a BELSŐ elemen történik, a doboz levágja (2026-10-07):
   a dobozon csúsztatva a lap 8 px-szel szélesebb lett a képernyőnél (vízszintesen elmozdítható volt, mérve 1280 és 375 px-en). */
.gal-szam{display:flex;justify-content:flex-end;font:600 12px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--kiemeles);margin:28px 0 12px;overflow:hidden}
.gal-szam span{transition:transform .5s ease,opacity .5s ease}
:root.gal-lent .gal-szam span{transform:translateX(24px);opacity:0}

/* A függőleges „GALÉRIA": a LAPON ül (fixed), a JOBB oldalon – a Varió a balon áll, így nem ütköznek.
   Betöltéskor alulról törlődik elő.
   2026-09-29, három founder-döntés:
   • A CSEMPÉK a főmenü bal és jobb széléhez igazodnak, ezért a lap jobb oldalán NINCS többé fenntartott
     sáv a feliratnak. A felirat csak ott marad meg, ahol a menüoszlopon KÍVÜL is elfér (a JS méri, és a
     `rejt` osztállyal veszi el, ha nem – mérve: 1440 px-en elfér, 1280 és 1024 px-en 61, illetve 59 px-nyit
     lógna a képekre, az pedig Kinga szabályába ütközne: „nincs felirat a fotón").
   • A felirat TETEJE az első képsor tetejével egy vonalban áll (`--gal-cim-top`, a JS méri), nem a nézet
     közepén.
   • Kifutás GÖRGETÉSHEZ KÖTVE, nem időzítve: 120 px-től 560 px-ig fokozatosan (`--cim-x`, `--cim-o`) –
     ezt kérte lassabbra. Átmenet ezért nincs rajta: a görgetés vezeti. */
.gal-cim{position:fixed;right:clamp(10px,1.6vw,26px);top:var(--gal-cim-top,50%);writing-mode:vertical-rl;
  /* Az Oxanium szélesebb, mint a korábbi keskeny stencil: a felirat ~4,35 betűmagasság hosszú, ezért a méretet az
     ablak MAGASSÁGA is korlátozza (a teteje ~227 px-en áll) – 1280×720-on különben 7 px-szel kilógott alul. */
  font:800 clamp(64px,min(9vw,calc((100vh - 260px) / 4.4)),128px)/.8 var(--f-gal);letter-spacing:.02em;
  color:var(--kiemeles);white-space:nowrap;pointer-events:none;z-index:20;
  transform:translateX(var(--cim-x,0%));opacity:var(--cim-o,1);
  clip-path:inset(100% 0 0 0);animation:galCimBe .8s .15s ease forwards}
@keyframes galCimBe{to{clip-path:inset(0 0 0 0)}}
/* `visibility` és nem `display`, hogy a szélességét a JS akkor is meg tudja mérni, amikor nem látszik */
.gal-cim.rejt{visibility:hidden}
@media (max-width:700px){ .gal-cim{font-size:60px} }
@media (prefers-reduced-motion:reduce){
  .gal-cim{animation:none;clip-path:none;transform:none}   /* csak a halványodás marad, oldalra csúszás nincs */
  .gal-szam span{transition:none}
  .gal-album img,.gal-album:hover img{transition:none;transform:none;scale:none;opacity:1}   /* a :hover-t is ki kell mondani – a `.gal-album:hover img` erősebb */
}

/* „Vissza az elejére" – jobbra lent. TELEFONON a Varió alsó sávja fölé emelve: a sáv 58 px magas és
   fixen a képernyő alján ül, a terv 20 px-es helye pont alá esett volna (mérve 2026-09-29). */
.fel-gomb{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));width:48px;height:48px;border-radius:var(--r-ctl);
  border:1px solid var(--line);background:var(--surface);color:var(--ink);font:400 20px/1 var(--f-body);cursor:pointer;
  display:flex;align-items:center;justify-content:center;z-index:25;opacity:0;pointer-events:none;
  transition:opacity .5s .5s ease;box-shadow:var(--shadow)}
.fel-gomb.lat{opacity:.75;pointer-events:auto}
.fel-gomb:hover{opacity:1}
.fel-gomb:focus-visible{outline:2px solid var(--kiemeles);outline-offset:3px;opacity:1}
@media (max-width:900px){.fel-gomb{bottom:calc(78px + env(safe-area-inset-bottom,0px))}}
@media (prefers-reduced-motion:reduce){.fel-gomb{transition:none}}

/* ───────── GALÉRIA – album: „C · VETÍTÉS" (founder-döntés 2026-09-29, Planner-átadó) ─────────
   A vetítő FELÜL RAGAD, a tartalom a saját hátterével ráúszik. A látható rész 60 px-nél megáll, és
   ugyanaz a képrészlet marad a galéria-sávként – ezért a váltás nem látszik.
   A `--sav-top` a webhely RAGADÓ FEJLÉCÉNEK alsó éle, futásidőben mérve (asztalon 191 px): a terv a
   vetítőt a nézet tetejére tette, itt viszont a fejléc alá kell kerülnie. */
body.galeria-album main#galeria{padding:0;max-width:none}
/* AZ ALBUM H1-e A VETÍTŐ FÖLÖTT (founder-döntés 2026-10-10 – FLYA-119 · SEO-05): „Galéria – <az album neve>”,
   a „szerény címke” formában. A `<main>` ezen a nézeten teljes szélességű és párnázatlan, ezért a címke a
   SAJÁT párnáját és középre zárását hozza – pontosan a `.c-tartalom` szabályaival (max-width 1240 px,
   `clamp(16px,4vw,48px)`), hogy a bal széle a lap szövegéhez igazodjon.
   A FELSŐ KÖZ PÁRNA, NEM MARGÓ: a `<main>`-nek ezen a nézeten nincs párnázata, ezért egy felső MARGÓ
   összecsúszna a `<main>` (futásidőben számolt) felső margójával, és nyom nélkül eltűnne – a címke a
   menükártyához tapadt volna. A vetítő a lenyomathoz képest így 35 px-szel kerül lejjebb (mérve), az
   elfogadási korlát (≤ 40 px) alatt. */
body.galeria-album main#galeria>.lap-h1{max-width:1240px;margin:0 auto 10px;padding:8px clamp(16px,4vw,48px) 0}
.c-vetito{position:sticky;top:var(--sav-top,0px);z-index:1;overflow:hidden;background:#0B1114;
  aspect-ratio:21/9;max-height:78vh;height:auto;
  clip-path:inset(0 0 calc(100% - var(--latszik,100%)) 0)}
.c-vetito .v-kep{display:block;width:100%;height:100%;object-fit:cover;will-change:transform;transition:opacity .2s ease}
.c-vetito .v-kep.valt{opacity:.25}
.c-vetito .v-kep.ures{background-size:cover;background-position:center}
/* SÖTÉTÍTŐ RÉTEG – 2026-09-29-én először megszűnt („alatta ne legyen áttetsző réteg, csak a főkép az
   effekt során"), majd a founder ugyanaznap MÁSKÉNT kérte: „a kép zavaró a háttérben … sötétítsd a képet,
   de ne tűnjön el a kép, csak legyen szürkébb … ahogy csukódik folyamatosan sötétedjen is", „65% legyen".
   Ezért a réteg visszajött, de MÁSKÉNT: nem egy kapcsolt állapot, hanem a csukódás arányában nő (`--sotet`
   = 0,65 × p2), és világos és sötét témában EGYFORMA (a régi sötétben 0,78-ig ment). A szín semleges sötét,
   nem fekete – ettől szürkébb, nem feketébb. A FŐMENÜ mögötti háttérsáv és a kártyalap NEM jött vissza. */
.c-vetito .v-sotet{position:absolute;inset:0;background:#101518;opacity:var(--sotet,0);pointer-events:none}
.c-vetito .v-ures{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  color:#fff;font:700 22px/1.2 var(--f-cim);text-align:center;padding:0 24px}
.c-vetito .v-ures span{font:400 14px/1.4 var(--f-body);opacity:.85}
/* a nyilak MINDIG a látható rész közepén maradnak – ezért a `--latszik` felén állnak, nem a doboz közepén */
.c-vetito .v-nyil{position:absolute;top:calc(var(--latszik,100%) / 2);translate:0 -50%;width:48px;height:48px;border-radius:var(--r-ctl);
  border:0;background:rgba(255,255,255,.18);color:#fff;font:400 26px/1 var(--f-body);cursor:pointer;
  display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);transition:background .2s,opacity .3s}
.c-vetito .v-nyil:hover{background:rgba(255,255,255,.3)}
.c-vetito .v-nyil.bal{left:16px}.c-vetito .v-nyil.jobb{right:16px}
.c-vetito .v-szam{position:absolute;left:50%;translate:-50% 0;bottom:14px;color:#fff;opacity:.85;
  font:600 12px/1 var(--f-body);letter-spacing:.1em;font-variant-numeric:tabular-nums;transition:opacity .3s}
.c-vetito.csukva .v-nyil,.c-vetito.csukva .v-szam{opacity:0;pointer-events:none}

/* A TARTALOM a saját hátterével ÚSZIK RÁ a vetítőre. */
.c-tartalom{position:relative;z-index:3;background:var(--bg);padding:34px clamp(16px,4vw,48px) 60px;max-width:1240px;margin:0 auto}
.c-tartalom:focus{outline:none}
/* A VETÍTŐ ALATTI NAGY ALBUM-CÍM 2026-10-10 (FLYA-119 · SEO-05) ÓTA NEM `h1`, HANEM `p`: a lap EGYETLEN H1-e
   a vetítő FÖLÖTT álló „szerény címke”. Az elem maga MEGMARADT, mert nem csak cím: ez a kapszula
   album-címének ÁTTŰNÉS-HORGONYA (`felUszik(ccim, kapcim)` – founder-döntés 2026-09-29), nélküle a
   kapszulában SOHA nem jelenne meg az album neve. A `text-wrap:balance` azért áll itt, mert eddig a
   `h1,h2,h3` szabálytól örökölte – `p`-ként a sortörése nélküle megváltozott volna. */
.c-cim{font:600 clamp(38px,5vw,56px)/1.05 var(--f-cim);letter-spacing:-.01em;margin:10px 0 0;text-align:center;
  text-wrap:balance;transition:opacity .5s ease}
.c-cim.fent{opacity:0}
/* a Leírás KÉT HASÁBBAN; a bekezdés kiemelt első mondata félkövér, `--ink` színnel */
.c-leiras{columns:2 300px;column-gap:44px;margin:20px auto 0;max-width:980px}
.c-leiras p{margin:0 0 14px;font-size:15.5px;line-height:1.62;color:var(--muted);break-inside:avoid}
.c-leiras b{color:var(--ink);font-weight:700}
/* NÉZET-VÁLASZTÓ (founder-kérés 2026-09-29): a képsor JOBB széléhez igazítva, kompaktabban – a felirat
   6 px-re az ikonoktól, az ikonok között 2 px, a gomb 36 px (44 px helyett). Az AKTÍV jelölése nem türkiz
   ikon, mert az világos háttéren kevés kontrasztú volt: `--ink` ikon + alatta 2 px-es türkiz vonal. */
/* A nézetválasztó 2026-09-29 óta BALRA áll (founder), a ≡ Menü pedig jobbra – a kapszulában is így. */
.c-nezet{display:flex;align-items:center;justify-content:flex-start;gap:2px;margin:28px 0 16px}
.c-nezet .nezet-cimke{margin-right:4px}
.nezet-cimke{font:600 11.5px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.nezet-ikon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-ctl);
  text-decoration:none;color:var(--muted);position:relative;transition:background .15s,color .15s}
.nezet-ikon svg{width:18px;height:18px;display:block}
.nezet-ikon:hover{background:var(--surface-2);color:var(--ink)}
.nezet-ikon.ez{color:var(--ink)}
.nezet-ikon.ez::after{content:"";position:absolute;left:8px;right:8px;bottom:3px;height:2px;border-radius:0;background:var(--kiemeles)}
.nezet-ikon:focus-visible{outline:2px solid var(--kiemeles);outline-offset:2px}
/* a vetítő sávjában (sötét háttéren) fehér, az inaktív 60 %-os */
.c-vetito .nezet-cimke{color:rgba(255,255,255,.75)}
.c-vetito .nezet-ikon{color:rgba(255,255,255,.6)}
.c-vetito .nezet-ikon:hover,.c-vetito .nezet-ikon.ez{color:#fff;background:transparent}

/* A KÉPSOR: sorkizárt sorok, vagy „egyenként" egy kép soronként. A keret a közös képeffektet kapja. */
.c-kepek{display:flex;flex-direction:column;gap:14px;margin-top:6px}
/* FLYA-449: az ALBUM LAPJÁNAK előrenderelt képsora (az első 12 kép, JS nélkül is). A böngésző a kész
   album-nézetre cseréli a <main>-t, tehát ez a rács csak az előrenderelt állapoté – a JS-es sorkizárást
   nem befolyásolja. Aránytartó, hogy a kép ne torzuljon és ne csorduljon ki. */
.gal-album-elso{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}
.gal-album-elso .gal-album-kep{display:block;background:var(--surface-2)}
.gal-album-elso img{display:block;width:100%;height:auto}
.k-sor{display:flex;gap:14px}
.c-kepek .kepkeret{flex:0 0 auto;padding:0;border:0;background:var(--surface-2);overflow:hidden;cursor:zoom-in;display:block;position:relative}
.c-kepek .kepkeret img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.1);transform-origin:50% 50%;
  opacity:0;transition:opacity .6s ease}   /* `will-change` nincs – lásd a főképernyő képeinél */
.c-kepek .kepkeret img.betoltve{opacity:1}
.c-kepek .kepkeret:focus-visible{outline:3px solid var(--kiemeles);outline-offset:-3px}
.c-kepek.egyes .k-sor{justify-content:center}
@media (max-width:700px){
  .c-vetito{aspect-ratio:4/3}
  .c-leiras{columns:1}
  .c-vetito .v-nyil{width:40px;height:40px;font-size:22px}
}
@media (prefers-reduced-motion:reduce){
  .c-vetito .v-kep{transform:none!important;transition:opacity .2s ease}
  .c-cim{transition:none}   /* a .v-sav és elemei 2026-09-29 óta nincsenek – a kapszula vette át */
  .c-kepek .kepkeret img{transition:none;transform:none;opacity:1}
}

/* ───────── GALÉRIA-ALBUM – KAPSZULÁS FEJLÉC (founder-döntés 2026-09-29) ─────────
   A founder lelete: az összecsukott sáv a főmenü ALÁ bújt. A megoldás: maga a főmenü csukódik össze.
   ⚠️ MINDEN szabály `body.galeria-album` alatt él – a fejlécet a flyaway.js minden lapra rajzolja,
   és a többi lap megjelenése bájtra nem változhat. */
body.kapszulas header[data-header]{position:fixed;top:var(--proto-h,0px);left:var(--fej-x,0px);width:var(--fej-w,100%);
  z-index:30;padding-bottom:0;margin-bottom:0}
/* NINCS HÁTTÉR A FŐMENÜ ALATT (founder-döntés 2026-09-29): sem a teljes szélességű sáv, sem a kártya
   saját lapja – görgetés közben csak a főkép látszik mögötte. A sáv egyszerűen nem jelenik meg. */
body.kapszulas header[data-header]::before{display:none}
body.kapszulas .util{opacity:var(--util-o,1);transform:translateY(var(--util-y,0px));will-change:opacity,transform}
:root.menu-zar body.kapszulas .util{pointer-events:none}
/* A kártya EGYETLEN tárgyként húzódik középre: eltolás + vágás. Lapja nincs – mögötte a főkép. */
body.kapszulas .mainnav{transform:translateY(var(--kartya-ty,0px));clip-path:var(--kartya-clip,none);
  background:transparent;box-shadow:none;position:relative;will-change:transform,clip-path}
body.kapszulas .mainnav::before{display:none}   /* a kártya lapja sincs – mögötte a főkép */
body.kapszulas .mainnav.open{clip-path:none}   /* a telefonos panel a kártyán KÍVÜL áll – nyitva a vágás lekerül (2026-10-04) */
/* A ≡-ről nyitott panel (≤1080 px, lent görgetve): a kártya többi gyermeke láthatatlan és érinthetetlen marad (`--menu-o`, `menu-zar`), csak a
   panel él – a kapszula alatt, a `--panel-teto`/`--panel-jobb` helyén (a flyaway.js méri a kapszulából). */
body.kapszulas .mainnav.open ul{opacity:1;pointer-events:auto}
:root.menu-zar body.kapszulas .mainnav.open ul{pointer-events:auto}

body.kapszulas .mainnav>*{opacity:var(--menu-o,1)}
:root.menu-zar body.kapszulas .mainnav>*{pointer-events:none}

/* A KAPSZULA a kártya pillanatnyi téglalapját veszi fel (a méreteket a JS adja). */
.gal-kapszula{position:fixed;z-index:31;display:none;align-items:center;gap:10px;padding:0 14px;color:#fff;
  opacity:var(--kap-o,0);pointer-events:none;overflow:hidden}
body.kapszulas .gal-kapszula{display:flex}
.gal-kapszula.el{pointer-events:auto}
/* A KAPSZULA KÉT GOMBJA EGYFORMA (founder 2026-09-29): 36×36 px, 18 px-es ábra, áttetsző fehér háttér –
   „legyenek áttetszőek, ahogy eddig voltak". A fogható terület a `::before`-szal 44 px.
   FIGYELEM: a `.nezet-ikon` osztályt a LAPI választó is viseli (`--muted` szín, `.ez` aláhúzás, világos
   hover-háttér), és a `.c-vetito .nezet-ikon` fehér felülírása a kapszulára NEM hat – a kapszula a vetítő
   TESTVÉRE, nem gyereke. Ezért kell itt minden érintett szabályt kapszulára szűkítve újramondani. */
.gal-kapszula .kap-menu,.gal-kapszula .kap-nezet .nezet-ikon{
  display:flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;min-height:0;padding:0;
  border:0;border-radius:0;background:rgba(255,255,255,.16);color:#fff;cursor:pointer;position:relative;
  text-decoration:none;transition:background .15s}
.gal-kapszula .kap-menu:hover,.gal-kapszula .kap-nezet .nezet-ikon:hover{background:rgba(255,255,255,.28);color:#fff}
.gal-kapszula .kap-menu svg,.gal-kapszula .kap-nezet .nezet-ikon svg{width:18px;height:18px;display:block}
/* 44 px-es fogható terület a 36 px-es gomb körül */
.gal-kapszula .kap-menu::before,.gal-kapszula .kap-nezet .nezet-ikon::before{content:"";position:absolute;inset:-4px}
/* a lapi választó aktív-aláhúzása a kapszulában nem jelenhet meg (az ikon teendőt mutat, nem állapotot) */
.gal-kapszula .kap-nezet .nezet-ikon.ez::after{display:none}
.gal-kapszula .kap-menu:focus-visible,.gal-kapszula .kap-nezet .nezet-ikon:focus-visible{
  outline:2px solid var(--kiemeles);outline-offset:2px}
.gal-kapszula .kap-old{display:flex;align-items:center;gap:8px;min-height:44px;text-decoration:none;color:#fff;
  flex:0 1 auto;min-width:0;font:600 12.5px/1.2 var(--f-body);letter-spacing:.06em;text-transform:uppercase}
.gal-kapszula .kap-old .nev{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:18ch;opacity:.85}
.gal-kapszula .kap-old:hover .nev{opacity:1}
.gal-kapszula .kap-old .kor{flex:none;width:30px;height:30px;border-radius:var(--r-ctl);background:rgba(255,255,255,.18);
  display:flex;align-items:center;justify-content:center;font-size:18px}
.gal-kapszula .kap-old.jobb{margin-left:auto}
/* CSUPA NAGYBETŰ (founder 2026-10-16, FLYA-286: „Csupa nagy betűvel. Azonos karakterrel, mint most.”): a
   sáv közepén 2026-10-17 óta a mai FŐMENÜPONT neve áll, nem a lap H1-e – a nagybetűsítést a CSS adja, a
   DOM-szöveg kis- és nagybetűs marad (ugyanaz a minta, mint a `h1`-nél). EGY szabály MINDKÉT példányra:
   a `.fej-kapszula` is `.gal-kapszula`, az album pedig a saját példányában is „Galéria” szöveget ír ki. */
.gal-kapszula .kap-cim{position:absolute;left:50%;top:50%;translate:-50% -50%;font:600 20px/1 var(--f-cim);
  text-transform:uppercase;
  white-space:nowrap;transform:translateY(16px) scale(1.35);transform-origin:50% 50%;opacity:0;pointer-events:none;
  transition:opacity .5s ease,transform .5s ease}
.gal-kapszula .kap-cim.fel{opacity:1;transform:none}
/* A NÉZET ugyanúgy úszik fel, mint a cím: csak akkor, amikor a lapon lévő párja a kapszula alá ér
   (founder-lelet 2026-09-29 – eddig a kapszulával együtt, már 0 görgetésnél előjött). */
.gal-kapszula .kap-nezet{display:flex;align-items:center;gap:2px;flex:none;
  opacity:0;transform:translateY(16px) scale(1.35);transform-origin:50% 50%;pointer-events:none;
  /* Amíg nem látszik, HELYET SE foglaljon (founder-kérés 2026-09-29): különben üres rés maradna a jobb
     szélen, és a „következő album ›" nem a szélhez tapadna. A max-width nyílik ki vele együtt, ezért a
     nyíl nem ugrik, hanem átcsúszik a helyére. */
  /* A -10px a kapszula flex-rácsközét oltja ki: egy 0 szélességű elem MÖGÖTT is megmaradna a 10 px-es köz,
     és a „‹ előző album" nem tapadna a bal szélhez (mérve: 24 px rés). A Nézet 2026-09-29 óta az ELSŐ elem,
     ezért a kioltás `margin-right`, nem `margin-left`. */
  max-width:0;margin-right:-10px;overflow:hidden;
  transition:opacity .5s ease,transform .5s ease,max-width .5s ease,margin-right .5s ease}
.gal-kapszula .kap-nezet.fel{opacity:1;transform:none;pointer-events:auto;max-width:36px;margin-right:10px}
.c-nezet{transition:opacity .5s ease}
.c-nezet.fent{opacity:0;pointer-events:none}
@media (max-width:620px){
  .gal-kapszula .kap-old .nev{display:none}   /* a „Menü" szó és a „Nézet:" felirat 2026-09-29 óta nem is létezik */
  /* A név elrejtésével a link 30 px széles maradt (a `.kor` mérete), vagyis a fogható területe 44 px alatt
     volt. A gomb maga marad 30 px-es, csak a LINK doboza nő 44 px-re (founder-kérés 2026-09-29). */
  .gal-kapszula .kap-old{min-width:44px;justify-content:center}
  .gal-kapszula{gap:6px;padding:0 10px}
}
/* A KAPSZULA MINDEN LAPON (2026-10-01, `flyaway.js` → kapszulaFejlec). Az albumon a sáv alatt a besötétített főkép
   áll, itt nincs – ezért a sáv saját hátteret kap: ugyanaz a sötét tónus, amire az album képe 65 %-ban sötétedik,
   áttetszően és elmosva, hogy a tartalom halványan átlátsszon, mint ott a kép. (2026-10-06 óta a háttér a főmenü színéből
   kevert – lent.) */
/* A FŐMENÜ SZÍNE A KAPSZULÁBAN (founder 2026-10-06, `ATADAS-kapszula-design.md`, a hangolóban beállítva): a háttér a lap
   főmenüjének színe 60 %-ban a sötét tónusba keverve, 60 % fedéssel, 2 px elmosással. A `--kap` (szín) és a `--kapi` (felirat)
   a generált `szinek.css`-ből jön (`.fej-kapszula[data-focim=…]`, a JS írja rá a kulcsot); a feliratszínt a TELEPÍTÉS számolja a
   keverék kontrasztjából (fehér, ha ≥ 4,5, különben sötét – ma csak a Kipróbálnám), futásidőben nem. Az itt álló érték a
   tartalék (Főoldal-kék, fehér). A világos módban halványabb felirat (fehér lap fölött) a founder TUDATOS döntése – ne javítsd.
   Az album kapszulája (`.gal-kapszula` `.fej-kapszula` nélkül) ebből semmit nem kap. */
.fej-kapszula{--kap:var(--fcs-fooldal,#2B78CC);--kapi:var(--kap-fooldal-ink,#FFFFFF);
  --kapg:rgba(255,255,255,.16);--kapgh:rgba(255,255,255,.28);--kapk:rgba(255,255,255,.18);
  color:var(--kapi);background:color-mix(in srgb,color-mix(in srgb,var(--kap) 60%,#101518) 60%,transparent);
  -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.fej-kapszula .kap-old{color:var(--kapi);font:300 15px/1.2 var(--f-body);letter-spacing:.25px}
.fej-kapszula .kap-old .kor{background:var(--kapk)}
.fej-kapszula .kap-menu{background:var(--kapg);color:var(--kapi)}
.fej-kapszula .kap-menu:hover{background:var(--kapgh);color:var(--kapi)}
/* A hosszú cím MINDIG középen áll (founder 2026-10-06: „Mindig középen, kisebb maximum”): legfeljebb akkora, amekkora a két
   oldal közül a SZŰKEBB mellett még szabad – a `--cim-max`-ot a JS méri (a nyilak, a nevek és a ≡ között, 8-8 px-es közzel),
   a 46 % / 62 % felső korlát marad. Így semmilyen szélességen nem lóg a gombokra; ami nem fér, három ponttal végződik. */
/* A CÍM DŐLT (founder 2026-10-06, menet közbeni kiegészítés): a fejléc menüpontjaihoz hasonlóan a böngésző dönti meg (`font-synthesis:style`,
   új betűfájl nélkül); a szomszéd lapok neve álló marad. A 4-4 px oldalpárna az utolsó betű kidőlő tetejét védi a vágástól. */
.fej-kapszula .kap-cim{font:italic 400 24px/1 var(--f-cim);font-synthesis:style;letter-spacing:1px;padding:0 4px;max-width:min(46%,var(--cim-max,100%));overflow:hidden;text-overflow:ellipsis}
.fej-kapszula .kap-old .nev{max-width:14ch;opacity:.6}
.fej-kapszula .kap-old:hover .nev{opacity:1}
@media (max-width:620px){ .fej-kapszula .kap-cim{max-width:min(62%,var(--cim-max,100%));font-size:21px} }
/* ≡ Menü: a lap átmenetileg úgy viselkedik, mintha a görgetés 0 lenne */
:root.menu-nyit body.kapszulas .util{opacity:1;transform:none;pointer-events:auto;transition:opacity .35s ease}
:root.menu-nyit body.kapszulas .mainnav{transform:none;clip-path:none;transition:transform .35s ease}
/* KIVÉTEL: a ≡ MENÜ-vel VISSZANYITOTT menü alatt a kártya lapja visszajön. A founder kérése („ne legyen
   mögötte semmi”) a GÖRGETÉSI effektre szólt; ez az állapot nem az effekt része, és lap nélkül a sötét
   menüszöveg a főképre esne. A teljes szélességű sáv itt sem jön vissza – csak a kártya maga. */
:root.menu-nyit body.kapszulas .mainnav::before{content:"";display:block;position:absolute;inset:0;
  background:var(--surface);box-shadow:var(--shadow);border-radius:inherit;z-index:-1}
:root.menu-nyit body.kapszulas .mainnav>*{opacity:1;pointer-events:auto;transition:opacity .35s ease}
:root.menu-nyit .gal-kapszula{opacity:0;pointer-events:none}

/* A vetítő a KAPSZULA tetejéhez ragad, és a tartalom FÖLÖTT van – a `clip-path` miatt csak a látható
   része takar, így a ráúszó tartalom sosem gördül a kapszulára. */
body.kapszulas .c-vetito{top:var(--kap-y,0px);z-index:20}
body.kapszulas .c-vetito .v-nyil,body.kapszulas .c-vetito .v-szam{opacity:var(--vez-o,1)}
body.kapszulas .c-vetito.csukva .v-nyil,body.kapszulas .c-vetito.csukva .v-szam{opacity:0;pointer-events:none}
@media (prefers-reduced-motion:reduce){
  body.kapszulas .util,body.kapszulas .mainnav,body.kapszulas .mainnav::before,body.kapszulas .mainnav>*,
  .gal-kapszula,.gal-kapszula .kap-cim{transition:opacity .2s ease!important}
}

/* ÉRINTŐKÉPERNYŐN a galéria képei mozgás nélkül, azonnal láthatók (founder-döntés 2026-09-29).
   Az indok a JS-ben, az `ERINTES` konstansnál van kifejtve: iOS Safariban a lendületi görgetés alatt a
   görgetéshez kötött nagyítás szakaszosan fut, a `loading="lazy"` + 0,6 s-os beúszás pedig gyors
   görgetésnél üres, majd felvillanó képeket ad. Asztalon mindkét hatás marad. */
@media (hover:none) and (pointer:coarse){
  .gal-album img,.c-kepek .kepkeret img{transform:none!important;scale:none!important;opacity:1!important;transition:none!important}
}

/* ═══ A FŐOLDAL RÁCSA – 2 nagy · 4 kisebb · 2 fél sor (founder 2026-10-03, képpel; előtte „F · Nagy kettő”) ═══
   NYOLC HELY, a rend a `kozos/racs.mjs` táblázatában: 1–2 nagy (2 oszlop × 2 sor) · 3–6 a NÉGYES sor (`m-negyes`) ·
   7–8 fél sor (`m-szeles`, 2×1); a csempe váza 2026-10-03 óta mindhárom formán ugyanaz (lent, `.fcs`). Minden sor a
   SAJÁT kitöltöttségéhez zár (`--db`), ezért üres hely sosem látszik – a sor egyszerűen összezár.
   SZÍN: a csempe a főcím kulcsából kapja (`data-focim` → a generált `szinek.css` adja a `--sz`/`--szi`
   változót). A szerkesztő az adminból állítja; a lenti `--sz` csak TARTALÉK, ha a generált fájl hiányzik.
   FELIRAT SOSEM A FOTÓN (Kinga 2-G), és a képek sarka nem lekerekített (2-F) – ezért külön címsáv. */
/* KINÉZET – a terv (`flyaway-tervek/fooldal-f-terv.html`) számai, founder-döntés 2026-10-01: szögletes csempe,
   árnyék nélkül; Oxanium 800 cím (2026-10-01 óta); a bejárat-sor VILÁGOS cella SÖTÉT tintával (a terv fehér felirata a
   világos cellán AA alatt volt). EGY admin-szín (`--sz`) főcímenként – a két árnyalat ebből SZÁRMAZIK:
   `--k` a bejárat-cella (55% a fehérhez); a csempe üres része maga a főcím színe (2026-10-01 óta, a `--h` megszűnt). sRGB-keverés, mert a
   kontrasztot a `kozos/szin.mjs` is sRGB-ben számolja – a telepítés ugyanezt a keverést ellenőrzi. */
.racs{display:grid;gap:var(--koz);margin-top:var(--koz);--R:200px;container-type:inline-size}
.racs .sor{display:grid;gap:var(--koz);grid-template-columns:repeat(var(--db,1),minmax(0,1fr))}
/* ARÁNYOS SORMAGASSÁG (founder 2026-10-03): 1000 px fölött a `--R` a rács szélességéből számolódik, a 2026-10-03 előtti arány
   megtartásával (1280 px-en egy oszlop 276 px, --R 200 → 0,725): szélesebb lapon a csempe szélesebb ÉS magasabb. 1000 alatt
   marad a 200 (640 alatt 150) és a keskeny szabályok. */
@media (min-width:1001px){ .racs .sor{--R:calc((100cqi - 3 * var(--koz)) / 4 * 0.725)} }
.racs .sor.nagy{grid-auto-rows:calc(2 * var(--R) + var(--koz))}
.racs .sor.szeles,.racs .sor.negyes{grid-auto-rows:auto}   /* a sor a legmagasabb csempéjéhez (1–2 alcím-bejárat) – a többi hozzányúlik */

/* A CSEMPE VÁZA (founder 2026-10-03: „a kép töltse ki a teljes csempét. A tovább gomb mellé lentre kerüljön a cím … és felett legyenek az alcímek”;
   előtte a négyes és a fél soron „fotó balra, cím jobbra”). MINDHÁROM FORMÁN ugyanaz, három sorban: (1) a KÉP a csempe teljes szélességében –
   legalább `--R` magas, és a sor legmagasabb csempéjéig NYÚLIK (founder 2026-10-03 javítása: „Ha nincsenek több alcím, akkor ne legyen
   szélesebb a főcím sor, hanem a kép legyen nagyobb” – addig egy üres, színes sor nyúlt); (2) az ALCÍM-BEJÁRATOK, csak ha vannak (Klubélet 2,
   Ügyintézés 1), közvetlenül a sáv fölött; (3) LEGALUL a SÁV: balra a cím + szlogen a főcím színén, jobbra a „Tovább” a világos cellán – minden
   csempén pontosan egy Tovább. Így a sorban a képek teteje és a sávok alja egy vonalban áll, üres színes sáv nélkül. Felirat sosem a fotón (Kinga 2-G). A CSEMPE ÜRES RÉSZE A SAJÁT SZÍNÉVEL TELIK (founder 2026-10-01). */
.fcs{--sz:var(--sky);--szi:#fff;--k:color-mix(in srgb,var(--sz) 55%,#fff);--cim-w:800;--cim-max:34px;
  position:relative;display:grid;min-width:0;min-height:0;overflow:hidden;border-radius:0;background:var(--sz);container-type:inline-size;
  grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(var(--R),1fr) auto auto}
.m-nagy{grid-template-rows:minmax(0,1fr) auto auto}
.fcs .fo{display:contents;text-decoration:none;color:inherit}
/* `contain:size`: a kép SAJÁT magassága nem számít a sor méretébe – különben az `1fr` sor `auto` magasságú sorban a kép természetes magasságát
   venné fel (mérve: 326 px-es négyzet, 920 px-es fél sor), és a csempe elnyúlna. Így a sor a legtöbb bejáratú csempéhez igazodik, a kép a többin nyúlik. */
.fcs .kep{grid-row:1;min-width:0;min-height:0;overflow:hidden;background:var(--surface-2);contain:size}
.fcs .kep.ures{background:transparent}   /* kép nélkül a helye a csempe saját színe */
.fcs .kep img{width:100%;height:100%;object-fit:cover;display:block}
/* A PARTNER / GYÁRTÓ csempéjén a kép a LOGÓ: levágás nélkül, a lap felületén, a témához illő változattal (a Partnereink kártya két-képes szabálya) */
.fcs .kep.logo{display:grid;grid-template:minmax(0,1fr)/minmax(0,1fr);padding:clamp(14px,8cqi,40px);background:var(--surface)}
.fcs .kep.logo img{object-fit:contain}
.fcs .kep.logo .sot{display:none}
.fcs .kep.logo img.inverz{filter:invert(1) hue-rotate(180deg)}
:root[data-theme="dark"] .fcs .kep.logo .vil{display:none}
:root[data-theme="dark"] .fcs .kep.logo .sot{display:block}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .fcs .kep.logo .vil{display:none} :root:not([data-theme="light"]) .fcs .kep.logo .sot{display:block} }
.fcs .bej{grid-row:2;display:grid;min-width:0}
/* A SÁV MAGA A LINK (founder 2026-10-04: „vedd le a tovább pontot … ha a sávra kattint, akkor menjen át az aloldalra”): a cím + szlogen a főcím
   színén, a sáv teljes szélességében; Tovább cella nincs. Rámutatáskor (a sávon VAGY a képen – mindkettő ugyanoda visz) és billentyűs fókuszban a sáv
   jobb szélén egy → jelenik meg, abszolút helyen, hogy a címet ne tolja el (a `.cim` jobb párnája 44 px – a nyíl fenntartott helye). Az alcím-bejáratok
   fölött nem látszik (azok máshova visznek). Más visszajelzés nincs: a sáv színe nem változik, a felirat nincs aláhúzva. Link nélküli csempén (partner
   link nélkül) a sáv `span`, nyíl nélkül. */
.fcs .sav{grid-row:3;display:grid;grid-template-columns:minmax(0,1fr);min-width:0;position:relative;text-decoration:none;color:var(--szi)}
.fcs .cim{background:var(--sz);color:var(--szi);padding:12px 44px 12px 16px;min-width:0;display:flex;flex-direction:column;gap:4px;justify-content:center}
/* A CÍM a sáv szabad szélességéhez mérve (a cím 16 + 44 px-es párnája), hogy a leghosszabb mai szó („SZOLGÁLTATÁS”, 7,36 em az Oxanium 800
   nagybetűjével, mérve) egy sorban kiférjen – egy szó sem tör (a `50a80ee` szabálya); a nagy csempén legfeljebb 34, a többin 26 px. */
.fcs .cim :is(h2,h3){font:var(--cim-w) clamp(14px,calc((100cqi - 60px) / 7.4),var(--cim-max))/.95 var(--f-racs);text-transform:uppercase;letter-spacing:0;margin:0;overflow-wrap:anywhere}
.m-negyes,.m-szeles{--cim-max:26px}
/* A KÉPZÉSEK RÁCSA (founder 2026-10-05): a csempe a főoldalé, a cím félkövér (700) és legfeljebb 20 px – „eggyel kisebb … a betű a 20 px legyen”;
   a különbség CSAK ez a két változó, a főoldal csempéi maradnak 800 / 26 (34) px. */
.racs.kepz .fcs{--cim-w:700;--cim-max:20px}
/* A FŐOLDAL ALSÓ BLOKKJAI EGY FOKKAL KISEBBEK (Kinga 2026-10-19, 1.4: „…egyel kisebbre venném, hogy a hangsúly ne vetekedjen a
   főmozaikokkal”; founder 2026-11-01, GitHub #497: a terv B változata, a Cikkek címe marad). CSAK a főoldalon – ugyanezek a dobozok a Klubtér,
   a Csapatunk és a Galéria-albumok lapján változatlanok. A 7–8. hely (fél soros csempe) a négyes sor magasságának 0,42-szerese, a címe
   legfeljebb 20 px; a „Következő túráink” kártyája legalább 180 px; a Következő túráink és a Partnereink címe 26 px (a Cikkeké marad 38);
   a partnerkártya marad öt egy sorban, de a logó doboza 3:2 helyett 2:1. */
@media (min-width:1001px){ body[data-oldal="fooldal"] .racs .sor.szeles{--R:calc((100cqi - 3 * var(--koz)) / 4 * 0.42)} }
body[data-oldal="fooldal"] .m-szeles{--cim-max:20px}
body[data-oldal="fooldal"] .next-card{min-height:180px}
body[data-oldal="fooldal"] [data-kovetkezo] .section-head h2,body[data-oldal="fooldal"] main>section:has(.pk-racs) .section-head h2{font-size:26px}
body[data-oldal="fooldal"] .pk .logo{--pk-px:14px;padding:10px var(--pk-px);aspect-ratio:2/1}
.fcs .sav .nyil{position:absolute;right:16px;top:50%;transform:translateY(-50%);opacity:0;transition:opacity .15s;font:700 12px/1.2 var(--f-body);color:var(--szi)}
.fcs .sav:hover .nyil,.fcs .fo:hover ~ .sav .nyil,.fcs .sav:focus-visible .nyil{opacity:1}
@media (prefers-reduced-motion:reduce){ .fcs .sav .nyil{transition:none} }
.fcs .sav:focus-visible{outline:2.5px solid var(--kiemeles);outline-offset:-3px}
.fcs .cim p{margin:0;font:600 11px/1.35 var(--f-body);letter-spacing:.1em;text-transform:uppercase;opacity:.95;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}   /* a szlogen egy sor + … */
.fcs .cim .pill{align-self:flex-start}
/* A felirat RÖGZÍTETT sötét tinta (#13252E), nem `--ink`: az sötét módban világosra váltana, a cella viszont világos marad. */
.fcs .bej a{display:flex;align-items:center;gap:10px;text-decoration:none;min-height:40px;padding:8px 14px;
  background:var(--k);color:#13252E;border-top:1px solid rgba(255,255,255,.45);border-left:1px solid rgba(255,255,255,.45);
  font:700 12px/1.2 var(--f-body);letter-spacing:.07em;text-transform:uppercase}
.fcs .bej a:hover{filter:brightness(1.04)}
.fcs .bej a:focus-visible{outline:2.5px solid var(--kiemeles);outline-offset:-3px}
.fcs .bej .nyil{margin-left:auto;flex:none}
/* a témaoldal alcím-szűrője: a Hírek chipjei, osztállyal (nem stílus-attribútummal) – az aktív a kiemelés színű keretet kapja */
.alcimszuro{margin:-4px 0 16px}
.alcimszuro .chip[aria-pressed="false"]{opacity:1;text-decoration:none}
.alcimszuro .chip[aria-pressed="true"]{border-color:var(--kiemeles);box-shadow:inset 0 0 0 1px var(--kiemeles)}
.ncard[hidden]{display:none}
.fcs .fo:focus-visible{outline:none}
.fcs:focus-within{outline:2.5px solid var(--kiemeles);outline-offset:2px}
/* 1000 px alatt az érintési cél 44 px – a bejárat és a témaoldal alcím-chipje is (founder 2026-10-01). A vágás
   (hány bejárat) NEM itt van, hanem a közös szabályban (kozos/bejaratok.mjs), minden szélességen ugyanannyi. */
@media (max-width:1000px){ .fcs .bej a{min-height:44px} .alcimszuro .chip{min-height:44px} }

/* KESKENY: 1000 px alatt a négyes sor két oszlop, 640 alatt egy – a nagy csempék elöl maradnak (a sorrend a hely).
   A NAGY csempe képe itt rögzített magas: a sor `auto` magasságán az `1fr` sor a kép SAJÁT magasságát vette fel
   (mérve 1000 px-en: 884 px-es kép, 992 px-es csempe – 2026-10-03 előtt is így volt), ezért a szélességből számolt
   magasságot kap, a 640 alatti 170 px-ig ereszkedve. */
@media (max-width:1000px){
  .racs .sor.negyes{--db:2!important}
  .racs .sor.nagy,.racs .sor.szeles{--db:1!important;grid-auto-rows:auto}
  .m-nagy{grid-template-rows:minmax(clamp(170px,42vw,400px),1fr) auto auto}
}
@media (max-width:640px){
  .racs{--R:150px}
  .racs .sor.negyes{--db:1!important}
  /* egy oszlopban minden csempe képe 170 px (mérve élesben 2026-10-01: a 150 px-es sor a 170 px-es képnél alacsonyabb volt, és a csempe
     levágta a címsávot); a cím 22 px, mint eddig telefonon */
  .fcs,.m-nagy{grid-template-rows:170px auto auto}
  .fcs{--cim-max:22px}
  .fcs .cim :is(h2,h3){font-size:clamp(14px,calc((100cqi - 144px) / 7.4),var(--cim-max))}
}
/* A FŐMENÜ-NÉV KIEMELT ELEJE (founder 2026-10-06, „PAPÍRrepülő”; FlyAway.nagyKiemel írja a <b>-t): a menüben, a panelen és a kapszulában 800 (a pont 600),
   a Főoldal csempéjén – ahol a cím már 800, az Oxanium legvastagabb foka – a cím többi része 600 lesz (founder-döntés). */
/* A KAPSZULA KÖZEPE IS EZT A JELÖLÉST KAPJA (FLYA-286, 2026-10-17): ott 2026-10-17 óta a főmenüpont neve áll,
   és a founder kérése szerint „ugyanúgy néz ki, mint a menüsorban” – a `.kap-cim` ezért ugyanebbe a két
   szabályba került be, nem új értékkel (a sáv két szélén álló `.nev` 300-ról, a cím 400-ról lép 800-ra). */
.mainnav li a b,.gal-kapszula .nev b,.gal-kapszula .kap-cim b{font-weight:800}
.mainnav li a .nk,.gal-kapszula .nev .nk,.gal-kapszula .kap-cim .nk{font-size:calc(1em - 2px)}   /* a „repülő” 2 px-szel kisebb – a 800/600 különbség a kis menübetűn nem látszott (founder 2026-10-06); a Főoldal-csempén nem */
.fcs .cim :is(h2,h3):has(> b){font-weight:600}.fcs .cim :is(h2,h3) > b{font-weight:800}

/* ═════════ A HÁROM FIX KIVÁGÁS A KÁRTYA-HELYEKEN (founder-döntés 2026-10-17/18, FLYA-320, GitHub #390) ═════════
   A szabály a `kozos/kivagas.mjs`-ben áll (ikerpár: `flyaway.js` `<kivagas3>`), itt CSAK a mértan.
   A kép minden Kártya-helyen 16:10-es dobozban áll, `object-fit:cover`-rel – az tehát a kép COVER-kivágását
   mutatja. A SAJÁT téglalapba egy affin lépéssel visszük át: a bal felső sarokból nagyítunk (`--ks`), majd
   tolunk (`--ktx`/`--kty`, a doboz szélességének/magasságának százalékában). A két érték a rajzolóban
   számolódik, mert a kép aránya ott ismert (`foto.w`/`foto.h`) – a CSS-ben nem lenne honnan.
   MIÉRT `clip-path`: a nagyított kép a SAJÁT dobozán kívül is látszana, ha a szülő nem vág (a csempén épp
   ez a helyzet: ott a kép KISEBB a helynél, és a maradékot a kép elmosott széle tölti). A `clip-path` a
   transzformáció ELŐTTI (helyi) térben vág, ezért a vágott terület a nagyítás UTÁN a nagyítás arányában
   nő: `inset(0)` mellett a nagyított kép `--ks`-szeres, ELTOLT dobozt fest. Ezért a rajzoló MINDEN
   Kártya-helyen a kivágás helyét adja meg (`--kci`) – a csempén (FLYA-333) és a kártyán is (FLYA-337):
   így a festett terület pontosan a 16:10-es doboz lesz, nagyítástól és eltolástól függetlenül.
   A KÁRTYÁN 2026-10-18-ig `inset(0)` állt, és a szülő `overflow`-jára hagyatkozott. Az vágta ugyan a
   kilógást, de a MÁSIK oldalon üres sávot hagyott: a nagyított-eltolt doboz a kivágást a helyére viszi, a
   festett terület viszont vele együtt tolódik, és ahonnan elmozdult, oda az `object-fit:cover` nem fest
   (mérve 2026-10-18: a szintetikus `kv-teglalap` hírkártyáján a 179 px-es képmező alsó 5,99 px-e).
   MIÉRT KÉT OSZTÁLYNÉVVEL (`img.kiv3.kiv3`): a kártya-képek szabályai (`.fcs .kep img`,
   `.ncard .thumb img`, `.cikk-kartya .ckep img`) 0,2,1 súlyúak, és a fájlban ELŐBB állnak. A
   `transform`/`clip-path` ma egyikben sem szerepel, tehát egy puszta `.kiv3` is elég LENNE – a kettős
   osztálynév azért van ott, hogy egy későbbi `transform` (hover-emelés, animáció) ne vegye el csendben a
   kivágást: akkor ez a szabály nyer, és a hiba a hover-szabály írásakor derül ki, nem a kirajzolt képen. */
img.kiv3.kiv3{transform:translate(var(--ktx,0),var(--kty,0)) scale(var(--ks,1));transform-origin:0 0;clip-path:inset(var(--kci,0))}
/* ═══════ A CSEMPE KÉPE KITÖLTI A KÉPMEZŐT – LEGFELJEBB ±15 % TORZÍTÁSSAL (FLYA-383) ═══════
   Founder-döntés 2026-10-18, a FLYA-348 élő eredményéről: „Nem tetszik a csempékre a képkirajzolás,
   töltsük ki hasonlóan a helyet, mint a Repertoár kirajzolásnál csináltuk. Nem baj, ha torzul a kép egy
   kicsit.” A jóváhagyott előnézet `flyaway-tervek/csempe-kitoltes-terv.html` 4. változata, „Javaslat”
   nézet, ±15 % – A VISELKEDÉS MÉRCÉJE AZ A LAP.
   EZ VÁLTJA a FLYA-348 ELMOSOTT HÁTTÉRRÉTEGÉT (D3): a mező mindig tele van, a réteg nem látszana. A
   csempe FŐCÍM-SZÍNE (`--sz`) TARTALÉK marad a képmező hátterén – amíg a kép tölt, és kép nélkül.

   A MÉRTAN ITT ÁLL, NEM A RAJZOLÓBAN, mert a képmező aránya a lap SZÉLESSÉGÉVEL változik (1280 / 768 /
   390 px-en más), és az előrenderelt lapnak JS nélkül is jól kell rajzolnia (SEO-03). A rajzoló HAT
   SZÁMOT ad (`kozos/kivagas.mjs` → `csempeStilus`): a Kártya-téglalap a kép hányadában
   (`--kcx/--kcy/--kcw/--kch`), a téglalap KÉPPONT-aránya (`--kka`) és a HATÁR (`--kl` = 1 + L, a
   `CSEMPE_TORZITAS`-ból). Beírt 1,15 és 1,6 itt NEM állhat: a szám két helyen élne, és egy módosítás
   csendben féloldalas lenne. A `--kka` azért a MÉRT arány és nem a 16:10, mert a mentett téglalap aránya
   ±1 %-on belül a Kártyáé (`K_TUR`) – beírt 1,6-tal a torzítás a határ fölé csúszhatna.

   A KÁRTYA-KERET a mező közepén, `max()`-szal – ez a három esetet OSZTÁS NÉLKÜL adja:
     · `--kkw = max(100cqw, 100cqh · kA/(1+L))`, `--kkh = max(100cqh, 100cqw / (kA·(1+L)))`;
     · ha a mező aránya a `[kA/(1+L), kA·(1+L)]` sávba esik, a keret PONTOSAN a mező, tehát a Kártya
       EGÉSZBEN látszik, legfeljebb `1+L`-szeresen torzítva, vágás nélkül;
     · a sávon kívül a keret EGY irányban nagyobb a mezőnél, a torzítás pontosan `1+L`, a többletet a
       `.kep` `overflow:hidden`-je vágja le – és mert a keret KÖZÉPEN áll, a vágás a két oldalon egyenlő.
   A KÉP a kereten belül úgy áll, hogy a KÁRTYA-TÉGLALAP töltse ki: a doboza `--kkw/--kcw` × `--kkh/--kch`,
   a bal felső sarka `−c.x`, `−c.y` arányban eltolva, `object-fit:fill` – a kép a SAJÁT dobozát tölti ki,
   a vágást a mező adja. Mérve 2026-10-19: 36 szintetikus esetben (2 képarány × 3 téglalap × 6 mezőalak) a
   kirajzolt kép téglalapja 0 eltéréssel egyezik a `csempeForras()` számolásával (±0,6 px).

   MIÉRT `position:absolute`, és nem a FLYA-333 folyásban álló doboza: a mező mérete a RÁCSBÓL definit
   (`container-type:size`), a kép pedig ebbe a mezőbe pozicionált, ezért a kép BETÖLTÉSE SEM mozdítja a
   lapot – nincs CLS, ugyanaz a mérce, mint a `min(100cqw,160cqh)`-nál. A `.kep` `position:relative`-ja
   ezért 2026-10-19 óta NEM a negatív réteg befoglaló blokkja, hanem EZÉ a képé; az `isolation:isolate`
   viszont a réteggel együtt kikerült (a `z-index:-1`-et tartotta a csempe mögé szivárgástól).
   MIÉRT `transform:none;clip-path:none`: az `img.kiv3.kiv3` szabály a KÁRTYA-helyek affin lépését adja
   (`--ks`/`--ktx`/`--kty`/`--kci`) – a csempén az a lépés nem kell, és a `clip-path:inset(0)` alapérték
   csak egy felesleges vágás a kép saját dobozára. */
.fcs .kep:has(>img.kiv3.egeszben){display:grid;background:var(--sz);container-type:size;position:relative}
.fcs .kep img.kiv3.egeszben.tolt{--kkw:max(100cqw,100cqh * var(--kka) / var(--kl));--kkh:max(100cqh,100cqw / (var(--kka) * var(--kl)));position:absolute;width:calc(var(--kkw) / var(--kcw));height:calc(var(--kkh) / var(--kch));left:calc((100cqw - var(--kkw)) / 2 - var(--kcx) * var(--kkw) / var(--kcw));top:calc((100cqh - var(--kkh)) / 2 - var(--kcy) * var(--kkh) / var(--kch));max-width:none;max-height:none;margin:0;object-fit:fill;transform:none;clip-path:none}
/* TARTALÉK, ha a kép aránya NEM MÉRHETŐ (nincs `kepmeretek`-sora – ma 0 ilyen csempekép; a telepítés
   nevesítve figyelmeztet): a Kártya a FLYA-333 módján, egészben, kicsinyítve, középre áll, és a maradékot
   a csempe színe tölti. Ez nem elegancia, hanem kapu: a hat szám nélkül a `calc(… / var(--kcw))` érvénytelen
   lenne számított-érték időben, a `width` az initial `auto`-ra esne, és a kép az INTRINSIC méretével
   rajzolódna. A `:not(.tolt)` ezért van: a két alak SOSEM keveredhet. */
.fcs .kep img.kiv3.egeszben:not(.tolt){width:min(100cqw,160cqh);height:auto;max-width:100%;max-height:100%;aspect-ratio:16/10;margin:auto;object-fit:cover}

/* ═══════ AZ ADMIN ELŐNÉZETE CSAK A LAP SAJÁT TARTALMÁT MUTATJA ═══════
   Founder élő elfogadás, 2026-10-18 (a FLYA-358 javító körének 6. pontja): „Minden előnézetről kerüljön
   le, ami nem a lap saját tartalma: a Vario, a menü, a fejlesztői (teszt) sáv, a lábléc és a morzsa. A
   webes ÉS a telefonos nézetről is.” A founder döntése szerint MINDEN admin-előnézetre szól (túra, cikk,
   képzés, oldal), ezért a kapu a KÖZÖS `?elonezet=1` – a jelölést a `flyaway.js` teszi a `<html>`-re.

   MÉRVE a javítás ELŐTT (homokozó, a Monaco túralapja a miniatűrben, 1400×1000): fejléc **120 px**,
   lábléc **260 px**, prototípus-sáv **34 px**, Varió és széltérkép a lap TELJES magasságában (6736 px),
   morzsa a fejléc sávjában **21 px** – a szerkesztő a 390 px-es nézetben a lap tartalma ELŐTT négy
   idegen sávon görgetett végig.

   AMI MARAD (a founder kimondta): a „Jössz velünk?” záró sáv (`.cta-sav`) és a lebegő jelentkezés-kapszula
   (`.cta-bar`). A kapszula rejtését ma a Varió `body.muszer-also` osztálya adja – ahhoz NEM nyúlunk,
   tehát a viselkedése betűre a régi marad.
   AMI SZINTÉN MARAD: az „Előnézet – ezt a látogatók még nem látják.” sáv. A founder felsorolásában NEM
   szerepel, és a KÜLÖN LAPON megnyitott előnézetnek ez az egyetlen jelzése, hogy nem az élő oldalt
   nézi – ezért nem vettük el. (A telefonos nézetben eddig RÁCSÚSZOTT a felső sávra; az átfedés magától
   megszűnik, mert a fejléc lekerül.) */
html.fa-elonezet header[data-header],
html.fa-elonezet [data-footer],
html.fa-elonezet #proto-sav,
html.fa-elonezet #muszer,
html.fa-elonezet #szelterkep{display:none!important}
/* A `proto.js` a saját sávja alá `body{padding-top:var(--proto-h)!important}`-ot ír – a sáv nélkül ez
   34 px üres helyet hagyna a lap tetején, és a miniatűr magasságába is beleszámítana. */
html.fa-elonezet body{padding-top:0!important}
/* A morzsa a fejléc sávjába költözik (`morzsaFel()`), tehát a fejléccel együtt lekerül. A `main`-ben
   maradt példányt a 106. sor szabálya eddig is rejtette – ez a sor csak kimondja, hogy az előnézeten
   SEM jöhet elő, ha egy lap mégis ott hagyná. */
html.fa-elonezet main .crumbs,
html.fa-elonezet .morzsa-hely{display:none!important}
/* …ÉS A VARIÓ HELYE IS LEKERÜL. A `muszer.js` `hud()`-ja FELTÉTEL NÉLKÜL felteszi a `body.muszer-also`
   osztályt, az pedig 900 px ALATT `padding-bottom:56px`-et ad a lapnak – ez az alsó Varió-sávnak
   fenntartott hely. A sávot elrejtettük, a helyét viszont nem: MÉRVE a homokozóban (Monaco, előnézet,
   390×844) `padding-bottom: 56px` ÚGY, hogy a Varió `muszerLatszik: false` – 56 px üres sáv a telefonos
   előnézet alján, ami nem a lap tartalma, és a miniatűr magasságába is beleszámít (a lap maga küldi a
   szülőnek). 1280 px-en a 900 px-es média-lekérdezés már 0-ra viszi, tehát a hiba telefon-specifikus.
   A `.cta-bar` rejtését NEM vesszük vissza: azt a founder 2026-09-22-i döntése adja (ütközésnél a
   CTA-sáv tűnik el), és a javító kör 6. pontja sem kérte. */
html.fa-elonezet body.muszer-also{padding-bottom:0!important}
