narty-2027/pages/porownanie.html
oskar de10b94bd9 Archiwum ofert spoza paczki + wyjazd.md na termin 6–13.02.2027
dom-dla-grupy i alpenparks-rehrenberg zostają w bazie jako karty
ARCHIWALNE: riscercz 08.2026 objął tylko obiekty z paczki, więc ich ceny
i dostępność opisują poprzedni termin (16–23.01) i dziś wprowadzałyby
w błąd. Oznaczone `priorytet: ARCHIWALNA (poza paczką 08.2026)` +
`archiwalna_od`, z ostrzeżeniem na górze body. Wypadają z tabeli
porównawczej i ze statusów dostępności (osobna sekcja Archiwum).

wyjazd.md przepisany od zera na nowy termin:
- tabela porównawcza czterech regionów z nowymi budżetami
- tabela dostępności 10 ofert z legendą //🔍 i bilansem
  (1 zweryfikowany status, i to negatywny — 9 do weryfikacji)
- nowe wnioski przekrojowe (Kronplatz najlepiej znosi termin,
  Saalbach traci przewagę cenową, Ischgl konkurencyjny z Kappl,
  SFL bez styczniowej przewagi)
- nowa sekcja "Plan B na wypadek pełnego tygodnia" (13–20.02
  i 27.02–06.03 na podstawie zweryfikowanego kalendarza Glemm Lodge)

Usunięte jako nieaktualne: wniosek o przewadze cenowej SFL (styczeń
= ich niski sezon), ranking ofert wyceniony po stawkach styczniowych,
rekomendacja terminu 16–23.01 i alternatywy 9–16.01.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 09:57:09 +02:00

204 lines
26 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="pl">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Porównanie ofert — Ski 2027 — Skicircus Saalbach</title>
<style>
:root { color-scheme: light dark; --fg:#0f172a; --muted:#64748b; --bg:#ffffff;
--line:#e2e8f0; --accent:#0d9488; --chip:#f1f5f9; --quote:#f8fafc; }
@media (prefers-color-scheme: dark) {
:root { --fg:#e2e8f0; --muted:#94a3b8; --bg:#0f172a; --line:#334155;
--accent:#2dd4bf; --chip:#1e293b; --quote:#1e293b; }
}
* { box-sizing: border-box; }
body { margin: 0 auto; padding: 1.25rem 1rem 4rem; max-width: 46rem;
font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
font-size: 17px; line-height: 1.55; color: var(--fg); background: var(--bg);
-webkit-text-size-adjust: 100%; }
nav { font-size: .85rem; margin-bottom: 1.25rem; }
nav a { color: var(--muted); }
h1 { font-size: 1.55rem; line-height: 1.25; margin: 0 0 .35rem; }
h2 { font-size: 1.2rem; margin: 2rem 0 .5rem; padding-top: .5rem;
border-top: 1px solid var(--line); }
h3 { font-size: 1.02rem; margin: 1.4rem 0 .4rem; }
p, ul, ol { margin: .6rem 0; }
ul, ol { padding-left: 1.3rem; }
li { margin: .25rem 0; }
li.task { list-style: none; margin-left: -1.3rem; }
li.task input { margin-right: .45rem; }
a { color: var(--accent); }
a.ext::after { content: " ↗"; font-size: .8em; color: var(--muted); }
code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .88em;
background: var(--chip); padding: .1em .35em; border-radius: 4px; }
pre { background: var(--chip); padding: .75rem; border-radius: 6px; overflow-x: auto; }
pre code { background: none; padding: 0; }
blockquote { margin: .9rem 0; padding: .6rem .9rem; background: var(--quote);
border-left: 3px solid var(--accent); border-radius: 0 6px 6px 0; }
blockquote p { margin: .2rem 0; }
hr { border: 0; border-top: 1px solid var(--line); margin: 1.5rem 0; }
.table-wrap { overflow-x: auto; margin: .8rem 0; -webkit-overflow-scrolling: touch; }
table { border-collapse: collapse; width: 100%; font-size: .92rem; }
th, td { border: 1px solid var(--line); padding: .4rem .55rem; vertical-align: top; }
th { background: var(--chip); font-weight: 600; }
.chip { display: inline-block; background: var(--chip); color: var(--muted);
font-size: .72rem; text-transform: uppercase; letter-spacing: .04em;
padding: .15rem .5rem; border-radius: 999px; }
.lead { color: var(--muted); margin: .35rem 0 1.25rem; }
.meta { margin: 0 0 1.5rem; }
.meta summary { cursor: pointer; font-size: .85rem; color: var(--muted);
padding: .3rem 0; }
.meta table { font-size: .85rem; }
.meta th { width: 38%; text-align: left; font-weight: 500; word-break: break-word; }
.cards { list-style: none; padding: 0; margin: 0; }
.cards li { border: 1px solid var(--line); border-radius: 8px; padding: .8rem .9rem;
margin: .6rem 0; }
.cards a { font-weight: 600; text-decoration: none; }
.cards p { margin: .3rem 0 0; font-size: .9rem; color: var(--muted); }
footer { margin-top: 3rem; padding-top: 1rem; border-top: 1px solid var(--line);
font-size: .78rem; color: var(--muted); }
/* landing: kafle i lista regionów */
body.wide { max-width: 72rem; }
.tiles, .regions { list-style: none; padding: 0; }
.tiles { margin: 1.25rem 0 2rem; display: grid; gap: .75rem; }
.regions { margin: .6rem 0 0; display: grid; gap: .5rem; }
@media (min-width: 34rem) {
.tiles { grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); }
.regions { grid-template-columns: repeat(2, 1fr); }
}
.tiles a, .regions a { display: block; border: 1px solid var(--line); border-radius: 10px;
padding: .9rem 1rem; text-decoration: none; color: var(--fg); }
.tiles a { font-size: 1.05rem; font-weight: 600; }
.tiles a:hover, .tiles a:focus, .regions a:hover, .regions a:focus {
border-color: var(--accent); }
.tiles small, .regions small { display: block; margin-top: .3rem; font-weight: 400;
font-size: .85rem; color: var(--muted); }
.regions a { font-weight: 600; }
/* podsumowanie per region na karcie porównania */
.summary { list-style: none; padding: 0; margin: .8rem 0 2rem; display: grid; gap: .6rem; }
@media (min-width: 48rem) { .summary { grid-template-columns: repeat(2, 1fr); } }
.summary li { border: 1px solid var(--line); border-left: 3px solid var(--accent);
border-radius: 8px; padding: .65rem .85rem; }
.summary .budget { font-size: .95rem; }
.summary p { margin: .35rem 0 0; font-size: .88rem; color: var(--muted); }
/* tabela porównawcza: sortowanie klikiem + kolor statusu ceny */
table.sortable th { cursor: pointer; user-select: none; white-space: nowrap; }
table.sortable th::after { content: " ↕"; font-size: .8em; opacity: .35; }
table.sortable th[data-dir="asc"]::after { content: " ↑"; opacity: 1; }
table.sortable th[data-dir="desc"]::after { content: " ↓"; opacity: 1; }
table.sortable td { font-size: .88rem; padding: .35rem .5rem; }
table.sortable td[data-num] { white-space: nowrap; }
table.sortable .name { font-weight: 600; }
tr.verified td { background: rgba(13, 148, 136, .14); }
tr.estimate td { background: rgba(100, 116, 139, .10); color: var(--muted); }
tr.estimate td.name a, tr.verified td.name a { color: var(--accent); }
.legend { font-size: .82rem; color: var(--muted); margin: .5rem 0 0; }
.legend .box { display: inline-block; width: .8em; height: .8em; border-radius: 3px;
border: 1px solid var(--line); vertical-align: -.05em; margin-right: .25em; }
.legend .box.v { background: rgba(13, 148, 136, .35); }
.legend .box.e { background: rgba(100, 116, 139, .25); }
/* miniatury w tabeli */
td.thumb { padding: .25rem; width: 128px; }
td.thumb img { width: 120px; height: 80px; object-fit: cover; border-radius: 6px;
display: block; }
td.thumb .placeholder { display: flex; width: 120px; height: 80px; border-radius: 6px;
align-items: center; justify-content: center; background: var(--chip);
color: var(--muted); font-weight: 700; letter-spacing: .05em;
text-decoration: none; }
/* galeria na karcie oferty */
.gallery { margin: 0 0 1.25rem; }
.gallery-main img { width: 100%; max-height: 24rem; object-fit: cover;
border-radius: 10px; display: block; background: var(--chip); }
.gallery-thumbs { display: flex; gap: .4rem; margin-top: .4rem; overflow-x: auto;
-webkit-overflow-scrolling: touch; padding-bottom: .2rem; }
.gallery-thumbs button { flex: 0 0 auto; padding: 0; border: 2px solid transparent;
border-radius: 6px; background: none; cursor: pointer; }
.gallery-thumbs button[aria-current] { border-color: var(--accent); }
.gallery-thumbs img { width: 5.5rem; height: 3.6rem; object-fit: cover;
border-radius: 4px; display: block; }
/* spis linków do kopiowania */
.copybar { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center;
margin: 1rem 0 1.5rem; }
.copybar button { font: inherit; font-size: .9rem; padding: .45rem .9rem;
border: 1px solid var(--accent); border-radius: 8px;
background: var(--accent); color: #f8fafc; cursor: pointer; }
.copybar button + button { background: none; color: var(--accent); }
.copybar button:hover { filter: brightness(1.08); }
.copy-status { font-size: .85rem; color: var(--muted); }
.links { list-style: none; padding: 0; margin: .5rem 0 0; }
.links li { padding: .55rem 0; border-bottom: 1px solid var(--line); }
.links li:last-child { border-bottom: 0; }
.links a { font-weight: 600; text-decoration: none; }
.links code.url { display: block; margin: .2rem 0; font-size: .82rem;
background: none; padding: 0; color: var(--muted);
word-break: break-all; user-select: all; }
.links p { margin: 0; font-size: .85rem; color: var(--muted); }
/* kafel regionu ze zdjęciem w tle */
.regions a.hero { background-size: cover; background-position: center;
border-color: transparent; color: #f8fafc; min-height: 6.5rem;
display: flex; flex-direction: column; justify-content: flex-end; }
.regions a.hero small { color: #e2e8f0; }
</style>
</head>
<body class="wide">
<nav><a href="start.html">← Start</a> · <a href="index.html">Wszystkie karty</a> · <a href="porownanie.html">Porównanie ofert</a> · <a href="linki.html">Linki</a> · <a href="../viz.html">Graf</a></nav>
<h1>Porównanie ofert</h1>
<p class="lead">Wszystkie 12 rozważanych noclegów w jednej tabeli — dane prosto z frontmatterów kart. Kliknij nagłówek, żeby posortować; domyślnie od najtańszej rodziny 2+2.</p>
<h2>Regiony w skrócie</h2>
<ul class="summary"><li><a href="saalbach/region.html">Saalbach</a><br><span class="budget"><strong>Budżet grupy:</strong> ~16 20019 500 €</span><p>Saalbach traci przewagę cenową noclegów w Fasching — wchodzi w budżet 1619,5 tys.</p></li><li><a href="ischgl/region.html">Ischgl/Paznaun</a><br><span class="budget"><strong>Budżet grupy:</strong> ~14 20017 000 €</span><p>Ischgl paradoksalnie konkurencyjny cenowo (mieszkając w Kappl): skipass bez dopłaty sezonowej — ale pilnować rocznika 17-latków (❌ zniżka tylko do &lt;17, +194 € za każdego 17-latka) i liczyć się z maksymalnym tłokiem.</p></li><li><a href="kronplatz/region.html">Kronplatz</a><br><span class="budget"><strong>Budżet grupy:</strong> ~14 50017 700 €</span><p>Kronplatz najlepiej znosi ten termin: mniejszy nacisk karnawałowy niż Austria, budżet w środku stawki, junior do 18 lat.</p></li><li><a href="sfl/region.html">SFL</a><br><span class="budget"><strong>Budżet grupy:</strong> ~14 50017 900 €</span><p>SFL w lutym bez styczniowej przewagi cenowej — nadal najlepszy funkcjonalnie dla dzieci, ale już nie najtańszy (u nich luty to pełny wysoki sezon).</p></li></ul>
<h2>Wszystkie oferty</h2>
<div class="table-wrap"><table class="sortable"><thead><tr><th data-key="">Zdjęcie</th><th scope="col" aria-sort="none">Oferta</th><th scope="col" aria-sort="none">Priorytet</th><th scope="col" aria-sort="none">Region</th><th scope="col" aria-sort="none">Miejscowość</th><th scope="col" aria-sort="none">€ / apart. / tydzień</th><th scope="col" aria-sort="none">Rodzina 2+2</th><th scope="col" aria-sort="none">Rodzina 2+1</th><th scope="col" aria-sort="none">Status ceny</th><th scope="col" aria-sort="none">Od wyciągu</th><th scope="col" aria-sort="none">WWW</th></tr></thead><tbody><tr class="estimate"><td class="thumb" data-key=""><a href="saalbach/oferty/alpenparks-rehrenberg.html"><img src="img/alpenparks-rehrenberg/01.jpg" alt="AlpenParks Apartments Rehrenberg" loading="lazy"></a></td><td class="name" data-key="AlpenParks Apartments Rehrenberg"><a href="saalbach/oferty/alpenparks-rehrenberg.html">AlpenParks Apartments Rehrenberg</a></td><td data-key="ARCHIWALNA (poza paczką 08.2026)" title="ARCHIWALNA (poza paczką 08.2026)">ARCHIWALNA</td><td data-key="Saalbach"><a href="saalbach/region.html">Saalbach</a></td><td data-key="Viehhofen">Viehhofen</td><td data-num="1100" title="~1 1001 500 € (szacunek, styczeń poza feriami)">~1 1001 500 €</td><td data-num="1100">~1 1001 500 €</td><td data-num="950">~9501 250 €</td><td data-key="SZACUNEK — silnik online na alpenparks.at" title="SZACUNEK — silnik online na alpenparks.at">SZACUNEK</td><td data-key="510 min pieszo do gondoli zellamseeXpress">510 min pieszo do gondoli zellamseeXpress</td><td data-key="alpenparks.at"><a href="https://www.alpenparks.at" target="_blank" rel="noopener" class="ext">alpenparks.at</a></td></tr><tr class="estimate"><td class="thumb" data-key=""><a href="ischgl/oferty/apartment-brandau-kappl.html"><img src="img/apartment-brandau-kappl/01.jpg" alt="Apartment Brandau" loading="lazy"></a></td><td class="name" data-key="Apartment Brandau"><a href="ischgl/oferty/apartment-brandau-kappl.html">Apartment Brandau</a></td><td data-key="PLAN A dla wariantu Ischgl" title="PLAN A dla wariantu Ischgl">PLAN A</td><td data-key="Ischgl/Paznaun"><a href="ischgl/region.html">Ischgl/Paznaun</a></td><td data-key="Kappl (Paznaun)" title="Kappl (Paznaun)">Kappl</td><td data-num="1100" title="~1 1001 600 € (szacunek, szczyt lutowy)">~1 1001 600 €</td><td data-num="1100">~1 1001 600 €</td><td data-num="900">~9001 350 €</td><td data-key="SZACUNEK — wycena mailowo" title="SZACUNEK — wycena mailowo">SZACUNEK</td><td data-key="skibus przy domu → Kappl / Ischgl ~10 min">skibus przy domu → Kappl / Ischgl ~10 min</td><td data-key="kappl-apartment-brandau.at"><a href="http://www.kappl-apartment-brandau.at" target="_blank" rel="noopener" class="ext">kappl-apartment-brandau.at</a></td></tr><tr class="estimate"><td class="thumb" data-key=""><a href="ischgl/oferty/apartments-kappl.html"><img src="img/apartments-kappl/01.jpg" alt="Apartments Kappl" loading="lazy"></a></td><td class="name" data-key="Apartments Kappl"><a href="ischgl/oferty/apartments-kappl.html">Apartments Kappl</a></td><td data-key="PLAN B dla wariantu Ischgl" title="PLAN B dla wariantu Ischgl">PLAN B</td><td data-key="Ischgl/Paznaun"><a href="ischgl/region.html">Ischgl/Paznaun</a></td><td data-key="Kappl (Paznaun)" title="Kappl (Paznaun)">Kappl</td><td data-num="1100" title="~1 1001 700 € (szacunek, szczyt lutowy)">~1 1001 700 €</td><td data-num="1100">~1 1001 700 €</td><td data-num="900">~9001 400 €</td><td data-key="SZACUNEK — wycena mailowo" title="SZACUNEK — wycena mailowo">SZACUNEK</td><td data-key="przystanek skibusa 100 m — bez przesiadki do Ischgl, Galtür, See">przystanek skibusa 100 m — bez przesiadki do Ischgl, Galtür, See</td><td data-key="apartments.kappl.at"><a href="https://www.apartments.kappl.at" target="_blank" rel="noopener" class="ext">apartments.kappl.at</a></td></tr><tr class="estimate"><td class="thumb" data-key=""><a href="kronplatz/oferty/haeuslerhof-valdaora.html"><img src="img/haeuslerhof-valdaora/01.jpg" alt="Häuslerhof" loading="lazy"></a></td><td class="name" data-key="Häuslerhof"><a href="kronplatz/oferty/haeuslerhof-valdaora.html">Häuslerhof</a></td><td data-key="PLAN A dla wariantu Kronplatz" title="PLAN A dla wariantu Kronplatz">PLAN A</td><td data-key="Kronplatz"><a href="kronplatz/region.html">Kronplatz</a></td><td data-key="Valdaora/Olang">Valdaora/Olang</td><td data-num="1000" title="~1 0001 500 € (szacunek, wysoki sezon)">~1 0001 500 €</td><td data-num="1100">~1 1001 500 €</td><td data-num="950">~9501 300 €</td><td data-key="SZACUNEK — wycena mailowo" title="SZACUNEK — wycena mailowo">SZACUNEK</td><td data-key="skibus do gondoli Olang (Kronplatz)">skibus do gondoli Olang (Kronplatz)</td><td data-key="haeuslerhof.it"><a href="https://www.haeuslerhof.it" target="_blank" rel="noopener" class="ext">haeuslerhof.it</a></td></tr><tr class="estimate"><td class="thumb" data-key=""><a href="kronplatz/oferty/residence-corones-valdaora.html" class="placeholder" title="brak zdjęć">RC</a></td><td class="name" data-key="Residence Corones"><a href="kronplatz/oferty/residence-corones-valdaora.html">Residence Corones</a></td><td data-key="PLAN B dla wariantu Kronplatz" title="PLAN B dla wariantu Kronplatz">PLAN B</td><td data-key="Kronplatz"><a href="kronplatz/region.html">Kronplatz</a></td><td data-key="Valdaora (centrum)" title="Valdaora (centrum)">Valdaora</td><td data-num="1100" title="~1 1001 600 € (szacunek, wysoki sezon)">~1 1001 600 €</td><td data-num="1100">~1 1001 600 €</td><td data-num="950">~9501 350 €</td><td data-key="SZACUNEK — wycena mailowo (reception@corones.it)" title="SZACUNEK — wycena mailowo (reception@corones.it)">SZACUNEK</td><td data-key="skibus PRZED domem → 5 min do gondoli Kronplatz">skibus PRZED domem → 5 min do gondoli Kronplatz</td><td data-key="corones.it"><a href="https://corones.it" target="_blank" rel="noopener" class="ext">corones.it</a></td></tr><tr class="estimate"><td class="thumb" data-key=""><a href="sfl/oferty/haus-central-ladis.html"><img src="img/haus-central-ladis/01.jpg" alt="Haus Central (Apart Central)" loading="lazy"></a></td><td class="name" data-key="Haus Central (Apart Central)"><a href="sfl/oferty/haus-central-ladis.html">Haus Central (Apart Central)</a></td><td data-key="PLAN A dla wariantu SFL" title="PLAN A dla wariantu SFL">PLAN A</td><td data-key="SFL"><a href="sfl/region.html">SFL</a></td><td data-key="Ladis">Ladis</td><td data-num="1300" title="~1 3001 700 € (szacunek, wysoki sezon)">~1 3001 700 €</td><td data-num="1300">~1 3001 700 €</td><td data-num="1100">~1 1001 450 €</td><td data-key="SZACUNEK — enquiry przez portal regionu lub mail" title="SZACUNEK — enquiry przez portal regionu lub mail">SZACUNEK</td><td data-key="przy kolejce Sonnenbahn Ladis-Fiss / skibusie">przy kolejce Sonnenbahn Ladis-Fiss / skibusie</td><td data-key="serfaus-fiss-ladis.at"><a href="https://www.serfaus-fiss-ladis.at/en/Accommodation-list/Haus-Central-holiday-apartment-Ladis_ad-40835" target="_blank" rel="noopener" class="ext">serfaus-fiss-ladis.at</a></td></tr><tr class="estimate"><td class="thumb" data-key=""><a href="saalbach/oferty/dom-dla-grupy.html" class="placeholder" title="brak zdjęć">DD</a></td><td class="name" data-key="Duży dom wakacyjny 1214 os. (do wyszukania)"><a href="saalbach/oferty/dom-dla-grupy.html">Duży dom wakacyjny 1214 os. (do wyszukania)</a></td><td data-key="ARCHIWALNA (poza paczką 08.2026)" title="ARCHIWALNA (poza paczką 08.2026)">ARCHIWALNA</td><td data-key="Saalbach"><a href="saalbach/region.html">Saalbach</a></td><td data-key="Viehhofen / Maishofen / strona Fieberbrunn">Viehhofen / Maishofen / strona Fieberbrunn</td><td data-num="4500" title="4 5006 500 € (szacunek, styczeń poza feriami)">4 5006 500 € (cały dom)</td><td data-num="1400" title="~1 4001 900 € (podział od osoby)">~1 4001 900 €</td><td data-num="1100" title="~1 1001 500 € (podział od osoby)">~1 1001 500 €</td><td data-key="SZACUNEK — konkretny dom do znalezienia" title="SZACUNEK — konkretny dom do znalezienia">SZACUNEK</td><td data-key=""></td><td data-key=""></td></tr><tr class="estimate"><td class="thumb" data-key=""><a href="saalbach/oferty/sportchalet-viehhofen.html"><img src="img/sportchalet-viehhofen/01.jpg" alt="Sportchalet Viehhofen" loading="lazy"></a></td><td class="name" data-key="Sportchalet Viehhofen"><a href="saalbach/oferty/sportchalet-viehhofen.html">Sportchalet Viehhofen</a></td><td data-key="PLAN B (cena/jakość)" title="PLAN B (cena/jakość)">PLAN B</td><td data-key="Saalbach"><a href="saalbach/region.html">Saalbach</a></td><td data-key="Viehhofen (3 km od Saalbach)" title="Viehhofen (3 km od Saalbach)">Viehhofen</td><td data-num="1500" title="~1 5001 900 € (szacunek, szczyt lutowy)">~1 5001 900 €</td><td data-num="1500">~1 5001 900 €</td><td data-num="1250">~1 2501 550 €</td><td data-key="SZACUNEK — wycena tylko mailowo" title="SZACUNEK — wycena tylko mailowo">SZACUNEK</td><td data-key="gondola zellamseeXpress za rogiem; skibus do Skicircusu pod domem">gondola zellamseeXpress za rogiem; skibus do Skicircusu pod domem</td><td data-key="sportchaletviehhofen.com"><a href="https://sportchaletviehhofen.com" target="_blank" rel="noopener" class="ext">sportchaletviehhofen.com</a></td></tr><tr class="estimate"><td class="thumb" data-key=""><a href="sfl/oferty/apart-ideal-serfaus.html" class="placeholder" title="brak zdjęć">AI</a></td><td class="name" data-key="Apart Ideal"><a href="sfl/oferty/apart-ideal-serfaus.html">Apart Ideal</a></td><td data-key="PLAN B dla wariantu SFL" title="PLAN B dla wariantu SFL">PLAN B</td><td data-key="SFL"><a href="sfl/region.html">SFL</a></td><td data-key="Serfaus (obrzeża)" title="Serfaus (obrzeża)">Serfaus</td><td data-num="1600" title="~1 6002 200 € (szacunek; Serfaus = najdroższa wieś, wysoki sezon)">~1 6002 200 €</td><td data-num="1600">~1 6002 200 €</td><td data-num="1350">~1 3501 850 €</td><td data-key="SZACUNEK — enquiry przez portal regionu" title="SZACUNEK — enquiry przez portal regionu">SZACUNEK</td><td data-key="50 m do stacji metra &#x27;Tube&#x27; → &lt;10 min do kolejki">50 m do stacji metra &#x27;Tube&#x27;&lt;10 min do kolejki</td><td data-key="serfaus-fiss-ladis.at"><a href="https://serfaus-fiss-ladis.at/en/serfaus/apartment/apart-ideal_dr91356" target="_blank" rel="noopener" class="ext">serfaus-fiss-ladis.at</a></td></tr><tr class="estimate"><td class="thumb" data-key=""><a href="saalbach/oferty/alpenparks-sonnleiten.html"><img src="img/alpenparks-sonnleiten/01.jpg" alt="AlpenParks Hotel &amp; Apartment Sonnleiten" loading="lazy"></a></td><td class="name" data-key="AlpenParks Hotel &amp; Apartment Sonnleiten"><a href="saalbach/oferty/alpenparks-sonnleiten.html">AlpenParks Hotel &amp; Apartment Sonnleiten</a></td><td data-key="PLAN A-bis">PLAN A-bis</td><td data-key="Saalbach"><a href="saalbach/region.html">Saalbach</a></td><td data-key="Saalbach">Saalbach</td><td data-num="1700" title="~1 7002 300 € (szacunek, szczyt lutowy)">~1 7002 300 €</td><td data-num="1700">~1 7002 300 €</td><td data-num="1400">~1 4001 800 €</td><td data-key="SZACUNEK — ceny rzeczywiste od ręki w silniku alpenparks.at" title="SZACUNEK — ceny rzeczywiste od ręki w silniku alpenparks.at">SZACUNEK</td><td data-key="~2 min pieszo do stoku">~2 min pieszo do stoku</td><td data-key="alpenparks.at"><a href="https://www.alpenparks.at" target="_blank" rel="noopener" class="ext">alpenparks.at</a></td></tr><tr class="estimate"><td class="thumb" data-key=""><a href="saalbach/oferty/kristall-schattbergxpress.html" class="placeholder" title="brak zdjęć">AK</a></td><td class="name" data-key="Appartementhaus Kristall at SchattbergXpress"><a href="saalbach/oferty/kristall-schattbergxpress.html">Appartementhaus Kristall at SchattbergXpress</a></td><td data-key="PLAN A">PLAN A</td><td data-key="Saalbach"><a href="saalbach/region.html">Saalbach</a></td><td data-key="Saalbach (centrum)" title="Saalbach (centrum)">Saalbach</td><td data-num="1800" title="~1 8002 400 € (szacunek, szczyt lutowy)">~1 8002 400 €</td><td data-num="1800">~1 8002 400 €</td><td data-num="1500">~1 5002 000 €</td><td data-key="SZACUNEK">SZACUNEK</td><td data-key="50 m — gondola Schattberg X-press">50 m — gondola Schattberg X-press</td><td data-key="booking.com"><a href="https://www.booking.com/hotel/at/appartementhaus-kristall.html" target="_blank" rel="noopener" class="ext">booking.com</a></td></tr><tr class="verified"><td class="thumb" data-key=""><a href="saalbach/oferty/glemm-lodge.html"><img src="img/glemm-lodge/01.jpg" alt="Glemm Lodge Apartments ⭐⭐⭐⭐" loading="lazy"></a></td><td class="name" data-key="Glemm Lodge Apartments ⭐⭐⭐⭐"><a href="saalbach/oferty/glemm-lodge.html">Glemm Lodge Apartments ⭐⭐⭐⭐</a></td><td data-key="NIEDOSTĘPNY w terminie; referencja cenowa + opcja przy zmianie tygodnia">NIEDOSTĘPNY w terminie; referencja cenowa + opcja przy zmianie tygodnia</td><td data-key="Saalbach"><a href="saalbach/region.html">Saalbach</a></td><td data-key="między Saalbach a Hinterglemm">między Saalbach a Hinterglemm</td><td data-num="7000" title="7 000 € + 500 € sprzątanie + taksy (30.0126.02 = high season, cennik oficjalny)">7 000 € + 500 € sprzątanie + taksy</td><td data-num="4370">~4 370 €</td><td data-num="3277">~3 277 €</td><td data-key="ZWERYFIKOWANE (cennik + kalendarz obiektu, stan 01.08.2026)" title="ZWERYFIKOWANE (cennik + kalendarz obiektu, stan 01.08.2026)">ZWERYFIKOWANE</td><td data-key="zjazd trasą 86 pod dom; skibus pod drzwiami (5 min)">zjazd trasą 86 pod dom; skibus pod drzwiami (5 min)</td><td data-key="glemmlodge-apartments.com"><a href="https://glemmlodge-apartments.com" target="_blank" rel="noopener" class="ext">glemmlodge-apartments.com</a></td></tr></tbody></table></div>
<p class="legend"><span class="box v"></span>cena zweryfikowana &nbsp; <span class="box e"></span>szacunek do potwierdzenia</p>
<footer>Wygenerowane z bundle'a OKF przez <code>gen_pages.py</code> — nie edytuj
tych plików, edytuj <code>.md</code> i przegeneruj.<br>
powered by <a href="https://gethumanai.pl" target="_blank" rel="noopener">gethumanai.pl</a></footer>
<script>
document.querySelectorAll('table.sortable').forEach(function (table) {
var head = table.tHead.rows[0];
Array.prototype.forEach.call(head.cells, function (th, i) {
th.tabIndex = 0;
th.setAttribute('role', 'button');
th.addEventListener('click', function () { sortTable(table, i, th); });
th.addEventListener('keydown', function (e) {
if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); sortTable(table, i, th); }
});
});
});
function sortTable(table, index, th) {
var dir = th.dataset.dir === 'asc' ? 'desc' : 'asc';
Array.prototype.forEach.call(table.tHead.rows[0].cells, function (h) {
delete h.dataset.dir;
h.setAttribute('aria-sort', 'none');
});
th.dataset.dir = dir;
th.setAttribute('aria-sort', dir === 'asc' ? 'ascending' : 'descending');
var body = table.tBodies[0];
var rows = Array.prototype.slice.call(body.rows);
var mul = dir === 'asc' ? 1 : -1;
rows.sort(function (a, b) {
var x = a.cells[index], y = b.cells[index];
var nx = x.dataset.num, ny = y.dataset.num;
if (nx !== undefined && ny !== undefined) return (parseFloat(nx) - parseFloat(ny)) * mul;
// Wiersze bez wartości liczbowej zawsze na końcu — w obie strony.
if (nx !== undefined) return -1;
if (ny !== undefined) return 1;
var kx = x.dataset.key !== undefined ? x.dataset.key : x.textContent;
var ky = y.dataset.key !== undefined ? y.dataset.key : y.textContent;
if (!kx) return 1;
if (!ky) return -1;
return kx.localeCompare(ky, 'pl') * mul;
});
rows.forEach(function (row) { body.appendChild(row); });
}
</script>
</body>
</html>