/* ==========================================================================
   Corvus – site template
   Sötét, éjszakai égbolt. Bootstrap nélkül; a tokenek a :root-ban.
   ========================================================================== */

/* --- Tokenek ------------------------------------------------------------ */
:root {
  --c-bg: #0B1020;
  --c-bg-deep: #080C18;
  --c-bg-section: #0E1426;
  --c-card: #141B30;
  --c-card-border: #2A3452;
  --c-inner: #1C2440;
  --c-line: #222B45;
  --c-line-strong: #2E3858;
  --c-text: #E8ECF5;
  --c-text-2: #C9D1E4;
  --c-text-muted: #A3ADC6;
  --c-placeholder: #8C97B3;
  --c-body-serif: #DCE2F0;
  --c-gold: #F2B544;
  --c-gold-hover: #FFD27A;
  --c-gold-bg: #2A2410;
  --c-blue: #7CC4F2;
  --c-blue-bg: #12263A;
  --c-warn: #F28B6B;
  --c-warn-bg: #3A1A12;

  --f-head: "Sora", system-ui, sans-serif;
  --f-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-serif: "Source Serif 4", Georgia, serif;
  /* Cikkszöveg mérete és sortávja – a Sablonstílus › Betűtípusok fül felülírja */
  --article-size: 19px;
  --article-lh: 1.75;

  --r-card: 16px;
  --r-card-sm: 14px;
  --r-btn: 10px;
  --r-pill: 999px;

  --container: 1200px;
  --gutter: 24px;
  --tap: 44px;

  /* Kártyaméretek – a sablonstílus „Kártyák” fülén felülírhatók (index.php inline :root) */
  --card-min: 260px;      /* cikk-kártya minimális szélessége (automatikus oszlopszámnál) */
  --card-gap: 20px;       /* rács térköze */
  --card-ratio: 16/10;    /* kártyakép oldalaránya */
  --panel-min: 300px;     /* kiemelt panel minimális szélessége */
  --panel-media-h: 140px; /* kiemelt panel fotójának magassága */

  color-scheme: dark;
}

@media (max-width: 640px) {
  :root { --gutter: 16px; }
}

/* --- Alap ---------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-padding-top: 88px; }

body {
  margin: 0;
  background: var(--c-bg);
  color: var(--c-text);
  font-family: var(--f-body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

img, svg, video { max-width: 100%; height: auto; }
img { display: block; }

a { color: var(--c-gold); text-underline-offset: 3px; }
a:hover { color: var(--c-gold-hover); }

:focus-visible {
  outline: 2px solid var(--c-gold);
  outline-offset: 3px;
  border-radius: 4px;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--f-head);
  font-weight: 600;
  line-height: 1.2;
  margin: 0 0 .5em;
  color: var(--c-text);
}
h1 { font-size: clamp(30px, 4.2vw, 44px); font-weight: 700; line-height: 1.15; }
h2 { font-size: clamp(22px, 2.6vw, 28px); }
h3 { font-size: 19px; }

p { margin: 0 0 1em; }

hr { border: 0; border-top: 1px solid var(--c-line); margin: 32px 0; }

::selection { background: var(--c-gold); color: var(--c-bg); }

.visually-hidden,
.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0;
}

.skip-link {
  position: absolute; left: 16px; top: -100px; z-index: 100;
  padding: 10px 16px; border-radius: var(--r-btn);
  background: var(--c-gold); color: var(--c-bg); font-weight: 600; text-decoration: none;
}
.skip-link:focus { top: 12px; color: var(--c-bg); }

.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.icon { flex-shrink: 0; vertical-align: middle; }

/* --- Gombok, címkék ------------------------------------------------------ */
.btn,
.button,
button.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: var(--tap);
  padding: 0 18px;
  border-radius: var(--r-btn);
  border: 1px solid transparent;
  background: var(--c-gold); color: var(--c-bg);
  font: 600 15px/1 var(--f-body);
  text-decoration: none;
  cursor: pointer;
  transition: background-color .15s, border-color .15s, color .15s;
}
.btn:hover, .button:hover { background: var(--c-gold-hover); color: var(--c-bg); }
.btn--ghost {
  background: transparent; color: var(--c-text);
  border-color: var(--c-line-strong); font-weight: 500; font-size: 14px;
}
.btn--ghost:hover { background: var(--c-inner); color: var(--c-text); border-color: var(--c-card-border); }
.btn--dark { background: var(--c-bg); color: var(--c-gold); }
.btn--dark:hover { background: #000; color: var(--c-gold-hover); }

.tag {
  display: inline-flex; align-items: center; align-self: flex-start;
  margin: 0;
  padding: 4px 10px;
  border-radius: var(--r-pill);
  background: var(--c-gold-bg); color: var(--c-gold);
  font: 600 13px/1.3 var(--f-body);
  text-decoration: none;
}
a.tag:hover { color: var(--c-gold-hover); }
.tag--blue { background: var(--c-blue-bg); color: var(--c-blue); }
.tag--muted { background: var(--c-inner); color: var(--c-text-muted); font-size: 12px; padding: 3px 9px; }
.tag--warn { background: var(--c-warn-bg); color: var(--c-warn); }

/* Nyíllal végződő „link-gomb” (Részletek és jelentkezés →) */
.link-arrow {
  display: inline-flex; align-items: center; gap: 6px;
  min-height: var(--tap);
  font-weight: 600; text-decoration: none;
}
.link-arrow::after {
  content: "";
  width: 18px; height: 18px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform .15s;
}
.link-arrow:hover::after { transform: translateX(3px); }

/* --- Fejléc -------------------------------------------------------------- */
.topbar { background: var(--c-bg-deep); border-bottom: 1px solid var(--c-line); font-size: 14px; color: var(--c-text-muted); }
.topbar .container { padding-block: 6px; }

.site-header {
  background: var(--c-bg);
  border-bottom: 1px solid var(--c-line);
  position: relative;
  z-index: 50;
}
.has-sticky-header .site-header { position: sticky; top: 0; }

/* Fejléc háttérkép (Sablonstílus › Fejléc háttér): alul a kép, fölötte sötétkék „füstüveg”
   (a háttérszín áttetszően + opcionális elmosás), legfelül a logó és a menü */
.has-header-image .site-header { isolation: isolate; }
.has-header-image .site-header::before,
.has-header-image .site-header::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
}
.has-header-image .site-header::before {
  background: var(--header-image) var(--header-pos, center) / cover no-repeat;
}
.has-header-image .site-header::after {
  background: rgb(11 16 32 / var(--header-tint, .75));
  -webkit-backdrop-filter: blur(var(--header-blur, 0px));
  backdrop-filter: blur(var(--header-blur, 0px));
}

.site-header__inner {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 12px 16px;
  padding-block: 16px;
}

.brand {
  display: flex; align-items: center; gap: 12px;
  color: var(--c-text); text-decoration: none;
  min-height: var(--tap);
}
.brand:hover { color: var(--c-text); }
.brand__logo { width: var(--logo-size, 88px); height: var(--logo-size, 88px); object-fit: contain; flex: 0 0 auto; }
.brand { flex: 0 1 auto; min-width: 0; }
.brand__text { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
/* Hosszú név (pl. „CORVUS Csillagászati Egyesület, Szlovákia”): két kiegyensúlyozott sorba tördel,
   hogy a menü a logó mellett, egy sorban maradjon */
.brand__name { font: 700 20px/1.15 var(--f-head); letter-spacing: .03em; max-width: 14em; text-wrap: balance; overflow-wrap: break-word; }
.brand__tagline { font-size: 12px; color: var(--c-text-muted); }

.site-header__tools { display: flex; align-items: center; gap: 8px; order: 3; flex: 0 0 auto; }
.site-nav { order: 2; margin-left: auto; }

@media (min-width: 1200px) {
  .site-header__inner { flex-wrap: nowrap; }
  .site-nav { flex: 0 1 auto; min-width: 0; }
}
/* Keskenyebb asztali kijelzőn kicsit tömörebb menü és név */
@media (min-width: 1200px) and (max-width: 1365px) {
  .brand__name { font-size: 18px; }
  .site-header .site-nav a, .site-header .site-nav .mod-menu__separator, .site-header .site-nav .mod-menu__toggle-sub { padding: 10px 9px; font-size: 15px; }
}

/* Főmenü: a core mod_menu kimenetét stílusozzuk (ul.mod-menu) */
.site-nav ul { list-style: none; margin: 0; padding: 0; }
.site-nav .mod-menu {
  display: flex; flex-wrap: wrap; align-items: center; gap: 4px;
}
.site-nav .mod-menu > li { position: relative; }
.site-nav a,
.site-nav .mod-menu__heading,
.site-nav .mod-menu__separator {
  display: flex; align-items: center;
  min-height: var(--tap);
  padding: 10px 14px;
  border-radius: 8px;
  color: var(--c-text-2);
  text-decoration: none;
  font-weight: 500;
  white-space: nowrap;
}
.site-nav a:hover { color: var(--c-text); background: var(--c-inner); }
.site-nav .current > a,
.site-nav .active > a { color: var(--c-gold); font-weight: 600; }

/* Almenü (pl. Táborok → Gyerektábor, Észlelőtábor) */
.site-nav .mod-menu__sub {
  position: absolute; left: 0; top: 100%;
  min-width: 220px;
  padding: 6px;
  background: var(--c-card);
  border: 1px solid var(--c-card-border);
  border-radius: 12px;
  box-shadow: 0 16px 40px rgba(0, 0, 0, .45);
  opacity: 0; visibility: hidden; transform: translateY(4px);
  transition: opacity .15s, transform .15s, visibility .15s;
  z-index: 60;
}
.site-nav li:hover > .mod-menu__sub,
.site-nav li:focus-within > .mod-menu__sub { opacity: 1; visibility: visible; transform: none; }
.site-nav .mod-menu__sub a { white-space: normal; }

/* Lenyíló menüpont-fejléc (pl. „Szervezeti élet”): a Joomla gombot generál köré (aria-expanded,
   a mod_menu JS „show-menu” osztállyal nyitja) – menülinkként nézzen ki, saját nyíllal */
.site-nav .mod-menu__toggle-sub {
  display: flex; align-items: center; gap: 6px;
  min-height: var(--tap); padding: 10px 14px; border: 0; border-radius: 8px;
  background: none; color: var(--c-text-2); font: inherit; font-weight: 500; cursor: pointer; white-space: nowrap;
}
.site-nav .mod-menu__toggle-sub .mod-menu__heading { display: inline; min-height: 0; padding: 0; color: inherit; font-weight: inherit; }
.site-nav .mod-menu__toggle-sub .icon-chevron-down { display: none; }
.site-nav .mod-menu__toggle-sub::after {
  content: ""; flex: 0 0 auto; width: 16px; height: 16px; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform .15s;
}
.site-nav .mod-menu__toggle-sub[aria-expanded="true"]::after { transform: rotate(180deg); }
.site-nav .mod-menu__toggle-sub:hover { color: var(--c-text); background: var(--c-inner); }
.site-nav .mod-menu__toggle-sub:focus-visible { outline: 2px solid var(--c-gold); outline-offset: 2px; }
.site-nav .active > .mod-menu__toggle-sub { color: var(--c-gold); font-weight: 600; }
/* gombos lenyílónál a fókusz nem tartja nyitva (a gomb második kattintása bezárja); egérrel a hover nyitja */
.site-nav li:has(> .mod-menu__toggle-sub):not(:hover):focus-within > .mod-menu__sub:not(.show-menu) { opacity: 0; visibility: hidden; }
.site-nav .mod-menu__sub.show-menu { opacity: 1; visibility: visible; transform: none; }
.site-nav .mod-menu__sub .current > a, .site-nav .mod-menu__sub .active > a { background: var(--c-gold-bg); }

/* Harmadik szint (pl. Szervezeti élet › Táborok › Gyerektáborok): asztali gépen oldalra nyíló almenü */
.site-nav .mod-menu__sub .mod-menu__toggle-sub { width: 100%; justify-content: space-between; white-space: normal; text-align: left; }
@media (min-width: 1200px) {
  .site-nav .mod-menu__sub .mod-menu__toggle-sub::after { transform: rotate(-90deg); }
  .site-nav .mod-menu__sub .mod-menu__toggle-sub[aria-expanded="true"]::after { transform: rotate(-90deg); }
  .site-nav .mod-menu__sub .mod-menu__sub { left: calc(100% + 6px); top: -7px; }
}

/* Nyelvváltó */
.lang-pills {
  display: flex; gap: 2px;
  list-style: none; margin: 0 0 0 4px; padding: 2px;
  border: 1px solid var(--c-line-strong); border-radius: 8px;
}
.lang-pills__item {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 40px; min-height: 40px;
  padding: 0 10px; border-radius: 6px;
  color: var(--c-text-muted); text-decoration: none;
  font-size: 14px; font-weight: 500;
}
a.lang-pills__item:hover { color: var(--c-text); background: var(--c-inner); }
.lang-pills__item.is-active { background: var(--c-inner); color: var(--c-text); font-weight: 600; }

/* Hamburger */
.nav-toggle {
  display: none;
  width: var(--tap); height: var(--tap);
  align-items: center; justify-content: center;
  padding: 0;
  border-radius: var(--r-btn);
  border: 1px solid var(--c-line-strong);
  background: var(--c-card); color: var(--c-text);
  cursor: pointer;
}
.nav-toggle .icon-close { display: none; }
.nav-toggle[aria-expanded="true"] .icon-menu { display: none; }
.nav-toggle[aria-expanded="true"] .icon-close { display: block; }

@media (max-width: 1199px) {
  .brand__tagline { display: none; }
  .js .nav-toggle { display: inline-flex; }
  .site-header__tools { order: 2; }
  .site-nav { order: 3; flex-basis: 100%; }
  .js .site-nav { display: none; }
  .js .site-nav.is-open { display: block; }

  .site-nav .mod-menu { flex-direction: column; align-items: stretch; gap: 2px; padding-block: 8px 4px; }
  .site-nav a { white-space: normal; font-size: 17px; }
  .site-nav .mod-menu__sub {
    position: static; opacity: 1; visibility: visible; transform: none;
    min-width: 0; padding: 0 0 0 16px;
    background: none; border: 0; box-shadow: none;
  }
  .site-nav .mod-menu__sub a { font-size: 16px; color: var(--c-text-muted); }
  .site-nav .mod-menu__toggle-sub { width: 100%; justify-content: space-between; font-size: 17px; white-space: normal; }
  /* mobilon az almenü csak lenyitva látszik (JS nélkül mindig) */
  .js .site-nav .mod-menu__toggle-sub + .mod-menu__sub:not(.show-menu) { display: none; }
  .site-nav .mod-menu__sub .mod-menu__toggle-sub { font-size: 16px; color: var(--c-text-muted); }

  .lang-pills { border: 0; padding: 0; }
  .lang-pills__item { min-width: var(--tap); min-height: var(--tap); }
  .lang-pills__item.is-active { display: none; } /* mobilon csak a másik nyelv: „SK” */
}

@media (max-width: 1199px) {
  .brand { flex: 1 1 0; }  /* a hamburger gomb a név mellett, ugyanabban a sorban marad */
}

@media (max-width: 640px) {
  .site-header__inner { padding-block: 12px; }
  .brand__logo { width: min(var(--logo-size, 88px), 56px); height: min(var(--logo-size, 88px), 56px); }
  .brand__name { font-size: 16px; letter-spacing: .02em; }
  .brand { gap: 10px; }
}

/* --- Kiemelt panelek (featured) ------------------------------------------ */
.featured-band {
  position: relative; overflow: hidden;
  background: var(--c-bg-deep);
  border-bottom: 1px solid var(--c-line);
}
.starfield { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.featured-band__inner {
  position: relative;
  display: flex; flex-direction: column; gap: 24px;
  padding-block: 40px 48px;
}
.featured-band__title { margin: 0; font-size: clamp(26px, 3vw, 34px); }

.featured-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(var(--panel-min), 100%), 1fr));
  gap: var(--card-gap);
}

.panel {
  display: flex; flex-direction: column;
  background: var(--c-card);
  border: 1px solid var(--c-card-border);
  border-radius: var(--r-card);
  overflow: hidden;
}
.panel__media { height: var(--panel-media-h); background: var(--c-inner); }
.panel__media img { width: 100%; height: 100%; object-fit: cover; }
.panel__body { display: flex; flex-direction: column; gap: 10px; flex-grow: 1; padding: 22px; color: var(--c-text-2); font-size: 15px; }
.panel__title { margin: 0; font-size: 21px; }
/* A tartalom elemei közvetlenül a flex-oszlopba kerülnek → a címke a cím fölé rendezhető */
.panel__content { display: contents; }
.panel__content > * { margin: 0; }
.panel__content > .tag { order: -1; }
.panel__content .meta { display: flex; align-items: center; gap: 8px; }
.panel__content .meta::before {
  content: ""; width: 18px; height: 18px; flex-shrink: 0; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E") center / contain no-repeat;
}
/* Az utolsó bekezdés linkje → nyíllal végződő link, a kártya aljára tolva */
.panel__content > p:last-child { margin-top: auto; }
.panel__content > p:last-child > a:only-child {
  display: inline-flex; align-items: center; gap: 6px;
  min-height: var(--tap); font-weight: 600; text-decoration: none;
}
.panel__content > p:last-child > a:only-child::after {
  content: ""; width: 18px; height: 18px; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* 2% – arany kártya */
.panel--gold { background: var(--c-gold); border-color: var(--c-gold); color: var(--c-bg); }
.panel--gold .panel__body { padding: 26px 24px; gap: 12px; color: var(--c-bg); }
.panel--gold .panel__big { font: 700 64px/1 var(--f-head); }
.panel--gold .panel__title,
.panel--gold .panel__content { color: var(--c-bg); }
.panel--gold .panel__content > p:last-child > a:only-child {
  align-self: flex-start;
  padding: 0 18px; border-radius: var(--r-btn);
  background: var(--c-bg); color: var(--c-gold);
}
.panel--gold .panel__content > p:last-child > a:only-child::after { display: none; }
.panel--gold .panel__content > p:last-child > a:only-child:hover { background: #000; color: var(--c-gold-hover); }
.panel--gold a { color: var(--c-bg); }
.panel--gold :focus-visible { outline-color: var(--c-bg); }

@media (max-width: 640px) {
  .featured-band__inner { padding-block: 24px 28px; gap: 14px; }
  .featured-grid { grid-template-columns: 1fr; gap: 14px; }
  .panel { border-radius: var(--r-card-sm); }
  .panel__media { height: calc(var(--panel-media-h) * .8); }
  .panel__body { padding: 16px; gap: 6px; }
  .panel__title { font-size: 18px; }
  .panel__content { font-size: 14px; gap: 6px; }

  /* 2% kompakt sávként */
  .panel--gold .panel__body {
    display: grid; grid-template-columns: auto 1fr; align-items: center;
    column-gap: 14px; row-gap: 2px; padding: 18px;
  }
  .panel--gold .panel__big { grid-row: span 2; font-size: 40px; }
  .panel--gold .panel__title { font-size: 16px; }
  .panel--gold .panel__content > :not(:last-child) { display: none; }
  .panel--gold .panel__content > p:last-child > a:only-child {
    min-height: 32px; padding: 0; background: none; color: var(--c-bg); text-decoration: underline;
  }
}

/* --- Szekciók, modulok ---------------------------------------------------- */
.section { padding-block: 48px 16px; }
.sky { padding-top: 56px; padding-bottom: 64px; }
.band--alt { background: var(--c-bg-section); border-top: 1px solid var(--c-line); margin-top: 48px; }
.band--alt .section { padding-block: 48px 64px; }

.mod-section + .mod-section { margin-top: 48px; }

.section-head {
  display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap;
  gap: 8px; margin-bottom: 24px;
}
.section-title { margin: 0; font-size: clamp(22px, 2.6vw, 28px); }
.section-head a { display: inline-flex; align-items: center; min-height: var(--tap); font-weight: 600; text-decoration: none; }
.section-head .section-date { font-size: 14px; color: var(--c-text-muted); }

/* Általános kártya (oldalsáv modulok, „Az ég most” kártyák) */
.card {
  background: var(--c-card);
  border: 1px solid var(--c-card-border);
  border-radius: var(--r-card);
}
.mod-card { padding: 20px; display: flex; flex-direction: column; gap: 14px; }
.card__title { margin: 0; font-size: 18px; }
.card__body > :last-child { margin-bottom: 0; }
.card__body ul { margin: 0; padding-left: 1.2em; }
.card--gold { background: var(--c-gold); border-color: var(--c-gold); color: var(--c-bg); }
.card--gold .card__title, .card--gold a { color: var(--c-bg); }
.card--gold .big { display: block; font: 700 40px/1 var(--f-head); margin-bottom: 8px; }

/* Belső „adatdoboz” (Következő telihold stb.) */
.stat-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.stat { background: var(--c-inner); border-radius: var(--r-btn); padding: 10px 12px; }
.stat__label { display: block; font-size: 12px; color: var(--c-text-muted); }
.stat__value { font-weight: 600; }

/* --- „Az ég most” kártya (mod_corvus_sky): felül Nap, alul Hold ------------ */
.sky-card { display: flex; flex-direction: column; gap: 18px; }
.sky-card__date { margin: -8px 0 0; font-size: 14px; color: var(--c-text-muted); }
.sky-block { display: flex; flex-direction: column; gap: 14px; }
.sky-block--moon { padding-top: 18px; border-top: 1px solid var(--c-card-border); }
.sky-block__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.sky-block__title { margin: 0; font-size: 17px; }
.sky-badge {
  font-size: 12px; font-weight: 600; padding: 3px 9px; border-radius: 999px;
  background: var(--c-inner); color: var(--c-text-muted); white-space: nowrap;
}
.sky-block__main { display: flex; align-items: center; gap: 16px; }
.sky-figure { flex: 0 0 auto; width: 108px; height: 108px; display: block; }
.sky-figure--sun { border-radius: 50%; overflow: hidden; background: #000; }
.sky-figure--sun img { width: 100%; height: 100%; object-fit: cover; display: block; transform: scale(1.06); }
.sky-figure--sun:focus-visible { outline: 2px solid var(--c-gold); outline-offset: 3px; }
.sky-facts { margin: 0; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.sky-facts dt { font-size: 12px; line-height: 1.3; color: var(--c-text-muted); }
.sky-facts dd { margin: 0; font-size: 15px; line-height: 1.3; color: var(--c-text-2); }
.sky-facts strong { color: var(--c-text); font-size: 16px; }
.sky-facts__name dd { font: 600 20px/1.2 var(--f-head); color: var(--c-text); margin-bottom: 2px; }
.sky-kp { font-size: 13px; color: var(--c-text-muted); white-space: nowrap; }
.stat__sub { display: block; font-size: 13px; color: var(--c-text-2); }
.sky-kp--active { color: var(--c-gold); }
.sky-kp--storm { color: #FF9C7A; font-weight: 600; }
.sky-note { margin: -4px 0 0; font-size: 13px; color: var(--c-text-muted); display: flex; flex-wrap: wrap; gap: 2px 8px; }
.sky-note__place::before { content: "·"; margin-right: 8px; }
.sky-note__place:first-child::before { content: none; }
.sky-note:empty { display: none; }
.sky-credit { margin: 0; font-size: 12px; color: var(--c-text-muted); }

.sky-card { container-type: inline-size; }

/* Az „Az ég most” sávban (sky pozíció) a modul maga a kártya; széles kártyán
   a Nap és a Hold sora vízszintesen kiterül (kép + adatok | időpontok). */
.sky .sky-card {
  background: var(--c-card); border: 1px solid var(--c-card-border);
  border-radius: var(--r-card); padding: 22px;
}
.sky .section-head { margin-bottom: 20px; }
.sky .sky-card__date { display: none; } /* a sáv fejlécében már látszik */
.sky-row { display: flex; flex-wrap: wrap; gap: 20px; align-items: stretch; }
.sky-row > * { flex: 1 1 340px; min-width: 0; }
.sky-row > .sky-card { flex: 1 1 340px; }
.sky-row > .sky-tip { flex: 1.6 1 420px; }

/* Havi észlelési ajánlat kártya (mod_articles › corvus:ajanlat) */
.sky-tip { padding: 22px; display: flex; flex-direction: column; gap: 16px; }
.sky-badge--gold { background: var(--c-gold-bg, #2A2410); color: var(--c-gold); }
.sky-tip__list { margin: 0; display: flex; flex-direction: column; gap: 14px; }
.sky-tip__row { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 4px 14px; align-items: baseline; }
.sky-tip__row dt { font-size: 13px; font-weight: 600; color: var(--c-gold); }
.sky-tip__row dd { margin: 0; font-size: 15px; line-height: 1.55; color: var(--c-text-2); }
.sky-tip__text { margin: 0; color: var(--c-text-2); }
.sky-tip__more {
  margin-top: auto; align-self: flex-start; display: inline-flex; align-items: center; gap: 6px;
  min-height: var(--tap); font-weight: 600; text-decoration: none;
}
.sky-tip__more:hover svg { transform: translateX(3px); }
.sky-tip__more svg { transition: transform .15s; }
@media (max-width: 480px) {
  .sky-tip { padding: 18px; }
  .sky-tip__row { grid-template-columns: 1fr; }
}
@container (min-width: 620px) {
  .sky-block { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 14px 32px; }
  .sky-block__head, .sky-block .sky-note { grid-column: 1 / -1; }
  .sky-block .sky-note { margin-top: -2px; }
  .sky-block--moon { padding-top: 22px; }
  .sky-figure { width: 120px; height: 120px; }
  .sky-block__main { gap: 24px; }
}
@container (max-width: 300px) {
  .sky-figure { width: 92px; height: 92px; }
  .sky-block__main { gap: 14px; }
}

/* --- Kártyarács: cikkek ---------------------------------------------------- */
.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(var(--card-min), 100%), 1fr));
  gap: var(--card-gap);
}

/* Fix oszlopszám (≥1024px).
   1) sablonszintű alapérték: <body class="cards-cols-N">
   2) menüpontonként (Blog/Kiemelt › Oszlopok ≥ 2): .card-grid--cols-N – ez erősebb, ezért utána áll.
   Kisebb kijelzőn a min. szélesség szerinti automatikus tördelés marad. */
@media (min-width: 1024px) {
  .cards-cols-2 .card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cards-cols-3 .card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cards-cols-4 .card-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .card-grid.card-grid--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .card-grid.card-grid--cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .card-grid.card-grid--cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .card-grid.card-grid--cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .card-grid.card-grid--cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
@media (min-width: 641px) and (max-width: 1023px) {
  /* Tableten 3+ oszlop helyett legfeljebb 2 */
  [class*="cards-cols-"] .card-grid,
  .card-grid[class*="card-grid--cols-"] { grid-template-columns: repeat(auto-fill, minmax(min(var(--card-min), 100%), 1fr)); }
}

.card-grid__item { display: flex; min-width: 0; }
.card-grid__item--lead { grid-column: 1 / -1; }

.post-card {
  position: relative;
  display: flex; flex-direction: column;
  width: 100%;
  border-radius: var(--r-card-sm);
  overflow: hidden;
  transition: border-color .15s, transform .15s;
}
.post-card:hover { border-color: #3A4566; transform: translateY(-2px); }
.post-card:focus-within { border-color: var(--c-gold); }
.post-card__media {
  aspect-ratio: var(--card-ratio);
  background:
    radial-gradient(circle at 30% 35%, rgba(232, 236, 245, .5) 0 1px, transparent 1.5px) 0 0 / 46px 46px,
    radial-gradient(circle at 70% 70%, rgba(232, 236, 245, .35) 0 1px, transparent 1.5px) 0 0 / 70px 70px,
    var(--c-inner);
}
.post-card__media { position: relative; overflow: hidden; flex-shrink: 0; }
.post-card__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.post-card__body { display: flex; flex-direction: column; gap: 8px; flex-grow: 1; padding: 18px; }
.post-card__meta { margin: 0; font-size: 13px; color: var(--c-text-muted); }
.post-card__title { margin: 0; font-size: 18px; line-height: 1.3; }
.post-card__link { color: var(--c-text); text-decoration: none; }
.post-card__link::after { content: ""; position: absolute; inset: 0; z-index: 1; } /* egész kártya kattintható */
.post-card__link:hover { color: var(--c-text); }
.post-card__link:focus-visible { outline: none; }
.post-card__text { margin: 0; font-size: 15px; color: var(--c-text-2); }
.post-card__more {
  margin-top: auto;
  display: inline-flex; align-items: center; gap: 6px;
  min-height: var(--tap);
  color: var(--c-gold); font-weight: 600;
}
.post-card:hover .post-card__more { color: var(--c-gold-hover); }
.post-card .icons, .post-card .tag { position: relative; z-index: 2; }

.card-grid__item--lead .post-card { flex-direction: row; }
.card-grid__item--lead .post-card__media { flex: 0 0 50%; aspect-ratio: auto; min-height: 280px; }
.card-grid__item--lead .post-card__body { padding: 28px; }
.card-grid__item--lead .post-card__title { font-size: 26px; }

@media (max-width: 760px) {
  .card-grid__item--lead .post-card { flex-direction: column; }
  .card-grid__item--lead .post-card__media { aspect-ratio: var(--card-ratio); min-height: 0; }
}

/* Mobilon a hírek kis képes listaként */
@media (max-width: 640px) {
  .card-grid--news { grid-template-columns: 1fr; gap: 12px; }
  .card-grid--news .post-card { flex-direction: row; gap: 12px; padding: 10px; border-radius: 12px; }
  .card-grid--news .post-card__media { flex: 0 0 96px; height: 80px; aspect-ratio: auto; border-radius: 8px; overflow: hidden; }
  .card-grid--news .post-card__body { padding: 0; gap: 4px; min-width: 0; }
  .card-grid--news .post-card__meta { font-size: 12px; }
  .card-grid--news .post-card__title { font-size: 15px; }
  .card-grid--news .post-card__text,
  .card-grid--news .post-card__more { display: none; }
}

/* --- Oldaltörzs, oldalsávok ---------------------------------------------- */
.page-body { flex: 1 0 auto; padding-block: 24px 64px; }
.is-home .page-body { padding-top: 48px; padding-bottom: 16px; }
.main-top { margin-bottom: 32px; }
.main-bottom { margin-top: 48px; }

.page-grid { display: flex; flex-wrap: wrap; gap: 48px; align-items: flex-start; }
.page-main { flex: 999 1 560px; min-width: 0; }
.page-main:focus { outline: none; }
.sidebar { flex: 1 1 280px; display: flex; flex-direction: column; gap: 20px; }
.sidebar--left { order: -1; }

.page-header { margin-bottom: 28px; }
.page-title { margin: 0; }
.page-subtitle { margin: 8px 0 0; font-size: 22px; color: var(--c-text-2); }

/* Morzsamenü (core mod_breadcrumbs kimenet) */
.breadcrumbs-bar { padding-top: 32px; }
.mod-breadcrumbs {
  display: flex; flex-wrap: wrap; gap: 8px;
  list-style: none; margin: 0; padding: 0;
  font-size: 14px; color: var(--c-text-muted);
}
.mod-breadcrumbs__here, .mod-breadcrumbs__divider { display: none; }
.mod-breadcrumbs .breadcrumb-item + .breadcrumb-item::before { content: "/"; margin-right: 8px; color: var(--c-text-muted); }
.mod-breadcrumbs a { text-decoration: none; }
.mod-breadcrumbs .active { color: var(--c-text-2); }

/* --- Cikkoldal ------------------------------------------------------------ */
.article { display: flex; flex-direction: column; gap: 24px; }
.article__header { display: flex; flex-direction: column; gap: 14px; }
.article__title { margin: 0; }
.article__meta {
  display: flex; flex-wrap: wrap; gap: 6px 20px;
  list-style: none; margin: 0; padding: 0;
  font-size: 14px; color: var(--c-text-muted);
}
.article__meta li { display: inline-flex; align-items: center; gap: 6px; }
.article__meta .icon { color: var(--c-gold); }

.article__image { margin: 0; }
.article__image img {
  width: 100%; max-height: 560px; object-fit: cover;
  border-radius: var(--r-card); border: 1px solid var(--c-card-border);
}
.article__image figcaption { margin-top: 8px; font-size: 14px; color: var(--c-text-muted); }

.share-bar {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
  padding-top: 20px; border-top: 1px solid var(--c-line);
}
.share-bar__label { font-size: 14px; color: var(--c-text-muted); margin-right: 6px; }

/* Szövegtörzs */
/* A szövegtörzs a tartalomoszlop teljes szélességét kitölti – ugyanolyan széles, mint a kártyarács */
.prose { color: var(--c-text-2); }
.prose--serif {
  font-family: var(--f-serif);
  font-size: var(--article-size); line-height: var(--article-lh);
  color: var(--c-body-serif);
}
/* Sorkizárt bekezdések, magyar elválasztással (a <html lang> alapján) – a széles sorok ne legyenek „lyukasak” */
.prose--serif p, .prose--serif li, .prose--serif blockquote {
  text-align: justify;
  hyphens: auto; -webkit-hyphens: auto;
  hyphenate-limit-chars: 6 3 3;
}
/* Telefonon a keskeny sorokban a sorkizárás nagy szóközöket hagyna (nem minden böngésző választ el magyarul) */
@media (max-width: 640px) {
  .prose--serif p, .prose--serif li, .prose--serif blockquote { text-align: left; }
}
.prose > * { margin: 0 0 20px; }
.prose > :last-child { margin-bottom: 0; }
.prose h2, .prose h3, .prose h4 { margin: 32px 0 12px; color: var(--c-text); }
.prose h2 { font-size: 24px; }
.prose h3 { font-size: 20px; }
.prose ul, .prose ol { padding-left: 1.4em; }
.prose li + li { margin-top: 6px; }
.prose blockquote {
  margin: 8px 0 28px; padding: 4px 0 4px 24px;
  border-left: 3px solid var(--c-gold);
  font-style: italic; color: var(--c-text);
}
.prose img { border-radius: 12px; height: auto; }
/* Szövegbe illesztett kis képek (pl. a régi oldal e-mail-cím képe): maradjanak a sorban */
.prose img[style*="vertical-align"], .prose img.inline, .prose img[src*="corvusmail"] {
  display: inline; vertical-align: middle; border-radius: 0; margin: 0 2px;
}
.prose figure { margin: 28px 0; }
.prose figcaption { font-family: var(--f-body); font-size: 14px; color: var(--c-text-muted); margin-top: 8px; }
.prose table { width: 100%; border-collapse: collapse; font-family: var(--f-body); font-size: 15px; }
.prose th, .prose td { padding: 10px 12px; border-bottom: 1px solid var(--c-line); text-align: left; }
.prose th { color: var(--c-text); }
.prose a { text-decoration: underline; }
/* A régi oldalról átvett, balra/jobbra úsztatott képek */
.prose img[style*="float: left"], .prose img[align="left"], .prose .float-start { float: left; margin: 6px 24px 16px 0; max-width: 45%; }
.prose img[style*="float: right"], .prose img[align="right"], .prose .float-end { float: right; margin: 6px 0 16px 24px; max-width: 45%; }
.prose::after { content: ""; display: table; clear: both; }
/* Kiemelések (a régi oldal sárga / világoskék színes szövegei) */
.prose .hl { color: var(--c-gold); }
.prose .hl-blue { color: var(--c-blue); }
.prose strong, .prose b { color: var(--c-text); }
/* Régi előadás-táblázatok: a cellák inline szélességei ne törjék szét a mobil nézetet */
.prose table { margin: 8px 0 28px; border: 0; height: auto !important; }
.prose td, .prose th { vertical-align: top; border: 0; border-bottom: 1px solid var(--c-line); height: auto !important; }
.prose td img { float: none !important; max-width: none; margin: 0; border-radius: 8px; }
.prose tr:first-child td { color: var(--c-text); font-weight: 600; }

@media (max-width: 640px) {
  .prose--serif { font-size: max(15px, calc(var(--article-size) - 1px)); }
  .prose img[style*="float"], .prose img[align] { float: none !important; max-width: 100%; margin: 16px 0; }
  .prose table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; font-size: 14px; }
  .prose td, .prose th { min-width: 110px; }
}

/* --- Előadás-program (plg_content_eloadasok) ------------------------------- */
.lecture-program {
  margin: 8px 0 28px;
  font-family: var(--f-body); font-size: 16px; line-height: 1.55;
}
.lecture-day + .lecture-day { margin-top: 28px; }
.prose .lecture-day__title,
.lecture-day__title {
  margin: 0 0 12px; font: 600 18px/1.3 var(--f-head); color: var(--c-gold);
  display: flex; align-items: center; gap: 12px;
}
.lecture-day__title::after { content: ""; flex: 1; height: 1px; background: var(--c-line-strong); }
.prose .lecture-list, .lecture-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.prose .lecture-list li + li { margin-top: 0; }
.lecture {
  display: grid; grid-template-columns: 72px 1fr; gap: 16px; align-items: start;
  padding: 16px; background: var(--c-card); border: 1px solid var(--c-card-border); border-radius: var(--r-card-sm);
}
.lecture:not(:has(.lecture__img)) { grid-template-columns: 1fr; }
.prose .lecture__img, .lecture__img {
  width: 72px; height: 72px; object-fit: cover; border-radius: 12px; background: var(--c-inner);
  float: none; margin: 0; max-width: none;
}
.lecture__body > * { margin: 0; }
.lecture__time {
  display: inline-block; margin-bottom: 6px !important; padding: 2px 10px; border-radius: var(--r-pill);
  background: var(--c-blue-bg); color: var(--c-blue); font-size: 13px; font-weight: 600;
}
.prose .lecture__title, .lecture__title { margin: 0 0 2px; font: 600 17px/1.35 var(--f-head); color: var(--c-text); }
.lecture__speaker { color: var(--c-text-muted); font-size: 14px; }
.lecture__desc { margin-top: 8px !important; color: var(--c-text-2); font-size: 15px; }

@media (max-width: 640px) {
  .lecture { grid-template-columns: 56px 1fr; gap: 12px; padding: 14px; }
  .prose .lecture__img, .lecture__img { width: 56px; height: 56px; }
}

/* Cikklapozás (Előző / Következő) */
.pagenavigation .pagination { display: flex; justify-content: space-between; gap: 12px; }
/* Előző/következő cikk gomb: a teljes „Következő cikk: …” felirat csak felolvasóknak (visually-hidden),
   látható a rövid „Előző/Következő” + saját SVG nyíl (Font Awesome nélkül) */
.pagenavigation .btn { display: inline-flex; align-items: center; gap: 6px; }
.pagenavigation .next { margin-left: auto; }
.pagenavigation [class*="icon-chevron"] {
  display: inline-block; width: 16px; height: 16px; flex: 0 0 auto; background: currentColor;
  -webkit-mask: var(--pn-icon) center / contain no-repeat; mask: var(--pn-icon) center / contain no-repeat;
}
.pagenavigation [class*="icon-chevron"]::before { content: none !important; }
.pagenavigation .icon-chevron-left {
  --pn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 6l-6 6 6 6'/%3E%3C/svg%3E");
}
.pagenavigation .icon-chevron-right {
  --pn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E");
}

/* --- Lapozó (core joomla.pagination kimenet) ------------------------------ */
.pagination-wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 40px; }
.pagination-counter { margin: 0; font-size: 14px; color: var(--c-text-muted); }
.pagination { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0; }
.page-link {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: var(--tap); min-height: var(--tap); padding: 0 12px;
  border-radius: var(--r-btn); border: 1px solid var(--c-line-strong);
  color: var(--c-text-2); text-decoration: none;
}
a.page-link:hover { background: var(--c-inner); color: var(--c-text); }
.page-item.active .page-link { background: var(--c-gold); border-color: var(--c-gold); color: var(--c-bg); font-weight: 600; }
.page-item.disabled .page-link { opacity: .45; }
/* Első / előző / következő / utolsó: a core icon-angle-* elemekbe saját SVG nyíl (Font Awesome nélkül).
   A gomb funkcióját a linkek aria-label-je mondja meg a felolvasóknak, a title egérrel is mutatja. */
.pagination [class*="icon-angle"] {
  display: inline-block; width: 18px; height: 18px; flex: 0 0 auto; background: currentColor;
  -webkit-mask: var(--pg-icon) center / contain no-repeat; mask: var(--pg-icon) center / contain no-repeat;
}
.pagination [class*="icon-angle"]::before { content: none !important; }
.pagination .icon-angle-left {
  --pg-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 6l-6 6 6 6'/%3E%3C/svg%3E");
}
.pagination .icon-angle-right {
  --pg-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E");
}
.pagination .icon-angle-double-left {
  --pg-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 6l-6 6 6 6M18 6l-6 6 6 6'/%3E%3C/svg%3E");
}
.pagination .icon-angle-double-right {
  --pg-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 6l6 6-6 6M6 6l6 6-6 6'/%3E%3C/svg%3E");
}

/* --- Alkategóriák, „további cikkek” lista --------------------------------- */
.cat-children { margin-top: 48px; }
.cat-children .com-content-category-blog__child,
.cat-children > div { padding: 14px 0; border-bottom: 1px solid var(--c-line); }
.items-more { margin-top: 32px; }
.items-more ol, .items-more ul { padding-left: 1.2em; }

/* --- Rendszerüzenetek, értesítések ---------------------------------------- */
.notice,
#system-message-container joomla-alert,
#system-message-container .alert {
  display: block;
  margin: 0 0 24px; padding: 14px 18px;
  border-radius: 12px;
  background: var(--c-card); border: 1px solid var(--c-card-border); border-left: 3px solid var(--c-blue);
  color: var(--c-text-2);
}
#system-message-container joomla-alert[type="danger"],
#system-message-container joomla-alert[type="error"] { border-left-color: var(--c-warn); }
#system-message-container joomla-alert[type="success"] { border-left-color: #6BD49A; }
#system-message-container joomla-alert[type="warning"] { border-left-color: var(--c-gold); }
#system-message-container .joomla-alert--close,
#system-message-container .btn-close { float: right; background: none; border: 0; color: var(--c-text-muted); font-size: 22px; cursor: pointer; }

/* --- Űrlapok (kapcsolat, bejelentkezés) ----------------------------------- */
label, .control-label { display: block; margin-bottom: 6px; font-weight: 500; color: var(--c-text-2); }
input[type="text"], input[type="email"], input[type="password"], input[type="search"], input[type="tel"], input[type="url"],
input[type="number"], input[type="date"], select, textarea, .form-control, .form-select {
  width: 100%; max-width: 560px;
  min-height: var(--tap); padding: 10px 14px;
  border-radius: var(--r-btn); border: 1px solid var(--c-line-strong);
  background: var(--c-bg-deep); color: var(--c-text);
  font: 400 16px/1.4 var(--f-body);
}
textarea, textarea.form-control { min-height: 140px; resize: vertical; }
input:focus, select:focus, textarea:focus, .form-control:focus { outline: 2px solid var(--c-gold); outline-offset: 1px; border-color: var(--c-gold); }
.control-group, .mb-3 { margin-bottom: 18px; }
.input-group { display: flex; align-items: stretch; max-width: 560px; }
.input-group > .form-control, .input-group > input { flex: 1 1 auto; min-width: 0; border-top-right-radius: 0; border-bottom-right-radius: 0; }
.input-group > .btn, .input-group > button {
  border-top-left-radius: 0; border-bottom-left-radius: 0;
  background: var(--c-inner); color: var(--c-text-2); border: 1px solid var(--c-line-strong); border-left: 0;
  padding: 0 14px;
}
.input-group > .btn:hover { background: var(--c-card-border); color: var(--c-text); }
.form-check { display: flex; align-items: center; gap: 8px; }
.form-check-input { width: 20px; height: 20px; accent-color: var(--c-gold); }
fieldset { border: 0; padding: 0; margin: 0 0 24px; }
legend { font: 600 20px/1.3 var(--f-head); margin-bottom: 16px; }
.btn-primary { background: var(--c-gold); color: var(--c-bg); }
.btn-secondary { background: transparent; color: var(--c-text); border-color: var(--c-line-strong); }
.invalid { border-color: var(--c-warn) !important; }
.form-control-feedback, .invalid-feedback { color: var(--c-warn); font-size: 14px; }
.star { color: var(--c-gold); }

/* Szerkesztő-ikonok (bejelentkezett szerkesztőknek) */
.icons { display: flex; gap: 8px; }
.icons .btn, .icons a { font-size: 13px; min-height: 32px; padding: 0 10px; }
.system-unpublished { opacity: .7; }

/* Címkék (com_tags) */
.tags { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.tags .btn-info, .tags a { display: inline-flex; padding: 4px 10px; border-radius: var(--r-pill); background: var(--c-blue-bg); color: var(--c-blue); font-size: 13px; text-decoration: none; }

/* --- Lábléc ---------------------------------------------------------------- */
.site-footer { margin-top: auto; background: var(--c-bg-deep); border-top: 1px solid var(--c-line); }
.site-footer__inner {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 32px;
  padding-block: 40px;
}
.site-footer__brand { display: flex; flex-direction: column; gap: 8px; max-width: 360px; }
.site-footer__brand .brand__name { font-size: 20px; }
.site-footer__org { margin: 0; font-size: 14px; color: var(--c-text-muted); }
.site-footer__cols { display: flex; flex-wrap: wrap; gap: 32px 48px; font-size: 14px; flex: 1 1 auto; }
.footer-col { display: flex; flex-direction: column; gap: 10px; flex: 1 1 200px; max-width: 300px; line-height: 1.55; }
/* Az első oszlop (Egyesület: hivatalos név, cím) szélesebb, hogy kevesebb sorra törjön */
.footer-col:first-child { flex: 1.8 1 380px; max-width: 460px; }
.footer-col:nth-child(2) { flex-basis: 270px; max-width: 320px; }  /* két e-mail-cím egy-egy sorban */
.footer-col__title { margin-bottom: -2px !important; }
.footer-col__title { margin: 0; color: var(--c-text-muted); font-weight: 600; }
.footer-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.footer-col a { text-decoration: none; }
.footer-col p { margin: 0; }

@media (max-width: 640px) {
  .site-footer__inner { flex-direction: column; gap: 16px; padding-block: 28px; }
  .site-footer__cols { flex-direction: column; gap: 16px; }
  .footer-col, .footer-col:first-child, .footer-col:nth-child(2) { flex: none; max-width: none; }  /* oszlopirányban a flex-basis magasság lenne → üres sáv */
  .footer-col ul { flex-direction: row; flex-wrap: wrap; gap: 4px 20px; }
  .footer-col a { display: inline-flex; align-items: center; min-height: var(--tap); }
}

/* --- Hibaoldal --------------------------------------------------------------- */
.error-page { flex: 1 0 auto; display: flex; align-items: center; position: relative; overflow: hidden; background: var(--c-bg-deep); }
.error-page__inner { position: relative; padding-block: 96px; }
.error-page__code { font: 700 clamp(72px, 14vw, 140px)/1 var(--f-head); color: var(--c-gold); margin: 0 0 12px; }
.error-page__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }

/* --- Mozgáscsökkentés, nyomtatás --------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

@media print {
  :root { --c-text: #000; --c-text-2: #222; --c-body-serif: #000; --c-text-muted: #444; }
  body { background: #fff; color: #000; }
  .site-header, .featured-band, .sky, .breadcrumbs-bar, .sidebar, .share-bar, .band--alt, .site-footer, .skip-link, .main-top, .main-bottom { display: none !important; }
  .page-body { padding: 0; }
  .prose--serif { font-size: 12pt; max-width: none; }
  a { color: #000; }
  .tag { background: none; color: #000; padding: 0; }
}

/* --- Galéria (Phoca Gallery override-ok + mod_corvus_gallerytree) ---------- */
.gallery { display: flex; flex-direction: column; gap: 24px; }
.gallery__head { display: flex; flex-direction: column; gap: 8px; }
.gallery__head--album { flex-direction: row; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 8px 24px; }
.gallery__headtext { display: flex; flex-direction: column; gap: 8px; max-width: 720px; }
.gallery__title { margin: 0; font-size: clamp(30px, 4vw, 40px); line-height: 1.15; }
.gallery__intro { color: var(--c-text-2); max-width: 680px; }
.gallery__intro > :last-child { margin-bottom: 0; }
.gallery__intro > :first-child { margin-top: 0; }
.gallery__bar { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.gallery__subtitle { margin: 0 0 16px; font-size: clamp(20px, 2.4vw, 24px); }
.gallery__bar .gallery__subtitle { margin: 0; }
.gallery__summary { margin: 0; font-size: 14px; color: var(--c-text-muted); }
.gallery__empty {
  margin: 0; padding: 24px; border: 1px dashed var(--c-card-border); border-radius: var(--r-card);
  color: var(--c-text-muted); text-align: center;
}

/* Mappakártyák */
.gallery__folders { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr)); gap: 18px; }
.gfolder { display: flex; flex-direction: column; gap: 8px; color: var(--c-text); text-decoration: none; }
.gfolder__media {
  position: relative; display: flex; align-items: center; justify-content: center;
  aspect-ratio: 4 / 3; border-radius: 12px; overflow: hidden;
  background: var(--c-inner); border: 1px solid var(--c-card-border); color: #5C6888;
  transition: border-color .15s;
}
.gfolder__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.gfolder__badge {
  position: absolute; top: 10px; left: 10px; font-size: 12px; font-weight: 600; line-height: 1.4;
  padding: 3px 9px; border-radius: 999px; background: var(--c-bg); color: var(--c-gold);
}
.gfolder__title { margin: 0; font: 600 16px/1.3 var(--f-head); color: var(--c-text); }
.gfolder__meta { margin-top: -4px; font-size: 13px; color: var(--c-text-muted); }
.gfolder:hover .gfolder__media, .gfolder:focus-visible .gfolder__media { border-color: var(--c-gold); }
.gfolder:hover img { transform: scale(1.04); }
.gfolder:hover .gfolder__title { color: var(--c-gold-hover, #FFD27A); }
.gfolder:focus-visible { outline: none; }
.gfolder:focus-visible .gfolder__media { outline: 2px solid var(--c-gold); outline-offset: 3px; }

/* Falszerű képrács (masonry, CSS hasábokkal) */
.gallery__wall { list-style: none; margin: 0; padding: 0; columns: 4 220px; column-gap: 12px; }
.gallery__tile { break-inside: avoid; margin: 0 0 12px; }
.gallery__link {
  display: block; border-radius: 12px; overflow: hidden; border: 1px solid var(--c-card-border);
  background: var(--c-inner); cursor: zoom-in;
}
.gallery__link img { display: block; width: 100%; height: auto; transition: transform .3s, opacity .2s; }
.gallery__link:hover img { transform: scale(1.03); }
.gallery__link:focus-visible { outline: 2px solid var(--c-gold); outline-offset: 2px; }
@media (max-width: 480px) { .gallery__wall { columns: 2; column-gap: 8px; } .gallery__tile { margin-bottom: 8px; } }

/* Lightbox */
.lightbox {
  width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0;
  background: #05070F; color: var(--c-text-2);
}
.lightbox[open] { display: flex; flex-direction: row; }
.lightbox__main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.lightbox__tools { display: flex; gap: 8px; }
.lightbox__btn[aria-pressed="true"] { border-color: var(--c-gold); color: var(--c-gold); background: var(--c-gold-bg); }
.lightbox::backdrop { background: #05070F; }
html.has-lightbox { overflow: hidden; }
.lightbox__bar { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; font-size: 14px; }
.lightbox__stage { flex: 1 1 auto; min-height: 0; display: flex; align-items: center; justify-content: center; gap: 16px; padding: 0 16px; }
.lightbox__figure { flex: 1 1 auto; min-width: 0; height: 100%; margin: 0; display: flex; align-items: center; justify-content: center; }
.lightbox__img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 8px; transition: opacity .2s; }
.lightbox__img.is-loading { opacity: .35; }
.lightbox__btn {
  flex: 0 0 auto; width: 44px; height: 44px; padding: 0; display: inline-flex; align-items: center; justify-content: center;
  border-radius: 10px; border: 1px solid var(--c-line-strong); background: var(--c-card); color: var(--c-text); cursor: pointer;
}
.lightbox__btn:hover { border-color: var(--c-gold); color: var(--c-gold); }
.lightbox__btn:focus-visible { outline: 2px solid var(--c-gold); outline-offset: 2px; }
.lightbox__nav { width: 48px; height: 48px; border-radius: 50%; }
.lightbox__caption { margin: 0; padding: 14px 16px 18px; text-align: center; font-size: 15px; }
/* Adatpanel („i”): asztali gépen a kép mellett, mobilon alulról felcsúszva */
.lightbox__info {
  flex: 0 0 380px; display: flex; flex-direction: column; min-height: 0; overflow-y: auto; overscroll-behavior: contain;
  background: var(--c-bg); border-left: 1px solid var(--c-line); color: var(--c-text-2); font-size: 15px; text-align: left;
}
.lightbox__info[hidden] { display: none; }
.lb-info__head { padding: 20px 20px 16px; border-bottom: 1px solid var(--c-line); }
.lb-info__title { margin: 0 0 4px; font: 700 21px/1.25 var(--f-head); color: var(--c-text); overflow-wrap: anywhere; }
.lb-info__date { margin: 0; color: var(--c-text-2); }
.lb-info__counter { margin: 4px 0 0; font-size: 13px; color: var(--c-text-muted); }
.lb-info__desc { margin: 0; padding: 16px 20px; border-bottom: 1px solid var(--c-line); line-height: 1.55; }
.lb-info__group { padding: 16px 20px; border-bottom: 1px solid var(--c-line); }
.lb-info__label { margin: 0 0 10px; font: 600 12px/1.3 var(--f-body); letter-spacing: .1em; text-transform: uppercase; color: var(--c-text-muted); }
.lb-info__rows { margin: 0; display: flex; flex-direction: column; gap: 8px; }
.lb-info__row { display: grid; grid-template-columns: minmax(0, 9.5em) minmax(0, 1fr); gap: 12px; }
.lb-info__row dt { color: var(--c-text-muted); }
.lb-info__row dd { margin: 0; color: var(--c-text); overflow-wrap: anywhere; }
.lb-info__row a { color: var(--c-gold); }
.lb-info__empty { margin: 0; padding: 16px 20px; color: var(--c-text-muted); }
.lb-info__hint { margin: auto 0 0; padding: 16px 20px 20px; font-size: 13px; line-height: 1.5; color: var(--c-text-muted); }
@media (max-width: 899px) {
  .lightbox__info {
    position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; max-height: 68dvh;
    border-left: 0; border-top: 1px solid var(--c-line-strong); border-radius: 16px 16px 0 0;
    box-shadow: 0 -12px 40px rgba(0, 0, 0, .5);
  }
  .lb-info__hint { display: none; }
}
@media (max-width: 640px) {
  .lightbox__stage { padding: 0 8px; gap: 0; position: relative; }
  .lightbox__nav { position: absolute; bottom: 8px; z-index: 1; background: rgba(20, 27, 48, .85); }
  .lightbox__nav[data-lb-prev] { left: 12px; }
  .lightbox__nav[data-lb-next] { right: 12px; }
}

/* Mappafa (mod_corvus_gallerytree) */
.gtree { font-size: 15px; }
.mod-card:has(> .card__body > .gtree) { padding: 12px; }
.gtree__box > summary { list-style: none; }
.gtree__box > summary::-webkit-details-marker { display: none; }
.gtree__label {
  display: flex; align-items: center; justify-content: space-between; min-height: var(--tap);
  padding: 0 10px; font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  color: var(--c-text-muted); cursor: pointer; border-radius: 8px;
}
.gtree__label svg { transition: transform .15s; }
.gtree__box[open] > .gtree__label svg { transform: rotate(90deg); }
.gtree__list { list-style: none; margin: 0; padding: 0; }
.gtree__row {
  display: flex; align-items: center; gap: 4px; min-height: 40px; border-radius: 8px;
  padding-left: calc(4px + var(--d, 0) * 18px);
}
.gtree__toggle, .gtree__icon {
  flex: 0 0 auto; width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center;
  color: var(--c-text-muted);
}
.gtree__toggle { padding: 0; border: 0; border-radius: 6px; background: none; cursor: pointer; }
.gtree__toggle svg { transition: transform .15s; }
.gtree__toggle[aria-expanded="true"] svg { transform: rotate(90deg); }
.gtree__toggle:hover { color: var(--c-text); background: var(--c-inner); }
.gtree__link {
  flex: 1 1 auto; min-width: 0; min-height: 40px; display: flex; align-items: center; gap: 8px;
  padding-right: 10px; color: var(--c-text-2); text-decoration: none;
}
.gtree__title { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.gtree__count { font-size: 12px; color: #8C97B3; }
.gtree__row:hover { background: var(--c-inner); }
.gtree__row:hover .gtree__link { color: var(--c-text); }
.gtree__item.is-current > .gtree__row { background: var(--c-gold-bg); }
.gtree__item.is-current > .gtree__row .gtree__link { color: var(--c-gold); font-weight: 600; }
.gtree__item.is-current > .gtree__row .gtree__icon { color: var(--c-gold); }
