/**
 * Tour-specific Bento mosaic skin.
 * Data/markup/lightbox behavior live in Index.pe Travel Core.
 */

.idx-tour-gallery-mosaic {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	grid-template-rows: 175px 175px;
	gap: 12px;
	width: 100%;
	padding: 12px;
	background: var(--idx-surface, #fff);
	border: 1px solid var(--idx-border, #e2e8e4);
	border-radius: 16px;
	overflow: hidden;
	font-family: var(--idx-font-body, "Manrope", sans-serif);
}

.idx-tour-gallery-mosaic__item {
	position: relative;
	display: block;
	min-width: 0;
	min-height: 0;
	overflow: hidden;
	border-radius: 12px;
	background: color-mix(in srgb, var(--idx-primary, #005189) 5%, var(--idx-surface, #fff));
	text-decoration: none;
	isolation: isolate;
}

.idx-tour-gallery-mosaic__item--hero {
	grid-column: 1 / 2;
	grid-row: 1 / 3;
}

.idx-tour-gallery-mosaic__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transition: transform .4s ease;
}

.idx-tour-gallery-mosaic__item:hover .idx-tour-gallery-mosaic__img,
.idx-tour-gallery-mosaic__item:focus-visible .idx-tour-gallery-mosaic__img {
	transform: scale(1.04);
}

.idx-tour-gallery-mosaic__item:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--idx-primary, #005189) 45%, transparent);
	outline-offset: 2px;
}

.idx-tour-gallery-mosaic__overlay {
	position: absolute;
	z-index: 3;
	inset: 0;
	display: grid;
	place-content: center;
	justify-items: center;
	gap: 8px;
	padding: 16px;
	background: linear-gradient(135deg,
		color-mix(in srgb, var(--idx-primary, #005189) 62%, transparent),
		color-mix(in srgb, var(--idx-primary-dark, #003b64) 82%, transparent));
	color: var(--idx-surface, #fff);
	text-align: center;
	font-family: var(--idx-font-heading, "Manrope", sans-serif);
	font-size: .92rem;
	line-height: 1.2;
	pointer-events: none;
}

.idx-tour-gallery-mosaic__overlay-icon {
	width: 24px;
	height: 24px;
}

.idx-tour-gallery-mosaic__overlay strong {
	font-weight: 800;
}

.idx-tour-gallery-mosaic__lightbox-only {
	display: none !important;
}

.idx-tour-gallery-mosaic__editor-empty {
	padding: 16px;
	border: 1px dashed var(--idx-border, #e2e8e4);
	border-radius: 12px;
	background: var(--idx-surface, #fff);
	color: var(--idx-text-muted, #66737a);
	font-size: 13px;
}

/* Graceful layouts when a Tour has fewer than five photos. */
.idx-tour-gallery-mosaic--count-1 {
	grid-template-columns: 1fr;
	grid-template-rows: 350px;
}

.idx-tour-gallery-mosaic--count-1 .idx-tour-gallery-mosaic__item--hero {
	grid-column: 1;
	grid-row: 1;
}

.idx-tour-gallery-mosaic--count-2 {
	grid-template-columns: 2fr 1fr;
	grid-template-rows: 350px;
}

.idx-tour-gallery-mosaic--count-2 .idx-tour-gallery-mosaic__item--hero {
	grid-column: 1;
	grid-row: 1;
}

.idx-tour-gallery-mosaic--count-3 {
	grid-template-columns: 2fr 1fr;
	grid-template-rows: 169px 169px;
}

.idx-tour-gallery-mosaic--count-4 .idx-tour-gallery-mosaic__item:nth-of-type(4) {
	grid-column: 2 / 4;
}

@media (max-width: 840px) {
	.idx-tour-gallery-mosaic {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: none;
		grid-auto-rows: auto;
	}

	.idx-tour-gallery-mosaic .idx-tour-gallery-mosaic__item--hero {
		grid-column: 1 / -1;
		grid-row: auto;
		height: 260px;
	}

	.idx-tour-gallery-mosaic__item:not(.idx-tour-gallery-mosaic__item--hero) {
		height: 150px;
	}

	.idx-tour-gallery-mosaic--count-2 .idx-tour-gallery-mosaic__item:nth-of-type(2),
	.idx-tour-gallery-mosaic--count-4 .idx-tour-gallery-mosaic__item:nth-of-type(4) {
		grid-column: 1 / -1;
	}
}

@media (max-width: 600px) {
	.idx-tour-gallery-mosaic {
		gap: 8px;
		padding: 8px;
		border-radius: 14px;
	}

	.idx-tour-gallery-mosaic .idx-tour-gallery-mosaic__item--hero {
		height: 190px;
	}

	.idx-tour-gallery-mosaic__item:not(.idx-tour-gallery-mosaic__item--hero) {
		height: 115px;
	}

	.idx-tour-gallery-mosaic__item {
		border-radius: 10px;
	}


	.idx-tour-gallery-mosaic__overlay {
		gap: 6px;
		padding: 10px;
		font-size: .84rem;
	}

	.idx-tour-gallery-mosaic__overlay-icon {
		width: 20px;
		height: 20px;
	}
}
