/* Wielowscy 2026 – odtworzenie wyglądu motywu Findme (Elated) bez jego kodu. */

:root {
	--c-text: #808080;
	--c-heading: #2a2a2a;
	--c-muted: #ababab;
	--c-bg: #fff;
	--c-bg-alt: #fafafa;
	--c-border: #ececec;
	--c-footer-top: #353535;
	--c-footer-bottom: #292929;
	--c-accent: #8fbde4;
	--f-body: "Lato", sans-serif;
	--f-alt: "Fira Sans", sans-serif;
	--header-h: 105px;
	--sticky-h: 80px;
	--grid: 1200px;
}

/* ---------- Podstawy ---------- */
*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	background: var(--c-bg);
	color: var(--c-text);
	font: 400 16px/26px var(--f-body);
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; vertical-align: middle; }

a { color: var(--c-heading); text-decoration: none; transition: color .2s ease-out; }
a:hover { color: var(--c-text); }

h1, h2, h3, h4, h5, h6 { color: var(--c-heading); font-family: var(--f-body); font-weight: 400; }

p { margin: 10px 0; font: 300 15px/25px var(--f-alt); }

:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 2px; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

.skip-link {
	position: absolute; left: 10px; top: -60px; z-index: 1000;
	padding: 10px 16px; background: #fff; color: var(--c-heading);
}
.skip-link:focus { top: 10px; }

.container { width: var(--grid); max-width: calc(100% - 2 * 45px); margin: 0 auto; }

/* ---------- Nagłówek ---------- */
.site-header {
	position: relative;
	z-index: 110;
	height: var(--header-h);
	display: flex;
	align-items: center;
	justify-content: center;
	background: #fff;
}
.site-logo { display: inline-block; line-height: 0; }
.site-logo__img { width: auto; height: 45px; }

/* Przyklejony nagłówek (jak w Findme: po przewinięciu 800 px, logo po lewej). */
.site-header--sticky {
	position: fixed;
	top: 0; left: 0; right: 0;
	z-index: 120;
	height: var(--sticky-h);
	justify-content: flex-start;
	padding: 0 35px;
	border-bottom: 1px solid #eaeaea;
	transform: translateY(-100%);
	transition: transform .6s ease;
	visibility: hidden;
}
.has-sticky-header .site-header--sticky { transform: translateY(0); visibility: visible; }

/* ---------- Treść ---------- */
.site-content {
	position: relative;
	z-index: 100;
	display: block;
	min-height: 700px;
	background: var(--c-bg-alt);
}
.site-content::after { content: ""; display: table; clear: both; }

/* ---------- Strona główna / kategorie: lista + mapa ---------- */
.listing::after { content: ""; display: table; clear: both; }

.listing__items {
	float: left;
	width: 50%;
	padding: 20px 25px 4px;
	background: var(--c-bg-alt);
}

.listing__map {
	position: fixed;
	top: 0;
	right: 0;
	width: 50%;
	height: 90%;
	margin-top: 80px;
}

.map { width: 100%; height: 100%; background: #e5e3df; }

.listing-filter { margin-bottom: 0; }
.listing-filter::after { content: ""; display: table; clear: both; }

.listing-filter__select {
	position: relative;
	float: left;
	width: 223px;
	padding-right: 19px;
	margin-bottom: 20px;
}
.listing-filter__select select {
	-webkit-appearance: none;
	appearance: none;
	display: block;
	width: 100%;
	height: 66px;
	margin: 0;
	padding: 0 30px 0 50px;
	border: 1px solid var(--c-border);
	border-radius: 4px;
	background: #fff;
	color: #a6a6a6;
	font: 400 15px/66px var(--f-body);
	cursor: pointer;
}
.listing-filter__select::after {
	content: "";
	position: absolute;
	top: 29px;
	right: 38px;
	width: 5px;
	height: 5px;
	border-right: 1px solid var(--c-muted);
	border-bottom: 1px solid var(--c-muted);
	transform: rotate(45deg);
	pointer-events: none;
}

.btn {
	display: inline-block;
	position: relative;
	margin: 8px 0 0;
	padding: 12px 41px;
	border: 2px solid var(--c-accent);
	border-radius: 50px;
	background: var(--c-accent);
	color: #fff;
	font: 400 14px/18px var(--f-alt);
	cursor: pointer;
	transition: color .2s ease-out, background-color .2s ease-out, border-color .2s ease-out;
}
.btn:hover { background: transparent; color: var(--c-accent); }

.listing__grid {
	clear: both;
	margin: 0 -18px 15px;
	font-size: 0; /* inline-block jak w Findme */
}

.card {
	display: inline-block;
	vertical-align: top;
	width: 50%;
	padding: 0 10px;
	margin: 0 0 20px;
	font-size: 16px;
}
.card[hidden] { display: none; }

.card__image {
	display: block;
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #eee;
}
.card__image img { display: block; width: 100%; height: 100%; object-fit: cover; }

.card__body {
	padding: 10px 20px;
	border: 1px solid #ebebeb;
	background: #fff;
}
.card__title { margin: 3px 0 7px; font-size: 21px; line-height: 32px; }

/* ---------- Pojedyncza inwestycja ---------- */
.gallery {
	position: relative;
	overflow: hidden;
	background: var(--c-bg-alt);
	touch-action: pan-y;
}
.gallery__track {
	display: flex;
	gap: 5px;
	will-change: transform;
}
.gallery__item { flex: 0 0 auto; display: block; line-height: 0; }
.gallery__item img {
	display: block;
	width: auto;
	max-width: none;
	height: min(675px, 56.25vw);
	user-select: none;
	-webkit-user-drag: none;
}
.gallery:not(.is-ready) .gallery__item:not(:first-child) { display: none; }
.gallery:not(.is-ready) .gallery__track { justify-content: center; }

.single__header { background: #fff; }
.single__header-inner {
	width: 822px;
	max-width: 100%;
	padding: 25px 35px 25px 0;
}

.breadcrumbs {
	margin: 15px 0 8px;
	color: var(--c-muted);
	font-size: 15px;
	line-height: 26px;
}
.breadcrumbs a { color: var(--c-muted); }
.breadcrumbs a:hover { color: var(--c-heading); }

.single__title { margin: 0 0 2px; font-size: 40px; line-height: 32px; }

.single__body { display: flex; align-items: flex-start; }
.single__content {
	flex: 0 0 822px;
	max-width: 822px;
	padding: 31px 35px 40px 0;
	text-align: justify;
	overflow-wrap: break-word;
}
.single__content p { font-size: 14px; }
.single__content ul { padding-left: 1.3em; }

.single__aside {
	flex: 0 0 378px;
	position: relative;
	top: -150px;
}

.map-card {
	padding: 9px;
	border: 1px solid var(--c-border);
	background: #fff;
}
.map--single { height: 323px; }
.map-card__title { margin: 34px 0 13px; padding: 0 23px; font-size: 24px; line-height: 32px; }

/* Znaczniki i dymki mapy */
.map-marker {
	position: absolute;
	width: 55px;
	height: 55px;
	margin: -55px 0 0 -27px;
	cursor: pointer;
	border: 0;
	padding: 0;
	background: none;
}
.map-marker img { width: 55px; height: 55px; }
.map-info {
	position: absolute;
	bottom: 62px;
	left: 50%;
	width: 240px;
	transform: translateX(-50%);
	background: #fff;
	box-shadow: 0 2px 12px rgba(0, 0, 0, .2);
	text-align: left;
	font-size: 14px;
	line-height: 20px;
}
.map-info[hidden] { display: none; }
.map-info img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.map-info a { display: block; padding: 10px 14px; color: var(--c-heading); font-size: 17px; }

/* Podgląd zdjęć (zastępuje prettyPhoto) */
.lightbox {
	width: 100vw;
	max-width: 100vw;
	height: 100vh;
	max-height: 100vh;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #fff;
}
.lightbox::backdrop { background: rgba(0, 0, 0, .85); }
.lightbox__figure {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	height: 100%;
	margin: 0;
	pointer-events: none;
}
.lightbox__img { max-width: calc(100vw - 140px); max-height: calc(100vh - 90px); width: auto; height: auto; border: 6px solid #fff; pointer-events: auto; }
.lightbox__count { margin-top: 10px; font: 300 14px/20px var(--f-alt); }
.lightbox__btn {
	position: absolute;
	top: 50%;
	width: 50px;
	height: 50px;
	margin-top: -25px;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .15);
	color: #fff;
	font: 300 36px/46px var(--f-body);
	cursor: pointer;
}
.lightbox__btn:hover { background: rgba(255, 255, 255, .3); }
.lightbox__prev { left: 20px; }
.lightbox__next { right: 20px; }
.lightbox__close { top: 20px; right: 20px; margin: 0; font-size: 32px; }
.has-lightbox { overflow: hidden; }
@media (max-width: 680px) {
	.lightbox__img { max-width: 100vw; border-width: 0; }
	.lightbox__prev, .lightbox__next { top: auto; bottom: 20px; margin: 0; }
}

/* ---------- Strony zwykłe i 404 ---------- */
.basic-page { padding: 60px 0 80px; min-height: 50vh; }
.basic-page__title { margin: 0 0 20px; font-size: 40px; line-height: 48px; }

/* ---------- Stopka ---------- */
.site-footer { position: relative; z-index: 105; }
.site-footer__inner { width: var(--grid); max-width: calc(100% - 90px); margin: 0 auto; text-align: center; }
.site-footer__top { background: var(--c-footer-top); }
.site-footer__top .site-footer__inner { padding: 53px 0 30px; }
.site-footer__bottom { background: var(--c-footer-bottom); padding: 10px 0; }
.site-footer__bottom .site-footer__inner { padding: 7px 0; }
.site-footer .widget { margin: 0; }
.site-footer .widget p { text-align: center; }
.site-footer .widget_media_image { margin-bottom: 12px; }
.site-footer .widget_media_image img { width: 159px; height: auto; }
.site-footer .footer-social {
	display: inline-block;
	margin: 0 26px 5px;
	color: #fff;
	line-height: 26px;
	transition: color .2s ease-out;
}
.site-footer .footer-social:hover { color: #808080; }
.site-footer .footer-social svg { width: 11.5px; height: 20px; vertical-align: middle; fill: currentColor; }

/* ---------- Przycisk „do góry” ---------- */
.back-to-top {
	position: fixed;
	right: 45px;
	bottom: 45px;
	z-index: 130;
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--c-accent);
	color: #fff;
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s ease, visibility .3s ease, background-color .2s ease;
}
.back-to-top:hover { color: #fff; background: #7aa9d1; }
.has-back-to-top .back-to-top { opacity: 1; visibility: visible; }

/* ---------- Responsywność (progi jak w Findme) ---------- */
@media (max-width: 1024px) {
	:root { --header-h: 100px; }
	.site-logo__img { height: 25px; }

	.site-header--sticky {
		height: var(--header-h);
		justify-content: center;
		padding: 0;
		border-bottom: 0;
		box-shadow: 0 2px 4px rgba(0, 0, 0, .05);
	}

	.listing__items,
	.listing__map { float: left; position: relative; width: 100%; }
	.listing__map { height: 500px; }

	.single__body { display: block; }
	.single__content { max-width: none; padding-right: 0; }
	.single__header-inner { width: auto; padding-right: 0; }
	.single__aside { top: 0; margin: 0; }
}

@media (max-width: 768px) {
	.single__aside { flex: none; width: 100%; }
}

@media (max-width: 680px) {
	.card { width: 100%; }
	.gallery__track { gap: 0; }
	.gallery__item { width: 100vw; }
	.gallery__item img { width: 100%; height: auto; }
}

@media (max-width: 480px) {
	.listing-filter__select { width: 100%; padding: 0; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
