/*! elementor - v3.21.0 - 08-05-2024 */ /*! For license information please see styleguide-app-initiator.min.js.LICENSE.txt */ (()=>{var e,t,r={66535:(e,t,r)=>{"use strict";var n=r(7501);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;_interopRequireWildcard(r(87363));var o=_interopRequireWildcard(r(61533)),i=r(37634);function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?r:t})(e)}function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var r=_getRequireWildcardCache(t);if(r&&r.has(e))return r.get(e);var o={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var u=i?Object.getOwnPropertyDescriptor(e,a):null;u&&(u.get||u.set)?Object.defineProperty(o,a,u):o[a]=e[a]}return o.default=e,r&&r.set(e,o),o}var a={render:function render(e,t){var r;try{var n=(0,i.createRoot)(t);n.render(e),r=function unmountFunction(){n.unmount()}}catch(n){o.render(e,t),r=function unmountFunction(){o.unmountComponentAtNode(t)}}return{unmount:r}}};t.default=a},37634:(e,t,r)=>{"use strict";var n=r(61533);t.createRoot=n.createRoot,t.hydrateRoot=n.hydrateRoot},87363:e=>{"use strict";e.exports=React},61533:e=>{"use strict";e.exports=ReactDOM},38003:e=>{"use strict";e.exports=wp.i18n},10029:e=>{function asyncGeneratorStep(e,t,r,n,o,i,a){try{var u=e[i](a),c=u.value}catch(e){return void r(e)}u.done?t(c):Promise.resolve(c).then(n,o)}e.exports=function _asyncToGenerator(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function _next(e){asyncGeneratorStep(i,n,o,_next,_throw,"next",e)}function _throw(e){asyncGeneratorStep(i,n,o,_next,_throw,"throw",e)}_next(void 0)}))}},e.exports.__esModule=!0,e.exports.default=e.exports},73203:e=>{e.exports=function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}},e.exports.__esModule=!0,e.exports.default=e.exports},21337:(e,t,r)=>{var n=r(7501).default;function _regeneratorRuntime(){"use strict";e.exports=_regeneratorRuntime=function _regeneratorRuntime(){return r},e.exports.__esModule=!0,e.exports.default=e.exports;var t,r={},o=Object.prototype,i=o.hasOwnProperty,a=Object.defineProperty||function(e,t,r){e[t]=r.value},u="function"==typeof Symbol?Symbol:{},c=u.iterator||"@@iterator",l=u.asyncIterator||"@@asyncIterator",s=u.toStringTag||"@@toStringTag";function define(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{define({},"")}catch(t){define=function define(e,t,r){return e[t]=r}}function wrap(e,t,r,n){var o=t&&t.prototype instanceof Generator?t:Generator,i=Object.create(o.prototype),u=new Context(n||[]);return a(i,"_invoke",{value:makeInvokeMethod(e,r,u)}),i}function tryCatch(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}r.wrap=wrap;var _="suspendedStart",p="suspendedYield",f="executing",d="completed",h={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var y={};define(y,c,(function(){return this}));var v=Object.getPrototypeOf,b=v&&v(v(values([])));b&&b!==o&&i.call(b,c)&&(y=b);var g=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(y);function defineIteratorMethods(e){["next","throw","return"].forEach((function(t){define(e,t,(function(e){return this._invoke(t,e)}))}))}function AsyncIterator(e,t){function invoke(r,o,a,u){var c=tryCatch(e[r],e,o);if("throw"!==c.type){var l=c.arg,s=l.value;return s&&"object"==n(s)&&i.call(s,"__await")?t.resolve(s.__await).then((function(e){invoke("next",e,a,u)}),(function(e){invoke("throw",e,a,u)})):t.resolve(s).then((function(e){l.value=e,a(l)}),(function(e){return invoke("throw",e,a,u)}))}u(c.arg)}var r;a(this,"_invoke",{value:function value(e,n){function callInvokeWithMethodAndArg(){return new t((function(t,r){invoke(e,n,t,r)}))}return r=r?r.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}})}function makeInvokeMethod(e,r,n){var o=_;return function(i,a){if(o===f)throw new Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var u=n.delegate;if(u){var c=maybeInvokeDelegate(u,n);if(c){if(c===h)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===_)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=f;var l=tryCatch(e,r,n);if("normal"===l.type){if(o=n.done?d:p,l.arg===h)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=d,n.method="throw",n.arg=l.arg)}}}function maybeInvokeDelegate(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,maybeInvokeDelegate(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),h;var i=tryCatch(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,h;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,h):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,h)}function pushTryEntry(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function resetTryEntry(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function Context(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(pushTryEntry,this),this.reset(!0)}function values(e){if(e||""===e){var r=e[c];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,a=function next(){for(;++o=0;--n){var o=this.tryEntries[n],a=o.completion;if("root"===o.tryLoc)return handle("end");if(o.tryLoc<=this.prev){var u=i.call(o,"catchLoc"),c=i.call(o,"finallyLoc");if(u&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&i.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),resetTryEntry(r),h}},catch:function _catch(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;resetTryEntry(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function delegateYield(e,r,n){return this.delegate={iterator:values(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),h}},r}e.exports=_regeneratorRuntime,e.exports.__esModule=!0,e.exports.default=e.exports},7501:e=>{function _typeof(t){return e.exports=_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,_typeof(t)}e.exports=_typeof,e.exports.__esModule=!0,e.exports.default=e.exports},50824:(e,t,r)=>{var n=r(21337)();e.exports=n;try{regeneratorRuntime=n}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}}},n={};function __webpack_require__(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,__webpack_require__),o.exports}__webpack_require__.m=r,__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},__webpack_require__.f={},__webpack_require__.e=e=>Promise.all(Object.keys(__webpack_require__.f).reduce(((t,r)=>(__webpack_require__.f[r](e,t),t)),[])),__webpack_require__.u=e=>1656===e?"5975ee58d21883e10a11.bundle.min.js":7684===e?"8783b9dda1c3001bf1b5.bundle.min.js":void 0,__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="elementor:",__webpack_require__.l=(r,n,o,i)=>{if(e[r])e[r].push(n);else{var a,u;if(void 0!==o)for(var c=document.getElementsByTagName("script"),l=0;l{a.onerror=a.onload=null,clearTimeout(_);var o=e[r];if(delete e[r],a.parentNode&&a.parentNode.removeChild(a),o&&o.forEach((e=>e(n))),t)return t(n)},_=setTimeout(onScriptComplete.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=onScriptComplete.bind(null,a.onerror),a.onload=onScriptComplete.bind(null,a.onload),u&&document.head.appendChild(a)}},__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;__webpack_require__.g.importScripts&&(e=__webpack_require__.g.location+"");var t=__webpack_require__.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&!e;)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),__webpack_require__.p=e})(),(()=>{var e={3100:0};__webpack_require__.f.j=(t,r)=>{var n=__webpack_require__.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,o)=>n=e[t]=[r,o]));r.push(n[2]=o);var i=__webpack_require__.p+__webpack_require__.u(t),a=new Error;__webpack_require__.l(i,(r=>{if(__webpack_require__.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),i=r&&r.target&&r.target.src;a.message="Loading chunk "+t+" failed.\n("+o+": "+i+")",a.name="ChunkLoadError",a.type=o,a.request=i,n[1](a)}}),"chunk-"+t,t)}};var webpackJsonpCallback=(t,r)=>{var n,o,[i,a,u]=r,c=0;if(i.some((t=>0!==e[t]))){for(n in a)__webpack_require__.o(a,n)&&(__webpack_require__.m[n]=a[n]);if(u)u(__webpack_require__)}for(t&&t(r);c{"use strict";var e=__webpack_require__(73203),t=e(__webpack_require__(87363)),r=e(__webpack_require__(50824)),n=e(__webpack_require__(10029)),o=e(__webpack_require__(66535));!function(){var e,i="e-styleguide-shown";function _mount(){return(_mount=(0,n.default)(r.default.mark((function _callee(){var n,a,u,c;return r.default.wrap((function _callee$(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,Promise.all([__webpack_require__.e(1656),__webpack_require__.e(7684)]).then(__webpack_require__.bind(__webpack_require__,97684));case 2:n=r.sent,a=n.default,document.body.classList.add(i),u=o.default.render(t.default.createElement(a,null),getStyleguideWidget()),c=u.unmount,e=c;case 7:case"end":return r.stop()}}),_callee)})))).apply(this,arguments)}function getStyleguideWidget(){return document.querySelector(".dialog-styleguide-message")}window.addEventListener("message",(function(t){var r,n;if(null!==(r=t.data)&&void 0!==r&&null!==(n=r.name)&&void 0!==n&&n.startsWith("elementor/styleguide/preview")&&getStyleguideWidget())switch(t.data.name){case"elementor/styleguide/preview/show":!function mount(){return _mount.apply(this,arguments)}();break;case"elementor/styleguide/preview/hide":!function unmount(){e(),document.body.classList.remove(i)}()}}))}()})()})();import { boxShadowCss, unit, spRealBgControl, generateBorderStyles, spRealBackgroundImgCss, filterResponsiveDynamicCss, generateTypographyCss, generateTypoResponsive, checkIsActiveCardItem, getVisibilityCss, inArray, singleResponsiveCss, spacingCss, responsiveSpacingCss, rangeControlCss, } from "@testimonial/controls"; const responsiveCssFn = (attributes, device = "Desktop") => { const { blockName, uniqueId, columnGap, cardDesign, cardPadding, imageWidth, imageHeight, aspectRatio, aspectRatioCustom, ratingIconSize, ratingIconGap, titleMargin, excerptMargin, nameMargin, designationMargin, imageMargin, ratingIconMargin, cardContents, // Navigation arrows responsive. enableNavigationArrow, navIconSize, navIconGap, navIconPadding, navIconPosition, navOffsetX, navOffsetY, // Pagination dots responsive. enablePaginationDots, paginationDotsWidth, paginationDotsHeight, paginationDotsSpaceBetween, paginationDotsMargin, realPadding, realMargin, } = attributes; const uniqueIdClass = uniqueId ? `#${uniqueId}` : ""; let responsiveCss = [ // main block css. { selector: `${uniqueIdClass} .sp-real-template-wrapper`, styles: { padding: responsiveSpacingCss(realPadding, device), margin: responsiveSpacingCss(realMargin, device), }, }, // Gap between items (columns gap). Marquee uses per-item margin (via the // so we only emit a flex gap for the swiper case. ...(blockName === "carousel" ? [ { selector: `${uniqueIdClass} .sp-swiper-wrapper`, styles: { gap: singleResponsiveCss(columnGap, device), }, }, { selector: `${uniqueIdClass} .sp-testimonial-swiper:is(.swiper-fade, .swiper-cube, .swiper-flip) .swiper-slide`, styles: { display: "grid", "grid-template-columns": `repeat(${Number(attributes?.columns?.device?.[device]) || 1}, minmax(0, 1fr))`, gap: singleResponsiveCss(columnGap, device), }, }, ] : []), // Grid. blockName === "grid" && { selector: `${uniqueIdClass} .sp-real-grid-wrapper`, styles: { display: "grid", "grid-template-columns": `repeat(${Number(attributes?.columns?.device?.[device]) || 3}, minmax(0, 1fr))`, "column-gap": singleResponsiveCss(columnGap, device), "row-gap": singleResponsiveCss(attributes?.rowGap, device), }, }, // Card padding. { selector: `${uniqueIdClass} .sp-real-card-inner`, styles: { padding: responsiveSpacingCss(cardPadding, device), }, }, // Designation responsive. checkIsActiveCardItem(cardContents, "designation") && { selector: `${uniqueIdClass} .sp-real-client-designation`, styles: { ...generateTypoResponsive(attributes, device, "designation"), margin: responsiveSpacingCss(designationMargin, device), }, }, ]; // Title Responsive Css. if (checkIsActiveCardItem(cardContents, "testimonial_title")) { responsiveCss = [ ...responsiveCss, { selector: `${uniqueIdClass} .sp-real-client-title`, styles: generateTypoResponsive(attributes, device, "title"), }, { selector: `${uniqueIdClass} .sp-real-testimonial-client-title`, styles: { margin: responsiveSpacingCss(titleMargin, device), }, }, ]; } // Excerpt Responsive Css. if (checkIsActiveCardItem(cardContents, "testimonial_text")) { responsiveCss = [ ...responsiveCss, { selector: `${uniqueIdClass} .sp-real-testimonial-text`, styles: generateTypoResponsive(attributes, device, "excerpt"), }, { selector: `${uniqueIdClass} .sp-real-testimonial-content`, styles: { margin: responsiveSpacingCss(excerptMargin, device), }, }, ]; } // Rating Responsive Css. if (checkIsActiveCardItem(cardContents, "rating")) { responsiveCss = [ ...responsiveCss, { selector: `${uniqueIdClass} .sp-real-client-rating`, styles: { "font-size": singleResponsiveCss(ratingIconSize, device), gap: singleResponsiveCss(ratingIconGap, device), margin: responsiveSpacingCss(ratingIconMargin, device), }, }, ]; } // Resolve aspect ratio: "custom" pulls from the free-text value. Accepts // "16:9" or "16/9"; "original" (or empty custom) disables the ratio. const rawRatio = aspectRatio === "custom" ? aspectRatioCustom : aspectRatio; const hasAspectRatio = rawRatio && rawRatio !== "original"; const aspectRatioCss = hasAspectRatio ? rawRatio.replace(":", " / ") : ""; // Image Responsive Css. if (checkIsActiveCardItem(cardContents, "reviewer_image")) { responsiveCss = [ ...responsiveCss, { selector: `${uniqueIdClass} .sp-real-img-tag`, styles: { width: singleResponsiveCss(imageWidth, device), height: hasAspectRatio ? "auto" : singleResponsiveCss(imageHeight, device), "aspect-ratio": aspectRatioCss, "object-fit": hasAspectRatio ? "cover" : "", }, }, { selector: `${uniqueIdClass} .sp-real-client-image`, styles: { margin: responsiveSpacingCss(imageMargin, device), }, }, ]; // card two image position adjustment based on image height/width for all responsive views. if (cardDesign === "design-two") { const imageHalfHeight = parseInt(imageWidth?.device?.[device] || 0) / 2 + unit(imageWidth, device); responsiveCss = [ ...responsiveCss, { selector: `${uniqueIdClass} .sp-real-client-image`, styles: { top: "-" + imageHalfHeight, }, }, { selector: `${uniqueIdClass} .sp-real-card-design-two`, styles: { "margin-top": imageHalfHeight, }, }, { selector: `${uniqueIdClass} .sp-real-card-design-two .sp-real-card-inner>div:nth-child(2)`, styles: { "padding-top": imageHalfHeight, }, }, ]; } } // Name Responsive Css. if (checkIsActiveCardItem(cardContents, "reviewer_name")) { responsiveCss = [ ...responsiveCss, { selector: `${uniqueIdClass} .sp-real-client-name`, styles: generateTypoResponsive(attributes, device, "name"), }, { selector: `${uniqueIdClass} .sp-real-testimonial-client-name`, styles: { margin: responsiveSpacingCss(nameMargin, device), }, }, ]; } // Navigation Arrows Responsive Css. if (enableNavigationArrow) { responsiveCss = [ ...responsiveCss, { selector: `${uniqueIdClass} .sp-real-swiper-nav-arrows`, styles: { gap: singleResponsiveCss(navIconGap, device), right: singleResponsiveCss(navOffsetX, device), left: singleResponsiveCss(navOffsetX, device), [inArray(["bottom_left", "bottom_center", "bottom_right"], navIconPosition) ? "bottom" : "top"]: singleResponsiveCss(navOffsetY, device), }, }, { selector: `${uniqueIdClass} .sp-real-swiper-navigation`, styles: { padding: responsiveSpacingCss(navIconPadding, device), }, }, { selector: `${uniqueIdClass} .sp-real-swiper-navigation svg`, styles: { width: singleResponsiveCss(navIconSize, device), height: singleResponsiveCss(navIconSize, device), }, }, ]; } // Pagination responsive: margin/gap on container; bullet size only for bullet-based modes. if (enablePaginationDots) { responsiveCss = [ ...responsiveCss, // gaps. { selector: `${uniqueIdClass} .sp-real-swiper-pagination`, styles: { margin: responsiveSpacingCss(paginationDotsMargin, device), gap: singleResponsiveCss(paginationDotsSpaceBetween, device), }, }, // dot width. { selector: `${uniqueIdClass} .swiper-pagination-bullet`, styles: { width: singleResponsiveCss(paginationDotsWidth, device) + " !important", height: singleResponsiveCss(paginationDotsHeight, device), }, }, ]; } return responsiveCss; }; const dynamicCss = (attributes) => { const { uniqueId, cardBackground, cardBorder, cardBorderWidth, cardBorderRadius, cardBoxShadow, cardBoxShadowHover, cardHoverEffect, cardHoverTransition, titleColors, titleTypography, excerptColors, excerptTypography, ratingIconColor, ratingIconEmptyColor, imageBorder, imageBorderRadius, imageBorderWidth, imageBoxShadow, nameColors, nameTypography, designationColors, cardContents, hideOnDesktop, hideOnTablet, hideOnMobile, // Navigation arrows. enableNavigationArrow, navIconVisibleOnHover, navIconColors, navIconBackground, navIconBorder, navIconBorderWidth, navIconBorderRadius, navIconBoxShadow, navIconBoxShadowHover, // Pagination dots. enablePaginationDots, paginationDotsColors, realBackground, } = attributes; const uniqueIdClass = uniqueId ? `#${uniqueId}` : ""; const visibility = getVisibilityCss({ uniqueId, hideOnDesktop, hideOnTablet, hideOnMobile }); // Desktop css. let desktopCss = [ ...visibility?.Desktop, ...responsiveCssFn(attributes, "Desktop"), // main block css. { selector: `${uniqueIdClass} .sp-real-template-wrapper`, styles: { background: spRealBgControl(realBackground?.normal), }, }, // Card background. { selector: `${uniqueIdClass} .sp-real-card-inner`, styles: { background: spRealBgControl(cardBackground?.normal), ...generateBorderStyles(cardBorder, cardBorderWidth), "border-radius": spacingCss(cardBorderRadius), ...boxShadowCss(cardBoxShadow), "transition-duration": cardHoverEffect && cardHoverEffect !== "none" ? rangeControlCss(cardHoverTransition) : "", }, }, { selector: `${uniqueIdClass} .sp-real-card-inner:hover`, styles: { "border-color": cardBorder?.hoverColor, background: spRealBgControl(cardBackground?.hover), ...spRealBackgroundImgCss(cardBackground?.hover), ...boxShadowCss(cardBoxShadowHover), }, }, // Title. checkIsActiveCardItem(cardContents, "testimonial_title") && { selector: `${uniqueIdClass} .sp-real-client-title`, styles: { color: titleColors?.normal || "", ...generateTypographyCss(titleTypography), }, }, // Excerpt. checkIsActiveCardItem(cardContents, "testimonial_text") && { selector: `${uniqueIdClass} .sp-real-testimonial-text`, styles: { color: excerptColors?.normal || "", ...generateTypographyCss(excerptTypography), }, }, // Name. checkIsActiveCardItem(cardContents, "reviewer_name") && { selector: `${uniqueIdClass} .sp-real-client-name`, styles: { color: nameColors?.normal || "", ...generateTypographyCss(nameTypography), }, }, // Designation color. checkIsActiveCardItem(cardContents, "designation") && { selector: `${uniqueIdClass} .sp-real-client-designation`, styles: { color: designationColors?.normal || "", ...generateTypographyCss(attributes.designationTypography), }, }, ]; // Rating Css. if (checkIsActiveCardItem(cardContents, "rating")) { desktopCss = [ ...desktopCss, { selector: `${uniqueIdClass} .sp-real-rating-full, ${uniqueIdClass} .sp-real-rating-half .sp-real-rating-fill`, styles: { color: ratingIconColor || "", }, }, { selector: `${uniqueIdClass} .sp-real-rating-empty, ${uniqueIdClass} .sp-real-rating-half .sp-real-rating-base`, styles: { color: ratingIconEmptyColor || "", }, }, ]; } // Image Css. if (checkIsActiveCardItem(cardContents, "reviewer_image")) { desktopCss = [ ...desktopCss, { selector: `${uniqueIdClass} .sp-real-img-tag`, styles: { ...generateBorderStyles(imageBorder, imageBorderWidth), "border-radius": spacingCss(imageBorderRadius), ...boxShadowCss(imageBoxShadow), }, }, { selector: `${uniqueIdClass} .sp-real-client-image:hover .sp-real-img-tag`, styles: { "border-color": imageBorder?.hoverColor, }, }, ]; } // Navigation Arrows Css. if (enableNavigationArrow) { desktopCss = [ ...desktopCss, // Nav buttons base styles. { selector: `${uniqueIdClass} .sp-real-swiper-navigation`, styles: { color: navIconColors?.normal || "", background: navIconBackground?.normal || "", ...generateBorderStyles(navIconBorder, navIconBorderWidth), "border-radius": spacingCss(navIconBorderRadius), ...boxShadowCss(navIconBoxShadow), "pointer-events": "auto", ...(navIconVisibleOnHover && { opacity: "0", transition: "opacity 0.3s ease", }), }, }, { selector: `${uniqueIdClass} .sp-real-swiper-navigation:hover`, styles: { color: navIconColors?.hover || "", background: navIconBackground?.hover || "", "border-color": navIconBorder?.hoverColor || "", ...boxShadowCss(navIconBoxShadowHover), }, }, navIconVisibleOnHover && { selector: `${uniqueIdClass}:hover .sp-real-swiper-navigation`, styles: { opacity: "1" }, }, ]; } // Pagination: colors for dots/stepper on top of swiper.scss base. if (enablePaginationDots) { desktopCss = [ ...desktopCss, { selector: `${uniqueIdClass} .swiper-pagination-bullet`, styles: { background: paginationDotsColors?.normal || "", }, }, { selector: `${uniqueIdClass} :is(.swiper-pagination-bullet:hover, .swiper-pagination-bullet-active)`, styles: { background: paginationDotsColors?.active || "", }, }, ]; } const tabletCss = [...visibility?.Tablet, ...responsiveCssFn(attributes, "Tablet")]; const mobileCss = [...visibility?.Mobile, ...responsiveCssFn(attributes, "Mobile")]; const cssObj = { desktopCss, tabletCss, mobileCss, }; return filterResponsiveDynamicCss(cssObj); }; export default dynamicCss; About Us | Proactive Advisors
About Us
Who We Are
Proactive Advisors is a modern accounting and business advisory firm serving individuals, startups, and small- to medium-sized businesses across the UK. With years of combined experience, we’re committed to helping our clients make better financial decisions with confidence. We are approachable, knowledgeable, and focused on building lasting relationships based on trust.
What We Do
Our services cover everything from day-to-day bookkeeping to complex tax planning and business advisory. Whether you’re a sole trader or a growing company, we tailor our services to meet your needs. We handle:
  • Bookkeeping and payroll
  • Tax returns and VAT submissions
  • Annual accounts and company filings
  • Business start-up advice
  • Support with Xero, QuickBooks, and Sage
We make accounting simple, clear, and stress-free—so you can focus on what matters most.
Our Mission
To provide reliable, proactive, and client-focused accounting solutions that support long-term business growth and personal financial clarity.
Our Vision
To be one of the most trusted advisory firms in the UK by offering smart, forward-thinking solutions and helping our clients succeed at every stage of their journey.
Why Choose Us
At Proactive Advisors, we go beyond numbers. We listen, understand your goals, and offer practical advice that delivers results. Our team believes in clear communication, timely support, and complete transparency. We don’t just work for you—we work with you.
Let’s Work Together.
If you’re looking for a professional accounting partner who truly cares about your success, get in touch with Proactive Advisors today. Book your free consultation, and let’s take the next step together.