/* =====================================================================
   Styl „Noc v baru" — všechny veřejné stránky. Načítá se ZA preview.css.
   Základ = statická verze (bez JS / prefers-reduced-motion / když GSAP selže).
   Třída .nh-js na <html> = stránka připravená na animace z js/noc.js.
   ===================================================================== */

/* Scroll řídí Lenis (main.js) — nativní smooth by z „okamžitých" skoků (PJAX, kotvy) dělal animaci,
   se kterou nepočítá Lenis ani ScrollTrigger (po přechodu by se stránka otevřela na staré pozici). */
html.lenis { scroll-behavior: auto; }

::selection { background: #f4f4f5; color: #0d0d10; }
:focus-visible { outline: 2px solid #f4f4f5; outline-offset: 3px; }
.visually-hidden {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Do startu animací (jen první načtení, pojistka v <head>): nápis zhasnutý, úvodní obsah schovaný.
   Na homepage (.nh-home) čeká i navigace — objeví se s intrem. */
.gsap-pending .nh-hero__content,
.gsap-pending .nh-hero__bar,
.gsap-pending.nh-home .nav,
.gsap-pending.nh-home .led-strip,
.gsap-pending main .nh-head,
.gsap-pending main [data-nh-in],
.gsap-pending .nh-band__bar,
.gsap-pending .lh__lead,
.gsap-pending .einfo__content { visibility: hidden; }
.gsap-pending .nh-knock__word text,
.gsap-pending .nh-band__word text { fill: #fff; }

/* ---------- Společné nadpisy ---------- */
.nh-head { text-align: center; max-width: 720px; margin: 0 auto 64px; }
.nh-head--left { text-align: left; margin-left: 0; }
.nh-title {
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(2.2rem, 5.4vw, 4.4rem); line-height: 1; letter-spacing: -.015em;
  text-transform: uppercase; color: var(--ink); text-wrap: balance;
}
.nh-title em { font-style: normal; color: transparent; -webkit-text-stroke: 1.5px var(--ink); }
.nh-lead { margin: 20px auto 0; max-width: 56ch; color: var(--muted); font-size: 16px; line-height: 1.7; }
.st-line-mask { padding-block: .14em; margin-block: -.14em; } /* rezerva pro diakritiku nad verzálkami */

/* =====================================================================
   HERO — průlet nápisem dovnitř baru
   ===================================================================== */
.nh-hero { position: relative; background: var(--bg); }
.nh-hero__stage {
  position: relative; height: 100vh; height: 100svh; min-height: 560px; overflow: hidden;
  display: grid; place-items: center;
}
.nh-hero__photo { position: absolute; inset: 0; }
.nh-hero__photo img { width: 100%; height: 100%; object-fit: cover; }
/* Zesvětlení fotky jen pro úvodní nápis (fotka je tmavá → písmena by splývala s tmou); při průletu zmizí */
.nh-hero__lift { position: absolute; inset: 0; display: none; background: rgb(104,104,116); mix-blend-mode: screen; }
.nh-js .nh-hero__lift { display: block; }
.nh-hero__shade {
  position: absolute; inset: 0;
  background:
    radial-gradient(70% 60% at 50% 45%, rgba(13,13,16,.25), rgba(13,13,16,.55) 80%),
    linear-gradient(180deg, rgba(13,13,16,.6) 0%, rgba(13,13,16,.25) 35%, rgba(13,13,16,.94) 100%);
}

/* Maska: plná tma s „vyříznutým" nápisem, skrz který je vidět fotka */
.nh-hero__knock { position: absolute; inset: 0; width: 100%; height: 100%; display: none; z-index: 1; }
.nh-js .nh-hero__knock { display: block; }
.nh-knock__fill { fill: var(--bg); }
.nh-knock__word text { font-family: var(--font-display); font-weight: 900; letter-spacing: -.02em; }
.nh-knock__word--one text { font-size: min(19vw, 44vh); }
.nh-knock__word--two { display: none; }
.nh-knock__word--two text { font-size: min(36vw, 26vh); }
@media (max-width: 600px) {
  .nh-knock__word--one { display: none; }
  .nh-knock__word--two { display: inline; }
}

/* Spodní lišta před průletem: adresa · pobídka · otevíračka */
.nh-hero__bar {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 3;
  display: none; align-items: end; justify-content: space-between; gap: 16px;
  padding: 0 max(24px, calc((100vw - 1200px) / 2 + 24px)) 28px;
  font-family: var(--font-display); font-weight: 700; font-size: 11px;
  letter-spacing: .22em; text-transform: uppercase; color: rgba(245,245,247,.72);
}
.nh-js .nh-hero__bar { display: flex; }
.nh-hero__bar-item { flex: 1 1 0; }
.nh-hero__bar-item:last-child { text-align: right; }
.nh-hero__hint { display: flex; flex-direction: column; align-items: center; gap: 10px; color: #f4f4f5; }
.nh-hero__hint i {
  display: block; width: 1px; height: 46px; overflow: hidden; position: relative;
  background: rgba(245,245,247,.18);
}
.nh-hero__hint i::after {
  content: ""; position: absolute; left: 0; top: 0; width: 1px; height: 100%;
  background: #f4f4f5; transform: translateY(-100%); animation: nh-drip 2s cubic-bezier(.65,0,.35,1) infinite;
}
@keyframes nh-drip { 60%, 100% { transform: translateY(100%); } }
@media (max-width: 720px) {
  .nh-hero__bar-item:first-child { display: none; }
  .nh-hero__bar { justify-content: center; flex-direction: column-reverse; align-items: center; gap: 18px; }
  .nh-hero__bar-item:last-child { text-align: center; }
}

/* Obsah, který se objeví po průletu (bez JS je vidět rovnou) */
.nh-hero__content { position: relative; z-index: 2; text-align: center; padding-top: var(--nav-h); }
.nh-hero__title {
  font-family: var(--font-display); font-weight: 800; text-transform: uppercase;
  font-size: clamp(3.4rem, 9vw, 6rem); line-height: .92; letter-spacing: -.02em; color: #f4f4f5;
  text-shadow: 0 20px 60px rgba(0,0,0,.5);
}
.nh-hero__title-line { display: block; }

/* =====================================================================
   PROGRAM — vodorovná osa večerů (s JS připnutá, bez JS swipe)
   ===================================================================== */
.nh-program { position: relative; background: var(--bg); }
.nh-program__inner {
  min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; justify-content: center;
  gap: clamp(24px, 4vh, 44px); padding: calc(var(--nav-h) + 16px) 0 36px; overflow: hidden;
}
.nh-program__head { display: flex; align-items: end; justify-content: space-between; gap: 18px 40px; flex-wrap: wrap; }
.nh-program__note { max-width: 34ch; color: var(--muted); font-size: 15px; line-height: 1.6; }

.nh-program__viewport { overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.nh-program__viewport::-webkit-scrollbar { display: none; }
.nh-js .nh-program__viewport { overflow: visible; }
.nh-program__track {
  display: flex; gap: clamp(14px, 1.6vw, 22px); width: max-content; list-style: none; margin: 0;
  padding: 6px max(24px, calc((100vw - 1200px) / 2 + 24px));
}

.nh-night {
  position: relative; flex: 0 0 auto; width: clamp(272px, 27vw, 380px);
  min-height: clamp(340px, 52vh, 470px); display: flex; flex-direction: column;
  padding: 24px 24px 22px; border: 1px solid var(--line-2); border-radius: 12px;
  background: var(--card); overflow: hidden;
}
.nh-night__top { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-height: 24px; }
.nh-night__tip, .nh-night__cat {
  font-family: var(--font-display); font-weight: 700; font-size: 10.5px; letter-spacing: .18em;
  text-transform: uppercase; padding: 5px 9px; border-radius: 6px; line-height: 1;
}
.nh-night__cat { border: 1px solid var(--line-2); color: var(--muted); }
.nh-night__when { font-size: 13px; color: var(--muted); }
.nh-night__date { margin-top: 20px; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.nh-night__day {
  display: inline-block; font-family: var(--font-display); font-weight: 900;
  font-size: clamp(5.6rem, 10vw, 9rem); line-height: .82; letter-spacing: -.04em;
  color: transparent; -webkit-text-stroke: 1.5px rgba(245,245,247,.6);
}
.nh-night__month {
  font-family: var(--font-display); font-weight: 700; font-size: 12px; letter-spacing: .22em;
  text-transform: uppercase; color: var(--muted);
}
.nh-night__title {
  margin-top: auto; padding-top: 22px; font-family: var(--font-display); font-weight: 800; text-transform: uppercase;
  font-size: clamp(1.2rem, 1.7vw, 1.5rem); line-height: 1.1; letter-spacing: -.005em; text-wrap: balance;
}
.nh-night__sub { margin-top: 6px; color: var(--muted); font-size: 14px; line-height: 1.5; }
.nh-night__prices { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.nh-night__price { border: 1px solid var(--line-2); border-radius: 6px; padding: 5px 9px; font-size: 12px; color: var(--muted); }
.nh-night__price b { color: var(--ink); font-weight: 600; }
.nh-night__cta { margin-top: 18px; align-self: flex-start; }

/* Rezervovatelná akce = vyplněná bílá karta (stejná logika jako bílá tlačítka) */
.nh-night--tip { background: #f4f4f5; color: #0d0d10; border-color: #f4f4f5; }
.nh-night--tip .nh-night__tip { background: #0d0d10; color: #f4f4f5; }
.nh-night--tip .nh-night__when,
.nh-night--tip .nh-night__month,
.nh-night--tip .nh-night__sub,
.nh-night--tip .nh-night__price { color: rgba(13,13,16,.66); }
.nh-night--tip .nh-night__price { border-color: rgba(13,13,16,.2); }
.nh-night--tip .nh-night__price b { color: #0d0d10; }
.nh-night--tip .nh-night__day { color: #0d0d10; -webkit-text-stroke: 0; }
.nh-night--tip .btn--primary { background: #0d0d10; color: #f4f4f5; box-shadow: none; }
.nh-night--tip .btn--primary .btn__arrow { background: rgba(255,255,255,.14); }

.nh-program__progress { position: relative; height: 1px; background: var(--line-2); display: none; }
.nh-js .nh-program__progress { display: block; }
.nh-program__progress span {
  position: absolute; inset: 0; background: #f4f4f5; transform-origin: left center; transform: scaleX(0);
}
@media (max-width: 720px) {
  .nh-night { width: 80vw; }
  .nh-program__note { font-size: 14px; }
}

/* =====================================================================
   DRINKY — kinetické pásy kategorií
   ===================================================================== */
.nh-drinks { padding: 110px 0 100px; overflow: hidden; }
.nh-marquee { display: grid; gap: clamp(2px, .8vw, 10px); margin-bottom: 60px; }
.nh-marquee__row { overflow: hidden; white-space: nowrap; }
.nh-marquee__inner {
  display: inline-flex; align-items: center; gap: clamp(18px, 2.4vw, 38px);
  padding-right: clamp(18px, 2.4vw, 38px);   /* = gap → obě poloviny pásu stejně dlouhé (plynulá smyčka) */
}
.nh-marquee__item {
  font-family: var(--font-display); font-weight: 900; text-transform: uppercase;
  font-size: clamp(2.8rem, 8.4vw, 8rem); line-height: 1.04; letter-spacing: -.02em; color: var(--ink);
}
.nh-marquee__row--outline .nh-marquee__item { color: transparent; -webkit-text-stroke: 1.5px rgba(245,245,247,.62); }
.nh-marquee__sep { display: inline-flex; }
.nh-marquee__sep svg { width: clamp(26px, 3.6vw, 54px); height: auto; opacity: .75; }
.nh-drinks__cta { display: flex; flex-direction: column; align-items: center; gap: 16px; text-align: center; }
@media (max-width: 720px) {
  .nh-marquee__row--outline .nh-marquee__item { -webkit-text-stroke-width: 1px; }
}

/* =====================================================================
   AKCE U NÁS — prohlášení + řádky typů akcí
   ===================================================================== */
.nh-statement {
  font-family: var(--font-display); font-weight: 800; text-transform: uppercase;
  font-size: clamp(2.4rem, 6.4vw, 5.6rem); line-height: 1; letter-spacing: -.02em;
  max-width: 15ch; color: var(--ink); text-wrap: balance;
}
.nh-private__intro { margin-top: 28px; max-width: 56ch; color: var(--muted); font-size: 17px; line-height: 1.7; }
.nh-types { margin-top: 72px; border-bottom: 1px solid var(--line-2); }
.nh-type {
  --line: 1;
  position: relative; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: 32px; align-items: baseline; padding: 32px 0;
}
.nh-type::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: var(--line-2);
  transform-origin: left center; transform: scaleX(var(--line));
}
.nh-type__title {
  font-family: var(--font-display); font-weight: 800; text-transform: uppercase;
  font-size: clamp(1.9rem, 4.2vw, 3.4rem); line-height: 1; letter-spacing: -.015em;
}
.nh-type__desc { color: var(--muted); font-size: 16px; line-height: 1.65; max-width: 46ch; }
@media (max-width: 720px) {
  .nh-types { margin-top: 48px; }
  .nh-type { grid-template-columns: 1fr; gap: 10px; padding: 24px 0; }
}

/* =====================================================================
   ALBA — polaroidy
   ===================================================================== */
.nh-prints {
  position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(16px, 2.6vw, 36px); padding: 12px 0;
}
.nh-print {
  display: block; padding: 10px 10px 16px; border-radius: 3px;
  background: #f4f4f5; color: #0d0d10;
  box-shadow: 0 30px 60px -28px rgba(0,0,0,.95), 0 2px 8px rgba(0,0,0,.45);
  transform: rotate(var(--r, 0deg));
  transition: transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s cubic-bezier(.16,1,.3,1);
}
.nh-print:hover, .nh-print:focus-visible {
  transform: rotate(0deg) translateY(-8px) scale(1.03);
  box-shadow: 0 44px 70px -30px rgba(0,0,0,.95), 0 2px 8px rgba(0,0,0,.45);
}
.nh-print__photo { display: block; aspect-ratio: 1; overflow: hidden; background: #d4d4d8; }
.nh-print__photo img { width: 100%; height: 100%; object-fit: cover; }
.nh-print__cap { display: block; padding: 14px 4px 0; }
.nh-print__title { display: block; font-family: var(--font-display); font-weight: 800; font-size: 15px; line-height: 1.25; }
.nh-print__meta { display: block; margin-top: 4px; font-size: 12px; color: rgba(13,13,16,.62); }
@media (max-width: 860px) { .nh-prints { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Visit — dnešní den v otevírací době */
.hours-list__row.is-today .hours-list__day,
.hours-list__row.is-today .hours-list__time { color: #f4f4f5; font-weight: 700; }
.hours-list__row.is-today .hours-list__day::after {
  content: "dnes"; margin-left: 10px; padding: 3px 7px; border-radius: 6px; vertical-align: 2px;
  background: #f4f4f5; color: #0d0d10; font-family: var(--font-display); font-size: 10px;
  letter-spacing: .16em; text-transform: uppercase;
}

/* =====================================================================
   PROGRAM — poslední karta „Další akce" (víc než 10 večerů → /program/)
   ===================================================================== */
.nh-night--more { padding: 0; border-style: dashed; border-color: rgba(245,245,247,.28); background: transparent; }
.nh-night__more { flex: 1; display: flex; flex-direction: column; padding: 24px 24px 22px; color: inherit; }
.nh-night__more .nh-night__title { display: block; }
.nh-night__more .nh-night__day { -webkit-text-stroke-color: #f4f4f5; }
.nh-night__more .nh-night__cta { pointer-events: none; }
.nh-night--more:hover { border-color: #f4f4f5; }
.nh-night--more:hover .btn--ghost { border-color: #f4f4f5; background: #f4f4f5; color: #0d0d10; }
.nh-night__more .btn--ghost { padding-right: 7px; transition: background .25s, color .25s, border-color .25s; }
.nh-night__more .btn__arrow {
  display: inline-grid; place-items: center; width: 29px; height: 29px; border-radius: 50%;
  background: rgba(245,245,247,.1); font-size: 14px;
}

/* =====================================================================
   PODSTRÁNKY — úvodní pás s nápisem (stejný princip jako hero homepage)
   ===================================================================== */
.nh-band {
  position: relative; height: 66vh; height: 66svh; min-height: 400px; max-height: 760px;
  overflow: hidden; background: var(--bg);
}
.nh-band--short { height: 50vh; height: 50svh; min-height: 340px; max-height: 560px; }
.nh-band__photo { position: absolute; inset: 0; }
/* Při odjezdu (js/noc.js) se tma rozplyne → spodní hrana fotky se přelije do pozadí stránky */
.nh-band::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 45%; z-index: 1; pointer-events: none;
  background: linear-gradient(180deg, rgba(13,13,16,0), var(--bg)); opacity: var(--fade, 0);
}
.nh-band__photo img { width: 100%; height: 100%; object-fit: cover; }
.nh-band .nh-hero__lift { display: block; }
.nh-band__knock { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; }
.nh-band__word text {
  font-family: var(--font-display); font-weight: 900; letter-spacing: -.02em;
  font-size: min(calc(118vw / var(--n, 7)), 32vh);
}
.nh-band--short .nh-band__word text { font-size: min(calc(118vw / var(--n, 7)), 25vh); }
.nh-band__bar {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
  display: flex; align-items: end; justify-content: space-between; gap: 16px;
  padding: 0 max(24px, calc((100vw - 1200px) / 2 + 24px)) 26px;
  font-family: var(--font-display); font-weight: 700; font-size: 11px;
  letter-spacing: .22em; text-transform: uppercase; color: rgba(245,245,247,.72);
}
.nh-band__bar-item { flex: 1 1 0; }
.nh-band__bar-item:last-child { text-align: right; }
.nh-band__bar .nh-hero__hint i { height: 38px; }
@media (max-width: 600px) {
  .nh-band { height: 52vh; height: 52svh; min-height: 320px; }
  .nh-band--short { height: 42vh; height: 42svh; min-height: 280px; }
  .nh-band__bar { font-size: 10px; letter-spacing: .18em; padding-bottom: 20px; }
}

/* Obsah podstránky pod pásem */
.nh-page { padding-top: 96px; }
.nh-page--plain { padding-top: calc(var(--nav-h) + 80px); }
.nh-page.listek-page { padding-top: 96px; }
.nh-back { display: inline-block; margin-top: 10px; color: var(--muted); font-size: 14px; letter-spacing: .04em; transition: color .2s; }
.nh-back:hover { color: #f4f4f5; }
.nh-empty { text-align: center; color: var(--muted); font-size: 16px; line-height: 1.7; max-width: 52ch; margin: 0 auto; }
@media (max-width: 720px) {
  .nh-page { padding-top: 72px; }
  .nh-page--plain { padding-top: calc(var(--nav-h) + 48px); }
  .nh-head { margin-bottom: 48px; }
}

/* =====================================================================
   /program/ — celý program po měsících
   ===================================================================== */
.nh-month { max-width: 980px; margin: 0 auto; }
.nh-month + .nh-month { margin-top: 84px; }
.nh-month__title {
  font-family: var(--font-display); font-weight: 900; text-transform: uppercase;
  font-size: clamp(2.6rem, 7vw, 5.4rem); line-height: .9; letter-spacing: -.03em;
  color: transparent; -webkit-text-stroke: 1.5px rgba(245,245,247,.62); margin-bottom: 22px;
}
.nh-month__title span { color: transparent; -webkit-text-stroke-color: rgba(245,245,247,.32); }
.nh-rows { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--line-2); }
.nh-row {
  --line: 1;
  position: relative; display: grid; grid-template-columns: 150px minmax(0, 1fr) auto;
  gap: 8px 32px; align-items: center; padding: 26px 0;
}
.nh-row::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: var(--line-2);
  transform-origin: left center; transform: scaleX(var(--line));
}
.nh-row__date { display: flex; flex-direction: column; gap: 8px; }
.nh-row__day {
  font-family: var(--font-display); font-weight: 900; font-size: clamp(2.6rem, 4.4vw, 3.6rem);
  line-height: .85; letter-spacing: -.04em; color: #f4f4f5;
}
.nh-row__when {
  font-family: var(--font-display); font-weight: 700; font-size: 11px; letter-spacing: .2em;
  text-transform: uppercase; color: var(--muted);
}
.nh-row__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.nh-row__tag {
  font-family: var(--font-display); font-weight: 700; font-size: 10.5px; letter-spacing: .18em;
  text-transform: uppercase; padding: 5px 9px; border-radius: 6px; line-height: 1;
  border: 1px solid var(--line-2); color: var(--muted);
}
.nh-row__tag--tip { background: #f4f4f5; border-color: #f4f4f5; color: #0d0d10; }
.nh-row__tag--today { border-color: #f4f4f5; color: #f4f4f5; }
.nh-row__title {
  font-family: var(--font-display); font-weight: 800; text-transform: uppercase;
  font-size: clamp(1.4rem, 2.8vw, 2.2rem); line-height: 1.02; letter-spacing: -.01em; text-wrap: balance;
}
.nh-row__sub { margin-top: 6px; color: var(--muted); font-size: 15px; line-height: 1.5; }
.nh-row__prices { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.nh-row__cta { justify-self: end; }
/* Rezervovatelná akce = bílý řádek (stejná logika jako bílá karta na homepage) */
.nh-row--tip {
  background: #f4f4f5; color: #0d0d10; border-radius: 12px;
  padding-left: 24px; padding-right: 24px; margin: 10px -24px;
}
.nh-row--tip::before { display: none; }
.nh-row--tip .nh-row__day { color: #0d0d10; }
.nh-row--tip .nh-row__when,
.nh-row--tip .nh-row__sub { color: rgba(13,13,16,.66); }
.nh-row--tip .nh-row__tag--tip { background: #0d0d10; border-color: #0d0d10; color: #f4f4f5; }
.nh-row--tip .nh-night__price { color: rgba(13,13,16,.66); border-color: rgba(13,13,16,.2); }
.nh-row--tip .nh-night__price b { color: #0d0d10; }
.nh-row--tip .btn--primary { background: #0d0d10; color: #f4f4f5; box-shadow: none; }
.nh-row--tip .btn--primary .btn__arrow { background: rgba(255,255,255,.14); }
.nh-page__more {
  display: flex; flex-direction: column; align-items: center; gap: 16px; text-align: center;
  margin-top: 88px; color: var(--muted); font-size: 16px;
}
.nh-page__more .btn--ghost { padding-right: 7px; }
.nh-page__more .btn__arrow {
  display: inline-grid; place-items: center; width: 29px; height: 29px; border-radius: 50%;
  background: rgba(245,245,247,.1); font-size: 14px;
}
@media (max-width: 720px) {
  .nh-month + .nh-month { margin-top: 64px; }
  .nh-row { grid-template-columns: 76px minmax(0, 1fr); gap: 4px 18px; align-items: start; padding: 22px 0; }
  .nh-row__cta { grid-column: 2; justify-self: start; margin-top: 12px; }
  .nh-row__when { letter-spacing: .14em; font-size: 10px; }
  .nh-row--tip { padding-left: 16px; padding-right: 16px; margin: 8px -12px; }
}

/* =====================================================================
   /listek/ — kategorie s výraznějším nadpisem
   ===================================================================== */
.listek-page .menu { column-gap: 80px; }
.listek-page .menu-cat { margin-bottom: 52px; }
.listek-page .menu-cat__title {
  --line: 1;
  position: relative; border-bottom: 0; padding-bottom: 12px; margin-bottom: 18px;
  font-size: clamp(1.25rem, 2vw, 1.6rem); letter-spacing: -.005em; line-height: 1.05;
}
.listek-page .menu-cat__title::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--line-2);
  transform-origin: left center; transform: scaleX(var(--line));
}

/* =====================================================================
   /galerie/ — všechna alba jako polaroidy
   ===================================================================== */
.nh-prints--all { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); row-gap: clamp(28px, 3.4vw, 48px); }
@media (max-width: 560px) { .nh-prints--all { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } }
.nh-prints--all .nh-print__title { font-size: 14px; }
.album-page .album-photos { margin-top: 8px; }

/* Skončená akce */
.nh-ended__crown { margin: 0 0 18px; }
.nh-ended__cta { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
