.skeleton-grid {
	--gap: 30px;
	display: grid;
	gap: var(--gap);
}

.skeleton-grid--row {
	--repeat-row: 1;
	grid-template-rows: repeat(var(--repeat-row), 1fr);
}

.skeleton-grid--column {
	--repeat-column: 1;
	grid-template-columns: repeat(var(--repeat-column), 1fr);
}

.skeleton {
	--color-start: var(--light, #f4f4f4) var(--dark, #343434);
	--color-end: var(--light, #fff) var(--dark, #222228);

	background: #eee;
	background: linear-gradient(110deg, var(--color-start) 8%, var(--color-end) 18%, var(--color-start) 33%);
	background-size: 200% 100%;
	animation: 1.5s skeleton-shine linear infinite;

	border-radius: 8px;
	border-radius: var(--theme-button-border-radius);
}

.skeleton-item {
  background-size: 1000px;
  background-color: color-mix(in oklab, var(--secondary) 10%, #FFF);
  background-image: linear-gradient(
    90deg,
    transparent 0px,
    color-mix(in oklab, #FFF 50%, transparent) 100px,
    transparent 200px
  );
  animation: shine-lines 1.5s infinite linear;
}

.skeleton-item--white {
  background-color: #fff;
}

.skeleton-item--image {
  aspect-ratio: 1;
}

.skeleton-item--image-horizontal {
  aspect-ratio: 1.78;
}

.skeleton-item--title {
  width: 90%;
  height: 26px;
}

.skeleton-item--subtitle {
  width: 30%;
  height: 20px;
}

.skeleton-item--price {
  width: 40%;
  height: 30px;
}

.skeleton-item--button {
  width: 100%;
  height: 40px;
}

.skeleton-item--address {
  width: 40%;
  height: 20px;
}

.skeleton-item--block {
  --height: 528px;

  width: 100%;
  height: var(--height);
}

.skeleton-item--seen {
  height: 106px;
}

.skeleton-item--width {
  --width: 10%;
  width: var(--width);
}

@keyframes shine-lines {
  0% {
    background-position: -500px;
  }

  40%,
  100% {
    background-position: 500px;
  }
}

@keyframes skeleton-shine {
	to {
		background-position-x: -200%;
	}
}