/* ===================================================================
   Total Fitness Gym — Responsive Stylesheet (mobile-first overrides)
   Breakpoints follow Bootstrap 5: 1200 / 992 / 768 / 576
   =================================================================== */

/* Large desktops and below */
@media (max-width: 1199.98px) {
  .section { padding: 80px 0; }
  .masonry { column-count: 3; }
}

/* Tablets / small laptops */
@media (max-width: 991.98px) {
  .section { padding: 68px 0; }

  .navbar-tfg {
    background: rgba(11, 11, 11, .96);
    padding: 12px 0;
  }
  .navbar-tfg .navbar-collapse {
    background: var(--steel-gray-2);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 16px;
    margin-top: 12px;
  }
  .navbar-tfg .nav-link { margin: 0; padding: .6rem 0; }
  .navbar-tfg .nav-link::after { display: none; }

  .hero { min-height: 92vh; }
  .hero-overlay { background: linear-gradient(180deg, rgba(11,11,11,.9) 0%, rgba(11,11,11,.78) 60%, rgba(11,11,11,.95) 100%); }
  .hero-content { text-align: center; padding-top: 110px; }
  .hero .hero-sub { margin-left: auto; margin-right: auto; }
  .hero .divider { margin-left: auto; margin-right: auto; }

  .page-banner { padding: 150px 0 70px; background-attachment: scroll; }

  .masonry { column-count: 2; }
  .trainer-card img { height: 380px; }
  .map-frame iframe { height: 340px; }
}

/* Phones (landscape) */
@media (max-width: 767.98px) {
  body { font-size: .95rem; }
  .section { padding: 56px 0; }
  .section-sm { padding: 44px 0; }

  .stat-item { padding: 24px 6px; }
  .price-card, .card-tfg { padding: 28px 22px; }
  .cta-banner { padding: 70px 0; }

  .float-stack { right: 14px; bottom: 14px; }
  .float-btn { width: 46px; height: 46px; font-size: 1.1rem; }

  #cookieBanner { left: 10px; right: 10px; bottom: 10px; padding: 14px; }
}

/* Small phones */
@media (max-width: 575.98px) {
  h1 { font-size: 2.6rem; }
  .hero { min-height: 88vh; }
  .hero-scroll { display: none; }

  .masonry { column-count: 1; }
  .gallery-filter { gap: 8px; }
  .filter-btn { padding: 8px 14px; font-size: .68rem; }

  .btn { width: 100%; margin-bottom: 10px; }
  .btn-inline-auto .btn { width: auto; }

  .trainer-card img { height: 340px; }
  .footer { padding-top: 56px; }
  .footer-bottom { text-align: center; }
}
