.pdf-download-control{display:inline-flex;flex-direction:column;align-items:stretch;gap:.35rem;max-width:100%}
.pdf-download-control a[aria-busy="true"]{cursor:progress}
@media(max-width:767px){.pdf-download-control:has(.apt-title-action-download){width:100%}}
.pdf-download-spinner{display:inline-block;width:.875rem;height:.875rem;border:.125rem solid currentColor;border-right-color:transparent;border-radius:50%;animation:pdf-download-spin .7s linear infinite}
.pdf-download-error{font-size:.75rem;line-height:1.4;color:#a12d2d}
@keyframes pdf-download-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.pdf-download-spinner{animation-duration:2s}}

/* Parking availability notice belongs to the selection step, outside the map. */
.selection-parking-notice { margin:0 0 1.5rem; padding:1rem 1.25rem; border-left:.1875rem solid var(--sf-accent); border-radius:.25rem; color:var(--sf-ink); background:#faf5ef; font-size:.875rem; line-height:1.6; }
.selection-parking-notice strong { font-weight:600; }
/* Apartment selection prototype — sourced from the Interactive Flow Figma component. */
.apartment-selection { --as-ink:#121212; --as-surface:#fcfaf8; --as-charcoal:#2c2c2c; --as-muted:#414141; --as-accent:#d49b5e; --as-green:#00bc7d; --as-orange:#f59e0b; --as-red:#f05252; box-sizing:border-box; min-height:100svh; padding:clamp(2.5rem,5vw,5rem) clamp(1rem,3.75vw,3rem) clamp(3rem,6.25vw,5rem); color:var(--as-ink); background:var(--as-surface); font-family:Manrope,Inter,Arial,sans-serif; }
.apartment-selection *, .apartment-selection *::before, .apartment-selection *::after { box-sizing:border-box; }
.apartment-selection__header { display:grid; gap:1.25rem; width:min(100%,74rem); margin-inline:auto; text-align:center; }
.apartment-selection__header p { margin:0; color:var(--as-accent); font-size:1rem; font-weight:700; line-height:.9375; text-transform:uppercase; }
.apartment-selection__header h1 { margin:0; font-size:clamp(2rem,3.3vw,2.625rem); font-weight:600; line-height:1.2; }
.apartment-selection__header span { width:min(100%,51.625rem); margin-inline:auto; color:var(--as-muted); font-family:Inter,Arial,sans-serif; font-size:clamp(1rem,1.72vw,1.375rem); line-height:1.2; }
.apartment-selection__content { position:relative; width:min(100%,74rem); margin:clamp(2rem,5vw,3.75rem) auto 0; }
.apartment-switch { position:relative; z-index:4; display:flex; width:max-content; max-width:calc(100% - 2rem); margin:0 auto clamp(1.5rem,2vw,2rem); padding:.5rem; overflow:auto; border-radius:3.5625rem; background:#fff; }
.apartment-switch button { flex:0 0 auto; min-height:3.75rem; padding-inline:clamp(1.125rem,2vw,1.5rem); border:0; border-radius:2.6875rem; color:var(--as-ink); background:transparent; font:600 clamp(.875rem,1.56vw,1.25rem)/1 Manrope,Arial,sans-serif; cursor:pointer; }
.apartment-switch button.is-active { color:#fff; background:var(--as-charcoal); }
.apartment-map { position:relative; min-height:clamp(35rem,72svh,64rem); overflow:hidden; border-radius:1.5rem; background:#f1eee4; }
.apartment-map__canvas { position:absolute; inset:0; display:grid; place-items:center; transform:scale(var(--plan-scale)); transform-origin:center; transition:transform .2s ease; }
.apartment-map__plan { display:block; width:min(88%,64rem); max-height:88%; object-fit:contain; user-select:none; }
.apartment-map__missing-plan { display:grid; gap:1rem; width:min(85%,34rem); padding:clamp(1.25rem,3vw,2rem); border:1px dashed color-mix(in srgb,var(--as-charcoal) 30%,transparent); border-radius:.75rem; color:var(--as-muted); background:rgb(255 255 255 / .72); text-align:center; line-height:1.5; }
.apartment-map__missing-plan strong { color:var(--as-ink); font-size:1.125rem; }.apartment-map__missing-plan code { padding:.125rem .25rem; border-radius:.25rem; background:#ece9e1; font-size:.8125rem; }
.apartment-map__hitarea { position:absolute; width:25%; aspect-ratio:.78; border:0; border-radius:.25rem; outline:.125rem solid rgb(0 188 125 / .8); background:rgb(0 188 125 / .3); cursor:pointer; }
.apartment-map__hitarea:hover, .apartment-map__hitarea:focus-visible { background:rgb(0 188 125 / .5); }
.apartment-map__compass { position:absolute; top:clamp(1rem,2.1vw,1.875rem); right:clamp(1rem,2.1vw,1.875rem); width:clamp(3.75rem,7.5vw,6rem); height:auto; }
.apartment-map__tooltip { position:absolute; top:clamp(11rem,21vw,13.5rem); left:clamp(2rem,48vw,35.75rem); z-index:2; width:min(23.5rem,calc(100% - 3rem)); padding:1.25rem; border-radius:.5rem; color:#e7e7e7; background:var(--as-charcoal); box-shadow:0 1.25rem 2.5rem rgb(18 18 18 / .18); }
.apartment-map__tooltip > div { display:flex; align-items:center; justify-content:space-between; gap:1rem; }.apartment-map__tooltip strong { font-size:1.5rem; line-height:1.15; }
.apartment-map__tooltip dl { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin:1rem 0 0; }.apartment-map__tooltip dt { font-size:.875rem; }.apartment-map__tooltip dd { margin:.3125rem 0 0; font-family:Inter,Arial,sans-serif; font-size:1.375rem; font-weight:500; white-space:nowrap; }
.apartment-status { display:inline-flex; align-items:center; gap:.625rem; width:max-content; padding:.3125rem 1.25rem; border-radius:999rem; font-size:.875rem; line-height:1.125; white-space:nowrap; }.apartment-status::before { width:.375rem; aspect-ratio:1; border-radius:50%; background:currentColor; content:""; }.apartment-status.is-available { color:var(--as-green); background:rgb(0 188 125 / .2); }.apartment-status.is-reserved { color:var(--as-orange); background:rgb(245 158 11 / .12); }.apartment-status.is-sold { color:var(--as-red); background:rgb(240 82 82 / .1); }
.apartment-map__floor-control { position:absolute; bottom:clamp(1.25rem,2.1vw,1.875rem); left:clamp(1.25rem,2.1vw,1.875rem); z-index:3; }.apartment-map__floor-control > button { display:flex; align-items:center; justify-content:space-between; gap:2rem; min-width:13.8125rem; min-height:4.25rem; padding:.75rem 1.5rem; border:0; border-radius:999rem; color:#fff; background:var(--as-charcoal); font:500 1.125rem/1 Manrope,Arial,sans-serif; cursor:pointer; }.apartment-map__floor-control img { width:1.875rem; }.apartment-map__floor-menu { position:absolute; bottom:calc(100% + .5rem); display:grid; min-width:100%; max-height:16rem; overflow:auto; padding:.5rem; border-radius:.75rem; background:#fff; box-shadow:0 1rem 2rem rgb(18 18 18 / .15); }.apartment-map__floor-menu button { padding:.625rem .75rem; border:0; border-radius:.375rem; background:transparent; text-align:left; cursor:pointer; }.apartment-map__floor-menu button:hover { background:#f1eee4; }
.apartment-map__zoom { position:absolute; right:clamp(1.25rem,2.1vw,1.875rem); bottom:clamp(1.25rem,2.1vw,1.875rem); display:flex; gap:.9375rem; }.apartment-map__zoom button { display:grid; width:clamp(3.5rem,4.7vw,3.6875rem); padding:0; aspect-ratio:1; place-items:center; border:0; border-radius:50%; background:var(--as-charcoal); cursor:pointer; }.apartment-map__zoom img { width:100%; height:100%; }
.apartment-list { width:min(100%,68rem); margin-inline:auto; }.apartment-filters { display:grid; grid-template-columns:1.05fr 1fr; gap:1.25rem 2rem; padding:1.5rem; border-radius:1rem; background:#fff; }.apartment-search,.apartment-selects label,.apartment-range { min-height:2.8125rem; border-radius:999rem; background:#f1f1f1; }.apartment-search { display:flex; align-items:center; padding-inline:1.25rem; }.apartment-search input { width:100%; border:0; outline:0; background:transparent; font:400 .875rem/1 Inter,Arial,sans-serif; }.apartment-search span { font-size:1.5rem; }.apartment-selects { display:grid; grid-template-columns:repeat(3,1fr); gap:.625rem; }.apartment-selects label { position:relative; display:block; overflow:hidden; }.apartment-selects select { width:100%; height:100%; padding-inline:1rem; appearance:none; border:0; outline:0; background:transparent url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27%3E%3Cpath d=%27m7 10 5 5 5-5%27 fill=%27none%27 stroke=%27%232c2c2c%27 stroke-width=%272%27/%3E%3C/svg%3E") right .875rem center/1rem no-repeat; font:400 .875rem/1 Inter,Arial,sans-serif; cursor:pointer; }.apartment-range { display:grid; grid-template-columns:auto auto 1fr auto; gap:.75rem; align-items:center; padding-inline:1.25rem; color:var(--as-muted); font:400 .875rem/1 Inter,Arial,sans-serif; }.apartment-range input { width:100%; accent-color:var(--as-charcoal); }.apartment-range output { font-size:.75rem; white-space:nowrap; }
.apartment-table-wrap { margin-top:clamp(2rem,5vw,3.5rem); overflow-x:auto; }.apartment-table { width:100%; min-width:56rem; border-collapse:collapse; color:#616161; font-family:Inter,Arial,sans-serif; font-size:.875rem; text-align:left; }.apartment-table th { height:3.125rem; color:#b1b1b1; font-size:.6875rem; font-weight:500; text-transform:uppercase; }.apartment-table td { height:3.375rem; border-top:.0625rem solid #efedeb; white-space:nowrap; }.apartment-table tr.is-clickable { cursor:pointer; }.apartment-table tr.is-clickable:hover { background:#fff; }.apartment-table a { color:var(--as-accent); text-decoration:none; }.apartment-disposition { display:inline-flex; padding:.3125rem .75rem; border-radius:999rem; background:#f0f0f0; font-size:.75rem; }.apartment-table .apartment-status { padding:.25rem .75rem; font-size:.75rem; }.apartment-list__empty { padding:2rem; text-align:center; }.sr-only { position:absolute; width:.0625rem; height:.0625rem; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media screen and (max-width: 991px) { .apartment-map { min-height:clamp(34rem,72svh,48rem); }.apartment-map__tooltip { left:50%; transform:translateX(-50%); }.apartment-filters { grid-template-columns:1fr; }.apartment-range { min-height:3rem; }.apartment-table-wrap { overflow:visible; }.apartment-table { display:block; min-width:0; }.apartment-table thead { display:none; }.apartment-table tbody { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }.apartment-table tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.625rem 1rem; min-width:0; padding:1.25rem; border:.0625rem solid #efedeb; border-radius:.75rem; background:#fff; }.apartment-table td { display:flex; flex-direction:column; justify-content:flex-start; height:auto; min-width:0; padding:0; border:0; white-space:normal; }.apartment-table td::before { margin-bottom:.25rem; color:#9a9a9a; font-size:.625rem; font-weight:500; letter-spacing:.03em; text-transform:uppercase; }.apartment-table td:nth-child(1)::before { content:"Číslo bytu"; }.apartment-table td:nth-child(2)::before { content:"Věž"; }.apartment-table td:nth-child(3)::before { content:"Podlaží"; }.apartment-table td:nth-child(4)::before { content:"Dispozice"; }.apartment-table td:nth-child(5)::before { content:"Plocha"; }.apartment-table td:nth-child(6)::before { content:"Cena"; }.apartment-table td:nth-child(7)::before { content:"Dostupnost"; }.apartment-table td:nth-child(8)::before { content:"Dokumentace"; } }
@media screen and (max-width: 767px) { .apartment-selection { padding-inline:1rem; }.apartment-selection__header { gap:1rem; }.apartment-switch { margin-bottom:1rem; }.apartment-switch button { min-height:3.25rem; padding-inline:1rem; font-size:.875rem; }.apartment-map { min-height:clamp(31rem,76svh,40rem); border-radius:1rem; }.apartment-map__tooltip { top:7.5rem; width:calc(100% - 2rem); }.apartment-map__tooltip dl { grid-template-columns:1fr 1fr; }.apartment-map__tooltip dl div:last-child { grid-column:span 2; }.apartment-map__tooltip dd { font-size:1.125rem; }.apartment-map__floor-control > button { min-width:9rem; min-height:3.5rem; padding-inline:1.25rem; font-size:1rem; }.apartment-map__zoom { gap:.625rem; }.apartment-map__zoom button { width:3.5rem; }.apartment-filters { gap:1rem; padding:1rem; }.apartment-selects { grid-template-columns:1fr; }.apartment-range { grid-template-columns:auto auto 1fr auto; gap:.5rem; padding-inline:1rem; }.apartment-range span { display:none; }.apartment-table tbody { grid-template-columns:1fr; }.apartment-table tr { grid-template-columns:repeat(2,minmax(0,1fr)); }.apartment-table td { overflow-wrap:anywhere; }.apartment-table td:nth-child(1),.apartment-table td:nth-child(7) { grid-column:span 2; }.apartment-table .apartment-status { max-width:100%; } }
@media (prefers-reduced-motion: reduce) { .apartment-map__canvas { transition:none; } }

/* Selection flow — the same map frame is shared by floors, apartments, storage and parking. */
.selection-flow,.selection-shell { --sf-ink:#121212; --sf-surface:#fcfaf8; --sf-panel:#fff; --sf-charcoal:#2c2c2c; --sf-muted:#6b6866; --sf-line:#e8e5e0; --sf-accent:#d49b5e; --sf-green:#00bc7d; --sf-orange:#f59e0b; --sf-red:#f05252; width:min(100%,90rem); margin-inline:auto; color:var(--sf-ink); font-family:Manrope,Inter,Arial,sans-serif; }
.selection-flow { min-height:100svh; padding:clamp(1.5rem,4vw,4rem) clamp(1rem,3.75vw,3rem) clamp(3rem,6vw,6rem); background:var(--sf-surface); }
.selection-flow *,.selection-shell * { box-sizing:border-box; }.selection-flow button,.selection-flow input,.selection-flow select,.selection-flow textarea,.selection-shell button,.selection-shell input,.selection-shell select { font:inherit; }
.flow-header { display:grid; gap:clamp(.75rem,1.5vw,1.5rem); margin-block-end:clamp(1.5rem,3vw,3rem); }.flow-header h1 { margin:0; }.flow-back { width:max-content; padding:0; border:0; color:var(--sf-ink); background:transparent; cursor:pointer; font-size:1rem; }.flow-back::before { content:"‹"; margin-right:.5rem; font-size:2rem; line-height:0; vertical-align:-.15rem; }
.selection-shell { position:relative; }.selection-switch { position:relative; z-index:5; display:flex; width:max-content; max-width:100%; margin:0 auto clamp(1rem,2vw,1.5rem); padding:.5rem; overflow-x:auto; border-radius:999rem; background:var(--sf-panel); scrollbar-width:none; }.selection-switch::-webkit-scrollbar { display:none; }.selection-switch button { flex:0 0 auto; min-height:3.5rem; padding-inline:clamp(1rem,2vw,1.75rem); border:0; border-radius:999rem; color:var(--sf-ink); background:transparent; cursor:pointer; font-size:clamp(.9375rem,1.3vw,1.25rem); font-weight:600; white-space:nowrap; }.selection-switch button.is-active { color:#fff; background:var(--sf-charcoal); }
.selection-map { position:relative; min-height:clamp(38rem,72svh,64rem); overflow:hidden; border-radius:1.5rem; background:#f1eee4; isolation:isolate; }.selection-map__stage { position:absolute; inset:0; overflow:hidden; touch-action:pan-y; cursor:grab; }.selection-map__stage:active { cursor:grabbing; }.selection-map__world { position:absolute; inset:0; display:grid; place-items:center; transform:translate(var(--map-x),var(--map-y)) scale(var(--map-scale)); transform-origin:center; }.selection-map__base,.selection-map__overlay { grid-area:1 / 1; display:block; width:min(92%,76rem); max-height:91%; object-fit:contain; user-select:none; -webkit-user-drag:none; }.selection-map__overlay { height:auto; pointer-events:none; }.selection-map__overlay svg { display:block; width:100%; height:auto; max-height:91%; overflow:visible; }.selection-map__awaiting-assets { grid-area:1 / 1; display:grid; gap:.75rem; width:min(82%,30rem); padding:clamp(1.25rem,3vw,2rem); border:1px dashed color-mix(in srgb,var(--sf-charcoal) 30%,transparent); border-radius:.75rem; color:var(--sf-muted); background:rgb(255 255 255 / .75); text-align:center; line-height:1.5; }.selection-map__awaiting-assets strong { color:var(--sf-ink); font-size:1.125rem; }.selection-map__compass { position:absolute; top:clamp(1rem,2vw,1.875rem); right:clamp(1rem,2vw,1.875rem); z-index:2; width:clamp(3.75rem,6vw,6rem); height:auto; pointer-events:none; }.selection-map__tooltip { position:absolute; top:clamp(9rem,18vw,13.5rem); left:50%; z-index:3; width:min(24rem,calc(100% - 3rem)); padding:clamp(1rem,2vw,1.5rem); transform:translateX(-50%); border-radius:.75rem; color:#e7e7e7; background:var(--sf-charcoal); box-shadow:0 1.5rem 3rem rgb(18 18 18 / .2); }.selection-map__tooltip-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; }.selection-map__tooltip strong { font-size:clamp(1.125rem,2vw,1.5rem); }.selection-map__tooltip dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin:1rem 0 0; }.selection-map__tooltip dt { color:#e7e7e7; font-size:.8125rem; }.selection-map__tooltip dd { margin:.25rem 0 0; font-family:Inter,Arial,sans-serif; font-size:clamp(1rem,1.6vw,1.375rem); font-weight:500; white-space:nowrap; }.selection-map__hint { margin:.875rem 0 0; color:#c9c9c9; font-size:.8125rem; }.selection-map__context-control { position:absolute; bottom:clamp(1.25rem,2vw,1.875rem); left:clamp(1.25rem,2vw,1.875rem); z-index:4; }.selection-map__select { position:relative; display:flex; align-items:center; min-width:13.5rem; min-height:4rem; padding-inline:1.5rem; overflow:hidden; border-radius:999rem; color:#fff; background:var(--sf-charcoal); }.selection-map__select select { width:100%; appearance:none; border:0; outline:0; color:inherit; background:transparent; cursor:pointer; }.selection-map__select img { width:1.5rem; pointer-events:none; }.selection-map__zoom { position:absolute; right:clamp(1.25rem,2vw,1.875rem); bottom:clamp(1.25rem,2vw,1.875rem); z-index:4; display:flex; gap:.75rem; }.selection-map__zoom button { display:grid; width:clamp(3.5rem,4.5vw,4rem); aspect-ratio:1; place-items:center; padding:0; border:0; border-radius:50%; background:var(--sf-charcoal); cursor:pointer; }.selection-map__zoom img { width:100%; height:100%; }
.selection-status { display:inline-flex; align-items:center; gap:.375rem; width:max-content; padding:.3rem .75rem; border-radius:999rem; font-size:.75rem; font-weight:600; white-space:nowrap; }.selection-status::before { width:.375rem; aspect-ratio:1; border-radius:50%; content:""; background:currentColor; }.selection-status.is-available { color:#008e61; background:#daf7ec; }.selection-status.is-reserved { color:#b76b00; background:#fff5dc; }.selection-status.is-sold { color:#cc3636; background:#fff0f0; }
.smart-list { width:min(100%,68rem); margin-inline:auto; }.smart-list__filters { display:grid; grid-template-columns:1.1fr 1fr; gap:1rem 2rem; padding:clamp(1rem,2.5vw,1.5rem); border-radius:1rem; background:var(--sf-panel); }.smart-list__search,.smart-list__selects label,.smart-list__range { min-height:2.875rem; border-radius:999rem; background:#f0f0f0; }.smart-list__search { display:flex; align-items:center; padding-inline:1.25rem; }.smart-list__search input { width:100%; border:0; outline:0; background:transparent; }.smart-list__selects { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.625rem; }.smart-list__selects label { overflow:hidden; }.smart-list__selects select { width:100%; height:100%; padding-inline:1rem; border:0; outline:0; background:transparent; cursor:pointer; }.smart-list__range { display:grid; grid-template-columns:auto auto minmax(4rem,1fr) auto; align-items:center; gap:.625rem; padding-inline:1.25rem; color:var(--sf-muted); font-size:.8125rem; }.smart-list__range input { width:100%; accent-color:var(--sf-charcoal); }.smart-list__range output { white-space:nowrap; font-size:.75rem; }.smart-list__results { margin-top:clamp(2rem,5vw,3.5rem); }.smart-list table { width:100%; border-collapse:collapse; color:#616161; font-family:Inter,Arial,sans-serif; font-size:.875rem; text-align:left; }.smart-list th { height:3.125rem; color:#b1b1b1; font-size:.6875rem; font-weight:600; text-transform:uppercase; }.smart-list td { min-height:3.5rem; padding-block:.75rem; border-top:.0625rem solid var(--sf-line); }.smart-list tr.is-available { cursor:pointer; }.smart-list tr.is-available:hover { background:#fff; }.smart-list a { color:var(--sf-accent); text-decoration:none; }.smart-list__pill { display:inline-flex; padding:.3rem .75rem; border-radius:999rem; background:#f0f0f0; font-size:.75rem; }.smart-list__empty { padding:2rem; text-align:center; }.floor-list { display:grid; width:min(100%,48rem); margin-inline:auto; gap:.75rem; }.floor-list > p { color:var(--sf-muted); text-align:center; }.floor-list button { display:flex; justify-content:space-between; gap:1rem; padding:1rem 1.25rem; border:1px solid var(--sf-line); border-radius:.75rem; color:var(--sf-ink); background:#fff; cursor:pointer; text-align:left; }.floor-list button span { color:var(--sf-muted); }
.flow-summary { display:grid; grid-template-columns:1.15fr 1fr 1fr; gap:clamp(1rem,3vw,4rem); margin:0 0 clamp(1.5rem,3vw,3rem); }.flow-summary div { min-width:0; }.flow-summary dt { margin-bottom:.5rem; color:var(--sf-accent); font-size:.6875rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }.flow-summary dd { display:grid; gap:.25rem; margin:0; }.flow-summary strong { font-size:clamp(1.125rem,1.7vw,1.5rem); }.flow-summary span { color:var(--sf-muted); font-family:Inter,Arial,sans-serif; font-size:.875rem; }.flow-continue,.detail-bridge__actions button,.booking-form button { display:block; width:max-content; min-width:12rem; margin:clamp(1.5rem,3vw,2.5rem) 0 0 auto; padding:1rem 1.5rem; border:0; border-radius:999rem; color:#fff; background:var(--sf-accent); cursor:pointer; font-weight:700; }.flow-continue:disabled { opacity:.45; cursor:not-allowed; }.detail-bridge { display:grid; gap:clamp(1rem,2vw,1.5rem); }.detail-bridge h2 { margin:0; font-size:clamp(2rem,4vw,3.5rem); font-weight:500; }.detail-bridge > dl { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1rem; margin:0; }.detail-bridge dt { color:var(--sf-muted); font-size:.875rem; }.detail-bridge dd { margin:.5rem 0 0; font-size:clamp(1rem,1.7vw,1.5rem); font-weight:700; }.detail-bridge__actions { display:flex; align-items:center; justify-content:flex-end; gap:1rem; }.detail-bridge__actions a { padding:1rem 1.5rem; border-radius:999rem; color:#fff; background:var(--sf-charcoal); text-decoration:none; }.detail-bridge__actions button { margin:0; }.detail-bridge > p,.booking-form > p { color:var(--sf-muted); }.booking-form form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(1.5rem,3vw,2.5rem); margin-top:clamp(2rem,5vw,4rem); }.booking-form label { display:grid; gap:.75rem; color:#8a8988; font-size:1.125rem; }.booking-form input,.booking-form textarea { width:100%; padding:.5rem 0; border:0; border-bottom:.0625rem solid var(--sf-muted); outline:0; resize:vertical; background:transparent; color:var(--sf-ink); }.booking-form__message { grid-column:span 2; }.booking-form button { grid-column:2; }.sr-only { position:absolute; width:.0625rem; height:.0625rem; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
@media screen and (max-width: 991px) { .selection-map { min-height:clamp(34rem,72svh,48rem); }.smart-list__filters { grid-template-columns:1fr; }.smart-list__results table,.smart-list__results tbody { display:block; }.smart-list__results thead { display:none; }.smart-list__results tbody { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }.smart-list__results tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.875rem; padding:1.25rem; border:1px solid var(--sf-line); border-radius:.75rem; background:#fff; }.smart-list__results td { display:grid; gap:.25rem; min-width:0; padding:0; border:0; overflow-wrap:anywhere; }.smart-list__results td::before { color:#9a9a9a; content:attr(data-label); font-size:.625rem; font-weight:600; letter-spacing:.04em; text-transform:uppercase; }.detail-bridge > dl { grid-template-columns:repeat(3,minmax(0,1fr)); }.booking-form button { grid-column:span 2; } }
@media screen and (max-width: 767px) { .selection-flow { padding-inline:1rem; }.selection-map { min-height:clamp(31rem,76svh,40rem); border-radius:1rem; }.selection-map__base,.selection-map__overlay { width:min(140%,50rem); max-width:none; max-height:85%; }.selection-map__tooltip { top:clamp(6rem,16vw,8rem); width:calc(100% - 2rem); }.selection-map__tooltip dl { grid-template-columns:repeat(2,minmax(0,1fr)); }.selection-map__tooltip dl div:last-child { grid-column:span 2; }.selection-map__select { min-width:10rem; min-height:3.5rem; padding-inline:1.25rem; }.selection-map__zoom { gap:.625rem; }.selection-map__zoom button { width:3.5rem; }.smart-list__filters { padding:1rem; }.smart-list__selects { grid-template-columns:1fr; }.smart-list__range { grid-template-columns:auto 1fr auto; }.smart-list__range span { display:none; }.smart-list__range output:first-of-type { display:none; }.smart-list__results tbody { grid-template-columns:1fr; }.smart-list__results tr { grid-template-columns:repeat(2,minmax(0,1fr)); }.smart-list__results td:first-child,.smart-list__results td:nth-child(7) { grid-column:span 2; }.flow-summary { display:flex; gap:1rem; padding-bottom:.5rem; overflow-x:auto; scroll-snap-type:x mandatory; }.flow-summary div { flex:0 0 min(78vw,20rem); scroll-snap-align:start; }.detail-bridge > dl { grid-template-columns:repeat(2,minmax(0,1fr)); }.detail-bridge__actions { align-items:stretch; flex-direction:column; }.detail-bridge__actions a,.detail-bridge__actions button,.flow-continue { width:100%; margin-left:0; text-align:center; }.booking-form form { grid-template-columns:1fr; }.booking-form__message,.booking-form button { grid-column:1; }.floor-list button { align-items:flex-start; flex-direction:column; } }
@media (prefers-reduced-motion:reduce) { }

/* Anchor the information card beside its real SVG layer instead of at a fixed map coordinate. */
.selection-map__tooltip { top:var(--tooltip-y); left:var(--tooltip-x); }
@media screen and (max-width: 767px) { .selection-map__tooltip { top:var(--tooltip-y); } }

/* Established Jižní Svahy proportions: 1184px content rail, 42px desktop heading and 20px tab labels. */
.selection-flow,.selection-shell { width:min(100%,74rem); }
.selection-switch button { min-height:3.5625rem; font-size:clamp(1rem,1.5625vw,1.25rem); font-weight:600; line-height:1; }
.selection-map__select { min-height:4.25rem; font-size:1.125rem; }.selection-map__zoom { gap:.9375rem; }.selection-map__zoom button { width:3.6875rem; }

/* Dual-ended filter sliders. The visible rail belongs to the wrapper, never to a browser default range track. */
.smart-list__range { min-inline:0; padding:0 1.25rem; border:0; }.smart-list__range-label { color:var(--sf-muted); font:inherit; }.smart-list__range-track { position:relative; z-index:0; min-width:4rem; height:1.5rem; }.smart-list__range-track::before,.smart-list__range-track::after { position:absolute; top:50%; height:.25rem; border-radius:999rem; content:""; transform:translateY(-50%); }.smart-list__range-track::before { z-index:0; inset-inline:0; background:#bdbdbd; }.smart-list__range-track::after { z-index:1; left:var(--range-left); right:var(--range-right); background:var(--sf-charcoal); }.smart-list__range-track input { position:absolute; inset:0; z-index:2; width:100%; height:100%; margin:0; appearance:none; -webkit-appearance:none; pointer-events:none; background:transparent; }.smart-list__range-track input::-webkit-slider-runnable-track { height:.25rem; background:transparent; }.smart-list__range-track input::-moz-range-track { height:.25rem; border:0; background:transparent; }.smart-list__range-track input::-webkit-slider-thumb { width:1.25rem; height:1.25rem; margin-top:-.5rem; appearance:none; -webkit-appearance:none; border:.1875rem solid var(--sf-charcoal); border-radius:50%; background:#fff; box-shadow:0 .125rem .25rem rgb(18 18 18 / .16); cursor:grab; pointer-events:auto; }.smart-list__range-track input::-moz-range-thumb { width:.875rem; height:.875rem; border:.1875rem solid var(--sf-charcoal); border-radius:50%; background:#fff; box-shadow:0 .125rem .25rem rgb(18 18 18 / .16); cursor:grab; pointer-events:auto; }.smart-list__range-track input:focus-visible::-webkit-slider-thumb { outline:.1875rem solid rgb(212 155 94 / .45); outline-offset:.125rem; }.smart-list__range-track input:focus-visible::-moz-range-thumb { outline:.1875rem solid rgb(212 155 94 / .45); outline-offset:.125rem; }
.smart-list__pill { width:max-content; max-width:100%; white-space:nowrap; }.smart-list__results td[data-label="Dispozice"] { min-width:max-content; }
@media screen and (max-width: 991px) { .smart-list__results tr { grid-template-areas:"number availability" "building floor" "disposition area" "price documentation"; }.smart-list__results td:nth-child(1) { grid-area:number; }.smart-list__results td:nth-child(2) { grid-area:building; }.smart-list__results td:nth-child(3) { grid-area:floor; }.smart-list__results td:nth-child(4) { grid-area:disposition; align-self:start; }.smart-list__results td:nth-child(5) { grid-area:area; }.smart-list__results td:nth-child(6) { grid-area:price; }.smart-list__results td:nth-child(7) { grid-area:availability; justify-self:end; }.smart-list__results td:nth-child(8) { grid-area:documentation; }.smart-list__range { grid-template-columns:auto auto minmax(6rem,1fr) auto; } }
@media screen and (max-width: 767px) { .selection-switch button { min-height:3.25rem; padding-inline:1rem; font-size:.9375rem; }.selection-map__select { min-height:3.5rem; }.selection-map__zoom { gap:.5rem; }.selection-map__zoom button { width:3rem; font-size:1.75rem; }.smart-list__range { grid-template-columns:auto minmax(5rem,1fr) auto; }.smart-list__range-label { display:none; }.smart-list__range output:first-of-type { display:block; }.smart-list__results td:nth-child(7) { justify-self:start; }.smart-list__results tr { grid-template-areas:"number availability" "building floor" "disposition area" "price documentation"; }.smart-list__results td:first-child,.smart-list__results td:nth-child(7) { grid-column:auto; } }

/* Storage and parking keep the label on the left and the live selection data on the right. */
.flow-header__title-row { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }.flow-header__title-row h1 { flex:1 1 auto; }.flow-primary-action { display:inline-flex; flex:0 0 auto; align-items:center; gap:1rem; min-height:3.5625rem; padding:.375rem .4375rem .375rem 1.5rem; border:0; border-radius:999rem; color:#fff; background:var(--sf-accent); cursor:pointer; font-size:1rem; font-weight:700; }.flow-primary-action:disabled { cursor:not-allowed; opacity:.45; }.flow-primary-action img { display:block; width:2.5rem; height:2.5rem; }.selection-summary { display:flex; align-items:flex-start; justify-content:space-between; gap:clamp(2rem,6vw,7rem); margin:0 0 clamp(1.5rem,3vw,3rem); }.selection-summary h2 { flex:0 0 auto; margin:0; font-size:clamp(1.5rem,2vw,2rem); font-weight:500; line-height:1.2; }.selection-summary__items { display:grid; flex:1 1 auto; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1.25rem,4vw,4rem); width:min(100%,44rem); margin:0; }.selection-summary__items div { min-width:0; }.selection-summary__items dt { margin-bottom:.5rem; color:var(--sf-accent); font-size:.6875rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }.selection-summary__items dd { display:grid; gap:.25rem; margin:0; }.selection-summary__items strong { font-size:clamp(1.125rem,1.7vw,1.5rem); line-height:1.15; }.selection-summary__items span { color:var(--sf-muted); font-family:Inter,Arial,sans-serif; font-size:.875rem; line-height:1.35; }.selection-summary__items .is-empty { display:block; width:min(100%,13rem); min-height:1.5rem; border-bottom:.0625rem solid var(--sf-charcoal); }

@media screen and (max-width:991px) { .smart-list__pill { display:inline; padding:0; border-radius:0; background:transparent; font-size:inherit; }.smart-list__results td[data-label="Dostupnost"]::before { display:none; }.selection-summary { gap:1.5rem; }.selection-summary__items { gap:1.5rem; }.flow-primary-action { min-height:3.25rem; padding:.3125rem .375rem .3125rem 1.25rem; } }
@media screen and (max-width:767px) { .flow-header__title-row { align-items:flex-start; flex-direction:column; gap:1rem; }.flow-primary-action { width:100%; justify-content:space-between; }.selection-summary { display:grid; gap:1.25rem; }.selection-summary__items { width:100%; grid-template-columns:1fr; overflow:visible; padding-bottom:0; scroll-snap-type:none; }.selection-summary__items div { scroll-snap-align:none; }.selection-summary__items .is-empty { width:100%; } }
@media screen and (max-height:32rem) and (orientation:landscape) { .selection-summary { display:grid; gap:1rem; }.selection-summary__items { width:100%; grid-template-columns:1fr; gap:1rem; overflow:visible; padding:0; } }

.flow-primary-action img { padding:.7rem; transform:rotate(90deg); border-radius:50%; background:#fff; }

/* Card rows must not retain the desktop table row height. */
@media screen and (max-width:991px) { .smart-list__results tr { gap:.75rem 1rem; padding:1rem 1.25rem; }.smart-list__results td { min-height:0; gap:.1875rem; }.smart-list__results td:nth-child(7) { align-self:center; } }

/* The host Webflow container owns the content width. Type uses fixed rem steps, never viewport-based scaling. */
.selection-flow,.selection-shell { width:100%; max-width:none; margin-inline:0; }
.selection-flow { padding:2.5rem 0 4rem; }
.flow-header { gap:1.5rem; margin-block-end:3rem; }
.selection-switch { margin-bottom:1.5rem; }.selection-switch button { padding-inline:1.75rem; font-size:1.25rem; }
.selection-map__tooltip { padding:1.5rem; }.selection-map__tooltip strong { font-size:1.5rem; }.selection-map__tooltip dd { font-size:1.375rem; }
.smart-list { width:100%; margin-inline:0; }.smart-list__filters { padding:1.5rem; }.smart-list__results { margin-top:3.5rem; }
.selection-summary { gap:4rem; margin-bottom:3rem; }.selection-summary h2 { font-size:2rem; }.selection-summary__items { gap:3rem; }.selection-summary__items strong { font-size:1.5rem; }

/* Motion follows the existing quiet, premium visual language and respects reduced-motion preferences. */
@keyframes selection-reveal { from { opacity:0; transform:translateY(.75rem); } to { opacity:1; transform:translateY(0); } }
.selection-map,.smart-list,.selection-summary,.detail-bridge,.booking-form,.floor-list { animation:selection-reveal .42s cubic-bezier(.2,.75,.25,1) both; }
.selection-switch button,.selection-map__zoom button,.selection-map__select,.flow-back,.flow-primary-action,.detail-bridge__actions a,.detail-bridge__actions button,.booking-form button,.floor-list button,.smart-list__results tr,.selection-status { transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease,opacity .2s ease; }
.selection-switch button:not(.is-active):hover { background:#f0eeeb; }.selection-switch button:active,.selection-map__zoom button:active,.flow-primary-action:active { transform:scale(.96); }
.selection-map__zoom button:hover { transform:translateY(-.1875rem); box-shadow:0 .5rem 1.25rem rgb(18 18 18 / .2); }.selection-map__select:hover { background:#3b3b3b; }
.flow-back:hover { transform:translateX(-.25rem); }.flow-primary-action:not(:disabled):hover { transform:translateY(-.1875rem); box-shadow:0 .75rem 1.5rem rgb(212 155 94 / .28); }
.smart-list tr.is-available:hover { transform:translateY(-.1875rem); box-shadow:0 .5rem 1.25rem rgb(18 18 18 / .08); }.smart-list a:hover { text-decoration:underline; }.floor-list button:hover { transform:translateY(-.1875rem); border-color:var(--sf-accent); box-shadow:0 .5rem 1.25rem rgb(18 18 18 / .08); }
.smart-list__search:focus-within,.smart-list__range:focus-within { box-shadow:0 0 0 .1875rem rgb(212 155 94 / .25); }

@media screen and (max-width:991px) { .selection-flow { padding-block:2rem 3rem; }.flow-header { margin-block-end:2rem; }.selection-switch button { font-size:1.125rem; }.selection-map__tooltip strong { font-size:1.25rem; }.selection-map__tooltip dd { font-size:1.125rem; }.smart-list__filters { padding:1.25rem; }.smart-list__results { margin-top:2.5rem; }.selection-summary { gap:1.5rem; margin-bottom:2rem; }.selection-summary h2 { font-size:1.75rem; }.selection-summary__items { gap:1.5rem; }.selection-summary__items strong { font-size:1.25rem; } }
@media screen and (max-width:767px) { .selection-flow { padding-block:1.5rem 2.5rem; }.flow-header { gap:1rem; margin-block-end:1.5rem; }.selection-switch button { font-size:.9375rem; }.selection-map__tooltip { padding:1rem; }.selection-map__tooltip strong { font-size:1.125rem; }.selection-map__tooltip dd { font-size:1rem; }.smart-list__filters { padding:1rem; }.smart-list__results { margin-top:2rem; }.selection-summary { margin-bottom:1.5rem; }.selection-summary h2 { font-size:1.5rem; }.selection-summary__items strong { font-size:1.125rem; } }
@media (prefers-reduced-motion:reduce) { .selection-map,.smart-list,.selection-summary,.detail-bridge,.booking-form,.floor-list { animation:none; }.selection-switch button,.selection-map__zoom button,.selection-map__select,.flow-back,.flow-primary-action,.detail-bridge__actions a,.detail-bridge__actions button,.booking-form button,.floor-list button,.smart-list__results tr,.selection-status { transition:none; } }

/* Final component scale contract: all visible dimensions use rem values at the site's native breakpoints. */
.selection-map { min-height:50rem; }.selection-map__awaiting-assets { padding:1.5rem; }.selection-map__compass { top:1.875rem; right:1.875rem; width:6rem; }.selection-map__context-control { bottom:1.875rem; left:1.875rem; }.selection-map__zoom { right:1.875rem; bottom:1.875rem; }.selection-map__zoom button { width:3.6875rem; }.selection-map__select { min-height:4.25rem; }
.detail-bridge { gap:1.5rem; }.detail-bridge h2 { font-size:3.5rem; }.detail-bridge dd { font-size:1.5rem; }.booking-form form { gap:2.5rem; margin-top:4rem; }.flow-continue,.detail-bridge__actions button,.booking-form button { margin-top:2.5rem; }
@media screen and (max-width:991px) { .selection-map { min-height:42rem; }.selection-map__compass { top:1.5rem; right:1.5rem; width:4.5rem; }.selection-map__context-control { bottom:1.5rem; left:1.5rem; }.selection-map__zoom { right:1.5rem; bottom:1.5rem; }.detail-bridge h2 { font-size:2.75rem; }.detail-bridge dd { font-size:1.25rem; }.booking-form form { gap:2rem; margin-top:3rem; } }
@media screen and (max-width:767px) { .selection-map { min-height:34rem; }.selection-map__compass { top:1rem; right:1rem; width:3.75rem; }.selection-map__context-control { bottom:1.25rem; left:1.25rem; }.selection-map__zoom { right:1.25rem; bottom:1.25rem; }.detail-bridge h2 { font-size:2.25rem; }.detail-bridge dd { font-size:1.125rem; }.booking-form form { gap:1.5rem; margin-top:2rem; } }

/* Match the compact action and selection rhythm used by the apartment template. */
.selection-summary h2 { font-size:1.5rem; font-weight:500; }.selection-summary__items strong { font-size:1.25rem; }
.selection-summary { align-items:center; }
.flow-primary-action,.detail-bridge__actions a,.detail-bridge__actions button,.booking-form button { display:inline-flex; align-items:center; justify-content:center; min-height:3.5625rem; margin:0; padding:.375rem 1.5rem; line-height:1; }.flow-primary-action { justify-content:space-between; min-width:12.25rem; gap:.75rem; padding-right:.375rem; }.flow-primary-action img { flex:0 0 auto; }.detail-bridge__actions { align-items:center; }.detail-bridge__actions a,.detail-bridge__actions button { min-width:0; }.flow-primary-action:not(:disabled):hover { transform:none; background:#c98e50; box-shadow:none; }.flow-primary-action:not(:disabled):hover img { transform:rotate(90deg) translateY(-.25rem); }.flow-primary-action img { transition:transform .24s cubic-bezier(.2,.75,.25,1); }.detail-bridge__actions a:hover,.detail-bridge__actions button:hover,.booking-form button:hover { transform:none; filter:brightness(.96); }
@keyframes smart-card-enter { from { opacity:0; transform:translateY(.5rem); } to { opacity:1; transform:translateY(0); } }
.smart-list__results { view-transition-name:smart-list-results; }.smart-list__results tr { animation:smart-card-enter .28s cubic-bezier(.2,.75,.25,1) both; }

/* Compact tabs and neutral result cards: selection is indicated by the click target, not decorative hover motion. */
.selection-switch { padding:.25rem; margin-bottom:1rem; }
.selection-switch button { min-height:2.75rem; padding-inline:1.25rem; font-size:1rem; font-weight:500; }
.selection-map__zoom button { color:#fff; font-family:Inter,Arial,sans-serif; font-size:2.125rem; font-weight:300; line-height:1; }
.smart-list tr.is-available:hover { background:transparent; box-shadow:none; transform:none; }
@media screen and (max-width:991px) { .selection-switch button { min-height:2.625rem; padding-inline:1.125rem; font-size:.9375rem; } }
@media screen and (max-width:767px) { .selection-switch { margin-inline:auto; }.selection-switch button { min-height:2.5rem; padding-inline:1rem; font-size:.875rem; } }
::view-transition-old(smart-list-results) { animation:smart-list-fade-out .18s ease both; } ::view-transition-new(smart-list-results) { animation:smart-list-fade-in .26s cubic-bezier(.2,.75,.25,1) both; }
@keyframes smart-list-fade-out { to { opacity:0; transform:translateY(-.375rem); } } @keyframes smart-list-fade-in { from { opacity:0; transform:translateY(.375rem); } to { opacity:1; transform:translateY(0); } }
@media screen and (max-width:991px) { .selection-summary h2 { font-size:1.375rem; }.selection-summary__items strong { font-size:1.125rem; }.flow-primary-action,.detail-bridge__actions a,.detail-bridge__actions button,.booking-form button { min-height:3.25rem; padding-inline:1.25rem; }.flow-primary-action { min-width:10.5rem; padding-right:1.25rem; }.flow-primary-action img { display:none; } }
@media screen and (max-width:767px) { .selection-summary { align-items:start; }.selection-summary h2 { font-size:1.25rem; }.selection-summary__items strong { font-size:1rem; }.flow-primary-action,.detail-bridge__actions a,.detail-bridge__actions button,.booking-form button { min-height:3rem; } }
@media (prefers-reduced-motion:reduce) { .smart-list__results tr { animation:none; }.flow-primary-action img { transition:none; } ::view-transition-old(smart-list-results),::view-transition-new(smart-list-results) { animation:none; } }

/* Existing apt-title-action-continue proportion: 250 × 56 on desktop, compact text-only CTA below tablet. */
.selection-summary h2 { font-size:1.125rem; }.flow-primary-action { min-width:15.625rem; min-height:3.5rem; padding-left:2rem; transition:background-color .24s ease,color .24s ease,opacity .24s ease; }.flow-primary-action:not(:disabled):hover { background:#c99053; }.flow-primary-action:not(:disabled):focus-visible,.detail-bridge__actions a:focus-visible,.detail-bridge__actions button:focus-visible,.booking-form button:focus-visible { outline:.1875rem solid rgb(212 155 94 / .4); outline-offset:.1875rem; }
@media screen and (max-width:991px) { .selection-summary h2 { font-size:1rem; }.flow-primary-action { min-width:12.5rem; min-height:3.25rem; padding-inline:1.5rem; } }
@media screen and (max-width:767px) { .selection-summary h2 { font-size:1rem; }.flow-primary-action { min-width:0; min-height:3rem; } }

/* Shared action anatomy: text + independent icon disc, matching the existing apartment CTA rather than styling the image itself. */
.selection-summary h2 { font-size:1rem; }.flow-back { display:inline-flex; align-items:center; gap:.625rem; min-height:1.5rem; font-size:1rem; line-height:1; }.flow-back::before { display:none; content:none; }.flow-back__icon { display:grid; width:1.5rem; height:1.5rem; place-items:center; overflow:hidden; }.flow-back__icon img { display:block; width:1rem; height:1rem; transform:rotate(-90deg); transition:transform .24s cubic-bezier(.2,.75,.25,1); }.flow-back:hover { transform:none; }.flow-back:hover .flow-back__icon img { transform:rotate(-90deg) translateY(-.1875rem); }
.flow-primary-action { min-width:15.625rem; min-height:3.5rem; padding:.375rem .4375rem .375rem 1.5rem; border-radius:999rem; }.flow-primary-action__label { flex:1; text-align:center; }.flow-primary-action__icon { display:grid; flex:0 0 2.5rem; width:2.5rem; height:2.5rem; place-items:center; border-radius:50%; background:#fff; }.flow-primary-action img { width:1rem; height:1rem; padding:0; border-radius:0; background:transparent; transform:rotate(90deg); }.flow-primary-action:not(:disabled):hover img { transform:rotate(90deg) translateY(-.1875rem); }.flow-primary-action:active { transform:none; }.flow-primary-action:active .flow-primary-action__icon { transform:scale(.93); }.flow-primary-action__icon { transition:transform .2s ease; }
@media screen and (max-width:991px) { .selection-summary h2 { font-size:.9375rem; }.flow-primary-action { min-width:12.5rem; min-height:3.25rem; padding-inline:1.5rem; }.flow-primary-action__icon { display:none; }.flow-primary-action__label { text-align:center; } }
@media screen and (max-width:767px) { .selection-summary h2 { font-size:.9375rem; }.flow-primary-action { min-width:0; min-height:3rem; } }

/* Blank future selections use the two-line placeholder from the Figma flow. */
.selection-summary__items .is-empty { display:grid; grid-template-rows:repeat(2,.0625rem); gap:.625rem; width:min(100%,13rem); min-height:1.25rem; padding-top:.1875rem; border:0; }.selection-summary__items .is-empty i { display:block; width:100%; border-top:.0625rem solid var(--sf-charcoal); }.selection-summary__items .is-empty i:last-child { width:43%; }
.flow-primary-action { justify-content:center; padding-inline:2rem; }.flow-primary-action__label,.flow-primary-action__icon { display:none; }
@media screen and (max-width:767px) { .selection-summary__items .is-empty { width:100%; } }

.smart-list__range-track { cursor:pointer; touch-action:pan-y; }

/* The Webflow section owns page background and vertical rhythm. */
.selection-flow,.apartment-selection { min-height:0; padding:0; background:transparent; }

/* Reservation summary: visible two-line empty state on every surface. */
.selection-summary { --sf-ink:#121212; --sf-accent:#d49b5e; --sf-muted:#6b6866; }
.selection-summary__items dd > .is-empty { display:grid; grid-template-rows:repeat(2,.0625rem); gap:.625rem; justify-items:start; width:min(100%,13rem); min-height:1.25rem; padding-top:.1875rem; }
.selection-summary__items dd > .is-empty i { display:block; width:100%; height:.0625rem; border:0; background:var(--sf-ink); }
.selection-summary__items dd > .is-empty i:last-child { width:43%; }
@media screen and (max-width:767px), screen and (max-height:32rem) and (orientation:landscape) { .selection-summary__items dd > .is-empty { width:100%; } }

/* The step action deliberately shares the existing Byty Template class.
   It is not the navigation `cta-btn` with the circular arrow. */
.flow-step-header .flow-primary-action {
  min-height:unset;
  height:auto;
  padding:.75rem 1.5rem;
  font-size:1rem;
  font-weight:500;
  line-height:1.2;
}
.flow-step-header .flow-back {
  min-height:0;
  height:auto;
  gap:.875rem;
  padding:0;
  font-size:1rem;
  font-weight:400;
  line-height:1.2;
}
.flow-step-header .flow-back__icon { width:.7142857143rem; height:1.25rem; }
.flow-step-header .flow-back__icon img { width:auto; height:1.25rem; max-width:100%; }
.selection-switch button { min-height:0; height:2.75rem; }
.selection-map__select { min-height:0; height:3.25rem; }
.detail-bridge__actions a,.detail-bridge__actions button,.booking-form button {
  min-height:unset;
  height:auto;
  padding:.75rem 1.5rem;
  font-size:1rem;
  font-weight:500;
  line-height:1.2;
}
.smart-list__search,.smart-list__selects label,.smart-list__range { min-height:0; height:2.875rem; }
.smart-list td { min-height:0; }

@media screen and (min-width:1440px) {
  .flow-step-header .flow-primary-action { padding:.875rem 1.75rem; font-size:1.125rem; }
  .detail-bridge__actions a,.detail-bridge__actions button,.booking-form button { padding:.875rem 1.75rem; font-size:1.125rem; }
}
@media screen and (max-width:991px) {
  .flow-step-header .flow-primary-action { min-height:unset; height:auto; padding:.75rem 1.375rem; font-size:1rem; }
  .selection-switch button { min-height:0; height:2.625rem; }
  .selection-map__select { min-height:0; height:3rem; }
  .detail-bridge__actions a,.detail-bridge__actions button,.booking-form button { min-height:unset; height:auto; padding:.75rem 1.375rem; font-size:1rem; }
}
@media screen and (max-width:767px) {
  .flow-step-header .flow-primary-action { min-height:unset; height:auto; padding:.6875rem 1.25rem; font-size:.9375rem; }
  .selection-switch button { min-height:0; height:2.5rem; }
  .selection-map__select { min-height:0; height:2.875rem; }
  .detail-bridge__actions a,.detail-bridge__actions button,.booking-form button { min-height:unset; height:auto; padding:.6875rem 1.25rem; font-size:.9375rem; }
}

/* Selection-step header and empty future values follow the existing Byty Template hierarchy. */
.flow-step-header { gap:2rem; margin-bottom:2.5rem; }
.flow-step-header .flow-header__title-row { align-items:center; }
.flow-step-header .flow-primary-action { display:inline-flex; min-width:0; }
.flow-step-header .flow-back__icon img { width:auto; height:1.25rem; transform:none; }
.flow-step-header .flow-back:hover .flow-back__icon img { transform:none; }
.selection-summary__items dd > .selection-empty-lines { display:grid !important; grid-template-rows:repeat(2,.0625rem); align-content:start; gap:1.25rem; width:min(100%,11rem); min-height:1.375rem; margin-top:.625rem; }
.selection-summary__items dd > .selection-empty-lines > span { display:block !important; width:100%; height:.0625rem; margin:0; padding:0; background:var(--sf-ink); color:transparent; font-size:0; line-height:0; }
.selection-summary__items dd > .selection-empty-lines > span:last-child { width:43%; }
.selection-map__select { min-width:10rem; padding-inline:1.25rem; font-size:1rem; }
.selection-map__select select { position:absolute; inset:0; z-index:1; width:100%; height:100%; padding:0 3rem 0 1.25rem; color-scheme:dark; }
.selection-map__select select option { color:#fff; background:var(--sf-charcoal); }
.selection-map__select img { position:absolute; right:1.25rem; z-index:2; }
@media screen and (max-width:991px) { .flow-step-header { gap:1.5rem; margin-bottom:2rem; }.flow-step-header .flow-primary-action { min-width:0; }.selection-map__select { min-width:9.25rem; font-size:.9375rem; } }
@media screen and (max-width:767px) { .flow-step-header { gap:1rem; margin-bottom:1.5rem; }.flow-step-header .flow-header__title-row { align-items:stretch; }.selection-summary__items dd > .selection-empty-lines { width:100%; }.selection-map__select { min-width:8.75rem; padding-inline:1rem; font-size:.875rem; } }

/* Selection summary: heading stays independently aligned on the left; the three
   live choices form one right-hand row, as on the Byty flow reference. */
.selection-summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2.5rem;
}
.selection-summary h2 {
  flex:0 0 auto;
  margin:0;
}
.selection-summary__items {
  flex:0 1 55rem;
  width:auto;
  margin-left:auto;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:2.5rem;
}
@media screen and (max-width:991px) {
  .selection-summary { gap:1.5rem; }
  .selection-summary__items { flex:1 1 auto; gap:1.5rem; }
}
@media screen and (max-width:767px), screen and (max-height:32rem) and (orientation:landscape) {
  .selection-summary { display:grid; align-items:start; gap:1.25rem; }
  .selection-summary__items { width:100%; grid-template-columns:1fr; gap:1.25rem; margin-left:0; }
}

/* Exact H1 scale from the existing Webflow typography: Byty Template. */
.flow-step-header h1.apt-title {
  margin:0;
  font-size:3rem;
  font-weight:600;
  line-height:1.2;
}
@media screen and (min-width:1440px) {
  .flow-step-header h1.apt-title { font-size:3.5rem; }
}
@media screen and (max-width:991px) {
  .flow-step-header h1.apt-title { font-size:2.5rem; }
}

/* PNG and SVG share one measured canvas.  Their source aspect ratio is identical,
   so this prevents either layer from being fitted independently by the map frame. */
.selection-map__canvas { position:relative; grid-area:1 / 1; max-width:92%; max-height:91%; }
.selection-map__canvas > .selection-map__base,
.selection-map__canvas > .selection-map__overlay { position:absolute; inset:0; display:block; width:100%; height:100%; max-height:none; }
.selection-map__canvas > .selection-map__base { object-fit:fill; }
.selection-map__canvas > .selection-map__overlay { pointer-events:none; }
.selection-map__canvas > .selection-map__overlay svg { display:block; width:100%; height:100%; max-height:none; overflow:visible; }
.selection-map__canvas > .selection-map__overlay,
.selection-map__canvas > .selection-map__overlay svg { pointer-events:auto; }


/* Let the price wrap instead of forcing it beyond the information card. */
.selection-map__tooltip { max-width:calc(100% - 2rem); }
.selection-map__tooltip dl { grid-template-columns:repeat(auto-fit,minmax(8rem,1fr)); }
.selection-map__tooltip dd { min-width:0; overflow-wrap:anywhere; white-space:normal; }

/* Reference styling from the approved Figma screen. */
.selection-map__stage { cursor:default; }
.selection-map__stage.is-pan-enabled { cursor:grab; }
.selection-map__stage.is-pan-enabled:active { cursor:grabbing; }
.selection-map__tooltip { width:min(18rem,calc(100% - 2rem)); max-width:18rem; padding:1rem; border-radius:.5rem; transform:none; color:#fff; background:#2c2c2c; box-shadow:0 .75rem 1.5rem rgb(18 18 18 / .18); pointer-events:none; animation:map-tooltip-in .18s cubic-bezier(.2,.8,.2,1) both; }
.selection-map__tooltip-head { align-items:center; gap:.75rem; }
.selection-map__tooltip strong { min-width:0; overflow:hidden; font-family:Manrope,Inter,Arial,sans-serif; font-size:1.125rem; font-weight:600; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.selection-map__tooltip .selection-status { flex:0 0 auto; padding:.25rem .625rem; font-size:.75rem; }
.selection-map__tooltip dl { grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; margin-top:.75rem; }
.selection-map__tooltip dt { color:#d4d1ce; font-family:Inter,Arial,sans-serif; font-size:.6875rem; line-height:1.25; }
.selection-map__tooltip dd { overflow:visible; font-family:Manrope,Inter,Arial,sans-serif; font-size:1.125rem; font-weight:500; letter-spacing:-.02em; line-height:1.25; overflow-wrap:normal; white-space:nowrap; }
.selection-map__tooltip .selection-map__hint { margin:.75rem 0 0; font-family:Inter,Arial,sans-serif; font-size:.75rem; line-height:1.35; }
@keyframes map-tooltip-in { from { opacity:0; transform:translateY(.5rem) scale(.98); } to { opacity:1; transform:translateY(0) scale(1); } }
@media screen and (max-width: 767px) {
  .selection-map__tooltip { width:min(18rem,calc(100% - 2rem)); max-width:calc(100% - 2rem); }
  .selection-map__tooltip dl { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .selection-map__tooltip dl div:last-child { grid-column:span 2; }
}

/* Loading and attention cues: the map stays quiet after the two short pulses. */
.selection-map__base { opacity:0; transition:opacity .32s ease; }
.selection-map__base.is-loaded { opacity:1; }
@media (prefers-reduced-motion: reduce) { .selection-map__base { transition:none; } }

/* Keep the three apartment facts aligned even for a 4+kk mezonet. */
.selection-map__tooltip { width:min(20rem,calc(100% - 2rem)); max-width:20rem; }
.selection-map__tooltip dl { grid-template-columns:1.55fr 1fr 1.1fr; gap:.5rem; }
.selection-map__tooltip dd { font-size:1rem; white-space:nowrap; }
.selection-map__tooltip dl > div { min-width:0; }
@media screen and (max-width:767px) { .selection-map__tooltip dl { grid-template-columns:1.35fr 1fr; } .selection-map__tooltip dl div:last-child { grid-column:span 2; } }

/* The overlay itself must take pointer hits; zones are resolved from the SVG path under the cursor. */
.selection-map__overlay,.selection-map__overlay svg { pointer-events:all; }
.selection-map__select img { width:.875rem; height:.875rem; }
.selection-map__tooltip.is-leaving { animation:map-tooltip-out .3s ease forwards; }
@keyframes map-tooltip-out { to { opacity:0; transform:translateY(.375rem) scale(.98); } }

/* On touch, the information card never covers the plan: it becomes a bottom sheet. */
@media screen and (max-width:767px) {
  .selection-map { min-height:clamp(34rem,80svh,42rem); }
  .selection-map__tooltip { position:fixed !important; right:1rem; bottom:calc(1rem + env(safe-area-inset-bottom)); left:1rem !important; top:auto !important; z-index:2147483647; width:auto; max-width:none; transform:none !important; }
}

/* SVG geometry is stable; MapViewport alone owns highlight visibility and transitions. */
.selection-map__overlay [data-unit-id] { outline:none; cursor:pointer; }
.selection-map__overlay [data-unit-id]:focus-visible { stroke-width:2.5 !important; }

/* Building overview: one coordinate plane for the photograph, floors and labels. */
.selection-map.selection-map--building { min-height:0; aspect-ratio:16 / 9; }
.selection-map--building .selection-map__canvas { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); max-width:none; max-height:none; flex-shrink:0; }
.selection-map__construction { position:absolute; z-index:1; padding:.5rem .75rem; border-radius:.375rem; background:var(--sf-charcoal,#2c2c2c); color:#e7e7e7; font-family:Manrope,Arial,sans-serif; font-size:.875rem; font-weight:500; line-height:1.25; white-space:nowrap; pointer-events:none; }
@media screen and (max-width:767px) {
  .selection-map.selection-map--building { aspect-ratio:auto; height:clamp(32rem,78svh,46rem); }
  .selection-map__construction { padding:.4375rem .625rem; font-size:.75rem; }
}
.smart-list__range--fixed { grid-template-columns:auto 1fr; gap:.5rem .75rem; padding-block:.625rem; }
.smart-list__range--fixed output:first-of-type,.smart-list__range--fixed span { display:block; }
.smart-list__range--fixed output { text-align:right; }

/* Full-width filters: search/selects left, price/area right. */
.smart-list__filters { width:100%; max-width:none; box-sizing:border-box; margin-inline:auto; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; padding:1.25rem; }
.smart-list__filters > .smart-list__search { grid-column:1; grid-row:1; }
.smart-list__filters > .smart-list__selects { grid-column:1; grid-row:2; }
.smart-list__filters > .smart-list__range-field { grid-column:2; grid-row:1; }
.smart-list__filters > .smart-list__range-field:last-child { grid-row:2; }
.smart-list__filters .smart-list__field { display:flex; flex-direction:column; align-items:stretch; gap:.5rem; min-width:0; height:auto; min-height:0; padding:0; border-radius:0; background:transparent; overflow:visible; box-shadow:none; }
.smart-list__filters .smart-list__label { display:block; font-family:inherit; font-size:.8125rem; font-weight:500; line-height:1.4; color:var(--sf-muted); }
.smart-list__selects { gap:1rem; grid-template-columns:repeat(3,minmax(0,1fr)); }
.smart-list__search input,.smart-list__select-control,.smart-list__filters .smart-list__range { box-sizing:border-box; height:3rem; min-height:3rem; border-radius:999rem; background:#f0f0f0; }
.smart-list__search input,.smart-list__select-control select { font:inherit; font-size:.9375rem; color:var(--sf-ink); }
.smart-list__search input { padding:0 1rem; }
.smart-list__select-control { position:relative; display:block; }
.smart-list__select-control select { appearance:none; -webkit-appearance:none; padding:0 2.75rem 0 1rem; }
.smart-list__select-control img { position:absolute; right:1rem; top:50%; transform:translateY(-50%); width:.75rem; height:.75rem; pointer-events:none; filter:brightness(0); }
/* Stable value columns keep the native range's coordinate system unchanged
   while a value gains/loses digits (including the EN currency label). */
.smart-list__filters .smart-list__range { display:grid; grid-template-columns:4.75rem minmax(0,1fr) 4.75rem; gap:.75rem; padding:0 1rem; }
.smart-list__filters .smart-list__range output { display:block; font-size:.8125rem; font-variant-numeric:tabular-nums; white-space:nowrap; }
.smart-list__filters .smart-list__range output:last-child { text-align:right; }
.smart-list__filters .smart-list__range--fixed { grid-template-columns:1fr; }
.smart-list__filters .smart-list__range--fixed output { text-align:left; }
.smart-list__search input:focus-visible,.smart-list__select-control:focus-within,.smart-list__filters .smart-list__range:focus-within { outline:2px solid var(--sf-accent); outline-offset:2px; }
.selection-map__compass { width:4.5rem; }
.selection-map__select img { right:1rem; }
.selection-map__select select { padding-right:2.75rem; }
.selection-map__loading { position:absolute; inset:0; z-index:3; display:flex; align-items:center; justify-content:center; gap:.75rem; background:rgb(241 238 228 / .88); color:var(--sf-muted); font-size:.875rem; pointer-events:none; }
.selection-map__spinner { width:1.5rem; height:1.5rem; border:2px solid rgb(44 44 44 / .18); border-top-color:var(--sf-charcoal); border-radius:50%; animation:map-loading-spin .8s linear infinite; }
@keyframes map-loading-spin { to { transform:rotate(360deg); } }
@media(max-width:1023px) { .smart-list__filters { grid-template-columns:1fr; }.smart-list__filters > .smart-list__search,.smart-list__filters > .smart-list__selects,.smart-list__filters > .smart-list__range-field,.smart-list__filters > .smart-list__range-field:last-child { grid-column:auto; grid-row:auto; } }
@media(max-width:767px) { .smart-list__filters { max-width:none; width:100%; padding:1rem; }.selection-map__compass { width:3rem; } }
@media(max-width:479px) { .smart-list__selects { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { .selection-map__spinner { animation:none; } }
@media(max-width:767px) { .selection-map__zoom button { width:2.75rem; } }

