{"id":94562,"date":"2026-08-03T15:24:34","date_gmt":"2026-08-03T13:24:34","guid":{"rendered":"https:\/\/bno-travel.com\/overnatting-i-zell-am-see\/"},"modified":"2026-09-15T20:58:54","modified_gmt":"2026-09-15T18:58:54","slug":"overnatting-i-zell-am-see","status":"publish","type":"page","link":"https:\/\/bno-travel.com\/sv\/overnatting-i-zell-am-see\/","title":{"rendered":"Boende i Zell am See"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"94562\" class=\"elementor elementor-94562 elementor-93651\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-66ab43f8 e-flex e-con-boxed e-con e-parent\" data-id=\"66ab43f8\" 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-4541b581 elementor-widget elementor-widget-html\" data-id=\"4541b581\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"bno-zell bno-area-hero bno-area-hero--premium\" style=\" background-color: #0c1a38; background-image: linear-gradient( rgba(7, 17, 31, 0.48), rgba(7, 17, 31, 0.68) ), url('https:\/\/bno-travel.com\/wp-content\/uploads\/2026\/08\/AdobeStock_40023408.jpeg'); 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\">Zell am See \u00b7 \u00d6sterrike<\/span>\r\n\r\n      <h1>Boende i Zell am See \u2013 utforska fyra hotell vid berg och sj\u00f6<\/h1>\r\n\r\n      <p class=\"bno-lead\">Hitta rum, sviter och l\u00e4genheter hos The House Zell am See, The Gast House Zell am See, Nikolaus by AvenidA och Elements Resort Zell am See. J\u00e4mf\u00f6r rumstyperna och hitta boendet som passar din resa.<\/p>\r\n\r\n      <div class=\"bno-actions\">\r\n        <a href=\"#enheter\" class=\"bno-btn bno-btn--primary\">Se rum och l\u00e4genheter<\/a>\r\n\r\n        <a href=\"#hotellene\" class=\"bno-btn bno-btn--secondary\">Se hotellen<\/a>\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-3a3e0def e-flex e-con-boxed e-con e-parent\" data-id=\"3a3e0def\" 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-4ac6fc4c elementor-widget elementor-widget-html\" data-id=\"4ac6fc4c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section id=\"hotellene\" class=\"bno-zell bno-section bno-section--light bno-area-intro\">\r\n  <div class=\"bno-shell\">\r\n\r\n    <div class=\"bno-section-heading bno-section-heading--center\">\r\n      <span class=\"bno-eyebrow\">Fyra hotell i Zell am See<\/span>\r\n\r\n      <h2>V\u00e4lj hotellet och rumstypen som passar din vistelse<\/h2>\r\n\r\n      <p>Boendeutbudet i Zell am See best\u00e5r av fyra olika Alpin Family-hotell. Utforska hotellen och g\u00e5 direkt vidare till rum, sviter och l\u00e4genheter vid hotellet du vill se.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"bno-zell-hotel-grid\">\r\n\r\n      <!-- THE HOUSE -->\r\n      <article class=\"bno-zell-hotel-card\">\r\n        <a href=\"#rom-the-house\" class=\"bno-zell-hotel-card__link\">\r\n          <div class=\"bno-zell-hotel-card__media\">\r\n            <img data-recalc-dims=\"1\" src=\"https:\/\/i0.wp.com\/qcjpfiwootjfqpxhtldm.supabase.co\/storage\/v1\/object\/public\/bno-images\/alpin-family\/the-house-zell-am-see\/1-bedroom-suite\/001-hero-004-the-house_1-schlafzimmer-suite_2519173f-2b57-4f52-94b5-afef00ae984a-0c734f0a.jpg?w=800&#038;ssl=1\" alt=\"The House Zell am See\" loading=\"lazy\" decoding=\"async\">\r\n\r\n            <span class=\"bno-zell-hotel-card__number\">01<\/span>\r\n\r\n            <span class=\"bno-zell-hotel-card__badge\">L\u00e4genhetshotell<\/span>\r\n          <\/div>\r\n\r\n          <div class=\"bno-zell-hotel-card__body\">\r\n            <div>\r\n              <h3>The House Zell am See<\/h3>\r\n\r\n              <p>Rymliga l\u00e4genheter och sviter i en central men lugn del av Zell am See, n\u00e4ra centrum och CityXpress.<\/p>\r\n            <\/div>\r\n\r\n            <span class=\"bno-zell-hotel-card__action\">Se rumstyperna<span aria-hidden=\"true\">\u2192<\/span>\r\n            <\/span>\r\n          <\/div>\r\n        <\/a>\r\n      <\/article>\r\n\r\n\r\n      <!-- THE GAST HOUSE -->\r\n      <article class=\"bno-zell-hotel-card\">\r\n        <a href=\"#rom-the-gast-house\" class=\"bno-zell-hotel-card__link\">\r\n          <div class=\"bno-zell-hotel-card__media\">\r\n            <img data-recalc-dims=\"1\" src=\"https:\/\/i0.wp.com\/qcjpfiwootjfqpxhtldm.supabase.co\/storage\/v1\/object\/public\/bno-images\/alpin-family\/the-gast-house-zell-am-see\/classic-double-room\/001-hero-007-the-gast-house-zell-am-see_classic-doppelzimmer-5-8152086d.jpg?w=800&#038;ssl=1\" alt=\"The Gast House Zell am See\" loading=\"lazy\" decoding=\"async\">\r\n\r\n            <span class=\"bno-zell-hotel-card__number\">02<\/span>\r\n\r\n            <span class=\"bno-zell-hotel-card__badge\">Hotell och sviter<\/span>\r\n          <\/div>\r\n\r\n          <div class=\"bno-zell-hotel-card__body\">\r\n            <div>\r\n              <h3>The Gast House Zell am See<\/h3>\r\n\r\n              <p>Moderna rum, studior och sviter i centrum, med n\u00e4rhet till Zeller See, liftarna och hotellets spaomr\u00e5de.<\/p>\r\n            <\/div>\r\n\r\n            <span class=\"bno-zell-hotel-card__action\">Se rumstyperna<span aria-hidden=\"true\">\u2192<\/span>\r\n            <\/span>\r\n          <\/div>\r\n        <\/a>\r\n      <\/article>\r\n\r\n\r\n      <!-- NIKOLAUS -->\r\n      <article class=\"bno-zell-hotel-card\">\r\n        <a href=\"#rom-nikolaus\" class=\"bno-zell-hotel-card__link\">\r\n          <div class=\"bno-zell-hotel-card__media\">\r\n            <img data-recalc-dims=\"1\" src=\"https:\/\/i0.wp.com\/qcjpfiwootjfqpxhtldm.supabase.co\/storage\/v1\/object\/public\/bno-images\/alpin-family\/nikolaus-by-avenida\/2-bedroom-deluxe-panorama-suite-with-sauna\/001-hero-008-nikolaus-by-avenida_2-schlafzimmer-deluxe-panorama-suite-mit-sauna-6-067088d9.jpg?w=800&#038;ssl=1\" alt=\"Nikolaus by AvenidA i Zell am See\" loading=\"lazy\" decoding=\"async\">\r\n\r\n            <span class=\"bno-zell-hotel-card__number\">03<\/span>\r\n\r\n            <span class=\"bno-zell-hotel-card__badge\">Panoramasviter<\/span>\r\n          <\/div>\r\n\r\n          <div class=\"bno-zell-hotel-card__body\">\r\n            <div>\r\n              <h3>Nikolaus by AvenidA<\/h3>\r\n\r\n              <p>Rum och sviter h\u00f6gt \u00f6ver Zell am See, med panoramautsikt mot staden, sj\u00f6n och bergen runt.<\/p>\r\n            <\/div>\r\n\r\n            <span class=\"bno-zell-hotel-card__action\">Se rumstyperna<span aria-hidden=\"true\">\u2192<\/span>\r\n            <\/span>\r\n          <\/div>\r\n        <\/a>\r\n      <\/article>\r\n\r\n\r\n      <!-- ELEMENTS RESORT -->\r\n      <article class=\"bno-zell-hotel-card\">\r\n        <a href=\"#rom-elements-resort\" class=\"bno-zell-hotel-card__link\">\r\n          <div class=\"bno-zell-hotel-card__media\">\r\n            <img data-recalc-dims=\"1\" src=\"https:\/\/i0.wp.com\/qcjpfiwootjfqpxhtldm.supabase.co\/storage\/v1\/object\/public\/bno-images\/alpin-family\/elements-resort-zell-am-see\/1-bedroom-suite\/001-hero-006-elements-resort-zell-am-see_1-schlafzimmer-suite-0-847e82ad.jpg?w=800&#038;ssl=1\" alt=\"Elements Resort Zell am See\" loading=\"lazy\" decoding=\"async\">\r\n\r\n            <span class=\"bno-zell-hotel-card__number\">04<\/span>\r\n\r\n            <span class=\"bno-zell-hotel-card__badge\">Resort<\/span>\r\n          <\/div>\r\n\r\n          <div class=\"bno-zell-hotel-card__body\">\r\n            <div>\r\n              <h3>Elements Resort Zell am See<\/h3>\r\n\r\n              <p>Resortboende med rum, sviter, restaurang, wellnessomr\u00e5de och n\u00e4rhet till AreitXpress.<\/p>\r\n            <\/div>\r\n\r\n            <span class=\"bno-zell-hotel-card__action\">Se rumstyperna<span aria-hidden=\"true\">\u2192<\/span>\r\n            <\/span>\r\n          <\/div>\r\n        <\/a>\r\n      <\/article>\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-95d43c3 e-flex e-con-boxed e-con e-parent\" data-id=\"95d43c3\" 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-713a14fb elementor-widget elementor-widget-html\" data-id=\"713a14fb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- =========================================================\r\n     ZELL AM SEE \u2013 BULK 3\r\n     Fire separate BNO Direct-kataloger i samme bulk\r\n     ========================================================= -->\r\n\r\n<div id=\"enheter\" class=\"bno-zell-catalogs\">\r\n\r\n  <!-- THE HOUSE ZELL AM SEE -->\r\n  <section id=\"rom-the-house\" class=\"bno-section bno-section--soft bno-direct-catalog bno-zell-catalog-block bno-zell-catalog-block--soft\" 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=\"THE_HOUSE_ZELL_AM_SEE\" data-booking-partner-key=\"THE_HOUSE_ZELL_AM_SEE\" data-service-id=\"4c3496c1-52aa-435e-add3-afe100e77563\" data-area-key=\"zell-am-see\" data-destination-label=\"Zell am See\" data-location-label=\"The House Zell am See \u00b7 Zell am See\" 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-zell-catalog-heading\">\r\n        <span class=\"bno-zell-catalog-heading__number\" aria-hidden=\"true\">01<\/span>\r\n        <div>\r\n          <span class=\"bno-eyebrow\">Rum och l\u00e4genheter<\/span>\r\n          <h2>The House Zell am See<\/h2>\r\n          <p>Utforska tillg\u00e4ngliga l\u00e4genheter, sviter och penthouseenheter vid The House Zell am See.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"bno-direct-catalog__status\" data-bno-status role=\"status\" aria-live=\"polite\">Laddar rumstyper vid The House \u2026<\/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>Visa fler rumstyper<\/button>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n\r\n  <!-- THE GAST HOUSE ZELL AM SEE -->\r\n  <section id=\"rom-the-gast-house\" class=\"bno-section bno-section--light bno-direct-catalog bno-zell-catalog-block bno-zell-catalog-block--light\" 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=\"THE_GAST_HOUSE_ZELL_AM_SEE\" data-booking-partner-key=\"THE_GAST_HOUSE_ZELL_AM_SEE\" data-service-id=\"27468297-0350-40ca-9bf6-afb6008fb4e6\" data-area-key=\"zell-am-see\" data-destination-label=\"Zell am See\" data-location-label=\"The Gast House Zell am See \u00b7 Zell am See\" 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-zell-catalog-heading\">\r\n        <span class=\"bno-zell-catalog-heading__number\" aria-hidden=\"true\">02<\/span>\r\n        <div>\r\n          <span class=\"bno-eyebrow\">Rum, studior och sviter<\/span>\r\n          <h2>The Gast House Zell am See<\/h2>\r\n          <p>Utforska rum, studior och sviter vid The Gast House, fr\u00e5n dubbelrum till st\u00f6rre familje- och Panoramasviter.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"bno-direct-catalog__status\" data-bno-status role=\"status\" aria-live=\"polite\">Laddar rumstyper vid The Gast House \u2026<\/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>Visa fler rumstyper<\/button>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n\r\n  <!-- NIKOLAUS BY AVENIDA -->\r\n  <section id=\"rom-nikolaus\" class=\"bno-section bno-section--soft bno-direct-catalog bno-zell-catalog-block bno-zell-catalog-block--soft\" 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=\"NIKOLAUS_BY_AVENIDA\" data-booking-partner-key=\"NIKOLAUS_BY_AVENIDA\" data-service-id=\"5b596a5a-26da-4381-a4fd-afdc00a26aa4\" data-area-key=\"zell-am-see\" data-destination-label=\"Zell am See\" data-location-label=\"Nikolaus by AvenidA \u00b7 Zell am See\" 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-zell-catalog-heading\">\r\n        <span class=\"bno-zell-catalog-heading__number\" aria-hidden=\"true\">03<\/span>\r\n        <div>\r\n          <span class=\"bno-eyebrow\">Rum och Panoramasviter<\/span>\r\n          <h2>Nikolaus by AvenidA<\/h2>\r\n          <p>Utforska rum och sviter med modern alpstil, panoramautsikt och privata wellnessfaciliteter.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"bno-direct-catalog__status\" data-bno-status role=\"status\" aria-live=\"polite\">Laddar rumstyper vid Nikolaus by AvenidA \u2026<\/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>Visa fler rumstyper<\/button>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n\r\n  <!-- ELEMENTS RESORT ZELL AM SEE -->\r\n  <section id=\"rom-elements-resort\" class=\"bno-section bno-section--light bno-direct-catalog bno-zell-catalog-block bno-zell-catalog-block--light\" 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=\"ELEMENTS_RESORT_ZELL_AM_SEE\" data-booking-partner-key=\"ELEMENTS_RESORT_ZELL_AM_SEE\" data-service-id=\"12c44d5b-1071-4513-a70f-afdc00d11939\" data-area-key=\"zell-am-see\" data-destination-label=\"Zell am See\" data-location-label=\"Elements Resort Zell am See \u00b7 Zell am See\" 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-zell-catalog-heading\">\r\n        <span class=\"bno-zell-catalog-heading__number\" aria-hidden=\"true\">04<\/span>\r\n        <div>\r\n          <span class=\"bno-eyebrow\">Rum, sviter och penthouse<\/span>\r\n          <h2>Elements Resort Zell am See<\/h2>\r\n          <p>Utforska dubbelrum, sviter och st\u00f6rre penthouseenheter vid Elements Resort Zell am See.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"bno-direct-catalog__status\" data-bno-status role=\"status\" aria-live=\"polite\">Laddar rumstyper vid Elements Resort \u2026<\/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>Visa fler rumstyper<\/button>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n<\/div>\r\n\r\n\r\n<!-- FELLES BNO DIRECT-MOTOR \u2013 SKAL KUN FINNES EN GANG P\u00c5 SIDEN -->\r\n<style>\r\n\/* =========================================================\r\n   BNO TRAVEL \u2013 FELLES BULK 3 \/ DESTINASJONSKATALOG V2\r\n   Samme kort, modal, mobilvisning og prissjekk p\u00e5 alle sider\r\n   ========================================================= *\/\r\n\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: #5b667b;\r\n  --bno-border: rgba(12, 26, 56, 0.14);\r\n  --bno-soft: #eef3f8;\r\n  --bno-white: #ffffff;\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\n.bno-direct-catalog__status {\r\n  margin: 28px 0 0;\r\n  padding: 15px 17px;\r\n  border: 1px solid var(--bno-border);\r\n  border-radius: 14px;\r\n  background: var(--bno-white) !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  margin-top: 28px;\r\n}\r\n\r\n.bno-direct-card {\r\n  display: flex;\r\n  min-width: 0;\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  box-shadow: 0 12px 34px rgba(12, 26, 56, 0.08);\r\n  transition: transform 0.2s ease, 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;\r\n  width: 100% !important;\r\n  min-width: 0 !important;\r\n  height: 100% !important;\r\n  margin: 0 !important;\r\n  padding: 0 !important;\r\n  overflow: hidden;\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  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  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  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  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  -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-more:hover,\r\n.bno-direct-more:focus,\r\n.bno-direct-more:active,\r\n.bno-direct-check-button,\r\n.bno-direct-check-button:hover,\r\n.bno-direct-check-button:focus,\r\n.bno-direct-check-button:active,\r\n.bno-direct-book-button,\r\n.bno-direct-book-button:hover,\r\n.bno-direct-book-button:focus,\r\n.bno-direct-book-button:active {\r\n  display: inline-flex !important;\r\n  align-items: center;\r\n  justify-content: center;\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-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;\r\n  text-align: center;\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-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.bno-direct-book-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  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: minmax(0, 1.16fr) 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  display: block;\r\n  width: 100% !important;\r\n  height: 100% !important;\r\n  min-width: 0 !important;\r\n  min-height: 0 !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}\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  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}\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  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-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__close:hover,\r\n.bno-direct-modal__close:focus,\r\n.bno-direct-modal__close:active {\r\n  position: absolute;\r\n  z-index: 12;\r\n  top: 14px;\r\n  right: 14px;\r\n  display: grid !important;\r\n  width: 44px !important;\r\n  min-width: 44px !important;\r\n  height: 44px !important;\r\n  min-height: 44px !important;\r\n  margin: 0 !important;\r\n  padding: 0 !important;\r\n  place-items: center !important;\r\n  border: 1px solid rgba(255, 255, 255, 0.25) !important;\r\n  border-radius: 999px !important;\r\n  background: var(--bno-navy) !important;\r\n  color: #ffffff !important;\r\n  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.24) !important;\r\n  font-family: Arial, sans-serif !important;\r\n  font-size: 28px !important;\r\n  font-weight: 400 !important;\r\n  line-height: 1 !important;\r\n  cursor: pointer;\r\n}\r\n\r\n.bno-direct-modal__arrow,\r\n.bno-direct-modal__arrow:hover,\r\n.bno-direct-modal__arrow:focus,\r\n.bno-direct-modal__arrow:active {\r\n  position: absolute;\r\n  z-index: 8;\r\n  top: 50%;\r\n  display: grid !important;\r\n  width: 48px !important;\r\n  min-width: 48px !important;\r\n  height: 48px !important;\r\n  min-height: 48px !important;\r\n  margin: 0 !important;\r\n  padding: 0 !important;\r\n  place-items: center !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.92) !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-size: 35px !important;\r\n  font-weight: 400 !important;\r\n  line-height: 1 !important;\r\n  cursor: pointer;\r\n  transform: translateY(-50%);\r\n}\r\n\r\n.bno-direct-modal__arrow--prev { left: 18px; }\r\n.bno-direct-modal__arrow--next { right: 18px; }\r\n.bno-direct-modal__arrow[hidden] { display: none !important; }\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  white-space: nowrap;\r\n}\r\n\r\n.bno-direct-booking {\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  white-space: normal !important;\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-form input:focus {\r\n  border-color: var(--bno-navy) !important;\r\n  outline: 2px solid rgba(12, 26, 56, 0.14) !important;\r\n  outline-offset: 1px;\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  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  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  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 { border-top: 0; }\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  white-space: normal !important;\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: 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    overflow: visible !important;\r\n    border: 0 !important;\r\n    border-radius: 0 !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: 34px clamp(20px, 5vw, 44px) 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    gap: 7px !important;\r\n    padding: 17px 18px !important;\r\n  }\r\n\r\n  .bno-direct-price__row strong {\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 { left: 12px; }\r\n  .bno-direct-modal__arrow--next { right: 12px; }\r\n  .bno-direct-modal__counter { right: 12px; 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 cleanBase(value) {\r\n    return String(value || \"\").trim().replace(\/\\\/+$\/, \"\");\r\n  }\r\n\r\n  function apiUrl(base, path) {\r\n    const clean = cleanBase(base);\r\n    const route = String(path || \"\");\r\n\r\n    if (clean.endsWith(\"\/api\") && route.startsWith(\"\/api\/\")) {\r\n      return clean + route.slice(4);\r\n    }\r\n\r\n    return clean + route;\r\n  }\r\n\r\n  function escapeHtml(value) {\r\n    return String(value == null ? \"\" : value)\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 node = document.createElement(\"div\");\r\n    node.innerHTML = String(value || \"\");\r\n    return String(node.textContent || node.innerText || \"\")\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 (object && object[key] != null && object[key] !== \"\") {\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      String(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 languageCode() {\r\n    return \"sv\";\r\n  }\r\n\r\n  function localYmd(date) {\r\n    const year = date.getFullYear();\r\n    const month = String(date.getMonth() + 1).padStart(2, \"0\");\r\n    const day = String(date.getDate()).padStart(2, \"0\");\r\n    return year + \"-\" + month + \"-\" + day;\r\n  }\r\n\r\n  function addDays(date, days) {\r\n    const next = new Date(date.getTime());\r\n    next.setDate(next.getDate() + Number(days || 0));\r\n    return next;\r\n  }\r\n\r\n  function nightsBetween(from, to) {\r\n    const start = new Date(from + \"T12:00:00\");\r\n    const end = new Date(to + \"T12:00:00\");\r\n    return Math.round((end.getTime() - start.getTime()) \/ 86400000);\r\n  }\r\n\r\n  function formatDate(value) {\r\n    try {\r\n      return new Intl.DateTimeFormat(\"sv-SE\", {\r\n        day: \"numeric\",\r\n        month: \"short\",\r\n        year: \"numeric\"\r\n      }).format(new Date(value + \"T12:00:00\"));\r\n    } catch (_error) {\r\n      return value;\r\n    }\r\n  }\r\n\r\n  function formatMoney(amount, currency) {\r\n    try {\r\n      return new Intl.NumberFormat(\"sv-SE\", {\r\n        style: \"currency\",\r\n        currency: String(currency || \"EUR\").toUpperCase(),\r\n        minimumFractionDigits: 2,\r\n        maximumFractionDigits: 2\r\n      }).format(Number(amount || 0));\r\n    } catch (_error) {\r\n      return Number(amount || 0).toFixed(2) + \" \" + String(currency || \"EUR\");\r\n    }\r\n  }\r\n\r\n  function uniqueImages(row) {\r\n    const images = [];\r\n\r\n    function add(value) {\r\n      if (!value) return;\r\n\r\n      if (typeof value === \"string\") {\r\n        const url = value.trim();\r\n        if (\/^https?:\\\/\\\/\/i.test(url)) images.push(url);\r\n        return;\r\n      }\r\n\r\n      if (typeof value === \"object\") {\r\n        add(\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)) items.forEach(add);\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(add);\r\n\r\n    return Array.from(new Set(images));\r\n  }\r\n\r\n  function extractRows(payload) {\r\n    const candidates = [\r\n      payload && payload.data && payload.data.resourceCategories,\r\n      payload && payload.data && payload.data.categories,\r\n      payload && payload.data && payload.data.items,\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)) return candidate;\r\n    }\r\n\r\n    return [];\r\n  }\r\n\r\n  function normaliseUnit(row) {\r\n    const categoryId = String(\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    ).trim();\r\n\r\n    return {\r\n      categoryId: categoryId,\r\n      name: String(\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        ]) || \"Semesterboende\"\r\n      ).trim(),\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      capacity: 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        ])\r\n      ) || 0,\r\n      images: uniqueImages(row),\r\n      published: firstValue(row, [\r\n        \"isPublished\",\r\n        \"IsPublished\",\r\n        \"is_published\",\r\n        \"publishStatus\",\r\n        \"PublishStatus\",\r\n        \"publish_status\",\r\n        \"status\",\r\n        \"Status\"\r\n      ])\r\n    };\r\n  }\r\n\r\n  function isPublished(unit, hasPublicationFields) {\r\n    if (!hasPublicationFields) return true;\r\n    if (typeof unit.published === \"boolean\") return unit.published;\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(String(unit.published || \"\").trim().toLowerCase());\r\n  }\r\n\r\n  function buildModal(destinationLabel, locationLabel) {\r\n    const modal = document.createElement(\"div\");\r\n    modal.className = \"bno-direct-modal\";\r\n    modal.hidden = true;\r\n    modal.setAttribute(\"role\", \"dialog\");\r\n    modal.setAttribute(\"aria-modal\", \"true\");\r\n    modal.setAttribute(\"aria-label\", \"Semesterboende i \" + destinationLabel);\r\n\r\n    modal.innerHTML = `\r\n      <button type=\"button\" class=\"bno-direct-modal__backdrop\" data-bno-close aria-label=\"St\u00e4ng\"><\/button>\r\n      <div class=\"bno-direct-modal__dialog\">\r\n        <button type=\"button\" class=\"bno-direct-modal__close\" data-bno-close aria-label=\"St\u00e4ng\">\u00d7<\/button>\r\n        <div class=\"bno-direct-modal__gallery\">\r\n          <button type=\"button\" class=\"bno-direct-modal__arrow bno-direct-modal__arrow--prev\" data-bno-prev aria-label=\"F\u00f6reg\u00e5ende bild\">\u2039<\/button>\r\n          <img decoding=\"async\" class=\"bno-direct-modal__image\" data-bno-modal-image src=\"\" alt=\"\" \/>\r\n          <button type=\"button\" class=\"bno-direct-modal__arrow bno-direct-modal__arrow--next\" data-bno-next aria-label=\"N\u00e4sta bild\">\u203a<\/button>\r\n          <span class=\"bno-direct-modal__counter\" data-bno-counter><\/span>\r\n        <\/div>\r\n        <div class=\"bno-direct-modal__content\">\r\n          <span class=\"bno-direct-eyebrow\">${escapeHtml(locationLabel || destinationLabel)}<\/span>\r\n          <h3 data-bno-modal-title><\/h3>\r\n          <p class=\"bno-direct-modal__capacity\" data-bno-modal-capacity><\/p>\r\n          <div class=\"bno-direct-modal__description\" data-bno-modal-description><\/div>\r\n          <div class=\"bno-direct-booking\">\r\n            <div class=\"bno-direct-booking__heading\">\r\n              <span class=\"bno-direct-eyebrow\">Kontrollera din vistelse<\/span>\r\n              <h4>Se om semesterboendet \u00e4r ledigt<\/h4>\r\n            <\/div>\r\n            <form class=\"bno-direct-form\" data-bno-availability-form novalidate>\r\n              <label>\r\n                <span>Incheckning<\/span>\r\n                <input type=\"date\" data-bno-checkin required \/>\r\n              <\/label>\r\n              <label>\r\n                <span>Utcheckning<\/span>\r\n                <input type=\"date\" data-bno-checkout required \/>\r\n              <\/label>\r\n              <label>\r\n                <span>G\u00e4ster<\/span>\r\n                <input type=\"number\" data-bno-guests min=\"1\" step=\"1\" value=\"2\" required \/>\r\n              <\/label>\r\n              <button type=\"submit\" class=\"bno-direct-check-button\" data-bno-check-button>Kontrollera tillg\u00e4nglighet<\/button>\r\n            <\/form>\r\n            <div class=\"bno-direct-message\" data-bno-message role=\"status\" aria-live=\"polite\" hidden><\/div>\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>Totalpris f\u00f6r vistelsen<\/span>\r\n                <strong data-bno-total><\/strong>\r\n              <\/div>\r\n              <div class=\"bno-direct-price__row\">\r\n                <span>Betalas nu till BNO Travel<\/span>\r\n                <strong data-bno-pay-now><\/strong>\r\n              <\/div>\r\n              <div class=\"bno-direct-price__row\">\r\n                <span>\u00c5terst\u00e5ende belopp till boendet<\/span>\r\n                <strong data-bno-pay-later><\/strong>\r\n              <\/div>\r\n            <\/div>\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>Forts\u00e4tt till bokning<\/button>\r\n              <p>G\u00e4stuppgifter, villkor och betalning slutf\u00f6rs i BNO Travels s\u00e4kra bokningsmotor.<\/p>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    `;\r\n\r\n    document.body.appendChild(modal);\r\n    return modal;\r\n  }\r\n\r\n  async function fetchJson(url, options) {\r\n    const controller = new AbortController();\r\n    const timeout = window.setTimeout(function () {\r\n      controller.abort();\r\n    }, 60000);\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 = await response.json().catch(function () {\r\n        return null;\r\n      });\r\n\r\n      if (!response.ok || !payload || payload.ok === false) {\r\n        const error = new Error(\r\n          payload && (payload.detail || payload.message || payload.error)\r\n            ? payload.detail || payload.message || payload.error\r\n            : \"Beg\u00e4ran kunde inte slutf\u00f6ras.\"\r\n        );\r\n        error.code = payload && payload.error ? String(payload.error) : \"\";\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 init(root) {\r\n    if (!root || root.dataset.bnoInitialised === \"1\") return;\r\n    root.dataset.bnoInitialised = \"1\";\r\n\r\n    const apiBase = cleanBase(root.dataset.apiBase);\r\n    const bookingBase = String(\r\n      root.dataset.bookingBase ||\r\n      \"https:\/\/booking.bno-travel.com\/booking\/complete\"\r\n    ).trim();\r\n    const catalogCredsKey = String(root.dataset.catalogCredsKey || \"\").trim();\r\n    const bookingPartnerKey = String(\r\n      root.dataset.bookingPartnerKey || catalogCredsKey\r\n    ).trim();\r\n    const serviceId = String(root.dataset.serviceId || \"\").trim();\r\n    const areaKey = String(root.dataset.areaKey || \"\").trim();\r\n    const destinationLabel = String(\r\n      root.dataset.destinationLabel || \"destinasjonen\"\r\n    ).trim();\r\n    const locationLabel = String(\r\n      root.dataset.locationLabel || destinationLabel\r\n    ).trim();\r\n    const bookingOpenUntil = String(\r\n      root.dataset.bookingOpenUntil || \"2027-05-01\"\r\n    ).trim();\r\n    const minimumStayNights = Math.max(\r\n      1,\r\n      Number(root.dataset.minimumStayNights || 1) || 1\r\n    );\r\n    const initialCount = Math.max(\r\n      1,\r\n      Number(root.dataset.initialCount || 12) || 12\r\n    );\r\n    const allowedIds = parseIdSet(root.dataset.allowedUnitIds);\r\n    const excludedIds = parseIdSet(root.dataset.excludedUnitIds);\r\n\r\n    const status = root.querySelector(\"[data-bno-status]\");\r\n    const grid = root.querySelector(\"[data-bno-grid]\");\r\n    const moreWrap = root.querySelector(\"[data-bno-more-wrap]\");\r\n    const moreButton = root.querySelector(\"[data-bno-more]\");\r\n\r\n    if (!apiBase || !catalogCredsKey || !serviceId || !areaKey) {\r\n      if (status) {\r\n        status.textContent = \"Bulk 3 mangler n\u00f8dvendig konfigurasjon.\";\r\n        status.classList.add(\"is-error\");\r\n      }\r\n      return;\r\n    }\r\n\r\n    if (!status || !grid || !moreWrap || !moreButton) return;\r\n\r\n    const modal = buildModal(destinationLabel, locationLabel);\r\n    const modalImage = modal.querySelector(\"[data-bno-modal-image]\");\r\n    const modalTitle = modal.querySelector(\"[data-bno-modal-title]\");\r\n    const modalCapacity = modal.querySelector(\"[data-bno-modal-capacity]\");\r\n    const modalDescription = modal.querySelector(\"[data-bno-modal-description]\");\r\n    const modalCounter = modal.querySelector(\"[data-bno-counter]\");\r\n    const prevButton = modal.querySelector(\"[data-bno-prev]\");\r\n    const nextButton = modal.querySelector(\"[data-bno-next]\");\r\n    const closeButtons = modal.querySelectorAll(\"[data-bno-close]\");\r\n    const availabilityForm = modal.querySelector(\"[data-bno-availability-form]\");\r\n    const checkinInput = modal.querySelector(\"[data-bno-checkin]\");\r\n    const checkoutInput = modal.querySelector(\"[data-bno-checkout]\");\r\n    const guestsInput = modal.querySelector(\"[data-bno-guests]\");\r\n    const checkButton = modal.querySelector(\"[data-bno-check-button]\");\r\n    const messageNode = modal.querySelector(\"[data-bno-message]\");\r\n    const priceBox = modal.querySelector(\"[data-bno-price]\");\r\n    const totalNode = modal.querySelector(\"[data-bno-total]\");\r\n    const payNowNode = modal.querySelector(\"[data-bno-pay-now]\");\r\n    const payLaterNode = modal.querySelector(\"[data-bno-pay-later]\");\r\n    const continueWrap = modal.querySelector(\"[data-bno-continue-wrap]\");\r\n    const continueButton = modal.querySelector(\"[data-bno-continue]\");\r\n\r\n    let units = [];\r\n    let visibleCount = initialCount;\r\n    let currentUnit = null;\r\n    let currentImageIndex = 0;\r\n    let currentQuote = null;\r\n    let previousBodyOverflow = \"\";\r\n\r\n    function setStatus(message, isError) {\r\n      status.textContent = message || \"\";\r\n      status.hidden = !message;\r\n      status.classList.toggle(\"is-error\", Boolean(isError));\r\n    }\r\n\r\n    function setMessage(message, type) {\r\n      messageNode.textContent = message || \"\";\r\n      messageNode.hidden = !message;\r\n      messageNode.classList.remove(\"is-error\", \"is-success\");\r\n      if (type) messageNode.classList.add(\"is-\" + type);\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 cardHtml(unit, index) {\r\n      const image = unit.images[0];\r\n      const capacity = unit.capacity > 0\r\n        ? \"Upp till \" + unit.capacity + \" g\u00e4ster\"\r\n        : \"Se detaljer och bilder\";\r\n      const description = unit.description ||\r\n        \"Se bilder, kapacitet och tillg\u00e4nglighet f\u00f6r detta semesterboende.\";\r\n\r\n      return `\r\n        <article class=\"bno-direct-card\">\r\n          <button type=\"button\" class=\"bno-direct-card__button\" data-bno-unit-index=\"${index}\">\r\n            <div class=\"bno-direct-card__media\">\r\n              <img decoding=\"async\" src=\"${escapeHtml(image)}\" alt=\"${escapeHtml(unit.name)}\" loading=\"lazy\" \/>\r\n              <span class=\"bno-direct-card__count\">${unit.images.length} bilder<\/span>\r\n            <\/div>\r\n            <div class=\"bno-direct-card__body\">\r\n              <h3>${escapeHtml(unit.name)}<\/h3>\r\n              <p class=\"bno-direct-card__meta\">${escapeHtml(capacity)}<\/p>\r\n              <p class=\"bno-direct-card__description\">${escapeHtml(description)}<\/p>\r\n              <span class=\"bno-direct-card__link\">Visa semesterboendet \u2192<\/span>\r\n            <\/div>\r\n          <\/button>\r\n        <\/article>\r\n      `;\r\n    }\r\n\r\n    function renderUnits() {\r\n      const visible = units.slice(0, visibleCount);\r\n      grid.innerHTML = visible.map(cardHtml).join(\"\");\r\n      grid.setAttribute(\"aria-busy\", \"false\");\r\n\r\n      grid.querySelectorAll(\"[data-bno-unit-index]\").forEach(function (button) {\r\n        button.addEventListener(\"click\", function () {\r\n          openModal(units[Number(button.dataset.bnoUnitIndex)]);\r\n        });\r\n      });\r\n\r\n      moreWrap.hidden = visibleCount >= units.length;\r\n      setStatus(\r\n        \"Visar \" + visible.length + \" av \" + units.length +\r\n        \" semesterboenden i \" + destinationLabel + \".\",\r\n        false\r\n      );\r\n    }\r\n\r\n    function updateModalImage() {\r\n      if (!currentUnit || !currentUnit.images.length) return;\r\n\r\n      currentImageIndex =\r\n        (currentImageIndex + currentUnit.images.length) % currentUnit.images.length;\r\n\r\n      modalImage.src = currentUnit.images[currentImageIndex];\r\n      modalImage.alt = currentUnit.name + \" \u2013 bild \" + (currentImageIndex + 1);\r\n      modalCounter.textContent =\r\n        currentImageIndex + 1 + \" \/ \" + currentUnit.images.length;\r\n      prevButton.hidden = currentUnit.images.length < 2;\r\n      nextButton.hidden = currentUnit.images.length < 2;\r\n    }\r\n\r\n    function openModal(unit) {\r\n      if (!unit) return;\r\n\r\n      currentUnit = unit;\r\n      currentImageIndex = 0;\r\n      modalTitle.textContent = unit.name;\r\n      modalCapacity.textContent = unit.capacity > 0\r\n        ? \"Upp till \" + unit.capacity + \" g\u00e4ster\"\r\n        : \"\";\r\n      modalDescription.textContent = unit.description ||\r\n        \"Se tillg\u00e4nglighet och pris f\u00f6r detta semesterboende.\";\r\n\r\n      const today = new Date();\r\n      const checkin = addDays(today, 1);\r\n      const checkout = addDays(checkin, Math.max(7, minimumStayNights));\r\n\r\n      checkinInput.min = localYmd(today);\r\n      checkoutInput.min = localYmd(addDays(checkin, minimumStayNights));\r\n      checkinInput.value = localYmd(checkin);\r\n      checkoutInput.value = localYmd(checkout);\r\n\r\n      if (bookingOpenUntil) {\r\n        checkinInput.max = bookingOpenUntil;\r\n        checkoutInput.max = bookingOpenUntil;\r\n      }\r\n\r\n      guestsInput.max = String(unit.capacity > 0 ? unit.capacity : 20);\r\n      guestsInput.value = String(Math.min(2, unit.capacity > 0 ? unit.capacity : 2));\r\n\r\n      resetQuote();\r\n      updateModalImage();\r\n\r\n      previousBodyOverflow = document.body.style.overflow;\r\n      document.body.style.overflow = \"hidden\";\r\n      document.body.classList.add(\"bno-direct-modal-open\");\r\n      modal.hidden = false;\r\n      modal.scrollTop = 0;\r\n\r\n      const close = modal.querySelector(\".bno-direct-modal__close\");\r\n      if (close) close.focus();\r\n    }\r\n\r\n    function closeModal() {\r\n      modal.hidden = true;\r\n      document.body.style.overflow = previousBodyOverflow;\r\n      document.body.classList.remove(\"bno-direct-modal-open\");\r\n      currentUnit = null;\r\n      currentQuote = null;\r\n    }\r\n\r\n    async function loadCatalog() {\r\n      try {\r\n        const query = new URLSearchParams({\r\n          serviceId: serviceId,\r\n          credsKey: catalogCredsKey,\r\n          lang: languageCode()\r\n        });\r\n\r\n        const payload = await fetchJson(\r\n          apiUrl(apiBase, \"\/api\/mews\/catalog?\") + query.toString()\r\n        );\r\n        const rows = extractRows(payload);\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          \"status\",\r\n          \"Status\"\r\n        ];\r\n        const hasPublicationFields = rows.some(function (row) {\r\n          return publicationKeys.some(function (key) {\r\n            return Object.prototype.hasOwnProperty.call(row || {}, key);\r\n          });\r\n        });\r\n        const seen = new Set();\r\n\r\n        units = rows\r\n          .map(normaliseUnit)\r\n          .filter(function (unit) {\r\n            if (!unit.categoryId || seen.has(unit.categoryId)) return false;\r\n            seen.add(unit.categoryId);\r\n            if (allowedIds.size && !allowedIds.has(unit.categoryId)) return false;\r\n            if (excludedIds.has(unit.categoryId)) return false;\r\n            if (!isPublished(unit, hasPublicationFields)) return false;\r\n            return unit.images.length > 0;\r\n          })\r\n          .sort(function (a, b) {\r\n            return a.name.localeCompare(b.name, \"sv\", { sensitivity: \"base\" });\r\n          });\r\n\r\n        if (!units.length) {\r\n          grid.innerHTML = \"\";\r\n          grid.setAttribute(\"aria-busy\", \"false\");\r\n          moreWrap.hidden = true;\r\n          setStatus(\r\n            \"Inga publicerade semesterboenden kunde laddas just nu.\",\r\n            true\r\n          );\r\n          return;\r\n        }\r\n\r\n        renderUnits();\r\n      } catch (error) {\r\n        console.error(\"BNO destination catalog failed:\", error);\r\n        grid.innerHTML = \"\";\r\n        grid.setAttribute(\"aria-busy\", \"false\");\r\n        moreWrap.hidden = true;\r\n        setStatus(\r\n          \"Semesterboendena kunde inte laddas. F\u00f6rs\u00f6k att uppdatera sidan.\",\r\n          true\r\n        );\r\n      }\r\n    }\r\n\r\n    availabilityForm.addEventListener(\"submit\", async function (event) {\r\n      event.preventDefault();\r\n      if (!currentUnit) return;\r\n\r\n      const from = String(checkinInput.value || \"\").trim();\r\n      const to = String(checkoutInput.value || \"\").trim();\r\n      const adults = Number(guestsInput.value || 0);\r\n\r\n      resetQuote();\r\n\r\n      if (!from || !to || to <= from) {\r\n        setMessage(\"V\u00e4lj giltiga datum. Utcheckning m\u00e5ste vara efter incheckning.\", \"error\");\r\n        return;\r\n      }\r\n\r\n      const nights = nightsBetween(from, to);\r\n      if (nights < minimumStayNights) {\r\n        setMessage(\r\n          \"Minsta vistelsen \u00e4r \" + minimumStayNights +\r\n          (minimumStayNights === 1 ? \" natt.\" : \" n\u00e4tter.\"),\r\n          \"error\"\r\n        );\r\n        return;\r\n      }\r\n\r\n      if (!Number.isInteger(adults) || adults < 1) {\r\n        setMessage(\"V\u00e4lj ett giltigt antal g\u00e4ster.\", \"error\");\r\n        return;\r\n      }\r\n\r\n      if (currentUnit.capacity > 0 && adults > currentUnit.capacity) {\r\n        setMessage(\r\n          \"Det h\u00e4r semesterboendet har plats f\u00f6r upp till \" +\r\n          currentUnit.capacity + \" g\u00e4ster.\",\r\n          \"error\"\r\n        );\r\n        return;\r\n      }\r\n\r\n      checkButton.disabled = true;\r\n      checkButton.textContent = \"Kontrollerar \u2026\";\r\n      setMessage(\"Kontrollerar tillg\u00e4nglighet och pris \u2026\", \"\");\r\n\r\n      try {\r\n        const payload = await fetchJson(\r\n          apiUrl(apiBase, \"\/api\/bno-direct\/quote\"),\r\n          {\r\n            method: \"POST\",\r\n            headers: {\r\n              Accept: \"application\/json\",\r\n              \"Content-Type\": \"application\/json\"\r\n            },\r\n            body: JSON.stringify({\r\n              partnerKey: bookingPartnerKey,\r\n              areaKey: areaKey,\r\n              resourceCategoryId: currentUnit.categoryId,\r\n              from: from,\r\n              to: to,\r\n              adults: adults\r\n            })\r\n          }\r\n        );\r\n\r\n        const quote = payload.data || payload;\r\n        const pricing = quote.pricing || {};\r\n        const currency = String(quote.currency || \"EUR\").toUpperCase();\r\n        const total = Number(pricing.guestTotalGross);\r\n        const payNow = Number(pricing.bnoPrepaidGross);\r\n        const payLater = Number(pricing.remainingGross);\r\n\r\n        if (!Number.isFinite(total) || total <= 0) {\r\n          throw new Error(\"Totalpriset kunde inte h\u00e4mtas.\");\r\n        }\r\n\r\n        currentQuote = {\r\n          from: from,\r\n          to: to,\r\n          adults: adults,\r\n          currency: currency,\r\n          total: total,\r\n          payNow: Number.isFinite(payNow) ? payNow : 0,\r\n          payLater: Number.isFinite(payLater)\r\n            ? payLater\r\n            : Math.max(0, total - (Number.isFinite(payNow) ? payNow : 0))\r\n        };\r\n\r\n        totalNode.textContent = formatMoney(currentQuote.total, currency);\r\n        payNowNode.textContent = formatMoney(currentQuote.payNow, currency);\r\n        payLaterNode.textContent = formatMoney(currentQuote.payLater, currency);\r\n        priceBox.hidden = false;\r\n        continueWrap.hidden = false;\r\n\r\n        setMessage(\r\n          \"Semesterboendet \u00e4r tillg\u00e4ngligt fr\u00e5n \" + formatDate(from) +\r\n          \" till \" + formatDate(to) + \".\",\r\n          \"success\"\r\n        );\r\n      } catch (error) {\r\n        console.error(\"BNO destination quote failed:\", error);\r\n        const code = String(error && error.code || \"\");\r\n        let message = error && error.message\r\n          ? error.message\r\n          : \"Tillg\u00e4ngligheten kunde inte kontrolleras. F\u00f6rs\u00f6k igen.\";\r\n\r\n        if (code === \"booking_not_open\") {\r\n          message = \"Bokningen \u00e4r \u00e4nnu inte \u00f6ppen f\u00f6r den h\u00e4r destinationen.\";\r\n        } else if (code === \"not_available\") {\r\n          message = \"Semesterboendet \u00e4r inte tillg\u00e4ngligt under den valda perioden.\";\r\n        }\r\n\r\n        setMessage(message, \"error\");\r\n      } finally {\r\n        checkButton.disabled = false;\r\n        checkButton.textContent = \"Kontrollera tillg\u00e4nglighet\";\r\n      }\r\n    });\r\n\r\n    function invalidateQuote() {\r\n      resetQuote();\r\n    }\r\n\r\n    checkinInput.addEventListener(\"change\", function () {\r\n      if (checkinInput.value) {\r\n        const minCheckout = localYmd(\r\n          addDays(new Date(checkinInput.value + \"T12:00:00\"), minimumStayNights)\r\n        );\r\n        checkoutInput.min = minCheckout;\r\n        if (!checkoutInput.value || checkoutInput.value < minCheckout) {\r\n          checkoutInput.value = minCheckout;\r\n        }\r\n      }\r\n      invalidateQuote();\r\n    });\r\n\r\n    checkoutInput.addEventListener(\"change\", invalidateQuote);\r\n    guestsInput.addEventListener(\"change\", invalidateQuote);\r\n\r\n    continueButton.addEventListener(\"click\", function () {\r\n      if (!currentUnit || !currentQuote) return;\r\n\r\n      const url = new URL(bookingBase, window.location.origin);\r\n      url.searchParams.set(\"partnerKey\", bookingPartnerKey);\r\n      url.searchParams.set(\"areaKey\", areaKey);\r\n      url.searchParams.set(\"resourceCategoryId\", currentUnit.categoryId);\r\n      url.searchParams.set(\"from\", currentQuote.from);\r\n      url.searchParams.set(\"to\", currentQuote.to);\r\n      url.searchParams.set(\"adults\", String(currentQuote.adults));\r\n      url.searchParams.set(\"propertyName\", currentUnit.name);\r\n      url.searchParams.set(\"lang\", languageCode());\r\n\r\n      if (currentUnit.images[0]) {\r\n        url.searchParams.set(\"imageUrl\", currentUnit.images[0]);\r\n      }\r\n\r\n      window.location.assign(url.toString());\r\n    });\r\n\r\n    prevButton.addEventListener(\"click\", function () {\r\n      currentImageIndex -= 1;\r\n      updateModalImage();\r\n    });\r\n\r\n    nextButton.addEventListener(\"click\", function () {\r\n      currentImageIndex += 1;\r\n      updateModalImage();\r\n    });\r\n\r\n    closeButtons.forEach(function (button) {\r\n      button.addEventListener(\"click\", closeModal);\r\n    });\r\n\r\n    modal.addEventListener(\"keydown\", function (event) {\r\n      if (event.key === \"Escape\") closeModal();\r\n      if (event.key === \"ArrowLeft\") {\r\n        currentImageIndex -= 1;\r\n        updateModalImage();\r\n      }\r\n      if (event.key === \"ArrowRight\") {\r\n        currentImageIndex += 1;\r\n        updateModalImage();\r\n      }\r\n    });\r\n\r\n    moreButton.addEventListener(\"click\", function () {\r\n      visibleCount = Math.min(visibleCount + initialCount, units.length);\r\n      renderUnits();\r\n    });\r\n\r\n    loadCatalog();\r\n  }\r\n\r\n  function mountAll(scope) {\r\n    const context = scope && scope.querySelectorAll ? scope : document;\r\n    context.querySelectorAll(ROOT_SELECTOR).forEach(init);\r\n  }\r\n\r\n  window.BNODirectDestinationCatalog = {\r\n    mountAll: mountAll\r\n  };\r\n\r\n  if (document.readyState === \"loading\") {\r\n    document.addEventListener(\"DOMContentLoaded\", function () {\r\n      mountAll(document);\r\n    }, { once: true });\r\n  } else {\r\n    mountAll(document);\r\n  }\r\n\r\n  window.addEventListener(\"load\", function () {\r\n    mountAll(document);\r\n  }, { once: true });\r\n})();\r\n\r\n<\/script>\r\n\r\n\r\n<style>\r\n\/* =========================================================\r\n   ZELL AM SEE \u2013 BULK 3 \/ FIRE BNO DIRECT-KATALOGER\r\n   Legges etter den globale BNO Direct-CSS-en\r\n   ========================================================= *\/\r\n\r\nhtml,\r\nbody {\r\n  max-width: 100%;\r\n  overflow-x: clip;\r\n}\r\n\r\n#enheter.bno-zell-catalogs,\r\n#enheter.bno-zell-catalogs * {\r\n  box-sizing: border-box;\r\n}\r\n\r\n#enheter.bno-zell-catalogs {\r\n  width: 100%;\r\n  max-width: 100%;\r\n  overflow-x: clip;\r\n  scroll-margin-top: 90px;\r\n}\r\n\r\n#enheter .bno-zell-catalog-block {\r\n  position: relative;\r\n  width: 100%;\r\n  max-width: 100%;\r\n  margin: 0;\r\n  padding: 88px 0;\r\n  overflow-x: clip;\r\n  scroll-margin-top: 90px;\r\n}\r\n\r\n#enheter .bno-zell-catalog-block--soft {\r\n  background: linear-gradient(180deg, #f5f8fa 0%, #edf3f6 100%) !important;\r\n}\r\n\r\n#enheter .bno-zell-catalog-block--light {\r\n  background: #ffffff !important;\r\n}\r\n\r\n#enheter .bno-zell-catalog-block > .bno-shell {\r\n  width: min(1180px, calc(100% - 48px));\r\n  max-width: 1180px;\r\n  margin-right: auto;\r\n  margin-left: auto;\r\n}\r\n\r\n\/* Overskrift per hotell *\/\r\n#enheter .bno-zell-catalog-heading {\r\n  display: grid;\r\n  max-width: 900px;\r\n  grid-template-columns: 58px minmax(0, 1fr);\r\n  gap: 22px;\r\n  align-items: start;\r\n  margin: 0 0 38px;\r\n}\r\n\r\n#enheter .bno-zell-catalog-heading__number {\r\n  display: inline-flex;\r\n  width: 58px;\r\n  height: 58px;\r\n  align-items: center;\r\n  justify-content: center;\r\n  border-radius: 17px;\r\n  background: #0c1a38;\r\n  color: #ffffff;\r\n  font-size: 16px;\r\n  font-weight: 850;\r\n  line-height: 1;\r\n  box-shadow: 0 12px 28px rgba(12, 26, 56, 0.20);\r\n}\r\n\r\n#enheter .bno-zell-catalog-heading .bno-eyebrow {\r\n  display: inline-flex;\r\n  margin: 0 0 9px;\r\n  color: #123b5d;\r\n  font-size: 12px;\r\n  font-weight: 800;\r\n  line-height: 1.3;\r\n  letter-spacing: 0.085em;\r\n  text-transform: uppercase;\r\n}\r\n\r\n#enheter .bno-zell-catalog-heading h2 {\r\n  margin: 0 0 13px;\r\n  color: #0c1a38;\r\n  font-size: clamp(32px, 4vw, 48px);\r\n  font-weight: 700;\r\n  line-height: 1.1;\r\n  letter-spacing: -0.03em;\r\n}\r\n\r\n#enheter .bno-zell-catalog-heading p {\r\n  max-width: 760px;\r\n  margin: 0;\r\n  color: #586676;\r\n  font-size: 17px;\r\n  line-height: 1.7;\r\n}\r\n\r\n\/* Status *\/\r\n#enheter .bno-direct-catalog__status {\r\n  width: 100%;\r\n  max-width: 100%;\r\n  margin: 0 0 28px !important;\r\n  padding: 15px 17px !important;\r\n  border: 1px solid rgba(12, 26, 56, 0.14) !important;\r\n  border-radius: 14px !important;\r\n  background: rgba(255, 255, 255, 0.92) !important;\r\n  color: #0c1a38 !important;\r\n  font-size: 15px !important;\r\n  line-height: 1.5 !important;\r\n  overflow-wrap: anywhere;\r\n}\r\n\r\n\/* Grid \u2013 lik Chamonix *\/\r\n#enheter .bno-direct-catalog__grid {\r\n  display: grid !important;\r\n  width: 100% !important;\r\n  max-width: 100% !important;\r\n  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;\r\n  gap: 24px !important;\r\n  align-items: stretch !important;\r\n  margin: 0 !important;\r\n  padding: 0 !important;\r\n}\r\n\r\n#enheter .bno-direct-card {\r\n  position: relative;\r\n  min-width: 0;\r\n}\r\n\r\n\/* Tydelig hotellmerke p\u00e5 hvert genererte romkort *\/\r\n#enheter .bno-direct-card::before {\r\n  position: absolute;\r\n  top: 14px;\r\n  left: 14px;\r\n  z-index: 8;\r\n  display: inline-flex;\r\n  max-width: calc(100% - 28px);\r\n  padding: 7px 11px;\r\n  overflow: hidden;\r\n  border-radius: 999px;\r\n  background: rgba(12, 26, 56, 0.92);\r\n  color: #ffffff;\r\n  font-size: 9.5px;\r\n  font-weight: 800;\r\n  line-height: 1.2;\r\n  letter-spacing: 0.055em;\r\n  text-overflow: ellipsis;\r\n  text-transform: uppercase;\r\n  white-space: nowrap;\r\n  pointer-events: none;\r\n  backdrop-filter: blur(7px);\r\n  -webkit-backdrop-filter: blur(7px);\r\n}\r\n\r\n#rom-the-house .bno-direct-card::before {\r\n  content: \"The House Zell am See\";\r\n}\r\n\r\n#rom-the-gast-house .bno-direct-card::before {\r\n  content: \"The Gast House Zell am See\";\r\n}\r\n\r\n#rom-nikolaus .bno-direct-card::before {\r\n  content: \"Nikolaus by AvenidA\";\r\n}\r\n\r\n#rom-elements-resort .bno-direct-card::before {\r\n  content: \"Elements Resort Zell am See\";\r\n}\r\n\r\n\/* Kortene skal ikke arve bredder eller bildepadding fra \u00f8vrig side-CSS *\/\r\n#enheter .bno-direct-card,\r\n#enheter .bno-direct-card__button,\r\n#enheter .bno-direct-card__media,\r\n#enheter .bno-direct-card__body {\r\n  max-width: 100% !important;\r\n}\r\n\r\n#enheter .bno-direct-card__media {\r\n  padding: 0 !important;\r\n}\r\n\r\n#enheter .bno-direct-card__media img {\r\n  position: static !important;\r\n  inset: auto !important;\r\n  display: block !important;\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 !important;\r\n}\r\n\r\n#enheter .bno-direct-more-wrap {\r\n  display: flex;\r\n  justify-content: center;\r\n  margin-top: 34px;\r\n}\r\n\r\n#enheter .bno-direct-more-wrap[hidden] {\r\n  display: none !important;\r\n}\r\n\r\n#enheter .bno-direct-more {\r\n  display: inline-flex;\r\n  min-height: 50px;\r\n  align-items: center;\r\n  justify-content: center;\r\n  padding: 13px 22px;\r\n  border: 1px solid #0c1a38;\r\n  border-radius: 12px;\r\n  background: #0c1a38;\r\n  color: #ffffff;\r\n  cursor: pointer;\r\n  font: inherit;\r\n  font-size: 14px;\r\n  font-weight: 800;\r\n  transition: transform 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;\r\n}\r\n\r\n#enheter .bno-direct-more:hover,\r\n#enheter .bno-direct-more:focus {\r\n  background: #123b5d;\r\n  box-shadow: 0 12px 26px rgba(12, 26, 56, 0.20);\r\n  transform: translateY(-2px);\r\n}\r\n\r\n\/* Nettbrett *\/\r\n@media (max-width: 1024px) {\r\n  #enheter .bno-direct-catalog__grid {\r\n    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;\r\n  }\r\n}\r\n\r\n\/* Mobil *\/\r\n@media (max-width: 767px) {\r\n  #enheter .bno-zell-catalog-block {\r\n    padding: 62px 0;\r\n  }\r\n\r\n  #enheter .bno-zell-catalog-block > .bno-shell {\r\n    width: min(100% - 32px, 1180px);\r\n  }\r\n\r\n  #enheter .bno-zell-catalog-heading {\r\n    grid-template-columns: 1fr;\r\n    gap: 17px;\r\n    margin-bottom: 31px;\r\n  }\r\n\r\n  #enheter .bno-zell-catalog-heading__number {\r\n    width: 50px;\r\n    height: 50px;\r\n    border-radius: 15px;\r\n  }\r\n\r\n  #enheter .bno-zell-catalog-heading h2 {\r\n    font-size: clamp(29px, 9vw, 39px);\r\n  }\r\n\r\n  #enheter .bno-zell-catalog-heading p {\r\n    font-size: 16px;\r\n    line-height: 1.65;\r\n  }\r\n\r\n  #enheter .bno-direct-catalog__grid {\r\n    grid-template-columns: 1fr !important;\r\n    gap: 21px !important;\r\n  }\r\n\r\n  #enheter .bno-direct-card::before {\r\n    top: 12px;\r\n    left: 12px;\r\n    max-width: calc(100% - 24px);\r\n    font-size: 9px;\r\n  }\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n  #enheter *,\r\n  .bno-direct-modal * {\r\n    animation-duration: 0.01ms !important;\r\n    animation-iteration-count: 1 !important;\r\n    transition-duration: 0.01ms !important;\r\n  }\r\n}\r\n\r\n<\/style>\r\n\r\n<script>\r\n(function () {\r\n  \"use strict\";\r\n\r\n  function remountZellCatalogs() {\r\n    if (\r\n      window.BNODirectDestinationCatalog &&\r\n      typeof window.BNODirectDestinationCatalog.mountAll === \"function\"\r\n    ) {\r\n      window.BNODirectDestinationCatalog.mountAll(document);\r\n    }\r\n  }\r\n\r\n  remountZellCatalogs();\r\n  window.setTimeout(remountZellCatalogs, 150);\r\n  window.setTimeout(remountZellCatalogs, 600);\r\n  window.setTimeout(remountZellCatalogs, 1500);\r\n\r\n  document.addEventListener(\"elementor\/frontend\/init\", function () {\r\n    window.setTimeout(remountZellCatalogs, 100);\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-e6dc9e6 e-flex e-con-boxed e-con e-parent\" data-id=\"e6dc9e6\" 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<div class=\"elementor-element elementor-element-1bdce1cb e-flex e-con-boxed e-con e-parent\" data-id=\"1bdce1cb\" 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-1c026e1c elementor-widget elementor-widget-html\" data-id=\"1c026e1c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"bno-zell 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\">Upplevelser i Zell am See<\/span>\r\n\r\n        <h2>Berg, sj\u00f6 och aktiva semesterdagar \u00e5ret runt<\/h2>\r\n\r\n        <p>Zell am See kombinerar en levande bymilj\u00f6 n\u00e4ra sj\u00f6, berg och ett varierat aktivitetsutbud. Det ger en bra utg\u00e5ngspunkt b\u00e5de f\u00f6r aktiva semestrar och lugnare vistelse.<\/p>\r\n\r\n        <p>Vintern erbjuder skid\u00e5kning och sn\u00f6upplevelser i regionen, medan sommaren \u00f6ppnar f\u00f6r vandring, cykling, bad och aktiviteter runt sj\u00f6n. Restauranger, butiker och serviceutbud g\u00f6r det samtidigt enkelt att kombinera upplevelserna med bekv\u00e4ma dagar i staden.<\/p>\r\n\r\n        <div class=\"bno-actions\">\r\n          <a href=\"#fakta\" class=\"bno-btn bno-btn--primary\">Se praktisk information<\/a>\r\n        <\/div>\r\n\r\n      <\/div>\r\n\r\n      <div class=\"bno-editorial-split__media\">\r\n        <img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/08\/AdobeStock_40023408.jpeg?w=800&#038;ssl=1\" alt=\"Berg, sj\u00f6 och semesterupplevelser i Zell am See\" loading=\"lazy\">\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-7087d327 e-flex e-con-boxed e-con e-parent\" data-id=\"7087d327\" 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-72cc6985 elementor-widget elementor-widget-html\" data-id=\"72cc6985\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section id=\"fakta\" class=\"bno-zell bno-section bno-section--soft\">\r\n  <div class=\"bno-shell\">\r\n\r\n    <div class=\"bno-section-heading\">\r\n      <span class=\"bno-eyebrow\">Praktisk information<\/span>\r\n\r\n      <h2>Aktiviteter, transport och praktisk information i Zell am See<\/h2>\r\n\r\n      <p>H\u00e4r hittar du en kort \u00f6versikt \u00f6ver n\u00e5gra av m\u00f6jligheterna som g\u00f6r Zell am See till ett attraktivt resm\u00e5l under stora delar av \u00e5ret.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"bno-info-grid\">\r\n\r\n      <article class=\"bno-value-card\">\r\n        <span class=\"bno-value-card__number\">01<\/span>\r\n        <h3>Vinterupplevelser<\/h3>\r\n\r\n        <p>P\u00e5 vintern \u00e4r Zell am See en utg\u00e5ngspunkt f\u00f6r skid\u00e5kning, vinteraktiviteter och upplevelser i bergomr\u00e5dena runt staden. Utbud och \u00f6ppettider varierar under s\u00e4songen.<\/p>\r\n      <\/article>\r\n\r\n      <article class=\"bno-value-card\">\r\n        <span class=\"bno-value-card__number\">02<\/span>\r\n        <h3>Sommaraktiviteter<\/h3>\r\n\r\n        <p>Sommaren ger m\u00f6jligheter f\u00f6r vandring, cykling, bad, b\u00e5tliv och lugna dagar vid sj\u00f6n eller i bergen.<\/p>\r\n      <\/article>\r\n\r\n      <article class=\"bno-value-card\">\r\n        <span class=\"bno-value-card__number\">03<\/span>\r\n        <h3>Transport<\/h3>\r\n\r\n        <p>Zell am See har f\u00f6rbindelser vidare i regionen och ett kompakt centrum. Kontrollera alltid uppdaterade tidtabeller och s\u00e4songsutbud innan avresa.<\/p>\r\n      <\/article>\r\n\r\n      <article class=\"bno-value-card\">\r\n        <span class=\"bno-value-card__number\">04<\/span>\r\n        <h3>Butiker och service<\/h3>\r\n\r\n        <p>I och runt centrum hittar du livsmedelsbutiker, sportbutiker, apotek och annan praktisk service under vistelsen.<\/p>\r\n      <\/article>\r\n\r\n      <article class=\"bno-value-card\">\r\n        <span class=\"bno-value-card__number\">05<\/span>\r\n        <h3>Restauranger<\/h3>\r\n\r\n        <p>Staden har restauranger, kaf\u00e9er och serveringar som g\u00f6r det enkelt att kombinera aktiva dagar med mysiga m\u00e5ltider.<\/p>\r\n      <\/article>\r\n\r\n      <article class=\"bno-value-card\">\r\n        <span class=\"bno-value-card__number\">06<\/span>\r\n        <h3>Vistelse \u00e5ret runt<\/h3>\r\n\r\n        <p>Kombinationen av berg, sj\u00f6, centrum och olika hotellkoncept g\u00f6r Zell am See aktuellt f\u00f6r b\u00e5de korta bes\u00f6k och l\u00e4ngre semestrar.<\/p>\r\n      <\/article>\r\n\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4af3cc1b elementor-widget elementor-widget-html\" data-id=\"4af3cc1b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"bno-zell 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        <span class=\"bno-eyebrow\">N\u00e4sta steg<\/span>\r\n\r\n        <h2>Hitta r\u00e4tt hotell och rumstyp i Zell am See<\/h2>\r\n\r\n        <p>J\u00e4mf\u00f6r rum, sviter och l\u00e4genheter vid The House, The Gast House, Nikolaus by AvenidA och Elements Resort Zell am See.<\/p>\r\n      <\/div>\r\n\r\n      <div class=\"bno-cta-box__action\">\r\n        <a href=\"#enheter\" class=\"bno-btn bno-btn--primary bno-cta-button\">\r\n          <span>Se rum och l\u00e4genheter<\/span>\r\n          <span aria-hidden=\"true\">\u2192<\/span>\r\n        <\/a>\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-ee08c8a e-flex e-con-boxed e-con e-parent\" data-id=\"ee08c8a\" 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>Zell am See \u00b7 \u00d6sterrike Boende i Zell am See \u2013 utforska fyra hotell vid berg och sj\u00f6 Hitta rum, sviter och l\u00e4genheter hos The House Zell am See, The Gast House Zell am See, Nikolaus by AvenidA och Elements Resort Zell am See. J\u00e4mf\u00f6r rumstyperna och hitta boendet som passar din resa. Se rum [&hellip;]<\/p>\n","protected":false},"author":260013438,"featured_media":93571,"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":"Boende i Zell am See \u2013 4 hotell | BNO Travel","rank_math_description":"Boende i Zell am See p\u00e5 fyra hotell. Utforska rum, sviter och l\u00e4genheter n\u00e4ra berg, sj\u00f6, skid\u00e5kning och aktiviteter \u00e5ret runt.","rank_math_focus_keyword":"Boende i Zell am See,Zell am See hotell","_dpc-meta-title":"","_dpc-meta-description":"","_dpc-keyword":""},"class_list":["post-94562","page","type-page","status-publish","has-post-thumbnail","hentry"],"jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/PgDuwj-oBc","jetpack-related-posts":[{"id":94595,"url":"https:\/\/bno-travel.com\/sv\/overnatting-i-de-osterrikske-alper\/","url_meta":{"origin":94562,"position":0},"title":"De \u00f6sterrikiska Alperna","author":"Jan Terje \u00c5s","date":"29 juli 2026","format":false,"excerpt":"Destinationer \u00b7 De \u00f6sterrikiska Alperna Boende i de \u00f6sterrikiska Alperna \u2013 hitta destinationen som passar din resa Boende i de \u00f6sterrikiska Alperna ger dig n\u00e4rhet till alpbyar, skidomr\u00e5den, sj\u00f6ar och spektakul\u00e4ra bergsupplevelser. Utforska Kaprun och v\u00e5ra \u00f6vriga destinationer, och hitta en vistelse som passar b\u00e5de vintersemestern och aktiva sommardagar. Se\u2026","rel":"","context":"Liknande inl\u00e4gg","block_context":{"text":"Liknande inl\u00e4gg","link":""},"img":{"alt_text":"Overnatting i \u00d8sterrike","src":"https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/08\/AdobeStock_192952681.jpeg?fit=1200%2C643&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/08\/AdobeStock_192952681.jpeg?fit=1200%2C643&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/08\/AdobeStock_192952681.jpeg?fit=1200%2C643&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/08\/AdobeStock_192952681.jpeg?fit=1200%2C643&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/08\/AdobeStock_192952681.jpeg?fit=1200%2C643&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":94591,"url":"https:\/\/bno-travel.com\/sv\/overnatting-i-kaprun\/","url_meta":{"origin":94562,"position":1},"title":"Kaprun","author":"Jan Terje \u00c5s","date":"30 juli 2026","format":false,"excerpt":"Kaprun \u00b7 \u00d6sterrike Boende i Kaprun p\u00e5 Avenida Panorama Suites Bo vid AvenidA Panorama Suites Kaprun, med moderna rum, sviter och l\u00e4genheter, panoramautsikt mot bergen och en bra utg\u00e5ngspunkt f\u00f6r skid\u00e5kning, vandring och upplevelser \u00e5ret runt. Se rum och sviter Se karta Tre hotell i Kaprun V\u00e4lj hotellet och rumstypen\u2026","rel":"","context":"Liknande inl\u00e4gg","block_context":{"text":"Liknande inl\u00e4gg","link":""},"img":{"alt_text":"Kaprun","src":"https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/08\/AdobeStock_42719801.jpeg?fit=1200%2C857&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/08\/AdobeStock_42719801.jpeg?fit=1200%2C857&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/08\/AdobeStock_42719801.jpeg?fit=1200%2C857&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/08\/AdobeStock_42719801.jpeg?fit=1200%2C857&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/08\/AdobeStock_42719801.jpeg?fit=1200%2C857&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":98330,"url":"https:\/\/bno-travel.com\/sv\/hotell-pa-korfu\/","url_meta":{"origin":94562,"position":2},"title":"Hotell p\u00e5 Korfu \u2013 hitta hotell och omr\u00e5den | BNO Travel","author":"Jan Terje \u00c5s","date":"13 september 2026","format":false,"excerpt":"Utforska hoteller p\u00e5 Korfu med bilder, kartor, g\u00e4strecensioner, faciliteter och rumstyper med BNO Travel.","rel":"","context":"Liknande inl\u00e4gg","block_context":{"text":"Liknande inl\u00e4gg","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_237508290.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\/09\/AdobeStock_237508290.jpeg?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_237508290.jpeg?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_237508290.jpeg?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_237508290.jpeg?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":98329,"url":"https:\/\/bno-travel.com\/sv\/hotell-i-sarande-och-ksamil\/","url_meta":{"origin":94562,"position":3},"title":"Hotell i Sarand\u00eb och Ksamil \u2013 hitta hotell | BNO Travel","author":"Jan Terje \u00c5s","date":"13 september 2026","format":false,"excerpt":"Utforska hoteller i Sarand\u00eb och Ksamil med bilder, kartor, g\u00e4strecensioner, faciliteter och rumstyper med BNO Travel.","rel":"","context":"Liknande inl\u00e4gg","block_context":{"text":"Liknande inl\u00e4gg","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_277572266.jpeg?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_277572266.jpeg?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_277572266.jpeg?fit=1200%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_277572266.jpeg?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_277572266.jpeg?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":94564,"url":"https:\/\/bno-travel.com\/sv\/spanske-kysten\/","url_meta":{"origin":94562,"position":4},"title":"Spanska kusten","author":"Jan Terje \u00c5s","date":"2 augusti 2026","format":false,"excerpt":"Destinationer \u00b7 Den spanska kusten Boende l\u00e4ngs den spanska kusten \u2013 hitta destinationen som passar din resa Utforska handplockade semesterboenden p\u00e5 Costa Brava och Mallorca. J\u00e4mf\u00f6r tv\u00e5 olika kustdestinationer med villor, l\u00e4genheter, str\u00e4nder, byar och upplevelser \u00e5ret runt. Se destinationerna Uppt\u00e4ck den spanska kusten Hitta r\u00e4tt kustdestination Boende l\u00e4ngs den\u2026","rel":"","context":"Liknande inl\u00e4gg","block_context":{"text":"Liknande inl\u00e4gg","link":""},"img":{"alt_text":"Overnatting langs den spanske kysten","src":"https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/08\/spanske-kysten1-.jpg?fit=1200%2C692&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/08\/spanske-kysten1-.jpg?fit=1200%2C692&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/08\/spanske-kysten1-.jpg?fit=1200%2C692&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/08\/spanske-kysten1-.jpg?fit=1200%2C692&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/08\/spanske-kysten1-.jpg?fit=1200%2C692&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":98333,"url":"https:\/\/bno-travel.com\/sv\/hotell-i-tromso\/","url_meta":{"origin":94562,"position":5},"title":"Hotell i Troms\u00f8 \u2013 hitta hotell och omr\u00e5den | BNO Travel","author":"Jan Terje \u00c5s","date":"13 september 2026","format":false,"excerpt":"Hitta r\u00e4tt hotell i Troms\u00f8 Hotell i Troms\u00f8 finns i allt fr\u00e5n centrala stadshotell n\u00e4ra restauranger och hamnen till lugnare boenden n\u00e4ra flygplatsen, p\u00e5 fastlandet eller n\u00e4rmare naturen. Valet av omr\u00e5de p\u00e5verkar resan mycket eftersom bes\u00f6k i Troms\u00f8 kan se helt olika ut: vissa kommer f\u00f6r en kort cityresa, andra\u2026","rel":"","context":"Liknande inl\u00e4gg","block_context":{"text":"Liknande inl\u00e4gg","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_489871500.jpeg?fit=1200%2C743&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_489871500.jpeg?fit=1200%2C743&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_489871500.jpeg?fit=1200%2C743&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_489871500.jpeg?fit=1200%2C743&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_489871500.jpeg?fit=1200%2C743&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/bno-travel.com\/sv\/wp-json\/wp\/v2\/pages\/94562","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bno-travel.com\/sv\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bno-travel.com\/sv\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bno-travel.com\/sv\/wp-json\/wp\/v2\/users\/260013438"}],"replies":[{"embeddable":true,"href":"https:\/\/bno-travel.com\/sv\/wp-json\/wp\/v2\/comments?post=94562"}],"version-history":[{"count":2,"href":"https:\/\/bno-travel.com\/sv\/wp-json\/wp\/v2\/pages\/94562\/revisions"}],"predecessor-version":[{"id":98466,"href":"https:\/\/bno-travel.com\/sv\/wp-json\/wp\/v2\/pages\/94562\/revisions\/98466"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bno-travel.com\/sv\/wp-json\/wp\/v2\/media\/93571"}],"wp:attachment":[{"href":"https:\/\/bno-travel.com\/sv\/wp-json\/wp\/v2\/media?parent=94562"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}