/* ==========================================================================
   responsive.css — mobile / tablet / małe desktopowe
   ========================================================================== */

/* ---------- Tablet (max 1024px) ---------- */
@media (max-width: 1024px) {
  .container { padding-left: 20px; padding-right: 20px; }

  .nav-menu { gap: 20px; }
  .nav-link { font-size: 13px; }

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

  .booking-grid {
    grid-template-columns: 1fr 1.2fr;
    gap: 16px;
  }
  .booking-side { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; }
  .booking-side .card-title:first-of-type,
  .booking-side .hours-list { flex: 1; min-width: 280px; }
  .booking-side .summary-title { width: 100%; }
  .booking-side .summary { width: 100%; }

  .seo-grid { gap: 32px; }

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

/* ---------- Mały tablet / duży mobile (max 768px) ---------- */
@media (max-width: 768px) {
  /* Navbar: hamburger menu */
  .nav-menu {
    position: fixed;
    top: 76px;
    left: 0;
    right: 0;
    background: rgba(5, 5, 5, 0.98);
    backdrop-filter: blur(16px);
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 16px 20px 32px;
    border-bottom: 1px solid var(--border-subtle);
    transform: translateY(-12px);
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    max-height: calc(100vh - 76px);
    overflow-y: auto;
  }
  .nav-menu.is-open {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
  }
  .nav-link {
    font-size: 17px;
    padding: 14px 0;
    border-bottom: 1px solid var(--border-subtle);
  }
  .nav-link::after { display: none; }
  .navbar-cta { display: none; }
  .nav-toggle { display: flex; }

  /* Hero */
  .hero { min-height: 92vh; }
  .hero-content { padding-top: 48px; padding-bottom: 80px; }
  .hero-overlay {
    background:
      linear-gradient(180deg, rgba(5,5,5,0.7) 0%, rgba(5,5,5,0.5) 50%, rgba(5,5,5,0.85) 100%);
  }
  .hero-ctas { flex-direction: column; align-items: stretch; }
  .hero-ctas .btn { width: 100%; }
  .trust-points { gap: 10px 16px; }
  .scroll-cue { display: none; }

  /* Sekcje */
  .section { padding: 64px 0; }
  .section-header { margin-bottom: 40px; }

  /* Wartości */
  .values-grid { grid-template-columns: 1fr; }

  /* Pakiety */
  .packages-grid { grid-template-columns: 1fr; }
  .package-card-featured { order: -1; }

  /* Rezerwacja */
  .booking-grid { grid-template-columns: 1fr; }
  .booking-side { flex-direction: column; }
  .booking-side .card-title:first-of-type,
  .booking-side .hours-list { min-width: 0; }
  .hours-list { grid-template-columns: repeat(3, 1fr); }

  /* Galeria */
  .gallery-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }

  /* SEO */
  .seo-grid { grid-template-columns: 1fr; gap: 32px; }

  /* Opinie */
  .reviews-grid { grid-template-columns: 1fr; }

  /* Footer */
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 16px; }
}

/* ---------- Mobile (max 480px) ---------- */
@media (max-width: 480px) {
  :root {
    --container-pad: 16px;
  }

  .navbar { height: 80px; }
  .nav-menu { top: 80px; }
  .brand { font-size: 15px; }
  .brand-icon { width: 32px; height: 20px; }
  .brand-image { height: 56px; }
  .brand-footer .brand-image { height: 64px; }

  .container { padding-left: 16px; padding-right: 16px; }

  .hero { min-height: 100vh; }
  .hero-title { font-size: clamp(34px, 10vw, 48px); }
  .hero-subtitle { font-size: 15px; }

  .section { padding: 56px 0; }
  .section-title { font-size: clamp(24px, 6vw, 32px); }
  .section-subtitle { font-size: 16px; }

  .package-price { font-size: 28px; }
  .package-name { font-size: 20px; }

  .card { padding: 20px; }
  .cal-day { font-size: 13px; min-height: 40px; }
  .calendar-weekdays { font-size: 10px; }
  .calendar-legend { gap: 8px 12px; font-size: 11px; }

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

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

  .footer-grid { grid-template-columns: 1fr; gap: 32px; }
  .footer { padding: 48px 0 24px; }
  .footer-legal { gap: 16px; }

  .modal-content { padding: 32px 24px; }
}

/* ---------- Bardzo duże ekrany (min 1600px) ---------- */
@media (min-width: 1600px) {
  :root { --container-max: 1280px; }
}

/* About grid - mobile */
@media (max-width: 860px) {
  .about-grid { grid-template-columns: 1fr; }
  .about-figure { margin-bottom: 32px; }
}

/* Lokalizacja, legal, lightbox, cookie, hero-contact - mobile */
@media (max-width: 860px) {
  .location-grid { grid-template-columns: 1fr; }
  .legal-grid { grid-template-columns: 1fr; gap: 20px; }
  .lightbox { padding: 16px; }
  .lightbox-prev { left: 8px; }
  .lightbox-next { right: 8px; }
  .lightbox-close { top: 12px; right: 12px; }
  .hero-contact { gap: 8px 16px; font-size: 13px; }
  .cookie-content { flex-direction: column; align-items: stretch; }
  .cookie-actions { width: 100%; }
  .cookie-actions .btn { flex: 1; }
}
