{"id":2721,"date":"2025-09-30T16:47:23","date_gmt":"2025-09-30T14:47:23","guid":{"rendered":"https:\/\/wakacje-we-francji.pl\/?page_id=2721"},"modified":"2025-10-14T12:57:02","modified_gmt":"2025-10-14T10:57:02","slug":"hotele","status":"publish","type":"page","link":"https:\/\/wakacje-we-francji.pl\/en\/hotele\/","title":{"rendered":"Hotele"},"content":{"rendered":"<!doctype html>\n<html lang=\"pl\">\n<head>\n  <meta charset=\"utf-8\" \/>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, viewport-fit=cover\" \/>\n  <title>Rezerwacja hoteli | Twoja podstrona<\/title>\n  <meta name=\"description\" content=\"Por\u00f3wnaj oferty i zarezerwuj hotel online dzi\u0119ki osadzonej wyszukiwarce (Ypsilon\/Flightbox).\" \/>\n  <style>\n    :root{\n      --bg:#0f172a; --card:#ffffff; --text:#0b1220; --muted:#475569; --brand:#8b5cf6;\n      --radius:20px; --shadow:0 20px 40px rgba(2,6,23,.35);\n      --vh:1vh; \/* JS podmieni na realn\u0105 wysoko\u015b\u0107 *\/\n    }\n\n    html,body{height:100%; overflow-x:hidden;}\n    body{\n      margin:0;\n      font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, \"Helvetica Neue\", Arial, \"Apple Color Emoji\", \"Segoe UI Emoji\";\n      color:#e5e7eb;\n      background:\n        radial-gradient(1200px 800px at 10% 0%, #1e293b 0%, var(--bg) 60%),\n        radial-gradient(800px 600px at 90% 10%, #0b1220 0%, var(--bg) 70%),\n        var(--bg);\n      -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;\n    }\n\n    .container{max-width:1200px; margin:0 auto; padding:32px 20px 56px;}\n    header{padding:24px 0 8px;}\n    h1{font-size:clamp(28px,4vw,44px); line-height:1.1; margin:0 0 12px; font-weight:800;}\n    .lead{font-size:clamp(16px,2.2vw,18px); color:#cbd5e1; margin:0 0 28px; max-width:68ch;}\n    .note{display:inline-flex; gap:10px; align-items:center; background:rgba(148,163,184,.15); border:1px solid rgba(148,163,184,.35); padding:10px 14px; border-radius:999px; font-size:14px; color:#e2e8f0; margin-bottom:24px;}\n    .center{display:grid; gap:18px;}\n\n    .ibe-card{background:var(--card); color:var(--text); border-radius:var(--radius); box-shadow:var(--shadow); padding:6px;}\n    .ibe-surface{\n      background:#fff; border-radius:calc(var(--radius) - 6px);\n      overflow:visible; \/* nie tnij wn\u0119trza *\/\n      \/* desktop: minimum + auto wzrost *\/\n      min-height:clamp(720px, 80vh, 1200px);\n    }\n\n    \/* Ypsilon wrapper + iframe: pe\u0142na szeroko\u015b\u0107, wysoko\u015b\u0107 ustawimy skryptem *\/\n    #ypsnet-ibe, #ypsnet-ibe > *{ display:block; width:100%; max-width:100%; }\n    #ypsnet-ibe iframe{\n      display:block!important; width:100%!important; border:0!important; background:#fff;\n    }\n\n    \/* Przycisk awaryjny \u201epe\u0142noekranowo\u201d na mobile *\/\n    .ibe-actions{display:none; gap:.5rem; margin-top:10px;}\n    .btn-open-full{\n      display:inline-flex; align-items:center; justify-content:center;\n      padding:.7rem 1rem; border-radius:12px; border:1px solid rgba(148,163,184,.35);\n      background:rgba(148,163,184,.12); color:#0b1220; font-weight:700; text-decoration:none;\n    }\n\n    footer{margin-top:36px; font-size:14px; color:#cbd5e1;}\n\n    \/* ===== MOBILE ===== *\/\n    @media (max-width:768px){\n      .container{ padding: max(12px, env(safe-area-inset-top)) 0 max(24px, env(safe-area-inset-bottom)); }\n      header{padding:8px 16px 4px;}\n      .lead{margin:0 16px 20px;}\n      .note{margin-left:16px;}\n\n      .ibe-card{padding:0; border-radius:0; box-shadow:none;}\n      .ibe-surface{border-radius:0;}\n\n      \/* KLUCZ: wysoka ramka, przewijanie STRON\u0104 (nie wewn\u0105trz iframa) *\/\n      .ibe-surface .iframe-holder{\n        height: auto;\n        min-height: calc(var(--vh) * 160); \/* ~1.6x ekranu na start, ro\u015bnie JS-em *\/\n      }\n\n      .ibe-actions{display:flex; padding:0 16px;}\n      .tips, footer{padding: 0 16px;}\n    }\n\n    @media (max-width:420px){\n      h1{font-size:clamp(24px,7vw,30px);}\n      .lead{font-size:clamp(15px,4vw,16px);}\n      .ibe-surface .iframe-holder{ min-height: calc(var(--vh) * 180); }\n    }\n  <\/style>\n<\/head>\n<body>\n  <div class=\"container\">\n    <header>\n      <span class=\"note\">\ud83c\udfe8 Rezerwacje hoteli online<\/span>\n      <h1>Znajd\u017a i zarezerwuj nocleg w&nbsp;kilka minut<\/h1>\n      <p class=\"lead\">W tej sekcji mo\u017cesz wyszuka\u0107 i zarezerwowa\u0107 hotele, apartamenty i inne obiekty noclegowe. Poni\u017csza wyszukiwarka dzia\u0142a w oparciu o zewn\u0119trzny silnik rezerwacyjny (Ypsilon\/Flightbox). P\u0142atno\u015b\u0107 i potwierdzenie odbywaj\u0105 si\u0119 bezpiecznie online.<\/p>\n    <\/header>\n\n    <main class=\"center\">\n      <section class=\"ibe-card\">\n        <div class=\"ibe-surface\" id=\"ibeSurface\">\n          <!-- UCHWYT NA IFRAME Z ELASTYCZN\u0104 WYSOKO\u015aCI\u0104 -->\n          <div class=\"iframe-holder\">\n            <!-- WIDGET IBE \u2013 HOTELS -->\n            <div id=\"ypsnet-ibe\" data-src=\"https:\/\/specials.flightbox.pl\/jump\/h\/9924955\/\"><\/div>\n            <script src=\"https:\/\/webmedia.ypsilon.net\/spl_js\/ypsnet-ibe.js\"><\/script>\n            <noscript>W\u0142\u0105cz JavaScript, aby skorzysta\u0107 z wyszukiwarki hoteli.<\/noscript>\n          <\/div>\n        <\/div>\n\n        <!-- awaryjny przycisk pe\u0142noekranowy (otwiera silnik w nowej karcie) -->\n        <div class=\"ibe-actions\">\n          <a class=\"btn-open-full\" href=\"https:\/\/specials.flightbox.pl\/jump\/h\/9924955\/\" target=\"_blank\" rel=\"noopener\">Otw\u00f3rz pe\u0142noekranowo<\/a>\n        <\/div>\n      <\/section>\n\n      <section class=\"tips\" aria-label=\"Wskaz\u00f3wki\" style=\"color:#e2e8f0;\">\n        <h3 style=\"margin:22px 0 8px; font-size:20px;\">Jak to dzia\u0142a?<\/h3>\n        <ol style=\"margin:0; padding-left:18px;\">\n          <li>Wpisz miejscowo\u015b\u0107, daty pobytu oraz liczb\u0119 go\u015bci i pokoi.<\/li>\n          <li>Por\u00f3wnaj oferty i wybierz odpowiadaj\u0105cy Ci standard i lokalizacj\u0119.<\/li>\n          <li>Podaj dane go\u015bcia i sfinalizuj rezerwacj\u0119 online.<\/li>\n          <li>Potwierdzenie rezerwacji otrzymasz na e-mail.<\/li>\n        <\/ol>\n\n        <h3 style=\"margin:22px 0 8px; font-size:20px;\">Wskaz\u00f3wki przed rezerwacj\u0105<\/h3>\n        <ul style=\"margin:0; padding-left:18px;\">\n          <li>Sprawd\u017a zasady anulacji (np. bezp\u0142atne odwo\u0142anie do okre\u015blonej daty) i ewentualn\u0105 przedp\u0142at\u0119.<\/li>\n          <li>Upewnij si\u0119, czy cena zawiera \u015bniadanie, podatki lokalne (np. op\u0142ata klimatyczna) i VAT.<\/li>\n          <li>Zweryfikuj godziny zameldowania\/ wymeldowania oraz polityk\u0119 dotycz\u0105ca dzieci i zwierz\u0105t.<\/li>\n          <li>Je\u015bli przyje\u017cd\u017casz samochodem, sprawd\u017a dost\u0119pno\u015b\u0107 i koszt parkingu.<\/li>\n        <\/ul>\n      <\/section>\n\n      <footer>\n        Uwaga: podsumowanie rezerwacji mo\u017ce otworzy\u0107 zewn\u0119trzn\u0105 stron\u0119 dostawcy. W razie pyta\u0144 \u2013 skontaktuj si\u0119 z nami.\n      <\/footer>\n    <\/main>\n  <\/div>\n\n  <script>\n    \/\/ 1) Prawdziwe vh -> --vh (odlicza paski systemowe)\n    (function setVH(){\n      const update = () => {\n        const vh = window.innerHeight * 0.01;\n        document.documentElement.style.setProperty('--vh', `${vh}px`);\n      };\n      update();\n      window.addEventListener('resize', update, {passive:true});\n      window.addEventListener('orientationchange', update, {passive:true});\n    })();\n\n    \/\/ 2) Po wstrzykni\u0119ciu IBE: nadaj atrybuty i zwi\u0119ksz wysoko\u015b\u0107 ramki na mobile\n    (function tuneIBE(){\n      const holder = document.querySelector('.iframe-holder');\n      const surface = document.getElementById('ibeSurface');\n\n      const apply = () => {\n        const yps = document.getElementById('ypsnet-ibe');\n        if (!yps || !holder) return;\n\n        \/\/ odblokuj wrappery\n        [yps, yps.parentElement, holder, surface].forEach(el=>{\n          if (!el) return;\n          el.style.overflow = 'visible';\n          el.style.maxWidth = '100%';\n        });\n\n        const frame = yps.querySelector('iframe');\n        if (frame) {\n          \/\/ pozw\u00f3l na przewijanie STRON\u0104 (iframe sam w sobie bez w\u0142asnego scrolla)\n          frame.setAttribute('scrolling','yes'); \/\/ legacy, ale czasem pomaga\n          frame.style.width = '100%';\n          frame.style.border = '0';\n          \/\/ --- WYSOKO\u015a\u0106: du\u017ca na mobile, mniejsza na desktopie ---\n          const isMobile = matchMedia('(max-width: 768px)').matches;\n          const base = isMobile ? 1.8 : 1.0; \/\/ 180% ekranu mobilnie\n          const h = Math.max(\n            holder.clientHeight,\n            Math.round(window.innerHeight * base)\n          );\n          frame.style.height = h + 'px';\n        }\n      };\n\n      \/\/ pr\u00f3buj a\u017c iframe si\u0119 pojawi (Ypsilon \u0142aduje si\u0119 asynchronicznie)\n      let tries = 0, maxTries = 40;\n      const iv = setInterval(()=>{\n        apply();\n        if (document.querySelector('#ypsnet-ibe iframe') || ++tries >= maxTries) clearInterval(iv);\n      }, 150);\n\n      \/\/ aktualizuj przy zmianie orientacji\/rozmiaru\n      ['resize','orientationchange'].forEach(evt=>{\n        window.addEventListener(evt, apply, {passive:true});\n      });\n\n      new MutationObserver(apply).observe(document.body, {childList:true, subtree:true});\n    })();\n  <\/script>\n<\/body>\n<\/html>","protected":false},"excerpt":{"rendered":"<p>Rezerwacja hoteli | Twoja podstrona \ud83c\udfe8 Rezerwacje hoteli online Znajd\u017a i zarezerwuj nocleg w&nbsp;kilka minut W tej sekcji mo\u017cesz wyszuka\u0107 i zarezerwowa\u0107 hotele, apartamenty i inne obiekty noclegowe. Poni\u017csza wyszukiwarka dzia\u0142a w oparciu o zewn\u0119trzny silnik rezerwacyjny (Ypsilon\/Flightbox). P\u0142atno\u015b\u0107 i potwierdzenie odbywaj\u0105 si\u0119 bezpiecznie online. W\u0142\u0105cz JavaScript, aby skorzysta\u0107 z wyszukiwarki hoteli. Otw\u00f3rz pe\u0142noekranowo Jak [&hellip;]<\/p>","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","footnotes":""},"class_list":["post-2721","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"trp-custom-language-flag":false},"uagb_author_info":{"display_name":"janusz","author_link":"https:\/\/wakacje-we-francji.pl\/en\/author\/janusz\/"},"uagb_comment_info":0,"uagb_excerpt":"Rezerwacja hoteli | Twoja podstrona \ud83c\udfe8 Rezerwacje hoteli online Znajd\u017a i zarezerwuj nocleg w&nbsp;kilka minut W tej sekcji mo\u017cesz wyszuka\u0107 i zarezerwowa\u0107 hotele, apartamenty i inne obiekty noclegowe. Poni\u017csza wyszukiwarka dzia\u0142a w oparciu o zewn\u0119trzny silnik rezerwacyjny (Ypsilon\/Flightbox). P\u0142atno\u015b\u0107 i potwierdzenie odbywaj\u0105 si\u0119 bezpiecznie online. W\u0142\u0105cz JavaScript, aby skorzysta\u0107 z wyszukiwarki hoteli. Otw\u00f3rz pe\u0142noekranowo Jak&hellip;","_links":{"self":[{"href":"https:\/\/wakacje-we-francji.pl\/en\/wp-json\/wp\/v2\/pages\/2721","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wakacje-we-francji.pl\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wakacje-we-francji.pl\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wakacje-we-francji.pl\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/wakacje-we-francji.pl\/en\/wp-json\/wp\/v2\/comments?post=2721"}],"version-history":[{"count":6,"href":"https:\/\/wakacje-we-francji.pl\/en\/wp-json\/wp\/v2\/pages\/2721\/revisions"}],"predecessor-version":[{"id":2966,"href":"https:\/\/wakacje-we-francji.pl\/en\/wp-json\/wp\/v2\/pages\/2721\/revisions\/2966"}],"wp:attachment":[{"href":"https:\/\/wakacje-we-francji.pl\/en\/wp-json\/wp\/v2\/media?parent=2721"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}