{"id":5475,"date":"2026-09-01T08:51:50","date_gmt":"2026-09-01T01:51:50","guid":{"rendered":"https:\/\/mhg.co.th\/xenhotelnakhonpathom\/?page_id=5475"},"modified":"2026-09-01T08:54:48","modified_gmt":"2026-09-01T01:54:48","slug":"offers","status":"publish","type":"page","link":"https:\/\/mhg.co.th\/xenhotelnakhonpathom\/offers\/","title":{"rendered":"offers"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"5475\" class=\"elementor elementor-5475\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-ba71b41 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"ba71b41\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-82cc922\" data-id=\"82cc922\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5716cf9 elementor-widget elementor-widget-html\" data-id=\"5716cf9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!--\n  XEN HOTEL NAKHON PATHOM \u2014 OFFERS PAGE\n  WordPress \/ Elementor HTML widget fragment\n  Layout reference: ref\/offer-ref.html\n  Copy source: XEN_NakhonPathom_Website_Brief.docx\n  Image source: XEN_NakhonPathom_Website_Images_by_Page.xlsx\n-->\n<style>\n      * { font-family: 'Noto Sans Thai', sans-serif !important; }\n      @import url('https:\/\/fonts.googleapis.com\/css2?family=Noto+Sans+Thai:wght@300;400;500;600;700&display=swap');\n  @import url('https:\/\/fonts.googleapis.com\/css2?family=Kanit:wght@300;400;500;600&family=Montserrat:wght@400;500;600&display=swap');\n\n  .xen-offers {\n    --xen-blue: #8dc8e8;\n    --xen-blue-strong: #76b7d9;\n    --xen-teal: #2860a3;\n    --xen-ink: #2d2926;\n    --xen-muted: #73787b;\n    --xen-line: #dbe3e6;\n    --xen-soft: #f4f8f9;\n    --xen-white: #fff;\n    --xen-display: 'Noto Sans Thai', sans-serif;\n    --xen-body: 'Noto Sans Thai', sans-serif;\n    width: 100%;\n    overflow: hidden;\n    background: var(--xen-white);\n    color: var(--xen-ink);\n    font-family: 'Noto Sans Thai', sans-serif;\n    font-size: 16px;\n    font-weight: 300;\n    line-height: 1.7;\n  }\n\n  .xen-offers,\n  .xen-offers * {\n    box-sizing: border-box;\n  }\n\n  .xen-offers a {\n    color: inherit;\n    text-decoration: none;\n  }\n\n  .xen-offers button,\n  .xen-offers input,\n  .xen-offers select {\n    font: inherit;\n  }\n\n  .xen-offers button {\n    color: inherit;\n  }\n\n  .xen-offers img {\n    display: block;\n    width: 100%;\n    max-width: 100%;\n  }\n\n  .xen-offers :focus-visible {\n    outline: 3px solid rgba(141, 200, 232, .72);\n    outline-offset: 3px;\n  }\n\n  .xen-offers__shell {\n    width: min(1160px, calc(100% - 48px));\n    margin-inline: auto;\n  }\n\n  .xen-offers__hero {\n    position: relative;\n    min-height: 700px; max-height: 700px; height: 700px;\n    isolation: isolate;\n    display: grid;\n    place-items: center;\n    background-image: url('https:\/\/www.xenhotel-nakhonpathom.com\/wp-content\/uploads\/2026\/03\/24-HOUR-STAY-PACKET.jpg');\n    background-position: center 43%;\n    background-size: cover;\n  }\n\n  .xen-offers__hero::before {\n    content: '';\n    position: absolute;\n    inset: 0;\n    z-index: -1;\n    background: linear-gradient(180deg, rgba(13, 35, 40, .10), rgba(13, 35, 40, .44));\n  }\n\n  .xen-offers__hero h1 {\n    width: min(940px, calc(100% - 40px));\n    margin: 0 0 36px;\n    color: var(--xen-white);\n    font-family: 'Noto Sans Thai', sans-serif;\n    font-size: clamp(38px, 5vw, 66px);\n    font-weight: 400;\n    line-height: 1.12;\n    letter-spacing: .025em;\n    text-align: center;\n    text-shadow: 0 4px 22px rgba(8, 27, 32, .28);\n  }\n\n  .xen-offers__booking-wrap {\n    position: relative;\n    z-index: 4;\n    margin-top: -62px;\n  }\n\n  .xen-offers__booking {\n    display: grid;\n    grid-template-columns: 1fr 1fr .8fr auto;\n    align-items: end;\n    gap: 24px;\n    padding: 27px 30px;\n    background: rgba(255, 255, 255, .98);\n    box-shadow: 0 16px 42px rgba(20, 59, 68, .14);\n  }\n\n  .xen-offers__field {\n    border-bottom: 1px solid var(--xen-line);\n    padding-bottom: 10px;\n  }\n\n  .xen-offers__field label {\n    display: block;\n    margin-bottom: 8px;\n    color: var(--xen-muted);\n    font-family: 'Noto Sans Thai', sans-serif;\n    font-size: 9px;\n    font-weight: 500;\n    letter-spacing: .18em;\n    text-transform: uppercase;\n  }\n\n  .xen-offers__field input,\n  .xen-offers__field select {\n    width: 100%;\n    min-height: 28px;\n    border: 0;\n    padding: 0;\n    background: transparent;\n    color: var(--xen-ink);\n    outline: 0;\n  }\n\n  .xen-offers__booking-submit {\n    min-height: 54px;\n    border: 1px solid var(--xen-blue-strong);\n    padding: 13px 30px;\n    background: var(--xen-blue-strong);\n    color: var(--xen-white);\n    font-family: 'Noto Sans Thai', sans-serif;\n    font-size: 10px;\n    font-weight: 500;\n    letter-spacing: .16em;\n    text-transform: uppercase;\n    cursor: pointer;\n    transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease;\n  }\n\n  .xen-offers__booking-submit:hover {\n    border-color: var(--xen-teal);\n    background: var(--xen-teal);\n    transform: translateY(-2px);\n  }\n\n  .xen-offers__content {\n    padding: 118px 0 120px;\n  }\n\n  .xen-offers__heading {\n    margin-bottom: 38px;\n    text-align: center;\n  }\n\n  .xen-offers__heading h2 {\n    margin: 0;\n    font-family: 'Noto Sans Thai', sans-serif;\n    font-size: clamp(30px, 4vw, 50px);\n    font-weight: 500;\n    line-height: 1.15;\n    letter-spacing: .025em;\n  }\n\n  .xen-offers__accent {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 6px;\n    margin-top: 17px;\n  }\n\n  .xen-offers__accent span {\n    width: 5px;\n    height: 5px;\n    border-radius: 50%;\n    background: var(--xen-blue);\n  }\n\n  .xen-offers__accent span:nth-child(4) {\n    width: 34px;\n    border-radius: 3px;\n    background: var(--xen-blue-strong);\n  }\n\n  .xen-offers__filters {\n    display: grid;\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n    max-width: 760px;\n    margin: 0 auto 56px;\n  }\n\n  .xen-offers__filter {\n    min-height: 54px;\n    border: 1px solid transparent;\n    background: transparent;\n    color: #93989b;\n    font-family: 'Noto Sans Thai', sans-serif;\n    font-size: 13px;\n    font-weight: 500;\n    letter-spacing: .04em;\n    cursor: pointer;\n    transition: border-color 180ms ease, color 180ms ease, background-color 180ms ease;\n  }\n\n  .xen-offers__filter:hover,\n  .xen-offers__filter.is-active {\n    border-color: var(--xen-blue);\n    background: var(--xen-white);\n    color: var(--xen-blue-strong);\n  }\n\n  .xen-offers__grid {\n    display: grid;\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n    gap: 62px 40px;\n  }\n\n  .xen-offers__card[hidden] {\n    display: none;\n  }\n\n  .xen-offers__card-link {\n    display: block;\n  }\n\n  .xen-offers__image {\n    position: relative;\n    aspect-ratio: 1.6 \/ 1;\n    overflow: hidden;\n    background: var(--xen-soft);\n  }\n\n  .xen-offers__image img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    transition: transform 420ms cubic-bezier(.2, .7, .2, 1);\n  }\n\n  .xen-offers__card-link:hover .xen-offers__image img {\n    transform: scale(1.035);\n  }\n\n  .xen-offers__card-content {\n    padding-top: 21px;\n  }\n\n  .xen-offers__meta {\n    display: block;\n    margin-bottom: 12px;\n    color: var(--xen-blue-strong);\n    font-family: 'Noto Sans Thai', sans-serif;\n    font-size: 10px;\n    font-weight: 500;\n    letter-spacing: .12em;\n    text-transform: uppercase;\n  }\n\n  .xen-offers__card h3 {\n    margin: 0;\n    font-family: 'Noto Sans Thai', sans-serif;\n    font-size: clamp(21px, 2vw, 29px);\n    font-weight: 500;\n    line-height: 1.32;\n    letter-spacing: .02em;\n  }\n\n  .xen-offers__tag {\n    display: inline-block;\n    margin-top: 17px;\n    color: var(--xen-muted);\n    font-family: 'Noto Sans Thai', sans-serif;\n    font-size: 11px;\n    letter-spacing: .035em;\n  }\n\n  .xen-offers__card-rule {\n    width: 100%;\n    height: 1px;\n    margin-top: 21px;\n    background: var(--xen-line);\n    transition: background-color 180ms ease;\n  }\n\n  .xen-offers__card-link:hover .xen-offers__card-rule {\n    background: var(--xen-blue-strong);\n  }\n\n  .xen-offers__empty {\n    grid-column: 1 \/ -1;\n    margin: 0;\n    padding: 60px 20px;\n    color: var(--xen-muted);\n    text-align: center;\n  }\n\n  .xen-offers__sr-only {\n    position: absolute;\n    width: 1px;\n    height: 1px;\n    margin: -1px;\n    overflow: hidden;\n    clip: rect(0, 0, 0, 0);\n    white-space: nowrap;\n  }\n\n  @media (max-width: 980px) {\n    .xen-offers__booking {\n      grid-template-columns: 1fr 1fr;\n    }\n\n    .xen-offers__booking-submit {\n      grid-column: 1 \/ -1;\n    }\n\n    .xen-offers__grid {\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n    }\n  }\n\n  @media (max-width: 680px) {\n    .xen-offers {\n      font-size: 15px;\n    }\n\n    .xen-offers__shell {\n      width: min(100% - 32px, 1160px);\n    }\n\n    .xen-offers__hero {\n      min-height: 410px;\n      background-position: 56% center;\n    }\n\n    .xen-offers__hero h1 {\n      margin-bottom: 48px;\n      font-size: clamp(32px, 10vw, 44px);\n    }\n\n    .xen-offers__booking-wrap {\n      margin-top: -30px;\n    }\n\n    .xen-offers__booking {\n      grid-template-columns: 1fr;\n      gap: 18px;\n      padding: 24px 20px;\n    }\n\n    .xen-offers__booking-submit {\n      grid-column: auto;\n    }\n\n    .xen-offers__content {\n      padding: 84px 0 82px;\n    }\n\n    .xen-offers__filters {\n      grid-template-columns: 1fr;\n      gap: 8px;\n      margin-bottom: 42px;\n    }\n\n    .xen-offers__filter {\n      min-height: 48px;\n    }\n\n    .xen-offers__grid {\n      grid-template-columns: 1fr;\n      gap: 48px;\n    }\n  }\n\n  @media (prefers-reduced-motion: reduce) {\n    .xen-offers *,\n    .xen-offers *::before,\n    .xen-offers *::after {\n      scroll-behavior: auto !important;\n      transition-duration: .001ms !important;\n      animation-duration: .001ms !important;\n    }\n  }\n  \/* XEN Booking Form in Hero *\/\n  .xen-booking-hero {\n    --xen-teal: #2860a3;\n    --xen-teal-dark: #1e4a7a;\n    --xen-muted: #6f7477;\n    --xen-line: #d9e2e5;\n    position: absolute;\n    bottom: 60px; left: 50%; transform: translateX(-50%);\n    z-index: 10; background: rgba(255,255,255,.96); backdrop-filter: blur(6px);\n    padding: 18px 24px; display: grid; grid-template-columns: 1.2fr 1.2fr 1fr 1fr auto;\n    gap: 18px; align-items: center; border-radius: 6px;\n    max-width: min(980px, calc(100% - 32px)); width: 100%;\n    box-shadow: 0 16px 40px rgba(0,0,0,.18);\n  }\n  .xen-booking-hero label { display: block; font-size: 10px; letter-spacing: .22em; text-transform: uppercase; color: var(--xen-muted,#757575); margin-bottom: 6px; font-weight: 400; font-family: 'Noto Sans Thai', sans-serif; }\n  .xen-booking-hero input { width: 100%; border: none; background: transparent; font-family: 'Noto Sans Thai', sans-serif; font-size: 14px; color: #030303 !important; -webkit-text-fill-color: #030303 !important; padding: 0; outline: none; }\n  .xen-booking-hero input[type=\"date\"] { color: #030303 !important; -webkit-text-fill-color: #030303 !important; min-height: 20px !important; line-height: 1.4 !important; opacity: 1 !important; }\n  .xen-booking-hero input::-webkit-date-and-time-value { color: #030303 !important; text-align: left !important; opacity: 1 !important; }\n  .xen-booking-hero input::-webkit-datetime-edit,\n  .xen-booking-hero input::-webkit-datetime-edit-fields-wrapper,\n  .xen-booking-hero input::-webkit-datetime-edit-text,\n  .xen-booking-hero input::-webkit-datetime-edit-month-field,\n  .xen-booking-hero input::-webkit-datetime-edit-day-field,\n  .xen-booking-hero input::-webkit-datetime-edit-year-field { color: #030303 !important; -webkit-text-fill-color: #030303 !important; opacity: 1 !important; }\n  .xen-booking-hero__field { border-right: 1px solid var(--xen-line,#ddd); padding-right: 18px; }\n  .xen-booking-hero__field:last-of-type { border-right: none; }\n  .xen-bk-stepper { display: flex; align-items: center; gap: 14px; }\n  .xen-bk-stepper__btn { width: 32px; height: 32px; flex: 0 0 32px; display: inline-flex; align-items: center; justify-content: center; padding: 0 !important; margin: 0 !important; border: 1px solid var(--xen-teal) !important; background: transparent !important; color: var(--xen-teal) !important; border-radius: 50% !important; box-shadow: none !important; font-size: 18px; line-height: 1; font-weight: 500; cursor: pointer; transition: background .2s ease, color .2s ease; }\n  .xen-bk-stepper__btn:hover { background: var(--xen-teal) !important; color: #fff !important; }\n  .xen-bk-stepper__btn:disabled { opacity: .3; cursor: not-allowed; }\n  .xen-bk-stepper__val { min-width: 22px; text-align: center; font-size: 15px; font-weight: 600; color: #030303; }\n  .xen-booking-hero .xen-bk-btn { white-space: nowrap; padding: 15px 30px; background: var(--xen-teal); color: #fff; border: none; border-radius: 4px; font-weight: 500; cursor: pointer; transition: background .2s; font-family: 'Noto Sans Thai', sans-serif; }\n  .xen-booking-hero .xen-bk-btn:hover { background: var(--xen-teal-dark); }\n  @media (max-width: 900px) {\n    .xen-booking-hero { grid-template-columns: 1fr 1fr; max-width: calc(100% - 28px); gap: 16px 18px; bottom: 32px; }\n    .xen-booking-hero__field { border-right: none; padding-right: 0; }\n    .xen-booking-hero .xen-bk-btn { grid-column: 1 \/ -1; width: 100%; }\n  }\n  @media (max-width: 520px) {\n    .xen-booking-hero { grid-template-columns: 1fr; bottom: 20px; padding: 16px 18px; gap: 14px; }\n  }\n<\/style>\n\n<div class=\"xen-offers\" id=\"xen-offers\">\n  <section class=\"xen-offers__hero\" aria-labelledby=\"xen-offers-title\">\n    <form action=\"https:\/\/reservation.travelanium.net\/propertyibe2\/\" target=\"_blank\" class=\"xen-booking-hero\" id=\"xen-offers-booking-form\">\n      <input type=\"hidden\" name=\"propertyId\" value=\"536\">\n      <input type=\"hidden\" name=\"onlineId\" value=\"22\">\n      \n      <div class=\"xen-booking-hero__field\">\n        <label for=\"xen-of-checkin\">Check-in<\/label>\n        <input type=\"date\" id=\"xen-of-checkin\" name=\"checkin\" required>\n      <\/div>\n      <div class=\"xen-booking-hero__field\">\n        <label for=\"xen-of-checkout\">Check-out<\/label>\n        <input type=\"date\" id=\"xen-of-checkout\" name=\"checkout\" required>\n      <\/div>\n      <div class=\"xen-booking-hero__field\">\n        <label>Rooms<\/label>\n        <div class=\"xen-bk-stepper\">\n          <button type=\"button\" class=\"xen-bk-stepper__btn\" data-step=\"-1\" aria-label=\"Decrease rooms\">\u2212<\/button>\n          <span class=\"xen-bk-stepper__val\">1<\/span>\n          <button type=\"button\" class=\"xen-bk-stepper__btn\" data-step=\"1\" aria-label=\"Increase rooms\">+<\/button>\n          <input type=\"hidden\" name=\"room\" value=\"1\">\n        <\/div>\n      <\/div>\n      <div class=\"xen-booking-hero__field\">\n        <label>Guests<\/label>\n        <div class=\"xen-bk-stepper\">\n          <button type=\"button\" class=\"xen-bk-stepper__btn\" data-step=\"-1\" aria-label=\"Decrease guests\">\u2212<\/button>\n          <span class=\"xen-bk-stepper__val\">2<\/span>\n          <button type=\"button\" class=\"xen-bk-stepper__btn\" data-step=\"1\" aria-label=\"Increase guests\">+<\/button>\n          <input type=\"hidden\" name=\"guest\" value=\"2\">\n        <\/div>\n      <\/div>\n      <button type=\"submit\" class=\"xen-bk-btn\">Book Now<\/button>\n    <\/form>\n  <\/section>\n\n\n  <div class=\"xen-offers__shell xen-offers__booking-wrap\" style=\"display:none\">\n    <form class=\"xen-offers__booking\" data-xen-offers-booking>\n      <div class=\"xen-offers__field\">\n        <label for=\"xen-offers-checkin\">Check in<\/label>\n        <input id=\"xen-offers-checkin\" name=\"check-in\" type=\"date\" required data-xen-offers-checkin>\n      <\/div>\n      <div class=\"xen-offers__field\">\n        <label for=\"xen-offers-checkout\">Check out<\/label>\n        <input id=\"xen-offers-checkout\" name=\"check-out\" type=\"date\" required data-xen-offers-checkout>\n      <\/div>\n      <div class=\"xen-offers__field\">\n        <label for=\"xen-offers-guests\">Guests<\/label>\n        <select id=\"xen-offers-guests\" name=\"guests\">\n          <option>2 Adults<\/option>\n          <option>1 Adult<\/option>\n          <option>2 Adults, 1 Child<\/option>\n          <option>2 Adults, 2 Children<\/option>\n          <option>3 Adults<\/option>\n          <option>4 Adults<\/option>\n        <\/select>\n      <\/div>\n      <button class=\"xen-offers__booking-submit\" type=\"submit\">Check Availability<\/button>\n    <\/form>\n  <\/div>\n\n  <main class=\"xen-offers__content\">\n    <div class=\"xen-offers__shell\">\n      <div class=\"xen-offers__heading\">\n        <h2>Special Offers<\/h2>\n        <div class=\"xen-offers__accent\" aria-hidden=\"true\"><span><\/span><span><\/span><span><\/span><span><\/span><span><\/span><span><\/span><span><\/span><\/div>\n      <\/div>\n\n      <div class=\"xen-offers__filters\" role=\"group\" aria-label=\"Filter special offers\">\n        <button class=\"xen-offers__filter is-active\" type=\"button\" data-xen-offer-filter=\"all\" aria-pressed=\"true\">All<\/button>\n        <button class=\"xen-offers__filter\" type=\"button\" data-xen-offer-filter=\"room\" aria-pressed=\"false\">Room Offers<\/button>\n        <button class=\"xen-offers__filter\" type=\"button\" data-xen-offer-filter=\"dining\" aria-pressed=\"false\">Dining Offers<\/button>\n      <\/div>\n\n      <div class=\"xen-offers__grid\" data-xen-offer-grid id=\"xen-offers-grid\">\n        <div id=\"offers-loader\" style=\"text-align: center; padding: 2em; color: var(--xen-muted);\">\u0e01\u0e33\u0e25\u0e31\u0e07\u0e42\u0e2b\u0e25\u0e14\u0e42\u0e1b\u0e23\u0e42\u0e21\u0e0a\u0e31\u0e48\u0e19...<\/div>\n      <\/div>\n  <\/main>\n<\/div>\n\n<script>\n  (function () {\n    function initXenOffers() {\n      var root = document.getElementById('xen-offers');\n      if (!root || root.dataset.ready === 'true') return;\n      root.dataset.ready = 'true';\n\n      var booking = root.querySelector('[data-xen-offers-booking]');\n      var checkIn = root.querySelector('[data-xen-offers-checkin]');\n      var checkOut = root.querySelector('[data-xen-offers-checkout]');\n      var bookingUrl = 'https:\/\/reservation.travelanium.net\/propertyibe2\/?propertyId=536&onlineId=22';\n\n      function formatDate(date) {\n        var year = date.getFullYear();\n        var month = String(date.getMonth() + 1).padStart(2, '0');\n        var day = String(date.getDate()).padStart(2, '0');\n        return year + '-' + month + '-' + day;\n      }\n\n      if (checkIn && checkOut) {\n        var today = new Date();\n        today.setHours(0, 0, 0, 0);\n        var tomorrow = new Date(today);\n        tomorrow.setDate(tomorrow.getDate() + 1);\n        checkIn.min = formatDate(today);\n        checkIn.value = formatDate(today);\n        checkOut.min = formatDate(tomorrow);\n        checkOut.value = formatDate(tomorrow);\n\n        checkIn.addEventListener('change', function () {\n          var nextDay = new Date(checkIn.value + 'T00:00:00');\n          nextDay.setDate(nextDay.getDate() + 1);\n          checkOut.min = formatDate(nextDay);\n          if (!checkOut.value || checkOut.value < checkOut.min) checkOut.value = checkOut.min;\n        });\n      }\n\n      if (booking) {\n        booking.addEventListener('submit', function (event) {\n          event.preventDefault();\n          window.open(bookingUrl, '_blank', 'noopener');\n        });\n      }\n\n      \n      var grid = root.querySelector('#xen-offers-grid');\n      var loader = root.querySelector('#offers-loader');\n      var filters = root.querySelectorAll('[data-xen-offer-filter]');\n      var status = root.querySelector('[aria-live=\"polite\"]');\n      var API_URL = 'https:\/\/www.xenhotel-nakhonpathom.com\/wp-json\/wp\/v2\/posts?_embed=true&per_page=100';\n      \n      var CACHE_KEY = 'xen_offers_cache';\n      var CACHE_TIME_KEY = 'xen_offers_cache_time';\n      var CACHE_DURATION = 10 * 60 * 1000; \/\/ 10 minutes\n\n      function decodeHTML(html) {\n        var txt = document.createElement('textarea');\n        txt.innerHTML = html;\n        return txt.value;\n      }\n\n      function renderOffers(posts) {\n        if (!grid) return;\n        grid.innerHTML = ''; \/\/ clear loader\n        var validPosts = 0;\n\n        posts.forEach(function(post) {\n          \/\/ XEN Categories: 43 = Room, 40 = Food & Beverage\n          var isRoom = post.categories && post.categories.includes(43);\n          var isDining = post.categories && post.categories.includes(40);\n          \n          if (!isRoom && !isDining) return; \/\/ skip if not offer\n          validPosts++;\n          \n          var categoryType = isRoom ? 'room' : 'dining';\n          var metaText = isRoom ? 'Room Offer' : 'Dining Offer';\n          var tagText = isRoom ? '#RoomOffers' : '#DiningOffers';\n          var imageUrl = '';\n          if (post._embedded && post._embedded['wp:featuredmedia'] && post._embedded['wp:featuredmedia'][0]) {\n            imageUrl = post._embedded['wp:featuredmedia'][0].source_url;\n          }\n\n          var article = document.createElement('article');\n          article.className = 'xen-offers__card';\n          article.dataset.xenOfferCategory = categoryType;\n\n          article.innerHTML = `\n            <a class=\"xen-offers__card-link\" href=\"${post.link}\" target=\"_blank\" rel=\"noopener\">\n              <div class=\"xen-offers__image\"><img decoding=\"async\" src=\"${imageUrl}\" alt=\"${decodeHTML(post.title.rendered)}\" loading=\"lazy\"><\/div>\n              <div class=\"xen-offers__card-content\">\n                <span class=\"xen-offers__meta\">${metaText}<\/span>\n                <h3>${decodeHTML(post.title.rendered)}<\/h3>\n                <span class=\"xen-offers__tag\">${tagText}<\/span>\n                <div class=\"xen-offers__card-rule\" aria-hidden=\"true\"><\/div>\n              <\/div>\n            <\/a>\n          `;\n          grid.appendChild(article);\n        });\n\n        if (validPosts === 0) {\n          grid.innerHTML = '<div style=\"text-align: center; padding: 2em; color: var(--xen-muted); grid-column: 1 \/ -1;\">\u0e44\u0e21\u0e48\u0e21\u0e35\u0e42\u0e1b\u0e23\u0e42\u0e21\u0e0a\u0e31\u0e48\u0e19\u0e43\u0e19\u0e02\u0e13\u0e30\u0e19\u0e35\u0e49<\/div>';\n        }\n\n        setupFilters();\n      }\n\n      function fetchOffers() {\n        var cached = localStorage.getItem(CACHE_KEY);\n        var timestamp = localStorage.getItem(CACHE_TIME_KEY);\n        var now = new Date().getTime();\n\n        if (cached && timestamp && (now - timestamp < CACHE_DURATION)) {\n          try {\n            var posts = JSON.parse(cached);\n            renderOffers(posts);\n            return;\n          } catch (e) {\n            console.error('Error parsing cache', e);\n          }\n        }\n\n        fetch(API_URL)\n          .then(function(response) {\n            if (!response.ok) throw new Error('Network response was not ok');\n            return response.json();\n          })\n          .then(function(posts) {\n            localStorage.setItem(CACHE_KEY, JSON.stringify(posts));\n            localStorage.setItem(CACHE_TIME_KEY, now);\n            renderOffers(posts);\n          })\n          .catch(function(error) {\n            console.error('Error fetching offers:', error);\n            if (loader) loader.innerHTML = '\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e42\u0e2b\u0e25\u0e14\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e42\u0e1b\u0e23\u0e42\u0e21\u0e0a\u0e31\u0e48\u0e19\u0e44\u0e14\u0e49 \u0e01\u0e23\u0e38\u0e13\u0e32\u0e25\u0e2d\u0e07\u0e43\u0e2b\u0e21\u0e48\u0e2d\u0e35\u0e01\u0e04\u0e23\u0e31\u0e49\u0e07';\n          });\n      }\n\n      function setupFilters() {\n        var cards = root.querySelectorAll('.xen-offers__card');\n        filters.forEach(function (button) {\n          button.addEventListener('click', function () {\n            var selected = button.dataset.xenOfferFilter;\n            var visible = 0;\n\n            filters.forEach(function (filter) {\n              var isActive = filter === button;\n              filter.classList.toggle('is-active', isActive);\n              filter.setAttribute('aria-pressed', String(isActive));\n            });\n\n            cards.forEach(function (card) {\n              var show = selected === 'all' || card.dataset.xenOfferCategory === selected;\n              card.hidden = !show;\n              if (show) visible += 1;\n            });\n\n            if (status) status.textContent = 'Showing ' + visible + (visible === 1 ? ' offer' : ' offers');\n          });\n        });\n      }\n\n      fetchOffers();\n    }\n\n    if (document.readyState === 'loading') {\n      document.addEventListener('DOMContentLoaded', initXenOffers);\n    } else {\n      initXenOffers();\n    }\n  })();\n<\/script>\n\n<script>\n  (function () {\n    function initOffersBooking() {\n      var form = document.getElementById('xen-offers-booking-form');\n      if (!form) return;\n      var today = new Date();\n      var tomorrow = new Date(); tomorrow.setDate(today.getDate() + 1);\n      function fmt(d) { return d.getFullYear() + '-' + String(d.getMonth()+1).padStart(2,'0') + '-' + String(d.getDate()).padStart(2,'0'); }\n      var ci = form.querySelector('#xen-of-checkin');\n      var co = form.querySelector('#xen-of-checkout');\n      if (ci && co) {\n        ci.min = fmt(today); ci.value = fmt(today);\n        co.min = fmt(tomorrow); co.value = fmt(tomorrow);\n        ci.addEventListener('change', function () {\n          var d = new Date(this.value); d.setDate(d.getDate()+1);\n          co.min = fmt(d);\n          if (new Date(co.value) <= new Date(this.value)) co.value = fmt(d);\n        });\n      }\n      form.querySelectorAll('.xen-bk-stepper').forEach(function (s) {\n        var btns = s.querySelectorAll('.xen-bk-stepper__btn');\n        var val = s.querySelector('.xen-bk-stepper__val');\n        var hidden = s.querySelector('input[type=\"hidden\"]');\n        var min = 1, max = 10;\n        function upd(n) { val.textContent = n; hidden.value = n; btns[0].disabled = n<=min; btns[1].disabled = n>=max; }\n        btns.forEach(function (b) {\n          b.addEventListener('click', function () {\n            var n = parseInt(hidden.value,10) + parseInt(this.dataset.step,10);\n            if (n>=min && n<=max) upd(n);\n          });\n        });\n        upd(parseInt(hidden.value,10));\n      });\n    }\n    if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', initOffersBooking);\n    else initOffersBooking();\n  })();\n<\/script>\n\n<!-- Mobile responsive hero -->\n<style>\n      * { font-family: 'Noto Sans Thai', sans-serif !important; }\n@media (max-width: 768px) {\n  .xen-offers__hero { height: 350px !important; min-height: 350px !important; max-height: 350px !important; }\n  .xen-offers__hero img { height: 350px !important; min-height: 350px !important; max-height: 350px !important; }\n}\n<\/style>\n\n\n<style>\n  .xen-home__hero, .xen-location__hero, .xen-awards__hero, .xen-weddings__hero, .xen-meetings__hero, .xen-facilities__hero, .xen-gallery__hero, .xen-dining__hero, .xen-offers__hero, .xen-rooms__hero, .xen-hero, .mrkc-wel-hero {\n    height: 700px !important;\n    min-height: 700px !important;\n    max-height: 700px !important;\n  }\n  .xen-home__hero img, .xen-location__hero img, .xen-awards__hero img, .xen-weddings__hero img, .xen-meetings__hero img, .xen-facilities__hero img, .xen-gallery__hero img, .xen-dining__hero img, .xen-offers__hero img, .xen-rooms__hero img, .xen-hero img, .mrkc-wel-hero img {\n    height: 700px !important;\n    min-height: 700px !important;\n    max-height: 700px !important;\n    object-fit: cover !important;\n  }\n<\/style>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Check-in Check-out Rooms \u2212 1 + Guests \u2212 2 + Book Now Ch [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-5475","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mhg.co.th\/xenhotelnakhonpathom\/wp-json\/wp\/v2\/pages\/5475","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mhg.co.th\/xenhotelnakhonpathom\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mhg.co.th\/xenhotelnakhonpathom\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mhg.co.th\/xenhotelnakhonpathom\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/mhg.co.th\/xenhotelnakhonpathom\/wp-json\/wp\/v2\/comments?post=5475"}],"version-history":[{"count":4,"href":"https:\/\/mhg.co.th\/xenhotelnakhonpathom\/wp-json\/wp\/v2\/pages\/5475\/revisions"}],"predecessor-version":[{"id":5482,"href":"https:\/\/mhg.co.th\/xenhotelnakhonpathom\/wp-json\/wp\/v2\/pages\/5475\/revisions\/5482"}],"wp:attachment":[{"href":"https:\/\/mhg.co.th\/xenhotelnakhonpathom\/wp-json\/wp\/v2\/media?parent=5475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}