/* AZTA galerie nemovitosti – v2.1.5 */
.azta-g {
	--azta-g-accent: #f49e00;
	--azta-g-height: 62.5%;
	--azta-g-thumbs: 3;
	--azta-g-thumb-height: 62.5%;
	--azta-g-thumb-line: 8px;
	--azta-g-nav-size: clamp(36px, 5vw + 10px, 70px);
	width: 100%;
	user-select: none;
	-webkit-user-select: none;
}
/* Oxygen obal shortcodu sám nenatáhne; šířka galerie nesmí záviset na načtení fotek. */
.section__gallery-slider__all .ct-shortcode { width: 100%; }
.ct-shortcode:has(> .azta-g) { width: 100%; }

@media (min-width: 768px) { .azta-g { --azta-g-thumbs: 4; --azta-g-thumb-line: 6px; } }
@media (min-width: 992px) { .azta-g { --azta-g-thumbs: 5; } }

.azta-g *, .azta-g *::before, .azta-g *::after { box-sizing: border-box; }

/* ---- Hlavní slider ---------------------------------------------------- */
.azta-g__main {
	position: relative;
	background: #1a1a1a;
}

.azta-g__track {
	display: flex;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	overscroll-behavior-x: contain;
	scrollbar-width: none;
	cursor: grab;
	outline: none;
}
.azta-g__track::-webkit-scrollbar { display: none; }
.azta-g__track.is-dragging { cursor: grabbing; }
.azta-g__track.is-dragging,
.azta-g__track.is-settling { scroll-snap-type: none; scroll-behavior: auto; }
.azta-g__thumbs.is-dragging { scroll-behavior: auto; cursor: grabbing; }
.azta-g__thumbs.is-dragging,
.azta-g__thumbs.is-settling { scroll-snap-type: none; }
/* Všechny náhledy se vejdou: smyčka není potřeba. */
.azta-g__thumbs.is-static .is-clone { display: none; }
.azta-g__track:focus-visible { box-shadow: inset 0 0 0 3px var(--azta-g-accent); }

.azta-g__slide {
	position: relative;
	flex: 0 0 100%;
	scroll-snap-align: start;
	scroll-snap-stop: always;
	overflow: hidden;
}

/* Pevný poměr stran = všechny slidy stejně vysoké, bez ohledu na rozměr fotky.
   Záměrně přes padding: aspect-ratio na iPhonu dávalo nulovou výšku. */
.azta-g__slide::before {
	content: "";
	display: block;
	padding-top: var(--azta-g-height);
}

.azta-g .azta-g__img {
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: center;
	pointer-events: none;
	-webkit-user-drag: none;
}
.azta-g .azta-g__img--yt43 { transform: scale(1.12); }
.azta-g__img--empty { background: #2a2a2a; }

/* Progress bar nahoře */
.azta-g__progress {
	position: absolute;
	inset: 0 0 auto 0;
	height: 4px;
	background: rgba(0, 0, 0, .25);
	z-index: 3;
}
.azta-g__progress-fill {
	display: block;
	height: 100%;
	background: var(--azta-g-accent);
	transform-origin: left center;
	transform: scaleX(0);
	transition: transform .3s ease;
}

/* Šipky: klikací je celý pruh na výšku slidu, ikona je jen jeho vizuální část. */
.azta-g__nav {
	position: absolute;
	top: 0;
	bottom: 0;
	z-index: 3;
	width: calc(var(--azta-g-nav-size) + 12px);
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: #fff;
	cursor: pointer;
	display: flex;
	align-items: center;
	touch-action: pan-y;
	-webkit-tap-highlight-color: transparent;
}
@media (min-width: 768px) { .azta-g__nav { width: 20%; } }
.azta-g__nav:hover, .azta-g__nav:focus { background: transparent; outline: none; }
.azta-g__nav--prev { left: 0; justify-content: flex-start; }
.azta-g__nav--next { right: 0; justify-content: flex-end; }
.azta-g__nav-ico {
	flex: none;
	width: var(--azta-g-nav-size);
	height: var(--azta-g-nav-size);
	background: var(--azta-g-accent);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: filter .3s ease;
}
.azta-g__nav:hover .azta-g__nav-ico { filter: grayscale(100%); }
.azta-g__nav:focus-visible .azta-g__nav-ico { outline: 3px solid #fff; outline-offset: -6px; }
.azta-g__nav svg {
	width: 55%;
	height: 55%;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.6;
	stroke-linecap: square;
}
/* Přes YouTube/Vimeo zůstane jen ikona, aby pruhy nezakrývaly ovládání přehrávače. */
.azta-g.is-embed .azta-g__nav {
	top: 50%;
	bottom: auto;
	width: var(--azta-g-nav-size);
	height: var(--azta-g-nav-size);
	margin-top: calc(var(--azta-g-nav-size) / -2);
}

/* Počítadlo 3 / 14 – na středu rozhraní fotky a náhledů */
.azta-g__counter {
	position: absolute;
	left: 50%;
	bottom: 0;
	z-index: 3;
	transform: translate(-50%, 50%);
	padding: clamp(3px, .5vw, 6px) clamp(8px, 1.1vw, 13px);
	background: #999;
	color: #fff;
	font-size: clamp(12px, .35vw + 10.5px, 15px);
	line-height: 1.25;
	white-space: nowrap;
	pointer-events: none;
}
/* Při přehrávání nesmí počítadlo zakrývat ovládání přehrávače. */
.azta-g.is-playing .azta-g__counter { display: none; }

/* Video */
.azta-g__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	background: #000;
	cursor: pointer;
}
.azta-g__video:focus-visible { outline: 3px solid var(--azta-g-accent); outline-offset: -3px; }
.azta-g__iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	background: #000;
}

/* Vlastní přehrávač videí z médií: video celé, zbytek slidu tvoří pruhy. */
.azta-g__player {
	position: absolute;
	inset: 0;
	background: #000;
}
.azta-g .azta-g__media {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: contain;
	background: #000;
}
.azta-g__video--frame { background: transparent; }
.azta-g__slide.is-started .azta-g__video { display: none; }
.azta-g__player.is-idle { cursor: none; }

.azta-g__player > .azta-g__play { opacity: 0; transition: opacity .2s ease; }
.azta-g__player.is-paused > .azta-g__play { opacity: 1; }

.azta-g__spinner {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 48px;
	height: 48px;
	margin: -24px 0 0 -24px;
	border: 4px solid rgba(255, 255, 255, .3);
	border-top-color: var(--azta-g-accent);
	border-radius: 50%;
	display: none;
	pointer-events: none;
	animation: azta-g-spin .9s linear infinite;
}
.azta-g__player.is-buffering .azta-g__spinner { display: block; }
@keyframes azta-g-spin { to { transform: rotate(360deg); } }

.azta-g__error {
	position: absolute;
	inset: 0;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 0 20%;
	color: #fff;
	font-size: clamp(13px, 1vw + 9px, 16px);
	text-align: center;
	pointer-events: none;
}
.azta-g__player.is-error .azta-g__error { display: flex; }

.azta-g__controls {
	position: absolute;
	inset: auto 0 0 0;
	z-index: 4;
	display: none;
	align-items: center;
	gap: clamp(6px, 1vw, 12px);
	height: clamp(40px, 2vw + 32px, 52px);
	padding-right: clamp(6px, 1vw, 12px);
	background: rgba(26, 26, 26, .82);
	color: #fff;
	font-size: clamp(12px, .35vw + 10.5px, 14px);
	line-height: 1;
	transition: opacity .25s ease;
}
.azta-g__slide.is-started .azta-g__controls { display: flex; }
.azta-g__player.is-idle .azta-g__controls { opacity: 0; pointer-events: none; }

.azta-g__cbtn {
	flex: none;
	width: clamp(32px, 2vw + 24px, 40px);
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: #fff;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: color .2s ease, background-color .2s ease;
}
.azta-g__cbtn:hover, .azta-g__cbtn:focus { background: transparent; color: var(--azta-g-accent); }
.azta-g__cbtn:focus-visible { outline: 2px solid var(--azta-g-accent); outline-offset: -2px; }
.azta-g__cbtn svg { width: 22px; height: 22px; fill: currentColor; }
.azta-g__cbtn--play {
	width: clamp(40px, 2vw + 32px, 52px);
	background: var(--azta-g-accent);
}
.azta-g__cbtn--play:hover, .azta-g__cbtn--play:focus { background: var(--azta-g-accent); color: #fff; filter: grayscale(100%); }

.azta-g__time { flex: none; font-variant-numeric: tabular-nums; }

.azta-g__range {
	--azta-g-p: 0%;
	flex: 1 1 auto;
	min-width: 0;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	touch-action: none;
	-webkit-appearance: none;
	appearance: none;
}
.azta-g__range--vol { flex: 0 0 72px; }
.azta-g__range:focus { outline: none; }
.azta-g__range:focus-visible { outline: 2px solid var(--azta-g-accent); outline-offset: -4px; }
.azta-g__range::-webkit-slider-runnable-track {
	height: 6px;
	background: linear-gradient(to right, var(--azta-g-accent) var(--azta-g-p), rgba(255, 255, 255, .35) var(--azta-g-p));
}
.azta-g__range::-moz-range-track {
	height: 6px;
	background: linear-gradient(to right, var(--azta-g-accent) var(--azta-g-p), rgba(255, 255, 255, .35) var(--azta-g-p));
}
.azta-g__range::-webkit-slider-thumb {
	-webkit-appearance: none;
	width: 8px;
	height: 16px;
	margin-top: -5px;
	border: 0;
	border-radius: 0;
	background: #fff;
}
.azta-g__range::-moz-range-thumb {
	width: 8px;
	height: 16px;
	border: 0;
	border-radius: 0;
	background: #fff;
}

.azta-g__player:fullscreen { width: 100%; height: 100%; }
.azta-g__player:-webkit-full-screen { width: 100%; height: 100%; }

@media (max-width: 599px) {
	.azta-g__range--vol, .azta-g__time--total { display: none; }
}

.azta-g__play {
	position: absolute;
	top: 50%;
	left: 50%;
	width: clamp(56px, 9vw, 96px);
	height: clamp(56px, 9vw, 96px);
	transform: translate(-50%, -50%);
	background: rgba(255, 255, 255, .88);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform .2s ease;
	pointer-events: none;
}
.azta-g__play svg { flex: none; width: 82%; height: 82%; fill: var(--azta-g-accent); }
.azta-g__video:hover .azta-g__play { transform: translate(-50%, -50%) scale(1.08); }

/* ---- Náhledy ---------------------------------------------------------- */
.azta-g__thumbs {
	position: relative;
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
}
.azta-g__thumbs::-webkit-scrollbar { display: none; }

.azta-g__thumb {
	position: relative;
	flex: 0 0 calc(100% / var(--azta-g-thumbs));
	scroll-snap-align: start;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: #2a2a2a;
	overflow: hidden;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}
/* Pevný poměr = žádné „zuby“ pod hlavní fotkou. */
.azta-g__thumb::before {
	content: "";
	display: block;
	padding-top: var(--azta-g-thumb-height);
}
.azta-g__thumb::after {
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	height: var(--azta-g-thumb-line);
	background: var(--azta-g-accent);
	opacity: 0;
	transition: opacity .2s ease;
}
.azta-g__thumb.is-active::after { opacity: 1; }
/* Jen pro myš: na dotyku :hover po klepnutí ulpí a linka by mátla. */
@media (hover: hover) and (pointer: fine) {
	.azta-g__thumb:hover::after { opacity: 1; }
}
.azta-g__thumb:focus-visible { outline: 3px solid var(--azta-g-accent); outline-offset: -3px; }
.azta-g__thumb .azta-g__play { width: clamp(28px, 3vw + 20px, 44px); height: clamp(28px, 3vw + 20px, 44px); }

@media (prefers-reduced-motion: reduce) {
	.azta-g__track, .azta-g__thumbs { scroll-behavior: auto; }
	.azta-g__progress-fill, .azta-g__thumb::after, .azta-g__nav-ico { transition: none; }
}
