/* ========== Mobile: <= 768px ========== */
@media (max-width: 768px) {
  .main-content {
    padding: 16px 12px;
  }

  .header-inner {
    padding: 0 10px;
    height: 60px;
  }

  .logo-img {
    height: 70px;
    margin-top: 8px;

  }

  .site-nav {
    gap: 1px;
    padding: 3px;
  }
  .nav-link {
    padding: 6px 12px;
    font-size: 13px;
    border-radius: 4px;
  }

  /* Shop grid: single column */
  .shop-grid {
    grid-template-columns: 1fr;
  }

  /* Brand grid: 3-4 columns */
  .brand-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
  }
  .brand-card {
    padding: 12px 4px;
  }
  .brand-card img {
    width: 36px;
    height: 36px;
  }
  .brand-card-name {
    font-size: 12px;
  }

  /* Model grid: 2 columns */
  .model-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }
  .model-card {
    padding: 16px;
  }
  .model-card-name {
    font-size: 14px;
  }

  /* Modified brand grid: single column */
  .modified-brand-grid {
    grid-template-columns: 1fr;
  }

  /* Brand detail: stack */
  .brand-detail-header {
    grid-template-columns: 1fr;
    padding: 20px;
  }
  .brand-detail-cover {
    max-width: 200px;
    margin: 0 auto;
  }

  /* Shop detail: stack */
  .shop-detail-header {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 16px;
  }
  .shop-detail-cover {
    aspect-ratio: 16/9;
  }
  .shop-detail-left {
    gap: 0;
  }
  .shop-cover-tags {
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
  }
  .shop-cover-tag-row {
    overflow: hidden;
  }
  .shop-cover-tag-list {
    flex-wrap: nowrap;
    padding-right: 0;
    position: static;
  }
  .shop-detail-info h1 {
    font-size: 22px;
  }
  .shop-detail-contact {
    grid-template-columns: 1fr;
  }
  .shop-detail-linked {
    padding: 16px;
  }

  /* Section title */
  .section-title {
    font-size: 18px;
    padding: 0 0 12px 12px;
    border-left-width: 3px;
  }

  /* Footer mini program */
  .footer-mini-program {
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 24px 16px;
  }
  .footer-mini-program img {
    width: 100px;
    height: 100px;
  }

  /* Hero carousel */
  .hero-slide {
    padding: 40px 20px;
    min-height: 200px;
  }
  .hero-content h2 {
    font-size: 24px;
  }
  .hero-content p {
    font-size: 13px;
  }
  .hero-content .btn {
    font-size: 14px;
    padding: 10px 24px;
  }

  /* Filter section */
  .filter-row {
    flex-direction: column;
    gap: 10px;
  }
  .filter-col {
    max-width: none;
  }
  .filter-section {
    padding: 12px;
  }

  /* Filter chips */
  .filter-group {
    gap: 6px;
  }
  .filter-chip {
    padding: 5px 12px;
    font-size: 12px;
  }

  /* Wheel QR card: stack */
  .wheel-qr-card {
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 24px;
  }

  /* Wheel table: scroll */
  .wheel-table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* Pagination */
  .pagination {
    flex-direction: column;
    gap: 12px;
  }

  /* Footer */
  .footer-links {
    gap: 14px;
  }

  /* Letter index */
  .letter-index a {
    width: 28px;
    height: 28px;
    font-size: 12px;
  }

  /* Content wrapper */
  .shop-detail-content {
    padding: 16px;
  }

  /* Empty state */
  .empty-state {
    padding: 48px 16px;
  }

  /* Shop banner */
  .shop-banner {
    padding: 16px;
    gap: 12px;
  }
  .shop-banner-icon {
    width: 40px;
    height: 40px;
    font-size: 22px;
  }
  .shop-banner-title {
    font-size: 15px;
  }
  .shop-banner-arrow {
    width: 28px;
    height: 28px;
    font-size: 14px;
  }

  /* Modal */
  .modal-dialog {
    padding: 24px 20px;
  }
  .modal-qr {
    width: 160px;
    height: 160px;
  }
}

/* ========== Tablet: 769px - 1024px ========== */
@media (min-width: 769px) and (max-width: 1024px) {
  .main-content {
    padding: 24px 20px;
  }

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

  .model-grid {
    grid-template-columns: repeat(3, 1fr);
  }

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

  .shop-detail-header {
    grid-template-columns: 260px 1fr;
    gap: 24px;
    padding: 20px;
  }

  .hero-slide {
    min-height: 240px;
    padding: 56px 36px;
  }
  .hero-content h2 {
    font-size: 30px;
  }
}

/* ========== Desktop: >= 1025px ========== */
@media (min-width: 1025px) {
  .shop-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .model-grid {
    grid-template-columns: repeat(4, 1fr);
  }

  .modified-brand-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .brand-grid {
    grid-template-columns: repeat(6, 1fr);
  }
}
