/* ============================================================
   Providers Listing Page
   ============================================================ */

.providers-listing { padding: 48px 0 64px; background: #fff; }
.providers-listing-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
@media (max-width: 1100px) { .providers-listing-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px)  { .providers-listing-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 450px)  { .providers-listing-grid { grid-template-columns: 1fr; } }

.provider-listing-card {
  background: #fff; border: 1.5px solid var(--border);
  border-radius: var(--radius-lg); padding: 24px 20px;
  display: flex; flex-direction: column; align-items: center;
  text-align: center; gap: 12px;
  transition: box-shadow .2s, transform .2s, border-color .2s; cursor: pointer;
  text-decoration: none; color: inherit;
}
.provider-listing-card:hover {
  box-shadow: var(--shadow-md); transform: translateY(-3px); border-color: var(--primary);
}
.provider-listing-card.featured { border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-light); }
.provider-logo-lg {
  width: 100px; height: 100px; border-radius: 20px; overflow: hidden;
  display: flex; align-items: center; justify-content: center; background: #f3f4f6;
}
.provider-logo-lg img { width: 100%; height: 100%; object-fit: cover; }
.provider-listing-name     { font-size: 15px; font-weight: 800; color: var(--text); }
.provider-listing-type     { font-size: 12px; color: var(--primary); font-weight: 600; background: var(--primary-light); padding: 3px 10px; border-radius: 20px; }
.provider-listing-location { font-size: 12px; color: var(--text-muted); display: flex; align-items: center; gap: 4px; justify-content: center; }
.provider-listing-stats    { display: flex; gap: 16px; font-size: 12px; color: var(--text-muted); }
.provider-listing-stat     { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.provider-listing-stat strong { font-size: 16px; font-weight: 800; color: var(--text); }
.provider-listing-rating   { color: #f59e0b; font-size: 13px; }
.btn-view-provider {
  display: inline-block; padding: 8px 20px;
  background: var(--primary); color: #fff;
  border-radius: 8px; font-size: 13px; font-weight: 700;
  text-decoration: none; transition: background .2s; width: 100%;
}
.btn-view-provider:hover { background: var(--primary-hover); }

.stats-bar { background: var(--primary); padding: 24px 0; }
.stats-bar-inner { display: flex; justify-content: center; gap: 60px; flex-wrap: wrap; }
.stat-item { text-align: center; color: #fff; }
.stat-number { font-size: 28px; font-weight: 800; }
.stat-label  { font-size: 13px; opacity: .85; }

#backToTop {
  position: fixed; bottom: 28px; left: 28px;
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--primary); color: #fff; font-size: 20px;
  display: flex; align-items: center; justify-content: center;
  box-shadow: var(--shadow-md); cursor: pointer;
  opacity: 0; pointer-events: none; transition: opacity .3s; z-index: 90;
}
