Lead #1956

Company
Pearl Accountants - London Office
Website
https://pearlaccountants.com
Best Contact
Email
()

Override

Captured Pages

View text

                    
View text

                    
View text

                    
Emails:
View text

                    
View text
window.addEventListener('DOMContentLoaded', function() { jQuery(document).ready(function() { // For Making The Header Fixed + Custom Styling + Padding-top jQuery(window).scroll(function() { var scroll = jQuery(window).scrollTop(); if (scroll >= 55) { jQuery("header.et-l--header").addClass("dd-cfixed-header"); jQuery(".dd-fixed-header").addClass("dd-fixed-header-styling"); } else { jQuery("header.et-l--header").removeClass("dd-cfixed-header"); jQuery(".dd-fixed-header").removeClass("dd-fixed-header-styling"); } }); // For Mobile Menu jQuery("#dd-hamburger").click(function() { jQuery("#dd-section").toggleClass("dd-m-menu"); }); jQuery("#dd-close").click(function() { jQuery("#dd-section").toggleClass("dd-m-menu"); }); // For Search Icon jQuery(".dd-search .et_pb_searchsubmit").attr("value", ""); jQuery(".dd-search > form > div").append('<span class="dd-search-icon"></span>'); // For Mobile Menu Subitems if (jQuery("#dd-menu-mobile ul").hasClass("sub-menu")) { jQuery("#dd-menu-mobile").addClass("dd-submenu"); } }); (function($) { function setup_collapsible_submenus() { // mobile menu $('#dd-menu-mobile .mobile_nav .menu-item-has-children > a').after('<span class="menu-closed"></span>'); $('#dd-menu-mobile .mobile_nav .menu-item-has-children > a').each(function() { $(this).next().next('.sub-menu').toggleClass('hide', 1000); }); $('#dd-menu-mobile .mobile_nav .menu-item-has-children > a + span').on('click', function(event) { event.preventDefault(); $(this).toggleClass('menu-open'); $(this).next('.sub-menu').toggleClass('hide', 1000); }); } $(window).load(function() { setTimeout(function() { setup_collapsible_submenus(); }, 700); }); })(jQuery); }); document.addEventListener('DOMContentLoaded', function () { // Function to check the screen width and execute code if within range function isWithinWidthRange() { const width = window.innerWidth; return width <= 5000 && width >= 1100; } // Function to adjust column heights dynamically function adjustColumnHeights() { if (!isWithinWidthRange()) return; // Select all the elements const menuItems = [ document.querySelector('#mega-menu-1103276-1-0'), // First column (largest) document.querySelector('#mega-menu-1103276-1-1'), document.querySelector('#mega-menu-1103276-1-2') ]; // Reset heights to auto before recalculating menuItems.forEach(item => { item.style.height = 'auto'; }); // Get the height of the first column (largest) const largestHeight = menuItems[0]?.offsetHeight || 0; // Apply the largest height to all elements menuItems.forEach(item => { if (item) item.style.height = largestHeight + 'px'; }); } // Adjust column heights on page load adjustColumnHeights(); // Adjust column heights on window resize window.addEventListener('resize', adjustColumnHeights); }); document.addEventListener('DOMContentLoaded', function () { const ulElement = document.querySelector('#rpwwt-recent-posts-widget-with-thumbnails-3 ul'); // Add a click event listener to the `ul` function handleUlClick(event) { if (!isWithinWidthRange()) return; // Check if the click is on an empty space (simulate clicking the :after) if (event.target === ulElement) { // Redirect to /blog window.location.href = '/blog'; } } ulElement?.addEventListener('click', handleUlClick); }); // Function to enhance images and style titles function enhanceImagesAndTitles(selector) { if (!isWithinWidthRange()) return; const widgets = document.querySelectorAll(selector); widgets.forEach(widget => { // Select all images and titles within the widget const images = widget.querySelectorAll('ul li img'); const titles = widget.querySelectorAll('ul li .rpwwt-post-title'); // Make titles bold titles.forEach(title => { title.style.fontWeight = 'bold'; title.style.color = '#224c26'; }); // For images, set height to 100px and let the browser determine width images.forEach(img => { img.style.height = '100px'; // Fixed height img.style.width = ''; // Remove any width constraints img.style.objectFit = ''; // Reset object-fit if applied }); }); } // Apply enhancements to the widgets document.addEventListener('DOMContentLoaded', () => { enhanceImagesAndTitles('#rpwwt-recent-posts-widget-with-thumbnails-2'); enhanceImagesAndTitles('#rpwwt-recent-posts-widget-with-thumbnails-3'); // Reapply enhancements on window resize window.addEventListener('resize', () => { enhanceImagesAndTitles('#rpwwt-recent-posts-widget-with-thumbnails-2'); enhanceImagesAndTitles('#rpwwt-recent-posts-widget-with-thumbnails-3'); }); }); // Utility function to check width range function isWithinWidthRange() { const width = window.innerWidth; return width <= 5000 && width >= 1100; } document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-221280-1-0"), document.querySelector("#mega-menu-221280-1-1"), document.querySelector("#mega-menu-221280-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width > 1100; // Apply equal heights only when width is above 1100px } function equalizeHeights() { if (!isWithinWidthRange() || columns.some(col => !col)) { // Reset column heights when outside the range columns.forEach(col => { if (col) col.style.height = "auto"; }); return; } // Reset column heights to natural values before calculating columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns, capped at 330px const maxHeight = Math.min(330, Math.max(...columns.map(col => col.scrollHeight))); // Set the height for all columns based on the capped max height columns.forEach(col => (col.style.height = `${maxHeight}px`)); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); }); document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-1104355-1-0"), document.querySelector("#mega-menu-1104355-1-1"), document.querySelector("#mega-menu-1104355-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width > 1100; // Only apply equal heights when width is above 1100px } function equalizeHeights() { if (!isWithinWidthRange()) { // Reset column heights to auto when width is below 1100px columns.forEach(col => { if (col) col.style.height = "auto"; }); return; } // Reset column heights to natural values before recalculating columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns const maxHeight = Math.max(...columns.map(col => col?.scrollHeight || 0)); // Set the height for all columns based on the max height columns.forEach(col => { if (col) col.style.height = `${maxHeight}px`; }); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); }); document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-1104354-1-0"), document.querySelector("#mega-menu-1104354-1-1"), document.querySelector("#mega-menu-1104354-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width > 1100; // Only apply equal heights when width is above 1100px } function equalizeHeights() { if (!isWithinWidthRange()) { // Reset column heights to auto when width is below 1100px columns.forEach(col => { if (col) col.style.height = "auto"; }); return; } // Reset column heights to natural values before recalculating columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns const maxHeight = Math.max(...columns.map(col => col?.scrollHeight || 0)); // Set the height for all columns based on the max height columns.forEach(col => { if (col) col.style.height = `${maxHeight}px`; }); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); }); document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-15-1-0"), document.querySelector("#mega-menu-15-1-1"), document.querySelector("#mega-menu-15-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width > 1100; // Only apply equal heights when width is above 1100px } function equalizeHeights() { if (!isWithinWidthRange()) { // Reset column heights to auto when width is below 1100px columns.forEach(col => { if (col) col.style.height = "auto"; }); return; } // Reset column heights to natural values before recalculating columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns const maxHeight = Math.max(...columns.map(col => col?.scrollHeight || 0)); // Set the height for all columns based on the max height columns.forEach(col => { if (col) col.style.height = `${maxHeight}px`; }); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); }); document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-1103276-1-0"), document.querySelector("#mega-menu-1103276-1-1"), document.querySelector("#mega-menu-1103276-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width <= 5000 && width >= 1100; } function equalizeHeights() { if (!isWithinWidthRange() || columns.some(col => !col)) return; // Reset column heights to natural values columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns const maxHeight = Math.max(...columns.map(col => col.scrollHeight)); // Set the height for all columns based on the max height columns.forEach(col => (col.style.height = `${maxHeight}px`)); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); }); document.addEventListener("DOMContentLoaded", function () { const menuItems = document.querySelectorAll( "#mega-menu-wrap-primary-menu #mega-menu-primary-menu > li.mega-menu-item" ); const svgURL = "https://www.pearlaccountants.com/wp-content/uploads/2025/01/menu-cirle-3.svg"; menuItems.forEach(item => { const link = item.querySelector("a.mega-menu-link"); // Create the SVG element const svgIcon = document.createElement("img"); svgIcon.src = svgURL; svgIcon.alt = "Menu Icon"; svgIcon.style.width = "10px"; svgIcon.style.height = "10px"; svgIcon.style.marginRight = "8px"; svgIcon.style.verticalAlign = "middle"; svgIcon.classList.add("hover-svg-icon"); // Add a class for easy targeting // Add hover event listeners item.addEventListener("mouseenter", function () { if (link && !link.querySelector(".hover-svg-icon")) { link.prepend(svgIcon); // Add the icon on hover } }); item.addEventListener("mouseleave", function () { const existingIcon = link.querySelector(".hover-svg-icon"); if (existingIcon) { existingIcon.remove(); // Remove the icon when hover ends } }); }); }); document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-221281-1-0"), document.querySelector("#mega-menu-221281-1-1"), document.querySelector("#mega-menu-221281-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width > 1100; // Only apply equal heights when width is above 1100px } function equalizeHeights() { if (!isWithinWidthRange()) { // Reset column heights to auto when width is below 1100px columns.forEach(col => { if (col) col.style.height = "auto"; }); return; } // Reset column heights to natural values before recalculating columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns const maxHeight = Math.max(...columns.map(col => col?.scrollHeight || 0)); // Set the height for all columns based on the max height columns.forEach(col => { if (col) col.style.height = `${maxHeight}px`; }); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); });  020 8582 0076 INSTANT QUOTATION Services hidden Who we help Small Businesses Landlords E-commerce Sole Traders Freelancers Accountants For Startups About Contact Us How It Works Referral Resources Switching To Multilingual Accountants Recruitment Prices Services Accounting Services Company Statutory Accounts VAT Payroll Pensions & Auto-Enrolment Consolidated Accounts – Group Accounts CIS Tax Return Self-Assessment Tax Return Company Secretarial Services Company Formation Registered office Address Company Secretarial Share Transfer Tax Self-Assessment Tax Return Corporation Tax Capital Gains Tax Tax Investigation Tax Advisory Partnership Tax Return CIS Tax Return Finance Functions Credit Control Bookkeeping Business Plan services Cash flow Management Financial Forecasting Supplier Payments Payroll Managements & Payments Virtual FD Internal Audit & Assurance Legal Legal Business Helpline Founders Agreement Non-disclosure agreement Intellectual property Software Xero Quickbooks FreeAgent Pandadoc Sage Business insurance Kingsbridge Contractor Insurance Sole Trader & SME Insurance Who we help Small Businesses Landlords E-commerce Sole Traders Freelancers Accountants For Startups About Contact Us How It Works Referral Resources Switching To Multilingual Accountants Recruitment Price Compliance Services Finance Functions & Advisory Partners Accounting Services Stay compliant, stay confident, we handle the complexity. Company Statutory Accounts VAT Payroll Pensions & Auto-Enrolment Consolidated Accounts - Group Accounts Company Secretarial Services Company Formation Registered office Address Company Secretarial Share Transfer Tax Self-Assessment Tax Return Corporation Tax Capital Gains Tax Tax Investigation Tax Advisory Partnership Tax Return CIS Tax Return Looking for a Dedicated Accountant? Our Enterprise packages offer tailored support for you and your business. LEARN MORE Finance Functions Smart financial solutions to fuel your business growth. Credit Control Bookkeeping Business Plan services Cash flow Management Financial Forecasting Supplier Payments Payroll Managements & Payments Virtual FD Internal Audit & Assurance Legal Legal Business Helpline Founders Agreement Non-disclosure agreement Intellectual property Looking for a Dedicated Accountant? Our Enterprise packages offer tailored support for you and your business. LEARN MORE Partners Stronger together: Partnering for mutual success. Software Xero Quickbooks FreeAgent Pandle Pandadoc Sage Business insurance Kingsbridge Contractor Insurance Sole Trader & SME Insurance Looking for a Dedicated Accountant? Our Enterprise packages offer tailored support for you and your business. LEARN MORE EXPERIENCED ACCOUNTANTS WITH A CLASSIC WORK ETHIC UK Chartered Accountants helping businesses and individuals succeed with flexible, quality, and personal service. A LITTLE BIT ABOUT WHO WE ARE What you should know about us We are one of the UK’s leading chartered accounting firms. We have helped countless freelancers, contractors, e-commerce organisations and small-to-medium businesses with various sectors of accounting, tax, and company development plans. We’re regulated by one of the UK’s premier accounting bodies, the ICAEW. Some of the staff, including partners, are ex-Big four qualified. It allows foresight and planning for “what if” scenarios. We’re accredited with QuickBooks, Xero, and Sage, among others. Our team is multilingual. We speak Urdu, Arabic, Punjabi and more. HOW WE OPERATE CUSTOMER SERVICE FIXED RATES MODERN ACCOUNTING EASY SWITCH-OVER CUSTOMER SERVICE If you are looking for outstanding customer service, you have come to the right place! We make sure that your financial operations go as smoothly as possible. Once you become one of our clients, you will be assigned a personal client manager who is there to answer your phone calls or drop you a courtesy call once a month to ensure you are doing well. FIXED RATES Our billing is transparent, and we have a broad range of options to satisfy the needs of any business. Businesses frequently put off getting counsel because they are concerned about the expense till the end of the year. Sadly, this advice is often given after the fact, and it may be too late to use the information. Our pricing package includes all email and phone assistance since we encourage our customers to contact us whenever they have questions. MODERN ACCOUNTING We work with software vendors to streamline your corporate procedures. Our skilled accountants can integrate online sales, manage HR, payroll, invoice suppliers, monitor cash flow and much more. If you’d rather not spend your day in the office learning how to use a new accounting software package, don’t worry! We’ll get you up to speed quickly so you can focus on growing your business. EASY SWITCH-OVER Would you like to switch to a new accounting firm? Ease the transition with our service. We’ll work with you to set up accounts, review and implement your financial statements, and handle all the details. We’ll even handle coordination with your current accountant. WHY WE’RE UNIQUE GROW YOUR BUSINESS We’re here to help you get where you want to go. We know that every business is different, whether you’re a new business owner or have been in business for a long time. We work with you to make plans that meet your needs, goals, and deadlines while giving you objectivity and direction. INTEGRATE ALL YOUR SOFTWARE We are proud to offer our business clients the best and most innovative solutions to their problems. We can help you connect a whole set of tools simultaneously using various software solutions, from productivity to stock management. If you have any questions about what’s available or need help, our specialists are ready to help you with any setup questions or guidance you may need. INDUSTRY SPECIFIC ACCOUNTANTS Our chartered accountants are regulated by ICAEW and help your business from the start. They will have worked in your industry and know your preferred accounting software. Their job will not just be to look at the numbers but also to help you grow your business. WE DON’T’ GET YOU TO DO THE BOOKKEEPING Pearl does the bookkeeping for all its customers. Yes, we’ll solve this problem for you. With a hassle-free service, you don’t have to worry about entering all your receipts and bills into software or an Excel spreadsheet. It is the key to keeping your business, big or small, running smoothly. WE DON’T’ GET YOU TO DO THE BOOKKEEPING If you’re looking for a one-stop shop, you don’t need to look any further. We offer everything your business needs to succeed, from bookkeeping to legal advice. Along with our marketing hub services, we can also help if you need a part-time Finance Director. This is for people who want to grow and improve their business in a larger way. Our offices Accountants LONDON L Accountants EAST LONDON L Accountants BRENTFORD L Accountants KINGSTON L Accountants HARROW L Accountants STAINES L WE’RE HERE TO HELP! We are always happy to hear from you! Our team of experts is ready to answer all your questions about how you can benefit from our products and services. Contact us today! OUR PRICES Get In touch FREQUENTLY ASKED QUESTIONS Are you an accounting firm that is certified and regulated? Yes, we are registered with the ICAEW, one of the UK’s most prestigious accounting institutes and regulated by several bodies to provide accounting and tax services. Can I arrange a meeting, or can everything be done online? You are welcome to visit any of our London offices, or we may arrange a meeting over Zoom if that is more convenient. How long have you been operating? Our founder, Shoaib Aslam, started the company in his room in 2008 and has expanded to include more than 50 workers. Which software do you use? We have a deep understanding of technology and use a wide range of software in serving our customers and running our business. Check out the software page for more information on the software we provide. window.addEventListener('DOMContentLoaded', function() { jQuery(function($){ $('.et_pb_toggle_title').click(function(){ var $toggle = $(this).closest('.et_pb_toggle'); if (!$toggle.hasClass('et_pb_accordion_toggling')) { var $accordion = $toggle.closest('.et_pb_accordion'); if ($toggle.hasClass('et_pb_toggle_open')) { $accordion.addClass('et_pb_accordion_toggling'); $toggle.find('.et_pb_toggle_content').slideToggle(700, function() { $toggle.removeClass('et_pb_toggle_open').addClass('et_pb_toggle_close'); }); } setTimeout(function(){ $accordion.removeClass('et_pb_accordion_toggling'); }, 750); } }); }); }); window.addEventListener('DOMContentLoaded', function() {jQuery(document).ready(function(){ // Add the et_pb_toggle_close class to all accordion items initially jQuery(".pa-accordion .et_pb_toggle").addClass("et_pb_toggle_close"); // Function to handle accordion toggle jQuery(".pa-accordion .et_pb_toggle").on("click", function(){ var $toggle = jQuery(this); var $content = $toggle.find('.et_pb_toggle_content'); // Check if the clicked accordion is already open if ($toggle.hasClass("et_pb_toggle_open")) { // If already open, close it $toggle.removeClass("et_pb_toggle_open").addClass("et_pb_toggle_close"); $content.slideUp(); } else { // If closed, open it and close other accordions // Close all other open accordions jQuery(".pa-accordion .et_pb_toggle.et_pb_toggle_open").each(function(){ var $openToggle = jQuery(this); var $openContent = $openToggle.find('.et_pb_toggle_content'); $openToggle.removeClass("et_pb_toggle_open").addClass("et_pb_toggle_close"); $openContent.slideUp(); }); // Open the clicked accordion $toggle.removeClass("et_pb_toggle_close").addClass("et_pb_toggle_open"); $content.slideDown(); } }); }); }); We’re here to help! Need a trusted partner to handle your accounting and tax matters? We’re here to help. Pearl Accountants offers reliable, expert support from your first enquiry to final delivery, all under one roof. We keep things simple, affordable, and fully transparent, so you can stay focused on what matters most: running your business. Get In touch Links Build with Love FollowFollowFollowFollowFollow Main Services Resources About Contact Us Legals Terms & Conditions Privacy Policy Cookies Referral Locations Brentford/Hounslow East London Kingston Harrow Staines London We Guarantee to never miss adeadline or your money back © 2025 Pearl Accountants. All Rights Reserved Registration No.07078392 {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/Divi\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} var et_link_options_data = [{"class":"et_pb_blurb_0_tb_header","url":"tel:+442085770200","target":"_self"},{"class":"et_pb_text_17","url":"\/accountants-in-london\/","target":"_self"},{"class":"et_pb_column_21","url":"\/accountants-in-east-london\/","target":"_self"},{"class":"et_pb_text_18","url":"\/accountants-in-east-london\/","target":"_self"},{"class":"et_pb_text_19","url":"\/accountants-in-brentford\/","target":"_self"},{"class":"et_pb_text_20","url":"\/accountants-in-kingston\/","target":"_self"},{"class":"et_pb_text_21","url":"\/accountants-in-harrow\/","target":"_self"},{"class":"et_pb_text_22","url":"\/accountants-in-staines\/","target":"_self"}]; window.addEventListener('DOMContentLoaded', function() { jQuery(window).on('load', function() { let hideTimer; jQuery('.open-menu').on('mouseenter', function() { clearTimeout(hideTimer); jQuery('.my-menu').addClass('force-show'); }); jQuery('.open-menu, .my-menu').on('mouseleave', function() { hideTimer = setTimeout(function() { jQuery('.my-menu').removeClass('force-show'); }, 300); }); jQuery('.my-menu').on('mouseenter', function() { clearTimeout(hideTimer); }); }); }); window.addEventListener('DOMContentLoaded', function() { jQuery(function($) { $(document).ready(function() { // 1) Replace href="#" to safe placeholder to avoid selector errors $('ul.et_mobile_menu a[href="#"]').attr('href', '#!'); // 2) Add mobile-toggle if not present $('ul.et_mobile_menu li.menu-item-has-children, ul.et_mobile_menu li.page_item_has_children').each(function() { var $li = $(this); if ($li.find('> .mobile-toggle').length === 0) { // keep it as a span (no href) $li.children('a').first().after('<span class="mobile-toggle" role="button" aria-label="Toggle submenu" tabindex="0"></span>'); } }); var $menu = $('ul.et_mobile_menu'); // Helper: close all open siblings function closeSiblings($li) { $li.siblings('.dt-open').removeClass('dt-open') .find('> ul.sub-menu, > ul.children').stop(true,true).slideUp(180) .removeClass('visible') .end().find('> .mobile-toggle').attr('aria-expanded','false'); } // 3) Click on the toggle icon — strong prevention of other handlers $(document).on('click', 'ul.et_mobile_menu .mobile-toggle', function(e) { e.preventDefault(); e.stopImmediatePropagation(); e.stopPropagation(); var $btn = $(this); var $li = $btn.closest('li'); // Accordion: close siblings closeSiblings($li); if ($li.hasClass('dt-open')) { $li.removeClass('dt-open'); $li.find('> ul.sub-menu, > ul.children').first().stop(true,true).slideUp(180).removeClass('visible'); $btn.attr('aria-expanded','false'); } else { $li.addClass('dt-open'); $li.find('> ul.sub-menu, > ul.children').first().stop(true,true).slideDown(180).addClass('visible'); $btn.attr('aria-expanded','true'); } }); // 4) Parent anchor click behaviour: // - If submenu closed: prevent navigation, open it (stopImmediatePropagation to prevent Divi handlers) // - If submenu already open: allow natural navigation $(document).on('click', 'ul.et_mobile_menu li.menu-item-has-children > a, ul.et_mobile_menu li.page_item_has_children > a', function(e) { var $a = $(this); var $li = $a.closest('li'); // If submenu is NOT open, first tap should open the submenu instead of navigating if (!$li.hasClass('dt-open')) { e.preventDefault(); e.stopImmediatePropagation(); e.stopPropagation(); // open via the same toggle logic (keeps behavior consistent) var $btn = $li.find('> .mobile-toggle'); if ($btn.length) { $btn.trigger('click'); } else { // fallback closeSiblings($li); $li.addClass('dt-open').find('> ul.sub-menu, > ul.children').first().stop(true,true).slideDown(180).addClass('visible'); } return false; } // else allow click to proceed (user clearly wants to navigate) }); // 5) Prevent submenu-link clicks from bubbling (keeps parent open while navigation occurs) $(document).on('click', 'ul.et_mobile_menu li.menu-item-has-children ul.sub-menu a, ul.et_mobile_menu li.page_item_has_children ul.children a', function(e) { e.stopPropagation(); // allow default navigation }); // 6) Close menus when clicking outside the mobile menu $(document).on('click touchstart', function(e) { if ($(e.target).closest('ul.et_mobile_menu').length === 0) { $menu.find('.dt-open').removeClass('dt-open') .find('> ul.sub-menu, > ul.children').stop(true,true).slideUp(160).removeClass('visible'); $menu.find('.mobile-toggle').attr('aria-expanded','false'); } }); // 7) Escape key closes menus $(document).on('keydown', function(e) { if (e.key === 'Escape' || e.key === 'Esc') { $menu.find('.dt-open').removeClass('dt-open') .find('> ul.sub-menu, > ul.children').stop(true,true).slideUp(160).removeClass('visible'); $menu.find('.mobile-toggle').attr('aria-expanded','false'); } }); }); }); }); /* <![CDATA[ */ var rocket_lazyload_css_data = {"threshold":"300"}; /* ]]> */ /* <![CDATA[ */ !function o(n,c,a){function u(t,e){if(!c[t]){if(!n[t]){var r="function"==typeof require&&require;if(!e&&r)return r(t,!0);if(s)return s(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}r=c[t]={exports:{}},n[t][0].call(r.exports,function(e){return u(n[t][1][e]||e)},r,r.exports,o,n,c,a)}return c[t].exports}for(var s="function"==typeof require&&require,e=0;e<a.length;e++)u(a[e]);return u}({1:[function(e,t,r){"use strict";{const c="undefined"==typeof rocket_pairs?[]:rocket_pairs,a=(("undefined"==typeof rocket_excluded_pairs?[]:rocket_excluded_pairs).map(t=>{var e=t.selector;document.querySelectorAll(e).forEach(e=>{e.setAttribute("data-rocket-lazy-bg-"+t.hash,"excluded")})}),document.querySelector("#wpr-lazyload-bg-container"));var o=rocket_lazyload_css_data.threshold||300;const u=new IntersectionObserver(e=>{e.forEach(t=>{t.isIntersecting&&c.filter(e=>t.target.matches(e.selector)).map(t=>{var e;t&&((e=document.createElement("style")).textContent=t.style,a.insertAdjacentElement("afterend",e),t.elements.forEach(e=>{u.unobserve(e),e.setAttribute("data-rocket-lazy-bg-"+t.hash,"loaded")}))})})},{rootMargin:o+"px"});function n(){0<(0<arguments.length&&void 0!==arguments[0]?arguments[0]:[]).length&&c.forEach(t=>{try{document.querySelectorAll(t.selector).forEach(e=>{"loaded"!==e.getAttribute("data-rocket-lazy-bg-"+t.hash)&&"excluded"!==e.getAttribute("data-rocket-lazy-bg-"+t.hash)&&(u.observe(e),(t.elements||=[]).push(e))})}catch(e){console.error(e)}})}n(),function(){const r=window.MutationObserver;return function(e,t){if(e&&1===e.nodeType)return(t=new r(t)).observe(e,{attributes:!0,childList:!0,subtree:!0}),t}}()(document.querySelector("body"),n)}},{}]},{},[1]); /* ]]> */ /* <![CDATA[ */ var DIVI = {"item_count":"%d Item","items_count":"%d Items"}; var et_builder_utils_params = {"condition":{"diviTheme":true,"extraTheme":false},"scrollLocations":["app","top"],"builderScrollLocations":{"desktop":"app","tablet":"app","phone":"app"},"onloadScrollLocation":"app","builderType":"fe"}; var et_frontend_scripts = {"builderCssContainerPrefix":"#et-boc","builderCssLayoutPrefix":"#et-boc .et-l"}; var et_pb_custom = {"ajaxurl":"https:\/\/www.pearlaccountants.com\/wp-admin\/admin-ajax.php","images_uri":"https:\/\/www.pearlaccountants.com\/wp-content\/themes\/Divi\/images","builder_images_uri":"https:\/\/www.pearlaccountants.com\/wp-content\/themes\/Divi\/includes\/builder\/images","et_frontend_nonce":"07ae5e9f08","subscription_failed":"Please, check the fields below to make sure you entered the correct information.","et_ab_log_nonce":"27f3f8aa52","fill_message":"Please, fill in the following fields:","contact_error_message":"Please, fix the following errors:","invalid":"Invalid email","captcha":"Captcha","prev":"Prev","previous":"Previous","next":"Next","wrong_captcha":"You entered the wrong number in captcha.","wrong_checkbox":"Checkbox","ignore_waypoints":"no","is_divi_theme_used":"1","widget_search_selector":".widget_search","ab_tests":[],"is_ab_testing_active":"","page_id":"3995","unique_test_id":"","ab_bounce_rate":"5","is_cache_plugin_active":"yes","is_shortcode_tracking":"","tinymce_uri":"https:\/\/www.pearlaccountants.com\/wp-content\/themes\/Divi\/includes\/builder\/frontend-builder\/assets\/vendors","accent_color":"#224c26","waypoints_options":[]}; var et_pb_box_shadow_elements = []; /* ]]> */ window.lazyLoadOptions=[{elements_selector:"img[data-lazy-src],.rocket-lazyload,iframe[data-lazy-src]",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}},{elements_selector:".rocket-lazyload",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,}];window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(var i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue} if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue} images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1} if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1)
View text
window.addEventListener('DOMContentLoaded', function() { jQuery(document).ready(function() { // For Making The Header Fixed + Custom Styling + Padding-top jQuery(window).scroll(function() { var scroll = jQuery(window).scrollTop(); if (scroll >= 55) { jQuery("header.et-l--header").addClass("dd-cfixed-header"); jQuery(".dd-fixed-header").addClass("dd-fixed-header-styling"); } else { jQuery("header.et-l--header").removeClass("dd-cfixed-header"); jQuery(".dd-fixed-header").removeClass("dd-fixed-header-styling"); } }); // For Mobile Menu jQuery("#dd-hamburger").click(function() { jQuery("#dd-section").toggleClass("dd-m-menu"); }); jQuery("#dd-close").click(function() { jQuery("#dd-section").toggleClass("dd-m-menu"); }); // For Search Icon jQuery(".dd-search .et_pb_searchsubmit").attr("value", ""); jQuery(".dd-search > form > div").append('<span class="dd-search-icon"></span>'); // For Mobile Menu Subitems if (jQuery("#dd-menu-mobile ul").hasClass("sub-menu")) { jQuery("#dd-menu-mobile").addClass("dd-submenu"); } }); (function($) { function setup_collapsible_submenus() { // mobile menu $('#dd-menu-mobile .mobile_nav .menu-item-has-children > a').after('<span class="menu-closed"></span>'); $('#dd-menu-mobile .mobile_nav .menu-item-has-children > a').each(function() { $(this).next().next('.sub-menu').toggleClass('hide', 1000); }); $('#dd-menu-mobile .mobile_nav .menu-item-has-children > a + span').on('click', function(event) { event.preventDefault(); $(this).toggleClass('menu-open'); $(this).next('.sub-menu').toggleClass('hide', 1000); }); } $(window).load(function() { setTimeout(function() { setup_collapsible_submenus(); }, 700); }); })(jQuery); }); document.addEventListener('DOMContentLoaded', function () { // Function to check the screen width and execute code if within range function isWithinWidthRange() { const width = window.innerWidth; return width <= 5000 && width >= 1100; } // Function to adjust column heights dynamically function adjustColumnHeights() { if (!isWithinWidthRange()) return; // Select all the elements const menuItems = [ document.querySelector('#mega-menu-1103276-1-0'), // First column (largest) document.querySelector('#mega-menu-1103276-1-1'), document.querySelector('#mega-menu-1103276-1-2') ]; // Reset heights to auto before recalculating menuItems.forEach(item => { item.style.height = 'auto'; }); // Get the height of the first column (largest) const largestHeight = menuItems[0]?.offsetHeight || 0; // Apply the largest height to all elements menuItems.forEach(item => { if (item) item.style.height = largestHeight + 'px'; }); } // Adjust column heights on page load adjustColumnHeights(); // Adjust column heights on window resize window.addEventListener('resize', adjustColumnHeights); }); document.addEventListener('DOMContentLoaded', function () { const ulElement = document.querySelector('#rpwwt-recent-posts-widget-with-thumbnails-3 ul'); // Add a click event listener to the `ul` function handleUlClick(event) { if (!isWithinWidthRange()) return; // Check if the click is on an empty space (simulate clicking the :after) if (event.target === ulElement) { // Redirect to /blog window.location.href = '/blog'; } } ulElement?.addEventListener('click', handleUlClick); }); // Function to enhance images and style titles function enhanceImagesAndTitles(selector) { if (!isWithinWidthRange()) return; const widgets = document.querySelectorAll(selector); widgets.forEach(widget => { // Select all images and titles within the widget const images = widget.querySelectorAll('ul li img'); const titles = widget.querySelectorAll('ul li .rpwwt-post-title'); // Make titles bold titles.forEach(title => { title.style.fontWeight = 'bold'; title.style.color = '#224c26'; }); // For images, set height to 100px and let the browser determine width images.forEach(img => { img.style.height = '100px'; // Fixed height img.style.width = ''; // Remove any width constraints img.style.objectFit = ''; // Reset object-fit if applied }); }); } // Apply enhancements to the widgets document.addEventListener('DOMContentLoaded', () => { enhanceImagesAndTitles('#rpwwt-recent-posts-widget-with-thumbnails-2'); enhanceImagesAndTitles('#rpwwt-recent-posts-widget-with-thumbnails-3'); // Reapply enhancements on window resize window.addEventListener('resize', () => { enhanceImagesAndTitles('#rpwwt-recent-posts-widget-with-thumbnails-2'); enhanceImagesAndTitles('#rpwwt-recent-posts-widget-with-thumbnails-3'); }); }); // Utility function to check width range function isWithinWidthRange() { const width = window.innerWidth; return width <= 5000 && width >= 1100; } document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-221280-1-0"), document.querySelector("#mega-menu-221280-1-1"), document.querySelector("#mega-menu-221280-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width > 1100; // Apply equal heights only when width is above 1100px } function equalizeHeights() { if (!isWithinWidthRange() || columns.some(col => !col)) { // Reset column heights when outside the range columns.forEach(col => { if (col) col.style.height = "auto"; }); return; } // Reset column heights to natural values before calculating columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns, capped at 330px const maxHeight = Math.min(330, Math.max(...columns.map(col => col.scrollHeight))); // Set the height for all columns based on the capped max height columns.forEach(col => (col.style.height = `${maxHeight}px`)); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); }); document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-1104355-1-0"), document.querySelector("#mega-menu-1104355-1-1"), document.querySelector("#mega-menu-1104355-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width > 1100; // Only apply equal heights when width is above 1100px } function equalizeHeights() { if (!isWithinWidthRange()) { // Reset column heights to auto when width is below 1100px columns.forEach(col => { if (col) col.style.height = "auto"; }); return; } // Reset column heights to natural values before recalculating columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns const maxHeight = Math.max(...columns.map(col => col?.scrollHeight || 0)); // Set the height for all columns based on the max height columns.forEach(col => { if (col) col.style.height = `${maxHeight}px`; }); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); }); document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-1104354-1-0"), document.querySelector("#mega-menu-1104354-1-1"), document.querySelector("#mega-menu-1104354-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width > 1100; // Only apply equal heights when width is above 1100px } function equalizeHeights() { if (!isWithinWidthRange()) { // Reset column heights to auto when width is below 1100px columns.forEach(col => { if (col) col.style.height = "auto"; }); return; } // Reset column heights to natural values before recalculating columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns const maxHeight = Math.max(...columns.map(col => col?.scrollHeight || 0)); // Set the height for all columns based on the max height columns.forEach(col => { if (col) col.style.height = `${maxHeight}px`; }); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); }); document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-15-1-0"), document.querySelector("#mega-menu-15-1-1"), document.querySelector("#mega-menu-15-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width > 1100; // Only apply equal heights when width is above 1100px } function equalizeHeights() { if (!isWithinWidthRange()) { // Reset column heights to auto when width is below 1100px columns.forEach(col => { if (col) col.style.height = "auto"; }); return; } // Reset column heights to natural values before recalculating columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns const maxHeight = Math.max(...columns.map(col => col?.scrollHeight || 0)); // Set the height for all columns based on the max height columns.forEach(col => { if (col) col.style.height = `${maxHeight}px`; }); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); }); document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-1103276-1-0"), document.querySelector("#mega-menu-1103276-1-1"), document.querySelector("#mega-menu-1103276-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width <= 5000 && width >= 1100; } function equalizeHeights() { if (!isWithinWidthRange() || columns.some(col => !col)) return; // Reset column heights to natural values columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns const maxHeight = Math.max(...columns.map(col => col.scrollHeight)); // Set the height for all columns based on the max height columns.forEach(col => (col.style.height = `${maxHeight}px`)); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); }); document.addEventListener("DOMContentLoaded", function () { const menuItems = document.querySelectorAll( "#mega-menu-wrap-primary-menu #mega-menu-primary-menu > li.mega-menu-item" ); const svgURL = "https://www.pearlaccountants.com/wp-content/uploads/2025/01/menu-cirle-3.svg"; menuItems.forEach(item => { const link = item.querySelector("a.mega-menu-link"); // Create the SVG element const svgIcon = document.createElement("img"); svgIcon.src = svgURL; svgIcon.alt = "Menu Icon"; svgIcon.style.width = "10px"; svgIcon.style.height = "10px"; svgIcon.style.marginRight = "8px"; svgIcon.style.verticalAlign = "middle"; svgIcon.classList.add("hover-svg-icon"); // Add a class for easy targeting // Add hover event listeners item.addEventListener("mouseenter", function () { if (link && !link.querySelector(".hover-svg-icon")) { link.prepend(svgIcon); // Add the icon on hover } }); item.addEventListener("mouseleave", function () { const existingIcon = link.querySelector(".hover-svg-icon"); if (existingIcon) { existingIcon.remove(); // Remove the icon when hover ends } }); }); }); document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-221281-1-0"), document.querySelector("#mega-menu-221281-1-1"), document.querySelector("#mega-menu-221281-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width > 1100; // Only apply equal heights when width is above 1100px } function equalizeHeights() { if (!isWithinWidthRange()) { // Reset column heights to auto when width is below 1100px columns.forEach(col => { if (col) col.style.height = "auto"; }); return; } // Reset column heights to natural values before recalculating columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns const maxHeight = Math.max(...columns.map(col => col?.scrollHeight || 0)); // Set the height for all columns based on the max height columns.forEach(col => { if (col) col.style.height = `${maxHeight}px`; }); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); });  020 8582 0076 INSTANT QUOTATION Services hidden Who we help Small Businesses Landlords E-commerce Sole Traders Freelancers Accountants For Startups About Contact Us How It Works Referral Resources Switching To Multilingual Accountants Recruitment Prices Services Accounting Services Company Statutory Accounts VAT Payroll Pensions & Auto-Enrolment Consolidated Accounts – Group Accounts CIS Tax Return Self-Assessment Tax Return Company Secretarial Services Company Formation Registered office Address Company Secretarial Share Transfer Tax Self-Assessment Tax Return Corporation Tax Capital Gains Tax Tax Investigation Tax Advisory Partnership Tax Return CIS Tax Return Finance Functions Credit Control Bookkeeping Business Plan services Cash flow Management Financial Forecasting Supplier Payments Payroll Managements & Payments Virtual FD Internal Audit & Assurance Legal Legal Business Helpline Founders Agreement Non-disclosure agreement Intellectual property Software Xero Quickbooks FreeAgent Pandadoc Sage Business insurance Kingsbridge Contractor Insurance Sole Trader & SME Insurance Who we help Small Businesses Landlords E-commerce Sole Traders Freelancers Accountants For Startups About Contact Us How It Works Referral Resources Switching To Multilingual Accountants Recruitment Price Compliance Services Finance Functions & Advisory Partners Accounting Services Stay compliant, stay confident, we handle the complexity. Company Statutory Accounts VAT Payroll Pensions & Auto-Enrolment Consolidated Accounts - Group Accounts Company Secretarial Services Company Formation Registered office Address Company Secretarial Share Transfer Tax Self-Assessment Tax Return Corporation Tax Capital Gains Tax Tax Investigation Tax Advisory Partnership Tax Return CIS Tax Return Looking for a Dedicated Accountant? Our Enterprise packages offer tailored support for you and your business. LEARN MORE Finance Functions Smart financial solutions to fuel your business growth. Credit Control Bookkeeping Business Plan services Cash flow Management Financial Forecasting Supplier Payments Payroll Managements & Payments Virtual FD Internal Audit & Assurance Legal Legal Business Helpline Founders Agreement Non-disclosure agreement Intellectual property Looking for a Dedicated Accountant? Our Enterprise packages offer tailored support for you and your business. LEARN MORE Partners Stronger together: Partnering for mutual success. Software Xero Quickbooks FreeAgent Pandle Pandadoc Sage Business insurance Kingsbridge Contractor Insurance Sole Trader & SME Insurance Looking for a Dedicated Accountant? Our Enterprise packages offer tailored support for you and your business. LEARN MORE Contact us Get in touch to tell us a bit more about your tax requirement, or if you would like to learn more about the range of accounting services we offer.  Schedule a meeting  Get in touch  Call or email Get in touch Leave your details and we’ll get in touch. Please enable JavaScript in your browser to complete this form.Please enable JavaScript in your browser to complete this form.Name *PhoneEmail *Business Type *Select Business TypeContractor (Ltd)Business (Ltd)Bookkeeping OnlyLandlordSole TraderOtherYour Message Name Your Email Subscribe to our newsletterYesNo ( function() { const style = document.createElement( 'style' ); style.appendChild( document.createTextNode( '#wpforms-1104488-field_3-container { position: absolute !important; overflow: hidden !important; display: inline !important; height: 1px !important; width: 1px !important; z-index: -1000 !important; padding: 0 !important; } #wpforms-1104488-field_3-container input { visibility: hidden; } #wpforms-conversational-form-page #wpforms-1104488-field_3-container label { counter-increment: none; }' ) ); document.head.appendChild( style ); document.currentScript?.remove(); } )(); GET IN TOUCH CONTACT OUR SUPPORT TEAM TO GROW YOUR BUSINESS SPEAK TO US NOW ON We’re Open for Business Monday-Friday 9am-5pm 020 8582 0076 EMAIL US AT To ask us a question or if you would like to find out more send us an email [email protected] Our offices Accountants LONDON L Accountants EAST LONDON L Accountants BRENTFORD L Accountants KINGSTON L Accountants HARROW L Accountants STAINES L Frequently asked questions Does the ICAEW accredit Pearl Accountants? Yes, we are certified by ICAEW, and as a result, we have the education and experience to work with clients ranging from small businesses to large corporations. How long will it take for me to hear back after I fill out this form? We try to get back the same working day or the next at the latest. What happens when I complete the contact us form? One of our certified professionals will call you. And talk about your needs. We will send you a custom quote based on our discussion for your approval. Once you’ve signed up, we’ll give you a call to go over the setup process, key accounting deadlines for your business, and the next steps. Can I get a free accounting consultation? Yes, we offer a free initial accounting consultation with no strings attached to ensure you are comfortable with how we work. Do you offer online consultations or meetings in person? We do both, and all you have to do is fill out the form and let us know what you prefer, whether by phone, Zoom or in person. You can meet at any of our offices listed on our website. window.addEventListener('DOMContentLoaded', function() { jQuery(function($){ $('.et_pb_toggle_title').click(function(){ var $toggle = $(this).closest('.et_pb_toggle'); if (!$toggle.hasClass('et_pb_accordion_toggling')) { var $accordion = $toggle.closest('.et_pb_accordion'); if ($toggle.hasClass('et_pb_toggle_open')) { $accordion.addClass('et_pb_accordion_toggling'); $toggle.find('.et_pb_toggle_content').slideToggle(700, function() { $toggle.removeClass('et_pb_toggle_open').addClass('et_pb_toggle_close'); }); } setTimeout(function(){ $accordion.removeClass('et_pb_accordion_toggling'); }, 750); } }); }); }); window.addEventListener('DOMContentLoaded', function() {jQuery(document).ready(function(){ // Add the et_pb_toggle_close class to all accordion items initially jQuery(".pa-accordion .et_pb_toggle").addClass("et_pb_toggle_close"); // Function to handle accordion toggle jQuery(".pa-accordion .et_pb_toggle").on("click", function(){ var $toggle = jQuery(this); var $content = $toggle.find('.et_pb_toggle_content'); // Check if the clicked accordion is already open if ($toggle.hasClass("et_pb_toggle_open")) { // If already open, close it $toggle.removeClass("et_pb_toggle_open").addClass("et_pb_toggle_close"); $content.slideUp(); } else { // If closed, open it and close other accordions // Close all other open accordions jQuery(".pa-accordion .et_pb_toggle.et_pb_toggle_open").each(function(){ var $openToggle = jQuery(this); var $openContent = $openToggle.find('.et_pb_toggle_content'); $openToggle.removeClass("et_pb_toggle_open").addClass("et_pb_toggle_close"); $openContent.slideUp(); }); // Open the clicked accordion $toggle.removeClass("et_pb_toggle_close").addClass("et_pb_toggle_open"); $content.slideDown(); } }); }); }); We’re here to help! Need a trusted partner to handle your accounting and tax matters? We’re here to help. Pearl Accountants offers reliable, expert support from your first enquiry to final delivery, all under one roof. We keep things simple, affordable, and fully transparent, so you can stay focused on what matters most: running your business. Get In touch Links Build with Love FollowFollowFollowFollowFollow Main Services Resources About Contact Us Legals Terms & Conditions Privacy Policy Cookies Referral Locations Brentford/Hounslow East London Kingston Harrow Staines London We Guarantee to never miss adeadline or your money back © 2025 Pearl Accountants. All Rights Reserved Registration No.07078392 {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/Divi\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} var et_link_options_data = [{"class":"et_pb_blurb_0_tb_header","url":"tel:+442085770200","target":"_self"},{"class":"et_pb_text_4","url":"\/accountants-in-london\/","target":"_self"},{"class":"et_pb_column_7","url":"\/accountants-in-east-london\/","target":"_self"},{"class":"et_pb_text_5","url":"\/accountants-in-east-london\/","target":"_self"},{"class":"et_pb_text_6","url":"\/accountants-in-brentford\/","target":"_self"},{"class":"et_pb_text_7","url":"\/accountants-in-kingston\/","target":"_self"},{"class":"et_pb_text_8","url":"\/accountants-in-harrow\/","target":"_self"},{"class":"et_pb_text_9","url":"\/accountants-in-staines\/","target":"_self"}]; window.addEventListener('DOMContentLoaded', function() { jQuery(window).on('load', function() { let hideTimer; jQuery('.open-menu').on('mouseenter', function() { clearTimeout(hideTimer); jQuery('.my-menu').addClass('force-show'); }); jQuery('.open-menu, .my-menu').on('mouseleave', function() { hideTimer = setTimeout(function() { jQuery('.my-menu').removeClass('force-show'); }, 300); }); jQuery('.my-menu').on('mouseenter', function() { clearTimeout(hideTimer); }); }); }); window.addEventListener('DOMContentLoaded', function() { jQuery(function($) { $(document).ready(function() { // 1) Replace href="#" to safe placeholder to avoid selector errors $('ul.et_mobile_menu a[href="#"]').attr('href', '#!'); // 2) Add mobile-toggle if not present $('ul.et_mobile_menu li.menu-item-has-children, ul.et_mobile_menu li.page_item_has_children').each(function() { var $li = $(this); if ($li.find('> .mobile-toggle').length === 0) { // keep it as a span (no href) $li.children('a').first().after('<span class="mobile-toggle" role="button" aria-label="Toggle submenu" tabindex="0"></span>'); } }); var $menu = $('ul.et_mobile_menu'); // Helper: close all open siblings function closeSiblings($li) { $li.siblings('.dt-open').removeClass('dt-open') .find('> ul.sub-menu, > ul.children').stop(true,true).slideUp(180) .removeClass('visible') .end().find('> .mobile-toggle').attr('aria-expanded','false'); } // 3) Click on the toggle icon — strong prevention of other handlers $(document).on('click', 'ul.et_mobile_menu .mobile-toggle', function(e) { e.preventDefault(); e.stopImmediatePropagation(); e.stopPropagation(); var $btn = $(this); var $li = $btn.closest('li'); // Accordion: close siblings closeSiblings($li); if ($li.hasClass('dt-open')) { $li.removeClass('dt-open'); $li.find('> ul.sub-menu, > ul.children').first().stop(true,true).slideUp(180).removeClass('visible'); $btn.attr('aria-expanded','false'); } else { $li.addClass('dt-open'); $li.find('> ul.sub-menu, > ul.children').first().stop(true,true).slideDown(180).addClass('visible'); $btn.attr('aria-expanded','true'); } }); // 4) Parent anchor click behaviour: // - If submenu closed: prevent navigation, open it (stopImmediatePropagation to prevent Divi handlers) // - If submenu already open: allow natural navigation $(document).on('click', 'ul.et_mobile_menu li.menu-item-has-children > a, ul.et_mobile_menu li.page_item_has_children > a', function(e) { var $a = $(this); var $li = $a.closest('li'); // If submenu is NOT open, first tap should open the submenu instead of navigating if (!$li.hasClass('dt-open')) { e.preventDefault(); e.stopImmediatePropagation(); e.stopPropagation(); // open via the same toggle logic (keeps behavior consistent) var $btn = $li.find('> .mobile-toggle'); if ($btn.length) { $btn.trigger('click'); } else { // fallback closeSiblings($li); $li.addClass('dt-open').find('> ul.sub-menu, > ul.children').first().stop(true,true).slideDown(180).addClass('visible'); } return false; } // else allow click to proceed (user clearly wants to navigate) }); // 5) Prevent submenu-link clicks from bubbling (keeps parent open while navigation occurs) $(document).on('click', 'ul.et_mobile_menu li.menu-item-has-children ul.sub-menu a, ul.et_mobile_menu li.page_item_has_children ul.children a', function(e) { e.stopPropagation(); // allow default navigation }); // 6) Close menus when clicking outside the mobile menu $(document).on('click touchstart', function(e) { if ($(e.target).closest('ul.et_mobile_menu').length === 0) { $menu.find('.dt-open').removeClass('dt-open') .find('> ul.sub-menu, > ul.children').stop(true,true).slideUp(160).removeClass('visible'); $menu.find('.mobile-toggle').attr('aria-expanded','false'); } }); // 7) Escape key closes menus $(document).on('keydown', function(e) { if (e.key === 'Escape' || e.key === 'Esc') { $menu.find('.dt-open').removeClass('dt-open') .find('> ul.sub-menu, > ul.children').stop(true,true).slideUp(160).removeClass('visible'); $menu.find('.mobile-toggle').attr('aria-expanded','false'); } }); }); }); }); /* <![CDATA[ */ var rocket_lazyload_css_data = {"threshold":"300"}; /* ]]> */ /* <![CDATA[ */ !function o(n,c,a){function u(t,e){if(!c[t]){if(!n[t]){var r="function"==typeof require&&require;if(!e&&r)return r(t,!0);if(s)return s(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}r=c[t]={exports:{}},n[t][0].call(r.exports,function(e){return u(n[t][1][e]||e)},r,r.exports,o,n,c,a)}return c[t].exports}for(var s="function"==typeof require&&require,e=0;e<a.length;e++)u(a[e]);return u}({1:[function(e,t,r){"use strict";{const c="undefined"==typeof rocket_pairs?[]:rocket_pairs,a=(("undefined"==typeof rocket_excluded_pairs?[]:rocket_excluded_pairs).map(t=>{var e=t.selector;document.querySelectorAll(e).forEach(e=>{e.setAttribute("data-rocket-lazy-bg-"+t.hash,"excluded")})}),document.querySelector("#wpr-lazyload-bg-container"));var o=rocket_lazyload_css_data.threshold||300;const u=new IntersectionObserver(e=>{e.forEach(t=>{t.isIntersecting&&c.filter(e=>t.target.matches(e.selector)).map(t=>{var e;t&&((e=document.createElement("style")).textContent=t.style,a.insertAdjacentElement("afterend",e),t.elements.forEach(e=>{u.unobserve(e),e.setAttribute("data-rocket-lazy-bg-"+t.hash,"loaded")}))})})},{rootMargin:o+"px"});function n(){0<(0<arguments.length&&void 0!==arguments[0]?arguments[0]:[]).length&&c.forEach(t=>{try{document.querySelectorAll(t.selector).forEach(e=>{"loaded"!==e.getAttribute("data-rocket-lazy-bg-"+t.hash)&&"excluded"!==e.getAttribute("data-rocket-lazy-bg-"+t.hash)&&(u.observe(e),(t.elements||=[]).push(e))})}catch(e){console.error(e)}})}n(),function(){const r=window.MutationObserver;return function(e,t){if(e&&1===e.nodeType)return(t=new r(t)).observe(e,{attributes:!0,childList:!0,subtree:!0}),t}}()(document.querySelector("body"),n)}},{}]},{},[1]); /* ]]> */ /* <![CDATA[ */ var DIVI = {"item_count":"%d Item","items_count":"%d Items"}; var et_builder_utils_params = {"condition":{"diviTheme":true,"extraTheme":false},"scrollLocations":["app","top"],"builderScrollLocations":{"desktop":"app","tablet":"app","phone":"app"},"onloadScrollLocation":"app","builderType":"fe"}; var et_frontend_scripts = {"builderCssContainerPrefix":"#et-boc","builderCssLayoutPrefix":"#et-boc .et-l"}; var et_pb_custom = {"ajaxurl":"https:\/\/www.pearlaccountants.com\/wp-admin\/admin-ajax.php","images_uri":"https:\/\/www.pearlaccountants.com\/wp-content\/themes\/Divi\/images","builder_images_uri":"https:\/\/www.pearlaccountants.com\/wp-content\/themes\/Divi\/includes\/builder\/images","et_frontend_nonce":"07ae5e9f08","subscription_failed":"Please, check the fields below to make sure you entered the correct information.","et_ab_log_nonce":"27f3f8aa52","fill_message":"Please, fill in the following fields:","contact_error_message":"Please, fix the following errors:","invalid":"Invalid email","captcha":"Captcha","prev":"Prev","previous":"Previous","next":"Next","wrong_captcha":"You entered the wrong number in captcha.","wrong_checkbox":"Checkbox","ignore_waypoints":"no","is_divi_theme_used":"1","widget_search_selector":".widget_search","ab_tests":[],"is_ab_testing_active":"","page_id":"5083","unique_test_id":"","ab_bounce_rate":"5","is_cache_plugin_active":"yes","is_shortcode_tracking":"","tinymce_uri":"https:\/\/www.pearlaccountants.com\/wp-content\/themes\/Divi\/includes\/builder\/frontend-builder\/assets\/vendors","accent_color":"#224c26","waypoints_options":[]}; var et_pb_box_shadow_elements = []; /* ]]> */ /* <![CDATA[ */ var wpforms_choicesjs_config = {"removeItemButton":"1","shouldSort":"","fuseOptions":{"threshold":0.1,"distance":1000},"loadingText":"Loading...","noResultsText":"No results found","noChoicesText":"No choices to choose from","uniqueItemText":"Only unique values can be added","customAddItemText":"Only values matching specific conditions can be added"}; /* ]]> */ /* <![CDATA[ */ var wpforms_settings = {"val_required":"This field is required.","val_email":"Please enter a valid email address.","val_email_suggestion":"Did you mean {suggestion}?","val_email_suggestion_title":"Click to accept this suggestion.","val_email_restricted":"This email address is not allowed.","val_number":"Please enter a valid number.","val_number_positive":"Please enter a valid positive number.","val_minimum_price":"Amount entered is less than the required minimum.","val_confirm":"Field values do not match.","val_checklimit":"You have exceeded the number of allowed selections: {#}.","val_limit_characters":"{count} of {limit} max characters.","val_limit_words":"{count} of {limit} max words.","val_min":"Please enter a value greater than or equal to {0}.","val_max":"Please enter a value less than or equal to {0}.","val_recaptcha_fail_msg":"Google reCAPTCHA verification failed, please try again later.","val_turnstile_fail_msg":"Cloudflare Turnstile verification failed, please try again later.","val_inputmask_incomplete":"Please fill out the field in required format.","uuid_cookie":"1","locale":"en","country":"","country_list_label":"Country list","wpforms_plugin_url":"https:\/\/www.pearlaccountants.com\/wp-content\/plugins\/wpforms\/","gdpr":"","ajaxurl":"https:\/\/www.pearlaccountants.com\/wp-admin\/admin-ajax.php","mailcheck_enabled":"1","mailcheck_domains":[],"mailcheck_toplevel_domains":["dev"],"is_ssl":"1","currency_code":"USD","currency_thousands":",","currency_decimals":"2","currency_decimal":".","currency_symbol":"$","currency_symbol_pos":"left","val_requiredpayment":"Payment is required.","val_creditcard":"Please enter a valid credit card number.","css_vars":["field-border-radius","field-border-style","field-border-size","field-background-color","field-border-color","field-text-color","field-menu-color","label-color","label-sublabel-color","label-error-color","button-border-radius","button-border-style","button-border-size","button-background-color","button-border-color","button-text-color","page-break-color","background-image","background-position","background-repeat","background-size","background-width","background-height","background-color","background-url","container-padding","container-border-style","container-border-width","container-border-color","container-border-radius","field-size-input-height","field-size-input-spacing","field-size-font-size","field-size-line-height","field-size-padding-h","field-size-checkbox-size","field-size-sublabel-spacing","field-size-icon-size","label-size-font-size","label-size-line-height","label-size-sublabel-font-size","label-size-sublabel-line-height","button-size-font-size","button-size-height","button-size-padding-h","button-size-margin-top","container-shadow-size-box-shadow"],"val_post_max_size":"The total size of the selected files {totalSize} MB exceeds the allowed limit {maxSize} MB.","val_time12h":"Please enter time in 12-hour AM\/PM format (eg 8:45 AM).","val_time24h":"Please enter time in 24-hour format (eg 22:45).","val_time_limit":"Please enter time between {minTime} and {maxTime}.","val_url":"Please enter a valid URL.","val_fileextension":"File type is not allowed.","val_filesize":"File exceeds max size allowed. File was not uploaded.","post_max_size":"629145600","isModernMarkupEnabled":"1","formErrorMessagePrefix":"Form error message","errorMessagePrefix":"Error message","submitBtnDisabled":"Submit button is disabled during form submission.","readOnlyDisallowedFields":["captcha","repeater","content","divider","hidden","html","entry-preview","pagebreak","layout","payment-total"],"error_updating_token":"Error updating token. Please try again or contact support if the issue persists.","network_error":"Network error or server is unreachable. Check your connection or try again later.","token_cache_lifetime":"86400","hn_data":{"1104488":3},"address_field":{"list_countries_without_states":["GB","DE","CH","NL"]},"val_phone":"Please enter a valid phone number.","val_password_strength":"A stronger password is required. Consider using upper and lower case letters, numbers, and symbols.","entry_preview_iframe_styles":["https:\/\/www.pearlaccountants.com\/wp-includes\/js\/tinymce\/skins\/lightgray\/content.min.css?ver=6.8.3","https:\/\/www.pearlaccountants.com\/wp-includes\/css\/dashicons.min.css?ver=6.8.3","https:\/\/www.pearlaccountants.com\/wp-includes\/js\/tinymce\/skins\/wordpress\/wp-content.css?ver=6.8.3","https:\/\/www.pearlaccountants.com\/wp-content\/plugins\/wpforms\/assets\/pro\/css\/fields\/richtext\/editor-content.min.css"],"indicatorStepsPattern":"Step {current} of {total}"} /* ]]> */ window.lazyLoadOptions=[{elements_selector:"img[data-lazy-src],.rocket-lazyload,iframe[data-lazy-src]",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}},{elements_selector:".rocket-lazyload",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,}];window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(var i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue} if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue} images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1} if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1)
View text
window.addEventListener('DOMContentLoaded', function() { jQuery(document).ready(function() { // For Making The Header Fixed + Custom Styling + Padding-top jQuery(window).scroll(function() { var scroll = jQuery(window).scrollTop(); if (scroll >= 55) { jQuery("header.et-l--header").addClass("dd-cfixed-header"); jQuery(".dd-fixed-header").addClass("dd-fixed-header-styling"); } else { jQuery("header.et-l--header").removeClass("dd-cfixed-header"); jQuery(".dd-fixed-header").removeClass("dd-fixed-header-styling"); } }); // For Mobile Menu jQuery("#dd-hamburger").click(function() { jQuery("#dd-section").toggleClass("dd-m-menu"); }); jQuery("#dd-close").click(function() { jQuery("#dd-section").toggleClass("dd-m-menu"); }); // For Search Icon jQuery(".dd-search .et_pb_searchsubmit").attr("value", ""); jQuery(".dd-search > form > div").append('<span class="dd-search-icon"></span>'); // For Mobile Menu Subitems if (jQuery("#dd-menu-mobile ul").hasClass("sub-menu")) { jQuery("#dd-menu-mobile").addClass("dd-submenu"); } }); (function($) { function setup_collapsible_submenus() { // mobile menu $('#dd-menu-mobile .mobile_nav .menu-item-has-children > a').after('<span class="menu-closed"></span>'); $('#dd-menu-mobile .mobile_nav .menu-item-has-children > a').each(function() { $(this).next().next('.sub-menu').toggleClass('hide', 1000); }); $('#dd-menu-mobile .mobile_nav .menu-item-has-children > a + span').on('click', function(event) { event.preventDefault(); $(this).toggleClass('menu-open'); $(this).next('.sub-menu').toggleClass('hide', 1000); }); } $(window).load(function() { setTimeout(function() { setup_collapsible_submenus(); }, 700); }); })(jQuery); }); document.addEventListener('DOMContentLoaded', function () { // Function to check the screen width and execute code if within range function isWithinWidthRange() { const width = window.innerWidth; return width <= 5000 && width >= 1100; } // Function to adjust column heights dynamically function adjustColumnHeights() { if (!isWithinWidthRange()) return; // Select all the elements const menuItems = [ document.querySelector('#mega-menu-1103276-1-0'), // First column (largest) document.querySelector('#mega-menu-1103276-1-1'), document.querySelector('#mega-menu-1103276-1-2') ]; // Reset heights to auto before recalculating menuItems.forEach(item => { item.style.height = 'auto'; }); // Get the height of the first column (largest) const largestHeight = menuItems[0]?.offsetHeight || 0; // Apply the largest height to all elements menuItems.forEach(item => { if (item) item.style.height = largestHeight + 'px'; }); } // Adjust column heights on page load adjustColumnHeights(); // Adjust column heights on window resize window.addEventListener('resize', adjustColumnHeights); }); document.addEventListener('DOMContentLoaded', function () { const ulElement = document.querySelector('#rpwwt-recent-posts-widget-with-thumbnails-3 ul'); // Add a click event listener to the `ul` function handleUlClick(event) { if (!isWithinWidthRange()) return; // Check if the click is on an empty space (simulate clicking the :after) if (event.target === ulElement) { // Redirect to /blog window.location.href = '/blog'; } } ulElement?.addEventListener('click', handleUlClick); }); // Function to enhance images and style titles function enhanceImagesAndTitles(selector) { if (!isWithinWidthRange()) return; const widgets = document.querySelectorAll(selector); widgets.forEach(widget => { // Select all images and titles within the widget const images = widget.querySelectorAll('ul li img'); const titles = widget.querySelectorAll('ul li .rpwwt-post-title'); // Make titles bold titles.forEach(title => { title.style.fontWeight = 'bold'; title.style.color = '#224c26'; }); // For images, set height to 100px and let the browser determine width images.forEach(img => { img.style.height = '100px'; // Fixed height img.style.width = ''; // Remove any width constraints img.style.objectFit = ''; // Reset object-fit if applied }); }); } // Apply enhancements to the widgets document.addEventListener('DOMContentLoaded', () => { enhanceImagesAndTitles('#rpwwt-recent-posts-widget-with-thumbnails-2'); enhanceImagesAndTitles('#rpwwt-recent-posts-widget-with-thumbnails-3'); // Reapply enhancements on window resize window.addEventListener('resize', () => { enhanceImagesAndTitles('#rpwwt-recent-posts-widget-with-thumbnails-2'); enhanceImagesAndTitles('#rpwwt-recent-posts-widget-with-thumbnails-3'); }); }); // Utility function to check width range function isWithinWidthRange() { const width = window.innerWidth; return width <= 5000 && width >= 1100; } document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-221280-1-0"), document.querySelector("#mega-menu-221280-1-1"), document.querySelector("#mega-menu-221280-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width > 1100; // Apply equal heights only when width is above 1100px } function equalizeHeights() { if (!isWithinWidthRange() || columns.some(col => !col)) { // Reset column heights when outside the range columns.forEach(col => { if (col) col.style.height = "auto"; }); return; } // Reset column heights to natural values before calculating columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns, capped at 330px const maxHeight = Math.min(330, Math.max(...columns.map(col => col.scrollHeight))); // Set the height for all columns based on the capped max height columns.forEach(col => (col.style.height = `${maxHeight}px`)); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); }); document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-1104355-1-0"), document.querySelector("#mega-menu-1104355-1-1"), document.querySelector("#mega-menu-1104355-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width > 1100; // Only apply equal heights when width is above 1100px } function equalizeHeights() { if (!isWithinWidthRange()) { // Reset column heights to auto when width is below 1100px columns.forEach(col => { if (col) col.style.height = "auto"; }); return; } // Reset column heights to natural values before recalculating columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns const maxHeight = Math.max(...columns.map(col => col?.scrollHeight || 0)); // Set the height for all columns based on the max height columns.forEach(col => { if (col) col.style.height = `${maxHeight}px`; }); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); }); document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-1104354-1-0"), document.querySelector("#mega-menu-1104354-1-1"), document.querySelector("#mega-menu-1104354-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width > 1100; // Only apply equal heights when width is above 1100px } function equalizeHeights() { if (!isWithinWidthRange()) { // Reset column heights to auto when width is below 1100px columns.forEach(col => { if (col) col.style.height = "auto"; }); return; } // Reset column heights to natural values before recalculating columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns const maxHeight = Math.max(...columns.map(col => col?.scrollHeight || 0)); // Set the height for all columns based on the max height columns.forEach(col => { if (col) col.style.height = `${maxHeight}px`; }); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); }); document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-15-1-0"), document.querySelector("#mega-menu-15-1-1"), document.querySelector("#mega-menu-15-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width > 1100; // Only apply equal heights when width is above 1100px } function equalizeHeights() { if (!isWithinWidthRange()) { // Reset column heights to auto when width is below 1100px columns.forEach(col => { if (col) col.style.height = "auto"; }); return; } // Reset column heights to natural values before recalculating columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns const maxHeight = Math.max(...columns.map(col => col?.scrollHeight || 0)); // Set the height for all columns based on the max height columns.forEach(col => { if (col) col.style.height = `${maxHeight}px`; }); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); }); document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-1103276-1-0"), document.querySelector("#mega-menu-1103276-1-1"), document.querySelector("#mega-menu-1103276-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width <= 5000 && width >= 1100; } function equalizeHeights() { if (!isWithinWidthRange() || columns.some(col => !col)) return; // Reset column heights to natural values columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns const maxHeight = Math.max(...columns.map(col => col.scrollHeight)); // Set the height for all columns based on the max height columns.forEach(col => (col.style.height = `${maxHeight}px`)); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); }); document.addEventListener("DOMContentLoaded", function () { const menuItems = document.querySelectorAll( "#mega-menu-wrap-primary-menu #mega-menu-primary-menu > li.mega-menu-item" ); const svgURL = "https://www.pearlaccountants.com/wp-content/uploads/2025/01/menu-cirle-3.svg"; menuItems.forEach(item => { const link = item.querySelector("a.mega-menu-link"); // Create the SVG element const svgIcon = document.createElement("img"); svgIcon.src = svgURL; svgIcon.alt = "Menu Icon"; svgIcon.style.width = "10px"; svgIcon.style.height = "10px"; svgIcon.style.marginRight = "8px"; svgIcon.style.verticalAlign = "middle"; svgIcon.classList.add("hover-svg-icon"); // Add a class for easy targeting // Add hover event listeners item.addEventListener("mouseenter", function () { if (link && !link.querySelector(".hover-svg-icon")) { link.prepend(svgIcon); // Add the icon on hover } }); item.addEventListener("mouseleave", function () { const existingIcon = link.querySelector(".hover-svg-icon"); if (existingIcon) { existingIcon.remove(); // Remove the icon when hover ends } }); }); }); document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-221281-1-0"), document.querySelector("#mega-menu-221281-1-1"), document.querySelector("#mega-menu-221281-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width > 1100; // Only apply equal heights when width is above 1100px } function equalizeHeights() { if (!isWithinWidthRange()) { // Reset column heights to auto when width is below 1100px columns.forEach(col => { if (col) col.style.height = "auto"; }); return; } // Reset column heights to natural values before recalculating columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns const maxHeight = Math.max(...columns.map(col => col?.scrollHeight || 0)); // Set the height for all columns based on the max height columns.forEach(col => { if (col) col.style.height = `${maxHeight}px`; }); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); });  020 8582 0076 INSTANT QUOTATION Services hidden Who we help Small Businesses Landlords E-commerce Sole Traders Freelancers Accountants For Startups About Contact Us How It Works Referral Resources Switching To Multilingual Accountants Recruitment Prices Services Accounting Services Company Statutory Accounts VAT Payroll Pensions & Auto-Enrolment Consolidated Accounts – Group Accounts CIS Tax Return Self-Assessment Tax Return Company Secretarial Services Company Formation Registered office Address Company Secretarial Share Transfer Tax Self-Assessment Tax Return Corporation Tax Capital Gains Tax Tax Investigation Tax Advisory Partnership Tax Return CIS Tax Return Finance Functions Credit Control Bookkeeping Business Plan services Cash flow Management Financial Forecasting Supplier Payments Payroll Managements & Payments Virtual FD Internal Audit & Assurance Legal Legal Business Helpline Founders Agreement Non-disclosure agreement Intellectual property Software Xero Quickbooks FreeAgent Pandadoc Sage Business insurance Kingsbridge Contractor Insurance Sole Trader & SME Insurance Who we help Small Businesses Landlords E-commerce Sole Traders Freelancers Accountants For Startups About Contact Us How It Works Referral Resources Switching To Multilingual Accountants Recruitment Price Compliance Services Finance Functions & Advisory Partners Accounting Services Stay compliant, stay confident, we handle the complexity. Company Statutory Accounts VAT Payroll Pensions & Auto-Enrolment Consolidated Accounts - Group Accounts Company Secretarial Services Company Formation Registered office Address Company Secretarial Share Transfer Tax Self-Assessment Tax Return Corporation Tax Capital Gains Tax Tax Investigation Tax Advisory Partnership Tax Return CIS Tax Return Looking for a Dedicated Accountant? Our Enterprise packages offer tailored support for you and your business. LEARN MORE Finance Functions Smart financial solutions to fuel your business growth. Credit Control Bookkeeping Business Plan services Cash flow Management Financial Forecasting Supplier Payments Payroll Managements & Payments Virtual FD Internal Audit & Assurance Legal Legal Business Helpline Founders Agreement Non-disclosure agreement Intellectual property Looking for a Dedicated Accountant? Our Enterprise packages offer tailored support for you and your business. LEARN MORE Partners Stronger together: Partnering for mutual success. Software Xero Quickbooks FreeAgent Pandle Pandadoc Sage Business insurance Kingsbridge Contractor Insurance Sole Trader & SME Insurance Looking for a Dedicated Accountant? Our Enterprise packages offer tailored support for you and your business. LEARN MORE EXPERIENCED ACCOUNTANTS WITH A CLASSIC WORK ETHIC UK Chartered Accountants helping businesses and individuals succeed with flexible, quality, and personal service. A LITTLE BIT ABOUT WHO WE ARE What you should know about us We are one of the UK’s leading chartered accounting firms. We have helped countless freelancers, contractors, e-commerce organisations and small-to-medium businesses with various sectors of accounting, tax, and company development plans. We’re regulated by one of the UK’s premier accounting bodies, the ICAEW. Some of the staff, including partners, are ex-Big four qualified. It allows foresight and planning for “what if” scenarios. We’re accredited with QuickBooks, Xero, and Sage, among others. Our team is multilingual. We speak Urdu, Arabic, Punjabi and more. HOW WE OPERATE CUSTOMER SERVICE FIXED RATES MODERN ACCOUNTING EASY SWITCH-OVER CUSTOMER SERVICE If you are looking for outstanding customer service, you have come to the right place! We make sure that your financial operations go as smoothly as possible. Once you become one of our clients, you will be assigned a personal client manager who is there to answer your phone calls or drop you a courtesy call once a month to ensure you are doing well. FIXED RATES Our billing is transparent, and we have a broad range of options to satisfy the needs of any business. Businesses frequently put off getting counsel because they are concerned about the expense till the end of the year. Sadly, this advice is often given after the fact, and it may be too late to use the information. Our pricing package includes all email and phone assistance since we encourage our customers to contact us whenever they have questions. MODERN ACCOUNTING We work with software vendors to streamline your corporate procedures. Our skilled accountants can integrate online sales, manage HR, payroll, invoice suppliers, monitor cash flow and much more. If you’d rather not spend your day in the office learning how to use a new accounting software package, don’t worry! We’ll get you up to speed quickly so you can focus on growing your business. EASY SWITCH-OVER Would you like to switch to a new accounting firm? Ease the transition with our service. We’ll work with you to set up accounts, review and implement your financial statements, and handle all the details. We’ll even handle coordination with your current accountant. WHY WE’RE UNIQUE GROW YOUR BUSINESS We’re here to help you get where you want to go. We know that every business is different, whether you’re a new business owner or have been in business for a long time. We work with you to make plans that meet your needs, goals, and deadlines while giving you objectivity and direction. INTEGRATE ALL YOUR SOFTWARE We are proud to offer our business clients the best and most innovative solutions to their problems. We can help you connect a whole set of tools simultaneously using various software solutions, from productivity to stock management. If you have any questions about what’s available or need help, our specialists are ready to help you with any setup questions or guidance you may need. INDUSTRY SPECIFIC ACCOUNTANTS Our chartered accountants are regulated by ICAEW and help your business from the start. They will have worked in your industry and know your preferred accounting software. Their job will not just be to look at the numbers but also to help you grow your business. WE DON’T’ GET YOU TO DO THE BOOKKEEPING Pearl does the bookkeeping for all its customers. Yes, we’ll solve this problem for you. With a hassle-free service, you don’t have to worry about entering all your receipts and bills into software or an Excel spreadsheet. It is the key to keeping your business, big or small, running smoothly. WE DON’T’ GET YOU TO DO THE BOOKKEEPING If you’re looking for a one-stop shop, you don’t need to look any further. We offer everything your business needs to succeed, from bookkeeping to legal advice. Along with our marketing hub services, we can also help if you need a part-time Finance Director. This is for people who want to grow and improve their business in a larger way. Our offices Accountants LONDON L Accountants EAST LONDON L Accountants BRENTFORD L Accountants KINGSTON L Accountants HARROW L Accountants STAINES L WE’RE HERE TO HELP! We are always happy to hear from you! Our team of experts is ready to answer all your questions about how you can benefit from our products and services. Contact us today! OUR PRICES Get In touch FREQUENTLY ASKED QUESTIONS Are you an accounting firm that is certified and regulated? Yes, we are registered with the ICAEW, one of the UK’s most prestigious accounting institutes and regulated by several bodies to provide accounting and tax services. Can I arrange a meeting, or can everything be done online? You are welcome to visit any of our London offices, or we may arrange a meeting over Zoom if that is more convenient. How long have you been operating? Our founder, Shoaib Aslam, started the company in his room in 2008 and has expanded to include more than 50 workers. Which software do you use? We have a deep understanding of technology and use a wide range of software in serving our customers and running our business. Check out the software page for more information on the software we provide. window.addEventListener('DOMContentLoaded', function() { jQuery(function($){ $('.et_pb_toggle_title').click(function(){ var $toggle = $(this).closest('.et_pb_toggle'); if (!$toggle.hasClass('et_pb_accordion_toggling')) { var $accordion = $toggle.closest('.et_pb_accordion'); if ($toggle.hasClass('et_pb_toggle_open')) { $accordion.addClass('et_pb_accordion_toggling'); $toggle.find('.et_pb_toggle_content').slideToggle(700, function() { $toggle.removeClass('et_pb_toggle_open').addClass('et_pb_toggle_close'); }); } setTimeout(function(){ $accordion.removeClass('et_pb_accordion_toggling'); }, 750); } }); }); }); window.addEventListener('DOMContentLoaded', function() {jQuery(document).ready(function(){ // Add the et_pb_toggle_close class to all accordion items initially jQuery(".pa-accordion .et_pb_toggle").addClass("et_pb_toggle_close"); // Function to handle accordion toggle jQuery(".pa-accordion .et_pb_toggle").on("click", function(){ var $toggle = jQuery(this); var $content = $toggle.find('.et_pb_toggle_content'); // Check if the clicked accordion is already open if ($toggle.hasClass("et_pb_toggle_open")) { // If already open, close it $toggle.removeClass("et_pb_toggle_open").addClass("et_pb_toggle_close"); $content.slideUp(); } else { // If closed, open it and close other accordions // Close all other open accordions jQuery(".pa-accordion .et_pb_toggle.et_pb_toggle_open").each(function(){ var $openToggle = jQuery(this); var $openContent = $openToggle.find('.et_pb_toggle_content'); $openToggle.removeClass("et_pb_toggle_open").addClass("et_pb_toggle_close"); $openContent.slideUp(); }); // Open the clicked accordion $toggle.removeClass("et_pb_toggle_close").addClass("et_pb_toggle_open"); $content.slideDown(); } }); }); }); We’re here to help! Need a trusted partner to handle your accounting and tax matters? We’re here to help. Pearl Accountants offers reliable, expert support from your first enquiry to final delivery, all under one roof. We keep things simple, affordable, and fully transparent, so you can stay focused on what matters most: running your business. Get In touch Links Build with Love FollowFollowFollowFollowFollow Main Services Resources About Contact Us Legals Terms & Conditions Privacy Policy Cookies Referral Locations Brentford/Hounslow East London Kingston Harrow Staines London We Guarantee to never miss adeadline or your money back © 2025 Pearl Accountants. All Rights Reserved Registration No.07078392 {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/Divi\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} var et_link_options_data = [{"class":"et_pb_blurb_0_tb_header","url":"tel:+442085770200","target":"_self"},{"class":"et_pb_text_17","url":"\/accountants-in-london\/","target":"_self"},{"class":"et_pb_column_21","url":"\/accountants-in-east-london\/","target":"_self"},{"class":"et_pb_text_18","url":"\/accountants-in-east-london\/","target":"_self"},{"class":"et_pb_text_19","url":"\/accountants-in-brentford\/","target":"_self"},{"class":"et_pb_text_20","url":"\/accountants-in-kingston\/","target":"_self"},{"class":"et_pb_text_21","url":"\/accountants-in-harrow\/","target":"_self"},{"class":"et_pb_text_22","url":"\/accountants-in-staines\/","target":"_self"}]; window.addEventListener('DOMContentLoaded', function() { jQuery(window).on('load', function() { let hideTimer; jQuery('.open-menu').on('mouseenter', function() { clearTimeout(hideTimer); jQuery('.my-menu').addClass('force-show'); }); jQuery('.open-menu, .my-menu').on('mouseleave', function() { hideTimer = setTimeout(function() { jQuery('.my-menu').removeClass('force-show'); }, 300); }); jQuery('.my-menu').on('mouseenter', function() { clearTimeout(hideTimer); }); }); }); window.addEventListener('DOMContentLoaded', function() { jQuery(function($) { $(document).ready(function() { // 1) Replace href="#" to safe placeholder to avoid selector errors $('ul.et_mobile_menu a[href="#"]').attr('href', '#!'); // 2) Add mobile-toggle if not present $('ul.et_mobile_menu li.menu-item-has-children, ul.et_mobile_menu li.page_item_has_children').each(function() { var $li = $(this); if ($li.find('> .mobile-toggle').length === 0) { // keep it as a span (no href) $li.children('a').first().after('<span class="mobile-toggle" role="button" aria-label="Toggle submenu" tabindex="0"></span>'); } }); var $menu = $('ul.et_mobile_menu'); // Helper: close all open siblings function closeSiblings($li) { $li.siblings('.dt-open').removeClass('dt-open') .find('> ul.sub-menu, > ul.children').stop(true,true).slideUp(180) .removeClass('visible') .end().find('> .mobile-toggle').attr('aria-expanded','false'); } // 3) Click on the toggle icon — strong prevention of other handlers $(document).on('click', 'ul.et_mobile_menu .mobile-toggle', function(e) { e.preventDefault(); e.stopImmediatePropagation(); e.stopPropagation(); var $btn = $(this); var $li = $btn.closest('li'); // Accordion: close siblings closeSiblings($li); if ($li.hasClass('dt-open')) { $li.removeClass('dt-open'); $li.find('> ul.sub-menu, > ul.children').first().stop(true,true).slideUp(180).removeClass('visible'); $btn.attr('aria-expanded','false'); } else { $li.addClass('dt-open'); $li.find('> ul.sub-menu, > ul.children').first().stop(true,true).slideDown(180).addClass('visible'); $btn.attr('aria-expanded','true'); } }); // 4) Parent anchor click behaviour: // - If submenu closed: prevent navigation, open it (stopImmediatePropagation to prevent Divi handlers) // - If submenu already open: allow natural navigation $(document).on('click', 'ul.et_mobile_menu li.menu-item-has-children > a, ul.et_mobile_menu li.page_item_has_children > a', function(e) { var $a = $(this); var $li = $a.closest('li'); // If submenu is NOT open, first tap should open the submenu instead of navigating if (!$li.hasClass('dt-open')) { e.preventDefault(); e.stopImmediatePropagation(); e.stopPropagation(); // open via the same toggle logic (keeps behavior consistent) var $btn = $li.find('> .mobile-toggle'); if ($btn.length) { $btn.trigger('click'); } else { // fallback closeSiblings($li); $li.addClass('dt-open').find('> ul.sub-menu, > ul.children').first().stop(true,true).slideDown(180).addClass('visible'); } return false; } // else allow click to proceed (user clearly wants to navigate) }); // 5) Prevent submenu-link clicks from bubbling (keeps parent open while navigation occurs) $(document).on('click', 'ul.et_mobile_menu li.menu-item-has-children ul.sub-menu a, ul.et_mobile_menu li.page_item_has_children ul.children a', function(e) { e.stopPropagation(); // allow default navigation }); // 6) Close menus when clicking outside the mobile menu $(document).on('click touchstart', function(e) { if ($(e.target).closest('ul.et_mobile_menu').length === 0) { $menu.find('.dt-open').removeClass('dt-open') .find('> ul.sub-menu, > ul.children').stop(true,true).slideUp(160).removeClass('visible'); $menu.find('.mobile-toggle').attr('aria-expanded','false'); } }); // 7) Escape key closes menus $(document).on('keydown', function(e) { if (e.key === 'Escape' || e.key === 'Esc') { $menu.find('.dt-open').removeClass('dt-open') .find('> ul.sub-menu, > ul.children').stop(true,true).slideUp(160).removeClass('visible'); $menu.find('.mobile-toggle').attr('aria-expanded','false'); } }); }); }); }); /* <![CDATA[ */ var rocket_lazyload_css_data = {"threshold":"300"}; /* ]]> */ /* <![CDATA[ */ !function o(n,c,a){function u(t,e){if(!c[t]){if(!n[t]){var r="function"==typeof require&&require;if(!e&&r)return r(t,!0);if(s)return s(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}r=c[t]={exports:{}},n[t][0].call(r.exports,function(e){return u(n[t][1][e]||e)},r,r.exports,o,n,c,a)}return c[t].exports}for(var s="function"==typeof require&&require,e=0;e<a.length;e++)u(a[e]);return u}({1:[function(e,t,r){"use strict";{const c="undefined"==typeof rocket_pairs?[]:rocket_pairs,a=(("undefined"==typeof rocket_excluded_pairs?[]:rocket_excluded_pairs).map(t=>{var e=t.selector;document.querySelectorAll(e).forEach(e=>{e.setAttribute("data-rocket-lazy-bg-"+t.hash,"excluded")})}),document.querySelector("#wpr-lazyload-bg-container"));var o=rocket_lazyload_css_data.threshold||300;const u=new IntersectionObserver(e=>{e.forEach(t=>{t.isIntersecting&&c.filter(e=>t.target.matches(e.selector)).map(t=>{var e;t&&((e=document.createElement("style")).textContent=t.style,a.insertAdjacentElement("afterend",e),t.elements.forEach(e=>{u.unobserve(e),e.setAttribute("data-rocket-lazy-bg-"+t.hash,"loaded")}))})})},{rootMargin:o+"px"});function n(){0<(0<arguments.length&&void 0!==arguments[0]?arguments[0]:[]).length&&c.forEach(t=>{try{document.querySelectorAll(t.selector).forEach(e=>{"loaded"!==e.getAttribute("data-rocket-lazy-bg-"+t.hash)&&"excluded"!==e.getAttribute("data-rocket-lazy-bg-"+t.hash)&&(u.observe(e),(t.elements||=[]).push(e))})}catch(e){console.error(e)}})}n(),function(){const r=window.MutationObserver;return function(e,t){if(e&&1===e.nodeType)return(t=new r(t)).observe(e,{attributes:!0,childList:!0,subtree:!0}),t}}()(document.querySelector("body"),n)}},{}]},{},[1]); /* ]]> */ /* <![CDATA[ */ var DIVI = {"item_count":"%d Item","items_count":"%d Items"}; var et_builder_utils_params = {"condition":{"diviTheme":true,"extraTheme":false},"scrollLocations":["app","top"],"builderScrollLocations":{"desktop":"app","tablet":"app","phone":"app"},"onloadScrollLocation":"app","builderType":"fe"}; var et_frontend_scripts = {"builderCssContainerPrefix":"#et-boc","builderCssLayoutPrefix":"#et-boc .et-l"}; var et_pb_custom = {"ajaxurl":"https:\/\/www.pearlaccountants.com\/wp-admin\/admin-ajax.php","images_uri":"https:\/\/www.pearlaccountants.com\/wp-content\/themes\/Divi\/images","builder_images_uri":"https:\/\/www.pearlaccountants.com\/wp-content\/themes\/Divi\/includes\/builder\/images","et_frontend_nonce":"07ae5e9f08","subscription_failed":"Please, check the fields below to make sure you entered the correct information.","et_ab_log_nonce":"27f3f8aa52","fill_message":"Please, fill in the following fields:","contact_error_message":"Please, fix the following errors:","invalid":"Invalid email","captcha":"Captcha","prev":"Prev","previous":"Previous","next":"Next","wrong_captcha":"You entered the wrong number in captcha.","wrong_checkbox":"Checkbox","ignore_waypoints":"no","is_divi_theme_used":"1","widget_search_selector":".widget_search","ab_tests":[],"is_ab_testing_active":"","page_id":"3995","unique_test_id":"","ab_bounce_rate":"5","is_cache_plugin_active":"yes","is_shortcode_tracking":"","tinymce_uri":"https:\/\/www.pearlaccountants.com\/wp-content\/themes\/Divi\/includes\/builder\/frontend-builder\/assets\/vendors","accent_color":"#224c26","waypoints_options":[]}; var et_pb_box_shadow_elements = []; /* ]]> */ window.lazyLoadOptions=[{elements_selector:"img[data-lazy-src],.rocket-lazyload,iframe[data-lazy-src]",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}},{elements_selector:".rocket-lazyload",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,}];window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(var i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue} if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue} images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1} if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1)
View text
window.addEventListener('DOMContentLoaded', function() { jQuery(document).ready(function() { // For Making The Header Fixed + Custom Styling + Padding-top jQuery(window).scroll(function() { var scroll = jQuery(window).scrollTop(); if (scroll >= 55) { jQuery("header.et-l--header").addClass("dd-cfixed-header"); jQuery(".dd-fixed-header").addClass("dd-fixed-header-styling"); } else { jQuery("header.et-l--header").removeClass("dd-cfixed-header"); jQuery(".dd-fixed-header").removeClass("dd-fixed-header-styling"); } }); // For Mobile Menu jQuery("#dd-hamburger").click(function() { jQuery("#dd-section").toggleClass("dd-m-menu"); }); jQuery("#dd-close").click(function() { jQuery("#dd-section").toggleClass("dd-m-menu"); }); // For Search Icon jQuery(".dd-search .et_pb_searchsubmit").attr("value", ""); jQuery(".dd-search > form > div").append('<span class="dd-search-icon"></span>'); // For Mobile Menu Subitems if (jQuery("#dd-menu-mobile ul").hasClass("sub-menu")) { jQuery("#dd-menu-mobile").addClass("dd-submenu"); } }); (function($) { function setup_collapsible_submenus() { // mobile menu $('#dd-menu-mobile .mobile_nav .menu-item-has-children > a').after('<span class="menu-closed"></span>'); $('#dd-menu-mobile .mobile_nav .menu-item-has-children > a').each(function() { $(this).next().next('.sub-menu').toggleClass('hide', 1000); }); $('#dd-menu-mobile .mobile_nav .menu-item-has-children > a + span').on('click', function(event) { event.preventDefault(); $(this).toggleClass('menu-open'); $(this).next('.sub-menu').toggleClass('hide', 1000); }); } $(window).load(function() { setTimeout(function() { setup_collapsible_submenus(); }, 700); }); })(jQuery); }); document.addEventListener('DOMContentLoaded', function () { // Function to check the screen width and execute code if within range function isWithinWidthRange() { const width = window.innerWidth; return width <= 5000 && width >= 1100; } // Function to adjust column heights dynamically function adjustColumnHeights() { if (!isWithinWidthRange()) return; // Select all the elements const menuItems = [ document.querySelector('#mega-menu-1103276-1-0'), // First column (largest) document.querySelector('#mega-menu-1103276-1-1'), document.querySelector('#mega-menu-1103276-1-2') ]; // Reset heights to auto before recalculating menuItems.forEach(item => { item.style.height = 'auto'; }); // Get the height of the first column (largest) const largestHeight = menuItems[0]?.offsetHeight || 0; // Apply the largest height to all elements menuItems.forEach(item => { if (item) item.style.height = largestHeight + 'px'; }); } // Adjust column heights on page load adjustColumnHeights(); // Adjust column heights on window resize window.addEventListener('resize', adjustColumnHeights); }); document.addEventListener('DOMContentLoaded', function () { const ulElement = document.querySelector('#rpwwt-recent-posts-widget-with-thumbnails-3 ul'); // Add a click event listener to the `ul` function handleUlClick(event) { if (!isWithinWidthRange()) return; // Check if the click is on an empty space (simulate clicking the :after) if (event.target === ulElement) { // Redirect to /blog window.location.href = '/blog'; } } ulElement?.addEventListener('click', handleUlClick); }); // Function to enhance images and style titles function enhanceImagesAndTitles(selector) { if (!isWithinWidthRange()) return; const widgets = document.querySelectorAll(selector); widgets.forEach(widget => { // Select all images and titles within the widget const images = widget.querySelectorAll('ul li img'); const titles = widget.querySelectorAll('ul li .rpwwt-post-title'); // Make titles bold titles.forEach(title => { title.style.fontWeight = 'bold'; title.style.color = '#224c26'; }); // For images, set height to 100px and let the browser determine width images.forEach(img => { img.style.height = '100px'; // Fixed height img.style.width = ''; // Remove any width constraints img.style.objectFit = ''; // Reset object-fit if applied }); }); } // Apply enhancements to the widgets document.addEventListener('DOMContentLoaded', () => { enhanceImagesAndTitles('#rpwwt-recent-posts-widget-with-thumbnails-2'); enhanceImagesAndTitles('#rpwwt-recent-posts-widget-with-thumbnails-3'); // Reapply enhancements on window resize window.addEventListener('resize', () => { enhanceImagesAndTitles('#rpwwt-recent-posts-widget-with-thumbnails-2'); enhanceImagesAndTitles('#rpwwt-recent-posts-widget-with-thumbnails-3'); }); }); // Utility function to check width range function isWithinWidthRange() { const width = window.innerWidth; return width <= 5000 && width >= 1100; } document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-221280-1-0"), document.querySelector("#mega-menu-221280-1-1"), document.querySelector("#mega-menu-221280-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width > 1100; // Apply equal heights only when width is above 1100px } function equalizeHeights() { if (!isWithinWidthRange() || columns.some(col => !col)) { // Reset column heights when outside the range columns.forEach(col => { if (col) col.style.height = "auto"; }); return; } // Reset column heights to natural values before calculating columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns, capped at 330px const maxHeight = Math.min(330, Math.max(...columns.map(col => col.scrollHeight))); // Set the height for all columns based on the capped max height columns.forEach(col => (col.style.height = `${maxHeight}px`)); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); }); document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-1104355-1-0"), document.querySelector("#mega-menu-1104355-1-1"), document.querySelector("#mega-menu-1104355-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width > 1100; // Only apply equal heights when width is above 1100px } function equalizeHeights() { if (!isWithinWidthRange()) { // Reset column heights to auto when width is below 1100px columns.forEach(col => { if (col) col.style.height = "auto"; }); return; } // Reset column heights to natural values before recalculating columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns const maxHeight = Math.max(...columns.map(col => col?.scrollHeight || 0)); // Set the height for all columns based on the max height columns.forEach(col => { if (col) col.style.height = `${maxHeight}px`; }); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); }); document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-1104354-1-0"), document.querySelector("#mega-menu-1104354-1-1"), document.querySelector("#mega-menu-1104354-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width > 1100; // Only apply equal heights when width is above 1100px } function equalizeHeights() { if (!isWithinWidthRange()) { // Reset column heights to auto when width is below 1100px columns.forEach(col => { if (col) col.style.height = "auto"; }); return; } // Reset column heights to natural values before recalculating columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns const maxHeight = Math.max(...columns.map(col => col?.scrollHeight || 0)); // Set the height for all columns based on the max height columns.forEach(col => { if (col) col.style.height = `${maxHeight}px`; }); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); }); document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-15-1-0"), document.querySelector("#mega-menu-15-1-1"), document.querySelector("#mega-menu-15-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width > 1100; // Only apply equal heights when width is above 1100px } function equalizeHeights() { if (!isWithinWidthRange()) { // Reset column heights to auto when width is below 1100px columns.forEach(col => { if (col) col.style.height = "auto"; }); return; } // Reset column heights to natural values before recalculating columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns const maxHeight = Math.max(...columns.map(col => col?.scrollHeight || 0)); // Set the height for all columns based on the max height columns.forEach(col => { if (col) col.style.height = `${maxHeight}px`; }); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); }); document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-1103276-1-0"), document.querySelector("#mega-menu-1103276-1-1"), document.querySelector("#mega-menu-1103276-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width <= 5000 && width >= 1100; } function equalizeHeights() { if (!isWithinWidthRange() || columns.some(col => !col)) return; // Reset column heights to natural values columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns const maxHeight = Math.max(...columns.map(col => col.scrollHeight)); // Set the height for all columns based on the max height columns.forEach(col => (col.style.height = `${maxHeight}px`)); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); }); document.addEventListener("DOMContentLoaded", function () { const menuItems = document.querySelectorAll( "#mega-menu-wrap-primary-menu #mega-menu-primary-menu > li.mega-menu-item" ); const svgURL = "https://www.pearlaccountants.com/wp-content/uploads/2025/01/menu-cirle-3.svg"; menuItems.forEach(item => { const link = item.querySelector("a.mega-menu-link"); // Create the SVG element const svgIcon = document.createElement("img"); svgIcon.src = svgURL; svgIcon.alt = "Menu Icon"; svgIcon.style.width = "10px"; svgIcon.style.height = "10px"; svgIcon.style.marginRight = "8px"; svgIcon.style.verticalAlign = "middle"; svgIcon.classList.add("hover-svg-icon"); // Add a class for easy targeting // Add hover event listeners item.addEventListener("mouseenter", function () { if (link && !link.querySelector(".hover-svg-icon")) { link.prepend(svgIcon); // Add the icon on hover } }); item.addEventListener("mouseleave", function () { const existingIcon = link.querySelector(".hover-svg-icon"); if (existingIcon) { existingIcon.remove(); // Remove the icon when hover ends } }); }); }); document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-221281-1-0"), document.querySelector("#mega-menu-221281-1-1"), document.querySelector("#mega-menu-221281-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width > 1100; // Only apply equal heights when width is above 1100px } function equalizeHeights() { if (!isWithinWidthRange()) { // Reset column heights to auto when width is below 1100px columns.forEach(col => { if (col) col.style.height = "auto"; }); return; } // Reset column heights to natural values before recalculating columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns const maxHeight = Math.max(...columns.map(col => col?.scrollHeight || 0)); // Set the height for all columns based on the max height columns.forEach(col => { if (col) col.style.height = `${maxHeight}px`; }); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); });  020 8582 0076 INSTANT QUOTATION Services hidden Who we help Small Businesses Landlords E-commerce Sole Traders Freelancers Accountants For Startups About Contact Us How It Works Referral Resources Switching To Multilingual Accountants Recruitment Prices Services Accounting Services Company Statutory Accounts VAT Payroll Pensions & Auto-Enrolment Consolidated Accounts – Group Accounts CIS Tax Return Self-Assessment Tax Return Company Secretarial Services Company Formation Registered office Address Company Secretarial Share Transfer Tax Self-Assessment Tax Return Corporation Tax Capital Gains Tax Tax Investigation Tax Advisory Partnership Tax Return CIS Tax Return Finance Functions Credit Control Bookkeeping Business Plan services Cash flow Management Financial Forecasting Supplier Payments Payroll Managements & Payments Virtual FD Internal Audit & Assurance Legal Legal Business Helpline Founders Agreement Non-disclosure agreement Intellectual property Software Xero Quickbooks FreeAgent Pandadoc Sage Business insurance Kingsbridge Contractor Insurance Sole Trader & SME Insurance Who we help Small Businesses Landlords E-commerce Sole Traders Freelancers Accountants For Startups About Contact Us How It Works Referral Resources Switching To Multilingual Accountants Recruitment Price Compliance Services Finance Functions & Advisory Partners Accounting Services Stay compliant, stay confident, we handle the complexity. Company Statutory Accounts VAT Payroll Pensions & Auto-Enrolment Consolidated Accounts - Group Accounts Company Secretarial Services Company Formation Registered office Address Company Secretarial Share Transfer Tax Self-Assessment Tax Return Corporation Tax Capital Gains Tax Tax Investigation Tax Advisory Partnership Tax Return CIS Tax Return Looking for a Dedicated Accountant? Our Enterprise packages offer tailored support for you and your business. LEARN MORE Finance Functions Smart financial solutions to fuel your business growth. Credit Control Bookkeeping Business Plan services Cash flow Management Financial Forecasting Supplier Payments Payroll Managements & Payments Virtual FD Internal Audit & Assurance Legal Legal Business Helpline Founders Agreement Non-disclosure agreement Intellectual property Looking for a Dedicated Accountant? Our Enterprise packages offer tailored support for you and your business. LEARN MORE Partners Stronger together: Partnering for mutual success. Software Xero Quickbooks FreeAgent Pandle Pandadoc Sage Business insurance Kingsbridge Contractor Insurance Sole Trader & SME Insurance Looking for a Dedicated Accountant? Our Enterprise packages offer tailored support for you and your business. LEARN MORE Contact us Get in touch to tell us a bit more about your tax requirement, or if you would like to learn more about the range of accounting services we offer.  Schedule a meeting  Get in touch  Call or email Get in touch Leave your details and we’ll get in touch. Please enable JavaScript in your browser to complete this form.Please enable JavaScript in your browser to complete this form.Name *PhoneEmail *Business Type *Select Business TypeContractor (Ltd)Business (Ltd)Bookkeeping OnlyLandlordSole TraderOtherYour Message Name Your Email Subscribe to our newsletterYesNo ( function() { const style = document.createElement( 'style' ); style.appendChild( document.createTextNode( '#wpforms-1104488-field_3-container { position: absolute !important; overflow: hidden !important; display: inline !important; height: 1px !important; width: 1px !important; z-index: -1000 !important; padding: 0 !important; } #wpforms-1104488-field_3-container input { visibility: hidden; } #wpforms-conversational-form-page #wpforms-1104488-field_3-container label { counter-increment: none; }' ) ); document.head.appendChild( style ); document.currentScript?.remove(); } )(); GET IN TOUCH CONTACT OUR SUPPORT TEAM TO GROW YOUR BUSINESS SPEAK TO US NOW ON We’re Open for Business Monday-Friday 9am-5pm 020 8582 0076 EMAIL US AT To ask us a question or if you would like to find out more send us an email [email protected] Our offices Accountants LONDON L Accountants EAST LONDON L Accountants BRENTFORD L Accountants KINGSTON L Accountants HARROW L Accountants STAINES L Frequently asked questions Does the ICAEW accredit Pearl Accountants? Yes, we are certified by ICAEW, and as a result, we have the education and experience to work with clients ranging from small businesses to large corporations. How long will it take for me to hear back after I fill out this form? We try to get back the same working day or the next at the latest. What happens when I complete the contact us form? One of our certified professionals will call you. And talk about your needs. We will send you a custom quote based on our discussion for your approval. Once you’ve signed up, we’ll give you a call to go over the setup process, key accounting deadlines for your business, and the next steps. Can I get a free accounting consultation? Yes, we offer a free initial accounting consultation with no strings attached to ensure you are comfortable with how we work. Do you offer online consultations or meetings in person? We do both, and all you have to do is fill out the form and let us know what you prefer, whether by phone, Zoom or in person. You can meet at any of our offices listed on our website. window.addEventListener('DOMContentLoaded', function() { jQuery(function($){ $('.et_pb_toggle_title').click(function(){ var $toggle = $(this).closest('.et_pb_toggle'); if (!$toggle.hasClass('et_pb_accordion_toggling')) { var $accordion = $toggle.closest('.et_pb_accordion'); if ($toggle.hasClass('et_pb_toggle_open')) { $accordion.addClass('et_pb_accordion_toggling'); $toggle.find('.et_pb_toggle_content').slideToggle(700, function() { $toggle.removeClass('et_pb_toggle_open').addClass('et_pb_toggle_close'); }); } setTimeout(function(){ $accordion.removeClass('et_pb_accordion_toggling'); }, 750); } }); }); }); window.addEventListener('DOMContentLoaded', function() {jQuery(document).ready(function(){ // Add the et_pb_toggle_close class to all accordion items initially jQuery(".pa-accordion .et_pb_toggle").addClass("et_pb_toggle_close"); // Function to handle accordion toggle jQuery(".pa-accordion .et_pb_toggle").on("click", function(){ var $toggle = jQuery(this); var $content = $toggle.find('.et_pb_toggle_content'); // Check if the clicked accordion is already open if ($toggle.hasClass("et_pb_toggle_open")) { // If already open, close it $toggle.removeClass("et_pb_toggle_open").addClass("et_pb_toggle_close"); $content.slideUp(); } else { // If closed, open it and close other accordions // Close all other open accordions jQuery(".pa-accordion .et_pb_toggle.et_pb_toggle_open").each(function(){ var $openToggle = jQuery(this); var $openContent = $openToggle.find('.et_pb_toggle_content'); $openToggle.removeClass("et_pb_toggle_open").addClass("et_pb_toggle_close"); $openContent.slideUp(); }); // Open the clicked accordion $toggle.removeClass("et_pb_toggle_close").addClass("et_pb_toggle_open"); $content.slideDown(); } }); }); }); We’re here to help! Need a trusted partner to handle your accounting and tax matters? We’re here to help. Pearl Accountants offers reliable, expert support from your first enquiry to final delivery, all under one roof. We keep things simple, affordable, and fully transparent, so you can stay focused on what matters most: running your business. Get In touch Links Build with Love FollowFollowFollowFollowFollow Main Services Resources About Contact Us Legals Terms & Conditions Privacy Policy Cookies Referral Locations Brentford/Hounslow East London Kingston Harrow Staines London We Guarantee to never miss adeadline or your money back © 2025 Pearl Accountants. All Rights Reserved Registration No.07078392 {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/Divi\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} var et_link_options_data = [{"class":"et_pb_blurb_0_tb_header","url":"tel:+442085770200","target":"_self"},{"class":"et_pb_text_4","url":"\/accountants-in-london\/","target":"_self"},{"class":"et_pb_column_7","url":"\/accountants-in-east-london\/","target":"_self"},{"class":"et_pb_text_5","url":"\/accountants-in-east-london\/","target":"_self"},{"class":"et_pb_text_6","url":"\/accountants-in-brentford\/","target":"_self"},{"class":"et_pb_text_7","url":"\/accountants-in-kingston\/","target":"_self"},{"class":"et_pb_text_8","url":"\/accountants-in-harrow\/","target":"_self"},{"class":"et_pb_text_9","url":"\/accountants-in-staines\/","target":"_self"}]; window.addEventListener('DOMContentLoaded', function() { jQuery(window).on('load', function() { let hideTimer; jQuery('.open-menu').on('mouseenter', function() { clearTimeout(hideTimer); jQuery('.my-menu').addClass('force-show'); }); jQuery('.open-menu, .my-menu').on('mouseleave', function() { hideTimer = setTimeout(function() { jQuery('.my-menu').removeClass('force-show'); }, 300); }); jQuery('.my-menu').on('mouseenter', function() { clearTimeout(hideTimer); }); }); }); window.addEventListener('DOMContentLoaded', function() { jQuery(function($) { $(document).ready(function() { // 1) Replace href="#" to safe placeholder to avoid selector errors $('ul.et_mobile_menu a[href="#"]').attr('href', '#!'); // 2) Add mobile-toggle if not present $('ul.et_mobile_menu li.menu-item-has-children, ul.et_mobile_menu li.page_item_has_children').each(function() { var $li = $(this); if ($li.find('> .mobile-toggle').length === 0) { // keep it as a span (no href) $li.children('a').first().after('<span class="mobile-toggle" role="button" aria-label="Toggle submenu" tabindex="0"></span>'); } }); var $menu = $('ul.et_mobile_menu'); // Helper: close all open siblings function closeSiblings($li) { $li.siblings('.dt-open').removeClass('dt-open') .find('> ul.sub-menu, > ul.children').stop(true,true).slideUp(180) .removeClass('visible') .end().find('> .mobile-toggle').attr('aria-expanded','false'); } // 3) Click on the toggle icon — strong prevention of other handlers $(document).on('click', 'ul.et_mobile_menu .mobile-toggle', function(e) { e.preventDefault(); e.stopImmediatePropagation(); e.stopPropagation(); var $btn = $(this); var $li = $btn.closest('li'); // Accordion: close siblings closeSiblings($li); if ($li.hasClass('dt-open')) { $li.removeClass('dt-open'); $li.find('> ul.sub-menu, > ul.children').first().stop(true,true).slideUp(180).removeClass('visible'); $btn.attr('aria-expanded','false'); } else { $li.addClass('dt-open'); $li.find('> ul.sub-menu, > ul.children').first().stop(true,true).slideDown(180).addClass('visible'); $btn.attr('aria-expanded','true'); } }); // 4) Parent anchor click behaviour: // - If submenu closed: prevent navigation, open it (stopImmediatePropagation to prevent Divi handlers) // - If submenu already open: allow natural navigation $(document).on('click', 'ul.et_mobile_menu li.menu-item-has-children > a, ul.et_mobile_menu li.page_item_has_children > a', function(e) { var $a = $(this); var $li = $a.closest('li'); // If submenu is NOT open, first tap should open the submenu instead of navigating if (!$li.hasClass('dt-open')) { e.preventDefault(); e.stopImmediatePropagation(); e.stopPropagation(); // open via the same toggle logic (keeps behavior consistent) var $btn = $li.find('> .mobile-toggle'); if ($btn.length) { $btn.trigger('click'); } else { // fallback closeSiblings($li); $li.addClass('dt-open').find('> ul.sub-menu, > ul.children').first().stop(true,true).slideDown(180).addClass('visible'); } return false; } // else allow click to proceed (user clearly wants to navigate) }); // 5) Prevent submenu-link clicks from bubbling (keeps parent open while navigation occurs) $(document).on('click', 'ul.et_mobile_menu li.menu-item-has-children ul.sub-menu a, ul.et_mobile_menu li.page_item_has_children ul.children a', function(e) { e.stopPropagation(); // allow default navigation }); // 6) Close menus when clicking outside the mobile menu $(document).on('click touchstart', function(e) { if ($(e.target).closest('ul.et_mobile_menu').length === 0) { $menu.find('.dt-open').removeClass('dt-open') .find('> ul.sub-menu, > ul.children').stop(true,true).slideUp(160).removeClass('visible'); $menu.find('.mobile-toggle').attr('aria-expanded','false'); } }); // 7) Escape key closes menus $(document).on('keydown', function(e) { if (e.key === 'Escape' || e.key === 'Esc') { $menu.find('.dt-open').removeClass('dt-open') .find('> ul.sub-menu, > ul.children').stop(true,true).slideUp(160).removeClass('visible'); $menu.find('.mobile-toggle').attr('aria-expanded','false'); } }); }); }); }); /* <![CDATA[ */ var rocket_lazyload_css_data = {"threshold":"300"}; /* ]]> */ /* <![CDATA[ */ !function o(n,c,a){function u(t,e){if(!c[t]){if(!n[t]){var r="function"==typeof require&&require;if(!e&&r)return r(t,!0);if(s)return s(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}r=c[t]={exports:{}},n[t][0].call(r.exports,function(e){return u(n[t][1][e]||e)},r,r.exports,o,n,c,a)}return c[t].exports}for(var s="function"==typeof require&&require,e=0;e<a.length;e++)u(a[e]);return u}({1:[function(e,t,r){"use strict";{const c="undefined"==typeof rocket_pairs?[]:rocket_pairs,a=(("undefined"==typeof rocket_excluded_pairs?[]:rocket_excluded_pairs).map(t=>{var e=t.selector;document.querySelectorAll(e).forEach(e=>{e.setAttribute("data-rocket-lazy-bg-"+t.hash,"excluded")})}),document.querySelector("#wpr-lazyload-bg-container"));var o=rocket_lazyload_css_data.threshold||300;const u=new IntersectionObserver(e=>{e.forEach(t=>{t.isIntersecting&&c.filter(e=>t.target.matches(e.selector)).map(t=>{var e;t&&((e=document.createElement("style")).textContent=t.style,a.insertAdjacentElement("afterend",e),t.elements.forEach(e=>{u.unobserve(e),e.setAttribute("data-rocket-lazy-bg-"+t.hash,"loaded")}))})})},{rootMargin:o+"px"});function n(){0<(0<arguments.length&&void 0!==arguments[0]?arguments[0]:[]).length&&c.forEach(t=>{try{document.querySelectorAll(t.selector).forEach(e=>{"loaded"!==e.getAttribute("data-rocket-lazy-bg-"+t.hash)&&"excluded"!==e.getAttribute("data-rocket-lazy-bg-"+t.hash)&&(u.observe(e),(t.elements||=[]).push(e))})}catch(e){console.error(e)}})}n(),function(){const r=window.MutationObserver;return function(e,t){if(e&&1===e.nodeType)return(t=new r(t)).observe(e,{attributes:!0,childList:!0,subtree:!0}),t}}()(document.querySelector("body"),n)}},{}]},{},[1]); /* ]]> */ /* <![CDATA[ */ var DIVI = {"item_count":"%d Item","items_count":"%d Items"}; var et_builder_utils_params = {"condition":{"diviTheme":true,"extraTheme":false},"scrollLocations":["app","top"],"builderScrollLocations":{"desktop":"app","tablet":"app","phone":"app"},"onloadScrollLocation":"app","builderType":"fe"}; var et_frontend_scripts = {"builderCssContainerPrefix":"#et-boc","builderCssLayoutPrefix":"#et-boc .et-l"}; var et_pb_custom = {"ajaxurl":"https:\/\/www.pearlaccountants.com\/wp-admin\/admin-ajax.php","images_uri":"https:\/\/www.pearlaccountants.com\/wp-content\/themes\/Divi\/images","builder_images_uri":"https:\/\/www.pearlaccountants.com\/wp-content\/themes\/Divi\/includes\/builder\/images","et_frontend_nonce":"07ae5e9f08","subscription_failed":"Please, check the fields below to make sure you entered the correct information.","et_ab_log_nonce":"27f3f8aa52","fill_message":"Please, fill in the following fields:","contact_error_message":"Please, fix the following errors:","invalid":"Invalid email","captcha":"Captcha","prev":"Prev","previous":"Previous","next":"Next","wrong_captcha":"You entered the wrong number in captcha.","wrong_checkbox":"Checkbox","ignore_waypoints":"no","is_divi_theme_used":"1","widget_search_selector":".widget_search","ab_tests":[],"is_ab_testing_active":"","page_id":"5083","unique_test_id":"","ab_bounce_rate":"5","is_cache_plugin_active":"yes","is_shortcode_tracking":"","tinymce_uri":"https:\/\/www.pearlaccountants.com\/wp-content\/themes\/Divi\/includes\/builder\/frontend-builder\/assets\/vendors","accent_color":"#224c26","waypoints_options":[]}; var et_pb_box_shadow_elements = []; /* ]]> */ /* <![CDATA[ */ var wpforms_choicesjs_config = {"removeItemButton":"1","shouldSort":"","fuseOptions":{"threshold":0.1,"distance":1000},"loadingText":"Loading...","noResultsText":"No results found","noChoicesText":"No choices to choose from","uniqueItemText":"Only unique values can be added","customAddItemText":"Only values matching specific conditions can be added"}; /* ]]> */ /* <![CDATA[ */ var wpforms_settings = {"val_required":"This field is required.","val_email":"Please enter a valid email address.","val_email_suggestion":"Did you mean {suggestion}?","val_email_suggestion_title":"Click to accept this suggestion.","val_email_restricted":"This email address is not allowed.","val_number":"Please enter a valid number.","val_number_positive":"Please enter a valid positive number.","val_minimum_price":"Amount entered is less than the required minimum.","val_confirm":"Field values do not match.","val_checklimit":"You have exceeded the number of allowed selections: {#}.","val_limit_characters":"{count} of {limit} max characters.","val_limit_words":"{count} of {limit} max words.","val_min":"Please enter a value greater than or equal to {0}.","val_max":"Please enter a value less than or equal to {0}.","val_recaptcha_fail_msg":"Google reCAPTCHA verification failed, please try again later.","val_turnstile_fail_msg":"Cloudflare Turnstile verification failed, please try again later.","val_inputmask_incomplete":"Please fill out the field in required format.","uuid_cookie":"1","locale":"en","country":"","country_list_label":"Country list","wpforms_plugin_url":"https:\/\/www.pearlaccountants.com\/wp-content\/plugins\/wpforms\/","gdpr":"","ajaxurl":"https:\/\/www.pearlaccountants.com\/wp-admin\/admin-ajax.php","mailcheck_enabled":"1","mailcheck_domains":[],"mailcheck_toplevel_domains":["dev"],"is_ssl":"1","currency_code":"USD","currency_thousands":",","currency_decimals":"2","currency_decimal":".","currency_symbol":"$","currency_symbol_pos":"left","val_requiredpayment":"Payment is required.","val_creditcard":"Please enter a valid credit card number.","css_vars":["field-border-radius","field-border-style","field-border-size","field-background-color","field-border-color","field-text-color","field-menu-color","label-color","label-sublabel-color","label-error-color","button-border-radius","button-border-style","button-border-size","button-background-color","button-border-color","button-text-color","page-break-color","background-image","background-position","background-repeat","background-size","background-width","background-height","background-color","background-url","container-padding","container-border-style","container-border-width","container-border-color","container-border-radius","field-size-input-height","field-size-input-spacing","field-size-font-size","field-size-line-height","field-size-padding-h","field-size-checkbox-size","field-size-sublabel-spacing","field-size-icon-size","label-size-font-size","label-size-line-height","label-size-sublabel-font-size","label-size-sublabel-line-height","button-size-font-size","button-size-height","button-size-padding-h","button-size-margin-top","container-shadow-size-box-shadow"],"val_post_max_size":"The total size of the selected files {totalSize} MB exceeds the allowed limit {maxSize} MB.","val_time12h":"Please enter time in 12-hour AM\/PM format (eg 8:45 AM).","val_time24h":"Please enter time in 24-hour format (eg 22:45).","val_time_limit":"Please enter time between {minTime} and {maxTime}.","val_url":"Please enter a valid URL.","val_fileextension":"File type is not allowed.","val_filesize":"File exceeds max size allowed. File was not uploaded.","post_max_size":"629145600","isModernMarkupEnabled":"1","formErrorMessagePrefix":"Form error message","errorMessagePrefix":"Error message","submitBtnDisabled":"Submit button is disabled during form submission.","readOnlyDisallowedFields":["captcha","repeater","content","divider","hidden","html","entry-preview","pagebreak","layout","payment-total"],"error_updating_token":"Error updating token. Please try again or contact support if the issue persists.","network_error":"Network error or server is unreachable. Check your connection or try again later.","token_cache_lifetime":"86400","hn_data":{"1104488":3},"address_field":{"list_countries_without_states":["GB","DE","CH","NL"]},"val_phone":"Please enter a valid phone number.","val_password_strength":"A stronger password is required. Consider using upper and lower case letters, numbers, and symbols.","entry_preview_iframe_styles":["https:\/\/www.pearlaccountants.com\/wp-includes\/js\/tinymce\/skins\/lightgray\/content.min.css?ver=6.8.3","https:\/\/www.pearlaccountants.com\/wp-includes\/css\/dashicons.min.css?ver=6.8.3","https:\/\/www.pearlaccountants.com\/wp-includes\/js\/tinymce\/skins\/wordpress\/wp-content.css?ver=6.8.3","https:\/\/www.pearlaccountants.com\/wp-content\/plugins\/wpforms\/assets\/pro\/css\/fields\/richtext\/editor-content.min.css"],"indicatorStepsPattern":"Step {current} of {total}"} /* ]]> */ window.lazyLoadOptions=[{elements_selector:"img[data-lazy-src],.rocket-lazyload,iframe[data-lazy-src]",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}},{elements_selector:".rocket-lazyload",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,}];window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(var i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue} if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue} images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1} if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1)
Emails:
View text
window.addEventListener('DOMContentLoaded', function() { jQuery(document).ready(function() { // For Making The Header Fixed + Custom Styling + Padding-top jQuery(window).scroll(function() { var scroll = jQuery(window).scrollTop(); if (scroll >= 55) { jQuery("header.et-l--header").addClass("dd-cfixed-header"); jQuery(".dd-fixed-header").addClass("dd-fixed-header-styling"); } else { jQuery("header.et-l--header").removeClass("dd-cfixed-header"); jQuery(".dd-fixed-header").removeClass("dd-fixed-header-styling"); } }); // For Mobile Menu jQuery("#dd-hamburger").click(function() { jQuery("#dd-section").toggleClass("dd-m-menu"); }); jQuery("#dd-close").click(function() { jQuery("#dd-section").toggleClass("dd-m-menu"); }); // For Search Icon jQuery(".dd-search .et_pb_searchsubmit").attr("value", ""); jQuery(".dd-search > form > div").append('<span class="dd-search-icon"></span>'); // For Mobile Menu Subitems if (jQuery("#dd-menu-mobile ul").hasClass("sub-menu")) { jQuery("#dd-menu-mobile").addClass("dd-submenu"); } }); (function($) { function setup_collapsible_submenus() { // mobile menu $('#dd-menu-mobile .mobile_nav .menu-item-has-children > a').after('<span class="menu-closed"></span>'); $('#dd-menu-mobile .mobile_nav .menu-item-has-children > a').each(function() { $(this).next().next('.sub-menu').toggleClass('hide', 1000); }); $('#dd-menu-mobile .mobile_nav .menu-item-has-children > a + span').on('click', function(event) { event.preventDefault(); $(this).toggleClass('menu-open'); $(this).next('.sub-menu').toggleClass('hide', 1000); }); } $(window).load(function() { setTimeout(function() { setup_collapsible_submenus(); }, 700); }); })(jQuery); }); document.addEventListener('DOMContentLoaded', function () { // Function to check the screen width and execute code if within range function isWithinWidthRange() { const width = window.innerWidth; return width <= 5000 && width >= 1100; } // Function to adjust column heights dynamically function adjustColumnHeights() { if (!isWithinWidthRange()) return; // Select all the elements const menuItems = [ document.querySelector('#mega-menu-1103276-1-0'), // First column (largest) document.querySelector('#mega-menu-1103276-1-1'), document.querySelector('#mega-menu-1103276-1-2') ]; // Reset heights to auto before recalculating menuItems.forEach(item => { item.style.height = 'auto'; }); // Get the height of the first column (largest) const largestHeight = menuItems[0]?.offsetHeight || 0; // Apply the largest height to all elements menuItems.forEach(item => { if (item) item.style.height = largestHeight + 'px'; }); } // Adjust column heights on page load adjustColumnHeights(); // Adjust column heights on window resize window.addEventListener('resize', adjustColumnHeights); }); document.addEventListener('DOMContentLoaded', function () { const ulElement = document.querySelector('#rpwwt-recent-posts-widget-with-thumbnails-3 ul'); // Add a click event listener to the `ul` function handleUlClick(event) { if (!isWithinWidthRange()) return; // Check if the click is on an empty space (simulate clicking the :after) if (event.target === ulElement) { // Redirect to /blog window.location.href = '/blog'; } } ulElement?.addEventListener('click', handleUlClick); }); // Function to enhance images and style titles function enhanceImagesAndTitles(selector) { if (!isWithinWidthRange()) return; const widgets = document.querySelectorAll(selector); widgets.forEach(widget => { // Select all images and titles within the widget const images = widget.querySelectorAll('ul li img'); const titles = widget.querySelectorAll('ul li .rpwwt-post-title'); // Make titles bold titles.forEach(title => { title.style.fontWeight = 'bold'; title.style.color = '#224c26'; }); // For images, set height to 100px and let the browser determine width images.forEach(img => { img.style.height = '100px'; // Fixed height img.style.width = ''; // Remove any width constraints img.style.objectFit = ''; // Reset object-fit if applied }); }); } // Apply enhancements to the widgets document.addEventListener('DOMContentLoaded', () => { enhanceImagesAndTitles('#rpwwt-recent-posts-widget-with-thumbnails-2'); enhanceImagesAndTitles('#rpwwt-recent-posts-widget-with-thumbnails-3'); // Reapply enhancements on window resize window.addEventListener('resize', () => { enhanceImagesAndTitles('#rpwwt-recent-posts-widget-with-thumbnails-2'); enhanceImagesAndTitles('#rpwwt-recent-posts-widget-with-thumbnails-3'); }); }); // Utility function to check width range function isWithinWidthRange() { const width = window.innerWidth; return width <= 5000 && width >= 1100; } document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-221280-1-0"), document.querySelector("#mega-menu-221280-1-1"), document.querySelector("#mega-menu-221280-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width > 1100; // Apply equal heights only when width is above 1100px } function equalizeHeights() { if (!isWithinWidthRange() || columns.some(col => !col)) { // Reset column heights when outside the range columns.forEach(col => { if (col) col.style.height = "auto"; }); return; } // Reset column heights to natural values before calculating columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns, capped at 330px const maxHeight = Math.min(330, Math.max(...columns.map(col => col.scrollHeight))); // Set the height for all columns based on the capped max height columns.forEach(col => (col.style.height = `${maxHeight}px`)); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); }); document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-1104355-1-0"), document.querySelector("#mega-menu-1104355-1-1"), document.querySelector("#mega-menu-1104355-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width > 1100; // Only apply equal heights when width is above 1100px } function equalizeHeights() { if (!isWithinWidthRange()) { // Reset column heights to auto when width is below 1100px columns.forEach(col => { if (col) col.style.height = "auto"; }); return; } // Reset column heights to natural values before recalculating columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns const maxHeight = Math.max(...columns.map(col => col?.scrollHeight || 0)); // Set the height for all columns based on the max height columns.forEach(col => { if (col) col.style.height = `${maxHeight}px`; }); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); }); document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-1104354-1-0"), document.querySelector("#mega-menu-1104354-1-1"), document.querySelector("#mega-menu-1104354-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width > 1100; // Only apply equal heights when width is above 1100px } function equalizeHeights() { if (!isWithinWidthRange()) { // Reset column heights to auto when width is below 1100px columns.forEach(col => { if (col) col.style.height = "auto"; }); return; } // Reset column heights to natural values before recalculating columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns const maxHeight = Math.max(...columns.map(col => col?.scrollHeight || 0)); // Set the height for all columns based on the max height columns.forEach(col => { if (col) col.style.height = `${maxHeight}px`; }); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); }); document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-15-1-0"), document.querySelector("#mega-menu-15-1-1"), document.querySelector("#mega-menu-15-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width > 1100; // Only apply equal heights when width is above 1100px } function equalizeHeights() { if (!isWithinWidthRange()) { // Reset column heights to auto when width is below 1100px columns.forEach(col => { if (col) col.style.height = "auto"; }); return; } // Reset column heights to natural values before recalculating columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns const maxHeight = Math.max(...columns.map(col => col?.scrollHeight || 0)); // Set the height for all columns based on the max height columns.forEach(col => { if (col) col.style.height = `${maxHeight}px`; }); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); }); document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-1103276-1-0"), document.querySelector("#mega-menu-1103276-1-1"), document.querySelector("#mega-menu-1103276-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width <= 5000 && width >= 1100; } function equalizeHeights() { if (!isWithinWidthRange() || columns.some(col => !col)) return; // Reset column heights to natural values columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns const maxHeight = Math.max(...columns.map(col => col.scrollHeight)); // Set the height for all columns based on the max height columns.forEach(col => (col.style.height = `${maxHeight}px`)); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); }); document.addEventListener("DOMContentLoaded", function () { const menuItems = document.querySelectorAll( "#mega-menu-wrap-primary-menu #mega-menu-primary-menu > li.mega-menu-item" ); const svgURL = "https://www.pearlaccountants.com/wp-content/uploads/2025/01/menu-cirle-3.svg"; menuItems.forEach(item => { const link = item.querySelector("a.mega-menu-link"); // Create the SVG element const svgIcon = document.createElement("img"); svgIcon.src = svgURL; svgIcon.alt = "Menu Icon"; svgIcon.style.width = "10px"; svgIcon.style.height = "10px"; svgIcon.style.marginRight = "8px"; svgIcon.style.verticalAlign = "middle"; svgIcon.classList.add("hover-svg-icon"); // Add a class for easy targeting // Add hover event listeners item.addEventListener("mouseenter", function () { if (link && !link.querySelector(".hover-svg-icon")) { link.prepend(svgIcon); // Add the icon on hover } }); item.addEventListener("mouseleave", function () { const existingIcon = link.querySelector(".hover-svg-icon"); if (existingIcon) { existingIcon.remove(); // Remove the icon when hover ends } }); }); }); document.addEventListener("DOMContentLoaded", function () { const columns = [ document.querySelector("#mega-menu-221281-1-0"), document.querySelector("#mega-menu-221281-1-1"), document.querySelector("#mega-menu-221281-1-2"), ]; // Utility function to check if the screen width is within range function isWithinWidthRange() { const width = window.innerWidth; return width > 1100; // Only apply equal heights when width is above 1100px } function equalizeHeights() { if (!isWithinWidthRange()) { // Reset column heights to auto when width is below 1100px columns.forEach(col => { if (col) col.style.height = "auto"; }); return; } // Reset column heights to natural values before recalculating columns.forEach(col => (col.style.height = "auto")); // Get the max height among all columns const maxHeight = Math.max(...columns.map(col => col?.scrollHeight || 0)); // Set the height for all columns based on the max height columns.forEach(col => { if (col) col.style.height = `${maxHeight}px`; }); } // Equalize heights initially equalizeHeights(); // Add a resize event listener to handle content growth or viewport changes window.addEventListener("resize", equalizeHeights); // Add a MutationObserver to detect content changes dynamically columns.forEach(column => { if (!column) return; const observer = new MutationObserver(() => { equalizeHeights(); }); observer.observe(column, { childList: true, subtree: true, characterData: true, }); }); });  020 8582 0076 INSTANT QUOTATION Services hidden Who we help Small Businesses Landlords E-commerce Sole Traders Freelancers Accountants For Startups About Contact Us How It Works Referral Resources Switching To Multilingual Accountants Recruitment Prices Services Accounting Services Company Statutory Accounts VAT Payroll Pensions & Auto-Enrolment Consolidated Accounts – Group Accounts CIS Tax Return Self-Assessment Tax Return Company Secretarial Services Company Formation Registered office Address Company Secretarial Share Transfer Tax Self-Assessment Tax Return Corporation Tax Capital Gains Tax Tax Investigation Tax Advisory Partnership Tax Return CIS Tax Return Finance Functions Credit Control Bookkeeping Business Plan services Cash flow Management Financial Forecasting Supplier Payments Payroll Managements & Payments Virtual FD Internal Audit & Assurance Legal Legal Business Helpline Founders Agreement Non-disclosure agreement Intellectual property Software Xero Quickbooks FreeAgent Pandadoc Sage Business insurance Kingsbridge Contractor Insurance Sole Trader & SME Insurance Who we help Small Businesses Landlords E-commerce Sole Traders Freelancers Accountants For Startups About Contact Us How It Works Referral Resources Switching To Multilingual Accountants Recruitment Price Compliance Services Finance Functions & Advisory Partners Accounting Services Stay compliant, stay confident, we handle the complexity. Company Statutory Accounts VAT Payroll Pensions & Auto-Enrolment Consolidated Accounts - Group Accounts Company Secretarial Services Company Formation Registered office Address Company Secretarial Share Transfer Tax Self-Assessment Tax Return Corporation Tax Capital Gains Tax Tax Investigation Tax Advisory Partnership Tax Return CIS Tax Return Looking for a Dedicated Accountant? Our Enterprise packages offer tailored support for you and your business. LEARN MORE Finance Functions Smart financial solutions to fuel your business growth. Credit Control Bookkeeping Business Plan services Cash flow Management Financial Forecasting Supplier Payments Payroll Managements & Payments Virtual FD Internal Audit & Assurance Legal Legal Business Helpline Founders Agreement Non-disclosure agreement Intellectual property Looking for a Dedicated Accountant? Our Enterprise packages offer tailored support for you and your business. LEARN MORE Partners Stronger together: Partnering for mutual success. Software Xero Quickbooks FreeAgent Pandle Pandadoc Sage Business insurance Kingsbridge Contractor Insurance Sole Trader & SME Insurance Looking for a Dedicated Accountant? Our Enterprise packages offer tailored support for you and your business. LEARN MORE Expert business accountants in London OUR PRICES Get In touch Best breed of London accountants As one of the UK’s leading chartered accountancy firms, we’ve helped thousands of freelancers, contractors, e-commerce ventures, and SMEs thrive. From accounting and tax to business growth strategies, our expert guidance spans a wide range of industries. Free nationwide consultation Fixed monthly packages Get In touch Tailored accounting services CompanyAccounts Bookkeeping Vat Payroll Auto Enrolment Part-time Finance Director Business Tax Advice Tax Investigation Company Formation Registered Address Business Legal Support Software Integration Personal Tax Visa CIS Tax Return Partnership Accounting Tailored accounting services CompanyAccounts Bookkeeping Vat Payroll CompanyAccounts Bookkeeping Vat Payroll Auto Enrolment Part-time Finance Director Business Tax Advice Tax Investigation Company Formation Registered Address Business Legal Support Software Integration Personal Tax Visa CIS Tax Return Partnership Accounting More Services window.addEventListener('DOMContentLoaded', function() { jQuery(document).ready(function($) { $('#more-services-btn').on('click', function(e) { e.preventDefault(); const $section = $('#more-service'); if ($section.is(':visible')) { // Hide again (optional) $section.removeClass('show'); setTimeout(() => $section.hide(), 400); } else { // Show with animation $section.show(0, function() { $(this).addClass('show'); $('html, body').animate({ scrollTop: $(this).offset().top - 100 }, 500); }); } }); }); }); Empowering London’s Startups & SMEs We support contractors, freelancers, landlords, and growing businesses with expert accounting, financial reporting, and year-end compliance, tailored to each sector’s needs.  Business  Contractors  Landlords  E-Commerce Business Our accounting specialists help businesses take control of their finances, meet legal requirements, and stay compliant year-round. Whether you're launching, scaling, or restructuring, we offer tailored services to support your goals with precision and care. VIEW DETAILS Contractors Managing your finances as a contractor shouldn’t drain your time or energy. Pearl Accountants offers tailored, efficient accounting services designed to help contractors stay compliant with IR35 regulations and other legal obligations. Our expert team handles your reporting, tax planning, and accounts, giving you the peace of mind and freedom to focus on your projects. VIEW DETAILS Landlords Being a landlord means navigating income, expenses, and legal obligations. At Pearl Accountants, we help landlords maximize profits with thoughtful tax planning, tailored property accounting, and expert guidance on allowable costs, rental income, and capital gains. Our experienced team ensures you stay compliant and financially efficient, whether you manage a single property or a growing portfolio. VIEW DETAILS E-Commerce Running an online store requires more than just great products; it demands accurate financial management and expertise in the marketplace. Pearl Accountants offers specialised e-commerce accounting tailored to sellers on Amazon, Shopify, eBay, Etsy, and other platforms. From inventory tracking and sales reconciliation to VAT compliance and profit reporting, we help you streamline operations and stay financially healthy as you scale your brand. VIEW DETAILS Our client joined us after losing track of their finances and needed someone they could turn to for help. We came on board and reviewed their internal bookkeeping arrangements and recommended efficiency to lower their input on areas which could be outsourced to us. - ROSIE ABRAHAMS HECTIC, HAT HIRE SHOP Powerful accounting integrations Connect your accounts with Xero, QuickBooks, Shopify, Amazon & more all in one place. Your expert accountants for QuickBooks As certified QuickBooks accountants in London, we’ve supported freelancers, landlords, and small businesses across the UK for over 30 years. Our ICAEW, ACCA, and AAT-qualified team gives you complete confidence that your finances are expertly managed. Whether you’re new to QuickBooks or already using it, we’ll help with setup, migration, and ongoing management keeping your accounts accurate, compliant, and ready for Making Tax Digital. Clients also receive hands-on QuickBooks training to help them feel confident managing their books day to day. With Pearl, you’ll have a dedicated QuickBooks accountant who understands your business and uses cloud technology to provide real-time financial clarity and performance insights. Amazon Integrate your Amazon Seller Central account to automatically track sales, fees, refunds, and inventory. Stay tax compliant while growing your online store. Shopify Connect your Shopify store to your financial records to automatically track orders, report sales, and calculate taxes, allowing you to spend more time on sales. Sage Sage helps you manage your finances with tools for invoicing, payroll taxes, and reporting, making it perfect for those seeking clarity and control. Stripe Utilize Stripe for managing online transactions, subscriptions, and payments, complete with automated bookkeeping and real-time insights. Your Pearl accountants as your Xero Accountants We’re a trusted firm of Chartered Accountants in London, specialising in Xero accounting software for startups and growing businesses. As certified Xero partners, we help hundreds of UK entrepreneurs, small business owners, and eCommerce brands get the most out of Xero’s powerful tools. From setup and migration to day-to-day bookkeeping, payroll, and VAT, our team ensures you use Xero to its full potential while staying fully HMRC and MTD compliant. We make it simple to set up and manage your accounts through Xero, and with Pearl’s dedicated accountants by your side, you’ll also gain proactive advice, personal support, and real-time insights that help your business grow with confidence. FreeAgent Certified Accountants As certified FreeAgent accountants in London, we’re trusted by freelancers, contractors, and small businesses across the UK. Our FreeAgent accreditation ensures we meet the platform’s highest standards for setup, training, and optimisation giving you complete clarity and confidence in your financial data. At Pearl, you don’t just get software, you get expert FreeAgent accountants who know how to customise and manage the system around your business goals. From initial setup to ongoing support, we make sure your accounts stay accurate, compliant, and fully cloud-optimised. ICAEW, ATT, and FreeAgent Certified Specialists in cloud accounting, tax, and compliance End-to-end setup, migration, and ongoing system support We’re a Certified Pandle Pro Partner As trusted Pandle accountants, we help businesses get the most out of this intuitive cloud accounting software. Designed for freelancers, startups, and growing companies, Pandle makes bookkeeping simple, accurate, and stress-free. With automation tools, real-time insights, and seamless compliance features, it’s a cost-effective way to stay in control of your finances. HubDoc Hubdoc retrieves bills, receipts, and statements directly from your accounts and automatically syncs them to your books, backing up the source document. Dext Dext efficiently extracts data from receipts and invoices, saving time and minimising errors in your financial records. AutoEntry AutoEntry digitizes your bills, receipts, and bank statements, seamlessly integrating them into your accounting software. Vend Vend connects your point-of-sale system to your accounts, syncing sales, inventory, and payments in real-time for a comprehensive financial overview. Accountants for every step ahead Grow your business We help you grow with tailored strategies that match your goals, industry, and stage of business. Whether you’re just starting or scaling up, our experts bring clarity, objectivity, and direction to help you achieve lasting success. Integrate all your softwares We integrate your accounting systems with platforms such as Xero, QuickBooks, Shopify, and Amazon, ensuring seamless data flow throughout your business. Save time, reduce errors, and get real-time visibility into your finances by connecting your software tools through one expert-led solution. Industry specific accountants Our ICAEW-regulated accountants bring sector-specific expertise to your business from day one. They’re familiar with your industry’s challenges and your preferred accounting tools, ensuring tailored advice that fits your operations. More than just number crunchers, they act as growth partners, helping you plan, optimize, and succeed. We take the stress out of managing your accounts Managing your accounts shouldn’t be overwhelming. At Pearl, we simplify your finances with expert guidance on taxes, payroll, VAT, and reporting, ensuring everything runs smoothly. Our end-to-end support takes the pressure off, so you can focus on growing your business, not managing the books. All in one package From bookkeeping and payroll to tax, legal, and advisory, everything your business needs, in one tailored package. Pearl Accountants delivers comprehensive support under one roof, saving you time, reducing costs, and simplifying your entire financial operation. window.addEventListener('DOMContentLoaded', function() { $(document).ready(function(){ // Initialize state $('.img-con .img1').css({ 'opacity': 1, 'z-index': 999 }); $('.img-con .img2, .img-con .img3, .img-con .img4, .img-con .img5').css({ 'opacity': 0, 'z-index': 0 }); // Click handlers $('.et_pb_accordion_item_0').click(function(){ $('.img-con .img2, .img-con .img3, .img-con .img4, .img-con .img5').css('opacity', 0); $('.img-con .img1').css({ 'opacity': 1, 'z-index': 999 }); }); $('.et_pb_accordion_item_1').click(function(){ $('.img-con .img1, .img-con .img3, .img-con .img4, .img-con .img5').css('opacity', 0); $('.img-con .img2').css({ 'opacity': 1, 'z-index': 999 }); }); $('.et_pb_accordion_item_2').click(function(){ $('.img-con .img1, .img-con .img2, .img-con .img4, .img-con .img5').css('opacity', 0); $('.img-con .img3').css({ 'opacity': 1, 'z-index': 999 }); }); $('.et_pb_accordion_item_3').click(function(){ $('.img-con .img1, .img-con .img2, .img-con .img3, .img-con .img5').css('opacity', 0); $('.img-con .img4').css({ 'opacity': 1, 'z-index': 999 }); }); $('.et_pb_accordion_item_4').click(function(){ $('.img-con .img1, .img-con .img2, .img-con .img3, .img-con .img4').css('opacity', 0); $('.img-con .img5').css({ 'opacity': 1, 'z-index': 999 }); }); }); }); How our accounting process works? Signup Contact us to receive a tailored proposal outlining the services and pricing that best match your business needs. Onboarding Your dedicated accountant will guide you through the onboarding process, answering questions and setting everything up step-by-step. Software setup Gain full access to our secure online portal. Your accountant will ensure your software is configured for smooth, accurate financial management. Great accountants who are highly professional and reliable in providing top-notch financial services for businesses. – PETER JOHNSON, CEO Seamless accounting starts here Switching to Pearl is easier than you think. Whether you’re moving from another firm or just starting out, we’ll handle everything with minimal effort on your part. Start with Pearl today Sign your engagement letter to get started, we’ll take care of the rest. Notifying your Accountant Already working with someone? No problem. We’ll contact them and request the necessary handover. We’ll do the work for you You just give us access to your existing software or records by post or online, and we’ll manage the entire setup for you. View Details Frequently asked questions Is Pearl Accountants regulated? Yes, we are certified to provide accounting and tax-related services by the Institute of Chartered Accountants of England and Wales, as well as other professional organisations. How can I contact you? Simply click the link at the top of this page to arrange an appointment with one of our specialists. Can you help me switch from another accounting firm? Yes, we will make sure that all your data and accounting information is transferred to us smoothly; we do this on your behalf. Is a face-to-face meeting required, or can everything be done online? You are welcome to visit our offices in person, but we also offer the convenience of meeting with us online through video conferencing. How can I get started? You may either click the “Instant Quotation” button at the top of this page or contact us to set up a meeting (in person or remotely). window.addEventListener('DOMContentLoaded', function() { jQuery(function($){ $('.et_pb_toggle_title').click(function(){ var $toggle = $(this).closest('.et_pb_toggle'); if (!$toggle.hasClass('et_pb_accordion_toggling')) { var $accordion = $toggle.closest('.et_pb_accordion'); if ($toggle.hasClass('et_pb_toggle_open')) { $accordion.addClass('et_pb_accordion_toggling'); $toggle.find('.et_pb_toggle_content').slideToggle(700, function() { $toggle.removeClass('et_pb_toggle_open').addClass('et_pb_toggle_close'); }); } setTimeout(function(){ $accordion.removeClass('et_pb_accordion_toggling'); }, 750); } }); }); }); window.addEventListener('DOMContentLoaded', function() {jQuery(document).ready(function(){ // Add the et_pb_toggle_close class to all accordion items initially jQuery(".pa-accordion .et_pb_toggle").addClass("et_pb_toggle_close"); // Function to handle accordion toggle jQuery(".pa-accordion .et_pb_toggle").on("click", function(){ var $toggle = jQuery(this); var $content = $toggle.find('.et_pb_toggle_content'); // Check if the clicked accordion is already open if ($toggle.hasClass("et_pb_toggle_open")) { // If already open, close it $toggle.removeClass("et_pb_toggle_open").addClass("et_pb_toggle_close"); $content.slideUp(); } else { // If closed, open it and close other accordions // Close all other open accordions jQuery(".pa-accordion .et_pb_toggle.et_pb_toggle_open").each(function(){ var $openToggle = jQuery(this); var $openContent = $openToggle.find('.et_pb_toggle_content'); $openToggle.removeClass("et_pb_toggle_open").addClass("et_pb_toggle_close"); $openContent.slideUp(); }); // Open the clicked accordion $toggle.removeClass("et_pb_toggle_close").addClass("et_pb_toggle_open"); $content.slideDown(); } }); }); }); We’re here to help! Need a trusted partner to handle your accounting and tax matters? We’re here to help. Pearl Accountants offers reliable, expert support from your first enquiry to final delivery, all under one roof. We keep things simple, affordable, and fully transparent, so you can stay focused on what matters most: running your business. Get In touch Links Build with Love FollowFollowFollowFollowFollow Main Services Resources About Contact Us Legals Terms & Conditions Privacy Policy Cookies Referral Locations Brentford/Hounslow East London Kingston Harrow Staines London We Guarantee to never miss adeadline or your money back © 2025 Pearl Accountants. All Rights Reserved Registration No.07078392 {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/Divi\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} var et_link_options_data = [{"class":"et_pb_blurb_0_tb_header","url":"tel:+442085770200","target":"_self"},{"class":"et_pb_blurb_2","url":"\/services\/company-accounts\/","target":"_self"},{"class":"et_pb_blurb_3","url":"\/services\/bookkeeping\/","target":"_self"},{"class":"et_pb_blurb_4","url":"\/services\/vat\/","target":"_self"},{"class":"et_pb_blurb_5","url":"\/services\/payroll\/","target":"_self"},{"class":"et_pb_blurb_6","url":"\/services\/auto-enrolment\/","target":"_self"},{"class":"et_pb_blurb_7","url":"\/services\/part-time-finance-director\/","target":"_self"},{"class":"et_pb_blurb_8","url":"\/services\/business-tax-advice\/","target":"_self"},{"class":"et_pb_blurb_9","url":"\/services\/tax-investigation-cover\/","target":"_self"},{"class":"et_pb_blurb_10","url":"\/services\/company-formation\/","target":"_self"},{"class":"et_pb_blurb_11","url":"\/services\/registered-address-mail-forwarding\/","target":"_self"},{"class":"et_pb_blurb_12","url":"\/services\/business-legal-support\/","target":"_self"},{"class":"et_pb_blurb_13","url":"\/services\/software-integration\/","target":"_self"},{"class":"et_pb_blurb_14","url":"\/services\/personal-tax\/","target":"_self"},{"class":"et_pb_blurb_15","url":"\/services\/visa\/","target":"_self"},{"class":"et_pb_blurb_16","url":"\/services\/cis-tax-return\/","target":"_self"},{"class":"et_pb_blurb_17","url":"\/services\/partnership-tax-return\/","target":"_self"},{"class":"et_pb_blurb_18","url":"\/services\/company-accounts\/","target":"_self"},{"class":"et_pb_blurb_19","url":"\/services\/bookkeeping\/","target":"_self"},{"class":"et_pb_blurb_20","url":"\/services\/vat\/","target":"_self"},{"class":"et_pb_blurb_21","url":"\/services\/payroll\/","target":"_self"},{"class":"et_pb_blurb_22","url":"\/services\/company-accounts\/","target":"_self"},{"class":"et_pb_blurb_23","url":"\/services\/bookkeeping\/","target":"_self"},{"class":"et_pb_blurb_24","url":"\/services\/vat\/","target":"_self"},{"class":"et_pb_blurb_25","url":"\/services\/payroll\/","target":"_self"},{"class":"et_pb_blurb_26","url":"\/services\/auto-enrolment\/","target":"_self"},{"class":"et_pb_blurb_27","url":"\/services\/part-time-finance-director\/","target":"_self"},{"class":"et_pb_blurb_28","url":"\/services\/business-tax-advice\/","target":"_self"},{"class":"et_pb_blurb_29","url":"\/services\/tax-investigation-cover\/","target":"_self"},{"class":"et_pb_blurb_30","url":"\/services\/company-formation\/","target":"_self"},{"class":"et_pb_blurb_31","url":"\/services\/registered-address-mail-forwarding\/","target":"_self"},{"class":"et_pb_blurb_32","url":"\/services\/business-legal-support\/","target":"_self"},{"class":"et_pb_blurb_33","url":"\/services\/software-integration\/","target":"_self"},{"class":"et_pb_blurb_34","url":"\/services\/personal-tax\/","target":"_self"},{"class":"et_pb_blurb_35","url":"\/services\/visa\/","target":"_self"},{"class":"et_pb_blurb_36","url":"\/services\/cis-tax-return\/","target":"_self"},{"class":"et_pb_blurb_37","url":"\/services\/partnership-tax-return\/","target":"_self"}]; window.addEventListener('DOMContentLoaded', function() { jQuery(window).on('load', function() { let hideTimer; jQuery('.open-menu').on('mouseenter', function() { clearTimeout(hideTimer); jQuery('.my-menu').addClass('force-show'); }); jQuery('.open-menu, .my-menu').on('mouseleave', function() { hideTimer = setTimeout(function() { jQuery('.my-menu').removeClass('force-show'); }, 300); }); jQuery('.my-menu').on('mouseenter', function() { clearTimeout(hideTimer); }); }); }); window.addEventListener('DOMContentLoaded', function() { jQuery(function($) { $(document).ready(function() { // 1) Replace href="#" to safe placeholder to avoid selector errors $('ul.et_mobile_menu a[href="#"]').attr('href', '#!'); // 2) Add mobile-toggle if not present $('ul.et_mobile_menu li.menu-item-has-children, ul.et_mobile_menu li.page_item_has_children').each(function() { var $li = $(this); if ($li.find('> .mobile-toggle').length === 0) { // keep it as a span (no href) $li.children('a').first().after('<span class="mobile-toggle" role="button" aria-label="Toggle submenu" tabindex="0"></span>'); } }); var $menu = $('ul.et_mobile_menu'); // Helper: close all open siblings function closeSiblings($li) { $li.siblings('.dt-open').removeClass('dt-open') .find('> ul.sub-menu, > ul.children').stop(true,true).slideUp(180) .removeClass('visible') .end().find('> .mobile-toggle').attr('aria-expanded','false'); } // 3) Click on the toggle icon — strong prevention of other handlers $(document).on('click', 'ul.et_mobile_menu .mobile-toggle', function(e) { e.preventDefault(); e.stopImmediatePropagation(); e.stopPropagation(); var $btn = $(this); var $li = $btn.closest('li'); // Accordion: close siblings closeSiblings($li); if ($li.hasClass('dt-open')) { $li.removeClass('dt-open'); $li.find('> ul.sub-menu, > ul.children').first().stop(true,true).slideUp(180).removeClass('visible'); $btn.attr('aria-expanded','false'); } else { $li.addClass('dt-open'); $li.find('> ul.sub-menu, > ul.children').first().stop(true,true).slideDown(180).addClass('visible'); $btn.attr('aria-expanded','true'); } }); // 4) Parent anchor click behaviour: // - If submenu closed: prevent navigation, open it (stopImmediatePropagation to prevent Divi handlers) // - If submenu already open: allow natural navigation $(document).on('click', 'ul.et_mobile_menu li.menu-item-has-children > a, ul.et_mobile_menu li.page_item_has_children > a', function(e) { var $a = $(this); var $li = $a.closest('li'); // If submenu is NOT open, first tap should open the submenu instead of navigating if (!$li.hasClass('dt-open')) { e.preventDefault(); e.stopImmediatePropagation(); e.stopPropagation(); // open via the same toggle logic (keeps behavior consistent) var $btn = $li.find('> .mobile-toggle'); if ($btn.length) { $btn.trigger('click'); } else { // fallback closeSiblings($li); $li.addClass('dt-open').find('> ul.sub-menu, > ul.children').first().stop(true,true).slideDown(180).addClass('visible'); } return false; } // else allow click to proceed (user clearly wants to navigate) }); // 5) Prevent submenu-link clicks from bubbling (keeps parent open while navigation occurs) $(document).on('click', 'ul.et_mobile_menu li.menu-item-has-children ul.sub-menu a, ul.et_mobile_menu li.page_item_has_children ul.children a', function(e) { e.stopPropagation(); // allow default navigation }); // 6) Close menus when clicking outside the mobile menu $(document).on('click touchstart', function(e) { if ($(e.target).closest('ul.et_mobile_menu').length === 0) { $menu.find('.dt-open').removeClass('dt-open') .find('> ul.sub-menu, > ul.children').stop(true,true).slideUp(160).removeClass('visible'); $menu.find('.mobile-toggle').attr('aria-expanded','false'); } }); // 7) Escape key closes menus $(document).on('keydown', function(e) { if (e.key === 'Escape' || e.key === 'Esc') { $menu.find('.dt-open').removeClass('dt-open') .find('> ul.sub-menu, > ul.children').stop(true,true).slideUp(160).removeClass('visible'); $menu.find('.mobile-toggle').attr('aria-expanded','false'); } }); }); }); }); /* <![CDATA[ */ var rocket_lazyload_css_data = {"threshold":"300"}; /* ]]> */ /* <![CDATA[ */ !function o(n,c,a){function u(t,e){if(!c[t]){if(!n[t]){var r="function"==typeof require&&require;if(!e&&r)return r(t,!0);if(s)return s(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}r=c[t]={exports:{}},n[t][0].call(r.exports,function(e){return u(n[t][1][e]||e)},r,r.exports,o,n,c,a)}return c[t].exports}for(var s="function"==typeof require&&require,e=0;e<a.length;e++)u(a[e]);return u}({1:[function(e,t,r){"use strict";{const c="undefined"==typeof rocket_pairs?[]:rocket_pairs,a=(("undefined"==typeof rocket_excluded_pairs?[]:rocket_excluded_pairs).map(t=>{var e=t.selector;document.querySelectorAll(e).forEach(e=>{e.setAttribute("data-rocket-lazy-bg-"+t.hash,"excluded")})}),document.querySelector("#wpr-lazyload-bg-container"));var o=rocket_lazyload_css_data.threshold||300;const u=new IntersectionObserver(e=>{e.forEach(t=>{t.isIntersecting&&c.filter(e=>t.target.matches(e.selector)).map(t=>{var e;t&&((e=document.createElement("style")).textContent=t.style,a.insertAdjacentElement("afterend",e),t.elements.forEach(e=>{u.unobserve(e),e.setAttribute("data-rocket-lazy-bg-"+t.hash,"loaded")}))})})},{rootMargin:o+"px"});function n(){0<(0<arguments.length&&void 0!==arguments[0]?arguments[0]:[]).length&&c.forEach(t=>{try{document.querySelectorAll(t.selector).forEach(e=>{"loaded"!==e.getAttribute("data-rocket-lazy-bg-"+t.hash)&&"excluded"!==e.getAttribute("data-rocket-lazy-bg-"+t.hash)&&(u.observe(e),(t.elements||=[]).push(e))})}catch(e){console.error(e)}})}n(),function(){const r=window.MutationObserver;return function(e,t){if(e&&1===e.nodeType)return(t=new r(t)).observe(e,{attributes:!0,childList:!0,subtree:!0}),t}}()(document.querySelector("body"),n)}},{}]},{},[1]); /* ]]> */ /* <![CDATA[ */ var DIVI = {"item_count":"%d Item","items_count":"%d Items"}; var et_builder_utils_params = {"condition":{"diviTheme":true,"extraTheme":false},"scrollLocations":["app","top"],"builderScrollLocations":{"desktop":"app","tablet":"app","phone":"app"},"onloadScrollLocation":"app","builderType":"fe"}; var et_frontend_scripts = {"builderCssContainerPrefix":"#et-boc","builderCssLayoutPrefix":"#et-boc .et-l"}; var et_pb_custom = {"ajaxurl":"https:\/\/www.pearlaccountants.com\/wp-admin\/admin-ajax.php","images_uri":"https:\/\/www.pearlaccountants.com\/wp-content\/themes\/Divi\/images","builder_images_uri":"https:\/\/www.pearlaccountants.com\/wp-content\/themes\/Divi\/includes\/builder\/images","et_frontend_nonce":"07ae5e9f08","subscription_failed":"Please, check the fields below to make sure you entered the correct information.","et_ab_log_nonce":"27f3f8aa52","fill_message":"Please, fill in the following fields:","contact_error_message":"Please, fix the following errors:","invalid":"Invalid email","captcha":"Captcha","prev":"Prev","previous":"Previous","next":"Next","wrong_captcha":"You entered the wrong number in captcha.","wrong_checkbox":"Checkbox","ignore_waypoints":"no","is_divi_theme_used":"1","widget_search_selector":".widget_search","ab_tests":[],"is_ab_testing_active":"","page_id":"1105200","unique_test_id":"","ab_bounce_rate":"5","is_cache_plugin_active":"yes","is_shortcode_tracking":"","tinymce_uri":"https:\/\/www.pearlaccountants.com\/wp-content\/themes\/Divi\/includes\/builder\/frontend-builder\/assets\/vendors","accent_color":"#224c26","waypoints_options":[]}; var et_pb_box_shadow_elements = []; /* ]]> */ window.lazyLoadOptions=[{elements_selector:"img[data-lazy-src],.rocket-lazyload,iframe[data-lazy-src]",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}},{elements_selector:".rocket-lazyload",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,}];window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(var i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue} if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue} images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1} if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1)