/* =========================================================
   Dakop — Layout
   Container, grid system, section spacing.
   ========================================================= */

.container {
	width: 100%;
	max-width: var(--container, 1440px);
	margin: 0 auto;
	padding-inline: clamp(1.25rem, 3vw, 2.5rem);
}
.container--narrow { max-width: 880px; }
.container--wide   { max-width: 1680px; }

.section {
	padding-block: var(--section-gap, 140px);
}
.section--narrow { padding-block: calc(var(--section-gap) * .55); }

@media (max-width: 768px) {
	.section { padding-block: clamp(60px, 14vw, 100px); }
}

/* Section header — sjednocený titulek sekce. */
.section-header {
	max-width: 720px;
	margin-bottom: clamp(2rem, 4vw, 4rem);
}
.section-header__title { color: var(--c-text); }
.section-header__lead {
	color: var(--c-text-muted);
	font-size: 1.05rem;
	margin-bottom: 1rem;
	max-width: 36ch;
}
.section-header--split {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	align-items: end;
	max-width: none;
}
@media (min-width: 900px) {
	.section-header--split {
		grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
		gap: clamp(3rem, 6vw, 6rem);
	}
}
.section-header__action {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1rem;
}

.text-center { text-align: center; }

/* Grid pomocníci. */
.cards {
	display: grid;
	gap: clamp(1.5rem, 3vw, 2.5rem);
}
.cards--2 { grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr)); }
.cards--3 { grid-template-columns: repeat(3, 1fr); }
.cards--4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 900px) {
	.cards--3, .cards--4 {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 768px) {
	.cards,
	.cards--2,
	.cards--3,
	.cards--4 {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 1.25rem 0.75rem !important;
	}
}

/* Gallery grids: Dokonale zarovnaný blokový grid */
.gallery-grid {
	display: grid;
	grid-template-columns: repeat(var(--cols-mobile, 2), 1fr);
	gap: 0.75rem;
}
@media (min-width: 641px) {
	.gallery-grid {
		grid-template-columns: repeat(var(--cols-tablet, 2), 1fr);
		gap: 1.75rem;
	}
}
@media (min-width: 1024px) {
	.gallery-grid {
		grid-template-columns: repeat(var(--cols-desktop, 3), 1fr);
		gap: 2.25rem;
	}
}

/* 1. Klasický grid (výchozí mřížka): Všechny karty mají 1 sloupec */
.gallery-grid--grid > * {
	grid-column: span 1;
}

/* 2. Asymetrický grid (Editorial): Magazínový asymetrický rytmus bez mezer pro jakýkoliv počet sloupců */
@media (min-width: 1024px) {
	.gallery-grid--editorial {
		grid-auto-flow: dense;
	}

	/* Široké karty pro 3 sloupce (2 karty na řadu: 1. vlevo, 4. vpravo...) */
	.gallery-grid--editorial.gallery-grid--cols-3 > .gallery-card:nth-child(4n + 1),
	.gallery-grid--editorial.gallery-grid--cols-3 > .gallery-card:nth-child(4n + 4),
	.gallery-grid--editorial[style*="--cols-desktop: 3"] > .gallery-card:nth-child(4n + 1),
	.gallery-grid--editorial[style*="--cols-desktop: 3"] > .gallery-card:nth-child(4n + 4),
	.gallery-grid--editorial[style*="--cols-desktop:3"] > .gallery-card:nth-child(4n + 1),
	.gallery-grid--editorial[style*="--cols-desktop:3"] > .gallery-card:nth-child(4n + 4) {
		grid-column: span 2;
	}

	/* Široké karty pro 4 sloupce (3 karty na řadu: 1. vlevo, 6. vpravo...) */
	.gallery-grid--editorial.gallery-grid--cols-4 > .gallery-card:nth-child(6n + 1),
	.gallery-grid--editorial.gallery-grid--cols-4 > .gallery-card:nth-child(6n + 6),
	.gallery-grid--editorial[style*="--cols-desktop: 4"] > .gallery-card:nth-child(6n + 1),
	.gallery-grid--editorial[style*="--cols-desktop: 4"] > .gallery-card:nth-child(6n + 6),
	.gallery-grid--editorial[style*="--cols-desktop:4"] > .gallery-card:nth-child(6n + 1),
	.gallery-grid--editorial[style*="--cols-desktop:4"] > .gallery-card:nth-child(6n + 6) {
		grid-column: span 2;
	}

	/* Široké karty pro 5 sloupců (4 karty na řadu: 1. vlevo, 7. vpravo...) */
	.gallery-grid--editorial.gallery-grid--cols-5 > .gallery-card:nth-child(8n + 1),
	.gallery-grid--editorial.gallery-grid--cols-5 > .gallery-card:nth-child(8n + 7),
	.gallery-grid--editorial[style*="--cols-desktop: 5"] > .gallery-card:nth-child(8n + 1),
	.gallery-grid--editorial[style*="--cols-desktop: 5"] > .gallery-card:nth-child(8n + 7),
	.gallery-grid--editorial[style*="--cols-desktop:5"] > .gallery-card:nth-child(8n + 1),
	.gallery-grid--editorial[style*="--cols-desktop:5"] > .gallery-card:nth-child(8n + 7) {
		grid-column: span 2;
	}

	/* Široké karty pro 6 sloupců (5 karet na řadu: 1. vlevo, 9. vpravo...) */
	.gallery-grid--editorial.gallery-grid--cols-6 > .gallery-card:nth-child(10n + 1),
	.gallery-grid--editorial.gallery-grid--cols-6 > .gallery-card:nth-child(10n + 9),
	.gallery-grid--editorial[style*="--cols-desktop: 6"] > .gallery-card:nth-child(10n + 1),
	.gallery-grid--editorial[style*="--cols-desktop: 6"] > .gallery-card:nth-child(10n + 9),
	.gallery-grid--editorial[style*="--cols-desktop:6"] > .gallery-card:nth-child(10n + 1),
	.gallery-grid--editorial[style*="--cols-desktop:6"] > .gallery-card:nth-child(10n + 9) {
		grid-column: span 2;
	}

	/* Široké karty pro 2 sloupce */
	.gallery-grid--editorial.gallery-grid--cols-2 > .gallery-card:nth-child(3n + 1),
	.gallery-grid--editorial[style*="--cols-desktop: 2"] > .gallery-card:nth-child(3n + 1),
	.gallery-grid--editorial[style*="--cols-desktop:2"] > .gallery-card:nth-child(3n + 1) {
		grid-column: span 2;
	}

	/* Výchozí záložní pravidlo pro Editorial mřížku */
	.gallery-grid--editorial:not([class*="gallery-grid--cols-"]):not([style*="--cols-desktop"]) > .gallery-card:first-child {
		grid-column: span 2;
	}

	/* Všechny široké karty: médium přirozeně vyplní celou výšku řádku bez šedých pruhů */
	.gallery-grid--editorial.gallery-grid--cols-3 > .gallery-card:nth-child(4n + 1) .gallery-card__media,
	.gallery-grid--editorial.gallery-grid--cols-3 > .gallery-card:nth-child(4n + 4) .gallery-card__media,
	.gallery-grid--editorial[style*="--cols-desktop: 3"] > .gallery-card:nth-child(4n + 1) .gallery-card__media,
	.gallery-grid--editorial[style*="--cols-desktop: 3"] > .gallery-card:nth-child(4n + 4) .gallery-card__media,
	.gallery-grid--editorial[style*="--cols-desktop:3"] > .gallery-card:nth-child(4n + 1) .gallery-card__media,
	.gallery-grid--editorial[style*="--cols-desktop:3"] > .gallery-card:nth-child(4n + 4) .gallery-card__media,
	.gallery-grid--editorial.gallery-grid--cols-4 > .gallery-card:nth-child(6n + 1) .gallery-card__media,
	.gallery-grid--editorial.gallery-grid--cols-4 > .gallery-card:nth-child(6n + 6) .gallery-card__media,
	.gallery-grid--editorial[style*="--cols-desktop: 4"] > .gallery-card:nth-child(6n + 1) .gallery-card__media,
	.gallery-grid--editorial[style*="--cols-desktop: 4"] > .gallery-card:nth-child(6n + 6) .gallery-card__media,
	.gallery-grid--editorial[style*="--cols-desktop:4"] > .gallery-card:nth-child(6n + 1) .gallery-card__media,
	.gallery-grid--editorial[style*="--cols-desktop:4"] > .gallery-card:nth-child(6n + 6) .gallery-card__media,
	.gallery-grid--editorial.gallery-grid--cols-5 > .gallery-card:nth-child(8n + 1) .gallery-card__media,
	.gallery-grid--editorial.gallery-grid--cols-5 > .gallery-card:nth-child(8n + 7) .gallery-card__media,
	.gallery-grid--editorial[style*="--cols-desktop: 5"] > .gallery-card:nth-child(8n + 1) .gallery-card__media,
	.gallery-grid--editorial[style*="--cols-desktop: 5"] > .gallery-card:nth-child(8n + 7) .gallery-card__media,
	.gallery-grid--editorial[style*="--cols-desktop:5"] > .gallery-card:nth-child(8n + 1) .gallery-card__media,
	.gallery-grid--editorial[style*="--cols-desktop:5"] > .gallery-card:nth-child(8n + 7) .gallery-card__media,
	.gallery-grid--editorial.gallery-grid--cols-6 > .gallery-card:nth-child(10n + 1) .gallery-card__media,
	.gallery-grid--editorial.gallery-grid--cols-6 > .gallery-card:nth-child(10n + 9) .gallery-card__media,
	.gallery-grid--editorial[style*="--cols-desktop: 6"] > .gallery-card:nth-child(10n + 1) .gallery-card__media,
	.gallery-grid--editorial[style*="--cols-desktop: 6"] > .gallery-card:nth-child(10n + 9) .gallery-card__media,
	.gallery-grid--editorial[style*="--cols-desktop:6"] > .gallery-card:nth-child(10n + 1) .gallery-card__media,
	.gallery-grid--editorial[style*="--cols-desktop:6"] > .gallery-card:nth-child(10n + 9) .gallery-card__media,
	.gallery-grid--editorial.gallery-grid--cols-2 > .gallery-card:nth-child(3n + 1) .gallery-card__media,
	.gallery-grid--editorial[style*="--cols-desktop: 2"] > .gallery-card:nth-child(3n + 1) .gallery-card__media,
	.gallery-grid--editorial[style*="--cols-desktop:2"] > .gallery-card:nth-child(3n + 1) .gallery-card__media,
	.gallery-grid--editorial > .gallery-card:first-child .gallery-card__media {
		aspect-ratio: auto;
		height: 100%;
		min-height: 100%;
		flex: 1 1 100%;
	}

	.gallery-grid--editorial > .gallery-card:first-child .gallery-card__title {
		font-size: clamp(1.4rem, 2.2vw, 1.85rem);
	}
	}
}

/* 3. Masonry grid: Kaskádová vertikální mozaika */
@media (min-width: 1024px) {
	.gallery-grid--masonry {
		display: block !important;
		column-count: var(--cols-desktop, 3);
		column-gap: 2.25rem;
	}
	.gallery-grid--masonry > * {
		break-inside: avoid;
		margin-bottom: 2.25rem;
		display: inline-block;
		width: 100%;
	}
	.gallery-grid--masonry .gallery-card__media {
		aspect-ratio: auto;
	}
	.gallery-grid--masonry .gallery-card__img {
		height: auto;
		max-height: none;
		object-fit: cover;
		display: block;
	}
	.gallery-grid--masonry.lightbox-grid {
		column-gap: 1rem;
	}
	.gallery-grid--masonry.lightbox-grid--gap-compact {
		column-gap: 0.5rem;
	}
	.gallery-grid--masonry.lightbox-grid--gap-compact > * {
		margin-bottom: 0.5rem;
	}
	.gallery-grid--masonry.lightbox-grid--gap-normal {
		column-gap: 1rem;
	}
	.gallery-grid--masonry.lightbox-grid--gap-normal > * {
		margin-bottom: 1rem;
	}
	.gallery-grid--masonry.lightbox-grid--gap-spacious {
		column-gap: 1.5rem;
	}
	.gallery-grid--masonry.lightbox-grid--gap-spacious > * {
		margin-bottom: 1.5rem;
	}
	.gallery-grid--masonry .lightbox-grid__img {
		aspect-ratio: auto;
		height: auto;
		max-height: 520px;
		display: block;
		object-fit: cover;
	}
}
@media (min-width: 641px) and (max-width: 1023px) {
	.gallery-grid--masonry {
		display: block !important;
		column-count: var(--cols-tablet, 2);
		column-gap: 1.75rem;
	}
	.gallery-grid--masonry > * {
		break-inside: avoid;
		margin-bottom: 1.75rem;
		display: inline-block;
		width: 100%;
	}
	.gallery-grid--masonry .gallery-card__media {
		aspect-ratio: auto;
	}
	.gallery-grid--masonry .gallery-card__img {
		height: auto;
		max-height: none;
		object-fit: cover;
		display: block;
	}
	.gallery-grid--masonry.lightbox-grid {
		column-gap: 1rem;
	}
	.gallery-grid--masonry.lightbox-grid--gap-compact {
		column-gap: 0.5rem;
	}
	.gallery-grid--masonry.lightbox-grid--gap-compact > * {
		margin-bottom: 0.5rem;
	}
	.gallery-grid--masonry.lightbox-grid--gap-normal {
		column-gap: 1rem;
	}
	.gallery-grid--masonry.lightbox-grid--gap-normal > * {
		margin-bottom: 1rem;
	}
	.gallery-grid--masonry.lightbox-grid--gap-spacious {
		column-gap: 1.5rem;
	}
	.gallery-grid--masonry.lightbox-grid--gap-spacious > * {
		margin-bottom: 1.5rem;
	}
	.gallery-grid--masonry .lightbox-grid__img {
		aspect-ratio: auto;
		height: auto;
		max-height: 520px;
		display: block;
		object-fit: cover;
	}
}

/* Lightbox grid (single galerie detail fotek) */
.gallery-grid.lightbox-grid {
	gap: 1rem;
}
.gallery-grid.lightbox-grid--gap-compact {
	gap: 0.5rem;
}
.gallery-grid.lightbox-grid--gap-normal {
	gap: 1rem;
}
.gallery-grid.lightbox-grid--gap-spacious {
	gap: 1.5rem;
}

.lightbox-grid__item {
	overflow: hidden;
	display: block;
	background: var(--c-bg-alt);
	border-radius: 0 !important;
	position: relative;
}
.lightbox-grid__link {
	display: block;
	width: 100%;
	height: 100%;
	overflow: hidden;
	border-radius: 0 !important;
}
.lightbox-grid__img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	border-radius: 0 !important;
	transition: transform 1.2s cubic-bezier(.2,.7,.2,1), filter .5s ease;
}
.lightbox-grid__item:hover .lightbox-grid__img {
	transform: scale(1.04);
}

/* =========================================================
   Detail galerie — 3 plnohodnotné styly náhledů
   ========================================================= */

/* 1. Asymetrický grid (Editorial) v detailu fotek */
.gallery-grid--editorial.lightbox-grid {
	display: grid !important;
	grid-auto-flow: dense !important;
	grid-template-columns: repeat(var(--cols-desktop, 4), 1fr) !important;
	gap: 1rem;
}
@media (max-width: 1023px) and (min-width: 641px) {
	.gallery-grid--editorial.lightbox-grid {
		grid-template-columns: repeat(var(--cols-tablet, 3), 1fr) !important;
	}
}
@media (max-width: 640px) {
	.gallery-grid--editorial.lightbox-grid {
		grid-template-columns: repeat(var(--cols-mobile, 2), 1fr) !important;
	}
}
.gallery-grid--editorial.lightbox-grid .lightbox-grid__item {
	border-radius: 0 !important;
	height: 100% !important;
	max-height: 480px;
}
/* Fotka na výšku (portrét): zobrazuje se přirozeně na výšku v poměru 2:3 */
.gallery-grid--editorial.lightbox-grid .lightbox-grid__item.is-portrait .lightbox-grid__img {
	aspect-ratio: 2 / 3 !important;
	height: 100% !important;
	max-height: 480px;
	object-fit: cover !important;
}
/* Fotka na šířku (landscape): roztáhne se přes 2 sloupce v poměru 4:3 */
@media (min-width: 641px) {
	.gallery-grid--editorial.lightbox-grid .lightbox-grid__item.is-wide {
		grid-column: span 2 !important;
		height: 100% !important;
		max-height: 480px;
	}
	.gallery-grid--editorial.lightbox-grid .lightbox-grid__item.is-wide .lightbox-grid__img {
		aspect-ratio: 4 / 3 !important;
		height: 100% !important;
		max-height: 480px;
		object-fit: cover !important;
	}
}
@media (max-width: 640px) {
	.gallery-grid--editorial.lightbox-grid .lightbox-grid__item.is-wide .lightbox-grid__img {
		aspect-ratio: 3 / 2 !important;
		height: 100% !important;
		max-height: 480px;
		object-fit: cover !important;
	}
}

/* 2. Čistá náhledová mřížka (Grid mode) — rovnoměrný 1sloupcový katalog */
.gallery-grid--grid.lightbox-grid {
	display: grid !important;
	grid-template-columns: repeat(var(--cols-desktop, 4), 1fr) !important;
	gap: 1rem;
}
@media (max-width: 1023px) and (min-width: 641px) {
	.gallery-grid--grid.lightbox-grid {
		grid-template-columns: repeat(var(--cols-tablet, 3), 1fr) !important;
	}
}
@media (max-width: 640px) {
	.gallery-grid--grid.lightbox-grid {
		grid-template-columns: repeat(var(--cols-mobile, 2), 1fr) !important;
	}
}
.gallery-grid--grid.lightbox-grid .lightbox-grid__item {
	grid-column: span 1 !important;
	height: 100% !important;
	border-radius: 0 !important;
}
.gallery-grid--grid.lightbox-grid .lightbox-grid__img {
	height: 100% !important;
	max-height: 420px;
	object-fit: cover !important;
	border-radius: 0 !important;
}

/* Poměry stran v čistém Grid módu */
.gallery-grid--grid.lightbox-grid--aspect-3-2 .lightbox-grid__img {
	aspect-ratio: 3 / 2 !important;
}
.gallery-grid--grid.lightbox-grid--aspect-4-5 .lightbox-grid__img {
	aspect-ratio: 4 / 5 !important;
}
.gallery-grid--grid.lightbox-grid--aspect-1-1 .lightbox-grid__img {
	aspect-ratio: 1 / 1 !important;
}
.gallery-grid--grid.lightbox-grid--aspect-auto .lightbox-grid__item.is-portrait .lightbox-grid__img {
	aspect-ratio: 2 / 3 !important;
}
.gallery-grid--grid.lightbox-grid--aspect-auto .lightbox-grid__item.is-landscape .lightbox-grid__img {
	aspect-ratio: 3 / 2 !important;
}
.gallery-grid--grid.lightbox-grid--aspect-auto .lightbox-grid__img {
	height: auto !important;
	max-height: 480px !important;
}

/* 3. Masonry mozaika (přirozená fotografická mozaika / Justified řady podle formátu fotek) */
.gallery-grid--masonry.lightbox-grid {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 0.85rem !important;
	align-items: stretch !important;
}
.gallery-grid--masonry.lightbox-grid > .lightbox-grid__item {
	display: block !important;
	flex-grow: var(--ratio, 1) !important;
	flex-shrink: 1 !important;
	flex-basis: calc(var(--ratio, 1) * 230px) !important;
	height: clamp(230px, 26vw, 360px) !important;
	max-height: 440px !important;
	max-width: 100% !important;
	margin: 0 !important;
	border-radius: 0 !important;
	overflow: hidden !important;
}
.gallery-grid--masonry.lightbox-grid .lightbox-grid__link {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	border-radius: 0 !important;
}
.gallery-grid--masonry.lightbox-grid .lightbox-grid__img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
	border-radius: 0 !important;
	aspect-ratio: auto !important;
	max-height: none !important;
}
/* Pojistka pro poslední řádek, aby se poslední fotky neroztahovaly nepřirozeně přes celou šířku */
.gallery-grid--masonry.lightbox-grid::after {
	content: '' !important;
	flex-grow: 999999999 !important;
	flex-basis: 220px !important;
	height: 0 !important;
	visibility: hidden !important;
}
