/*
Theme Name: HSZK – Hallgatói Szolgáltatási Központ
Theme URI: https://hszk.pte.hu
Author: PTE HSZK HSZF
Description: A PTE Hallgatói Szolgáltatási Központ egyedi WordPress témája — a navy + zsálya-zöld geometrikus arculattal, a HSZK közösség-motívummal, kétnyelvűségre (HU/EN, i18n) előkészítve. Egyedi típusokkal: Kollégiumok, Hírek/Közlemények, Pályázatok, Szakkollégiumok, Események (kult1367).
Version: 1.110.23
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: hszk
Tags: education, custom-post-types, two-columns, right-sidebar, custom-menu, featured-images, translation-ready
*/

/* =====================================================================
   HSZK design system
   (navy #232152 + sage green #6FBFA0, the community motif, Bricolage/Hanken).
   ===================================================================== */

:root{
  --acc:#6FBFA0; --acc-ink:#232152;
  --acc-deep: color-mix(in srgb, var(--acc) 62%, #15132e);
  --acc-soft: color-mix(in srgb, var(--acc) 15%, #fff);
  --acc-glow: color-mix(in srgb, var(--acc) 22%, transparent);
  /* Secondary palette — single source of truth for the accent hues reused by
     the panel (.field-*), duotone (.duo--*) and GYM-scheme (.gymsec) systems. */
  --lime:#DAE100; --amber:#e9b878; --purple:#4a1e9e; --purple-lite:#7b3ddc; --gold:#b9892f;
  /* Brand-scheme contract: a block wrapped in .scheme-hszk/.scheme-gym/.scheme-kk
     recolours these. Defaults = HSZK. --sc-accent = highlight; --sc-band = the
     big feature/band bg; --sc-kicker = eyebrow/label accent; --sc-soft = tint. */
  --sc-accent:var(--acc); --sc-accent-ink:var(--navy);
  --sc-band:var(--navy); --sc-band-ink:#fff;
  --sc-kicker:var(--acc-deep); --sc-soft:var(--acc-soft);
  --fdisp:'Bricolage Grotesque', sans-serif;
  --fbody:'Hanken Grotesk', system-ui, sans-serif;
  --navy:#232152;
  --hair: color-mix(in srgb, var(--navy) 14%, #fff);
  --hair-strong: color-mix(in srgb, var(--navy) 26%, #fff);
  --ease: cubic-bezier(.22,.8,.2,1);
  --pale:#f5f5fb;
  --slate:#62617a;
}
*{box-sizing:border-box}
/* Respect the user's reduced-motion preference (WCAG 2.3.3): near-instant
   transitions/animations, no smooth scroll. */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
}
/* Atmospheric grain: a fixed fractal-noise overlay for subtle depth/texture. */
body::after{content:'';position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:var(--grain-opacity,.03);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, [tabindex]:focus-visible{outline:2.5px solid var(--acc-deep);outline-offset:2px;border-radius:4px}
.skiplink{position:absolute;left:12px;top:-60px;z-index:200;background:var(--navy);color:#fff;padding:10px 18px;border-radius:0 0 10px 10px;font-weight:700;text-decoration:none;transition:top .15s}
.skiplink:focus{top:0}
html,body{margin:0;padding:0}
body{font-family:var(--fbody);background:#fff;color:#232152;-webkit-font-smoothing:antialiased}
img{max-width:100%}
/* Links carry no underline by default (cards, nav, chrome); body content keeps it. */
a{text-decoration:none}
/* DIAG6: a .app zoom ideiglenesen kivéve — a zoom stacking-kontextust hoz létre, ami
   iOS-en a fixed/sticky leszármazottak safe-area kezelését elronthatja. (--z sehol nincs
   beállítva, tehát a zoom eddig is 1 volt.) */
.app{ }
.wrap{max-width:1180px;margin:0 auto;padding:0 clamp(20px,4vw,44px)}
.disp{font-family:var(--fdisp);font-weight:800;letter-spacing:-.02em}
.hero-title{font-size:clamp(34px,4.6vw,52px);line-height:1.0;font-weight:800}
.hero-bold-title{font-size:clamp(38px,5vw,66px);line-height:1.0;font-weight:800;margin:0 0 4px}
.section-title{font-size:clamp(23px,2.7vw,30px);font-weight:800;color:var(--navy);letter-spacing:-.02em}
.page-title{font-size:clamp(34px,5vw,58px);font-weight:800;color:var(--navy);margin:0;letter-spacing:-.025em;line-height:1.0}

/* editorial atoms */
.kicker{display:inline-flex;align-items:center;gap:10px;font-family:var(--fbody);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--acc-deep)}
.kicker::before{content:'';width:22px;height:2px;background:var(--acc)}
.kicker.on-dark{color:var(--acc)}
.rule{height:1px;background:var(--hair);border:0;margin:0}
.masthead-h1{font-family:var(--fdisp);font-weight:800;letter-spacing:-.035em;line-height:.92;font-size:clamp(46px,9vw,128px);color:var(--navy);margin:0}
.idx-num{font-family:var(--fdisp);font-weight:800;font-size:clamp(40px,5vw,64px);line-height:.8;letter-spacing:-.03em;color:transparent;-webkit-text-stroke:1.6px var(--acc-deep)}
.editlink{display:inline-flex;align-items:center;gap:8px;font-family:var(--fbody);font-weight:700;font-size:15px;color:var(--navy);text-decoration:none;background:none;border:0;cursor:pointer;padding:0}
.editlink .ln{background-image:linear-gradient(var(--acc),var(--acc));background-size:0% 2px;background-position:0 100%;background-repeat:no-repeat;transition:background-size .4s var(--ease);padding-bottom:2px}
.editlink:hover .ln{background-size:100% 2px}
.editlink svg{transition:transform .4s var(--ease)}
.editlink:hover svg{transform:translateX(5px)}

.masthead-sub{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap}
.feature-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:16px;align-items:stretch}
.feature-wide{display:grid;grid-template-columns:1fr 1.12fr;gap:16px;align-items:stretch}
.aud-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch}
.news-feat{display:grid;grid-template-columns:1.05fr 1fr;align-items:stretch}
.news-feat > div:last-child{padding:clamp(26px,3vw,38px);display:flex;flex-direction:column;justify-content:center}
/* audience subpage feature rows */
.feat-list{display:flex;flex-direction:column;gap:clamp(34px,4vw,56px);margin-top:30px}
.feat-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,3.5vw,56px);align-items:center}
.feat-media{min-height:320px;align-self:stretch}
.feat-row.reverse .feat-media{order:2}
.feat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:clamp(18px,2.4vw,26px);margin-top:30px}
.feat-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--hair);border-radius:16px;overflow:hidden;text-decoration:none}
.feat-card-media{position:relative;height:190px;overflow:hidden}
.feat-card-media img{width:100%;height:100%;object-fit:cover;display:block}
.feat-card-body{padding:22px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.feat-card-title{font-size:21px;color:var(--navy);letter-spacing:-.01em;line-height:1.1;margin:0}
.feat-card-desc{font-size:14.5px;line-height:1.6;color:#3c3b54;margin:0}
.feat-card .editlink{margin-top:2px}
.hir-chips{display:flex;flex-wrap:wrap;gap:8px}
.hir-chip{display:inline-flex;align-items:center;padding:7px 14px;border-radius:999px;border:1px solid var(--hair);background:#fff;color:var(--navy);font-weight:600;font-size:13.5px;text-decoration:none;transition:background .15s var(--ease),border-color .15s var(--ease)}
.hir-chip:hover{border-color:var(--navy)}
.hir-chip.is-active{background:var(--navy);color:#fff;border-color:var(--navy)}
/* article / announcement */
.article-body{display:grid;grid-template-columns:1fr 340px;gap:clamp(30px,4vw,56px);align-items:start}
.ev-grid{display:grid;grid-template-columns:1fr 340px;gap:clamp(28px,4vw,52px);align-items:start}
.ev-card{position:sticky;top:90px}
/* Modular single sidebar: cards are gap-spaced so they reorder cleanly. */
.hszk-aside{display:flex;flex-direction:column;gap:16px}
.hszk-aside > .ev-card{position:static}
.ev-backlink{display:inline-flex;align-items:center;gap:8px;background:none;border:0;cursor:pointer;font-family:var(--fbody);font-weight:700;font-size:14px;color:var(--acc-deep);padding:0 0 6px;white-space:nowrap;text-align:left;text-decoration:none}
.ev-backlink svg{transition:transform .2s var(--ease)}
.ev-backlink:hover svg{transform:translateX(-4px)}
.ev-backlink.big{font-size:15.5px;background:var(--pale);border-radius:999px;padding:12px 22px;color:var(--navy)}
.ev-backlink.big:hover{background:#ecebf4}
.pszi-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:stretch}
@media(max-width:820px){ .pszi-grid{grid-template-columns:1fr} }
.kt-space{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,3vw,44px);align-items:center}
.kt-space.rev .kt-gallery{order:2}
.kt-gallery{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:120px;gap:10px}
.kt-gcell{border-radius:12px;overflow:hidden}
.kt-gcell.big{grid-column:span 2;grid-row:span 2}
.munka-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:clamp(28px,4vw,52px);align-items:start}
@media(max-width:820px){ .munka-grid{grid-template-columns:1fr} }
.munka-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,4vw,52px);align-items:start}
.munka-stats{display:flex;gap:clamp(20px,3vw,40px);margin-top:30px;flex-wrap:wrap}
.munka-stat{padding-right:clamp(20px,3vw,40px);border-right:1px solid var(--hair)}
.munka-stat:last-child{border-right:0;padding-right:0}
.munka-formcard{background:#fff;border:1px solid var(--hair-strong);border-radius:18px;padding:clamp(22px,2.4vw,30px);box-shadow:0 14px 40px rgba(35,33,82,.08)}
.munka-row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:880px){ .munka-hero{grid-template-columns:1fr} .munka-formcard{order:-1} }
@media(max-width:430px){ .munka-row2{grid-template-columns:1fr} }
/* hszk/urlap split "panel" tone — a coloured box (reusing .gymsec --gp) behind
   the value-prop + form card; light aside text is set inline by the renderer. */
.urlap-panel{position:relative;overflow:hidden;border-radius:22px;padding:clamp(26px,3vw,42px);background:radial-gradient(120% 130% at 88% 0%, var(--gp) 0%, color-mix(in srgb, var(--gp) 78%, #000) 82%)}
.urlap-panel .munka-hero{padding:0}
/* hszk/urlap fields: full/half-width rhythm, validation state, trust row */
.urlap-fields{display:flex;flex-wrap:wrap;gap:13px}
.urlap-field{flex:1 1 100%;min-width:0}
.urlap-field.is-half{flex:1 1 calc(50% - 7px);min-width:200px}
.fld:user-invalid{border-color:#d9534f;box-shadow:0 0 0 3px rgba(217,83,79,.16)}
.hszk-pill[disabled]{opacity:.65;cursor:progress}
.urlap-trust{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:8px;font-size:12.5px;color:var(--slate)}
.urlap-trust span{display:inline-flex;align-items:center;gap:6px}
.alb-filters{display:flex;flex-direction:column;gap:14px}
.alb-fgroup{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.alb-flabel{font-family:var(--fbody);font-weight:700;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);width:96px;flex:none}
.alb-chip{display:inline-flex;align-items:center;border:1.5px solid var(--hair-strong);background:#fff;color:var(--navy);font-family:var(--fbody);font-weight:700;font-size:13.5px;padding:8px 15px;border-radius:999px;cursor:pointer;transition:all .2s var(--ease)}
.alb-chip:hover{border-color:var(--navy)}
.alb-chip.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.alb-chip,.alb-chip:hover{text-decoration:none}
.alb-bottom{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
@media(max-width:760px){ .alb-bottom{grid-template-columns:1fr} .alb-flabel{width:auto} }
@media(max-width:820px){ .kt-space{grid-template-columns:1fr} .kt-space.rev .kt-gallery{order:0} .kt-gallery{grid-auto-rows:110px} }
.kk-intro-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(28px,4vw,56px);align-items:start}
.kk-how{background:#fff;border:1px solid var(--hair);border-radius:16px;padding:24px}
.ksz-kal{grid-template-columns:1.25fr .75fr}
.ksz-kal-photos{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:0}
.ksz-kal-photos::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--amber),transparent 30%)}
@media(max-width:760px){ .ksz-kal{grid-template-columns:1fr} .ksz-kal-photos{display:none} }
.ksz-gallery{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:150px;gap:12px}
.ksz-gcell{border-radius:12px;overflow:hidden}
.ksz-gcell.big{grid-column:span 2;grid-row:span 2}
@media(max-width:620px){ .ksz-gallery{grid-template-columns:repeat(2,1fr)} .ksz-gcell.big{grid-column:span 2;grid-row:span 1} }
.kk-gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:150px;gap:12px}
.kk-galcell{border-radius:14px;overflow:hidden}
.kk-galcell.big{grid-column:span 2;grid-row:span 2}
@media(max-width:880px){ .kk-intro-grid{grid-template-columns:1fr} .kk-gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:130px} .kk-galcell.big{grid-column:span 2;grid-row:span 1} }
/* hszk/galeria block: configurable columns via --hszk-cols, collapses on mobile */
.hszk-gallery{grid-template-columns:repeat(var(--hszk-cols,4),1fr)}
.kk-galcell{display:block;cursor:zoom-in}
@media(max-width:880px){ .hszk-gallery{grid-template-columns:repeat(2,1fr)} }
/* hszk/cikk-galeria block: wrap-less gallery inside the article body column */
.hszk-article-gallery{margin:28px 0}
/* Shared image lightbox */
.hszk-lb-ov{position:fixed;inset:0;z-index:120;background:rgba(16,14,38,.93);display:flex;align-items:center;justify-content:center;padding:clamp(16px,4vw,56px)}
.hszk-lb-ov[hidden]{display:none}
.hszk-lb-fig{margin:0;display:flex;flex-direction:column;align-items:center;gap:12px;max-width:min(1100px,92vw)}
.hszk-lb-fig img{max-width:100%;max-height:82vh;border-radius:10px;box-shadow:0 24px 70px rgba(0,0,0,.5);object-fit:contain;background:#0c0a22}
.hszk-lb-fig figcaption{color:#fff;font-family:var(--fbody);font-size:14px;font-weight:600;text-align:center;max-width:80ch}
.hszk-lb-close,.hszk-lb-prev,.hszk-lb-next{position:fixed;background:rgba(255,255,255,.12);color:#fff;border:0;cursor:pointer;width:48px;height:48px;border-radius:999px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .15s}
.hszk-lb-close:hover,.hszk-lb-prev:hover,.hszk-lb-next:hover{background:rgba(255,255,255,.28)}
.hszk-lb-close{top:18px;right:18px;font-size:30px}
.hszk-lb-prev{left:18px;top:50%;transform:translateY(-50%);font-size:30px}
.hszk-lb-next{right:18px;top:50%;transform:translateY(-50%);font-size:30px}
@media(max-width:880px){ .ev-grid{grid-template-columns:1fr} .ev-card{position:static} }
.szk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.szk-card{position:relative;display:flex;flex-direction:column;border:1px solid var(--hair);border-radius:12px;padding:22px;background:#fff;min-height:200px;transition:border-color .25s var(--ease)}
.szk-card:hover{border-color:var(--navy)}
.szk-logo{display:inline-flex;align-items:center;justify-content:center;height:50px;max-width:160px;border-radius:12px;overflow:hidden;flex:none;margin-bottom:14px}
.szk-logo img{height:100%;width:auto;max-width:100%;object-fit:contain}
.szk-logo--mono{width:50px;height:50px;background:var(--acc-soft);color:var(--acc-deep);font-size:22px;letter-spacing:-.01em}
.szk-featured{position:absolute;top:14px;right:14px;z-index:1;display:inline-flex;align-items:center;gap:5px;background:var(--acc);color:var(--acc-ink);font-weight:700;font-size:11px;padding:4px 9px;border-radius:999px}
.hsz-chip{cursor:pointer;border:1px solid var(--hair-strong);background:#fff;color:var(--slate);font-weight:700;font-size:12.5px;padding:6px 13px;border-radius:999px;font-family:var(--fbody);transition:border-color .2s var(--ease),color .2s var(--ease),background .2s var(--ease)}
.hsz-chip:hover{border-color:var(--navy);color:var(--navy)}
.hsz-chip.is-active{background:var(--navy);color:#fff;border-color:var(--navy)}
.szk-cardlink{text-decoration:none}
.szk-cardlink::after{content:"";position:absolute;inset:0;border-radius:12px}
.szk-cardlink:hover{text-decoration:underline}
.szk-links{position:relative;z-index:1;margin-top:auto;padding-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}
.szk-link{display:inline-flex;align-items:center;gap:6px;color:var(--acc-deep);font-weight:700;font-size:13px;text-decoration:none;white-space:nowrap}
.szk-link:hover{text-decoration:underline}
@media (max-width:380px){ .szk-links{grid-template-columns:1fr} }
@media (max-width:900px){ .article-body{grid-template-columns:1fr} .szk-grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:560px){ .szk-grid{grid-template-columns:1fr} }
.bento-hero{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:172px;gap:16px}
.bento-row2{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch}
.bento-row2 > *{min-height:150px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid-4-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;grid-auto-rows:200px}
.dorm-body{display:grid;grid-template-columns:1fr 340px;gap:40px;align-items:start}
/* A grid-elemek alap min-width:auto-ja (min-content) mobilon nem engedi a 1fr
   sávot a viewport alá húzódni -> vízszintes túlcsordulás. min-width:0 = a sáv
   szűkülhet, a tartalom újratördel. (Ugyanaz a fix, mint .article-main-nél.) */
.dorm-body>*{min-width:0}
.hszk-faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:14px;padding:15px 18px;font-weight:700;color:var(--navy);font-size:15.5px}
.hszk-faq summary::-webkit-details-marker{display:none}
.hszk-faq .hszk-faq-ico{flex:none;transition:transform .25s ease}
.hszk-faq[open] .hszk-faq-ico{transform:rotate(90deg)}
.hszk-dl:hover{background:var(--pale)}

/* PDF-nézegető (hszk/pdf): a szerver által kirajzolt poszter-kártya + a
   Megnyitás gombra beinjektált PDF.js-olvasó (.hszk-pdfv).
   -- Poszter: a blokk MINDIG .hszk-cq query containerben ül (hszk_block_cq),
      ezért a töréspont @container, nem @media — egy szűk cikk-hasábban (~700px)
      1400px-es viewporton is egyoszlopos kell legyen.
   -- Olvasó: a PDF.js PDFViewer konstruktora KIVÉTELT DOB, ha a container
      számított pozíciója nem `absolute` (a `relative` is dob!). Ezért a shell
      egy 3 soros grid (sáv / olvasó / státusz), a container pedig a 2. sorba
      van explicit kihelyezve ÉS position:absolute;inset:0 — egy abszolút
      pozicionált grid-gyerek tartalmazó blokkja a saját grid-cellája (ha a
      grid-konténer position:relative), így a sáv alatti hely pontosan kitöltődik
      akkor is, ha a vezérlősáv több sorba tördel (a `1fr` sor magassága az auto
      sorok után maradék). Nincs szükség fix sávmagasságra. */
.hszk-pdf__poster{display:grid;grid-template-columns:180px 1fr;gap:22px;border:1px solid var(--hair);border-radius:16px;padding:20px;background:#fff}
.hszk-pdf__cover{border-radius:10px;overflow:hidden;background:var(--acc-soft);display:flex;align-items:center;justify-content:center;min-height:150px}
.hszk-pdf__cover img{width:100%;height:100%;object-fit:cover;display:block}
.hszk-pdf__ic{color:var(--acc-deep);display:flex}
.hszk-pdf__body{min-width:0}
.hszk-pdf__t{font-size:20px;color:var(--navy);letter-spacing:-.01em}
.hszk-pdf__d{font-size:14.5px;line-height:1.55;color:var(--slate);margin:6px 0 0;max-width:60ch}
.hszk-pdf__meta{display:inline-block;margin-top:8px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--slate)}
.hszk-pdf__btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.hszk-pdf__open,.hszk-pdf__dl{display:inline-flex;align-items:center;gap:8px;font-size:14.5px;font-weight:700;padding:11px 20px;border-radius:999px}
.hszk-pdf__dl{border:1.5px solid var(--hair)}
.hszk-pdf__dl:hover{background:var(--pale)}
/* A blokk gyakran cikktörzsben (.entry-content) ül, aminek `.entry-content a`
   szabálya (specificitás 0,1,1) különben legyőzné a fenti egy-osztályos
   (0,1,0) színt/aláhúzást — a "Megnyitás" fehér szövege ilyenkor a --acc-deep
   háttérrel AZONOS színűvé válna (láthatatlan szöveg + ikon, mert az SVG
   stroke="currentColor"-t használ). A `.hszk-pdf` előtag (0,2,0) mindig győz. */
.hszk-pdf .hszk-pdf__open,.hszk-pdf .hszk-pdf__dl{text-decoration:none}
.hszk-pdf .hszk-pdf__open{background:var(--acc-deep);color:#fff}
.hszk-pdf .hszk-pdf__dl{color:var(--navy)}
.hszk-pdf.is-loading .hszk-pdf__open{opacity:.6;pointer-events:none}
.hszk-pdf.is-open .hszk-pdf__poster{display:none}
@container (max-width:700px){
  .hszk-pdf__poster{grid-template-columns:1fr}
  .hszk-pdf__cover{min-height:0;max-height:220px}
}
.hszk-pdfv{position:relative;display:grid;grid-template-rows:auto 1fr auto;height:clamp(520px,80vh,900px);border:1px solid var(--hair);border-radius:16px;overflow:hidden;background:#f4f4f7}
.hszk-pdfv:fullscreen{height:100%;width:100%;border:0;border-radius:0}
.hszk-pdfv__bar{grid-row:1;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;background:var(--navy);color:#fff}
.hszk-pdfv__bar :focus-visible{outline-color:#fff}
.hszk-pdfv__grp{display:flex;align-items:center;gap:6px}
.hszk-pdfv__right{margin-left:auto}
.hszk-pdfv__b{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 9px;border:1px solid rgba(255,255,255,.25);border-radius:9px;background:transparent;font-size:16px;line-height:1;cursor:pointer}
.hszk-pdfv__b:hover{background:rgba(255,255,255,.12)}
/* A letöltés-gomb a sávban <a>, a többi <button> — csak az <a>-t fenyegeti az
   `.entry-content a` (lásd fentebb a .hszk-pdf__open kommentjét); a `.hszk-pdfv`
   előtag (0,2,0) mindkettőre ártalmatlanul alkalmazható, és győz a kaszkádban. */
.hszk-pdfv .hszk-pdfv__b{color:#fff;text-decoration:none}
.hszk-pdfv__page{width:52px;height:34px;border-radius:9px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:#fff;text-align:center;font-size:14px}
.hszk-pdfv__sep,.hszk-pdfv__total{font-size:14px;color:rgba(255,255,255,.75)}
.hszk-pdfv__find{flex:1 1 200px;min-width:0}
.hszk-pdfv__q{height:34px;flex:1 1 auto;min-width:0;max-width:260px;border-radius:9px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:#fff;padding:0 12px;font-size:14px}
.hszk-pdfv__q::placeholder{color:rgba(255,255,255,.6)}
.hszk-pdfv__hits{font-size:13px;color:rgba(255,255,255,.8);min-width:52px}
/* A PDF.js megköveteli: számított pozíció = absolute. A grid-cella (2. sor) a
   tartalmazó blokk, az inset:0 kitölti a sáv és a státusz közti sávot.
   touch-action: manipulation — kiüti a böngésző DUPLA-KOPPINTÁSOS nagyítását (azt
   MI kezeljük, különben ütköznének), de MEGHAGYJA a pásztázást ÉS a natív
   CSIPPENTŐS (pinch) nagyítást. A korábbi `pan-x pan-y` a pinch-et is letiltotta,
   miközben saját pinch-kezelőnk nincs — így mobilon nem maradt volna valódi
   nagyítás-gesztus, csak a +/− gomb. */
.hszk-pdfv__container{grid-row:2;position:absolute;inset:0;overflow:auto;background:#f4f4f7;touch-action:manipulation}
.hszk-pdfv__live{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.hszk-pdfv__status{grid-row:3;margin:0;padding:10px 12px;font-size:13px;color:var(--slate);background:#fff}
.hszk-pdfv__status.is-error{color:#b3261e;font-weight:700}
/* PDF-lightbox: teljes képernyős overlay a téma képlightboxának mintájára
   (.hszk-lb-ov). Azért CSS-overlay és nem Fullscreen API, mert azt az iOS Safari
   (iPhone) nem támogatja tetszőleges elemre — ott a fullscreen gomb néma lenne.
   z-index:130 = a .hszk-qr-ov-val azonos szint (a másik modális overlay); a
   .hszk-lb-ov (120), .hszk-top (120), cookiebar (80) és a fejléc (40) fölött,
   a skiplink (200) alatt. A JS a body-ba fűzi be, ezért itt @media kell,
   nem @container — a .hszk-cq query container nem őse az overlay-nek. */
.hszk-pdf-ov{position:fixed;inset:0;z-index:130;background:rgba(16,14,38,.93);display:flex;align-items:center;justify-content:center;padding:clamp(0px,2vw,32px)}
.hszk-pdf-ov .hszk-pdfv{width:min(1200px,100%);height:100%;max-height:100%}
@media(max-width:700px){
  .hszk-pdf-ov{padding:0}
  .hszk-pdf-ov .hszk-pdfv{border:0;border-radius:0}
  /* A sáv keskeny-nézetű tördelése a beágyazott módban @container-rel megy, ami
     az overlay-ben (body gyerek) nem aktiválódik — itt viewportra ismételjük. */
  .hszk-pdf-ov .hszk-pdfv__find{order:5;flex-basis:100%}
  .hszk-pdf-ov .hszk-pdfv__q{max-width:none}
}
@container (max-width:700px){
  .hszk-pdfv{height:clamp(440px,72vh,760px)}
  .hszk-pdfv__find{order:5;flex-basis:100%}
  .hszk-pdfv__q{max-width:none}
}
.hszk-step-lede{font-size:clamp(16px,1.9vw,19px);line-height:1.55;color:var(--slate);max-width:760px;margin:14px 0 0}
.hszk-step-t{font-family:var(--fdisp);font-weight:800;font-size:clamp(17px,2vw,20px);color:var(--navy);letter-spacing:-.01em;margin:0 0 5px}
.hszk-step-d{font-size:14.5px;line-height:1.6;color:var(--slate);margin:0}
.hszk-steps{list-style:none;margin:24px 0 0;padding:0;display:flex;flex-direction:column}
.hszk-steps--timeline{max-width:760px}
.hszk-step{display:flex;gap:18px;position:relative;padding-bottom:26px}
.hszk-step:last-child{padding-bottom:0}
.hszk-step::before{content:'';position:absolute;left:21px;top:46px;bottom:0;width:2px;background:var(--hair)}
.hszk-step:last-child::before{display:none}
.hszk-step-n{flex:none;width:44px;height:44px;border-radius:999px;background:var(--acc-soft);color:var(--acc-deep);font-family:var(--fdisp);font-weight:800;font-size:19px;display:flex;align-items:center;justify-content:center;position:relative;z-index:1}
.hszk-step-b{padding-top:7px;flex:1;min-width:0}
.hszk-stepper{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-wrap:wrap}
.hszk-stepper-i{flex:1 1 150px;position:relative;text-align:center;padding:0 10px}
.hszk-stepper-n{width:48px;height:48px;border-radius:999px;background:var(--acc-soft);color:var(--acc-deep);font-family:var(--fdisp);font-weight:800;font-size:20px;display:flex;align-items:center;justify-content:center;margin:0 auto;position:relative;z-index:1}
.hszk-stepper-i:not(:first-child)::before{content:'';position:absolute;top:23px;right:50%;width:100%;height:2px;background:var(--hair);z-index:0}
.hszk-stepper-b{margin-top:13px}
.hszk-stepgrid{list-style:none;margin:24px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.hszk-stepgrid-i{background:#fff;border:1px solid var(--hair);border-radius:14px;padding:clamp(20px,2.2vw,26px)}
.hszk-stepgrid-i .hszk-step-n{margin-bottom:12px}
.hszk-stepnum{list-style:none;margin:26px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,3cqi,40px)}
/* Each item is its own query container, so the big number scales to the COLUMN
   width (cqi here = % of the cell): it shrinks gracefully in a 2-column narrow
   layout and grows back when the column is wide (incl. the 1-column mobile case). */
.hszk-stepnum-i{container-type:inline-size}
.hszk-stepnum-head{display:flex;align-items:baseline;gap:14px;margin:0 0 6px}
.hszk-stepnum-head .hszk-step-t{margin:0;min-width:0}
.hszk-stepnum-n{font-family:var(--fdisp);font-weight:800;font-size:clamp(34px,5vw,48px);font-size:clamp(24px,13cqi,48px);line-height:.8;letter-spacing:-.03em;color:transparent;-webkit-text-stroke:1.6px var(--acc-deep);flex:none}
/* Step layouts stack only when their CONTAINER is genuinely narrow (real mobile),
   so the columnar look is kept in the article column; plus a viewport fallback
   for browsers without container queries. */
@container (max-width:520px){
  .hszk-stepper{flex-direction:column}
  .hszk-stepper-i{text-align:left;display:flex;gap:14px;padding:0;align-items:flex-start}
  .hszk-stepper-i .hszk-stepper-n{margin:0}
  .hszk-stepper-i:not(:first-child)::before{display:none}
  .hszk-stepper-b{margin-top:0;flex:1}
  .hszk-stepnum{grid-template-columns:1fr}
}
@media(max-width:520px){
  .hszk-stepper{flex-direction:column}
  .hszk-stepper-i{text-align:left;display:flex;gap:14px;padding:0;align-items:flex-start}
  .hszk-stepper-i .hszk-stepper-n{margin:0}
  .hszk-stepper-i:not(:first-child)::before{display:none}
  .hszk-stepper-b{margin-top:0;flex:1}
  .hszk-stepnum{grid-template-columns:1fr}
}
.hszk-top{position:fixed;right:18px;bottom:18px;z-index:120;width:46px;height:46px;border-radius:999px;border:0;background:var(--navy);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(20,18,45,.22);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .25s var(--ease),transform .25s var(--ease),background .2s}
.hszk-top.show{opacity:1;visibility:visible;transform:none}
.hszk-top:hover{background:var(--acc-deep)}
.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:22px;align-items:start}
.office-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.office-card{border:1px solid var(--hair);border-radius:14px;padding:22px;background:#fff;display:flex;flex-direction:column;gap:7px}
.office-ic{width:44px;height:44px;border-radius:12px;background:var(--acc-soft);color:var(--acc-deep);display:flex;align-items:center;justify-content:center;margin-bottom:4px}
.office-area{font-size:17px;font-weight:700;color:var(--navy)}
.office-dept{font-size:13px;color:var(--slate);line-height:1.45}
.office-mail{display:inline-flex;align-items:center;gap:7px;margin-top:6px;font-size:14.5px;font-weight:700;color:var(--acc-deep);text-decoration:none;word-break:break-word}
.office-mail:hover{text-decoration:underline}
@media (max-width: 880px){.office-grid{grid-template-columns:1fr}}
.hero-bold-bg{background:radial-gradient(120% 130% at 88% 0%, var(--navy) 0%, #191737 80%);overflow:hidden}
.hero-bold-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:44px;align-items:center;padding-top:46px;padding-bottom:64px}
.hero-bold-photo{position:relative}

.card-hover{transition:border-color .25s var(--ease), background .25s var(--ease)}
.card-hover:hover{border-color:var(--navy)}
.hszk-pill{transition:filter .2s var(--ease)}
.hszk-pill:hover{filter:brightness(.94)}
.hszk-pill:active{filter:brightness(.88)}

/* ---- geometric system (from the HSZK community motif) ---- */
.motif-mark{display:block;flex:none}
.field-green{background:var(--acc);color:var(--acc-ink)}
.field-navy{background:var(--navy);color:#fff}
.field-amber{background:var(--amber);color:var(--navy)}
.field-purple{background:var(--purple);color:#fff}
/* navy–green duotone framed photo (atmospheric use only: news, placeholders) */
.duo{position:relative;overflow:hidden;background:var(--navy);isolation:isolate}
.duo > img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(1) contrast(1.05);mix-blend-mode:screen}
.duo::after{content:'';position:absolute;inset:0;background:var(--acc);mix-blend-mode:multiply;opacity:.9;pointer-events:none}
/* Duotone highlight-colour variants (navy base stays); mono = no colour tint. */
.duo--borostyan::after{background:var(--amber)}
.duo--lila::after{background:var(--purple-lite)}
.duo--lime::after{background:var(--lime)}
.duo--mono::after{background:transparent}
/* real-colour framed photo (hero, dorm cards, gallery) */
.framed{position:relative;overflow:hidden;background:var(--navy)}
.framed > img{width:100%;height:100%;object-fit:cover;display:block}
.scrim{position:absolute;inset:0;z-index:2;pointer-events:none}
.on-photo{position:absolute;z-index:3}
/* plus crop-mark device (the motif's negative-space cross) */
.plus-row{display:flex;align-items:center;gap:14px}
.plus-row::before,.plus-row::after{content:'';height:1px;background:var(--hair);flex:1}
.head-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
/* Mobilon a hosszú szekció-cím (inline white-space:nowrap) + „összes” link nem
   fér ki -> vízszintes túlcsordulás. A tördelés engedélyezése (flex-wrap fent) a
   linket új sorba viszi; keskeny nézeten a cím is tördelhet. */
@media (max-width:640px){ .head-row .section-title{white-space:normal !important} }
.plustick{position:relative;width:16px;height:16px;flex:none}
.plustick::before,.plustick::after{content:'';position:absolute;background:var(--acc-deep)}
.plustick::before{left:50%;top:0;width:1.5px;height:100%;transform:translateX(-50%)}
.plustick::after{top:50%;left:0;height:1.5px;width:100%;transform:translateY(-50%)}
.editlink.on-dark{color:#fff}
.editlink.on-dark .ln{background-image:linear-gradient(#fff,#fff)}
.editlink.on-green{color:var(--navy)}
.editlink.on-green .ln{background-image:linear-gradient(var(--navy),var(--navy))}
/* news index (editorial contents list) */
.newsidx{margin-top:8px}
.newsrow{display:grid;grid-template-columns:108px 132px 1fr 26px;align-items:center;gap:22px;width:100%;text-align:left;background:none;border:0;cursor:pointer;padding:22px 2px;font-family:var(--fbody);text-decoration:none}
.nr-date{font-size:13px;color:#62617a;font-weight:600;font-variant-numeric:tabular-nums}
.nr-cat{font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--acc-deep)}
.nr-head{font-family:var(--fdisp);font-weight:800;letter-spacing:-.02em;font-size:clamp(18px,2.1vw,25px);color:var(--navy);line-height:1.08;transition:color .25s var(--ease)}
.newsrow:hover .nr-head{color:var(--acc-deep)}
.newsrow .nr-arr{color:var(--navy);transition:transform .25s var(--ease);justify-self:end}
.newsrow:hover .nr-arr{transform:translateX(5px)}
@media (max-width:680px){ .newsrow{grid-template-columns:1fr;gap:7px;padding:18px 2px} .newsrow .nr-arr{display:none} .nr-meta-m{display:flex;gap:12px;align-items:center} }
/* Compact news list for supporting sections (e.g. "Kapcsolódó hírek" on a
   szakkollégium page): tighter rows + a smaller title than the primary index. */
.newsidx--compact .newsrow{grid-template-columns:92px 116px 1fr 22px;gap:16px;padding:13px 2px}
.newsidx--compact .nr-head{font-size:clamp(15.5px,1.5vw,18px);line-height:1.2}
.newsidx--compact .nr-arr{width:18px;height:18px}
/* Share row (news / events): text pills + copy-link button. */
.hszk-share{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:30px 0 0}
.hszk-share-l{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--slate)}
.hszk-share-b{font-family:var(--fbody);font-size:13.5px;font-weight:700;color:var(--navy);background:var(--pale);border:1px solid var(--hair);border-radius:999px;padding:8px 16px;cursor:pointer;text-decoration:none;transition:background .2s var(--ease),border-color .2s var(--ease)}
.hszk-share-b:hover{background:#fff;border-color:var(--navy)}
.hszk-share-b.copied{background:var(--acc-soft);border-color:var(--acc-deep);color:var(--acc-deep)}
.hszk-qr-ov{position:fixed;inset:0;z-index:130;background:rgba(16,14,38,.93);display:flex;align-items:center;justify-content:center;padding:clamp(16px,4vw,56px)}
.hszk-qr-ov[hidden]{display:none}
.hszk-qr-card{position:relative;background:#fff;border-radius:16px;padding:28px 28px 24px;max-width:340px;width:100%;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.5)}
.hszk-qr-close{position:absolute;top:6px;right:8px;background:none;border:0;font-size:28px;line-height:1;color:var(--slate);cursor:pointer;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center}
.hszk-qr-close:hover{color:var(--navy)}
.hszk-qr-close:focus-visible{outline:2px solid var(--navy);outline-offset:2px;border-radius:8px}
.hszk-qr-img{display:flex;justify-content:center}
.hszk-qr-img svg{width:240px;height:240px}
.hszk-qr-url{font-size:12.5px;color:var(--slate);word-break:break-all;margin:12px 0 0}
.hszk-qr-hint{font-size:13px;color:var(--navy);font-weight:600;margin:10px 0 16px}
.hszk-qr-dl{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}

.link-acc{background:none;border:none;cursor:pointer;font-family:var(--fbody);display:inline-flex;align-items:center;gap:7px;color:var(--acc-deep);font-weight:700;font-size:14.5px;padding:0;white-space:nowrap;text-decoration:none}
.link-acc:hover{gap:10px}
.link-muted{background:none;border:none;cursor:pointer;font-family:var(--fbody);display:inline-flex;align-items:center;gap:8px;color:#62617a;font-weight:600;font-size:14px;padding:6px 0;white-space:nowrap;text-decoration:none}
.link-muted:hover{color:var(--navy)}
.crumbs{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:18px 0 2px;font-family:var(--fbody)}
.crumbs a, .crumbs button{background:none;border:0;cursor:pointer;font-family:var(--fbody);color:#62617a;font-weight:600;font-size:13.5px;padding:0;text-decoration:none}
.crumbs a:hover, .crumbs button:hover{color:var(--acc-deep)}
.crumbs .sep{color:#c3c2d6;flex:none}
.crumbs .cur{color:var(--navy);font-weight:700;font-size:13.5px}
.tick{width:18px;height:2px;background:var(--acc);border-radius:2px;flex:none}
.statband{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--hair-strong);border-bottom:1px solid var(--hair-strong)}
.stat{padding:22px 22px 22px 0;border-left:1px solid var(--hair);padding-left:24px}
.stat:first-child{border-left:0;padding-left:0}
.quickband{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--hair-strong);border-bottom:1px solid var(--hair-strong)}
.quickcell{display:flex;align-items:center;gap:13px;padding:20px 18px 20px 24px;border:0;border-left:1px solid var(--hair);background:none;cursor:pointer;font-family:var(--fbody);text-align:left;width:100%;transition:background .2s var(--ease);text-decoration:none}
.quickcell:first-child{border-left:0;padding-left:0}
.quickcell:hover{background:var(--acc-soft)}
.quickcell .qa-label{font-weight:700;font-size:15px;color:var(--navy);line-height:1.25;letter-spacing:-.01em}
.quickcell .qa-arrow{margin-left:auto;color:var(--navy);flex:none;transition:transform .25s var(--ease)}
.quickcell:hover .qa-arrow{transform:translateX(4px);color:var(--acc-deep)}
@media (max-width:680px){
  .statband{grid-template-columns:1fr 1fr}
  .stat:nth-child(3){border-left:0;padding-left:0}
  .stat:nth-child(3),.stat:nth-child(4){border-top:1px solid var(--hair)}
  .quickband{grid-template-columns:1fr 1fr}
  .quickcell{padding:18px 14px}
  .quickcell:first-child{padding-left:14px}
  .quickcell:nth-child(odd){border-left:0;padding-left:14px}
  .quickcell:nth-child(3),.quickcell:nth-child(4){border-top:1px solid var(--hair)}
}
.aside-link{display:flex;align-items:center;gap:10px;color:#3c3b54;text-decoration:none;font-size:14px;font-weight:600;padding:7px 0}
.aside-link:hover{color:var(--acc-deep)}

.fld{width:100%;font-family:var(--fbody);font-size:15px;padding:11px 14px;border:1.5px solid #e0dfeb;border-radius:11px;color:var(--navy);background:#fff;outline:none;transition:border-color .15s, box-shadow .15s}
.fld:focus{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-glow)}

/* header */
.utilbar{background:#f4f4fa;border-bottom:1px solid #ececf4}
.utilbar-in{height:42px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.utilbar-links{display:flex;align-items:center;gap:20px}
.utilbar-links a{color:#62617a;text-decoration:none;font-size:12.5px;font-weight:600}
.utilbar-links a:hover{color:var(--navy)}
.hdr{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.86);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid #ececf4}
/* iOS 26 Safari a status bar színét a legfelső sticky elem HÁTTERÉBŐL mintavételezi;
   áttetsző (frosted) háttérnél a mögötte lévő tartalom üt át a szigetbe. Mobilon ezért
   a fejléc TÖMÖR (a frosted a nagyobb képernyőkön marad, ott nincs status bar gond). */
/* iOS: a sticky fejléc mobilon tömör (az áttetsző háttér mögül átütne a tartalom a
   status barba). A pte.hu-receptet követjük: nincs cover, a status bart a theme-color +
   apple-mobile-web-app-status-bar-style meta színezi. */
@media (max-width:1024px){ .hdr{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none} }
/* Ha a böngésző egyáltalán nem tudja a backdrop-filtert (nagyon régi eszköz),
   a fejléc háttere legyen jóval átlátszatlanabb, hogy a tartalom ne üssön át. */
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.hdr{background:rgba(255,255,255,.97)}}
.hdr-in{height:70px;display:flex;align-items:center;justify-content:space-between;gap:20px}
/* Logo + the right-side cluster never shrink (so the logo can't distort); the
   nav is the flexible middle and collapses to the hamburger below 1024px. */
.hdr-in > a, .hdr-in > div{flex:none}
.hdr-in > a img{display:block;flex:none}
.nav{display:flex;align-items:center;gap:28px;height:100%}
.navwrap{position:relative;height:100%;display:flex;align-items:center}
.mega{position:absolute;top:100%;left:-12px;min-width:340px;background:#fff;border:1px solid var(--hair);border-radius:10px;box-shadow:0 18px 44px rgba(35,33,82,.14);padding:8px;z-index:60;display:none;flex-direction:column;gap:2px}
.navwrap:hover .mega, .navwrap:focus-within .mega{display:flex}
.mega-item{display:flex;align-items:flex-start;gap:12px;padding:11px 12px;border-radius:7px;background:none;border:0;cursor:pointer;text-align:left;width:100%;font-family:var(--fbody);transition:background .15s var(--ease);text-decoration:none}
.mega-item:hover{background:var(--acc-soft)}
.mega-item .mt{font-weight:700;color:var(--navy);font-size:14.5px;line-height:1.2}
.mega-item .md{font-size:12px;color:#62617a;margin-top:2px;line-height:1.3}
.mega-ov{border-bottom:1px solid var(--hair);margin-bottom:4px;padding-bottom:8px !important}
.mega-ov .mt{color:var(--acc-deep)}
.mega--grouped{flex-direction:row;flex-wrap:wrap;min-width:560px;max-width:740px;gap:6px 16px;padding:14px}
.mega--grouped .mega-ov{width:100%}
.mega-col{display:flex;flex-direction:column;gap:2px;min-width:190px;flex:1}
.mega-h{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);padding:8px 12px 4px}
.mobsub-h{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--slate);padding:10px 16px 2px}
.caret{transition:transform .2s var(--ease)}
.navwrap:hover .caret{transform:rotate(90deg)}
.mobsub{display:flex;flex-direction:column;border-left:2px solid var(--acc);margin:2px 0 6px clamp(20px,4vw,44px)}
.mobsub[hidden]{display:none}
.mobsub a{background:none;border:0;cursor:pointer;font-family:var(--fbody);text-align:left;padding:10px 16px;color:#3c3b54;font-weight:600;font-size:14.5px;text-decoration:none}
.mobsub a:hover{color:var(--acc-deep)}
.navlink{background:none;border:none;cursor:pointer;font-family:var(--fbody);color:var(--navy);font-weight:600;font-size:15px;padding:6px 0;position:relative;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.navlink:hover{color:var(--acc-deep)}
.navlink.active{color:var(--acc-deep)}
.navlink.active::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:2.5px;border-radius:9px;background:var(--acc)}
.lang{display:inline-flex;border:1.5px solid #e0dfeb;border-radius:999px;overflow:hidden;font-weight:700;font-size:13px}
.lang a{background:none;border:none;cursor:pointer;padding:6px 11px;font-family:var(--fbody);color:#9594ac;font-weight:700;text-decoration:none}
.lang a.on{background:var(--navy);color:#fff}
.hamburger{display:none;background:none;border:none;cursor:pointer;color:var(--navy)}
.mobnav{display:none}
/* Mobile accordion rows */
.mobgroup{border-bottom:1px solid #f2f2f8}
.mobrow{display:flex;align-items:center;justify-content:space-between;gap:4px}
.mobrow .navlink{flex:1;min-width:0}
.mobtoggle{flex:none;background:none;border:0;cursor:pointer;color:var(--navy);padding:10px clamp(20px,4vw,44px);display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}
.mobchev{transform:rotate(90deg);transition:transform .2s var(--ease)}
.mobtoggle[aria-expanded="true"] .mobchev{transform:rotate(-90deg)}
/* Lock background scroll while the mobile drawer is open */
html.menu-lock,html.menu-lock body{overflow:hidden}

/* modal */
.ov{position:fixed;inset:0;background:rgba(20,18,46,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:60;display:flex;align-items:center;justify-content:center;padding:24px;animation:fade .2s}
.ov[hidden]{display:none}
@keyframes fade{from{opacity:0}to{opacity:1}}
.modal{background:#fff;border-radius:22px;max-width:440px;width:100%;padding:34px;box-shadow:0 30px 80px rgba(0,0,0,.3);animation:pop .22s}
@keyframes pop{from{transform:translateY(12px) scale(.97);opacity:0}to{transform:none;opacity:1}}

/* responsive */
.kk-rec{display:grid}
@media (max-width:680px){ .kk-rec{grid-template-columns:1fr !important;gap:4px !important} }
@media (max-width: 980px){
  .feature-grid, .feature-wide, .aud-grid, .news-feat{grid-template-columns:1fr}
  .feature-wide .duo, .feature-wide .framed{order:-1}
  .bento-hero{grid-template-columns:repeat(2,1fr);grid-auto-rows:auto}
  .bento-hero > *{min-height:160px}
  .hero-intro{grid-column:span 2 !important;grid-row:auto !important}
  .hero-photo{grid-column:span 2 !important}
  .grid-3{grid-template-columns:repeat(2,1fr)}
  .grid-4-tiles{grid-template-columns:repeat(2,1fr)}
  .dorm-body{grid-template-columns:1fr}
  .hero-bold-grid{grid-template-columns:1fr;gap:30px}
  .hero-bold-photo{order:-1}
  .contact-grid{grid-template-columns:1fr}
}
@media (max-width: 880px){
  .feat-row{grid-template-columns:1fr;gap:20px}
  .feat-row.reverse .feat-media{order:0}
  .feat-media{min-height:240px}
}
/* Switch to the hamburger menu while the desktop nav still fits comfortably,
   so the bar never crams / the logo never gets squished. */
@media (max-width: 1024px){
  .nav, .lang-desktop{display:none}
  .hamburger{display:flex}
  /* Full-height fixed drawer that starts right below the sticky header bar.
     --mobtop is set by JS to the header's live bottom edge (70px scrolled, 112px at top). */
  .mobnav.open{display:block;position:fixed;left:0;right:0;bottom:0;top:var(--mobtop,112px);z-index:39;background:#fff;border-top:1px solid #ececf4;padding:6px 0 max(16px,env(safe-area-inset-bottom));overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;animation:mobslide .18s var(--ease)}
  .mobnav .navlink{display:block;width:100%;text-align:left;padding:11px clamp(20px,4vw,44px);font-size:16px}
  .mobrow .navlink{padding-right:4px}
  /* Compaction: submenus only show when expanded, so tighten them up */
  .mobnav .mobsub{margin:0 0 6px clamp(20px,4vw,44px)}
  .mobnav .mobsub-h{padding:8px 16px 2px}
  .mobnav .mobsub a{padding:7px 16px}
}
@keyframes mobslide{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){.mobnav.open{animation:none}.mobchev{transition:none}}
@media (max-width: 640px){
  .bento-hero, .grid-3, .grid-2, .grid-4-tiles, .bento-row2, .gallery-grid{grid-template-columns:1fr}
  .hero-intro{grid-column:1 / -1 !important}
  .hero-photo{grid-column:1 / -1 !important}
}

/* footer */
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px;align-items:start}
@media (max-width:760px){ .footer-grid{grid-template-columns:1fr 1fr} }
@media (max-width:520px){ .footer-grid{grid-template-columns:1fr} }

/* =====================================================================
   kult1367 cultural band — official colour coding on a warm sand band.
   ===================================================================== */
.kk-band{background:transparent;padding:0;margin-top:30px;position:relative}
.kk-fill{background:var(--amber);padding-bottom:20px}
.kk-bandwrap{max-width:1180px;margin:30px auto 0;padding:0 clamp(20px,4vw,44px)}
.kk-band.inset{margin-top:0}
.kk-band.inset .kk-fill{border-radius:26px}
.kk-band.inset .kk-eyebrow,.kk-band.inset .kk-head,.kk-band.inset .kk-scroll{max-width:none;padding-left:clamp(24px,3vw,40px);padding-right:clamp(24px,3vw,40px)}
.kk-band.inset .kk-intro{padding-left:clamp(24px,3vw,40px);padding-right:clamp(24px,3vw,40px)}
.kk-wave{width:100%;background-repeat:repeat-x;line-height:0}
.kk-wave-top{height:58px;background-image:url('assets/img/kk/hr-attetszo.png');background-size:182px 58px;background-position:center bottom;margin-bottom:-1px}
.kk-wave-bot{height:58px;background-image:url('assets/img/kk/hr-barna.png');background-size:182px 117px;background-position:center bottom;margin-top:-1px}
.kk-band .kk-eyebrow{max-width:1180px;margin:0 auto;padding:34px clamp(20px,4vw,44px) 0;color:#fff;font-family:'Source Sans 3',sans-serif;font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;opacity:.92;display:flex;align-items:center;gap:9px}
.kk-band .kk-eyebrow::before{content:'';width:22px;height:2px;background:#fff;opacity:.7}
.kk-band .kk-head{max-width:1180px;margin:8px auto 4px;padding:0 clamp(20px,4vw,44px);display:flex;align-items:center;gap:16px}
.kk-intro{max-width:680px;margin:0 auto;padding:8px clamp(20px,4vw,44px) 0;color:#fff;font-family:'Source Sans 3',sans-serif;font-size:clamp(15px,1.7vw,18px);line-height:1.5;opacity:.95}
.kk-title{font-family:'Livvic',sans-serif;font-weight:500;letter-spacing:0;color:#fff;font-size:clamp(30px,3.8vw,46px);margin:0;white-space:nowrap;line-height:1.2}
.kk-head .kk-rule{flex:1;height:2px;background:rgba(255,255,255,.45);border:0}
.kk-scroll{display:flex;gap:30px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:clamp(20px,4vw,44px);padding:22px clamp(20px,4vw,44px) 10px;scrollbar-width:none}
.kk-scroll::-webkit-scrollbar{display:none}
.kk-card{flex:0 0 clamp(320px,30vw,500px);container-type:inline-size;scroll-snap-align:start;aspect-ratio:37/23;position:relative;background-color:#fff;background-repeat:no-repeat;background-position:calc(100% + 25%) calc(100% + 35%);background-size:40% auto;border:0;border-radius:3.2rem;box-shadow:rgba(0,0,0,.3) 5px 10px 10px 0;cursor:pointer;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease}
.kk-card:hover{transform:translateY(-5px);box-shadow:rgba(0,0,0,.4) 5px 12px 10px 0}
.kk-rotate{position:absolute;top:18%;left:0;transform:translateX(-45%) rotate(-90deg);width:clamp(55px,6.5vw,80px);height:clamp(55px,6.5vw,80px);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;z-index:2}
.kk-rotate span{font-family:'Source Sans 3',sans-serif;font-weight:600;font-size:clamp(10px,4cqi,18px);white-space:nowrap;padding-top:10px}
.kk-inner{position:relative;height:100%;display:flex;flex-direction:column;justify-content:center;padding:9% clamp(34px,7.5%,54px) 13%;text-align:center}
.kk-datum{position:absolute;top:6%;left:0;right:0;font-family:'Source Sans 3',sans-serif;font-weight:600;font-size:calc(clamp(8px,2.8cqi,15px) * var(--kk-text-scale,1));color:#7a6a52;margin:0;white-space:nowrap}
.kk-content{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:0;min-height:0;overflow:hidden}
.kk-cardtitle{font-family:'Source Sans 3',sans-serif;font-weight:700;letter-spacing:0;color:#232152;font-size:calc(clamp(11px,4.7cqi,25px) * var(--kk-text-scale,1));line-height:1.1;margin:0 0 .28em;padding-bottom:.1em;text-wrap:balance;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.kk-vonal{width:clamp(28px,8cqi,52px);height:2px;margin:0 0 .4em;flex:none}
.kk-desc{font-family:'Source Sans 3',sans-serif;font-size:calc(clamp(8.5px,2.8cqi,15px) * var(--kk-text-scale,1));color:#4a4660;line-height:1.26;margin:0;max-width:92%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.kk-arrowbtn{position:absolute;bottom:6.5%;left:50%;transform:translateX(-50%);width:clamp(34px,10cqi,50px);height:clamp(34px,10cqi,50px);border-radius:50%;border:0;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:transform .25s ease,filter .2s}
.kk-card:hover .kk-arrowbtn{transform:translateX(-50%) scale(1.12)}
.kk-controls{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:30px}
.kk-nav{width:50px;height:50px;border-radius:50%;border:0;background:rgba(255,255,255,.9);color:#666;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 15px rgba(0,0,0,.2);transition:transform .3s ease,background .3s ease,opacity .3s ease}
.kk-nav:hover:not(:disabled){background:#fff;transform:scale(1.1)}
.kk-nav:disabled{opacity:.3;cursor:not-allowed}
/* kult1367 sáv — méret-választók (blokk-attribútum) */
.kk-band.kk-text-compact{--kk-text-scale:.85}
.kk-band.kk-text-large{--kk-text-scale:1.2}
.kk-band.kk-title-small .kk-title{font-size:clamp(24px,3vw,36px)}
.kk-band.kk-title-large .kk-title{font-size:clamp(36px,4.6vw,58px)}
/* kult1367 sáv — pöttyös lapozó (data-kk-dots) */
.kk-dots{display:flex;justify-content:center;flex-wrap:wrap;gap:9px;margin-top:18px}
.kk-dot{width:9px;height:9px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.45);cursor:pointer;transition:transform .2s ease,background .2s ease}
.kk-dot:hover{background:rgba(255,255,255,.75)}
.kk-dot[aria-current="true"]{background:#fff;transform:scale(1.25)}
.kk-info{text-align:center;color:#fff;font-family:'Livvic',sans-serif;font-style:italic;font-size:clamp(13px,1.5vw,20px);margin-top:18px;padding:20px 24px 10px}
.kk-info b{font-style:normal;font-weight:700}
.kk-ov{position:fixed;inset:0;background:rgba(35,33,82,.6);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:90;display:flex;align-items:center;justify-content:center;padding:22px;animation:kkfade .2s}
@keyframes kkfade{from{opacity:0}to{opacity:1}}
.kk-modal{background:#fff;border-radius:24px;max-width:560px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 24px 70px rgba(0,0,0,.32);animation:kkpop .25s var(--ease)}
@keyframes kkpop{from{transform:translateY(16px);opacity:0}to{transform:none;opacity:1}}
.kk-mhead{padding:28px 30px 20px;border-bottom:1px solid var(--hair);position:relative}
.kk-mtitle{font-family:var(--fdisp);font-weight:800;letter-spacing:-.02em;color:#232152;font-size:clamp(23px,2.6vw,30px);line-height:1.08;margin:0 0 8px;padding-right:42px}
.kk-mdate{font-family:var(--fbody);font-weight:600;font-size:14px;color:#62617a;margin:0}
.kk-mclose{position:absolute;top:22px;right:22px;width:38px;height:38px;border:0;background:#f1f0f6;border-radius:50%;cursor:pointer;color:#62617a;display:flex;align-items:center;justify-content:center;transition:transform .25s var(--ease),background .2s}
.kk-mclose:hover{background:#e6e5ef;transform:rotate(90deg)}
.kk-mbody{padding:26px 30px 30px}
.kk-mtags{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}
.kk-pill{display:inline-flex;align-items:center;font-family:var(--fbody);font-weight:700;font-size:13.5px;padding:7px 16px;border-radius:999px;border:2px solid;white-space:nowrap}
.kk-mdesc{font-family:var(--fbody);font-size:16px;line-height:1.6;color:#3c3b54;margin:0 0 24px}
.kk-mbtns{display:flex;gap:13px;flex-wrap:wrap}
.kk-mbtn{flex:1;min-width:150px;padding:14px 26px;border:0;border-radius:999px;font-family:var(--fbody);font-weight:700;font-size:15.5px;color:#fff;cursor:pointer;transition:filter .2s,transform .2s;text-align:center;text-decoration:none}
.kk-mbtn:hover{filter:brightness(.94);transform:translateY(-1px)}
.kk-mbtn.sec{background:#ecebf4 !important;color:#232152}
@media(max-width:560px){ .kk-mbtns{flex-direction:column} }

/* =====================================================================
   GYM1367 sub-brand (acid lime + purple, Anton display)
   ===================================================================== */
/* GYM1367 sub-brand blocks (hszk/gym-*, hszk/arazas). Two colour schemes via
   CSS vars on the .gymsec wrapper: default = GYM (acid lime + purple);
   .gymsec--hszk = HSZK (sage green + navy). */
.gymsec{--gy:var(--lime);--gp:var(--purple);--gp2:var(--purple-lite);--gink:#241046;--gpline:rgba(74,30,158,.16)}
.gymsec--navy{--gy:var(--acc);--gp:var(--navy);--gp2:#191737;--gink:var(--navy);--gpline:rgba(35,33,82,.16)}
.gymsec--zold{--gy:var(--acc);--gp:var(--acc-deep);--gp2:color-mix(in srgb, var(--acc-deep) 72%, #000);--gink:var(--navy);--gpline:rgba(35,33,82,.16)}
.gymsec--kk{--gy:var(--amber);--gp:var(--gold);--gp2:#caa15f;--gink:#5a3a00;--gpline:rgba(185,137,47,.18)}

/* ---- Brand-scheme wrappers: recolour the accent family + scheme contract ---- *
 * vars within the subtree, so any block using var(--acc*)/var(--sc-*) recolours. */
.scheme-hszk{--acc:#6FBFA0;--acc-deep:color-mix(in srgb,#6FBFA0 62%,#15132e);--acc-soft:color-mix(in srgb,#6FBFA0 15%,#fff);--acc-ink:#232152;--sc-accent:var(--acc);--sc-accent-ink:var(--navy);--sc-band:var(--navy);--sc-band-ink:#fff;--sc-kicker:var(--acc-deep);--sc-soft:var(--acc-soft)}
.scheme-gym{--acc:#DAE100;--acc-deep:#4a1e9e;--acc-soft:color-mix(in srgb,#DAE100 16%,#fff);--acc-ink:#241046;--sc-accent:var(--lime);--sc-accent-ink:#241046;--sc-band:var(--purple);--sc-band-ink:#fff;--sc-kicker:var(--purple);--sc-soft:color-mix(in srgb,var(--lime) 16%,#fff)}
.scheme-kk{--acc:#e9b878;--acc-deep:#b9892f;--acc-soft:#fbf0dd;--acc-ink:#5a3a00;--sc-accent:var(--amber);--sc-accent-ink:#5a3a00;--sc-band:var(--amber);--sc-band-ink:#fff;--sc-kicker:var(--gold);--sc-soft:#fbf0dd}
.gymsec .gym-h{font-family:'Anton',sans-serif;font-weight:400;text-transform:uppercase;line-height:.92;letter-spacing:.005em}
.gym-anchor{scroll-margin-top:90px}
.gym-hero{position:relative}
.gym-hero img{width:100%;height:clamp(220px,34vw,500px);object-fit:cover;object-position:center;display:block}
.gym-intro{background:var(--gp);color:#fff}
/* Compact hero: image + intro panel side by side in a contained card. */
.gym-hero-card{display:grid;grid-template-columns:1fr 1fr;border-radius:18px;overflow:hidden}
.gym-hero-card .gym-hero-img{position:relative;min-height:240px}
.gym-hero-card .gym-hero-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.gym-hero-card .gym-intro{display:flex;flex-direction:column;justify-content:center}
@media(max-width:820px){ .gym-hero-card{grid-template-columns:1fr} .gym-hero-card .gym-hero-img{min-height:200px} }
/* Narrow hero: the full (stacked image + band) layout, contained to content width as a rounded card. */
.gym-hero-narrow{border-radius:18px;overflow:hidden}
.gym-hero-narrow .gym-hero-img img{width:100%;height:clamp(200px,28vw,360px);object-fit:cover;display:block}
.gym-cta{display:inline-flex;align-items:center;gap:9px;font-family:'Anton',sans-serif;text-transform:uppercase;letter-spacing:.02em;font-size:16px;padding:14px 26px;border-radius:999px;border:2px solid transparent;cursor:pointer;text-decoration:none;transition:filter .2s var(--ease)}
.gym-cta:hover{filter:brightness(.93)}
.gym-cta.solid{background:var(--gy);color:var(--gink)}
.gym-cta.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
/* Snapchat-lens kártya az intro-sávban: EGY <a>, két arc. Desktopon fehér kártya
   a beolvasható Snapcode-dal; mobilon (≤820px) a kód/cím/hint rejtve, és ugyanaz
   az <a> lime pill-gombbá alakul (a saját képernyődön lévő QR-t nem tudod
   beszkennelni — ott a koppintás a helyes interakció). A --gy/--gink a .gymsec
   wrapperről öröklődik ide (.gymsec > … > .gym-intro > .gym-intro-row > .gym-lens). */
.gym-intro-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(24px,4vw,56px);align-items:center}
.gym-lens{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;text-decoration:none;background:#fff;color:var(--gink);border-radius:18px;padding:18px 18px 20px;max-width:220px;transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.gym-lens:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(0,0,0,.25)}
.gym-lens__code{display:block;width:160px;height:160px}
.gym-lens__t{font-family:'Anton',sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:.02em;font-size:15px;line-height:1.2}
.gym-lens__hint{font-size:12px;line-height:1.4;color:#555}
.gym-lens__cta{display:none}
@media(max-width:820px){
	.gym-intro-row{grid-template-columns:1fr;gap:26px;align-items:start}
	.gym-lens{flex-direction:row;justify-content:center;max-width:none;width:max-content;background:var(--gy);border-radius:999px;padding:14px 26px}
	.gym-lens:hover{transform:none;box-shadow:none;filter:brightness(.93)}
	.gym-lens__code,.gym-lens__t,.gym-lens__hint{display:none}
	.gym-lens__cta{display:inline-flex;align-items:center;gap:9px;font-family:'Anton',sans-serif;text-transform:uppercase;letter-spacing:.02em;font-size:16px;color:var(--gink)}
}
@media(prefers-reduced-motion:reduce){ .gym-lens:hover{transform:none} }
.gym-tiers{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:28px}
.gym-tier{border-radius:16px;overflow:hidden;border:2px solid var(--gp);background:#fff}
.gym-tier-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 24px;background:var(--gp);color:#fff}
.gym-tier-name{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:21px;letter-spacing:.02em}
.gym-badge{background:var(--gy);color:var(--gink);font-weight:800;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;padding:5px 11px;border-radius:999px}
.gym-price{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;border-top:2px solid var(--gpline)}
.gym-price.hot{background:var(--gp2);color:#fff}
.gp-t{font-weight:800;font-size:16px;color:var(--gink)}
.gym-price.hot .gp-t{color:#fff}
.gp-note{font-size:12.5px;color:#5b5570;margin-top:2px}
.gym-price.hot .gp-note{color:rgba(255,255,255,.85)}
.gp-amt{font-family:'Anton',sans-serif;font-size:30px;color:var(--gp);white-space:nowrap}
.gym-price.hot .gp-amt{color:#fff}
.gp-amt span{font-size:14px}
.gym-gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:188px;gap:12px;margin-top:26px}
.gym-gallery figure{margin:0;border-radius:10px;overflow:hidden;background:var(--gink)}
.gym-gallery figure img{width:100%;height:100%;object-fit:cover;display:block}
.gym-gallery .tall{grid-row:span 2}
.gym-gallery .wide{grid-column:span 2}
.gym-visit{display:grid;grid-template-columns:1fr 1.2fr;gap:24px;align-items:stretch;margin-top:26px}
.gym-info-row{display:flex;align-items:center;gap:14px;padding:15px 0;border-top:1px solid var(--gpline)}
.gym-info-badge{width:44px;height:44px;border-radius:12px;background:var(--gp);color:#fff;display:flex;align-items:center;justify-content:center;flex:none}
.gym-info-row a{color:var(--gp);text-decoration:none;font-weight:700}
.gym-info-row a:hover{text-decoration:underline}
.gym-map{border-radius:14px;overflow:hidden;border:2px solid var(--gp);min-height:320px}
.gym-map iframe{width:100%;height:100%;border:0;display:block;min-height:320px}
/* OSM-térkép consent-facade (a theme.js tölti az iframe-et hozzájárulásra/kattintásra) */
.hszk-mapfacade{position:relative;min-height:220px;background:var(--navy);border-radius:14px;overflow:hidden;border:1px solid var(--hair)}
.gym-map.hszk-mapfacade{min-height:320px;border:2px solid var(--gp)}
.hszk-mapfacade iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media(max-width:820px){ .gym-tiers{grid-template-columns:1fr} .gym-gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px} .gym-visit{grid-template-columns:1fr} }

/* =====================================================================
   Events explorer (Kulturális Kalandozások: filter + list/calendar)
   ===================================================================== */
.ev-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px;margin-top:22px}
.ev-chips{display:flex;gap:9px;flex-wrap:wrap}
.ev-chip{display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--hair-strong);background:#fff;color:var(--navy);font-family:var(--fbody);font-weight:700;font-size:13.5px;padding:8px 15px;border-radius:999px;cursor:pointer;transition:all .2s var(--ease)}
.ev-chip:hover{border-color:var(--navy)}
.ev-chip .dot{width:9px;height:9px;border-radius:50%;flex:none}
.ev-viewtog{display:inline-flex;border:1.5px solid var(--hair-strong);border-radius:999px;overflow:hidden;flex:none}
.ev-viewtog button{background:none;border:0;cursor:pointer;font-family:var(--fbody);font-weight:700;font-size:13.5px;color:var(--slate);padding:8px 16px;display:inline-flex;align-items:center;gap:7px}
.ev-viewtog button.on{background:var(--navy);color:#fff}
.ev-monthlabel{font-family:var(--fdisp);font-weight:800;letter-spacing:-.02em;color:var(--navy);font-size:clamp(15px,1.8vw,19px);text-transform:capitalize;display:flex;align-items:center;gap:12px;margin:26px 0 6px}
.ev-monthlabel .ln{flex:1;height:1px;background:var(--hair)}
.ev-row{display:grid;grid-template-columns:88px 1fr auto;gap:20px;align-items:center;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--hair);cursor:pointer;padding:18px 4px;font-family:var(--fbody);transition:background .18s var(--ease);text-decoration:none}
.ev-row:hover{background:#faf9fc}
.ev-daybox{display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:12px;padding:8px 0;color:#fff}
.ev-daybox .d{font-family:var(--fdisp);font-weight:800;font-size:22px;line-height:1}
.ev-daybox .m{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-top:2px;opacity:.92}
.ev-rtitle{font-family:var(--fdisp);font-weight:800;letter-spacing:-.015em;font-size:clamp(17px,2vw,22px);color:var(--navy);line-height:1.12}
.ev-rmeta{font-size:13px;color:var(--slate);margin-top:4px;display:flex;gap:14px;flex-wrap:wrap}
.ev-rmeta span{display:inline-flex;align-items:center;gap:5px}
.ev-rright{display:flex;align-items:center;gap:14px;justify-self:end}
.ev-rcat{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:5px 11px;border-radius:999px}
.ev-rarrow{color:var(--navy);transition:transform .2s var(--ease)}
.ev-row:hover .ev-rarrow{transform:translateX(4px)}
.ev-past .ev-row{opacity:.6}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.cal-nav{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--hair-strong);background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--navy)}
.cal-nav:hover:not(:disabled){background:var(--pale)}
.cal-nav:disabled{opacity:.3;cursor:not-allowed}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal-dow{text-align:center;font-family:var(--fbody);font-weight:700;font-size:12px;color:var(--slate);padding:6px 0;text-transform:uppercase;letter-spacing:.04em}
.cal-cell{min-height:96px;border:1px solid var(--hair);border-radius:10px;padding:7px;display:flex;flex-direction:column;gap:4px;background:#fff}
.cal-cell.empty{background:transparent;border:0}
.cal-cell.today{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}
.cal-daynum{font-family:var(--fbody);font-weight:700;font-size:12.5px;color:var(--slate)}
.cal-ev{border:0;cursor:pointer;text-align:left;color:#fff;font-family:var(--fbody);font-weight:700;font-size:11.5px;line-height:1.15;padding:5px 7px;border-radius:7px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;display:block}
.ev-none{color:var(--slate);font-family:var(--fbody);padding:20px 0}
@media(max-width:680px){
  .ev-row{grid-template-columns:64px 1fr;gap:14px}
  .ev-rright{grid-column:2;justify-self:start;margin-top:2px}
  .ev-rarrow{display:none}
  .cal-cell{min-height:auto;padding:5px}
  .cal-daynum{font-size:11px}
  .cal-ev{font-size:0;padding:0;height:8px;border-radius:4px}
}

/* =====================================================================
   Notification bar + cookie bar
   ===================================================================== */
.notifbar{background:var(--acc);color:#fff}
.notifbar-in{display:flex;align-items:center;gap:14px;min-height:42px;padding:7px 0}
.notifbar-msg{font-family:var(--fbody);font-weight:700;font-size:13.5px;display:inline-flex;align-items:center;gap:8px;flex:1;line-height:1.3}
.notifbar-msg a{color:#fff;font-weight:800;text-decoration:underline}
.notif-close{border:0;background:transparent;cursor:pointer;color:#fff;display:flex;flex:none}
.cookiebar{position:fixed;left:16px;right:16px;bottom:16px;z-index:80;max-width:560px;margin:0 auto;background:var(--navy);color:#fff;border-radius:14px;padding:18px 20px;box-shadow:0 18px 50px rgba(0,0,0,.3);align-items:center;gap:16px;flex-wrap:wrap}
.cookiebar p{font-family:var(--fbody);font-size:13.5px;line-height:1.5;flex:1;min-width:220px;color:#dcdcef;margin:0}
.cookiebar p a{color:var(--acc);font-weight:700;text-decoration:underline}
.cookiebar .cb-btns{display:flex;gap:10px}
.cookiebar button{border-radius:999px;padding:9px 16px;cursor:pointer;font-family:var(--fbody);font-weight:700;font-size:13.5px;border:0}
.cookiebar .cookie-ess{border:1.5px solid rgba(255,255,255,.3);background:transparent;color:#fff}
.cookiebar .cookie-ok{background:var(--acc);color:var(--acc-ink)}
.cookie-settings{border:0;background:transparent;padding:0;cursor:pointer;color:#a9a8c2;font-family:var(--fbody);font-size:13px;text-decoration:none}
.cookie-settings:hover{color:#fff;text-decoration:underline}

/* Consent-gated embeds (YouTube facade) + cookie-free map link card */
.hszk-embed{position:relative;border-radius:14px;overflow:hidden;background:var(--navy);aspect-ratio:16/9}
.hszk-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.hszk-embed-facade{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;text-align:center;padding:26px}
.hszk-embed-ico{display:flex;color:#fff;opacity:.92}
.hszk-embed-txt{font-family:var(--fbody);font-size:13.5px;line-height:1.55;color:#dcdcef;max-width:360px;margin:0}
.hszk-embed-btn{background:var(--acc);color:var(--acc-ink)}
.hszk-mapcard{border-radius:14px;border:1px solid var(--hair);background:#fff;padding:18px 20px}
.hszk-maplink{display:inline-flex;flex-direction:column;gap:4px;text-decoration:none}
.hszk-maplink-addr{color:var(--navy);font-weight:700;font-size:15px}
.hszk-maplink-go{color:var(--acc-deep);font-weight:700;font-size:13.5px}
.hszk-maplink:hover .hszk-maplink-go{text-decoration:underline}

/* Cookie table (privacy page) */
.cookie-tablewrap{margin-top:30px}
.cookie-grp{font-size:18px;color:var(--navy);margin:26px 0 4px}
.cookie-note{font-size:13.5px;color:var(--slate);margin:0 0 12px}
.cookie-tablescroll{overflow-x:auto;border:1px solid var(--hair);border-radius:12px}
.cookie-table{width:100%;border-collapse:collapse;font-size:14px;min-width:560px}
.cookie-table th,.cookie-table td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--hair);vertical-align:top}
.cookie-table thead th{background:#f6f6fb;color:var(--navy);font-weight:700;font-size:12.5px;text-transform:uppercase;letter-spacing:.03em}
.cookie-table tbody tr:last-child td{border-bottom:0}
.cookie-table tbody tr:nth-child(even){background:#fafafd}
.cookie-table code{font-size:13px;color:var(--navy);background:#eef0f7;padding:2px 6px;border-radius:5px;word-break:break-word}

/* =====================================================================
   Hybrid search overlay (curated quick-links + full-text fallback)
   ===================================================================== */
.hszk-searchbox{background:#fff;border-radius:16px;max-width:620px;width:100%;box-shadow:0 30px 80px rgba(0,0,0,.3);overflow:hidden;animation:pop .2s}
.hszk-search-head{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--hair)}
.hszk-search-head input{flex:1;border:0;outline:none;font-family:var(--fbody);font-size:17px;color:var(--navy);background:none}
.hszk-search-head .hszk-modal-close{border:0;background:#f1f0f6;border-radius:8px;padding:6px 10px;cursor:pointer;font-family:var(--fbody);font-weight:700;font-size:12px;color:var(--slate)}
.hszk-search-results{max-height:52vh;overflow-y:auto;padding:8px}
.hszk-search-row{display:flex;align-items:center;gap:13px;width:100%;text-align:left;border:0;background:none;cursor:pointer;padding:12px 14px;border-radius:10px;font-family:var(--fbody);text-decoration:none}
.hszk-search-row:hover{background:var(--acc-soft)}
.hszk-search-row .grow{flex:1;min-width:0}
.hszk-search-row .t{display:block;font-weight:700;color:var(--navy);font-size:15.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hszk-search-row .c{font-size:12.5px;color:var(--slate)}
.hszk-search-row svg{color:var(--navy);flex:none}
.hszk-search-all{border-top:1px solid var(--hair);margin-top:4px}
.hszk-search-all .t{color:var(--acc-deep)}

/* =====================================================================
   WordPress-specific niceties
   ===================================================================== */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}
.screen-reader-text:focus{background:#fff;clip:auto;-webkit-clip-path:none;clip-path:none;color:var(--navy);display:block;font-weight:700;height:auto;left:5px;line-height:normal;padding:14px 22px;text-decoration:none;top:5px;width:auto;z-index:100000}
.entry-content{font-size:16.5px;line-height:1.66;color:#3c3b54}
.entry-content h2{font-family:var(--fdisp);font-weight:800;letter-spacing:-.02em;color:var(--navy);font-size:clamp(21px,2.3vw,27px);margin:30px 0 10px}
.entry-content h3{font-family:var(--fdisp);font-weight:800;color:var(--navy);font-size:20px;margin:24px 0 8px}
.entry-content p{margin:0 0 16px}
.entry-content a{color:var(--acc-deep);font-weight:600;text-decoration:underline}
.entry-content ul,.entry-content ol{margin:0 0 16px;padding-left:22px}
.entry-content li{margin:6px 0}
.entry-content img{border-radius:10px;height:auto}
.entry-content blockquote{border-left:3px solid var(--acc);margin:18px 0;padding:4px 0 4px 20px;color:var(--navy);font-weight:600}
/* Drop-in blocks (callout/letöltések/GYIK/folyamat) are wrapped in a CSS query
   container (hszk_block_cq) so they adapt to their OWN width — no post-type
   logic. Narrow (e.g. the article column): the inner .wrap drops its gutter and
   goes full-width, flush with the text. Wide (a page): the usual centred gutter.
   The article main column needs min-width:0 so a block never blows out the grid. */
.hszk-cq{container-type:inline-size}
.hszk-cq > .wrap{max-width:none;margin-left:0;margin-right:0;padding-left:0;padding-right:0}
@container (min-width:1000px){
  .hszk-cq > .wrap{max-width:1180px;margin-left:auto;margin-right:auto;padding-left:clamp(20px,4vw,44px);padding-right:clamp(20px,4vw,44px)}
}
.article-main{min-width:0}
.wp-caption{max-width:100%}
.wp-caption-text{font-size:13px;color:var(--slate);margin-top:6px}
.alignleft{float:left;margin:6px 22px 14px 0}
.alignright{float:right;margin:6px 0 14px 22px}
.aligncenter{display:block;margin-left:auto;margin-right:auto}
.pagination{display:flex;gap:8px;flex-wrap:wrap;margin-top:40px}
.pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 12px;border:1px solid var(--hair-strong);border-radius:10px;color:var(--navy);font-weight:700;text-decoration:none}
.pagination .page-numbers.current{background:var(--navy);color:#fff;border-color:var(--navy)}
.pagination .page-numbers:hover{border-color:var(--navy)}
.admin-bar .hdr{top:32px}
@media screen and (max-width:782px){ .admin-bar .hdr{top:46px} }

/* A nyomtatási (brosúra) szabályok a dedikált assets/css/print.css-ben élnek
   (media="print"). Itt csak a képernyős elrejtés marad. */
.hszk-print-only { display: none; }
