/**
 * 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;
}

/* Size gallery images against their tile, not their intrinsic aspect ratio.
 * Elementor can apply img { height: auto }; keep this override widget-scoped.
 */
.idx-tour-gallery-mosaic .idx-tour-gallery-mosaic__item > img.idx-tour-gallery-mosaic__img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100% !important;
	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, "Plus Jakarta Sans", 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;
	}
}

/* Index.pe Travel 2.11.3: opt-in gallery skins and Elementor style controls. */
.idx-tour-gallery-mosaic {
  gap: var(--idx-gallery-gap, 12px);
}
.idx-tour-gallery-mosaic__item {
  border-radius: var(--idx-gallery-tile-radius, 12px);
}
.idx-tour-gallery-mosaic--no-zoom .idx-tour-gallery-mosaic__item:is(:hover, :focus-visible) .idx-tour-gallery-mosaic__img {
  transform: none;
}
/* Variants override the default Bento count geometry only when explicitly chosen. */
.idx-tour-gallery-mosaic.idx-tour-gallery-mosaic--grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: none;
  grid-auto-rows: var(--idx-gallery-tile-height, 175px);
}
.idx-tour-gallery-mosaic.idx-tour-gallery-mosaic--grid .idx-tour-gallery-mosaic__item,
.idx-tour-gallery-mosaic.idx-tour-gallery-mosaic--grid .idx-tour-gallery-mosaic__item--hero {
  grid-column: auto;
  grid-row: auto;
  height: auto;
}
.idx-tour-gallery-mosaic.idx-tour-gallery-mosaic--editorial {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-rows: none;
  grid-auto-rows: var(--idx-gallery-tile-height, 175px);
}
.idx-tour-gallery-mosaic.idx-tour-gallery-mosaic--editorial .idx-tour-gallery-mosaic__item {
  grid-column: auto;
  grid-row: auto;
  height: auto;
}
.idx-tour-gallery-mosaic.idx-tour-gallery-mosaic--editorial .idx-tour-gallery-mosaic__item--hero {
  grid-column: 1 / -1;
  grid-row: span 2;
  height: auto;
}
@media (max-width: 840px) {
  .idx-tour-gallery-mosaic.idx-tour-gallery-mosaic--grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .idx-tour-gallery-mosaic.idx-tour-gallery-mosaic--editorial { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .idx-tour-gallery-mosaic.idx-tour-gallery-mosaic--editorial .idx-tour-gallery-mosaic__item--hero { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .idx-tour-gallery-mosaic.idx-tour-gallery-mosaic--grid,
  .idx-tour-gallery-mosaic.idx-tour-gallery-mosaic--editorial {
    gap: var(--idx-gallery-gap, 8px);
    grid-auto-rows: var(--idx-gallery-tile-height, 115px);
  }
  .idx-tour-gallery-mosaic.idx-tour-gallery-mosaic--editorial .idx-tour-gallery-mosaic__item--hero {
    height: auto;
  }
}
@media (prefers-reduced-motion: reduce) {
  .idx-tour-gallery-mosaic .idx-tour-gallery-mosaic__img { transition: none; }
}
/* Match the original mobile Bento gaps/corners unless Elementor overrides them. */
@media (max-width: 600px) {
  .idx-tour-gallery-mosaic { gap: var(--idx-gallery-gap, 8px); }
  .idx-tour-gallery-mosaic__item { border-radius: var(--idx-gallery-tile-radius, 10px); }
}
