{"id":229,"date":"2026-05-01T13:43:01","date_gmt":"2026-05-01T17:43:01","guid":{"rendered":"https:\/\/microsites.greenvillewebworks.com\/restaurant\/?page_id=229"},"modified":"2026-05-01T13:43:19","modified_gmt":"2026-05-01T17:43:19","slug":"photo-gallery","status":"publish","type":"page","link":"https:\/\/microsites.greenvillewebworks.com\/restaurant\/photo-gallery\/","title":{"rendered":"Photo Gallery"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"229\" class=\"elementor elementor-229\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-11348cc e-flex e-con-boxed e-con e-parent\" data-id=\"11348cc\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f5f27cb elementor-widget elementor-widget-shortcode\" data-id=\"f5f27cb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <style>\n        \/* Lightbox overlay *\/\n        .ms-lb { display:none; position:fixed; inset:0; z-index:99999; background:rgba(0,0,0,.9);\n                 align-items:center; justify-content:center; }\n        .ms-lb.ms-lb--open { display:flex; }\n        .ms-lb__img { max-width:90vw; max-height:90vh; object-fit:contain; border-radius:4px; display:block; }\n        .ms-lb__close { position:absolute; top:16px; right:20px; font-size:2rem; color:#fff;\n                        background:none; border:none; cursor:pointer; line-height:1; }\n        .ms-lb__prev, .ms-lb__next {\n            position:absolute; top:50%; transform:translateY(-50%);\n            font-size:2rem; color:#fff; background:rgba(0,0,0,.4);\n            border:none; cursor:pointer; padding:.25em .5em; border-radius:4px; line-height:1; }\n        .ms-lb__prev { left:12px; }\n        .ms-lb__next { right:12px; }\n        .ms-lb__caption { position:absolute; bottom:16px; left:0; right:0;\n                          text-align:center; color:#fff; font-size:.875rem; opacity:.8; }\n\n        \/* Gallery grid *\/\n        .ms-gallery-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:8px; }\n        .ms-gallery-grid__item { aspect-ratio:1; overflow:hidden; border-radius:4px; cursor:pointer; background:#eee; }\n        .ms-gallery-grid__item img { width:100%; height:100%; object-fit:cover; display:block;\n                                     transition:transform .2s; }\n        .ms-gallery-grid__item:hover img { transform:scale(1.04); }\n\n        \/* Gallery index *\/\n        .ms-galleries-index { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:1.25rem; }\n        .ms-galleries-index__card { border-radius:8px; overflow:hidden; border:1px solid rgba(0,0,0,.1);\n                                    cursor:pointer; transition:box-shadow .2s; background:#fff; }\n        .ms-galleries-index__card:hover { box-shadow:0 4px 16px rgba(0,0,0,.15); }\n        .ms-galleries-index__thumb { aspect-ratio:4\/3; overflow:hidden; background:#eee; }\n        .ms-galleries-index__thumb img { width:100%; height:100%; object-fit:cover; display:block; }\n        .ms-galleries-index__info { padding:.75rem 1rem; }\n        .ms-galleries-index__title { font-weight:700; margin:0 0 .25rem; }\n        .ms-galleries-index__count { font-size:.8rem; opacity:.6; margin:0; }\n\n        \/* Single gallery view (inside index click-through) *\/\n        .ms-gallery-single-view { display:none; }\n        .ms-gallery-single-view.ms-gallery-single-view--open { display:block; }\n        .ms-gallery-single-view__back {\n            display:inline-flex; align-items:center; gap:.4rem;\n            margin-bottom:1rem; cursor:pointer; font-weight:600; font-size:.9rem; opacity:.7; }\n        .ms-gallery-single-view__back:hover { opacity:1; }\n        .ms-gallery-single-view__title { font-size:1.4rem; font-weight:700; margin:0 0 .5rem; }\n        .ms-gallery-single-view__desc  { margin:0 0 1rem; opacity:.7; font-size:.9rem; }\n    <\/style>\n\n    <div class=\"ms-lb\" id=\"ms-lightbox\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Image lightbox\">\n        <button class=\"ms-lb__close\" id=\"ms-lb-close\" aria-label=\"Close\">\u00d7<\/button>\n        <button class=\"ms-lb__prev\"  id=\"ms-lb-prev\"  aria-label=\"Previous\">\u2039<\/button>\n        <img decoding=\"async\" class=\"ms-lb__img\" id=\"ms-lb-img\" src=\"\" alt=\"\">\n        <button class=\"ms-lb__next\"  id=\"ms-lb-next\"  aria-label=\"Next\">\u203a<\/button>\n        <div class=\"ms-lb__caption\" id=\"ms-lb-caption\"><\/div>\n    <\/div>\n\n    <script>\n    ( function () {\n        var lb      = document.getElementById( 'ms-lightbox' );\n        var lbImg   = document.getElementById( 'ms-lb-img' );\n        var lbCap   = document.getElementById( 'ms-lb-caption' );\n        var images  = [];\n        var current = 0;\n\n        function show( idx ) {\n            if ( ! images.length ) return;\n            current = ( idx + images.length ) % images.length;\n            lbImg.src = images[ current ].full;\n            lbImg.alt = images[ current ].alt || '';\n            lbCap.textContent = images[ current ].alt || '';\n        }\n\n        function open( set, idx ) {\n            images = set;\n            lb.classList.add( 'ms-lb--open' );\n            show( idx );\n            document.body.style.overflow = 'hidden';\n        }\n\n        function close() {\n            lb.classList.remove( 'ms-lb--open' );\n            images = [];\n            document.body.style.overflow = '';\n        }\n\n        document.getElementById( 'ms-lb-close' ).addEventListener( 'click', close );\n        document.getElementById( 'ms-lb-prev'  ).addEventListener( 'click', function () { show( current - 1 ); } );\n        document.getElementById( 'ms-lb-next'  ).addEventListener( 'click', function () { show( current + 1 ); } );\n        lb.addEventListener( 'click', function (e) { if ( e.target === lb ) close(); } );\n        document.addEventListener( 'keydown', function (e) {\n            if ( ! lb.classList.contains( 'ms-lb--open' ) ) return;\n            if ( e.key === 'Escape'     ) close();\n            if ( e.key === 'ArrowLeft'  ) show( current - 1 );\n            if ( e.key === 'ArrowRight' ) show( current + 1 );\n        } );\n\n        \/\/ Public API\n        window.msLightbox = { open: open };\n    } )();\n    <\/script>\n            <div id=\"ms-galleries-5803\">\n\n            <!-- Index view -->\n            <div class=\"ms-galleries-index\" id=\"ms-galleries-5803-index\">\n                                <div class=\"ms-galleries-index__card\" data-gal-id=\"228\" role=\"button\" tabindex=\"0\">\n                    <div class=\"ms-galleries-index__thumb\">\n                                                    <img decoding=\"async\" src=\"https:\/\/microsites.greenvillewebworks.com\/restaurant\/wp-content\/uploads\/sites\/2\/2026\/04\/hero3-150x150.jpg\" alt=\"St. Patrick&#039;s Day Event\" loading=\"lazy\">\n                                            <\/div>\n                    <div class=\"ms-galleries-index__info\">\n                        <p class=\"ms-galleries-index__title\">St. Patrick&#039;s Day Event<\/p>\n                        <p class=\"ms-galleries-index__count\">3 photos<\/p>\n                    <\/div>\n                <\/div>\n                            <\/div>\n\n            <!-- Single gallery view (hidden until card is clicked) -->\n            <div class=\"ms-gallery-single-view\" id=\"ms-galleries-5803-single\">\n                <div class=\"ms-gallery-single-view__back\" id=\"ms-galleries-5803-back\">\n                    \u2190 Back to All Galleries\n                <\/div>\n                <h2 class=\"ms-gallery-single-view__title\" id=\"ms-galleries-5803-title\"><\/h2>\n                <p class=\"ms-gallery-single-view__desc\"  id=\"ms-galleries-5803-desc\"><\/p>\n                <div class=\"ms-gallery-grid\" id=\"ms-galleries-5803-grid\"><\/div>\n            <\/div>\n\n        <\/div>\n\n                <script>\n        ( function () {\n            var uid  = 'ms-galleries-5803';\n            var data = {\"228\":{\"title\":\"St. Patrick's Day Event\",\"desc\":\"This is the description for the Photo Gallery\",\"images\":[{\"id\":85,\"url\":\"https:\\\/\\\/microsites.greenvillewebworks.com\\\/restaurant\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2026\\\/04\\\/hero3-1024x682.jpg\",\"thumb\":\"https:\\\/\\\/microsites.greenvillewebworks.com\\\/restaurant\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2026\\\/04\\\/hero3-150x150.jpg\",\"full\":\"https:\\\/\\\/microsites.greenvillewebworks.com\\\/restaurant\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2026\\\/04\\\/hero3.jpg\",\"alt\":\"\"},{\"id\":84,\"url\":\"https:\\\/\\\/microsites.greenvillewebworks.com\\\/restaurant\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2026\\\/04\\\/hero2-1024x676.jpg\",\"thumb\":\"https:\\\/\\\/microsites.greenvillewebworks.com\\\/restaurant\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2026\\\/04\\\/hero2-150x150.jpg\",\"full\":\"https:\\\/\\\/microsites.greenvillewebworks.com\\\/restaurant\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2026\\\/04\\\/hero2.jpg\",\"alt\":\"\"},{\"id\":45,\"url\":\"https:\\\/\\\/microsites.greenvillewebworks.com\\\/restaurant\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2026\\\/04\\\/restaurant-dining-1024x768.jpg\",\"thumb\":\"https:\\\/\\\/microsites.greenvillewebworks.com\\\/restaurant\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2026\\\/04\\\/restaurant-dining-150x150.jpg\",\"full\":\"https:\\\/\\\/microsites.greenvillewebworks.com\\\/restaurant\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2026\\\/04\\\/restaurant-dining.jpg\",\"alt\":\"\"}]}};\n\n            var index  = document.getElementById( uid + '-index' );\n            var single = document.getElementById( uid + '-single' );\n            var back   = document.getElementById( uid + '-back' );\n            var title  = document.getElementById( uid + '-title' );\n            var desc   = document.getElementById( uid + '-desc' );\n            var grid   = document.getElementById( uid + '-grid' );\n\n            function openGallery( id ) {\n                var gal = data[ id ];\n                if ( ! gal ) return;\n\n                title.textContent = gal.title;\n                desc.textContent  = gal.desc;\n                grid.innerHTML    = '';\n\n                gal.images.forEach( function ( img, i ) {\n                    var item = document.createElement( 'div' );\n                    item.className = 'ms-gallery-grid__item';\n                    item.innerHTML = '<img decoding=\"async\" src=\"' + img.thumb + '\" alt=\"' + ( img.alt || '' ) + '\" loading=\"lazy\">';\n                    item.addEventListener( 'click', function () {\n                        window.msLightbox.open( gal.images, i );\n                    } );\n                    grid.appendChild( item );\n                } );\n\n                index.style.display  = 'none';\n                single.classList.add( 'ms-gallery-single-view--open' );\n                single.scrollIntoView( { behavior: 'smooth', block: 'start' } );\n            }\n\n            document.querySelectorAll( '#' + uid + '-index .ms-galleries-index__card' ).forEach( function (card) {\n                card.addEventListener( 'click', function () {\n                    openGallery( card.dataset.galId );\n                } );\n                card.addEventListener( 'keydown', function (e) {\n                    if ( e.key === 'Enter' || e.key === ' ' ) openGallery( card.dataset.galId );\n                } );\n            } );\n\n            back.addEventListener( 'click', function () {\n                single.classList.remove( 'ms-gallery-single-view--open' );\n                index.style.display = '';\n            } );\n        } )();\n        <\/script>\n        <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-229","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/microsites.greenvillewebworks.com\/restaurant\/wp-json\/wp\/v2\/pages\/229","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/microsites.greenvillewebworks.com\/restaurant\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/microsites.greenvillewebworks.com\/restaurant\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/microsites.greenvillewebworks.com\/restaurant\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/microsites.greenvillewebworks.com\/restaurant\/wp-json\/wp\/v2\/comments?post=229"}],"version-history":[{"count":4,"href":"https:\/\/microsites.greenvillewebworks.com\/restaurant\/wp-json\/wp\/v2\/pages\/229\/revisions"}],"predecessor-version":[{"id":233,"href":"https:\/\/microsites.greenvillewebworks.com\/restaurant\/wp-json\/wp\/v2\/pages\/229\/revisions\/233"}],"wp:attachment":[{"href":"https:\/\/microsites.greenvillewebworks.com\/restaurant\/wp-json\/wp\/v2\/media?parent=229"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}