{"product_id":"alderrock-masonry-masonry-repairs-profile","title":"Alderrock Masonry: Masonry Repairs (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 class=\"tm-photo-scroll__arrow tm-photo-scroll__arrow--left\" type=\"button\" aria-label=\"Previous photos\"\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 alt=\"Project photo 1\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0698\/4695\/8394\/files\/alderrock4_a2126e47-2c46-42eb-8a7f-ffd1d48b9d28.jpg?v=1764757089\"\u003e\u003c\/div\u003e\n\u003c!-- Slide 2 --\u003e\n\u003cdiv class=\"tm-photo-scroll__item\"\u003e\u003cimg alt=\"Project photo 2\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0698\/4695\/8394\/files\/alderrock1.jpg?v=1764757106\"\u003e\u003c\/div\u003e\n\u003c!-- Slide 3 --\u003e\n\u003cdiv class=\"tm-photo-scroll__item\"\u003e\u003cimg alt=\"Project photo 3\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0698\/4695\/8394\/files\/alderrock2_c206f32e-aaea-4148-a0ee-1ea92bcbc7b4.jpg?v=1764757118\"\u003e\u003c\/div\u003e\n\u003c!-- Slide 4 --\u003e\n\u003cdiv class=\"tm-photo-scroll__item\"\u003e\u003cimg alt=\"Project photo 4\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0698\/4695\/8394\/files\/alderrock3_aee162d9-973d-4b1f-b5f0-0b5d158ed81f.jpg?v=1764757130\"\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 class=\"tm-photo-scroll__arrow tm-photo-scroll__arrow--right\" type=\"button\" aria-label=\"Next photos\"\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 class=\"tm-photo-scroll__dots\" aria-hidden=\"true\"\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!-- What Homeowners Say Section --\u003e\n\u003csection style=\"padding: 20px; background-color: #ffffff; border-radius: 10px; margin-top: 30px; margin-bottom: 30px;\"\u003e\n\u003ch2 style=\"font-size: 1.5em; margin-bottom: 20px; text-align: center; color: #333;\"\u003e🗣️ What Homeowners Are Saying\u003c\/h2\u003e\n\u003cdiv style=\"display: flex; flex-direction: column; gap: 15px;\"\u003e\n\u003cdiv style=\"background-color: #fff; padding: 15px; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.05);\"\u003e\n\u003cp style=\"font-style: italic; margin-bottom: 10px;\"\u003e“We highly recommend this company for your brick\/stone work.”\u003c\/p\u003e\n\u003cp style=\"font-weight: bold; text-align: right; margin: 0;\"\u003e— Liviu C.,\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"background-color: #fff; padding: 15px; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.05);\"\u003e\n\u003cp style=\"font-style: italic; margin-bottom: 10px;\"\u003e“Couldn't be happier with the service!”\u003c\/p\u003e\n\u003cp style=\"font-weight: bold; text-align: right; margin: 0;\"\u003e— Matt D.,\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"background-color: #fff; padding: 15px; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.05);\"\u003e\n\u003cp style=\"font-style: italic; margin-bottom: 10px;\"\u003e“Fast response, scheduling, fair price and completion.”\u003c\/p\u003e\n\u003cp style=\"font-weight: bold; text-align: right; margin: 0;\"\u003e— Karen H.,\u003cmeta charset=\"utf-8\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\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 style=\"background-color: #fff; padding: 15px; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.05); margin-bottom: 10px;\" open=\"\"\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":"Alderrock Masonry Ltd.","offers":[{"title":"Default Title","offer_id":52196897554746,"sku":null,"price":0.0,"currency_code":"CAD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0698\/4695\/8394\/files\/brick-and-stone-masonry-repair-home-exterior.png?v=1770831247","url":"https:\/\/canadiantradematch.ca\/products\/alderrock-masonry-masonry-repairs-profile","provider":"TradeMatch","version":"1.0","type":"link"}