{"id":1866,"date":"2026-10-02T13:21:01","date_gmt":"2026-10-02T12:21:01","guid":{"rendered":"https:\/\/hospitality.vittaazio.com\/?page_id=1866"},"modified":"2026-10-05T13:06:38","modified_gmt":"2026-10-05T12:06:38","slug":"projects","status":"publish","type":"page","link":"https:\/\/hospitality.vittaazio.com\/index.php\/projects\/","title":{"rendered":"Projects"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1866\" class=\"elementor elementor-1866\">\n\t\t\t\t<div class=\"aux-parallax-section elementor-element elementor-element-a07b655 e-con-full hotel-detail-wrapper e-flex e-con e-parent\" data-id=\"a07b655\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8ed0677 elementor-widget elementor-widget-html\" data-id=\"8ed0677\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n    \/* =====================================================================\r\n       VITTAAZIO PORTFOLIO COMPONENT (ELEMENTOR-SAFE FORCED STYLES)\r\n       All critical structural and typographical rules are forced with !important\r\n       to prevent Elementor's global resets from breaking the layout.\r\n       ===================================================================== *\/\r\n\r\n    #vittaazio-portfolio {\r\n        \/* Design Tokens *\/\r\n        --vz-canvas: #FFFFFF;\r\n        --vz-card-base: #FFFFFF;\r\n        --vz-card-stripe: #F3F4F6;\r\n        --vz-border: #E5E7EB;\r\n        --vz-text-primary: #111827;\r\n        --vz-text-muted: #6B7280;\r\n        --vz-accent: #cda146;\r\n        --vz-modal-bg: rgba(0, 0, 0, 0.7);\r\n        --vz-lightbox-bg: rgba(0, 0, 0, 0.95);\r\n        \r\n        \/* Reset within component *\/\r\n        width: 100% !important;\r\n        max-width: 1300px !important;\r\n        margin: 0 auto !important;\r\n        display: flex !important;\r\n        flex-direction: column !important;\r\n        align-items: center !important;\r\n        box-sizing: border-box !important;\r\n        background-color: var(--vz-canvas) !important;\r\n        color: var(--vz-text-primary) !important;\r\n        line-height: 1.5 !important;\r\n        -webkit-font-smoothing: antialiased !important;\r\n        -moz-osx-font-smoothing: grayscale !important;\r\n        font-family: 'Futura-bk-bt', 'Futura', sans-serif !important;\r\n    }\r\n\r\n    #vittaazio-portfolio *,\r\n    #vittaazio-portfolio *::before,\r\n    #vittaazio-portfolio *::after {\r\n        box-sizing: inherit !important;\r\n    }\r\n\r\n    #vittaazio-portfolio img, \r\n    #vittaazio-portfolio svg {\r\n        display: block !important;\r\n        max-width: 100% !important;\r\n    }\r\n\r\n    #vittaazio-portfolio button {\r\n        background: transparent !important;\r\n        border: none !important;\r\n        padding: 0 !important;\r\n        cursor: pointer !important;\r\n        color: inherit !important;\r\n        font: inherit !important;\r\n        text-align: left !important;\r\n    }\r\n\r\n    \/* =====================================================================\r\n       LAYOUT & TYPOGRAPHY (~40% Padding Reduction)\r\n       ===================================================================== *\/\r\n    #vittaazio-portfolio .vz-section,\r\n    #vittaazio-portfolio .vz-grid-section {\r\n        display: block !important;\r\n        width: 100% !important;\r\n        max-width: 1300px !important;\r\n        margin: 0 auto !important;\r\n        box-sizing: border-box !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-section {\r\n        padding: 1.08rem 0.6rem 0.72rem 0.6rem !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-grid-section {\r\n        padding: 0 0.6rem 1.44rem 0.6rem !important;\r\n    }\r\n\r\n    @media (min-width: 1024px) {\r\n        #vittaazio-portfolio .vz-section,\r\n        #vittaazio-portfolio .vz-grid-section {\r\n            padding-left: 0.72rem !important;\r\n            padding-right: 0.72rem !important;\r\n        }\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-hero-eyebrow {\r\n        display: block !important;\r\n        color: var(--vz-text-muted) !important;\r\n        font-size: 11px !important;\r\n        text-transform: uppercase !important;\r\n        letter-spacing: 0.12em !important;\r\n        margin-bottom: 0.36rem !important;\r\n        font-weight: 700 !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-hero-title {\r\n        font-size: 45px !important;\r\n        font-family: 'Harmonia Sans', sans-serif !important;\r\n        color: var(--vz-accent) !important;\r\n        margin-bottom: 0.54rem !important;\r\n        line-height: 1.1 !important;\r\n        font-weight: normal !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-hero-desc {\r\n        color: var(--vz-text-muted) !important;\r\n        font-size: 1.125rem !important;\r\n        line-height: 1.625 !important;\r\n        max-width: 42rem !important;\r\n        margin: 0 !important;\r\n        font-weight: 400 !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-grid {\r\n        display: grid !important;\r\n        grid-template-columns: 1fr !important;\r\n        gap: 1.25rem !important;\r\n        width: 100% !important;\r\n        margin: 0 auto !important;\r\n    }\r\n\r\n    @media (min-width: 768px) {\r\n        #vittaazio-portfolio .vz-grid {\r\n            grid-template-columns: repeat(2, 1fr) !important;\r\n        }\r\n    }\r\n\r\n    @media (min-width: 1024px) {\r\n        #vittaazio-portfolio .vz-grid {\r\n            grid-template-columns: repeat(3, 1fr) !important;\r\n        }\r\n    }\r\n\r\n    \/* =====================================================================\r\n       PROJECT CARDS (Flex Column Layout)\r\n       ===================================================================== *\/\r\n    #vittaazio-portfolio .vz-card {\r\n        display: flex !important;\r\n        flex-direction: column !important;\r\n        height: 100% !important;\r\n        width: 100% !important;\r\n        background-color: var(--vz-card-base) !important;\r\n        border: 1px solid #D1D5DB !important; \r\n        border-radius: 4px !important;\r\n        overflow: hidden !important;\r\n        transition: border-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease !important;\r\n        position: relative !important;\r\n        box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05) !important;\r\n    }\r\n\r\n    #vittaazio-portfolio button.vz-card:hover {\r\n        border-color: var(--vz-accent) !important;\r\n        transform: translateY(-4px) !important;\r\n        box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05) !important;\r\n    }\r\n\r\n    #vittaazio-portfolio button.vz-card:focus {\r\n        outline: none !important;\r\n    }\r\n    #vittaazio-portfolio button.vz-card:focus-visible {\r\n        outline: 2px solid var(--vz-accent) !important;\r\n        outline-offset: 4px !important;\r\n    }\r\n\r\n    \/* Non-interactive cards (WIP) *\/\r\n    #vittaazio-portfolio div.vz-card {\r\n        cursor: default !important;\r\n    }\r\n    #vittaazio-portfolio div.vz-card:hover {\r\n        transform: none !important;\r\n        border-color: #D1D5DB !important;\r\n        box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05) !important;\r\n    }\r\n\r\n    \/* Lock Image Aspect Ratio 4:3 *\/\r\n    #vittaazio-portfolio .vz-card-img-wrap {\r\n        position: relative !important;\r\n        width: 100% !important;\r\n        aspect-ratio: 4 \/ 3 !important;\r\n        padding: 0 !important; \r\n        margin: 0 !important;\r\n        border-bottom: 1px solid #D1D5DB !important;\r\n        overflow: hidden !important;\r\n        background-color: var(--vz-card-base) !important;\r\n        display: block !important;\r\n        flex: none !important;\r\n        line-height: 0 !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-card-img-wrap img,\r\n    #vittaazio-portfolio .vz-card-img-wrap > img,\r\n    #vittaazio-portfolio .vz-card-img {\r\n        position: absolute !important;\r\n        top: 0 !important;\r\n        left: 0 !important;\r\n        right: 0 !important;\r\n        bottom: 0 !important;\r\n        width: 100% !important;\r\n        height: 100% !important;\r\n        object-fit: cover !important;\r\n        object-position: center !important;\r\n        display: block !important;\r\n        margin: 0 !important;\r\n        padding: 0 !important;\r\n        border: none !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-badge {\r\n        position: absolute !important;\r\n        display: inline-flex !important;\r\n        align-items: center !important;\r\n        justify-content: center !important;\r\n        line-height: 1.2 !important;\r\n        top: 1rem !important;\r\n        left: 1rem !important;\r\n        background-color: var(--vz-accent) !important;\r\n        color: #ffffff !important;\r\n        padding: 6px 12px !important;\r\n        border-radius: 2px !important;\r\n        font-size: 10px !important;\r\n        text-transform: uppercase !important;\r\n        letter-spacing: 0.12em !important;\r\n        font-weight: 700 !important;\r\n        box-shadow: 0 1px 2px rgba(0,0,0,0.1) !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-year {\r\n        position: absolute !important;\r\n        display: inline-flex !important;\r\n        align-items: center !important;\r\n        justify-content: center !important;\r\n        line-height: 1.2 !important;\r\n        top: 1rem !important;\r\n        right: 1rem !important;\r\n        background-color: rgba(255, 255, 255, 0.95) !important;\r\n        backdrop-filter: blur(4px) !important;\r\n        color: var(--vz-text-primary) !important;\r\n        padding: 6px 12px !important;\r\n        border-radius: 4px !important;\r\n        font-size: 11px !important;\r\n        text-transform: uppercase !important;\r\n        letter-spacing: 0.12em !important;\r\n        font-weight: 700 !important;\r\n        box-shadow: 0 1px 2px rgba(0,0,0,0.1) !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-card-content {\r\n        padding: 1.25rem !important;\r\n        display: flex !important;\r\n        flex-direction: column !important;\r\n        flex: 1 1 auto !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-card-title {\r\n        font-size: 22px !important;\r\n        font-family: 'Harmonia Sans', sans-serif !important;\r\n        font-weight: 400 !important;\r\n        color: var(--vz-text-primary) !important;\r\n        line-height: 1.2 !important;\r\n        margin: 0 0 0.15rem 0 !important;\r\n    }\r\n\r\n    @media (max-width: 767px) {\r\n        #vittaazio-portfolio .vz-card-title {\r\n            font-size: 24px !important;\r\n        }\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-card-location {\r\n        font-size: 11px !important;\r\n        text-transform: uppercase !important;\r\n        letter-spacing: 0.12em !important;\r\n        color: var(--vz-text-muted) !important;\r\n        margin: 0 0 0.45rem 0 !important;\r\n        font-weight: 700 !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-card-divider {\r\n        height: 1px !important;\r\n        background-color: #E5E7EB !important;\r\n        margin: 0 0 0.45rem 0 !important;\r\n        width: 100% !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-card-meta {\r\n        display: flex !important;\r\n        flex-direction: column !important;\r\n        gap: 0.24rem !important;\r\n        margin-bottom: 0.6rem !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-card-meta-row {\r\n        display: flex !important;\r\n        align-items: flex-start !important;\r\n        gap: 1rem !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-card-meta-label {\r\n        width: 85px !important;\r\n        flex-shrink: 0 !important;\r\n        font-size: 10px !important;\r\n        text-transform: uppercase !important;\r\n        letter-spacing: 0.12em !important;\r\n        color: var(--vz-text-muted) !important;\r\n        font-weight: 700 !important;\r\n        margin-top: 3px !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-card-meta-value {\r\n        font-size: 14px !important;\r\n        color: var(--vz-text-primary) !important;\r\n        font-weight: 400 !important;\r\n        line-height: 1.4 !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-card-action {\r\n        display: flex !important;\r\n        align-items: center !important;\r\n        gap: 0.5rem !important;\r\n        color: var(--vz-accent) !important;\r\n        font-size: 11px !important;\r\n        text-transform: uppercase !important;\r\n        letter-spacing: 0.12em !important;\r\n        font-weight: 700 !important;\r\n        transition: opacity 0.3s ease !important;\r\n        margin-top: auto !important;\r\n    }\r\n\r\n    #vittaazio-portfolio button.vz-card:hover .vz-card-action {\r\n        opacity: 0.8 !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-card-icon {\r\n        width: 16px !important;\r\n        height: 16px !important;\r\n        transition: transform 0.3s ease !important;\r\n    }\r\n\r\n    #vittaazio-portfolio button.vz-card:hover .vz-card-icon {\r\n        transform: translateX(4px) !important;\r\n    }\r\n\r\n    \/* =====================================================================\r\n       MODAL & LIGHTBOX (Z-index 2147483647 to clear sticky headers)\r\n       ===================================================================== *\/\r\n    #vittaazio-portfolio .vz-modal-container {\r\n        position: fixed !important;\r\n        inset: 0 !important;\r\n        padding-top: 120px !important;\r\n        padding-bottom: 20px !important;\r\n        padding-left: 20px !important;\r\n        padding-right: 20px !important;\r\n        box-sizing: border-box !important;\r\n        z-index: 2147483647 !important;\r\n        display: flex !important;\r\n        align-items: center !important;\r\n        justify-content: center !important;\r\n        opacity: 0;\r\n        pointer-events: none;\r\n        transition: opacity 0.25s ease-out !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-modal-container.is-active {\r\n        opacity: 1 !important;\r\n        pointer-events: auto !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-modal-backdrop {\r\n        position: absolute !important;\r\n        inset: 0 !important;\r\n        background-color: rgba(0, 0, 0, 0.85) !important;\r\n        z-index: 10 !important;\r\n        cursor: pointer !important;\r\n        border-radius: 0 !important;\r\n        padding: 0 !important;\r\n        margin: 0 !important;\r\n    }\r\n\r\n    \/* Solid White Circular Lightbox Arrows with Gold Hover *\/\r\n    #vittaazio-portfolio .vz-lightbox-arrow {\r\n        position: absolute !important;\r\n        top: 50% !important;\r\n        transform: translateY(-50%) !important;\r\n        background-color: #ffffff !important;\r\n        border: none !important;\r\n        width: 48px !important;\r\n        height: 48px !important;\r\n        border-radius: 50% !important;\r\n        display: flex !important;\r\n        align-items: center !important;\r\n        justify-content: center !important;\r\n        cursor: pointer !important;\r\n        z-index: 100 !important;\r\n        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3) !important;\r\n        transition: all 0.2s ease !important;\r\n        padding: 0 !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-lightbox-arrow:hover {\r\n        background-color: var(--vz-accent) !important;\r\n        transform: translateY(-50%) scale(1.05) !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-lightbox-arrow svg {\r\n        width: 24px !important;\r\n        height: 24px !important;\r\n        stroke: #111827 !important; \r\n        stroke-width: 2.5 !important;\r\n        fill: none !important;\r\n        transition: stroke 0.2s ease !important;\r\n        margin: 0 !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-lightbox-arrow:hover svg {\r\n        stroke: #ffffff !important; \r\n    }\r\n\r\n    #vittaazio-portfolio .vz-lightbox-arrow--prev { left: 1rem !important; }\r\n    #vittaazio-portfolio .vz-lightbox-arrow--next { right: 1rem !important; }\r\n\r\n    @media (min-width: 768px) {\r\n        #vittaazio-portfolio .vz-lightbox-arrow--prev { left: 2.5rem !important; }\r\n        #vittaazio-portfolio .vz-lightbox-arrow--next { right: 2.5rem !important; }\r\n        #vittaazio-portfolio .vz-lightbox-arrow { width: 56px !important; height: 56px !important; }\r\n        #vittaazio-portfolio .vz-lightbox-arrow svg { width: 28px !important; height: 28px !important; }\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-lightbox-counter-wrap {\r\n        position: absolute !important;\r\n        bottom: 1.5rem !important;\r\n        left: 0 !important;\r\n        right: 0 !important;\r\n        display: none; \r\n        justify-content: center !important;\r\n        pointer-events: none !important;\r\n        z-index: 20 !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-lightbox-counter {\r\n        background-color: rgba(0, 0, 0, 0.5) !important;\r\n        color: #ffffff !important;\r\n        backdrop-filter: blur(4px) !important;\r\n        -webkit-backdrop-filter: blur(4px) !important;\r\n        padding: 0.25rem 0.75rem !important;\r\n        border-radius: 9999px !important;\r\n        border: 1px solid rgba(255, 255, 255, 0.2) !important;\r\n        font-size: 10px !important;\r\n        font-weight: 600 !important;\r\n        letter-spacing: 0.12em !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-modal-panel {\r\n        position: relative !important;\r\n        width: 100% !important;\r\n        height: 100% !important;\r\n        max-height: calc(100vh - 140px) !important;\r\n        display: flex !important;\r\n        flex-direction: column !important;\r\n        background-color: var(--vz-card-base) !important;\r\n        z-index: 60 !important;\r\n        overflow: hidden !important;\r\n    }\r\n\r\n    @media (min-width: 768px) {\r\n        #vittaazio-portfolio .vz-modal-panel {\r\n            max-width: 1000px !important;\r\n            border-radius: 8px !important;\r\n            box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5) !important;\r\n        }\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-modal-header {\r\n        display: flex !important;\r\n        align-items: center !important;\r\n        justify-content: space-between !important;\r\n        padding: 1.25rem 1.5rem !important;\r\n        border-bottom: 1px solid var(--vz-border) !important;\r\n        background-color: var(--vz-card-base) !important;\r\n        z-index: 10 !important;\r\n        flex-shrink: 0 !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-modal-title {\r\n        font-family: 'Harmonia Sans', sans-serif !important;\r\n        font-size: 24px !important;\r\n        font-weight: 400 !important;\r\n        color: var(--vz-text-primary) !important;\r\n        margin: 0 0 0.25rem 0 !important;\r\n        line-height: 1.2 !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-modal-subtitle {\r\n        font-family: 'Futura-bk-bt', 'Futura', sans-serif !important;\r\n        font-size: 11px !important;\r\n        text-transform: uppercase !important;\r\n        letter-spacing: 0.12em !important;\r\n        color: var(--vz-text-muted) !important;\r\n        margin: 0 !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-modal-close {\r\n        padding: 0.5rem !important;\r\n        color: var(--vz-text-muted) !important;\r\n        transition: color 0.2s !important;\r\n    }\r\n    \r\n    #vittaazio-portfolio .vz-modal-close:hover { \r\n        color: var(--vz-accent) !important; \r\n    }\r\n    \r\n    #vittaazio-portfolio .vz-modal-close svg {\r\n        width: 28px !important;\r\n        height: 28px !important;\r\n        margin: 0 !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-modal-body {\r\n        position: relative !important;\r\n        flex: 1 1 auto !important;\r\n        background-color: #0a0a0a !important; \r\n        overflow: hidden !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-state {\r\n        position: absolute !important;\r\n        inset: 0 !important;\r\n        display: none !important;\r\n        flex-direction: column !important;\r\n        align-items: center !important;\r\n        justify-content: center !important;\r\n        padding: 2rem !important;\r\n        text-align: center !important;\r\n        width: 100% !important;\r\n        height: 100% !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-state.is-active {\r\n        display: flex !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-state-icon svg {\r\n        width: 48px !important;\r\n        height: 48px !important;\r\n        color: #ffffff !important;\r\n        margin: 0 auto 1.5rem auto !important;\r\n    }\r\n    \r\n    #vittaazio-portfolio .vz-state-title {\r\n        font-family: 'Harmonia Sans', sans-serif !important;\r\n        font-size: 24px !important;\r\n        color: #ffffff !important;\r\n        margin: 0 0 0.5rem 0 !important;\r\n    }\r\n    \r\n    #vittaazio-portfolio .vz-state-desc {\r\n        font-family: 'Futura-bk-bt', 'Futura', sans-serif !important;\r\n        color: #a0aec0 !important;\r\n        max-width: 400px !important;\r\n        margin: 0 auto 2rem auto !important;\r\n        font-size: 14px !important;\r\n        line-height: 1.5 !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-btn {\r\n        display: inline-flex !important;\r\n        align-items: center !important;\r\n        justify-content: center !important;\r\n        gap: 0.5rem !important;\r\n        background-color: var(--vz-accent) !important;\r\n        color: #ffffff !important;\r\n        padding: 0.75rem 1.5rem !important;\r\n        border-radius: 4px !important;\r\n        font-weight: bold !important;\r\n        font-size: 14px !important;\r\n        text-decoration: none !important;\r\n        transition: opacity 0.2s !important;\r\n    }\r\n    \r\n    #vittaazio-portfolio .vz-btn:hover {\r\n        opacity: 0.9 !important;\r\n    }\r\n    \r\n    #vittaazio-portfolio .vz-btn svg {\r\n        width: 20px !important;\r\n        height: 20px !important;\r\n        margin: 0 !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-lightbox-touch-area {\r\n        position: absolute !important;\r\n        inset: 0 !important;\r\n        display: flex !important;\r\n        align-items: center !important;\r\n        justify-content: center !important;\r\n        padding: 1rem !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-lightbox-img {\r\n        max-width: 100% !important;\r\n        max-height: 100% !important;\r\n        width: auto !important;\r\n        height: auto !important;\r\n        object-fit: contain !important;\r\n        opacity: 0 !important;\r\n        transition: opacity 0.2s ease !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-lightbox-img.is-loaded {\r\n        opacity: 1 !important;\r\n    }\r\n\r\n    #vittaazio-portfolio .vz-iframe-container {\r\n        width: 100% !important;\r\n        height: 100% !important;\r\n        border: none !important;\r\n        opacity: 0;\r\n        transition: opacity 0.3s ease;\r\n    }\r\n    \r\n    #vittaazio-portfolio .vz-spinner {\r\n        width: 2.5rem !important;\r\n        height: 2.5rem !important;\r\n        border: 2px solid rgba(255, 255, 255, 0.2) !important;\r\n        border-top-color: var(--vz-accent) !important;\r\n        border-radius: 50% !important;\r\n        animation: vz-spin 1s linear infinite !important;\r\n        margin: 0 auto 1.0rem auto !important;\r\n    }\r\n    \r\n    @keyframes vz-spin {\r\n        to { transform: rotate(360deg); }\r\n    }\r\n<\/style>\r\n\r\n<div id=\"vittaazio-portfolio\">\r\n    \r\n    <!-- Completed Projects Section -->\r\n    <section class=\"vz-section\">\r\n        <span class=\"vz-hero-eyebrow\">Our Work<\/span>\r\n        <h1 class=\"vz-hero-title\">Projects<\/h1>\r\n        <p class=\"vz-hero-desc\">\r\n            Delivering exceptional hospitality interiors end-to-end. Explore our portfolio of bespoke furniture, fixtures, and equipment installations across leading global hotel brands.\r\n        <\/p>\r\n    <\/section>\r\n\r\n    <section class=\"vz-grid-section\">\r\n        <div id=\"vz-projects-grid\" class=\"vz-grid\">\r\n            <!-- Completed Cards injected via JavaScript -->\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <!-- Projects in Progress Section -->\r\n    <section class=\"vz-section\" style=\"margin-top: 2rem !important;\">\r\n        <span class=\"vz-hero-eyebrow\">Current Order Book<\/span>\r\n        <h1 class=\"vz-hero-title\">Projects in Progress<\/h1>\r\n    <\/section>\r\n\r\n    <section class=\"vz-grid-section\">\r\n        <div id=\"vz-wip-grid\" class=\"vz-grid\">\r\n            <!-- WIP Cards injected via JavaScript -->\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <!-- Modal Dialog -->\r\n    <div id=\"vz-gallery-modal\" class=\"vz-modal-container\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"vz-modal-title\">\r\n        <div class=\"vz-modal-backdrop\" id=\"vz-modal-backdrop\"><\/div>\r\n        \r\n        <div class=\"vz-modal-panel\">\r\n            \r\n            <!-- Header -->\r\n            <div class=\"vz-modal-header\">\r\n                <div class=\"vz-modal-header-text\">\r\n                    <h3 id=\"vz-modal-title\" class=\"vz-modal-title\">Project Name<\/h3>\r\n                    <p id=\"vz-modal-subtitle\" class=\"vz-modal-subtitle\">Brand - Location<\/p>\r\n                <\/div>\r\n                <button id=\"vz-modal-close\" class=\"vz-modal-close\" aria-label=\"Close modal\">\r\n                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" width=\"24\" height=\"24\">\r\n                        <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M6 18L18 6M6 6l12 12\"><\/path>\r\n                    <\/svg>\r\n                <\/button>\r\n            <\/div>\r\n\r\n            <!-- Body Area -->\r\n            <div class=\"vz-modal-body\" id=\"vz-modal-body\">\r\n                \r\n                <!-- State: Loading -->\r\n                <div id=\"vz-state-loading\" class=\"vz-state\">\r\n                    <div class=\"vz-spinner\"><\/div>\r\n                    <p class=\"vz-state-desc\" style=\"margin:0; font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em;\">Connecting to gallery...<\/p>\r\n                <\/div>\r\n\r\n                <!-- State: Iframe -->\r\n                <div id=\"vz-iframe-wrapper\" class=\"vz-state\" style=\"padding: 0;\"><\/div>\r\n\r\n                <!-- State: Fallback -->\r\n                <div id=\"vz-state-fallback\" class=\"vz-state\">\r\n                    <div class=\"vz-state-icon\">\r\n                        <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n                            <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14\"><\/path>\r\n                        <\/svg>\r\n                    <\/div>\r\n                    <h4 class=\"vz-state-title\">External Gallery<\/h4>\r\n                    <p class=\"vz-state-desc\">This client gallery is hosted on a secure external platform and must be opened in a new tab to view.<\/p>\r\n                    <a id=\"vz-fallback-link\" href=\"#\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"vz-btn\">\r\n                        Open Gallery\r\n                        <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n                            <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14\"><\/path>\r\n                        <\/svg>\r\n                    <\/a>\r\n                <\/div>\r\n\r\n                <!-- State: Lightbox -->\r\n                <div id=\"vz-state-lightbox\" class=\"vz-state vz-state-lightbox\">\r\n                    <div class=\"vz-lightbox-touch-area\" id=\"vz-lightbox-touch\">\r\n                        <img decoding=\"async\" id=\"vz-lightbox-img\" src=\"\" alt=\"Project Gallery Image\" class=\"vz-lightbox-img\">\r\n                        \r\n                        <button id=\"vz-lightbox-prev\" class=\"vz-lightbox-arrow vz-lightbox-arrow--prev\" aria-label=\"Previous image\">\r\n                            <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n                                <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M15 19l-7-7 7-7\"><\/path>\r\n                            <\/svg>\r\n                        <\/button>\r\n                        \r\n                        <button id=\"vz-lightbox-next\" class=\"vz-lightbox-arrow vz-lightbox-arrow--next\" aria-label=\"Next image\">\r\n                            <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n                                <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M9 5l7 7-7 7\"><\/path>\r\n                            <\/svg>\r\n                        <\/button>\r\n                    <\/div>\r\n                    \r\n                    <div class=\"vz-lightbox-counter-wrap\" id=\"vz-lightbox-counter-wrap\">\r\n                        <div class=\"vz-lightbox-counter\" id=\"vz-lightbox-counter\">1 \/ 1<\/div>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<script>\r\n(function() {\r\n    const container = document.getElementById('vittaazio-portfolio');\r\n    if (!container) return;\r\n\r\n    \/\/ Completed Projects Data\r\n    const projects = [\r\n        {\r\n            id: \"comfort-inn-texas\",\r\n            badge: \"Choice Hotels\",\r\n            year: \"2025\",\r\n            name: \"Comfort Inn - Texas\",\r\n            location: \"Texas, USA\",\r\n            keys: \"128\",\r\n            brand: \"Choice Hotels\",\r\n            type: \"Guestroom FF&E\",\r\n            thumbnail: \"https:\/\/hospitality.vittaazio.com\/wp-content\/uploads\/2026\/08\/comfort-inn-project-2.jpg\", \r\n            galleryType: \"lightbox\",\r\n            photoUrl: \"https:\/\/rolandrattu.pic-time.com\/client\/comfortinn\",\r\n            photos: [\r\n                \"https:\/\/hospitality.vittaazio.com\/wp-content\/uploads\/2026\/08\/comfort-inn-project-2.jpg\",\r\n                \"https:\/\/hospitality.vittaazio.com\/wp-content\/uploads\/2026\/08\/comfort-inn-project-4.jpg\",\r\n    \r\n    \r\n                \"https:\/\/hospitality.vittaazio.com\/wp-content\/uploads\/2026\/08\/comfort-inn-project-7.jpg\",\r\n                \"https:\/\/hospitality.vittaazio.com\/wp-content\/uploads\/2026\/08\/comfort-inn-project-10.jpg\",\r\n                \"https:\/\/hospitality.vittaazio.com\/wp-content\/uploads\/2026\/08\/comfort-inn-project-12.jpg\",\r\n                \"https:\/\/hospitality.vittaazio.com\/wp-content\/uploads\/2026\/08\/comfort-inn-project-15.jpg\",\r\n            \r\n            \r\n                \"https:\/\/hospitality.vittaazio.com\/wp-content\/uploads\/2026\/08\/comfort-inn-project-23.jpg\",\r\n                \"https:\/\/hospitality.vittaazio.com\/wp-content\/uploads\/2026\/08\/comfort-inn-project-24.jpg\",\r\n               \r\n                \"https:\/\/hospitality.vittaazio.com\/wp-content\/uploads\/2026\/08\/comfort-inn-project-27.jpg\",\r\n                \"https:\/\/hospitality.vittaazio.com\/wp-content\/uploads\/2026\/08\/comfort-inn-project-28.jpg\"\r\n            ]\r\n        },\r\n        {\r\n            id: \"spark-hilton-bengaluru\",\r\n            badge: \"Hilton\",\r\n            year: \"2025\",\r\n            name: \"Spark by Hilton - Bengaluru\",\r\n            location: \"Bengaluru, India\",\r\n            keys: null,\r\n            brand: \"Hilton\",\r\n            type: \"Guestroom FF&E\", \r\n            thumbnail: \"https:\/\/hospitality.vittaazio.com\/wp-content\/uploads\/2026\/08\/spark-by-hilton-project-1.jpeg\",\r\n            galleryType: \"lightbox\", \r\n            photoUrl: null,\r\n            photos: [\r\n                \"https:\/\/hospitality.vittaazio.com\/wp-content\/uploads\/2026\/08\/spark-by-hilton-project-1.jpeg\",\r\n                \"https:\/\/hospitality.vittaazio.com\/wp-content\/uploads\/2026\/08\/spark-by-hilton-project-2.jpeg\",\r\n                \"https:\/\/hospitality.vittaazio.com\/wp-content\/uploads\/2026\/08\/spark-by-hilton-project-3.jpeg\",\r\n                \"https:\/\/hospitality.vittaazio.com\/wp-content\/uploads\/2026\/08\/spark-by-hilton-project-4.jpeg\",\r\n                \"https:\/\/hospitality.vittaazio.com\/wp-content\/uploads\/2026\/08\/spark-by-hilton-project-5.jpeg\",\r\n                \"https:\/\/hospitality.vittaazio.com\/wp-content\/uploads\/2026\/08\/spark-by-hilton-project-6.jpeg\",\r\n                \"https:\/\/hospitality.vittaazio.com\/wp-content\/uploads\/2026\/08\/spark-by-hilton-project-7.jpeg\",\r\n                \"https:\/\/hospitality.vittaazio.com\/wp-content\/uploads\/2026\/08\/spark-by-hilton-project-8.jpeg\",\r\n                \"https:\/\/hospitality.vittaazio.com\/wp-content\/uploads\/2026\/08\/spark-by-hilton-project-9.jpeg\"\r\n            ] \r\n        }\r\n    ];\r\n\r\n    \/\/ WIP Projects Data (No images, no popup, no view button, brand = brand name only)\r\n    const wipProjects = [\r\n        {\r\n            id: \"wip-1\",\r\n            badge: \"Choice Hotels\",\r\n            name: \"Comfort Inn - Salisbury\",\r\n            location: \"Salisbury, MD\",\r\n            brand: \"Choice Hotels\",\r\n            type: \"Lobby Furniture\",\r\n            galleryType: \"none\"\r\n        },\r\n        {\r\n            id: \"wip-2\",\r\n            badge: \"Choice Hotels\",\r\n            name: \"Suburban - Rock Hill\",\r\n            location: \"Rock Hill, South Carolina\",\r\n            brand: \"Choice Hotels\",\r\n            type: \"Lobby Furniture\",\r\n            galleryType: \"none\"\r\n        },\r\n        {\r\n            id: \"wip-3\",\r\n            badge: \"Choice Hotels\",\r\n            name: \"Suburban - Durham\",\r\n            location: \"Durham, North Carolina\",\r\n            brand: \"Choice Hotels\",\r\n            type: \"GR (126 Rooms)\",\r\n            galleryType: \"none\"\r\n        },\r\n        {\r\n            id: \"wip-4\",\r\n            badge: \"Choice Hotels\",\r\n            name: \"Comfort Inn - Winston-Salem\",\r\n            location: \"Winston-Salem, NC\",\r\n            brand: \"Choice Hotels\",\r\n            type: \"GR (134 Rooms)\",\r\n            galleryType: \"none\"\r\n        },\r\n        {\r\n            id: \"wip-5\",\r\n            badge: \"Choice Hotels\",\r\n            name: \"Comfort Inn - Kings Mountain\",\r\n            location: \"Kings Mountain, NC\",\r\n            brand: \"Choice Hotels\",\r\n            type: \"GR (105 Rooms)\",\r\n            galleryType: \"none\"\r\n        },\r\n        {\r\n            id: \"wip-6\",\r\n            badge: \"Choice Hotels\",\r\n            name: \"Comfort Inn - Pittsburgh\",\r\n            location: \"Pittsburgh, PA\",\r\n            brand: \"Choice Hotels\",\r\n            type: \"GR (47 Rooms & Lobby Furniture)\",\r\n            galleryType: \"none\"\r\n        },\r\n        {\r\n            id: \"wip-7\",\r\n            badge: \"Best Western Plus\",\r\n            name: \"Best Western Plus - Prince George\",\r\n            location: \"Prince George, VA\",\r\n            brand: \"Best Western Plus\",\r\n            type: \"Lobby Furniture\",\r\n            galleryType: \"none\"\r\n        },\r\n        {\r\n            id: \"wip-8\",\r\n            badge: \"Choice Hotels\",\r\n            name: \"Comfort Inn - Waynesboro\",\r\n            location: \"Waynesboro, VA\",\r\n            brand: \"Choice Hotels\",\r\n            type: \"GR (75 Rooms)\",\r\n            galleryType: \"none\"\r\n        },\r\n        {\r\n            id: \"wip-9\",\r\n            badge: \"Choice Hotels\",\r\n            name: \"Comfort Inn - Charleston\",\r\n            location: \"Charleston, South Carolina\",\r\n            brand: \"Choice Hotels\",\r\n            type: \"Lobby Furniture\",\r\n            galleryType: \"none\"\r\n        },\r\n        {\r\n            id: \"wip-10\",\r\n            badge: \"Choice Hotels\",\r\n            name: \"Comfort Inn - Shelby\",\r\n            location: \"Shelby, NC\",\r\n            brand: \"Choice Hotels\",\r\n            type: \"GR (75 Rooms) + Lobby Furniture\",\r\n            galleryType: \"none\"\r\n        }\r\n    ];\r\n\r\n    \/\/ DOM Elements Setup\r\n    const gridContainer = container.querySelector('#vz-projects-grid');\r\n    const wipGridContainer = container.querySelector('#vz-wip-grid');\r\n    const modal = container.querySelector('#vz-gallery-modal');\r\n    const btnClose = container.querySelector('#vz-modal-close');\r\n    const modalBackdrop = container.querySelector('#vz-modal-backdrop');\r\n    \r\n    const modalTitle = container.querySelector('#vz-modal-title');\r\n    const modalSubtitle = container.querySelector('#vz-modal-subtitle');\r\n    \r\n    const stateLoading = container.querySelector('#vz-state-loading');\r\n    const iframeWrapper = container.querySelector('#vz-iframe-wrapper');\r\n    const stateFallback = container.querySelector('#vz-state-fallback');\r\n    const fallbackLink = container.querySelector('#vz-fallback-link');\r\n    const stateLightbox = container.querySelector('#vz-state-lightbox');\r\n    \r\n    const lbImg = container.querySelector('#vz-lightbox-img');\r\n    const lbPrev = container.querySelector('#vz-lightbox-prev');\r\n    const lbNext = container.querySelector('#vz-lightbox-next');\r\n    const lbCounterWrap = container.querySelector('#vz-lightbox-counter-wrap');\r\n    const lbCounter = container.querySelector('#vz-lightbox-counter');\r\n    const lbTouchArea = container.querySelector('#vz-lightbox-touch');\r\n\r\n    let lastFocusedElement = null;\r\n    let activeIframeTimeout = null;\r\n    let originalBodyOverflow = '';\r\n    \r\n    let activePhotos = [];\r\n    let currentPhotoIndex = 0;\r\n    let activeImageLoadId = 0;\r\n\r\n    const allProjects = [...projects, ...wipProjects];\r\n\r\n    function renderGrids() {\r\n        \/\/ Render Completed Projects\r\n        if (gridContainer) {\r\n            gridContainer.innerHTML = '';\r\n            projects.forEach(project => {\r\n                gridContainer.insertAdjacentHTML('beforeend', createCardHTML(project, true));\r\n            });\r\n        }\r\n\r\n        \/\/ Render WIP Projects (No images, no image container section, no view button)\r\n        if (wipGridContainer) {\r\n            wipGridContainer.innerHTML = '';\r\n            wipProjects.forEach(project => {\r\n                wipGridContainer.insertAdjacentHTML('beforeend', createCardHTML(project, false));\r\n            });\r\n        }\r\n\r\n        \/\/ Bind clicks for interactive cards only\r\n        container.querySelectorAll('.vz-card-interactive').forEach(card => {\r\n            card.addEventListener('click', function() {\r\n                openModal(this.getAttribute('data-id'), this);\r\n            });\r\n        });\r\n    }\r\n\r\n    function createCardHTML(project, isInteractive) {\r\n        const locLine = project.keys ? `${project.location} - ${project.keys} KEYS` : project.location;\r\n        \r\n        let topMediaHTML = '';\r\n        if (isInteractive) {\r\n            const imgHTML = project.thumbnail \r\n                ? `<img decoding=\"async\" src=\"${project.thumbnail}\" alt=\"${project.name}\" class=\"vz-card-img\">`\r\n                : `<div style=\"position:absolute; inset:0; background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%); display:flex; align-items:center; justify-content:center; color:#9ca3af; font-size:11px; text-transform:uppercase; letter-spacing:0.1em; font-weight:600;\">Coming Soon<\/div>`;\r\n\r\n            topMediaHTML = `\r\n                <div class=\"vz-card-img-wrap\">\r\n                    ${imgHTML}\r\n                    <div class=\"vz-badge\">${project.badge}<\/div>\r\n                    <div class=\"vz-year\">${project.year}<\/div>\r\n                <\/div>\r\n            `;\r\n        }\r\n\r\n        const actionHTML = isInteractive ? `\r\n            <div class=\"vz-card-action\">\r\n                View Project \r\n                <svg class=\"vz-card-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n                    <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M17 8l4 4m0 0l-4 4m4-4H3\"><\/path>\r\n                <\/svg>\r\n            <\/div>\r\n        ` : '';\r\n\r\n        const tagClass = isInteractive ? 'vz-card vz-card-interactive' : 'vz-card';\r\n        const tagType = isInteractive ? 'button' : 'div';\r\n        const roleAttr = isInteractive ? 'role=\"button\"' : '';\r\n        const ariaAttr = isInteractive ? `aria-label=\"View project details for ${project.name}\"` : '';\r\n\r\n        return `\r\n            <${tagType} ${roleAttr} ${ariaAttr} class=\"${tagClass}\" data-id=\"${project.id}\">\r\n                ${topMediaHTML}\r\n                <div class=\"vz-card-content\">\r\n                    <h2 class=\"vz-card-title\">${project.name}<\/h2>\r\n                    <p class=\"vz-card-location\">${locLine}<\/p>\r\n                    <div class=\"vz-card-divider\"><\/div>\r\n                    <div class=\"vz-card-meta\">\r\n                        <div class=\"vz-card-meta-row\">\r\n                            <span class=\"vz-card-meta-label\">Brand<\/span>\r\n                            <span class=\"vz-card-meta-value\">${project.brand}<\/span>\r\n                        <\/div>\r\n                        <div class=\"vz-card-meta-row\">\r\n                            <span class=\"vz-card-meta-label\">Scope<\/span>\r\n                            <span class=\"vz-card-meta-value\">${project.type}<\/span>\r\n                        <\/div>\r\n                    <\/div>\r\n                    ${actionHTML}\r\n                <\/div>\r\n            <\/${tagType}>\r\n        `;\r\n    }\r\n\r\n    function showState(element) {\r\n        [stateLoading, iframeWrapper, stateFallback, stateLightbox].forEach(el => {\r\n            if (el) el.classList.remove('is-active');\r\n        });\r\n        if (element) element.classList.add('is-active');\r\n    }\r\n\r\n    function openModal(projectId, triggerEl) {\r\n        const project = allProjects.find(p => p.id === projectId);\r\n        if (!project || project.galleryType === 'none') return;\r\n        \r\n        lastFocusedElement = triggerEl;\r\n\r\n        modalTitle.textContent = project.name;\r\n        modalSubtitle.textContent = `${project.brand} - ${project.location}`;\r\n\r\n        clearTimeout(activeIframeTimeout);\r\n        if (iframeWrapper) iframeWrapper.innerHTML = '';\r\n        activeImageLoadId++;\r\n\r\n        originalBodyOverflow = document.body.style.overflow;\r\n        document.body.style.overflow = 'hidden';\r\n\r\n        if (project.galleryType === 'iframe') {\r\n            initIframe(project);\r\n        } else if (project.galleryType === 'lightbox' && project.photos && project.photos.length > 0) {\r\n            initLightbox(project);\r\n        }\r\n\r\n        modal.classList.add('is-active');\r\n        setTimeout(() => { btnClose.focus(); }, 100);\r\n    }\r\n\r\n    function closeModal() {\r\n        modal.classList.remove('is-active');\r\n        document.body.style.overflow = originalBodyOverflow;\r\n        \r\n        setTimeout(() => {\r\n            clearTimeout(activeIframeTimeout);\r\n            if (iframeWrapper) iframeWrapper.innerHTML = ''; \r\n            if (lbImg) lbImg.src = '';\r\n            showState(null);\r\n            \r\n            if (lastFocusedElement) {\r\n                lastFocusedElement.focus();\r\n            }\r\n        }, 300);\r\n    }\r\n\r\n    function initIframe(project) {\r\n        showState(stateLoading);\r\n        iframeWrapper.classList.add('is-active');\r\n\r\n        const iframe = document.createElement('iframe');\r\n        iframe.className = \"vz-iframe-container\";\r\n        iframe.title = `Photo gallery - ${project.name}`;\r\n        \r\n        let isLoaded = false;\r\n        iframe.onload = () => {\r\n            isLoaded = true;\r\n            clearTimeout(activeIframeTimeout);\r\n            showState(iframeWrapper);\r\n            iframe.style.opacity = '1';\r\n        };\r\n\r\n        iframe.src = project.photoUrl;\r\n        iframeWrapper.appendChild(iframe);\r\n\r\n        activeIframeTimeout = setTimeout(() => {\r\n            if (!isLoaded) {\r\n                if (iframeWrapper) iframeWrapper.innerHTML = '';\r\n                showState(stateFallback);\r\n                if (fallbackLink) fallbackLink.href = project.photoUrl;\r\n            }\r\n        }, 6500);\r\n    }\r\n\r\n    function initLightbox(project) {\r\n        activePhotos = project.photos;\r\n        currentPhotoIndex = 0;\r\n        showState(stateLightbox);\r\n\r\n        if (activePhotos.length > 1) {\r\n            if (lbPrev) lbPrev.style.display = 'flex';\r\n            if (lbNext) lbNext.style.display = 'flex';\r\n            if (lbCounterWrap) lbCounterWrap.style.display = 'flex';\r\n        } else {\r\n            if (lbPrev) lbPrev.style.display = 'none';\r\n            if (lbNext) lbNext.style.display = 'none';\r\n            if (lbCounterWrap) lbCounterWrap.style.display = 'none';\r\n        }\r\n        \r\n        renderCurrentSlide();\r\n    }\r\n\r\n    function renderCurrentSlide() {\r\n        if (!activePhotos.length || !lbImg) return;\r\n        const loadId = ++activeImageLoadId;\r\n        \r\n        lbImg.classList.remove('is-loaded');\r\n        setTimeout(() => {\r\n            if (loadId !== activeImageLoadId) return;\r\n            lbImg.onload = null;\r\n            lbImg.src = activePhotos[currentPhotoIndex];\r\n            lbImg.onload = () => {\r\n                if (loadId === activeImageLoadId) {\r\n                    lbImg.classList.add('is-loaded');\r\n                }\r\n            };\r\n            if (lbCounter) lbCounter.textContent = `${currentPhotoIndex + 1} \/ ${activePhotos.length}`;\r\n        }, 150); \r\n    }\r\n\r\n    function slide(direction) {\r\n        if (activePhotos.length <= 1) return;\r\n        if (direction === 'next') {\r\n            currentPhotoIndex = (currentPhotoIndex + 1) % activePhotos.length;\r\n        } else {\r\n            currentPhotoIndex = (currentPhotoIndex - 1 + activePhotos.length) % activePhotos.length;\r\n        }\r\n        renderCurrentSlide();\r\n    }\r\n\r\n    if (btnClose) btnClose.addEventListener('click', closeModal);\r\n    if (modalBackdrop) modalBackdrop.addEventListener('click', closeModal);\r\n    \r\n    if (lbNext) lbNext.addEventListener('click', (e) => { e.stopPropagation(); slide('next'); });\r\n    if (lbPrev) lbPrev.addEventListener('click', (e) => { e.stopPropagation(); slide('prev'); });\r\n\r\n    document.addEventListener('keydown', (e) => {\r\n        if (modal && modal.classList.contains('is-active')) {\r\n            if (e.key === 'Escape') closeModal();\r\n            if (e.key === 'ArrowRight' && stateLightbox && stateLightbox.classList.contains('is-active')) slide('next');\r\n            if (e.key === 'ArrowLeft' && stateLightbox && stateLightbox.classList.contains('is-active')) slide('prev');\r\n        }\r\n    });\r\n\r\n    let touchStartX = 0;\r\n    let touchEndX = 0;\r\n    \r\n    if (lbTouchArea) {\r\n        lbTouchArea.addEventListener('touchstart', e => {\r\n            touchStartX = e.changedTouches[0].screenX;\r\n        }, {passive: true});\r\n\r\n        lbTouchArea.addEventListener('touchend', e => {\r\n            touchEndX = e.changedTouches[0].screenX;\r\n            const swipeDist = touchStartX - touchEndX;\r\n            if (activePhotos.length > 1 && stateLightbox && stateLightbox.classList.contains('is-active')) {\r\n                if (swipeDist > 40) slide('next');\r\n                else if (swipeDist < -40) slide('prev');\r\n            }\r\n        }, {passive: true});\r\n    }\r\n\r\n    renderGrids();\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Our Work Projects Delivering exceptional hospitality interiors end-to-end. Explore our portfolio of bespoke furniture, fixtures, and equipment installations across leading global hotel brands. Current Order Book Projects in Progress Project Name Brand &#8211; Location Connecting to gallery&#8230; External Gallery This client gallery is hosted on a secure external platform and must be opened in a [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1866","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/hospitality.vittaazio.com\/index.php\/wp-json\/wp\/v2\/pages\/1866","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hospitality.vittaazio.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/hospitality.vittaazio.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/hospitality.vittaazio.com\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/hospitality.vittaazio.com\/index.php\/wp-json\/wp\/v2\/comments?post=1866"}],"version-history":[{"count":208,"href":"https:\/\/hospitality.vittaazio.com\/index.php\/wp-json\/wp\/v2\/pages\/1866\/revisions"}],"predecessor-version":[{"id":2093,"href":"https:\/\/hospitality.vittaazio.com\/index.php\/wp-json\/wp\/v2\/pages\/1866\/revisions\/2093"}],"wp:attachment":[{"href":"https:\/\/hospitality.vittaazio.com\/index.php\/wp-json\/wp\/v2\/media?parent=1866"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}