{"id":822,"date":"2025-12-10T16:48:37","date_gmt":"2025-12-10T16:48:37","guid":{"rendered":"https:\/\/music.kenneyzproductions.com\/?page_id=822"},"modified":"2025-12-22T19:51:17","modified_gmt":"2025-12-22T19:51:17","slug":"contact","status":"publish","type":"page","link":"https:\/\/music.kenneyzproductions.com\/index.php\/contact\/","title":{"rendered":"Contact"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"822\" class=\"elementor elementor-822\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7c886c5 e-con-full e-flex e-con e-parent\" data-id=\"7c886c5\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b8f4e0c elementor-widget elementor-widget-spacer\" data-id=\"b8f4e0c\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dadeaae elementor-widget__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"dadeaae\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2 class=\"heading-2\" style=\"color: #fff; font-family: syncopate;\"><strong>Get in touch<\/strong><\/h2><p class=\"paragraph\">Tell us more about your upcoming project, and we\u2019ll get right back to you.<br \/>Alternatively, you can also arrange a booking with us\u00a0below.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5862ccd e-flex e-con-boxed e-con e-child\" data-id=\"5862ccd\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2c69f06 elementor-widget elementor-widget-shortcode\" data-id=\"2c69f06\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><div class=\"forminator-ui forminator-custom-form forminator-custom-form-1050 forminator-design--material  forminator_ajax\" data-forminator-render=\"0\" data-form=\"forminator-module-1050\" data-uid=\"6a1bcd3ec85d0\"><br\/><\/div><form\n\t\t\t\tid=\"forminator-module-1050\"\n\t\t\t\tclass=\"forminator-ui forminator-custom-form forminator-custom-form-1050 forminator-design--material  forminator_ajax\"\n\t\t\t\tmethod=\"post\"\n\t\t\t\tdata-forminator-render=\"0\"\n\t\t\t\tdata-form-id=\"1050\"\n\t\t\t\t data-color-option=\"default\" data-design=\"material\" data-grid=\"open\" style=\"display: none;\"\n\t\t\t\tdata-uid=\"6a1bcd3ec85d0\"\n\t\t\t><div role=\"alert\" aria-live=\"polite\" class=\"forminator-response-message forminator-error\" aria-hidden=\"true\"><\/div><div class=\"forminator-row\"><div id=\"name-1\" class=\"forminator-field-name forminator-col forminator-col-12 \"><div class=\"forminator-field\"><label for=\"forminator-field-name-1_6a1bcd3ec85d0\" id=\"forminator-field-name-1_6a1bcd3ec85d0-label\" class=\"forminator-label\">First Name <span class=\"forminator-required\">*<\/span><\/label><input type=\"text\" name=\"name-1\" value=\"\" placeholder=\"\" id=\"forminator-field-name-1_6a1bcd3ec85d0\" class=\"forminator-input forminator-name--field\" aria-required=\"true\" autocomplete=\"name\" \/><\/div><\/div><\/div><div class=\"forminator-row\"><div id=\"email-1\" class=\"forminator-field-email forminator-col forminator-col-12 \"><div class=\"forminator-field\"><label for=\"forminator-field-email-1_6a1bcd3ec85d0\" id=\"forminator-field-email-1_6a1bcd3ec85d0-label\" class=\"forminator-label\">Email Address <span class=\"forminator-required\">*<\/span><\/label><input type=\"email\" name=\"email-1\" value=\"\" placeholder=\"\" id=\"forminator-field-email-1_6a1bcd3ec85d0\" class=\"forminator-input forminator-email--field\" data-required=\"true\" aria-required=\"true\" autocomplete=\"email\" \/><\/div><\/div><\/div><div class=\"forminator-row\"><div id=\"phone-1\" class=\"forminator-field-phone forminator-col forminator-col-12 \"><div class=\"forminator-field\"><label for=\"forminator-field-phone-1_6a1bcd3ec85d0\" id=\"forminator-field-phone-1_6a1bcd3ec85d0-label\" class=\"forminator-label\">Phone Number<\/label><input type=\"text\" name=\"phone-1\" value=\"\" placeholder=\"\" id=\"forminator-field-phone-1_6a1bcd3ec85d0\" class=\"forminator-input forminator-field--phone\" data-required=\"\" aria-required=\"false\" autocomplete=\"off\" \/><\/div><\/div><\/div><div class=\"forminator-row\"><div id=\"textarea-1\" class=\"forminator-field-textarea forminator-col forminator-col-12 \"><div class=\"forminator-field\"><label for=\"forminator-field-textarea-1_6a1bcd3ec85d0\" id=\"forminator-field-textarea-1_6a1bcd3ec85d0-label\" class=\"forminator-label\">Message<\/label><span id=\"forminator-field-textarea-1_6a1bcd3ec85d0-description\" class=\"forminator-description\"><span data-limit=\"180\" data-type=\"characters\" data-editor=\"\">0 \/ 180<\/span><\/span><textarea name=\"textarea-1\" placeholder=\"\" id=\"forminator-field-textarea-1_6a1bcd3ec85d0\" class=\"forminator-textarea\" rows=\"6\" style=\"min-height:140px;\" maxlength=\"180\" ><\/textarea><\/div><\/div><\/div><input type=\"hidden\" name=\"referer_url\" value=\"\" \/><div class=\"forminator-row forminator-row-last\"><div class=\"forminator-col\"><div class=\"forminator-field\"><button class=\"forminator-button forminator-button-submit\"><span>Submit<\/span><span aria-hidden=\"true\"><\/span><\/button><\/div><\/div><\/div><input type=\"hidden\" id=\"forminator_nonce\" name=\"forminator_nonce\" value=\"5f82bad767\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/index.php\/wp-json\/wp\/v2\/pages\/822\" \/><input type=\"hidden\" name=\"form_id\" value=\"1050\"><input type=\"hidden\" name=\"page_id\" value=\"822\"><input type=\"hidden\" name=\"form_type\" value=\"default\"><input type=\"hidden\" name=\"current_url\" value=\"https:\/\/music.kenneyzproductions.com\/index.php\/contact\/\"><input type=\"hidden\" name=\"render_id\" value=\"0\"><input type=\"hidden\" name=\"action\" value=\"forminator_submit_form_custom-forms\"><\/form><\/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<div class=\"elementor-element elementor-element-36bf0f5 e-con-full e-flex e-con e-parent\" data-id=\"36bf0f5\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a68ed91 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"a68ed91\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<iframe src=\"https:\/\/www.google.com\/maps\/embed?pb=!1m16!1m12!1m3!1d226.3658719993746!2d67.05727681109795!3d24.800454060708518!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!2m1!1sPlot%23C-9C%2C%20Suite%231%2C%202%2C%20Khayaban%E2%80%91e%E2%80%91Nishat%2C%20opposite%20Meezanbank%2C%20D.H.A%20Phase%206%2C%20Defence%20Housing%20Authority%2C%20Karachi%2C%20Pakistan.!5e0!3m2!1sen!2s!4v1765450307137!5m2!1sen!2s\" width=\"100%\" height=\"450\" style=\"border:0;\" allowfullscreen=\"\" loading=\"lazy\" referrerpolicy=\"no-referrer-when-downgrade\"><\/iframe>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2cf26ea e-con-full e-flex e-con e-parent\" data-id=\"2cf26ea\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dac7267 elementor-widget__width-inherit elementor-widget-mobile__width-initial elementor-widget elementor-widget-html\" data-id=\"dac7267\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"gemini-testimonials-section\">\r\n    <div class=\"gemini-header-container\">\r\n        <h2 class=\"gemini-section-title\">TESTIMONIALS<\/h2>\r\n        <div class=\"gemini-slider-nav\">\r\n            <div class=\"gemini-arrow gemini-prev-arrow\">\r\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n                    <path d=\"M15.41 7.41L14 6L8 12L14 18L15.41 16.59L10.83 12L15.41 7.41Z\" fill=\"white\"\/>\r\n                <\/svg>\r\n            <\/div>\r\n            <div class=\"gemini-arrow gemini-next-arrow\">\r\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n                    <path d=\"M8.59 16.59L10 18L16 12L10 6L8.59 7.41L13.17 12L8.59 16.59Z\" fill=\"white\"\/>\r\n                <\/svg>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"gemini-testimonials-wrapper\">\r\n        <div class=\"gemini-testimonials-track\">\r\n\r\n            <div class=\"gemini-testimonial-card\" data-index=\"0\">\r\n                <div class=\"gemini-quote-icon\">\r\n                    <span class=\"gemini-quote-symbol\">\u201c<\/span>\r\n                    <span class=\"gemini-rating\">\u2605\u2605\u2605\u2605\u2605<\/span>\r\n                <\/div>\r\n                <p class=\"gemini-testimonial-text\">Kenneyz Music provided fantastic sound design on our short film for Disney - It is a real pleasure working with Brendon and team, their work is of a high standard, and they were always communicative and accommodating of schedule changes when the need arose.<\/p>\r\n                <h4 class=\"gemini-client-name\">Mike Buckland<\/h4>\r\n                <p class=\"gemini-client-title\">Head of Production <span class=\"gemini-company-name\">Tigerfish<\/span><\/p>\r\n            <\/div>\r\n\r\n            <div class=\"gemini-testimonial-card\" data-index=\"1\">\r\n                <div class=\"gemini-quote-icon\">\r\n                    <span class=\"gemini-quote-symbol\">\u201c<\/span>\r\n                    <span class=\"gemini-rating\">\u2605\u2605\u2605\u2605\u2605<\/span>\r\n                <\/div>\r\n                <p class=\"gemini-testimonial-text\">We at Golddunnit Promotions produce movies for Nat Geo Wild, Animal Planet, Netflix etc and we've had nothing but incredible professional sound service from Brendon at Kenneyz Music. Brendon has mixed countless wildlife and travel series for us over the years and it's always been a pleasure dealing with him.<\/p>\r\n                <h4 class=\"gemini-client-name\">Don Percival<\/h4>\r\n                <p class=\"gemini-client-title\">Executive Producer <span class=\"gemini-company-name\">Golddunnit Promotions<\/span><\/p>\r\n            <\/div>\r\n\r\n            <div class=\"gemini-testimonial-card\" data-index=\"2\">\r\n                <div class=\"gemini-quote-icon\">\r\n                    <span class=\"gemini-quote-symbol\">\u201c<\/span>\r\n                    <span class=\"gemini-rating\">\u2605\u2605\u2605\u2605\u2605<\/span>\r\n                <\/div>\r\n                <p class=\"gemini-testimonial-text\">Excellent studio with all the trimmings - I shot a series of training videos here, which came out amazingly well. Brendon helped with the set-up and the sound. It's professional and great value for money.<\/p>\r\n                <h4 class=\"gemini-client-name\">Lita Currie<\/h4>\r\n                <p class=\"gemini-client-title\">Business Coach & Graphic Facilitator <span class=\"gemini-company-name\">Stockmen<\/span><\/p>\r\n            <\/div>\r\n\r\n            <div class=\"gemini-testimonial-card\" data-index=\"3\">\r\n                <div class=\"gemini-quote-icon\">\r\n                    <span class=\"gemini-quote-symbol\">\u201c<\/span>\r\n                    <span class=\"gemini-rating\">\u2605\u2605\u2605\u2605\u2605<\/span>\r\n                <\/div>\r\n                <p class=\"gemini-testimonial-text\">Brendon's attention to detail on our feature film sound mix was impeccable. He worked tirelessly to meet our deadline and the results speak for themselves. Highly recommended for any professional audio work.<\/p>\r\n                <h4 class=\"gemini-client-name\">Sarah Jenkins<\/h4>\r\n                <p class=\"gemini-client-title\">Independent Filmmaker <span class=\"gemini-company-name\">Indie Cine Prod<\/span><\/p>\r\n            <\/div>\r\n\r\n            <div class=\"gemini-testimonial-card\" data-index=\"4\">\r\n                <div class=\"gemini-quote-icon\">\r\n                    <span class=\"gemini-quote-symbol\">\u201c<\/span>\r\n                    <span class=\"gemini-rating\">\u2605\u2605\u2605\u2605\u2605<\/span>\r\n                <\/div>\r\n                <p class=\"gemini-testimonial-text\">Outstanding quality and communication. We needed custom sound effects for our game project, and Kenneyz Music delivered beyond expectations, integrating perfectly with our development schedule. A five-star experience!<\/p>\r\n                <h4 class=\"gemini-client-name\">Alex Vane<\/h4>\r\n                <p class=\"gemini-client-title\">Lead Game Designer <span class=\"gemini-company-name\">Pixel Play<\/span><\/p>\r\n            <\/div>\r\n\r\n        <\/div>\r\n    <\/div>\r\n<\/section>\r\n\r\n\r\n<style>\r\n\/* --- FULL WIDTH & RESPONSIVE CSS --- *\/\r\n\r\n\/* --- Variables and General Styling --- *\/\r\n.gemini-testimonials-section {\r\n    font-family: 'Inter', Arial, sans-serif;\r\n    color: #FFFFFF;\r\n    padding: 60px 0;\r\n    background: #0A0A0E;\r\n    overflow: hidden;\r\n    width: 100%;\r\n}\r\n\r\n\/* --- Header and Navigation --- *\/\r\n.gemini-header-container {\r\n    display: flex;\r\n    justify-content: space-between;\r\n    align-items: center;\r\n    margin: 0 auto;\r\n    padding: 0 40px 40px 40px;\r\n    width: 100%;\r\n    box-sizing: border-box;\r\n}\r\n\r\n.gemini-section-title {\r\n    font-size: 32px;\r\n    font-weight: 700;\r\n    letter-spacing: 2px;\r\n    margin: 0;\r\n    color: #fff;\r\n}\r\n\r\n.gemini-slider-nav {\r\n    display: flex;\r\n}\r\n\r\n.gemini-arrow {\r\n    width: 45px;\r\n    height: 45px;\r\n    border: 1px solid #FFFFFF;\r\n    display: flex;\r\n    justify-content: center;\r\n    align-items: center;\r\n    cursor: pointer;\r\n    transition: background-color 0.3s;\r\n    margin-left: 10px;\r\n    border-radius: 4px;\r\n}\r\n\r\n.gemini-arrow:hover { background-color: #2e2e34; }\r\n\r\n\/* --- Slider\/Track Setup --- *\/\r\n.gemini-testimonials-wrapper {\r\n    margin: 0 auto;\r\n    overflow: hidden;\r\n    padding: 0 40px;\r\n    width: 100%;\r\n    box-sizing: border-box;\r\n}\r\n\r\n.gemini-testimonials-track {\r\n    display: flex;\r\n    transition: transform 0.5s ease-in-out;\r\n    \/* Remove fixed width for the track to be calculated by JS\/Flexbox for the carousel logic *\/\r\n}\r\n\r\n\/* --- Testimonial Card Styling --- *\/\r\n.gemini-testimonial-card {\r\n    background-color: #17171C;\r\n    padding: 40px;\r\n    \/* Flex grow: 0, Flex shrink: 0, Flex basis: 33.333% - margin *\/\r\n    flex: 0 0 calc(33.333% - 20px); \/* Adjusted margin compensation *\/\r\n    margin-right: 30px; \/* Reduced margin to 30px for better visibility *\/\r\n    min-height: 350px;\r\n    border-radius: 8px;\r\n    box-sizing: border-box; \/* Crucial for calc() *\/\r\n}\r\n\r\n.gemini-testimonial-card:last-child { \r\n    margin-right: 0; \r\n}\r\n\r\n.gemini-quote-icon {\r\n    display: flex;\r\n    justify-content: space-between;\r\n    margin-bottom: 20px;\r\n    align-items: center;\r\n}\r\n\r\n.gemini-quote-symbol {\r\n    font-size: 60px;\r\n    line-height: 1;\r\n    color: #FFFFFF;\r\n    font-family: Georgia, serif;\r\n    font-weight: 900;\r\n}\r\n\r\n.gemini-rating {\r\n    font-size: 20px;\r\n    color: #FFC107;\r\n    letter-spacing: 1px;\r\n}\r\n\r\n.gemini-testimonial-text {\r\n    font-size: 16px;\r\n    line-height: 1.7;\r\n    color: #CCCCCC;\r\n    margin-bottom: 30px;\r\n}\r\n\r\n.gemini-client-name {\r\n    font-size: 18px;\r\n    font-weight: 700;\r\n    margin: 0 0 5px 0;\r\n    color: #fff;\r\n}\r\n\r\n.gemini-client-title {\r\n    font-size: 14px;\r\n    color: #CCCCCC;\r\n    margin: 0;\r\n}\r\n\r\n.gemini-company-name {\r\n    color: #FF6B6B;\r\n    font-weight: 700;\r\n}\r\n\r\n\/* --- Responsive Adjustments --- *\/\r\n\r\n\/* Tablet (2 cards visible) *\/\r\n@media (max-width: 1024px) {\r\n    \/* Track width will be calculated by JS based on 2 slides\/view *\/\r\n    \r\n    .gemini-testimonial-card {\r\n        \/* Flex basis: 50% - margin *\/\r\n        flex: 0 0 calc(50% - 15px); \/* Adjusted margin compensation (margin-right: 30px) *\/\r\n    }\r\n}\r\n\r\n\/* Mobile (1 card visible and swipable) *\/\r\n@media (max-width: 768px) {\r\n    .gemini-header-container {\r\n        justify-content: space-between; \/* Keep original layout or center as needed *\/\r\n        padding: 0 20px 20px;\r\n    }\r\n\r\n    .gemini-testimonials-wrapper { \r\n        padding: 0 20px; \r\n    }\r\n\r\n    .gemini-testimonials-track {\r\n        \/* This will be managed by JS for the carousel, remove the !important from the original *\/\r\n        width: auto;\r\n        display: flex;\r\n        \/* transition property is kept for smooth slide *\/\r\n    }\r\n\r\n    .gemini-testimonial-card {\r\n        \/* Flex basis: 100% - margin *\/\r\n        flex: 0 0 calc(100% - 20px); \/* 100% width with 20px margin-right *\/\r\n        margin-right: 20px;\r\n        margin-bottom: 0; \/* Remove vertical margin *\/\r\n        min-height: auto;\r\n    }\r\n\r\n    \/* Keep the navigation for mobile swiping visual feedback *\/\r\n    \/* .gemini-slider-nav { display: none; } *\/\r\n    .gemini-section-title { font-size: 24px; }\r\n}\r\n<\/style>\r\n\r\n<script>\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n    const track = document.querySelector('.gemini-testimonials-track');\r\n    const cards = document.querySelectorAll('.gemini-testimonial-card');\r\n    const prevButton = document.querySelector('.gemini-prev-arrow');\r\n    const nextButton = document.querySelector('.gemini-next-arrow');\r\n    const cardCount = cards.length;\r\n\r\n    let currentIndex = 0;\r\n    let startX = 0;\r\n    let currentTranslate = 0;\r\n    let isDragging = false;\r\n    let cardGap = 30; \/\/ Matches CSS margin-right for desktop\/tablet\r\n    let mobileGap = 20; \/\/ Matches CSS margin-right for mobile\r\n\r\n    \/\/ Determine cards per view and card width\/gap for calculation\r\n    function getSlidesVisible() {\r\n        if (window.innerWidth <= 768) return 1; \/\/ Mobile slider ON, 1 card visible\r\n        if (window.innerWidth <= 1024) return 2; \/\/ Tablet, 2 cards visible\r\n        return 3; \/\/ Desktop, 3 cards visible\r\n    }\r\n\r\n    function getCardWidth() {\r\n        const slidesVisible = getSlidesVisible();\r\n        const wrapperWidth = track.parentElement.offsetWidth;\r\n        let gap = slidesVisible === 1 ? mobileGap : cardGap; \/\/ Use mobile gap or desktop gap\r\n\r\n        \/\/ Calculate the width of one card including its margin-right\r\n        \/\/ (Wrapper Width - Total Gaps) \/ Slides Visible + Margin Right\r\n        const cardWidth = (wrapperWidth - (slidesVisible - 1) * gap) \/ slidesVisible;\r\n        return cardWidth + gap; \/\/ Card content width + its right margin\r\n    }\r\n\r\n    \/\/ Update slider position\r\n    function updateSlider(animate = true) {\r\n        const slidesVisible = getSlidesVisible();\r\n        const maxIndex = cardCount - slidesVisible;\r\n        const currentGap = slidesVisible === 1 ? mobileGap : cardGap;\r\n        \r\n        currentIndex = Math.min(Math.max(0, currentIndex), maxIndex);\r\n\r\n        \/\/ Calculate the total offset required to center the current card\/set\r\n        \/\/ Calculate the percentage of one card + its margin relative to the track's parent wrapper (the viewable area)\r\n        \/\/ Since the track is flex, we use translateX\r\n        if (slidesVisible > 1) {\r\n             \/\/ For desktop\/tablet (2 or 3 visible), we use percentage based on the number of slides\r\n             const movePercent = (100 \/ slidesVisible) * currentIndex;\r\n             track.style.transform = `translateX(-${movePercent}%)`;\r\n        } else {\r\n             \/\/ For mobile (1 visible), we calculate based on the actual card width\/gap in pixels\r\n             const cardWidth = track.children[0].offsetWidth; \/\/ Get the computed card width (100% - 20px margin)\r\n             const totalCardMove = cardWidth + currentGap; \/\/ 100% card + 20px margin\r\n             const movePixels = totalCardMove * currentIndex;\r\n             track.style.transform = `translateX(-${movePixels}px)`;\r\n        }\r\n\r\n        track.style.transition = animate ? 'transform 0.5s ease-in-out' : 'none';\r\n    }\r\n\r\n    \/\/ Button controls\r\n    prevButton.addEventListener('click', () => {\r\n        const slidesVisible = getSlidesVisible();\r\n        const step = slidesVisible > 1 ? 1 : 1; \/\/ On desktop\/tablet, step 1 card, on mobile, step 1 card\r\n        currentIndex = Math.max(0, currentIndex - step);\r\n        updateSlider();\r\n    });\r\n\r\n    nextButton.addEventListener('click', () => {\r\n        const slidesVisible = getSlidesVisible();\r\n        const maxIndex = cardCount - slidesVisible;\r\n        const step = slidesVisible > 1 ? 1 : 1;\r\n        currentIndex = Math.min(maxIndex, currentIndex + step);\r\n        updateSlider();\r\n    });\r\n\r\n    \/\/ ----- TOUCH \/ SWIPE SUPPORT -----\r\n    track.addEventListener('touchstart', (e) => {\r\n        if (getSlidesVisible() < cardCount) { \/\/ Only enable swiping if there are more cards to show\r\n            startX = e.touches[0].clientX;\r\n            isDragging = true;\r\n            track.style.transition = 'none'; \/\/ Disable animation during drag\r\n        }\r\n    });\r\n\r\n    track.addEventListener('touchmove', (e) => {\r\n        if (!isDragging) return;\r\n\r\n        const slidesVisible = getSlidesVisible();\r\n        \/\/ The visible slides logic is important here. If 3 are visible, no swipe. If 1 or 2, swipe.\r\n        if (slidesVisible >= cardCount) return; \r\n\r\n        const diff = e.touches[0].clientX - startX;\r\n        \r\n        \/\/ Get current translated value\r\n        const currentTransform = window.getComputedStyle(track).transform;\r\n        if (currentTransform && currentTransform !== 'none') {\r\n            const matrix = currentTransform.match(\/matrix.*\\((.+)\\)\/)[1].split(', ');\r\n            currentTranslate = parseFloat(matrix[4]); \/\/ The X translation value\r\n        } else {\r\n            currentTranslate = 0;\r\n        }\r\n\r\n        \/\/ Apply a visual drag effect\r\n        track.style.transform = `translateX(${currentTranslate + diff}px)`;\r\n    });\r\n\r\n    track.addEventListener('touchend', (e) => {\r\n        if (!isDragging) return;\r\n        isDragging = false;\r\n\r\n        const slidesVisible = getSlidesVisible();\r\n        const maxIndex = cardCount - slidesVisible;\r\n        const endX = e.changedTouches[0].clientX;\r\n        const diff = endX - startX;\r\n        const sensitivity = 60; \/\/ Swipe threshold\r\n\r\n        track.style.transition = 'transform 0.5s ease-in-out'; \/\/ Re-enable animation\r\n\r\n        if (Math.abs(diff) > sensitivity) {\r\n            if (diff > 0) {\r\n                currentIndex = Math.max(0, currentIndex - 1); \/\/ swipe right \u2192 previous\r\n            } else {\r\n                currentIndex = Math.min(maxIndex, currentIndex + 1); \/\/ swipe left \u2192 next\r\n            }\r\n        }\r\n\r\n        updateSlider(); \/\/ Snap to the calculated index\r\n    });\r\n\r\n    \/\/ Reset on resize\r\n    function handleResize() {\r\n        \/\/ Recalculate track width and reset index for smooth transition between breakpoints\r\n        currentIndex = 0;\r\n        updateSlider(false); \/\/ No animation on resize\r\n    }\r\n\r\n    window.addEventListener('resize', handleResize);\r\n\r\n    \/\/ Initialize slider\r\n    updateSlider();\r\n});\r\n<\/script>\r\n\r\n\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>Get in touch Tell us more about your upcoming project, and we\u2019ll get right back to you.Alternatively, you can also [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-822","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/music.kenneyzproductions.com\/index.php\/wp-json\/wp\/v2\/pages\/822","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/music.kenneyzproductions.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/music.kenneyzproductions.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/music.kenneyzproductions.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/music.kenneyzproductions.com\/index.php\/wp-json\/wp\/v2\/comments?post=822"}],"version-history":[{"count":79,"href":"https:\/\/music.kenneyzproductions.com\/index.php\/wp-json\/wp\/v2\/pages\/822\/revisions"}],"predecessor-version":[{"id":1108,"href":"https:\/\/music.kenneyzproductions.com\/index.php\/wp-json\/wp\/v2\/pages\/822\/revisions\/1108"}],"wp:attachment":[{"href":"https:\/\/music.kenneyzproductions.com\/index.php\/wp-json\/wp\/v2\/media?parent=822"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}