/* ==========================================================================
   REMAX Experts - arkusz glowny
   Kierunek: krem + czern, minimalizm, duzo swiatla (ustalenia 21.07.2026)
   Paleta zrodlowa: REMAXEU Brand Guide 2025
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Fonty
   -------------------------------------------------------------------------- */
@font-face {
	font-family: 'Montserrat';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('../fonts/montserrat-var-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Same polskie litery wyciete z latin-ext (7 KB zamiast 69 KB, PageSpeed 19.10.2026).
   Deklarowany po latin-ext, wiec przy nakladajacych sie zakresach wygrywa - pelny
   latin-ext pobiera sie tylko, gdy w tresci trafi sie inna litera (np. czeskie nazwisko). */
@font-face {
	font-family: 'Montserrat';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('../fonts/montserrat-var-pl.woff2') format('woff2');
	unicode-range: U+0104-0107, U+0118-0119, U+0141-0144, U+015A-015B, U+0179-017C;
}

@font-face {
	font-family: 'Montserrat';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('../fonts/montserrat-var-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* --------------------------------------------------------------------------
   2. Zmienne
   -------------------------------------------------------------------------- */
:root {
	/* Kolory wiodace - kierunek stonowany */
	--rm-cream: #f7f5ee;
	--rm-cream-deep: #efece1;
	--rm-white: #fffefb;
	--rm-ink: #16130f;
	--rm-ink-soft: #6b635b;
	/* Przyciemnione 19.10.2026 z #9c948b (kontrast 2,5-3) - WCAG AA wymaga 4,5 na kremowych tlach. */
	--rm-ink-faint: #6e665e;
	--rm-line: rgba(22, 19, 15, 0.12);
	--rm-line-soft: rgba(22, 19, 15, 0.07);

	/* Akcenty marki. Czerwony niesie akcje, niebieski informacje.
	   Wersje jasne sluza wylacznie grafice - na bialym tle nie spelniaja
	   kontrastu WCAG dla tekstu, wiec pod tekst i przyciski ida odmiany Bridge. */
	--rm-red: #ff1200;
	--rm-red-deep: #aa1120;
	/* Odmiana na ciemne tla - pelna czerwien marki swiecila (uwaga Adriana). */
	--rm-red-muted: #e0574a;
	--rm-blue: #0043ff;
	--rm-blue-deep: #0c2749;
	--rm-blue-sky: #a3d4f2;
	--rm-star: #b9ada0;

	/* Role */
	--rm-action: var(--rm-red-deep);
	--rm-info: var(--rm-blue);

	/* Typografia */
	--rm-font: 'Montserrat', 'Arial', -apple-system, BlinkMacSystemFont, sans-serif;
	--rm-fs-eyebrow: 0.6875rem;
	--rm-fs-body: 1rem;
	--rm-fs-lead: clamp(1.0625rem, 0.98rem + 0.36vw, 1.25rem);
	--rm-fs-h2: clamp(1.75rem, 1.28rem + 2.1vw, 3rem);
	--rm-fs-h3: clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem);
	--rm-fs-hero: clamp(2rem, 1.35rem + 2.7vw, 3.5rem);

	/* Siatka */
	--rm-container: 1360px;
	--rm-gutter: clamp(1.25rem, 0.6rem + 2.6vw, 3rem);
	--rm-rail: 74px;
	--rm-section: clamp(4rem, 2.6rem + 6vw, 7.5rem);

	/* Ruch */
	--rm-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--rm-dur: 0.45s;
}

/* --------------------------------------------------------------------------
   3. Reset i podstawy
   -------------------------------------------------------------------------- */
*,
*::before,
*::after {
	box-sizing: border-box;
}

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

body {
	margin: 0;
	background: var(--rm-cream);
	color: var(--rm-ink);
	font-family: var(--rm-font);
	font-size: var(--rm-fs-body);
	font-weight: 400;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

img,
svg,
video {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: inherit;
	text-decoration: none;
}

button {
	font: inherit;
	cursor: pointer;
	border: 0;
	background: none;
	color: inherit;
}

input,
select,
textarea {
	font: inherit;
	color: inherit;
}

h1, h2, h3, h4 {
	margin: 0;
	font-weight: 500;
	line-height: 1.12;
	letter-spacing: -0.02em;
}

p {
	margin: 0 0 1.15em;
}

p:last-child {
	margin-bottom: 0;
}

:focus-visible {
	outline: 2px solid var(--rm-ink);
	outline-offset: 3px;
}

.rm-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 999;
	padding: 0.85rem 1.5rem;
	background: var(--rm-ink);
	color: var(--rm-cream);
}

.rm-skip:focus {
	left: 0;
}

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

/* --------------------------------------------------------------------------
   4. Elementy wspolne
   -------------------------------------------------------------------------- */
.rm-container {
	width: 100%;
	max-width: var(--rm-container);
	margin-inline: auto;
	padding-inline: var(--rm-gutter);
}

.rm-section {
	padding-block: var(--rm-section);
}

.rm-section--tight {
	padding-block: clamp(3rem, 2rem + 4vw, 5rem);
}

/* Skroty do cech stylu zycia na podstronie dla kupujacych
   (ustalenie ze spotkania 07.09.2026). */
.rm-lifestyle {
	margin: clamp(1.5rem, 3vw, 2.5rem) 0 clamp(2rem, 4vw, 3rem);
}

.rm-lifestyle__title {
	margin: 0 0 0.85rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rm-ink-soft);
}

.rm-lifestyle__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.rm-tag--link {
	text-decoration: none;
	transition: border-color var(--rm-dur) var(--rm-ease), color var(--rm-dur) var(--rm-ease);
}

.rm-tag--link:hover,
.rm-tag--link:focus-visible {
	border-color: var(--rm-action);
	color: var(--rm-action);
}

/* Sekcje lokalizacji: nadtytul ("WIELKOPOLSKA", "POZNAŃ") ma byc tej samej
   wielkosci co nazwy miejscowosci w zakladkach - prosba Mikolaja, uwaga
   Borysa nr 11 z 16.09.2026. Stad rozmiar i odstepy liter jak w .rm-tabs__btn. */
.rm-section--places .rm-eyebrow {
	font-size: 0.8125rem;
	letter-spacing: 0.14em;
}

/* Biogram agentki tuz pod odznakami - uwaga Borysa nr 20 z 16.09.2026. */
.rm-section--po-odznakach {
	padding-top: 0;
}

.rm-section--cream-deep {
	background: var(--rm-cream-deep);
}

.rm-section--ink {
	background: var(--rm-ink);
	color: var(--rm-cream);
}

.rm-eyebrow {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0 0 1.15rem;
	font-size: var(--rm-fs-eyebrow);
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--rm-ink-soft);
}

.rm-eyebrow::before {
	content: '';
	width: 28px;
	height: 2px;
	background: var(--rm-red);
	flex: none;
}

.rm-section--ink .rm-eyebrow {
	color: rgba(247, 245, 238, 0.72);
}

.rm-h2 {
	font-size: var(--rm-fs-h2);
	font-weight: 400;
	max-width: 22ch;
}

.rm-h2 strong {
	font-weight: 600;
}

.rm-lead {
	font-size: var(--rm-fs-lead);
	font-weight: 300;
	line-height: 1.6;
	color: var(--rm-ink-soft);
	max-width: 62ch;
}

.rm-section--ink .rm-lead {
	color: rgba(247, 245, 238, 0.75);
}

.rm-section__head {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1.5rem;
	margin-bottom: clamp(2.25rem, 1.6rem + 2.6vw, 3.75rem);
}

@media (min-width: 900px) {
	.rm-section__head--split {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
		align-items: end;
		gap: 3rem;
	}
}

/* Pasek dekoracyjny na krawedzi sekcji */
.rm-rule {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 2.5rem;
}

.rm-rule::after {
	content: '';
	flex: 1;
	height: 1px;
	background: var(--rm-line);
}

/* Przyciski */
.rm-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	padding: 0.95rem 1.85rem;
	border: 1px solid var(--rm-action);
	background: var(--rm-action);
	color: #fff;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	/* Na telefonie dluzszy napis lamie sie na dwie linie - wtedy tez
	   ma stac na srodku przycisku (uwaga Borysa z 10.10). */
	text-align: center;
	transition: background var(--rm-dur) var(--rm-ease), color var(--rm-dur) var(--rm-ease), border-color var(--rm-dur) var(--rm-ease);
}

.rm-btn:hover {
	background: transparent;
	color: var(--rm-action);
}

.rm-btn--ghost {
	background: transparent;
	border-color: var(--rm-ink);
	color: var(--rm-ink);
}

.rm-btn--ghost:hover {
	background: var(--rm-ink);
	color: var(--rm-cream);
}

.rm-btn--light {
	background: var(--rm-cream);
	border-color: var(--rm-cream);
	color: var(--rm-ink);
}

.rm-btn--light:hover {
	background: transparent;
	color: var(--rm-cream);
}

.rm-btn--wide {
	width: 100%;
}

/* Link tekstowy ze strzalka */
.rm-arrow {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding-bottom: 0.35rem;
	border-bottom: 1px solid var(--rm-line);
	transition: border-color var(--rm-dur) var(--rm-ease), gap var(--rm-dur) var(--rm-ease);
}

.rm-arrow:hover {
	border-color: var(--rm-action);
	color: var(--rm-action);
	gap: 1.1rem;
}

.rm-arrow svg {
	width: 16px;
	height: 10px;
	flex: none;
}

.rm-section--ink .rm-arrow {
	border-color: rgba(247, 245, 238, 0.25);
}

.rm-section--ink .rm-arrow:hover {
	border-color: var(--rm-cream);
}

/* --------------------------------------------------------------------------
   5. Naglowek
   -------------------------------------------------------------------------- */
.rm-header {
	position: sticky;
	top: 0;
	z-index: 60;
	background: var(--rm-cream);
	border-bottom: 1px solid var(--rm-line-soft);
	transition: box-shadow var(--rm-dur) var(--rm-ease), background var(--rm-dur) var(--rm-ease);
}

.rm-header.is-stuck {
	box-shadow: 0 1px 24px rgba(22, 19, 15, 0.07);
}

.rm-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: clamp(1rem, 3vw, 2.5rem);
	min-height: 88px;
	padding-inline: var(--rm-gutter);
	max-width: none;
}

@media (min-width: 1100px) {
	.rm-header__inner {
		padding-left: calc(var(--rm-rail) + 1.5rem);
		padding-right: calc(var(--rm-rail) + 1.5rem);
	}
}

/* Logo */
.rm-logo {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	flex: none;
}

/* Oficjalny znak z brand booka - jeden plik zamiast skladanki sygnetu,
   wordmarku i dopisku. Wymiarujemy wysokoscia, zeby pasek naglowka mial
   staly rozmiar niezaleznie od proporcji pliku. */
.rm-logo__lockup {
	display: block;
	height: clamp(46px, 4vw, 56px);
	width: auto;
}

@media (max-width: 599px) {
	.rm-logo__lockup {
		height: 40px;
	}
}

.rm-footer .rm-logo__lockup {
	height: 54px;
}

/* Nawigacja glowna */
.rm-nav {
	display: none;
}

@media (min-width: 1100px) {
	.rm-nav {
		display: block;
		margin-inline: auto;
	}
}

.rm-nav__list {
	display: flex;
	align-items: center;
	gap: clamp(1.5rem, 2.4vw, 2.75rem);
	margin: 0;
	padding: 0;
	list-style: none;
}

.rm-nav__item {
	position: relative;
}

.rm-nav__link {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding-block: 2rem;
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--rm-ink);
	transition: color var(--rm-dur) var(--rm-ease);
}

.rm-nav__link::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 1.65rem;
	width: 0;
	height: 2px;
	background: var(--rm-info);
	transition: width var(--rm-dur) var(--rm-ease);
}

.rm-nav__item:hover > .rm-nav__link::after,
.rm-nav__item:focus-within > .rm-nav__link::after {
	width: 100%;
}

.rm-nav__caret {
	width: 9px;
	height: 6px;
	opacity: 0.55;
	transition: transform var(--rm-dur) var(--rm-ease);
}

.rm-nav__item:hover .rm-nav__caret {
	transform: rotate(180deg);
}

/* Rozwijane podkategorie */
.rm-nav__sub {
	position: absolute;
	top: 100%;
	left: -1.35rem;
	min-width: 250px;
	margin: 0;
	padding: 0.85rem 0;
	list-style: none;
	background: var(--rm-white);
	border: 1px solid var(--rm-line-soft);
	box-shadow: 0 20px 48px rgba(22, 19, 15, 0.09);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity 0.28s var(--rm-ease), transform 0.28s var(--rm-ease), visibility 0.28s;
}

.rm-nav__item:hover > .rm-nav__sub,
.rm-nav__item:focus-within > .rm-nav__sub {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.rm-nav__sub a {
	display: block;
	padding: 0.6rem 1.35rem;
	font-size: 0.875rem;
	font-weight: 400;
	letter-spacing: 0.01em;
	color: var(--rm-ink-soft);
	transition: color 0.25s var(--rm-ease), background 0.25s var(--rm-ease), padding-left 0.25s var(--rm-ease);
}

.rm-nav__sub a:hover {
	color: var(--rm-info);
	background: var(--rm-cream);
	padding-left: 1.65rem;
}

/* Prawa strona naglowka */
.rm-header__actions {
	display: flex;
	align-items: center;
	gap: clamp(0.85rem, 1.8vw, 1.75rem);
	flex: none;
}

.rm-header__phone {
	display: none;
	align-items: center;
	gap: 0.55rem;
	font-size: 0.9375rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	white-space: nowrap;
}

@media (min-width: 1280px) {
	.rm-header__phone {
		display: inline-flex;
	}
}

.rm-header__phone svg {
	width: 15px;
	height: 15px;
	opacity: 0.6;
}

.rm-header__cta {
	display: none;
}

@media (min-width: 1100px) {
	.rm-header__cta {
		display: inline-flex;
		padding: 0.8rem 1.5rem;
		font-size: 0.75rem;
	}
}

/* Przelacznik menu mobilnego */
.rm-burger {
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 44px;
	height: 44px;
	padding: 0 8px;
	align-items: flex-end;
}

@media (min-width: 1100px) {
	.rm-burger {
		display: none;
	}
}

.rm-burger span {
	display: block;
	width: 26px;
	height: 1.5px;
	background: var(--rm-ink);
	transition: transform 0.35s var(--rm-ease), opacity 0.25s var(--rm-ease), width 0.35s var(--rm-ease);
}

.rm-burger span:nth-child(2) {
	width: 18px;
}

.rm-burger.is-open span:nth-child(1) {
	transform: translateY(6.5px) rotate(45deg);
}

.rm-burger.is-open span:nth-child(2) {
	opacity: 0;
}

.rm-burger.is-open span:nth-child(3) {
	width: 26px;
	transform: translateY(-6.5px) rotate(-45deg);
}

/* Panel mobilny */
.rm-mobile {
	position: fixed;
	inset: 88px 0 0;
	z-index: 55;
	background: var(--rm-cream);
	padding: 2rem var(--rm-gutter) 3rem;
	overflow-y: auto;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-12px);
	transition: opacity 0.35s var(--rm-ease), transform 0.35s var(--rm-ease), visibility 0.35s;
}

.rm-mobile.is-open {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

@media (min-width: 1100px) {
	.rm-mobile {
		display: none;
	}
}

.rm-mobile__group {
	border-bottom: 1px solid var(--rm-line-soft);
	padding-block: 1.15rem;
}

.rm-mobile__title {
	font-size: 1.125rem;
	font-weight: 500;
	letter-spacing: 0.02em;
}

.rm-mobile__sub {
	margin: 0.85rem 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.65rem;
}

.rm-mobile__sub a {
	font-size: 0.9375rem;
	color: var(--rm-ink-soft);
}

.rm-mobile__footer {
	margin-top: 2rem;
	display: grid;
	gap: 1rem;
}

/* --------------------------------------------------------------------------
   6. Listwy boczne (uklad wg Partners International - ustalenia 21.07)
   -------------------------------------------------------------------------- */
.rm-rail {
	position: fixed;
	top: 0;
	bottom: 0;
	width: var(--rm-rail);
	z-index: 50;
	display: none;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2.5rem;
	background: var(--rm-cream);
	pointer-events: none;
}

@media (min-width: 1100px) {
	.rm-rail {
		display: flex;
	}
}

.rm-rail--left {
	left: 0;
	border-right: 1px solid var(--rm-line-soft);
}

.rm-rail--right {
	right: 0;
	border-left: 1px solid var(--rm-line-soft);
}

.rm-rail__item {
	pointer-events: auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.9rem;
	color: var(--rm-ink);
	transition: color var(--rm-dur) var(--rm-ease);
}

.rm-rail__item:hover {
	color: var(--rm-red);
}

.rm-rail__icon {
	width: 19px;
	height: 19px;
	flex: none;
}

/* Etykieta tekstowa przy ikonie - uwaga Adriana z 21.07: sama ikona nie buduje skojarzen */
.rm-rail__label {
	writing-mode: vertical-rl;
	transform: rotate(180deg);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	white-space: nowrap;
}

.rm-rail__social {
	pointer-events: auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.5rem;
}

.rm-rail__social a {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	color: var(--rm-ink-soft);
	transition: color var(--rm-dur) var(--rm-ease), transform var(--rm-dur) var(--rm-ease);
}

.rm-rail__social a:hover {
	color: var(--rm-info);
	transform: translateY(-2px);
}

.rm-rail__social svg {
	width: 17px;
	height: 17px;
}

.rm-rail__divider {
	width: 1px;
	height: 46px;
	background: var(--rm-line);
}

@media (min-width: 1100px) {
	.rm-shell {
		padding-inline: var(--rm-rail);
	}
}

/* --------------------------------------------------------------------------
   7. Hero - slider (rekomendacja Adriana: dni otwarte, nieruchomosc pod lupa)
   -------------------------------------------------------------------------- */
.rm-hero {
	position: relative;
	/* Dolny prog 760px - na niskich oknach (malo vh) tresc hero (zwlaszcza
	   najdluzszy wariant "Sprzedajemy...") nachodzila na panel wyszukiwarki,
	   ktory podciaga sie -60px w gore. Bez progu min-height liczyl sie
	   tylko z vh i na niskim oknie potrafil wyjsc mniejszy niz tresc. */
	min-height: clamp(760px, 86vh, 820px);
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	background: var(--rm-ink);
}

.rm-hero__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity 1.1s var(--rm-ease), visibility 1.1s;
}

.rm-hero__slide.is-active {
	opacity: 1;
	visibility: visible;
}

.rm-hero__media {
	position: absolute;
	inset: 0;
}

.rm-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1.06);
	transition: transform 7.5s var(--rm-ease);
}

.rm-hero__slide.is-active .rm-hero__media img {
	transform: scale(1);
}

.rm-hero__media::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(15, 13, 11, 0.82) 0%, rgba(15, 13, 11, 0.55) 45%, rgba(15, 13, 11, 0.18) 100%);
}

/* Na waskim ekranie tresc siega dolu kadru - gradient musi isc pionowo. */
@media (max-width: 899px) {
	.rm-hero__media::after {
		background: linear-gradient(180deg, rgba(15, 13, 11, 0.55) 0%, rgba(15, 13, 11, 0.72) 55%, rgba(15, 13, 11, 0.85) 100%);
	}
}

.rm-hero__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	padding-block: clamp(3rem, 2rem + 6vw, 6rem);
}

.rm-hero__content {
	max-width: 40rem;
	color: var(--rm-cream);
	opacity: 0;
	transform: translateY(22px);
	transition: opacity 0.9s var(--rm-ease) 0.2s, transform 0.9s var(--rm-ease) 0.2s;
}

.rm-hero__slide.is-active .rm-hero__content {
	opacity: 1;
	transform: translateY(0);
}

.rm-hero__badge {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	margin-bottom: 1.5rem;
	padding: 0.5rem 1rem;
	border: 1px solid rgba(247, 245, 238, 0.32);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.rm-hero__badge::before {
	content: '';
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--rm-red);
}

.rm-hero__title {
	font-size: var(--rm-fs-hero);
	font-weight: 300;
	line-height: 1.04;
	letter-spacing: -0.03em;
	margin-bottom: 1.25rem;
}

.rm-hero__title strong {
	font-weight: 600;
}

.rm-hero__text {
	font-size: var(--rm-fs-lead);
	font-weight: 300;
	/* Pelna krem, nie przygaszona: przy 82% krycia 12,9% powierzchni napisu
	   spadalo ponizej progu WCAG 4,5:1 na jasnych fragmentach zdjecia.
	   Hierarchie wzgledem naglowka niesie rozmiar i grubosc. */
	color: var(--rm-cream);
	max-width: 34rem;
	margin-bottom: 2.25rem;
}

.rm-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
}

/* Sterowanie sliderem - przypiete do dolnej krawedzi sekcji */
.rm-hero__controls-wrap {
	position: absolute;
	left: 0;
	right: 0;
	/* zapas na panel wyszukiwarki, ktory nachodzi na dol sekcji */
	bottom: clamp(5rem, 4rem + 2.4vw, 7rem);
	z-index: 4;
	pointer-events: none;
}

.rm-hero__controls {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 1.5rem;
	/* Pasek rozciaga sie na cala szerokosc kontenera i przykrywal przyciski
	   hero po lewej - klikalne zostaja wylacznie same sterowniki. */
	pointer-events: none;
}

.rm-hero__nav,
.rm-hero__dots {
	pointer-events: auto;
}

@media (max-width: 899px) {
	.rm-hero__controls {
		justify-content: flex-start;
	}
}

.rm-hero__dots {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.rm-hero__dot {
	position: relative;
	width: 46px;
	height: 2px;
	background: rgba(247, 245, 238, 0.3);
	overflow: hidden;
}

.rm-hero__dot::after {
	content: '';
	position: absolute;
	inset: 0;
	width: 0;
	background: var(--rm-cream);
}

.rm-hero__dot.is-active::after {
	width: 100%;
	background: var(--rm-red);
	transition: width 6s linear;
}

.rm-hero__nav {
	display: flex;
	gap: 0.5rem;
}

.rm-hero__arrow {
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border: 1px solid rgba(247, 245, 238, 0.3);
	color: var(--rm-cream);
	transition: background var(--rm-dur) var(--rm-ease), color var(--rm-dur) var(--rm-ease);
}

.rm-hero__arrow:hover {
	background: var(--rm-cream);
	color: var(--rm-ink);
}

.rm-hero__arrow svg {
	width: 17px;
	height: 11px;
}

/* --------------------------------------------------------------------------
   8. Wyszukiwarka nieruchomosci
   -------------------------------------------------------------------------- */
.rm-search {
	position: relative;
	z-index: 5;
	/* Zmniejszone z -3.75rem (17.08) - przy najdluzszym wariancie tekstu hero
	   panel nachodzil na przyciski, patrz uwaga przy .rm-hero. */
	margin-top: -2rem;
}

@media (max-width: 899px) {
	.rm-search {
		margin-top: -2rem;
	}
}

.rm-search__panel {
	position: relative;
	background: var(--rm-white);
	border: 1px solid var(--rm-line-soft);
	box-shadow: 0 24px 60px rgba(22, 19, 15, 0.08);
	padding: clamp(1.5rem, 1.1rem + 1.6vw, 2.25rem);
}

/* Sygnal marki na krawedzi panelu - czerwony przechodzi w niebieski */
.rm-search__panel::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--rm-red) 0%, var(--rm-red) 38%, var(--rm-blue) 38%, var(--rm-blue) 100%);
}

.rm-search__form {
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr;
}

@media (min-width: 780px) {
	.rm-search__form {
		grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
		align-items: end;
		gap: 1.25rem;
	}
}

/* Zakres ceny i metrazu na liscie ofert (20.10.2026). */
.rm-search__zakresy {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem 1.25rem;
}

@media (min-width: 780px) {
	.rm-search__zakresy {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.rm-search__zakresy .rm-field input {
	padding-right: 0;
}

/* Cechy stylu zycia pod wyszukiwarka - uwaga Borysa nr 13 z 16.09.2026.
   Na pelnej liscie ofert checkboxy zajmuja cala szerokosc panelu. */
.rm-search__features {
	grid-column: 1 / -1;
	margin: 0.5rem 0 0;
	padding: 1.25rem 0 0;
	border: 0;
	border-top: 1px solid var(--rm-line);
}

/* Na stronie glownej panel cech jest zwiniety, na liscie ofert rozwiniety.
   Znacznik details daje to bez JS - stad strzalka zamiast markera listy. */
.rm-search__features-legend {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0;
	margin-bottom: 0.85rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rm-ink-soft);
	cursor: pointer;
	list-style: none;
}

.rm-search__features-legend::-webkit-details-marker {
	display: none;
}

.rm-search__features-legend::after {
	content: "";
	width: 0.5rem;
	height: 0.5rem;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	transition: transform 0.2s ease;
}

.rm-search__features[open] > .rm-search__features-legend::after {
	transform: translateY(1px) rotate(225deg);
}

.rm-search__features-legend:focus-visible {
	outline: 2px solid var(--rm-info);
	outline-offset: 3px;
}

.rm-search__features-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem 1.4rem;
}

.rm-check {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	font-size: 0.9375rem;
	cursor: pointer;
}

.rm-check input {
	width: 17px;
	height: 17px;
	flex: none;
	accent-color: var(--rm-action);
}

.rm-field label {
	display: block;
	margin-bottom: 0.5rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rm-ink-soft);
}

.rm-field select,
.rm-field input {
	width: 100%;
	padding: 0.75rem 2.25rem 0.75rem 0;
	border: 0;
	border-bottom: 1px solid var(--rm-line);
	background: transparent;
	font-size: 1.0625rem;
	font-weight: 500;
	appearance: none;
	transition: border-color var(--rm-dur) var(--rm-ease);
}

.rm-field select:focus,
.rm-field input:focus {
	outline: none;
	border-color: var(--rm-info);
	border-bottom-width: 2px;
}

.rm-field {
	position: relative;
}

.rm-field__caret {
	position: absolute;
	right: 2px;
	bottom: 1.05rem;
	width: 10px;
	height: 7px;
	opacity: 0.45;
	pointer-events: none;
}

.rm-search__submit {
	padding-inline: 2.5rem;
	height: 3.05rem;
}

/* Pasek zaufania pod wyszukiwarka */
.rm-trust {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: clamp(1.25rem, 3vw, 3rem);
	margin-top: 1.75rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--rm-line-soft);
}

.rm-trust__item--link {
	text-decoration: none;
	transition: color var(--rm-dur) var(--rm-ease);
}

.rm-trust__item--link:hover {
	color: var(--rm-info);
}

.rm-trust__item {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	font-size: 0.875rem;
	color: var(--rm-ink-soft);
}

.rm-trust__item svg {
	width: 17px;
	height: 17px;
	flex: none;
	color: var(--rm-info);
}

.rm-trust__item strong {
	color: var(--rm-ink);
	font-weight: 600;
}

.rm-trust__phone {
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	font-size: 1.0625rem;
	font-weight: 600;
	letter-spacing: 0.01em;
}

.rm-trust__phone svg {
	width: 16px;
	height: 16px;
	color: var(--rm-action);
}

/* Gwiazdki - stonowane, zgodnie z uwaga Adriana */
.rm-stars {
	display: inline-flex;
	gap: 2px;
	color: var(--rm-star);
}

.rm-stars svg {
	width: 13px;
	height: 13px;
	opacity: 1;
}

/* --------------------------------------------------------------------------
   9. Karty nieruchomosci
   -------------------------------------------------------------------------- */
.rm-grid-estates {
	display: grid;
	gap: clamp(1.5rem, 1rem + 1.6vw, 2.25rem);
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
}

.rm-estate {
	display: flex;
	flex-direction: column;
	background: var(--rm-white);
	border: 1px solid var(--rm-line-soft);
	transition: transform var(--rm-dur) var(--rm-ease), box-shadow var(--rm-dur) var(--rm-ease);
}

.rm-estate {
	position: relative;
}

.rm-estate::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 3px;
	background: var(--rm-action);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--rm-dur) var(--rm-ease);
}

.rm-estate:hover {
	transform: translateY(-4px);
	box-shadow: 0 24px 48px rgba(22, 19, 15, 0.09);
}

.rm-estate:hover::after {
	transform: scaleX(1);
}

.rm-estate__media {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--rm-cream-deep);
}

.rm-estate__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.9s var(--rm-ease);
}

.rm-estate:hover .rm-estate__media img {
	transform: scale(1.05);
}

.rm-estate__tags {
	position: absolute;
	top: 1rem;
	left: 1rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.rm-tag {
	padding: 0.4rem 0.8rem;
	background: rgba(255, 254, 251, 0.94);
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--rm-ink);
}

.rm-tag--open {
	background: var(--rm-action);
	color: #fff;
}

/* Etykiety statusu. Ustalenie 07.09.2026: na duzym ekranie zostaja biale, bo
   w siatce kilkunastu ofert kolorowa mozaika rozbija odbior (uwaga Adriana);
   kolor wchodzi dopiero na telefonie, gdzie oglada sie jedna oferte po drugiej
   i rozroznienie realnie pomaga (uwaga Eli). */
@media (max-width: 780px) {
	.rm-tag--reserved {
		background: var(--rm-action);
		color: #fff;
	}

	.rm-tag--sold,
	.rm-tag--rented {
		background: var(--rm-info);
		color: #fff;
	}
}

.rm-estate__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 1.5rem;
}

.rm-estate__loc {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	margin-bottom: 0.6rem;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rm-ink-faint);
}

.rm-estate__loc svg {
	width: 12px;
	height: 12px;
	color: var(--rm-info);
}

.rm-estate__title {
	font-size: 1.0625rem;
	font-weight: 500;
	line-height: 1.38;
	letter-spacing: -0.01em;
	margin-bottom: 1.1rem;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.rm-estate__params {
	display: flex;
	flex-wrap: wrap;
	gap: 1.15rem;
	margin-top: auto;
	padding-top: 1.15rem;
	border-top: 1px solid var(--rm-line-soft);
	font-size: 0.8125rem;
	color: var(--rm-ink-soft);
}

.rm-estate__param {
	display: flex;
	align-items: center;
	gap: 0.4rem;
}

.rm-estate__param svg {
	width: 14px;
	height: 14px;
	color: var(--rm-info);
}

.rm-estate__foot {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 1.15rem;
}

.rm-estate__price {
	font-size: 1.25rem;
	font-weight: 600;
	letter-spacing: -0.01em;
}

.rm-estate__price small {
	display: block;
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--rm-ink-faint);
}

.rm-estate__more {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	border-bottom: 1px solid var(--rm-line);
	padding-bottom: 0.2rem;
	transition: border-color var(--rm-dur) var(--rm-ease);
}

/* Cala karta prowadzi do oferty: nakladka z linku w tytule przykrywa karte.
   Uwaga Borysa z 26.09.2026 - klikniecie w "Zobacz" nic nie robilo. */
.rm-estate__title a::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
}

.rm-estate__more {
	position: relative;
	z-index: 2;
}

.rm-estate:hover .rm-estate__more {
	border-color: var(--rm-action);
	color: var(--rm-action);
}

.rm-center {
	display: flex;
	justify-content: center;
	margin-top: clamp(2.5rem, 2rem + 2vw, 3.5rem);
}

/* --------------------------------------------------------------------------
   10. Poznaj nas / blok obraz + tekst
   -------------------------------------------------------------------------- */
.rm-split {
	display: grid;
	gap: clamp(2.25rem, 1.6rem + 3vw, 4.5rem);
	align-items: center;
	grid-template-columns: 1fr;
}

@media (min-width: 960px) {
	.rm-split {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	.rm-split--reverse .rm-split__media {
		order: 2;
	}
}

.rm-split__media {
	position: relative;
	aspect-ratio: 4 / 3.2;
	overflow: hidden;
	background: var(--rm-cream-deep);
}

.rm-split__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.rm-split__badge {
	position: absolute;
	right: 0;
	bottom: 0;
	padding: 1.35rem 1.75rem;
	background: var(--rm-cream);
	max-width: 60%;
}

.rm-split__badge strong {
	display: block;
	font-size: clamp(1.75rem, 1.4rem + 1.3vw, 2.5rem);
	font-weight: 300;
	letter-spacing: -0.02em;
	line-height: 1;
}

.rm-split__badge span {
	display: block;
	margin-top: 0.4rem;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rm-ink-soft);
}

.rm-split__body .rm-h2 {
	margin-bottom: 1.5rem;
}

.rm-split__list {
	margin: 1.75rem 0 2.25rem;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.9rem;
}

/* Punkty w tej samej skali co tekst nad nimi, tarcza zamiast myslnika
   (propozycja Borysa z 10.10). */
.rm-split__list li {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	font-size: var(--rm-fs-lead);
	font-weight: 300;
	line-height: 1.6;
	color: var(--rm-ink-soft);
}

.rm-split__list svg {
	width: 1.15em;
	height: 1.15em;
	flex: none;
	margin-top: 0.22em;
	color: var(--rm-action);
}

/* --------------------------------------------------------------------------
   11. Uslugi - siatka skalowalna
   -------------------------------------------------------------------------- */
.rm-services {
	display: grid;
	gap: 1px;
	background: var(--rm-line-soft);
	border: 1px solid var(--rm-line-soft);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr));
}

@media (min-width: 1000px) {
	.rm-services {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.rm-service {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	padding: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem);
	background: var(--rm-cream);
	transition: background var(--rm-dur) var(--rm-ease);
}

.rm-service:hover {
	background: var(--rm-white);
}

.rm-service__icon {
	width: 30px;
	height: 30px;
	color: var(--rm-info);
	stroke-width: 1.1;
}

.rm-service__title {
	font-size: 1.125rem;
	font-weight: 500;
	letter-spacing: -0.01em;
}

.rm-service__text {
	font-size: 0.9375rem;
	color: var(--rm-ink-soft);
	flex: 1;
}

.rm-service__link {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	transition: gap var(--rm-dur) var(--rm-ease);
}

.rm-service:hover .rm-service__link {
	gap: 0.9rem;
	color: var(--rm-action);
}

.rm-service__link svg {
	width: 15px;
	height: 9px;
}

/* --------------------------------------------------------------------------
   12. Dzielnice Poznania
   -------------------------------------------------------------------------- */
.rm-districts {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr));
}

@media (min-width: 900px) {
	.rm-districts {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.rm-district {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 250px;
	padding: 1.5rem;
	overflow: hidden;
	background: var(--rm-ink);
	color: var(--rm-cream);
}

.rm-district::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(15, 13, 11, 0) 35%, rgba(15, 13, 11, 0.72) 100%);
	z-index: 1;
}

.rm-district img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.62;
	filter: grayscale(1);
	transition: transform 0.9s var(--rm-ease), opacity var(--rm-dur) var(--rm-ease), filter var(--rm-dur) var(--rm-ease);
}

.rm-district:hover img {
	transform: scale(1.06);
	opacity: 0.75;
	filter: grayscale(0.35);
}

.rm-district__name {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: baseline;
	gap: 0.6rem;
	font-size: 1.125rem;
	font-weight: 500;
	letter-spacing: -0.01em;
}

.rm-district__count {
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	color: rgba(247, 245, 238, 0.7);
}

.rm-district--more {
	display: grid;
	place-items: center;
	background: var(--rm-cream-deep);
	color: var(--rm-ink);
	text-align: center;
	border: 1px solid var(--rm-line-soft);
	min-height: 250px;
}

.rm-district--more::after {
	display: none;
}

.rm-district--more:hover {
	background: var(--rm-ink);
	color: var(--rm-cream);
}

/* --------------------------------------------------------------------------
   13. Opinie
   -------------------------------------------------------------------------- */
.rm-reviews {
	display: grid;
	gap: clamp(1.25rem, 1rem + 1.2vw, 2rem);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 310px), 1fr));
}

.rm-review {
	display: flex;
	flex-direction: column;
	gap: 1.15rem;
	padding: clamp(1.65rem, 1.4rem + 1vw, 2.25rem);
	background: var(--rm-white);
	border: 1px solid var(--rm-line-soft);
}

.rm-review__text {
	font-size: 0.9375rem;
	line-height: 1.72;
	color: var(--rm-ink-soft);
	flex: 1;
}

.rm-review__author {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	padding-top: 1.15rem;
	border-top: 1px solid var(--rm-line-soft);
}

.rm-review__avatar {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--rm-cream-deep);
	font-size: 0.875rem;
	font-weight: 600;
	flex: none;
}

.rm-review__name {
	font-size: 0.9375rem;
	font-weight: 600;
}

.rm-review__meta {
	font-size: 0.75rem;
	color: var(--rm-ink-faint);
}

/* --------------------------------------------------------------------------
   14. Agenci
   -------------------------------------------------------------------------- */
.rm-agents {
	display: grid;
	gap: clamp(1.25rem, 1rem + 1.4vw, 2rem);
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr));
}

.rm-agent {
	display: flex;
	flex-direction: column;
}

/* Filtr po jezyku ukrywa karty atrybutem hidden, a ten sam z siebie nie
   przebije display: flex powyzej - tak samo jak przy panelach zakladek. */
.rm-agent[hidden] {
	display: none;
}

/* Po uzyciu filtra karty pokazujemy bez animacji wejscia: ta czeka na moment,
   w ktorym element wjedzie w widok, a przefiltrowana karta juz tam jest.
   Selektor musi byc mocniejszy od `.rmx-js .rm-reveal`, ktory chowa elementy. */
.rm-agents.is-filtered .rm-reveal {
	opacity: 1;
	transform: none;
	transition: none;
}

.rm-agent__media {
	position: relative;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	background: var(--rm-cream-deep);
	margin-bottom: 1.15rem;
}

/* Zdjecia zespolu zostaja w kolorze - ustalenie 07.09.2026. Czern i biel
   maskowala rozjazd starych zdjec, nowa sesja ma spojna kolorystyke. */
.rm-agent__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.9s var(--rm-ease);
}

.rm-agent:hover .rm-agent__media img {
	transform: scale(1.04);
}

.rm-agent__actions {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	display: flex;
	transform: translateY(100%);
	transition: transform var(--rm-dur) var(--rm-ease);
}

.rm-agent:hover .rm-agent__actions,
.rm-agent:focus-within .rm-agent__actions {
	transform: translateY(0);
}

.rm-agent__actions a {
	flex: 1;
	padding: 0.8rem 0.5rem;
	text-align: center;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	background: rgba(22, 19, 15, 0.92);
	color: var(--rm-cream);
	transition: background var(--rm-dur) var(--rm-ease);
}

.rm-agent__actions a + a {
	border-left: 1px solid rgba(247, 245, 238, 0.18);
}

.rm-agent__actions a:hover {
	background: var(--rm-ink);
}

.rm-agent__name {
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: -0.01em;
}

.rm-agent__role {
	font-size: 0.8125rem;
	color: var(--rm-ink-faint);
	margin-top: 0.2rem;
}

/* Jezyki obslugi na karcie zespolu. Kody dwuliterowe zamiast flag: flaga
   oznacza kraj, nie jezyk, a emoji flag nie renderuja sie na Windowsie.
   Pelna nazwa siedzi w atrybucie title (abbr), wiec skrot da sie rozwinac. */
.rm-agent__langs {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	margin-top: 0.55rem;
}

.rm-agent__langs-icon {
	width: 15px;
	height: 15px;
	flex: none;
	color: var(--rm-ink-faint);
}

.rm-lang {
	display: inline-block;
	padding: 0.14rem 0.4rem;
	border: 1px solid var(--rm-line);
	border-radius: 2px;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	color: var(--rm-ink-soft);
	text-decoration: none;
	cursor: help;
}

/* --------------------------------------------------------------------------
   14b. Filtr zespolu po jezyku
   -------------------------------------------------------------------------- */
.rm-langbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.75rem;
	margin-bottom: 2.25rem;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid var(--rm-line-soft);
}

.rm-langbar__label {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rm-ink-faint);
	margin-right: 0.25rem;
}

.rm-langbar__item {
	display: inline-flex;
	align-items: baseline;
	gap: 0.3rem;
	padding: 0.32rem 0.7rem;
	border: 1px solid var(--rm-line);
	border-radius: 999px;
	font-size: 0.875rem;
	color: var(--rm-ink-soft);
	text-decoration: none;
	transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}

.rm-langbar__item:hover {
	border-color: var(--rm-ink);
	color: var(--rm-ink);
}

.rm-langbar__item.is-active {
	background: var(--rm-ink);
	border-color: var(--rm-ink);
	color: var(--rm-cream);
}

.rm-langbar__count {
	font-size: 0.75rem;
	opacity: 0.6;
}

.rm-agents__empty {
	margin: 0 0 2rem;
	color: var(--rm-ink-soft);
}

/* Etykieta wylacznie dla czytnikow ekranu - kod jezyka bez niej brzmialby
   jak przypadkowe litery. */
.rm-visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/* --------------------------------------------------------------------------
   15. Sekcja wyrozniona (Pani Ela)
   -------------------------------------------------------------------------- */
.rm-feature {
	position: relative;
	overflow: hidden;
}

.rm-feature__quote {
	font-size: clamp(1.25rem, 1.05rem + 1vw, 1.75rem);
	font-weight: 300;
	line-height: 1.5;
	letter-spacing: -0.015em;
	margin-bottom: 1.75rem;
}

.rm-feature__sign {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 2.25rem;
}

.rm-feature__sign strong {
	display: block;
	font-size: 1rem;
	font-weight: 600;
}

.rm-feature__sign span {
	display: block;
	font-size: 0.8125rem;
	color: rgba(247, 245, 238, 0.62);
}

.rm-feature__line {
	width: 34px;
	height: 2px;
	background: var(--rm-red);
	flex: none;
}

/* --------------------------------------------------------------------------
   16. Blog
   -------------------------------------------------------------------------- */
.rm-posts {
	display: grid;
	gap: clamp(1.5rem, 1.2rem + 1.4vw, 2.25rem);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
}

.rm-post {
	display: flex;
	flex-direction: column;
}

.rm-post__media {
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--rm-cream-deep);
	margin-bottom: 1.35rem;
}

.rm-post__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.9s var(--rm-ease);
}

.rm-post:hover .rm-post__media img {
	transform: scale(1.05);
}

.rm-post__meta {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 0.75rem;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rm-ink-faint);
}

.rm-post__title {
	font-size: 1.125rem;
	font-weight: 500;
	line-height: 1.42;
	letter-spacing: -0.01em;
	margin-bottom: 0.75rem;
	transition: color var(--rm-dur) var(--rm-ease);
}

.rm-post__excerpt {
	font-size: 0.9375rem;
	color: var(--rm-ink-soft);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* --------------------------------------------------------------------------
   17. Kontakt
   -------------------------------------------------------------------------- */
.rm-contact {
	display: grid;
	gap: clamp(2rem, 1.5rem + 2.4vw, 3.5rem);
	grid-template-columns: 1fr;
}

@media (min-width: 960px) {
	.rm-contact {
		grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
		align-items: start;
	}
}

.rm-contact__items {
	display: grid;
	gap: 1.75rem;
	margin: 2.25rem 0;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr));
}

.rm-contact__item {
	display: flex;
	gap: 0.9rem;
}

/* Ikona stoi na wysokosci podpisu (ADRES, TELEFON...): podpis ma linie
   rowna wysokosci ikony, wiec srodki obu wypadaja w tym samym miejscu.
   Wczesniej ikona zjezdzala ponizej podpisu (uwaga Borysa z 10.10). */
.rm-contact__icon {
	width: 20px;
	height: 20px;
	flex: none;
	margin-top: 0;
	color: var(--rm-info);
}

.rm-contact__label {
	display: block;
	line-height: 20px;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rm-ink-faint);
	margin-bottom: 0.35rem;
}

.rm-contact__value {
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.55;
}

.rm-contact__value a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Mapa monochromatyczna - prosba Adriana */
.rm-map {
	position: relative;
	/* Leaflet rysuje swoje warstwy na z-index 400, a kontrolki na 800 i 1000.
	   Bez wlasnego z-index ta ramka nie tworzyla kontekstu ukladania, wiec te
	   liczby konkurowaly wprost z naglowkiem (z-index 60) i mapa wchodzila na
	   menu. Wlasny z-index zamyka cale Leaflet wewnatrz tej ramki. Zgloszenie
	   Borysa z 01.09.2026, punkt 7. */
	z-index: 0;
	min-height: 380px;
	height: 100%;
	background: var(--rm-cream-deep);
	border: 1px solid var(--rm-line-soft);
	overflow: hidden;
}

.rm-map iframe {
	width: 100%;
	height: 100%;
	min-height: 380px;
	border: 0;
	filter: grayscale(1) contrast(0.92);
}

/* Mapa Leaflet/OpenStreetMap - zastepuje iframe Google (klucz API + zgoda
   na ciasteczka), kafelki CARTO Positron sa domyslnie stonowane. */
.rm-leaflet-map {
	background: var(--rm-cream-deep);
	font-family: var(--rm-font);
}

/* Stonowanie mapy robimy filtrem na samych kafelkach, nie na calej mapie, zeby
   pinezka i dymki zostaly w kolorach marki. Wartosci dobrane tak, zeby wyjsc
   blisko dawnego CARTO Positron - prosba Adriana o mape monochromatyczna. */
.rm-leaflet-map .rm-map-tiles {
	filter: grayscale(1) contrast(0.86) brightness(1.06);
}

.rm-leaflet-map .leaflet-control-attribution {
	font-size: 0.6875rem;
	background: rgba(247, 245, 238, 0.86);
}

.rm-leaflet-map .leaflet-popup-content-wrapper,
.rm-leaflet-map .leaflet-popup-tip {
	background: var(--rm-ink);
	color: var(--rm-cream);
	border-radius: 2px;
}

.rm-leaflet-map .leaflet-popup-content {
	margin: 0.6rem 0.8rem;
	font-size: 0.8125rem;
}

.rm-map-pin span {
	display: block;
	width: 22px;
	height: 22px;
	background: var(--rm-action);
	border: 2px solid var(--rm-cream);
	border-radius: 50% 50% 50% 0;
	transform: rotate(-45deg);
	box-shadow: 0 2px 6px rgba(22, 19, 15, 0.35);
}

/* Mapka lokalizacji pojedynczej oferty - nizsza niz kontaktowa. */
.rm-estate-map {
	position: relative;
	min-height: 260px;
	border: 1px solid var(--rm-line-soft);
	overflow: hidden;
}

/* --------------------------------------------------------------------------
   18. Stopka
   -------------------------------------------------------------------------- */
.rm-footer {
	background: var(--rm-ink);
	color: rgba(247, 245, 238, 0.72);
	padding-top: clamp(3.5rem, 2.6rem + 3.6vw, 5.5rem);
	/* Listwy boczne sa fixed na z-index 50 i szly przez cala wysokosc okna, wiec
	   kladly sie kremowymi pasami po 74 px na ciemnej stopce. Wygladalo to jak
	   ucieta stopka i tym mocniej, im wezszy ekran - na 14 calach to 11 procent
	   szerokosci. Stopka stoi teraz nad listwami, wiec biegnie od krawedzi do
	   krawedzi, a listwy koncza sie tam, gdzie ona sie zaczyna. Zgloszenie
	   Borysa z 01.09.2026, punkt 1. */
	position: relative;
	z-index: 55;
}

.rm-footer__cols {
	display: grid;
	gap: clamp(2rem, 1.4rem + 2.4vw, 3.5rem);
	grid-template-columns: 1fr;
	padding-bottom: clamp(2.5rem, 2rem + 2.4vw, 4rem);
}

@media (min-width: 700px) {
	.rm-footer__cols {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1040px) {
	.rm-footer__cols {
		grid-template-columns: minmax(0, 1.35fr) repeat(3, minmax(0, 1fr));
	}
}

.rm-footer__brand .rm-logo__office,
.rm-footer__brand .rm-logo__wordmark {
	color: var(--rm-cream);
}

.rm-footer__desc {
	margin-top: 1.5rem;
	font-size: 0.9375rem;
	font-weight: 300;
	line-height: 1.7;
	max-width: 34ch;
}

.rm-footer__social {
	display: flex;
	gap: 0.75rem;
	margin-top: 1.75rem;
}

.rm-footer__social a {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border: 1px solid rgba(247, 245, 238, 0.2);
	color: rgba(247, 245, 238, 0.8);
	transition: background var(--rm-dur) var(--rm-ease), color var(--rm-dur) var(--rm-ease);
}

.rm-footer__social a:hover {
	background: var(--rm-red);
	border-color: var(--rm-red);
	color: #fff;
}

.rm-footer__social svg {
	width: 16px;
	height: 16px;
}

.rm-footer__title {
	position: relative;
	margin-bottom: 1.35rem;
	padding-bottom: 0.85rem;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--rm-cream);
}

.rm-footer__title::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 0;
	width: 26px;
	height: 2px;
	background: var(--rm-red);
}

.rm-footer__list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.7rem;
}

.rm-footer__list a {
	font-size: 0.9375rem;
	font-weight: 300;
	transition: color var(--rm-dur) var(--rm-ease), padding-left var(--rm-dur) var(--rm-ease);
}

.rm-footer__list a:hover {
	color: var(--rm-blue-sky);
	padding-left: 5px;
}

.rm-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-block: 1.75rem;
	border-top: 1px solid rgba(247, 245, 238, 0.14);
	font-size: 0.8125rem;
	font-weight: 300;
}

.rm-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
}

/* Wymog brand guide: klauzula na kazdym materiale */
.rm-footer__disclaimer {
	padding-bottom: 2rem;
	font-size: 0.6875rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(247, 245, 238, 0.6); /* bylo 0.45 - kontrast 4,25 < 4,5 (audyt 19.10.2026) */
}

/* --------------------------------------------------------------------------
   19. Animacje wejscia
   -------------------------------------------------------------------------- */
/* Ukrywamy do animacji tylko gdy JS dziala. Bez JS tresc jest od razu widoczna. */
.rmx-js .rm-reveal {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity 0.85s var(--rm-ease), transform 0.85s var(--rm-ease);
}

.rm-reveal.is-visible {
	opacity: 1;
	transform: none;
}

/* Pierwsza sekcja strony jest widoczna od razu, bez czekania na main.js ze stopki.
   Ukryty naglowek nie liczy sie jako najwiekszy element, wiec LCP przechodzil
   na pozny baner cookies (lista ofert, PageSpeed 19.10.2026). */
.rmx-js main > section:first-child .rm-reveal,
.rmx-js main > .rm-section:first-child .rm-reveal {
	opacity: 1;
	transform: none;
	transition: none;
}

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

	.rm-reveal {
		opacity: 1;
		transform: none;
	}
}

/* ==========================================================================
   20. Listy i podstrony nieruchomosci (zadanie T3)
   ========================================================================== */

/* Wyszukiwarka poza strona glowna - bez ujemnego marginesu */
.rm-search--static {
	margin-top: 0;
	margin-bottom: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem);
}

/* Pasek nad lista */
.rm-listing__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem);
	padding-bottom: 1.15rem;
	border-bottom: 1px solid var(--rm-line-soft);
}

.rm-listing__count {
	margin: 0;
	font-size: 0.875rem;
	color: var(--rm-ink-soft);
}

.rm-listing__sort {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.rm-listing__sort label {
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rm-ink-faint);
}

.rm-listing__sort select {
	padding: 0.4rem 0.5rem 0.4rem 0;
	border: 0;
	border-bottom: 1px solid var(--rm-line);
	background: transparent;
	font-size: 0.875rem;
	font-weight: 500;
}

.rm-listing__sort select:focus {
	outline: none;
	border-color: var(--rm-info);
}

/* Brak wynikow */
.rm-empty {
	padding: clamp(2.5rem, 2rem + 2vw, 4rem);
	background: var(--rm-white);
	border: 1px solid var(--rm-line-soft);
	text-align: center;
}

.rm-empty .rm-lead {
	margin-inline: auto;
}

.rm-empty__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.85rem;
	margin-top: 2rem;
}

/* Stronicowanie */
.rm-pagination {
	margin-top: clamp(2.5rem, 2rem + 2vw, 3.5rem);
}

.rm-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
}

.rm-pagination .page-numbers {
	display: grid;
	place-items: center;
	min-width: 44px;
	height: 44px;
	padding-inline: 0.75rem;
	border: 1px solid var(--rm-line);
	font-size: 0.875rem;
	font-weight: 500;
	transition: background var(--rm-dur) var(--rm-ease), color var(--rm-dur) var(--rm-ease), border-color var(--rm-dur) var(--rm-ease);
}

.rm-pagination .page-numbers:hover {
	border-color: var(--rm-ink);
}

.rm-pagination .page-numbers.current {
	background: var(--rm-action);
	border-color: var(--rm-action);
	color: #fff;
}

.rm-pagination .page-numbers svg {
	width: 16px;
	height: 10px;
}

/* Sciezka nawigacji */
.rm-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem;
	margin-bottom: clamp(1.5rem, 1.2rem + 1vw, 2.25rem);
	font-size: 0.8125rem;
	color: var(--rm-ink-faint);
}

.rm-breadcrumb a:hover {
	color: var(--rm-info);
}

/* Naglowek oferty */
.rm-estate-head {
	display: grid;
	gap: 1.75rem;
	align-items: start;
}

@media (min-width: 900px) {
	.rm-estate-head {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 3rem;
	}
}

.rm-estate-head__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-bottom: 1.15rem;
}

.rm-estate-head__tags .rm-tag {
	background: var(--rm-cream-deep);
}

.rm-estate-head__title {
	max-width: 24ch;
	margin-bottom: 0.85rem;
}

.rm-estate-head .rm-estate__loc {
	font-size: 0.8125rem;
	letter-spacing: 0.08em;
	color: var(--rm-ink-soft);
}

.rm-estate-head__price {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.35rem;
	padding: 1.5rem 1.75rem;
	background: var(--rm-white);
	border: 1px solid var(--rm-line-soft);
	border-top: 3px solid var(--rm-action);
	min-width: 250px;
}

.rm-estate-head__price-label {
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rm-ink-faint);
}

.rm-estate-head__price strong {
	font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.1;
}

.rm-estate-head__price .rm-btn {
	margin-top: 1rem;
	width: 100%;
}

/* Galeria */
.rm-estate-gallery {
	margin-bottom: clamp(2rem, 1.6rem + 2vw, 3.5rem);
}

.rm-estate-gallery__main {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

/* Uklad tresci oferty */
.rm-estate-layout {
	display: grid;
	gap: clamp(2rem, 1.6rem + 2.4vw, 3.5rem);
}

@media (min-width: 960px) {
	.rm-estate-layout {
		grid-template-columns: minmax(0, 1fr) 330px;
		align-items: start;
	}
}

/* Parametry */
.rm-params {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr));
	gap: 1px;
	margin: 0 0 clamp(2rem, 1.6rem + 1.6vw, 3rem);
	padding: 0;
	list-style: none;
	background: var(--rm-line-soft);
	border: 1px solid var(--rm-line-soft);
}

.rm-params li {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	padding: 1.15rem 1.25rem;
	background: var(--rm-cream);
}

.rm-params span {
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--rm-ink-faint);
}

.rm-params strong {
	font-size: 1.0625rem;
	font-weight: 600;
}

/* Tresc opisu */
.rm-entry {
	font-size: 1rem;
	line-height: 1.75;
	color: var(--rm-ink-soft);
}

.rm-entry--narrow {
	max-width: 72ch;
}

.rm-entry h2,
.rm-entry h3 {
	margin: 2rem 0 0.85rem;
	color: var(--rm-ink);
}

.rm-entry a {
	color: var(--rm-info);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.rm-entry img {
	margin-block: 1.5rem;
}

.rm-h3 {
	font-size: var(--rm-fs-h3);
	font-weight: 500;
	margin-bottom: 1.25rem;
}

/* Zwijanie dlugiego opisu */
.rm-collapse {
	position: relative;
	overflow: hidden;
}

.rm-collapse.is-clamped {
	max-height: 280px;
}

.rm-collapse.is-clamped::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 120px;
	background: linear-gradient(180deg, rgba(247, 245, 238, 0) 0%, var(--rm-cream) 92%);
}

.rm-collapse__toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	margin-top: 1.25rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--rm-action);
	border-bottom: 1px solid transparent;
	transition: border-color var(--rm-dur) var(--rm-ease);
}

.rm-collapse__toggle:hover {
	border-color: var(--rm-action);
}

.rm-collapse__toggle svg {
	width: 10px;
	height: 7px;
	transition: transform var(--rm-dur) var(--rm-ease);
}

.rm-collapse__toggle.is-open svg {
	transform: rotate(180deg);
}

/* Karta agenta przy ofercie */
.rm-estate-side {
	position: sticky;
	top: 110px;
}

.rm-agent-box {
	padding: 1.75rem;
	background: var(--rm-white);
	border: 1px solid var(--rm-line-soft);
	border-top: 3px solid var(--rm-info);
}

.rm-agent-box__label {
	margin-bottom: 1.25rem;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rm-ink-faint);
}

.rm-agent-box__person {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1.35rem;
}

.rm-agent-box__photo img {
	width: 66px;
	height: 66px;
	object-fit: cover;
	border-radius: 50%;
}

.rm-agent-box__name {
	display: block;
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: -0.01em;
}

.rm-agent-box__name:hover {
	color: var(--rm-info);
}

.rm-agent-box__role {
	display: block;
	font-size: 0.8125rem;
	color: var(--rm-ink-faint);
}

.rm-agent-box__contact {
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.75rem;
}

.rm-agent-box__contact li {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	font-size: 0.9375rem;
	font-weight: 500;
}

.rm-agent-box__contact svg {
	width: 16px;
	height: 16px;
	flex: none;
	color: var(--rm-info);
}

.rm-agent-box__contact a:hover {
	color: var(--rm-info);
}

/* Naglowek profilu agenta */
.rm-agent-hero {
	display: grid;
	gap: clamp(2rem, 1.6rem + 2.4vw, 3.5rem);
	align-items: center;
}

@media (min-width: 860px) {
	.rm-agent-hero {
		grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
	}
}

.rm-agent-hero__media img {
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
}

.rm-agent-hero__name {
	margin: 1.35rem 0 0.5rem;
}

.rm-agent-hero__role {
	margin-bottom: 1.75rem;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rm-ink-faint);
}

.rm-agent-hero__contact {
	margin-bottom: 2rem;
}

.rm-agent-hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.5rem;
}

/* ==========================================================================
   21. Formularz kontaktowy
   ========================================================================== */
.rm-form {
	margin-top: 2.25rem;
}

.rm-form__grid {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr));
	margin-bottom: 1.25rem;
}

.rm-form__field {
	margin: 0;
}

.rm-form__field label {
	display: block;
	margin-bottom: 0.5rem;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rm-ink-soft);
}

.rm-form__field label span {
	color: var(--rm-action);
}

.rm-form__field input,
.rm-form__field textarea {
	width: 100%;
	padding: 0.8rem 0;
	border: 0;
	border-bottom: 1px solid var(--rm-line);
	background: transparent;
	font-size: 0.9375rem;
	transition: border-color var(--rm-dur) var(--rm-ease);
	resize: vertical;
}

.rm-form__field input:focus,
.rm-form__field textarea:focus {
	outline: none;
	border-color: var(--rm-info);
	border-bottom-width: 2px;
}

.rm-form__consent {
	margin: 1.5rem 0 1.75rem;
	font-size: 0.8125rem;
	line-height: 1.6;
	color: var(--rm-ink-soft);
}

.rm-form__consent label {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	cursor: pointer;
}

.rm-form__consent input {
	margin-top: 0.25rem;
	width: 17px;
	height: 17px;
	flex: none;
	accent-color: var(--rm-action);
}

.rm-form__consent a {
	color: var(--rm-info);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Pole pulapka - poza zasiegiem wzroku i czytnikow */
.rm-form__trap {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.rm-form__subject {
	margin-bottom: 1.5rem;
	padding: 0.85rem 1.15rem;
	background: var(--rm-white);
	border-left: 3px solid var(--rm-info);
	font-size: 0.875rem;
	color: var(--rm-ink-soft);
}

.rm-form__note {
	margin-bottom: 1.5rem;
	padding: 1rem 1.25rem;
	font-size: 0.9375rem;
	border-left: 3px solid;
}

.rm-form__note--ok {
	background: rgba(12, 39, 73, 0.05);
	border-color: var(--rm-info);
	color: var(--rm-blue-deep);
}

.rm-form__note--error {
	background: rgba(170, 17, 32, 0.05);
	border-color: var(--rm-action);
	color: var(--rm-red-deep);
}

/* --------------------------------------------------------------------------
   Zgloszenie nieruchomosci - podstrona dla sprzedajacych
   Uklad wzorowany na referencji Adriana z 19.08: naglowek po lewej,
   karta formularza po prawej.
   -------------------------------------------------------------------------- */
.rm-lead-form {
	display: grid;
	gap: clamp(2rem, 1.4rem + 2.6vw, 3.5rem);
	grid-template-columns: 1fr;
	align-items: center;
}

@media (min-width: 960px) {
	.rm-lead-form {
		grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	}
}

.rm-lead-form__intro .rm-lead {
	margin: 1.5rem 0 0;
	max-width: 34ch;
}

.rm-lead-form__points {
	margin: 1.75rem 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.65rem;
	font-size: 0.9375rem;
	color: var(--rm-ink-soft);
}

.rm-lead-form__points li {
	position: relative;
	padding-left: 1.6rem;
}

.rm-lead-form__points li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.55em;
	width: 9px;
	height: 9px;
	background: var(--rm-action);
}

.rm-lead-form__card {
	background: var(--rm-white);
	padding: clamp(1.5rem, 1rem + 2.2vw, 3rem);
	box-shadow: 0 24px 60px rgba(22, 19, 15, 0.07);
}

/* Formularz w karcie - pola z ramka zamiast samej linii,
   zeby nie gubily sie na bialym tle. */
.rm-form--card {
	margin-top: 0;
}

.rm-form--card .rm-form__field label {
	text-transform: none;
	letter-spacing: 0;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--rm-ink);
}

.rm-form--card .rm-form__field input,
.rm-form--card .rm-form__field textarea {
	padding: 0.8rem 0.9rem;
	border: 1px solid var(--rm-line);
	background: var(--rm-cream);
}

.rm-form--card .rm-form__field input:focus,
.rm-form--card .rm-form__field textarea:focus {
	border-color: var(--rm-info);
	border-bottom-width: 1px;
}

.rm-form--card .rm-form__field input::placeholder {
	color: var(--rm-ink-faint);
}

/* Karta formularza w sekcji kontaktu stoi pod danymi teleadresowymi, wiec
   potrzebuje odstepu, ktorego nie ma karta w ukladzie dwukolumnowym. */
.rm-contact__card {
	margin-top: 2rem;
}

.rm-form__hint {
	margin: -0.5rem 0 1.5rem;
	font-size: 0.8125rem;
	color: var(--rm-ink-soft);
}

/* Zakres zgloszenia */
.rm-checks {
	margin: 1.75rem 0 0;
	padding: 0;
	border: 0;
}

.rm-checks__legend {
	padding: 0;
	margin-bottom: 1rem;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--rm-ink);
}

.rm-checks__grid {
	display: grid;
	gap: 0.75rem 1.5rem;
	grid-template-columns: 1fr;
}

@media (min-width: 560px) {
	.rm-checks__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.rm-checks__item {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	font-size: 0.9375rem;
	font-weight: 500;
	cursor: pointer;
}

.rm-checks__item input {
	width: 18px;
	height: 18px;
	flex: none;
	accent-color: var(--rm-action);
}

.rm-btn--wide {
	width: 100%;
	justify-content: center;
	text-align: center;
}

/* Galeria oferty */
.rm-estate-gallery__frame {
	position: relative;
	background: var(--rm-cream-deep);
}

.rm-estate-gallery__main {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	display: block;
}

.rm-estate-gallery__links {
	position: absolute;
	right: clamp(0.85rem, 2vw, 1.5rem);
	bottom: clamp(0.85rem, 2vw, 1.5rem);
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
}

/* Przejscie do pozostalych ofert pod siatka - uwaga Borysa nr 6 z 16.09.2026. */
.rm-section__more {
	margin: clamp(1.5rem, 3vw, 2.5rem) 0 0;
	text-align: center;
}

.rm-section__more-count {
	margin-left: 0.5rem;
	opacity: 0.7;
	font-variant-numeric: tabular-nums;
}

/* Strzalki przewijania glownego zdjecia - uwaga Borysa nr 17 z 16.09.2026. */
.rm-estate-gallery__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 0;
	background: rgba(15, 15, 15, 0.55);
	color: #fff;
	font-size: 2rem;
	line-height: 1;
	cursor: pointer;
	transition: background var(--rm-dur) var(--rm-ease);
}

.rm-estate-gallery__arrow:hover,
.rm-estate-gallery__arrow:focus-visible {
	background: var(--rm-action);
}

.rm-estate-gallery__arrow--prev {
	left: clamp(0.5rem, 1.5vw, 1rem);
}

.rm-estate-gallery__arrow--next {
	right: clamp(0.5rem, 1.5vw, 1rem);
}

.rm-estate-gallery__arrow span {
	display: block;
	margin-top: -0.2em;
}

.rm-estate-gallery__counter {
	position: absolute;
	left: clamp(0.85rem, 2vw, 1.5rem);
	bottom: clamp(0.85rem, 2vw, 1.5rem);
	margin: 0;
	padding: 0.25rem 0.6rem;
	background: rgba(15, 15, 15, 0.55);
	color: #fff;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.04em;
}

@media (max-width: 640px) {
	.rm-estate-gallery__arrow {
		width: 40px;
		height: 40px;
		font-size: 1.65rem;
	}
}

.rm-estate-gallery__thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 0.5rem;
}

.rm-estate-gallery__thumb {
	width: 92px;
	height: 66px;
	padding: 0;
	overflow: hidden;
	border: 2px solid transparent;
	transition: border-color var(--rm-dur) var(--rm-ease), opacity var(--rm-dur) var(--rm-ease);
	opacity: 0.75;
}

.rm-estate-gallery__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.rm-estate-gallery__thumb:hover,
.rm-estate-gallery__thumb.is-active {
	border-color: var(--rm-action);
	opacity: 1;
}

.rm-estate-gallery__more {
	display: grid;
	place-items: center;
	width: 92px;
	height: 66px;
	background: var(--rm-cream-deep);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--rm-ink-soft);
}

/* ==========================================================================
   22. Podstrony (zadanie T4)
   ========================================================================== */

/* Hero podstrony */
.rm-page-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: min(56vh, 460px);
	overflow: hidden;
	padding-block: clamp(3rem, 2rem + 5vw, 6rem);
}

.rm-page-hero__media {
	position: absolute;
	inset: 0;
}

.rm-page-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.rm-page-hero__media::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(15, 13, 11, 0.86) 0%, rgba(15, 13, 11, 0.62) 55%, rgba(15, 13, 11, 0.3) 100%);
}

.rm-page-hero__inner {
	position: relative;
	z-index: 2;
	color: var(--rm-cream);
}

.rm-page-hero__title {
	font-size: clamp(2rem, 1.4rem + 2.6vw, 3.25rem);
	font-weight: 300;
	line-height: 1.08;
	letter-spacing: -0.02em;
	max-width: 20ch;
}

.rm-page-hero__title strong {
	font-weight: 600;
}

.rm-page-hero__lead {
	margin-top: 1.25rem;
	font-size: var(--rm-fs-lead);
	font-weight: 300;
	color: rgba(247, 245, 238, 0.82);
	max-width: 52ch;
}

/* Hero ze zdjeciem zespolowym (Kariera). Na telefonie waski kadr tla ucinal
   polowe osob, wiec ponizej 900 px zdjecie schodzi pod tekst w pelnym
   kadrze, jak na stronie Zespolu (uwaga Borysa z 10.10). */
@media (max-width: 899px) {
	.rm-page-hero--photo {
		flex-direction: column;
		align-items: stretch;
		min-height: 0;
		padding-bottom: 0;
	}

	.rm-page-hero--photo .rm-page-hero__media {
		position: relative;
		inset: auto;
		order: 2;
		margin-top: 2.5rem;
	}

	.rm-page-hero--photo .rm-page-hero__media img {
		height: auto;
	}

	.rm-page-hero--photo .rm-page-hero__media::after {
		display: none;
	}
}

/* Tekst wprowadzenia */
.rm-prose {
	max-width: 62ch;
}

.rm-prose__lead {
	font-size: var(--rm-fs-lead);
	font-weight: 300;
	line-height: 1.7;
	color: var(--rm-ink-soft);
	margin-bottom: 1.5rem;
}

/* Liczby i fakty */
.rm-stats {
	display: grid;
	gap: 1px;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
	background: var(--rm-line-soft);
	border: 1px solid var(--rm-line-soft);
}

.rm-stat {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	padding: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem);
	background: var(--rm-cream-deep);
	text-align: center;
	align-items: center;
}

.rm-stat__value {
	font-size: clamp(2.25rem, 1.7rem + 2.2vw, 3.25rem);
	font-weight: 300;
	letter-spacing: -0.03em;
	line-height: 1;
	color: var(--rm-ink);
}

.rm-stat__label {
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	color: var(--rm-ink-soft);
	max-width: 18ch;
}

/* Karty (dla kogo / atuty) */
.rm-cards-2,
.rm-cards-3 {
	display: grid;
	gap: clamp(1.25rem, 1rem + 1.2vw, 2rem);
}

.rm-cards-2 {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
}

.rm-cards-3 {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
}

.rm-card {
	padding: clamp(1.65rem, 1.4rem + 1vw, 2.25rem);
	background: var(--rm-white);
	border: 1px solid var(--rm-line-soft);
	border-top: 3px solid var(--rm-info);
}

.rm-card__title {
	font-size: 1.125rem;
	font-weight: 600;
	letter-spacing: -0.01em;
	margin-bottom: 0.85rem;
}

.rm-card__text {
	font-size: 0.9375rem;
	color: var(--rm-ink-soft);
}

/* Lista z ptaszkami */
.rm-checklist {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 1rem;
}

.rm-checklist--grid {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
	gap: 1.15rem;
}

/* Wariant powiekszony - sekcja "Dla kogo" na Karierze gubila sie przy
   standardowej skali (uwaga Adriana z 01.09). */
.rm-checklist--lg li {
	font-size: 1.0625rem;
	line-height: 1.5;
	color: var(--rm-ink);
}

.rm-checklist--lg svg {
	width: 26px;
	height: 26px;
	margin-top: 0;
}

.rm-checklist li {
	display: flex;
	align-items: flex-start;
	gap: 0.85rem;
	font-size: 0.9375rem;
	color: var(--rm-ink-soft);
}

.rm-checklist svg {
	width: 20px;
	height: 20px;
	flex: none;
	margin-top: 0.1rem;
	color: var(--rm-action);
}

/* Kroki wspolpracy */
.rm-steps {
	display: grid;
	gap: 1px;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr));
	background: rgba(247, 245, 238, 0.14);
	border: 1px solid rgba(247, 245, 238, 0.14);
}

.rm-step {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	padding: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem);
	background: var(--rm-ink);
}

.rm-step__num {
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	color: var(--rm-red-muted);
}

.rm-step__title {
	font-size: 1.125rem;
	font-weight: 500;
	color: var(--rm-cream);
}

.rm-step__text {
	font-size: 0.9375rem;
	color: rgba(247, 245, 238, 0.72);
}

/* FAQ */
.rm-faq {
	max-width: 820px;
	border-top: 1px solid var(--rm-line);
}

.rm-faq__item {
	border-bottom: 1px solid var(--rm-line);
}

.rm-faq__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.35rem 0;
	font-size: 1.0625rem;
	font-weight: 500;
	cursor: pointer;
	list-style: none;
}

.rm-faq__q::-webkit-details-marker {
	display: none;
}

.rm-faq__caret {
	width: 12px;
	height: 8px;
	flex: none;
	color: var(--rm-action);
	transition: transform var(--rm-dur) var(--rm-ease);
}

.rm-faq__item[open] .rm-faq__caret {
	transform: rotate(180deg);
}

.rm-faq__a {
	padding: 0 0 1.5rem;
	font-size: 0.9375rem;
	line-height: 1.7;
	color: var(--rm-ink-soft);
	max-width: 68ch;
}

/* Oferta pracy - siatka */
.rm-offer-grid {
	display: grid;
	gap: 1px;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
	background: var(--rm-line-soft);
	border: 1px solid var(--rm-line-soft);
}

.rm-offer-item {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	padding: clamp(1.5rem, 1.2rem + 1vw, 2rem);
	background: var(--rm-cream);
	font-size: 0.9375rem;
	color: var(--rm-ink-soft);
}

.rm-offer-item__num {
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	color: var(--rm-action);
	flex: none;
}

/* Pasek CTA */
.rm-cta-band {
	display: grid;
	gap: 2rem;
	align-items: center;
}

@media (min-width: 860px) {
	.rm-cta-band {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 3rem;
	}
}

.rm-cta-band__action {
	flex: none;
}

/* Naglowek podstrony blogowej / archiwum: prosty wariant */
.rm-page-hero--light {
	background: var(--rm-cream-deep);
}

/* ==========================================================================
   23. Blog - lista, archiwa i wpis (zadanie T4)
   ========================================================================== */

/* Pasek nad lista: filtr kategorii + wyszukiwarka */
.rm-blog-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.25rem 2rem;
	padding-bottom: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem);
	margin-bottom: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem);
	border-bottom: 1px solid var(--rm-line);
}

.rm-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.rm-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.6rem 1.05rem;
	border: 1px solid var(--rm-line);
	font-size: 0.8125rem;
	font-weight: 500;
	color: var(--rm-ink-soft);
	transition: background var(--rm-dur) var(--rm-ease), color var(--rm-dur) var(--rm-ease), border-color var(--rm-dur) var(--rm-ease);
}

.rm-chip:hover {
	border-color: var(--rm-ink);
	color: var(--rm-ink);
}

.rm-chip.is-active {
	background: var(--rm-ink);
	border-color: var(--rm-ink);
	color: var(--rm-cream);
}

.rm-chip__count {
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: var(--rm-ink-faint);
}

.rm-chip.is-active .rm-chip__count {
	color: rgba(247, 245, 238, 0.6);
}

.rm-blog-search {
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex: 1 1 260px;
	max-width: 380px;
	border-bottom: 1px solid var(--rm-line);
	transition: border-color var(--rm-dur) var(--rm-ease);
}

.rm-blog-search:focus-within {
	border-color: var(--rm-info);
}

.rm-blog-search__icon {
	width: 18px;
	height: 18px;
	flex: none;
	color: var(--rm-ink-faint);
}

.rm-blog-search input[type='search'] {
	flex: 1;
	min-width: 0;
	padding: 0.7rem 0;
	border: 0;
	background: none;
	font-family: inherit;
	font-size: 0.9375rem;
	color: var(--rm-ink);
}

.rm-blog-search input[type='search']:focus {
	outline: none;
}

.rm-blog-search button {
	flex: none;
	padding: 0.4rem 0;
	border: 0;
	background: none;
	font-family: inherit;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--rm-action);
	cursor: pointer;
}

/* Karta wpisu - rozszerzenie sekcji 16 */
.rm-post__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: flex-start;
}

.rm-post__media {
	position: relative;
	display: block;
}

.rm-post__cat {
	position: absolute;
	left: 0;
	bottom: 0;
	padding: 0.45rem 0.9rem;
	background: var(--rm-cream);
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--rm-ink);
}

.rm-post__title a:hover {
	color: var(--rm-action);
}

.rm-post__more {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	margin-top: auto;
	padding-top: 1.1rem;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--rm-ink);
}

.rm-post__more svg {
	width: 16px;
	height: 10px;
	transition: transform var(--rm-dur) var(--rm-ease);
}

.rm-post:hover .rm-post__more {
	color: var(--rm-action);
}

.rm-post:hover .rm-post__more svg {
	transform: translateX(5px);
}

/* Wpis wyrozniony na pierwszej stronie listy */
.rm-post--featured {
	display: grid;
	gap: clamp(1.5rem, 1.1rem + 1.8vw, 3rem);
	padding-bottom: clamp(2rem, 1.6rem + 1.8vw, 3rem);
	margin-bottom: clamp(2rem, 1.6rem + 1.8vw, 3rem);
	border-bottom: 1px solid var(--rm-line);
}

@media (min-width: 860px) {
	.rm-post--featured {
		grid-template-columns: 1.15fr 1fr;
		align-items: center;
	}
}

.rm-post--featured .rm-post__media {
	aspect-ratio: 3 / 2;
	margin-bottom: 0;
}

.rm-post--featured .rm-post__title {
	font-size: clamp(1.5rem, 1.15rem + 1.5vw, 2.25rem);
	font-weight: 300;
	line-height: 1.18;
	letter-spacing: -0.02em;
}

.rm-post--featured .rm-post__excerpt {
	font-size: var(--rm-fs-lead);
	font-weight: 300;
	line-height: 1.7;
	-webkit-line-clamp: 4;
}

/* Pusta lista */
.rm-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
	padding-block: clamp(3rem, 2.4rem + 3vw, 5rem);
	text-align: center;
	color: var(--rm-ink-soft);
}

.rm-empty p {
	max-width: 46ch;
}

.rm-empty .rm-btn {
	margin-top: 0.75rem;
}

/* Pasek postepu czytania */
.rm-progress {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 120;
	width: 100%;
	height: 3px;
	pointer-events: none;
}

.rm-progress span {
	display: block;
	width: 0;
	height: 100%;
	background: var(--rm-red);
	transition: width 0.1s linear;
}

/* Naglowek wpisu */
.rm-article-hero {
	min-height: min(64vh, 560px);
}

.rm-article__title {
	max-width: 24ch;
	font-weight: 400;
}

.rm-article__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.65rem;
	margin-top: 1.5rem;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rm-ink-faint);
}

.rm-section--ink .rm-article__meta,
.rm-article-hero .rm-article__meta {
	color: rgba(247, 245, 238, 0.7);
}

.rm-article-hero .rm-breadcrumb,
.rm-article-hero .rm-breadcrumb a {
	color: rgba(247, 245, 238, 0.72);
}

.rm-article-hero .rm-breadcrumb a:hover {
	color: var(--rm-cream);
}

/* Tresc wpisu i pasek udostepniania */
.rm-article__grid {
	display: grid;
	gap: clamp(1.5rem, 1.2rem + 1.4vw, 2.5rem);
}

@media (min-width: 1000px) {
	.rm-article__grid {
		grid-template-columns: 64px minmax(0, 1fr);
		align-items: start;
	}
}

.rm-entry--article {
	max-width: 72ch;
	font-size: 1.0625rem;
	line-height: 1.78;
}

.rm-entry--article > p {
	margin-bottom: 1.4rem;
}

.rm-entry--article h2 {
	font-size: var(--rm-fs-h3);
	font-weight: 500;
	letter-spacing: -0.01em;
}

.rm-entry--article h3 {
	font-size: 1.1875rem;
	font-weight: 600;
}

.rm-entry--article ul,
.rm-entry--article ol {
	margin: 0 0 1.4rem 1.25rem;
	padding-left: 0.75rem;
	list-style: disc;
}

.rm-entry--article ol {
	list-style: decimal;
}

.rm-entry--article li {
	margin-bottom: 0.6rem;
}

.rm-entry--article blockquote {
	margin: 2rem 0;
	padding-left: clamp(1.25rem, 1rem + 1vw, 2rem);
	border-left: 2px solid var(--rm-action);
	font-size: var(--rm-fs-lead);
	font-weight: 300;
	line-height: 1.6;
	color: var(--rm-ink);
}

.rm-entry--article figure {
	margin: 2rem 0;
}

.rm-entry--article figcaption {
	margin-top: 0.6rem;
	font-size: 0.8125rem;
	color: var(--rm-ink-faint);
}

.rm-entry__pages {
	margin-top: 2rem;
	font-size: 0.875rem;
}

.rm-share {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.65rem;
}

@media (min-width: 1000px) {
	.rm-share {
		position: sticky;
		top: 120px;
		flex-direction: column;
		align-items: flex-start;
	}
}

.rm-share__label {
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rm-ink-faint);
}

.rm-share__link {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--rm-line);
	background: none;
	color: var(--rm-ink-soft);
	cursor: pointer;
	transition: background var(--rm-dur) var(--rm-ease), color var(--rm-dur) var(--rm-ease), border-color var(--rm-dur) var(--rm-ease);
}

.rm-share__link:hover {
	border-color: var(--rm-info);
	color: var(--rm-info);
}

.rm-share__link svg {
	width: 18px;
	height: 18px;
}

.rm-share__copy {
	position: relative;
}

.rm-share__done {
	position: absolute;
	left: 50%;
	bottom: calc(100% + 8px);
	transform: translateX(-50%);
	padding: 0.3rem 0.6rem;
	background: var(--rm-ink);
	color: var(--rm-cream);
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	white-space: nowrap;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.25s var(--rm-ease), visibility 0.25s var(--rm-ease);
}

.rm-share__copy.is-copied .rm-share__done {
	opacity: 1;
	visibility: visible;
}

/* Tagi pod wpisem */
.rm-article__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: clamp(2rem, 1.6rem + 1.6vw, 3rem);
}

/* Poprzedni / nastepny wpis */
.rm-postnav {
	display: grid;
	gap: 1px;
	margin-top: clamp(2.5rem, 2rem + 2vw, 4rem);
	background: var(--rm-line-soft);
	border-block: 1px solid var(--rm-line-soft);
}

@media (min-width: 720px) {
	.rm-postnav {
		grid-template-columns: 1fr 1fr;
	}
}

.rm-postnav__item {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	padding: clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem);
	background: var(--rm-cream);
	transition: background var(--rm-dur) var(--rm-ease);
}

.rm-postnav__item:hover {
	background: var(--rm-cream-deep);
}

.rm-postnav__item--next {
	text-align: right;
	align-items: flex-end;
}

.rm-postnav__dir {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rm-ink-faint);
}

.rm-postnav__dir svg {
	width: 16px;
	height: 10px;
}

.rm-postnav__title {
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.45;
	color: var(--rm-ink);
}

/* Przycisk konturowy na ciemnym tle */
.rm-section--ink .rm-btn--ghost {
	border-color: rgba(247, 245, 238, 0.4);
	color: var(--rm-cream);
}

.rm-section--ink .rm-btn--ghost:hover {
	background: var(--rm-cream);
	border-color: var(--rm-cream);
	color: var(--rm-ink);
}

.rm-cta-band__action {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

/* Naglowek listy w wariancie jasnym - tekst na kremie, nie na zdjeciu */
.rm-page-hero--light {
	min-height: 0;
	align-items: flex-start;
}

.rm-page-hero--light .rm-page-hero__inner {
	color: var(--rm-ink);
}

.rm-page-hero--light .rm-page-hero__lead {
	color: var(--rm-ink-soft);
}

@media (prefers-reduced-motion: reduce) {
	.rm-progress span {
		transition: none;
	}
}

/* Plansza ze zdjeciem wyrozniajacym pod naglowkiem wpisu */
.rm-article__cover {
	margin: 0;
	padding-top: clamp(1.5rem, 1.2rem + 1.4vw, 2.5rem);
}

.rm-article__cover img {
	display: block;
	width: 100%;
	max-height: min(56vh, 520px);
	object-fit: cover;
	background: var(--rm-cream-deep);
}

/* Tresc wpisu wysrodkowana, pasek udostepniania w lewym marginesie */
@media (min-width: 1000px) {
	.rm-article__grid {
		grid-template-columns: 64px minmax(0, 72ch);
		justify-content: center;
	}
}

/* Pusta polowa nawigacji nie moze wygladac jak druga karta */
.rm-postnav__blank {
	background: var(--rm-cream);
}

/* Ikona w przycisku nie moze sie rozciagac - przycisk bywa na cala szerokosc.
   Rozmiar wlasny niesie juz atrybut z viewBox, tu wystarczy zdjac rozciaganie. */
.rm-btn svg {
	flex: none;
}

.rm-search__submit svg {
	width: 18px;
	height: 18px;
}

/* --------------------------------------------------------------------------
   24. Dokumenty prawne (polityka prywatnosci, RODO)
   -------------------------------------------------------------------------- */
.rm-legal {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(2rem, 1.6rem + 1.8vw, 3.5rem);
}

@media (min-width: 1000px) {
	.rm-legal {
		grid-template-columns: minmax(0, 260px) minmax(0, 1fr);
		align-items: start;
	}
}

.rm-legal__toc {
	padding: clamp(1.5rem, 1.2rem + 1.2vw, 2rem);
	background: var(--rm-cream-deep);
}

@media (min-width: 1000px) {
	.rm-legal__toc {
		position: sticky;
		top: 120px;
		max-height: calc(100vh - 160px);
		overflow-y: auto;
	}
}

.rm-legal__toc-title {
	margin-bottom: 1rem;
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rm-ink-faint);
}

.rm-legal__toc ol {
	margin: 0;
	padding-left: 1.15rem;
	list-style: decimal;
	font-size: 0.875rem;
	line-height: 1.5;
	color: var(--rm-ink-soft);
}

.rm-legal__toc li {
	margin-bottom: 0.7rem;
	overflow-wrap: anywhere;
}

.rm-legal__toc a:hover {
	color: var(--rm-action);
}

.rm-entry--legal {
	max-width: 78ch;
	overflow-wrap: anywhere;
}

.rm-entry--legal h2 {
	scroll-margin-top: 110px;
	padding-top: 1.25rem;
	border-top: 1px solid var(--rm-line-soft);
}

.rm-entry--legal h2:first-child {
	padding-top: 0;
	border-top: 0;
	margin-top: 0;
}

.rm-entry--legal ol,
.rm-entry--legal ul {
	margin: 0 0 1.4rem 1.25rem;
	padding-left: 0.75rem;
	list-style: decimal;
}

.rm-entry--legal ul {
	list-style: disc;
}

.rm-entry--legal li {
	margin-bottom: 0.5rem;
}

/* --------------------------------------------------------------------------
   25. Sterowane lamanie naglowkow
   Podzial wiersza ustawiony recznie ma sens dopiero wtedy, gdy jest miejsce.
   Ponizej 900 px o wszystkim decyduje szerokosc kolumny.
   -------------------------------------------------------------------------- */
.rm-br {
	display: none;
}

@media (min-width: 900px) {
	.rm-br {
		display: inline;
	}

	/* Naglowek z wlasnym podzialem nie potrzebuje juz limitu znakow -
	   inaczej przelamalby sie dodatkowo w przypadkowym miejscu. */
	.rm-h2:has(.rm-br) {
		max-width: none;
	}
}

/* --------------------------------------------------------------------------
   26. Zakladki dzielnicowe i podstrony lokalizacji
   Wzorzec z Partners International, pomysl Doroty ze spotkania 21.07.
   -------------------------------------------------------------------------- */
.rm-tabs__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 2rem;
	padding-bottom: 1rem;
	margin-bottom: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem);
	border-bottom: 1px solid var(--rm-line);
}

.rm-tabs__btn {
	display: inline-flex;
	align-items: baseline;
	gap: 0.45rem;
	padding: 0.35rem 0;
	border: 0;
	background: none;
	font-family: inherit;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--rm-ink-faint);
	cursor: pointer;
	position: relative;
	transition: color var(--rm-dur) var(--rm-ease);
}

.rm-tabs__btn::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1.0625rem;
	height: 2px;
	background: var(--rm-action);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--rm-dur) var(--rm-ease);
}

/* Na wezszych ekranach zakladki zawijaja sie w kilka wierszy i kreska
   zjezdzajaca do dolnej linii paska wisiala miedzy wierszami, tuz nad
   nazwa dzielnicy ponizej (uwaga Borysa z 26.09.2026, mobile). Tu kreska
   siedzi pod samym napisem, a wiersze dostaja wiecej powietrza. */
@media (max-width: 899px) {
	.rm-tabs__nav {
		row-gap: 1rem;
	}

	.rm-tabs__btn::after {
		bottom: -0.15rem;
	}
}

.rm-tabs__btn:hover {
	color: var(--rm-ink);
}

.rm-tabs__btn.is-active {
	color: var(--rm-ink);
}

.rm-tabs__btn.is-active::after {
	transform: scaleX(1);
}

.rm-tabs__btn:focus-visible {
	outline: 2px solid var(--rm-info);
	outline-offset: 4px;
}

.rm-tabs__count {
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	color: var(--rm-ink-faint);
}

.rm-tabs__panel[hidden] {
	display: none;
}

.rm-tabs__more {
	margin-top: clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem);
}

/* Nawigacja po sasiednich lokalizacjach na podstronie dzielnicy */
.rm-places {
	margin-top: clamp(2.5rem, 2rem + 2vw, 4rem);
	padding-top: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem);
	border-top: 1px solid var(--rm-line);
}

.rm-places__title {
	margin-bottom: 1rem;
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rm-ink-faint);
}

/* --------------------------------------------------------------------------
   27. REMAX Collection - propozycja ekspozycji (do akceptacji klienta)
   Sub-marka ma wlasna, ciemna identyfikacje - stad odwrocona kolorystyka.
   Logotyp zastapiony skladem typograficznym do czasu otrzymania plikow.
   -------------------------------------------------------------------------- */
.rm-collection {
	background: var(--rm-blue-deep);
	color: var(--rm-cream);
}

/* Na telefonie odstep nad logotypem byl wiekszy niz miedzy logotypem a tekstem
   i sekcja wygladala na pusta od gory (propozycja Borysa z 10.10). */
@media (max-width: 899px) {
	.rm-collection {
		padding-top: 2.5rem;
	}
}

.rm-collection__head {
	display: grid;
	gap: clamp(1.5rem, 1.2rem + 1.4vw, 2.5rem);
	margin-bottom: clamp(2.5rem, 2rem + 2vw, 4rem);
}

@media (min-width: 900px) {
	.rm-collection__head {
		grid-template-columns: auto minmax(0, 1fr);
		align-items: center;
		gap: clamp(2.5rem, 2rem + 3vw, 5rem);
	}
}

.rm-collection__mark {
	display: flex;
	flex-direction: column;
	align-items: center;
	line-height: 1;
	color: var(--rm-white);
	flex: none;
}

/* Wariant ze znakiem graficznym z paczki sieciowej. Szerokosc ograniczona, bo
   plik przychodzi w 1200 px i bez tego rozpychalby naglowek sekcji. */
.rm-collection__mark--img img {
	display: block;
	width: clamp(200px, 16rem + 6vw, 320px);
	height: auto;
}

.rm-collection__mark span {
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.42em;
	text-transform: uppercase;
	margin-left: 0.42em;
}

.rm-collection__mark strong {
	font-size: clamp(1.75rem, 1.3rem + 2vw, 2.75rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	margin-block: 0.15em 0.12em;
}

.rm-collection__mark strong em {
	font-style: normal;
	color: var(--rm-red);
}

.rm-collection__word {
	font-size: clamp(0.9375rem, 0.8rem + 0.6vw, 1.25rem) !important;
	font-weight: 300 !important;
	letter-spacing: 0.28em !important;
}

.rm-collection__lead {
	font-size: var(--rm-fs-lead);
	font-weight: 300;
	line-height: 1.7;
	color: rgba(247, 245, 238, 0.82);
	max-width: 56ch;
}

/* Karty na ciemnym tle - odwrocenie jasnego wariantu.
   Bialo tlo siedzi na .rm-estate, nie na __body. */
.rm-collection .rm-estate {
	background: rgba(255, 255, 255, 0.05);
	border-color: rgba(247, 245, 238, 0.14);
}

.rm-collection .rm-estate:hover {
	background: rgba(255, 255, 255, 0.08);
}

.rm-collection .rm-tag {
	background: var(--rm-cream);
	color: var(--rm-ink);
}

.rm-collection .rm-estate__title a,
.rm-collection .rm-estate__price {
	color: var(--rm-cream);
}

.rm-collection .rm-estate__param,
.rm-collection .rm-estate__loc,
.rm-collection .rm-estate__more,
.rm-collection .rm-estate__price small {
	color: rgba(247, 245, 238, 0.66);
}

.rm-collection .rm-estate__foot,
.rm-collection .rm-estate__params {
	border-color: rgba(247, 245, 238, 0.16);
}

/* --------------------------------------------------------------------------
   Wyroznienia agentek (ustalenie 07.09.2026, punkt 10 Borysa)
   Odznaka niesie nazwe, rok i wyjasnienie - sama grafika nic nie mowi komus
   z zewnatrz. Grafiki przeniesione z obecnej strony remaxexperts.pl.
   -------------------------------------------------------------------------- */
.rm-awards {
	display: grid;
	gap: 2.5rem;
}

@media (min-width: 900px) {
	.rm-awards {
		grid-template-columns: minmax(0, 22rem) minmax(0, 1fr);
		gap: 3.5rem;
		align-items: start;
	}
}

.rm-awards__lead {
	margin-top: 1rem;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--rm-ink-soft);
}

.rm-awards__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 9.5rem), 1fr));
	gap: 1.5rem 1.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.rm-award {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
}

/* Uwaga Borysa nr 2 z 16.09.2026: odznaki z 2026 roku sa w proporcji 4:5,
   starsze w 1:1. Ramka trzyma 4:5, a "contain" pilnuje, zeby nowe nie byly
   ucinane, a stare nie byly przyciete. Ramka bez wlasnego tla: ciemniejszy
   krem odcinal sie od tla sekcji pasami nad i pod kwadratowymi odznakami
   (uwaga Borysa z 26.09.2026). */
.rm-award__img {
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: contain;
	background: transparent;
}

.rm-award__body {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.45rem;
}

.rm-award__label {
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: var(--rm-ink);
}

.rm-award__year {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	color: var(--rm-info);
}

/* Wyjasnienie: na duzym ekranie w dymku po najechaniu, na telefonie wprost
   pod nazwa, bo tam nie ma czym najechac. */
.rm-award__note {
	font-size: 0.8125rem;
	line-height: 1.45;
	color: var(--rm-ink-soft);
}

@media (hover: hover) and (min-width: 900px) {
	.rm-award {
		position: relative;
	}

	.rm-award__note {
		position: absolute;
		left: 0;
		top: calc(100% + 0.4rem);
		z-index: 5;
		width: max-content;
		max-width: 17rem;
		padding: 0.7rem 0.85rem;
		background: var(--rm-ink);
		color: var(--rm-cream);
		opacity: 0;
		visibility: hidden;
		transition: opacity var(--rm-dur) var(--rm-ease), visibility var(--rm-dur) var(--rm-ease);
	}

	.rm-award:hover .rm-award__note,
	.rm-award:focus-within .rm-award__note {
		opacity: 1;
		visibility: visible;
	}

	/* Odznaka przy prawej krawedzi: dymek otwiera sie w lewo, inaczej wychodzi
	   poza ekran. Klase dokleja initAwardNotes() w main.js - pozycja zalezy od
	   liczby kolumn, ktorej sam CSS nie zna (siatka auto-fill). Wyszlo przy
	   pomiarze breakpointow 21.09.2026: profil agentki na 1024 px mial dokument
	   szerszy o 68 px wlasnie przez ten dymek. */
	.rm-award__note.is-right {
		left: auto;
		right: 0;
	}
}

/* --------------------------------------------------------------------------
   Warianty do decyzji klienta (uwagi Adriana z 01.09.2026)
   Wlaczane parametrem ?wariant= w adresie - patrz rmx_variant_body_class().
   Po decyzji wybrany wariant wchodzi na stale, a ta sekcja znika.
   -------------------------------------------------------------------------- */

/* Drobne zaokraglenie przyciskow i pol. */
.rmx-wariant-zaokraglenia .rm-btn,
.rmx-wariant-zaokraglenia .rm-tag,
.rmx-wariant-zaokraglenia .rm-form input,
.rmx-wariant-zaokraglenia .rm-form textarea,
.rmx-wariant-zaokraglenia .rm-form select {
	border-radius: 6px;
}

/* Warianty "bez-ikon" i "bez-kresek" usuniete 21.09.2026 - uwagi Borysa nr 7
   i 8 z 16.09 rozstrzygaja, ze ikonki i kreski zostaja. */

/* Widget Turnstile w formularzach (wdrozony 07.09.2026). Cloudflare renderuje
   go we wlasnym iframe o stalej szerokosci, wiec pilnujemy tylko odstepu
   i tego, zeby na waskim ekranie nie wychodzil poza karte formularza. */
.rm-form__turnstile {
	margin-block: 1.25rem;
	max-width: 100%;
	overflow: hidden;
}

/* ==========================================================================
   28. Zdjecie zespolowe na archiwum agentow (sesja 04.09.2026)
   ==========================================================================
   Zdjecia od Mikolaja sa kadrem 3:2 z dwudziestoma osobami w rzedzie, wiec
   kazde przyciecie zabiera konkretna twarz. Pas trzyma wiec proporcje zrodla
   zamiast wymuszac wlasna - inaczej niz hero, gdzie zdjecie jest tlem. */
.rm-team-photo {
	padding-block: clamp(2rem, 1.5rem + 2vw, 3.25rem) 0;
}

/* Zdjecie wyciete z tla (PNG z kanalem alfa, cien pod grupa wpalony w plik) -
   ramka bez wlasnego tla, zeby nie odcinal sie prostokat. */
.rm-team-photo__frame {
	background: none;
}

.rm-team-photo__frame img {
	display: block;
	width: 100%;
	height: auto;
}

.rm-team-photo__caption {
	margin-top: 0.85rem;
	font-size: 0.85rem;
	color: var(--rm-ink-soft);
}

/* --------------------------------------------------------------------------
   Dom otwarty (zlecenie Borysa zaakceptowane 26.09.2026)
   Termin pod adresem oferty i oznaczenie na glownym zdjeciu galerii,
   w kolorze etykiety na kartach (.rm-tag--open).
   -------------------------------------------------------------------------- */
.rm-estate-open {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: 0.75rem;
	font-size: 0.9375rem;
	color: var(--rm-ink);
}

.rm-estate-open svg {
	flex: none;
	width: 16px;
	height: 16px;
	color: var(--rm-action);
}

.rm-estate-open strong {
	font-weight: 600;
}

.rm-estate-gallery__open {
	position: absolute;
	top: 1rem;
	left: 1rem;
	z-index: 2;
	padding: 0.55rem 0.95rem;
	background: var(--rm-action);
	color: #fff;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

/* Fokus widoczny na ciemnych tlach (audyt WCAG 19.10.2026). */
.rm-footer :focus-visible,
.rm-hero :focus-visible,
.rm-section--ink :focus-visible {
	outline-color: var(--rm-cream);
}
