/* =====================================================================
   Hernička V Podzámčí — responsive styles (mobile → 4K)
   ================================================================== */

/* ————— Default shrink for < 1024 ————— */
@media (max-width: 1023px) {
  .nav__inner,
  .hero__inner,
  .section__head,
  .herna__inner,
  .kavarna__inner,
  .menu,
  .oslavy__inner,
  .akce__grid,
  .akce__invite,
  .onas__inner,
  .gallery__grid,
  .reviews__grid,
  .kontakt__inner,
  .stats__inner,
  .foot__inner,
  .foot__bottom {
    padding-left: 24px;
    padding-right: 24px;
  }

  section { padding: 72px 0; }

  .nav__links { display: none; }
  .nav__cta { display: none; }
  .nav__burger {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-left: auto;
    padding: 10px;
    border-radius: 12px;
    background: var(--pink-50);
    border: 2px solid var(--pink);
  }
  .nav__burger span {
    display: block;
    width: 22px;
    height: 2.5px;
    background: var(--navy);
    border-radius: 2px;
    transition: transform 260ms var(--easing), opacity 260ms var(--easing);
  }
  .nav__burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .nav__burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .nav__burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

  .hero__inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .hero { padding: 48px 0 32px; min-height: unset; }
  .hero__h1 { font-size: clamp(38px, 8vw, 64px); }
  .hero__logowrap { max-width: 360px; margin: 0 auto; }

  .herna__inner,
  .kavarna__inner,
  .oslavy__inner,
  .onas__inner,
  .kontakt__inner {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .kavarna__collage { min-height: 360px; }

  .menu { grid-template-columns: 1fr 1fr; }
  .menu__note { grid-column: 1 / -1; }

  .stats__inner { grid-template-columns: 1fr; gap: 16px; }

  .herna__grid { grid-template-columns: 1fr 1fr; }

  .akce__grid { grid-template-columns: 1fr; }

  .gallery__grid {
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: 180px;
  }

  .reviews__grid { grid-template-columns: 1fr; }

  .foot__inner { grid-template-columns: 1fr 1fr; gap: 32px; }

  .mapwrap { min-height: 420px; }
}

/* ————— Tablet small / large phone 480–767 ————— */
@media (max-width: 767px) {
  body { font-size: 15px; }
  section { padding: 56px 0; }

  .nav__inner { gap: 14px; }
  .nav__logotext-top { font-size: 11px; }
  .nav__logotext-bot { font-size: 18px; }
  .nav__logo img { width: 42px; height: 42px; }

  .hero__inner { gap: 24px; }
  .hero__h1 { font-size: clamp(34px, 9vw, 50px); }
  .hero__lead { font-size: 16px; }
  .hero__ctas .btn { flex: 1 1 100%; justify-content: center; }
  .hero__tags { font-size: 15px; }
  .hero__tags li { padding: 5px 12px; }

  .marquee__track { font-size: 16px; gap: 24px; }

  .section__head { margin-bottom: 40px; }
  .section__h2 { font-size: clamp(28px, 7vw, 40px); }

  .herna__grid { grid-template-columns: 1fr; gap: 14px; }

  .vstupne__card { padding: 28px 22px; }
  .price { flex-wrap: wrap; gap: 10px; }
  .price__label { flex: 1 1 60%; font-size: 15px; }
  .price__val { font-size: 15px; padding: 7px 14px; }

  .menu { grid-template-columns: 1fr; gap: 16px; margin-top: 48px; }
  .menu__col { padding: 22px; }

  .oslavy__photo img { aspect-ratio: 4/3; }
  .oslavy__prices { grid-template-columns: 1fr; }
  .oslavy__ctas .btn { flex: 1 1 100%; justify-content: center; }

  .event { grid-template-columns: 1fr; gap: 16px; padding: 22px; }
  .event__date { width: 96px; margin: 0 auto; }
  .event__day { font-size: 46px; }
  .event__body h3 { font-size: 20px; justify-content: center; }
  .event__meta { justify-content: center; }
  .event__org { text-align: center; }

  .onas__photo img { aspect-ratio: 4/5; }

  .gallery__grid {
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 160px;
  }
  .g-item--wide { grid-column: span 2; }
  .g-item--tall { grid-row: span 1; }

  .kontakt__inner { gap: 20px; }
  .ff { grid-template-columns: 1fr; }
  .mapwrap { min-height: 320px; }

  .foot__inner { grid-template-columns: 1fr; gap: 28px; padding-bottom: 28px; }
  .foot__brand { max-width: none; }
  .foot__bottom { padding-left: 24px; padding-right: 24px; flex-direction: column; align-items: flex-start; gap: 6px; }
  .foot__bottom span:nth-child(even) { display: none; }
}

/* ————— Small phone ≤ 479 ————— */
@media (max-width: 479px) {
  .nav__inner,
  .hero__inner,
  .section__head,
  .herna__inner,
  .kavarna__inner,
  .menu,
  .oslavy__inner,
  .akce__grid,
  .akce__invite,
  .onas__inner,
  .gallery__grid,
  .reviews__grid,
  .kontakt__inner,
  .stats__inner,
  .foot__inner,
  .foot__bottom {
    padding-left: 16px;
    padding-right: 16px;
  }
  .hero__h1 { font-size: 36px; }
  .section__h2 { font-size: 28px; }

  .nav__logotext { display: none; }

  .gallery__grid { grid-template-columns: 1fr; grid-auto-rows: auto; }
  .gallery__grid img { aspect-ratio: 4/3; }
  .g-item { height: auto; }
  .g-item img { height: auto; }
  .g-item--wide, .g-item--tall { grid-column: auto; grid-row: auto; }

  .vstupne__card { padding: 22px 16px; }
  .price { gap: 8px; }
  .price__label { font-size: 14px; }

  .kavarna__collage {
    position: static;
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    min-height: 0;
  }
  .polaroid { position: static; width: 100%; transform: none !important; }
  .tape { display: none; }
}

/* ————— Large desktop 1280+ ————— */
@media (min-width: 1280px) {
  .nav__inner,
  .hero__inner,
  .section__head,
  .herna__inner,
  .kavarna__inner,
  .menu,
  .oslavy__inner,
  .akce__grid,
  .akce__invite,
  .onas__inner,
  .gallery__grid,
  .reviews__grid,
  .kontakt__inner,
  .stats__inner,
  .foot__inner,
  .foot__bottom {
    max-width: 1240px;
  }
  section { padding: 112px 0; }
}

/* ————— XL 1440+ ————— */
@media (min-width: 1440px) {
  .nav__inner,
  .hero__inner,
  .section__head,
  .herna__inner,
  .kavarna__inner,
  .menu,
  .oslavy__inner,
  .akce__grid,
  .akce__invite,
  .onas__inner,
  .gallery__grid,
  .reviews__grid,
  .kontakt__inner,
  .stats__inner,
  .foot__inner,
  .foot__bottom {
    max-width: 1340px;
  }
  body { font-size: 17px; }
  .hero__h1 { font-size: clamp(56px, 5.5vw, 92px); }
}

/* ————— Full HD 1920+ ————— */
@media (min-width: 1920px) {
  .nav__inner,
  .hero__inner,
  .section__head,
  .herna__inner,
  .kavarna__inner,
  .menu,
  .oslavy__inner,
  .akce__grid,
  .akce__invite,
  .onas__inner,
  .gallery__grid,
  .reviews__grid,
  .kontakt__inner,
  .stats__inner,
  .foot__inner,
  .foot__bottom {
    max-width: 1580px;
  }
  section { padding: 128px 0; }
  .gallery__grid { grid-auto-rows: 260px; gap: 18px; }
}

/* ————— 2K+ ————— */
@media (min-width: 2560px) {
  .nav__inner,
  .hero__inner,
  .section__head,
  .herna__inner,
  .kavarna__inner,
  .menu,
  .oslavy__inner,
  .akce__grid,
  .akce__invite,
  .onas__inner,
  .gallery__grid,
  .reviews__grid,
  .kontakt__inner,
  .stats__inner,
  .foot__inner,
  .foot__bottom {
    max-width: 1920px;
  }
  body { font-size: 18px; }
  .gallery__grid { grid-auto-rows: 320px; }
}
