/* ==========================================================================
   V Podzámčí — responsive
   Breakpoint ladder: 480 / 768 / 1024 / 1280 / 1440 / 1920
   ========================================================================== */

/* ————— Mobile base (0–479) overrides of desktop defaults ————— */
@media (max-width: 767px) {
  :root { --nav-h: 60px; }
  html, body { font-size: 15px; }

  .container { padding: 0 20px; }

  /* Nav: hide centered links + phone pill on mobile */
  .nav__links { display: none; }
  .nav__right .nav__status { display: none; }
  .nav__right .nav__phone { display: none; }
  .nav__burger { display: block; }
  .nav__inner { grid-template-columns: auto 1fr auto; }
  .nav__word-top { font-size: 18px; }
  .nav__word-bot { font-size: 9px; }

  /* Hero */
  .hero {
    min-height: 88vh;
    padding: calc(var(--nav-h) + var(--sp-7)) 0 var(--sp-8);
  }
  .hero__inner { padding: 0 20px; }
  .hero__h1 { font-size: clamp(34px, 10vw, 52px); }
  .hero__lede { font-size: 16px; margin-top: var(--sp-4); }
  .hero__ctas { margin-top: var(--sp-5); gap: 10px; }
  .btn { padding: 12px 20px; font-size: 14px; }
  .hero__meta { margin-top: var(--sp-6); font-size: 12px; }

  /* Stats */
  .stats { padding: var(--sp-5) 0; }
  .stats__grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--sp-4);
  }
  .stat + .stat { border-left: 0; padding-left: 0; }
  .stat:nth-child(2), .stat:nth-child(4) {
    padding-left: var(--sp-4);
    border-left: 1px solid var(--rule);
  }
  .stat:nth-child(3), .stat:nth-child(4) {
    padding-top: var(--sp-4);
    border-top: 1px solid var(--rule);
  }
  .stat__big { font-size: 24px; }
  .stat__label { font-size: 12px; }
  .sm-br { display: inline; }

  /* Section padding */
  .story,
  .hernicka,
  .vstupne,
  .oslavy,
  .akce,
  .galerie,
  .reviews,
  .kontakt { padding: var(--sp-8) 0; }
  .kavarna { padding-bottom: var(--sp-8); }

  .section-head { margin-bottom: var(--sp-5); }
  .section-head__lede { font-size: 15px; }
  .h2 { font-size: clamp(28px, 7.5vw, 38px); }

  /* Story */
  .story__inner {
    grid-template-columns: 1fr;
    gap: var(--sp-6);
  }
  .story__photo { order: -1; }
  .story__photo img { aspect-ratio: 4 / 3; }
  .story__accent { inset: -12px -12px 12px 12px; }

  /* Hernička */
  .hernicka__split {
    grid-template-columns: 1fr;
    gap: var(--sp-6);
    margin-bottom: var(--sp-6);
  }
  .hernicka__features h3 { font-size: 18px; }
  .hernicka__features p { font-size: 14px; }
  .thumb-strip { gap: 10px; }

  /* Vstupné */
  .prices { grid-template-columns: 1fr; gap: 12px; }
  .price { min-height: 0; padding: 20px; }
  .price__val { font-size: 26px; }

  /* Kavárna */
  .kavarna__band { min-height: 260px; margin-bottom: var(--sp-7); }
  .menu {
    grid-template-columns: 1fr;
    gap: var(--sp-6);
    margin-top: var(--sp-5);
  }
  .menu__col h3 { font-size: 20px; }

  /* Oslavy */
  .oslavy__inner {
    grid-template-columns: 1fr;
    gap: var(--sp-6);
  }
  .oslavy__photo img { aspect-ratio: 4 / 3; }
  .oslavy__prices { grid-template-columns: 1fr; }
  .opack__price { font-size: 28px; }

  /* Akce */
  .akce__head { grid-template-columns: 1fr; gap: var(--sp-4); }
  .rail { grid-auto-columns: 78vw; gap: 12px; padding-right: 24px; }

  /* Galerie */
  .galerie__head {
    grid-template-columns: 1fr;
    gap: var(--sp-4);
    margin-bottom: var(--sp-5);
  }
  .galerie__lede { font-size: 15px; padding-bottom: 0; }
  .galerie__hint { margin-top: 8px; }

  .gal-grid {
    grid-template-columns: repeat(6, 1fr);
    grid-auto-rows: 82px;
    gap: 10px;
  }
  .gal-tile--hero { grid-column: span 6; grid-row: span 3; }
  .gal-tile--wide { grid-column: span 6; grid-row: span 2; }
  .gal-tile--tall { grid-column: span 3; grid-row: span 3; }
  .gal-tile--sm   { grid-column: span 3; grid-row: span 2; }

  .gal-tile figcaption { left: 12px; right: 12px; bottom: 12px; gap: 6px; }
  .gal-tile__name { font-size: 16px; }
  .gal-tile--hero .gal-tile__name { font-size: 20px; }
  .gal-tile--tall .gal-tile__name,
  .gal-tile--wide .gal-tile__name { font-size: 18px; }
  .gal-tile__cat { font-size: 9.5px; padding: 3px 8px 2px; }
  .gal-tile__num { top: 8px; left: 10px; font-size: 10px; padding: 3px 7px; }

  /* Show captions by default on touch — hover is unreliable */
  .gal-tile figcaption { opacity: 1; transform: none; }
  .gal-tile::before { opacity: 0.55; }

  .galerie__foot { margin-top: var(--sp-5); }
  .galerie__more { padding: 12px 18px; font-size: 13px; }

  /* Reviews */
  .reviews__grid { grid-template-columns: 1fr; gap: 12px; margin-top: var(--sp-5); }
  .review { padding: 22px; }
  .review p { font-size: 17px; }

  /* Kontakt */
  .kontakt__grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .infocard { padding: 24px; }
  .infocard--map h3 { padding: 24px 24px 0; }
  .mapwrap { min-height: 260px; }
  .mapwrap__link { padding: 14px 24px; }

  /* Footer */
  .foot { padding: var(--sp-8) 0 var(--sp-5); }
  .foot__inner {
    grid-template-columns: 1fr 1fr;
    gap: var(--sp-5);
  }
  .foot__brand { grid-column: 1 / -1; }
  .foot__bottom { justify-content: center; text-align: center; }

  /* Lightbox */
  .lightbox__close, .lightbox__prev, .lightbox__next {
    width: 40px; height: 40px; font-size: 18px; line-height: 38px;
  }
  .lightbox__prev { left: 10px; }
  .lightbox__next { right: 10px; }
  .lightbox__close { top: 12px; right: 12px; }
}

/* ————— Small phones (≤ 479) ————— */
@media (max-width: 479px) {
  .container { padding: 0 16px; }
  .hero__inner { padding: 0 16px; }
  .hero__h1 { font-size: clamp(30px, 9.5vw, 42px); }
  .hero__meta { flex-direction: column; align-items: flex-start; gap: 6px; }
  .hero__meta-sep { display: none; }
  .btn { padding: 11px 18px; font-size: 13.5px; }
  .stats__grid { grid-template-columns: 1fr; gap: var(--sp-3); }
  .stat + .stat { border-top: 1px solid var(--rule); padding-top: var(--sp-3); padding-left: 0; border-left: 0; }
  .stat:nth-child(2), .stat:nth-child(4) { padding-left: 0; border-left: 0; }
  .stat:nth-child(3), .stat:nth-child(4) { padding-top: var(--sp-3); }
}

/* ————— Tablet portrait (768 – 1023) ————— */
@media (min-width: 768px) and (max-width: 1023px) {
  .container { padding: 0 40px; }

  .nav__inner { padding: 0 32px; gap: 20px; }
  .nav__links { gap: 18px; }
  .nav__links a { font-size: 13px; }
  .nav__status { display: none; }
  .nav__word-top { font-size: 18px; }

  .hero { min-height: 82vh; }
  .hero__h1 { font-size: clamp(44px, 6.8vw, 64px); }
  .hero__lede { font-size: 17px; }

  /* Stats stay 4 across but compact */
  .stats__grid { gap: var(--sp-4); }
  .stat__big { font-size: 26px; }

  .story__inner { grid-template-columns: 1fr; gap: var(--sp-7); }
  .story__photo { order: -1; max-width: 560px; }

  .hernicka__split { grid-template-columns: 1fr; gap: var(--sp-7); }

  .prices { grid-template-columns: repeat(2, 1fr); }

  .menu { grid-template-columns: 1fr 1fr; gap: var(--sp-6); }

  .oslavy__inner { grid-template-columns: 1fr; gap: var(--sp-7); }
  .oslavy__photo { max-width: 560px; }
  .oslavy__photo img { aspect-ratio: 4 / 3; }

  .reviews__grid { grid-template-columns: 1fr 1fr; }
  .reviews__grid .review:nth-child(3) { grid-column: 1 / -1; max-width: 520px; justify-self: center; }

  .kontakt__grid { grid-template-columns: 1fr 1fr; }
  .infocard--map { grid-column: 1 / -1; }
  .mapwrap { min-height: 380px; }

  .akce__head { grid-template-columns: 1fr; gap: var(--sp-3); }
  .rail { grid-auto-columns: minmax(280px, 46vw); }

  /* Galerie — tablet portrait */
  .galerie__head { grid-template-columns: 1fr; gap: var(--sp-4); }
  .gal-grid {
    grid-template-columns: repeat(12, 1fr);
    grid-auto-rows: 100px;
    gap: 12px;
  }

  .foot__inner { grid-template-columns: 1fr 1fr; gap: var(--sp-6); }
  .foot__brand { grid-column: 1 / -1; }

  .section-head { max-width: 640px; }
  .story,
  .hernicka,
  .vstupne,
  .oslavy,
  .akce,
  .galerie,
  .reviews,
  .kontakt { padding: var(--sp-9) 0; }
}

/* ————— Small laptops / iPad landscape (1024 – 1279) ————— */
@media (min-width: 1024px) and (max-width: 1279px) {
  .container { max-width: 960px; padding: 0 32px; }
  .nav__inner { padding: 0 32px; }
  .nav__links { gap: 22px; }
  .nav__links a { font-size: 13.5px; }

  .hernicka__split { gap: var(--sp-8); }
  .oslavy__inner { gap: var(--sp-8); }

  .rail { grid-auto-columns: minmax(280px, 1fr); }
  .gal-grid { grid-auto-rows: 100px; }

  .kontakt__grid { grid-template-columns: 1fr 1fr; }
  .infocard--map { grid-column: 1 / -1; }
  .mapwrap { min-height: 400px; }
}

/* ————— Standard desktop (1280 – 1439) ————— */
@media (min-width: 1280px) {
  .container { max-width: 1200px; padding: 0 40px; }
}

/* ————— Large desktop (1440+) ————— */
@media (min-width: 1440px) {
  .container { max-width: 1320px; }
  :root { --nav-h: 76px; }
  .hero__h1 { font-size: clamp(64px, 6.2vw, 96px); }
  .hero__lede { font-size: 20px; }
  .nav__inner { max-width: 1480px; padding: 0 48px; }
  .nav__links { gap: 32px; }
  .gal-grid { grid-auto-rows: 124px; gap: 16px; }
}

/* ————— Full HD (1920+) ————— */
@media (min-width: 1920px) {
  html, body { font-size: 17px; }
  .container { max-width: 1520px; }
  .hero { min-height: 86vh; }
  .section-head { max-width: 820px; }
  .nav__inner { max-width: 1720px; }
  .story,
  .hernicka,
  .vstupne,
  .oslavy,
  .akce,
  .galerie,
  .reviews,
  .kontakt { padding: 160px 0; }
  .kavarna { padding-bottom: 160px; }
}

/* ————— Ultra wide (2560+) ————— */
@media (min-width: 2560px) {
  html, body { font-size: 18px; }
  .container { max-width: 1800px; }
  .hero__h1 { font-size: 108px; }
}

/* ————— Tablet + larger: make sure mapwrap stays tall ————— */
@media (min-width: 768px) {
  .infocard--map .mapwrap { min-height: 420px; }
}
