{"id":97987,"date":"2026-09-11T17:57:06","date_gmt":"2026-09-11T15:57:06","guid":{"rendered":"https:\/\/bno-travel.com\/hotel-i-dubai\/"},"modified":"2026-09-15T15:32:21","modified_gmt":"2026-09-15T13:32:21","slug":"hotel-i-dubai","status":"publish","type":"page","link":"https:\/\/bno-travel.com\/is\/hotel-i-dubai\/","title":{"rendered":"H\u00f3tel \u00ed D\u00faba\u00ed \u2013 finndu h\u00f3tel og sv\u00e6\u00f0i | BNO Travel"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"97987\" class=\"elementor elementor-97987 elementor-97229\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fdce33a e-flex e-con-boxed e-con e-parent\" data-id=\"fdce33a\" 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-c61e35b elementor-widget elementor-widget-html\" data-id=\"c61e35b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n  .bno-dubai-page,\r\n  .bno-dubai-page * {\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  .bno-dubai-page {\r\n    --bno-navy: #0C1A38;\r\n    --bno-blue: #1769aa;\r\n    --bno-soft: #f4f7fb;\r\n    --bno-border: #dfe5ed;\r\n    --bno-text: #202938;\r\n    --bno-muted: #5c687b;\r\n    --bno-radius: 22px;\r\n  }\r\n\r\n  .bno-dubai-page .bno-shell {\r\n    width: min(1180px, calc(100% - 36px));\r\n    margin: 0 auto;\r\n  }\r\n\r\n  .bno-dubai-page .bno-section {\r\n    padding: 76px 0;\r\n  }\r\n\r\n  .bno-dubai-page .bno-section--soft {\r\n    background: #f5f7fa;\r\n  }\r\n\r\n  .bno-dubai-page .bno-section--light {\r\n    background: #fff;\r\n  }\r\n\r\n  .bno-dubai-page .bno-eyebrow {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    gap: 8px;\r\n    margin-bottom: 14px;\r\n    font-size: 13px;\r\n    line-height: 1.2;\r\n    font-weight: 700;\r\n    letter-spacing: .04em;\r\n    text-transform: uppercase;\r\n    color: #1769aa;\r\n  }\r\n\r\n  .bno-dubai-page .bno-section-heading {\r\n    max-width: 760px;\r\n    margin-bottom: 38px;\r\n  }\r\n\r\n  .bno-dubai-page .bno-section-heading h2 {\r\n    margin: 0 0 15px;\r\n    font-size: clamp(30px, 4vw, 46px);\r\n    line-height: 1.08;\r\n    color: #182238;\r\n  }\r\n\r\n  .bno-dubai-page .bno-section-heading p {\r\n    margin: 0;\r\n    font-size: 17px;\r\n    line-height: 1.7;\r\n    color: var(--bno-muted);\r\n  }\r\n\r\n  .bno-dubai-page .bno-actions {\r\n    display: flex;\r\n    flex-wrap: wrap;\r\n    gap: 12px;\r\n    margin-top: 26px;\r\n  }\r\n\r\n  .bno-dubai-page .bno-btn {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    min-height: 52px;\r\n    padding: 0 22px;\r\n    border-radius: 12px;\r\n    text-decoration: none;\r\n    font-weight: 700;\r\n    transition: .2s ease;\r\n  }\r\n\r\n  .bno-dubai-page .bno-btn--primary {\r\n    color: #fff;\r\n    background: var(--bno-navy);\r\n    border: 1px solid var(--bno-navy);\r\n  }\r\n\r\n  .bno-dubai-page .bno-btn--primary:hover {\r\n    transform: translateY(-1px);\r\n    opacity: .94;\r\n  }\r\n\r\n  .bno-dubai-page .bno-btn--secondary {\r\n    color: var(--bno-navy);\r\n    background: rgba(255,255,255,.96);\r\n    border: 1px solid rgba(12,26,56,.22);\r\n  }\r\n\r\n  \/* HERO *\/\r\n  .bno-dubai-hero {\r\n    position: relative;\r\n    min-height: 590px;\r\n    display: flex;\r\n    align-items: flex-end;\r\n    overflow: hidden;\r\n    color: #fff;\r\n    background:\r\n      radial-gradient(circle at 78% 25%, rgba(29,181,220,.55), transparent 34%),\r\n      radial-gradient(circle at 65% 80%, rgba(237,166,77,.25), transparent 36%),\r\n      linear-gradient(135deg, #0b2c52 0%, #0C1A38 54%, #10294d 100%);\r\n  }\r\n\r\n  \/*\r\n    N\u00e5r du har URL-en til Dubai-bildet du allerede bruker,\r\n    legg den inn som et ekstra background-image her.\r\n  *\/\r\n\r\n  .bno-dubai-hero::after {\r\n    content: \"\";\r\n    position: absolute;\r\n    inset: 0;\r\n    background:\r\n      linear-gradient(90deg, rgba(5,14,31,.70) 0%, rgba(5,14,31,.37) 55%, rgba(5,14,31,.12) 100%);\r\n    pointer-events: none;\r\n  }\r\n\r\n  .bno-dubai-hero .bno-shell {\r\n    position: relative;\r\n    z-index: 2;\r\n  }\r\n\r\n  .bno-dubai-hero__content {\r\n    max-width: 800px;\r\n    padding: 110px 0 76px;\r\n  }\r\n\r\n  .bno-dubai-hero .bno-eyebrow {\r\n    color: #fff;\r\n    background: rgba(255,255,255,.14);\r\n    border: 1px solid rgba(255,255,255,.25);\r\n    backdrop-filter: blur(8px);\r\n    padding: 9px 13px;\r\n    border-radius: 999px;\r\n  }\r\n\r\n  .bno-dubai-hero h1 {\r\n    margin: 7px 0 20px;\r\n    max-width: 830px;\r\n    font-size: clamp(42px, 6vw, 72px);\r\n    line-height: .99;\r\n    letter-spacing: -.025em;\r\n    color: #fff;\r\n  }\r\n\r\n  .bno-dubai-hero .bno-lead {\r\n    margin: 0;\r\n    max-width: 690px;\r\n    font-size: clamp(18px, 2vw, 21px);\r\n    line-height: 1.6;\r\n    color: rgba(255,255,255,.92);\r\n  }\r\n\r\n  .bno-dubai-hero .bno-btn--primary {\r\n    background: #fff;\r\n    color: var(--bno-navy);\r\n    border-color: #fff;\r\n  }\r\n\r\n  .bno-dubai-hero .bno-btn--secondary {\r\n    background: rgba(12,26,56,.35);\r\n    color: #fff;\r\n    border-color: rgba(255,255,255,.42);\r\n    backdrop-filter: blur(8px);\r\n  }\r\n\r\n  \/* INTRO *\/\r\n  .bno-dubai-intro__grid {\r\n    display: grid;\r\n    grid-template-columns: 1.35fr .65fr;\r\n    gap: 54px;\r\n    align-items: start;\r\n  }\r\n\r\n  .bno-dubai-intro__text p {\r\n    margin: 0 0 18px;\r\n    font-size: 17px;\r\n    line-height: 1.75;\r\n    color: var(--bno-muted);\r\n  }\r\n\r\n  .bno-dubai-highlights {\r\n    display: grid;\r\n    gap: 12px;\r\n  }\r\n\r\n  .bno-dubai-highlight {\r\n    padding: 20px;\r\n    background: var(--bno-soft);\r\n    border: 1px solid var(--bno-border);\r\n    border-radius: 16px;\r\n  }\r\n\r\n  .bno-dubai-highlight strong {\r\n    display: block;\r\n    color: var(--bno-navy);\r\n    margin-bottom: 5px;\r\n    font-size: 16px;\r\n  }\r\n\r\n  .bno-dubai-highlight span {\r\n    color: var(--bno-muted);\r\n    line-height: 1.5;\r\n  }\r\n\r\n  \/* GENERELLE KORT *\/\r\n  .bno-dubai-info-grid {\r\n    display: grid;\r\n    grid-template-columns: repeat(3, 1fr);\r\n    gap: 18px;\r\n  }\r\n\r\n  .bno-dubai-info-card {\r\n    padding: 26px;\r\n    border: 1px solid var(--bno-border);\r\n    border-radius: 18px;\r\n    background: #fff;\r\n  }\r\n\r\n  .bno-dubai-info-card h3 {\r\n    margin: 0 0 11px;\r\n    font-size: 20px;\r\n    color: var(--bno-navy);\r\n  }\r\n\r\n  .bno-dubai-info-card p {\r\n    margin: 0;\r\n    color: var(--bno-muted);\r\n    line-height: 1.65;\r\n  }\r\n\r\n  \/* EDITORIAL *\/\r\n  .bno-dubai-editorial {\r\n    display: grid;\r\n    grid-template-columns: 1fr 1fr;\r\n    gap: 50px;\r\n    align-items: center;\r\n  }\r\n\r\n  .bno-dubai-editorial__content p {\r\n    color: var(--bno-muted);\r\n    font-size: 17px;\r\n    line-height: 1.72;\r\n  }\r\n\r\n  .bno-dubai-editorial__media {\r\n    min-height: 460px;\r\n    border-radius: 24px;\r\n    overflow: hidden;\r\n    background:\r\n      radial-gradient(circle at 70% 25%, #33b8d8 0%, transparent 38%),\r\n      linear-gradient(145deg, #0f4774, #0C1A38);\r\n    display: flex;\r\n    align-items: flex-end;\r\n    padding: 28px;\r\n  }\r\n\r\n  .bno-dubai-editorial__media span {\r\n    color: #fff;\r\n    font-size: 28px;\r\n    font-weight: 750;\r\n  }\r\n\r\n  \/* CTA *\/\r\n  .bno-dubai-cta-box {\r\n    display: grid;\r\n    grid-template-columns: 1fr auto;\r\n    gap: 30px;\r\n    align-items: center;\r\n    padding: 40px;\r\n    background: var(--bno-navy);\r\n    border-radius: 24px;\r\n    color: #fff;\r\n  }\r\n\r\n  .bno-dubai-cta-box h2 {\r\n    margin: 4px 0 12px;\r\n    color: #fff;\r\n    font-size: clamp(28px, 4vw, 42px);\r\n  }\r\n\r\n  .bno-dubai-cta-box p {\r\n    margin: 0;\r\n    max-width: 720px;\r\n    color: rgba(255,255,255,.78);\r\n    line-height: 1.6;\r\n  }\r\n\r\n  .bno-dubai-cta-box .bno-eyebrow {\r\n    color: #8bd8ef;\r\n  }\r\n\r\n  .bno-dubai-cta-box .bno-btn--primary {\r\n    background: #fff;\r\n    color: var(--bno-navy);\r\n    border-color: #fff;\r\n    white-space: nowrap;\r\n  }\r\n\r\n  @media (max-width: 900px) {\r\n    .bno-dubai-page .bno-section {\r\n      padding: 58px 0;\r\n    }\r\n\r\n    .bno-dubai-intro__grid,\r\n    .bno-dubai-editorial,\r\n    .bno-dubai-cta-box {\r\n      grid-template-columns: 1fr;\r\n    }\r\n\r\n    .bno-dubai-info-grid {\r\n      grid-template-columns: repeat(2, 1fr);\r\n    }\r\n\r\n    .bno-dubai-hero {\r\n      min-height: 520px;\r\n    }\r\n  }\r\n\r\n  @media (max-width: 620px) {\r\n    .bno-dubai-page .bno-shell {\r\n      width: min(100% - 24px, 1180px);\r\n    }\r\n\r\n    .bno-dubai-info-grid {\r\n      grid-template-columns: 1fr;\r\n    }\r\n\r\n    .bno-dubai-hero__content {\r\n      padding: 90px 0 52px;\r\n    }\r\n\r\n    .bno-dubai-cta-box {\r\n      padding: 28px 22px;\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<div class=\"bno-dubai-page\">\r\n\r\n<section class=\"bno-dubai-hero\">\r\n  <div class=\"bno-shell\">\r\n\r\n    <div class=\"bno-dubai-hero__content\">\r\n\r\n      <span class=\"bno-eyebrow\">\r\n        D\u00faba\u00ed \u00b7 Sameinu\u00f0u arab\u00edsku furstad\u00e6min\r\n      <\/span>\r\n\r\n      <h1>\r\n        H\u00f3tel \u00ed D\u00faba\u00ed \u2013 finndu dv\u00f6lina sem hentar fer\u00f0inni \u00feinni\r\n      <\/h1>\r\n\r\n      <p class=\"bno-lead\">\r\n        Sko\u00f0a\u00f0u h\u00f3tel fr\u00e1 Downtown Dubai og Business Bay til Dubai Marina, Jumeirah og sv\u00e6\u00f0anna \u00ed kringum Dubai Creek. Kynntu \u00fe\u00e9r h\u00f3telin, herbergistegundirnar og sta\u00f0setninguna \u00e1\u00f0ur en b\u00f3kanir opna hj\u00e1 BNO Travel.\r\n      <\/p>\r\n\r\n      <div class=\"bno-actions\">\r\n        <a href=\"#hoteller\" class=\"bno-btn bno-btn--primary\">\r\n          Sko\u00f0a h\u00f3telin\r\n        <\/a>\r\n\r\n        <a href=\"#omrader\" class=\"bno-btn bno-btn--secondary\">\r\n          Sko\u00f0a D\u00faba\u00ed\r\n        <\/a>\r\n      <\/div>\r\n\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fdf128e elementor-widget elementor-widget-html\" data-id=\"fdf128e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"bno-section bno-section--light bno-dubai-intro\">\r\n  <div class=\"bno-shell\">\r\n\r\n    <div class=\"bno-dubai-intro__grid\">\r\n\r\n      <div class=\"bno-dubai-intro__text\">\r\n\r\n        <span class=\"bno-eyebrow\">\r\n          Gisting \u00ed D\u00faba\u00ed\r\n        <\/span>\r\n\r\n        <div class=\"bno-section-heading\">\r\n          <h2>\r\n            Fr\u00e1 st\u00f3rborgarl\u00edfi og verslunum til stranda og dvalarsta\u00f0a\r\n          <\/h2>\r\n        <\/div>\r\n\r\n        <p>\r\n          D\u00faba\u00ed skiptist \u00ed m\u00f6rg \u00f3l\u00edk sv\u00e6\u00f0i og val \u00e1 gistista\u00f0 hefur mikil \u00e1hrif \u00e1 upplifunina. Downtown Dubai og Business Bay henta vel \u00feeim sem vilja n\u00fat\u00edmalegt st\u00f3rborgarl\u00edf, veitingasta\u00f0i og \u00feekkta \u00e1hugaver\u00f0a sta\u00f0i \u00ed n\u00e1grenninu, en Dubai Marina og Jumeirah bj\u00f3\u00f0a styttri lei\u00f0 a\u00f0 str\u00f6nd, g\u00f6ngusv\u00e6\u00f0i og strandl\u00edfi.\r\n        <\/p>\r\n\r\n        <p>\r\n          BNO Travel b\u00fd\u00f0ur upp \u00e1 breitt \u00farval h\u00f3tela og \u00edb\u00fa\u00f0ah\u00f3tela \u00ed D\u00faba\u00ed. \u00de\u00fa getur sko\u00f0a\u00f0 valkostina, bori\u00f0 saman sta\u00f0setningu og uppl\u00fdsingar um h\u00f3telin og s\u00e9\u00f0 tilt\u00e6kar herbergistegundir \u00e1\u00f0ur en full b\u00f3kunarlausn opnar.\r\n        <\/p>\r\n\r\n      <\/div>\r\n\r\n      <div class=\"bno-dubai-highlights\">\r\n\r\n        <div class=\"bno-dubai-highlight\">\r\n          <strong>Borg og str\u00f6nd<\/strong>\r\n          <span>\r\n            Sameina\u00f0u verslanir, veitingasta\u00f0i og \u00e1hugaver\u00f0a sta\u00f0i vi\u00f0 strandl\u00edf og afslappandi daga vi\u00f0 sj\u00f3inn.\r\n          <\/span>\r\n        <\/div>\r\n\r\n        <div class=\"bno-dubai-highlight\">\r\n          <strong>Fj\u00f6lbreytt sv\u00e6\u00f0i<\/strong>\r\n          <span>\r\n            Veldu me\u00f0al annars \u00e1 milli Downtown, Business Bay, Dubai Marina, Jumeirah og Dubai Creek.\r\n          <\/span>\r\n        <\/div>\r\n\r\n        <div class=\"bno-dubai-highlight\">\r\n          <strong>H\u00f3tel fyrir \u00f3l\u00edkar fer\u00f0ir<\/strong>\r\n          <span>\r\n            Finndu valkosti fyrir p\u00f6r, fj\u00f6lskyldur, vi\u00f0skiptafer\u00f0ir og lengri dv\u00f6l.\r\n          <\/span>\r\n        <\/div>\r\n\r\n      <\/div>\r\n\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6d483d7 elementor-widget elementor-widget-html\" data-id=\"6d483d7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section id=\"hoteller\" class=\"bno-section bno-section--soft bno-stays-preview\" data-bno-stays-preview data-api-base=\"https:\/\/bno-api-duffel-staging.onrender.com\" data-destination=\"dubai\" data-lang=\"is\" data-initial-count=\"12\" data-page-size=\"200\">\r\n  <div class=\"bno-shell\">\r\n\r\n    <div class=\"bno-section-heading\">\r\n      <span class=\"bno-eyebrow\">\r\n        H\u00f3tel \u00ed D\u00faba\u00ed\r\n      <\/span>\r\n\r\n      <h2>\r\n        Finndu h\u00f3teli\u00f0 sem hentar dv\u00f6linni \u00feinni\r\n      <\/h2>\r\n\r\n      <p>\r\n        Sko\u00f0a\u00f0u h\u00f3tel \u00ed D\u00faba\u00ed og sj\u00e1\u00f0u myndir, sta\u00f0setningu, uppl\u00fdsingar um h\u00f3telin og umsagnir gesta. Fleiri uppl\u00fdsingar og b\u00f3kunarm\u00f6guleikar ver\u00f0a \u00ed bo\u00f0i flj\u00f3tlega.\r\n      <\/p>\r\n    <\/div>\r\n\r\n\r\n    <!-- FILTERS -->\r\n\r\n    <div class=\"bno-stays-toolbar\">\r\n\r\n      <div class=\"bno-stays-count\" data-result-count aria-live=\"polite\">\r\n        Hle\u00f0ur inn h\u00f3telum \u2026\r\n      <\/div>\r\n\r\n\r\n      <div class=\"bno-stays-filters\">\r\n\r\n        <label class=\"bno-stays-field\">\r\n          <span>Leita a\u00f0 h\u00f3teli<\/span>\r\n\r\n          <input\r\n            type=\"search\"\r\n            placeholder=\"Heiti h\u00f3tels e\u00f0a sv\u00e6\u00f0i\"\r\n            autocomplete=\"off\"\r\n            data-hotel-search\r\n          >\r\n        <\/label>\r\n\r\n\r\n        <label class=\"bno-stays-field\" data-area-field>\r\n          <span>Sv\u00e6\u00f0i<\/span>\r\n\r\n          <select data-area-filter>\r\n            <option value=\"\">\r\n              \u00d6ll sv\u00e6\u00f0i\r\n            <\/option>\r\n          <\/select>\r\n        <\/label>\r\n\r\n\r\n        <label class=\"bno-stays-field\">\r\n          <span>Stj\u00f6rnur<\/span>\r\n\r\n          <select data-star-filter>\r\n            <option value=\"\">\r\n              Allar\r\n            <\/option>\r\n\r\n            <option value=\"5\">\r\n              5 stj\u00f6rnur\r\n            <\/option>\r\n\r\n            <option value=\"4\">\r\n              4 stj\u00f6rnur e\u00f0a fleiri\r\n            <\/option>\r\n\r\n            <option value=\"3\">\r\n              3 stj\u00f6rnur e\u00f0a fleiri\r\n            <\/option>\r\n          <\/select>\r\n        <\/label>\r\n\r\n      <\/div>\r\n\r\n\r\n      <!-- MOBILE LIST \/ MAP -->\r\n\r\n      <div class=\"bno-stays-mobile-switch\">\r\n\r\n        <button type=\"button\" class=\"is-active\" data-show-list>\r\n          Listi\r\n        <\/button>\r\n\r\n        <button type=\"button\" data-show-map>\r\n          Kort\r\n        <\/button>\r\n\r\n      <\/div>\r\n\r\n    <\/div>\r\n\r\n\r\n    <!-- LIST + MAP -->\r\n\r\n    <div class=\"bno-stays-layout\">\r\n\r\n      <div class=\"bno-stays-list-column\" data-list-column>\r\n\r\n        <div class=\"bno-stays-status\" data-status role=\"status\" aria-live=\"polite\">\r\n          Hle\u00f0ur inn h\u00f3telum \u2026\r\n        <\/div>\r\n\r\n\r\n        <div class=\"bno-stays-list\" data-hotel-list><\/div>\r\n\r\n\r\n        <div class=\"bno-stays-more-wrap\" data-more-wrap hidden>\r\n\r\n          <button type=\"button\" class=\"bno-stays-more\" data-more>\r\n            S\u00fdna fleiri h\u00f3tel\r\n          <\/button>\r\n\r\n        <\/div>\r\n\r\n      <\/div>\r\n\r\n\r\n      <div class=\"bno-stays-map-column\" data-map-column>\r\n\r\n        <div class=\"bno-stays-map-card\">\r\n\r\n          <div id=\"bno-dubai-map\" class=\"bno-stays-map\"><\/div>\r\n\r\n\r\n          <div class=\"bno-stays-map-note\" data-map-note>\r\n            Hle\u00f0ur inn sta\u00f0setningum h\u00f3tela \u2026\r\n          <\/div>\r\n\r\n        <\/div>\r\n\r\n      <\/div>\r\n\r\n    <\/div>\r\n\r\n  <\/div>\r\n\r\n\r\n  <!-- HOTEL MODAL -->\r\n\r\n  <div class=\"bno-stays-modal\" data-hotel-modal hidden>\r\n\r\n    <div class=\"bno-stays-modal__backdrop\" data-modal-close><\/div>\r\n\r\n\r\n    <div class=\"bno-stays-modal__dialog\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Uppl\u00fdsingar um h\u00f3tel\">\r\n\r\n      <button type=\"button\" class=\"bno-stays-modal__close\" data-modal-close aria-label=\"Lukk\">\r\n        \u00d7\r\n      <\/button>\r\n\r\n\r\n      <div data-modal-content><\/div>\r\n\r\n    <\/div>\r\n\r\n  <\/div>\r\n\r\n<\/section>\r\n\r\n\r\n<style>\r\n\r\n\/* =========================================================\r\n   BNO STAYS PREVIEW\r\n   ========================================================= *\/\r\n\r\n.bno-stays-preview {\r\n  --bno-navy: #0C1A38;\r\n  --bno-blue: #1769aa;\r\n  --bno-border: #dce3ec;\r\n  --bno-muted: #627087;\r\n}\r\n\r\n.bno-stays-preview *,\r\n.bno-stays-preview *::before,\r\n.bno-stays-preview *::after {\r\n  box-sizing: border-box;\r\n}\r\n\r\n.bno-stays-preview [hidden] {\r\n  display: none !important;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   TOOLBAR\r\n   ========================================================= *\/\r\n\r\n.bno-stays-toolbar {\r\n  margin-bottom: 26px;\r\n}\r\n\r\n.bno-stays-count {\r\n  margin-bottom: 17px;\r\n\r\n  color: #172238;\r\n\r\n  font-size: 15px;\r\n  font-weight: 750;\r\n}\r\n\r\n.bno-stays-filters {\r\n  display: grid;\r\n\r\n  grid-template-columns:\r\n    1.35fr\r\n    .95fr\r\n    .75fr;\r\n\r\n  gap: 12px;\r\n}\r\n\r\n.bno-stays-field {\r\n  display: flex;\r\n  flex-direction: column;\r\n\r\n  gap: 7px;\r\n}\r\n\r\n.bno-stays-field span {\r\n  color: #59667a;\r\n\r\n  font-size: 12px;\r\n  font-weight: 750;\r\n}\r\n\r\n.bno-stays-field input,\r\n.bno-stays-field select {\r\n  width: 100%;\r\n  height: 49px;\r\n\r\n  padding: 0 14px;\r\n\r\n  border: 1px solid #d3dce7;\r\n  border-radius: 11px;\r\n\r\n  background: #fff;\r\n\r\n  color: #182238;\r\n\r\n  font: inherit;\r\n\r\n  outline: none;\r\n}\r\n\r\n.bno-stays-field input:focus,\r\n.bno-stays-field select:focus {\r\n  border-color: #587ba9;\r\n\r\n  box-shadow:\r\n    0 0 0 3px rgba(23,105,170,.08);\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   LAYOUT\r\n   ========================================================= *\/\r\n\r\n.bno-stays-layout {\r\n  display: grid;\r\n\r\n  grid-template-columns:\r\n    minmax(0,1.05fr)\r\n    minmax(400px,.95fr);\r\n\r\n  gap: 24px;\r\n\r\n  align-items: start;\r\n}\r\n\r\n.bno-stays-list {\r\n  display: grid;\r\n\r\n  gap: 15px;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   HOTEL CARD\r\n   ========================================================= *\/\r\n\r\n.bno-stays-hotel {\r\n  display: grid;\r\n\r\n  grid-template-columns:\r\n    215px\r\n    minmax(0,1fr);\r\n\r\n  min-height: 225px;\r\n\r\n  overflow: hidden;\r\n\r\n  background: #fff;\r\n\r\n  border: 1px solid #dce3ec;\r\n  border-radius: 17px;\r\n\r\n  transition:\r\n    transform .2s ease,\r\n    box-shadow .2s ease,\r\n    border-color .2s ease;\r\n}\r\n\r\n.bno-stays-hotel:hover {\r\n  transform: translateY(-2px);\r\n\r\n  box-shadow:\r\n    0 12px 30px rgba(12,26,56,.08);\r\n}\r\n\r\n.bno-stays-hotel.is-map-active {\r\n  border-color: #1769aa;\r\n\r\n  box-shadow:\r\n    0 0 0 2px rgba(23,105,170,.13);\r\n}\r\n\r\n\r\n\/* IMAGE *\/\r\n\r\n.bno-stays-hotel__image {\r\n  position: relative;\r\n\r\n  min-height: 225px;\r\n\r\n  overflow: hidden;\r\n\r\n  background:\r\n    linear-gradient(\r\n      145deg,\r\n      #d9e4ed,\r\n      #c4d2de\r\n    );\r\n}\r\n\r\n.bno-stays-hotel__image img {\r\n  position: absolute;\r\n  inset: 0;\r\n\r\n  width: 100%;\r\n  height: 100%;\r\n\r\n  object-fit: cover;\r\n}\r\n\r\n.bno-stays-image-placeholder {\r\n  position: absolute;\r\n  inset: 0;\r\n\r\n  display: flex;\r\n\r\n  align-items: center;\r\n  justify-content: center;\r\n\r\n  padding: 25px;\r\n\r\n  color: #647289;\r\n\r\n  text-align: center;\r\n\r\n  font-size: 13px;\r\n  font-weight: 700;\r\n}\r\n\r\n.bno-stays-badge {\r\n  position: absolute;\r\n\r\n  z-index: 3;\r\n\r\n  top: 12px;\r\n  left: 12px;\r\n\r\n  padding: 7px 10px;\r\n\r\n  border-radius: 999px;\r\n\r\n  background: rgba(255,255,255,.96);\r\n\r\n  color: #344158;\r\n\r\n  font-size: 11px;\r\n  font-weight: 800;\r\n\r\n  box-shadow:\r\n    0 2px 10px rgba(12,26,56,.08);\r\n}\r\n\r\n\r\n\/* BODY *\/\r\n\r\n.bno-stays-hotel__body {\r\n  display: flex;\r\n  flex-direction: column;\r\n\r\n  min-width: 0;\r\n\r\n  padding: 20px 21px;\r\n}\r\n\r\n.bno-stays-stars {\r\n  min-height: 19px;\r\n\r\n  color: #c98513;\r\n\r\n  font-size: 14px;\r\n\r\n  letter-spacing: 1px;\r\n}\r\n\r\n.bno-stays-hotel h3 {\r\n  margin: 5px 0 7px;\r\n\r\n  color: #172238;\r\n\r\n  font-size: 21px;\r\n  line-height: 1.26;\r\n}\r\n\r\n.bno-stays-location {\r\n  margin-bottom: 10px;\r\n\r\n  color: #667288;\r\n\r\n  font-size: 13px;\r\n}\r\n\r\n.bno-stays-rating {\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n\r\n  align-items: center;\r\n\r\n  gap: 8px;\r\n\r\n  margin-bottom: 10px;\r\n}\r\n\r\n.bno-stays-score {\r\n  display: inline-flex;\r\n\r\n  align-items: center;\r\n  justify-content: center;\r\n\r\n  min-width: 38px;\r\n  height: 29px;\r\n\r\n  padding: 0 8px;\r\n\r\n  border-radius: 8px;\r\n\r\n  background: #0C1A38;\r\n\r\n  color: #fff;\r\n\r\n  font-size: 12px;\r\n  font-weight: 800;\r\n}\r\n\r\n.bno-stays-review-count {\r\n  color: #697589;\r\n\r\n  font-size: 12px;\r\n}\r\n\r\n.bno-stays-description {\r\n  display: -webkit-box;\r\n\r\n  overflow: hidden;\r\n\r\n  margin: 0 0 16px;\r\n\r\n  color: #58667b;\r\n\r\n  font-size: 14px;\r\n  line-height: 1.55;\r\n\r\n  -webkit-box-orient: vertical;\r\n  -webkit-line-clamp: 3;\r\n}\r\n\r\n.bno-stays-hotel__actions {\r\n  display: flex;\r\n\r\n  align-items: center;\r\n  justify-content: space-between;\r\n\r\n  gap: 14px;\r\n\r\n  margin-top: auto;\r\n}\r\n\r\n.bno-stays-small-status {\r\n  color: #687589;\r\n\r\n  font-size: 12px;\r\n}\r\n\r\n.bno-stays-open {\r\n  min-height: 43px;\r\n\r\n  padding: 0 16px;\r\n\r\n  border: 0;\r\n  border-radius: 10px;\r\n\r\n  background: #0C1A38;\r\n\r\n  color: #fff;\r\n\r\n  font: inherit;\r\n  font-size: 13px;\r\n  font-weight: 750;\r\n\r\n  cursor: pointer;\r\n}\r\n\r\n.bno-stays-open:hover {\r\n  opacity: .93;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   STATUS\r\n   ========================================================= *\/\r\n\r\n.bno-stays-status {\r\n  margin-bottom: 15px;\r\n\r\n  padding: 16px 17px;\r\n\r\n  border: 1px solid #dce3ec;\r\n  border-radius: 12px;\r\n\r\n  background: #fff;\r\n\r\n  color: #607087;\r\n\r\n  line-height: 1.55;\r\n}\r\n\r\n.bno-stays-status:empty {\r\n  display: none;\r\n}\r\n\r\n.bno-stays-status.is-error {\r\n  border-color: #efc7c7;\r\n\r\n  background: #fff7f7;\r\n\r\n  color: #933b3b;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   MAP\r\n   ========================================================= *\/\r\n\r\n.bno-stays-map-column {\r\n  position: sticky;\r\n\r\n  top: 100px;\r\n}\r\n\r\n.bno-stays-map-card {\r\n  position: relative;\r\n\r\n  height: min(72vh,720px);\r\n  min-height: 520px;\r\n\r\n  overflow: hidden;\r\n\r\n  border: 1px solid #dce3ec;\r\n  border-radius: 18px;\r\n\r\n  background: #e5ebf0;\r\n}\r\n\r\n.bno-stays-map {\r\n  position: absolute;\r\n\r\n  inset: 0;\r\n\r\n  z-index: 1;\r\n}\r\n\r\n.bno-stays-map-note {\r\n  position: absolute;\r\n\r\n  z-index: 500;\r\n\r\n  right: 14px;\r\n  bottom: 14px;\r\n  left: 14px;\r\n\r\n  padding: 11px 13px;\r\n\r\n  border-radius: 10px;\r\n\r\n  background: rgba(255,255,255,.95);\r\n\r\n  color: #526176;\r\n\r\n  font-size: 12px;\r\n\r\n  box-shadow:\r\n    0 5px 18px rgba(12,26,56,.10);\r\n}\r\n\r\n\r\n\/* NORMAL MAP MARKER *\/\r\n\r\n.bno-stays-map-marker {\r\n  display: flex;\r\n\r\n  align-items: center;\r\n  justify-content: center;\r\n\r\n  width: 34px;\r\n  height: 34px;\r\n\r\n  border: 3px solid #fff;\r\n  border-radius: 50%;\r\n\r\n  background: #0C1A38;\r\n\r\n  color: #fff;\r\n\r\n  font-size: 12px;\r\n  font-weight: 800;\r\n\r\n  box-shadow:\r\n    0 3px 13px rgba(12,26,56,.30);\r\n}\r\n\r\n\r\n\/* PRICE MARKER - READY FOR LATER *\/\r\n\r\n.bno-stays-price-marker {\r\n  display: inline-flex;\r\n\r\n  align-items: center;\r\n  justify-content: center;\r\n\r\n  min-width: 78px;\r\n  height: 34px;\r\n\r\n  padding: 0 10px;\r\n\r\n  border: 2px solid #fff;\r\n  border-radius: 999px;\r\n\r\n  background: #0C1A38;\r\n\r\n  color: #fff;\r\n\r\n  white-space: nowrap;\r\n\r\n  font-size: 11px;\r\n  font-weight: 800;\r\n\r\n  box-shadow:\r\n    0 3px 13px rgba(12,26,56,.28);\r\n}\r\n\r\n\r\n\/* POPUP *\/\r\n\r\n.bno-stays-map-popup {\r\n  min-width: 190px;\r\n}\r\n\r\n.bno-stays-map-popup strong {\r\n  display: block;\r\n\r\n  margin-bottom: 5px;\r\n\r\n  color: #172238;\r\n\r\n  font-size: 13px;\r\n  line-height: 1.35;\r\n}\r\n\r\n.bno-stays-map-popup span {\r\n  display: block;\r\n\r\n  color: #657287;\r\n\r\n  font-size: 12px;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   SHOW MORE\r\n   ========================================================= *\/\r\n\r\n.bno-stays-more-wrap {\r\n  display: flex;\r\n\r\n  justify-content: center;\r\n\r\n  padding-top: 25px;\r\n}\r\n\r\n.bno-stays-more {\r\n  min-width: 210px;\r\n  min-height: 49px;\r\n\r\n  padding: 0 20px;\r\n\r\n  border: 1px solid #0C1A38;\r\n  border-radius: 11px;\r\n\r\n  background: #fff;\r\n\r\n  color: #0C1A38;\r\n\r\n  font: inherit;\r\n  font-weight: 750;\r\n\r\n  cursor: pointer;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   MOBILE SWITCH\r\n   ========================================================= *\/\r\n\r\n.bno-stays-mobile-switch {\r\n  display: none;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   MODAL\r\n   ========================================================= *\/\r\n\r\n.bno-stays-modal {\r\n  position: fixed;\r\n\r\n  inset: 0;\r\n\r\n  z-index: 999999;\r\n}\r\n\r\n.bno-stays-modal__backdrop {\r\n  position: absolute;\r\n\r\n  inset: 0;\r\n\r\n  background: rgba(5,14,31,.64);\r\n\r\n  backdrop-filter: blur(3px);\r\n}\r\n\r\n.bno-stays-modal__dialog {\r\n  position: absolute;\r\n\r\n  z-index: 2;\r\n\r\n  top: 3vh;\r\n  bottom: 3vh;\r\n  left: 50%;\r\n\r\n  width: min(\r\n    1060px,\r\n    calc(100% - 28px)\r\n  );\r\n\r\n  overflow-y: auto;\r\n\r\n  padding: 28px;\r\n\r\n  transform: translateX(-50%);\r\n\r\n  border-radius: 22px;\r\n\r\n  background: #fff;\r\n\r\n  box-shadow:\r\n    0 30px 90px rgba(0,0,0,.25);\r\n}\r\n\r\n.bno-stays-modal__close {\r\n  position: sticky;\r\n\r\n  z-index: 20;\r\n\r\n  top: 0;\r\n\r\n  float: right;\r\n\r\n  width: 44px;\r\n  height: 44px;\r\n\r\n  margin: 0 0 -44px;\r\n\r\n  border: 0;\r\n  border-radius: 50%;\r\n\r\n  background: #0C1A38;\r\n\r\n  color: #fff;\r\n\r\n  font-size: 27px;\r\n  line-height: 1;\r\n\r\n  cursor: pointer;\r\n}\r\n\r\n\r\n\/* MODAL HEADER *\/\r\n\r\n.bno-stays-modal-title h2 {\r\n  max-width: 850px;\r\n\r\n  margin: 6px 60px 9px 0;\r\n\r\n  color: #172238;\r\n\r\n  font-size: clamp(\r\n    29px,\r\n    4vw,\r\n    43px\r\n  );\r\n\r\n  line-height: 1.12;\r\n}\r\n\r\n.bno-stays-modal-meta {\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n\r\n  align-items: center;\r\n\r\n  gap: 10px;\r\n\r\n  margin-bottom: 24px;\r\n\r\n  color: #667288;\r\n}\r\n\r\n.bno-stays-modal-stars {\r\n  color: #c98513;\r\n\r\n  letter-spacing: 1px;\r\n}\r\n\r\n\r\n\/* GALLERY *\/\r\n\r\n.bno-stays-gallery {\r\n  display: grid;\r\n\r\n  grid-template-columns:\r\n    2fr\r\n    1fr\r\n    1fr;\r\n\r\n  grid-template-rows:\r\n    190px\r\n    190px;\r\n\r\n  gap: 7px;\r\n\r\n  margin-bottom: 30px;\r\n\r\n  overflow: hidden;\r\n\r\n  border-radius: 17px;\r\n\r\n  background: #e8edf2;\r\n}\r\n\r\n.bno-stays-gallery figure {\r\n  position: relative;\r\n\r\n  min-width: 0;\r\n\r\n  margin: 0;\r\n\r\n  overflow: hidden;\r\n\r\n  background: #e7ebf0;\r\n}\r\n\r\n.bno-stays-gallery figure:first-child {\r\n  grid-row:\r\n    1 \/ 3;\r\n}\r\n\r\n.bno-stays-gallery img {\r\n  width: 100%;\r\n  height: 100%;\r\n\r\n  object-fit: cover;\r\n}\r\n\r\n\r\n\/* MODAL BODY *\/\r\n\r\n.bno-stays-modal-grid {\r\n  display: grid;\r\n\r\n  grid-template-columns:\r\n    minmax(0,1fr)\r\n    285px;\r\n\r\n  gap: 38px;\r\n\r\n  align-items: start;\r\n}\r\n\r\n.bno-stays-modal-copy h3 {\r\n  margin: 0 0 12px;\r\n\r\n  color: #172238;\r\n\r\n  font-size: 23px;\r\n}\r\n\r\n.bno-stays-modal-copy p {\r\n  margin: 0;\r\n\r\n  color: #58667a;\r\n\r\n  line-height: 1.72;\r\n\r\n  white-space: pre-line;\r\n}\r\n\r\n.bno-stays-modal-side {\r\n  padding: 20px;\r\n\r\n  border-radius: 15px;\r\n\r\n  background: #f3f6f9;\r\n}\r\n\r\n.bno-stays-modal-side strong {\r\n  display: block;\r\n\r\n  margin-bottom: 8px;\r\n\r\n  color: #172238;\r\n}\r\n\r\n.bno-stays-modal-address {\r\n  color: #5d6a7d;\r\n\r\n  font-size: 13px;\r\n  line-height: 1.6;\r\n}\r\n\r\n\r\n\/* ROOMS COMING *\/\r\n\r\n.bno-stays-room-coming {\r\n  margin-top: 38px;\r\n\r\n  padding-top: 28px;\r\n\r\n  border-top:\r\n    1px solid #dfe5ec;\r\n}\r\n\r\n.bno-stays-room-coming h3 {\r\n  margin: 5px 0 12px;\r\n\r\n  color: #172238;\r\n\r\n  font-size: 23px;\r\n}\r\n\r\n.bno-stays-room-coming-box {\r\n  padding: 18px;\r\n\r\n  border-radius: 12px;\r\n\r\n  background: #f3f6f9;\r\n\r\n  color: #5e6c80;\r\n\r\n  line-height: 1.6;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   RESPONSIVE\r\n   ========================================================= *\/\r\n\r\n@media (max-width: 900px) {\r\n\r\n  .bno-stays-filters {\r\n    grid-template-columns:\r\n      1fr\r\n      1fr;\r\n  }\r\n\r\n  .bno-stays-field:first-child {\r\n    grid-column:\r\n      1 \/ 3;\r\n  }\r\n\r\n  .bno-stays-layout {\r\n    grid-template-columns:\r\n      1fr;\r\n  }\r\n\r\n  .bno-stays-map-column {\r\n    display: none;\r\n\r\n    position: static;\r\n  }\r\n\r\n  .bno-stays-map-column.is-mobile-active {\r\n    display: block;\r\n  }\r\n\r\n  .bno-stays-list-column.is-mobile-hidden {\r\n    display: none;\r\n  }\r\n\r\n  .bno-stays-mobile-switch {\r\n    display: flex;\r\n\r\n    gap: 7px;\r\n\r\n    margin-top: 15px;\r\n  }\r\n\r\n  .bno-stays-mobile-switch button {\r\n    flex: 1;\r\n\r\n    min-height: 43px;\r\n\r\n    border: 1px solid #ccd6e2;\r\n    border-radius: 9px;\r\n\r\n    background: #fff;\r\n\r\n    color: #526176;\r\n\r\n    font-weight: 700;\r\n\r\n    cursor: pointer;\r\n  }\r\n\r\n  .bno-stays-mobile-switch button.is-active {\r\n    border-color: #0C1A38;\r\n\r\n    background: #0C1A38;\r\n\r\n    color: #fff;\r\n  }\r\n\r\n  .bno-stays-map-card {\r\n    height: 65vh;\r\n\r\n    min-height: 450px;\r\n  }\r\n\r\n}\r\n\r\n\r\n@media (max-width: 650px) {\r\n\r\n  .bno-stays-filters {\r\n    grid-template-columns:\r\n      1fr;\r\n  }\r\n\r\n  .bno-stays-field:first-child {\r\n    grid-column: auto;\r\n  }\r\n\r\n  .bno-stays-hotel {\r\n    grid-template-columns:\r\n      1fr;\r\n  }\r\n\r\n  .bno-stays-hotel__image {\r\n    min-height: 240px;\r\n  }\r\n\r\n  .bno-stays-hotel__actions {\r\n    align-items: stretch;\r\n    flex-direction: column;\r\n  }\r\n\r\n  .bno-stays-open {\r\n    width: 100%;\r\n  }\r\n\r\n  .bno-stays-modal__dialog {\r\n    top: 8px;\r\n    bottom: 8px;\r\n\r\n    padding: 19px;\r\n\r\n    border-radius: 16px;\r\n  }\r\n\r\n  .bno-stays-gallery {\r\n    grid-template-columns:\r\n      1fr\r\n      1fr;\r\n\r\n    grid-template-rows:\r\n      235px\r\n      130px;\r\n  }\r\n\r\n  .bno-stays-gallery figure:first-child {\r\n    grid-column:\r\n      1 \/ 3;\r\n\r\n    grid-row: auto;\r\n  }\r\n\r\n  .bno-stays-gallery figure:nth-child(n+4) {\r\n    display: none;\r\n  }\r\n\r\n  .bno-stays-modal-grid {\r\n    grid-template-columns:\r\n      1fr;\r\n  }\r\n\r\n}\r\n\r\n<\/style>\r\n\r\n\r\n<script>\r\n(function () {\r\n\r\n  const section =\r\n    document.querySelector(\r\n      '[data-bno-stays-preview]'\r\n    );\r\n\r\n  if (\r\n    !section ||\r\n    section.dataset.initialized === '1'\r\n  ) {\r\n    return;\r\n  }\r\n\r\n  section.dataset.initialized = '1';\r\n\r\n\r\n  \/* =======================================================\r\n     CONFIG\r\n     ======================================================= *\/\r\n\r\n  const apiBase =\r\n    String(\r\n      section.dataset.apiBase || ''\r\n    ).replace(\/\\\/+$\/, '');\r\n\r\n  const destination =\r\n    String(\r\n      section.dataset.destination || 'dubai'\r\n    )\r\n      .trim()\r\n      .toLowerCase();\r\n\r\n  const lang =\r\n    String(\r\n      section.dataset.lang || 'is'\r\n    ).trim();\r\n\r\n  const initialCount =\r\n    Number(\r\n      section.dataset.initialCount || 12\r\n    );\r\n\r\n  const pageSize =\r\n    Number(\r\n      section.dataset.pageSize || 200\r\n    );\r\n\r\n\r\n  \/* =======================================================\r\n     ELEMENTS\r\n     ======================================================= *\/\r\n\r\n  const listEl =\r\n    section.querySelector(\r\n      '[data-hotel-list]'\r\n    );\r\n\r\n  const statusEl =\r\n    section.querySelector(\r\n      '[data-status]'\r\n    );\r\n\r\n  const countEl =\r\n    section.querySelector(\r\n      '[data-result-count]'\r\n    );\r\n\r\n  const searchInput =\r\n    section.querySelector(\r\n      '[data-hotel-search]'\r\n    );\r\n\r\n  const areaFilter =\r\n    section.querySelector(\r\n      '[data-area-filter]'\r\n    );\r\n\r\n  const areaField =\r\n    section.querySelector(\r\n      '[data-area-field]'\r\n    );\r\n\r\n  const starFilter =\r\n    section.querySelector(\r\n      '[data-star-filter]'\r\n    );\r\n\r\n  const moreWrap =\r\n    section.querySelector(\r\n      '[data-more-wrap]'\r\n    );\r\n\r\n  const moreButton =\r\n    section.querySelector(\r\n      '[data-more]'\r\n    );\r\n\r\n  const mapColumn =\r\n    section.querySelector(\r\n      '[data-map-column]'\r\n    );\r\n\r\n  const listColumn =\r\n    section.querySelector(\r\n      '[data-list-column]'\r\n    );\r\n\r\n  const showMapButton =\r\n    section.querySelector(\r\n      '[data-show-map]'\r\n    );\r\n\r\n  const showListButton =\r\n    section.querySelector(\r\n      '[data-show-list]'\r\n    );\r\n\r\n  const mapNote =\r\n    section.querySelector(\r\n      '[data-map-note]'\r\n    );\r\n\r\n  const modal =\r\n    section.querySelector(\r\n      '[data-hotel-modal]'\r\n    );\r\n\r\n  const modalContent =\r\n    section.querySelector(\r\n      '[data-modal-content]'\r\n    );\r\n\r\n\r\n  \/* =======================================================\r\n     STATE\r\n     ======================================================= *\/\r\n\r\n  let allHotels = [];\r\n\r\n  let visibleCount =\r\n    initialCount;\r\n\r\n  let map = null;\r\n\r\n  let markerRecords = [];\r\n\r\n  let leafletPromise = null;\r\n\r\n  let oldOverflow = '';\r\n\r\n\r\n  \/* =======================================================\r\n     HELPERS\r\n     ======================================================= *\/\r\n\r\n  function esc(value) {\r\n\r\n    return String(\r\n      value == null ? '' : value\r\n    )\r\n      .replace(\/&\/g, '&amp;')\r\n      .replace(\/<\/g, '&lt;')\r\n      .replace(\/>\/g, '&gt;')\r\n      .replace(\/\"\/g, '&quot;')\r\n      .replace(\/'\/g, '&#039;');\r\n\r\n  }\r\n\r\n\r\n  function clean(value) {\r\n\r\n    return String(\r\n      value == null ? '' : value\r\n    ).trim();\r\n\r\n  }\r\n\r\n\r\n  function numberOrNull(value) {\r\n\r\n    if (\r\n      value === null ||\r\n      value === undefined ||\r\n      value === ''\r\n    ) {\r\n      return null;\r\n    }\r\n\r\n    const parsed =\r\n      Number(value);\r\n\r\n    return Number.isFinite(parsed)\r\n      ? parsed\r\n      : null;\r\n\r\n  }\r\n\r\n\r\n  function normalizePhoto(photo) {\r\n\r\n    if (!photo) {\r\n      return '';\r\n    }\r\n\r\n    if (\r\n      typeof photo === 'string'\r\n    ) {\r\n      return clean(photo);\r\n    }\r\n\r\n    return clean(\r\n      photo.url ||\r\n      photo.src ||\r\n      photo.href ||\r\n      photo.image_url ||\r\n      photo.imageUrl ||\r\n      ''\r\n    );\r\n\r\n  }\r\n\r\n\r\n  function normalizePhotos(value) {\r\n\r\n    if (\r\n      !Array.isArray(value)\r\n    ) {\r\n      return [];\r\n    }\r\n\r\n    return value\r\n      .map(normalizePhoto)\r\n      .filter(Boolean);\r\n\r\n  }\r\n\r\n\r\n  function addressPart(\r\n    address,\r\n    keys\r\n  ) {\r\n\r\n    if (\r\n      !address ||\r\n      typeof address !== 'object'\r\n    ) {\r\n      return '';\r\n    }\r\n\r\n    for (\r\n      const key of keys\r\n    ) {\r\n\r\n      const value =\r\n        clean(\r\n          address[key]\r\n        );\r\n\r\n      if (value) {\r\n        return value;\r\n      }\r\n\r\n    }\r\n\r\n    return '';\r\n\r\n  }\r\n\r\n\r\n  function formatAddress(address) {\r\n\r\n    if (!address) {\r\n      return '';\r\n    }\r\n\r\n    if (\r\n      typeof address === 'string'\r\n    ) {\r\n      return clean(address);\r\n    }\r\n\r\n    const parts = [\r\n\r\n      addressPart(\r\n        address,\r\n        [\r\n          'line_one',\r\n          'line1',\r\n          'address_line_1'\r\n        ]\r\n      ),\r\n\r\n      addressPart(\r\n        address,\r\n        [\r\n          'line_two',\r\n          'line2',\r\n          'address_line_2'\r\n        ]\r\n      ),\r\n\r\n      addressPart(\r\n        address,\r\n        [\r\n          'postal_code',\r\n          'postalCode'\r\n        ]\r\n      ),\r\n\r\n      addressPart(\r\n        address,\r\n        [\r\n          'city_name',\r\n          'city'\r\n        ]\r\n      ),\r\n\r\n      addressPart(\r\n        address,\r\n        [\r\n          'region',\r\n          'state'\r\n        ]\r\n      )\r\n\r\n    ]\r\n      .filter(Boolean);\r\n\r\n    return Array.from(\r\n      new Set(parts)\r\n    ).join(', ');\r\n\r\n  }\r\n\r\n\r\n  function getArea(address) {\r\n\r\n    if (\r\n      !address ||\r\n      typeof address !== 'object'\r\n    ) {\r\n      return '';\r\n    }\r\n\r\n    return clean(\r\n      address.neighbourhood ||\r\n      address.neighborhood ||\r\n      address.district ||\r\n      address.area ||\r\n      address.line_two ||\r\n      address.line2 ||\r\n      ''\r\n    );\r\n\r\n  }\r\n\r\n\r\n  function normalizeHotel(raw) {\r\n\r\n    const photos =\r\n      normalizePhotos(\r\n        raw.photos\r\n      );\r\n\r\n    \/*\r\n      priceText er med allerede n\u00e5, men inventory-endepunktet\r\n      returnerer ikke pris per i dag.\r\n\r\n      N\u00e5r vi senere kobler resultatet mot et faktisk priss\u00f8k,\r\n      kan backend returnere eksempelvis:\r\n      priceText: \"1 895 kr\"\r\n\r\n      Da g\u00e5r kartet automatisk over til prisbobler ved zoom >= 12.\r\n    *\/\r\n\r\n    const priceText =\r\n      clean(\r\n        raw.priceText ||\r\n        raw.fromPriceText ||\r\n        raw.lowestPriceText ||\r\n        ''\r\n      );\r\n\r\n    return {\r\n\r\n      id:\r\n        clean(\r\n          raw.id\r\n        ),\r\n\r\n      name:\r\n        clean(\r\n          raw.name\r\n        ) || 'H\u00f3tel',\r\n\r\n      description:\r\n        clean(\r\n          raw.description\r\n        ),\r\n\r\n      rating:\r\n        numberOrNull(\r\n          raw.rating\r\n        ),\r\n\r\n      reviewScore:\r\n        numberOrNull(\r\n          raw.reviewScore\r\n        ),\r\n\r\n      reviewCount:\r\n        numberOrNull(\r\n          raw.reviewCount\r\n        ),\r\n\r\n      photos,\r\n\r\n      coverImage:\r\n        photos[0] || '',\r\n\r\n      latitude:\r\n        numberOrNull(\r\n          raw.latitude\r\n        ),\r\n\r\n      longitude:\r\n        numberOrNull(\r\n          raw.longitude\r\n        ),\r\n\r\n      addressRaw:\r\n        raw.address || null,\r\n\r\n      address:\r\n        formatAddress(\r\n          raw.address\r\n        ),\r\n\r\n      area:\r\n        getArea(\r\n          raw.address\r\n        ),\r\n\r\n      priceText\r\n\r\n    };\r\n\r\n  }\r\n\r\n\r\n  function renderStars(value) {\r\n\r\n    if (!value) {\r\n      return '';\r\n    }\r\n\r\n    const count =\r\n      Math.max(\r\n        1,\r\n        Math.min(\r\n          5,\r\n          Math.round(value)\r\n        )\r\n      );\r\n\r\n    return '\u2605'.repeat(count);\r\n\r\n  }\r\n\r\n\r\n  function setStatus(\r\n    text,\r\n    isError\r\n  ) {\r\n\r\n    statusEl.textContent =\r\n      text || '';\r\n\r\n    statusEl.classList.toggle(\r\n      'is-error',\r\n      Boolean(isError)\r\n    );\r\n\r\n  }\r\n\r\n\r\n  \/* =======================================================\r\n     API\r\n     ======================================================= *\/\r\n\r\n  async function fetchInventoryPage(\r\n    after\r\n  ) {\r\n\r\n    const url =\r\n      new URL(\r\n        apiBase +\r\n        '\/api\/stays\/inventory-page\/' +\r\n        encodeURIComponent(destination)\r\n      );\r\n\r\n\r\n    url.searchParams.set(\r\n      'limit',\r\n      String(pageSize)\r\n    );\r\n\r\n\r\n    \/*\r\n      Viktig:\r\n      send spr\u00e5k til BNO API.\r\n    *\/\r\n\r\n    url.searchParams.set(\r\n      'lang',\r\n      lang\r\n    );\r\n\r\n\r\n    if (after) {\r\n\r\n      url.searchParams.set(\r\n        'after',\r\n        after\r\n      );\r\n\r\n    }\r\n\r\n\r\n    const response =\r\n      await fetch(\r\n        url.toString(),\r\n        {\r\n          method: 'GET',\r\n\r\n          headers: {\r\n            Accept:\r\n              'application\/json'\r\n          }\r\n        }\r\n      );\r\n\r\n\r\n    let json;\r\n\r\n\r\n    try {\r\n\r\n      json =\r\n        await response.json();\r\n\r\n    } catch (error) {\r\n\r\n      throw new Error(\r\n        'Ugyldig respons fra serveren.'\r\n      );\r\n\r\n    }\r\n\r\n\r\n    if (!response.ok) {\r\n\r\n      throw new Error(\r\n        json?.detail ||\r\n        json?.error ||\r\n        (\r\n          'HTTP ' +\r\n          response.status\r\n        )\r\n      );\r\n\r\n    }\r\n\r\n\r\n    if (\r\n      !json ||\r\n      json.ok !== true ||\r\n      !Array.isArray(json.data)\r\n    ) {\r\n\r\n      throw new Error(\r\n        'Uventet respons fra serveren.'\r\n      );\r\n\r\n    }\r\n\r\n\r\n    return json;\r\n\r\n  }\r\n\r\n\r\n  async function loadInventory() {\r\n\r\n    try {\r\n\r\n      setStatus(\r\n        'Hle\u00f0ur inn h\u00f3telum \u00ed D\u00faba\u00ed \u2026',\r\n        false\r\n      );\r\n\r\n\r\n      const byId =\r\n        new Map();\r\n\r\n      let after = '';\r\n\r\n      let pages = 0;\r\n\r\n\r\n      do {\r\n\r\n        pages += 1;\r\n\r\n\r\n        if (pages > 1) {\r\n\r\n          setStatus(\r\n            'Hle\u00f0ur inn fleiri h\u00f3telum \u2026',\r\n            false\r\n          );\r\n\r\n        }\r\n\r\n\r\n        const response =\r\n          await fetchInventoryPage(\r\n            after\r\n          );\r\n\r\n\r\n        response.data\r\n          .map(normalizeHotel)\r\n          .filter(\r\n            hotel =>\r\n              hotel.id &&\r\n              hotel.name\r\n          )\r\n          .forEach(\r\n            hotel => {\r\n\r\n              byId.set(\r\n                hotel.id,\r\n                hotel\r\n              );\r\n\r\n            }\r\n          );\r\n\r\n\r\n        allHotels =\r\n          Array.from(\r\n            byId.values()\r\n          );\r\n\r\n\r\n        updateAreaFilter();\r\n\r\n        render();\r\n\r\n\r\n        after =\r\n          clean(\r\n            response\r\n              ?.pagination\r\n              ?.nextAfter\r\n          );\r\n\r\n\r\n        \/*\r\n          Safety.\r\n          Dubai skal normalt ikke trenge mange sider\r\n          n\u00e5r limit=200.\r\n        *\/\r\n\r\n        if (pages >= 10) {\r\n          break;\r\n        }\r\n\r\n\r\n      } while (after);\r\n\r\n\r\n      setStatus(\r\n        '',\r\n        false\r\n      );\r\n\r\n\r\n      updateAreaFilter();\r\n\r\n      render();\r\n\r\n\r\n    } catch (error) {\r\n\r\n      console.error(\r\n        '[BNO STAYS]',\r\n        error\r\n      );\r\n\r\n\r\n      setStatus(\r\n        'Ekki t\u00f3kst a\u00f0 hla\u00f0a h\u00f3telunum inn n\u00fana. Reyndu aftur eftir sm\u00e1stund.',\r\n        true\r\n      );\r\n\r\n\r\n      countEl.textContent =\r\n        'Ekki t\u00f3kst a\u00f0 hla\u00f0a h\u00f3telum';\r\n\r\n    }\r\n\r\n  }\r\n\r\n\r\n  \/* =======================================================\r\n     FILTERS\r\n     ======================================================= *\/\r\n\r\n  function updateAreaFilter() {\r\n\r\n    const selected =\r\n      areaFilter.value;\r\n\r\n\r\n    const areas =\r\n      Array.from(\r\n        new Set(\r\n          allHotels\r\n            .map(\r\n              hotel =>\r\n                hotel.area\r\n            )\r\n            .filter(\r\n              area =>\r\n                area &&\r\n                area.toLowerCase() !== 'dubai'\r\n            )\r\n        )\r\n      )\r\n        .sort(\r\n          (a,b) =>\r\n            a.localeCompare(\r\n              b,\r\n              'is'\r\n            )\r\n        );\r\n\r\n\r\n    areaFilter.innerHTML =\r\n      '<option value=\"\">\u00d6ll sv\u00e6\u00f0i<\/option>' +\r\n\r\n      areas\r\n        .map(\r\n          area => (\r\n            '<option value=\"' +\r\n            esc(area) +\r\n            '\">' +\r\n            esc(area) +\r\n            '<\/option>'\r\n          )\r\n        )\r\n        .join('');\r\n\r\n\r\n    if (\r\n      areas.includes(selected)\r\n    ) {\r\n      areaFilter.value =\r\n        selected;\r\n    }\r\n\r\n\r\n    \/*\r\n      Hvis vi ikke f\u00e5r gode omr\u00e5defelter fra kilden,\r\n      skjuler vi omr\u00e5de-filteret fremfor \u00e5 vise\r\n      et filter som ikke gj\u00f8r noe.\r\n    *\/\r\n\r\n    areaField.hidden =\r\n      areas.length < 2;\r\n\r\n  }\r\n\r\n\r\n  function getFilteredHotels() {\r\n\r\n    const query =\r\n      clean(\r\n        searchInput.value\r\n      ).toLowerCase();\r\n\r\n\r\n    const selectedArea =\r\n      clean(\r\n        areaFilter.value\r\n      );\r\n\r\n\r\n    const minimumStars =\r\n      Number(\r\n        starFilter.value || 0\r\n      );\r\n\r\n\r\n    return allHotels.filter(\r\n      hotel => {\r\n\r\n\r\n        if (query) {\r\n\r\n          const haystack =\r\n            [\r\n              hotel.name,\r\n              hotel.description,\r\n              hotel.area,\r\n              hotel.address\r\n            ]\r\n              .join(' ')\r\n              .toLowerCase();\r\n\r\n\r\n          if (\r\n            !haystack.includes(\r\n              query\r\n            )\r\n          ) {\r\n            return false;\r\n          }\r\n\r\n        }\r\n\r\n\r\n        if (\r\n          selectedArea &&\r\n          hotel.area !== selectedArea\r\n        ) {\r\n          return false;\r\n        }\r\n\r\n\r\n        if (\r\n          minimumStars &&\r\n          (\r\n            !hotel.rating ||\r\n            hotel.rating < minimumStars\r\n          )\r\n        ) {\r\n          return false;\r\n        }\r\n\r\n\r\n        return true;\r\n\r\n      }\r\n    );\r\n\r\n  }\r\n\r\n\r\n  \/* =======================================================\r\n     HOTEL CARD\r\n     ======================================================= *\/\r\n\r\n  function hotelCard(\r\n    hotel\r\n  ) {\r\n\r\n    const stars =\r\n      renderStars(\r\n        hotel.rating\r\n      );\r\n\r\n\r\n    const imageHtml =\r\n\r\n      hotel.coverImage\r\n\r\n        ? (\r\n          '<img ' + 'src=\"' + esc(hotel.coverImage) + '\" ' + 'alt=\"' + esc(hotel.name) + '\" ' + 'loading=\"lazy\"' + '>'\r\n        )\r\n\r\n        : (\r\n          '<div class=\"bno-stays-image-placeholder\">' +\r\n            'Mynd v\u00e6ntanleg' +\r\n          '<\/div>'\r\n        );\r\n\r\n\r\n    const reviewHtml =\r\n\r\n      hotel.reviewScore !== null\r\n\r\n        ? (\r\n          '<div class=\"bno-stays-rating\">' +\r\n\r\n            '<span class=\"bno-stays-score\">' +\r\n              esc(\r\n                hotel.reviewScore.toFixed(1)\r\n              ) +\r\n            '<\/span>' +\r\n\r\n            (\r\n              hotel.reviewCount !== null\r\n\r\n                ? (\r\n                  '<span class=\"bno-stays-review-count\">' +\r\n                    esc(\r\n                      hotel.reviewCount\r\n                    ) +\r\n                    ' umsagnir' +\r\n                  '<\/span>'\r\n                )\r\n\r\n                : ''\r\n            ) +\r\n\r\n          '<\/div>'\r\n        )\r\n\r\n        : '';\r\n\r\n\r\n    return (\r\n\r\n      '<article ' + 'class=\"bno-stays-hotel\" ' + 'data-hotel-id=\"' + esc(hotel.id) + '\">' +\r\n\r\n\r\n        '<div class=\"bno-stays-hotel__image\">' +\r\n\r\n          '<span class=\"bno-stays-badge\">' +\r\n            'V\u00e6ntanlegt' +\r\n          '<\/span>' +\r\n\r\n          imageHtml +\r\n\r\n        '<\/div>' +\r\n\r\n\r\n        '<div class=\"bno-stays-hotel__body\">' +\r\n\r\n\r\n          '<div class=\"bno-stays-stars\">' +\r\n            esc(stars) +\r\n          '<\/div>' +\r\n\r\n\r\n          '<h3>' +\r\n            esc(hotel.name) +\r\n          '<\/h3>' +\r\n\r\n\r\n          (\r\n            hotel.area ||\r\n            hotel.address\r\n\r\n              ? (\r\n                '<div class=\"bno-stays-location\">' +\r\n                  esc(\r\n                    hotel.area ||\r\n                    hotel.address\r\n                  ) +\r\n                '<\/div>'\r\n              )\r\n\r\n              : ''\r\n          ) +\r\n\r\n\r\n          reviewHtml +\r\n\r\n\r\n          (\r\n            hotel.description\r\n\r\n              ? (\r\n                '<p class=\"bno-stays-description\">' +\r\n                  esc(hotel.description) +\r\n                '<\/p>'\r\n              )\r\n\r\n              : ''\r\n          ) +\r\n\r\n\r\n          '<div class=\"bno-stays-hotel__actions\">' +\r\n\r\n            '<span class=\"bno-stays-small-status\">' +\r\n              'Uppl\u00fdsingar um h\u00f3tel' +\r\n            '<\/span>' +\r\n\r\n            '<button ' + 'type=\"button\" ' + 'class=\"bno-stays-open\" ' + 'data-open-hotel=\"' + esc(hotel.id) + '\">' +\r\n              'Sko\u00f0a h\u00f3teli\u00f0' +\r\n            '<\/button>' +\r\n\r\n          '<\/div>' +\r\n\r\n\r\n        '<\/div>' +\r\n\r\n\r\n      '<\/article>'\r\n\r\n    );\r\n\r\n  }\r\n\r\n\r\n  \/* =======================================================\r\n     RENDER\r\n     ======================================================= *\/\r\n\r\n  function render() {\r\n\r\n    const filtered =\r\n      getFilteredHotels();\r\n\r\n\r\n    const visible =\r\n      filtered.slice(\r\n        0,\r\n        visibleCount\r\n      );\r\n\r\n\r\n    countEl.textContent =\r\n\r\n      filtered.length === 1\r\n\r\n        ? '1 h\u00f3tel'\r\n\r\n        : (\r\n          filtered.length +\r\n          ' h\u00f3tel'\r\n        );\r\n\r\n\r\n    listEl.innerHTML =\r\n\r\n      visible.length\r\n\r\n        ? visible\r\n            .map(hotelCard)\r\n            .join('')\r\n\r\n        : (\r\n          '<div class=\"bno-stays-status\">' +\r\n            'Engin h\u00f3tel passa vi\u00f0 leitina.' +\r\n          '<\/div>'\r\n        );\r\n\r\n\r\n    moreWrap.hidden =\r\n      visible.length >=\r\n      filtered.length;\r\n\r\n\r\n    updateMapMarkers(\r\n      visible\r\n    );\r\n\r\n  }\r\n\r\n\r\n  \/* =======================================================\r\n     LEAFLET\r\n     ======================================================= *\/\r\n\r\n  function ensureLeaflet() {\r\n\r\n    if (\r\n      window.L &&\r\n      window.L.map\r\n    ) {\r\n      return Promise.resolve();\r\n    }\r\n\r\n\r\n    if (leafletPromise) {\r\n      return leafletPromise;\r\n    }\r\n\r\n\r\n    leafletPromise =\r\n      new Promise(\r\n        function(\r\n          resolve,\r\n          reject\r\n        ) {\r\n\r\n\r\n          if (\r\n            !document.querySelector(\r\n              'link[data-bno-leaflet]'\r\n            )\r\n          ) {\r\n\r\n            const link =\r\n              document.createElement(\r\n                'link'\r\n              );\r\n\r\n            link.rel =\r\n              'stylesheet';\r\n\r\n            link.href =\r\n              'https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.css';\r\n\r\n            link.dataset.bnoLeaflet =\r\n              '1';\r\n\r\n            document.head.appendChild(\r\n              link\r\n            );\r\n\r\n          }\r\n\r\n\r\n          if (\r\n            window.L &&\r\n            window.L.map\r\n          ) {\r\n\r\n            resolve();\r\n\r\n            return;\r\n\r\n          }\r\n\r\n\r\n          let script =\r\n            document.querySelector(\r\n              'script[data-bno-leaflet]'\r\n            );\r\n\r\n\r\n          if (script) {\r\n\r\n            script.addEventListener(\r\n              'load',\r\n              resolve,\r\n              { once: true }\r\n            );\r\n\r\n            script.addEventListener(\r\n              'error',\r\n              reject,\r\n              { once: true }\r\n            );\r\n\r\n            return;\r\n\r\n          }\r\n\r\n\r\n          script =\r\n            document.createElement(\r\n              'script'\r\n            );\r\n\r\n          script.src =\r\n            'https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.js';\r\n\r\n          script.dataset.bnoLeaflet =\r\n            '1';\r\n\r\n          script.onload =\r\n            resolve;\r\n\r\n          script.onerror =\r\n            reject;\r\n\r\n          document.head.appendChild(\r\n            script\r\n          );\r\n\r\n        }\r\n      );\r\n\r\n\r\n    return leafletPromise;\r\n\r\n  }\r\n\r\n\r\n  async function ensureMap() {\r\n\r\n    if (map) {\r\n      return map;\r\n    }\r\n\r\n\r\n    try {\r\n\r\n      await ensureLeaflet();\r\n\r\n\r\n      map =\r\n        window.L.map(\r\n          'bno-dubai-map',\r\n          {\r\n            scrollWheelZoom:\r\n              false\r\n          }\r\n        );\r\n\r\n\r\n      map.setView(\r\n        [\r\n          25.2048,\r\n          55.2708\r\n        ],\r\n        10\r\n      );\r\n\r\n\r\n      window.L\r\n        .tileLayer(\r\n          'https:\/\/{s}.tile.openstreetmap.org\/{z}\/{x}\/{y}.png',\r\n          {\r\n            maxZoom: 19,\r\n\r\n            attribution:\r\n              '&copy; OpenStreetMap contributors'\r\n          }\r\n        )\r\n        .addTo(map);\r\n\r\n\r\n      \/*\r\n        N\u00e5r priser senere finnes p\u00e5 hotellobjektene,\r\n        oppdaterer vi mark\u00f8rene automatisk ved zoom.\r\n      *\/\r\n\r\n      map.on(\r\n        'zoomend',\r\n        refreshMarkerIcons\r\n      );\r\n\r\n\r\n      return map;\r\n\r\n\r\n    } catch (error) {\r\n\r\n      console.error(\r\n        '[BNO MAP]',\r\n        error\r\n      );\r\n\r\n\r\n      mapNote.textContent =\r\n        'Ekki t\u00f3kst a\u00f0 hla\u00f0a kortinu.';\r\n\r\n\r\n      return null;\r\n\r\n    }\r\n\r\n  }\r\n\r\n\r\n  function markerHtml(\r\n    hotel,\r\n    index\r\n  ) {\r\n\r\n    const zoom =\r\n      map\r\n        ? map.getZoom()\r\n        : 10;\r\n\r\n\r\n    if (\r\n      zoom >= 12 &&\r\n      hotel.priceText\r\n    ) {\r\n\r\n      return (\r\n        '<div class=\"bno-stays-price-marker\">' +\r\n          esc(\r\n            hotel.priceText\r\n          ) +\r\n        '<\/div>'\r\n      );\r\n\r\n    }\r\n\r\n\r\n    return (\r\n      '<div class=\"bno-stays-map-marker\">' +\r\n        (index + 1) +\r\n      '<\/div>'\r\n    );\r\n\r\n  }\r\n\r\n\r\n  function markerIcon(\r\n    hotel,\r\n    index\r\n  ) {\r\n\r\n    const usePrice =\r\n      map &&\r\n      map.getZoom() >= 12 &&\r\n      hotel.priceText;\r\n\r\n\r\n    return window.L.divIcon(\r\n      {\r\n\r\n        className: '',\r\n\r\n        html:\r\n          markerHtml(\r\n            hotel,\r\n            index\r\n          ),\r\n\r\n        iconSize:\r\n          usePrice\r\n            ? [82,34]\r\n            : [34,34],\r\n\r\n        iconAnchor:\r\n          usePrice\r\n            ? [41,17]\r\n            : [17,17],\r\n\r\n        popupAnchor:\r\n          [0,-19]\r\n\r\n      }\r\n    );\r\n\r\n  }\r\n\r\n\r\n  function refreshMarkerIcons() {\r\n\r\n    markerRecords.forEach(\r\n      function(record) {\r\n\r\n        record.marker.setIcon(\r\n          markerIcon(\r\n            record.hotel,\r\n            record.index\r\n          )\r\n        );\r\n\r\n      }\r\n    );\r\n\r\n  }\r\n\r\n\r\n  function clearMarkers() {\r\n\r\n    if (!map) {\r\n      return;\r\n    }\r\n\r\n\r\n    markerRecords.forEach(\r\n      function(record) {\r\n\r\n        map.removeLayer(\r\n          record.marker\r\n        );\r\n\r\n      }\r\n    );\r\n\r\n\r\n    markerRecords = [];\r\n\r\n  }\r\n\r\n\r\n  async function updateMapMarkers(\r\n    hotels\r\n  ) {\r\n\r\n    const hotelMap =\r\n      await ensureMap();\r\n\r\n\r\n    if (!hotelMap) {\r\n      return;\r\n    }\r\n\r\n\r\n    clearMarkers();\r\n\r\n\r\n    const withCoordinates =\r\n      hotels.filter(\r\n        hotel =>\r\n          hotel.latitude !== null &&\r\n          hotel.longitude !== null\r\n      );\r\n\r\n\r\n    if (\r\n      withCoordinates.length === 0\r\n    ) {\r\n\r\n      mapNote.style.display =\r\n        'block';\r\n\r\n      mapNote.textContent =\r\n        allHotels.length\r\n          ? 'Sta\u00f0setning \u00e1 korti er ekki tilt\u00e6k fyrir h\u00f3telin sem eru s\u00fdnd.'\r\n          : 'Sta\u00f0setningar h\u00f3telanna birtast h\u00e9r \u00feegar h\u00f3telin hafa veri\u00f0 hla\u00f0in.';\r\n\r\n\r\n      hotelMap.setView(\r\n        [\r\n          25.2048,\r\n          55.2708\r\n        ],\r\n        10\r\n      );\r\n\r\n\r\n      return;\r\n\r\n    }\r\n\r\n\r\n    mapNote.style.display =\r\n      'none';\r\n\r\n\r\n    const bounds = [];\r\n\r\n\r\n    withCoordinates.forEach(\r\n      function(\r\n        hotel,\r\n        index\r\n      ) {\r\n\r\n\r\n        const marker =\r\n          window.L.marker(\r\n            [\r\n              hotel.latitude,\r\n              hotel.longitude\r\n            ],\r\n            {\r\n              icon:\r\n                markerIcon(\r\n                  hotel,\r\n                  index\r\n                )\r\n            }\r\n          );\r\n\r\n\r\n        marker.addTo(\r\n          hotelMap\r\n        );\r\n\r\n\r\n        marker.bindPopup(\r\n\r\n          '<div class=\"bno-stays-map-popup\">' +\r\n\r\n            '<strong>' +\r\n              esc(\r\n                hotel.name\r\n              ) +\r\n            '<\/strong>' +\r\n\r\n            '<span>' +\r\n              esc(\r\n                hotel.area ||\r\n                hotel.address ||\r\n                'Dubai'\r\n              ) +\r\n            '<\/span>' +\r\n\r\n            (\r\n              hotel.priceText\r\n\r\n                ? (\r\n                  '<span style=\"margin-top:6px;font-weight:800;color:#0C1A38;\">' +\r\n                    esc(\r\n                      hotel.priceText\r\n                    ) +\r\n                  '<\/span>'\r\n                )\r\n\r\n                : ''\r\n            ) +\r\n\r\n          '<\/div>'\r\n\r\n        );\r\n\r\n\r\n        marker.on(\r\n          'click',\r\n          function () {\r\n\r\n\r\n            section\r\n              .querySelectorAll(\r\n                '.bno-stays-hotel'\r\n              )\r\n              .forEach(\r\n                function(card) {\r\n\r\n                  card.classList.remove(\r\n                    'is-map-active'\r\n                  );\r\n\r\n                }\r\n              );\r\n\r\n\r\n            section\r\n              .querySelectorAll(\r\n                '.bno-stays-hotel'\r\n              )\r\n              .forEach(\r\n                function(card) {\r\n\r\n                  if (\r\n                    card.dataset.hotelId ===\r\n                    hotel.id\r\n                  ) {\r\n\r\n                    card.classList.add(\r\n                      'is-map-active'\r\n                    );\r\n\r\n                  }\r\n\r\n                }\r\n              );\r\n\r\n          }\r\n        );\r\n\r\n\r\n        markerRecords.push(\r\n          {\r\n            marker,\r\n            hotel,\r\n            index\r\n          }\r\n        );\r\n\r\n\r\n        bounds.push(\r\n          [\r\n            hotel.latitude,\r\n            hotel.longitude\r\n          ]\r\n        );\r\n\r\n      }\r\n    );\r\n\r\n\r\n    if (\r\n      bounds.length === 1\r\n    ) {\r\n\r\n      hotelMap.setView(\r\n        bounds[0],\r\n        14\r\n      );\r\n\r\n    } else {\r\n\r\n      hotelMap.fitBounds(\r\n        bounds,\r\n        {\r\n          padding:\r\n            [35,35],\r\n\r\n          maxZoom:\r\n            14\r\n        }\r\n      );\r\n\r\n    }\r\n\r\n  }\r\n\r\n\r\n  \/* =======================================================\r\n     MODAL\r\n     ======================================================= *\/\r\n\r\n  function renderGallery(\r\n    hotel\r\n  ) {\r\n\r\n    const images =\r\n      hotel.photos\r\n        .slice(\r\n          0,\r\n          5\r\n        );\r\n\r\n\r\n    if (\r\n      !images.length\r\n    ) {\r\n      return '';\r\n    }\r\n\r\n\r\n    return (\r\n\r\n      '<div class=\"bno-stays-gallery\">' +\r\n\r\n        images\r\n          .map(\r\n            function(image) {\r\n\r\n              return (\r\n\r\n                '<figure>' +\r\n\r\n                  '<img ' + 'src=\"' + esc(image) + '\" ' + 'alt=\"' + esc(hotel.name) + '\">' +\r\n\r\n                '<\/figure>'\r\n\r\n              );\r\n\r\n            }\r\n          )\r\n          .join('') +\r\n\r\n      '<\/div>'\r\n\r\n    );\r\n\r\n  }\r\n\r\n\r\n  function openHotel(\r\n    hotel\r\n  ) {\r\n\r\n    const stars =\r\n      renderStars(\r\n        hotel.rating\r\n      );\r\n\r\n\r\n    const scoreHtml =\r\n\r\n      hotel.reviewScore !== null\r\n\r\n        ? (\r\n          '<span class=\"bno-stays-score\">' +\r\n            esc(\r\n              hotel.reviewScore.toFixed(1)\r\n            ) +\r\n          '<\/span>'\r\n        )\r\n\r\n        : '';\r\n\r\n\r\n    const reviewCountHtml =\r\n\r\n      hotel.reviewCount !== null\r\n\r\n        ? (\r\n          '<span>' +\r\n            esc(\r\n              hotel.reviewCount\r\n            ) +\r\n            ' umsagnir' +\r\n          '<\/span>'\r\n        )\r\n\r\n        : '';\r\n\r\n\r\n    const sideHtml =\r\n\r\n      hotel.address\r\n\r\n        ? (\r\n          '<aside class=\"bno-stays-modal-side\">' +\r\n\r\n            '<strong>Heimilisfang<\/strong>' +\r\n\r\n            '<div class=\"bno-stays-modal-address\">' +\r\n              esc(\r\n                hotel.address\r\n              ) +\r\n            '<\/div>' +\r\n\r\n          '<\/aside>'\r\n        )\r\n\r\n        : '';\r\n\r\n\r\n    modalContent.innerHTML =\r\n\r\n      '<div class=\"bno-stays-modal-title\">' +\r\n\r\n        '<span class=\"bno-eyebrow\">' +\r\n          esc(\r\n            hotel.area ||\r\n            'Dubai'\r\n          ) +\r\n        '<\/span>' +\r\n\r\n        '<h2>' +\r\n          esc(\r\n            hotel.name\r\n          ) +\r\n        '<\/h2>' +\r\n\r\n        '<div class=\"bno-stays-modal-meta\">' +\r\n\r\n          (\r\n            stars\r\n\r\n              ? (\r\n                '<span class=\"bno-stays-modal-stars\">' +\r\n                  esc(stars) +\r\n                '<\/span>'\r\n              )\r\n\r\n              : ''\r\n          ) +\r\n\r\n          scoreHtml +\r\n\r\n          reviewCountHtml +\r\n\r\n        '<\/div>' +\r\n\r\n      '<\/div>' +\r\n\r\n\r\n      renderGallery(\r\n        hotel\r\n      ) +\r\n\r\n\r\n      '<div class=\"bno-stays-modal-grid\">' +\r\n\r\n        '<div class=\"bno-stays-modal-copy\">' +\r\n\r\n          '<h3>Um h\u00f3teli\u00f0<\/h3>' +\r\n\r\n          '<p>' +\r\n            esc(\r\n              hotel.description ||\r\n              'Frekari uppl\u00fdsingar um h\u00f3teli\u00f0 ver\u00f0a birtar flj\u00f3tlega.'\r\n            ) +\r\n          '<\/p>' +\r\n\r\n        '<\/div>' +\r\n\r\n        sideHtml +\r\n\r\n      '<\/div>' +\r\n\r\n\r\n      '<div class=\"bno-stays-room-coming\">' +\r\n\r\n        '<span class=\"bno-eyebrow\">' +\r\n          'Herbergi og dv\u00f6l' +\r\n        '<\/span>' +\r\n\r\n        '<h3>Herbergistegundir<\/h3>' +\r\n\r\n        '<div class=\"bno-stays-room-coming-box\">' +\r\n          'Uppl\u00fdsingar um herbergistegundir, ver\u00f0 og frambo\u00f0 ver\u00f0a birtar flj\u00f3tlega.' +\r\n        '<\/div>' +\r\n\r\n      '<\/div>';\r\n\r\n\r\n    oldOverflow =\r\n      document.documentElement.style.overflow;\r\n\r\n\r\n    document.documentElement.style.overflow =\r\n      'hidden';\r\n\r\n\r\n    modal.hidden =\r\n      false;\r\n\r\n  }\r\n\r\n\r\n  function closeModal() {\r\n\r\n    modal.hidden =\r\n      true;\r\n\r\n\r\n    document.documentElement.style.overflow =\r\n      oldOverflow;\r\n\r\n  }\r\n\r\n\r\n  \/* =======================================================\r\n     EVENTS\r\n     ======================================================= *\/\r\n\r\n  listEl.addEventListener(\r\n    'click',\r\n    function(event) {\r\n\r\n      const button =\r\n        event.target.closest(\r\n          '[data-open-hotel]'\r\n        );\r\n\r\n\r\n      if (!button) {\r\n        return;\r\n      }\r\n\r\n\r\n      const hotel =\r\n        allHotels.find(\r\n          hotel =>\r\n            hotel.id ===\r\n            button.dataset.openHotel\r\n        );\r\n\r\n\r\n      if (hotel) {\r\n\r\n        openHotel(\r\n          hotel\r\n        );\r\n\r\n      }\r\n\r\n    }\r\n  );\r\n\r\n\r\n  section\r\n    .querySelectorAll(\r\n      '[data-modal-close]'\r\n    )\r\n    .forEach(\r\n      function(element) {\r\n\r\n        element.addEventListener(\r\n          'click',\r\n          closeModal\r\n        );\r\n\r\n      }\r\n    );\r\n\r\n\r\n  document.addEventListener(\r\n    'keydown',\r\n    function(event) {\r\n\r\n      if (\r\n        event.key === 'Escape' &&\r\n        !modal.hidden\r\n      ) {\r\n\r\n        closeModal();\r\n\r\n      }\r\n\r\n    }\r\n  );\r\n\r\n\r\n  searchInput.addEventListener(\r\n    'input',\r\n    function() {\r\n\r\n      visibleCount =\r\n        initialCount;\r\n\r\n      render();\r\n\r\n    }\r\n  );\r\n\r\n\r\n  areaFilter.addEventListener(\r\n    'change',\r\n    function() {\r\n\r\n      visibleCount =\r\n        initialCount;\r\n\r\n      render();\r\n\r\n    }\r\n  );\r\n\r\n\r\n  starFilter.addEventListener(\r\n    'change',\r\n    function() {\r\n\r\n      visibleCount =\r\n        initialCount;\r\n\r\n      render();\r\n\r\n    }\r\n  );\r\n\r\n\r\n  moreButton.addEventListener(\r\n    'click',\r\n    function() {\r\n\r\n      visibleCount +=\r\n        initialCount;\r\n\r\n      render();\r\n\r\n    }\r\n  );\r\n\r\n\r\n  showListButton.addEventListener(\r\n    'click',\r\n    function() {\r\n\r\n      listColumn.classList.remove(\r\n        'is-mobile-hidden'\r\n      );\r\n\r\n      mapColumn.classList.remove(\r\n        'is-mobile-active'\r\n      );\r\n\r\n      showListButton.classList.add(\r\n        'is-active'\r\n      );\r\n\r\n      showMapButton.classList.remove(\r\n        'is-active'\r\n      );\r\n\r\n    }\r\n  );\r\n\r\n\r\n  showMapButton.addEventListener(\r\n    'click',\r\n    async function() {\r\n\r\n      listColumn.classList.add(\r\n        'is-mobile-hidden'\r\n      );\r\n\r\n      mapColumn.classList.add(\r\n        'is-mobile-active'\r\n      );\r\n\r\n      showMapButton.classList.add(\r\n        'is-active'\r\n      );\r\n\r\n      showListButton.classList.remove(\r\n        'is-active'\r\n      );\r\n\r\n\r\n      const hotelMap =\r\n        await ensureMap();\r\n\r\n\r\n      setTimeout(\r\n        function() {\r\n\r\n          if (hotelMap) {\r\n\r\n            hotelMap.invalidateSize();\r\n\r\n          }\r\n\r\n        },\r\n        120\r\n      );\r\n\r\n    }\r\n  );\r\n\r\n\r\n  \/* =======================================================\r\n     START\r\n     ======================================================= *\/\r\n\r\n  ensureMap();\r\n\r\n  loadInventory();\r\n\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-58ba70a elementor-widget elementor-widget-html\" data-id=\"58ba70a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section id=\"omrader\" class=\"bno-section bno-section--light\">\r\n  <div class=\"bno-shell\">\r\n\r\n    <div class=\"bno-section-heading\">\r\n\r\n      <span class=\"bno-eyebrow\">\r\n        Hvar viltu gista?\r\n      <\/span>\r\n\r\n      <h2>\r\n        Sko\u00f0a\u00f0u nokkur af vins\u00e6lustu sv\u00e6\u00f0um D\u00faba\u00ed\r\n      <\/h2>\r\n\r\n      <p>\r\n        D\u00faba\u00ed b\u00fd\u00f0ur upp \u00e1 mj\u00f6g \u00f3l\u00edk borgarhverfi og orlofssv\u00e6\u00f0i. Veldu sv\u00e6\u00f0i eftir \u00fev\u00ed hvort \u00fe\u00fa s\u00e6kist helst eftir st\u00f3rborgarl\u00edfi, verslunum, str\u00f6nd, veitingast\u00f6\u00f0um e\u00f0a r\u00f3legri b\u00e6kist\u00f6\u00f0.\r\n      <\/p>\r\n\r\n    <\/div>\r\n\r\n    <div class=\"bno-dubai-info-grid\">\r\n\r\n      <div class=\"bno-dubai-info-card\">\r\n        <h3>Downtown Dubai<\/h3>\r\n        <p>\r\n          Mi\u00f0l\u00e6gur kostur fyrir \u00fe\u00e1 sem vilja vera n\u00e1l\u00e6gt me\u00f0al annars Burj Khalifa, Dubai Mall, veitingast\u00f6\u00f0um og n\u00fat\u00edmalegu st\u00f3rborgarl\u00edfi.\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <div class=\"bno-dubai-info-card\">\r\n        <h3>Business Bay<\/h3>\r\n        <p>\r\n          N\u00fat\u00edmalegt sv\u00e6\u00f0i n\u00e1l\u00e6gt Downtown me\u00f0 h\u00f3telum, veitingast\u00f6\u00f0um, h\u00e1h\u00fdsum og g\u00f3\u00f0um samg\u00f6ngum til annarra hluta borgarinnar.\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <div class=\"bno-dubai-info-card\">\r\n        <h3>Dubai Marina & JBR<\/h3>\r\n        <p>\r\n          G\u00f3\u00f0ur kostur fyrir fer\u00f0amenn sem vilja g\u00f6ngusv\u00e6\u00f0i, str\u00f6nd, veitingasta\u00f0i og l\u00edflegt umhverfi einnig \u00e1 kv\u00f6ldin.\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <div class=\"bno-dubai-info-card\">\r\n        <h3>Jumeirah<\/h3>\r\n        <p>\r\n          Strandsv\u00e6\u00f0in \u00ed Jumeirah sameina str\u00f6nd, h\u00f3tel og veitingasta\u00f0i me\u00f0 grei\u00f0u a\u00f0gengi a\u00f0 m\u00f6rgum af \u00feekktustu upplifunum D\u00faba\u00ed.\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <div class=\"bno-dubai-info-card\">\r\n        <h3>Dubai Creek & Deira<\/h3>\r\n        <p>\r\n          H\u00e9r m\u00e6tir n\u00fat\u00edmaleg D\u00faba\u00ed eldri verslunarhverfum borgarinnar, m\u00f6rku\u00f0um og umhverfinu vi\u00f0 Dubai Creek.\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <div class=\"bno-dubai-info-card\">\r\n        <h3>Palm Jumeirah<\/h3>\r\n        <p>\r\n          Palm Jumeirah er einkum \u00feekkt fyrir dvalarsta\u00f0i, strandh\u00f3tel og orlofsdv\u00f6l \u00fear sem h\u00f3teli\u00f0 sj\u00e1lft er mikilv\u00e6gur hluti fer\u00f0arinnar.\r\n        <\/p>\r\n      <\/div>\r\n\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3242af7 elementor-widget elementor-widget-html\" data-id=\"3242af7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"bno-section bno-section--soft\">\r\n  <div class=\"bno-shell\">\r\n\r\n    <div class=\"bno-dubai-editorial\">\r\n\r\n      <div class=\"bno-dubai-editorial__content\">\r\n\r\n        <span class=\"bno-eyebrow\">\r\n          Upplif\u00f0u D\u00faba\u00ed\r\n        <\/span>\r\n\r\n        <div class=\"bno-section-heading\">\r\n          <h2>\r\n            Meira en bara h\u00f3teldv\u00f6l\r\n          <\/h2>\r\n        <\/div>\r\n\r\n        <p>\r\n          \u00cd D\u00faba\u00ed er h\u00e6gt a\u00f0 sameina mj\u00f6g \u00f3l\u00edkar orlofsupplifanir \u00ed s\u00f6mu fer\u00f0. Byrja\u00f0u daginn \u00e1 str\u00f6ndinni, eyddu s\u00ed\u00f0deginu \u00ed verslanir e\u00f0a sko\u00f0unarfer\u00f0ir og lj\u00faktu kv\u00f6ldinu \u00e1 veitingasta\u00f0 me\u00f0 \u00fats\u00fdni yfir borgina.\r\n        <\/p>\r\n\r\n        <p>\r\n          Fj\u00f6lskyldur finna b\u00e6\u00f0i strendur, gar\u00f0a og af\u00fereyingu, en p\u00f6r og vinah\u00f3par geta sameina\u00f0 h\u00f3teldv\u00f6lina vi\u00f0 veitingasta\u00f0i, verslanir, strandkl\u00fabba, b\u00e1tsfer\u00f0ir og upplifanir innan og utan borgarinnar.\r\n        <\/p>\r\n\r\n        <div class=\"bno-actions\">\r\n          <a href=\"#praktisk\" class=\"bno-btn bno-btn--primary\">\r\n            Sj\u00e1 hagn\u00fdtar uppl\u00fdsingar\r\n          <\/a>\r\n        <\/div>\r\n\r\n      <\/div>\r\n\r\n      <div class=\"bno-dubai-editorial__media\">\r\n        <span>\r\n          Dubai\r\n        <\/span>\r\n      <\/div>\r\n\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c2c24b1 elementor-widget elementor-widget-html\" data-id=\"c2c24b1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section id=\"praktisk\" class=\"bno-section bno-section--light\">\r\n  <div class=\"bno-shell\">\r\n\r\n    <div class=\"bno-section-heading\">\r\n\r\n      <span class=\"bno-eyebrow\">\r\n        Hagn\u00fdtar uppl\u00fdsingar\r\n      <\/span>\r\n\r\n      <h2>\r\n        Gott a\u00f0 vita fyrir dv\u00f6lina \u00ed D\u00faba\u00ed\r\n      <\/h2>\r\n\r\n      <p>\r\n        Val \u00e1 sv\u00e6\u00f0i, samg\u00f6ngum og \u00e1rst\u00edma hefur mikil \u00e1hrif \u00e1 hvernig \u00fe\u00fa upplifir D\u00faba\u00ed.\r\n      <\/p>\r\n\r\n    <\/div>\r\n\r\n    <div class=\"bno-dubai-info-grid\">\r\n\r\n      <div class=\"bno-dubai-info-card\">\r\n        <h3>Flugv\u00f6llur<\/h3>\r\n        <p>\r\n          Dubai International Airport er a\u00f0alflugv\u00f6llurinn fyrir al\u00fej\u00f3\u00f0lega fer\u00f0amenn. Fjarl\u00e6g\u00f0in a\u00f0 h\u00f3telinu er mj\u00f6g mismunandi eftir \u00fev\u00ed \u00e1 hva\u00f0a sv\u00e6\u00f0i \u00fe\u00fa velur a\u00f0 gista.\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <div class=\"bno-dubai-info-card\">\r\n        <h3>Samg\u00f6ngur<\/h3>\r\n        <p>\r\n          Me\u00f0 ne\u00f0anjar\u00f0arlest, leigub\u00edlum og b\u00edlaleigub\u00edlum er au\u00f0velt a\u00f0 fer\u00f0ast milli sv\u00e6\u00f0a. \u00cd sumum hlutum D\u00faba\u00ed eru \u00e1hugaver\u00f0ir sta\u00f0ir og veitingasta\u00f0ir \u00ed g\u00f6nguf\u00e6ri fr\u00e1 h\u00f3telinu.\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <div class=\"bno-dubai-info-card\">\r\n        <h3>Loftslag<\/h3>\r\n        <p>\r\n          \u00cd D\u00faba\u00ed er hl\u00fdtt loftslag st\u00f3ran hluta \u00e1rsins. Sumarm\u00e1nu\u00f0irnir geta veri\u00f0 mj\u00f6g heitir, en a\u00f0rir \u00e1rst\u00edmar henta betur til \u00fativistar og strandl\u00edfs.\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <div class=\"bno-dubai-info-card\">\r\n        <h3>Gjaldmi\u00f0ill<\/h3>\r\n        <p>\r\n          Gjaldmi\u00f0illinn er UAE-dirham, AED. Kortagrei\u00f0slur eru algengar \u00e1 h\u00f3telum, veitingast\u00f6\u00f0um, \u00ed verslunarmi\u00f0st\u00f6\u00f0vum og v\u00ed\u00f0a annars sta\u00f0ar.\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <div class=\"bno-dubai-info-card\">\r\n        <h3>Borg e\u00f0a str\u00f6nd?<\/h3>\r\n        <p>\r\n          Downtown og Business Bay henta vel fyrir borgardv\u00f6l, en Dubai Marina, JBR, Jumeirah og Palm Jumeirah veita grei\u00f0ari a\u00f0gang a\u00f0 str\u00f6ndinni og strandl\u00edfinu.\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <div class=\"bno-dubai-info-card\">\r\n        <h3>Veldu sv\u00e6\u00f0i\u00f0 fyrst<\/h3>\r\n        <p>\r\n          D\u00faba\u00ed n\u00e6r yfir st\u00f3rt landsv\u00e6\u00f0i. \u00dev\u00ed er skynsamlegt a\u00f0 \u00e1kve\u00f0a hva\u00f0a upplifanir skipta mestu m\u00e1li \u00e1\u00f0ur en \u00fe\u00fa velur h\u00f3teli\u00f0 og sv\u00e6\u00f0i\u00f0 sem henta fer\u00f0inni best.\r\n        <\/p>\r\n      <\/div>\r\n\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-20e8cfe elementor-widget elementor-widget-html\" data-id=\"20e8cfe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"bno-section bno-section--soft\">\r\n  <div class=\"bno-shell\">\r\n\r\n    <div class=\"bno-dubai-cta-box\">\r\n\r\n      <div>\r\n\r\n        <span class=\"bno-eyebrow\">\r\n          H\u00f3tel \u00ed D\u00faba\u00ed\r\n        <\/span>\r\n\r\n        <h2>\r\n          Finndu sv\u00e6\u00f0i\u00f0 og h\u00f3teli\u00f0 sem henta fer\u00f0inni \u00feinni\r\n        <\/h2>\r\n\r\n        <p>\r\n          Sko\u00f0a\u00f0u h\u00f3telin, ber\u00f0u saman sta\u00f0setningu og opna\u00f0u s\u00ed\u00f0u hvers h\u00f3tels til a\u00f0 f\u00e1 frekari uppl\u00fdsingar. Ver\u00f0 og frambo\u00f0 ver\u00f0a s\u00fdnileg \u00feegar b\u00f3kanir \u00e1 h\u00f3telum \u00ed D\u00faba\u00ed opna hj\u00e1 BNO Travel.\r\n        <\/p>\r\n\r\n      <\/div>\r\n\r\n      <div class=\"bno-actions\">\r\n        <a href=\"#hoteller\" class=\"bno-btn bno-btn--primary\">\r\n          Sko\u00f0a h\u00f3telin\r\n        <\/a>\r\n      <\/div>\r\n\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/section>\r\n\r\n<\/div>\t\t\t\t<\/div>\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>Finndu h\u00f3tel \u00ed D\u00faba\u00ed me\u00f0 myndum, kortum, ums\u00f6gnum gesta og herbergistegundum. Sko\u00f0a\u00f0u Downtown, Marina, Jumeirah, Business Bay og fleiri sv\u00e6\u00f0i me\u00f0 BNO Travel.<\/p>\n","protected":false},"author":260013438,"featured_media":97076,"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":"H\u00f3tel \u00ed D\u00faba\u00ed | Ber\u00f0u saman h\u00f3tel | BNO Travel","rank_math_description":"H\u00f3tel \u00ed D\u00faba\u00ed: Ber\u00f0u saman sta\u00f0setningu, herbergistegundir, a\u00f0st\u00f6\u00f0u og h\u00f3teluppl\u00fdsingar. Sko\u00f0a\u00f0u gistingu og skipulegg\u00f0u dv\u00f6lina me\u00f0 BNO Travel.","rank_math_focus_keyword":"H\u00f3tel \u00ed D\u00faba\u00ed","_dpc-meta-title":"","_dpc-meta-description":"","_dpc-keyword":""},"class_list":["post-97987","page","type-page","status-publish","has-post-thumbnail","hentry"],"jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/PgDuwj-pur","jetpack-related-posts":[{"id":97726,"url":"https:\/\/bno-travel.com\/en\/hotels-in-dubai\/","url_meta":{"origin":97987,"position":0},"title":"Hotels in Dubai \u2013 find hotels and areas | BNO Travel","author":"Jan Terje \u00c5s","date":"11. september, 2026","format":false,"excerpt":"Find hotels in Dubai with photos, maps, guest reviews and room types. Explore Downtown, Marina, Jumeirah, Business Bay and more areas with BNO Travel.","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_624418872.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_624418872.jpeg?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_624418872.jpeg?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_624418872.jpeg?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_624418872.jpeg?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":98089,"url":"https:\/\/bno-travel.com\/nl\/hoteller-i-dubai\/","url_meta":{"origin":97987,"position":1},"title":"Hotels in Dubai \u2013 vind hotels en gebieden | BNO Travel","author":"Jan Terje \u00c5s","date":"11. september, 2026","format":false,"excerpt":"Vind hotels in Dubai met foto's, kaarten, gastenbeoordelingen en kamertypes. Ontdek Downtown, Marina, Jumeirah, Business Bay en meer gebieden met BNO Travel.","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_624418872.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_624418872.jpeg?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_624418872.jpeg?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_624418872.jpeg?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_624418872.jpeg?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":98395,"url":"https:\/\/bno-travel.com\/de\/hotels-in-dubai\/","url_meta":{"origin":97987,"position":2},"title":"Hotels in Dubai \u2013 Hotels und Stadtteile finden | BNO Travel","author":"Jan Terje \u00c5s","date":"11. september, 2026","format":false,"excerpt":"Finden Sie Hotels in Dubai mit Bildern, Karten, G\u00e4stebewertungen und Zimmertypen. Entdecken Sie Downtown, Marina, Jumeirah, Business Bay und weitere Viertel mit BNO Travel.","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_624418872.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_624418872.jpeg?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_624418872.jpeg?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_624418872.jpeg?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_624418872.jpeg?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":97834,"url":"https:\/\/bno-travel.com\/da\/hoteller-i-dubai\/","url_meta":{"origin":97987,"position":3},"title":"Hoteller i Dubai \u2013 find hoteller og omr\u00e5der | BNO Travel","author":"Jan Terje \u00c5s","date":"11. september, 2026","format":false,"excerpt":"Find hoteller i Dubai med billeder, kort, g\u00e6steanmeldelser og v\u00e6relsestyper. Udforsk Downtown, Marina, Jumeirah, Business Bay og flere omr\u00e5der hos BNO Travel.","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_624418872.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_624418872.jpeg?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_624418872.jpeg?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_624418872.jpeg?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_624418872.jpeg?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":97229,"url":"https:\/\/bno-travel.com\/hoteller-i-dubai\/","url_meta":{"origin":97987,"position":4},"title":"Hoteller i Dubai \u2013 finn hotell og omr\u00e5der | BNO Travel","author":"Jan Terje \u00c5s","date":"11. september, 2026","format":false,"excerpt":"Finn hoteller i Dubai med bilder, kart, gjestevurderinger og romtyper. Utforsk Downtown, Marina, Jumeirah, Business Bay og flere omr\u00e5der med BNO Travel.","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"Hoteller i Dubai \u2013 Jumeirah Beach og Dubais skyline ved solnedgang","src":"https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_624418872.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_624418872.jpeg?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_624418872.jpeg?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_624418872.jpeg?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_624418872.jpeg?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":98295,"url":"https:\/\/bno-travel.com\/sv\/hotell-i-dubai\/","url_meta":{"origin":97987,"position":5},"title":"Hotell i Dubai \u2013 hitta hotell och omr\u00e5den | BNO Travel","author":"Jan Terje \u00c5s","date":"11. september, 2026","format":false,"excerpt":"Hitta hotell i Dubai med bilder, kartor, g\u00e4strecensioner och rumstyper. Utforska Downtown, Marina, Jumeirah, Business Bay och fler omr\u00e5den med BNO Travel.","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_624418872.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_624418872.jpeg?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_624418872.jpeg?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_624418872.jpeg?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/bno-travel.com\/wp-content\/uploads\/2026\/09\/AdobeStock_624418872.jpeg?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/bno-travel.com\/is\/wp-json\/wp\/v2\/pages\/97987","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bno-travel.com\/is\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bno-travel.com\/is\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bno-travel.com\/is\/wp-json\/wp\/v2\/users\/260013438"}],"replies":[{"embeddable":true,"href":"https:\/\/bno-travel.com\/is\/wp-json\/wp\/v2\/comments?post=97987"}],"version-history":[{"count":1,"href":"https:\/\/bno-travel.com\/is\/wp-json\/wp\/v2\/pages\/97987\/revisions"}],"predecessor-version":[{"id":97988,"href":"https:\/\/bno-travel.com\/is\/wp-json\/wp\/v2\/pages\/97987\/revisions\/97988"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bno-travel.com\/is\/wp-json\/wp\/v2\/media\/97076"}],"wp:attachment":[{"href":"https:\/\/bno-travel.com\/is\/wp-json\/wp\/v2\/media?parent=97987"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}