{"id":7695,"date":"2026-05-04T11:16:03","date_gmt":"2026-05-04T11:16:03","guid":{"rendered":"https:\/\/www.kassiopeia.fi\/hotel-matts\/?page_id=7695"},"modified":"2026-05-06T08:37:57","modified_gmt":"2026-05-06T08:37:57","slug":"kesa","status":"publish","type":"page","link":"https:\/\/www.kassiopeia.fi\/hotel-matts\/kesa\/","title":{"rendered":"Kes\u00e4 ESPOO26"},"content":{"rendered":"\n<div class=\"wp-block-cover alignfull 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=\"2000\" height=\"1126\" class=\"wp-block-cover__image-background wp-image-7712 size-full\" alt=\"Espoon Rantaraitti kes\u00e4ll\u00e4.\" src=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2026\/05\/espoon-rantaraitti-nokkalan-majakka-kesa.jpg\" data-object-fit=\"cover\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2026\/05\/espoon-rantaraitti-nokkalan-majakka-kesa.jpg 2000w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2026\/05\/espoon-rantaraitti-nokkalan-majakka-kesa-300x169.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2026\/05\/espoon-rantaraitti-nokkalan-majakka-kesa-1024x577.jpg 1024w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2026\/05\/espoon-rantaraitti-nokkalan-majakka-kesa-768x432.jpg 768w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2026\/05\/espoon-rantaraitti-nokkalan-majakka-kesa-1536x865.jpg 1536w\" sizes=\"auto, (max-width: 2000px) 100vw, 2000px\" \/><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-matts\/wp-content\/uploads\/sites\/2\/2024\/09\/lahjakortti_tausta.jpg');\">\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\">Miksi varata suoraan meilt\u00e4? <a href=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/miksi-varata-suoraan\/\">Katso kaikki hy\u00f6dyt \u2192<\/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: ['02b1f998-a56e-41b7-a09c-b35d00b06c19'],\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-matts\" title=\"Hotel Matts\">Hotel Matts<\/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-8afa26f4 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--60);padding-left:var(--wp--preset--spacing--40)\">\n<div class=\"wp-block-group alignwide ingress is-layout-constrained wp-block-group-is-layout-constrained\">\n<h1 class=\"wp-block-heading has-text-align-center\" id=\"h-kesa-espoossa\" style=\"margin-bottom:var(--wp--preset--spacing--60)\">Kes\u00e4 Espoossa<\/h1>\n\n\n\n<p class=\"has-text-align-center has-large-font-size\">Koe monipuolinen kaupunkiloma Espoossa! Espoo tarjoaa el\u00e4myksi\u00e4 luonnosta kulttuuriin ja merellisist\u00e4 maisemista kaupungin tunnelmaan. Hotel Mattsissa majoitut Matinkyl\u00e4n palveluiden ja hyvien kulkuyhteyksien \u00e4\u00e4rell\u00e4, joten liikut vaivattomasti my\u00f6s Helsingin n\u00e4ht\u00e4vyyksiin.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull is-layout-constrained wp-container-core-group-is-layout-fb324405 wp-block-group-is-layout-constrained\" style=\"padding-top:0;padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)\"><div class='kassiopeia-offer-items item-count-4' data-count='4'>\n            <div class='scroller-container'><a href='https:\/\/app.mews.com\/distributor\/02b1f998-a56e-41b7-a09c-b35d00b06c19?mewsVoucherCode=SUM26&#038;language=fi-FI' 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-7809 size-full\" alt=\"Pariskunta y\u00f6pyy Hotel Mattsissa.\" src=\"https:\/\/www.kassiopeia.fi\/wp-content\/uploads\/2025\/01\/hotelmatts-PROSUMMER_2025_nosto_pariskunta.jpg\" style=\"object-position:48% 21%\" data-object-fit=\"cover\" data-object-position=\"48% 21%\"\/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-0 has-background-dim\" style=\"background-color:#918d84\"><\/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 Matts<\/p>\n\n\n\n<h2 class=\"wp-block-heading kassiopeia-offer-price\" id=\"h-alk-85\">alk. 85 \u20ac<\/h2>\n\n\n\n<p class=\"kassiopeia-offer-description\">huone yhdelle\/y\u00f6<br>sis\u00e4lt\u00e4\u00e4 aamiaisen<\/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-kesan-irtiotto-alkaa-tasta\">Kes\u00e4n irtiotto alkaa t\u00e4st\u00e4<\/h3>\n\n\n\n<p class=\"kassiopeia-offer-textcontent-description\">Hotel Matts tarjoaa viihtyis\u00e4n tukikohdan, josta k\u00e4sin koet Espoon ja Helsingin parhaat palat!<br>Huone yhdelle alk. <strong>85 \u20ac\/y\u00f6<\/strong>.<br>Huone kahdelle alk. <strong>95 \u20ac\/y\u00f6<\/strong>.<br>Majoitu kampanjahintaan <strong>18.6.-30.8.2026\u200b<\/strong>.\u200b Varaa koodilla <strong>SUM26<\/strong><\/p>\n<\/div>\n<\/section>\n<\/a><a href='https:\/\/app.mews.com\/distributor\/02b1f998-a56e-41b7-a09c-b35d00b06c19?mewsVoucherCode=SUM26&#038;language=fi-FI' 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-7808 size-large\" alt=\"\" src=\"https:\/\/www.kassiopeia.fi\/wp-content\/uploads\/2025\/01\/hotelmatts-PROSUMMER_2025_nosto_huoneistot-1600x1200.jpg\" style=\"object-position:47% 28%\" data-object-fit=\"cover\" data-object-position=\"47% 28%\"\/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-0 has-background-dim\" style=\"background-color:#918d84\"><\/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 Matts<\/p>\n\n\n\n<h2 class=\"wp-block-heading kassiopeia-offer-price\" id=\"h-alk-125\">alk. 125 \u20ac<\/h2>\n\n\n\n<p class=\"kassiopeia-offer-description\">huoneisto\/y\u00f6<br>sis\u00e4lt\u00e4\u00e4 aamiaisen<\/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-loma-jossa-kaikki-mahtuvat-viihtymaan\">Loma, jossa kaikki mahtuvat viihtym\u00e4\u00e4n<\/h3>\n\n\n\n<p class=\"kassiopeia-offer-textcontent-description\">Tilava huoneisto tekee lomasta helpomman, ja pidemm\u00e4ll\u00e4 lomalla ehtii kokea enemm\u00e4n yhdess\u00e4!<br>Huoneisto 1-4 henkil\u00f6lle alk. <strong>125 \u20ac\/y\u00f6<\/strong><br>Majoitu kampanjahintaan <strong>18.6.-30.8.2026<\/strong>\u200b. Minimi majoitusaika huoneistossa on <strong>2 y\u00f6t\u00e4<\/strong>.\u200b Varaa koodilla <strong>SUM26<\/strong><\/p>\n<\/div>\n<\/section>\n<\/a><a href='https:\/\/app.mews.com\/distributor\/02b1f998-a56e-41b7-a09c-b35d00b06c19?mewsVoucherCode=ESPOO26&#038;language=fi-FI' 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-7794 size-full\" alt=\"Hotel Mattsin superior-huone.\" src=\"https:\/\/www.kassiopeia.fi\/wp-content\/uploads\/2026\/05\/hotel-matts-huone-superior.jpg\" data-object-fit=\"cover\"\/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-0 has-background-dim\" style=\"background-color:#918d84\"><\/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 Matts<\/p>\n\n\n\n<h2 class=\"wp-block-heading kassiopeia-offer-price\" id=\"h-alk-95\">alk. 95 \u20ac<\/h2>\n\n\n\n<p class=\"kassiopeia-offer-description\">2 hengen huone\/y\u00f6<br>sis\u00e4lt\u00e4\u00e4 aamiaisen<\/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-kesan-helpoin-loma-loytyy-lahelta-alk-95-kahdelle\">Kes\u00e4n helpoin loma l\u00f6ytyy l\u00e4helt\u00e4 alk. 95 \u20ac kahdelle<\/h3>\n\n\n\n<p class=\"kassiopeia-offer-textcontent-description\">Hotel Matts tarjoaa viihtyis\u00e4n tukikohdan, josta k\u00e4sin koet Espoon ja Helsingin parhaat palat. <strong>Majoitu kampanjahintaan 18.6.-30.8.2026\u200b.\u200b<\/strong> Varaa koodilla <strong>ESPOO26<\/strong><\/p>\n<\/div>\n<\/section>\n<\/a><a href='https:\/\/app.mews.com\/distributor\/02b1f998-a56e-41b7-a09c-b35d00b06c19?mewsVoucherCode=ESPOO26&#038;language=fi-FI' 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-5714 size-full\" alt=\"\" src=\"https:\/\/www.kassiopeia.fi\/wp-content\/uploads\/2024\/11\/matts_huoneisto_kolmio-4-2000px.jpg\" style=\"object-position:50% 62%\" data-object-fit=\"cover\" data-object-position=\"50% 62%\"\/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-0 has-background-dim\" style=\"background-color:#918d84\"><\/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 Matts<\/p>\n\n\n\n<h2 class=\"wp-block-heading kassiopeia-offer-price\" id=\"h-alk-125\">alk. 125 \u20ac<\/h2>\n\n\n\n<p class=\"kassiopeia-offer-description\">1-4 henkil\u00f6\u00e4\/y\u00f6<br>sis\u00e4lt\u00e4\u00e4 aamiaisen<\/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-koko-perheen-loma-huoneistossa-alk-124-yo\">Koko perheen loma huoneistossa alk. 124 \u20ac \/ y\u00f6<\/h3>\n\n\n\n<p class=\"kassiopeia-offer-textcontent-description\">Kun viivyt kaksi y\u00f6t\u00e4 tai pidemp\u00e4\u00e4n, ehdit kokea enemm\u00e4n yhdess\u00e4! <strong>Majoitu kampanjahintaan 18.6.-30.8.2026\u200b. Minimi majoitusaika huoneistossa on 2 y\u00f6t\u00e4.\u200b<\/strong> Varaa koodilla <strong>ESPOO26<\/strong><\/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-matts\/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-matts\/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 link-blank is-layout-constrained wp-container-core-group-is-layout-ead34ece wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--60);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--40)\">\n<h2 class=\"wp-block-heading\" id=\"h-elamyksia-espoossa\">El\u00e4myksi\u00e4 Espoossa<\/h2>\n\n\n\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-f3a7ff92 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"padding-bottom:var(--wp--preset--spacing--40)\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.kassiopeia.fi\/ravintola-freja\/rooftop\/\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1500\" height=\"1000\" src=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/04\/freja-rooftop-kattoterassi-espoo.jpg\" alt=\"Freja Rooftop Espoossa.\" class=\"wp-image-6485\" style=\"aspect-ratio:3\/2;object-fit:cover\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/04\/freja-rooftop-kattoterassi-espoo.jpg 1500w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/04\/freja-rooftop-kattoterassi-espoo-300x200.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/04\/freja-rooftop-kattoterassi-espoo-1024x683.jpg 1024w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/04\/freja-rooftop-kattoterassi-espoo-768x512.jpg 768w\" sizes=\"auto, (max-width: 1500px) 100vw, 1500px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-tervetuloa-freja-rooftop-kattoterassille\" style=\"margin-top:0;padding-top:var(--wp--preset--spacing--40)\"><a href=\"https:\/\/www.kassiopeia.fi\/ravintola-freja\/rooftop\/\" target=\"_blank\" rel=\"noreferrer noopener\">Tervetuloa Freja Rooftop -kattoterassille!<\/a><\/h3>\n\n\n\n<p style=\"margin-top:var(--wp--preset--spacing--20)\"><a href=\"https:\/\/www.kassiopeia.fi\/ravintola-freja\/rooftop\/\" target=\"_blank\" rel=\"noreferrer noopener\">Freja Rooftop tarjoaa rennon paikan nauttia kes\u00e4st\u00e4 Matinkyl\u00e4n kattojen yll\u00e4. Kattoterassi sijaitsee hotellin 7. kerroksessa. Katso aukioloajat. \u2192<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-columns custom-mobile-order is-layout-flex wp-container-core-columns-is-layout-9411c1b7 wp-block-columns-is-layout-flex\" style=\"margin-top:0;margin-bottom:var(--wp--preset--spacing--50)\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"padding-top:var(--wp--preset--spacing--40);flex-basis:60%\">\n<h3 class=\"wp-block-heading has-text-align-left\" id=\"h-koe-paakaupunkiseudun-saariston-hienoin-reitti\"><a href=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/etuja-asiakkaille\/#saaristoreitti\" target=\"_blank\" rel=\"noreferrer noopener\">Koe p\u00e4\u00e4kaupunkiseudun saariston hienoin reitti<\/a><\/h3>\n\n\n\n<p style=\"margin-top:var(--wp--preset--spacing--20)\"><a href=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/etuja-asiakkaille\/#saaristoreitti\" target=\"_blank\" rel=\"noreferrer noopener\">Hotel Mattsin asiakkaana saat etuhinnan FRS Finlandin L\u00e4ntisen Saaristoreitin lipuista. \u2192<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:40%\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/etuja-asiakkaille\/#saaristoreitti\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"600\" src=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/09\/FRS-Finland_Lantinen-Saaristoreitti1-800x600-1.jpg\" alt=\"FRS-l\u00e4ntinen saaristoreitti.\" class=\"wp-image-1139\" style=\"aspect-ratio:3\/2;object-fit:cover\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/09\/FRS-Finland_Lantinen-Saaristoreitti1-800x600-1.jpg 800w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/09\/FRS-Finland_Lantinen-Saaristoreitti1-800x600-1-300x225.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/09\/FRS-Finland_Lantinen-Saaristoreitti1-800x600-1-768x576.jpg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns custom-mobile-order is-layout-flex wp-container-core-columns-is-layout-9411c1b7 wp-block-columns-is-layout-flex\" style=\"margin-top:0;margin-bottom:var(--wp--preset--spacing--50)\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"padding-top:var(--wp--preset--spacing--40);flex-basis:60%\">\n<h3 class=\"wp-block-heading has-text-align-left\" id=\"h-vieta-paiva-temppuillen\" style=\"margin-bottom:0;padding-bottom:0\"><a href=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/etuja-asiakkaille\/#duudsonit\" target=\"_blank\" rel=\"noreferrer noopener\">Viet\u00e4 p\u00e4iv\u00e4 temppuillen<\/a><\/h3>\n\n\n\n<p style=\"margin-top:var(--wp--preset--spacing--20);padding-top:0\"><a href=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/etuja-asiakkaille\/#duudsonit\" target=\"_blank\" rel=\"noreferrer noopener\">Asiakkaamme saavat alennuksen Espoon Duudsonit Activity Parkiin. Lue lis\u00e4\u00e4! \u2192<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:40%\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/etuja-asiakkaille\/#duudsonit\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"450\" src=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/06\/Duudsonit-activity-park-espoo.jpg\" alt=\"Duudsonit Acitivity Park Espoo.\" class=\"wp-image-6803\" style=\"aspect-ratio:3\/2;object-fit:cover\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/06\/Duudsonit-activity-park-espoo.jpg 800w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/06\/Duudsonit-activity-park-espoo-300x169.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/06\/Duudsonit-activity-park-espoo-768x432.jpg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns custom-mobile-order is-layout-flex wp-container-core-columns-is-layout-9411c1b7 wp-block-columns-is-layout-flex\" style=\"margin-top:0;margin-bottom:var(--wp--preset--spacing--50)\">\n<div class=\"wp-block-column is-layout-flow wp-container-core-column-is-layout-0209312f wp-block-column-is-layout-flow\" style=\"padding-top:var(--wp--preset--spacing--40);padding-bottom:0;flex-basis:60%\">\n<h3 class=\"wp-block-heading has-text-align-left\" id=\"h-majoittujan-edut\" style=\"margin-bottom:0;padding-bottom:0;line-height:1\"><a href=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/etuja-asiakkaille\/\" target=\"_blank\" rel=\"noreferrer noopener\">Majoittujan edut<\/a><\/h3>\n\n\n\n<p style=\"margin-top:0;padding-top:0\"><a href=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/etuja-asiakkaille\/\" target=\"_blank\" rel=\"noreferrer noopener\">Majoittuessasi Hotel Mattsissa, saat etuja l\u00e4hialueen palveluihin ja el\u00e4myksiin. Tutustu koko tarjontaan ja varaa! \u2192<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-container-core-column-is-layout-92d440f1 wp-block-column-is-layout-flow\" style=\"padding-top:0;padding-bottom:0;flex-basis:40%\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/etuja-asiakkaille\/\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"2000\" height=\"1125\" src=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/elixia-kuntosali-nainen.jpg\" alt=\"Nainen treenaa ELIXIA-kuntosalilla Espoossa.\" class=\"wp-image-3257\" style=\"aspect-ratio:3\/2;object-fit:cover\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/elixia-kuntosali-nainen.jpg 2000w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/elixia-kuntosali-nainen-300x169.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/elixia-kuntosali-nainen-1024x576.jpg 1024w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/elixia-kuntosali-nainen-768x432.jpg 768w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2024\/10\/elixia-kuntosali-nainen-1536x864.jpg 1536w\" sizes=\"auto, (max-width: 2000px) 100vw, 2000px\" \/><\/a><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns custom-mobile-order hidden is-layout-flex wp-container-core-columns-is-layout-9411c1b7 wp-block-columns-is-layout-flex\" style=\"margin-top:0;margin-bottom:var(--wp--preset--spacing--50)\">\n<div class=\"wp-block-column is-layout-flow wp-container-core-column-is-layout-0209312f wp-block-column-is-layout-flow\" style=\"padding-top:var(--wp--preset--spacing--40);padding-bottom:0;flex-basis:60%\">\n<h3 class=\"wp-block-heading has-text-align-left\" id=\"h-mita-tehda-espoossa\" style=\"margin-bottom:0;padding-bottom:0;line-height:1\"><a href=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/mita-tehda-espoossa\/\"><\/a><a href=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/mita-tehda-espoossa\/\">Mit\u00e4 tehd\u00e4 Espoossa?<\/a><\/h3>\n\n\n\n<p style=\"margin-top:0;padding-top:0\"><a href=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/mita-tehda-espoossa\/\"><\/a><a href=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/mita-tehda-espoossa\/\">Hotel Mattsissa majoitut Espoon Matinkyl\u00e4n monipuolisten palveluiden ja erinomaisten liikenneyhteyksien, kuten L\u00e4nsimetron \u00e4\u00e4rell\u00e4. Katso vinkit mit\u00e4 tehd\u00e4 Espoossa! \u2192<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-container-core-column-is-layout-92d440f1 wp-block-column-is-layout-flow\" style=\"padding-top:0;padding-bottom:0;flex-basis:40%\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/mita-tehda-espoossa\/\"><img loading=\"lazy\" decoding=\"async\" width=\"2000\" height=\"1333\" src=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/12\/nokkalan-majakka-talvella.jpg\" alt=\"Nokkalan Majakka talvella.\" class=\"wp-image-7251\" style=\"aspect-ratio:3\/2;object-fit:cover\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/12\/nokkalan-majakka-talvella.jpg 2000w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/12\/nokkalan-majakka-talvella-300x200.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/12\/nokkalan-majakka-talvella-1024x682.jpg 1024w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/12\/nokkalan-majakka-talvella-768x512.jpg 768w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/12\/nokkalan-majakka-talvella-1536x1024.jpg 1536w\" sizes=\"auto, (max-width: 2000px) 100vw, 2000px\" \/><\/a><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns custom-mobile-order hidden is-layout-flex wp-container-core-columns-is-layout-9411c1b7 wp-block-columns-is-layout-flex\" style=\"margin-top:0;margin-bottom:var(--wp--preset--spacing--50)\">\n<div class=\"wp-block-column is-layout-flow wp-container-core-column-is-layout-0209312f wp-block-column-is-layout-flow\" style=\"padding-top:var(--wp--preset--spacing--40);padding-bottom:0;flex-basis:60%\">\n<h3 class=\"wp-block-heading has-text-align-left\" id=\"h-leffaan-etuhintaan\" style=\"margin-bottom:0;padding-bottom:0;line-height:1\"><a href=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/etuja-asiakkaille\/#finnkino\">Leffaan etuhintaan<\/a><\/h3>\n\n\n\n<p style=\"margin-top:0;padding-top:0\"><a href=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/etuja-asiakkaille\/#finnkino\">Finnkino Iso Omena tarjoaa asiakkaillemme elokuvalipun etuhintaan 9 \u20ac\/lippu maanantaista torstaihin. \u2192<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-container-core-column-is-layout-92d440f1 wp-block-column-is-layout-flow\" style=\"padding-top:0;padding-bottom:0;flex-basis:40%\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/etuja-asiakkaille\/#finnkino\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"667\" src=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/05\/finnkino-iso-omena-espoo.jpg\" alt=\"Finnkino Iso Omenan elokuvasali.\" class=\"wp-image-6494\" style=\"aspect-ratio:3\/2;object-fit:cover\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/05\/finnkino-iso-omena-espoo.jpg 1000w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/05\/finnkino-iso-omena-espoo-300x200.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/05\/finnkino-iso-omena-espoo-768x512.jpg 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull is-layout-constrained wp-container-core-group-is-layout-fc3172a5 wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--40);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-media-text is-stacked-on-mobile is-image-fill-element has-hotel-matts-10-background-color has-background\" style=\"padding-top:0;padding-bottom:0\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"750\" src=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/07\/espoon-rantaraitti-pyoralla.jpg\" alt=\"Espoon Rantaraitti ja Jopo-py\u00f6r\u00e4.\" class=\"wp-image-6912 size-full\" style=\"object-position:50% 50%\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/07\/espoon-rantaraitti-pyoralla.jpg 1000w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/07\/espoon-rantaraitti-pyoralla-300x225.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/07\/espoon-rantaraitti-pyoralla-768x576.jpg 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60)\">\n<h3 class=\"wp-block-heading\" id=\"seniorialennus\">Mit\u00e4 muuta tehd\u00e4 Espoossa?<\/h3>\n\n\n\n<p>Espoossa p\u00e4\u00e4set kokemaan el\u00e4myksi\u00e4 luonnosta kulttuuriin ja merellisist\u00e4 maisemista kaupungin tunnelmaan. Hotel Matts toimii t\u00e4ydellisen\u00e4 tukikohtana Espoon tutkimiseen Matinkyl\u00e4n palveluiden \u00e4\u00e4rell\u00e4, mutta l\u00e4hell\u00e4 luontoa.<\/p>\n\n\n\n<p>Hypp\u00e4\u00e4 esimerkiksi Jopo-py\u00f6r\u00e4n selk\u00e4\u00e4n ja l\u00e4hde tutkimaan upeaa Espoon Rantaraittia tai l\u00e4hialueen muita kohteita. Hotel Mattsin vastaanotosta <a href=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/etuja-asiakkaille\/lainaa-pyora\/\">voit lainata py\u00f6r\u00e4n helposti vierailusi ajaksi<\/a>.<\/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\/hotel-matts\/mita-tehda-espoossa\/\" target=\"_blank\" rel=\"noreferrer noopener\">Tutustu tarkemmin Espoon tarjontaan<\/a><\/div>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-media-text has-media-on-the-right is-stacked-on-mobile is-image-fill-element has-hotel-matts-10-background-color has-background\" style=\"padding-top:0;padding-bottom:0\"><div class=\"wp-block-media-text__content\">\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60)\">\n<h3 class=\"wp-block-heading\" id=\"seniorialennus\">Metrolla Helsinkiin<\/h3>\n\n\n\n<p>Hotel Matts sijaitsee Espoon Matinkyl\u00e4ss\u00e4 aivan metroaseman vieress\u00e4, joten p\u00e4\u00e4set Helsingin keskustaan vaivattomasti ja nopeasti ilman autoliikenteen ruuhkia tai pys\u00e4k\u00f6intihuolia. J\u00e4t\u00e4 auto Hotel Mattsin omaan parkkihalliin ja hypp\u00e4\u00e4 metron kyytiin \u2013 Helsingin n\u00e4ht\u00e4vyydet ovat vain 20 minuutin metromatkan p\u00e4\u00e4ss\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\/hotel-matts\/vieraile-helsingissa\/\" target=\"_blank\" rel=\"noreferrer noopener\">Katso vinki Helsingin vierailuun<\/a><\/div>\n<\/div>\n<\/div>\n<\/div><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"563\" src=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/05\/Helsinki-kauppatori.jpg\" alt=\"Helsinki kauppatori kes\u00e4ll\u00e4.\" class=\"wp-image-6534 size-full\" style=\"object-position:50% 50%\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/05\/Helsinki-kauppatori.jpg 1000w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/05\/Helsinki-kauppatori-300x169.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/05\/Helsinki-kauppatori-768x432.jpg 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull is-layout-constrained wp-container-core-group-is-layout-2402468d wp-block-group-is-layout-constrained\" style=\"margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50);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<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-fe4a19cd wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"padding-bottom:3%\">\n<div class=\"wp-block-columns alignwide is-not-stacked-on-mobile is-layout-flex wp-container-core-columns-is-layout-90d9e455 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-full openable-image\"><img loading=\"lazy\" decoding=\"async\" width=\"2000\" height=\"1125\" src=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/05\/Hotel-Matts-ulkoa-kesa.jpg\" alt=\"Hotel Matts rakennus ulkoa kes\u00e4ll\u00e4.\" class=\"wp-image-6652\" style=\"aspect-ratio:1;object-fit:cover\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/05\/Hotel-Matts-ulkoa-kesa.jpg 2000w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/05\/Hotel-Matts-ulkoa-kesa-300x169.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/05\/Hotel-Matts-ulkoa-kesa-1024x576.jpg 1024w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/05\/Hotel-Matts-ulkoa-kesa-768x432.jpg 768w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/05\/Hotel-Matts-ulkoa-kesa-1536x864.jpg 1536w\" sizes=\"auto, (max-width: 2000px) 100vw, 2000px\" \/><\/figure>\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 aligncenter size-full openable-image\"><img loading=\"lazy\" decoding=\"async\" width=\"2000\" height=\"1125\" src=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2026\/04\/matinkyla-ilmakuva-02.jpg\" alt=\"Matinkyl\u00e4n ilmakuva.\" class=\"wp-image-7617\" style=\"aspect-ratio:1;object-fit:cover\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2026\/04\/matinkyla-ilmakuva-02.jpg 2000w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2026\/04\/matinkyla-ilmakuva-02-300x169.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2026\/04\/matinkyla-ilmakuva-02-1024x576.jpg 1024w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2026\/04\/matinkyla-ilmakuva-02-768x432.jpg 768w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2026\/04\/matinkyla-ilmakuva-02-1536x864.jpg 1536w\" sizes=\"auto, (max-width: 2000px) 100vw, 2000px\" \/><\/figure>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"padding-bottom:3%\">\n<div class=\"wp-block-columns alignwide is-not-stacked-on-mobile is-layout-flex wp-container-core-columns-is-layout-90d9e455 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-full openable-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1800\" height=\"1350\" src=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/02\/nokkalan-majakka-espoo.jpg\" alt=\"Nokkalan Majakka Espoossa kes\u00e4ll\u00e4.\" class=\"wp-image-6043\" style=\"aspect-ratio:1;object-fit:cover\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/02\/nokkalan-majakka-espoo.jpg 1800w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/02\/nokkalan-majakka-espoo-300x225.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/02\/nokkalan-majakka-espoo-1024x768.jpg 1024w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/02\/nokkalan-majakka-espoo-768x576.jpg 768w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/02\/nokkalan-majakka-espoo-1536x1152.jpg 1536w\" sizes=\"auto, (max-width: 1800px) 100vw, 1800px\" \/><\/figure>\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 aligncenter size-full openable-image\"><img loading=\"lazy\" decoding=\"async\" width=\"961\" height=\"1000\" src=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/07\/hotel-matts-pyorailija-kesalla.jpg\" alt=\"Py\u00f6r\u00e4ilij\u00e4 Espoon py\u00f6r\u00e4polulla.\" class=\"wp-image-6889\" style=\"aspect-ratio:1;object-fit:cover\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/07\/hotel-matts-pyorailija-kesalla.jpg 961w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/07\/hotel-matts-pyorailija-kesalla-288x300.jpg 288w, https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/07\/hotel-matts-pyorailija-kesalla-768x799.jpg 768w\" sizes=\"auto, (max-width: 961px) 100vw, 961px\" \/><\/figure>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Kes\u00e4 Espoossa Koe monipuolinen kaupunkiloma Espoossa! Espoo tarjoaa el\u00e4myksi\u00e4 luonnosta kulttuuriin ja merellisist\u00e4 maisemista kaupungin tunnelmaan. Hotel Mattsissa majoitut Matinkyl\u00e4n palveluiden ja hyvien kulkuyhteyksien \u00e4\u00e4rell\u00e4, joten liikut vaivattomasti my\u00f6s Helsingin n\u00e4ht\u00e4vyyksiin. El\u00e4myksi\u00e4 Espoossa Tervetuloa Freja Rooftop -kattoterassille! Freja Rooftop tarjoaa rennon paikan nauttia kes\u00e4st\u00e4 Matinkyl\u00e4n kattojen yll\u00e4. Kattoterassi sijaitsee hotellin 7. kerroksessa. Katso aukioloajat. \u2192 [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"parent":0,"menu_order":3,"comment_status":"closed","ping_status":"closed","template":"wp-custom-template-pages-hotel-matts","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-7695","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>Kes\u00e4n kaupunkiloma Espoossa! | Hotel Matts<\/title>\n<meta name=\"description\" content=\"Koe monipuolinen kaupunkiloma Espoossa! Hotel Mattsissa majoitut Matinkyl\u00e4n palveluiden \u00e4\u00e4rell\u00e4 sek\u00e4 liikut helposti Helsinkiin. Katso tarjoukset!\" \/>\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-matts\/kesa\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kes\u00e4 ESPOO26\" \/>\n<meta property=\"og:description\" content=\"Koe monipuolinen kaupunkiloma Espoossa! Hotel Mattsissa majoitut Matinkyl\u00e4n palveluiden \u00e4\u00e4rell\u00e4 sek\u00e4 liikut helposti Helsinkiin. Katso tarjoukset!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/kesa\/\" \/>\n<meta property=\"og:site_name\" content=\"Hotel Matts\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-06T08:37:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2026\/05\/espoon-rantaraitti-nokkalan-majakka-kesa.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1126\" \/>\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=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-matts\\\/kesa\\\/\",\"url\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-matts\\\/kesa\\\/\",\"name\":\"Kes\u00e4n kaupunkiloma Espoossa! | Hotel Matts\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-matts\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-matts\\\/kesa\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-matts\\\/kesa\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-matts\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2026\\\/05\\\/espoon-rantaraitti-nokkalan-majakka-kesa.jpg\",\"datePublished\":\"2026-05-04T11:16:03+00:00\",\"dateModified\":\"2026-05-06T08:37:57+00:00\",\"description\":\"Koe monipuolinen kaupunkiloma Espoossa! Hotel Mattsissa majoitut Matinkyl\u00e4n palveluiden \u00e4\u00e4rell\u00e4 sek\u00e4 liikut helposti Helsinkiin. Katso tarjoukset!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-matts\\\/kesa\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-matts\\\/kesa\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-matts\\\/kesa\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-matts\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2026\\\/05\\\/espoon-rantaraitti-nokkalan-majakka-kesa.jpg\",\"contentUrl\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-matts\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2026\\\/05\\\/espoon-rantaraitti-nokkalan-majakka-kesa.jpg\",\"width\":2000,\"height\":1126,\"caption\":\"Espoon Rantaraitti kes\u00e4ll\u00e4.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-matts\\\/kesa\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-matts\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kes\u00e4 ESPOO26\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-matts\\\/#website\",\"url\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-matts\\\/\",\"name\":\"Hotel Matts\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-matts\\\/?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":"Kes\u00e4n kaupunkiloma Espoossa! | Hotel Matts","description":"Koe monipuolinen kaupunkiloma Espoossa! Hotel Mattsissa majoitut Matinkyl\u00e4n palveluiden \u00e4\u00e4rell\u00e4 sek\u00e4 liikut helposti Helsinkiin. Katso tarjoukset!","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-matts\/kesa\/","og_locale":"en_US","og_type":"article","og_title":"Kes\u00e4 ESPOO26","og_description":"Koe monipuolinen kaupunkiloma Espoossa! Hotel Mattsissa majoitut Matinkyl\u00e4n palveluiden \u00e4\u00e4rell\u00e4 sek\u00e4 liikut helposti Helsinkiin. Katso tarjoukset!","og_url":"https:\/\/www.kassiopeia.fi\/hotel-matts\/kesa\/","og_site_name":"Hotel Matts","article_modified_time":"2026-05-06T08:37:57+00:00","og_image":[{"width":2000,"height":1126,"url":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2026\/05\/espoon-rantaraitti-nokkalan-majakka-kesa.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.kassiopeia.fi\/hotel-matts\/kesa\/","url":"https:\/\/www.kassiopeia.fi\/hotel-matts\/kesa\/","name":"Kes\u00e4n kaupunkiloma Espoossa! | Hotel Matts","isPartOf":{"@id":"https:\/\/www.kassiopeia.fi\/hotel-matts\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.kassiopeia.fi\/hotel-matts\/kesa\/#primaryimage"},"image":{"@id":"https:\/\/www.kassiopeia.fi\/hotel-matts\/kesa\/#primaryimage"},"thumbnailUrl":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2026\/05\/espoon-rantaraitti-nokkalan-majakka-kesa.jpg","datePublished":"2026-05-04T11:16:03+00:00","dateModified":"2026-05-06T08:37:57+00:00","description":"Koe monipuolinen kaupunkiloma Espoossa! Hotel Mattsissa majoitut Matinkyl\u00e4n palveluiden \u00e4\u00e4rell\u00e4 sek\u00e4 liikut helposti Helsinkiin. Katso tarjoukset!","breadcrumb":{"@id":"https:\/\/www.kassiopeia.fi\/hotel-matts\/kesa\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.kassiopeia.fi\/hotel-matts\/kesa\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.kassiopeia.fi\/hotel-matts\/kesa\/#primaryimage","url":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2026\/05\/espoon-rantaraitti-nokkalan-majakka-kesa.jpg","contentUrl":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2026\/05\/espoon-rantaraitti-nokkalan-majakka-kesa.jpg","width":2000,"height":1126,"caption":"Espoon Rantaraitti kes\u00e4ll\u00e4."},{"@type":"BreadcrumbList","@id":"https:\/\/www.kassiopeia.fi\/hotel-matts\/kesa\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.kassiopeia.fi\/hotel-matts\/"},{"@type":"ListItem","position":2,"name":"Kes\u00e4 ESPOO26"}]},{"@type":"WebSite","@id":"https:\/\/www.kassiopeia.fi\/hotel-matts\/#website","url":"https:\/\/www.kassiopeia.fi\/hotel-matts\/","name":"Hotel Matts","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.kassiopeia.fi\/hotel-matts\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"lang":"fi","translations":{"fi":7695,"en":7768},"pll_sync_post":{},"_links":{"self":[{"href":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-json\/wp\/v2\/pages\/7695","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-json\/wp\/v2\/comments?post=7695"}],"version-history":[{"count":20,"href":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-json\/wp\/v2\/pages\/7695\/revisions"}],"predecessor-version":[{"id":7783,"href":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-json\/wp\/v2\/pages\/7695\/revisions\/7783"}],"wp:attachment":[{"href":"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-json\/wp\/v2\/media?parent=7695"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}