{"title":"Painting Services | Straight Edge Painting","description":"","products":[{"product_id":"full-interior-paint","title":"Interior \u0026 Exterior Painting (Sub-service)","description":"\u003c!-- About the Tradesman Section --\u003e\n\u003cdiv style=\"background: #f9f9f9; border-radius: 12px; padding: 20px; margin-top: 30px; box-shadow: 0 2px 8px rgba(0,0,0,0.05);\"\u003e\n\u003c!-- Title --\u003e\n\u003ch2 style=\"font-size: 1.4em; font-weight: 600; margin-bottom: 15px; color: #333;\"\u003e👷\u003cspan\u003e \u003c\/span\u003eWho You'll Be Working With\u003c\/h2\u003e\n\u003c!-- TradeMatch-style photo scroll bar (Compact version, Yellow #FFE033, no title\/subheader) --\u003e\n\u003cdiv class=\"tm-photo-scroll\"\u003e\n\u003cdiv class=\"tm-photo-scroll__viewport\"\u003e\n\u003cbutton aria-label=\"Previous photos\" type=\"button\" class=\"tm-photo-scroll__arrow tm-photo-scroll__arrow--left\"\u003e❮\u003c\/button\u003e\n\u003cdiv class=\"tm-photo-scroll__track\"\u003e\n\u003c!-- 👇 VA: DUPLICATE THIS BLOCK FOR MORE PHOTOS \u0026 JUST CHANGE THE src URL + alt TEXT --\u003e \u003c!-- Slide 1 --\u003e\n\u003cdiv class=\"tm-photo-scroll__item\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0698\/4695\/8394\/files\/Screenshot_2025-11-21_045511.jpg?v=1763718972\" alt=\"Project photo 1\"\u003e\u003c\/div\u003e\n\u003c!-- Slide 2 --\u003e\n\u003cdiv class=\"tm-photo-scroll__item\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0698\/4695\/8394\/files\/Screenshot2025-11-21044213.jpg?v=1763718681\" alt=\"Project photo 2\"\u003e\u003c\/div\u003e\n\u003c!-- Slide 3 --\u003e\n\u003cdiv class=\"tm-photo-scroll__item\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0698\/4695\/8394\/files\/Screenshot2025-11-21044131.jpg?v=1763718665\" alt=\"Project photo 3\"\u003e\u003c\/div\u003e\n\u003c!-- Slide 4 --\u003e\n\u003cdiv class=\"tm-photo-scroll__item\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0698\/4695\/8394\/files\/Screenshot2025-11-21044037.jpg?v=1763718647\" alt=\"Project photo 4\"\u003e\u003c\/div\u003e\n\u003c!-- Slide 5 --\u003e\n\u003cdiv class=\"tm-photo-scroll__item\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0698\/4695\/8394\/files\/Screenshot_2025-11-21_050042.jpg?v=1763719300\" alt=\"Project photo 5\"\u003e\u003c\/div\u003e\n\u003c!-- Slide 6 --\u003e\n\u003cdiv class=\"tm-photo-scroll__item\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0698\/4695\/8394\/files\/Screenshot_2025-11-21_050403.jpg?v=1763719488\" alt=\"Project photo 6\"\u003e\u003c\/div\u003e\n\u003c!-- 👆 VA: JUST COPY\/PASTE MORE OF THESE .tm-photo-scroll__item BLOCKS AS NEEDED --\u003e\n\u003c\/div\u003e\n\u003cbutton aria-label=\"Next photos\" type=\"button\" class=\"tm-photo-scroll__arrow tm-photo-scroll__arrow--right\"\u003e❯\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c!-- Dots: make the number of dots match the number of slides above --\u003e\n\u003cdiv aria-hidden=\"true\" class=\"tm-photo-scroll__dots\"\u003e\n\u003cspan class=\"tm-photo-scroll__dot tm-photo-scroll__dot--active\"\u003e\u003c\/span\u003e \u003cspan class=\"tm-photo-scroll__dot\"\u003e\u003c\/span\u003e \u003cspan class=\"tm-photo-scroll__dot\"\u003e\u003c\/span\u003e \u003cspan class=\"tm-photo-scroll__dot\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n  .tm-photo-scroll {\n    margin: 24px 0;\n    padding: 20px 18px 24px;\n    border-radius: 18px;\n    background: #f8fafc;\n    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);\n    font-family: inherit;\n  }\n\n  .tm-photo-scroll__viewport {\n    position: relative;\n    display: flex;\n    align-items: center;\n    margin-top: 0;\n  }\n\n  .tm-photo-scroll__track {\n    display: flex;\n    gap: 12px;\n    overflow-x: auto;\n    scroll-snap-type: x mandatory;\n    scroll-behavior: smooth;\n    padding: 4px 4px 8px;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  .tm-photo-scroll__track::-webkit-scrollbar {\n    height: 6px;\n  }\n\n  .tm-photo-scroll__track::-webkit-scrollbar-thumb {\n    background: #FFE033;\n    border-radius: 999px;\n  }\n\n  .tm-photo-scroll__item {\n    flex: 0 0 60%;\n    max-width: 60%;\n    scroll-snap-align: center;\n  }\n\n  @media (min-width: 900px) {\n    .tm-photo-scroll__item {\n      flex: 0 0 35%;\n      max-width: 35%;\n    }\n  }\n\n  .tm-photo-scroll__item img {\n    display: block;\n    width: 100%;\n    height: auto;\n    border-radius: 14px;\n    object-fit: cover;\n    background: #e5e7eb;\n  }\n\n  .tm-photo-scroll__arrow {\n    flex: 0 0 auto;\n    border: none;\n    background: #FFE033;\n    color: #000;\n    border-radius: 999px;\n    width: 34px;\n    height: 34px;\n    font-size: 18px;\n    cursor: pointer;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    transition: transform 0.1s ease, box-shadow 0.15s ease;\n    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.18);\n  }\n\n  .tm-photo-scroll__arrow:hover {\n    background: #ffea66;\n    transform: translateY(-1px);\n  }\n\n  .tm-photo-scroll__arrow:active {\n    transform: translateY(0);\n    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);\n  }\n\n  .tm-photo-scroll__arrow--left {\n    margin-right: 8px;\n  }\n\n  .tm-photo-scroll__arrow--right {\n    margin-left: 8px;\n  }\n\n  .tm-photo-scroll__dots {\n    display: flex;\n    justify-content: center;\n    gap: 6px;\n    margin-top: 12px;\n  }\n\n  .tm-photo-scroll__dot {\n    width: 7px;\n    height: 7px;\n    border-radius: 999px;\n    background: #fff3a5;\n    transition: width 0.15s ease, background 0.15s ease;\n  }\n\n  .tm-photo-scroll__dot--active {\n    width: 18px;\n    background: #FFE033;\n  }\n\u003c\/style\u003e\n\u003cdiv style=\"background: #f9f9f9; border-radius: 12px; padding: 20px; margin-top: 30px; box-shadow: 0 2px 8px rgba(0,0,0,0.05);\"\u003e\n\u003cscript\u003e\n  (function() {\n    var containers = document.querySelectorAll('.tm-photo-scroll');\n    if (!containers.length) return;\n\n    containers.forEach(function(container) {\n      var track = container.querySelector('.tm-photo-scroll__track');\n      var items = Array.prototype.slice.call(container.querySelectorAll('.tm-photo-scroll__item'));\n      if (!items.length) return;\n\n      var left = container.querySelector('.tm-photo-scroll__arrow--left');\n      var right = container.querySelector('.tm-photo-scroll__arrow--right');\n      var dots = Array.prototype.slice.call(container.querySelectorAll('.tm-photo-scroll__dot'));\n\n      function getCurrentIndex() {\n        var scrollLeft = track.scrollLeft;\n        var itemWidth = items[0].offsetWidth + 12;\n        return Math.round(scrollLeft \/ itemWidth);\n      }\n\n      function goToIndex(index) {\n        if (index \u003c 0) index = 0;\n        if (index \u003e items.length - 1) index = items.length - 1;\n        var itemWidth = items[0].offsetWidth + 12;\n        track.scrollTo({ left: index * itemWidth, behavior: 'smooth' });\n        updateDots(index);\n      }\n\n      function updateDots(activeIndex) {\n        dots.forEach(function(dot, i) {\n          dot.classList.toggle('tm-photo-scroll__dot--active', i === activeIndex);\n        });\n      }\n\n      if (left) {\n        left.addEventListener('click', function() {\n          goToIndex(getCurrentIndex() - 1);\n        });\n      }\n\n      if (right) {\n        right.addEventListener('click', function() {\n          goToIndex(getCurrentIndex() + 1);\n        });\n      }\n\n      track.addEventListener('scroll', function() {\n        if (track._tmScrolling) return;\n        track._tmScrolling = true;\n        window.requestAnimationFrame(function() {\n          track._tmScrolling = false;\n          updateDots(getCurrentIndex());\n        });\n      });\n\n      updateDots(0);\n    });\n  })();\n\u003c\/script\u003e\n\u003cul style=\"list-style: none; padding: 0; font-size: 1em; color: #555; line-height: 1.6;\"\u003e\n\u003cli\u003e⭐️ 5.0 Stars (3 reviews on Google)\u003c\/li\u003e\n\u003cli\u003e🛠️ 11 Years of Hands-On Experience\u003c\/li\u003e\n\u003cli\u003e📍 Serving Within 100km of Kitchener-Waterloo\u003c\/li\u003e\n\u003cli\u003e🛡️ Licensed • Insured • Warranty Options Available\u003c\/li\u003e\n\u003cli\u003e🕒 Response Time: Replies usually within 3 hours\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c!-- Description --\u003e\n\u003cp style=\"line-height: 1.6; font-size: 1em; color: #555; margin-top: 15px;\"\u003eFor over 11 years, I’ve been helping homeowners and businesses transform their spaces with professional painting that lasts. My team and I take pride in delivering high-quality finishes, offering friendly design and colour consultations, and using eco-friendly paints to ensure results you can feel good about. The quality you deserve and the experience you can trust.\u003c\/p\u003e\n\u003c!-- Other Services Section --\u003e\n\u003cdiv style=\"margin-top: 40px; padding: 20px; background: #fffbe6; border-left: 5px solid #FFE033; border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,0.05);\"\u003e\n\u003ch2 style=\"font-size: 1.3em; font-weight: 600; margin-bottom: 15px; color: #333;\"\u003eOther Services I Offer\u003c\/h2\u003e\n\u003cdiv style=\"display: flex; flex-wrap: wrap; gap: 12px;\"\u003e\u003ca style=\"flex: 1; min-width: 200px; text-align: center; background: #FFE033; color: #333; font-weight: 600; text-decoration: none; padding: 12px 16px; border-radius: 8px; transition: 0.2s;\" href=\"https:\/\/canadiantradematch.ca\/products\/full-paint-stain-finish-custom-home\"\u003e Home Paint \u0026amp; Stain Finish \u003c\/a\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"background: #fffbe6; border-left: 5px solid #ffe066; padding: 18px; border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,0.05); margin-top: 24px; margin-bottom: 24px;\"\u003e\n\u003ch3 data-start=\"212\" data-end=\"251\"\u003e📍 Ready for the next step?\u003c\/h3\u003e\n\u003cp\u003e\u003cspan style=\"color: rgb(51, 51, 51); font-size: 1.1em; font-family: -apple-system, BlinkMacSystemFont, 'San Francisco', 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;\"\u003e\u003cmeta charset=\"utf-8\"\u003eJust fill in what you can and tap “\u003cstrong\u003eSend To Tradesmen For Review.\u003c\/strong\u003e”\u003cbr data-start=\"116\" data-end=\"119\"\u003eIt only takes a minute — you’ll see your price range, and then a tradesman will take a quick look. \u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cdiv style=\"font-size: 1.1em; line-height: 1.7; color: #333;\"\u003e\u003ca href=\"#calculator\" style=\"background: #FFE033; color: #333; padding: 7px 20px; border-radius: 8px; font-weight: bold; text-decoration: none; box-shadow: 0 2px 6px rgba(0,0,0,0.1);\"\u003eStart My Estimate\u003c\/a\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- FAQ Section --\u003e\n\u003csection style=\"padding: 20px; background-color: #f9f9f9; border-radius: 10px; margin-top: 40px; margin-bottom: 40px;\"\u003e\n\u003ch2 style=\"font-size: 1.5em; margin-bottom: 20px; text-align: center; color: #333;\"\u003e❓ Frequently Asked Questions\u003c\/h2\u003e\n\u003cdetails style=\"background-color: #fff; padding: 15px; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.05); margin-bottom: 10px;\"\u003e\n\u003csummary style=\"font-weight: bold; cursor: pointer;\"\u003eIs it free to use TradeMatch?\u003c\/summary\u003e\n\u003cp style=\"margin-top: 10px;\"\u003eYes, signing up and browsing tradesmen is completely free!\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails style=\"background-color: #fff; padding: 15px; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.05); margin-bottom: 10px;\"\u003e\n\u003csummary style=\"font-weight: bold; cursor: pointer;\"\u003eHow do I know if the tradesmen are reliable?\u003c\/summary\u003e\n\u003cp style=\"margin-top: 10px;\"\u003eTradesmen are rated by previous customers. You can read reviews, see ratings, and view their work portfolio before making a decision.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails style=\"background-color: #fff; padding: 15px; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.05); margin-bottom: 10px;\"\u003e\n\u003csummary style=\"font-weight: bold; cursor: pointer;\"\u003eCan I choose which tradesman I want to hire?\u003c\/summary\u003e\n\u003cp style=\"margin-top: 10px;\"\u003eYes! You can select the tradesman that best fits your needs based on experience, reviews, and services offered.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails style=\"background-color: #fff; padding: 15px; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.05); margin-bottom: 10px;\"\u003e\n\u003csummary style=\"font-weight: bold; cursor: pointer;\"\u003eHow do I book a job?\u003c\/summary\u003e\n\u003cp style=\"margin-top: 10px;\"\u003eBrowse available tradesmen, select the service and package you need, fill out the details, and you'll be put in direct contact to schedule a time.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails style=\"background-color: #fff; padding: 15px; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.05); margin-bottom: 10px;\"\u003e\n\u003csummary style=\"font-weight: bold; cursor: pointer;\"\u003eWhat if the job turns out to be more complicated than expected?\u003c\/summary\u003e\n\u003cp style=\"margin-top: 10px;\"\u003eIf the project scope changes, the tradesman will provide an updated quote. You’ll always be kept informed with no surprises.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails style=\"background-color: #fff; padding: 15px; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.05); margin-bottom: 10px;\"\u003e\n\u003csummary style=\"font-weight: bold; cursor: pointer;\"\u003eHow do I pay for the service?\u003c\/summary\u003e\n\u003cp style=\"margin-top: 10px;\"\u003ePayment is made directly to the tradesman after the job is completed. Methods may include bank transfer, credit card, or other preferred options.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails style=\"background-color: #fff; padding: 15px; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.05); margin-bottom: 10px;\"\u003e\n\u003csummary style=\"font-weight: bold; cursor: pointer;\"\u003eAre there any hidden fees?\u003c\/summary\u003e\n\u003cp style=\"margin-top: 10px;\"\u003eNo. We don’t charge homeowners any fees beyond the cost of the job itself.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails open=\"\" style=\"background-color: #fff; padding: 15px; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.05); margin-bottom: 10px;\"\u003e\n\u003csummary style=\"font-weight: bold; cursor: pointer;\"\u003eWhat if I’m not happy with the work?\u003c\/summary\u003e\n\u003cp style=\"margin-top: 10px;\"\u003eDiscuss concerns directly with the tradesman. If needed, our support team can help facilitate a resolution.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003c\/section\u003e\n\u003c\/div\u003e","brand":"Straight Edge Painting","offers":[{"title":"Default Title","offer_id":51672230265146,"sku":"9493624388","price":0.0,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0698\/4695\/8394\/files\/modern-staircase-hallway-bright-room.jpg?v=1771158996"},{"product_id":"straight-edge-painting-services-profile","title":"Straight Edge: Painting Services (Profile)","description":"\u003c!-- About the Tradesman Section --\u003e\n\u003cdiv style=\"background: #f9f9f9; border-radius: 12px; padding: 20px; margin-top: 30px; box-shadow: 0 2px 8px rgba(0,0,0,0.05);\"\u003e\n\u003c!-- Title --\u003e\n\u003ch2 style=\"font-size: 1.4em; font-weight: 600; margin-bottom: 15px; color: #333;\"\u003e👷\u003cspan\u003e \u003c\/span\u003eWho You'll Be Working With\u003c\/h2\u003e\n\u003c!-- TradeMatch-style photo scroll bar (Compact version, Yellow #FFE033, no title\/subheader) --\u003e\n\u003cdiv class=\"tm-photo-scroll\"\u003e\n\u003cdiv class=\"tm-photo-scroll__viewport\"\u003e\n\u003cbutton aria-label=\"Previous photos\" type=\"button\" class=\"tm-photo-scroll__arrow tm-photo-scroll__arrow--left\"\u003e❮\u003c\/button\u003e\n\u003cdiv class=\"tm-photo-scroll__track\"\u003e\n\u003c!-- 👇 VA: DUPLICATE THIS BLOCK FOR MORE PHOTOS \u0026 JUST CHANGE THE src URL + alt TEXT --\u003e \u003c!-- Slide 1 --\u003e\n\u003cdiv class=\"tm-photo-scroll__item\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0698\/4695\/8394\/files\/Screenshot_2025-11-21_045511.jpg?v=1763718972\" alt=\"Project photo 1\"\u003e\u003c\/div\u003e\n\u003c!-- Slide 2 --\u003e\n\u003cdiv class=\"tm-photo-scroll__item\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0698\/4695\/8394\/files\/Screenshot2025-11-21044213.jpg?v=1763718681\" alt=\"Project photo 2\"\u003e\u003c\/div\u003e\n\u003c!-- Slide 3 --\u003e\n\u003cdiv class=\"tm-photo-scroll__item\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0698\/4695\/8394\/files\/Screenshot2025-11-21044131.jpg?v=1763718665\" alt=\"Project photo 3\"\u003e\u003c\/div\u003e\n\u003c!-- Slide 4 --\u003e\n\u003cdiv class=\"tm-photo-scroll__item\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0698\/4695\/8394\/files\/Screenshot2025-11-21044037.jpg?v=1763718647\" alt=\"Project photo 4\"\u003e\u003c\/div\u003e\n\u003c!-- Slide 5 --\u003e\n\u003cdiv class=\"tm-photo-scroll__item\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0698\/4695\/8394\/files\/Screenshot_2025-11-21_050042.jpg?v=1763719300\" alt=\"Project photo 5\"\u003e\u003c\/div\u003e\n\u003c!-- Slide 6 --\u003e\n\u003cdiv class=\"tm-photo-scroll__item\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0698\/4695\/8394\/files\/Screenshot_2025-11-21_050403.jpg?v=1763719488\" alt=\"Project photo 6\"\u003e\u003c\/div\u003e\n\u003c!-- 👆 VA: JUST COPY\/PASTE MORE OF THESE .tm-photo-scroll__item BLOCKS AS NEEDED --\u003e\n\u003c\/div\u003e\n\u003cbutton aria-label=\"Next photos\" type=\"button\" class=\"tm-photo-scroll__arrow tm-photo-scroll__arrow--right\"\u003e❯\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c!-- Dots: make the number of dots match the number of slides above --\u003e\n\u003cdiv aria-hidden=\"true\" class=\"tm-photo-scroll__dots\"\u003e\n\u003cspan class=\"tm-photo-scroll__dot tm-photo-scroll__dot--active\"\u003e\u003c\/span\u003e \u003cspan class=\"tm-photo-scroll__dot\"\u003e\u003c\/span\u003e \u003cspan class=\"tm-photo-scroll__dot\"\u003e\u003c\/span\u003e \u003cspan class=\"tm-photo-scroll__dot\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n  .tm-photo-scroll {\n    margin: 24px 0;\n    padding: 20px 18px 24px;\n    border-radius: 18px;\n    background: #f8fafc;\n    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);\n    font-family: inherit;\n  }\n\n  .tm-photo-scroll__viewport {\n    position: relative;\n    display: flex;\n    align-items: center;\n    margin-top: 0;\n  }\n\n  .tm-photo-scroll__track {\n    display: flex;\n    gap: 12px;\n    overflow-x: auto;\n    scroll-snap-type: x mandatory;\n    scroll-behavior: smooth;\n    padding: 4px 4px 8px;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  .tm-photo-scroll__track::-webkit-scrollbar {\n    height: 6px;\n  }\n\n  .tm-photo-scroll__track::-webkit-scrollbar-thumb {\n    background: #FFE033;\n    border-radius: 999px;\n  }\n\n  .tm-photo-scroll__item {\n    flex: 0 0 60%;\n    max-width: 60%;\n    scroll-snap-align: center;\n  }\n\n  @media (min-width: 900px) {\n    .tm-photo-scroll__item {\n      flex: 0 0 35%;\n      max-width: 35%;\n    }\n  }\n\n  .tm-photo-scroll__item img {\n    display: block;\n    width: 100%;\n    height: auto;\n    border-radius: 14px;\n    object-fit: cover;\n    background: #e5e7eb;\n  }\n\n  .tm-photo-scroll__arrow {\n    flex: 0 0 auto;\n    border: none;\n    background: #FFE033;\n    color: #000;\n    border-radius: 999px;\n    width: 34px;\n    height: 34px;\n    font-size: 18px;\n    cursor: pointer;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    transition: transform 0.1s ease, box-shadow 0.15s ease;\n    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.18);\n  }\n\n  .tm-photo-scroll__arrow:hover {\n    background: #ffea66;\n    transform: translateY(-1px);\n  }\n\n  .tm-photo-scroll__arrow:active {\n    transform: translateY(0);\n    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);\n  }\n\n  .tm-photo-scroll__arrow--left {\n    margin-right: 8px;\n  }\n\n  .tm-photo-scroll__arrow--right {\n    margin-left: 8px;\n  }\n\n  .tm-photo-scroll__dots {\n    display: flex;\n    justify-content: center;\n    gap: 6px;\n    margin-top: 12px;\n  }\n\n  .tm-photo-scroll__dot {\n    width: 7px;\n    height: 7px;\n    border-radius: 999px;\n    background: #fff3a5;\n    transition: width 0.15s ease, background 0.15s ease;\n  }\n\n  .tm-photo-scroll__dot--active {\n    width: 18px;\n    background: #FFE033;\n  }\n\u003c\/style\u003e\n\u003cdiv style=\"background: #f9f9f9; border-radius: 12px; padding: 20px; margin-top: 30px; box-shadow: 0 2px 8px rgba(0,0,0,0.05);\"\u003e\n\u003cscript\u003e\n  (function() {\n    var containers = document.querySelectorAll('.tm-photo-scroll');\n    if (!containers.length) return;\n\n    containers.forEach(function(container) {\n      var track = container.querySelector('.tm-photo-scroll__track');\n      var items = Array.prototype.slice.call(container.querySelectorAll('.tm-photo-scroll__item'));\n      if (!items.length) return;\n\n      var left = container.querySelector('.tm-photo-scroll__arrow--left');\n      var right = container.querySelector('.tm-photo-scroll__arrow--right');\n      var dots = Array.prototype.slice.call(container.querySelectorAll('.tm-photo-scroll__dot'));\n\n      function getCurrentIndex() {\n        var scrollLeft = track.scrollLeft;\n        var itemWidth = items[0].offsetWidth + 12;\n        return Math.round(scrollLeft \/ itemWidth);\n      }\n\n      function goToIndex(index) {\n        if (index \u003c 0) index = 0;\n        if (index \u003e items.length - 1) index = items.length - 1;\n        var itemWidth = items[0].offsetWidth + 12;\n        track.scrollTo({ left: index * itemWidth, behavior: 'smooth' });\n        updateDots(index);\n      }\n\n      function updateDots(activeIndex) {\n        dots.forEach(function(dot, i) {\n          dot.classList.toggle('tm-photo-scroll__dot--active', i === activeIndex);\n        });\n      }\n\n      if (left) {\n        left.addEventListener('click', function() {\n          goToIndex(getCurrentIndex() - 1);\n        });\n      }\n\n      if (right) {\n        right.addEventListener('click', function() {\n          goToIndex(getCurrentIndex() + 1);\n        });\n      }\n\n      track.addEventListener('scroll', function() {\n        if (track._tmScrolling) return;\n        track._tmScrolling = true;\n        window.requestAnimationFrame(function() {\n          track._tmScrolling = false;\n          updateDots(getCurrentIndex());\n        });\n      });\n\n      updateDots(0);\n    });\n  })();\n\u003c\/script\u003e \u003c!-- FAQ Section --\u003e\n\u003csection style=\"padding: 20px; background-color: #f9f9f9; border-radius: 10px; margin-top: 40px; margin-bottom: 40px;\"\u003e\n\u003ch2 style=\"font-size: 1.5em; margin-bottom: 20px; text-align: center; color: #333;\"\u003e❓ Frequently Asked Questions\u003c\/h2\u003e\n\u003cdetails style=\"background-color: #fff; padding: 15px; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.05); margin-bottom: 10px;\"\u003e\n\u003csummary style=\"font-weight: bold; cursor: pointer;\"\u003eIs it free to use TradeMatch?\u003c\/summary\u003e\n\u003cp style=\"margin-top: 10px;\"\u003eYes, signing up and browsing tradesmen is completely free!\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails style=\"background-color: #fff; padding: 15px; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.05); margin-bottom: 10px;\"\u003e\n\u003csummary style=\"font-weight: bold; cursor: pointer;\"\u003eHow do I know if the tradesmen are reliable?\u003c\/summary\u003e\n\u003cp style=\"margin-top: 10px;\"\u003eTradesmen are rated by previous customers. You can read reviews, see ratings, and view their work portfolio before making a decision.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails style=\"background-color: #fff; padding: 15px; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.05); margin-bottom: 10px;\"\u003e\n\u003csummary style=\"font-weight: bold; cursor: pointer;\"\u003eCan I choose which tradesman I want to hire?\u003c\/summary\u003e\n\u003cp style=\"margin-top: 10px;\"\u003eYes! You can select the tradesman that best fits your needs based on experience, reviews, and services offered.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails style=\"background-color: #fff; padding: 15px; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.05); margin-bottom: 10px;\"\u003e\n\u003csummary style=\"font-weight: bold; cursor: pointer;\"\u003eHow do I book a job?\u003c\/summary\u003e\n\u003cp style=\"margin-top: 10px;\"\u003eBrowse available tradesmen, select the service and package you need, fill out the details, and you'll be put in direct contact to schedule a time.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails style=\"background-color: #fff; padding: 15px; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.05); margin-bottom: 10px;\"\u003e\n\u003csummary style=\"font-weight: bold; cursor: pointer;\"\u003eWhat if the job turns out to be more complicated than expected?\u003c\/summary\u003e\n\u003cp style=\"margin-top: 10px;\"\u003eIf the project scope changes, the tradesman will provide an updated quote. You’ll always be kept informed with no surprises.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails style=\"background-color: #fff; padding: 15px; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.05); margin-bottom: 10px;\"\u003e\n\u003csummary style=\"font-weight: bold; cursor: pointer;\"\u003eHow do I pay for the service?\u003c\/summary\u003e\n\u003cp style=\"margin-top: 10px;\"\u003ePayment is made directly to the tradesman after the job is completed. Methods may include bank transfer, credit card, or other preferred options.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails style=\"background-color: #fff; padding: 15px; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.05); margin-bottom: 10px;\"\u003e\n\u003csummary style=\"font-weight: bold; cursor: pointer;\"\u003eAre there any hidden fees?\u003c\/summary\u003e\n\u003cp style=\"margin-top: 10px;\"\u003eNo. We don’t charge homeowners any fees beyond the cost of the job itself.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails open=\"\" style=\"background-color: #fff; padding: 15px; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.05); margin-bottom: 10px;\"\u003e\n\u003csummary style=\"font-weight: bold; cursor: pointer;\"\u003eWhat if I’m not happy with the work?\u003c\/summary\u003e\n\u003cp style=\"margin-top: 10px;\"\u003eDiscuss concerns directly with the tradesman. If needed, our support team can help facilitate a resolution.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003c\/section\u003e\n\u003c\/div\u003e","brand":"Straight Edge Painting","offers":[{"title":"Default Title","offer_id":52177789190458,"sku":null,"price":0.0,"currency_code":"CAD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0698\/4695\/8394\/files\/straight-edge-painting.png?v=1770950559"}],"url":"https:\/\/canadiantradematch.ca\/collections\/painting-services-straight-edge-painting-1.oembed","provider":"TradeMatch","version":"1.0","type":"link"}