{"id":95733,"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-08-11T14:05:55","modified_gmt":"2026-08-11T12:05:55","slug":"overnatting-i-zell-am-see","status":"publish","type":"page","link":"https:\/\/bno-travel.com\/pt-pt\/overnatting-i-zell-am-see\/","title":{"rendered":"Alojamento em Zell am See"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"95733\" class=\"elementor elementor-95733 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\">\r\n        Zell am See \u00b7 \u00c1ustria\r\n      <\/span>\r\n\r\n      <h1>\r\n        Alojamento em Zell am See: descobre quatro hot\u00e9is entre a montanha e o lago\r\n      <\/h1>\r\n\r\n      <p class=\"bno-lead\">\r\n        Encontra quartos, suites e apartamentos no The House Zell am See, The Gast House Zell am See, Nikolaus by AvenidA e Elements Resort Zell am See. Compara os tipos de alojamento e escolhe o que melhor se adapta \u00e0 tua viagem.\r\n      <\/p>\r\n\r\n      <div class=\"bno-actions\">\r\n        <a href=\"#enheter\" class=\"bno-btn bno-btn--primary\">\r\n          Ver quartos e apartamentos\r\n        <\/a>\r\n\r\n        <a href=\"#hotellene\" class=\"bno-btn bno-btn--secondary\">\r\n          Ver os hot\u00e9is\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-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\">\r\n        Quatro hot\u00e9is em Zell am See\r\n      <\/span>\r\n\r\n      <h2>\r\n        Escolhe o hotel e o tipo de quarto adequados \u00e0 tua estadia\r\n      <\/h2>\r\n\r\n      <p>\r\n        A oferta de alojamento em Zell am See inclui quatro hot\u00e9is Alpin Family diferentes. Descobre os hot\u00e9is e acede diretamente aos quartos, suites e apartamentos do estabelecimento que te interessa.\r\n      <\/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\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.the-house.at\/assets\/images\/6\/The-House-Sommer-Aussenansicht-517d17fd.jpg?w=800&#038;ssl=1\" alt=\"The House Zell am See\" loading=\"lazy\" \/>\r\n\r\n            <span class=\"bno-zell-hotel-card__number\">\r\n              01\r\n            <\/span>\r\n\r\n            <span class=\"bno-zell-hotel-card__badge\">\r\n              Aparthotel\r\n            <\/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>\r\n                Apartamentos e suites espa\u00e7osos numa zona central mas tranquila de Zell am See, a poucos passos do centro e do CityXpress.\r\n              <\/p>\r\n            <\/div>\r\n\r\n            <span class=\"bno-zell-hotel-card__action\">\r\n              Ver os tipos de quarto\r\n              <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\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.thegasthouse.at\/assets\/images\/6\/TGHZ_aussen_Sommer-f1116479.jpg?w=800&#038;ssl=1\" alt=\"The Gast House Zell am See\" loading=\"lazy\" \/>\r\n\r\n            <span class=\"bno-zell-hotel-card__number\">\r\n              02\r\n            <\/span>\r\n\r\n            <span class=\"bno-zell-hotel-card__badge\">\r\n              Hotel e suites\r\n            <\/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>\r\n                Quartos, est\u00fadios e suites modernos no centro, perto de Zeller See, dos meios mec\u00e2nicos e da zona de spa do hotel.\r\n              <\/p>\r\n            <\/div>\r\n\r\n            <span class=\"bno-zell-hotel-card__action\">\r\n              Ver os tipos de quarto\r\n              <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\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.nikolausbyavenida.at\/assets\/images\/d\/nikolaus-sommer-au%C3%9Fen-3d2087ab.jpg?w=800&#038;ssl=1\" alt=\"Nikolaus by AvenidA em Zell am See\" loading=\"lazy\" \/>\r\n\r\n            <span class=\"bno-zell-hotel-card__number\">\r\n              03\r\n            <\/span>\r\n\r\n            <span class=\"bno-zell-hotel-card__badge\">\r\n              Suites panor\u00e2micas\r\n            <\/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>\r\n                Quartos e suites numa zona elevada de Zell am See, com vistas panor\u00e2micas sobre a cidade, o lago e as montanhas em redor.\r\n              <\/p>\r\n            <\/div>\r\n\r\n            <span class=\"bno-zell-hotel-card__action\">\r\n              Ver os tipos de quarto\r\n              <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\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.elementsresort.at\/assets\/images\/1\/AR-Elements-Sommer-Aussen-022-min-550b73cc.jpg?w=800&#038;ssl=1\" alt=\"Elements Resort Zell am See\" loading=\"lazy\" \/>\r\n\r\n            <span class=\"bno-zell-hotel-card__number\">\r\n              04\r\n            <\/span>\r\n\r\n            <span class=\"bno-zell-hotel-card__badge\">\r\n              Resort\r\n            <\/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>\r\n                Uma estadia em resort com quartos, suites, restaurante, zona de bem-estar e proximidade ao AreitXpress.\r\n              <\/p>\r\n            <\/div>\r\n\r\n            <span class=\"bno-zell-hotel-card__action\">\r\n              Ver os tipos de quarto\r\n              <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\">Quartos e apartamentos<\/span>\r\n          <h2>The House Zell am See<\/h2>\r\n          <p>\r\n            Descobre os apartamentos, suites e penthouses dispon\u00edveis no The House Zell am See.\r\n          <\/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\">\r\n        A carregar os tipos de quarto do The House\u2026\r\n      <\/div>\r\n\r\n      <div class=\"bno-direct-catalog__grid\" data-bno-grid aria-live=\"polite\" aria-busy=\"true\"><\/div>\r\n\r\n      <div class=\"bno-direct-more-wrap\" data-bno-more-wrap hidden>\r\n        <button type=\"button\" class=\"bno-direct-more\" data-bno-more>\r\n          Mostrar mais tipos de quarto\r\n        <\/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\">Quartos, est\u00fadios e suites<\/span>\r\n          <h2>The Gast House Zell am See<\/h2>\r\n          <p>\r\n            Descobre os quartos, est\u00fadios e suites do The Gast House, desde quartos duplos a suites familiares e panor\u00e2micas mais amplas.\r\n          <\/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\">\r\n        A carregar os tipos de quarto do The Gast House\u2026\r\n      <\/div>\r\n\r\n      <div class=\"bno-direct-catalog__grid\" data-bno-grid aria-live=\"polite\" aria-busy=\"true\"><\/div>\r\n\r\n      <div class=\"bno-direct-more-wrap\" data-bno-more-wrap hidden>\r\n        <button type=\"button\" class=\"bno-direct-more\" data-bno-more>\r\n          Mostrar mais tipos de quarto\r\n        <\/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\">Quartos e suites panor\u00e2micas<\/span>\r\n          <h2>Nikolaus by AvenidA<\/h2>\r\n          <p>\r\n            Descobre quartos e suites de estilo alpino contempor\u00e2neo, com vistas panor\u00e2micas e comodidades privadas de bem-estar.\r\n          <\/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\">\r\n        A carregar os tipos de quarto do Nikolaus by AvenidA\u2026\r\n      <\/div>\r\n\r\n      <div class=\"bno-direct-catalog__grid\" data-bno-grid aria-live=\"polite\" aria-busy=\"true\"><\/div>\r\n\r\n      <div class=\"bno-direct-more-wrap\" data-bno-more-wrap hidden>\r\n        <button type=\"button\" class=\"bno-direct-more\" data-bno-more>\r\n          Mostrar mais tipos de quarto\r\n        <\/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\">Quartos, suites e penthouses<\/span>\r\n          <h2>Elements Resort Zell am See<\/h2>\r\n          <p>\r\n            Descobre quartos duplos, suites e penthouses espa\u00e7osas no Elements Resort Zell am See.\r\n          <\/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\">\r\n        A carregar os tipos de quarto do Elements Resort\u2026\r\n      <\/div>\r\n\r\n      <div class=\"bno-direct-catalog__grid\" data-bno-grid aria-live=\"polite\" aria-busy=\"true\"><\/div>\r\n\r\n      <div class=\"bno-direct-more-wrap\" data-bno-more-wrap hidden>\r\n        <button type=\"button\" class=\"bno-direct-more\" data-bno-more>\r\n          Mostrar mais tipos de quarto\r\n        <\/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 \"pt\";\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(\"pt-PT\", {\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(\"pt-PT\", {\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        ]) || \"Alojamento de f\u00e9rias\"\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\", \"Feriebolig i \" + destinationLabel);\r\n\r\n    modal.innerHTML = `\r\n      <button type=\"button\" class=\"bno-direct-modal__backdrop\" data-bno-close aria-label=\"Lukk\"><\/button>\r\n      <div class=\"bno-direct-modal__dialog\">\r\n        <button type=\"button\" class=\"bno-direct-modal__close\" data-bno-close aria-label=\"Lukk\">\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=\"Forrige bilde\">\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=\"Neste bilde\">\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\">Verifica a tua estadia<\/span>\r\n              <h4>Verifica se o alojamento de f\u00e9rias est\u00e1 dispon\u00edvel<\/h4>\r\n            <\/div>\r\n            <form class=\"bno-direct-form\" data-bno-availability-form novalidate>\r\n              <label>\r\n                <span>Check-in<\/span>\r\n                <input type=\"date\" data-bno-checkin required \/>\r\n              <\/label>\r\n              <label>\r\n                <span>Partida<\/span>\r\n                <input type=\"date\" data-bno-checkout required \/>\r\n              <\/label>\r\n              <label>\r\n                <span>H\u00f3spedes<\/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>Verificar disponibilidade<\/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>Pre\u00e7o total da estadia<\/span>\r\n                <strong data-bno-total><\/strong>\r\n              <\/div>\r\n              <div class=\"bno-direct-price__row\">\r\n                <span>A pagar agora \u00e0 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>Valor restante a pagar ao alojamento<\/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>Continuar para a reserva<\/button>\r\n              <p>Os dados dos h\u00f3spedes, as condi\u00e7\u00f5es e o pagamento s\u00e3o conclu\u00eddos no motor de reservas seguro da BNO Travel.<\/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            : \"N\u00e3o foi poss\u00edvel concluir o pedido.\"\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 || \"destino\"\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 = \"Falta a configura\u00e7\u00e3o necess\u00e1ria para o Bulk 3.\";\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 h\u00f3spedesInput = 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        ? \"At\u00e9 \" + unit.capacity + \" h\u00f3spedes\"\r\n        : \"Ver detalhes e fotografias\";\r\n      const description = unit.description ||\r\n        \"Consulta as fotografias, a capacidade e a disponibilidade deste alojamento de f\u00e9rias.\";\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} fotografias<\/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\">Ver alojamento \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        \"A mostrar \" + visible.length + \" de \" + units.length +\r\n        \" alojamentos de f\u00e9rias em \" + 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 fotografia \" + (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        ? \"At\u00e9 \" + unit.capacity + \" h\u00f3spedes\"\r\n        : \"\";\r\n      modalDescription.textContent = unit.description ||\r\n        \"Verifica a disponibilidade e o pre\u00e7o deste alojamento de f\u00e9rias.\";\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      h\u00f3spedesInput.max = String(unit.capacity > 0 ? unit.capacity : 20);\r\n      h\u00f3spedesInput.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, \"pt\", { 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            \"N\u00e3o foi poss\u00edvel carregar os alojamentos de f\u00e9rias publicados neste momento.\",\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          \"N\u00e3o foi poss\u00edvel carregar os alojamentos de f\u00e9rias. Tenta atualizar a p\u00e1gina.\",\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(\"Seleciona datas v\u00e1lidas. O check-out tem de ser posterior ao check-in.\", \"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          \"A estadia m\u00ednima \u00e9 de \" + minimumStayNights +\r\n          (minimumStayNights === 1 ? \" noite.\" : \" noites.\"),\r\n          \"error\"\r\n        );\r\n        return;\r\n      }\r\n\r\n      if (!Number.isInteger(adults) || adults < 1) {\r\n        setMessage(\"Seleciona um n\u00famero v\u00e1lido de h\u00f3spedes.\", \"error\");\r\n        return;\r\n      }\r\n\r\n      if (currentUnit.capacity > 0 && adults > currentUnit.capacity) {\r\n        setMessage(\r\n          \"Este alojamento de f\u00e9rias tem capacidade para at\u00e9 \" +\r\n          currentUnit.capacity + \" h\u00f3spedes.\",\r\n          \"error\"\r\n        );\r\n        return;\r\n      }\r\n\r\n      checkButton.disabled = true;\r\n      checkButton.textContent = \"A verificar\u2026\";\r\n      setMessage(\"A verificar disponibilidade e pre\u00e7o\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(\"N\u00e3o foi poss\u00edvel obter o pre\u00e7o total.\");\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          \"O alojamento de f\u00e9rias est\u00e1 dispon\u00edvel de \" + formatDate(from) +\r\n          \" a \" + 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          : \"N\u00e3o foi poss\u00edvel verificar a disponibilidade. Tenta novamente.\";\r\n\r\n        if (code === \"booking_not_open\") {\r\n          message = \"As reservas ainda n\u00e3o est\u00e3o abertas para este destino.\";\r\n        } else if (code === \"not_available\") {\r\n          message = \"O alojamento de f\u00e9rias n\u00e3o est\u00e1 dispon\u00edvel no per\u00edodo selecionado.\";\r\n        }\r\n\r\n        setMessage(message, \"error\");\r\n      } finally {\r\n        checkButton.disabled = false;\r\n        checkButton.textContent = \"Verificar disponibilidade\";\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    h\u00f3spedesInput.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\">\r\n          Experi\u00eancias em Zell am See\r\n        <\/span>\r\n\r\n        <h2>\r\n          Montanha, lago e f\u00e9rias ativas durante todo o ano\r\n        <\/h2>\r\n\r\n        <p>\r\n          Zell am See combina um ambiente urbano animado com a proximidade do lago, das montanhas e de uma oferta variada de atividades. \u00c9 uma excelente base tanto para f\u00e9rias ativas como para estadias mais tranquilas.\r\n        <\/p>\r\n\r\n        <p>\r\n          No inverno, a regi\u00e3o convida ao esqui e a experi\u00eancias na neve, enquanto no ver\u00e3o oferece caminhadas, ciclismo, banhos e atividades em redor do lago. Restaurantes, lojas e servi\u00e7os tornam f\u00e1cil combinar estas experi\u00eancias com dias confort\u00e1veis na cidade.\r\n        <\/p>\r\n\r\n        <div class=\"bno-actions\">\r\n          <a href=\"#fakta\" class=\"bno-btn bno-btn--primary\">\r\n            Ver as informa\u00e7\u00f5es pr\u00e1ticas\r\n          <\/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=\"Montanha, lago e experi\u00eancias de f\u00e9rias em 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\">\r\n        Informa\u00e7\u00f5es pr\u00e1ticas\r\n      <\/span>\r\n\r\n      <h2>\r\n        Atividades, transportes e informa\u00e7\u00f5es \u00fateis em Zell am See\r\n      <\/h2>\r\n\r\n      <p>\r\n        Aqui tens uma breve vis\u00e3o geral das possibilidades que tornam Zell am See um destino atrativo em diferentes \u00e9pocas do ano.\r\n      <\/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>Experi\u00eancias de inverno<\/h3>\r\n\r\n        <p>\r\n          No inverno, Zell am See \u00e9 um excelente ponto de partida para esquiar, praticar atividades de inverno e descobrir as montanhas em redor da cidade. A oferta e os hor\u00e1rios de funcionamento variam ao longo da \u00e9poca.\r\n        <\/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>Atividades de ver\u00e3o<\/h3>\r\n\r\n        <p>\r\n          O ver\u00e3o oferece muitas possibilidades para caminhadas e ciclismo, banhos, passeios de barco e dias tranquilos junto ao lago ou nas montanhas.\r\n        <\/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>Transportes<\/h3>\r\n\r\n        <p>\r\n          Zell am See disp\u00f5e de boas liga\u00e7\u00f5es na regi\u00e3o e tem um centro compacto. Confirma sempre os hor\u00e1rios atualizados e os servi\u00e7os sazonais antes de partir.\r\n        <\/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>Lojas e servi\u00e7os<\/h3>\r\n\r\n        <p>\r\n          No centro e arredores encontras supermercados, lojas de desporto, farm\u00e1cias e outros servi\u00e7os \u00fateis durante a estadia.\r\n        <\/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>Restaurantes<\/h3>\r\n\r\n        <p>\r\n          A cidade oferece restaurantes, caf\u00e9s e outros espa\u00e7os onde comer, perfeitos para combinar dias ativos com refei\u00e7\u00f5es agrad\u00e1veis.\r\n        <\/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>Estadias durante todo o ano<\/h3>\r\n\r\n        <p>\r\n          A combina\u00e7\u00e3o de montanhas, lago, centro urbano e diferentes conceitos hoteleiros torna Zell am See adequada tanto para escapadinhas curtas como para f\u00e9rias mais longas.\r\n        <\/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\">\r\n          Pr\u00f3ximo passo\r\n        <\/span>\r\n\r\n        <h2>\r\n          Encontra o hotel e o tipo de quarto adequados em Zell am See\r\n        <\/h2>\r\n\r\n        <p>\r\n          Compara os quartos, suites e apartamentos do The House, The Gast House, Nikolaus by AvenidA e Elements Resort Zell am See.\r\n        <\/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>Ver quartos e apartamentos<\/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 \u00c1ustria Alojamento em Zell am See: descobre quatro hot\u00e9is entre a montanha e o lago Encontra quartos, suites e apartamentos no The House Zell am See, The Gast House Zell am See, Nikolaus by AvenidA e Elements Resort Zell am See. Compara os tipos de alojamento e escolhe o que melhor [&hellip;]<\/p>\n","protected":false},"author":260013438,"featured_media":0,"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":""},"class_list":["post-95733","page","type-page","status-publish","hentry"],"jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/PgDuwj-oU5","jetpack-related-posts":[{"id":94643,"url":"https:\/\/bno-travel.com\/fi\/overnatting-i-de-osterrikske-alper\/","url_meta":{"origin":95733,"position":0},"title":"It\u00e4vallan Alpit","author":"Jan Terje \u00c5s","date":"29 de Julho, 2026","format":false,"excerpt":"Kohteet \u00b7 It\u00e4vallan Alpit Majoitus It\u00e4vallan Alpeilla \u2013 l\u00f6yd\u00e4 matkallesi sopiva kohde Majoitus It\u00e4vallan Alpeilla tuo sinut l\u00e4helle alppikyli\u00e4, laskettelualueita, j\u00e4rvi\u00e4 ja upeita vuoristoel\u00e4myksi\u00e4. Tutustu Kapruniin ja muihin kohteisiimme ja l\u00f6yd\u00e4 majoitus, joka sopii sek\u00e4 talvilomalle ett\u00e4 aktiivisiin kes\u00e4p\u00e4iviin. N\u00e4yt\u00e4 kohteet Tutustu It\u00e4vallan Alppeihin L\u00f6yd\u00e4 sopiva vuoristokohde L\u00f6yd\u00e4 majoitus It\u00e4vallan\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":94610,"url":"https:\/\/bno-travel.com\/fi\/overnatting-i-zell-am-see\/","url_meta":{"origin":95733,"position":1},"title":"Majoitus Zell am Seess\u00e4","author":"Jan Terje \u00c5s","date":"3 de Agosto, 2026","format":false,"excerpt":"Zell am See \u00b7 It\u00e4valta Majoitus Zell am Seess\u00e4 \u2013 tutustu nelj\u00e4\u00e4n hotelliin vuorten ja j\u00e4rven \u00e4\u00e4rell\u00e4 L\u00f6yd\u00e4 huoneita, sviittej\u00e4 ja huoneistoja hotelleista The House Zell am See, The Gast House Zell am See, Nikolaus by AvenidA ja Elements Resort Zell am See. Vertaile huonetyyppej\u00e4 ja l\u00f6yd\u00e4 matkallesi sopiva majoitus.\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":94639,"url":"https:\/\/bno-travel.com\/fi\/overnatting-i-kaprun\/","url_meta":{"origin":95733,"position":2},"title":"Kaprun","author":"Jan Terje \u00c5s","date":"30 de Julho, 2026","format":false,"excerpt":"Kaprun \u00b7 It\u00e4valta Majoitus Kaprunissa AvenidA Panorama Suites -hotellissa Majoitu AvenidA Panorama Suites Kaprunissa, jossa on moderneja huoneita, sviittej\u00e4 ja huoneistoja, panoraaman\u00e4kym\u00e4t vuorille sek\u00e4 erinomainen tukikohta lasketteluun, patikointiin ja ymp\u00e4rivuotisiin el\u00e4myksiin. N\u00e4yt\u00e4 huoneet ja sviitit N\u00e4yt\u00e4 kartta Kolme hotellia Kaprunissa Valitse oleskeluusi sopiva hotelli ja huonetyyppi Tutustu kolmeen erilaiseen Alpin\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":94641,"url":"https:\/\/bno-travel.com\/fi\/overnatting-i-de-sveitsiske-alper\/","url_meta":{"origin":95733,"position":3},"title":"Sveitsin Alpit","author":"Jan Terje \u00c5s","date":"29 de Julho, 2026","format":false,"excerpt":"Kohteet \u00b7 Sveitsin Alpit Majoitus Sveitsin Alpeilla \u2013 l\u00f6yd\u00e4 matkallesi sopiva kohde Tutustu Verbieriin ja Sveitsin houkutteleviin vuoristoalueisiin. L\u00f6yd\u00e4 majoitus l\u00e4hell\u00e4 perinteisi\u00e4 alppikyli\u00e4, korkeita vuoria, laskettelualueita ja upeita luontoel\u00e4myksi\u00e4 ymp\u00e4ri vuoden. N\u00e4yt\u00e4 kohteet Tutustu Sveitsin Alppeihin L\u00f6yd\u00e4 sopiva vuoristokohde L\u00f6yd\u00e4 majoitus Sveitsin Alpeilta Sveitsin Alpit koostuvat luonteeltaan, sijainniltaan ja tunnelmaltaan\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":94322,"url":"https:\/\/bno-travel.com\/fi\/overnatting\/","url_meta":{"origin":95733,"position":4},"title":"Majoitus Trysiliss\u00e4 &#038; S\u00e4leniss\u00e4","author":"Jan Terje \u00c5s","date":"11 de Julho, 2025","format":false,"excerpt":"Majoitus Trysiliss\u00e4, S\u00e4leniss\u00e4 ja Sunnm\u00f8re-alueella L\u00f6yd\u00e4 matkallesi sopiva majoitus \u2013 tunturilomasta vuonojen l\u00e4heisiin luontoel\u00e4myksiin BNO Travel tarjoaa laadukkaasti valittua majoitusta kohteissa Trysil, S\u00e4len, Stranda, Strandafjellet, Hornindal ja Fjells\u00e6tra. Valikoimasta l\u00f6yd\u00e4t m\u00f6kkej\u00e4, huoneistoja ja majoituksia, joiden avulla mukavuus, aktiviteetit ja ymp\u00e4rivuotiset el\u00e4mykset on helppo yhdist\u00e4\u00e4 joissakin Skandinavian houkuttelevimmista tunturi- ja luontokohteista.\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":94617,"url":"https:\/\/bno-travel.com\/fi\/costa-brava\/","url_meta":{"origin":95733,"position":5},"title":"Costa Brava","author":"Jan Terje \u00c5s","date":"2 de Agosto, 2026","format":false,"excerpt":"Costa Brava \u00b7 Katalonia \u00b7 Espanja Majoitus Costa Bravalla \u2013 l\u00f6yd\u00e4 matkallesi sopiva loma-asunto Tutustu k\u00e4sin valittuihin huviloihin, loma-asuntoihin ja huoneistoihin Costa Bravalla. L\u00f6yd\u00e4 mukava tukikohta rantael\u00e4m\u00e4lle, pienille rannikkokaupungeille, gastronomialle ja Katalonian el\u00e4myksille. N\u00e4yt\u00e4 loma-asunnot N\u00e4yt\u00e4 kartta L\u00f6yd\u00e4 majoitus Costa Bravalta Majoitus Costa Bravalla tarjoaa erinomaisen tukikohdan rentoihin p\u00e4iviin V\u00e4limeren\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/bno-travel.com\/pt-pt\/wp-json\/wp\/v2\/pages\/95733","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bno-travel.com\/pt-pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bno-travel.com\/pt-pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bno-travel.com\/pt-pt\/wp-json\/wp\/v2\/users\/260013438"}],"replies":[{"embeddable":true,"href":"https:\/\/bno-travel.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=95733"}],"version-history":[{"count":5,"href":"https:\/\/bno-travel.com\/pt-pt\/wp-json\/wp\/v2\/pages\/95733\/revisions"}],"predecessor-version":[{"id":95765,"href":"https:\/\/bno-travel.com\/pt-pt\/wp-json\/wp\/v2\/pages\/95733\/revisions\/95765"}],"wp:attachment":[{"href":"https:\/\/bno-travel.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=95733"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}