/* =========================================================================
   LAYOUT – kostra stránky: kontajner, sekcie, mriežky, hlavička, pätička.
   ========================================================================= */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-pad);
}

/* Sekcia = vodorovný pás obsahu stránky */
.section { padding-block: var(--section-gap); }
.section--alt { background: var(--color-bg-alt); }
.section--ruled { border-top: 1px solid var(--color-accent-2-line); }
@media (min-width: 640px) {
  :root { --section-gap: var(--space-9); }
}
@media (min-width: 960px) {
  :root { --section-gap: var(--space-10); }
}

/* Úvod sekcie: štítok, nadpis, úvodný text. Pod ním obsah sekcie. */
.section__head {
  max-width: 900px;
  margin-bottom: var(--space-8);
}
.section__head > * { margin-block: 0; }
.section__head > * + * { margin-block-start: var(--space-5); }
.section__head h2 { max-width: 20ch; }
.section__head--split {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-5);
  max-width: none;
}
.section__head--split > * + * { margin-block-start: 0; }
.section__head--split > div:not(.slider__nav) { display: grid; gap: var(--space-5); }
.section__head--split > div > * { margin: 0; }
.section__lead {
  font-size: var(--fs-lg);
  line-height: 1.55;
  color: var(--color-text-muted);
  max-width: 58ch;
}
/* Krátky úvod, ktorý má na desktope ostať v jednom riadku */
.section__lead--wide { max-width: none; }

/* Zvislé radenie s rovnakými medzerami */
.stack > * { margin-block: 0; }
.stack > * + * { margin-block-start: var(--space-4); }

/* Mriežky – na mobile 1 stĺpec, na väčších obrazovkách viac */
.grid { display: grid; gap: var(--space-5); }
/* položky mriežky sa nesmú roztiahnuť podľa širokého obsahu (tabuľka, dlhé slovo); ten sa posúva vo vlastnom ráme */
.grid > * { min-width: 0; }
@media (min-width: 640px) {
  .grid--2, .grid--3, .grid--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 960px) {
  .grid--3 { grid-template-columns: repeat(3, 1fr); }
  .grid--2-1 { grid-template-columns: 2fr 1fr; }
}
/* štyri karty vedľa seba až na širokých obrazovkách, inak sú príliš úzke */
@media (min-width: 1200px) {
  .grid--4 { grid-template-columns: repeat(4, 1fr); }
}
/* Karty v riadku majú štítok, nadpis, text (a výsledok) v jednej línii (subgrid).
   Predvolene 3 časti na kartu; .grid--rows-4 pre karty so štítkom, nadpisom, textom a výsledkom. */
.grid--rows-4 { --rows: 4; }
.grid--rows-6 { --rows: 6; }
.grid.grid--aligned > * {
  display: grid;
  grid-row: span var(--rows, 3);
  grid-template-rows: subgrid;
  row-gap: var(--space-5);
  align-content: start;
}

/* Hlavička stránky (site header) */
/* Hlavička ostáva po ruke: je prilepená hore, pri skrolovaní dole sa schová a pri skrolovaní hore vráti (main.js) */
.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  border-bottom: 1px solid var(--color-border);
  background: rgb(12 13 16 / 0.92);
  backdrop-filter: blur(10px);
  transition: transform 300ms ease;
}
.site-header.is-hidden:not(.is-open) { transform: translateY(-100%); }
@media (prefers-reduced-motion: reduce) { .site-header { transition: none; } }
/* kotvy (#kontakt, #program…) nezakryje hlavička */
:is(section, h2, h3, form)[id] { scroll-margin-top: 5rem; }
.site-header__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4) var(--space-5);
  padding-block: var(--space-4);
}
.site-header__logo img { height: 32px; width: auto; }
.site-header__actions {
  display: flex;
  align-items: center;
  gap: var(--space-4);
}

/* Menu je v jednom riadku s logom až od 1280 px (výnimka z breakpointov: s väčším bočným okrajom sa pri 1200 px
   tlačidlo kontakt nezmestí); užšie ide menu pod logo */
.site-nav { width: 100%; order: 3; }
@media (min-width: 1280px) {
  .site-nav { width: auto; order: 0; }
}
.site-nav__list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-4);
  margin: 0;
  padding: 0;
  list-style: none;
  font-family: var(--font-display);
}
.site-nav__link {
  color: var(--color-text);
  text-decoration: none;
}
.site-nav__link:hover,
.site-nav__link[aria-current="page"] { color: var(--color-primary); }
/* zvýraznená položka (napr. najbližší event): celá ako zelenomodrý štítok, dátum hrubším písmom */
.site-nav__link--highlight {
  display: inline-block;
  padding: 2px var(--space-2);
  background: var(--color-primary);
  color: var(--color-on-primary);
  white-space: nowrap;
  transition: background-color var(--transition);
}
.site-nav__link--highlight:hover,
.site-nav__link--highlight[aria-current="page"] { background: var(--color-primary-hover); color: var(--color-on-primary); }
.site-nav__link.site-nav__link--highlight[aria-current="page"] { text-decoration: none; box-shadow: 0 0 0 2px var(--color-bg), 0 0 0 3px var(--color-primary); }
.site-nav__badge { margin-left: var(--space-1); font-weight: var(--fw-semibold); }
.site-nav__link[aria-current="page"] {
  text-decoration: underline;
  text-underline-offset: 6px;
}

/* Hamburger menu na mobile (pod 960 px). Bez JS ostane menu viditeľné ako zoznam. */
.site-nav__toggle { display: none; }
@media (max-width: 959px) {
  .js .site-nav__toggle {
    display: inline-grid;
    place-items: center;
    width: var(--tap-min);
    height: var(--tap-min);
    padding: 0;
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius);
    background: transparent;
    color: var(--color-text);
    cursor: pointer;
  }
  .js .site-nav__toggle:hover { border-color: var(--color-primary); color: var(--color-primary); }
  /* ikona: tri čiary, po otvorení krížik */
  .site-nav__toggle-icon,
  .site-nav__toggle-icon::before,
  .site-nav__toggle-icon::after {
    display: block;
    width: 18px;
    height: 2px;
    background: currentColor;
    transition: transform var(--transition), opacity var(--transition);
  }
  .site-nav__toggle-icon { position: relative; }
  .site-nav__toggle-icon::before,
  .site-nav__toggle-icon::after { content: ""; position: absolute; left: 0; }
  .site-nav__toggle-icon::before { top: -6px; }
  .site-nav__toggle-icon::after { top: 6px; }
  .site-nav__toggle[aria-expanded="true"] .site-nav__toggle-icon { background: transparent; }
  .site-nav__toggle[aria-expanded="true"] .site-nav__toggle-icon::before { transform: translateY(6px) rotate(45deg); }
  .site-nav__toggle[aria-expanded="true"] .site-nav__toggle-icon::after { transform: translateY(-6px) rotate(-45deg); }

  .js .site-nav { display: none; }
  .js .site-header.is-open .site-nav { display: block; }
  .js .site-nav__list { flex-direction: column; gap: 0; border-top: 1px solid var(--color-border); }
  .js .site-nav__link {
    display: flex;
    align-items: center;
    min-height: 52px;
    border-bottom: 1px solid var(--color-border);
    font-size: var(--fs-lg);
  }
  .js .site-nav__link[aria-current="page"] { text-decoration: none; }
  .js .site-nav__link--highlight { display: flex; width: fit-content; min-height: 0; margin-block: var(--space-2); padding: var(--space-2) var(--space-3); border-bottom: 0; }
  .js .site-nav__list li:has(> .site-nav__link--highlight) { border-bottom: 1px solid var(--color-border); }
  .js .site-nav__link.site-nav__link--highlight[aria-current="page"]::before { color: var(--color-on-primary); }
  .js .site-nav__link[aria-current="page"]::before { content: ">"; margin-right: var(--space-3); color: var(--color-primary); }
}
@media (prefers-reduced-motion: reduce) {
  .site-nav__toggle-icon, .site-nav__toggle-icon::before, .site-nav__toggle-icon::after { transition: none; }
}

/* Pätička */
.site-footer {
  padding-block: var(--space-8);
  border-top: 1px solid var(--color-border);
  color: var(--color-text-muted);
  font-size: var(--fs-sm);
}
.site-footer__inner {
  display: grid;
  gap: var(--space-6);
}
@media (min-width: 640px) {
  .site-footer__inner { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 960px) {
  .site-footer__inner { grid-template-columns: repeat(4, 1fr); }
}
.site-footer__col {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
/* align-self: inak flex stĺpec roztiahne logo na celú šírku a zdeformuje ho */
.site-footer__col img { align-self: flex-start; height: 28px; width: auto; margin-bottom: var(--space-2); }
.site-footer__title {
  font-family: var(--font-display);
  font-weight: var(--fw-semibold);
  color: var(--color-text);
}
.site-footer p { margin: 0; }
.site-footer a { color: inherit; text-decoration: none; }
.site-footer a:hover { color: var(--color-primary); }
/* sociálne siete: ikony s dotykovou plochou aspoň 44 px */
.site-footer__social { display: flex; gap: var(--space-2); margin: var(--space-2) 0 0 calc(-1 * var(--space-2)); padding: 0; list-style: none; }
.site-footer__social a {
  display: grid;
  place-items: center;
  width: var(--tap-min);
  height: var(--tap-min);
  color: var(--color-text-muted);
  transition: color var(--transition);
}
.site-footer__social a:hover { color: var(--color-primary); }
.site-footer__social svg { width: 22px; height: 22px; }
/* tlačidlo „Nastavenia cookies“ vyzerá ako odkaz v pätičke */
.site-footer__link {
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.site-footer__link:hover { color: var(--color-primary); }
