/* Vertical cards for live hotel search. */
.provider-page .provider-catalog {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.provider-page .provider-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 390px;
  border: 1px solid #e4e9ef;
  border-radius: 24px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 5px 20px #20334d06;
  transition: box-shadow .2s ease, transform .2s ease;
}

.provider-page .provider-card:hover {
  box-shadow: 0 10px 30px #20334d13;
}

.provider-card .provider-card-media {
  position: relative;
  display: block;
  flex: 0 0 auto;
  min-height: 0;
  aspect-ratio: 2.4;
  overflow: hidden;
  background: #e9eef3;
}

.provider-card-image-link {
  display: block;
  width: 100%;
  height: 100%;
}

.provider-card .provider-card-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: opacity .16s ease;
}

.provider-card-media.is-loading img { opacity: .65; }
.provider-card-media.has-image-error img { opacity: 0; }

.provider-card-placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 9px;
  color: #83909e;
  font-size: 12px;
}

.provider-card-placeholder .icon { width: 32px; height: 32px; }
.provider-card [hidden] { display: none !important; }

.provider-card-photo-arrow {
  position: absolute;
  top: 50%;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  padding: 7px;
  border: 1px solid #ffffff80;
  border-radius: 50%;
  background: #ffffffda;
  color: #45515e;
  opacity: 0;
  transform: translateY(-50%);
  transition: opacity .16s ease, background .16s ease;
}

.provider-card-photo-arrow svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.provider-card-photo-prev { left: 12px; }
.provider-card-photo-next { right: 12px; }
.provider-card-media:hover .provider-card-photo-arrow,
.provider-card-media:focus-within .provider-card-photo-arrow { opacity: 1; }
.provider-card-photo-arrow:hover { background: #fff; }
.provider-card-photo-arrow:disabled { opacity: .45; }

.provider-card-photo-count {
  position: absolute;
  left: 12px;
  bottom: 10px;
  padding: 2px 7px;
  border-radius: 999px;
  color: #fff;
  background: #16243190;
  font-size: 10px;
  line-height: 1.5;
  pointer-events: none;
  opacity: 0;
}

.provider-card-media:hover .provider-card-photo-count,
.provider-card-media:focus-within .provider-card-photo-count { opacity: 1; }

.provider-card-photo-status {
  position: absolute;
  inset: auto 10px 10px;
  padding: 7px 10px;
  border-radius: 10px;
  color: #303a43;
  background: #fffffff0;
  font-size: 12px;
}

.provider-card .provider-card-content {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 0;
  min-width: 0;
  padding: 16px;
}

.provider-card h3.provider-card-title {
  margin: 0;
  color: #17191d;
  font-size: 19px;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: -.025em !important;
  overflow-wrap: anywhere;
}

.provider-card-title a { display: block; }
.provider-card-title a:hover { color: #283f58; }
.provider-card-stars { display: inline-flex; align-items: center; gap: 4px; margin-right: 8px; white-space: nowrap; vertical-align: -2px; }
.provider-card-stars svg { width: 19px; height: 19px; fill: #ffbf00; }

.provider-card-amenities {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 13px;
  margin: 14px 0 20px;
  padding: 0;
  list-style: none;
  color: #5d626b;
  font-size: 12px;
  line-height: 1.45;
}

.provider-card-amenities li { display: flex; align-items: flex-start; gap: 6px; min-width: 0; }
.provider-card-amenities .icon { flex: 0 0 16px; width: 16px; height: 16px; margin-top: 1px; stroke-width: 1.5; }
.provider-card-amenities span { overflow-wrap: anywhere; }

.provider-card .provider-card-address {
  margin: 12px 0 20px;
  color: #6d7682;
  font-size: 13px;
  line-height: 1.5;
}

.provider-card-footer {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid #e0e4e9;
}

.provider-card-map {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  background: #eaf2ff;
  color: #202932;
  font-size: 13px;
  line-height: 1.6;
  transition: background .16s ease;
}

.provider-card-map:hover { background: #dceaff; }
.provider-card-map .icon { width: 14px; height: 14px; stroke-width: 1.6; }
.provider-card-price { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; margin-left: auto; text-align: right; }
.provider-card-price:hover strong { color: #324b64; }
.provider-card-night-price { color: #5b6069; font-size: 13px; font-weight: 500; line-height: 1.4; }
.provider-card-price strong { color: #17191d; font-size: 30px; font-weight: 600 !important; letter-spacing: -.035em; line-height: 1.15; font-variant-numeric: tabular-nums; white-space: nowrap; }
.provider-card-stay { color: #7b828b; font-size: 11px; line-height: 1.4; }
.provider-card-see-rates { display: inline-flex; align-items: center; gap: 7px; color: #2c465d; font-size: 14px; }
.provider-card-see-rates .icon { width: 17px; height: 17px; }
.provider-catalog > .empty { grid-column: 1 / -1; }

.provider-comparison-note { margin: 0 0 18px; color: #67717a; font-size: 12px; line-height: 1.6; }
.provider-card-footer.has-price-comparison { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: 12px; }
.provider-card-footer.has-price-comparison .provider-card-map { grid-column: 1 / -1; grid-row: 2; justify-self: start; }
.provider-card-footer.has-price-comparison .provider-card-price { grid-column: 1; grid-row: 1; margin: 0; align-items: flex-start; text-align: left; }
.provider-card-footer.has-price-comparison strong { font-size: clamp(19px, 1.65vw, 24px); letter-spacing: -.04em; white-space: nowrap; }
.provider-card-price-source { display: flex; align-items: center; gap: 5px; min-height: 32px; margin-bottom: 6px; color: #59616b; font-size: 11px; font-weight: 600; line-height: 16px; }
.provider-card-price-source img { display: block; flex: 0 0 auto; width: auto; max-width: 24px; height: 18px; object-fit: contain; }
.provider-card-footer.has-price-comparison .provider-card-night-price { min-height: 18px; line-height: 18px; }
.provider-card-footer.has-price-comparison strong { line-height: 30px; font-variant-numeric: tabular-nums; }
.provider-card-yandex { display: flex; flex-direction: column; gap: 2px; min-width: 0; padding-left: 12px; border-left: 1px solid #e6e6ec; }
.provider-card-yandex-quote { display: flex; flex-direction: column; gap: 2px; }
.provider-card-yandex-quote strong { color: #312659; line-height: 1.15; font-weight: 600; font-variant-numeric: tabular-nums; }
.provider-card-yandex-status { display: block; min-height: 47px; color: #87909b; font-size: 11px; line-height: 1.6; }
.provider-card-actions.has-price-comparison { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; align-items: end; margin-top: 14px; }
.provider-card-actions.has-price-comparison .btn { min-width: 0; width: 100%; margin: 0; padding: 12px 7px; font-size: 12px; white-space: nowrap; justify-content: center; }
.provider-card-yandex-book { color: #342363; border-color: #e1daf6; background: #f3effc; }
.provider-card-yandex-book:hover { background: #e9e1fb; }
.provider-card-actions.has-price-comparison .icon { width: 14px; height: 14px; }

@media (max-width: 1023px) {
  .provider-page .provider-catalog { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
}

@media (max-width: 639px) {
  .provider-page .provider-catalog { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .provider-page .provider-card { min-height: 360px; border-radius: 24px; }
  .provider-card .provider-card-media { aspect-ratio: 2.45; }
  .provider-card .provider-card-content { padding: 16px; }
  .provider-card h3.provider-card-title { font-size: 18px; }
  .provider-card-price strong { font-size: 28px; }
  .provider-card-photo-arrow { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .provider-card, .provider-card img, .provider-card-photo-arrow { transition: none !important; }
}

.provider-comparison-note summary { cursor: pointer; width: fit-content; color: #536973; font-size: 13px; }
.provider-comparison-note p { margin: 10px 0 0; max-width: 70ch; }
