/* Shared mobile-first patterns for all public directory pages */

.dir-company-grid {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
}

.dir-touch-target {
  min-height: 44px;
  min-width: 44px;
}

.dir-search input {
  font-size: 16px;
  min-height: 44px;
}

.dir-search .btn {
  min-height: 44px;
}

.dir-brand {
  min-width: 0;
  max-width: 100%;
}

.dir-brand span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}

.dir-company-card {
  text-decoration: none;
  color: inherit;
  -webkit-tap-highlight-color: transparent;
}

.dir-company-card:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
}

.dir-company-card__name {
  color: var(--text-primary);
}

.dir-company-card:hover .dir-company-card__name,
.dir-company-card:focus-visible .dir-company-card__name {
  color: var(--primary);
}

@media (max-width: 640px) {
  .dir-site-header__inner {
    min-height: 56px;
  }

  .dir-brand img {
    height: 32px;
  }

  .dir-page-title {
    font-size: clamp(28px, 8vw, 40px);
  }

  .dir-company-card {
    padding: 20px;
  }
}

@media (max-width: 480px) {
  .dir-hero {
    padding-top: 40px;
  }

  .dir-company-grid {
    gap: 16px;
  }
}
