{"id":158,"date":"2024-09-17T10:09:52","date_gmt":"2024-09-17T10:09:52","guid":{"rendered":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/?page_id=158"},"modified":"2026-06-05T08:46:49","modified_gmt":"2026-06-05T08:46:49","slug":"tarjoukset","status":"publish","type":"page","link":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/tarjoukset\/","title":{"rendered":"Tarjoukset"},"content":{"rendered":"\n<div class=\"wp-block-cover alignfull is-light cover-hero wp-duotone-unset-1\" style=\"margin-top:0px;margin-bottom:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;min-height:30vw;aspect-ratio:unset;\"><img loading=\"lazy\" decoding=\"async\" width=\"2200\" height=\"1650\" class=\"wp-block-cover__image-background wp-image-7413 size-full\" alt=\"&quot;&quot;\" src=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2026\/06\/hotel-levi-panorama-midnight-sun.jpg\" style=\"object-position:52% 71%\" data-object-fit=\"cover\" data-object-position=\"52% 71%\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2026\/06\/hotel-levi-panorama-midnight-sun.jpg 2200w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2026\/06\/hotel-levi-panorama-midnight-sun-300x225.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2026\/06\/hotel-levi-panorama-midnight-sun-1024x768.jpg 1024w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2026\/06\/hotel-levi-panorama-midnight-sun-768x576.jpg 768w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2026\/06\/hotel-levi-panorama-midnight-sun-1536x1152.jpg 1536w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2026\/06\/hotel-levi-panorama-midnight-sun-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 2200px) 100vw, 2200px\" \/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-black-background-color has-background-dim-0 has-background-dim\"><\/span><div class=\"wp-block-cover__inner-container is-layout-flow wp-container-core-cover-is-layout-6e17fc20 wp-block-cover-is-layout-flow\">\n<h1 class=\"wp-block-heading has-text-align-center\" id=\"h-\" style=\"font-size:70px\"><\/h1>\n\n\n\n<p><\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group hiddenx is-layout-constrained wp-container-core-group-is-layout-72190d31 wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<div class=\"mews-booking-engine2-bg\" onclick=\"mewsCalendar.clickMewsCloseCalendar()\"><\/div>\n\n<div class=\"mews-booking-engine2-hero\" style=\"background-image: url('https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/panorama_footer_bg2.png');\">\n    <div class=\"mews-booking-panel\">\n        <div class=\"mews-calendar-item\">\n\n            <!------------------------------>\n            <!-- Label                    -->\n            <!------------------------------>\n            <div class=\"mews-calendar-label\">\n                <img decoding=\"async\" src=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/11\/varauskalenteri_matts.svg\">\n                <div class=\"mews-calendar-label__text\">\n                    Book accommodation:                <\/div>\n            <\/div>\n\n            <!------------------------------>\n            <!-- Input                   -->\n            <!------------------------------>\n            <div class=\"mews-calendar-input\">\n                <!--<input type=\"text\" id=\"mews-calendar-start\" disabled value=\"21.10.2025\"\/>-->\n                <div class=\"mews-calendar-input-field\" id=\"mews-calendar-start\" onclick=\"mewsCalendar.clickMewsOpenCalendar()\">\n                    <div class=\"mews-date-label\"><span id=\"mews-date-label-start\"><\/span> &#8211; <span id=\"mews-date-label-end\"><\/span><\/div>\n                    <div class=\"grid\">\n                        <div class=\"cell\"><\/div>\n                        <div class=\"cell\"><\/div>\n                        <div class=\"cell\"><\/div>\n                        <div class=\"cell\"><\/div>\n                        <div class=\"cell\"><\/div>\n                        <div class=\"cell\"><\/div>\n                        <div class=\"cell\"><\/div>\n                        <div class=\"cell\"><\/div>\n                        <div class=\"cell\"><\/div>\n                    <\/div>\n                <\/div>\n                <div class=\"mews-calendar-widget-container\">\n    <div id=\"mews-calendar-widget\">\n        <div class=\"mews-calendar-widget-close\" id=\"mews-calendar-close\" onclick=\"mewsCalendar.clickMewsCloseCalendar()\">\n            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" width=\"65\" height=\"65\" role=\"img\" aria-label=\"Close\">\n                <circle cx=\"12\" cy=\"12\" r=\"11\" fill=\"none\"\/>\n                <path d=\"M8.5 8.5L15.5 15.5M15.5 8.5L8.5 15.5\" stroke=\"currentColor\" stroke-width=\"1.0\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\"\/>\n            <\/svg>\n        <\/div>\n        <div class=\"mcw-inner\">\n            <div class=\"mcw-table-container\">\n                <div class=\"mcw-table mcw-table-l\">\n                    <div class=\"calendar-arrow calendar-arrow-l\" onclick=\"mewsCalendar.clickArrow(1)\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\">\n                            <path d=\"M15 5l-7 7 7 7\" fill=\"none\" stroke=\"white\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                        <\/svg>\n                    <\/div>\n                    <div class=\"calendar-title\" id=\"calendar-title-1\"><\/div>\n                    <div id=\"calendar-weekdays1\"><\/div>\n                    <div class=\"calendar-days\" id=\"calendar-days1\"><\/div>\n                <\/div>\n                <div class=\"mcw-table mcw-table-r\">\n                    <div class=\"calendar-arrow calendar-arrow-r\" onclick=\"mewsCalendar.clickArrow(2)\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\">\n                            <path d=\"M9 5l7 7-7 7\" fill=\"none\" stroke=\"white\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                        <\/svg>\n                    <\/div>\n                    <div class=\"calendar-title\" id=\"calendar-title-2\"><\/div>\n                    <div id=\"calendar-weekdays2\"><\/div>\n                    <div class=\"calendar-days\" id=\"calendar-days2\"><\/div>\n                <\/div>\n            <\/div>\n            <div class=\"mcw-button\">\n                <button class=\"btn-secondary\" id=\"mews-submit-button-calendar-desktop\" onclick=\"mewsCalendar.clickMewsCloseCalendar()\">\n                    Select dates                <\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>                <div class=\"mews-calendar-widget-container-mobile\">\n    <div id=\"mews-calendar-widget-mobile\">\n        <div class=\"mcw-top\">\n            <div>\n                Date            <\/div>\n            <div class=\"mews-calendar-widget-close\" onclick=\"mewsCalendar.clickMewsCloseCalendar()\">\n                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" width=\"50\" height=\"50\" role=\"img\" aria-label=\"Close\">\n                    <circle cx=\"12\" cy=\"12\" r=\"11\" fill=\"none\"\/>\n                    <path d=\"M8.5 8.5L15.5 15.5M15.5 8.5L8.5 15.5\" stroke=\"currentColor\" stroke-width=\"1.0\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\"\/>\n                <\/svg>\n            <\/div>\n        <\/div>\n        <div class=\"mcw-content\" id=\"mcw-content-mobile\"><\/div>\n        <div class=\"mcw-bottom\">\n            <button class=\"btn-secondary\" id=\"mews-submit-button-calendar-mobile\" onclick=\"mewsCalendar.clickMewsCloseCalendar()\">\n                Select dates            <\/button>\n        <\/div>\n    <\/div>\n<\/div>            <\/div>\n        <\/div>\n        <input type=\"hidden\" id=\"mews-selected-start-year\" value=\"\">\n        <input type=\"hidden\" id=\"mews-selected-start-month\" value=\"\">\n        <input type=\"hidden\" id=\"mews-selected-start-day\" value=\"\">\n        <input type=\"hidden\" id=\"mews-selected-end-year\" value=\"\">\n        <input type=\"hidden\" id=\"mews-selected-end-month\" value=\"\">\n        <input type=\"hidden\" id=\"mews-selected-end-day\" value=\"\">\n        <button class=\"distributor-open\" id=\"mews-submit-button\">&#8230;<\/button>\n        <div id=\"mews-test\"><\/div>\n    <\/div>\n    <div class='mews-booking-engine2-hero__message'>\n        \n<p class=\"has-small-font-size\" style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:0\">Miksi varata suoraan meilt\u00e4? <a href=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/miksi-varata-suoraan\/\">Katso kaikki hy\u00f6dyt!<\/a><\/p>\n    <\/div>\n<\/div>\n\n<script>\n\n    class MewsCalendar {\n        constructor() {\n            this.now = new Date(); \/\/Production\n            \/\/this.now = new Date('2027-12-28T10:00:00'); \/\/Testing\n            this.dayNow = this.now.getDate();\n            this.monthNow = this.now.getMonth() + 1;\n            this.yearNow = this.now.getFullYear();\n            this.monthNext = this.now.getMonth() + 2;\n            this.yearNext = this.now.getFullYear();\n            if (this.monthNow == 12) this.yearNext++;\n            this.monthNowSelected = this.monthNow;\n            this.yearNowSelected = this.yearNow;\n            this.monthNextSelected = this.monthNext;\n            this.yearNextSelected = this.yearNext;\n            if (this.monthNextSelected <= 0) this.monthNextSelected = 12;\n            if (this.monthNextSelected > 12) this.monthNextSelected = 1;\n            this.weekdayNames = ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun'];this.monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];            this.generateCalendar(1);\n            this.generateCalendar(2);\n            this.generateMonthDays(1, this.monthNowSelected, this.yearNowSelected);\n            this.generateMonthDays(2, this.monthNextSelected, this.yearNextSelected);\n            let tomorrow = new Date();\n            tomorrow.setDate(tomorrow.getDate() + 1);\n            this.setDateLabels(this.dateToString(this.now), this.dateToString(tomorrow));\n            this.arrayDates = [];\n            this.arrayDatesSorted = [];\n            this.clickDayCount = 0;\n        }\n\n        setDateLabels(start, end) {\n            jQuery('#mews-date-label-start').html(start);\n            jQuery('#mews-date-label-end').html(end);\n        }\n\n        clickMewsOpenCalendar() {\n            jQuery('.mews-booking-engine2-bg').fadeIn(50);\n            jQuery('#mews-calendar-widget').fadeIn(50);\n            jQuery('#mews-calendar-widget-mobile').fadeIn(50);\n        }\n\n        clickMewsCloseCalendar() {\n\t\t\tjQuery('.mews-booking-engine2-bg').fadeOut(50);\n            jQuery('#mews-calendar-widget').fadeOut(50);\n            jQuery('#mews-calendar-widget-mobile').fadeOut(50);\n        }\n\n        generateCalendar(id) {\n            this.generateWeekdays(id);\n            let html = '';\n            for (let y=0; y<6; y++) {\n                html += '<div class=\"row\">';\n                    for (let x=0; x<7; x++) {\n                        let day = y*7+x+1;\n                        html += '<div class=\"day-square day-square-' + id + '\" id=\"' + id + '-day-' + day + '\" data-day=\"0\" onclick=\"mewsCalendar.clickDay(this)\">';\n                        html += '<div class=\"day-square-inner\">';\n                        html += '<div class=\"day-square-circle\"><\/div>';\n                        html += '<\/div>';\n                        html += '<\/div>';\n                    }\n                html += '<\/div>';\n            }\n            jQuery('#calendar-days' + id).html(html);\n        }\n\n        generateWeekdays(id) {\n            let html = '<div class=\"calendar-weekdays\">';\n            html += '<div>' + this.weekdayNames[0] + '<\/div>';\n            html += '<div>' + this.weekdayNames[1] + '<\/div>';\n            html += '<div>' + this.weekdayNames[2] + '<\/div>';\n            html += '<div>' + this.weekdayNames[3] + '<\/div>';\n            html += '<div>' + this.weekdayNames[4] + '<\/div>';\n            html += '<div>' + this.weekdayNames[5] + '<\/div>';\n            html += '<div>' + this.weekdayNames[6] + '<\/div>';\n            html += '<\/div>';\n            jQuery('#calendar-weekdays' + id).html(html);\n        }\n\n        clickArrow(dir) {\n            if (dir == 1) {\n                if (this.monthNow == this.monthNowSelected && this.yearNow == this.yearNowSelected) {\n                    \/\/Do nothing\n                } else {\n                    this.monthNowSelected--;\n                    if (this.monthNowSelected <= 0) {\n                        this.monthNowSelected = 12;\n                        this.yearNowSelected--;\n                    }\n                    this.monthNextSelected--;\n                    if (this.monthNextSelected <= 0) {\n                        this.monthNextSelected = 12;\n                        this.yearNextSelected--;\n                    }\n                }\n            }\n            if (dir == 2) {\n                this.monthNowSelected++;\n                if (this.monthNowSelected > 12) {\n                    this.monthNowSelected = 1;\n                    this.yearNowSelected++;\n                }\n                this.monthNextSelected++;\n                if (this.monthNextSelected > 12) {\n                    this.monthNextSelected = 1;\n                    this.yearNextSelected++;\n                }\n            }\n            this.generateCalendar(1);\n            this.generateCalendar(2);\n            this.generateMonthDays(1, this.monthNowSelected, this.yearNowSelected);\n            this.generateMonthDays(2, this.monthNextSelected, this.yearNextSelected);\n            this.markSelectedDates();\n        }\n\n        generateMonthDays(id, month, year) {\n            \/\/console.log('generateMonthDays', id, month, year);\n            const firstDay = new Date(year, month-1, 1);\n            const firstDayId = (firstDay.getDay() + 6) % 7 + 1;\n            const daysInMonth = new Date(year, month, 0).getDate();\n            let html = '';\n            \/\/jQuery('.day-square-' + id).html('');\n            jQuery('.day-square-' + id).data('day', 0);\n            jQuery('.day-square-' + id).removeClass('disabled');\n            jQuery('.day-square-' + id).removeClass('current');\n            for (let i=firstDayId; i<daysInMonth+firstDayId; i++) {\n                const day = i-firstDayId+1;\n                const dateStr = day + '.' + month + '.' + year;\n                \/\/console.log(dateStr);\n                \/\/jQuery('#' + id + '-day-' + i).html(day);\n                jQuery('#' + id + '-day-' + i + ' .day-square-circle').html(day);\n                jQuery('#' + id + '-day-' + i).data('day', day + '.' + month + '.' + year);\n                if (this.stringToDate(dateStr) < this.now) {\n                    jQuery('#' + id + '-day-' + i).addClass('disabled');\n                    \/\/console.log('disabled', this.now);\n                }\n                if (dateStr == this.dateToString(this.now)) jQuery('#' + id + '-day-' + i).addClass('current');\n            }\n            const monthName = this.monthNames[month-1];\n            jQuery('#calendar-title-' + id).html(monthName + ' ' + year);\n            this.removeEmptyRows(id);\n        }\n\n        removeEmptyRows(id) {\n            let count = 0;\n            let rowCount = 0;\n            let html = '';\n            jQuery('.day-square-' + id).each(function() {\n                count++;\n                html += jQuery(this).html();\n                if (count % 7 == 0) {\n                    rowCount++;\n                    if (html == '') {\n                        const first = (rowCount-1)*7+1;\n                        for (let i=first; i<first+7; i++) {\n                            jQuery('#' + id + '-day-' + i).remove();\n                        }\n                    }\n                    html = '';\n                }\n            });\n        }\n\n        clickDay = (event) => {\n            const id = jQuery(event).attr('id');\n            const str = jQuery(event).data('day');\n            \/\/console.log(id, str);\n            if (this.arrayDates[0] != undefined && this.arrayDates[1] != undefined) {\n                this.arrayDates = [];\n                this.arrayDatesSorted = [...this.arrayDates].sort((a, b) => a - b);\n                this.markSelectedDates();\n            }\n            if (this.arrayDates[0] != undefined && this.arrayDates[1] == undefined) {\n                this.arrayDates[1] = this.stringToDate(str);\n                this.arrayDatesSorted = [...this.arrayDates].sort((a, b) => a - b);\n                this.markSelectedDates();\n            }\n            if (this.arrayDates[0] == undefined && this.arrayDates[1] == undefined) {\n                this.arrayDates[0] = this.stringToDate(str);\n                this.arrayDatesSorted = [...this.arrayDates].sort((a, b) => a - b);\n                this.markSelectedDates();\n            }\n        }\n\n        markSelectedDates() {\n            const date1 = this.arrayDatesSorted[0];\n            const date2 = this.arrayDatesSorted[1];\n            const str1 = this.dateToString(date1);\n            const str2 = this.dateToString(date2);\n            jQuery('.day-square-1').removeClass('selected');\n            jQuery('.day-square-1').removeClass('selected-strong1');\n            jQuery('.day-square-1').removeClass('selected-strong2');\n            jQuery('.day-square-2').removeClass('selected');\n            jQuery('.day-square-2').removeClass('selected-strong1');\n            jQuery('.day-square-2').removeClass('selected-strong2');\n            if (str1.length > 1) {\n                this.setDateLabels(str1, str2);\n                jQuery('.day-square-1').each(function() {\n                    const dataDay = jQuery(this).data('day');\n                    if (dataDay.length > 1) {\n                        const [day, month, year] = dataDay.split('.').map(Number);\n                        const dataDayDate = new Date(year, month - 1, day);\n                        if (dataDayDate > date1 && dataDayDate < date2) {\n                            jQuery(this).addClass('selected');\n                        }\n                        if (dataDay == str1) jQuery(this).addClass('selected-strong1');\n                        if (dataDay == str2) jQuery(this).addClass('selected-strong2');\n                    }\n                });\n                jQuery('.day-square-2').each(function() {\n                    const dataDay = jQuery(this).data('day');\n                    if (dataDay.length > 1) {\n                        const [day, month, year] = dataDay.split('.').map(Number);\n                        const dataDayDate = new Date(year, month - 1, day);\n                        if (dataDayDate > date1 && dataDayDate < date2) {\n                            jQuery(this).addClass('selected');\n                        }\n                        if (dataDay == str1) jQuery(this).addClass('selected-strong1');\n                        if (dataDay == str2) jQuery(this).addClass('selected-strong2');\n                    }\n                });\n            } else {\n                jQuery('.day-square-1').removeClass('selected');\n                jQuery('.day-square-2').removeClass('selected');\n            }\n            if (str1.length > 1 && str2.length > 1) {\n                jQuery('#mews-selected-start-year').val(date1.getFullYear());\n                jQuery('#mews-selected-start-month').val(date1.getMonth());\n                jQuery('#mews-selected-start-day').val(date1.getDate());\n                jQuery('#mews-selected-end-year').val(date2.getFullYear());\n                jQuery('#mews-selected-end-month').val(date2.getMonth());\n                jQuery('#mews-selected-end-day').val(date2.getDate());\n            }\n            \/* Testing:\n            let startYear = jQuery('#mews-selected-start-year').val();\n            let startMonth = jQuery('#mews-selected-start-month').val(); \/\/0-11\n            let startDay = jQuery('#mews-selected-start-day').val();\n            let endYear = jQuery('#mews-selected-end-year').val();\n            let endMonth = jQuery('#mews-selected-end-month').val(); \/\/0-11\n            let endDay = jQuery('#mews-selected-end-day').val();\n            console.log('mews start1', startYear, startMonth, startDay);\n            console.log('mews end1', endYear, endMonth, endDay);*\/\n        }\n\n        stringToDate(str) {\n            if (str.length > 1) {\n                const [day, month, year] = str.split('.').map(Number);\n                return new Date(year, month - 1, day);\n            }\n            return '';\n        }\n\n        dateToString(date) {\n            if (!date) return ''; \/\/ null\/undefined -> empty string\n            \/\/ If input is a string in dd.mm.yyyy (or d.m.yyyy) format, parse manually\n            if (typeof date === 'string' && \/^\\d{1,2}\\.\\d{1,2}\\.\\d{4}$\/.test(date.trim())) {\n                const [d, m, y] = date.trim().split('.').map(Number);\n                \/\/ basic validation\n                if (!d || !m || !y) return '';\n                const dt = new Date(y, m - 1, d);\n                if (Number.isNaN(dt.getTime())) return '';\n                date = dt;\n            } else {\n                \/\/ try to coerce other inputs (Date object, ISO string, timestamp)\n                date = new Date(date);\n                if (Number.isNaN(date.getTime())) return '';\n            }\n            \/\/const day = String(date.getDate()).padStart(2, '0');\n            const day = String(date.getDate());\n            const month = String(date.getMonth() + 1);\n            const year = date.getFullYear();\n            return `${day}.${month}.${year}`;\n        }\n    }\n    const mewsCalendar = new MewsCalendar();\n<\/script><script>\n    class MewsCalendarMobile {\n        constructor() {\n            this.now = new Date();\n            this.dayNow = this.now.getDate();\n            this.monthNow = this.now.getMonth() + 1;\n            this.yearNow = this.now.getFullYear();\n            this.monthNext = this.now.getMonth() + 2;\n            this.yearNext = this.now.getFullYear();\n            this.weekdayNames = ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun'];this.monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];            this.arrayDates = [];\n            this.arrayDatesSorted = [];\n            this.generateAllCalendars();\n        }\n\n        generateAllCalendars() {\n            const date = new Date();\n            for (let i = 0; i < 13; i++) {\n                const year = date.getFullYear();\n                const month = date.getMonth() + 1; \/\/ getMonth() is 0-based\n                \/\/console.log(`${year}, ${month}`);\n                if (i < 12) {\n                    this.generateCalendar(i+1, year, month, false);\n                } else {\n                    this.generateCalendar(i+1, year, month, true);\n                }\n                this.generateMonthDays(i+1, year, month);\n                this.removeEmptyRows(i+1);\n                \/\/ Move to next month\n                date.setMonth(date.getMonth() + 1);\n            }\n        }\n\n        generateCalendar(id, year, month, addSpacer) {\n            let html = '';\n            html += '<div class=\"mcw-content-monthname\">' + this.monthNames[month-1] + ' ' + year + '<\/div>';\n            html += '<div class=\"m-calendar-weekdays\">';\n            html += '<div>' + this.weekdayNames[0] + '<\/div>';\n            html += '<div>' + this.weekdayNames[1] + '<\/div>';\n            html += '<div>' + this.weekdayNames[2] + '<\/div>';\n            html += '<div>' + this.weekdayNames[3] + '<\/div>';\n            html += '<div>' + this.weekdayNames[4] + '<\/div>';\n            html += '<div>' + this.weekdayNames[5] + '<\/div>';\n            html += '<div>' + this.weekdayNames[6] + '<\/div>';\n            html += '<\/div>';\n            html += '<div style=\"height: 10px;\"><\/div>';\n            for (let y=0; y<6; y++) {\n                html += '<div class=\"m-row\">';\n                    for (let x=0; x<7; x++) {\n                        let day = y*7+x+1;\n                        \/\/html += '<div class=\"m-day-square m-day-square-' + id + '\" id=\"' + id + '-m-day-' + day + '\" data-day=\"0\" onclick=\"mewsCalendarMobile.clickDay(this)\">' + day + '<\/div>';\n                        html += '<div class=\"m-day-square m-day-square-' + id + '\" id=\"' + id + '-m-day-' + day + '\" data-day=\"0\" onclick=\"mewsCalendarMobile.clickDay(this)\">';\n                        html += '<div class=\"m-day-square-inner\">';\n                        html += '<div class=\"m-day-square-circle\"><\/div>';\n                        html += '<\/div>';\n                        html += '<\/div>';\n                    }\n                html += '<\/div>';\n            }\n            html += '<div style=\"height: 30px;\"><\/div>';\n            if (addSpacer) html += '<div style=\"height: 150px;\"><\/div>';\n            jQuery('#mcw-content-mobile').append(html);\n        }\n\n        generateMonthDays(id, year, month) {\n            \/\/console.log('generateMonthDays', id, month, year);\n            const firstDay = new Date(year, month-1, 1);\n            const firstDayId = (firstDay.getDay() + 6) % 7 + 1;\n            const daysInMonth = new Date(year, month, 0).getDate();\n            let html = '';\n            \/\/jQuery('.m-day-square-' + id).html('');\n            jQuery('.m-day-square-' + id).data('day', 0);\n            jQuery('.m-day-square-' + id).removeClass('disabled');\n            jQuery('.m-day-square-' + id).removeClass('current');\n            for (let i=firstDayId; i<daysInMonth+firstDayId; i++) {\n                const day = i-firstDayId+1;\n                const dateStr = day + '.' + month + '.' + year;\n                \/\/jQuery('#' + id + '-m-day-' + i).html(day);\n                jQuery('#' + id + '-m-day-' + i + ' .m-day-square-circle').html(day);\n                jQuery('#' + id + '-m-day-' + i).data('day', day + '.' + month + '.' + year);\n                if (this.stringToDate(dateStr) < this.now) jQuery('#' + id + '-m-day-' + i).addClass('disabled');\n                if (dateStr == this.dateToString(this.now)) jQuery('#' + id + '-m-day-' + i).addClass('current');\n            }\n        }\n\n        removeEmptyRows(id) {\n            let count = 0;\n            let rowCount = 0;\n            let html = '';\n            jQuery('.m-day-square-' + id).each(function() {\n                count++;\n                html += jQuery(this).html();\n                if (count % 7 == 0) {\n                    rowCount++;\n                    if (html == '') {\n                        const first = (rowCount-1)*7+1;\n                        for (let i=first; i<first+7; i++) {\n                            jQuery('#' + id + '-m-day-' + i).remove();\n                        }\n                    }\n                    html = '';\n                }\n            });\n        }\n\n        clickDay = (event) => {\n            const id = jQuery(event).attr('id');\n            const str = jQuery(event).data('day');\n            if (this.arrayDates[0] != undefined && this.arrayDates[1] != undefined) {\n                this.arrayDates = [];\n                this.arrayDatesSorted = [...this.arrayDates].sort((a, b) => a - b);\n                this.markAllSelectedDates();\n            }\n            if (this.arrayDates[0] != undefined && this.arrayDates[1] == undefined) {\n                this.arrayDates[1] = this.stringToDate(str);\n                this.arrayDatesSorted = [...this.arrayDates].sort((a, b) => a - b);\n                this.markAllSelectedDates();\n            }\n            if (this.arrayDates[0] == undefined && this.arrayDates[1] == undefined) {\n                this.arrayDates[0] = this.stringToDate(str);\n                this.arrayDatesSorted = [...this.arrayDates].sort((a, b) => a - b);\n                this.markAllSelectedDates();\n            }\n        }\n\n        markAllSelectedDates() {\n            for (let i=1; i<=13; i++) {\n                this.markSelectedDates(i);\n            }\n        }\n\n        markSelectedDates(id) {\n            const date1 = this.arrayDatesSorted[0];\n            const date2 = this.arrayDatesSorted[1];\n            const str1 = this.dateToString(date1);\n            const str2 = this.dateToString(date2);\n            \/\/console.log(str1, str2);\n            jQuery('.m-day-square-' + id).removeClass('selected');\n            jQuery('.m-day-square-' + id).removeClass('selected-strong1');\n            jQuery('.m-day-square-' + id).removeClass('selected-strong2');\n            if (str1.length > 1) {\n                this.setDateLabels(str1, str2);\n                jQuery('.m-day-square-' + id).each(function() {\n                    const dataDay = jQuery(this).data('day');\n                    if (dataDay.length > 1) {\n                        const [day, month, year] = dataDay.split('.').map(Number);\n                        const dataDayDate = new Date(year, month - 1, day);\n                        if (dataDayDate > date1 && dataDayDate < date2) {\n                            jQuery(this).addClass('selected');\n                        }\n                        if (dataDay == str1) jQuery(this).addClass('selected-strong1');\n                        if (dataDay == str2) jQuery(this).addClass('selected-strong2');\n                    }\n                });\n            } else {\n                jQuery('.m-day-square-' + id).removeClass('selected');\n            }\n            if (str1.length > 1 && str2.length > 1) {\n                jQuery('#mews-selected-start-year').val(date1.getFullYear());\n                jQuery('#mews-selected-start-month').val(date1.getMonth());\n                jQuery('#mews-selected-start-day').val(date1.getDate());\n                jQuery('#mews-selected-end-year').val(date2.getFullYear());\n                jQuery('#mews-selected-end-month').val(date2.getMonth());\n                jQuery('#mews-selected-end-day').val(date2.getDate());\n            }\n            \/* Testing:\n            let startYear = jQuery('#mews-selected-start-year').val();\n            let startMonth = jQuery('#mews-selected-start-month').val(); \/\/0-11\n            let startDay = jQuery('#mews-selected-start-day').val();\n            let endYear = jQuery('#mews-selected-end-year').val();\n            let endMonth = jQuery('#mews-selected-end-month').val(); \/\/0-11\n            let endDay = jQuery('#mews-selected-end-day').val();\n            console.log('mews start1', startYear, startMonth, startDay);\n            console.log('mews end1', endYear, endMonth, endDay);*\/\n        }\n\n        setDateLabels(start, end) {\n            jQuery('#mews-date-label-start').html(start);\n            jQuery('#mews-date-label-end').html(end);\n        }\n\n        stringToDate(str) {\n            if (str.length > 1) {\n                const [day, month, year] = str.split('.').map(Number);\n                return new Date(year, month - 1, day);\n            }\n            return '';\n        }\n\n        dateToString(date) {\n            if (!date) return ''; \/\/ null\/undefined -> empty string\n            \/\/ If input is a string in dd.mm.yyyy (or d.m.yyyy) format, parse manually\n            if (typeof date === 'string' && \/^\\d{1,2}\\.\\d{1,2}\\.\\d{4}$\/.test(date.trim())) {\n                const [d, m, y] = date.trim().split('.').map(Number);\n                \/\/ basic validation\n                if (!d || !m || !y) return '';\n                const dt = new Date(y, m - 1, d);\n                if (Number.isNaN(dt.getTime())) return '';\n                date = dt;\n            } else {\n                \/\/ try to coerce other inputs (Date object, ISO string, timestamp)\n                date = new Date(date);\n                if (Number.isNaN(date.getTime())) return '';\n            }\n            \/\/const day = String(date.getDate()).padStart(2, '0');\n            const day = String(date.getDate());\n            const month = String(date.getMonth() + 1);\n            const year = date.getFullYear();\n            return `${day}.${month}.${year}`;\n        }\n    }\n    const mewsCalendarMobile = new MewsCalendarMobile();\n<\/script><script>\n    window.addEventListener('DOMContentLoaded', function() {\n\n        console.log(\"mews booking engine loaded\");\n\n        if (typeof Mews !== 'undefined') {\n\n            console.log(\"Mews is defined\");\n\n            Mews.Distributor(\n                {\n                    configurationIds: ['3e5b7df2-6d53-443f-aa6e-b4410085a177'],\n                    \/\/openElements: '.distributor-open',\n                },\n                \n                function(api) {\n                    \/\/ you can call API functions on a booking engine instance here\n                    \/\/ set different start and end date\n\n                    const mewsSubmit = () => {\n                        const startYear = jQuery('#mews-selected-start-year').val();\n                        const startMonth = jQuery('#mews-selected-start-month').val(); \/\/0-11\n                        const startDay = jQuery('#mews-selected-start-day').val();\n                        const endYear = jQuery('#mews-selected-end-year').val();\n                        const endMonth = jQuery('#mews-selected-end-month').val(); \/\/0-11\n                        const endDay = jQuery('#mews-selected-end-day').val();\n                        \/\/console.log('mews start2', startYear, startMonth, startDay);\n                        \/\/console.log('mews end2', endYear, endMonth, endDay);\n                        api.setStartDate(new Date(startYear, startMonth, startDay));\n                        api.setEndDate(new Date(endYear, endMonth, endDay));\n\n                        api.setLanguageCode('en-GB');\n                        console.log('mews submit en-GB');\n                        api.open();\n                    }\n\n                    const enableSubmit = () => {\n                        console.log('enableSubmit'); \n                        const submitButton = document.getElementById('mews-submit-button');\n                        const submitButtonCalendarDesktop = document.getElementById('mews-submit-button-calendar-desktop');\n                        const submitButtonCalendarMobile = document.getElementById('mews-submit-button-calendar-mobile');\n                        submitButton.innerHTML = 'Tarkista saatavuus';\n                        \/\/submitButton.disabled = false;\n                        submitButton.addEventListener('click', function() {\n                            mewsSubmit();\n                        });\n                        submitButtonCalendarDesktop.addEventListener('click', function() {\n                            mewsSubmit();\n                        });\n                        submitButtonCalendarMobile.addEventListener('click', function() {\n                            mewsSubmit();\n                        });\n                    };\n                    enableSubmit();\n                }\n            );\n        }\n    });\n<\/script><\/div>\n\n\n\n<div class=\"breadcrumb-container\"><ul id=\"breadcrumbs\" class=\"breadcrumbs\"><li class=\"item-home\"><a class=\"bread-link bread-home\" href=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\" title=\"Hotel Levi Panorama\">Hotel Levi Panorama<\/a><\/li><li class=\"separator separator-home\"> \/ <\/li><\/ul><\/div>\n<style>\n    \n<\/style>\n\n\n<div class=\"wp-block-group alignfull is-layout-constrained wp-container-core-group-is-layout-226df1c0 wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)\">\n<div class=\"wp-block-group alignwide is-layout-constrained wp-container-core-group-is-layout-9517baca wp-block-group-is-layout-constrained\">\n<h1 class=\"wp-block-heading has-text-align-center\" id=\"h-tarjoukset\" style=\"margin-bottom:var(--wp--preset--spacing--60)\">Tarjoukset<\/h1>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-general-1-background-color has-background is-layout-constrained wp-container-core-group-is-layout-ccf6ddda wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--40)\">\n<h2 class=\"wp-block-heading\" id=\"h-\"><\/h2>\n\n\n<script>\n\/\/---------------------------------\n\/\/ Initialize the OffersImagesScroller if not present\n\/\/---------------------------------\nif (typeof offers_images_scroller === 'undefined') {\n    var offers_images_scroller = new OffersImagesScroller();\n    offers_images_scroller.init();\n}\n\n\/\/---------------------------------\n\/\/ Show more button on mobile\n\/\/---------------------------------\ndocument.addEventListener('DOMContentLoaded', function() {\n    if (typeof offers_images_scroller === 'undefined') {\n        var offers_images_scroller = new OffersImagesScroller();\n        offers_images_scroller.init();\n    }\n    document.querySelectorAll('.mobile-show-all-button').forEach(function(button) {\n        button.addEventListener('click', function(e) {\n            e.preventDefault();\n            const parent = button.closest('.kassiopeia-offer-items');\n            if (parent) parent.classList.add('show-all-on-mobile');\n        });\n    });\n});\n<\/script>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull hidden is-layout-constrained wp-container-core-group-is-layout-232c5566 wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--70);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--40)\"><div class='kassiopeia-offer-items item-count-1' data-count='1'>\n            <div class='scroller-container'><a href='https:\/\/www.kassiopeia.fi\/star-member\/' target='_blank' class='kassiopeia-offer-item'>\n<section class=\"wp-block-group kassiopeia-offer-item-content is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-cover alignfull is-light kassiopeia-offer-cover\" style=\"min-height:300px;aspect-ratio:unset;\"><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-0 has-background-dim\" style=\"background-color:#afa5a6\"><\/span><img decoding=\"async\" class=\"wp-block-cover__image-background wp-image-4899\" alt=\"\" src=\"https:\/\/www.kassiopeia.fi\/wp-content\/uploads\/2024\/12\/star-member_logolla_-10pros.jpg\" style=\"object-position:49% 0%\" data-object-fit=\"cover\" data-object-position=\"49% 0%\"\/><div class=\"wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow\">\n<div class=\"wp-block-group kassiopeia-offer-tag is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"kassiopeia-offer-title\">Hotelliy\u00f6t<\/p>\n\n\n\n<h2 class=\"wp-block-heading kassiopeia-offer-price\" id=\"h-10\">-10 %<\/h2>\n\n\n\n<p class=\"kassiopeia-offer-description\">p\u00e4iv\u00e4n huonehinnasta<\/p>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group kassiopeia-offer-textcontent is-layout-flow wp-block-group-is-layout-flow\">\n<h3 class=\"wp-block-heading kassiopeia-offer-textcontent-title\" id=\"h-star-member-kanta-asiakkaille-10-alennus-paivan-huonehinnasta\">Star Member -kanta-asiakkaille 10 % alennus p\u00e4iv\u00e4n huonehinnasta<\/h3>\n\n\n\n<p class=\"kassiopeia-offer-textcontent-description\">Liity maksutta, niin saat edun k\u00e4ytt\u00f6\u00f6si<\/p>\n<\/div>\n<\/section>\n<\/a><\/div>\n            <img class='slider-arrow slider-arrow-left' alt='Slide to right arrow' src='https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/plugins\/kassiopeia-custom-blocks\/assets\/kassiopeia_slider_arrow_left.svg' aria-hidden='true' tabindex='-1'>\n            <img class='slider-arrow slider-arrow-right' alt='Slide to left arrow' src='https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/plugins\/kassiopeia-custom-blocks\/assets\/kassiopeia_slider_arrow_left.svg' aria-hidden='true' tabindex='-1'>\n            <a class='wp-block-button__link wp-element-button mobile-show-all-button'>Load more<\/a>\n          <\/div><script>\n\/\/---------------------------------\n\/\/ Initialize the OffersImagesScroller if not present\n\/\/---------------------------------\nif (typeof offers_images_scroller === 'undefined') {\n    var offers_images_scroller = new OffersImagesScroller();\n    offers_images_scroller.init();\n}\n\n\/\/---------------------------------\n\/\/ Show more button on mobile\n\/\/---------------------------------\ndocument.addEventListener('DOMContentLoaded', function() {\n    if (typeof offers_images_scroller === 'undefined') {\n        var offers_images_scroller = new OffersImagesScroller();\n        offers_images_scroller.init();\n    }\n    document.querySelectorAll('.mobile-show-all-button').forEach(function(button) {\n        button.addEventListener('click', function(e) {\n            e.preventDefault();\n            const parent = button.closest('.kassiopeia-offer-items');\n            if (parent) parent.classList.add('show-all-on-mobile');\n        });\n    });\n});\n<\/script>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-panorama-5-background-color has-background is-layout-constrained wp-container-core-group-is-layout-232c5566 wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--70);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--40)\">\n<div class=\"wp-block-group alignfull hidden is-layout-constrained wp-container-core-group-is-layout-91182b85 wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)\">\n<div class=\"wp-block-cover\" style=\"padding-top:0;padding-bottom:0;min-height:100px;aspect-ratio:unset;\"><img loading=\"lazy\" decoding=\"async\" width=\"2000\" height=\"1125\" class=\"wp-block-cover__image-background wp-image-4042\" alt=\"Kassiopeia Star Member -kanta-asiakkaat ravintolassa.\" src=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/12\/star-member-ravintola-asiakkaat.jpg\" style=\"object-position:52% 13%\" data-object-fit=\"cover\" data-object-position=\"52% 13%\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/12\/star-member-ravintola-asiakkaat.jpg 2000w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/12\/star-member-ravintola-asiakkaat-300x169.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/12\/star-member-ravintola-asiakkaat-1024x576.jpg 1024w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/12\/star-member-ravintola-asiakkaat-768x432.jpg 768w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/12\/star-member-ravintola-asiakkaat-1536x864.jpg 1536w\" sizes=\"auto, (max-width: 2000px) 100vw, 2000px\" \/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-general-2-background-color has-background-dim-40 has-background-dim\"><\/span><div class=\"wp-block-cover__inner-container is-layout-constrained wp-block-cover-is-layout-constrained\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-ce62f067 wp-block-columns-is-layout-flex\" style=\"padding-top:var(--wp--preset--spacing--70);padding-right:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--60)\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h3 class=\"wp-block-heading has-general-1-color has-text-color has-link-color has-large-font-size wp-elements-5aa55b17064d9be5940d6e63546e9ee8\" id=\"h-oletko-jo-kassiopeian-star-member\"><strong>Oletko jo Kassiopeian Star Member?<\/strong><\/h3>\n\n\n\n<p class=\"has-general-1-color has-text-color has-link-color wp-elements-aa60e1840f1f8cd7cae25545fa4a588d\">Kassiopeian Star Member -kanta-asiakkaana saat k\u00e4ytt\u00f6\u00f6si sek\u00e4 pysyvi\u00e4 ett\u00e4 kausittain vaihtuvia etuja hotelleissamme ja ravintoloissamme Espoossa ja Levill\u00e4.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.kassiopeia.fi\/star-member\/\" target=\"_blank\" rel=\"noreferrer noopener\">Lue lis\u00e4\u00e4 ja liity Star Memberiksi!<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"has-hotel-matts-3-color has-text-color has-link-color wp-elements-821f47dc42d518a7ad272a317c6945e0\"><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n<\/div>\n<\/div><\/div>\n<\/div>\n\n\n<div class='kassiopeia-offer-items item-count-5' data-count='5'>\n            <div class='scroller-container'><a href='https:\/\/app.moder.fi\/hotel-levi-panorama\/1531?' target='_blank' class='kassiopeia-offer-item'>\n<section class=\"wp-block-group kassiopeia-offer-item-content is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-cover alignfull is-light kassiopeia-offer-cover\" style=\"min-height:300px;aspect-ratio:unset;\"><img decoding=\"async\" class=\"wp-block-cover__image-background wp-image-7454 size-large\" alt=\"&quot;&quot;\" src=\"https:\/\/www.kassiopeia.fi\/wp-content\/uploads\/2026\/02\/golf_kesa2026_kassiopeia_hero-1600x1202.jpg\" data-object-fit=\"cover\"\/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-0 has-background-dim\" style=\"background-color:#a4a5af\"><\/span><div class=\"wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow\">\n<div class=\"wp-block-group kassiopeia-offer-tag is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"kassiopeia-offer-title\">Hotel Levi Panorama <br>alk.<\/p>\n\n\n\n<h2 class=\"wp-block-heading kassiopeia-offer-price\" id=\"h-105\">105 \u20ac<\/h2>\n\n\n\n<p class=\"kassiopeia-offer-description\">\/y\u00f6 (1 hl\u00f6)<\/p>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group kassiopeia-offer-textcontent is-layout-flow wp-block-group-is-layout-flow\">\n<h3 class=\"wp-block-heading kassiopeia-offer-textcontent-title\" id=\"h-golfpaketti-levi-golfille\">Golfpaketti Levi Golfille<\/h3>\n\n\n\n<p class=\"kassiopeia-offer-textcontent-description\">Koe  ruuhkattomat v\u00e4yl\u00e4t ja y\u00f6tt\u00f6m\u00e4n y\u00f6n golf Taaloj\u00e4rven maisemissa Levill\u00e4. Lue lis\u00e4\u00e4 ja varaa nyt! <\/p>\n<\/div>\n<\/section>\n\n\n\n<p><\/p>\n<\/a><a href='https:\/\/app.mews.com\/distributor\/fa550117-4209-4ca9-a13b-b4410085af05?mewsStart=2026-06-01&#038;mewsEnd=2026-06-30&#038;mewsVoucherCode=SUM26' target='_blank' class='kassiopeia-offer-item'>\n<section class=\"wp-block-group kassiopeia-offer-item-content is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-cover alignfull is-light kassiopeia-offer-cover\" style=\"min-height:300px;aspect-ratio:unset;\"><img decoding=\"async\" class=\"wp-block-cover__image-background wp-image-5915\" alt=\"Hotel Levi Panorama ulkokuva kes\u00e4ll\u00e4\" src=\"https:\/\/www.kassiopeia.fi\/wp-content\/uploads\/2025\/05\/panorama_kesa_hero.jpg\" data-object-fit=\"cover\"\/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-0 has-background-dim\" style=\"background-color:#a4a5af\"><\/span><div class=\"wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow\">\n<div class=\"wp-block-group kassiopeia-offer-tag is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"kassiopeia-offer-title\">Hotel Levi Panorama <br>alk.<\/p>\n\n\n\n<h2 class=\"wp-block-heading kassiopeia-offer-price\" id=\"h-89\">89 \u20ac<\/h2>\n\n\n\n<p class=\"kassiopeia-offer-description\">\/y\u00f6<\/p>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group kassiopeia-offer-textcontent is-layout-flow wp-block-group-is-layout-flow\">\n<h3 class=\"wp-block-heading kassiopeia-offer-textcontent-title\" id=\"h-loyda-levin-kesa-varaa-lomasi-nyt\">L\u00f6yd\u00e4 Levin kes\u00e4 <em>\u2013<\/em> varaa lomasi nyt!<\/h3>\n\n\n\n<p class=\"kassiopeia-offer-textcontent-description\">Kes\u00e4n parhaat hetket l\u00f6ytyv\u00e4t keskiy\u00f6n auringon alta! Majoitu kampanjahintaan 1.6.\u201331.8.2026. Varaa koodilla <strong>SUM26<\/strong><\/p>\n<\/div>\n<\/section>\n\n\n\n<p><\/p>\n<\/a><a href='https:\/\/www.kassiopeia.fi\/star-member\/' target='_blank' class='kassiopeia-offer-item'>\n<section class=\"wp-block-group kassiopeia-offer-item-content is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-cover alignfull is-light kassiopeia-offer-cover\" style=\"min-height:300px;aspect-ratio:unset;\"><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-0 has-background-dim\" style=\"background-color:#afa5a6\"><\/span><img decoding=\"async\" class=\"wp-block-cover__image-background wp-image-4899\" alt=\"\" src=\"https:\/\/www.kassiopeia.fi\/wp-content\/uploads\/2024\/12\/star-member_logolla_-10pros.jpg\" style=\"object-position:49% 0%\" data-object-fit=\"cover\" data-object-position=\"49% 0%\"\/><div class=\"wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow\">\n<div class=\"wp-block-group kassiopeia-offer-tag is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"kassiopeia-offer-title\">Hotelliy\u00f6t<\/p>\n\n\n\n<h2 class=\"wp-block-heading kassiopeia-offer-price\" id=\"h-10\">-10 %<\/h2>\n\n\n\n<p class=\"kassiopeia-offer-description\">p\u00e4iv\u00e4n huonehinnasta<\/p>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group kassiopeia-offer-textcontent is-layout-flow wp-block-group-is-layout-flow\">\n<h3 class=\"wp-block-heading kassiopeia-offer-textcontent-title\" id=\"h-star-member-kanta-asiakkaille-10-alennus-paivan-huonehinnasta\">Star Member -kanta-asiakkaille 10 % alennus p\u00e4iv\u00e4n huonehinnasta<\/h3>\n\n\n\n<p class=\"kassiopeia-offer-textcontent-description\">Liity maksutta, niin saat edun k\u00e4ytt\u00f6\u00f6si<\/p>\n<\/div>\n<\/section>\n<\/a><a href='https:\/\/www.kassiopeia.fi\/star-member\/' target='_blank' class='kassiopeia-offer-item'>\n<section class=\"wp-block-group kassiopeia-offer-item-content is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-cover alignfull is-light kassiopeia-offer-cover\" style=\"min-height:300px;aspect-ratio:unset;\"><img decoding=\"async\" class=\"wp-block-cover__image-background wp-image-7192 size-full\" alt=\"&quot;&quot;\" src=\"https:\/\/www.kassiopeia.fi\/wp-content\/uploads\/2024\/12\/Tapas_nostokuva_IMG_5177.jpg\" data-object-fit=\"cover\"\/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-0 has-background-dim\" style=\"background-color:#afa5a6\"><\/span><div class=\"wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow\">\n<div class=\"wp-block-group kassiopeia-offer-tag is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"kassiopeia-offer-title\">\u00c0 la carte-annokset<\/p>\n\n\n\n<h2 class=\"wp-block-heading kassiopeia-offer-price\" id=\"h-10\">-10 %<\/h2>\n\n\n\n<p class=\"kassiopeia-offer-description\"><\/p>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group kassiopeia-offer-textcontent is-layout-flow wp-block-group-is-layout-flow\">\n<h3 class=\"wp-block-heading kassiopeia-offer-textcontent-title\" id=\"h-star-membereille-10-alennus-a-la-carte-annoksista\">Star Membereille 10 % alennus \u00e0 la carte-annoksista<\/h3>\n\n\n\n<p class=\"kassiopeia-offer-textcontent-description\">Kun maksaja on Star Member -kanta-asiakas, koskee etu koko ryhm\u00e4\u00e4. Liity Star Memberiksi!<\/p>\n<\/div>\n<\/section>\n<\/a><a href='https:\/\/www.kassiopeia.fi\/star-member\/' target='_blank' class='kassiopeia-offer-item'>\n<section class=\"wp-block-group kassiopeia-offer-item-content is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-cover alignfull kassiopeia-offer-cover\" style=\"min-height:300px;aspect-ratio:unset;\"><img decoding=\"async\" class=\"wp-block-cover__image-background wp-image-6791 size-full\" alt=\"Kilistely\u00e4 viinilaseilla.\" src=\"https:\/\/www.kassiopeia.fi\/wp-content\/uploads\/2024\/12\/kilistely-viinilaseilla.jpg\" data-object-fit=\"cover\"\/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-0 has-background-dim\" style=\"background-color:#afa5a6\"><\/span><div class=\"wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow\">\n<div class=\"wp-block-group kassiopeia-offer-tag is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"kassiopeia-offer-title\">Talon viini<\/p>\n\n\n\n<h2 class=\"wp-block-heading kassiopeia-offer-price\" id=\"h-29-plo\">29 \u20ac\/plo<\/h2>\n\n\n\n<p class=\"kassiopeia-offer-description\">(norm. 44\u20ac\/ plo)<\/p>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group kassiopeia-offer-textcontent is-layout-flow wp-block-group-is-layout-flow\">\n<h3 class=\"wp-block-heading kassiopeia-offer-textcontent-title\" id=\"h-star-membereille-talon-viini-29-pullo-puna-tai-valkoviini\">Star Membereille talon viini 29 \u20ac\/pullo (puna- tai valkoviini)<\/h3>\n\n\n\n<p class=\"kassiopeia-offer-textcontent-description\">Etu on henkil\u00f6kohtainen eik\u00e4 sit\u00e4 voi hy\u00f6dynt\u00e4\u00e4 yksityistilaisuuksien ja ryhm\u00e4menujen yhteydess\u00e4.<\/p>\n<\/div>\n<\/section>\n<\/a><\/div>\n            <img class='slider-arrow slider-arrow-left' alt='Slide to right arrow' src='https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/plugins\/kassiopeia-custom-blocks\/assets\/kassiopeia_slider_arrow_left.svg' aria-hidden='true' tabindex='-1'>\n            <img class='slider-arrow slider-arrow-right' alt='Slide to left arrow' src='https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/plugins\/kassiopeia-custom-blocks\/assets\/kassiopeia_slider_arrow_left.svg' aria-hidden='true' tabindex='-1'>\n            <a class='wp-block-button__link wp-element-button mobile-show-all-button'>Load more<\/a>\n          <\/div><script>\n\/\/---------------------------------\n\/\/ Initialize the OffersImagesScroller if not present\n\/\/---------------------------------\nif (typeof offers_images_scroller === 'undefined') {\n    var offers_images_scroller = new OffersImagesScroller();\n    offers_images_scroller.init();\n}\n\n\/\/---------------------------------\n\/\/ Show more button on mobile\n\/\/---------------------------------\ndocument.addEventListener('DOMContentLoaded', function() {\n    if (typeof offers_images_scroller === 'undefined') {\n        var offers_images_scroller = new OffersImagesScroller();\n        offers_images_scroller.init();\n    }\n    document.querySelectorAll('.mobile-show-all-button').forEach(function(button) {\n        button.addEventListener('click', function(e) {\n            e.preventDefault();\n            const parent = button.closest('.kassiopeia-offer-items');\n            if (parent) parent.classList.add('show-all-on-mobile');\n        });\n    });\n});\n<\/script>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull hidden has-panorama-5-background-color has-background is-layout-constrained wp-container-core-group-is-layout-f6c014ae wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--70);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--40)\">\n<div class=\"wp-block-media-text alignwide has-media-on-the-right is-stacked-on-mobile is-vertically-aligned-center is-image-fill-element has-general-1-background-color has-background\" style=\"margin-top:var(--wp--preset--spacing--40)\"><div class=\"wp-block-media-text__content\">\n<h3 class=\"wp-block-heading\" id=\"h-starttaa-kausi-levin-ainoassa-rinnehotellissa-syyskampanjahintaan-alk-89-yo\"><strong>Starttaa kausi Levin ainoassa rinnehotellissa syyskampanjahintaan alk. 89 \u20ac \/ y\u00f6!<\/strong><\/h3>\n\n\n\n<p>Kampanjahintaisen majoitukset ovat ajalle 27.9.-30.11.2024 ja ostettavissa verkkokaupastamme 14.11. saakka saatavuuden mukaan!<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Standard 89 \u20ac 1 hh \/ 2 hh, vuodesohva 25\u20ac<\/li>\n\n\n\n<li>Superior 94 \u20ac 1 hh \/ 2 hh, vuodesohva 25\u20ac<\/li>\n\n\n\n<li>Superior family 139 \u20ac, 1-3 aikuista tai 2 aikuista ja 2 lasta<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/book.kassiopeia.fi\/reserve?lang=fi&amp;getAvailability=1585041730&amp;HotelCode=PANORAMA&amp;NroOfAdults=2&amp;Arrival=2024-09-27&amp;PromotionalCode=PROSNOW&amp;sortByRooms=STD\" target=\"_blank\" rel=\"noreferrer noopener\">Varaa nyt!<\/a><\/div>\n<\/div>\n\n\n\n<p>Majoituksen voit peruuttaa tulop\u00e4iv\u00e4n\u00e4 klo 18 menness\u00e4. Hinnat sis\u00e4lt\u00e4v\u00e4t aamiaiset ja gondoliliput hotellille.<\/p>\n<\/div><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/HotelLeviPanorama-prosnow_nettisivunosto_1200x1200-1024x1024.jpg\" alt=\"\" class=\"wp-image-2273 size-full\" style=\"object-position:79% 38%\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/HotelLeviPanorama-prosnow_nettisivunosto_1200x1200-1024x1024.jpg 1024w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/HotelLeviPanorama-prosnow_nettisivunosto_1200x1200-300x300.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/HotelLeviPanorama-prosnow_nettisivunosto_1200x1200-150x150.jpg 150w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/HotelLeviPanorama-prosnow_nettisivunosto_1200x1200-768x768.jpg 768w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/HotelLeviPanorama-prosnow_nettisivunosto_1200x1200.jpg 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull is-layout-constrained wp-container-core-group-is-layout-b3b3f3c9 wp-block-group-is-layout-constrained\" style=\"margin-bottom:0;padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--40);padding-bottom:0;padding-left:var(--wp--preset--spacing--40)\">\n<h2 class=\"wp-block-heading\" id=\"h-katso-myos\">katso my\u00f6s<\/h2>\n\n\n\n<div class=\"wp-block-group alignfull is-layout-constrained wp-container-core-group-is-layout-c75e7cd3 wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-right:var(--wp--preset--spacing--40);padding-bottom:0;padding-left:var(--wp--preset--spacing--40)\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8dca0e93 wp-block-columns-is-layout-flex\" style=\"margin-bottom:var(--wp--preset--spacing--70)\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"800\" src=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/vastaanotto-levi-panorama.jpg\" alt=\"Asiakkaat Hotel Levi Panoraman vastaanotossa.\" class=\"wp-image-1216\" style=\"aspect-ratio:16\/9;object-fit:cover\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/vastaanotto-levi-panorama.jpg 1200w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/vastaanotto-levi-panorama-300x200.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/vastaanotto-levi-panorama-1024x683.jpg 1024w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/vastaanotto-levi-panorama-768x512.jpg 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-left\" id=\"h-miksi-varata-suoraan-meilta\" style=\"margin-bottom:0;padding-bottom:0\">Miksi varata suoraan meilt\u00e4?<\/h3>\n\n\n\n<p style=\"margin-top:var(--wp--preset--spacing--40)\">Varatessasi hotellihuoneen suoraan meilt\u00e4, joko nettisivuilta, puhelimitse tai s\u00e4hk\u00f6postitse, saat k\u00e4ytt\u00f6\u00f6si loistavia etuja!<\/p>\n\n\n\n<p style=\"margin-top:var(--wp--preset--spacing--40)\"><a href=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/miksi-varata-suoraan\/\">Lue lis\u00e4\u00e4 miksi varata suoraan meilt\u00e4 \u2192<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2000\" height=\"1125\" src=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/aktiviteetit-levi-hotellevipanorama.jpg\" alt=\"Laskettelija Levin rinteess\u00e4.\" class=\"wp-image-1222\" style=\"aspect-ratio:16\/9;object-fit:cover\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/aktiviteetit-levi-hotellevipanorama.jpg 2000w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/aktiviteetit-levi-hotellevipanorama-300x169.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/aktiviteetit-levi-hotellevipanorama-1024x576.jpg 1024w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/aktiviteetit-levi-hotellevipanorama-768x432.jpg 768w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/aktiviteetit-levi-hotellevipanorama-1536x864.jpg 1536w\" sizes=\"auto, (max-width: 2000px) 100vw, 2000px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-left\" id=\"h-etuja-hotellimme-asiakkaille\">Etuja hotellimme asiakkaille<\/h3>\n\n\n\n<p style=\"margin-top:var(--wp--preset--spacing--40)\">Hotel Levi Panoramassa majoittuvat asiakkaamme saavat useita loistavia etuja!<\/p>\n\n\n\n<p style=\"margin-top:var(--wp--preset--spacing--40)\"><a href=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/edut\/\">Katso edut hotellimme asiakkaille \u2192<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1132\" height=\"693\" src=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/kassiopeia-star-member-kanta-asiakkaita-ruokailemassa-levin-ravintolassa.jpg\" alt=\"Kassiopeian Star Member -kanta-asiakkaita ruokailemassa Levill\u00e4 ravintolassa.\" class=\"wp-image-692\" style=\"aspect-ratio:16\/9;object-fit:cover\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/kassiopeia-star-member-kanta-asiakkaita-ruokailemassa-levin-ravintolassa.jpg 1132w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/kassiopeia-star-member-kanta-asiakkaita-ruokailemassa-levin-ravintolassa-300x184.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/kassiopeia-star-member-kanta-asiakkaita-ruokailemassa-levin-ravintolassa-1024x627.jpg 1024w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/kassiopeia-star-member-kanta-asiakkaita-ruokailemassa-levin-ravintolassa-768x470.jpg 768w\" sizes=\"auto, (max-width: 1132px) 100vw, 1132px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-left\" id=\"h-liity-star-member-kanta-asiakkaaksi\">Liity Star Member -kanta-asiakkaaksi<\/h3>\n\n\n\n<p style=\"margin-top:var(--wp--preset--spacing--40);margin-bottom:0\">Kassiopeian Star Member -kanta-asiakkaana sinulla on k\u00e4yt\u00f6ss\u00e4si sek\u00e4 pysyvi\u00e4 ett\u00e4 kausittain vaihtuvia etuja hotelleissamme ja ravintoloissamme. Katso edut ja liity nyt!<\/p>\n\n\n\n<p style=\"margin-top:var(--wp--preset--spacing--40)\"><a href=\"https:\/\/www.kassiopeia.fi\/star-member\/\" target=\"_blank\" rel=\"noreferrer noopener\">Liity maksutta kanta-asiakkaaksi \u2192<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Tarjoukset Starttaa kausi Levin ainoassa rinnehotellissa syyskampanjahintaan alk. 89 \u20ac \/ y\u00f6! Kampanjahintaisen majoitukset ovat ajalle 27.9.-30.11.2024 ja ostettavissa verkkokaupastamme 14.11. saakka saatavuuden mukaan! Majoituksen voit peruuttaa tulop\u00e4iv\u00e4n\u00e4 klo 18 menness\u00e4. Hinnat sis\u00e4lt\u00e4v\u00e4t aamiaiset ja gondoliliput hotellille. katso my\u00f6s Miksi varata suoraan meilt\u00e4? Varatessasi hotellihuoneen suoraan meilt\u00e4, joko nettisivuilta, puhelimitse tai s\u00e4hk\u00f6postitse, saat k\u00e4ytt\u00f6\u00f6si loistavia [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-158","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.6 (Yoast SEO v27.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Tarjoukset - Hotel Levi Panorama<\/title>\n<meta name=\"description\" content=\"Tarjoukset juuri nyt rinnehotelli Hotel Levi Panoramassa. Katso nyt!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/tarjoukset\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tarjoukset\" \/>\n<meta property=\"og:description\" content=\"Tarjoukset juuri nyt rinnehotelli Hotel Levi Panoramassa. Katso nyt!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/tarjoukset\/\" \/>\n<meta property=\"og:site_name\" content=\"Hotel Levi Panorama\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-05T08:46:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2026\/06\/hotel-levi-panorama-midnight-sun.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2200\" \/>\n\t<meta property=\"og:image:height\" content=\"1650\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/tarjoukset\\\/\",\"url\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/tarjoukset\\\/\",\"name\":\"Tarjoukset - Hotel Levi Panorama\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/tarjoukset\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/tarjoukset\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/wp-content\\\/uploads\\\/sites\\\/3\\\/2026\\\/06\\\/hotel-levi-panorama-midnight-sun.jpg\",\"datePublished\":\"2024-09-17T10:09:52+00:00\",\"dateModified\":\"2026-06-05T08:46:49+00:00\",\"description\":\"Tarjoukset juuri nyt rinnehotelli Hotel Levi Panoramassa. Katso nyt!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/tarjoukset\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/tarjoukset\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/tarjoukset\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/wp-content\\\/uploads\\\/sites\\\/3\\\/2026\\\/06\\\/hotel-levi-panorama-midnight-sun.jpg\",\"contentUrl\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/wp-content\\\/uploads\\\/sites\\\/3\\\/2026\\\/06\\\/hotel-levi-panorama-midnight-sun.jpg\",\"width\":2200,\"height\":1650,\"caption\":\"\\\"\\\"\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/tarjoukset\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tarjoukset\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/#website\",\"url\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/\",\"name\":\"Hotel Levi Panorama\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Tarjoukset - Hotel Levi Panorama","description":"Tarjoukset juuri nyt rinnehotelli Hotel Levi Panoramassa. Katso nyt!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/tarjoukset\/","og_locale":"en_US","og_type":"article","og_title":"Tarjoukset","og_description":"Tarjoukset juuri nyt rinnehotelli Hotel Levi Panoramassa. Katso nyt!","og_url":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/tarjoukset\/","og_site_name":"Hotel Levi Panorama","article_modified_time":"2026-06-05T08:46:49+00:00","og_image":[{"width":2200,"height":1650,"url":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2026\/06\/hotel-levi-panorama-midnight-sun.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/tarjoukset\/","url":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/tarjoukset\/","name":"Tarjoukset - Hotel Levi Panorama","isPartOf":{"@id":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/tarjoukset\/#primaryimage"},"image":{"@id":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/tarjoukset\/#primaryimage"},"thumbnailUrl":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2026\/06\/hotel-levi-panorama-midnight-sun.jpg","datePublished":"2024-09-17T10:09:52+00:00","dateModified":"2026-06-05T08:46:49+00:00","description":"Tarjoukset juuri nyt rinnehotelli Hotel Levi Panoramassa. Katso nyt!","breadcrumb":{"@id":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/tarjoukset\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/tarjoukset\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/tarjoukset\/#primaryimage","url":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2026\/06\/hotel-levi-panorama-midnight-sun.jpg","contentUrl":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2026\/06\/hotel-levi-panorama-midnight-sun.jpg","width":2200,"height":1650,"caption":"\"\""},{"@type":"BreadcrumbList","@id":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/tarjoukset\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/"},{"@type":"ListItem","position":2,"name":"Tarjoukset"}]},{"@type":"WebSite","@id":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/#website","url":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/","name":"Hotel Levi Panorama","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"lang":"fi","translations":{"fi":158,"en":2284},"pll_sync_post":{},"_links":{"self":[{"href":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-json\/wp\/v2\/pages\/158","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-json\/wp\/v2\/comments?post=158"}],"version-history":[{"count":71,"href":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-json\/wp\/v2\/pages\/158\/revisions"}],"predecessor-version":[{"id":7414,"href":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-json\/wp\/v2\/pages\/158\/revisions\/7414"}],"wp:attachment":[{"href":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-json\/wp\/v2\/media?parent=158"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}