.indydtf-review-gallery {
	display: grid;
	gap: var(--indy-space-4, 16px);
	margin: var(--indy-space-8, 32px) 0;
}

.indydtf-review-gallery__header {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: var(--indy-space-3, 12px);
}

.indydtf-review-gallery__controls {
	display: inline-flex;
	gap: var(--indy-space-2, 8px);
}

.indydtf-review-gallery__item:focus-visible,
.indydtf-review-images__item:focus-visible {
	outline: none;
	box-shadow: var(--indy-button-focus-ring, 0 0 0 3px rgba(245, 180, 0, 0.35));
}

.indydtf-review-gallery__viewport {
	overflow-x: auto;
	scroll-behavior: smooth;
	scrollbar-width: thin;
}

.indydtf-review-gallery__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(180px, 220px);
	gap: var(--indy-space-3, 12px);
	padding: 0 0 var(--indy-space-2, 8px);
}

.indydtf-review-gallery__item {
	display: grid;
	gap: var(--indy-space-2, 8px);
	width: 100%;
	padding: var(--indy-space-2, 8px);
	text-align: left;
	cursor: pointer;
}

.indydtf-review-gallery__item img,
.indydtf-review-images__item img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	border-radius: var(--indy-radius-sm, 4px);
	object-fit: cover;
}

.indydtf-review-gallery__item-meta {
	display: grid;
	gap: var(--indy-space-1, 4px);
	min-width: 0;
}

.indydtf-review-gallery__reviewer {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.indydtf-review-gallery__stars {
	color: var(--indy-color-muted, #5B677A);
	font-size: 0.86rem;
	letter-spacing: 0;
	line-height: 1;
}

.indydtf-review-gallery__stars .is-filled {
	color: var(--color-secondary, #F5B400);
}

.indydtf-review-gallery__empty {
	padding: var(--indy-space-5, 20px);
}

.indydtf-review-gallery__empty p {
	margin: 0;
}

.indydtf-review-images {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(76px, 1fr));
	gap: var(--indy-space-2, 8px);
	max-width: 440px;
	margin-top: var(--indy-space-3, 12px);
}

.indydtf-review-images__item {
	padding: 0;
	cursor: pointer;
	overflow: hidden;
}

.indydtf-review-lightbox[hidden] {
	display: none;
}

.indydtf-review-lightbox-open {
	overflow: hidden;
}

.indydtf-review-lightbox {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: grid;
	place-items: center;
	padding: var(--indy-space-4, 16px);
}

.indydtf-review-lightbox__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(17, 24, 39, 0.72);
}

.indydtf-review-lightbox__dialog {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(240px, 320px);
	gap: var(--indy-space-4, 16px);
	width: min(960px, 100%);
	max-height: min(760px, calc(100vh - 32px));
	padding: var(--indy-space-4, 16px);
}

.indydtf-review-lightbox__figure {
	display: grid;
	place-items: center;
	min-width: 0;
	margin: 0;
	background: var(--indy-color-surface-soft, #F7FAFD);
	border-radius: var(--indy-radius-sm, 4px);
	overflow: hidden;
}

.indydtf-review-lightbox__figure img {
	display: block;
	max-width: 100%;
	max-height: min(680px, calc(100vh - 96px));
	object-fit: contain;
}

.indydtf-review-lightbox__meta {
	display: grid;
	align-content: start;
	gap: var(--indy-space-2, 8px);
	min-width: 0;
	padding: var(--indy-space-2, 8px);
}

.indydtf-review-lightbox__meta p {
	margin: 0;
}

.indydtf-review-lightbox__rating {
	color: var(--color-secondary, #F5B400);
	font-weight: 850;
	letter-spacing: 0;
}

.indydtf-review-lightbox__view-review {
	justify-self: start;
	margin-top: var(--indy-space-2, 8px);
}

.indydtf-review-lightbox__close {
	position: absolute;
	top: var(--indy-space-2, 8px);
	right: var(--indy-space-2, 8px);
	z-index: 2;
}

.indydtf-review-lightbox__nav {
	position: absolute;
	top: 50%;
	z-index: 2;
	transform: translateY(-50%);
}

.indydtf-review-lightbox__nav--prev {
	left: var(--indy-space-2, 8px);
}

.indydtf-review-lightbox__nav--next {
	right: var(--indy-space-2, 8px);
}

.indydtf-review-media-highlight {
	animation: indydtf-review-media-highlight 1.8s ease;
}

@keyframes indydtf-review-media-highlight {
	0%,
	100% {
		box-shadow: none;
	}
	18%,
	82% {
		box-shadow: var(--indy-button-focus-ring, 0 0 0 3px rgba(245, 180, 0, 0.35));
	}
}

@media (max-width: 768px) {
	.indydtf-review-gallery__header {
		align-items: start;
	}

	.indydtf-review-gallery__track {
		grid-auto-columns: minmax(150px, 72vw);
	}

	.indydtf-review-lightbox__dialog {
		grid-template-columns: 1fr;
		max-height: calc(100vh - 24px);
		overflow-y: auto;
	}

	.indydtf-review-lightbox__figure img {
		max-height: 58vh;
	}

	.indydtf-review-lightbox__nav {
		top: 38%;
	}
}

@media (max-width: 480px) {
	.indydtf-review-gallery__controls {
		display: none;
	}

	.indydtf-review-images {
		grid-template-columns: repeat(auto-fill, minmax(64px, 1fr));
	}
}
