@keyframes alexToursShimmer {
  0% { background-position: 120% 0; }
  100% { background-position: -120% 0; }
}

@keyframes alexToursSpin {
  to { transform: rotate(360deg); }
}

.loading-status {
  display: flex;
  align-items: center;
  gap: 10px;
}

.loading-spinner,
.button-spinner {
  width: 18px;
  height: 18px;
  border: 2px solid rgba(13,61,95,.18);
  border-top-color: var(--gold-dark);
  border-radius: 999px;
  animation: alexToursSpin .8s linear infinite;
  flex: 0 0 auto;
}

.button-spinner {
  width: 16px;
  height: 16px;
  border-color: rgba(13,61,95,.2);
  border-top-color: currentColor;
}

.btn.is-busy {
  pointer-events: none;
}

.skeleton-card,
.skeleton-line,
.skeleton-chip,
.is-skeleton-block,
.is-skeleton-text {
  position: relative;
  overflow: hidden;
  background: linear-gradient(100deg, rgba(255,255,255,.45) 0%, rgba(201,169,110,.18) 34%, rgba(255,255,255,.7) 52%, rgba(255,255,255,.45) 70%);
  background-size: 220% 100%;
  animation: alexToursShimmer 1.25s ease-in-out infinite;
}

.skeleton-card {
  min-height: 390px;
  border-radius: var(--radius-lg);
  border: 1px solid var(--border);
  background-color: var(--white);
}

.skeleton-card::before {
  content: '';
  display: block;
  height: 230px;
  background: rgba(13,61,95,.08);
}

.skeleton-card-body {
  padding: 22px;
}

.skeleton-line {
  height: 13px;
  border-radius: 999px;
  margin-bottom: 12px;
}

.skeleton-line.is-title {
  width: 72%;
  height: 22px;
}

.skeleton-line.is-short {
  width: 44%;
}

.skeleton-line.is-medium {
  width: 62%;
}

.skeleton-chip-row {
  display: flex;
  gap: 10px;
  margin: 18px 0;
  flex-wrap: wrap;
}

.skeleton-chip {
  width: 78px;
  height: 28px;
  border-radius: 999px;
}

.is-skeleton-block,
.is-skeleton-text {
  background-color: rgba(13,61,95,.06) !important;
  background-image: linear-gradient(100deg, rgba(255,255,255,.35) 0%, rgba(201,169,110,.22) 35%, rgba(255,255,255,.72) 52%, rgba(255,255,255,.35) 70%) !important;
  color: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

.is-skeleton-block *,
.is-skeleton-text * {
  visibility: hidden !important;
}

.is-skeleton-text {
  border-radius: 999px;
}

.gallery-main.is-skeleton-block,
.gallery-thumb.is-skeleton-block,
.main-gallery.is-skeleton-block,
.thumb.is-skeleton-block {
  background-size: 220% 100% !important;
  background-position: 120% 0 !important;
}

.loading-card-grid {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: inherit;
  gap: inherit;
}

@media (max-width: 680px) {
  .skeleton-card {
    min-height: 340px;
  }
}
