{"id":94525,"date":"2026-08-01T20:21:59","date_gmt":"2026-08-01T18:21:59","guid":{"rendered":"https:\/\/bno-travel.com\/overnatting-i-paradiski\/"},"modified":"2026-09-15T21:30:41","modified_gmt":"2026-09-15T19:30:41","slug":"overnatting-i-paradiski","status":"publish","type":"page","link":"https:\/\/bno-travel.com\/nl\/overnatting-i-paradiski\/","title":{"rendered":"Paradiski"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"94525\" class=\"elementor elementor-94525 elementor-93286\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5431cd87 e-flex e-con-boxed e-con e-parent\" data-id=\"5431cd87\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6502c3a4 elementor-widget elementor-widget-html\" data-id=\"6502c3a4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"bno-area-hero bno-area-hero--premium\" style=\" background-color: #0c1a38; background-image: linear-gradient( rgba(10, 18, 28, 0.42), rgba(10, 18, 28, 0.58) ), url('https:\/\/bno-travel.com\/wp-content\/uploads\/2026\/05\/Paradiski.avif'); background-position: center; background-size: cover; background-repeat: no-repeat; \">\r\n  <div class=\"bno-shell\">\r\n    <div class=\"bno-area-hero__content\">\r\n\r\n      <span class=\"bno-eyebrow\">\r\n        Paradiski \u00b7 Frankrijk\r\n      <\/span>\r\n\r\n      <h1>\r\n        Paradiski \u2013 vakantiehuizen in Champagny-en-Vanoise, met meer gebieden op komst\r\n      <\/h1>\r\n\r\n      <p class=\"bno-lead\">\r\n        Ontdek zorgvuldig geselecteerde vakantiehuizen in Champagny-en-Vanoise, met toegang tot de bergbelevingen van Paradiski. La Plagne, Les Arcs en Peisey-Vallandry worden toegevoegd zodra er meer vakantiehuizen beschikbaar komen.\r\n      <\/p>\r\n\r\n      <div class=\"bno-actions\">\r\n\r\n        <a href=\"#enheter\" class=\"bno-btn bno-btn--primary\">\r\n          Bekijk vakantiehuizen\r\n        <\/a>\r\n\r\n        <a href=\"#omrader\" class=\"bno-btn bno-btn--secondary\">\r\n          Bekijk de gebieden\r\n        <\/a>\r\n\r\n      <\/div>\r\n\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7a787b40 e-flex e-con-boxed e-con e-parent\" data-id=\"7a787b40\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5f363d5e elementor-widget elementor-widget-html\" data-id=\"5f363d5e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"bno-section bno-section--light bno-area-intro\">\r\n  <div class=\"bno-shell bno-narrow\">\r\n\r\n    <div class=\"bno-section-heading\">\r\n\r\n      <h2>\r\n        Verblijf in Champagny-en-Vanoise met toegang tot Paradiski\r\n      <\/h2>\r\n\r\n      <p>\r\n        Champagny-en-Vanoise is een traditioneel Alpendorp met directe aansluiting op La Plagne en Paradiski. Het biedt een rustige, authentieke uitvalsbasis voor skivakanties, bergwandelingen en actieve verblijven in de Franse Alpen, met gemakkelijke toegang tot de bergen en de restaurants en voorzieningen van het dorp.\r\n      <\/p>\r\n\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-147e2656 e-flex e-con-boxed e-con e-parent\" data-id=\"147e2656\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-674a89b4 elementor-widget elementor-widget-html\" data-id=\"674a89b4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section id=\"enheter\" class=\"bno-section bno-section--soft bno-direct-catalog\" data-bno-direct-catalog data-api-base=\"https:\/\/bno-api-staging.onrender.com\" data-booking-base=\"https:\/\/booking.bno-travel.com\/booking\/complete\" data-catalog-creds-key=\"EMERALD_CHAMPAGNY_EN_VANOISE\" data-booking-partner-key=\"EMERALD_CHAMPAGNY_EN_VANOISE\" data-service-id=\"f1850807-897b-44db-b7ca-b229010044f1\" data-area-key=\"champagny-en-vanoise\" data-destination-label=\"Paradiski\" data-location-label=\"Champagny-en-Vanoise \u00b7 Paradiski\" data-booking-open-until=\"2027-05-01\" data-minimum-stay-nights=\"1\" data-initial-count=\"12\">\r\n  <div class=\"bno-shell\">\r\n    <div class=\"bno-section-heading\">\r\n      <span class=\"bno-eyebrow\">\r\n        Vakantiehuizen in Paradiski\r\n      <\/span>\r\n\r\n      <h2>\r\n        Vind het vakantiehuis dat bij je verblijf in Paradiski past\r\n      <\/h2>\r\n\r\n      <p>\r\n        Ontdek zorgvuldig geselecteerde vakantiehuizen in Champagny-en-Vanoise met toegang tot Paradiski. Bekijk foto's, capaciteit en beschrijvingen voordat je prijs en beschikbaarheid controleert.\r\n      <\/p>\r\n    <\/div>\r\n\r\n    <div class=\"bno-direct-catalog__status\" data-bno-status role=\"status\" aria-live=\"polite\">\r\n      Vakantiehuizen laden \u2026\r\n    <\/div>\r\n\r\n    <div class=\"bno-direct-catalog__grid\" data-bno-grid aria-live=\"polite\" aria-busy=\"true\"><\/div>\r\n\r\n    <div class=\"bno-direct-more-wrap\" data-bno-more-wrap hidden>\r\n      <button type=\"button\" class=\"bno-direct-more\" data-bno-more>\r\n        Meer vakantiehuizen tonen\r\n      <\/button>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5600bc2 e-flex e-con-boxed e-con e-parent\" data-id=\"5600bc2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4b4b7bc elementor-widget elementor-widget-html\" data-id=\"4b4b7bc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n.bno-direct-catalog,\r\n.bno-direct-modal {\r\n  --bno-navy: #0c1a38;\r\n  --bno-navy-hover: #162b55;\r\n  --bno-text: #3f4a5e;\r\n  --bno-muted: #536078;\r\n  --bno-border: rgba(12, 26, 56, 0.14);\r\n  --bno-soft: #eef3f8;\r\n  --bno-success-bg: #edf8f1;\r\n  --bno-success: #176b35;\r\n  --bno-error-bg: #fff1f1;\r\n  --bno-error: #8f1d1d;\r\n}\r\n\r\n.bno-direct-catalog,\r\n.bno-direct-catalog *,\r\n.bno-direct-modal,\r\n.bno-direct-modal * {\r\n  box-sizing: border-box;\r\n}\r\n\r\nhtml.bno-direct-modal-open,\r\nbody.bno-direct-modal-open {\r\n  overflow: hidden !important;\r\n}\r\n\r\n.bno-direct-catalog__status {\r\n  width: 100%;\r\n  margin: 28px 0 0;\r\n  padding: 16px 18px;\r\n  border: 1px solid var(--bno-border);\r\n  border-radius: 14px;\r\n  background: #ffffff !important;\r\n  color: var(--bno-navy) !important;\r\n  font-size: 15px;\r\n  line-height: 1.5;\r\n}\r\n\r\n.bno-direct-catalog__status.is-error {\r\n  border-color: rgba(143, 29, 29, 0.24);\r\n  background: var(--bno-error-bg) !important;\r\n  color: var(--bno-error) !important;\r\n}\r\n\r\n.bno-direct-catalog__grid {\r\n  display: grid !important;\r\n  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;\r\n  gap: 24px !important;\r\n  align-items: stretch;\r\n  width: 100%;\r\n  margin-top: 28px;\r\n}\r\n\r\n.bno-direct-card {\r\n  display: flex;\r\n  min-width: 0;\r\n  max-width: 100%;\r\n  height: 100%;\r\n  overflow: hidden;\r\n  border: 1px solid var(--bno-border);\r\n  border-radius: 20px;\r\n  background: #ffffff !important;\r\n  color: var(--bno-navy) !important;\r\n  box-shadow: 0 12px 34px rgba(12, 26, 56, 0.08);\r\n  transition:\r\n    transform 0.2s ease,\r\n    box-shadow 0.2s ease;\r\n}\r\n\r\n.bno-direct-card:hover {\r\n  transform: translateY(-4px);\r\n  box-shadow: 0 18px 42px rgba(12, 26, 56, 0.14);\r\n}\r\n\r\n.bno-direct-card__button,\r\n.bno-direct-card__button:hover,\r\n.bno-direct-card__button:focus,\r\n.bno-direct-card__button:focus-visible,\r\n.bno-direct-card__button:active {\r\n  display: flex !important;\r\n  flex: 1 1 auto;\r\n  flex-direction: column !important;\r\n  width: 100% !important;\r\n  min-width: 0 !important;\r\n  max-width: 100% !important;\r\n  height: 100% !important;\r\n  margin: 0 !important;\r\n  padding: 0 !important;\r\n  overflow: hidden !important;\r\n  border: 0 !important;\r\n  border-radius: inherit !important;\r\n  background: transparent !important;\r\n  background-color: transparent !important;\r\n  background-image: none !important;\r\n  color: inherit !important;\r\n  box-shadow: none !important;\r\n  text-align: left !important;\r\n  text-decoration: none !important;\r\n  cursor: pointer;\r\n  appearance: none !important;\r\n  -webkit-appearance: none !important;\r\n}\r\n\r\n.bno-direct-card__media {\r\n  position: relative;\r\n  flex: 0 0 auto;\r\n  width: 100%;\r\n  min-width: 0;\r\n  aspect-ratio: 4 \/ 3;\r\n  overflow: hidden;\r\n  background: var(--bno-navy);\r\n}\r\n\r\n.bno-direct-card__media img {\r\n  display: block;\r\n  width: 100% !important;\r\n  height: 100% !important;\r\n  max-width: none !important;\r\n  margin: 0 !important;\r\n  padding: 0 !important;\r\n  object-fit: cover;\r\n  object-position: center;\r\n  border: 0;\r\n  border-radius: 0;\r\n  background: var(--bno-navy);\r\n  box-shadow: none;\r\n  transition: transform 0.35s ease;\r\n}\r\n\r\n.bno-direct-card:hover .bno-direct-card__media img {\r\n  transform: scale(1.035);\r\n}\r\n\r\n.bno-direct-card__count {\r\n  position: absolute;\r\n  right: 12px;\r\n  bottom: 12px;\r\n  z-index: 2;\r\n  padding: 7px 10px;\r\n  border: 1px solid rgba(255, 255, 255, 0.2);\r\n  border-radius: 999px;\r\n  background: rgba(12, 26, 56, 0.92) !important;\r\n  color: #ffffff !important;\r\n  font-size: 12px;\r\n  font-weight: 800;\r\n  line-height: 1;\r\n  white-space: nowrap;\r\n}\r\n\r\n.bno-direct-card__body {\r\n  display: flex !important;\r\n  flex: 1 1 auto;\r\n  flex-direction: column;\r\n  width: 100%;\r\n  min-width: 0;\r\n  max-width: 100%;\r\n  min-height: 238px;\r\n  padding: 20px;\r\n  overflow: hidden;\r\n  background: #ffffff !important;\r\n  color: var(--bno-navy) !important;\r\n}\r\n\r\n.bno-direct-card__body h3 {\r\n  display: -webkit-box;\r\n  width: 100%;\r\n  min-width: 0;\r\n  max-width: 100%;\r\n  margin: 0;\r\n  overflow: hidden;\r\n  color: var(--bno-navy) !important;\r\n  font-size: clamp(18px, 1.45vw, 22px);\r\n  font-weight: 800;\r\n  line-height: 1.2;\r\n  white-space: normal !important;\r\n  overflow-wrap: anywhere;\r\n  word-break: normal;\r\n  hyphens: auto;\r\n  -webkit-box-orient: vertical;\r\n  -webkit-line-clamp: 3;\r\n}\r\n\r\n.bno-direct-card__meta {\r\n  width: 100%;\r\n  margin: 8px 0 0;\r\n  color: var(--bno-muted) !important;\r\n  font-size: 13px;\r\n  font-weight: 800;\r\n  line-height: 1.4;\r\n}\r\n\r\n.bno-direct-card__description {\r\n  display: -webkit-box;\r\n  width: 100%;\r\n  min-width: 0;\r\n  max-width: 100%;\r\n  margin: 14px 0 0;\r\n  overflow: hidden;\r\n  color: var(--bno-text) !important;\r\n  font-size: 14px;\r\n  line-height: 1.6;\r\n  white-space: normal !important;\r\n  overflow-wrap: anywhere;\r\n  word-break: normal;\r\n  -webkit-box-orient: vertical;\r\n  -webkit-line-clamp: 4;\r\n}\r\n\r\n.bno-direct-card__link {\r\n  display: inline-flex;\r\n  align-items: center;\r\n  align-self: flex-start;\r\n  margin-top: auto;\r\n  padding-top: 18px;\r\n  color: var(--bno-navy) !important;\r\n  font-size: 14px;\r\n  font-weight: 800;\r\n}\r\n\r\n.bno-direct-more-wrap {\r\n  display: flex;\r\n  justify-content: center;\r\n  margin-top: 34px;\r\n}\r\n\r\n.bno-direct-more-wrap[hidden],\r\n.bno-direct-modal[hidden],\r\n.bno-direct-message[hidden],\r\n.bno-direct-price[hidden],\r\n.bno-direct-continue[hidden] {\r\n  display: none !important;\r\n}\r\n\r\n.bno-direct-more,\r\n.bno-direct-check-button,\r\n.bno-direct-book-button,\r\n.bno-direct-more:hover,\r\n.bno-direct-check-button:hover,\r\n.bno-direct-book-button:hover,\r\n.bno-direct-more:focus,\r\n.bno-direct-check-button:focus,\r\n.bno-direct-book-button:focus,\r\n.bno-direct-more:active,\r\n.bno-direct-check-button:active,\r\n.bno-direct-book-button:active {\r\n  display: inline-flex !important;\r\n  align-items: center !important;\r\n  justify-content: center !important;\r\n  min-height: 50px !important;\r\n  margin: 0 !important;\r\n  padding: 12px 20px !important;\r\n  border: 1px solid var(--bno-navy) !important;\r\n  border-radius: 11px !important;\r\n  background: var(--bno-navy) !important;\r\n  background-color: var(--bno-navy) !important;\r\n  background-image: none !important;\r\n  color: #ffffff !important;\r\n  box-shadow: none !important;\r\n  font: inherit;\r\n  font-size: 14px !important;\r\n  font-weight: 800 !important;\r\n  line-height: 1.3 !important;\r\n  text-align: center !important;\r\n  text-decoration: none !important;\r\n  white-space: normal !important;\r\n  cursor: pointer;\r\n  appearance: none !important;\r\n  -webkit-appearance: none !important;\r\n}\r\n\r\n.bno-direct-more:hover,\r\n.bno-direct-check-button:hover,\r\n.bno-direct-book-button:hover {\r\n  background: var(--bno-navy-hover) !important;\r\n}\r\n\r\n.bno-direct-check-button:disabled {\r\n  border-color: #778195 !important;\r\n  background: #778195 !important;\r\n  cursor: wait;\r\n}\r\n\r\n.bno-direct-modal {\r\n  position: fixed;\r\n  z-index: 999999;\r\n  inset: 0;\r\n  display: grid;\r\n  place-items: center;\r\n  width: 100%;\r\n  max-width: 100%;\r\n  padding: 24px;\r\n  overflow: hidden;\r\n  -webkit-text-size-adjust: 100%;\r\n  text-size-adjust: 100%;\r\n}\r\n\r\n.bno-direct-modal__backdrop,\r\n.bno-direct-modal__backdrop:hover,\r\n.bno-direct-modal__backdrop:focus,\r\n.bno-direct-modal__backdrop:active {\r\n  position: absolute;\r\n  z-index: 0;\r\n  inset: 0;\r\n  width: 100%;\r\n  height: 100%;\r\n  margin: 0 !important;\r\n  padding: 0 !important;\r\n  border: 0 !important;\r\n  border-radius: 0 !important;\r\n  background: rgba(4, 12, 28, 0.82) !important;\r\n  background-image: none !important;\r\n  box-shadow: none !important;\r\n  cursor: zoom-out;\r\n  backdrop-filter: blur(3px);\r\n  appearance: none !important;\r\n  -webkit-appearance: none !important;\r\n}\r\n\r\n.bno-direct-modal__dialog {\r\n  position: relative;\r\n  z-index: 1;\r\n  display: grid;\r\n  grid-template-columns:\r\n    minmax(0, 1.16fr)\r\n    minmax(390px, 0.84fr);\r\n  width: min(1180px, calc(100vw - 48px));\r\n  max-width: 100%;\r\n  height: min(760px, calc(100dvh - 48px));\r\n  max-height: calc(100dvh - 48px);\r\n  overflow: hidden;\r\n  border: 1px solid rgba(255, 255, 255, 0.18);\r\n  border-radius: 22px;\r\n  background: #ffffff;\r\n  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.4);\r\n}\r\n\r\n.bno-direct-modal__gallery {\r\n  position: relative;\r\n  width: 100%;\r\n  height: 100%;\r\n  min-width: 0;\r\n  min-height: 0;\r\n  overflow: hidden;\r\n  background: var(--bno-navy);\r\n}\r\n\r\n.bno-direct-modal__image {\r\n  position: absolute;\r\n  inset: 0;\r\n  display: block;\r\n  width: 100% !important;\r\n  height: 100% !important;\r\n  min-width: 100% !important;\r\n  min-height: 100% !important;\r\n  max-width: none !important;\r\n  max-height: none !important;\r\n  margin: 0 !important;\r\n  padding: 0 !important;\r\n  object-fit: cover;\r\n  object-position: center;\r\n  border: 0;\r\n  border-radius: 0;\r\n  background: var(--bno-navy);\r\n}\r\n\r\n.bno-direct-modal__content {\r\n  width: 100%;\r\n  height: 100%;\r\n  min-width: 0;\r\n  min-height: 0;\r\n  padding: 40px 34px 36px;\r\n  overflow-x: hidden;\r\n  overflow-y: auto;\r\n  background: #ffffff !important;\r\n  color: var(--bno-text) !important;\r\n  scrollbar-color: rgba(12, 26, 56, 0.32) transparent;\r\n  scrollbar-width: thin;\r\n}\r\n\r\n.bno-direct-modal__content * {\r\n  min-width: 0;\r\n}\r\n\r\n.bno-direct-eyebrow {\r\n  display: inline-block;\r\n  max-width: 100%;\r\n  color: var(--bno-muted) !important;\r\n  font-size: 12px;\r\n  font-weight: 800;\r\n  letter-spacing: 0.04em;\r\n  line-height: 1.4;\r\n  text-transform: uppercase;\r\n  white-space: normal;\r\n  overflow-wrap: anywhere;\r\n}\r\n\r\n.bno-direct-modal__content h3 {\r\n  width: 100%;\r\n  max-width: 100%;\r\n  margin: 10px 0 0;\r\n  color: var(--bno-navy) !important;\r\n  font-size: clamp(28px, 3vw, 40px);\r\n  font-weight: 800;\r\n  line-height: 1.08;\r\n  white-space: normal !important;\r\n  overflow-wrap: anywhere;\r\n  hyphens: auto;\r\n}\r\n\r\n.bno-direct-modal__capacity {\r\n  width: 100%;\r\n  margin: 12px 0 0;\r\n  color: var(--bno-muted) !important;\r\n  font-size: 14px;\r\n  font-weight: 800;\r\n}\r\n\r\n.bno-direct-modal__description {\r\n  width: 100%;\r\n  max-width: 100%;\r\n  max-height: 245px;\r\n  margin-top: 20px;\r\n  padding-right: 8px;\r\n  overflow-x: hidden;\r\n  overflow-y: auto;\r\n  color: var(--bno-text) !important;\r\n  font-size: 15px;\r\n  line-height: 1.72;\r\n  white-space: pre-line;\r\n  overflow-wrap: anywhere;\r\n}\r\n\r\n.bno-direct-modal__close,\r\n.bno-direct-modal__arrow,\r\n.bno-direct-modal__close:hover,\r\n.bno-direct-modal__arrow:hover,\r\n.bno-direct-modal__close:focus,\r\n.bno-direct-modal__arrow:focus,\r\n.bno-direct-modal__close:active,\r\n.bno-direct-modal__arrow:active {\r\n  display: grid !important;\r\n  place-items: center !important;\r\n  margin: 0 !important;\r\n  padding: 0 !important;\r\n  border: 1px solid rgba(255, 255, 255, 0.25) !important;\r\n  border-radius: 999px !important;\r\n  background: rgba(12, 26, 56, 0.94) !important;\r\n  background-image: none !important;\r\n  color: #ffffff !important;\r\n  box-shadow: 0 7px 22px rgba(0, 0, 0, 0.24) !important;\r\n  font-family: Arial, sans-serif !important;\r\n  font-weight: 400 !important;\r\n  line-height: 1 !important;\r\n  cursor: pointer;\r\n  appearance: none !important;\r\n  -webkit-appearance: none !important;\r\n}\r\n\r\n.bno-direct-modal__close {\r\n  position: absolute;\r\n  z-index: 12;\r\n  top: 14px;\r\n  right: 14px;\r\n  width: 44px !important;\r\n  min-width: 44px !important;\r\n  height: 44px !important;\r\n  min-height: 44px !important;\r\n  font-size: 28px !important;\r\n}\r\n\r\n.bno-direct-modal__arrow {\r\n  position: absolute;\r\n  z-index: 8;\r\n  top: 50%;\r\n  width: 48px !important;\r\n  min-width: 48px !important;\r\n  height: 48px !important;\r\n  min-height: 48px !important;\r\n  font-size: 35px !important;\r\n  transform: translateY(-50%);\r\n}\r\n\r\n.bno-direct-modal__arrow--prev {\r\n  left: 18px;\r\n}\r\n\r\n.bno-direct-modal__arrow--next {\r\n  right: 18px;\r\n}\r\n\r\n.bno-direct-modal__arrow[hidden] {\r\n  display: none !important;\r\n}\r\n\r\n.bno-direct-modal__counter {\r\n  position: absolute;\r\n  z-index: 8;\r\n  right: 18px;\r\n  bottom: 18px;\r\n  padding: 8px 12px;\r\n  border: 1px solid rgba(255, 255, 255, 0.2);\r\n  border-radius: 999px;\r\n  background: rgba(12, 26, 56, 0.92) !important;\r\n  color: #ffffff !important;\r\n  font-size: 13px;\r\n  font-weight: 800;\r\n  line-height: 1;\r\n}\r\n\r\n.bno-direct-booking {\r\n  width: 100%;\r\n  margin-top: 30px;\r\n  padding-top: 28px;\r\n  border-top: 1px solid var(--bno-border);\r\n}\r\n\r\n.bno-direct-booking__heading h4 {\r\n  width: 100%;\r\n  margin: 6px 0 0;\r\n  color: var(--bno-navy) !important;\r\n  font-size: 22px;\r\n  font-weight: 800;\r\n  line-height: 1.25;\r\n  overflow-wrap: anywhere;\r\n}\r\n\r\n.bno-direct-form {\r\n  display: grid;\r\n  grid-template-columns: repeat(2, minmax(0, 1fr));\r\n  gap: 14px;\r\n  width: 100%;\r\n  margin-top: 20px;\r\n}\r\n\r\n.bno-direct-form label {\r\n  display: grid;\r\n  gap: 7px;\r\n  width: 100%;\r\n  min-width: 0;\r\n  color: var(--bno-navy) !important;\r\n  font-size: 13px;\r\n  font-weight: 800;\r\n}\r\n\r\n.bno-direct-form input {\r\n  display: block;\r\n  width: 100% !important;\r\n  max-width: 100% !important;\r\n  min-width: 0 !important;\r\n  min-height: 48px;\r\n  margin: 0 !important;\r\n  padding: 10px 12px !important;\r\n  border: 1px solid rgba(12, 26, 56, 0.22) !important;\r\n  border-radius: 10px !important;\r\n  background: #ffffff !important;\r\n  color: var(--bno-navy) !important;\r\n  box-shadow: none !important;\r\n  font: inherit;\r\n  font-size: 16px !important;\r\n}\r\n\r\n.bno-direct-check-button {\r\n  grid-column: 1 \/ -1;\r\n  width: 100% !important;\r\n}\r\n\r\n.bno-direct-message {\r\n  width: 100%;\r\n  max-width: 100%;\r\n  margin-top: 15px;\r\n  padding: 14px 15px;\r\n  border-radius: 11px;\r\n  background: var(--bno-soft) !important;\r\n  color: var(--bno-navy) !important;\r\n  font-size: 14px;\r\n  line-height: 1.5;\r\n  white-space: normal !important;\r\n  overflow-wrap: anywhere;\r\n}\r\n\r\n.bno-direct-message.is-success {\r\n  background: var(--bno-success-bg) !important;\r\n  color: var(--bno-success) !important;\r\n}\r\n\r\n.bno-direct-message.is-error {\r\n  background: var(--bno-error-bg) !important;\r\n  color: var(--bno-error) !important;\r\n}\r\n\r\n.bno-direct-price {\r\n  width: 100%;\r\n  max-width: 100%;\r\n  margin-top: 18px;\r\n  overflow: hidden;\r\n  border: 1px solid var(--bno-border);\r\n  border-radius: 14px;\r\n  background: #ffffff !important;\r\n}\r\n\r\n.bno-direct-price__row {\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n  gap: 20px;\r\n  width: 100%;\r\n  min-width: 0;\r\n  padding: 13px 15px;\r\n  border-top: 1px solid rgba(12, 26, 56, 0.1);\r\n  background: #ffffff !important;\r\n  color: var(--bno-navy) !important;\r\n}\r\n\r\n.bno-direct-price__row:first-child {\r\n  border-top: 0;\r\n}\r\n\r\n.bno-direct-price__row span,\r\n.bno-direct-price__row strong {\r\n  min-width: 0;\r\n  max-width: 100%;\r\n  color: inherit !important;\r\n  white-space: normal !important;\r\n  overflow-wrap: anywhere;\r\n}\r\n\r\n.bno-direct-price__row strong {\r\n  flex: 0 0 auto;\r\n  text-align: right;\r\n}\r\n\r\n.bno-direct-price__row--total {\r\n  background: var(--bno-navy) !important;\r\n  color: #ffffff !important;\r\n}\r\n\r\n.bno-direct-continue {\r\n  width: 100%;\r\n  margin-top: 18px;\r\n}\r\n\r\n.bno-direct-book-button {\r\n  width: 100% !important;\r\n  min-height: 54px !important;\r\n  font-size: 15px !important;\r\n}\r\n\r\n.bno-direct-continue p {\r\n  width: 100%;\r\n  margin: 10px 0 0;\r\n  color: var(--bno-muted) !important;\r\n  font-size: 12px;\r\n  line-height: 1.5;\r\n  text-align: center;\r\n  overflow-wrap: anywhere;\r\n}\r\n\r\n@media (max-width: 980px) {\r\n  .bno-direct-catalog__grid {\r\n    grid-template-columns:\r\n      repeat(2, minmax(0, 1fr)) !important;\r\n  }\r\n}\r\n\r\n@media (max-width: 900px) {\r\n  .bno-direct-modal {\r\n    display: block !important;\r\n    width: 100% !important;\r\n    max-width: 100% !important;\r\n    padding: 0 !important;\r\n    overflow-x: hidden !important;\r\n    overflow-y: auto !important;\r\n    background: #ffffff !important;\r\n    overscroll-behavior: contain;\r\n    -webkit-overflow-scrolling: touch;\r\n  }\r\n\r\n  .bno-direct-modal__backdrop {\r\n    position: fixed !important;\r\n  }\r\n\r\n  .bno-direct-modal__dialog {\r\n    display: block !important;\r\n    width: 100% !important;\r\n    max-width: 100% !important;\r\n    min-width: 0 !important;\r\n    height: auto !important;\r\n    min-height: 100vh !important;\r\n    min-height: 100dvh !important;\r\n    max-height: none !important;\r\n    margin: 0 !important;\r\n    padding: 0 !important;\r\n    overflow: visible !important;\r\n    border: 0 !important;\r\n    border-radius: 0 !important;\r\n    background: #ffffff !important;\r\n    box-shadow: none !important;\r\n  }\r\n\r\n  .bno-direct-modal__gallery {\r\n    width: 100% !important;\r\n    max-width: 100% !important;\r\n    height: clamp(320px, 60vw, 520px) !important;\r\n    min-height: 320px !important;\r\n  }\r\n\r\n  .bno-direct-modal__content {\r\n    width: 100% !important;\r\n    max-width: 100% !important;\r\n    min-width: 0 !important;\r\n    height: auto !important;\r\n    max-height: none !important;\r\n    margin: 0 !important;\r\n    padding:\r\n      34px\r\n      clamp(20px, 5vw, 44px)\r\n      52px !important;\r\n    overflow: visible !important;\r\n  }\r\n\r\n  .bno-direct-modal__description {\r\n    max-height: none !important;\r\n    padding-right: 0 !important;\r\n    overflow: visible !important;\r\n  }\r\n\r\n  .bno-direct-modal__close {\r\n    position: fixed !important;\r\n    top: max(12px, env(safe-area-inset-top)) !important;\r\n    right: max(12px, env(safe-area-inset-right)) !important;\r\n  }\r\n\r\n  .bno-direct-price__row {\r\n    display: grid !important;\r\n    grid-template-columns: minmax(0, 1fr) !important;\r\n    align-items: start !important;\r\n    gap: 7px !important;\r\n    padding: 17px 18px !important;\r\n  }\r\n\r\n  .bno-direct-price__row strong {\r\n    width: 100%;\r\n    text-align: left !important;\r\n    font-size: 20px;\r\n  }\r\n}\r\n\r\n@media (max-width: 620px) {\r\n  .bno-direct-catalog__grid {\r\n    grid-template-columns: 1fr !important;\r\n  }\r\n\r\n  .bno-direct-card__body {\r\n    min-height: 220px;\r\n  }\r\n\r\n  .bno-direct-modal__gallery {\r\n    height: 66vw !important;\r\n    min-height: 270px !important;\r\n    max-height: 370px !important;\r\n  }\r\n\r\n  .bno-direct-modal__content {\r\n    padding:\r\n      28px\r\n      max(18px, env(safe-area-inset-right))\r\n      calc(48px + env(safe-area-inset-bottom))\r\n      max(18px, env(safe-area-inset-left)) !important;\r\n  }\r\n\r\n  .bno-direct-modal__content h3 {\r\n    font-size: 28px !important;\r\n    line-height: 1.12 !important;\r\n  }\r\n\r\n  .bno-direct-booking__heading h4 {\r\n    font-size: 24px !important;\r\n    line-height: 1.18 !important;\r\n  }\r\n\r\n  .bno-direct-form {\r\n    grid-template-columns: minmax(0, 1fr) !important;\r\n  }\r\n\r\n  .bno-direct-check-button {\r\n    grid-column: 1 !important;\r\n  }\r\n\r\n  .bno-direct-modal__arrow {\r\n    width: 44px !important;\r\n    min-width: 44px !important;\r\n    height: 44px !important;\r\n    min-height: 44px !important;\r\n  }\r\n\r\n  .bno-direct-modal__arrow--prev {\r\n    left: 12px;\r\n  }\r\n\r\n  .bno-direct-modal__arrow--next {\r\n    right: 12px;\r\n  }\r\n\r\n  .bno-direct-modal__counter {\r\n    right: 12px;\r\n    bottom: 12px;\r\n  }\r\n}\r\n<\/style>\r\n\r\n<script>\r\n(function () {\r\n  \"use strict\";\r\n\r\n  const ROOT_SELECTOR = \"[data-bno-direct-catalog]\";\r\n\r\n  function clean(value) {\r\n    return String(value || \"\").trim();\r\n  }\r\n\r\n  function cleanBase(value) {\r\n    return clean(value).replace(\/\\\/+$\/, \"\");\r\n  }\r\n\r\n  function endpoint(base, path) {\r\n    const apiBase = cleanBase(base);\r\n    const route = String(path || \"\");\r\n\r\n    if (\r\n      apiBase.endsWith(\"\/api\") &&\r\n      route.startsWith(\"\/api\/\")\r\n    ) {\r\n      return apiBase + route.slice(4);\r\n    }\r\n\r\n    return apiBase + route;\r\n  }\r\n\r\n  function escapeHtml(value) {\r\n    return String(\r\n      value == null ? \"\" : value\r\n    )\r\n      .replace(\/&\/g, \"&amp;\")\r\n      .replace(\/<\/g, \"&lt;\")\r\n      .replace(\/>\/g, \"&gt;\")\r\n      .replace(\/\"\/g, \"&quot;\")\r\n      .replace(\/'\/g, \"&#039;\");\r\n  }\r\n\r\n  function stripHtml(value) {\r\n    const element =\r\n      document.createElement(\"div\");\r\n\r\n    element.innerHTML =\r\n      String(value || \"\");\r\n\r\n    return String(\r\n      element.textContent ||\r\n      element.innerText ||\r\n      \"\"\r\n    )\r\n      .replace(\/\\s+\/g, \" \")\r\n      .trim();\r\n  }\r\n\r\n  function firstValue(object, keys) {\r\n    for (const key of keys) {\r\n      if (\r\n        object &&\r\n        object[key] != null &&\r\n        object[key] !== \"\"\r\n      ) {\r\n        return object[key];\r\n      }\r\n    }\r\n\r\n    return \"\";\r\n  }\r\n\r\n  function parseIdSet(value) {\r\n    return new Set(\r\n      clean(value)\r\n        .split(\",\")\r\n        .map(function (item) {\r\n          return item.trim();\r\n        })\r\n        .filter(Boolean)\r\n    );\r\n  }\r\n\r\n  function currentLanguage() {\r\n    return \"nl\";\r\n  }\r\n\r\n  function localDate(date) {\r\n    return (\r\n      date.getFullYear() +\r\n      \"-\" +\r\n      String(\r\n        date.getMonth() + 1\r\n      ).padStart(2, \"0\") +\r\n      \"-\" +\r\n      String(\r\n        date.getDate()\r\n      ).padStart(2, \"0\")\r\n    );\r\n  }\r\n\r\n  function addDays(date, days) {\r\n    const result =\r\n      new Date(date.getTime());\r\n\r\n    result.setDate(\r\n      result.getDate() +\r\n      Number(days || 0)\r\n    );\r\n\r\n    return result;\r\n  }\r\n\r\n  function numberOfNights(from, to) {\r\n    return Math.round(\r\n      (\r\n        new Date(\r\n          to + \"T12:00:00\"\r\n        ).getTime() -\r\n        new Date(\r\n          from + \"T12:00:00\"\r\n        ).getTime()\r\n      ) \/\r\n      86400000\r\n    );\r\n  }\r\n\r\n  function formatDate(value) {\r\n    try {\r\n      return new Intl.DateTimeFormat(\r\n        \"nl-NL\",\r\n        {\r\n          day: \"numeric\",\r\n          month: \"short\",\r\n          year: \"numeric\"\r\n        }\r\n      ).format(\r\n        new Date(\r\n          value + \"T12:00:00\"\r\n        )\r\n      );\r\n    } catch (_error) {\r\n      return value;\r\n    }\r\n  }\r\n\r\n  function formatMoney(\r\n    amount,\r\n    currency\r\n  ) {\r\n    try {\r\n      return new Intl.NumberFormat(\r\n        \"nl-NL\",\r\n        {\r\n          style: \"currency\",\r\n          currency: clean(\r\n            currency || \"EUR\"\r\n          ).toUpperCase(),\r\n          minimumFractionDigits: 2,\r\n          maximumFractionDigits: 2\r\n        }\r\n      ).format(\r\n        Number(amount || 0)\r\n      );\r\n    } catch (_error) {\r\n      return (\r\n        Number(amount || 0).toFixed(2) +\r\n        \" \" +\r\n        clean(currency || \"EUR\")\r\n      );\r\n    }\r\n  }\r\n\r\n  function getImages(row) {\r\n    const result = [];\r\n\r\n    function addImage(value) {\r\n      if (!value) {\r\n        return;\r\n      }\r\n\r\n      if (typeof value === \"string\") {\r\n        const url = value.trim();\r\n\r\n        if (\/^https?:\\\/\\\/\/i.test(url)) {\r\n          result.push(url);\r\n        }\r\n\r\n        return;\r\n      }\r\n\r\n      if (typeof value === \"object\") {\r\n        addImage(\r\n          value.url ||\r\n          value.Url ||\r\n          value.imageUrl ||\r\n          value.ImageUrl ||\r\n          value.source ||\r\n          value.Source ||\r\n          value.original ||\r\n          value.Original\r\n        );\r\n      }\r\n    }\r\n\r\n    [\r\n      row.images,\r\n      row.Images,\r\n      row.gallery,\r\n      row.Gallery,\r\n      row.imageUrls,\r\n      row.ImageUrls,\r\n      row.photos,\r\n      row.Photos\r\n    ].forEach(function (items) {\r\n      if (Array.isArray(items)) {\r\n        items.forEach(addImage);\r\n      }\r\n    });\r\n\r\n    [\r\n      row.image,\r\n      row.Image,\r\n      row.coverImageUrl,\r\n      row.CoverImageUrl,\r\n      row.imageUrl,\r\n      row.ImageUrl,\r\n      row.thumbnailUrl,\r\n      row.ThumbnailUrl\r\n    ].forEach(addImage);\r\n\r\n    return Array.from(\r\n      new Set(result)\r\n    );\r\n  }\r\n\r\n  function extractRows(payload) {\r\n    const candidates = [\r\n      payload &&\r\n      payload.data &&\r\n      payload.data.resourceCategories,\r\n\r\n      payload &&\r\n      payload.data &&\r\n      payload.data.categories,\r\n\r\n      payload &&\r\n      payload.data &&\r\n      payload.data.items,\r\n\r\n      payload && payload.data,\r\n      payload && payload.resourceCategories,\r\n      payload && payload.categories,\r\n      payload && payload.items\r\n    ];\r\n\r\n    for (const candidate of candidates) {\r\n      if (Array.isArray(candidate)) {\r\n        return candidate;\r\n      }\r\n    }\r\n\r\n    return [];\r\n  }\r\n\r\n  function normaliseUnit(row) {\r\n    return {\r\n      id: clean(\r\n        firstValue(row, [\r\n          \"resourceCategoryId\",\r\n          \"ResourceCategoryId\",\r\n          \"categoryId\",\r\n          \"CategoryId\",\r\n          \"id\",\r\n          \"Id\"\r\n        ])\r\n      ),\r\n\r\n      name: clean(\r\n        firstValue(row, [\r\n          \"localizedName\",\r\n          \"LocalizedName\",\r\n          \"categoryName\",\r\n          \"CategoryName\",\r\n          \"name\",\r\n          \"Name\",\r\n          \"title\",\r\n          \"Title\"\r\n        ]) ||\r\n        \"Vakantiehuis\"\r\n      ),\r\n\r\n      description: stripHtml(\r\n        firstValue(row, [\r\n          \"localizedDescription\",\r\n          \"LocalizedDescription\",\r\n          \"description\",\r\n          \"Description\",\r\n          \"longDescription\",\r\n          \"LongDescription\",\r\n          \"shortDescription\",\r\n          \"ShortDescription\"\r\n        ])\r\n      ),\r\n\r\n      capacity:\r\n        Number(\r\n          firstValue(row, [\r\n            \"capacity\",\r\n            \"Capacity\",\r\n            \"maxOccupancy\",\r\n            \"MaxOccupancy\",\r\n            \"maximumOccupancy\",\r\n            \"MaximumOccupancy\",\r\n            \"maxPersons\",\r\n            \"MaxPersons\",\r\n            \"maxGuests\",\r\n            \"MaxGuests\"\r\n          ])\r\n        ) || 0,\r\n\r\n      images:\r\n        getImages(row),\r\n\r\n      published:\r\n        firstValue(row, [\r\n          \"isPublished\",\r\n          \"IsPublished\",\r\n          \"is_published\",\r\n          \"publishStatus\",\r\n          \"PublishStatus\",\r\n          \"publish_status\"\r\n        ])\r\n    };\r\n  }\r\n\r\n  function isPublished(\r\n    unit,\r\n    hasPublicationFields\r\n  ) {\r\n    if (!hasPublicationFields) {\r\n      return true;\r\n    }\r\n\r\n    if (\r\n      typeof unit.published ===\r\n      \"boolean\"\r\n    ) {\r\n      return unit.published;\r\n    }\r\n\r\n    return [\r\n      \"published\",\r\n      \"approved\",\r\n      \"reviewed\",\r\n      \"active\",\r\n      \"true\",\r\n      \"1\"\r\n    ].includes(\r\n      clean(\r\n        unit.published\r\n      ).toLowerCase()\r\n    );\r\n  }\r\n\r\n  async function fetchJson(\r\n    url,\r\n    options\r\n  ) {\r\n    const controller =\r\n      new AbortController();\r\n\r\n    const timeout =\r\n      window.setTimeout(\r\n        function () {\r\n          controller.abort();\r\n        },\r\n        60000\r\n      );\r\n\r\n    try {\r\n      const response = await fetch(\r\n        url,\r\n        Object.assign(\r\n          {\r\n            cache: \"no-store\",\r\n            signal: controller.signal,\r\n            headers: {\r\n              Accept: \"application\/json\"\r\n            }\r\n          },\r\n          options || {}\r\n        )\r\n      );\r\n\r\n      const payload =\r\n        await response\r\n          .json()\r\n          .catch(function () {\r\n            return null;\r\n          });\r\n\r\n      if (\r\n        !response.ok ||\r\n        !payload ||\r\n        payload.ok === false\r\n      ) {\r\n        const error = new Error(\r\n          payload &&\r\n          (\r\n            payload.detail ||\r\n            payload.message ||\r\n            payload.error\r\n          )\r\n            ? (\r\n                payload.detail ||\r\n                payload.message ||\r\n                payload.error\r\n              )\r\n            : \"De aanvraag kon niet worden voltooid.\"\r\n        );\r\n\r\n        error.code =\r\n          payload &&\r\n          payload.error\r\n            ? String(payload.error)\r\n            : \"\";\r\n\r\n        throw error;\r\n      }\r\n\r\n      return payload;\r\n    } finally {\r\n      window.clearTimeout(timeout);\r\n    }\r\n  }\r\n\r\n  function createModal(\r\n    destination,\r\n    location\r\n  ) {\r\n    const modal =\r\n      document.createElement(\"div\");\r\n\r\n    modal.className =\r\n      \"bno-direct-modal\";\r\n\r\n    modal.hidden = true;\r\n\r\n    modal.setAttribute(\r\n      \"role\",\r\n      \"dialog\"\r\n    );\r\n\r\n    modal.setAttribute(\r\n      \"aria-modal\",\r\n      \"true\"\r\n    );\r\n\r\n    modal.setAttribute(\r\n      \"aria-label\",\r\n      \"Vakantiehuis in \" +\r\n      destination\r\n    );\r\n\r\n    modal.innerHTML = `\r\n      <button type=\"button\" class=\"bno-direct-modal__backdrop\" data-bno-close aria-label=\"Sluiten\"><\/button>\r\n\r\n      <div class=\"bno-direct-modal__dialog\">\r\n\r\n        <button type=\"button\" class=\"bno-direct-modal__close\" data-bno-close aria-label=\"Sluiten\">\r\n          \u00d7\r\n        <\/button>\r\n\r\n        <div class=\"bno-direct-modal__gallery\">\r\n\r\n          <button type=\"button\" class=\"bno-direct-modal__arrow bno-direct-modal__arrow--prev\" data-bno-prev aria-label=\"Vorige afbeelding\">\r\n            \u2039\r\n          <\/button>\r\n\r\n          <img decoding=\"async\" class=\"bno-direct-modal__image\" data-bno-image src=\"\" alt=\"\" \/>\r\n\r\n          <button type=\"button\" class=\"bno-direct-modal__arrow bno-direct-modal__arrow--next\" data-bno-next aria-label=\"Volgende afbeelding\">\r\n            \u203a\r\n          <\/button>\r\n\r\n          <span class=\"bno-direct-modal__counter\" data-bno-counter><\/span>\r\n\r\n        <\/div>\r\n\r\n        <div class=\"bno-direct-modal__content\">\r\n\r\n          <span class=\"bno-direct-eyebrow\">\r\n            ${escapeHtml(\r\n              location ||\r\n              destination\r\n            )}\r\n          <\/span>\r\n\r\n          <h3 data-bno-title><\/h3>\r\n\r\n          <p class=\"bno-direct-modal__capacity\" data-bno-capacity><\/p>\r\n\r\n          <div class=\"bno-direct-modal__description\" data-bno-description><\/div>\r\n\r\n          <div class=\"bno-direct-booking\">\r\n\r\n            <div class=\"bno-direct-booking__heading\">\r\n              <span class=\"bno-direct-eyebrow\">\r\n                Controleer je verblijf\r\n              <\/span>\r\n\r\n              <h4>\r\n                Controleer of het vakantiehuis beschikbaar is\r\n              <\/h4>\r\n            <\/div>\r\n\r\n            <form\r\n              class=\"bno-direct-form\"\r\n              data-bno-form\r\n              novalidate\r\n            >\r\n              <label>\r\n                <span>Inchecken<\/span>\r\n\r\n                <input\r\n                  type=\"date\"\r\n                  data-bno-checkin\r\n                  required\r\n                \/>\r\n              <\/label>\r\n\r\n              <label>\r\n                <span>Uitchecken<\/span>\r\n\r\n                <input\r\n                  type=\"date\"\r\n                  data-bno-checkout\r\n                  required\r\n                \/>\r\n              <\/label>\r\n\r\n              <label>\r\n                <span>Gasten<\/span>\r\n\r\n                <input\r\n                  type=\"number\"\r\n                  data-bno-guests\r\n                  min=\"1\"\r\n                  step=\"1\"\r\n                  value=\"2\"\r\n                  required\r\n                \/>\r\n              <\/label>\r\n\r\n              <button type=\"submit\" class=\"bno-direct-check-button\" data-bno-check>\r\n                Beschikbaarheid controleren\r\n              <\/button>\r\n            <\/form>\r\n\r\n            <div class=\"bno-direct-message\" data-bno-message role=\"status\" aria-live=\"polite\" hidden><\/div>\r\n\r\n            <div class=\"bno-direct-price\" data-bno-price hidden>\r\n              <div class=\"bno-direct-price__row bno-direct-price__row--total\">\r\n                <span>\r\n                  Totale prijs voor het verblijf\r\n                <\/span>\r\n\r\n                <strong data-bno-total><\/strong>\r\n              <\/div>\r\n\r\n              <div class=\"bno-direct-price__row\">\r\n                <span>\r\n                  Nu te betalen aan BNO Travel\r\n                <\/span>\r\n\r\n                <strong data-bno-now><\/strong>\r\n              <\/div>\r\n\r\n              <div class=\"bno-direct-price__row\">\r\n                <span>\r\n                  Resterend bedrag aan de accommodatie\r\n                <\/span>\r\n\r\n                <strong data-bno-later><\/strong>\r\n              <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"bno-direct-continue\" data-bno-continue-wrap hidden>\r\n              <button type=\"button\" class=\"bno-direct-book-button\" data-bno-continue>\r\n                Doorgaan naar boeken\r\n              <\/button>\r\n\r\n              <p>\r\n                Gjesteopplysninger, vilk\u00e5r og betaling fullf\u00f8res\r\n                i BNO Travel sin sikre bookingmotor.\r\n              <\/p>\r\n            <\/div>\r\n\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    `;\r\n\r\n    document.body.appendChild(modal);\r\n\r\n    return modal;\r\n  }\r\n\r\n  function initialiseCatalog(root) {\r\n    if (\r\n      !root ||\r\n      root.dataset.bnoReady === \"1\"\r\n    ) {\r\n      return;\r\n    }\r\n\r\n    root.dataset.bnoReady = \"1\";\r\n\r\n    const status =\r\n      root.querySelector(\r\n        \"[data-bno-status]\"\r\n      );\r\n\r\n    const grid =\r\n      root.querySelector(\r\n        \"[data-bno-grid]\"\r\n      );\r\n\r\n    const moreWrap =\r\n      root.querySelector(\r\n        \"[data-bno-more-wrap]\"\r\n      );\r\n\r\n    const moreButton =\r\n      root.querySelector(\r\n        \"[data-bno-more]\"\r\n      );\r\n\r\n    if (\r\n      !status ||\r\n      !grid ||\r\n      !moreWrap ||\r\n      !moreButton\r\n    ) {\r\n      return;\r\n    }\r\n\r\n    const apiBase =\r\n      cleanBase(\r\n        root.dataset.apiBase\r\n      );\r\n\r\n    const bookingBase =\r\n      clean(\r\n        root.dataset.bookingBase ||\r\n        \"https:\/\/booking.bno-travel.com\/booking\/complete\"\r\n      );\r\n\r\n    const catalogKey =\r\n      clean(\r\n        root.dataset.catalogCredsKey\r\n      );\r\n\r\n    const partnerKey =\r\n      clean(\r\n        root.dataset.bookingPartnerKey ||\r\n        catalogKey\r\n      );\r\n\r\n    const serviceId =\r\n      clean(\r\n        root.dataset.serviceId\r\n      );\r\n\r\n    const areaKey =\r\n      clean(\r\n        root.dataset.areaKey\r\n      );\r\n\r\n    const destination =\r\n      clean(\r\n        root.dataset.destinationLabel ||\r\n        \"destinasjonen\"\r\n      );\r\n\r\n    const location =\r\n      clean(\r\n        root.dataset.locationLabel ||\r\n        destination\r\n      );\r\n\r\n    const bookingOpenUntil =\r\n      clean(\r\n        root.dataset.bookingOpenUntil ||\r\n        \"2027-05-01\"\r\n      );\r\n\r\n    const minimumStay =\r\n      Math.max(\r\n        1,\r\n        Number(\r\n          root.dataset.minimumStayNights ||\r\n          1\r\n        ) || 1\r\n      );\r\n\r\n    const pageSize =\r\n      Math.max(\r\n        1,\r\n        Number(\r\n          root.dataset.initialCount ||\r\n          12\r\n        ) || 12\r\n      );\r\n\r\n    const allowedIds =\r\n      parseIdSet(\r\n        root.dataset.allowedUnitIds\r\n      );\r\n\r\n    const excludedIds =\r\n      parseIdSet(\r\n        root.dataset.excludedUnitIds\r\n      );\r\n\r\n    if (\r\n      !apiBase ||\r\n      !catalogKey ||\r\n      !serviceId ||\r\n      !areaKey\r\n    ) {\r\n      status.textContent =\r\n        \"Bulk 3 mist de vereiste configuratie.\";\r\n\r\n      status.classList.add(\r\n        \"is-error\"\r\n      );\r\n\r\n      return;\r\n    }\r\n\r\n    const modal =\r\n      createModal(\r\n        destination,\r\n        location\r\n      );\r\n\r\n    const modalImage =\r\n      modal.querySelector(\r\n        \"[data-bno-image]\"\r\n      );\r\n\r\n    const modalTitle =\r\n      modal.querySelector(\r\n        \"[data-bno-title]\"\r\n      );\r\n\r\n    const modalCapacity =\r\n      modal.querySelector(\r\n        \"[data-bno-capacity]\"\r\n      );\r\n\r\n    const modalDescription =\r\n      modal.querySelector(\r\n        \"[data-bno-description]\"\r\n      );\r\n\r\n    const modalCounter =\r\n      modal.querySelector(\r\n        \"[data-bno-counter]\"\r\n      );\r\n\r\n    const previousButton =\r\n      modal.querySelector(\r\n        \"[data-bno-prev]\"\r\n      );\r\n\r\n    const nextButton =\r\n      modal.querySelector(\r\n        \"[data-bno-next]\"\r\n      );\r\n\r\n    const availabilityForm =\r\n      modal.querySelector(\r\n        \"[data-bno-form]\"\r\n      );\r\n\r\n    const checkinInput =\r\n      modal.querySelector(\r\n        \"[data-bno-checkin]\"\r\n      );\r\n\r\n    const checkoutInput =\r\n      modal.querySelector(\r\n        \"[data-bno-checkout]\"\r\n      );\r\n\r\n    const guestsInput =\r\n      modal.querySelector(\r\n        \"[data-bno-guests]\"\r\n      );\r\n\r\n    const checkButton =\r\n      modal.querySelector(\r\n        \"[data-bno-check]\"\r\n      );\r\n\r\n    const messageNode =\r\n      modal.querySelector(\r\n        \"[data-bno-message]\"\r\n      );\r\n\r\n    const priceBox =\r\n      modal.querySelector(\r\n        \"[data-bno-price]\"\r\n      );\r\n\r\n    const totalNode =\r\n      modal.querySelector(\r\n        \"[data-bno-total]\"\r\n      );\r\n\r\n    const payNowNode =\r\n      modal.querySelector(\r\n        \"[data-bno-now]\"\r\n      );\r\n\r\n    const payLaterNode =\r\n      modal.querySelector(\r\n        \"[data-bno-later]\"\r\n      );\r\n\r\n    const continueWrap =\r\n      modal.querySelector(\r\n        \"[data-bno-continue-wrap]\"\r\n      );\r\n\r\n    const continueButton =\r\n      modal.querySelector(\r\n        \"[data-bno-continue]\"\r\n      );\r\n\r\n    let units = [];\r\n    let visibleCount = pageSize;\r\n    let currentUnit = null;\r\n    let currentImageIndex = 0;\r\n    let currentQuote = null;\r\n\r\n    function setStatus(\r\n      text,\r\n      isError\r\n    ) {\r\n      status.textContent =\r\n        text || \"\";\r\n\r\n      status.hidden =\r\n        !text;\r\n\r\n      status.classList.toggle(\r\n        \"is-error\",\r\n        Boolean(isError)\r\n      );\r\n    }\r\n\r\n    function setMessage(\r\n      text,\r\n      type\r\n    ) {\r\n      messageNode.textContent =\r\n        text || \"\";\r\n\r\n      messageNode.hidden =\r\n        !text;\r\n\r\n      messageNode.classList.remove(\r\n        \"is-error\",\r\n        \"is-success\"\r\n      );\r\n\r\n      if (type) {\r\n        messageNode.classList.add(\r\n          \"is-\" + type\r\n        );\r\n      }\r\n    }\r\n\r\n    function resetQuote() {\r\n      currentQuote = null;\r\n      priceBox.hidden = true;\r\n      continueWrap.hidden = true;\r\n      setMessage(\"\", \"\");\r\n    }\r\n\r\n    function createCard(\r\n      unit,\r\n      index\r\n    ) {\r\n      const capacityText =\r\n        unit.capacity > 0\r\n          ? (\r\n              \"Tot \" +\r\n              unit.capacity +\r\n              \" gasten\"\r\n            )\r\n          : \"Bekijk details en foto's\";\r\n\r\n      const descriptionText =\r\n        unit.description ||\r\n        \"Bekijk foto's, capaciteit en beschikbaarheid van dit vakantiehuis.\";\r\n\r\n      return `\r\n        <article class=\"bno-direct-card\">\r\n          <button type=\"button\" class=\"bno-direct-card__button\" data-bno-index=\"${index}\">\r\n            <div class=\"bno-direct-card__media\">\r\n              <img decoding=\"async\" src=\"${escapeHtml(unit.images[0])}\" alt=\"${escapeHtml(unit.name)}\" loading=\"lazy\" \/>\r\n\r\n              <span class=\"bno-direct-card__count\">\r\n                ${unit.images.length} afbeeldingen\r\n              <\/span>\r\n            <\/div>\r\n\r\n            <div class=\"bno-direct-card__body\">\r\n              <h3>${escapeHtml(unit.name)}<\/h3>\r\n\r\n              <p class=\"bno-direct-card__meta\">\r\n                ${escapeHtml(capacityText)}\r\n              <\/p>\r\n\r\n              <p class=\"bno-direct-card__description\">\r\n                ${escapeHtml(descriptionText)}\r\n              <\/p>\r\n\r\n              <span class=\"bno-direct-card__link\">\r\n                Bekijk vakantiehuis \u2192\r\n              <\/span>\r\n            <\/div>\r\n          <\/button>\r\n        <\/article>\r\n      `;\r\n    }\r\n\r\n    function renderUnits() {\r\n      const visibleUnits =\r\n        units.slice(\r\n          0,\r\n          visibleCount\r\n        );\r\n\r\n      grid.innerHTML =\r\n        visibleUnits\r\n          .map(createCard)\r\n          .join(\"\");\r\n\r\n      grid.setAttribute(\r\n        \"aria-busy\",\r\n        \"false\"\r\n      );\r\n\r\n      grid\r\n        .querySelectorAll(\r\n          \"[data-bno-index]\"\r\n        )\r\n        .forEach(\r\n          function (button) {\r\n            button.addEventListener(\r\n              \"click\",\r\n              function () {\r\n                openModal(\r\n                  units[\r\n                    Number(\r\n                      button.dataset.bnoIndex\r\n                    )\r\n                  ]\r\n                );\r\n              }\r\n            );\r\n          }\r\n        );\r\n\r\n      moreWrap.hidden =\r\n        visibleCount >=\r\n        units.length;\r\n\r\n      setStatus(\r\n        \"Toont \" +\r\n          visibleUnits.length +\r\n          \" van \" +\r\n          units.length +\r\n          \" accommodaties in \" +\r\n          destination +\r\n          \".\",\r\n        false\r\n      );\r\n    }\r\n\r\n    function updateModalImage() {\r\n      if (\r\n        !currentUnit ||\r\n        !currentUnit.images.length\r\n      ) {\r\n        return;\r\n      }\r\n\r\n      currentImageIndex =\r\n        (\r\n          currentImageIndex +\r\n          currentUnit.images.length\r\n        ) %\r\n        currentUnit.images.length;\r\n\r\n      modalImage.src =\r\n        currentUnit.images[\r\n          currentImageIndex\r\n        ];\r\n\r\n      modalImage.alt =\r\n        currentUnit.name +\r\n        \" \u2013 afbeelding \" +\r\n        (\r\n          currentImageIndex +\r\n          1\r\n        );\r\n\r\n      modalCounter.textContent =\r\n        (\r\n          currentImageIndex +\r\n          1\r\n        ) +\r\n        \" \/ \" +\r\n        currentUnit.images.length;\r\n\r\n      previousButton.hidden =\r\n        currentUnit.images.length < 2;\r\n\r\n      nextButton.hidden =\r\n        currentUnit.images.length < 2;\r\n    }\r\n\r\n    function openModal(unit) {\r\n      if (!unit) {\r\n        return;\r\n      }\r\n\r\n      currentUnit = unit;\r\n      currentImageIndex = 0;\r\n\r\n      modalTitle.textContent =\r\n        unit.name;\r\n\r\n      modalCapacity.textContent =\r\n        unit.capacity > 0\r\n          ? (\r\n              \"Tot \" +\r\n              unit.capacity +\r\n              \" gasten\"\r\n            )\r\n          : \"\";\r\n\r\n      modalDescription.textContent =\r\n        unit.description ||\r\n        \"Bekijk beschikbaarheid en prijs van dit vakantiehuis.\";\r\n\r\n      const today =\r\n        new Date();\r\n\r\n      const defaultCheckin =\r\n        addDays(\r\n          today,\r\n          1\r\n        );\r\n\r\n      const defaultCheckout =\r\n        addDays(\r\n          defaultCheckin,\r\n          Math.max(\r\n            7,\r\n            minimumStay\r\n          )\r\n        );\r\n\r\n      checkinInput.min =\r\n        localDate(today);\r\n\r\n      checkinInput.value =\r\n        localDate(\r\n          defaultCheckin\r\n        );\r\n\r\n      checkoutInput.min =\r\n        localDate(\r\n          addDays(\r\n            defaultCheckin,\r\n            minimumStay\r\n          )\r\n        );\r\n\r\n      checkoutInput.value =\r\n        localDate(\r\n          defaultCheckout\r\n        );\r\n\r\n      if (bookingOpenUntil) {\r\n        checkinInput.max =\r\n          bookingOpenUntil;\r\n\r\n        checkoutInput.max =\r\n          bookingOpenUntil;\r\n      }\r\n\r\n      guestsInput.max =\r\n        String(\r\n          unit.capacity > 0\r\n            ? unit.capacity\r\n            : 20\r\n        );\r\n\r\n      guestsInput.value =\r\n        String(\r\n          Math.min(\r\n            2,\r\n            unit.capacity > 0\r\n              ? unit.capacity\r\n              : 2\r\n          )\r\n        );\r\n\r\n      resetQuote();\r\n      updateModalImage();\r\n\r\n      modal.hidden = false;\r\n      modal.scrollTop = 0;\r\n\r\n      document\r\n        .documentElement\r\n        .classList\r\n        .add(\r\n          \"bno-direct-modal-open\"\r\n        );\r\n\r\n      document\r\n        .body\r\n        .classList\r\n        .add(\r\n          \"bno-direct-modal-open\"\r\n        );\r\n    }\r\n\r\n    function closeModal() {\r\n      modal.hidden = true;\r\n\r\n      document\r\n        .documentElement\r\n        .classList\r\n        .remove(\r\n          \"bno-direct-modal-open\"\r\n        );\r\n\r\n      document\r\n        .body\r\n        .classList\r\n        .remove(\r\n          \"bno-direct-modal-open\"\r\n        );\r\n\r\n      currentUnit = null;\r\n      currentQuote = null;\r\n    }\r\n\r\n    async function loadCatalog() {\r\n      try {\r\n        const query =\r\n          new URLSearchParams({\r\n            serviceId:\r\n              serviceId,\r\n\r\n            credsKey:\r\n              catalogKey,\r\n\r\n            lang:\r\n              currentLanguage()\r\n          });\r\n\r\n        const payload =\r\n          await fetchJson(\r\n            endpoint(\r\n              apiBase,\r\n              \"\/api\/mews\/catalog?\"\r\n            ) +\r\n            query.toString()\r\n          );\r\n\r\n        const rows =\r\n          extractRows(payload);\r\n\r\n        const publicationKeys = [\r\n          \"isPublished\",\r\n          \"IsPublished\",\r\n          \"is_published\",\r\n          \"publishStatus\",\r\n          \"PublishStatus\",\r\n          \"publish_status\"\r\n        ];\r\n\r\n        const hasPublicationFields =\r\n          rows.some(\r\n            function (row) {\r\n              return publicationKeys\r\n                .some(\r\n                  function (key) {\r\n                    return Object\r\n                      .prototype\r\n                      .hasOwnProperty\r\n                      .call(\r\n                        row || {},\r\n                        key\r\n                      );\r\n                  }\r\n                );\r\n            }\r\n          );\r\n\r\n        const seen =\r\n          new Set();\r\n\r\n        units =\r\n          rows\r\n            .map(normaliseUnit)\r\n            .filter(\r\n              function (unit) {\r\n                if (\r\n                  !unit.id ||\r\n                  seen.has(unit.id)\r\n                ) {\r\n                  return false;\r\n                }\r\n\r\n                seen.add(unit.id);\r\n\r\n                if (\r\n                  allowedIds.size &&\r\n                  !allowedIds.has(\r\n                    unit.id\r\n                  )\r\n                ) {\r\n                  return false;\r\n                }\r\n\r\n                if (\r\n                  excludedIds.has(\r\n                    unit.id\r\n                  )\r\n                ) {\r\n                  return false;\r\n                }\r\n\r\n                if (\r\n                  !isPublished(\r\n                    unit,\r\n                    hasPublicationFields\r\n                  )\r\n                ) {\r\n                  return false;\r\n                }\r\n\r\n                return (\r\n                  unit.images.length > 0\r\n                );\r\n              }\r\n            )\r\n            .sort(\r\n              function (\r\n                first,\r\n                second\r\n              ) {\r\n                return first.name.localeCompare(\r\n                  second.name,\r\n                  currentLanguage(),\r\n                  {\r\n                    sensitivity:\r\n                      \"base\"\r\n                  }\r\n                );\r\n              }\r\n            );\r\n\r\n        if (!units.length) {\r\n          grid.innerHTML = \"\";\r\n\r\n          grid.setAttribute(\r\n            \"aria-busy\",\r\n            \"false\"\r\n          );\r\n\r\n          moreWrap.hidden = true;\r\n\r\n          setStatus(\r\n            \"Er konden op dit moment geen gepubliceerde accommodaties worden geladen.\",\r\n            true\r\n          );\r\n\r\n          return;\r\n        }\r\n\r\n        renderUnits();\r\n      } catch (error) {\r\n        console.error(\r\n          \"BNO catalog error:\",\r\n          error\r\n        );\r\n\r\n        grid.innerHTML = \"\";\r\n\r\n        grid.setAttribute(\r\n          \"aria-busy\",\r\n          \"false\"\r\n        );\r\n\r\n        moreWrap.hidden = true;\r\n\r\n        setStatus(\r\n          error &&\r\n          error.message\r\n            ? (\r\n                \"De vakantiehuizen konden niet worden geladen: \" +\r\n                error.message\r\n              )\r\n            : \"De vakantiehuizen konden niet worden geladen. Vernieuw de pagina en probeer het opnieuw.\",\r\n          true\r\n        );\r\n      }\r\n    }\r\n\r\n    availabilityForm.addEventListener(\r\n      \"submit\",\r\n      async function (event) {\r\n        event.preventDefault();\r\n\r\n        if (!currentUnit) {\r\n          return;\r\n        }\r\n\r\n        const from =\r\n          clean(\r\n            checkinInput.value\r\n          );\r\n\r\n        const to =\r\n          clean(\r\n            checkoutInput.value\r\n          );\r\n\r\n        const adults =\r\n          Number(\r\n            guestsInput.value ||\r\n            0\r\n          );\r\n\r\n        resetQuote();\r\n\r\n        if (\r\n          !from ||\r\n          !to ||\r\n          to <= from\r\n        ) {\r\n          setMessage(\r\n            \"Kies geldige data. Uitchecken moet na inchecken zijn.\",\r\n            \"error\"\r\n          );\r\n\r\n          return;\r\n        }\r\n\r\n        if (\r\n          numberOfNights(\r\n            from,\r\n            to\r\n          ) <\r\n          minimumStay\r\n        ) {\r\n          setMessage(\r\n            \"Het minimumverblijf is \" +\r\n              minimumStay +\r\n              (\r\n                minimumStay === 1\r\n                  ? \" nacht.\"\r\n                  : \" nachten.\"\r\n              ),\r\n            \"error\"\r\n          );\r\n\r\n          return;\r\n        }\r\n\r\n        if (\r\n          !Number.isInteger(adults) ||\r\n          adults < 1\r\n        ) {\r\n          setMessage(\r\n            \"Kies een geldig aantal gasten.\",\r\n            \"error\"\r\n          );\r\n\r\n          return;\r\n        }\r\n\r\n        if (\r\n          currentUnit.capacity > 0 &&\r\n          adults >\r\n          currentUnit.capacity\r\n        ) {\r\n          setMessage(\r\n            \"Dit vakantiehuis biedt plaats aan maximaal \" +\r\n              currentUnit.capacity +\r\n              \" gasten.\",\r\n            \"error\"\r\n          );\r\n\r\n          return;\r\n        }\r\n\r\n        checkButton.disabled = true;\r\n\r\n        checkButton.textContent =\r\n          \"Controleren \u2026\";\r\n\r\n        setMessage(\r\n          \"Beschikbaarheid en prijs controleren \u2026\",\r\n          \"\"\r\n        );\r\n\r\n        try {\r\n          const payload =\r\n            await fetchJson(\r\n              endpoint(\r\n                apiBase,\r\n                \"\/api\/bno-direct\/quote\"\r\n              ),\r\n              {\r\n                method: \"POST\",\r\n\r\n                headers: {\r\n                  Accept:\r\n                    \"application\/json\",\r\n\r\n                  \"Content-Type\":\r\n                    \"application\/json\"\r\n                },\r\n\r\n                body:\r\n                  JSON.stringify({\r\n                    partnerKey:\r\n                      partnerKey,\r\n\r\n                    areaKey:\r\n                      areaKey,\r\n\r\n                    resourceCategoryId:\r\n                      currentUnit.id,\r\n\r\n                    from:\r\n                      from,\r\n\r\n                    to:\r\n                      to,\r\n\r\n                    adults:\r\n                      adults\r\n                  })\r\n              }\r\n            );\r\n\r\n          const quoteResult =\r\n            payload.data ||\r\n            payload;\r\n\r\n          const pricing =\r\n            quoteResult.pricing ||\r\n            {};\r\n\r\n          const currency =\r\n            clean(\r\n              quoteResult.currency ||\r\n              \"EUR\"\r\n            ).toUpperCase();\r\n\r\n          const guestTotal =\r\n            Number(\r\n              pricing.guestTotalGross\r\n            );\r\n\r\n          const payNow =\r\n            Number(\r\n              pricing.bnoPrepaidGross\r\n            );\r\n\r\n          const payLater =\r\n            Number(\r\n              pricing.remainingGross\r\n            );\r\n\r\n          if (\r\n            !Number.isFinite(\r\n              guestTotal\r\n            ) ||\r\n            guestTotal <= 0\r\n          ) {\r\n            throw new Error(\r\n              \"De totale prijs kon niet worden opgehaald.\"\r\n            );\r\n          }\r\n\r\n          currentQuote = {\r\n            from:\r\n              from,\r\n\r\n            to:\r\n              to,\r\n\r\n            adults:\r\n              adults,\r\n\r\n            total:\r\n              guestTotal,\r\n\r\n            payNow:\r\n              Number.isFinite(\r\n                payNow\r\n              )\r\n                ? payNow\r\n                : 0,\r\n\r\n            payLater:\r\n              Number.isFinite(\r\n                payLater\r\n              )\r\n                ? payLater\r\n                : Math.max(\r\n                    0,\r\n                    guestTotal -\r\n                    (\r\n                      Number.isFinite(\r\n                        payNow\r\n                      )\r\n                        ? payNow\r\n                        : 0\r\n                    )\r\n                  )\r\n          };\r\n\r\n          totalNode.textContent =\r\n            formatMoney(\r\n              currentQuote.total,\r\n              currency\r\n            );\r\n\r\n          payNowNode.textContent =\r\n            formatMoney(\r\n              currentQuote.payNow,\r\n              currency\r\n            );\r\n\r\n          payLaterNode.textContent =\r\n            formatMoney(\r\n              currentQuote.payLater,\r\n              currency\r\n            );\r\n\r\n          priceBox.hidden = false;\r\n          continueWrap.hidden = false;\r\n\r\n          setMessage(\r\n            \"Het vakantiehuis is beschikbaar van \" +\r\n              formatDate(from) +\r\n              \" tot \" +\r\n              formatDate(to) +\r\n              \".\",\r\n            \"success\"\r\n          );\r\n        } catch (error) {\r\n          console.error(\r\n            \"BNO quote error:\",\r\n            error\r\n          );\r\n\r\n          let message =\r\n            error &&\r\n            error.message\r\n              ? error.message\r\n              : \"De beschikbaarheid kon niet worden gecontroleerd. Probeer het opnieuw.\";\r\n\r\n          if (\r\n            error &&\r\n            error.code ===\r\n            \"booking_not_open\"\r\n          ) {\r\n            message =\r\n              \"Boeken is voor deze bestemming nog niet beschikbaar.\";\r\n          }\r\n\r\n          if (\r\n            error &&\r\n            error.code ===\r\n            \"not_available\"\r\n          ) {\r\n            message =\r\n              \"Het vakantiehuis is niet beschikbaar in de gekozen periode.\";\r\n          }\r\n\r\n          setMessage(\r\n            message,\r\n            \"error\"\r\n          );\r\n        } finally {\r\n          checkButton.disabled =\r\n            false;\r\n\r\n          checkButton.textContent =\r\n            \"Beschikbaarheid controleren\";\r\n        }\r\n      }\r\n    );\r\n\r\n    checkinInput.addEventListener(\r\n      \"change\",\r\n      function () {\r\n        if (\r\n          checkinInput.value\r\n        ) {\r\n          const minimumCheckout =\r\n            localDate(\r\n              addDays(\r\n                new Date(\r\n                  checkinInput.value +\r\n                  \"T12:00:00\"\r\n                ),\r\n                minimumStay\r\n              )\r\n            );\r\n\r\n          checkoutInput.min =\r\n            minimumCheckout;\r\n\r\n          if (\r\n            !checkoutInput.value ||\r\n            checkoutInput.value <\r\n            minimumCheckout\r\n          ) {\r\n            checkoutInput.value =\r\n              minimumCheckout;\r\n          }\r\n        }\r\n\r\n        resetQuote();\r\n      }\r\n    );\r\n\r\n    checkoutInput.addEventListener(\r\n      \"change\",\r\n      resetQuote\r\n    );\r\n\r\n    guestsInput.addEventListener(\r\n      \"change\",\r\n      resetQuote\r\n    );\r\n\r\n    continueButton.addEventListener(\r\n      \"click\",\r\n      function () {\r\n        if (\r\n          !currentUnit ||\r\n          !currentQuote\r\n        ) {\r\n          return;\r\n        }\r\n\r\n        const bookingUrl =\r\n          new URL(\r\n            bookingBase,\r\n            window.location.origin\r\n          );\r\n\r\n        bookingUrl.searchParams.set(\r\n          \"partnerKey\",\r\n          partnerKey\r\n        );\r\n\r\n        bookingUrl.searchParams.set(\r\n          \"areaKey\",\r\n          areaKey\r\n        );\r\n\r\n        bookingUrl.searchParams.set(\r\n          \"resourceCategoryId\",\r\n          currentUnit.id\r\n        );\r\n\r\n        bookingUrl.searchParams.set(\r\n          \"from\",\r\n          currentQuote.from\r\n        );\r\n\r\n        bookingUrl.searchParams.set(\r\n          \"to\",\r\n          currentQuote.to\r\n        );\r\n\r\n        bookingUrl.searchParams.set(\r\n          \"adults\",\r\n          String(\r\n            currentQuote.adults\r\n          )\r\n        );\r\n\r\n        bookingUrl.searchParams.set(\r\n          \"propertyName\",\r\n          currentUnit.name\r\n        );\r\n\r\n        bookingUrl.searchParams.set(\r\n          \"lang\",\r\n          currentLanguage()\r\n        );\r\n\r\n        if (\r\n          currentUnit.images[0]\r\n        ) {\r\n          bookingUrl.searchParams.set(\r\n            \"imageUrl\",\r\n            currentUnit.images[0]\r\n          );\r\n        }\r\n\r\n        window.location.assign(\r\n          bookingUrl.toString()\r\n        );\r\n      }\r\n    );\r\n\r\n    previousButton.addEventListener(\r\n      \"click\",\r\n      function () {\r\n        currentImageIndex -= 1;\r\n        updateModalImage();\r\n      }\r\n    );\r\n\r\n    nextButton.addEventListener(\r\n      \"click\",\r\n      function () {\r\n        currentImageIndex += 1;\r\n        updateModalImage();\r\n      }\r\n    );\r\n\r\n    modal\r\n      .querySelectorAll(\r\n        \"[data-bno-close]\"\r\n      )\r\n      .forEach(\r\n        function (button) {\r\n          button.addEventListener(\r\n            \"click\",\r\n            closeModal\r\n          );\r\n        }\r\n      );\r\n\r\n    document.addEventListener(\r\n      \"keydown\",\r\n      function (event) {\r\n        if (modal.hidden) {\r\n          return;\r\n        }\r\n\r\n        if (\r\n          event.key ===\r\n          \"Escape\"\r\n        ) {\r\n          closeModal();\r\n        }\r\n\r\n        if (\r\n          event.key ===\r\n          \"ArrowLeft\"\r\n        ) {\r\n          currentImageIndex -= 1;\r\n          updateModalImage();\r\n        }\r\n\r\n        if (\r\n          event.key ===\r\n          \"ArrowRight\"\r\n        ) {\r\n          currentImageIndex += 1;\r\n          updateModalImage();\r\n        }\r\n      }\r\n    );\r\n\r\n    moreButton.addEventListener(\r\n      \"click\",\r\n      function () {\r\n        visibleCount =\r\n          Math.min(\r\n            visibleCount +\r\n            pageSize,\r\n            units.length\r\n          );\r\n\r\n        renderUnits();\r\n      }\r\n    );\r\n\r\n    loadCatalog();\r\n  }\r\n\r\n  function mountCatalogs(scope) {\r\n    const context =\r\n      scope &&\r\n      scope.querySelectorAll\r\n        ? scope\r\n        : document;\r\n\r\n    context\r\n      .querySelectorAll(\r\n        ROOT_SELECTOR\r\n      )\r\n      .forEach(\r\n        initialiseCatalog\r\n      );\r\n  }\r\n\r\n  function startCatalogs() {\r\n    mountCatalogs(document);\r\n\r\n    window.setTimeout(\r\n      function () {\r\n        mountCatalogs(document);\r\n      },\r\n      500\r\n    );\r\n\r\n    window.setTimeout(\r\n      function () {\r\n        mountCatalogs(document);\r\n      },\r\n      1500\r\n    );\r\n  }\r\n\r\n  if (\r\n    document.readyState ===\r\n    \"loading\"\r\n  ) {\r\n    document.addEventListener(\r\n      \"DOMContentLoaded\",\r\n      startCatalogs,\r\n      {\r\n        once: true\r\n      }\r\n    );\r\n  } else {\r\n    startCatalogs();\r\n  }\r\n\r\n  new MutationObserver(\r\n    function (mutations) {\r\n      mutations.forEach(\r\n        function (mutation) {\r\n          mutation.addedNodes.forEach(\r\n            function (node) {\r\n              if (\r\n                !node ||\r\n                node.nodeType !== 1\r\n              ) {\r\n                return;\r\n              }\r\n\r\n              if (\r\n                node.matches &&\r\n                node.matches(\r\n                  ROOT_SELECTOR\r\n                )\r\n              ) {\r\n                initialiseCatalog(node);\r\n              }\r\n\r\n              if (\r\n                node.querySelectorAll\r\n              ) {\r\n                mountCatalogs(node);\r\n              }\r\n            }\r\n          );\r\n        }\r\n      );\r\n    }\r\n  ).observe(\r\n    document.documentElement,\r\n    {\r\n      childList: true,\r\n      subtree: true\r\n    }\r\n  );\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-59615e84 e-flex e-con-boxed e-con e-parent\" data-id=\"59615e84\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5711427d elementor-widget elementor-widget-html\" data-id=\"5711427d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section id=\"kart\" class=\"bno-section bno-section--light\">\r\n  <div class=\"bno-shell\">\r\n\r\n    <div class=\"bno-section-heading\">\r\n\r\n      <span class=\"bno-eyebrow\">\r\n        Kaart\r\n      <\/span>\r\n\r\n      <h2>\r\n        Bekijk de ligging van Champagny-en-Vanoise in Paradiski\r\n      <\/h2>\r\n\r\n      <p>\r\n        De kaart toont Champagny-en-Vanoise en helpt je je te ori\u00ebnteren ten opzichte van La Plagne en de andere delen van Paradiski.\r\n      <\/p>\r\n\r\n    <\/div>\r\n\r\n    <div class=\"bno-map-card\">\r\n\r\n      <iframe\r\n        src=\"https:\/\/www.google.com\/maps?q=Champagny-en-Vanoise%2C%20France&output=embed\"\r\n        title=\"Kaart van Champagny-en-Vanoise in Paradiski\"\r\n        width=\"100%\"\r\n        height=\"520\"\r\n        style=\"\r\n          display: block;\r\n          border: 0;\r\n        \"\r\n        loading=\"lazy\"\r\n        referrerpolicy=\"no-referrer-when-downgrade\"\r\n        allowfullscreen\r\n      ><\/iframe>\r\n\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6383e2b e-flex e-con-boxed e-con e-parent\" data-id=\"6383e2b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7ab53d30 elementor-widget elementor-widget-html\" data-id=\"7ab53d30\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"bno-section bno-section--light\">\r\n  <div class=\"bno-shell\">\r\n\r\n    <div class=\"bno-editorial-split\">\r\n\r\n      <div class=\"bno-editorial-split__content\">\r\n\r\n        <span class=\"bno-eyebrow\">\r\n          Belevenissen in de omgeving\r\n        <\/span>\r\n\r\n        <h2>\r\n          Bergbelevingen en Alpendorpen het hele jaar door\r\n        <\/h2>\r\n\r\n        <p>\r\n          Paradiski combineert verschillende bekende berggebieden en Alpendorpen. Vanuit Champagny-en-Vanoise heb je een comfortabele uitvalsbasis voor ski\u00ebn, wandelen, fietsen en actieve dagen in de Franse Alpen.\r\n        <\/p>\r\n\r\n        <p>\r\n          In de winter staan alpineski\u00ebn, snowboarden en andere sneeuwactiviteiten centraal. In de zomer biedt het berglandschap volop mogelijkheden voor wandelen, fietsen en uitstapjes op hoogte.\r\n        <\/p>\r\n\r\n        <div class=\"bno-actions\">\r\n\r\n          <a href=\"#fakta\" class=\"bno-btn bno-btn--primary\">\r\n            Bekijk praktische informatie\r\n          <\/a>\r\n\r\n        <\/div>\r\n\r\n      <\/div>\r\n\r\n      <div class=\"bno-editorial-split__media\">\r\n\r\n        <img decoding=\"async\" src=\"SETT-INN-BILDEURL-HER\" alt=\"Bergbelevingen en vakantie in Paradiski\" loading=\"lazy\" style=\" display: block; width: 100%; height: 100%; min-height: 420px; object-fit: cover; \" \/>\r\n\r\n      <\/div>\r\n\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4b257c94 e-flex e-con-boxed e-con e-parent\" data-id=\"4b257c94\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1ed56db2 elementor-widget elementor-widget-html\" data-id=\"1ed56db2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section id=\"fakta\" class=\"bno-section bno-section--soft\">\r\n  <div class=\"bno-shell\">\r\n\r\n    <div class=\"bno-section-heading\">\r\n\r\n      <span class=\"bno-eyebrow\">\r\n        Praktische informatie\r\n      <\/span>\r\n\r\n      <h2>\r\n        Activiteiten, vervoer en nuttige informatie in Paradiski\r\n      <\/h2>\r\n\r\n      <p>\r\n        Hier krijg je een overzicht van wat Paradiski en Champagny-en-Vanoise aantrekkelijk maakt voor zowel korte verblijven als langere vakanties.\r\n      <\/p>\r\n\r\n    <\/div>\r\n\r\n    <div class=\"bno-info-grid\">\r\n\r\n      <div class=\"bno-value-card\">\r\n\r\n        <h3>\r\n          Winteractiviteiten\r\n        <\/h3>\r\n\r\n        <p>\r\n          Het gebied biedt alpineski\u00ebn, snowboarden en andere winteractiviteiten voor gezinnen, beginners en ervaren ski\u00ebrs.\r\n        <\/p>\r\n\r\n      <\/div>\r\n\r\n      <div class=\"bno-value-card\">\r\n\r\n        <h3>\r\n          Zomeractiviteiten\r\n        <\/h3>\r\n\r\n        <p>\r\n          In de zomer kun je het berggebied te voet of per fiets verkennen. De wandelmogelijkheden maken het gebied ook buiten het winterseizoen aantrekkelijk.\r\n        <\/p>\r\n\r\n      <\/div>\r\n\r\n      <div class=\"bno-value-card\">\r\n\r\n        <h3>\r\n          De gebieden\r\n        <\/h3>\r\n\r\n        <p>\r\n          Paradiski omvat onder meer La Plagne, Les Arcs en Peisey-Vallandry. De momenteel beschikbare vakantiehuizen van BNO Travel liggen in Champagny-en-Vanoise.\r\n        <\/p>\r\n\r\n      <\/div>\r\n\r\n      <div class=\"bno-value-card\">\r\n\r\n        <h3>\r\n          Vervoer\r\n        <\/h3>\r\n\r\n        <p>\r\n          Georganiseerd vervoer of een huurauto kan praktisch zijn, afhankelijk van je aankomstpunt, het seizoen en welke delen van het gebied je wilt verkennen.\r\n        <\/p>\r\n\r\n      <\/div>\r\n\r\n      <div class=\"bno-value-card\">\r\n\r\n        <h3>\r\n          Winkels en voorzieningen\r\n        <\/h3>\r\n\r\n        <p>\r\n          In de dorpen vind je supermarkten, sportwinkels, skiverhuur en praktische voorzieningen voor je verblijf.\r\n        <\/p>\r\n\r\n      <\/div>\r\n\r\n      <div class=\"bno-value-card\">\r\n\r\n        <h3>\r\n          Restaurants en dorpsleven\r\n        <\/h3>\r\n\r\n        <p>\r\n          Na actieve dagen in de bergen vind je restaurants, caf\u00e9s en gezellige ontmoetingsplekken met een uitgesproken Alpencarakter.\r\n        <\/p>\r\n\r\n      <\/div>\r\n\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ecfc47a elementor-widget elementor-widget-html\" data-id=\"ecfc47a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"bno-section bno-destination-cta\">\r\n  <div class=\"bno-shell\">\r\n\r\n    <div class=\"bno-cta-box\">\r\n\r\n      <div class=\"bno-cta-box__content\">\r\n\r\n        <span class=\"bno-eyebrow\">\r\n          Volgende stap\r\n        <\/span>\r\n\r\n        <h2>\r\n          Vind het juiste vakantiehuis in Paradiski\r\n        <\/h2>\r\n\r\n        <p>\r\n          Ontdek beschikbare vakantiehuizen in Champagny-en-Vanoise, bekijk foto's en beschrijvingen en controleer prijs en beschikbaarheid voor je verblijf.\r\n        <\/p>\r\n\r\n      <\/div>\r\n\r\n      <div class=\"bno-cta-box__action\">\r\n\r\n        <a href=\"#enheter\" class=\" bno-btn bno-btn--primary bno-cta-button \">\r\n          <span>\r\n            Bekijk vakantiehuizen\r\n          <\/span>\r\n\r\n          <span aria-hidden=\"true\">\r\n            \u2192\r\n          <\/span>\r\n        <\/a>\r\n\r\n      <\/div>\r\n\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-39c61dc1 e-flex e-con-boxed e-con e-parent\" data-id=\"39c61dc1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Paradiski \u00b7 Frankrijk Paradiski \u2013 vakantiehuizen in Champagny-en-Vanoise, met meer gebieden op komst Ontdek zorgvuldig geselecteerde vakantiehuizen in Champagny-en-Vanoise, met toegang tot de bergbelevingen van Paradiski. La Plagne, Les Arcs en Peisey-Vallandry worden toegevoegd zodra er meer vakantiehuizen beschikbaar komen. Bekijk vakantiehuizen Bekijk de gebieden Verblijf in Champagny-en-Vanoise met toegang tot Paradiski Champagny-en-Vanoise is een [&hellip;]<\/p>\n","protected":false},"author":260013438,"featured_media":39751,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_wpcom_ai_launchpad_about_page":false,"_wpcom_ai_launchpad_gallery_page":false,"_wpcom_ai_launchpad_contact_page":false,"_wpcom_ai_launchpad_events_page":false,"_wpcom_ai_launchpad_video_page":false,"_wpcom_ai_launchpad_portfolio_piece":false,"footnotes":"","_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","_yoast_wpseo_focuskw":"","rank_math_title":"Accommodatie in Paradiski \u2013 vakantiehuizen dicht bij de pistes | BNO Travel","rank_math_description":"Vind accommodatie in Paradiski. Ontdek vakantiehuizen in Champagny-en-Vanoise dicht bij de pistes, bergdorpen en activiteiten het hele jaar door.","rank_math_focus_keyword":"accommodatie in Paradiski","_dpc-meta-title":"","_dpc-meta-description":"","_dpc-keyword":""},"class_list":["post-94525","page","type-page","status-publish","has-post-thumbnail","hentry"],"jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/PgDuwj-oAB","jetpack-related-posts":[{"id":94549,"url":"https:\/\/bno-travel.com\/nl\/de-franske-alper\/","url_meta":{"origin":94525,"position":0},"title":"De Franse Alpen","author":"Jan Terje \u00c5s","date":"28 juli 2026","format":false,"excerpt":"Bestemmingen \u00b7 De Franse Alpen Accommodatie in de Franse Alpen \u2013 vind de bestemming die bij je reis past Ontdek enkele van de aantrekkelijkste bergbestemmingen in Frankrijk. Kies onder meer uit 3 Vall\u00e9es, Chamonix, Portes du Soleil, Paradiski, Grand Massif en Tignes\u2013Val d\u2019Is\u00e8re. Bekijk de bestemmingen Ontdek de Franse Alpen\u2026","rel":"","context":"Soortgelijk bericht","block_context":{"text":"Soortgelijk bericht","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/07\/AdobeStock_1896172195.jpeg?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/07\/AdobeStock_1896172195.jpeg?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/07\/AdobeStock_1896172195.jpeg?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/07\/AdobeStock_1896172195.jpeg?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/07\/AdobeStock_1896172195.jpeg?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":94952,"url":"https:\/\/bno-travel.com\/es\/overnatting-i-paradiski\/","url_meta":{"origin":94525,"position":1},"title":"Paradiski","author":"Jan Terje \u00c5s","date":"1 augustus 2026","format":false,"excerpt":"Paradiski \u00b7 Francia Paradiski: alojamientos vacacionales en Champagny-en-Vanoise, con m\u00e1s zonas pr\u00f3ximamente Descubre una selecci\u00f3n de alojamientos en Champagny-en-Vanoise, con acceso a las experiencias de monta\u00f1a de Paradiski. La Plagne, Les Arcs y Peisey-Vallandry se a\u00f1adir\u00e1n a medida que haya nuevos alojamientos disponibles. Ver los alojamientos Ver las zonas Al\u00f3jate\u2026","rel":"","context":"Soortgelijk bericht","block_context":{"text":"Soortgelijk bericht","link":""},"img":{"alt_text":"Overnatting i Paradiski","src":"https:\/\/bno-travel.com\/wp-content\/uploads\/2026\/05\/Paradiski.avif","width":350,"height":200,"srcset":"https:\/\/bno-travel.com\/wp-content\/uploads\/2026\/05\/Paradiski.avif 1x, https:\/\/bno-travel.com\/wp-content\/uploads\/2026\/05\/Paradiski.avif 1.5x"},"classes":[]},{"id":95743,"url":"https:\/\/bno-travel.com\/pt-pt\/overnatting-i-paradiski\/","url_meta":{"origin":94525,"position":2},"title":"Paradiski","author":"Jan Terje \u00c5s","date":"1 augustus 2026","format":false,"excerpt":"Paradiski \u00b7 Fran\u00e7a Paradiski \u2014 alojamentos de f\u00e9rias em Champagny-en-Vanoise, com mais zonas brevemente Descobre uma sele\u00e7\u00e3o de alojamentos em Champagny-en-Vanoise, com acesso \u00e0s experi\u00eancias de montanha de Paradiski. La Plagne, Les Arcs e Peisey-Vallandry ser\u00e3o adicionadas \u00e0 medida que novos alojamentos fiquem dispon\u00edveis. Ver os alojamentos Ver as zonas\u2026","rel":"","context":"Soortgelijk bericht","block_context":{"text":"Soortgelijk bericht","link":""},"img":{"alt_text":"Overnatting i Paradiski","src":"https:\/\/bno-travel.com\/wp-content\/uploads\/2026\/05\/Paradiski.avif","width":350,"height":200,"srcset":"https:\/\/bno-travel.com\/wp-content\/uploads\/2026\/05\/Paradiski.avif 1x, https:\/\/bno-travel.com\/wp-content\/uploads\/2026\/05\/Paradiski.avif 1.5x"},"classes":[]},{"id":95468,"url":"https:\/\/bno-travel.com\/pl\/overnatting-i-paradiski\/","url_meta":{"origin":94525,"position":3},"title":"Paradiski","author":"Jan Terje \u00c5s","date":"1 augustus 2026","format":false,"excerpt":"Paradiski \u00b7 Francja Paradiski: obiekty wakacyjne w Champagny-en-Vanoise, kolejne regiony ju\u017c wkr\u00f3tce Odkryj wybrane obiekty w Champagny-en-Vanoise z dost\u0119pem do g\u00f3rskich atrakcji Paradiski. La Plagne, Les Arcs i Peisey-Vallandry b\u0119d\u0105 dodawane w miar\u0119 pojawiania si\u0119 nowych obiekt\u00f3w. Zobacz obiekty Zobacz regiony Zatrzymaj si\u0119 w Champagny-en-Vanoise z dost\u0119pem do Paradiski Champagny-en-Vanoise\u2026","rel":"","context":"Soortgelijk bericht","block_context":{"text":"Soortgelijk bericht","link":""},"img":{"alt_text":"Overnatting i Paradiski","src":"https:\/\/bno-travel.com\/wp-content\/uploads\/2026\/05\/Paradiski.avif","width":350,"height":200,"srcset":"https:\/\/bno-travel.com\/wp-content\/uploads\/2026\/05\/Paradiski.avif 1x, https:\/\/bno-travel.com\/wp-content\/uploads\/2026\/05\/Paradiski.avif 1.5x"},"classes":[]},{"id":93286,"url":"https:\/\/bno-travel.com\/overnatting-i-paradiski\/","url_meta":{"origin":94525,"position":4},"title":"Paradiski","author":"Jan Terje \u00c5s","date":"1 augustus 2026","format":false,"excerpt":"Paradiski \u00b7 Frankrike Paradiski \u2013 ferieboliger i Champagny-en-Vanoise med flere omr\u00e5der p\u00e5 vei Utforsk h\u00e5ndplukkede ferieboliger i Champagny-en-Vanoise, med tilgang til fjellopplevelsene i Paradiski. La Plagne, Les Arcs og Peisey-Vallandry blir lagt til etter hvert som flere ferieboliger blir tilgjengelige. Se ferieboliger Se omr\u00e5dene Bo i Champagny-en-Vanoise med tilgang til\u2026","rel":"","context":"Soortgelijk bericht","block_context":{"text":"Soortgelijk bericht","link":""},"img":{"alt_text":"Overnatting i Paradiski","src":"https:\/\/bno-travel.com\/wp-content\/uploads\/2026\/05\/Paradiski.avif","width":350,"height":200,"srcset":"https:\/\/bno-travel.com\/wp-content\/uploads\/2026\/05\/Paradiski.avif 1x, https:\/\/bno-travel.com\/wp-content\/uploads\/2026\/05\/Paradiski.avif 1.5x"},"classes":[]},{"id":94382,"url":"https:\/\/bno-travel.com\/en\/overnatting-i-paradiski\/","url_meta":{"origin":94525,"position":5},"title":"Paradiski","author":"Jan Terje \u00c5s","date":"1 augustus 2026","format":false,"excerpt":"Paradiski \u00b7 France Paradiski \u2013 holiday homes in Champagny-en-Vanoise, with more areas coming soon Explore hand-picked holiday homes in Champagny-en-Vanoise, with access to the mountain experiences of Paradiski. La Plagne, Les Arcs and Peisey-Vallandry will be added as more holiday homes become available. View holiday homes View the areas Stay\u2026","rel":"","context":"Soortgelijk bericht","block_context":{"text":"Soortgelijk bericht","link":""},"img":{"alt_text":"Overnatting i Paradiski","src":"https:\/\/bno-travel.com\/wp-content\/uploads\/2026\/05\/Paradiski.avif","width":350,"height":200,"srcset":"https:\/\/bno-travel.com\/wp-content\/uploads\/2026\/05\/Paradiski.avif 1x, https:\/\/bno-travel.com\/wp-content\/uploads\/2026\/05\/Paradiski.avif 1.5x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/bno-travel.com\/nl\/wp-json\/wp\/v2\/pages\/94525","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bno-travel.com\/nl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bno-travel.com\/nl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bno-travel.com\/nl\/wp-json\/wp\/v2\/users\/260013438"}],"replies":[{"embeddable":true,"href":"https:\/\/bno-travel.com\/nl\/wp-json\/wp\/v2\/comments?post=94525"}],"version-history":[{"count":1,"href":"https:\/\/bno-travel.com\/nl\/wp-json\/wp\/v2\/pages\/94525\/revisions"}],"predecessor-version":[{"id":94526,"href":"https:\/\/bno-travel.com\/nl\/wp-json\/wp\/v2\/pages\/94525\/revisions\/94526"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bno-travel.com\/nl\/wp-json\/wp\/v2\/media\/39751"}],"wp:attachment":[{"href":"https:\/\/bno-travel.com\/nl\/wp-json\/wp\/v2\/media?parent=94525"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}