{"id":289,"date":"2025-12-06T16:37:38","date_gmt":"2025-12-06T16:37:38","guid":{"rendered":"https:\/\/music.kenneyzproductions.com\/?page_id=289"},"modified":"2025-12-11T10:57:44","modified_gmt":"2025-12-11T10:57:44","slug":"rates","status":"publish","type":"page","link":"https:\/\/music.kenneyzproductions.com\/index.php\/rates\/","title":{"rendered":"RATES"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"289\" class=\"elementor elementor-289\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0705d15 e-con-full e-flex e-con e-parent\" data-id=\"0705d15\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b01b64e elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"b01b64e\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n\/* Base container styling *\/\r\n.studio-rates-container {\r\n  background-color: #330c0e;\r\n  color: #fff;\r\n  padding: 20px;\r\n  font-family: Arial, sans-serif;\r\n}\r\n\r\n\/* Main title styling *\/\r\n.main-title {\r\n  color: #fff;\r\n  font-size: 24px;\r\n  font-weight: 700;\r\n  letter-spacing: 2px;\r\n  margin-bottom: 40px;\r\n  padding-top: 100px;\r\n}\r\n\r\n\/* Rate Item Container *\/\r\n.rate-item {\r\n  display: flex;\r\n  justify-content: space-between;\r\n  align-items: flex-start;\r\n  padding: 15px 0;\r\n}\r\n\r\n\/* Title Column Styling *\/\r\n.item-title-col {\r\n  flex: 1;\r\n  padding-right: 20px;\r\n}\r\n\r\n.item-title {\r\n  color: #fff;\r\n  font-size: 18px;\r\n  font-weight: 700;\r\n  margin: 0;\r\n  line-height: 1.2;\r\n}\r\n\r\n.item-description {\r\n  color: #ccc;\r\n  font-size: 14px;\r\n  margin: 5px 0 0 0;\r\n}\r\n\r\n\/* Price Column Styling *\/\r\n.item-price-col {\r\n  text-align: right;\r\n  white-space: nowrap;\r\n  display: flex;\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n}\r\n\r\n.session-rate .item-price-col {\r\n  flex-direction: row;\r\n  gap: 30px;\r\n}\r\n\r\n.price-row {\r\n  display: flex;\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n}\r\n\r\n.price-value {\r\n  color: #dc3545;\r\n  font-size: 18px;\r\n  font-weight: 700;\r\n  line-height: 1.2;\r\n}\r\n\r\n.price-unit {\r\n  color: #ccc;\r\n  font-size: 14px;\r\n  font-style: italic;\r\n  font-weight: 400;\r\n  line-height: 1.2;\r\n}\r\n\r\n\/* Empty column for alignment *\/\r\n.empty-col {\r\n  width: 50px;\r\n  color: #999;\r\n  font-size: 16px;\r\n  font-weight: 700;\r\n}\r\n\r\n\/* Dividers *\/\r\nhr.rate-divider {\r\n  border: none;\r\n  border-top: 1px solid rgba(255, 255, 255, 0.1);\r\n  margin: 0;\r\n}\r\n\r\nhr.rate-divider-bold {\r\n  border: none;\r\n  border-top: 2px solid #3d0f11;\r\n  margin: 0;\r\n}\r\n\r\nhr.rate-divider-thin {\r\n  border: none;\r\n  border-top: 1px solid #1a0606;\r\n  margin: 0;\r\n}\r\n\r\n\/* Notes section *\/\r\n.rate-notes {\r\n  padding-top: 30px;\r\n  font-size: 12px;\r\n  color: #999;\r\n  line-height: 1.5;\r\n}\r\n\r\n.rate-notes p {\r\n  margin: 0 0 5px 0;\r\n}\r\n\r\n\/* Footer buttons *\/\r\n.footer-buttons {\r\n  display: flex;\r\n  justify-content: flex-end;\r\n  margin-top: 20px;\r\n}\r\n\r\n.button {\r\n  padding: 10px 20px;\r\n  margin-left: 10px;\r\n  border: 1px solid #dc3545;\r\n  border-radius: 3px;\r\n  text-transform: uppercase;\r\n  font-size: 12px;\r\n  font-weight: 700;\r\n  cursor: pointer;\r\n  text-decoration: none;\r\n}\r\n\r\n.see-services {\r\n  background-color: transparent;\r\n  color: #dc3545;\r\n}\r\n\r\n.get-in-touch {\r\n  background-color: #dc3545;\r\n  color: #fff;\r\n  border: 1px solid #dc3545;\r\n}\r\n<\/style>\r\n\r\n<div class=\"studio-rates-container\">\r\n  <h1 class=\"main-title\">STUDIO RATES & SERVICES<\/h1>\r\n\r\n  <div class=\"rate-section\">\r\n    <div class=\"rate-item\">\r\n      <div class=\"item-title-col\">\r\n        <h2 class=\"item-title\">Podcast Starter Package<\/h2>\r\n        <p class=\"item-description\">Up to 2 guests with Single HD Camera (30 mins setup, 1 hour record, 2.5 hours post)<\/p>\r\n      <\/div>\r\n      <div class=\"item-price-col\">\r\n        <div class=\"price-row\">\r\n          <span class=\"price-value\">R6,800<\/span>\r\n          <span class=\"price-unit\">\/Podcast<\/span>\r\n        <\/div>\r\n        <div class=\"empty-col\">-<\/div>\r\n      <\/div>\r\n    <\/div>\r\n    <hr class=\"rate-divider\">\r\n\r\n    <div class=\"rate-item\">\r\n      <div class=\"item-title-col\">\r\n        <h2 class=\"item-title\">Podcast Standard Package<\/h2>\r\n        <p class=\"item-description\">Up to 2 guests with 3 HD Cameras (30 mins setup, 1.5 hours record, 3 hours post)<\/p>\r\n      <\/div>\r\n      <div class=\"item-price-col\">\r\n        <div class=\"price-row\">\r\n          <span class=\"price-value\">R9,800<\/span>\r\n          <span class=\"price-unit\">\/Podcast<\/span>\r\n        <\/div>\r\n        <div class=\"empty-col\">-<\/div>\r\n      <\/div>\r\n    <\/div>\r\n    <hr class=\"rate-divider\">\r\n\r\n    <div class=\"rate-item\">\r\n      <div class=\"item-title-col\">\r\n        <h2 class=\"item-title\">Podcast Premium Package<\/h2>\r\n        <p class=\"item-description\">Up to 4 guests with 4 HD Cameras (1 hour setup, 2 hours record, 4 hours post)<\/p>\r\n      <\/div>\r\n      <div class=\"item-price-col\">\r\n        <div class=\"price-row\">\r\n          <span class=\"price-value\">R17,500<\/span>\r\n          <span class=\"price-unit\">\/Podcast<\/span>\r\n        <\/div>\r\n        <div class=\"empty-col\">-<\/div>\r\n      <\/div>\r\n    <\/div>\r\n    <hr class=\"rate-divider-bold\">\r\n  <\/div>\r\n\r\n  <div class=\"rate-section\">\r\n    <div class=\"rate-item session-rate\">\r\n      <div class=\"item-title-col\">\r\n        <h2 class=\"item-title\">Standard Studio Session<\/h2>\r\n        <p class=\"item-description\">Music Recording & Production \/ Audio Podcasts<\/p>\r\n      <\/div>\r\n      <div class=\"item-price-col\">\r\n        <div class=\"price-row\">\r\n          <span class=\"price-value\">R 1,500<\/span>\r\n          <span class=\"price-unit\">\/Hour<\/span>\r\n        <\/div>\r\n        <div class=\"price-row\">\r\n          <span class=\"price-value\">R 12,000<\/span>\r\n          <span class=\"price-unit\">\/Day<\/span>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n    <hr class=\"rate-divider-bold\">\r\n\r\n    <div class=\"rate-item session-rate\">\r\n      <div class=\"item-title-col\">\r\n        <h2 class=\"item-title\">Premium Studio Session<\/h2>\r\n        <p class=\"item-description\">Audio Branding, Final Mix & Sound Design<\/p>\r\n      <\/div>\r\n      <div class=\"item-price-col\">\r\n        <div class=\"price-row\">\r\n          <span class=\"price-value\">R 1,700<\/span>\r\n          <span class=\"price-unit\">\/Hour<\/span>\r\n        <\/div>\r\n        <div class=\"price-row\">\r\n          <span class=\"price-value\">R 13,600<\/span>\r\n          <span class=\"price-unit\">\/Day<\/span>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n    <hr class=\"rate-divider-bold\">\r\n  <\/div>\r\n\r\n  <div class=\"rate-section\">\r\n    <div class=\"rate-item\">\r\n      <div class=\"item-title-col\">\r\n        <h2 class=\"item-title\">Stereo Music Mix<\/h2>\r\n        <p class=\"item-description\">Per Song (using multi-track audio files & starting from scratch)<\/p>\r\n      <\/div>\r\n      <div class=\"item-price-col\">\r\n        <div class=\"price-row\">\r\n          <span class=\"price-value\">R 7,500<\/span>\r\n          <span class=\"price-unit\">\/Song<\/span>\r\n        <\/div>\r\n        <div class=\"empty-col\">-<\/div>\r\n      <\/div>\r\n    <\/div>\r\n    <hr class=\"rate-divider\">\r\n\r\n    <div class=\"rate-item\">\r\n      <div class=\"item-title-col\">\r\n        <h2 class=\"item-title\">Atmos Music Mix - Single Track (discounts for albums)<\/h2>\r\n        <p class=\"item-description\">Per Song (using mix stems from final stereo mix)<\/p>\r\n      <\/div>\r\n      <div class=\"item-price-col\">\r\n        <div class=\"price-row\">\r\n          <span class=\"price-value\">R 5,000<\/span>\r\n          <span class=\"price-unit\">\/Song<\/span>\r\n        <\/div>\r\n        <div class=\"empty-col\">-<\/div>\r\n      <\/div>\r\n    <\/div>\r\n    <hr class=\"rate-divider-thin\">\r\n  <\/div>\r\n\r\n  <div class=\"rate-notes\">\r\n    <p>There is a minimum of a 2 hour booking for any Studio Session.<\/p>\r\n    <p>There is a minimum of 4 hours booking for any band recording projects.<\/p>\r\n    <p>Daily rates are based on 8 hours and do not include breaks.<\/p>\r\n    <p>A 50% deposit is required to book the studio for longer projects.<\/p>\r\n    <p>Full payment for all studio time is required before any deliverables will be released.<\/p>\r\n    <p>All prices are exclusive of VAT at 15%.<\/p>\r\n  <\/div>\r\n\r\n  <div\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-46ffacb e-con-full e-flex e-con e-parent\" data-id=\"46ffacb\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e062e5b elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"e062e5b\" 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            \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 Solemix Studios 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<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>STUDIO RATES &#038; SERVICES Podcast Starter Package Up to 2 guests with Single HD Camera (30 mins setup, 1 hour [&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-289","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/music.kenneyzproductions.com\/index.php\/wp-json\/wp\/v2\/pages\/289","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=289"}],"version-history":[{"count":16,"href":"https:\/\/music.kenneyzproductions.com\/index.php\/wp-json\/wp\/v2\/pages\/289\/revisions"}],"predecessor-version":[{"id":1064,"href":"https:\/\/music.kenneyzproductions.com\/index.php\/wp-json\/wp\/v2\/pages\/289\/revisions\/1064"}],"wp:attachment":[{"href":"https:\/\/music.kenneyzproductions.com\/index.php\/wp-json\/wp\/v2\/media?parent=289"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}