/* ==========================================================================
   ELEMENT Malešice
   Rozměry vycházejí z návrhu 1440 px (Figma „14.9. On Board“).
   --u = 1 px návrhu; pod 1440 px se proporčně zmenšuje.
   ========================================================================== */

:root {
	--cream: #fffcf4;
	--ink: #272422;
	--ink-2: #1e1e1d;
	--black: #1a1814;
	--accent: #b9643f;
	--accent-card: #b76441;
	--sand: #bea883;
	--sand-dark: #b2976a;
	--gold: #9a7435;
	--muted: #7d7669;
	--input: #f2ede6;
	--sage: #748264;

	--font-head: "Lexend Deca", "Helvetica Neue", Arial, sans-serif;
	--font-body: "DM Sans", "Helvetica Neue", Arial, sans-serif;

	--u: calc(min(100vw, 1440px) / 1440);
	--gutter: calc(80 * var(--u));
	--col-gap: calc(23 * var(--u));
}

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

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
	margin: 0;
	background: var(--cream);
	color: var(--ink);
	font-family: var(--font-body);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

img, video, svg { display: block; max-width: 100%; }
img, video { height: auto; }
a { color: inherit; }
h1, h2, h3, p, ul, figure { margin: 0; }
ul { padding: 0; list-style: none; }
button, input, textarea { font: inherit; color: inherit; }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 100; background: var(--ink); color: var(--cream); padding: 8px 16px; }
.skip-link:focus { left: 16px; top: 16px; }

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

.container {
	width: 100%;
	max-width: 1440px;
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.text-accent { color: var(--accent); }

/* ---------- typografie ---------- */

.h-xl, .h-l {
	font-family: var(--font-head);
	font-weight: 300;
	letter-spacing: 0;
}
.h-xl { font-size: max(2.5rem, calc(70 * var(--u))); line-height: 1.1; }
.h-l  { font-size: max(2.125rem, calc(50 * var(--u))); line-height: 1; }

/* ---------- tlačítka ---------- */

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	min-height: 48px;
	padding: 0 28px;
	border: 1px solid transparent;
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .16em;
	line-height: 1;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .2s, color .2s, border-color .2s;
}
.btn__arrow { width: 9px; height: auto; flex: none; }
.btn--cream { background: var(--cream); color: var(--accent); }
.btn--cream:hover { background: var(--accent); color: var(--cream); }
.btn--outline { border-color: var(--cream); color: var(--cream); }
.btn--outline:hover { background: var(--cream); color: var(--ink); }
.btn--accent { background: var(--accent); color: #fff; }
.btn--accent:hover { background: var(--ink); }
.btn--sage { color: var(--sage); }
.btn--dark { background: var(--black); color: #fff; }
.btn--dark:hover { background: var(--accent); }

/* ==========================================================================
   Hlavička
   ========================================================================== */

/* Od 8. 10. je hlavička přilepená nahoře na všech stránkách (komentář klientky 7. 10.) – stav po odscrollování
   (.is-stuck) a odsazení obsahu podstránek jsou dole v oddílu „Úpravy 8. 10. 2026“. */
.site-header { position: fixed; inset: 0 0 auto; z-index: 20; background: var(--cream); color: var(--black); }
.site-header--overlay { background: transparent; }

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	max-width: 1440px;
	height: calc(82 * var(--u));
	min-height: 64px;
	margin-inline: auto;
	padding-inline: var(--gutter);
}
.site-header__logo { flex: none; color: inherit; }
.site-header--overlay { color: var(--cream); }
.site-header__logo svg { width: max(96px, calc(115 * var(--u))); height: auto; }

.site-nav__list { display: flex; gap: calc(32 * var(--u)); }
.site-nav__list a {
	font-size: 14.5px;
	color: inherit;
	line-height: 1;
	text-decoration: none;
	white-space: nowrap;
	opacity: 1;
	transition: opacity .2s;
}
.site-nav__list a:hover { opacity: .7; }

.site-header__actions { display: flex; align-items: center; gap: 20px; }
.site-header__icon { display: grid; place-items: center; width: 24px; height: 24px; color: inherit; }
.site-header__icon svg { width: 15px; height: auto; }
.site-header__icon:hover { opacity: .7; }

/* úvodní stránka (komentáře klientky 6. 10.): větší logo a menu, vpravo „Mám zájem“ z hero – jen na počítači */
.site-header__cta { display: none; }
@media (min-width: 901px) {
	.site-header--overlay .site-header__logo svg { width: max(120px, calc(150 * var(--u))); }
	.site-header__cta { display: inline-flex; min-height: 40px; padding-inline: 20px; font-size: 12px; letter-spacing: .14em; white-space: nowrap; }
}
@media (min-width: 1101px) {
	.site-header--overlay .site-nav__list { gap: calc(40 * var(--u)); }
	.site-header--overlay .site-nav__list a { font-size: 18px; }
}

.site-nav__cta { display: none; }
.menu-open .float-cta { display: none; } /* otevřené menu má vlastní tlačítka */

.site-header__burger {
	display: none;
	position: relative;
	width: 40px; height: 40px;
	margin-right: -8px;
	background: none; border: 0; cursor: pointer;
}
.site-header__burger span:not(.screen-reader-text) {
	position: absolute; left: 10px; right: 10px; height: 1.5px; background: currentColor;
	transition: transform .25s, top .25s;
}
.site-header__burger span:nth-child(2) { top: 16px; }
.site-header__burger span:nth-child(3) { top: 23px; }
.menu-open .site-header__burger span:nth-child(2) { top: 20px; transform: rotate(45deg); }
.menu-open .site-header__burger span:nth-child(3) { top: 20px; transform: rotate(-45deg); }

/* ==========================================================================
   1 Hero
   ========================================================================== */

.hero {
	position: relative;
	height: 100vh;
	height: 100svh; /* přes celý monitor */
	min-height: max(560px, calc(640 * var(--u)));
	color: var(--cream);
	overflow: hidden;
}
.hero__media, .hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero__bg { object-fit: cover; }
.hero__media::before, .hero__media::after { content: ""; position: absolute; inset: 0; pointer-events: none; }
/* přechody z návrhu: spodní ztmavení + horní pruh pod menu */
.hero__media::before { background: linear-gradient(to top, rgba(0,0,0,.59) 0%, rgba(0,0,0,.051) 46%, rgba(0,0,0,0) 100%); }
.hero__media::after  { background: linear-gradient(to bottom, rgba(0,0,0,.42) 0, rgba(0,0,0,0) max(115px, calc(115 * var(--u)))); }
/* fotka pro mobil (hero_foto_mobil, od 6. 10. kavárna s věží na výšku 4 : 5): výřez posunutý tak, aby byla vidět celá věž.
   Nadpis leží na světlé dlažbě, proto je tu spodní ztmavení opravdu nad fotkou (z-index; jinak ho fotka překrývá). */
@media (max-width: 700px) {
	.hero__media--mobile { isolation: isolate; }
	.hero__media--mobile .hero__bg { object-position: 62% 50%; }
	.hero__media--mobile::before { z-index: 1; background: linear-gradient(to top, rgba(0,0,0,.5) 0%, rgba(0,0,0,.24) 30%, rgba(0,0,0,0) 58%); }
}

.hero__content {
	position: absolute;
	inset: auto 0 0;
	padding-bottom: calc(56 * var(--u)); /* plovoucí lišta se na počítači objeví až pod hero */
}
.hero__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
}
.hero__title {
	font-family: var(--font-head);
	font-weight: 500;
	font-size: max(3rem, calc(94 * var(--u)));
	line-height: .88;
	letter-spacing: -.01em;
	margin-bottom: calc(31 * var(--u));
}
.hero__lead { font-size: max(16px, calc(18 * var(--u))); line-height: 1.22; max-width: 34em; }
.hero__buttons { display: flex; gap: calc(12 * var(--u)); flex: none; margin-bottom: 1px; }
.hero__buttons .btn { min-width: calc(168 * var(--u)); padding-inline: 26px; letter-spacing: .12em; }

/* ==========================================================================
   2 Čísla pod úvodem
   ========================================================================== */

.usp { padding-top: calc(90 * var(--u)); padding-bottom: calc(64 * var(--u)); } /* 6. 10.: pod čísly 96 → 64 */
.usp__list {
	display: grid;
	grid-template-columns: calc(252 * var(--u)) calc(251 * var(--u)) calc(385 * var(--u)) 1fr;
	padding-left: calc(92 * var(--u));
}
.usp__item { display: flex; flex-direction: column; gap: calc(12 * var(--u)); }
.usp__num { font-family: var(--font-head); font-weight: 300; font-size: max(2.25rem, calc(54 * var(--u))); line-height: 1; white-space: nowrap; color: var(--ink-2); }
.usp__label { font-size: 16px; line-height: 1.2; color: var(--ink-2); }

/* ==========================================================================
   3 Zažij Malešice jinak
   ========================================================================== */

.experience {
	display: grid;
	grid-template-columns: calc(447 * var(--u)) 1fr;
	column-gap: calc(121 * var(--u));
	align-items: start;
}
/* 6. 10. („ještě zmenšíme mezery“): mezery o třetinu menší – mezi fotkami 82 → 54, nadpis → body 87 → 58,
   řádek bodu 137 → 129 (oba sloupce zůstávají stejně vysoké) */
/* tři pruhy fotek („E“): mezery stejné jako u „Byty na míru“ na ceníku (24 u); pruhy jsou o to vyšší, ať sloupec končí s body vpravo */
.experience__photos { display: grid; row-gap: calc(24 * var(--u)); margin-left: calc(5 * var(--u)); }
.experience__photo img { display: block; width: 100%; aspect-ratio: 442 / 181; height: auto; object-fit: cover; }
.experience__body { padding-top: calc(4 * var(--u)); }
.experience__title { color: var(--ink); margin-left: calc(5 * var(--u)); line-height: 1; }
.experience__list { margin-top: calc(58 * var(--u)); border-top: 1px solid #efe7d8; margin-right: calc(-5 * var(--u)); }
.experience__item {
	position: relative;
	min-height: calc(129 * var(--u));
	padding: calc(26 * var(--u)) calc(70 * var(--u)) calc(24 * var(--u)) 0;
	border-bottom: 1px solid #efe7d8;
}
.experience__name { font-family: var(--font-head); font-weight: 300; font-size: max(20px, calc(27 * var(--u))); line-height: 1.2; letter-spacing: -.035em; color: var(--ink-2); }
.experience__text { margin-top: calc(12 * var(--u)); font-size: max(16px, calc(17.5 * var(--u))); line-height: 1.4; color: var(--ink-2); } /* 6. 10.: 15 → 17,5 px */
.experience__icon { position: absolute; right: 0; top: calc(30 * var(--u)); width: max(34px, calc(45 * var(--u))); height: max(34px, calc(49 * var(--u))); color: var(--accent); }

/* ==========================================================================
   Slow living
   ========================================================================== */

.slow {
	display: grid;
	grid-template-columns: 1fr calc(723 * var(--u));
	align-items: center;
	column-gap: var(--col-gap);
	/* 6. 10.: nad sekcí 118 → 80; pod ní je teď pás s videem (dřív galerie), 146 → 80 */
	padding-top: calc(80 * var(--u));
	padding-bottom: calc(80 * var(--u));
}
.slow__icon { display: block; width: calc(103 * var(--u)); min-width: 56px; height: auto; color: var(--accent); }
.slow__title {
	font-family: var(--font-head);
	font-weight: 300;
	font-size: max(2.75rem, calc(88 * var(--u)));
	line-height: 1.1;
	letter-spacing: -.01em;
	margin-top: calc(80 * var(--u));
}
.slow__lead { margin-top: calc(26 * var(--u)); font-family: var(--font-head); font-weight: 400; font-size: max(18px, calc(30 * var(--u))); line-height: 1.1; }
.slow__photo img { display: block; width: 100%; aspect-ratio: 723 / 778; height: auto; object-fit: cover; }
.slow__btn { margin-top: calc(68 * var(--u)); min-width: max(220px, calc(263 * var(--u))); min-height: max(48px, calc(53 * var(--u))); }

/* ==========================================================================
   Časová osa
   ========================================================================== */

.timeline {
	display: grid;
	grid-template-columns: 1fr calc(733 * var(--u));
	column-gap: var(--col-gap);
	padding-top: calc(48 * var(--u));
	padding-bottom: calc(74 * var(--u));
}
.timeline__text { display: flex; flex-direction: column; align-items: flex-start; }
.timeline__title { color: var(--ink); margin-top: calc(4 * var(--u)); }
.timeline__lead { margin-top: calc(26 * var(--u)); font-family: var(--font-head); font-weight: 300; font-size: max(18px, calc(30 * var(--u))); line-height: 1.1; }
.timeline__icon { width: calc(100 * var(--u)); min-width: 56px; height: auto; margin-top: auto; margin-left: calc(6 * var(--u)); color: var(--accent); }
.timeline__photo { margin-right: calc(13 * var(--u)); }
.timeline__photo img { display: block; width: 100%; aspect-ratio: 720 / 447; height: auto; object-fit: contain; }

/* milníky – sloupce podle návrhu, čára od prvního bodu do středu posledního */
.timeline__list {
	grid-column: 1 / -1;
	position: relative;
	display: grid;
	grid-template-columns: calc(365 * var(--u)) calc(393 * var(--u)) calc(325 * var(--u)) 1fr;
	margin: calc(90 * var(--u)) 0 0;
	padding: 0;
	list-style: none;
}
.timeline__list::before {
	content: "";
	position: absolute;
	grid-column: 1 / var(--last, 4); /* čára sahá jen po sloupec posledního milníku (--last = počet milníků, casova-osa.php) */
	left: 0; right: -11.5px; /* + půl bodu = střed posledního bodu */
	top: 10.5px;
	height: 2px;
	background: linear-gradient(to right, rgba(190, 168, 131, .75), rgba(190, 168, 131, .35));
}
.timeline__item { position: relative; display: flex; flex-direction: column; align-items: flex-start; padding-right: 16px; }
.timeline__dot {
	position: relative;
	width: 23px; height: 23px;
	border-radius: 50%;
	background: #ede7dc;
	border: 1.5px solid var(--accent);
}
.timeline__dot::after { content: ""; position: absolute; inset: 0; margin: auto; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); }
/* „Právě teď“ pískově jen ve statické ose – při animaci by dosažený bod vypadal jako nerozsvícený */
.timeline:not(.is-building) .timeline__item.is-current .timeline__dot { border-color: var(--sand); }
.timeline:not(.is-building) .timeline__item.is-current .timeline__dot::after { background: var(--sand); }
.timeline__date { margin-top: calc(54 * var(--u)); font-family: var(--font-head); font-weight: 400; font-size: max(20px, calc(26 * var(--u))); line-height: 1.1; letter-spacing: .06em; text-transform: uppercase; color: var(--accent); }
.timeline__label { display: inline-flex; align-items: center; gap: 8px; margin-top: calc(12 * var(--u)); font-size: 15px; line-height: 1.3; color: var(--ink); }
.timeline__arrow { width: 12px; height: auto; flex: none; color: var(--accent); }

/* Fáze stavby se prolínají podle průběhu 0–1: řídí ho scroll (krátké „zastavení“ níž), klepnutí na milník
   i samočinné dohrání (main.js nastaví .is-building, opacity fází a přidá do milníků tlačítko .timeline__go).
   Bez JS je vidět jen poslední fáze = hotový dům. --fill = dotažená čára na ose. */
.timeline__photo--phases { display: grid; }
.timeline__photo--phases .timeline__phase { grid-area: 1 / 1; mix-blend-mode: multiply; } /* bílé pozadí fází splyne s krémovou sekcí */
.timeline__photo--phases .timeline__phase:not(:last-child) { opacity: 0; }
.timeline.is-building .timeline__phase { transition: opacity .25s linear; }
/* „Zastavení“: obal je o krátkou dráhu stavby vyšší (--pin-distance, main.js), sekce v něm stojí (sticky) pod hlavičkou */
.timeline-pin.is-pinned {
	height: calc(var(--pin-h, 100vh) + var(--pin-distance, 40vh));
	margin-bottom: calc(-1 * var(--pin-gap, 0px)); /* zmenšená sekce nenechá pod sebou díru */
}
.timeline-pin.is-pinned > .timeline { position: sticky; top: var(--pin-top, 0px); transform: scale(var(--pin-scale, 1)); transform-origin: 50% 0; }
.timeline:has(.timeline__photo--phases) { background: var(--cream); } /* multiply potřebuje krémový podklad ve vlastní vrstvě */
.timeline.is-building .timeline__list::after {
	content: "";
	position: absolute;
	z-index: 0;
	left: 0;
	top: 10.5px;
	width: var(--fill, 0px);
	height: 2px;
	background: var(--accent);
	transition: width .35s ease-out, height .35s ease-out;
}
.timeline.is-building .timeline__item { z-index: 1; }
.timeline.is-building .timeline__date,
.timeline.is-building .timeline__label { transition: opacity .45s ease; }
.timeline.is-building .timeline__dot,
.timeline.is-building .timeline__dot::after { transition: border-color .45s ease, background-color .45s ease, box-shadow .45s ease, transform .45s ease; }
.timeline.is-building .timeline__item:not(.is-reached) .timeline__date,
.timeline.is-building .timeline__item:not(.is-reached) .timeline__label { opacity: .32; }
.timeline.is-building .timeline__item:not(.is-reached) .timeline__dot { border-color: rgba(190, 168, 131, .55); }
.timeline.is-building .timeline__item:not(.is-reached) .timeline__dot::after { background: rgba(190, 168, 131, .55); transform: scale(.6); }
.timeline.is-building .timeline__item.is-active .timeline__dot { box-shadow: 0 0 0 7px rgba(185, 100, 63, .14); }
/* Piktogram u nadpisu: čárky přibývají zleva spolu s osou (main.js nastaví každé --on 0–1; bez JS je vidět celý) */
.timeline.is-building .timeline__icon path {
	opacity: var(--on, 1);
	transform: scaleY(calc(.35 + .65 * var(--on, 1)));
	transform-box: fill-box;
	transform-origin: 50% 100%;
	transition: opacity .4s ease-out, transform .4s ease-out;
}

/* ==========================================================================
   4 Lokalita
   ========================================================================== */

.location {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: var(--col-gap);
	padding-top: calc(80 * var(--u)); /* 6. 10.: nad sekcí je pás s videem (dřív galerie s vlastním okrajem), 32 → 80 */
	padding-bottom: calc(80 * var(--u));
}
.location__map { margin-left: calc(-4 * var(--u)); }
.location__map img { width: calc(635 * var(--u)); max-width: 100%; }
.location__body { position: relative; padding-top: calc(40 * var(--u)); }
.location__title { color: var(--black); }
.location__leaf {
	position: absolute;
	right: 0;
	top: calc(138 * var(--u));
	width: calc(76 * var(--u));
	min-width: 48px;
	height: auto;
	color: var(--accent);
}
.location__stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	margin-top: calc(53 * var(--u));
	border-top: 1px solid var(--sand);
	margin-right: calc(-3 * var(--u));
}
.location__stat {
	display: flex;
	flex-direction: column;
	gap: calc(12 * var(--u));
	min-height: calc(207 * var(--u));
	padding: calc(64 * var(--u)) calc(20 * var(--u)) 20px;
	color: var(--ink-2);
}
.location__stat + .location__stat { border-left: 1px solid var(--sand); }
.location__stat:first-child { padding-left: calc(20 * var(--u)); }
.location__num {
	font-family: var(--font-head);
	font-weight: 300;
	font-size: max(2.5rem, calc(56 * var(--u)));
	line-height: 1;
	white-space: nowrap;
}
.location__num small { font-size: .54em; margin-left: .15em; }
.location__label { font-size: max(14px, calc(15.5 * var(--u))); line-height: 1.1; }
.location__btn { margin-top: calc(77 * var(--u)); min-width: max(220px, calc(263 * var(--u))); min-height: max(48px, calc(53 * var(--u))); }

/* ==========================================================================
   5 Praha X. — Malešice
   ========================================================================== */

.district { position: relative; }
.district__card-wrap { position: relative; height: calc(72 * var(--u)); }
.district__card {
	position: absolute;
	z-index: 2;
	top: 0;
	right: calc(var(--gutter) + 15 * var(--u));
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: calc(4 * var(--u));
	width: calc(389 * var(--u));
	min-width: 240px;
	height: calc(160 * var(--u));
	min-height: 110px;
	padding: 0 calc(41 * var(--u));
	background: var(--accent-card);
	color: #fff;
}
.district__card-small { font-size: max(13px, calc(15 * var(--u))); line-height: 1.2; }
.district__card-title { font-family: var(--font-head); font-weight: 400; font-size: max(1.5rem, calc(40 * var(--u))); line-height: 1.2; }

.district__media {
	position: relative;
	height: max(420px, calc(914 * var(--u)));
	overflow: hidden;
}
.district__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.district__title {
	position: absolute;
	top: calc(379 * var(--u));
	left: 0; right: 0;
	text-align: center;
	color: #fff;
	font-family: var(--font-head);
	font-weight: 400;
	font-size: calc(107 * var(--u));
	line-height: 1.2;
	letter-spacing: .045em;
	text-transform: uppercase;
	white-space: nowrap;
}

/* ==========================================================================
   6 Který bude Váš?
   ========================================================================== */

.flats {
	display: grid;
	grid-template-columns: 738fr 480fr;
	column-gap: calc(61 * var(--u));
	padding-top: calc(108 * var(--u));
	padding-bottom: calc(24 * var(--u));
}
.flats__image { margin-left: calc(1 * var(--u)); }
.flats__image img { width: 100%; height: 100%; aspect-ratio: 738 / 458; object-fit: cover; object-position: 75% 50%; } /* height: fotka se dotáhne k tlačítku, i když je tabulka dispozic delší */
.flats__title { line-height: 1; }
.flats__body { display: flex; flex-direction: column; align-items: flex-start; padding-top: calc(7 * var(--u)); }
.flats__text {
	margin-top: calc(16 * var(--u));
	font-size: max(18px, calc(22 * var(--u)));
	font-weight: 300;
	line-height: 1.08;
	letter-spacing: -.035em;
	color: var(--ink);
}
.flats__types { width: 100%; margin: calc(24 * var(--u)) 0 calc(22 * var(--u)); border-top: 1px solid #dcd6d1; }
.flats__type {
	display: grid;
	grid-template-columns: calc(116 * var(--u)) calc(126 * var(--u)) 1fr auto; /* o něco užší než v návrhu (123 / 133) – větší písmo ceny se vejde i kolem 900 px */
	align-items: center;
	min-height: calc(55 * var(--u));
	padding: 8px calc(14 * var(--u)) 8px calc(12 * var(--u));
	border-bottom: 1px solid #dcd6d1;
	text-decoration: none;
	color: var(--ink-2);
	transition: background-color .2s;
}
.flats__type:hover { background: rgba(185, 100, 63, .06); }
.flats__type-name { font-family: var(--font-head); font-weight: 300; font-size: max(18px, calc(20 * var(--u))); line-height: 1.2; }
.flats__type-meta { font-size: 14px; font-weight: 500; line-height: 1.3; white-space: nowrap; }
.flats__type-arrow { width: 12px; height: auto; color: var(--accent); transition: transform .2s; }
.flats__type:hover .flats__type-arrow { transform: translateX(3px); }
.flats__btn { margin-top: auto; min-width: calc(263 * var(--u)); min-height: max(48px, calc(54 * var(--u))); }

/* ==========================================================================
   Galerie – „X zážitků“ (exteriér) a „X detailů“ (interiér)
   ========================================================================== */

.gallery { padding-top: calc(40 * var(--u)); padding-bottom: calc(94 * var(--u)); }
.gallery__title { color: var(--ink); line-height: 1.02; margin-bottom: calc(34 * var(--u)); }
.gallery__grid {
	display: grid;
	/* šířky z návrhu: 808 + 452 / 446 + 446 + 348, mezery 20 px */
	grid-template-columns: 446fr 342fr 84fr 348fr;
	grid-template-rows: calc(419 * var(--u)) calc(292 * var(--u));
	gap: calc(20 * var(--u));
}
.gallery__item { position: relative; overflow: hidden; margin: 0; }
.gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s ease; }
.gallery__item--1 { grid-column: 1 / 3; }
.gallery__item--2 { grid-column: 3 / 5; }
.gallery__item--3 { grid-column: 1 / 2; }
.gallery__item--4 { grid-column: 2 / 4; }
.gallery__item--5 { grid-column: 4 / 5; }

/* 6 fotek: nahoře 2 (velká + menší), dole 4 stejné */
.gallery--6 .gallery__grid { grid-template-columns: repeat(12, 1fr); }
.gallery--6 .gallery__item--1 { grid-column: span 8; }
.gallery--6 .gallery__item--2 { grid-column: span 4; }
.gallery--6 .gallery__item--3,
.gallery--6 .gallery__item--4,
.gallery--6 .gallery__item--5,
.gallery--6 .gallery__item--6 { grid-column: span 3; }

/* vizualizace („X zážitků“): zarovnané řady bez ořezu. Podíl fotky na šířce řady (--w), počet fotek v řadě (--n)
   a poměr stran (--ar) počítá galerie.php z rozměrů fotek, výška řady z toho vyplyne. Na telefonu jiné řady (--mw, --mn). */
.gallery--fit .gallery__grid { --gap: calc(20 * var(--u)); display: flex; flex-wrap: wrap; gap: var(--gap); }
.gallery--fit .gallery__item {
	flex: none;
	width: calc((100% - (var(--n) - 1) * var(--gap)) * var(--w));
	aspect-ratio: var(--ar);
	max-height: calc(620 * var(--u)); /* pojistka pro řadu ze samých fotek na výšku */
}

/* galerie vizualizací je od 6. 10. pod časovou osou (ta má pod sebou 74 u → dohromady 80 u) a nad FAQ */
.gallery--zazitky { padding-top: calc(6 * var(--u)); padding-bottom: calc(80 * var(--u)); }
.gallery--zazitky + .gallery--galerie { padding-top: 0; } /* znovu zapnutá galerie „X detailů“ hned pod ní */

/* popisek (USP / claim) po najetí myší – fotka „zežloutne“ (Figma Photo 1 / Variant2:
   #BEA883 na 80 %, krémový text vlevo dole). Na dotykových zařízeních po klepnutí (main.js). */
.gallery__item::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(190, 168, 131, .8);
	opacity: 0;
	transition: opacity .35s ease;
	pointer-events: none;
}
.gallery__caption {
	position: absolute;
	z-index: 1;
	left: calc(38 * var(--u));
	right: calc(38 * var(--u));
	bottom: calc(30 * var(--u));
	color: var(--cream);
	font-family: var(--font-head);
	font-weight: 300;
	font-size: max(1.375rem, calc(36 * var(--u)));
	line-height: 1.1;
	opacity: 0;
	transform: translateY(8px);
	transition: opacity .35s ease, transform .35s ease;
	pointer-events: none;
}
.gallery--6 .gallery__item:nth-child(n+3) .gallery__caption,
.gallery__item--s .gallery__caption {
	left: calc(24 * var(--u));
	right: calc(24 * var(--u));
	bottom: calc(24 * var(--u));
	font-size: max(1.125rem, calc(26 * var(--u)));
}
.gallery__item:has(.gallery__caption) { cursor: default; }
/* zabarvení po najetí má každá fotka, i ta bez popisku (text se ukáže, jen když je vyplněný) */
.gallery__item:hover::after,
.gallery__item:focus-visible::after,
.gallery__item.is-active::after,
.gallery__item:hover .gallery__caption,
.gallery__item:focus-visible .gallery__caption,
.gallery__item.is-active .gallery__caption { opacity: 1; transform: none; }

/* ==========================================================================
   9 Formulář
   ========================================================================== */

.lead {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: var(--col-gap);
	padding-top: calc(110 * var(--u));
	padding-bottom: calc(100 * var(--u));
}
.lead__intro { display: flex; flex-direction: column; padding-top: calc(18 * var(--u)); }
.lead__title { color: var(--ink); }
.lead__text { margin-top: calc(34 * var(--u)); max-width: 31em; font-size: 15.5px; line-height: 1.7; color: var(--ink); }

.contact-list { margin-top: auto; padding-top: 40px; display: grid; gap: calc(14 * var(--u)); padding-bottom: calc(40 * var(--u)); font-size: 15px; line-height: 1.5; }
.contact-list li { display: flex; align-items: flex-start; gap: 14px; }
.contact-list svg { width: 14px; height: auto; flex: none; margin-top: 4px; color: var(--ink); }
.contact-list a { text-decoration: none; }
.contact-list a:hover { color: var(--accent); }

.lead__form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: calc(38 * var(--u));
	row-gap: calc(22 * var(--u));
	align-content: start;
	max-width: 587px;
}
.field { display: flex; flex-direction: column; gap: calc(10 * var(--u)); min-width: 0; margin: 0; padding: 0; border: 0; }
.field--full { grid-column: 1 / -1; }
.field label, .field legend {
	padding: 0;
	margin-bottom: 0;
	font-size: 10px;
	font-weight: 500;
	letter-spacing: .3em;
	text-transform: uppercase;
	color: var(--ink-2);
}
.field legend { margin-bottom: calc(14 * var(--u)); }
.field input, .field textarea {
	width: 100%;
	height: 49px;
	padding: 0 17px;
	background: var(--input);
	border: 1px solid rgba(26, 24, 20, .1);
	border-radius: 0;
	font-size: 15px;
	color: var(--ink-2);
	-webkit-appearance: none;
	appearance: none;
}
.field textarea { height: 93px; padding-top: 14px; resize: vertical; }
.field input::placeholder, .field textarea::placeholder { color: var(--ink-2); opacity: 1; }
.field input:focus, .field textarea:focus { outline: none; border-color: var(--accent); }

.chips { display: grid; grid-template-columns: repeat(4, 1fr); gap: calc(15 * var(--u)); }
.field .chip { position: relative; cursor: pointer; font-size: 14px; letter-spacing: .02em; text-transform: none; font-weight: 400; }
.chip input { position: absolute; opacity: 0; inset: 0; }
.chip span {
	display: grid; place-items: center;
	height: 47px;
	background: var(--input);
	border: 1px solid rgba(26, 24, 20, .1);
	font-size: 14px;
	transition: background-color .2s, color .2s;
}
.chip input:checked + span { background: var(--accent); border-color: var(--accent); color: #fff; }
.chip input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }

.consent {
	display: flex; align-items: center; justify-content: center; gap: 12px;
	margin-top: -2px;
	font-size: 13.5px; line-height: 1.3; color: var(--ink-2); cursor: pointer;
}
.consent input { width: 18px; height: 18px; margin: 0; accent-color: var(--accent); flex: none; }
.consent a { text-underline-offset: 2px; }
.lead__submit { min-width: 181px; min-height: 52px; letter-spacing: .24em; }
.lead__trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.lead__form { position: relative; }
.lead__error { font-size: 14px; color: var(--accent); }
.lead__call { display: none; } /* „nebo volejte…“ pod tlačítkem – jen telefon na podstránce s ceníkem */
.field [aria-invalid="true"] { border-color: var(--accent); }
.lead__done { align-self: center; max-width: 587px; }
.lead__done:focus { outline: none; }
.lead__done .lead__text { margin-top: 20px; }

/* ==========================================================================
   10 FAQ
   ========================================================================== */

.faq { background: var(--sand); color: var(--cream); }
.faq__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: var(--col-gap);
	padding-top: calc(84 * var(--u));
	padding-bottom: calc(98 * var(--u));
	min-height: calc(679 * var(--u));
}
.faq__intro { padding-top: calc(27 * var(--u)); }
.faq__text { margin-top: calc(66 * var(--u)); font-size: 14px; line-height: 1.85; max-width: 24em; }
.faq__intro .btn { margin-top: calc(22 * var(--u)); min-width: 217px; min-height: 49px; font-size: 11.5px; letter-spacing: .2em; padding-inline: 32px; }
.faq__intro .btn:hover { color: var(--cream); }

.faq__list { border-top: 1px solid rgba(255, 252, 244, .45); max-width: 624px; }
.faq__item { border-bottom: 1px solid rgba(255, 252, 244, .45); }
.faq__q {
	position: relative;
	display: flex; align-items: center; justify-content: space-between; gap: 24px;
	min-height: 81.5px;
	padding: 16px 0;
	list-style: none;
	cursor: pointer;
	font-size: max(17px, calc(20.5 * var(--u)));
	font-style: italic;
	font-weight: 300;
	line-height: 1.3;
}
.faq__q::-webkit-details-marker { display: none; }
.faq__plus { position: relative; width: 9px; height: 9px; flex: none; margin-right: 3px; }
.faq__plus::before, .faq__plus::after { content: ""; position: absolute; background: currentColor; }
.faq__plus::before { left: 0; right: 0; top: 4px; height: 1px; }
.faq__plus { transition: transform .38s cubic-bezier(.4, 0, .2, 1); }
.faq__plus::after { top: 0; bottom: 0; left: 4px; width: 1px; transition: transform .38s cubic-bezier(.4, 0, .2, 1); }
.faq__item.is-open .faq__plus { transform: rotate(180deg); }
.faq__item.is-open .faq__plus::after { transform: scaleY(0); }
.faq__q { transition: opacity .25s; }
.faq__q:hover { opacity: .8; }
.faq__a { font-size: 15px; line-height: 1.7; }
.faq__a-in { padding: 0 40px 24px 0; }
.faq__a p + p { margin-top: .8em; }
@media (prefers-reduced-motion: reduce) {
	.faq__plus, .faq__plus::after { transition: none; }
}

/* ==========================================================================
   11 Kdo jsme + Realizace
   ========================================================================== */

.about { background: var(--ink); color: var(--cream); }
.about__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: var(--col-gap);
	padding-top: calc(86 * var(--u));
	padding-bottom: calc(49 * var(--u));
}
.about__intro { padding-left: calc(8 * var(--u)); }
.about__title { line-height: 1.2; }
.about__projects .about__title { margin-left: calc(5 * var(--u)); }
.about__text { margin-top: calc(84 * var(--u)); max-width: 450px; font-size: 14.5px; line-height: 1.8; }
.about__text p + p { margin-top: calc(20 * var(--u)); }
.about__text a { color: var(--sand); }
/* logo RS Group mezi nadpisem a textem – vejde se do původní mezery (30 + 24,5 + 29,5 = 84 u), text zůstává v rovině s dlaždicemi */
.about__logo { margin-top: calc(30 * var(--u)); }
.about__logo svg { width: max(150px, calc(200 * var(--u))); height: auto; fill: currentColor; } /* bílé jako text sekce (přání klienta 6. 10.), ne zlatá z loga */
.about__logo img { width: auto; max-width: max(150px, calc(200 * var(--u))); max-height: 48px; }
.about__logo + .about__text { margin-top: calc(29.5 * var(--u)); }

.people { margin-top: calc(40 * var(--u)); max-width: 581px; }
.person {
	display: grid;
	grid-template-columns: 38px 1fr;
	column-gap: 16px;
	align-items: center;
	min-height: 77px;
}
.person__avatar {
	grid-row: 1 / 3;
	display: grid; place-items: center;
	width: 38px; height: 38px;
	border: 1px solid var(--gold);
	background: rgba(178, 151, 106, .12);
	color: var(--gold);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 11px;
	letter-spacing: .02em;
}
/* fotka místo iniciál (pole „foto“ u osoby): větší než čtverec; sloupec se rozšíří u všech osob, aby jména lícovala */
.people:has(.person__avatar--photo) .person { grid-template-columns: 56px 1fr; }
.people:has(.person__avatar--photo) .person__avatar { justify-self: center; }
.person__avatar--photo { width: 56px; height: 56px; border: 0; background: none; overflow: hidden; }
.person:has(.person__contact) .person__avatar--photo { grid-row: 1 / 4; }
.person__avatar--photo img { width: 100%; height: 100%; object-fit: cover; }
.person__name { align-self: end; font-size: 14.5px; line-height: 1.2; }
.person__role { align-self: start; font-size: 11px; line-height: 1.5; color: var(--muted); }
.person:has(.person__contact) { padding-block: 14px; }
.person__contact { grid-column: 2; display: flex; flex-wrap: wrap; gap: 2px 18px; margin-top: 4px; font-size: 12.5px; line-height: 1.5; }
.person__contact a { color: var(--cream); text-decoration: none; transition: color .2s; }
.person__contact a:hover { color: var(--sand); }

.projects {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: calc(3 * var(--u));
	margin-top: calc(90 * var(--u));
	max-width: 628px;
}
.project { position: relative; aspect-ratio: 311.6 / 233.7; overflow: hidden; background: #c4b8a8; }
.project a { display: block; height: 100%; }
.project img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.project:hover img { transform: scale(1.03); }
.project::after {
	content: ""; position: absolute; inset: auto 0 0; height: 32%;
	background: linear-gradient(to top, rgba(26, 20, 16, .72), rgba(26, 20, 16, 0));
	pointer-events: none;
}
.project__caption { position: absolute; z-index: 1; left: 17px; bottom: 18px; display: flex; flex-direction: column; }
.project__name { font-size: 14.5px; line-height: 1.3; color: #fff; }
.project__place { font-size: 11px; letter-spacing: .06em; line-height: 1.3; color: rgba(255, 255, 255, .55); }

/* ==========================================================================
   Patička
   ========================================================================== */

/* od 6. 10. oranžová patička s bílým textem (návrh „9 SCREEN // PATIČKA“, design/podklady-0610/paticka-oranzova/) – dřív písková s tmavým */
.site-footer { background: var(--accent); color: #fff; }
.site-footer__main {
	display: grid;
	grid-template-columns: 671.5fr 389.5fr 259fr; /* sloupec s kontakty začíná na levé hraně dlaždic projektů nad patičkou (731,5 u) */
	max-width: 1440px;
	margin-inline: auto;
	padding: calc(60 * var(--u)) calc(60 * var(--u)) calc(44 * var(--u));
}
.site-footer__logo { display: inline-block; color: inherit; }
.site-footer__logo svg { width: max(180px, calc(257.5 * var(--u))); height: auto; }
.site-footer__tagline { margin-top: calc(24 * var(--u)); font-size: 16px; line-height: 1.5; }
.site-footer__social { display: flex; margin-top: calc(24 * var(--u)); margin-left: calc((19px - 56px) / 2); } /* první ikona začíná na levé hraně loga */
.site-footer__social li + li { border-left: 1px solid currentColor; }
.site-footer__social a { display: grid; place-items: center; width: 56px; height: 56px; color: inherit; transition: opacity .2s; }
.site-footer__social a:hover { opacity: .7; }
.site-footer__social svg { width: 19px; height: 19px; }

.site-footer__heading { font-size: 14px; font-weight: 600; letter-spacing: .1em; line-height: 1.4; text-transform: uppercase; margin-bottom: calc(18 * var(--u)); }
.site-footer__text { font-size: 16px; line-height: 1.65; }
.site-footer__text + .site-footer__text { margin-top: calc(16 * var(--u)); }
.site-footer__text a { text-decoration: none; }
.site-footer__text a:hover, .site-footer__legal a:hover { text-decoration: underline; }
.site-footer__links { margin-top: calc(18 * var(--u)); }
.site-footer__links a { font-size: 16px; font-weight: 500; letter-spacing: .06em; line-height: 1.65; text-transform: uppercase; text-decoration: none; }
.site-footer__links a:hover { text-decoration: underline; }

.site-footer__legal { max-width: 1440px; margin-inline: auto; padding-inline: calc(60 * var(--u)); }
.site-footer__legal-in {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px 32px;
	border-top: 1px solid currentColor;
	padding: calc(22 * var(--u)) 0 calc(28 * var(--u));
}
.site-footer__legal p { font-size: 14.5px; line-height: 1.5; }
.site-footer__legal a { text-decoration: none; }
.site-footer__cookie { padding: 0; background: none; border: 0; font: inherit; color: inherit; cursor: pointer; }
.site-footer__cookie:hover { text-decoration: underline; }

/* Souhlas s cookies – malá kartička vlevo dole (střed patří plovoucí liště) */
.cookie-bar {
	position: fixed;
	left: 16px;
	bottom: 16px;
	z-index: 90;
	width: 300px;
	max-width: calc(100vw - 32px);
	padding: 14px 16px;
	background: var(--cream);
	color: var(--ink);
	border: 1px solid rgba(190, 168, 131, .6);
	box-shadow: 0 8px 28px rgba(26, 24, 20, .12);
}
.cookie-bar[hidden] { display: none; }
.cookie-bar__text { font-size: 12.5px; line-height: 1.45; }
.cookie-bar__text a { color: var(--accent); }
.cookie-bar__buttons { display: flex; gap: 8px; margin-top: 10px; }
.cookie-bar .btn { flex: 1; min-height: 34px; padding-inline: 12px; font-size: 10.5px; letter-spacing: .14em; }
.btn--outline-dark { border-color: rgba(26, 24, 20, .35); color: var(--ink); }
.btn--outline-dark:hover { background: var(--ink); color: var(--cream); }
/* užší okna: plovoucí lišta zasahuje doleva, kartička jde nad ni */
@media (max-width: 1200px) { .cookie-bar { bottom: 90px; } }
@media (max-width: 700px) {
	.cookie-bar { left: 12px; bottom: 82px; width: 250px; padding: 10px 12px; }
	.cookie-bar__text { font-size: 11.5px; line-height: 1.4; }
	.cookie-bar__buttons { margin-top: 8px; }
	.cookie-bar .btn { min-height: 30px; padding-inline: 8px; font-size: 10px; }
}

.site-footer__powered {
	display: flex; align-items: center; gap: calc(40 * var(--u));
	flex: none;
	margin-right: calc(-12 * var(--u));
	color: inherit;
	text-decoration: none;
	font-size: 12.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
}
.site-footer__powered:hover span { text-decoration: underline; }
.site-footer__powered img { width: 100px; height: auto; }

/* ==========================================================================
   Plovoucí lišta „Máte zájem o byt?“
   ========================================================================== */

.float-cta {
	position: fixed;
	z-index: 80;
	left: 50%;
	bottom: max(16px, calc(27 * var(--u)));
	display: flex;
	align-items: center;
	width: 546px;
	height: 55px;
	padding: 0 10px 0 25px;
	background: var(--cream);
	color: var(--ink-2);
	box-shadow: 0 10px 30px rgba(26, 24, 20, .16), 0 1px 3px rgba(26, 24, 20, .08);
	opacity: 0;
	visibility: hidden;
	transform: translate(-50%, 16px);
	transition: opacity .3s ease, transform .3s ease, visibility 0s linear .3s;
}
.float-cta[hidden] { display: none; }
.float-cta.is-visible { opacity: 1; visibility: visible; transform: translate(-50%, 0); transition: opacity .3s ease, transform .3s ease; }
.timeline-pinned .float-cta.is-visible { opacity: 0; visibility: hidden; transform: translate(-50%, 16px); transition: opacity .3s ease, transform .3s ease, visibility 0s linear .3s; } /* časová osa je zastavená */
.float-cta__text { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.float-cta__title { font-size: 14px; font-weight: 500; line-height: 1.25; letter-spacing: .03em; }
.float-cta__sub { font-size: 11px; line-height: 1.3; letter-spacing: .06em; color: var(--muted); white-space: nowrap; }
.float-cta__sub--mobile { display: none; }
.float-cta__dot { display: none; }
.float-cta__contact {
	display: grid; place-items: center;
	height: 35px;
	padding: 0 37px 0 36px;
	border-left: 1px solid rgba(26, 24, 20, .1);
	font-size: 11px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; text-decoration: none;
	transition: color .2s;
}
.float-cta__contact:hover { color: var(--accent); }
.float-cta__phone {
	display: none; place-items: center; flex: none;
	width: 42px; height: 42px;
	margin-right: 8px;
	border: 1px solid rgba(26, 24, 20, .12);
	color: var(--ink-2);
}
.float-cta__phone svg { width: 16px; height: auto; }
.float-cta__btn { min-height: 35px; min-width: 153px; padding: 0 20px 0 28px; gap: 16px; font-size: 11px; letter-spacing: .16em; }
.float-cta__btn:hover { background: #93502f; }
.float-cta__panel { display: contents; }
.float-cta__tab { display: none; }

/* Varianta „na boku“ (Nastavení webu → Plovoucí lišta → Umístění): úzký štítek v pravém okraji
   mimo obsah stránky, panel s tlačítky se vysune po najetí myší, klepnutí nebo z klávesnice.
   Jen na počítači – pod 901 px je okraj stránky užší než štítek, tam zůstává lišta dole. */
@media (min-width: 901px) {
	.float-cta--side {
		left: auto; right: 0; top: 50%; bottom: auto;
		width: auto; height: auto;
		padding: 0;
		background: none;
		box-shadow: none;
		transform: translate(100%, -50%);
	}
	.float-cta--side.is-visible,
	.timeline-pinned .float-cta--side.is-visible { opacity: 1; visibility: visible; transform: translate(0, -50%); transition: opacity .3s ease, transform .3s ease; }

	.float-cta--side .float-cta__tab {
		display: flex; flex-direction: column-reverse; align-items: center; justify-content: center; gap: 16px;
		width: 44px; min-height: 212px;
		padding: 22px 0;
		border: 0;
		background: var(--accent);
		color: #fff;
		box-shadow: -6px 0 22px rgba(26, 24, 20, .14);
		font-family: var(--font-body); font-size: 11px; font-weight: 500; line-height: 1; letter-spacing: .2em; text-transform: uppercase;
		cursor: pointer;
		transition: background-color .2s;
	}
	.float-cta__tab-label { writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; }
	.float-cta__tab-arrow { width: 9px; height: auto; transform: rotate(180deg); transition: transform .35s ease; }

	.float-cta--side .float-cta__panel {
		position: absolute; right: 100%; top: 0; bottom: 0;
		display: flex; flex-direction: column; justify-content: center; gap: 14px;
		width: 272px;
		padding: 0 28px;
		background: var(--cream);
		box-shadow: 0 10px 30px rgba(26, 24, 20, .16), 0 1px 3px rgba(26, 24, 20, .08);
		clip-path: inset(-40px 0 -40px 100%); /* zavřeno: celé schované za štítkem */
		transition: clip-path .35s ease;
	}
	.float-cta--side:hover .float-cta__panel,
	.float-cta--side.is-open .float-cta__panel,
	.float-cta--side:has(:focus-visible) .float-cta__panel { clip-path: inset(-40px 0 -40px -40px); }
	.float-cta--side:hover .float-cta__tab,
	.float-cta--side.is-open .float-cta__tab,
	.float-cta--side:has(:focus-visible) .float-cta__tab { background: #93502f; }
	.float-cta--side:hover .float-cta__tab-arrow,
	.float-cta--side.is-open .float-cta__tab-arrow,
	.float-cta--side:has(:focus-visible) .float-cta__tab-arrow { transform: none; }

	.float-cta--side .float-cta__text { flex: none; }
	.float-cta--side .float-cta__title { display: none; } /* nadpis nese štítek */
	.float-cta--side .float-cta__sub--desktop { font-family: var(--font-head); font-size: 20px; font-weight: 300; line-height: 1.25; letter-spacing: 0; color: var(--ink); white-space: normal; }
	.float-cta--side .float-cta__btn { order: 2; width: 100%; min-width: 0; min-height: 44px; }
	.float-cta--side .float-cta__contact { order: 3; height: auto; padding: 4px 0; border: 0; }
}
@media (prefers-reduced-motion: reduce) { .float-cta, .float-cta.is-visible, .float-cta__panel, .float-cta__tab-arrow { transition: none; } }

/* ==========================================================================
   Podstránka „Vyberte si svůj byt“ (návrh „Background“ z 1. 10. 2026)
   ========================================================================== */

/* hlavička podstránek: linka pod ní, aktivní položka menu, telefon jako tlačítko */
.site-header:not(.site-header--overlay) { border-bottom: 1px solid #ede9e2; }
.site-header:not(.site-header--overlay) .site-nav__list .current-menu-item > a:not([href*="#"]) { color: #a9562f; }
.page-template-page-vyber-bytu .site-nav__list a[href$="/vyber-bytu/"] { color: #a9562f; } /* i s ?dispozice=… v adrese, kdy WordPress položku za aktivní nepovažuje */
.site-header__phone { display: none; }
@media (min-width: 1101px) {
	.site-header__phone {
		display: grid; place-items: center;
		height: 44px;
		padding: 0 20px;
		border: 1.5px solid currentColor;
		font-size: 15px;
		line-height: 1;
		white-space: nowrap;
		text-decoration: none;
		transition: background-color .2s, color .2s, border-color .2s;
	}
	.site-header__phone:hover { background: var(--ink-2); border-color: var(--ink-2); color: var(--cream); }
	.site-header__phone ~ .site-header__icon { display: none; }
	.site-header:not(.site-header--overlay) .site-header__inner { height: calc(88 * var(--u)); }
	.site-header:not(.site-header--overlay) .site-header__logo svg { width: calc(150 * var(--u)); }
	/* menu stejně velké jako na úvodní stránce (6. 10.) */
	.site-header:not(.site-header--overlay) .site-nav__list { gap: calc(40 * var(--u)); }
	.site-header:not(.site-header--overlay) .site-nav__list a { font-size: 18px; }
}
/* návrh podstránky má okraje 120 px (úvodní stránka 80 px); pod 901 px platí společný mobilní okraj */
@media (min-width: 901px) { .page-template-page-vyber-bytu { --gutter: calc(120 * var(--u)); } }
@media (min-width: 901px) { .page-template-page-vyber-bytu .about { --gutter: calc(80 * var(--u)); } } /* Kdo jsme je společné s úvodní stránkou a navazuje na patičku */

.fl-intro, .fl-table, .fl-custom { --fl-accent: #a9562f; --fl-muted: #5b524b; --fl-line: #d1cec8; --fl-soft: #f2ebdf; }

/* prvky jen pro počítač (.fl-d) a jen pro telefon (.fl-m) – telefon má vlastní návrh („x-dc“), viz konec souboru */
@media (min-width: 901px) { .fl-m { display: none !important; } }
@media (max-width: 900px) { .fl-d { display: none !important; } }

/* úvod: vlevo nadpis + čísla z ceníku, vpravo dům */
.fl-intro {
	display: grid;
	grid-template-columns: 1fr calc(705 * var(--u));
	align-items: start;
	column-gap: calc(40 * var(--u));
	padding-top: calc(169 * var(--u));
}
.fl-intro__body { padding: calc(29 * var(--u)) 0 0 calc(7 * var(--u)); }
.fl-intro__title { color: var(--ink); font-weight: 300; font-size: max(2.5rem, calc(72 * var(--u))); line-height: 1; letter-spacing: -.02em; } /* řez jako nadpisy úvodní stránky (.h-xl) – klientka 6. 10.: „najednou máme bold“ */
.fl-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	max-width: calc(440 * var(--u));
	margin-top: calc(34 * var(--u));
	border-top: 1px solid #e0dcd5;
}
.fl-stats__item { display: flex; flex-direction: column; padding-top: calc(15 * var(--u)); }
.fl-stats__item + .fl-stats__item { padding-left: calc(14 * var(--u)); border-left: 1px solid #e0dcd5; }
.fl-stats__num { font-family: var(--font-head); font-weight: 300; font-size: max(26px, calc(36 * var(--u))); line-height: 1.12; color: var(--ink-2); white-space: nowrap; }
.fl-stats__label { font-size: 13px; line-height: 1.4; color: var(--fl-muted); }
.fl-intro__text { margin-top: calc(24 * var(--u)); font-size: 14px; line-height: 1.5; color: var(--fl-muted); }
.fl-intro__visual { position: relative; margin-right: calc(5 * var(--u)); }
.fl-intro__visual img { display: block; width: 100%; height: auto; }

/* výběr podlaží na domě: pruhy podlaží přes obrázek (inc/page-flats.php → EL_HOUSE_MAP) a štítek jako v návrhu */
.fl-house { position: absolute; inset: 0; width: 100%; height: 100%; }
.fl-house__floor { fill: rgba(190, 168, 131, 0); stroke: rgba(255, 252, 244, 0); stroke-width: 1.5; vector-effect: non-scaling-stroke; cursor: pointer; transition: fill .15s, stroke .15s; }
.fl-house__floor:hover { fill: rgba(190, 168, 131, .55); stroke: rgba(255, 252, 244, .9); }
.fl-house__tip {
	position: absolute;
	left: 0;
	top: calc(-66 * var(--u));
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: calc(162 * var(--u));
	min-height: calc(58 * var(--u));
	margin: 0;
	padding: 8px 14px;
	background: var(--sand);
	color: var(--cream);
	white-space: nowrap;
	pointer-events: none;
}
.fl-house__tip[hidden] { display: none; }
.fl-house__tip-title { font-family: var(--font-head); font-weight: 400; font-size: 16px; line-height: 1.3; }
.fl-house__tip-text { font-size: 13px; line-height: 1.3; }

/* ceník */
.fl-table { padding-top: calc(110 * var(--u)); padding-bottom: calc(110 * var(--u)); }

.fl-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px calc(24 * var(--u));
	min-height: 80px;
	padding: 20px calc(24 * var(--u));
	background: var(--fl-soft);
}
.fl-filter { display: flex; align-items: center; gap: 10px; }
.fl-filter__label { font-size: 11px; font-weight: 500; letter-spacing: .2em; line-height: 1; text-transform: uppercase; color: var(--fl-muted); }
.fl-filter__options { display: flex; flex-wrap: wrap; gap: 6px; }
.fl-chip {
	min-width: 52px;
	height: 40px;
	padding: 0 calc(15 * var(--u));
	background: #fbf9f0;
	border: 1px solid #ddd6ca;
	color: var(--ink-2);
	font-size: 13px;
	cursor: pointer;
	transition: background-color .2s, color .2s, border-color .2s;
}
.fl-chip:hover { border-color: var(--sand); }
.fl-chip.is-active { background: var(--sand); border-color: var(--sand); color: #fff; }

.fl-select { position: relative; display: inline-flex; }
.fl-select select {
	height: 40px;
	padding: 0 calc(20 * var(--u));
	background: #fbf9f0;
	border: 1px solid #ddd6ca;
	border-radius: 0;
	font: inherit;
	font-size: 13px;
	color: var(--ink-2);
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transition: border-color .2s;
}
.fl-select select:hover { border-color: var(--sand); }
.fl-select--small select { height: 36px; padding: 0 20px; background: transparent; border-color: var(--fl-line); }

/* Počítač: vlastní nabídka místo systémové (main.js). Nativní výběr zůstává ve stránce jako zdroj hodnoty a drží šířku
   (nejdelší volba), tlačítko leží přes něj – rozměry pruhu filtrů se tím nemění. */
.fl-select.is-custom select { visibility: hidden; }
.fl-select__btn {
	position: absolute; inset: 0; width: 100%;
	padding: 0 calc(20 * var(--u));
	background: #fbf9f0;
	border: 1px solid #ddd6ca;
	border-radius: 0;
	font: inherit;
	font-size: 13px;
	text-align: left;
	color: var(--ink-2);
	white-space: nowrap;
	cursor: pointer;
	transition: border-color .2s;
}
.fl-select__btn:hover, .fl-select__btn[aria-expanded="true"] { border-color: var(--sand); }
.fl-select--small .fl-select__btn { padding: 0 20px; background: transparent; border-color: var(--fl-line); }
.fl-select__list {
	position: absolute; z-index: 30; top: calc(100% + 6px); left: 0;
	min-width: 100%; max-height: 344px; overflow-y: auto;
	margin: 0; padding: 6px 0;
	list-style: none;
	background: var(--cream);
	border: 1px solid #ddd6ca;
	box-shadow: 0 14px 32px rgba(30, 27, 24, .12);
}
.fl-select--small .fl-select__list { left: auto; right: 0; }
.fl-select__option {
	display: flex; align-items: center; justify-content: space-between; gap: 28px;
	padding: 10px 18px;
	font-size: 13px; font-weight: 400; line-height: 1.25; letter-spacing: 0; text-transform: none;
	color: var(--ink-2);
	white-space: nowrap;
	cursor: pointer;
	outline: 0;
}
.fl-select__option:hover, .fl-select__option:focus { background: var(--fl-soft); }
.fl-select__option[aria-selected="true"] { color: var(--fl-accent); font-weight: 500; }
.fl-select__option[aria-selected="true"]::after { content: ""; flex: none; width: 5px; height: 9px; margin-top: -3px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); }

.fl-check { position: relative; display: inline-flex; align-items: center; gap: 10px; margin-left: auto; font-size: 14px; line-height: 1; color: var(--ink-2); cursor: pointer; }
.fl-check input { position: absolute; left: 0; top: 50%; width: 18px; height: 18px; margin: -9px 0 0; opacity: 0; cursor: pointer; }
.fl-check__box { position: relative; flex: none; width: 18px; height: 18px; border-radius: 2px; background: var(--fl-accent); }
.fl-check__box::after { content: ""; position: absolute; left: 6.5px; top: 3px; width: 5px; height: 9px; border: solid #fff; border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); opacity: 0; transition: opacity .15s; }
.fl-check input:checked + .fl-check__box::after { opacity: 1; }
.fl-check input:focus-visible + .fl-check__box { outline: 2px solid var(--accent); outline-offset: 3px; }

.fl-meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; min-height: 36px; margin-top: calc(24 * var(--u)); }
.fl-count { font-size: 14px; color: var(--fl-muted); }
.fl-sort { display: inline-flex; align-items: center; gap: 12px; font-size: 14px; color: var(--fl-muted); }

.fl-scroll { position: relative; margin-top: calc(16 * var(--u)); overflow-x: auto; } /* relative: skryté popisky pro čtečky jinak z posuvné tabulky „vytečou“ a stránka dostane vodorovný posuvník */
.fl-list { width: 100%; min-width: 980px; border-collapse: collapse; table-layout: fixed; }
/* sloupce (obsah 1200 px): 110 · 120 · 110 · 130 · 210 · 250 · 150 · zbytek – návrh měl 100 · 100 · 100 · 110 · 180 · 270 · 150 · 110 · zbytek,
   sloupec „Cena za m²“ (150) je od 6. 10. pryč a jeho šířka je rozdělená mezi ostatní */
@media (min-width: 901px) {
	.fl-list th:nth-child(1), .fl-list th:nth-child(3) { width: 9.167%; }
	.fl-list th:nth-child(2) { width: 10%; }
	.fl-list th:nth-child(4) { width: 10.833%; }
	.fl-list th:nth-child(5) { width: 17.5%; }
	.fl-list th:nth-child(6) { width: 20.833%; }
	.fl-list th:nth-child(7) { width: 12.5%; }
	/* proklikávací řádek: klik kamkoli = odkaz v posledním sloupci (main.js); prodaný byt odkaz nemá */
	.fl-list tbody tr:not(.is-prodano) { cursor: pointer; }
	.fl-list tbody tr:has(.fl-list__detail a:focus-visible) { background: var(--fl-soft); }
}
.fl-list thead th {
	height: 45px;
	padding: 0;
	border-top: 1px solid var(--fl-line);
	border-bottom: 1px solid var(--fl-line);
	text-align: left;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--fl-muted);
}
.fl-list td {
	height: 61px;
	padding: 0;
	border-bottom: 1px solid rgba(26, 24, 20, .08);
	font-size: 16px;
	color: var(--ink-2);
	white-space: nowrap;
}
.fl-list__unit, .fl-list__price { font-weight: 500; }
.fl-list__soon { font-weight: 400; font-size: 14px; color: var(--fl-muted); } /* „Připravujeme“ místo neveřejné ceny */
.fl-list tr.is-prodano td { color: #898077; font-weight: 400; }
.fl-list tbody tr { transition: background-color .15s; }
.fl-list tbody tr:not(.is-prodano):hover { background: var(--fl-soft); }
.fl-list tr[hidden] { display: none; }
.fl-list__detail { text-align: right; }
.fl-list__detail a { display: inline-flex; align-items: center; justify-content: flex-end; gap: 6px; min-width: 44px; min-height: 44px; font-size: 14px; color: var(--fl-accent); text-decoration: none; }
.fl-list__detail-label { opacity: 0; transition: opacity .15s; }
.fl-list tbody tr:hover .fl-list__detail-label,
.fl-list__detail a:focus-visible .fl-list__detail-label { opacity: 1; }
.fl-list__arrow { flex: none; width: 12px; height: auto; }

.fl-badge { display: inline-block; padding: 0 10px; border-radius: 2px; line-height: 26px; font-size: 12.5px; font-weight: 500; }
.fl-badge--volny { background: #e2ebdd; color: #2f5936; }
.fl-badge--rezervovano { background: #f4e1d4; color: #893f1f; }
.fl-badge--prodano { background: #ebe8e1; color: var(--fl-muted); }

.fl-empty { padding: 32px 0; font-size: 15px; color: var(--fl-muted); }

.fl-foot { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px 24px; min-height: 52px; margin-top: calc(55 * var(--u)); }
.fl-note { font-size: 14px; color: var(--fl-muted); }
.fl-more { grid-column: 2; font-size: 12px; }
.fl-more[hidden] { display: none; }
.fl-page { grid-column: 3; justify-self: end; font-size: 14px; color: var(--fl-muted); }
.btn--line { min-height: 52px; padding: 0 32px; border: 1.5px solid var(--ink-2); background: transparent; color: var(--ink-2); }
.btn--line:hover { background: var(--ink-2); color: var(--cream); }

/* dokumenty – karty pod tabulkou */
.fl-docs { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: calc(16 * var(--u)); margin-top: calc(46 * var(--u)); } /* karty vždy vyplní celou šířku (2 = poloviny, 3 = třetiny jako v návrhu) */
.fl-doc {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	height: 100%;
	min-height: max(84px, calc(95 * var(--u)));
	padding: 16px 26px 16px 25px;
	border: 1px solid #dbd7d1;
	color: var(--ink-2);
	text-decoration: none;
	transition: border-color .2s, background-color .2s;
}
.fl-doc:hover { border-color: var(--fl-accent); }
.fl-doc__text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.fl-doc__title { font-family: var(--font-head); font-weight: 400; font-size: max(18px, calc(22 * var(--u))); line-height: 1.2; }
.fl-doc__meta { font-size: 14px; line-height: 1.3; color: var(--fl-muted); }
.fl-doc__icon { flex: none; width: 16px; height: auto; color: var(--fl-accent); }
.fl-doc.is-disabled { cursor: default; }
.fl-doc.is-disabled .fl-doc__title, .fl-doc.is-disabled .fl-doc__icon { opacity: .45; }
.fl-doc.is-disabled:hover { border-color: #dbd7d1; }

/* Byty na míru: vlevo fotky, vpravo nadpis a kroky, ikona v pravém okraji */
.fl-custom {
	position: relative;
	display: grid;
	grid-template-columns: 1fr calc(551 * var(--u));
	align-items: center;
	column-gap: calc(52 * var(--u));
	padding-top: calc(110 * var(--u));
	padding-right: calc(var(--gutter) + 97 * var(--u));
	padding-bottom: calc(40 * var(--u));
}
.fl-custom__photos { display: grid; row-gap: calc(24 * var(--u)); }
.fl-custom__photo img { display: block; width: 100%; aspect-ratio: 651 / 197; height: auto; object-fit: cover; }
.fl-custom__body { position: relative; grid-column: 2; }
.fl-custom__icon { position: absolute; right: calc(-135 * var(--u)); top: calc(-78 * var(--u)); width: calc(97 * var(--u)); height: auto; color: var(--accent); }
.fl-custom__title { color: var(--ink); font-weight: 300; font-size: max(2.25rem, calc(60 * var(--u))); line-height: 1.03; letter-spacing: -.015em; }
.fl-custom__lead { margin-top: calc(24 * var(--u)); font-family: var(--font-head); font-weight: 300; font-size: max(18px, calc(26 * var(--u))); line-height: 1.2; }
.fl-steps { margin: calc(32 * var(--u)) 0 0; padding: 0; border-top: 1px solid var(--fl-line); list-style: none; }
.fl-step { display: grid; grid-template-columns: calc(52 * var(--u)) 1fr; align-items: baseline; column-gap: 4px; padding: calc(20 * var(--u)) 0; border-bottom: 1px solid var(--fl-line); }
.fl-step__num { font-family: var(--font-head); font-size: 20px; color: var(--accent); } /* návrh: čísla kroků základní terakotou jako „na míru“ v nadpisu, tmavší --fl-accent jen šipky a ikony */
.fl-step__title { font-family: var(--font-head); font-weight: 400; font-size: max(19px, calc(23 * var(--u))); line-height: 1.2; color: var(--ink-2); }
.fl-step__text { margin-top: 4px; font-size: 15px; line-height: 1.4; color: var(--fl-muted); }

.fl-video { position: relative; height: max(460px, calc(755 * var(--u))); overflow: hidden; color: var(--cream); }
.fl-video__media, .fl-video__bg { position: absolute; inset: 0; width: 100%; height: 100%; }
.fl-video__bg { object-fit: cover; }
.fl-video__content { position: relative; padding-top: calc(318 * var(--u)); }
.fl-video__title {
	font-family: var(--font-head);
	font-weight: 300;
	font-size: calc(90 * var(--u));
	line-height: 1.2;
	letter-spacing: .02em;
	text-transform: uppercase;
	white-space: nowrap;
}
.fl-video__text {
	margin-top: calc(40 * var(--u));
	font-size: max(20px, calc(32 * var(--u)));
	font-weight: 300;
	line-height: 1.45;
	letter-spacing: -.03em;
}

/* ==========================================================================
   Obecná stránka
   ========================================================================== */

.page__inner { max-width: 820px; margin: 0 auto; padding: calc(80 * var(--u)) 24px 120px; }
.page__title { font-family: var(--font-head); font-weight: 300; font-size: max(2.25rem, calc(56 * var(--u))); line-height: 1.1; margin-bottom: 24px; color: var(--ink); }
.page__content { font-size: 16px; line-height: 1.7; color: var(--ink); }
.page__content > * + * { margin-top: 1em; }
.page__content h2 { margin-top: 2.4em; font-family: var(--font-head); font-weight: 300; font-size: 1.75rem; line-height: 1.2; }
.page__content h3 { margin-top: 1.8em; font-family: var(--font-head); font-weight: 400; font-size: 1.2rem; line-height: 1.3; }
.page__content h2 + *, .page__content h3 + * { margin-top: .6em; }
.page__content ul { padding-left: 1.2em; list-style: disc; }
.page__content li + li { margin-top: .4em; }
.page__content li::marker { color: var(--accent); }
.page__content a { color: var(--accent); text-underline-offset: 2px; }
.page__content strong { font-weight: 600; }
.legal-updated { font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.page__content .legal-summary { margin-block: 32px 8px; padding: 24px 28px; background: var(--input); border-left: 3px solid var(--accent); }
.legal-summary > * + * { margin-top: .8em; }
.page__content .wp-block-table { margin-inline: 0; overflow-x: auto; }
.page__content table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.page__content .wp-block-table thead, .page__content .wp-block-table th, .page__content .wp-block-table td { border: 0; }
.page__content .wp-block-table th { padding: 10px 12px 10px 0; border-bottom: 2px solid rgba(26, 24, 20, .12); text-align: left; font-size: 10.5px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--accent); }
.page__content .wp-block-table td { padding: 12px 12px 12px 0; border-bottom: 1px solid rgba(26, 24, 20, .08); vertical-align: top; }

/* ==========================================================================
   Tablet a mobil – stejný obsah, sekce pod sebou
   ========================================================================== */

@media (max-width: 1100px) {
	.site-header__burger { display: block; color: inherit; z-index: 2; }
	.menu-open .site-header { color: var(--cream); }
	.site-nav {
		position: fixed;
		inset: 0;
		z-index: -1;
		display: flex;
		align-items: center;
		justify-content: center;
		background: var(--ink);
		opacity: 0;
		visibility: hidden;
		transition: opacity .25s, visibility .25s;
	}
	.menu-open .site-nav { opacity: 1; visibility: visible; }
	.menu-open { overflow: hidden; }
	.site-nav__list { flex-direction: column; align-items: center; gap: 28px; }
	.site-nav__list a { font-family: var(--font-head); font-weight: 300; font-size: 28px; }
}

@media (max-width: 900px) {
	:root { --u: calc(900px / 1440); --gutter: 24px; }

	.hero { height: auto; min-height: 100svh; }
	.hero__content { padding-bottom: 48px; padding-top: 140px; }
	.hero__row { flex-direction: column; align-items: flex-start; gap: 32px; }
	.hero__title { margin-bottom: 20px; font-size: clamp(2.75rem, 12vw, 4.5rem); }
	.hero__buttons { flex-wrap: wrap; }
	.hero__lead br, .lead__text br, .faq__text br, .flats__text br { display: none; }

	.usp { padding-block: 48px 40px; }
	.usp__list { grid-template-columns: 1fr 1fr; gap: 28px 16px; padding-left: 0; }
	.usp__num { font-size: 2.25rem; }
	.experience { grid-template-columns: 1fr; row-gap: 32px; }
	.experience__photos { order: 2; row-gap: 12px; margin-left: 0; }
	.experience__title, .experience__list { margin-left: 0; margin-right: 0; }
	.experience__list { margin-top: 28px; }
	.experience__item { min-height: 0; padding: 22px 56px 22px 0; }
	.experience__icon { top: 22px; }
	.slow { grid-template-columns: 1fr; row-gap: 32px; padding-block: 56px; }
	.slow__btn { margin-top: 28px; }
	.timeline { grid-template-columns: 1fr; row-gap: 32px; padding-block: 56px; }
	.timeline__icon { display: none; }
	.timeline__lead br { display: none; }
	.timeline__list { grid-template-columns: 1fr; row-gap: 28px; margin-top: 8px; padding-left: 40px; }
	.timeline__list::before { left: 11px; right: auto; top: 0; bottom: 0; width: 1px; height: auto; background: rgba(190, 168, 131, .6); }
	.timeline__dot { position: absolute; left: -40px; top: 2px; }
	.timeline.is-building .timeline__list::after { left: 11px; top: 0; width: 1px; height: var(--fill, 0px); }
	.timeline__date { margin-top: 0; }
	.slow__title { margin-top: 24px; }

	.location, .lead, .faq__inner, .about__inner, .flats { grid-template-columns: 1fr; row-gap: 40px; }
	.location { padding-block: 48px; }
	.location__map { margin: 0; }
	.location__map img { width: 100%; }
	.location__body { padding-top: 0; }
	.location__leaf { top: 0; }
	.location__stats { margin-top: 32px; }
	.location__btn { margin-top: 32px; }
	.location__stat { min-height: 0; padding: 28px 12px 20px; }
	.location__stat:first-child { padding-left: 0; }
	.location__num { font-size: 2.25rem; }

	.district__card-wrap { height: 60px; }
	.district__card { right: 24px; }
	.district__media { height: 70svh; min-height: 420px; }
	.district__title { top: 50%; transform: translateY(-50%); font-size: 9vw; white-space: normal; padding-inline: 24px; }

	.flats { padding-block: 56px 40px; }
	.flats__text { margin-top: 20px; }
	.flats__types { margin: 20px 0 28px; }
	.flats__type { grid-template-columns: 66px 1fr 1.6fr auto; column-gap: 8px; min-height: 52px; padding-inline: 4px; }
	.flats__type-meta { font-size: clamp(12px, 3.9vw, 14px); } /* 14 px od šířky 360 px, na užších telefonech se zmenší, ať se cena nezalomí */
	.flats__image img { height: auto; }
	.flats__btn { margin-top: 0; }

	.gallery { padding-block: 24px 56px; }
	.gallery--zazitky { padding-top: 0; }
	.gallery__title { margin-bottom: 20px; }
	.gallery__grid, .gallery--6 .gallery__grid { grid-template-columns: 1fr 1fr; grid-template-rows: none; gap: 12px; }
	/* vizualizace: řady pro telefon (fotka na šířku sama, fotky na výšku po dvou) */
	.gallery--fit .gallery__grid { --gap: 12px; }
	.gallery--fit .gallery__item { width: calc((100% - (var(--mn) - 1) * var(--gap)) * var(--mw)); max-height: none; }
	.gallery__item { aspect-ratio: 4 / 3; }
	.gallery__item--1, .gallery--6 .gallery__item--1, .gallery--6 .gallery__item--6 { grid-column: 1 / -1; }
	.gallery__item--2, .gallery__item--3, .gallery__item--4, .gallery__item--5,
	.gallery--6 .gallery__item--2, .gallery--6 .gallery__item--3, .gallery--6 .gallery__item--4, .gallery--6 .gallery__item--5 { grid-column: auto; }
	.gallery__caption { left: 14px; right: 14px; bottom: 14px; font-size: 1.125rem; }

	.lead { padding-block: 56px; }
	.lead__form { max-width: none; column-gap: 16px; row-gap: 22px; }
	.contact-list { margin-top: 32px; padding-top: 0; }
	.chips { grid-template-columns: repeat(2, 1fr); gap: 10px; }

	.faq__inner { padding-block: 56px; min-height: 0; }
	.faq__text { margin-top: 24px; }

	.about__inner { padding-block: 56px; row-gap: 56px; }
	.about__text { margin-top: 32px; }
	.projects { margin-top: 32px; }


	.site-footer__main { grid-template-columns: 1fr; row-gap: 40px; padding: 48px 24px 32px; }
	.site-footer__legal { padding-inline: 24px; }
	.site-footer__legal-in { flex-direction: column; align-items: flex-start; padding-block: 24px 96px; }
	.site-footer__powered { margin-right: 0; gap: 20px; }
}

@media (max-width: 700px) {
	.float-cta {
		left: 12px; right: 12px; bottom: 12px;
		width: auto; height: 58px;
		padding: 0 8px 0 18px;
		transform: translateY(16px);
	}
	.float-cta.is-visible { transform: none; }
	.timeline-pinned .float-cta.is-visible { transform: translateY(16px); }
	.float-cta__contact, .float-cta__sub--desktop { display: none; } /* telefon v liště ne – na úzkém displeji bylo moc namačkané */
	.float-cta__title { white-space: nowrap; }
	.float-cta__sub--mobile { display: block; }
	.float-cta__btn { min-height: 42px; min-width: 0; padding: 0 16px 0 20px; }
}

/* ==========================================================================
   Mobil podle návrhu („mobilní verze“ – Frame 98, šířka 396 px)
   Pořadí uvnitř sekcí se na mobilu mění přes display: contents + order.
   ========================================================================== */

@media (max-width: 1100px) {
	/* otevřené menu: položky vlevo s linkami, dole ceník + kontakty */
	.site-nav {
		flex-direction: column;
		align-items: stretch;
		justify-content: space-between;
		gap: 32px;
		padding: 110px var(--gutter) 24px;
		overflow-y: auto;
	}
	.site-nav__list { align-items: stretch; gap: 0; }
	.site-nav__list a {
		display: block;
		padding: 13px 0 12px;
		border-bottom: 1px solid rgba(255, 252, 244, .12);
		font-size: 28px;
		line-height: 1.15;
		color: var(--cream);
	}
	.site-nav__cta { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
	.site-nav__cta .btn { grid-column: 1 / -1; min-height: 52px; }
	.site-nav__contact {
		display: grid; place-items: center;
		min-height: 48px;
		padding: 0 8px;
		border: 1px solid rgba(255, 252, 244, .35);
		color: var(--cream);
		font-size: 14px;
		text-decoration: none;
		text-align: center;
	}
	.site-nav__contact:hover { border-color: var(--cream); }
}

@media (max-width: 900px) {
	/* hlavička: logo, telefon, menu */
	.site-header__inner { height: 88px; }
	.site-header__logo svg { width: 110px; }
	.site-header__icon--mail { display: none; }

	/* hero – bez tlačítek, ty na mobilu nahrazuje plovoucí lišta */
	.hero__content { padding-bottom: 104px; }
	.hero__title { max-width: 7.4em; font-size: clamp(2.25rem, 10.4vw, 3.25rem); line-height: 1.02; margin-bottom: 14px; } /* zalomení za čárkou jako v návrhu */
	.hero__lead { font-size: 15px; line-height: 1.45; }
	.hero__buttons { display: none; }

	/* čísla 2 × 2 */
	.usp { padding-block: 12px 36px; }
	.usp__list { grid-template-columns: 1fr 1fr; gap: 0 16px; }
	.usp__item { gap: 6px; padding: 22px 0 28px; border-top: 1px solid #e6dccb; }
	.usp__num { font-size: 32px; }
	.usp__label { font-size: 13px; color: var(--muted); }

	/* Zažij: nadpis → fotky → body */
	.experience { display: flex; flex-direction: column; gap: 0; }
	.experience__body { display: contents; }
	.experience__title { order: 1; margin: 0 0 20px; font-size: 36px; line-height: 1.05; }
	.experience__photos { order: 2; row-gap: 36px; margin: 0; }
	.experience__photo img { aspect-ratio: 350 / 70; }
	.experience__list { order: 3; margin: 36px 0 0; }
	.experience__item { padding: 26px 56px 22px 0; }
	.experience__name { font-size: 19px; }
	.experience__text { margin-top: 8px; font-size: 15px; color: #5f5a52; }
	.experience__icon { top: 26px; width: 32px; height: 34px; min-width: 0; }

	/* Slow living: ikona → nadpis → text → fotka → tlačítko */
	.slow { display: flex; flex-direction: column; align-items: stretch; gap: 0; padding-block: 48px 56px; }
	.slow__text { display: contents; }
	.slow__icon { order: 1; width: 42px; min-width: 0; margin: 0; }
	.slow__title { order: 2; margin-top: 18px; font-size: 44px; }
	.slow__lead { order: 3; margin-top: 12px; font-size: 20px; line-height: 1.2; }
	.slow__photo { order: 4; margin-top: 24px; }
	.slow__photo img { aspect-ratio: 350 / 440; }
	.slow__btn { order: 5; width: 100%; margin-top: 20px; }

	/* galerie: 1 velká + 2 × 2 */
	.gallery__title { margin-bottom: 20px; font-size: 30px; line-height: 1.1; }
	.gallery__grid, .gallery--6 .gallery__grid { gap: 10px; }
	.gallery--fit .gallery__grid { --gap: 10px; }
	.gallery__item { aspect-ratio: 170 / 210; }
	.gallery__item--1, .gallery--6 .gallery__item--6 { aspect-ratio: 350 / 220; }

	/* Lokalita: nadpis → mapa → časy ve 3 sloupcích → tlačítko */
	.location { position: relative; display: flex; flex-direction: column; gap: 0; padding-block: 48px 72px; }
	.location__body { display: contents; }
	.location__title { order: 1; padding-right: 52px; font-size: 30px; }
	.location__leaf { top: 86px; right: var(--gutter); width: 40px; min-width: 0; }
	.location__map { order: 2; margin-top: 20px; }
	.location__stats { order: 3; grid-template-columns: repeat(3, 1fr); margin: 20px 0 0; border-bottom: 1px solid #e6dccb; border-top-color: #e6dccb; }
	.location__stat { gap: 6px; padding: 20px 8px 22px 0; }
	.location__stat + .location__stat { border-left: 0; }
	.location__num { font-size: 26px; }
	.location__label { font-size: 12px; line-height: 1.35; color: #5f5a52; }
	.location__btn { order: 4; width: 100%; margin-top: 24px; }

	/* Praha X.: karta přes horní okraj fotky, nadpis vlevo dole na dva řádky */
	.district__card-wrap { height: 36px; }
	.district__card { left: auto; right: var(--gutter); width: 188px; min-width: 0; height: 80px; min-height: 0; padding: 0 18px; }
	.district__card-small { font-size: 12px; }
	.district__card-title { font-size: 20px; }
	.district__media { height: 160vw; max-height: 760px; min-height: 480px; }
	.district__title { top: auto; bottom: 64px; left: var(--gutter); right: var(--gutter); transform: none; padding: 0; text-align: left; font-size: 11.5vw; line-height: 1.05; letter-spacing: .02em; }
	.district__dash { display: block; height: 0; overflow: hidden; }

	/* Který bude Váš: nadpis → text → tabulka → fotka → tlačítko */
	.flats { display: flex; flex-direction: column; gap: 0; padding-block: 48px 40px; }
	.flats__body { display: contents; }
	.flats__title { order: 1; font-size: 36px; }
	.flats__title br { display: none; }
	.flats__text { order: 2; margin-top: 8px; font-size: 16px; }
	.flats__types { order: 3; margin: 18px 0 20px; }
	.flats__type { min-height: 44px; }
	.flats__type-name { font-size: 18px; }
	.flats__image { order: 4; margin: 0; }
	.flats__image img { aspect-ratio: 350 / 240; }
	.flats__btn { order: 5; width: 100%; margin-top: 20px; }

	/* Časová osa: nadpis s ikonou, milníky 2 × 2 */
	.timeline { row-gap: 20px; padding-block: 40px 48px; }
	.timeline__text { display: grid; grid-template-columns: 1fr auto; align-items: center; column-gap: 16px; }
	.timeline__title { margin: 0; font-size: 44px; }
	.timeline__icon { display: block; grid-column: 2; grid-row: 1; width: 50px; min-width: 0; margin: 0; }
	.timeline__lead { grid-column: 1 / -1; margin-top: 8px; font-size: 16px; }
	.timeline__list { grid-template-columns: 1fr 1fr; row-gap: 28px; margin-top: 12px; padding-left: 0; }
	.timeline__list::before, .timeline.is-building .timeline__list::after { display: none; }
	.timeline__item { padding-right: 0; }
	.timeline__item::before { content: ""; position: absolute; z-index: 0; left: 11px; right: 0; top: 10.5px; height: 2px; background: rgba(190, 168, 131, .6); }
	.timeline__item:last-child::before { display: none; } /* osa končí posledním bodem */
	.timeline.is-building .timeline__item.is-reached::before { background: var(--accent); }
	.timeline__dot { position: relative; z-index: 1; left: auto; top: auto; }
	.timeline__date { margin-top: 16px; font-size: 24px; letter-spacing: .02em; }
	.timeline__label { margin-top: 6px; font-size: 14px; }
	.timeline__arrow { display: none; }

	/* Formulář: nadpis → text → pole pod sebou → kontakty na střed */
	.lead { display: flex; flex-direction: column; gap: 0; padding-block: 48px 40px; }
	.lead__intro { display: contents; }
	.lead__title { order: 1; font-size: 36px; }
	.lead__text { order: 2; margin-top: 16px; font-size: 15px; line-height: 1.6; }
	.lead__form, .lead__done { order: 3; margin-top: 28px; }
	.lead__form { grid-template-columns: 1fr; }
	.consent { justify-content: flex-start; align-items: flex-start; }
	.lead__submit { width: 100%; }
	.contact-list { order: 4; justify-items: center; margin-top: 32px; padding: 24px 0 0; border-top: 1px solid #e6dccb; text-align: center; }
	.contact-list li { justify-content: center; }

	/* FAQ: nadpis → text → otázky → tlačítko */
	.faq__inner { display: flex; flex-direction: column; gap: 0; padding-block: 48px 40px; }
	.faq__intro { display: contents; }
	.faq__title { order: 1; font-size: 36px; }
	.faq__text { order: 2; margin-top: 16px; font-size: 15px; line-height: 1.6; max-width: none; }
	.faq__list { order: 3; margin-top: 24px; max-width: none; }
	.faq__intro .btn { order: 4; width: 100%; margin-top: 28px; }
	.faq__q { min-height: 60px; font-size: 17px; }

	/* Kdo jsme + Realizace */
	.about__title { font-size: 36px; }
	.about__text { font-size: 15px; }
	.about__logo { margin-top: 22px; }
	.about__logo + .about__text { margin-top: 24px; }

	/* Patička: kontakty ve dvou sloupcích, copyright a powered by na střed */
	.site-footer__main { grid-template-columns: 1fr 1fr; column-gap: 16px; row-gap: 0; padding: 40px var(--gutter) 0; }
	.site-footer__brand { grid-column: 1 / -1; padding-bottom: 28px; border-bottom: 1px solid currentColor; }
	.site-footer__logo svg { width: 150px; }
	.site-footer__tagline { font-size: 14px; }
	.site-footer__social { width: max-content; margin-left: 0; border: 1px solid currentColor; }
	.site-footer__social a { width: 44px; height: 44px; }
	.site-footer__social svg { width: 17px; height: 17px; }
	.site-footer__col:nth-child(2) { display: contents; }
	.site-footer__col:nth-child(2) .site-footer__heading { grid-column: 1; grid-row: 2; margin-top: 24px; }
	.site-footer__col:nth-child(2) .site-footer__text { grid-column: 1; grid-row: 3; }
	.site-footer__col:nth-child(2) .site-footer__links { grid-column: 2; grid-row: 2 / 4; margin-top: 24px; }
	.site-footer__col:nth-child(3) { grid-column: 1 / -1; grid-row: 4; margin-top: 24px; }
	.site-footer__heading { margin-bottom: 10px; font-size: 12px; font-weight: 500; letter-spacing: .14em; }
	.site-footer__text { font-size: 14px; line-height: 1.7; }
	.site-footer__links a { font-size: 11px; letter-spacing: .12em; line-height: 2.4; white-space: nowrap; }
	.site-footer__legal-in { align-items: center; margin-top: 24px; padding-block: 24px 40px; text-align: center; }
	.site-footer__legal p { font-size: 13px; }
	.site-footer__powered { flex-direction: column-reverse; gap: 6px; font-size: 11px; }
	.site-footer__powered img { width: 72px; }
}

@media (max-width: 700px) {
	/* plovoucí lišta: tečka před nadpisem (návrh „Floating CTA · mobil v kontextu“) */
	.float-cta__dot { display: block; flex: none; width: 8px; height: 8px; margin-right: 10px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 4px rgba(185, 100, 63, .15); }
}

/* ==========================================================================
   Podstránka „Vyberte si svůj byt“ – telefon (mobilní návrh „x-dc“ z 1. 10. 2026, šířka 390 px)
   Tabulka jen s hlavními sloupci a rozbalovacím detailem bytu; nad ní přilepená lišta „Filtry“
   a filtry v panelu přes obrazovku (návrh „filtry-mobil“ z 6. 10. 2026).
   ========================================================================== */

@media (max-width: 900px) {
	.page-template-page-vyber-bytu { --gutter: 20px; }
	.site-header:not(.site-header--overlay) .site-header__inner { height: 64px; }
	.fl-intro, .fl-table, .fl-custom { --fl-accent: var(--accent); --fl-line: #e0dcd5; }

	/* úvod: nadpis a dům, bez čísel a bez výběru podlaží (pruhy jsou na prst moc úzké) */
	.fl-intro { display: block; padding-top: 31px; }
	.fl-intro__body { padding: 0; }
	.fl-intro__title { font-size: 46px; line-height: 1; }
	.fl-stats, .fl-intro__text, .fl-house, .fl-house__tip { display: none; }
	.fl-intro__visual { margin: 44px 0 0; }

	/* ceník – lišta nad tabulkou a filtry v panelu přes obrazovku (návrh „filtry-mobil“ z 6. 10. 2026);
	   --fl-* níž jsou barvy toho návrhu, které téma v proměnných nemá */
	.fl-table { padding-block: 20px 24px; --fl-ink: #1e1b18; --fl-paper: #fcf9f1; --fl-edge: #ddd6ca; --fl-dim: #5b534b; --fl-cta: #a9562f; --fl-hair: rgba(30, 27, 24, .1); }

	/* lišta: tlačítko „Filtry (n)“ + rychlé štítky dispozic (štítky se posouvají do strany, tlačítko zůstává vidět),
	   pod nimi počet bytů a řazení. Při scrollu tabulkou (.fl-results) drží nahoře pod přilepenou hlavičkou stránky (--header-stuck). */
	.fl-bar {
		position: sticky; top: var(--header-stuck); z-index: 5; /* pod hlavičkou a jejím menu (20) */
		display: flex; flex-direction: column; gap: 12px;
		margin-inline: calc(-1 * var(--gutter));
		padding: 12px 0 14px;
		background: var(--fl-paper);
		border-block: 1px solid var(--fl-hair);
		box-shadow: 0 6px 16px rgba(30, 27, 24, .06);
	}
	@media (min-width: 601px) { .fl-bar { top: var(--wp-admin--admin-bar--height, 0px); } } /* přihlášený redaktor: pod lištou WordPressu (do 600 px se lišta WP nelepí) */
	.fl-bar__row { display: flex; gap: 8px; padding-left: var(--gutter); }
	.fl-bar__row[hidden] { display: none; }
	.fl-bar__open { flex: none; display: flex; align-items: center; gap: 8px; height: 44px; padding: 0 14px; background: var(--fl-ink); border: 0; font-size: 14px; line-height: 1; color: var(--cream); white-space: nowrap; cursor: pointer; }
	.fl-bar__open svg { flex: none; width: 16px; height: 16px; }
	.fl-bar__chips { flex: 1; min-width: 0; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; }
	.fl-bar__chips::-webkit-scrollbar { display: none; }
	.fl-bar__chips .fl-chip:focus-visible { outline-offset: -3px; } /* obrys dovnitř – vnější by posuvný pruh ořízl */
	.fl-bar__chips::after { content: ""; flex: none; width: calc(var(--gutter) - 8px); } /* pravý okraj i na konci posunu */
	.fl-meta { flex-wrap: nowrap; gap: 16px; min-height: 0; margin: 0; padding: 0 var(--gutter); }
	.fl-count { font-size: 13px; line-height: 17px; color: var(--fl-dim); }
	/* záporný okraj = plocha na prst 44 px, aniž by lišta narostla */
	.fl-bar__sort { flex: none; margin: -13px 0 -14px; padding: 13px 0 14px 16px; background: none; border: 0; font-size: 13px; line-height: 17px; color: var(--fl-ink); white-space: nowrap; cursor: pointer; }

	/* štítky dispozic: v panelu aktivní pískový (filtry.svg), v liště aktivní světlý s tmavým rámečkem */
	.fl-chip { min-width: 0; height: 44px; padding: 0 4px; background: var(--fl-paper); border-color: var(--fl-edge); color: var(--fl-ink); font-size: 14px; white-space: nowrap; }
	.fl-chip.is-active { background: var(--sand); border-color: var(--sand); color: var(--cream); }
	.fl-bar .fl-chip { flex: none; padding: 0 16px; }
	.fl-bar .fl-chip.is-active { background: #f3ecdf; border-color: var(--fl-ink); color: var(--fl-ink); }
	@media (hover: none) { .fl-chip:not(.is-active):hover { border-color: var(--fl-edge); } } /* dotyk: po odznačení by štítku zůstal pískový rámeček z :hover */

	/* panel filtrů: ztmavená stránka, list od 64 px shora až dolů (hlavička – filtry – patička s tlačítky).
	   Otevírá main.js třídou .is-open; html.filters-open drží stránku pod panelem na místě. */
	.filters-open { overflow: hidden; }
	.fl-panel { display: none; position: fixed; inset: 0; z-index: 95; background: rgba(30, 27, 24, .55); } /* nad hlavičkou (20) i lištou cookies (90) */
	.fl-panel.is-open { display: block; animation: fl-panel-in .2s ease-out; }
	@keyframes fl-panel-in { from { opacity: 0; } }
	@media (prefers-reduced-motion: reduce) { .fl-panel.is-open { animation: none; } }
	.fl-panel__sheet { position: absolute; inset: 64px 0 0; display: flex; flex-direction: column; background: var(--fl-paper); color: var(--fl-ink); outline: 0; }
	.fl-panel__head { flex: none; display: flex; align-items: center; justify-content: space-between; height: 65px; padding: 0 8px 0 20px; border-bottom: 1px solid var(--fl-hair); }
	.fl-panel__title { font-family: var(--font-head); font-weight: 400; font-size: 24px; line-height: 1.2; color: var(--fl-ink); }
	.fl-panel__close { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; background: none; border: 0; color: var(--fl-ink); cursor: pointer; }
	.fl-panel__close svg { width: 22px; height: 22px; }
	/* patička: spodní okraj 28 px, na telefonech s gesty aspoň 16 px nad bezpečnou zónou */
	.fl-panel__foot { flex: none; display: flex; gap: 10px; padding: 16px 20px max(28px, calc(16px + env(safe-area-inset-bottom))); border-top: 1px solid var(--fl-hair); }
	.fl-panel__reset { flex: none; height: 52px; padding: 0 18px; background: none; border: 1px solid var(--fl-edge); font-size: 14px; color: var(--fl-ink); white-space: nowrap; cursor: pointer; }
	.fl-panel__apply { flex: 1; min-width: 0; height: 52px; padding: 0 8px; background: var(--fl-cta); border: 0; font-size: 12px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: #fff; cursor: pointer; }

	/* tělo panelu = tytéž filtry jako na počítači, pod sebou; když se nevejdou, posouvá se jen tělo */
	.fl-filters { flex: 1; flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 24px; min-height: 0; padding: 20px; background: none; overflow-y: auto; overscroll-behavior: contain; }
	.fl-filter { flex: none; flex-direction: column; align-items: stretch; gap: 8px; }
	.fl-filter__label { letter-spacing: .18em; line-height: 14px; color: var(--fl-dim); }
	.fl-filters .fl-select { display: block; }
	.fl-filters .fl-select select { width: 100%; height: 50px; padding: 0 40px 0 16px; background: var(--fl-paper); border-color: var(--fl-edge); font-size: 16px; color: var(--fl-ink); } /* 16 px: iOS jinak stránku při výběru přiblíží */
	.fl-filter.has-value select { border-color: var(--fl-ink); }
	.fl-filters .fl-select::after,
	.fl-list__price-h button::after {
		content: "";
		position: absolute; right: 4px; top: 50%;
		width: 10px; height: 10px;
		margin-top: -5px;
		background: var(--ink);
		-webkit-mask: url(../img/ico-arrow.svg) center / contain no-repeat;
		mask: url(../img/ico-arrow.svg) center / contain no-repeat;
		transform: rotate(90deg);
		pointer-events: none;
	}
	.fl-filters .fl-select::after { right: 16px; background: var(--fl-ink); }

	/* dispozice: štítky v mřížce – pět (Vše + 4) se vejde do řady i na 360 px, při víc štítcích nebo užším telefonu se zalomí */
	.fl-filter--chips { display: block; }
	.fl-filter--chips .fl-filter__label { display: block; margin-bottom: 10px; }
	.fl-filter__options { display: grid; grid-template-columns: repeat(auto-fit, minmax(56px, 1fr)); gap: 8px; }

	.fl-check { flex: none; flex-direction: row-reverse; justify-content: space-between; min-height: 44px; margin: 0; font-size: 16px; color: var(--fl-ink); }
	.fl-check input { inset: 0; width: 100%; height: 100%; margin: 0; }
	.fl-check__box { width: 22px; height: 22px; border: 1px solid #757575; border-radius: 3px; background: none; }
	.fl-check__box::after { left: 7.5px; top: 3px; height: 11px; }
	.fl-check input:checked + .fl-check__box { background: var(--fl-cta); border-color: var(--fl-cta); }

	/* tabulka přes celou šířku: Byt · Disp. · Plocha · Cena · Stav · Info */
	.fl-scroll { margin: 0 calc(-1 * var(--gutter)); overflow: visible; }
	.fl-list, .fl-list thead, .fl-list tbody { display: block; width: 100%; min-width: 0; }
	.fl-list tr { display: grid; grid-template-columns: 54px 46px 66px minmax(0, 1fr) 50px 26px; align-items: center; padding: 0 9px 0 15px; }
	.fl-list tr[hidden] { display: none; }
	.fl-list th, .fl-list td { display: block; min-width: 0; }
	.fl-list thead tr { height: 48px; background: var(--ink); }
	.fl-list thead th { height: auto; border: 0; font-size: 10px; letter-spacing: .09em; color: var(--cream); }
	.fl-list thead th:last-child { text-align: right; }
	.fl-list__price-h button { position: relative; padding: 0 12px 0 0; background: none; border: 0; font: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit; cursor: pointer; }
	/* trojúhelník u ceny ukazuje směr řazení */
	.fl-list__price-h button::after {
		right: 0;
		width: 0; height: 0;
		margin-top: -2px;
		border: solid transparent;
		border-width: 3px 2.5px 0;
		border-top-color: currentColor;
		background: none;
		-webkit-mask: none;
		mask: none;
		transform: none;
	}
	.fl-table[data-sort="cena-desc"] .fl-list__price-h button::after { transform: rotate(180deg); }
	.fl-table[data-sort]:not([data-sort^="cena"]) .fl-list__price-h button::after,
	.fl-table[data-sort]:not([data-sort^="cena"]) [data-sort-arrow] { opacity: .35; }

	.fl-list tbody tr { grid-template-rows: 51px; border-bottom: 1px solid #e4e0da; cursor: pointer; }
	.fl-list tbody tr:not(.is-prodano):hover { background: none; }
	.fl-list td { height: auto; border: 0; font-size: 13px; color: var(--ink); }
	.fl-list tr.is-prodano td { color: #9a9087; }
	.fl-list__soon { font-size: inherit; }
	.fl-list .fl-badge { display: inline-flex; align-items: center; gap: 5px; padding: 0; background: none; font-size: 13px; font-weight: 400; line-height: 1; color: inherit; }
	.fl-list .fl-badge::after, .fl-legend__item::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #9a9087; }
	.fl-list .fl-badge--volny::after, .fl-legend__item--volny::before { background: #3d7c49; }
	.fl-list .fl-badge--rezervovano::after, .fl-legend__item--rezervovano::before { background: var(--fl-accent); }
	.fl-badge__full { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
	.fl-list__state { position: relative; }
	.fl-list__toggle { display: flex; align-items: center; justify-content: flex-end; width: 100%; height: 51px; padding: 0 4px 0 0; background: none; border: 0; color: var(--fl-accent); cursor: pointer; }
	.fl-list__toggle-arrow { width: 10px; height: auto; transform: rotate(90deg); }
	.fl-list tr.is-open .fl-list__toggle-arrow { transform: rotate(-90deg); }

	/* rozbalený detail bytu */
	.fl-list td.fl-list__extra { display: none; grid-column: 1 / -1; padding: 16px 0 20px; border-top: 1px solid #e4e0da; white-space: normal; cursor: auto; }
	.fl-list tr.is-open td.fl-list__extra { display: block; }
	.fl-extra { display: grid; grid-template-columns: 189fr 177fr; row-gap: 12px; margin: 0; }
	.fl-extra dt { font-size: 10px; font-weight: 400; letter-spacing: .12em; line-height: 13px; text-transform: uppercase; }
	.fl-extra dd { margin: 3px 0 0; font-size: 14px; line-height: 18px; }
	.fl-list__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 13px; }
	.fl-list__actions .btn { min-height: 46px; padding: 0 8px; font-size: 11px; letter-spacing: .18em; }
	.fl-list__actions .btn:only-child { grid-column: 1 / -1; }
	.fl-empty { padding: 28px var(--gutter); }

	.fl-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 16px; margin: 16px 0 0; padding: 0; list-style: none; font-size: 12px; line-height: 16px; color: var(--ink); }
	.fl-legend__item { display: flex; align-items: center; gap: 6px; }

	.fl-foot { display: flex; flex-direction: column; gap: 0; min-height: 0; margin-top: 14px; }
	.fl-more { order: 1; width: 100%; min-height: 52px; letter-spacing: .15em; }
	.fl-note { order: 2; margin-top: 12px; text-align: center; font-size: 12px; line-height: 16px; color: var(--ink); }

	/* dokumenty: nadpis a řádky s ikonou */
	.fl-docs__heading { margin-top: 20px; font-family: var(--font-head); font-weight: 300; font-size: 26px; line-height: 1.2; color: var(--ink); }
	.fl-docs { display: block; margin-top: 14px; border-top: 1px solid var(--fl-line); }
	.fl-doc { min-height: 61px; padding: 8px 3px 8px 0; border: 0; border-bottom: 1px solid var(--fl-line); }
	.fl-doc__title { font-family: var(--font-body); font-size: 16px; }
	.fl-doc__meta { display: none; }
	.fl-doc__icon { width: 14px; }

	/* Přemýšleli jsme za vás */
	.fl-video { height: 480px; min-height: 0; }
	.fl-video__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(39, 36, 34, .6), rgba(39, 36, 34, 0) 70%); } /* text leží přímo na fotce */
	.fl-video__content { position: absolute; inset: auto 0 38px; padding: 0 40px; }
	.fl-video__title { font-weight: 400; font-size: 40px; line-height: 1; letter-spacing: 0; white-space: normal; }
	.fl-video__text { margin-top: 12px; font-family: var(--font-head); font-weight: 400; font-size: 18px; line-height: 24px; letter-spacing: 0; }
	.fl-video__text br { display: none; }

	/* Byty na míru: nadpis → fotky → kroky */
	.fl-custom { display: flex; flex-direction: column; align-items: stretch; padding: 62px var(--gutter) 0; }
	.fl-custom__body { display: contents; }
	.fl-custom__icon { display: none; }
	.fl-custom__title { order: 1; padding-left: 30px; font-size: 36px; line-height: 39px; letter-spacing: -.01em; }
	.fl-custom__lead { order: 2; margin-top: 16px; padding-left: 30px; font-size: 18px; }
	.fl-custom__lead br { display: none; }
	.fl-custom__photos { order: 3; row-gap: 45px; margin: 28px 30px 0; }
	.fl-custom__photo img { aspect-ratio: 290 / 90; }
	.fl-steps { order: 4; margin-top: 28px; }
	.fl-step { grid-template-columns: 44px 1fr; column-gap: 0; padding: 18px 0 17px; }
	.fl-step:last-child { border-bottom: 0; }
	.fl-step__num { font-size: 18px; }
	.fl-step__title { font-size: 20px; }
	.fl-step__text { margin-top: 3px; font-size: 14px; color: var(--ink); }

	/* formulář s polem „Byt“ */
	.lead--flat { padding-block: 57px 28px; }
	.lead--flat .lead__title { font-weight: 300; line-height: 39px; }
	.lead--flat .lead__text { margin-top: 20px; line-height: 23px; }
	.lead--flat .contact-list { display: none; }
	.lead--flat .lead__form { margin-top: 22px; row-gap: 16px; }
	.lead--flat .field { gap: 9px; }
	.lead--flat .field label { font-size: 11px; letter-spacing: .17em; line-height: 13px; }
	.lead--flat .field input, .lead--flat .field textarea { height: 50px; padding-inline: 14px; background: none; border: 1.5px solid var(--ink); font-size: 16px; }
	.lead--flat .field textarea { height: 100px; }
	.lead--flat .field input:focus, .lead--flat .field textarea:focus { border-color: var(--accent); }
	.lead--flat .consent { margin-top: 0; font-size: 13px; }
	.lead--flat .consent a { color: var(--accent); }
	.lead--flat .consent input { width: 20px; height: 20px; }
	.lead--flat .lead__submit { min-height: 54px; font-size: 12px; letter-spacing: .15em; }
	.lead--flat .lead__call { display: block; margin-top: 3px; text-align: center; font-size: 13px; font-weight: 500; line-height: 18px; }
	.lead--flat .lead__call a { text-decoration: none; }
}

/* úzké telefony (360 px a míň): tabulka o něco sevřenější, ať se vejde cena */
@media (max-width: 374px) {
	.fl-intro__title { font-size: 40px; }
	.fl-list tr { grid-template-columns: 46px 44px 60px minmax(0, 1fr) 34px 24px; padding: 0 7px 0 12px; }
	.fl-list td, .fl-list .fl-badge { font-size: 12px; }
	.fl-list thead th { letter-spacing: .08em; }
}

/* ==========================================================================
   Úpravy 8. 10. 2026 – komentáře klientky ve Figmě ze 7. 10. a Freelo 33005992
   ========================================================================== */

/* --- Hlavička přilepená nahoře ------------------------------------------------
   Úvodní stránka: přes celé hero je průhledná jako dřív, terakotová s bílým textem a nižší je až pod ním.
   Podstránky: nahoře krémová s linkou, terakotová po pár pixelech scrollu. Přepíná main.js (.is-stuck).
   Podstránky: hlavička už nestojí v toku stránky, její výšku drží odsazení <main>. */
:root { --header-h: max(64px, calc(82 * var(--u))); --header-stuck: max(60px, calc(66 * var(--u))); }
@media (min-width: 1101px) { :root { --header-h: max(64px, calc(88 * var(--u))); } }
@media (max-width: 900px) { :root { --header-h: 88px; --header-stuck: 64px; } }
html { scroll-padding-top: var(--header-stuck); } /* kotvy (#faq, #kontakt, #cenik…) nekončí pod hlavičkou */
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
.site-header:not(.site-header--overlay) + main { padding-top: var(--header-h); }
.site-header { transition: background-color .3s ease, color .3s ease, border-color .3s ease; }
.site-header__inner { transition: height .3s ease; }
.site-header.is-stuck { background: var(--accent); color: var(--cream); border-bottom-color: transparent; } /* krémová jako nahoře nad hero a jako tlačítko „Mám zájem“ */
.site-header.is-stuck .site-header__inner { height: var(--header-stuck); min-height: 0; }
.site-header.is-stuck .site-header__phone:hover { background: var(--cream); border-color: var(--cream); color: var(--accent); }
@media (min-width: 1101px) {
	/* aktivní položka menu je jinak tmavě oranžová – na terakotě by nebyla vidět */
	.site-header.is-stuck:not(.site-header--overlay) .site-nav__list .current-menu-item > a:not([href*="#"]),
	.page-template-page-vyber-bytu .site-header.is-stuck .site-nav__list a[href$="/vyber-bytu/"] { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 7px; }
}
@media (max-width: 1100px) {
	/* otevřené menu překrývá celou obrazovku tmavou plochou – terakotový pruh pod ním nesmí prosvítat při zavírání */
	.menu-open .site-header.is-stuck { background: var(--ink); }
}
/* průhledná hlavička při scrollu přes hero: nese si vlastní ztmavení (o něco silnější, než má fotka úplně nahoře),
   ať je menu čitelné i přes světlou fasádu; sílu řídí --float z main.js, pod hero mizí */
.site-header--overlay::before {
	content: ""; position: absolute; inset: 0 0 auto; z-index: -1;
	height: max(115px, calc(115 * var(--u)));
	background: linear-gradient(to bottom, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0));
	opacity: var(--float, 0);
	pointer-events: none;
	transition: opacity .3s ease;
}
.site-header--overlay.is-stuck::before, .menu-open .site-header--overlay::before { opacity: 0; }
@media (prefers-reduced-motion: reduce) { .site-header, .site-header__inner, .site-header--overlay::before { transition: none; } }

/* --- Bez pruhu s čísly (vypnutý kvůli změně stavby před dokončením) navazuje „Zažij Malešice jinak“ přímo na hero ---- */
.hero + .experience { padding-top: calc(90 * var(--u)); }
@media (max-width: 900px) { .hero + .experience { padding-top: 44px; } }

/* --- Časová osa: milník jako tlačítko (průhledná plocha přes položku) ---------- */
.timeline__go { position: absolute; inset: -10px 0 -10px -10px; z-index: 2; padding: 0; border: 0; background: none; cursor: pointer; }
.timeline__go:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
@media (hover: hover) {
	.timeline.is-building .timeline__item:hover .timeline__dot { box-shadow: 0 0 0 7px rgba(185, 100, 63, .14); }
	.timeline.is-building .timeline__item:not(.is-reached):hover .timeline__date,
	.timeline.is-building .timeline__item:not(.is-reached):hover .timeline__label { opacity: .7; }
}

/* --- Formulář: makléřka nad kontakty ------------------------------------------ */
.lead__agent { display: grid; grid-template-columns: auto 1fr; align-items: center; column-gap: 18px; margin-top: auto; padding-top: 40px; }
.lead__agent-photo {
	grid-row: 1 / 3;
	display: grid; place-items: center;
	width: 72px; height: 72px;
	border: 1px solid rgba(26, 24, 20, .12);
	border-radius: 50%;
	background: var(--input);
	overflow: hidden;
	font-family: var(--font-head); font-size: 20px; letter-spacing: .06em; color: var(--ink);
}
.lead__agent-photo--img { border: 0; }
.lead__agent-photo img { width: 100%; height: 100%; object-fit: cover; }
.lead__agent-name { align-self: end; font-family: var(--font-head); font-weight: 400; font-size: 19px; line-height: 1.25; color: var(--ink); }
.lead__agent-name:last-child { grid-row: 1 / 3; align-self: center; }
.lead__agent-role { align-self: start; font-size: 13.5px; line-height: 1.5; color: #5b524b; } /* tmavší šedá z ceníku – --muted je na drobný text na krémové slabá */
.contact-list--agent { margin-top: 0; padding-top: 22px; }

/* --- Formulář: forma financování + rozbalovací srovnání ------------------------ */
.chips--fin { grid-template-columns: repeat(3, 1fr); }
.fin-info { margin-top: calc(12 * var(--u)); }
.field .fin-info__q { display: inline-flex; align-items: center; gap: 12px; padding: 4px 0; list-style: none; cursor: pointer; font-size: 14px; line-height: 1.4; color: var(--ink-2); }
.fin-info__q::-webkit-details-marker { display: none; }
.fin-info__q-text { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.fin-info__q:hover { color: var(--accent); }
.fin-info__q:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.fin-info__plus { position: relative; flex: none; width: 11px; height: 11px; }
.fin-info__plus::before, .fin-info__plus::after { content: ""; position: absolute; background: currentColor; }
.fin-info__plus::before { left: 0; right: 0; top: 5px; height: 1px; }
.fin-info__plus::after { top: 0; bottom: 0; left: 5px; width: 1px; transition: opacity .2s; }
.fin-info[open] .fin-info__plus::after { opacity: 0; }
.fin-info__body { margin-top: 16px; padding: calc(32 * var(--u)) calc(30 * var(--u)) calc(30 * var(--u)); background: var(--input); border: 1px solid rgba(26, 24, 20, .1); font-size: 14px; line-height: 1.5; color: var(--ink-2); }
.fin-info__lead { margin-bottom: 18px; font-size: 15px; }
.fin-table { width: 100%; border-collapse: collapse; }
.fin-table th, .fin-table td { padding: 9px 18px 9px 0; text-align: left; vertical-align: top; font-weight: 400; }
.fin-table th:last-child, .fin-table td:last-child { padding-right: 0; }
.fin-table thead th { padding-bottom: 12px; font-family: var(--font-head); font-weight: 300; font-size: 18px; line-height: 1.2; }
.fin-table thead th:not(.text-accent) { color: var(--ink); }
.fin-table tbody th { width: 26%; padding-top: 12px; font-size: 10px; font-weight: 600; letter-spacing: .26em; line-height: 1.4; text-transform: uppercase; }
.fin-info__note { margin-top: 20px; padding-top: 20px; border-top: 1px solid rgba(26, 24, 20, .14); font-weight: 600; }

/* --- Ceník: bez počitadla zůstává řazení vpravo; pomlčka místo stavu ------------ */
.fl-sort, .fl-bar__sort { margin-left: auto; }
.fl-list__state > [aria-hidden="true"] { color: var(--fl-muted); }

@media (max-width: 900px) {
	/* makléřka: pod formulářem, nad kontakty na střed */
	.lead__agent { order: 4; grid-template-columns: auto auto; justify-content: center; margin-top: 32px; padding-top: 24px; border-top: 1px solid #e6dccb; }
	.lead__agent-photo { width: 64px; height: 64px; }
	.contact-list--agent { margin-top: 0; padding-top: 16px; border-top: 0; }
	.lead--flat .lead__agent { margin-top: 24px; }
	/* ceník na telefonu má pole s tmavou linkou (návrh „x-dc“) – volby financování k nim ladí */
	.lead--flat .field legend { margin-bottom: 9px; font-size: 11px; letter-spacing: .17em; line-height: 13px; }
	.lead--flat .field .chip { font-size: 16px; letter-spacing: 0; line-height: 1.2; }
	.lead--flat .chip span { height: 50px; background: none; border: 1.5px solid var(--ink); font-size: 16px; }
	.lead--flat .chip input:checked + span { background: var(--accent); border-color: var(--accent); }

	.fin-info__body { padding: 20px 18px; }
}
@media (max-width: 700px) {
	.chips--fin { grid-template-columns: 1fr; gap: 10px; }
	/* srovnání pod sebou: název řádku, pod ním obě varianty s popiskem */
	.fin-table thead { display: none; }
	.fin-table, .fin-table tbody, .fin-table tr, .fin-table th, .fin-table td { display: block; width: auto; }
	.fin-table tr + tr { margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(26, 24, 20, .1); }
	.fin-table tbody th { padding: 0 0 6px; }
	.fin-table td { padding: 4px 0; }
	.fin-table td::before { content: attr(data-label) ": "; font-weight: 600; }
	.fin-table td:last-child::before { color: var(--accent); }
}

/* --- Hero: fotky se střídají, dole běží ukazatel průběhu (8. 10. odpoledne) -----
   Nový snímek se prolne přes ten předchozí (ten pod ním zůstává plně vidět – .is-leaving – takže fotka uprostřed
   přechodu neztmavne). Úseky ukazatele plní main.js; každý je zároveň tlačítko. */
.hero__media--slides { isolation: isolate; background: var(--black); }
.hero__slide { position: absolute; inset: 0; z-index: 0; opacity: 0; }
.hero__slide.is-leaving { opacity: 1; }
.hero__slide.is-active { z-index: 1; opacity: 1; transition: opacity 1.6s ease; }
/* přechody leží nad všemi snímky: nové fotky mají dole světlou fasádu a bez spodního ztmavení by nadpis nebyl čitelný */
.hero__media--slides::before, .hero__media--slides::after { z-index: 2; }
@media (max-width: 700px) {
	.hero__media--slides.hero__media--mobile::before { z-index: 2; }
	.hero__media--slides .hero__bg { object-position: 50% 50%; } /* fotky pro mobil jsou komponované na střed */
	.hero__slide--desktop, .hero__seg--desktop { display: none; }
}
@media (min-width: 701px) { .hero__slide--mobile, .hero__seg--mobile { display: none; } }

.hero__progress { display: flex; gap: calc(14 * var(--u)); margin-top: calc(30 * var(--u)); }
.hero__progress[hidden] { display: none; }
.hero__seg { position: relative; flex: 1; height: 26px; margin-block: -8px; padding: 0; border: 0; background: none; color: inherit; cursor: pointer; }
.hero__seg::before, .hero__seg-fill { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 2px; margin-top: -1px; }
.hero__seg::before { background: rgba(255, 252, 244, .32); transition: background-color .2s; }
.hero__seg:hover::before { background: rgba(255, 252, 244, .55); }
.hero__seg-fill { background: var(--cream); transform: scaleX(0); transform-origin: 0 50%; }
.hero__seg:focus-visible { outline: 2px solid var(--cream); outline-offset: 2px; }
@media (max-width: 900px) { .hero__progress { gap: 8px; margin-top: 22px; } }
@media (prefers-reduced-motion: reduce) { .hero__slide.is-active { transition: none; } }

