<style>
                            [data-view='listMonthWithFeaturedImage'] .fc-list-event-title {
                                display: grid;
                                grid-template-columns: 1fr 1fr 1fr;
                                grid-gap: 32px;

                                &amp; div {
                                    grid-column: span 2;
                                    display: flex;
                                    flex-direction: column;
                                }

                                &amp; div &gt; span {
                                    font-size: 1rem;
                                }
        
                                &amp; a {
                                    font-size: 1.5rem;
                                    font-weight: bold;
                                }
        
                                &amp; img {
                                    aspect-ratio: 1 / 1;
                                    width: 100%;
                                    object-fit: cover;
                                }
                            }

                            [data-view='listMonthWithFeaturedImage'] .fc-day th[scope='colgroup'] {
                                background: none;
                                position: static;
                            }
                                
                            [data-view='listMonthWithFeaturedImage'] .fc-list-event-time {
                                display: none;
                            }

                            [data-view='listMonthWithFeaturedImage'] .fc-list-day-cushion.fc-cell-shaded {
                                background: none;
                                text-align: start;
                                display: flex;
                                align-items: center;
                                white-space: nowrap;
                                gap: 32px;
                                padding: 32px 0;
                            }

                            [data-view='listMonthWithFeaturedImage'] .fc-list-day-cushion::after {
                                width: 100%;
                                height: 1px;
                                background: var(--fc-border-color);
                            }

                            [data-view='listMonthWithFeaturedImage'] :is(.fc-list-event-title, th, .fc-list-event-graphic, .fc-listMonthWithFeaturedImage-view.fc-view){
                                border: none;
                            }

                            [data-view='listMonthWithFeaturedImage'] .fc-list-day-side-text {
                                display: none;
                            }

                            @media (max-width: 768px) {
                                [data-view='listMonthWithFeaturedImage'] .fc-list-event-title {
                                    grid-template-columns:  1fr;
                                }

                                [data-view='listMonthWithFeaturedImage'] .fc-list-event-title img {
                                    grid-row-start: 1;
                                }   
                            }
                        </style>{"id":5126,"date":"2026-05-13T17:13:39","date_gmt":"2026-05-13T21:13:39","guid":{"rendered":"https:\/\/www.arthurmurray.com\/studio-master\/calendar\/"},"modified":"2026-06-16T11:55:03","modified_gmt":"2026-06-16T15:55:03","slug":"calendar","status":"publish","type":"page","link":"https:\/\/www.arthurmurray.com\/studio-master\/calendar\/","title":{"rendered":"Calendar"},"content":{"rendered":"\n<div class=\"wp-block-group alignfull has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-cover alignfull has-parallax dyn\" style=\"margin-top:0;margin-bottom:0;padding-top:80px;padding-right:var(--wp--preset--spacing--medium);padding-bottom:0;padding-left:var(--wp--preset--spacing--medium);min-height:480px;aspect-ratio:unset;\"><div class=\"wp-block-cover__image-background wp-image-274 size-full has-parallax\" style=\"background-position:50% 50%;background-image:url(https:\/\/www.arthurmurray.com\/studio-master\/wp-content\/uploads\/sites\/10\/2025\/12\/BG-1024x576-1.webp)\"><\/div><span aria-hidden=\"true\" class=\"wp-block-cover__background has-custom-ami-secondary-500-background-color has-background-dim-60 has-background-dim\"><\/span><div class=\"wp-block-cover__inner-container has-global-padding is-layout-constrained wp-container-core-cover-is-layout-091c9636 wp-block-cover-is-layout-constrained\">\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group alignwide is-vertical is-content-justification-center is-layout-flex wp-container-core-group-is-layout-82a6c020 wp-block-group-is-layout-flex\" style=\"min-height:100%;padding-top:var(--wp--preset--spacing--medium);padding-bottom:var(--wp--preset--spacing--medium)\">\n<h2 class=\"wp-block-heading dyn has-primary-color has-text-color has-link-color has-custom-2-font-size wp-elements-4f47823e0a8bd229e174896840f515c5\">Calendar of Events<\/h2>\n\n\n\n<p class=\"dyn\">Arthur Murray <span data-tag=\"site-title\" data-params=\"&quot;&quot;\" class=\"is-tag\">Site title<\/span><\/p>\n\n\n<\/div>\n<\/div>\n<\/div><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull is-style-default has-background-background-color has-background has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0\">    <script>\n            let piecalAJAX = {\n            ajaxURL: \"https:\/\/www.arthurmurray.com\/studio-master\/wp-admin\/admin-ajax.php\",\n            ajaxNonce: \"13e8ac5300\"\n            }\n\n            let alreadyExpandedOccurrences = [];\n\n            function piecalPrepareCustomViewsForCalendar( views ) {\n                let supportedEventHandlers = [\n                    'eventDataTransform',\n                    'dateClick',\n                    'eventClick', \n                    'eventDidMount', \n                    'dayCellDidMount', \n                    'viewDidMount', \n                    'viewWillUnmount',\n                    'dayHeaderContent',\n                    'dayHeaderDidMount'\n                ];\n\n                for( let view in views ) {\n                    let viewProps = views[view];\n\n                    for( let prop in viewProps ) {\n                        if( supportedEventHandlers.includes( prop ) ) {\n                            let eventHandlerCode = viewProps[prop];\n\n                            let handlerFunction = new Function( 'info', eventHandlerCode );\n\n                            viewProps[prop] = handlerFunction;\n                        }\n                    }\n\n                    \/\/ Remove customProps since we don't want those output inside the calendar object\n                    delete viewProps.customProps;\n\n                    \/\/ Add in the $atts['duration'] value if the view has a duration property.\n                    if( viewProps.duration ) {\n                        viewProps.duration = {\n                            months: 2                        };\n                    }\n                }\n\n                return views;\n            }\n            \n            document.addEventListener('DOMContentLoaded', function() {\n                var pieCalendarFirstLoad = true;\n                var calendarEl = document.getElementById('calendar');\n                var calendar = new FullCalendar.Calendar(calendarEl, {\n                    headerToolbar: false,\n                    initialView: \"dayGridMonth\",\n                    editable: false,\n                    eventSources: [[{\"title\":\"Flamingo Dance-O-Rama\",\"start\":\"2026-09-17T12:00:00\",\"end\":\"2026-09-19T10:49:43\",\"details\":\"Flamingo Dance-O-Rama Goes Universal!&nbsp;\\n\\n\\n\\nStep into a world where ballroom dancing meets blockbuster adventure, movie magic, and the timeless glamour of the silver screen. From prehistoric thrill...\",\"permalink\":\"https:\\\/\\\/www.arthurmurray.com\\\/studio-master\\\/events\\\/flamingo-dance-o-rama\\\/\",\"postType\":\"Event\",\"postId\":5433,\"allDay\":\"1\",\"color\":\"\",\"textColor\":\"\",\"featuredimage\":\"https:\\\/\\\/www.arthurmurray.com\\\/studio-master\\\/wp-content\\\/uploads\\\/sites\\\/10\\\/2026\\\/07\\\/Flamingo-DOR-Flyer-600x776-1.webp\",\"featuredimagealt\":\"Flamingo DOR Flyer 600x776\"}]],\n                    direction: \"ltr\",\n                    contentHeight: \"auto\",\n                    locale: \"en-US\",\n                    eventTimeFormat: {\"hour\":\"2-digit\",\"minute\":\"2-digit\"},\n                    dayHeaderFormat: { weekday: 'long' },\n                    views: piecalPrepareCustomViewsForCalendar({\"listUpcoming\":{\"type\":\"listMonth\",\"duration\":{\"months\":2},\"customProps\":{\"niceName\":\"List - Upcoming\"}},\"listMonthWithFeaturedImage\":{\"type\":\"listMonth\",\"duration\":{\"months\":1},\"customProps\":{\"niceName\":\"Month - List with Image\",\"styles\":\"\\n                            [data-view='listMonthWithFeaturedImage'] .fc-list-event-title {\\n                                display: grid;\\n                                grid-template-columns: 1fr 1fr 1fr;\\n                                grid-gap: 32px;\\n\\n                                & div {\\n                                    grid-column: span 2;\\n                                    display: flex;\\n                                    flex-direction: column;\\n                                }\\n\\n                                & div > span {\\n                                    font-size: 1rem;\\n                                }\\n        \\n                                & a {\\n                                    font-size: 1.5rem;\\n                                    font-weight: bold;\\n                                }\\n        \\n                                & img {\\n                                    aspect-ratio: 1 \\\/ 1;\\n                                    width: 100%;\\n                                    object-fit: cover;\\n                                }\\n                            }\\n\\n                            [data-view='listMonthWithFeaturedImage'] .fc-day th[scope='colgroup'] {\\n                                background: none;\\n                                position: static;\\n                            }\\n                                \\n                            [data-view='listMonthWithFeaturedImage'] .fc-list-event-time {\\n                                display: none;\\n                            }\\n\\n                            [data-view='listMonthWithFeaturedImage'] .fc-list-day-cushion.fc-cell-shaded {\\n                                background: none;\\n                                text-align: start;\\n                                display: flex;\\n                                align-items: center;\\n                                white-space: nowrap;\\n                                gap: 32px;\\n                                padding: 32px 0;\\n                            }\\n\\n                            [data-view='listMonthWithFeaturedImage'] .fc-list-day-cushion::after {\\n                                width: 100%;\\n                                height: 1px;\\n                                background: var(--fc-border-color);\\n                            }\\n\\n                            [data-view='listMonthWithFeaturedImage'] :is(.fc-list-event-title, th, .fc-list-event-graphic, .fc-listMonthWithFeaturedImage-view.fc-view){\\n                                border: none;\\n                            }\\n\\n                            [data-view='listMonthWithFeaturedImage'] .fc-list-day-side-text {\\n                                display: none;\\n                            }\\n\\n                            @media (max-width: 768px) {\\n                                [data-view='listMonthWithFeaturedImage'] .fc-list-event-title {\\n                                    grid-template-columns:  1fr;\\n                                }\\n\\n                                [data-view='listMonthWithFeaturedImage'] .fc-list-event-title img {\\n                                    grid-row-start: 1;\\n                                }   \\n                            }\\n                        \"},\"eventDidMount\":\"\\n                        info = piecalJS.eventDidMount( info );\\n\\n                        let row = info.el;\\n                        let titleContainer = info.el.querySelector('.fc-list-event-title');\\n                        let titleLink = titleContainer.querySelector('a');\\n                        let column = document.createElement('div');\\n                        \\n                        let descriptionText = info.event._def.extendedProps.details;\\n                        let decoder = document.createElement('textarea');\\n                        decoder.innerHTML = descriptionText;\\n\\n                        let eventTimeText = document.createElement('span');\\n                        eventTimeText.innerText = info.el.querySelector('.fc-list-event-time').innerText;\\n                        \\n                        let description = document.createElement('p');\\n                        description.innerHTML = decoder.value;\\n                        \\n                        titleContainer.append(column);\\n                        column.append(eventTimeText);\\n                        column.append(titleLink);\\n\\n                        if( description.innerText != '' ) {\\n                            column.append(description);\\n                        }\\n                        \\n                        if( info.event._def.extendedProps.featuredimage ) {\\n                            let image = document.createElement('img');\\n                            image.setAttribute('src', info.event._def.extendedProps.featuredimage);\\n                            image.setAttribute('alt', info.event._def.extendedProps.featuredimagealt);\\n                            titleContainer.append(image);\\n                        }\\n                    \"}}),\n                    eventClick: function( info ) {\n                        info = piecalJS.eventClick( info, {\n                            appendOffset: false                        } );\n\n                            Alpine.store(\"calendarEngine\").featuredImage = info.event._def.extendedProps.featuredimage;\n    Alpine.store(\"calendarEngine\").featuredImageAlt = info.event._def.extendedProps.featuredimagealt;\n                        },\n                    eventDataTransform: function(event) {  \n                        event = piecalJS.eventDataTransform( event );\n\n                        \n                        return event;  \n                    },\n                    dateClick: function( info ) {\n                        info = piecalJS.dateClick( info );\n\n                                            },\n                    eventDidMount: function( info ) {\n                        info = piecalJS.eventDidMount( info );\n\n                                            },\n                    dayCellDidMount: function( info ) {\n                        info = piecalJS.dayCellDidMount( info );\n\n                                            },\n                    dayHeaderContent: function( info ) {\n                        info = piecalJS.dayHeaderContent( info );\n\n                        \n                        return info.text;\n                    },\n                    dayHeaderDidMount: function( info ) {\n                        let defaultOptions = {\n                            showDates: true,\n                            locale: \"en-US\"\n                        };\n\n                        info = piecalJS.dayHeaderDidMount( info, defaultOptions );\n\n                                            },\n                    \n    datesSet: function( dateInfo ) {\n        if( pieCalendarFirstLoad ) {\n            pieCalendarFirstLoad = false;\n            return;\n        }\n\n        let rangeStart = dateInfo.startStr;\n        let rangeEnd = dateInfo.endStr;\n\n        let useExtendedRanges = true;\n        let extendedRangeWidth = 40;\n\n        if( useExtendedRanges ) {\n            let extendedRangeStart = new Date( dateInfo.startStr );\n            let extendedRangeEnd = new Date( dateInfo.endStr );\n\n            extendedRangeStart.setDate( extendedRangeStart.getDate() - extendedRangeWidth );\n            extendedRangeEnd.setDate( extendedRangeEnd.getDate() + extendedRangeWidth );\n\n            rangeStart = extendedRangeStart.toISOString();\n            rangeEnd = extendedRangeEnd.toISOString();\n        }\n        \n        \/\/ Let's narrow events down to only the recurring ones to avoid sending more JSON in our AJAX request\n        \/\/ than is necessary.\n        let recurringEvents = [{\"title\":\"Flamingo Dance-O-Rama\",\"start\":\"2026-09-17T12:00:00\",\"end\":\"2026-09-19T10:49:43\",\"details\":\"Flamingo Dance-O-Rama Goes Universal!&nbsp;\\n\\n\\n\\nStep into a world where ballroom dancing meets blockbuster adventure, movie magic, and the timeless glamour of the silver screen. From prehistoric thrill...\",\"permalink\":\"https:\\\/\\\/www.arthurmurray.com\\\/studio-master\\\/events\\\/flamingo-dance-o-rama\\\/\",\"postType\":\"Event\",\"postId\":5433,\"allDay\":\"1\",\"color\":\"\",\"textColor\":\"\",\"featuredimage\":\"https:\\\/\\\/www.arthurmurray.com\\\/studio-master\\\/wp-content\\\/uploads\\\/sites\\\/10\\\/2026\\\/07\\\/Flamingo-DOR-Flyer-600x776-1.webp\",\"featuredimagealt\":\"Flamingo DOR Flyer 600x776\"}];\n\n        \/\/ Let's add the original event to our alreadyExpandedOccurrences array to avoid duplication.\n        for( let event of recurringEvents ) {\n            let eventID = encodeURI(event.title.replace(' ', '').toLowerCase())+event.start+event.postId;\n\n            alreadyExpandedOccurrences = [...alreadyExpandedOccurrences, eventID];\n        }\n\n        \/\/ Now we need to submit this range to an AJAX function that does some things and returns some events\n        fetch(piecalAJAX.ajaxURL, {\n            method: 'POST',\n            headers: {\n                'Content-Type': 'application\/x-www-form-urlencoded', \/\/ Sending our data as URL encoded form data\n                'Accept': 'application\/json', \/\/ We expect JSON in return\n            },\n            body: new URLSearchParams({ \/\/ This is a way to easily convert our data into URL encoded form data\n                'action': 'piecal_expand_occurrences_in_view',\n                'nonce': piecalAJAX.ajaxNonce,\n                'rangeStart': rangeStart,\n                'rangeEnd': rangeEnd,\n                'appendOffset': false,\n                'events': JSON.stringify( recurringEvents )\n            })\n        })\n        .then(response => response.json()) \/\/ Parsing the returned JSON\n        .then(data => {\n            if (data.success) {\n                occurrencesInRange = data.events;\n\n                for( let occurrence of data.events ) {\n                    let occurrenceID = encodeURI(occurrence.title.replace(' ', '').toLowerCase())+occurrence.start+occurrence.postId;\n\n                    if( !alreadyExpandedOccurrences.includes( occurrenceID ) ) {\n                        let scrubber = document.createElement('textarea');\n                        scrubber.innerHTML = occurrence.title;\n                        occurrence.title = scrubber.value;\n\n                        if(occurrence.allDay && occurrence.end && !occurrence.extendedProps?.isBlackoutSegment && !occurrence.isBlackoutSegment) {\n                            \/\/ Extend end date for all day events that span multiple days\n                            let { actualEnd, end } = piecalUtils.getAlldayMultidayEventEnd( occurrence ) ?? {};\n\n                            if( actualEnd && end ) {    \n                                occurrence.actualEnd = actualEnd;\n                                occurrence.end = end;\n                            }\n                        }\n                        \n                        this.addEvent( occurrence );\n                        alreadyExpandedOccurrences = [...alreadyExpandedOccurrences, occurrenceID];\n                    } else {\n                        continue;\n                    }\n                }\n            } else {\n                console.error('Recurring occurrences were not expanded due to an AJAX error.');\n            }\n        })\n        .catch(error => {\n            console.error('Error:', error);\n        });\n    },\n                    });\n                    calendar.render();\n                    window.calendar = calendar;\n            });\n\n            function piecalChangeView( view ) {\n                piecalCleanView( document.querySelector('.piecal-wrapper').getAttribute('data-view'), view );\n                document.querySelector('.piecal-wrapper').setAttribute('data-view', view);\n                window.calendar.changeView(view);\n                Alpine.store('calendarEngine').calendarView = view;\n                Alpine.store('calendarEngine').viewTitle = window.calendar.currentData.viewTitle;\n                Alpine.store('calendarEngine').viewSpec = window.calendar.currentData.viewSpec.buttonTextDefault;\n            }\n\n            \/\/ This function forces the calendar to re-render events when the view is changed, but only\n            \/\/ when necessary. This prevents artifacts from custom views from persisting between view changes\n            \/\/ when those views have the same or similar types, e.g. listMonth and listUpcoming.\n            function piecalCleanView( oldView, newView ) {\n                if( oldView.toLowerCase().includes( 'list' ) && newView.toLowerCase().includes( 'grid' ) ) {\n                    return false;\n                }\n\n                if( oldView.toLowerCase().includes( 'list' ) && newView.toLowerCase().includes( 'list' ) ) {\n                    window.calendar.changeView('dayGridMonth');\n                }\n\n                if( oldView.toLowerCase().includes( 'grid' ) && newView.toLowerCase().includes( 'grid' ) ) {\n                    window.calendar.changeView('listMonth');\n                }\n            }\n\n            function piecalGotoToday() {\n                console.log('today');\n            }\n\n            function piecalNextInView() {\n                window.calendar.next();\n            }\n\n            function piecalPreviousInView() {\n                console.log('prev');\n            }\n\n            function piecalSkipCalendar() {\n                let focusedCalendar = document.querySelector('.piecal-wrapper:focus-within');\n                let focusablesInCalendar = focusedCalendar.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"]');\n                let lastFocusable = focusablesInCalendar[focusablesInCalendar.length - 1];\n\n                let focusablesInDocument = document.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"]');\n                let targetFocusable = Array.prototype.indexOf.call(focusablesInDocument, lastFocusable) + 1;\n\n                focusablesInDocument[targetFocusable].focus();\n            }\n\n            document.addEventListener('alpine:init', () => {\n                Alpine.store('calendarEngine', {\n                    viewTitle: \"Loading\",\n                    viewSpec: \"Loading\",\n                    buttonText: {},\n                    showPopover: false,\n                    locale: \"en-US\",\n                    localeDateStringFormat: {\"hour\":\"2-digit\",\"minute\":\"2-digit\"},\n                    allDayLocaleDateStringFormat: [],\n                    calendarView: \"dayGridMonth\",\n                    eventTitle: \"Loading...\",\n                    eventDetails: \"Loading...\",\n                    eventType: \"Loading...\",\n                    eventStart: \"Loading...\",\n                    eventAllDay: false,\n                    eventActualEnd: null,\n                    eventEnd: \"Loading...\",\n                    eventUrl: \"\/\",\n                    safeOutput( input ) {\n                        let scrubber = document.createElement('textarea');\n                        scrubber.innerHTML = input;\n                        return scrubber.value;\n                    }\n                })\n            })\n\n            window.addEventListener('DOMContentLoaded', () => {\n                Alpine.store('calendarEngine').viewTitle = window.calendar.currentData.viewTitle;\n                Alpine.store('calendarEngine').viewSpec = window.calendar.currentData.viewSpec.buttonTextDefault;\n                Alpine.store('calendarEngine').buttonText = window.calendar.currentData.localeDefaults.buttonText;\n            })\n\n            window.addEventListener('keydown', (e) => {\n                if( e.keyCode == 27 || e.key == 'Escape' ) Alpine.store('calendarEngine').showPopover = false;\n\n            })\n        <\/script>\n        <div\n        class=\"piecal-wrapper\"\n        data-view=\"dayGridMonth\";\n        x-data\n        >\n            <div class=\"piecal-controls fc\">\n                <button\n                    class=\"piecal-controls__skip-calendar fc-button fc-button-primary\"\n                    onClick=\"piecalSkipCalendar()\">\n                        Skip Calendar                <\/button>\n                <div\n                class=\"piecal-controls__view-title\" \n                aria-live=\"polite\"\n                role=\"status\"\n                >\n                  <span class=\"visually-hidden\" x-text=\"$store.calendarEngine.viewTitle + ' - current view is ' + $store.calendarEngine.calendarView\"><\/span>\n                  <span aria-hidden=\"true\" x-text=\"$store.calendarEngine.viewTitle\"><\/span>\n                <\/div>\n                <label class=\"piecal-controls__view-chooser\">\n                    Choose View                    <select x-model=\"$store.calendarEngine.calendarView\" @change=\"piecalChangeView($store.calendarEngine.calendarView)\">\n                                                    <option value=\"dayGridMonth\">\n                                Month - Classic                            <\/option>\n                                                    <option value=\"listMonth\">\n                                Month - List                            <\/option>\n                                                    <option value=\"timeGridWeek\">\n                                Week - Time Grid                            <\/option>\n                                                    <option value=\"listWeek\">\n                                Week - List                            <\/option>\n                                                    <option value=\"dayGridWeek\">\n                                Week - Day Grid                            <\/option>\n                                                    <option value=\"listDay\">\n                                Day - List                            <\/option>\n                                                    <option value=\"listUpcoming\">\n                                List - Upcoming                            <\/option>\n                                                    <option value=\"listMonthWithFeaturedImage\">\n                                Month - List with Image                            <\/option>\n                                            <\/select>\n                <\/label>\n                <div class=\"piecal-controls__navigation-button-group\">\n                    <button \n                        class=\"piecal-controls__back-to-month fc-button fc-button-primary\"\n                        aria-label=\"Back to full month view.\"\n                        onClick=\"piecalChangeView('dayGridMonth')\">\n                            Back To Full Month                    <\/button>\n                    <button \n                    class=\"fc-button fc-button-primary piecal-controls__today-button\"\n                    @click=\"window.calendar.today(); $store.calendarEngine.viewTitle = window.calendar.currentData.viewTitle\"\n                    x-text=\"$store.calendarEngine.buttonText.today ?? 'Today'\">\n                    <\/button>\n                    <button \n                    class=\"fc-button fc-button-primary piecal-controls__prev-button\"\n                    @click=\"window.calendar.prev(); $store.calendarEngine.viewTitle = window.calendar.currentData.viewTitle\"\n                    :aria-label=\"$store.calendarEngine.buttonText.prev + ' ' + $store.calendarEngine.viewSpec\"><<\/button>\n                    <button \n                    class=\"fc-button fc-button-primary piecal-controls__next-button\"\n                    @click=\"window.calendar.next(); $store.calendarEngine.viewTitle = window.calendar.currentData.viewTitle\" \n                    :aria-label=\"$store.calendarEngine.buttonText.next + ' ' + $store.calendarEngine.viewSpec\">><\/button>\n                <\/div>\n            <\/div>\n            <div id=\"calendar\"><\/div>\n            <div \n                class=\"piecal-popover\" \n                x-show=\"$store.calendarEngine.showPopover\"\n                style=\"display: none;\">\n                    <div \n                    class=\"piecal-popover__inner\" \n                    role=\"dialog\"\n                    aria-labelledby=\"piecal-popover__title--01\"\n                    aria-describedby=\"piecal-popover__details--01\"\n                    @click.outside=\"$store.calendarEngine.showPopover = false\"\n                    x-trap.noscroll=\"$store.calendarEngine.showPopover\">\n                        <button \n                        class=\"piecal-popover__close-button\" \n                        title=\"Close event details\"\n                        @click=\"$store.calendarEngine.showPopover = false\">\n                        <\/button>\n                            <img :class=\"$store.calendarEngine.featuredImage ? 'piecal-popover__featured-image' : 'piecal-popover__featured-image--hidden'\" :src=\"$store.calendarEngine.featuredImage\" :alt=\"$store.calendarEngine.featuredImageAlt != '' ? $store.calendarEngine.featuredImageAlt : $store.calendarEngine.eventTitle + ' Featured Image'\">\n                            <p class=\"piecal-popover__title\" id=\"piecal-popover__title--01\" x-text=\"$store.calendarEngine.safeOutput( $store.calendarEngine.eventTitle )\">Event Title<\/p>\n                                                <hr>\n                        <div class=\"piecal-popover__meta\">\n                                                        <p>\n                            Starts                            <\/p>\n                            <p \n                            aria-labelledby=\"piecal-event-start-date\" \n                            x-text=\"!$store.calendarEngine.eventAllDay ? new Date($store.calendarEngine.eventStart).toLocaleDateString( $store.calendarEngine.locale, $store.calendarEngine.localeDateStringFormat ) : new Date($store.calendarEngine.eventStart).toLocaleDateString( $store.calendarEngine.locale, $store.calendarEngine.allDayLocaleDateStringFormat )\"><\/p>\n                            <p x-show=\"$store.calendarEngine.eventEnd\">\n                            Ends                            <\/p>\n                            <p \n                            x-show=\"$store.calendarEngine.eventEnd\" \n                            x-text=\"!$store.calendarEngine.eventAllDay ? new Date($store.calendarEngine.eventEnd).toLocaleDateString( $store.calendarEngine.locale, $store.calendarEngine.localeDateStringFormat ) : new Date($store.calendarEngine.eventActualEnd).toLocaleDateString( $store.calendarEngine.locale, $store.calendarEngine.allDayLocaleDateStringFormat )\"><\/p>\n                                                    <\/div>\n                        <hr>\n                                                <p x-show=\"$store.calendarEngine.eventDetails\" class=\"piecal-popover__details\" id=\"piecal-popover__details--01\" x-text=\"$store.calendarEngine.safeOutput( $store.calendarEngine.eventDetails )\"><\/p>                                                                        <a x-show=\"$store.calendarEngine.eventUrl\" class=\"piecal-popover__view-link\" :href=\"$store.calendarEngine.eventUrl\">\n                        View                             <span x-text=\"$store.calendarEngine.eventType\"><\/span>\n                                                    <\/a>\n                                            <\/div>\n            <\/div>\n        <\/div>\n        <div class=\"piecal-footer\">\n                    <\/div>\n        \n<\/div>\n\n\n\n<style>\n\/* ============================================================\n   Print ONLY the Pie Calendar, on ONE page.\n   Pie Calendar wraps the calendar in .piecal-wrapper\n   (FullCalendar markup, .fc*, lives inside it).\n   ============================================================ *\/\n\n@media print {\n\n  \/* 1. Landscape, tight margins, give the grid the whole sheet *\/\n  @page {\n    size: landscape;\n    margin: 6mm;\n  }\n\n  html, body {\n    margin: 0 !important;\n    padding: 0 !important;\n    height: auto !important;\n    background: #fff !important;\n  }\n\n  #wpadminbar { display: none !important; }\n\n  \/* 2. REMOVE everything that isn't the calendar (or one of its\n        ancestors). Using display:none \u2014 not visibility:hidden \u2014 so the\n        hidden content takes up NO vertical space. This is what kills\n        the empty gap and the extra blank pages.\n        Kept: ancestors of the calendar (:has), the wrapper, its kids. *\/\n  body *:not(:has(.piecal-wrapper)):not(.piecal-wrapper):not(.piecal-wrapper *) {\n    display: none !important;\n  }\n\n  \/* 3. Let the calendar use the full width, no theme container limits *\/\n  .piecal-wrapper {\n    margin: 0 !important;\n    padding: 0 !important;\n    width: 100% !important;\n    max-width: none !important;\n    float: none !important;\n  }\n\n  \/* 4. Drop interactive controls (view chooser, nav buttons, skip link)\n        so the grid gets the full page. Month\/year title stays. *\/\n  .piecal-wrapper select,\n  .piecal-wrapper button,\n  .piecal-wrapper .fc-button,\n  .piecal-wrapper .fc-toolbar-chunk:last-child,\n  .piecal-wrapper .piecal-skip-link,\n  .piecal-wrapper [class*=\"skip\"],\n  \/* \"Choose View\" label + whatever element wraps the view <select> *\/\n  .piecal-wrapper label,\n  .piecal-wrapper *:has(> select) {\n    display: none !important;\n  }\n\n  \/* 5. Collapse FullCalendar's tall, JS-driven heights so all 6 week\n        rows fit on a single page instead of stretching down. *\/\n  .piecal-wrapper .fc,\n  .piecal-wrapper .fc-view-harness,\n  .piecal-wrapper .fc-view-harness > *,\n  .piecal-wrapper .fc-daygrid-body,\n  .piecal-wrapper .fc-scroller,\n  .piecal-wrapper .fc-scrollgrid,\n  .piecal-wrapper .fc-scrollgrid-sync-table,\n  .piecal-wrapper table {\n    height: auto !important;\n    min-height: 0 !important;\n    max-height: none !important;\n    overflow: visible !important;\n  }\n\n  \/* Each day cell: shrink to content height *\/\n  .piecal-wrapper .fc-daygrid-day-frame,\n  .piecal-wrapper .fc-daygrid-day-events,\n  .piecal-wrapper .fc-daygrid-day-bottom,\n  .piecal-wrapper .fc-daygrid-day {\n    min-height: 0 !important;\n    height: auto !important;\n  }\n\n  \/* A sensible minimum so empty rows aren't paper-thin (tweak to taste) *\/\n  .piecal-wrapper .fc-daygrid-day-frame { min-height: 70px !important; }\n\n  \/* 6. Toolbar\/title spacing tightened *\/\n  .piecal-wrapper .fc-toolbar.fc-header-toolbar {\n    margin-bottom: 6px !important;\n  }\n\n  \/* 7. Don't split the grid across pages, and force colors to print *\/\n  .piecal-wrapper .fc-view-harness,\n  .piecal-wrapper table,\n  .piecal-wrapper thead,\n  .piecal-wrapper tbody,\n  .piecal-wrapper tr {\n    page-break-inside: avoid !important;\n    break-inside: avoid !important;\n  }\n\n  .piecal-wrapper * {\n    -webkit-print-color-adjust: exact !important;\n    print-color-adjust: exact !important;\n  }\n}\n<\/style>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_piecal_is_recurring":false,"_piecal_recurring_interval":1,"_piecal_recurring_frequency":"","_piecal_recurring_exact_position":false,"_piecal_recurring_end":"","_piecal_color":"","_piecal_text_color":"","_piecal_global_color_master":false,"_piecal_rsets":"[]","_piecal_is_event":false,"_piecal_start_date":"","_piecal_end_date":"","_piecal_is_allday":false,"greyd_block_editor_preview":[],"slim_seo":{"title":"Flamingo Dance-O-Rama - Arthur Murray AMI Studio Master","description":"Step into a world where ballroom dancing meets blockbuster adventure, movie magic, and the timeless glamour of the silver screen. From prehistoric thrills to spellbinding fantasy and classic Hollywood elegance, this unforgettable weekend is ready for its close-up."},"iawp_total_views":0,"footnotes":""},"page_global":[18],"class_list":["post-5126","page","type-page","status-publish","hentry","page_global-synched"],"_links":{"self":[{"href":"https:\/\/www.arthurmurray.com\/studio-master\/wp-json\/wp\/v2\/pages\/5126","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.arthurmurray.com\/studio-master\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.arthurmurray.com\/studio-master\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.arthurmurray.com\/studio-master\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.arthurmurray.com\/studio-master\/wp-json\/wp\/v2\/comments?post=5126"}],"version-history":[{"count":0,"href":"https:\/\/www.arthurmurray.com\/studio-master\/wp-json\/wp\/v2\/pages\/5126\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.arthurmurray.com\/studio-master\/wp-json\/wp\/v2\/media?parent=5126"}],"wp:term":[{"taxonomy":"page_global","embeddable":true,"href":"https:\/\/www.arthurmurray.com\/studio-master\/wp-json\/wp\/v2\/page_global?post=5126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}