/* StarzMeet — "Providers near you" home section */
.sm-nearby { padding: 44px 16px; background: #f7fafc; }
.sm-nearby-inner { max-width: 1140px; margin: 0 auto; }
.sm-nearby h2 { margin: 0 0 4px; font-size: 26px; line-height: 1.2; }
.sm-nearby-sub { color: #64748b; margin: 0 0 14px; }

.sm-nearby-controls { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 14px; }

/* Current-city indicator — a single pill (emoji is inline text so it can never
   wrap onto its own line). Sits at the end of the controls row on desktop.
   Teal pill + golden-yellow city name (matches the logo star) for contrast. */
.sm-nearby-current {
    margin-left: auto;
    padding: 8px 15px;
    background: #7c3aed;
    border: 1px solid #6d28d9;
    border-radius: 999px;
    font-size: 14px;
    line-height: 1.2;
    color: #eafaf4;
    white-space: nowrap;
}
.sm-nearby-current-city { font-weight: 700; color: #ffc233; }
.sm-nearby-btn {
    background: #7c3aed; color: #fff; border: 0; border-radius: 8px;
    padding: 10px 18px; font-weight: 600; font-size: 14px; cursor: pointer;
}
.sm-nearby-btn:hover { background: #6d28d9; }
.sm-nearby-btn[disabled] { opacity: .6; cursor: default; }
.sm-nearby-city {
    padding: 9px 12px; border: 1px solid #cbd5e1; border-radius: 8px;
    min-width: 210px; background: #fff; font-size: 14px;
}
.sm-nearby-status { color: #64748b; min-height: 18px; margin: 4px 0 12px; font-size: 13px; }

.sm-nearby-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
@media (max-width: 1100px) { .sm-nearby-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 820px)  { .sm-nearby-grid { grid-template-columns: repeat(2, 1fr); } }
.sm-card {
    background: #fff; border: 1px solid #e5e7eb; border-radius: 10px; overflow: hidden;
    display: flex; flex-direction: column; text-decoration: none; color: inherit;
    transition: box-shadow .15s, transform .15s;
}
.sm-card:hover { box-shadow: 0 6px 20px rgba(0,0,0,.09); transform: translateY(-2px); }
.sm-card-img { width: 100%; height: 140px; object-fit: cover; background: #eef2f6; display: block; }
.sm-card-body { padding: 12px 14px; display: block; }
.sm-card-cat { font-size: 11px; text-transform: uppercase; letter-spacing: .03em; color: #7c3aed; font-weight: 700; display: block; }
.sm-card-title { font-size: 15px; font-weight: 700; margin: 3px 0 6px; line-height: 1.3; display: block; color: #111827; }
.sm-card-meta { font-size: 12.5px; color: #64748b; display: flex; justify-content: space-between; gap: 8px; }
.sm-card-dist { font-weight: 600; color: #7c3aed; white-space: nowrap; }
.sm-nearby-empty { color: #64748b; }

/* "See more services" button. */
.sm-nearby-more-wrap { text-align: center; margin-top: 22px; }
.sm-nearby-more {
    display: inline-block;
    padding: 11px 28px;
    background: #fff;
    color: #6d28d9;
    border: 1.5px solid #7c3aed;
    border-radius: 999px;
    font-weight: 700;
    font-size: 14.5px;
    cursor: pointer;
    transition: background .15s, color .15s, box-shadow .15s;
}
.sm-nearby-more:hover { background: #7c3aed; color: #fff; box-shadow: 0 4px 14px rgba(15, 123, 95, .25); }
.sm-nearby-more[disabled] { opacity: .6; cursor: default; }

@media (max-width: 600px) {
    .sm-nearby { padding: 32px 14px; }
    .sm-nearby h2 { font-size: 22px; }
    .sm-nearby-sub { font-size: 14px; }
    /* Full-width, comfortably tappable controls that stack cleanly. */
    .sm-nearby-controls { flex-direction: column; align-items: stretch; gap: 8px; }
    .sm-nearby-btn { width: 100%; padding: 12px 18px; font-size: 15px; }
    .sm-nearby-city { width: 100%; min-width: 0; padding: 12px; font-size: 15px; }
    .sm-nearby-current { margin-left: 0; align-self: flex-start; white-space: normal; order: -1; }
    .sm-nearby-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
    .sm-card-img { height: 108px; }
}
