/* ===========================================================
   Medical network — provider cards & provider details page
   =========================================================== */

:root {
  --pv-primary: #05568a;
  --pv-green: #2ea44f;
  --pv-ink: #1f2d3d;
  --pv-muted: #7b8794;
  --pv-line: #e8edf2;
}

/* ---------- rating ---------- */
.rating-stars { display: inline-flex; align-items: center; gap: 2px; color: #f5a623; }
.rating-stars i { font-size: 13px; }
.rating-stars--lg i { font-size: 17px; }
.rating-stars .rating-value {
  margin-inline-start: 6px; color: var(--pv-ink); font-size: 13px; font-weight: 700;
}
.rating-stars--lg .rating-value { font-size: 16px; }

/* ---------- provider card ---------- */
.provider-card {
  display: flex; flex-direction: column;
  background: #fff; border: 1px solid var(--pv-line); border-radius: 14px;
  overflow: hidden; transition: box-shadow .25s, transform .25s, border-color .25s;
}
.provider-card:hover {
  box-shadow: 0 10px 28px rgba(31, 45, 61, .12);
  transform: translateY(-4px);
  border-color: #d3e2ee;
}
.provider-card__link { text-decoration: none; color: inherit; display: block; }

.provider-card__head {
  display: flex; align-items: center; gap: 14px;
  padding: 18px 18px 14px; position: relative;
}
.provider-card__logo {
  flex: 0 0 68px; width: 68px; height: 68px; border-radius: 50%;
  background: #f6f9fc; border: 1px solid var(--pv-line);
  display: flex; align-items: center; justify-content: center; overflow: hidden;
}
.provider-card__logo img { width: 100%; height: 100%; object-fit: cover; }
.provider-card__id { min-width: 0; flex: 1; }
.provider-card__name {
  font-size: 17px; font-weight: 700; color: var(--pv-primary);
  margin: 0 0 4px; line-height: 1.4;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.provider-card__type {
  display: inline-block; font-size: 12px; color: var(--pv-green);
  background: #eaf7ef; border-radius: 20px; padding: 2px 10px; margin-bottom: 6px;
}
.provider-card__discount {
  flex: 0 0 auto; text-align: center; color: #fff;
  background: linear-gradient(135deg, var(--pv-green), var(--pv-primary));
  border-radius: 12px; padding: 8px 10px; min-width: 62px;
}
.provider-card__discount b { display: block; font-size: 18px; line-height: 1; }
.provider-card__discount small { font-size: 11px; opacity: .9; }

.provider-card__body { padding: 0 18px 14px; flex: 1; }
.provider-card__offers { list-style: none; margin: 0 0 12px; padding: 0; }
.provider-card__offers li {
  display: flex; align-items: center; gap: 8px;
  font-size: 13.5px; color: var(--pv-ink); padding: 5px 0; border-bottom: 1px dashed var(--pv-line);
}
.provider-card__offers li:last-child { border-bottom: 0; }
.provider-card__offers li i { color: var(--pv-green); font-size: 13px; }
.provider-card__offers li span {
  flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.provider-card__offers li b { color: var(--pv-primary); }
.provider-card__offers .provider-card__more { color: var(--pv-muted); font-size: 12.5px; }

.provider-card__meta {
  display: flex; flex-wrap: wrap; gap: 6px 14px;
  font-size: 12.5px; color: var(--pv-muted);
}
.provider-card__meta i { color: var(--pv-primary); margin-inline-end: 4px; }

.provider-card__foot {
  display: flex; gap: 8px; padding: 12px 18px 16px; border-top: 1px solid var(--pv-line);
}
.provider-card__btn {
  flex: 1; text-align: center; text-decoration: none; font-size: 13.5px; font-weight: 600;
  padding: 9px 10px; border-radius: 9px;
  background: var(--pv-primary); color: #fff; transition: .2s;
}
.provider-card__btn:hover { background: #03436c; color: #fff; }
.provider-card__btn--ghost { background: #f2f6fa; color: var(--pv-primary); }
.provider-card__btn--ghost:hover { background: #e6eef5; color: var(--pv-primary); }

/* ---------- results toolbar ---------- */
.network-summary {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px;
  margin-bottom: 18px; color: var(--pv-muted); font-size: 14px;
}
.network-summary b { color: var(--pv-ink); }

/* ---------- provider details page ---------- */
.pv-hero {
  background: #fff; border: 1px solid var(--pv-line); border-radius: 16px;
  padding: 26px; display: flex; gap: 22px; align-items: center; flex-wrap: wrap;
}
.pv-hero__logo {
  flex: 0 0 110px; width: 110px; height: 110px; border-radius: 50%;
  background: #f6f9fc; border: 1px solid var(--pv-line); overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.pv-hero__logo img { width: 100%; height: 100%; object-fit: cover; }
.pv-hero__main { flex: 1; min-width: 240px; }
.pv-hero__name { font-size: 27px; font-weight: 700; color: var(--pv-primary); margin: 0 0 8px; }
.pv-hero__tags { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 10px; }
.pv-chip {
  font-size: 12.5px; padding: 4px 12px; border-radius: 20px;
  background: #eaf7ef; color: var(--pv-green);
}
.pv-chip--blue { background: #eaf2f8; color: var(--pv-primary); }
.pv-hero__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.pv-btn {
  display: inline-flex; align-items: center; gap: 7px; text-decoration: none;
  background: var(--pv-primary); color: #fff; border-radius: 10px;
  padding: 10px 18px; font-size: 14px; font-weight: 600; transition: .2s;
}
.pv-btn:hover { background: #03436c; color: #fff; }
.pv-btn--ghost { background: #f2f6fa; color: var(--pv-primary); }
.pv-btn--ghost:hover { background: #e6eef5; color: var(--pv-primary); }
.pv-btn--green { background: var(--pv-green); }
.pv-btn--green:hover { background: #24853f; color: #fff; }

.pv-section {
  background: #fff; border: 1px solid var(--pv-line); border-radius: 16px;
  padding: 22px; margin-top: 22px;
}
.pv-section__title {
  font-size: 18px; font-weight: 700; color: var(--pv-ink);
  margin: 0 0 16px; padding-bottom: 10px; border-bottom: 1px solid var(--pv-line);
}
.pv-section__title i { color: var(--pv-primary); margin-inline-end: 7px; }

.pv-offers { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.pv-offer {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  border: 1px solid var(--pv-line); border-radius: 12px; padding: 12px 14px; background: #fbfdff;
}
.pv-offer span { font-size: 14px; color: var(--pv-ink); }
.pv-offer b {
  font-size: 17px; color: #fff; background: var(--pv-green);
  border-radius: 8px; padding: 3px 10px; white-space: nowrap;
}

.pv-city { margin-bottom: 22px; }
.pv-city:last-child { margin-bottom: 0; }
.pv-city__name {
  font-size: 15px; font-weight: 700; color: var(--pv-primary);
  background: #f2f8fc; border-radius: 8px; padding: 8px 14px; margin-bottom: 10px;
}
.pv-city__name small { color: var(--pv-muted); font-weight: 400; }
.pv-branch {
  border: 1px solid var(--pv-line); border-radius: 12px; padding: 14px 16px; margin-bottom: 10px;
  display: flex; gap: 14px; align-items: flex-start; flex-wrap: wrap;
}
.pv-branch:last-child { margin-bottom: 0; }
.pv-branch__info { flex: 1; min-width: 220px; }
.pv-branch__title { font-size: 15px; font-weight: 700; color: var(--pv-ink); margin: 0 0 5px; }
.pv-branch__region { font-size: 12.5px; color: var(--pv-green); }
.pv-branch__addr { font-size: 13.5px; color: var(--pv-muted); margin: 6px 0 0; }
.pv-branch__actions { display: flex; gap: 8px; flex-wrap: wrap; }
.pv-branch__actions a {
  font-size: 13px; text-decoration: none; border-radius: 8px; padding: 7px 12px;
  background: #f2f6fa; color: var(--pv-primary); white-space: nowrap;
}
.pv-branch__actions a:hover { background: #e6eef5; }

@media (max-width: 575px) {
  .pv-hero { padding: 18px; }
  .pv-hero__name { font-size: 22px; }
  .provider-card__foot { flex-direction: column; }
}
