/**
 * Górski Zakątek - techniczne poprawki dostępności.
 *
 * Wszystkie reguły są ograniczone klasą body dodawaną przez wtyczkę.
 */

/*
 * Dwukolorowy fokus pozostaje widoczny zarówno na jasnym, jak i ciemnym tle.
 * Większa swoistość nadpisuje obecną regułę: a:focus { outline: none !important; }.
 */
.gz-a11y-enabled :where(
	a,
	button,
	input,
	select,
	textarea,
	summary,
	[role="button"],
	[tabindex]:not([tabindex="-1"])
):focus-visible {
	outline: 3px solid #ffffff !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 5px #173f35 !important;
}

/*
 * Spectra buduje listy ikon jako pusty link absolutny nad ikoną i tekstem.
 * Niewielkie, symetryczne powiększenie warstwy linku daje taki sam oddech
 * po lewej i prawej stronie bez przesuwania zawartości nagłówka i stopki.
 */
.gz-a11y-enabled header .wp-block-uagb-icon-list-child > a:focus-visible,
.gz-a11y-enabled footer .wp-block-uagb-icon-list-child > a:focus-visible {
	left: -5px !important;
	right: -5px !important;
	width: auto !important;
}

/* Link logo ma być tak wysoki jak obraz, a nie jak pojedynczy wiersz tekstu. */
.gz-a11y-enabled header .site-logo-img > a.custom-logo-link {
	display: inline-flex !important;
	align-items: center;
	line-height: 0 !important;
	vertical-align: middle;
}

.gz-a11y-enabled header .site-logo-img > a.custom-logo-link > img {
	display: block;
}

/* Astra generuje link przycisku jako element inline zawierający blok. */
.gz-a11y-enabled .ast-builder-button-wrap > a.ast-custom-button-link {
	display: inline-flex !important;
	border-radius: 999px;
}

/*
 * Wewnętrzne przyciski kotwicowe Spectry, m.in. „Umów się na spotkanie”.
 * Wyłączenie przejścia zapobiega chwilowemu zanikowi obramowania po Tabie.
 */
.gz-a11y-enabled a.uagb-buttons-repeater[href^="#"]:not([href="#"]):focus-visible {
	position: relative;
	z-index: 2;
	outline: 3px solid #ffffff !important;
	outline-offset: 3px !important;
	box-shadow: 0 0 0 6px #173f35 !important;
	transition: none !important;
}

/* Fokus linku pokrywającego cały kafelek Spectry pozostaje wewnątrz kafelka. */
.gz-a11y-enabled a.uagb-cta__link-to-all:focus-visible {
	z-index: 3;
	outline-offset: -5px !important;
}

/* Odpowiedniki stanów hover dla obsługi klawiaturą. */
.gz-a11y-enabled .mm-cta:focus-within {
	background: rgba(255, 255, 255, 0.25);
}

.gz-a11y-enabled .kafel-home:focus-within {
	background: #e9f0eb;
}

.gz-a11y-enabled .spectra-image-gallery__control-arrows:focus-visible,
.gz-a11y-enabled .slick-dots button:focus-visible,
.gz-a11y-enabled .hc-nav:focus-visible,
.gz-a11y-enabled .ti-widget .ti-controls .ti-next:focus-visible,
.gz-a11y-enabled .ti-widget .ti-controls .ti-prev:focus-visible {
	background: #6a8e7f !important;
	color: #ffffff !important;
}

.gz-a11y-enabled .spectra-image-gallery__control-arrows:focus-visible svg {
	fill: #ffffff !important;
}

/* Niestandardowe kontrolki Astry i WP Chat App muszą pokazywać fokus jak przyciski. */
.gz-a11y-enabled .dropdown-menu-toggle[role="button"],
.gz-a11y-enabled .wa__btn_popup[role="button"],
.gz-a11y-enabled .spectra-image-gallery__media-wrapper[role="button"],
.gz-a11y-enabled .ti-widget .ti-controls [role="button"] {
	cursor: pointer;
}

.gz-a11y-enabled .dropdown-menu-toggle[role="button"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 4px !important;
	margin: -4px !important;
	border-radius: 3px;
}

.gz-a11y-enabled .dropdown-menu-toggle[role="button"]:focus-visible {
	outline-offset: 1px !important;
}

/*
 * Astra przesuwa samą strzałkę marginesem SVG o 10 px, a dawny ujemny
 * margines kontrolki rozciągał jej fokus w kierunku sąsiednich pozycji.
 * W menu desktopowym kontrolka ma stały, wewnętrzny obszar fokusu.
 */
.gz-a11y-enabled.ast-desktop:not(.ast-header-break-point) nav.site-navigation .astra-megamenu-li > a.menu-link > .dropdown-menu-toggle[role="button"] {
	box-sizing: border-box;
	display: inline-flex;
	flex: 0 0 28px;
	width: 28px;
	height: 28px;
	min-width: 28px;
	padding: 0 !important;
	margin: 0 0 0 8px !important;
	align-items: center;
	justify-content: center;
	border-radius: 4px;
}

.gz-a11y-enabled.ast-desktop:not(.ast-header-break-point) nav.site-navigation .astra-megamenu-li > a.menu-link > .dropdown-menu-toggle[role="button"] .ast-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
}

.gz-a11y-enabled.ast-desktop:not(.ast-header-break-point) nav.site-navigation .astra-megamenu-li > a.menu-link > .dropdown-menu-toggle[role="button"] .ast-arrow-svg {
	width: 11px;
	height: auto;
	margin: 0 !important;
}

.gz-a11y-enabled.ast-desktop:not(.ast-header-break-point) nav.site-navigation .astra-megamenu-li > a.menu-link > .dropdown-menu-toggle[role="button"]:focus-visible {
	outline: 3px solid #ffffff !important;
	outline-offset: -3px !important;
	box-shadow: inset 0 0 0 6px #173f35 !important;
}

/*
 * Fokus zdjęcia jest osobną warstwą nad obrazem, podpisem i overlayem.
 * Cień na samym wrapperze był malowany pod jego dziećmi i znikał pod zdjęciem.
 */
.gz-a11y-enabled .spectra-image-gallery__media-wrapper[role="button"] {
	position: relative;
}

.gz-a11y-enabled .spectra-image-gallery__media-wrapper[role="button"]:focus-visible {
	z-index: 5;
	isolation: isolate;
	outline: 0 !important;
	box-shadow: none !important;
	transition: none !important;
}

.gz-a11y-enabled .spectra-image-gallery__media-wrapper[role="button"]:focus-visible::after {
	content: "";
	position: absolute;
	inset: 4px;
	z-index: 20;
	pointer-events: none;
	box-sizing: border-box;
	border: 3px solid #ffffff;
	box-shadow: 0 0 0 3px #173f35;
	border-radius: inherit;
}

/* Miniatury lightboxa korzystają z tej samej warstwy nad obrazem. */
.gz-a11y-enabled .spectra-image-gallery__control-lightbox--thumbnails .swiper-slide:focus-within {
	z-index: 5;
}

.gz-a11y-enabled .spectra-image-gallery__control-lightbox--thumbnails img[role="button"]:focus-visible {
	outline: 0 !important;
	box-shadow: none !important;
}

.gz-a11y-enabled .spectra-image-gallery__control-lightbox--thumbnails .swiper-slide:focus-within::after {
	content: "";
	position: absolute;
	inset: 3px;
	z-index: 20;
	pointer-events: none;
	box-sizing: border-box;
	border: 3px solid #ffffff;
	box-shadow: 0 0 0 3px #173f35;
}

/* Wszystkie kropki mają osobny, czytelny obszar fokusu. */
.gz-a11y-enabled .uagb-slick-carousel .slick-dots li {
	margin-right: 4px !important;
	margin-left: 4px !important;
}

.gz-a11y-enabled .ti-widget .ti-controls .ti-next,
.gz-a11y-enabled .ti-widget .ti-controls .ti-prev,
.gz-a11y-enabled .hc-nav {
	border-radius: 50%;
}

/* Scrollowalny tor nie jest kontrolką - klawiatura korzysta ze strzałek. */
.gz-a11y-enabled .hc-track[tabindex="-1"]:focus {
	outline: 0 !important;
	box-shadow: none !important;
}

/* Ograniczenie ruchu dla użytkowników, którzy wybrali taką preferencję w systemie. */
@media (prefers-reduced-motion: reduce) {
	.gz-a11y-enabled .wa__popup_chat_box,
	.gz-a11y-enabled .mm-cta,
	.gz-a11y-enabled .kafel-home,
	.gz-a11y-enabled .hover-zoom {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}

	.gz-a11y-enabled .hover-zoom:hover,
	.gz-a11y-enabled .hover-zoom:focus-within {
		transform: none !important;
	}
}

/* Własny CSS strony ukrywa kropki na telefonie. Po poprawce pozostają dostępne. */
@media (max-width: 889px) {
	.gz-a11y-enabled .uagb-slick-carousel ul.slick-dots {
		display: flex !important;
		justify-content: center;
	}
}

/* Zachowanie czytelnego fokusu w systemowym trybie wysokiego kontrastu. */
@media (forced-colors: active) {
	.gz-a11y-enabled :where(
		a,
		button,
		input,
		select,
		textarea,
		summary,
		[role="button"],
		[tabindex]:not([tabindex="-1"])
	):focus-visible {
		outline: 3px solid CanvasText !important;
		box-shadow: none !important;
	}

	.gz-a11y-enabled .spectra-image-gallery__media-wrapper[role="button"]:focus-visible::after,
	.gz-a11y-enabled .spectra-image-gallery__control-lightbox--thumbnails .swiper-slide:focus-within::after {
		border-color: CanvasText;
		box-shadow: none;
	}

	.gz-a11y-enabled.ast-desktop:not(.ast-header-break-point) nav.site-navigation .astra-megamenu-li > a.menu-link > .dropdown-menu-toggle[role="button"]:focus-visible {
		outline-color: CanvasText !important;
		box-shadow: none !important;
	}
}
